GNU bug report logs -
#13670
24.3.50; `autoload-generate-file-autoloads' off-by-one bug
Previous Next
Reported by: "Drew Adams" <drew.adams <at> oracle.com>
Date: Sun, 10 Feb 2013 00:04:02 UTC
Severity: minor
Found in version 24.3.50
Done: Drew Adams <drew.adams <at> oracle.com>
Bug is archived. No further changes may be made.
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
This source code line of `autoload-generate-file-autoloads':
(if (= (char-after (1+ (point))) ? )
should be replaced by this:
(if (= (char-after (point)) ? )
The aim is to preserve the whitespace that occurs after a separating
whitespace character, not to preserve also that separating character.
`;;;###autoload' cannot be followed by normal text, or else the cookie
is not recognized as such. But you can follow it by a space and then
the text that you want. The space is not part of the text to be
copied to the output file; it is only a separator for parsing the
cookie.
E.g. Suppose you want to have a multiline doc string, such as this:
"Icicle mode: Toggle minibuffer input completion and cycling.
Non-nil prefix ARG turns mode on if ARG > 0, else off.
It is a global minor mode. It binds minibuffer keys."
You can use cookies like this:
;;;###autoload (autoload 'icicle-mode "icicles"
;;;###autoload"Icicle mode: Toggle minibuffer input completion and cycling.
;;;###autoload Non-nil prefix ARG turns mode on if ARG > 0, else off.
;;;###autoload It is a global minor mode. It binds minibuffer keys."
;;;###autoload t nil)
But with the bugged code that preserves the space separator as if it
were part of the doc string, the result is this:
(autoload 'icicle-mode "icicles"
"Icicle mode: Toggle minibuffer input completion and cycling.
Non-nil prefix ARG turns mode on if ARG > 0, else off.
It is a global minor mode. It binds minibuffer keys."
t nil)
which gives the erroneous doc string:
"Icicle mode: Toggle minibuffer input completion and cycling.
Non-nil prefix ARG turns mode on if ARG > 0, else off.
It is a global minor mode. It binds minibuffer keys."
With the fix, the result is correct:
(autoload 'icicle-mode "icicles"
"Icicle mode: Toggle minibuffer input completion and cycling.
Non-nil prefix ARG turns mode on if ARG > 0, else off.
It is a global minor mode. It binds minibuffer keys."
t nil)
Doc string:
"Icicle mode: Toggle minibuffer input completion and cycling.
Non-nil prefix ARG turns mode on if ARG > 0, else off.
It is a global minor mode. It binds minibuffer keys."
However, I see that this bug (as I see it) dates back to at least
Emacs 20.7. So if I am wrong that this is a bug, please explain
how to get proper multiline doc strings.
In GNU Emacs 24.3.50.1 (i386-mingw-nt5.1.2600)
of 2013-02-08 on VBOX-W7
Bzr revision: 111700 monnier <at> iro.umontreal.ca-20130208174209-vpjpdh4qipaceoh5
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
`configure --with-gcc (4.7) --no-opt --enable-checking --cflags
-IC:/emacs/libs/libXpm-3.5.10/include -IC:/emacs/libs/libXpm-3.5.10/src
-IC:/emacs/libs/libpng-dev_1.4.3-1_win32/include
-IC:/emacs/libs/zlib-dev_1.2.5-2_win32/include
-IC:/emacs/libs/giflib-4.1.4-1-lib/include
-IC:/emacs/libs/jpeg-6b-4-lib/include
-IC:/emacs/libs/tiff-3.8.2-1-lib/include
-IC:/emacs/libs/libxml2-2.7.8-w32-bin/include/libxml2
-IC:/emacs/libs/gnutls-3.1.5-w32/include
-IC:/emacs/libs/libiconv-1.14-2-mingw32-dev/include'
This bug report was last modified 9 years and 83 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.