GNU bug report logs -
#8253
23.2; variable-at-point on ' of 'foo
Previous Next
Reported by: Kevin Ryde <user42 <at> zip.com.au>
Date: Mon, 14 Mar 2011 22:59:02 UTC
Severity: minor
Found in version 23.2
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Mon, 14 Mar 2011 22:36:28 -0400
with message-id <jwvlj0h5dpu.fsf-monnier+emacs <at> gnu.org>
and subject line Re: bug#8253: 23.2; variable-at-point on ' of 'foo
has caused the GNU bug report #8253,
regarding 23.2; variable-at-point on ' of 'foo
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
8253: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8253
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
When point is on the ' of a 'foo quoted variable, M-x describe-variable
doesn't offer that variable as a default, and `variable-at-point'
doesn't return it. Eg.
(set 'baud-rate 9600)
^---point here
M-: (variable-at-point)
=> 0
where I hoped it would return `baud-rate', as it does if point is on say
the "b".
I strike this when using backward/forward sexp to move between args
since that leaves point on the '. It'd be good if variable-at-point
allowed/recognised that.
In the code there's a
(skip-chars-forward "'")
which looks like it's supposed to do this, but it's after the bit going
to the start of the word and seems to be defeated by (forward-sexp -1).
Actually that ends up going to the previous sexp, so if you've got
(list 'emacs-version
'baud-rate)
^---point here
then it returns the preceding `emacs-version' instead of `baud-rate'.
Perhaps the change below. bzr has still defeated me, or I would try a
diff with it :-(
2011-03-14 Kevin Ryde <user42 <at> zip.com.au>
* help-fns.el (variable-at-point): Skip forward across ' first, to
allow point on the ' part of quoted 'emacs-version etc. Helps
when moving by sexps which leaves point on the ' instead of the
variable name as such.
[help-fns.el.variable-at-point.diff (text/x-diff, inline)]
--- help-fns.el.~1.146.~ 2009-11-17 17:24:19.000000000 +1100
+++ help-fns.el 2011-03-15 09:48:49.000000000 +1100
@@ -527,11 +527,11 @@
(with-syntax-table emacs-lisp-mode-syntax-table
(or (condition-case ()
(save-excursion
+ (skip-chars-forward "'")
(or (not (zerop (skip-syntax-backward "_w")))
(eq (char-syntax (following-char)) ?w)
(eq (char-syntax (following-char)) ?_)
(forward-sexp -1))
- (skip-chars-forward "'")
(let ((obj (read (current-buffer))))
(and (symbolp obj) (boundp obj) obj)))
(error nil))
[Message part 5 (text/plain, inline)]
In GNU Emacs 23.2.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0)
of 2010-05-16 on raven, modified by Debian
configured using `configure '--build' 'i486-linux-gnu' '--build' 'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.2/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.2/leim' '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 'build_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS=''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_AU
value of $XMODIFIERS: nil
locale-coding-system: iso-latin-1-unix
default enable-multibyte-characters: t
[Message part 6 (message/rfc822, inline)]
> (set 'baud-rate 9600)
FWIW, I strongly recommend you use (setq baud-rate 9600) instead.
This said, the patch looks fine, except that the second skip-chars-forward
has to stay (it's there because (forward-sexp -1) tends to skip backward
over quotes).
Installed on trunk,
Stefan
This bug report was last modified 14 years and 69 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.