[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#13670: 24.3.50; `autoload-generate-file-autoloads' off-by-one bug
From: |
Drew Adams |
Subject: |
bug#13670: 24.3.50; `autoload-generate-file-autoloads' off-by-one bug |
Date: |
Sat, 9 Feb 2013 16:03:30 -0800 |
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@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'
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#13670: 24.3.50; `autoload-generate-file-autoloads' off-by-one bug,
Drew Adams <=