GNU bug report logs - #8253
23.2; variable-at-point on ' of 'foo

Previous Next

Package: emacs;

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.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 8253 in the body.
You can then email your comments to 8253 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#8253; Package emacs. (Mon, 14 Mar 2011 22:59:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kevin Ryde <user42 <at> zip.com.au>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 14 Mar 2011 22:59:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Kevin Ryde <user42 <at> zip.com.au>
To: bug-gnu-emacs <at> gnu.org
Subject: 23.2; variable-at-point on ' of 'foo
Date: Tue, 15 Mar 2011 09:58:29 +1100
[Message part 1 (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 3 (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

Reply sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
You have taken responsibility. (Tue, 15 Mar 2011 02:37:01 GMT) Full text and rfc822 format available.

Notification sent to Kevin Ryde <user42 <at> zip.com.au>:
bug acknowledged by developer. (Tue, 15 Mar 2011 02:37:02 GMT) Full text and rfc822 format available.

Message #10 received at 8253-done <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Kevin Ryde <user42 <at> zip.com.au>
Cc: 8253-done <at> debbugs.gnu.org
Subject: Re: bug#8253: 23.2; variable-at-point on ' of 'foo
Date: Mon, 14 Mar 2011 22:36:28 -0400
>     (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




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#8253; Package emacs. (Sun, 20 Mar 2011 23:42:01 GMT) Full text and rfc822 format available.

Message #13 received at 8253 <at> debbugs.gnu.org (full text, mbox):

From: Kevin Ryde <user42 <at> zip.com.au>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 8253 <at> debbugs.gnu.org
Subject: Re: bug#8253: 23.2; variable-at-point on ' of 'foo
Date: Mon, 21 Mar 2011 10:41:26 +1100
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
>
> (setq baud-rate 9600)

That `set' is a bit of a contrivance, I hit the ' mostly with
add-to-list or add-hook, or a make-local-variable.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 18 Apr 2011 11:24:04 GMT) Full text and rfc822 format available.

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.