[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Emacs-diffs] master 75d9a55: Fix bug 32543
From: |
Tino Calancha |
Subject: |
Re: [Emacs-diffs] master 75d9a55: Fix bug 32543 |
Date: |
Wed, 19 Sep 2018 07:03:28 +0900 (JST) |
User-agent: |
Alpine 2.20 (DEB 67 2015-01-07) |
On Tue, 18 Sep 2018, Stefan Monnier wrote:
- why store this info in text-properties rather than in
buffer-local variables?
I realized the buffer was already saved there with property
`occur-title'; I didn't wanted to scatter around related info.
Hmmm... do you happen to have some intuition about why the buffer was
saved in a text-property rather than in a buffer-local var?
It's a really odd choice (less efficient, more work for the coder, with
various side-problems like "on which char should I put it", etc...).
I think the favourite answer of my ex-boss fits well here:
For historical reasons.
[ Also, why is it saved under a name like `occur-title` rather
than, say `occur-buffer`? ]
Ditto.
+ (with-current-buffer buffer
+ (when (wholenump orig-line)
+ (goto-char 1)
I'd recommend `point-min` instead of 1 here.
OK. I always remember the discussion at
https://lists.gnu.org/archive/html/emacs-devel/2009-08/msg00520.html
but I forgot which was the encouraged practice there: in these cases
I follow the 50% rule to reject 0% success ratio (I know, it brings
50% failure ratio: life is full of injustice).
I just always recommend `point-min`. Hard-coded constants are always
weird in source code, whereas `point-min` clearly says what this
constant is (and in terms of efficiency, it's a wash, or `point-min`
might even be marginally more efficient).
I have a private library to autocomplete `point-min' (not just that!);
I just type
(pmin) <Super> a
and I get
(point-min)
During prototyping I sometimes write things like:
(goto-char 1)
I replace those `1' with `point-min' once I get
something ready. I forgot this time.