Package: emacs;
Reported by: Dave Abrahams <dave <at> boostpro.com>
Date: Sun, 5 Dec 2010 21:24:02 UTC
Severity: minor
Found in version 23.2
Done: Eli Zaretskii <eliz <at> gnu.org>
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 7563 in the body.
You can then email your comments to 7563 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
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:bug#7563
; Package emacs
.
(Sun, 05 Dec 2010 21:24:02 GMT) Full text and rfc822 format available.Dave Abrahams <dave <at> boostpro.com>
:bug-gnu-emacs <at> gnu.org
.
(Sun, 05 Dec 2010 21:24:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Dave Abrahams <dave <at> boostpro.com> To: bug-gnu-emacs <at> gnu.org Subject: 23.2; `split-string-and-unquote' mis-documented / purpose unclear Date: Sun, 05 Dec 2010 16:28:16 -0500
This bug report will be sent to the Free Software Foundation, not to your local site managers! Please write in English if possible, because the Emacs maintainers usually do not have translators to read other languages for them. Your bug report will be posted to the bug-gnu-emacs <at> gnu.org mailing list, and to the gnu.emacs.bug news group. Please describe exactly what actions triggered the bug and the precise symptoms of the bug. If you can, give a recipe starting from `emacs -Q': The info doc for split-string ends with: If you need to split a string that is a shell command, where individual arguments could be quoted, see split-string-and-unquote. Here's the info doc for split-string-and-unquote. -- Function: split-string-and-unquote string &optional separators This function splits STRING into substrings at matches for the regular expression SEPARATORS, like `split-string' does (*note Creating Strings::); in addition, it removes quoting from the substrings. It then makes a list of the substrings and returns it. If SEPARATORS is omitted or `nil', it defaults to `"\\s-+"', which is a regular expression that matches one or more characters with whitespace syntax (*note Syntax Class Table::). This function performs two types of quoting: enclosing a whole string in double quotes `"..."', and quoting individual characters with a backslash escape `\'. The latter is also used in Lisp strings, so this function can handle those as well. First problem: the last paragraph above is simply wrong. split-string-and-unquote doesn't perform any type of quoting; it un-quotes. Second problem: the doc implies that a string that could be executed by the shell could be split into its constituent arguments by split-string-and-unquote, but in general, it cannot, e.g.: (split-string-and-unquote "'foo bar'") => ("'foo" "bar'") (split-string-and-unquote "foo\\ bar") => ("foo" "bar") I'm not sure what this function is really supposed to be for, but any implication that it properly handles conversion into shell arguments is highly misleading. Some motivation should be given for proper use of split-string-and-unquote, or it should be deprecated. If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. For information about debugging Emacs, please read the file /Applications/Emacs.app/Contents/Resources/etc/DEBUG. In GNU Emacs 23.2.1 (x86_64-apple-darwin, NS apple-appkit-1038.29) of 2010-05-08 on black.local Windowing system distributor `Apple', version 10.3.1038 configured using `configure '--host=x86_64-apple-darwin' '--build=i686-apple-darwin' '--with-ns' 'build_alias=i686-apple-darwin' 'host_alias=x86_64-apple-darwin' 'CC=gcc -mmacosx-version-min=10.5'' 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: nil value of $XMODIFIERS: nil locale-coding-system: nil default enable-multibyte-characters: t Major mode: Emacs-Lisp Minor modes in effect: diff-auto-refine-mode: t global-auto-complete-mode: t auto-complete-mode: t yas/global-mode: t show-paren-mode: t server-mode: t global-auto-revert-mode: t delete-selection-mode: t tooltip-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: C-. C-, C-k r e p r <M-backspace> w i l l SPC r e p r e e <backspace> s e n t SPC a SPC l i s t SPC o f SPC a r g u m e n t s C-, C-, C-. C-, C-, C-, C-, C-, C-, C-p C-p C-p C-n C-n C-n C-e C-p C-e C-, C-, C-, C-, C-, C-, C-h f s p i <backspace> l i t - s t <tab> - a n <tab> <return> <help-echo> <down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1> C-h f s p l i t - s t <tab> - a n <tab> <return> C-x C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-p C-p C-p C-p C-. C-. C-. C-. C-. C-. C-. C-. C-. C-e C-n C-, C-, C-, C-, C-, C-, C-, C-e C-, C-, C-, C-, C-, C-, C-, C-, C-, C-, C-. C-. C-. C-. C-. C-. C-. C-. C-h f <return> C-n C-n C-n C-n C-n C-n C-n C-n C-e C-p C-p C-p C-p C-p C-n C-n C-n C-e C-n C-p C-p C-p C-p C-p C-p C-p C-p C-, C-, C-, C-, C-, C-, C-, C-, C-, C-, C-n C-n C-n C-h f C-g C-g C-h i u M-< s s p l i t - s t r i n g - a n d - u n <return> <return> C-s C-s C-n C-n C-n C-s u n q u o t e C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-p C-p C-p C-p C-p C-n C-a C-SPC C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p M-w C-x C-p M-x r e p o r t - e m <tab> <r eturn> Recent messages: Type C-x 1 to delete the help window. [3 times] Auto-saving... [12 times] Quit [2 times] [2 times] Mark set [2 times] [2 times] Mark saved where search started Mark set [4 times] Load-path shadows: /Users/dave/.emacs.d/3rd-party/package.d/bibl-mode/bibl-mode hides /Users/dave/.emacs.d/3rd-party/package.d/bibl-mode/bibl-mode/bibl-mode /Users/dave/.emacs.d/3rd-party/package.d/bibl-mode/bibl-lists hides /Users/dave/.emacs.d/3rd-party/package.d/bibl-mode/bibl-mode/bibl-lists /Users/dave/.emacs.d/3rd-party/package.d/bibl-mode/bibl-grab hides /Users/dave/.emacs.d/3rd-party/package.d/bibl-mode/bibl-mode/bibl-grab /Users/dave/.emacs.d/3rd-party/package.d/magit/etc/emacs/site-start.d/50magit hides /Users/dave/.emacs.d/3rd-party/package.d/magit/magit/etc/emacs/site-start.d/50magit /Users/dave/.emacs.d/3rd-party/package.d/magit/magit/share/emacs/site-lisp/magit hides /Users/dave/.emacs.d/3rd-party/package.d/magit/share/emacs/site-lisp/magit /Users/dave/.emacs.d/3rd-party/package.d/magit/magit/share/emacs/site-lisp/magit-topgit hides /Users/dave/.emacs.d/3rd-party/package.d/magit/share/emacs/site-lisp/magit-topgit /Users/dave/.emacs.d/3rd-party/package.d/magit/magit/share/emacs/site-lisp/magit-svn hides /Users/dave/.emacs.d/3rd-party/package.d/magit/share/emacs/site-lisp/magit-svn /Users/dave/.emacs.d/3rd-party/package.d/magit/magit/share/emacs/site-lisp/magit-key-mode hides /Users/dave/.emacs.d/3rd-party/package.d/magit/share/emacs/site-lisp/magit-key-mode /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-weather hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-weather /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-util hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-util /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-ucs hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-ucs /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-tabmenu hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-tabmenu /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-symbol hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-symbol /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-session hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-session /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-search hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-search /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-rss hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-rss /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-proc hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-proc /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-perldoc hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-perldoc /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-namazu hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-namazu /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-mail hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-mail /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-load hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-load /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-lnum hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-lnum /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-image hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-image /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-hist hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-hist /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-form hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-form /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-filter hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-filter /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-fb hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-fb /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-favicon hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-favicon /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-ems hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-ems /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-dtree hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-dtree /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-cookie hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-cookie /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-ccl hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-ccl /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-bug hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-bug /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-bookmark hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-bookmark /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/w3m-antenna hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/w3m-antenna /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/octet hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/octet /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/mime-w3m hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/mime-w3m /Users/dave/.emacs.d/3rd-party/package.d/w3m/lisp/mew-w3m hides /Users/dave/.emacs.d/3rd-party/package.d/w3m/w3m/lisp/mew-w3m /Users/dave/.emacs.d/3rd-party/package.d/flim/lisp/flim/sha1 hides /Applications/Emacs.app/Contents/Resources/lisp/sha1 /Users/dave/.emacs.d/3rd-party/package.d/semi/lisp/semi/pgg hides /Applications/Emacs.app/Contents/Resources/lisp/pgg /Users/dave/.emacs.d/3rd-party/package.d/semi/lisp/semi/pgg-pgp5 hides /Applications/Emacs.app/Contents/Resources/lisp/pgg-pgp5 /Users/dave/.emacs.d/3rd-party/package.d/semi/lisp/semi/pgg-pgp hides /Applications/Emacs.app/Contents/Resources/lisp/pgg-pgp /Users/dave/.emacs.d/3rd-party/package.d/semi/lisp/semi/pgg-parse hides /Applications/Emacs.app/Contents/Resources/lisp/pgg-parse /Users/dave/.emacs.d/3rd-party/package.d/semi/lisp/semi/pgg-gpg hides /Applications/Emacs.app/Contents/Resources/lisp/pgg-gpg /Users/dave/.emacs.d/3rd-party/package.d/semi/lisp/semi/pgg-def hides /Applications/Emacs.app/Contents/Resources/lisp/pgg-def /Users/dave/.emacs.d/3rd-party/package.d/flim/lisp/flim/md4 hides /Applications/Emacs.app/Contents/Resources/lisp/md4 /Users/dave/elisp/package.d/linum hides /Applications/Emacs.app/Contents/Resources/lisp/linum /Users/dave/.emacs.d/3rd-party/package.d/flim/lisp/flim/hex-util hides /Applications/Emacs.app/Contents/Resources/lisp/hex-util /Users/dave/.emacs.d/3rd-party/package.d/tramp/lisp/format-spec hides /Applications/Emacs.app/Contents/Resources/lisp/format-spec /Users/dave/elisp/custom hides /Applications/Emacs.app/Contents/Resources/lisp/custom /Users/dave/.emacs.d/3rd-party/package.d/remember/lisp/remember hides /Applications/Emacs.app/Contents/Resources/lisp/textmodes/remember /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org hides /Applications/Emacs.app/Contents/Resources/lisp/org/org /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-xoxo hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-xoxo /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-wl hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-wl /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-w3m hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-w3m /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-vm hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-vm /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-timer hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-timer /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-table hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-table /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-src hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-src /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-rmail hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-rmail /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-remember hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-remember /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-publish hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-publish /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-protocol hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-protocol /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-plot hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-plot /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-mouse hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mouse /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-mobile hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mobile /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-mhe hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mhe /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-mew hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mew /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-macs hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-macs /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-mac-message hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mac-message /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-list hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-list /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-latex hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-latex /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-jsinfo hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-jsinfo /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-irc hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-irc /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-install hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-install /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-inlinetask hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-inlinetask /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-info hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-info /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-indent hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-indent /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-id hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-id /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-icalendar hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-icalendar /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-html hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-html /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-habit hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-habit /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-gnus hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-gnus /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-freemind hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-freemind /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-footnote hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-footnote /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-feed hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-feed /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-faces hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-faces /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-exp hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-exp /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-exp-blocks hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-exp-blocks /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-docbook hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-docbook /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-datetree hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-datetree /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-crypt hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-crypt /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-compat hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-compat /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-colview hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-colview /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-clock hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-clock /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-bibtex hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-bibtex /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-bbdb hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-bbdb /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-attach hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-attach /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-ascii hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-ascii /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-archive hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-archive /Users/dave/.emacs.d/3rd-party/package.d/org-mode/lisp/org-agenda hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-agenda /Users/dave/.emacs.d/3rd-party/package.d/tramp/lisp/trampver hides /Applications/Emacs.app/Contents/Resources/lisp/net/trampver /Users/dave/.emacs.d/3rd-party/package.d/tramp/lisp/tramp hides /Applications/Emacs.app/Contents/Resources/lisp/net/tramp /Users/dave/.emacs.d/3rd-party/package.d/tramp/lisp/tramp-uu hides /Applications/Emacs.app/Contents/Resources/lisp/net/tramp-uu /Users/dave/.emacs.d/3rd-party/package.d/tramp/lisp/tramp-smb hides /Applications/Emacs.app/Contents/Resources/lisp/net/tramp-smb /Users/dave/.emacs.d/3rd-party/package.d/tramp/lisp/tramp-gw hides /Applications/Emacs.app/Contents/Resources/lisp/net/tramp-gw /Users/dave/.emacs.d/3rd-party/package.d/tramp/lisp/tramp-ftp hides /Applications/Emacs.app/Contents/Resources/lisp/net/tramp-ftp /Users/dave/.emacs.d/3rd-party/package.d/tramp/lisp/tramp-fish hides /Applications/Emacs.app/Contents/Resources/lisp/net/tramp-fish /Users/dave/.emacs.d/3rd-party/package.d/tramp/lisp/tramp-compat hides /Applications/Emacs.app/Contents/Resources/lisp/net/tramp-compat /Users/dave/.emacs.d/3rd-party/package.d/tramp/lisp/tramp-cmds hides /Applications/Emacs.app/Contents/Resources/lisp/net/tramp-cmds /Users/dave/.emacs.d/3rd-party/package.d/tramp/lisp/tramp-cache hides /Applications/Emacs.app/Contents/Resources/lisp/net/tramp-cache /Users/dave/.emacs.d/3rd-party/package.d/tramp/lisp/socks hides /Applications/Emacs.app/Contents/Resources/lisp/net/socks /Users/dave/.emacs.d/3rd-party/package.d/flim/lisp/flim/sasl hides /Applications/Emacs.app/Contents/Resources/lisp/net/sasl /Users/dave/.emacs.d/3rd-party/package.d/flim/lisp/flim/sasl-ntlm hides /Applications/Emacs.app/Contents/Resources/lisp/net/sasl-ntlm /Users/dave/.emacs.d/3rd-party/package.d/flim/lisp/flim/sasl-digest hides /Applications/Emacs.app/Contents/Resources/lisp/net/sasl-digest /Users/dave/.emacs.d/3rd-party/package.d/flim/lisp/flim/sasl-cram hides /Applications/Emacs.app/Contents/Resources/lisp/net/sasl-cram /Users/dave/.emacs.d/3rd-party/package.d/flim/lisp/flim/ntlm hides /Applications/Emacs.app/Contents/Resources/lisp/net/ntlm /Users/dave/.emacs.d/3rd-party/package.d/flim/lisp/flim/hmac-md5 hides /Applications/Emacs.app/Contents/Resources/lisp/net/hmac-md5 /Users/dave/.emacs.d/3rd-party/package.d/flim/lisp/flim/hmac-def hides /Applications/Emacs.app/Contents/Resources/lisp/net/hmac-def /Users/dave/.emacs.d/3rd-party/package.d/wanderlust/lisp/wl/rfc2368 hides /Applications/Emacs.app/Contents/Resources/lisp/mail/rfc2368 /Users/dave/.emacs.d/3rd-party/package.d/wanderlust/lisp/wl/utf7 hides /Applications/Emacs.app/Contents/Resources/lisp/gnus/utf7 /Users/dave/.emacs.d/3rd-party/package.d/semi/lisp/semi/smime hides /Applications/Emacs.app/Contents/Resources/lisp/gnus/smime /Users/dave/.emacs.d/3rd-party/package.d/planner/contrib/timeclock hides /Applications/Emacs.app/Contents/Resources/lisp/calendar/timeclock Features: (shadow emacsbug apropos tmm electric debug ediff-merg ediff-diff ediff-wind ediff-help ediff-util ediff-mult ediff-init ediff vc vc-dispatcher find-dired grep compile man doc-mode magit log-edit pcvs-util add-log magit-key-mode browse-url parse-time vc-cvs make-mode sh-script executable dired-aux info tabify org-archive org-mobile cal-china lunar solar cal-dst cal-bahai cal-islam cal-hebrew holidays hol-loaddefs diary-lib diary-loaddefs cal-iso epg disp-table org-eval org-bookmark bookmark org-mac-message org-habit org-id org-crypt org-agenda diff-mode diff dabbrev thingatpt find-func flow-fill smtp sasl sasl-anonymous sasl-login sasl-plain newcomment elmo-filter mel-q-ccl smiley multi-isearch wl-score mule-util ssl my-xmlunicode quail elmo-nntp elmo-sendlog elmo-internal elmo-imap4 time-stamp elmo-net elmo-dop elmo-cache elmo-map hl-line modb-legacy modb-standard wl-mime mime-edit pgg-parse pccl pccl-20 ccl mailalias mime-setup mail-mime-setup semi-setup mime-pgp pgg-def mime-play filename mime-image wl-demo wl-draft eword-encode wl-template sendmail wl-news wl-address wl-thread wl-folder wl-spam wl-action elmo-spam elsp-header elsp-generic wl-gravatar gravatar gnus-picon gnus-art mm-uu mml2015 mm-view smime gnus-sum nnoo gnus-group gnus-undo nnmail mail-source format-spec gnus-start gnus-spec gnus-int gnus-range message ecomplete rfc822 mml mml-sec password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums mailabbrev gmm-utils mailheader canlock sha1 sha1-el hex-util hashcash gnus-win bbdb signature org-wl org byte-opt ob-emacs-lisp ob-tangle ob-ref ob-lob ob-table org-footnote org-src ob-comint comint ring ob-keys ob org-list org-faces org-compat org-entities org-macs noutline outline cal-menu calendar cal-loaddefs filladapt wl-summary ps-print ps-def lpr wl-refile wl-message elmo-mime mmelmo-buffer mmelmo-imap mime-view calist semi-def mmimap mime-parse mmbuffer mmgeneric wl-highlight elmo-multi mime-conf wl wl-e21 wl-util pp elmo-flag elmo-localdir bytecomp byte-compile wl-vars epg-config wl-version elmo elmo-signal elmo-msgdb modb modb-generic modb-entity mime elmo-util emu invisible inv-23 poem poem-e20 poem-e20_3 utf7 eword-decode mel mime-def alist std11 mcharset mcs-20 mcs-e20 pces pces-e20 pces-20 broken pcustom elmo-date timezone path-util elmo-vars poe elmo-version pym static apel-ver product luna vc-git dired regexp-opt package reporter init w3m-load remember-autoloads planner-autoloads muse-autoloads color-theme-autoloads bbdb-autoloads my-loaddefs auto-complete-config auto-complete popup ido maxframe osx-plist xml windmove ffap dwa-util initsplit yasnippet advice advice-preload derived easy-mmode edmacro kmacro help-mode view assoc cl cl-19 paren server gnus gnus-ems nnheader gnus-util netrc time-date mail-utils mm-util mail-prsvr wid-edit autorevert delsel cus-start cus-load autoload help-fns org-install tooltip ediff-hook vc-hooks lisp-float-type mwheel ns-win easymenu tool-bar dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces cus-face files text-properties overlay md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process ns multi-tty emacs) -- Dave Abrahams BoostPro Computing http://www.boostpro.com
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:bug#7563
; Package emacs
.
(Sun, 05 Dec 2010 21:33:01 GMT) Full text and rfc822 format available.Message #8 received at 7563 <at> debbugs.gnu.org (full text, mbox):
From: Dave Abrahams <dave <at> boostpro.com> To: 7563 <at> debbugs.gnu.org Subject: related bug Date: Sun, 05 Dec 2010 16:38:32 -0500
Perhaps this report will also help resolve http://debbugs.gnu.org/cgi/bugreport.cgi?bug=1212 -- Dave Abrahams BoostPro Computing http://www.boostpro.com
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:bug#7563
; Package emacs
.
(Mon, 06 Dec 2010 00:32:02 GMT) Full text and rfc822 format available.Message #11 received at 7563 <at> debbugs.gnu.org (full text, mbox):
From: Dave Abrahams <dave <at> boostpro.com> To: 7563 <at> debbugs.gnu.org Subject: one more detail Date: Sun, 5 Dec 2010 19:37:16 -0500
split-string-and-unquote and combine-and-quote-strings are introduced in §37.2 `Shell Arguments', which seems wrong. The introductory text is misleading: The following two functions are useful for creating shell commands from individual argument strings, and taking shell command lines apart into individual arguments. -- Dave Abrahams BoostPro Computing http://www.boostpro.com
Eli Zaretskii <eliz <at> gnu.org>
:Dave Abrahams <dave <at> boostpro.com>
:Message #16 received at 7563-done <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Dave Abrahams <dave <at> boostpro.com> Cc: 7563-done <at> debbugs.gnu.org, 1212-done <at> debbugs.gnu.org Subject: Re: bug#7563: 23.2; `split-string-and-unquote' mis-documented / purpose unclear Date: Sat, 11 Dec 2010 11:50:35 +0200
> Date: Sun, 05 Dec 2010 16:28:16 -0500 > From: Dave Abrahams <dave <at> boostpro.com> > Cc: > > This function performs two types of quoting: enclosing a whole > string in double quotes `"..."', and quoting individual characters > with a backslash escape `\'. The latter is also used in Lisp > strings, so this function can handle those as well. > > > First problem: the last paragraph above is simply wrong. > split-string-and-unquote doesn't perform any type of quoting; it > un-quotes. I changed "performs" to "supports". Thanks for catching this. > Second problem: the doc implies that a string that could be executed > by the shell could be split into its constituent arguments by > split-string-and-unquote, but in general, it cannot, e.g.: > > (split-string-and-unquote "'foo bar'") => ("'foo" "bar'") > (split-string-and-unquote "foo\\ bar") => ("foo" "bar") > > I'm not sure what this function is really supposed to be for, but any > implication that it properly handles conversion into shell arguments > is highly misleading. Some motivation should be given for proper use > of split-string-and-unquote, or it should be deprecated. This has come up before; see Bug #1212 and this thread: http://lists.gnu.org/archive/html/emacs-devel/2008-10/msg00431.html The best explanation I can give you is that this function is for taking minibuffer input and converting it to a list of string arguments as required by call-process and start-process. (I added this information to the manual.) Note that the documentation does not mention "shell" anywhere. You could also gain some insight by looking at the users of this function. With those changes, I'm closing this bug report (and 1212 as well), because the issue has been already beaten to death in the above discussion. The changes I made are on the emacs-23 branch, btw, in case you want to eyeball them.
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:bug#7563
; Package emacs
.
(Sat, 11 Dec 2010 09:46:02 GMT) Full text and rfc822 format available.Message #19 received at 7563 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Dave Abrahams <dave <at> boostpro.com> Cc: 7563 <at> debbugs.gnu.org Subject: Re: bug#7563: one more detail Date: Sat, 11 Dec 2010 11:51:38 +0200
> From: Dave Abrahams <dave <at> boostpro.com> > Date: Sun, 5 Dec 2010 19:37:16 -0500 > Cc: > > split-string-and-unquote and combine-and-quote-strings are introduced > in §37.2 `Shell Arguments', which seems wrong. The introductory text > is misleading: > > The following two functions are useful for creating shell commands > from individual argument strings, and taking shell command lines apart > into individual arguments. I added some more explanations to this introductory text, which hopefully will make more sense.
Message #20 received at 7563-done <at> debbugs.gnu.org (full text, mbox):
From: Dave Abrahams <dave <at> boostpro.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 7563-done <at> debbugs.gnu.org, 1212-done <at> debbugs.gnu.org Subject: Re: bug#7563: 23.2; `split-string-and-unquote' mis-documented / purpose unclear Date: Sat, 11 Dec 2010 08:43:42 -0500
At Sat, 11 Dec 2010 11:50:35 +0200, Eli Zaretskii wrote: > > > Date: Sun, 05 Dec 2010 16:28:16 -0500 > > From: Dave Abrahams <dave <at> boostpro.com> > > > > This function performs two types of quoting: enclosing a whole > > string in double quotes `"..."', and quoting individual characters > > with a backslash escape `\'. The latter is also used in Lisp > > strings, so this function can handle those as well. > > > > > > First problem: the last paragraph above is simply wrong. > > split-string-and-unquote doesn't perform any type of quoting; it > > un-quotes. > > I changed "performs" to "supports". Thanks for catching this. But it's still wrong, I'm afraid. As I mentioned in my original report, (split-string-and-unquote "foo\\ bar") yields a list of 2 elements (I wrote it wrong below: you get a trailing backslash on "foo\\") > > Second problem: the doc implies that a string that could be executed > > by the shell could be split into its constituent arguments by > > split-string-and-unquote, but in general, it cannot, e.g.: > > > > (split-string-and-unquote "'foo bar'") => ("'foo" "bar'") > > (split-string-and-unquote "foo\\ bar") => ("foo" "bar") > > > > I'm not sure what this function is really supposed to be for, but any > > implication that it properly handles conversion into shell arguments > > is highly misleading. Some motivation should be given for proper use > > of split-string-and-unquote, or it should be deprecated. > > This has come up before; see Bug #1212 and this thread: > > http://lists.gnu.org/archive/html/emacs-devel/2008-10/msg00431.html > > The best explanation I can give you is that this function is for > taking minibuffer input and converting it to a list of string > arguments as required by call-process and start-process. (I added > this information to the manual.) Note that the documentation does not > mention "shell" anywhere. You could also gain some insight by looking > at the users of this function. > > With those changes, I'm closing this bug report (and 1212 as well), > because the issue has been already beaten to death in the above > discussion. The changes I made are on the emacs-23 branch, btw, in > case you want to eyeball them. Well, I'm sorry that the previous discussion was so unpleasant, but: * I disagree strongly that it is a proper resolution: * I spent lots of time trying to suss out what was really going on here and writing a clear bug report. I did that in the hopes that nobody else would waste time trying to figure this out again, and I don't believe that change will prevent it. * The functions' design still has nothing to do with shell quoting; they are hard-coded to work with double-quotes and only double-quotes, which is not guaranteed to work for an arbitrary definition of "shell." * I believe my report is clearer than #1212 as it identifies the cause of the original reporter's confusion, and should be evaluated on its own merits without prejudice. * Having now read the history of this issue, I am strongly convinced that the proper thing to do is deprecate these functions. I'm not sure what Emacs convention is here, but I would do it as follows: * Leave them in the source so nobody's code breaks * Change their documentation in source to note that they are deprecated * Remove their documentation from the manual or move it to an appendix of deprecated functionality. -- Dave Abrahams BoostPro Computing http://www.boostpro.com
Message #21 received at 7563-done <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Dave Abrahams <dave <at> boostpro.com> Cc: 7563-done <at> debbugs.gnu.org, 1212-done <at> debbugs.gnu.org Subject: Re: bug#7563: 23.2; `split-string-and-unquote' mis-documented / purpose unclear Date: Sat, 11 Dec 2010 17:52:02 +0200
> Date: Sat, 11 Dec 2010 08:43:42 -0500 > From: Dave Abrahams <dave <at> boostpro.com> > Cc: 7563-done <at> debbugs.gnu.org, > 1212-done <at> debbugs.gnu.org > > > > This function performs two types of quoting: enclosing a whole > > > string in double quotes `"..."', and quoting individual characters > > > with a backslash escape `\'. The latter is also used in Lisp > > > strings, so this function can handle those as well. > > > > > > > > > First problem: the last paragraph above is simply wrong. > > > split-string-and-unquote doesn't perform any type of quoting; it > > > un-quotes. > > > > I changed "performs" to "supports". Thanks for catching this. > > But it's still wrong, I'm afraid. It's not "wrong", in the sense that previously the text made it sound as if split-string-and-unquote could actually _add_ quoting. That is the only thing I intended to fix there. > As I mentioned in my original report, > > (split-string-and-unquote "foo\\ bar") > > yields a list of 2 elements (I wrote it wrong below: you get a > trailing backslash on "foo\\") That's by design; read the discussion I pointed to, where Stefan explained his rationale. You could agree or disagree with him, but evidently these functions are useful in a certain class of situations; see how they are used in a few Lisp packages that come with Emacs. > * I spent lots of time trying to suss out what was really going on > here and writing a clear bug report. I did that in the hopes that > nobody else would waste time trying to figure this out again, and > I don't believe that change will prevent it. Now that the manual explicitly mentions call-process and start-process, which are the clients of this function, what else is missing or unclear? Please be specific. > * The functions' design still has nothing to do with shell quoting; > they are hard-coded to work with double-quotes and only > double-quotes, which is not guaranteed to work for an arbitrary > definition of "shell." I believe the manual says precisely that. If the problem is with mentioning "shell", would removing that solve this difficulty? > * Having now read the history of this issue, I am strongly convinced > that the proper thing to do is deprecate these functions. They were introduced fairly recently, and I'm sure they were added for good reasons. I'll let Stefan respond in detail.
Message #22 received at 7563-done <at> debbugs.gnu.org (full text, mbox):
From: Dave Abrahams <dave <at> boostpro.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: "7563-done <at> debbugs.gnu.org" <7563-done <at> debbugs.gnu.org>, "1212-done <at> debbugs.gnu.org" <1212-done <at> debbugs.gnu.org> Subject: Re: bug#7563: 23.2; `split-string-and-unquote' mis-documented / purpose unclear Date: Sat, 11 Dec 2010 12:57:30 -0500
On Dec 11, 2010, at 10:52 AM, Eli Zaretskii <eliz <at> gnu.org> wrote: >> Date: Sat, 11 Dec 2010 08:43:42 -0500 >> From: Dave Abrahams <dave <at> boostpro.com> >> Cc: 7563-done <at> debbugs.gnu.org, >> 1212-done <at> debbugs.gnu.org >> >>>> This function performs two types of quoting: enclosing a whole >>>> string in double quotes `"..."', and quoting individual characters >>>> with a backslash escape `\'. The latter is also used in Lisp >>>> strings, so this function can handle those as well. >>>> >>>> >>>> First problem: the last paragraph above is simply wrong. >>>> split-string-and-unquote doesn't perform any type of quoting; it >>>> un-quotes. >>> >>> I changed "performs" to "supports". Thanks for catching this. >> >> But it's still wrong, I'm afraid. > > It's not "wrong", in the sense that previously the text made it sound > as if split-string-and-unquote could actually _add_ quoting. That is > the only thing I intended to fix there. Sorry, let me precise: your fix is correct inasmuch as it fulfills your intention, but the text you were working on is still wrong because it says quite clearly that backslash escaping is supported, but as I have shown, it is not. > >> As I mentioned in my original report, >> >> (split-string-and-unquote "foo\\ bar") >> >> yields a list of 2 elements (I wrote it wrong below: you get a >> trailing backslash on "foo\\") > > That's by design; read the discussion I pointed to, where Stefan > explained his rationale. You could agree or disagree with him, but > evidently these functions are useful in a certain class of situations; > see how they are used in a few Lisp packages that come with Emacs. Fine; I'm not arguing with their functionality. I'm arguing that they're mis-documented. > >> * I spent lots of time trying to suss out what was really going on >> here and writing a clear bug report. I did that in the hopes that >> nobody else would waste time trying to figure this out again, and >> I don't believe that change will prevent it. > > Now that the manual explicitly mentions call-process and > start-process, which are the clients of this function, what else is > missing or unclear? Please be specific. Specifically it specifically states they handle backslashes, and strongly implies that they have generally-useful semantics for interacting with arbitrary shells, when in fact they are essentially implementation details of call-/start-process whose semantics are only appropriate to an undocumented set of conditions set up in those two functions. >> * The functions' design still has nothing to do with shell quoting; >> they are hard-coded to work with double-quotes and only >> double-quotes, which is not guaranteed to work for an arbitrary >> definition of "shell." > > I believe the manual says precisely that. If the problem is with > mentioning "shell", would removing that solve this difficulty? It would certainly help >> * Having now read the history of this issue, I am strongly convinced >> that the proper thing to do is deprecate these functions. > > They were introduced fairly recently, and I'm sure they were added for > good reasons. I'll let Stefan respond in detail. I'm sure they belong in the codebase, but fairly certain they don't belong in the docs until they can be documented accurately. BoostPro Computing * http://boostpro.com [Sent from coveted but awkward mobile device]
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:bug#7563
; Package emacs
.
(Sat, 11 Dec 2010 18:45:02 GMT) Full text and rfc822 format available.Message #25 received at 7563 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Dave Abrahams <dave <at> boostpro.com> Cc: 7563 <at> debbugs.gnu.org Subject: Re: bug#7563: 23.2; `split-string-and-unquote' mis-documented / purpose unclear Date: Sat, 11 Dec 2010 20:50:34 +0200
> Cc: "7563-done <at> debbugs.gnu.org" <7563-done <at> debbugs.gnu.org>, > "1212-done <at> debbugs.gnu.org" <1212-done <at> debbugs.gnu.org> > From: Dave Abrahams <dave <at> boostpro.com> > Date: Sat, 11 Dec 2010 12:57:30 -0500 > > Sorry, let me precise: your fix is correct inasmuch as it fulfills your intention, but the text you were working on is still wrong because it says quite clearly that backslash escaping is supported, but as I have shown, it is not. Quoting with backslashes _is_ supported, in the Lisp string style. Try this, for example: (split-string-and-unquote "\"foo\\\"bar\" bar") => ("foo\"bar" "bar") > Specifically it specifically states they handle backslashes, and strongly implies that they have generally-useful semantics for interacting with arbitrary shells, when in fact they are essentially implementation details of call-/start-process whose semantics are only appropriate to an undocumented set of conditions set up in those two functions. I tried to make it more clear that these functions are mainly for working with command-line arguments of call-/start-process. > >> * The functions' design still has nothing to do with shell quoting; > >> they are hard-coded to work with double-quotes and only > >> double-quotes, which is not guaranteed to work for an arbitrary > >> definition of "shell." > > > > I believe the manual says precisely that. If the problem is with > > mentioning "shell", would removing that solve this difficulty? > > It would certainly help Done.
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:bug#7563
; Package emacs
.
(Sat, 11 Dec 2010 19:37:02 GMT) Full text and rfc822 format available.Message #28 received at 7563 <at> debbugs.gnu.org (full text, mbox):
From: Dave Abrahams <dave <at> boostpro.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: "7563 <at> debbugs.gnu.org" <7563 <at> debbugs.gnu.org> Subject: Re: bug#7563: 23.2; `split-string-and-unquote' mis-documented / purpose unclear Date: Sat, 11 Dec 2010 14:41:52 -0500
BoostPro Computing * http://boostpro.com [Sent from coveted but awkward mobile device] -- On Dec 11, 2010, at 1:50 PM, Eli Zaretskii <eliz <at> gnu.org> wrote: >>> >>> I believe the manual says precisely that. If the problem is with >>> mentioning "shell", would removing that solve this difficulty? >> >> It would certainly help > > Done. Thanks. I'm away from the docs ATM but IIRC this stuff is documented in a section on interacting with the shell but it seems from the way you describe the behavior that this function is all about Emacs string processing and should be elsewhere or it will mislead people
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:bug#7563
; Package emacs
.
(Sat, 11 Dec 2010 20:36:01 GMT) Full text and rfc822 format available.Message #31 received at 7563 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Dave Abrahams <dave <at> boostpro.com> Cc: 7563 <at> debbugs.gnu.org Subject: Re: bug#7563: 23.2; `split-string-and-unquote' mis-documented / purpose unclear Date: Sat, 11 Dec 2010 22:42:06 +0200
> Cc: "7563 <at> debbugs.gnu.org" <7563 <at> debbugs.gnu.org> > From: Dave Abrahams <dave <at> boostpro.com> > Date: Sat, 11 Dec 2010 14:41:52 -0500 > > Thanks. I'm away from the docs ATM but IIRC this stuff is documented in a section on interacting with the shell but it seems from the way you describe the behavior that this function is all about Emacs string processing and should be elsewhere or it will mislead people We cannot have a separate section for every possible sub-class of features. The description of these functions is in the section named "Shell Arguments", indeed, but this section is part of a chapter named "Processes", and it deals with a specialized kind of quoting, so I don't see how this will mislead, given the explicit references to call-process and start-process. If naming sections is important, we could rename the section to something like "Command Arguments".
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:bug#7563
; Package emacs
.
(Sat, 11 Dec 2010 22:22:02 GMT) Full text and rfc822 format available.Message #34 received at 7563 <at> debbugs.gnu.org (full text, mbox):
From: Dave Abrahams <dave <at> boostpro.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: "7563 <at> debbugs.gnu.org" <7563 <at> debbugs.gnu.org> Subject: Re: bug#7563: 23.2; `split-string-and-unquote' mis-documented / purpose unclear Date: Sat, 11 Dec 2010 17:27:16 -0500
IMO they would be much more appropriately documented right next to split-string and concat BoostPro Computing * http://boostpro.com [Sent from coveted but awkward mobile device] -- On Dec 11, 2010, at 3:42 PM, Eli Zaretskii <eliz <at> gnu.org> wrote: >> Cc: "7563 <at> debbugs.gnu.org" <7563 <at> debbugs.gnu.org> >> From: Dave Abrahams <dave <at> boostpro.com> >> Date: Sat, 11 Dec 2010 14:41:52 -0500 >> >> Thanks. I'm away from the docs ATM but IIRC this stuff is documented in a section on interacting with the shell but it seems from the way you describe the behavior that this function is all about Emacs string processing and should be elsewhere or it will mislead people > > We cannot have a separate section for every possible sub-class of > features. The description of these functions is in the section named > "Shell Arguments", indeed, but this section is part of a chapter named > "Processes", and it deals with a specialized kind of quoting, so I > don't see how this will mislead, given the explicit references to > call-process and start-process. > > If naming sections is important, we could rename the section to > something like "Command Arguments".
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sun, 09 Jan 2011 12:24:04 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.