commit 6cd2629bd1b3ce77d29ac28e29237c94a4197116 (HEAD, refs/remotes/origin/master) Author: Paul Eggert Date: Mon Aug 31 00:28:55 2015 -0700 Quoting fixes in lisp/org * lisp/org/org-agenda.el (org-search-view, org-todo-list) (org-tags-view): * lisp/org/org-capture.el (org-capture-mode) * lisp/org/org-ctags.el (org-ctags-visit-buffer-or-file) (org-ctags-ask-append-topic): * lisp/org/org.el (org-time-string-to-time) (org-time-string-to-absolute): * lisp/org/org-ctags.el (org-ctags-visit-buffer-or-file) (org-ctags-ask-append-topic): * lisp/org/org.el (org-time-string-to-time) (org-time-string-to-absolute): Respect ‘text-quoting-style’ in diagnostics. * lisp/org/org-agenda.el (org-agenda-custom-commands) (org-agenda-dim-blocked-tasks): Plural of TODO is TODOs, not TODO’s. * lisp/org/org-capture.el (org-capture-fill-template): Avoid contraction in output file that might be ASCII. * lisp/org/org-compat.el (format-message): Define if not already defined, for backward compatibility. * lisp/org/org-src.el (org-edit-src-save): * lisp/org/org.el (org-cycle, org-ctrl-c-ctrl-c): Escape apostrophes in diagnostics. diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el index b73e130..a3c8b84 100644 --- a/lisp/org/org-agenda.el +++ b/lisp/org/org-agenda.el @@ -433,7 +433,7 @@ This will be spliced into the custom type of (defcustom org-agenda-custom-commands - '(("n" "Agenda and all TODO's" ((agenda "") (alltodo "")))) + '(("n" "Agenda and all TODOs" ((agenda "") (alltodo "")))) "Custom commands for the agenda. These commands will be offered on the splash screen displayed by the agenda dispatcher \\[org-agenda]. Each entry is a list like this: @@ -3815,7 +3815,7 @@ FILTER-ALIST is an alist of filters we need to apply when (defvar org-depend-tag-blocked) (defun org-agenda-dim-blocked-tasks (&optional invisible) - "Dim currently blocked TODO's in the agenda display. + "Dim currently blocked TODOs in the agenda display. When INVISIBLE is non-nil, hide currently blocked TODO instead of dimming them." (interactive "P") @@ -4647,7 +4647,8 @@ in `org-agenda-text-search-extra-files'." (add-text-properties pos (1- (point)) (list 'face 'org-warning)) (setq pos (point)) (unless org-agenda-multi - (insert "Press `[', `]' to add/sub word, `{', `}' to add/sub regexp, `C-u r' to edit\n") + (insert (substitute-command-keys + "Press `[', `]' to add/sub word, `{', `}' to add/sub regexp, `C-u r' to edit\n")) (add-text-properties pos (1- (point)) (list 'face 'org-agenda-structure)))) (org-agenda-mark-header-line (point-min)) @@ -4741,7 +4742,7 @@ for a keyword. A numeric prefix directly selects the Nth keyword in org-select-this-todo-keyword)) (setq pos (point)) (unless org-agenda-multi - (insert "Available with `N r': (0)[ALL]") + (insert (substitute-command-keys "Available with `N r': (0)[ALL]")) (let ((n 0) s) (mapc (lambda (x) (setq s (format "(%d)%s" (setq n (1+ n)) x)) @@ -4836,7 +4837,8 @@ The prefix arg TODO-ONLY limits the search to TODO entries." (add-text-properties pos (1- (point)) (list 'face 'org-warning)) (setq pos (point)) (unless org-agenda-multi - (insert "Press `C-u r' to search again with new search string\n")) + (insert (substitute-command-keys + "Press `C-u r' to search again with new search string\n"))) (add-text-properties pos (1- (point)) (list 'face 'org-agenda-structure))) (org-agenda-mark-header-line (point-min)) (when rtnall diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el index 64e3015..7b4b6ea 100644 --- a/lisp/org/org-capture.el +++ b/lisp/org/org-capture.el @@ -434,7 +434,8 @@ Turning on this mode runs the normal hook `org-capture-mode-hook'." nil " Rem" org-capture-mode-map (org-set-local 'header-line-format - "Capture buffer. Finish `C-c C-c', refile `C-c C-w', abort `C-c C-k'.")) + (substitute-command-keys + "Capture buffer. Finish `C-c C-c', refile `C-c C-w', abort `C-c C-k'."))) (define-key org-capture-mode-map "\C-c\C-c" 'org-capture-finalize) (define-key org-capture-mode-map "\C-c\C-k" 'org-capture-kill) (define-key org-capture-mode-map "\C-c\C-w" 'org-capture-refile) @@ -1600,7 +1601,7 @@ The template may still contain \"%?\" for cursor positioning." (delete-region start end) (condition-case error (insert-file-contents filename) - (error (insert (format "%%![Couldn't insert %s: %s]" + (error (insert (format "%%![Could not insert %s: %s]" filename error))))))) ;; %() embedded elisp (org-capture-expand-embedded-elisp) diff --git a/lisp/org/org-compat.el b/lisp/org/org-compat.el index d3c477e..4c90cda 100644 --- a/lisp/org/org-compat.el +++ b/lisp/org/org-compat.el @@ -418,6 +418,10 @@ Pass BUFFER to the XEmacs version of `move-to-column'." (unless (fboundp 'user-error) (defalias 'user-error 'error)) +;; ‘format-message’ is available only from 25 on +(unless (fboundp 'format-message) + (defalias 'format-message 'format)) + (defmacro org-no-popups (&rest body) "Suppress popup windows. Let-bind some variables to nil around BODY to achieve the desired diff --git a/lisp/org/org-ctags.el b/lisp/org/org-ctags.el index 911ee2e..75de8c2 100644 --- a/lisp/org/org-ctags.el +++ b/lisp/org/org-ctags.el @@ -394,7 +394,8 @@ the new file." (org-open-file filename t)) ((or (eql create t) (and (eql create 'ask) - (y-or-n-p (format "File `%s.org' not found; create?" name)))) + (y-or-n-p (format-message + "File `%s.org' not found; create?" name)))) (org-ctags-open-file filename name)) (t ;; File does not exist, and we don't want to create it. nil)))) @@ -433,8 +434,8 @@ the heading a destination for the tag `NAME'." "This function is intended to be used in ORG-OPEN-LINK-FUNCTIONS. Wrapper for org-ctags-append-topic, which first asks the user if they want to append a new topic." - (if (y-or-n-p (format "Topic `%s' not found; append to end of buffer?" - name)) + (if (y-or-n-p (format-message + "Topic `%s' not found; append to end of buffer?" name)) (org-ctags-append-topic name narrowp) nil)) diff --git a/lisp/org/org-src.el b/lisp/org/org-src.el index 4f79986..8a6c77a 100644 --- a/lisp/org/org-src.el +++ b/lisp/org/org-src.el @@ -801,7 +801,7 @@ with \",*\", \",#+\", \",,*\" and \",,#+\"." "Save parent buffer with current state source-code buffer." (interactive) (if (string-match "Fixed Width" (buffer-name)) - (user-error "Use C-c ' to save and exit, C-c C-k to abort editing") + (user-error "%s" "Use C-c ' to save and exit, C-c C-k to abort editing") (org-src-in-org-buffer (save-buffer)))) (declare-function org-babel-tangle "ob-tangle" (&optional arg target-file lang)) diff --git a/lisp/org/org.el b/lisp/org/org.el index acfc6f0..963da77 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -6629,7 +6629,7 @@ in special contexts. ;; Table: enter it or move to the next field. ((org-at-table-p 'any) (if (org-at-table.el-p) - (message "Use C-c ' to edit table.el tables") + (message "%s" "Use C-c ' to edit table.el tables") (if arg (org-table-edit-field t) (org-table-justify-field-maybe) (call-interactively 'org-table-next-field)))) @@ -17102,7 +17102,7 @@ days in order to avoid rounding problems." (error (error "Bad timestamp `%s'%s\nError was: %s" s (if (not (and buffer pos)) "" - (format " at %d in buffer `%s'" pos buffer)) + (format-message " at %d in buffer `%s'" pos buffer)) (cdr errdata))))) (defun org-time-string-to-seconds (s) @@ -17130,7 +17130,7 @@ The variable `date' is bound by the calendar when this is called." (error (error "Bad timestamp `%s'%s\nError was: %s" s (if (not (and buffer pos)) "" - (format " at %d in buffer `%s'" pos buffer)) + (format-message " at %d in buffer `%s'" pos buffer)) (cdr errdata)))))))) (defun org-days-to-iso-week (days) @@ -20446,7 +20446,7 @@ This command does many different things, depending on context: ;; a `table.el' type, just give up. At a table row or ;; cell, maybe recalculate line but always align table. (if (eq (org-element-property :type context) 'table.el) - (message "Use C-c ' to edit table.el tables") + (message "%s" "Use C-c ' to edit table.el tables") (let ((org-enable-table-editor t)) (if (or (eq type 'table) ;; Check if point is at a TBLFM line. commit 41ed99a322f35639bdc7402b1b7089d85782e8d3 Author: Paul Eggert Date: Mon Aug 31 00:04:11 2015 -0700 Treat “instead” strings as docstrings * lisp/emacs-lisp/bytecomp.el (byte-compile-form): * lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning): Substitute quotes in instead strings. diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 8b8b667..7182c0b 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -2989,7 +2989,9 @@ for symbols generated by the byte compiler itself." (byte-compile-warn "‘%s’ is for interactive use only%s" fn (cond ((stringp interactive-only) - (format "; %s" interactive-only)) + (format "; %s" + (substitute-command-keys + interactive-only))) ((and (symbolp 'interactive-only) (not (eq interactive-only t))) (format-message "; use ‘%s’ instead." diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el index ff359e6..6189976 100644 --- a/lisp/emacs-lisp/macroexp.el +++ b/lisp/emacs-lisp/macroexp.el @@ -149,7 +149,7 @@ and also to avoid outputting the warning during normal execution." (format-message "‘%s’ is an obsolete %s%s%s" fun type (if asof (concat " (as of " asof ")") "") - (cond ((stringp instead) (concat "; " instead)) + (cond ((stringp instead) (concat "; " (substitute-command-keys instead))) (instead (format-message "; use ‘%s’ instead." instead)) (t "."))))) commit 8d76c00728eb8ba41d04bc9344181aeffe158501 Author: Nicolas Petton Date: Mon Aug 31 08:54:11 2015 +0200 Better documentation of seq-let * doc/lispref/sequences.texi (Sequence Functions): Rephrase the documentation of seq-let. diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi index eb15228..12ed881 100644 --- a/doc/lispref/sequences.texi +++ b/doc/lispref/sequences.texi @@ -833,10 +833,9 @@ vector or string (@pxref{Iteration} for more information about the @defmac seq-let arguments sequence body@dots{} @cindex sequence destructuring - This macro binds the variables in defined in the sequence -@var{arguments} to the elements of the sequence @var{sequence}. -@var{arguments} can itself include sequences allowing for nested -destructuring. + This macro binds the variables defined in @var{arguments} to the +elements of the sequence @var{sequence}. @var{arguments} can itself +include sequences allowing for nested destructuring. The @var{arguments} sequence can also include the @code{&rest} marker followed by a variable name to be bound to the rest of commit 6514fe88904e658c527deae5be9a3f6ac539653f Author: Paul Eggert Date: Sun Aug 30 23:35:41 2015 -0700 * lisp/international/ccl.el: Fix quoting. diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el index b9cc163..08c18e1 100644 --- a/lisp/international/ccl.el +++ b/lisp/international/ccl.el @@ -967,7 +967,8 @@ is a list of CCL-BLOCKs." (let ((len (length ccl-code)) (buffer-mag (aref ccl-code 0))) (cond ((= buffer-mag 0) - (insert "Don’t output anything.\n")) + (insert (substitute-command-keys + "Don’t output anything.\n"))) ((= buffer-mag 1) (insert "Out-buffer must be as large as in-buffer.\n")) (t commit 9ffb6ce9a7b5692f8470ea227e677a16a6654f66 Author: Paul Eggert Date: Sun Aug 30 23:10:51 2015 -0700 Quoting fixes in lisp/international and lisp/leim * lisp/international/ccl.el (ccl-dump, ccl-dump-call): * lisp/international/ja-dic-utl.el (skkdic-lookup-key): * lisp/international/mule-cmds.el: (select-safe-coding-system-interactively, leim-list-file-name): * lisp/international/quail.el (quail-use-package, quail-help): * lisp/international/titdic-cnv.el (tit-process-header) (miscdic-convert): Respect text quoting style in doc strings and diagnostics. * lisp/international/quail.el (lisp/international/quail.el): * lisp/leim/quail/ethiopic.el ("ethiopic"): Escape apostrophes in doc strings. diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el index 429c14b..b9cc163 100644 --- a/lisp/international/ccl.el +++ b/lisp/international/ccl.el @@ -967,7 +967,7 @@ is a list of CCL-BLOCKs." (let ((len (length ccl-code)) (buffer-mag (aref ccl-code 0))) (cond ((= buffer-mag 0) - (insert "Don't output anything.\n")) + (insert "Don’t output anything.\n")) ((= buffer-mag 1) (insert "Out-buffer must be as large as in-buffer.\n")) (t @@ -1127,7 +1127,7 @@ is a list of CCL-BLOCKs." (defun ccl-dump-call (ignore cc) (let ((subroutine (car (ccl-get-next-code)))) - (insert (format "call subroutine `%s'\n" subroutine)))) + (insert (format-message "call subroutine `%s'\n" subroutine)))) (defun ccl-dump-write-const-string (rrr cc) (if (= rrr 0) diff --git a/lisp/international/ja-dic-utl.el b/lisp/international/ja-dic-utl.el index 8400c47..7005ba8 100644 --- a/lisp/international/ja-dic-utl.el +++ b/lisp/international/ja-dic-utl.el @@ -109,13 +109,14 @@ without okurigana are placed at the head of the returned list." (load-library "ja-dic/ja-dic") (error (ding) (with-output-to-temp-buffer "*Help*" - (princ "The library `ja-dic' can't be loaded. + (princ (substitute-command-keys "\ +The library `ja-dic' can't be loaded. The most common case is that you have not yet installed the library included in LEIM (Libraries of Emacs Input Method) which is distributed separately from Emacs. -LEIM is available from the same ftp directory as Emacs.")) +LEIM is available from the same ftp directory as Emacs."))) (signal (car err) (cdr err))))) (let ((vec (make-vector len 0)) diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 4ee3b28..5934919 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -744,7 +744,8 @@ e.g., for sending an email message.\n ") (when unsafe (insert (if rejected "The other coding systems" "However, each of them") - " encountered characters it couldn't encode:\n") + (substitute-command-keys + " encountered characters it couldn't encode:\n")) (dolist (coding unsafe) (insert (format " %s cannot encode these:" (car coding))) (let ((i 0) @@ -1285,9 +1286,9 @@ Emacs loads this file at startup time.") ;; INPUT-METHOD LANGUAGE-NAME ACTIVATE-FUNC ;; TITLE DESCRIPTION ;; ARG ...) -;; See the function `register-input-method' for the meanings of the arguments. +;; See the function ‘register-input-method’ for the meanings of the arguments. ;; -;; If this directory is included in `load-path', Emacs automatically +;; If this directory is included in ‘load-path’, Emacs automatically ;; loads this file at startup time. " diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 8c9d145..01676ac 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -252,15 +252,16 @@ This activates input method defined by PACKAGE-NAME by running (with-output-to-temp-buffer "*Help*" (princ "Quail package \"") (princ package-name) - (princ "\" can't be activated\n because library \"") + (princ (substitute-command-keys + "\" can't be activated\n because library \"")) (princ (car libraries)) - (princ "\" is not in `load-path'. + (princ (substitute-command-keys "\" is not in `load-path'. The most common case is that you have not yet installed appropriate libraries in LEIM (Libraries of Emacs Input Method) which is distributed separately from Emacs. -LEIM is available from the same ftp directory as Emacs.")) +LEIM is available from the same ftp directory as Emacs."))) (error "Can't use the Quail package `%s'" package-name)) (setq libraries (cdr libraries)))))) (quail-select-package package-name) @@ -625,7 +626,7 @@ While this input method is active, the variable "Standard keyboard layout of printable characters Quail assumes. See the documentation of `quail-keyboard-layout' for this format. This layout is almost the same as that of VT100, - but the location of key \\ (backslash) is just right of key ' (single-quote), + but the location of key \\ (backslash) is just right of key \\=' (single-quote), not right of RETURN key.") (defconst quail-keyboard-layout-len 180) @@ -2533,35 +2534,37 @@ package to describe." (let ((done-list nil)) ;; Show keyboard layout if the current package requests it.. (when (quail-show-layout) - (insert " + (insert (substitute-command-keys " KEYBOARD LAYOUT --------------- This input method works by translating individual input characters. -Assuming that your actual keyboard has the `") +Assuming that your actual keyboard has the `")) (help-insert-xref-button quail-keyboard-layout-type 'quail-keyboard-layout-button quail-keyboard-layout-type) - (insert "' layout, + (insert (substitute-command-keys "' layout, translation results in the following \"virtual\" keyboard layout \(the labels on the keys indicate what character will be produced by each key, with and without holding Shift): -") +")) (setq done-list (quail-insert-kbd-layout quail-keyboard-layout)) - (insert "If your keyboard has a different layout, rearranged from -`") + (insert (substitute-command-keys "\ +If your keyboard has a different layout, rearranged from +`")) (help-insert-xref-button "standard" 'quail-keyboard-layout-button "standard") - (insert "', the \"virtual\" keyboard you get with this input method + (insert (substitute-command-keys "\ +', the \"virtual\" keyboard you get with this input method will be rearranged in the same way. You can set the variable `quail-keyboard-layout-type' to specify the physical layout of your keyboard; the tables shown in documentation of input methods including this one are based on the physical keyboard layout as specified with that variable. -") +")) (help-insert-xref-button "[customize keyboard layout]" 'quail-keyboard-customize-button 'quail-keyboard-layout-type) diff --git a/lisp/international/titdic-cnv.el b/lisp/international/titdic-cnv.el index 1186c71..6a15bc4 100644 --- a/lisp/international/titdic-cnv.el +++ b/lisp/international/titdic-cnv.el @@ -273,7 +273,8 @@ SPC, 6, 3, 4, or 7 specifying a tone (SPC:$(0?v(N(B, 6:$(0Dm(N(B, 3:$(0&9Vy (princ ";; Quail package `") (princ package) (princ "\n") - (princ ";; Generated by the command `titdic-convert'\n") + (princ (substitute-command-keys + ";; Generated by the command `titdic-convert'\n")) (princ ";;\tOriginal TIT dictionary file: ") (princ (file-name-nondirectory filename)) (princ "\n\n") @@ -1150,8 +1151,9 @@ the generated Quail package is saved." (setq coding-system-for-write (coding-system-change-eol-conversion coding 'unix)) (with-temp-file (expand-file-name quailfile dirname) - (insert (format ";; Quail package `%s'\n" name)) - (insert ";; Generated by the command `miscdic-convert'\n") + (insert (format-message ";; Quail package `%s'\n" name)) + (insert (format-message + ";; Generated by the command `miscdic-convert'\n")) (insert ";; Source dictionary file: " dicfile "\n") (insert ";; Copyright notice of the source file\n") (insert ";;------------------------------------------------------\n") diff --git a/lisp/leim/quail/ethiopic.el b/lisp/leim/quail/ethiopic.el index 7a1cddf..eaf3a03 100644 --- a/lisp/leim/quail/ethiopic.el +++ b/lisp/leim/quail/ethiopic.el @@ -60,7 +60,7 @@ S-SPC or `M-x ethio-insert-ethio-space' Always insert an Ethiopic word separator `፡'. With a prefix number, insert that many word separators. -C-' or `M-x ethio-gemination' +C-\\=' or `M-x ethio-gemination' Compose the character before the point with the Ethiopic gemination mark. If the character is already composed, decompose it and remove the gemination mark." commit d1729604c4ddb9a5314f3d8a1e0c76536cffad85 Author: Paul Eggert Date: Sun Aug 30 23:02:34 2015 -0700 Make ‘text-quoting-style’ a plain defvar It doesn’t need customization, as it’s likely useful only by experts. Suggested by Stefan Monnier in: http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg01020.html * lisp/cus-start.el: Remove doc.c section for builtin customized vars. diff --git a/lisp/cus-start.el b/lisp/cus-start.el index 2b9cc09..7e25119 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -220,15 +220,6 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of (visible-bell display boolean) (no-redraw-on-reenter display boolean) - ;; doc.c - (text-quoting-style - help - (choice - (const :tag "Quote with curved single quotes \\=‘like this\\=’" curve) - (const :tag "Quote with straight apostrophes \\='like this\\='" straight) - (const :tag "Quote with grave accent and apostrophe \\=`like this\\='" grave) - (const :tag "Use curved quotes if displayable, grave accent and apostrophe otherwise" nil)) - "25.1") ;; dosfns.c (dos-display-scancodes display boolean) (dos-hyper-key keyboard integer) commit 2cac2e2e1067b6f48e96667b9c030cdb5df88af4 Author: Paul Eggert Date: Sun Aug 30 22:53:21 2015 -0700 Quoting fixes in lisp/textmodes * lisp/textmodes/bibtex.el (bibtex-validate) (bibtex-validate-globally, bibtex-search-entries): * lisp/textmodes/ispell.el (ispell-command-loop): * lisp/textmodes/page-ext.el (search-pages, pages-directory): * lisp/textmodes/texinfmt.el (texinfmt-version) (texinfo-format-region, texinfo-format-buffer-1): * lisp/textmodes/two-column.el (2C-split): Respect text quoting style in doc strings and diagnostics. * lisp/textmodes/conf-mode.el (conf-mode-map, conf-quote-normal): * lisp/textmodes/sgml-mode.el (sgml-specials, sgml-mode): Escape apostrophes in doc strings. diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index b1232d4..279f657 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el @@ -4232,7 +4232,7 @@ Return t if test was successful, nil otherwise." (cond ((not previous)) ((member key key-list) (push (cons (bibtex-current-line) - (format "Duplicate key `%s'" key)) + (format-message "Duplicate key `%s'" key)) error-list)) ((and bibtex-maintain-sorted-entries (not (bibtex-lessp previous current))) @@ -4255,8 +4255,9 @@ Return t if test was successful, nil otherwise." (cdr (assoc-string (car key) bibtex-reference-keys))) (bibtex-search-entry (car key)) (push (cons (bibtex-current-line) - (format "Duplicate key `%s' in %s" (car key) - (abbreviate-file-name (buffer-file-name buffer)))) + (format-message + "Duplicate key `%s' in %s" (car key) + (abbreviate-file-name (buffer-file-name buffer)))) error-list)))) (when test-thoroughly @@ -4306,14 +4307,16 @@ Return t if test was successful, nil otherwise." (if (setq idx (nth 3 field)) (bibtex-vec-push alt-expect idx (car field)) (push (cons beg-line - (format "Required field `%s' missing" - (car field))) + (format-message + "Required field `%s' missing" + (car field))) error-list))) (dotimes (idx num-alt) (unless (aref alt-fields idx) (push (cons beg-line - (format "Alternative fields `%s' missing" - (aref alt-expect idx))) + (format-message + "Alternative fields `%s' missing" + (aref alt-expect idx))) error-list)))))))) (bibtex-progress-message 'done))))) @@ -4327,7 +4330,8 @@ Return t if test was successful, nil otherwise." (unless (eq major-mode 'compilation-mode) (compilation-mode)) (let ((inhibit-read-only t)) (delete-region (point-min) (point-max)) - (insert "BibTeX mode command `bibtex-validate'\n" + (insert (substitute-command-keys + "BibTeX mode command `bibtex-validate'\n") (if syntax-error "Maybe undetected errors due to syntax errors. \ Correct and validate again.\n" @@ -4362,9 +4366,10 @@ Return t if test was successful, nil otherwise." (if (or (and strings (bibtex-string= entry-type "string")) (assoc-string entry-type bibtex-entry-alist t)) (if (member key key-list) - (push (format "%s:%d: Duplicate key `%s'\n" - (buffer-file-name) - (bibtex-current-line) key) + (push (format-message + "%s:%d: Duplicate key `%s'\n" + (buffer-file-name) + (bibtex-current-line) key) error-list) (push key key-list)))) (push (cons buffer key-list) buffer-key-list))))) @@ -4377,9 +4382,10 @@ Return t if test was successful, nil otherwise." (dolist (key (cdr (assq buffer buffer-key-list))) (when (assoc-string key current-keys) (bibtex-search-entry key) - (push (format "%s:%d: Duplicate key `%s' in %s\n" - (buffer-file-name) (bibtex-current-line) key - (abbreviate-file-name (buffer-file-name buffer))) + (push (format-message + "%s:%d: Duplicate key `%s' in %s\n" + (buffer-file-name) (bibtex-current-line) key + (abbreviate-file-name (buffer-file-name buffer))) error-list)))))) ;; Process error list @@ -4389,7 +4395,8 @@ Return t if test was successful, nil otherwise." (unless (eq major-mode 'compilation-mode) (compilation-mode)) (let ((inhibit-read-only t)) (delete-region (point-min) (point-max)) - (insert "BibTeX mode command `bibtex-validate-globally'\n\n") + (insert (substitute-command-keys + "BibTeX mode command `bibtex-validate-globally'\n\n")) (dolist (err (sort error-list 'string-lessp)) (insert err)) (set-buffer-modified-p nil)) (goto-char (point-min)) @@ -5280,7 +5287,7 @@ where FILE is the BibTeX file of ENTRY." (bibtex-display-entries entries) (message "No BibTeX entries %smatching `%s'" (if (string= "" field) "" - (format "with field `%s' " field)) + (format-message "with field `%s' " field)) regexp))) entries)) diff --git a/lisp/textmodes/conf-mode.el b/lisp/textmodes/conf-mode.el index b6bea21..267d23f 100644 --- a/lisp/textmodes/conf-mode.el +++ b/lisp/textmodes/conf-mode.el @@ -122,7 +122,7 @@ not align (only setting space according to `conf-assignment-space')." (define-key menu-map [c-s0] '("--")) (define-key menu-map [conf-quote-normal] '(menu-item "Set quote syntax normal" conf-quote-normal - :help "Set the syntax of \' and \" to punctuation")) + :help "Set the syntax of \\=' and \" to punctuation")) (define-key menu-map [conf-align-assignments] '(menu-item "Align assignments" conf-align-assignments :help "Align assignments")) @@ -296,8 +296,8 @@ contents of the region. Otherwise, operate on the whole buffer." (defun conf-quote-normal (arg) - "Set the syntax of ' and \" to punctuation. -With prefix arg, only do it for ' if 1, or only for \" if 2. + "Set the syntax of \\=' and \" to punctuation. +With prefix arg, only do it for \\=' if 1, or only for \" if 2. This only affects the current buffer. Some conf files use quotes to delimit strings, while others allow quotes as simple parts of the assigned value. In those files font locking will be wrong, diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index dda983b..3fe21c4 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -2297,7 +2297,8 @@ Global `ispell-quit' set to start location to continue spell session." (insert "\n\t")) (insert (car guess) " ") (setq guess (cdr guess))) - (insert "\nUse option `i' to accept this spelling and put it in your private dictionary.\n"))) + (insert (substitute-command-keys + "\nUse option `i' to accept this spelling and put it in your private dictionary.\n")))) (while choices (when (> (+ 7 (current-column) (length (car choices)) diff --git a/lisp/textmodes/page-ext.el b/lisp/textmodes/page-ext.el index d3bd33e..57134e0 100644 --- a/lisp/textmodes/page-ext.el +++ b/lisp/textmodes/page-ext.el @@ -395,8 +395,8 @@ Point is left in the body of page." "Search for REGEXP, starting from point, and narrow to page it is in." (interactive (list (read-string - (format "Search for `%s' (end with RET): " - (or pages-last-search "regexp"))))) + (format-message "Search for `%s' (end with RET): " + (or pages-last-search "regexp"))))) (if (equal regexp "") (setq regexp pages-last-search) (setq pages-last-search regexp)) @@ -549,16 +549,18 @@ directory for only the accessible portion of the buffer." (list nil nil (read-string - (format "Select according to `%s' (end with RET): " - (or pages-directory-previous-regexp "regexp"))))) + (format-message + "Select according to `%s' (end with RET): " + (or pages-directory-previous-regexp "regexp"))))) ((> (prefix-numeric-value current-prefix-arg) 0) (list t t nil)) ((< (prefix-numeric-value current-prefix-arg) 0) (list nil t (read-string - (format "Select according to `%s' (end with RET): " - (or pages-directory-previous-regexp "regexp"))))))) + (format-message + "Select according to `%s' (end with RET): " + (or pages-directory-previous-regexp "regexp"))))))) (if (equal regexp "") (setq regexp pages-directory-previous-regexp) diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el index 6a14b52..1d872f0 100644 --- a/lisp/textmodes/sgml-mode.el +++ b/lisp/textmodes/sgml-mode.el @@ -106,10 +106,10 @@ This list is used when first loading the `sgml-mode' library. The supported characters and potential disadvantages are: ?\\\" Makes \" in text start a string. - ?' Makes ' in text start a string. + ?\\=' Makes \\=' in text start a string. ?- Makes -- in text start a comment. -When only one of ?\\\" or ?' are included, \"'\" or '\"', as can be found in +When only one of ?\\\" or ?\\=' are included, \"\\='\" or \\='\"\\=', as can be found in DTDs, start a string. To partially avoid this problem this also makes these self insert as named entities depending on `sgml-quick-keys'. @@ -482,14 +482,14 @@ This function is designed for use in `fill-nobreak-predicate'. (define-derived-mode sgml-mode text-mode '(sgml-xml-mode "XML" "SGML") "Major mode for editing SGML documents. Makes > match <. -Keys <, &, SPC within <>, \", / and ' can be electric depending on +Keys <, &, SPC within <>, \", / and \\=' can be electric depending on `sgml-quick-keys'. An argument of N to a tag-inserting command means to wrap it around the next N words. In Transient Mark mode, when the mark is active, N defaults to -1, which means to wrap it around the current region. -If you like upcased tags, put (setq sgml-transformation-function 'upcase) +If you like upcased tags, put (setq sgml-transformation-function \\='upcase) in your init file. Use \\[sgml-validate] to validate your document with an SGML parser. @@ -2066,7 +2066,7 @@ Images in many formats can be inlined with . If you mainly create your own documents, `sgml-specials' might be interesting. But note that some HTML 2 browsers can't handle `''. To work around that, do: - (eval-after-load \"sgml-mode\" '(aset sgml-char-names ?' nil)) + (eval-after-load \"sgml-mode\" '(aset sgml-char-names ?\\=' nil)) \\{html-mode-map}" (setq-local sgml-display-text html-display-text) diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el index d08daea..37f10a8 100644 --- a/lisp/textmodes/texinfmt.el +++ b/lisp/textmodes/texinfmt.el @@ -34,7 +34,7 @@ If optional argument HERE is non-nil, insert info at point." (interactive "P") (let ((version-string - (format "Version of `texinfmt.el': %s" texinfmt-version))) + (format-message "Version of `texinfmt.el': %s" texinfmt-version))) (if here (insert version-string) (if (called-interactively-p 'interactive) @@ -330,25 +330,24 @@ converted to Info is stored in a temporary buffer." (let ((arg (texinfo-parse-arg-discard))) (insert " " texinfo-region-buffer-name - " buffer for: `") + (format-message " buffer for: `")) (insert (file-name-nondirectory (expand-file-name arg))) - (insert "', -*-Text-*-\n"))) + (insert (format-message "', -*-Text-*-\n")))) ;; Else no `@setfilename' line (insert " " texinfo-region-buffer-name " buffer -*-Text-*-\n")) - (insert "produced by `texinfo-format-region'\n" + (insert (format-message "produced by `texinfo-format-region'\n") "from a region in: " (if (buffer-file-name input-buffer) - (concat "`" - (file-name-sans-versions - (file-name-nondirectory - (buffer-file-name input-buffer))) - "'") - (concat "buffer `" (buffer-name input-buffer) "'")) - "\nusing `texinfmt.el' version " - texinfmt-version - ".\n\n") + (format-message "`%s'" + (file-name-sans-versions + (file-name-nondirectory + (buffer-file-name input-buffer)))) + (format-message "buffer `%s'" (buffer-name input-buffer))) + (format-message "\nusing `texinfmt.el' version ") + texinfmt-version + ".\n\n") ;; Now convert for real. (goto-char (point-min)) @@ -479,19 +478,18 @@ if large. You can use `Info-split' to do this manually." ;; Insert info about how this file was made. (insert "Info file: " texinfo-format-filename ", -*-Text-*-\n" - "produced by `texinfo-format-buffer'\n" + (format-message "produced by `texinfo-format-buffer'\n") ;; Date string removed so that regression testing is easier. ;; "on " ;; (insert (format-time-string "%e %b %Y")) " " "from file" (if (buffer-file-name input-buffer) - (concat " `" + (format-message " `%s'" (file-name-sans-versions (file-name-nondirectory - (buffer-file-name input-buffer))) - "'") - (concat "buffer `" (buffer-name input-buffer) "'")) - "\nusing `texinfmt.el' version " + (buffer-file-name input-buffer)))) + (format-message "buffer `%s'" (buffer-name input-buffer))) + (format-message "\nusing `texinfmt.el' version ") texinfmt-version ".\n\n") ;; Return data for indices. diff --git a/lisp/textmodes/two-column.el b/lisp/textmodes/two-column.el index ea6b525..5e318b5 100644 --- a/lisp/textmodes/two-column.el +++ b/lisp/textmodes/two-column.el @@ -373,9 +373,8 @@ First column's text sSs Second column's text \(See \\[describe-mode] .)" (interactive "*p") (and (2C-other) - (if (y-or-n-p (concat "Overwrite associated buffer `" - (buffer-name (2C-other)) - "'? ")) + (if (y-or-n-p (format-message "Overwrite associated buffer ‘%s’? " + (buffer-name (2C-other)))) (with-current-buffer (2C-other) (erase-buffer)) (signal 'quit nil))) commit b533552292e37a99862627651e11860c6ef5411c Author: Paul Eggert Date: Sun Aug 30 22:47:58 2015 -0700 Documentation fixes re quotes Prefer curved quotes in examples if users will typically see curved quotes when the examples run. Mention format-message when appropriate. Don’t use @code in examples. Quote an apostrophe with @kbd. diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index f1480a4..a27a969 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi @@ -3862,10 +3862,10 @@ tiger!} will be printed; otherwise, @code{nil} will be returned. @group (defun type-of-animal (characteristic) "Print message in echo area depending on CHARACTERISTIC. -If the CHARACTERISTIC is the symbol `fierce', +If the CHARACTERISTIC is the symbol ‘fierce’, then warn of a tiger." (if (equal characteristic 'fierce) - (message "It's a tiger!"))) + (message "It’s a tiger!"))) @end group @end smallexample @@ -3887,7 +3887,7 @@ can evaluate the following two expressions to see the results: @c Following sentences rewritten to prevent overfull hbox. @noindent When you evaluate @code{(type-of-animal 'fierce)}, you will see the -following message printed in the echo area: @code{"It's a tiger!"}; and +following message printed in the echo area: @code{"It’s a tiger!"}; and when you evaluate @code{(type-of-animal 'zebra)} you will see @code{nil} printed in the echo area. @@ -3918,7 +3918,7 @@ The parts of the function that match this template look like this: @group (defun type-of-animal (characteristic) "Print message in echo area depending on CHARACTERISTIC. -If the CHARACTERISTIC is the symbol `fierce', +If the CHARACTERISTIC is the symbol ‘fierce’, then warn of a tiger." @var{body: the} @code{if} @var{expression}) @end group @@ -3948,7 +3948,7 @@ looks like this: @smallexample @group (if (equal characteristic 'fierce) - (message "It's a tiger!"))) + (message "It’s a tiger!"))) @end group @end smallexample @@ -3971,7 +3971,7 @@ In the first exercise of @code{type-of-animal}, the argument is equal to @code{fierce}, the expression, @code{(equal characteristic 'fierce)}, returns a value of true. When this happens, the @code{if} evaluates the second argument or then-part of the @code{if}: -@code{(message "It's tiger!")}. +@code{(message "It’s a tiger!")}. On the other hand, in the second exercise of @code{type-of-animal}, the argument @code{zebra} is passed to @code{type-of-animal}. @code{zebra} @@ -4034,12 +4034,11 @@ arguments to the function. @group (defun type-of-animal (characteristic) ; @r{Second version.} "Print message in echo area depending on CHARACTERISTIC. -If the CHARACTERISTIC is the symbol `fierce', -then warn of a tiger; -else say it's not fierce." +If the CHARACTERISTIC is the symbol ‘fierce’, +then warn of a tiger; else say it’s not fierce." (if (equal characteristic 'fierce) - (message "It's a tiger!") - (message "It's not fierce!"))) + (message "It’s a tiger!") + (message "It’s not fierce!"))) @end group @end smallexample @sp 1 @@ -4056,12 +4055,12 @@ else say it's not fierce." @c Following sentence rewritten to prevent overfull hbox. @noindent When you evaluate @code{(type-of-animal 'fierce)}, you will see the -following message printed in the echo area: @code{"It's a tiger!"}; but +following message printed in the echo area: @code{"It’s a tiger!"}; but when you evaluate @code{(type-of-animal 'zebra)}, you will see -@code{"It's not fierce!"}. +@code{"It’s not fierce!"}. (Of course, if the @var{characteristic} were @code{ferocious}, the -message @code{"It's not fierce!"} would be printed; and it would be +message @code{"It’s not fierce!"} would be printed; and it would be misleading! When you write code, you need to take into account the possibility that some such argument will be tested by the @code{if} and write your program accordingly.) @@ -6349,7 +6348,7 @@ With arg N, put point N/10 of the way from the true beginning. @end group @group -Don't use this in Lisp programs! +Don’t use this in Lisp programs! \(goto-char (point-min)) is faster and does not set the mark." (interactive "P") @@ -7605,8 +7604,8 @@ Here is the complete text of the version 22 implementation of the function: @smallexample @group (defun zap-to-char (arg char) - "Kill up to and including ARG'th occurrence of CHAR. -Case is ignored if `case-fold-search' is non-nil in the current buffer. + "Kill up to and including ARG’th occurrence of CHAR. +Case is ignored if ‘case-fold-search’ is non-nil in the current buffer. Goes backward if ARG is negative; error if CHAR not found." (interactive "p\ncZap to char: ") (if (char-table-p translation-table-for-input) @@ -7864,7 +7863,7 @@ to make one entry in the kill ring. In Lisp code, optional third arg YANK-HANDLER, if non-nil, specifies the yank-handler text property to be set on the killed -text. See `insert-for-yank'." +text. See ‘insert-for-yank’." ;; Pass point first, then mark, because the order matters ;; when calling kill-append. (interactive (list (point) (mark))) @@ -8292,9 +8291,9 @@ function: @smallexample @group (defun copy-region-as-kill (beg end) - "Save the region as if killed, but don't kill it. + "Save the region as if killed, but don’t kill it. In Transient Mark mode, deactivate the mark. -If `interprogram-cut-function' is non-nil, also save the text for a window +If ‘interprogram-cut-function’ is non-nil, also save the text for a window system cut and paste." (interactive "r") @end group @@ -8593,9 +8592,9 @@ The @code{kill-new} function looks like this: @group (defun kill-new (string &optional replace yank-handler) "Make STRING the latest kill in the kill ring. -Set `kill-ring-yank-pointer' to point to it. +Set ‘kill-ring-yank-pointer’ to point to it. -If `interprogram-cut-function' is non-nil, apply it to STRING. +If `interprogram-cut-function’ is non-nil, apply it to STRING. Optional second argument REPLACE non-nil means that STRING will replace the front of the kill ring, rather than being added to the list. @dots{}" @@ -9268,7 +9267,7 @@ documentation string. For example: @smallexample @group (defvar shell-command-default-error-buffer nil - "*Buffer name for `shell-command' @dots{} error output. + "*Buffer name for ‘shell-command’ @dots{} error output. @dots{} ") @end group @end smallexample @@ -10090,10 +10089,10 @@ With argument, rotate that many kills forward (or backward, if negative)." (defun current-kill (n &optional do-not-move) "Rotate the yanking point by N places, and then return that kill. -If N is zero, `interprogram-paste-function' is set, and calling it +If N is zero, ‘interprogram-paste-function’ is set, and calling it returns a string, then that string is added to the front of the kill ring and returned as the latest kill. -If optional arg DO-NOT-MOVE is non-nil, then don't actually move the +If optional arg DO-NOT-MOVE is non-nil, then don’t actually move the yanking point; just return the Nth kill forward." (let ((interprogram-paste (and (= n 0) interprogram-paste-function @@ -11107,7 +11106,7 @@ up the number of pebbles in a triangle. @smallexample @group (defun triangle-using-dotimes (number-of-rows) - "Using dotimes, add up the number of pebbles in a triangle." + "Using ‘dotimes’, add up the number of pebbles in a triangle." (let ((total 0)) ; otherwise a total is a void variable (dotimes (number number-of-rows total) (setq total (+ total (1+ number)))))) @@ -11952,7 +11951,7 @@ duo that uses recursion." @group (defun triangle-recursive-helper (sum counter number) "Return SUM, using COUNTER, through NUMBER inclusive. -This is the `helper' component of a two function duo +This is the “helper” component of a two function duo that uses recursion." (if (> counter number) sum @@ -12428,10 +12427,10 @@ Here is the code for @code{forward-sentence}: @smallexample @group (defun forward-sentence (&optional arg) - "Move forward to next `sentence-end'. With argument, repeat. -With negative argument, move backward repeatedly to `sentence-beginning'. + "Move forward to next ‘sentence-end’. With argument, repeat. +With negative argument, move backward repeatedly to ‘sentence-beginning’. -The variable `sentence-end' is a regular expression that matches ends of +The variable ‘sentence-end’ is a regular expression that matches ends of sentences. Also, every paragraph boundary terminates sentences as well." @end group @group @@ -13515,8 +13514,8 @@ For example: @group (let* ((foo 7) (bar (* 3 foo))) - (message "'bar' is %d." bar)) - @result{} 'bar' is 21. + (message "‘bar’ is %d." bar)) + @result{} ‘bar’ is 21. @end group @end smallexample @@ -13758,7 +13757,7 @@ All this leads to the following function definition: "Print number of words in the region. Words are defined as at least one word-constituent character followed by at least one character that -is not a word-constituent. The buffer's syntax +is not a word-constituent. The buffer’s syntax table determines which characters these are." (interactive "r") (message "Counting words in region ... ") @@ -13825,7 +13824,7 @@ parenthesis and type @kbd{C-x C-e} to install it. (defun @value{COUNT-WORDS} (beginning end) "Print number of words in the region. Words are defined as at least one word-constituent character followed -by at least one character that is not a word-constituent. The buffer's +by at least one character that is not a word-constituent. The buffer’s syntax table determines which characters these are." @end group @group @@ -14987,13 +14986,13 @@ beginning of the file. The function definition looks like this: @smallexample @group (defun lengths-list-file (filename) - "Return list of definitions' lengths within FILE. + "Return list of definitions’ lengths within FILE. The returned list is a list of numbers. Each number is the number of words or symbols in one function definition." @end group @group - (message "Working on '%s' ... " filename) + (message "Working on ‘%s’ ... " filename) (save-excursion (let ((buffer (find-file-noselect filename)) (lengths-list)) @@ -15759,7 +15758,7 @@ simpler to write a list manually. Here it is: 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300) - "List specifying ranges for `defuns-per-range'.") + "List specifying ranges for ‘defuns-per-range’.") @end group @end smallexample @@ -17522,7 +17521,7 @@ Incidentally, @code{load-library} is an interactive interface to the @group (defun load-library (library) "Load the library named LIBRARY. -This is an interface to the function `load'." +This is an interface to the function ‘load’." (interactive (list (completing-read "Load library: " (apply-partially 'locate-file-completion-table @@ -19006,12 +19005,12 @@ The @code{current-kill} function is used by @code{yank} and by @group (defun current-kill (n &optional do-not-move) "Rotate the yanking point by N places, and then return that kill. -If N is zero, `interprogram-paste-function' is set, and calling it +If N is zero, ‘interprogram-paste-function’ is set, and calling it returns a string, then that string is added to the front of the kill ring and returned as the latest kill. @end group @group -If optional arg DO-NOT-MOVE is non-nil, then don't actually move the +If optional arg DO-NOT-MOVE is non-nil, then don’t actually move the yanking point; just return the Nth kill forward." (let ((interprogram-paste (and (= n 0) interprogram-paste-function @@ -19350,8 +19349,8 @@ beginning (and mark at end). With argument N, reinsert the Nth most recently killed stretch of killed text. When this command inserts killed text into the buffer, it honors -`yank-excluded-properties' and `yank-handler' as described in the -doc string for `insert-for-yank-1', which see. +‘yank-excluded-properties’ and ‘yank-handler’ as described in the +doc string for ‘insert-for-yank-1’, which see. See also the command \\[yank-pop]." @end group @@ -19925,7 +19924,7 @@ row, and the value of the width of the top line, which is calculated @group (defun Y-axis-element (number full-Y-label-width) "Construct a NUMBERed label element. -A numbered element looks like this ' 5 - ', +A numbered element looks like this ‘ 5 - ’, and is padded as needed so all line up with the element for the largest number." @end group @@ -20026,7 +20025,7 @@ the @code{print-Y-axis} function, which inserts the list as a column. Height must be the maximum height of the graph. Full width is the width of the highest label element." ;; Value of height and full-Y-label-width -;; are passed by 'print-graph'. +;; are passed by ‘print-graph’. @end group @group (let ((start (point))) @@ -21151,7 +21150,7 @@ each column." @end group @group ;; Value of symbol-width and full-Y-label-width -;; are passed by 'print-graph'. +;; are passed by ‘print-graph’. (let* ((leading-spaces (make-string full-Y-label-width ? )) ;; symbol-width @r{is provided by} graph-body-print @@ -21251,7 +21250,7 @@ Here are all the graphing definitions in their final form: 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250) - "List specifying ranges for `defuns-per-range'.") + "List specifying ranges for ‘defuns-per-range’.") @end group @group @@ -21312,14 +21311,14 @@ as graph-symbol.") @smallexample @group (defun lengths-list-file (filename) - "Return list of definitions' lengths within FILE. + "Return list of definitions’ lengths within FILE. The returned list is a list of numbers. Each number is the number of words or symbols in one function definition." @end group @group - (message "Working on '%s' ... " filename) + (message "Working on ‘%s’ ... " filename) (save-excursion (let ((buffer (find-file-noselect filename)) (lengths-list)) @@ -21449,7 +21448,7 @@ The strings are either graph-blank or graph-symbol." @group (defun Y-axis-element (number full-Y-label-width) "Construct a NUMBERed label element. -A numbered element looks like this ' 5 - ', +A numbered element looks like this ‘ 5 - ’, and is padded as needed so all line up with the element for the largest number." @end group @@ -21479,7 +21478,7 @@ Optionally, print according to VERTICAL-STEP." @end group @group ;; Value of height and full-Y-label-width -;; are passed by 'print-graph'. +;; are passed by ‘print-graph’. (let ((start (point))) (insert-rectangle (Y-axis-column height full-Y-label-width vertical-step)) @@ -21644,7 +21643,7 @@ each column." @end group @group ;; Value of symbol-width and full-Y-label-width -;; are passed by 'print-graph'. +;; are passed by ‘print-graph’. (let* ((leading-spaces (make-string full-Y-label-width ? )) ;; symbol-width @r{is provided by} graph-body-print diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index 421f5cc..29d1bd5 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi @@ -315,7 +315,7 @@ between a few different constant values: @example (pcase (get-return-code x) (`success (message "Done!")) - (`would-block (message "Sorry, can't do it now")) + (`would-block (message "Sorry, can’t do it now")) (`read-only (message "The shmliblick is read-only")) (`access-denied (message "You do not have the needed rights")) (code (message "Unknown return code %S" code))) diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 36404f4..9d82edc 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -632,13 +632,13 @@ for logging the warning. By default, it is @file{*Warnings*}. @end defun @defun lwarn type level message &rest args -This function reports a warning using the value of @code{(format +This function reports a warning using the value of @code{(format-message @var{message} @var{args}...)} as the message in the @file{*Warnings*} buffer. In other respects it is equivalent to @code{display-warning}. @end defun @defun warn message &rest args -This function reports a warning using the value of @code{(format +This function reports a warning using the value of @code{(format-message @var{message} @var{args}...)} as the message, @code{(emacs)} as the type, and @code{:warning} as the severity level. It exists for compatibility only; we recommend not using it, because you should diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index a853d2f..20eaf5d 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -1561,7 +1561,7 @@ Around advice such as: @example (defadvice foo (around foo-around) - "Ignore case in `foo'." + "Ignore case in ‘foo’." (let ((case-fold-search t)) ad-do-it)) (ad-activate 'foo) @@ -1571,7 +1571,7 @@ could translate into: @example (defun foo--foo-around (orig-fun &rest args) - "Ignore case in `foo'." + "Ignore case in ‘foo’." (let ((case-fold-search t)) (apply orig-fun args))) (advice-add 'foo :around #'foo--foo-around) diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index a8b6bb1..f00e481 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -1155,9 +1155,9 @@ Many other modes, such as `mail-mode', `outline-mode' and "Major mode for editing text written for humans to read. In this mode, paragraphs are delimited only by blank or white lines. You can thus get the full benefit of adaptive filling - (see the variable `adaptive-fill-mode'). + (see the variable ‘adaptive-fill-mode’). \\@{text-mode-map@} -Turning on Text mode runs the normal hook `text-mode-hook'." +Turning on Text mode runs the normal hook ‘text-mode-hook’." @end group @group (set (make-local-variable 'text-mode-variant) t) @@ -1252,7 +1252,7 @@ And here is the code to set up the keymap for Lisp mode: @dots{} map) "Keymap for ordinary Lisp mode. -All commands in `lisp-mode-shared-map' are inherited by this map.") +All commands in ‘lisp-mode-shared-map’ are inherited by this map.") @end group @end smallexample @@ -1268,12 +1268,12 @@ Delete converts tabs to spaces as it moves back. Blank lines separate paragraphs. Semicolons start comments. \\@{lisp-mode-map@} -Note that `run-lisp' may be used either to start an inferior Lisp job +Note that ‘run-lisp’ may be used either to start an inferior Lisp job or to switch back to an existing one. @end group @group -Entry to this mode calls the value of `lisp-mode-hook' +Entry to this mode calls the value of ‘lisp-mode-hook’ if that value is non-nil." (lisp-mode-variables nil t) (set (make-local-variable 'find-tag-default-function) @@ -1447,7 +1447,7 @@ will load the library that defines the mode. For example: (defcustom msb-mode nil "Toggle msb-mode. Setting this variable directly does not take effect; -use either \\[customize] or the function `msb-mode'." +use either \\[customize] or the function ‘msb-mode’." :set 'custom-set-minor-mode :initialize 'custom-initialize-default :version "20.4" @@ -1605,7 +1605,7 @@ for this macro. Interactively with no argument, this command toggles the mode. A positive prefix argument enables the mode, any other prefix argument disables it. From Lisp, argument omitted or nil enables -the mode, `toggle' toggles the state. +the mode, ‘toggle’ toggles the state. When Hungry mode is enabled, the control delete key gobbles all preceding whitespace except the last. diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index 4b5a1b4..64ebb45 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -1927,7 +1927,7 @@ idleness. Here's an example: @example (defvar my-resume-timer nil - "Timer for `my-timer-function' to reschedule itself, or nil.") + "Timer for ‘my-timer-function’ to reschedule itself, or nil.") (defun my-timer-function () ;; @r{If the user types a command while @code{my-resume-timer}} diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi index 08e8e87..d882be4 100644 --- a/doc/lispref/strings.texi +++ b/doc/lispref/strings.texi @@ -969,12 +969,12 @@ is not truncated. @example @group -(format "The word '%7s' has %d letters in it." +(format "The word ‘%7s’ has %d letters in it." "foo" (length "foo")) - @result{} "The word ' foo' has 3 letters in it." -(format "The word '%7s' has %d letters in it." + @result{} "The word ‘ foo’ has 3 letters in it." +(format "The word ‘%7s’ has %d letters in it." "specification" (length "specification")) - @result{} "The word 'specification' has 13 letters in it." + @result{} "The word ‘specification’ has 13 letters in it." @end group @end example @@ -1013,12 +1013,12 @@ ignored. (format "%06d is padded on the left with zeros" 123) @result{} "000123 is padded on the left with zeros" -(format "'%-6d' is padded on the right" 123) - @result{} "'123 ' is padded on the right" +(format "‘%-6d’ is padded on the right" 123) + @result{} "‘123 ’ is padded on the right" -(format "The word '%-7s' actually has %d letters in it." +(format "The word ‘%-7s’ actually has %d letters in it." "foo" (length "foo")) - @result{} "The word 'foo ' actually has 3 letters in it." + @result{} "The word ‘foo ’ actually has 3 letters in it." @end group @end example diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index e63e634..245825a 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -1960,7 +1960,7 @@ Called from a program, there are three arguments: @group REVERSE (non-nil means reverse order),\ BEG and END (region to sort). -The variable `sort-fold-case' determines\ +The variable ‘sort-fold-case’ determines\ whether alphabetic case affects the sort order." @end group diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi index 7a824ac..565abb5 100644 --- a/doc/misc/ede.texi +++ b/doc/misc/ede.texi @@ -867,14 +867,14 @@ It would look like this: ) (defun MY-ROOT-FCN () - "Return the root fcn for `default-directory'" + "Return the root fcn for ‘default-directory’" ;; You might be able to use 'ede-cpp-root-project-root' ;; and not write this at all. ) (defun MY-LOAD (dir) - "Load a project of type `cpp-root' for the directory DIR. -Return nil if there isn't one." + "Load a project of type ‘cpp-root’ for the directory DIR. +Return nil if there isn’t one." ;; Use your preferred construction method here. (ede-cpp-root-project "NAME" :file (expand-file-name "FILE" dir) :locate-fcn 'MYFCN) diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi index 3e9109d..75df1d4 100644 --- a/doc/misc/efaq.texi +++ b/doc/misc/efaq.texi @@ -4336,7 +4336,7 @@ best fix I've been able to come up with: @lisp (defun rmail-reply-t () - "Reply only to the sender of the current message. (See rmail-reply.)" + "Reply only to the sender of the current message. (See ‘rmail-reply’.)" (interactive) (rmail-reply t)) diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi index fb4e147..7cee5c3 100644 --- a/doc/misc/eieio.texi +++ b/doc/misc/eieio.texi @@ -1529,7 +1529,7 @@ Currently, the default superclass is defined as follows: nil "Default parent class for classes with no specified parent class. Its slots are automatically adopted by classes with no specified -parents. This class is not stored in the `parent' slot of a class vector." +parents. This class is not stored in the ‘parent’ slot of a class vector." :abstract t) @end example diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi index 76d1a52..0b856c7 100644 --- a/doc/misc/gnus-faq.texi +++ b/doc/misc/gnus-faq.texi @@ -1671,7 +1671,7 @@ instead (works for newer versions as well): (setq message-user-fqdn fqdn) (gnus-message 1 "Redefining `message-make-fqdn'.") (defun message-make-fqdn () - "Return user's fully qualified domain name." + "Return user’s fully qualified domain name." fqdn)))) @end example @noindent @@ -1765,9 +1765,9 @@ snippet by Frank Haun in @example (defun my-archive-article (&optional n) - "Copies one or more article(s) to a corresponding `nnml:' group, e.g., -`gnus.ding' goes to `nnml:1.gnus.ding'. And `nnml:List-gnus.ding' goes -to `nnml:1.List-gnus-ding'. + "Copies one or more article(s) to a corresponding ‘nnml:’ group, e.g., +‘gnus.ding’ goes to ‘nnml:1.gnus.ding’. And ‘nnml:List-gnus.ding’ goes +to ‘nnml:1.List-gnus-ding’. Use process marks or mark a region in the summary buffer to archive more then one article." diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index 0afc7e4..23a43f4 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi @@ -21033,8 +21033,8 @@ function: @lisp (defun gnus-decay-score (score) - "Decay SCORE according to `gnus-score-decay-constant' -and `gnus-score-decay-scale'." + "Decay SCORE according to ‘gnus-score-decay-constant’ +and ‘gnus-score-decay-scale’." (let ((n (- score (* (if (< score 0) -1 1) (min (abs score) @@ -24080,7 +24080,7 @@ spam. And here is the nifty function: @lisp (defun my-gnus-raze-spam () - "Submit SPAM to Vipul's Razor, then mark it as expirable." + "Submit SPAM to Vipul’s Razor, then mark it as expirable." (interactive) (gnus-summary-save-in-pipe "razor-report -f -d" t) (gnus-summary-mark-as-expirable 1)) diff --git a/doc/misc/mh-e.texi b/doc/misc/mh-e.texi index 8406a80..54f7591 100644 --- a/doc/misc/mh-e.texi +++ b/doc/misc/mh-e.texi @@ -3159,13 +3159,13 @@ code to @file{~/.emacs}. @smalllisp @group (defvar my-mh-screen-saved nil - "Set to non-@code{nil} when MH-E window configuration shown.") + "Set to non-nil when MH-E window configuration shown.") (defvar my-normal-screen nil "Normal window configuration.") (defvar my-mh-screen nil "MH-E window configuration.") (defun my-mh-rmail (&optional arg) "Toggle between MH-E and normal screen configurations. -With non-@code{nil} or prefix argument, @i{inc} mailbox as well +With non-nil or prefix argument, include mailbox as well when going into mail." (interactive "P") ; @r{user callable function, P=prefix arg} (setq my-mh-screen-saved ; @r{save state} @@ -3474,7 +3474,7 @@ bindings, for example: @smalllisp @group (defvar my-mh-init-done nil - "Non-@code{nil} when one-time MH-E settings made.") + "Non-nil when one-time MH-E settings made.") (defun my-mh-folder-mode-hook () "Hook to set key bindings in MH-Folder mode." diff --git a/doc/misc/rcirc.texi b/doc/misc/rcirc.texi index a707ba5..a0d74b4 100644 --- a/doc/misc/rcirc.texi +++ b/doc/misc/rcirc.texi @@ -909,7 +909,7 @@ The real answer, therefore, is a @code{/reconnect} command: "Reconnect the server process." (interactive "i") (unless process - (error "There's no process for this target")) + (error "There’s no process for this target")) (let* ((server (car (process-contact process))) (port (process-contact process :service)) (nick (rcirc-nick process)) diff --git a/doc/misc/ses.texi b/doc/misc/ses.texi index 7017429..2f92e3e 100644 --- a/doc/misc/ses.texi +++ b/doc/misc/ses.texi @@ -1046,7 +1046,7 @@ the data area, such as hidden constants you want to refer to in your formulas. You can override the variable @code{ses--symbolic-formulas} to be a list of -symbols (as parenthesized strings) to show as completions for the ' +symbols (as parenthesized strings) to show as completions for the @kbd{'} command. This initial completions list is used instead of the actual set of symbols-as-formulas in the spreadsheet. commit 4c24b9e30fd47b537ad08dcf298b5b1a39f20e50 Author: Paul Eggert Date: Sun Aug 30 22:05:43 2015 -0700 Quoting fixes in lisp/progmodes * lisp/progmodes/cc-engine.el (c-bos-report-error): * lisp/progmodes/cpp.el (cpp-edit-reset): * lisp/progmodes/ebrowse.el (ebrowse-tags-apropos): * lisp/progmodes/etags.el (etags-tags-apropos-additional) (etags-tags-apropos, list-tags, tags-apropos): * lisp/progmodes/executable.el (executable-set-magic): * lisp/progmodes/octave.el (octave-sync-function-file-names) (octave-help, octave-find-definition-default-filename) (octave-find-definition): Respect text quoting style in doc strings and diagnostics. * lisp/progmodes/cc-langs.el (c-populate-syntax-table): * lisp/progmodes/verilog-mode.el (verilog-auto-reset-widths): * lisp/progmodes/vhdl-mode.el (vhdl-electric-quote): Escape apostrophes in doc strings. * lisp/progmodes/cmacexp.el (c-macro-expansion): Use straight quoting in ASCII comment. * lisp/progmodes/idlwave.el (idlwave-auto-fill-split-string) (idlwave-pad-keyword): * lisp/progmodes/vhdl-mode.el (vhdl-widget-directory-validate) (vhdl-electric-open-bracket, vhdl-electric-close-bracket): (vhdl-electric-semicolon, vhdl-electric-comma) (vhdl-electric-period, vhdl-electric-equal): Use directed quotes in diagnostics and doc strings. diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 1223db3..f26b8ec 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -618,11 +618,12 @@ comment at the start of cc-engine.el for more info." (defmacro c-bos-report-error () '(unless noerror (setq c-parsing-error - (format "No matching `%s' found for `%s' on line %d" - (elt saved-pos 1) - (elt saved-pos 2) - (1+ (count-lines (point-min) - (c-point 'bol (elt saved-pos 0)))))))) + (format-message + "No matching `%s' found for `%s' on line %d" + (elt saved-pos 1) + (elt saved-pos 2) + (1+ (count-lines (point-min) + (c-point 'bol (elt saved-pos 0)))))))) (defun c-beginning-of-statement-1 (&optional lim ignore-labels noerror comma-delim) diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index 235ef21..0e904d2 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el @@ -327,7 +327,7 @@ the evaluated constant value at compile time." (defun c-populate-syntax-table (table) "Populate the given syntax table as necessary for a C-like language. -This includes setting ' and \" as string delimiters, and setting up +This includes setting \\=' and \" as string delimiters, and setting up the comment syntax to handle both line style \"//\" and block style \"/*\" \"*/\" comments." diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el index 19d0473..005e71a 100644 --- a/lisp/progmodes/cmacexp.el +++ b/lisp/progmodes/cmacexp.el @@ -389,8 +389,9 @@ Optional arg DISPLAY non-nil means show messages in the echo area." ;; Put the messages inside a comment, so they won't get in ;; the way of font-lock, highlighting etc. (insert - (format "/* Preprocessor terminated with status %s\n\n Messages from `%s\':\n\n" - exit-status cppcommand)) + (format + "/* Preprocessor terminated with status %s\n\n Messages from '%s\':\n\n" + exit-status cppcommand)) (goto-char (+ (point) (nth 1 (insert-file-contents tempname)))) (insert "\n\n*/\n"))) diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el index 685bb21..3cf17f4 100644 --- a/lisp/progmodes/cpp.el +++ b/lisp/progmodes/cpp.el @@ -494,9 +494,10 @@ You can also use the keyboard accelerators indicated like this: [K]ey." (set-buffer buffer) (setq cpp-edit-symbols symbols) (erase-buffer) - (insert "CPP Display Information for `") + (insert (substitute-command-keys "CPP Display Information for `")) (cpp-make-button (buffer-name cpp-edit-buffer) 'cpp-edit-home) - (insert "'\n\nClick mouse-2 on item you want to change or use\n" + (insert (substitute-command-keys + "'\n\nClick mouse-2 on item you want to change or use\n") "or switch to this buffer and type the keyboard equivalents.\n" "Keyboard equivalents are indicated with brackets like [T]his.\n\n") (cpp-make-button "[H]ome (display the C file)" 'cpp-edit-home) diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el index 7c785d4..2443d6f 100644 --- a/lisp/progmodes/ebrowse.el +++ b/lisp/progmodes/ebrowse.el @@ -3471,7 +3471,7 @@ are not performed." (with-output-to-temp-buffer (concat "*Apropos Members*") (set-buffer standard-output) (erase-buffer) - (insert "Members matching `" regexp "'\n\n") + (insert (format-message "Members matching ‘%s’\n\n" regexp)) (cl-loop for s in (ebrowse-list-of-matching-members members regexp) do (cl-loop for info in (gethash s members) do (ebrowse-draw-file-member-info info)))))) diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 23f9370..611ba84 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -1459,7 +1459,7 @@ hits the start of file." (when (symbolp symbs) (if (boundp symbs) (setq symbs (symbol-value symbs)) - (insert "symbol `" (symbol-name symbs) "' has no value\n") + (insert (format-message "symbol ‘%s’ has no value\n" symbs)) (setq symbs nil))) (if (vectorp symbs) (mapatoms ins-symb symbs) @@ -1469,13 +1469,13 @@ hits the start of file." (defun etags-tags-apropos (string) ; Doc string? (when tags-apropos-verbose - (princ "Tags in file `") + (princ (substitute-command-keys "Tags in file `")) (tags-with-face 'highlight (princ buffer-file-name)) - (princ "':\n\n")) + (princ (substitute-command-keys "':\n\n"))) (goto-char (point-min)) (let ((progress-reporter (make-progress-reporter - (format "Making tags apropos buffer for `%s'..." - string) + (format-message + "Making tags apropos buffer for `%s'..." string) (point-min) (point-max)))) (while (re-search-forward string nil t) (progress-reporter-update progress-reporter (point)) @@ -1920,9 +1920,9 @@ directory specification." 'tags-complete-tags-table-file nil t nil))) (with-output-to-temp-buffer "*Tags List*" - (princ "Tags in file `") + (princ (substitute-command-keys "Tags in file `")) (tags-with-face 'highlight (princ file)) - (princ "':\n\n") + (princ (substitute-command-keys "':\n\n")) (save-excursion (let ((first-time t) (gotany nil)) @@ -1944,9 +1944,10 @@ directory specification." (declare (obsolete xref-find-apropos "25.1")) (interactive "sTags apropos (regexp): ") (with-output-to-temp-buffer "*Tags List*" - (princ "Click mouse-2 to follow tags.\n\nTags matching regexp `") + (princ (substitute-command-keys + "Click mouse-2 to follow tags.\n\nTags matching regexp `")) (tags-with-face 'highlight (princ regexp)) - (princ "':\n\n") + (princ (substitute-command-keys "':\n\n")) (save-excursion (let ((first-time t)) (while (visit-tags-table-buffer (not first-time)) diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el index 50e4da9..b057fa6 100644 --- a/lisp/progmodes/executable.el +++ b/lisp/progmodes/executable.el @@ -240,8 +240,9 @@ executable." (save-window-excursion ;; Make buffer visible before question. (switch-to-buffer (current-buffer)) - (y-or-n-p (concat "Replace magic number by `" - executable-prefix argument "'? ")))) + (y-or-n-p (format-message + "Replace magic number by `%s%s'? " + executable-prefix argument)))) (progn (replace-match argument t t nil 1) (message "Magic number changed to `%s'" diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index d759442..18299c7 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el @@ -293,7 +293,7 @@ extends to the end of the match for the regular expression." (defcustom idlwave-auto-fill-split-string t "If non-nil then auto fill will split strings with the IDL `+' operator. When the line end falls within a string, string concatenation with the -'+' operator will be used to distribute a long string over lines. +`+' operator will be used to distribute a long string over lines. If nil and a string is split then a terminal beep and warning are issued. This variable is ignored when `idlwave-fill-comment-line-only' is @@ -768,8 +768,8 @@ Also see help for `idlwave-surround'." :type 'boolean) (defcustom idlwave-pad-keyword t - "Non-nil means pad '=' in keywords (routine calls or defs) like assignment. -Whenever `idlwave-surround' is non-nil then this affects how '=' is + "Non-nil means pad `=' in keywords (routine calls or defs) like assignment. +Whenever `idlwave-surround' is non-nil then this affects how `=' is padded for keywords and for variables. If t, pad the same as for assignments. If nil then spaces are removed. With any other value, spaces are left unchanged." diff --git a/lisp/progmodes/octave.el b/lisp/progmodes/octave.el index 89e0b10..70a2b1a 100644 --- a/lisp/progmodes/octave.el +++ b/lisp/progmodes/octave.el @@ -1122,7 +1122,7 @@ See Info node `(octave)Function Files'." (let* ((func (buffer-substring name-start name-end)) (file (file-name-sans-extension (file-name-nondirectory buffer-file-name))) - (help-form (format "\ + (help-form (format-message "\ a: Use function name `%s' b: Use file name `%s' q: Don't fix\n" func file)) @@ -1728,12 +1728,12 @@ code line." (dir (file-name-directory (directory-file-name (file-name-directory file))))) (replace-match "" nil nil nil 1) - (insert "`") + (insert (substitute-command-keys "`")) ;; Include the parent directory which may be regarded as ;; the category for the FN. (help-insert-xref-button (file-relative-name file dir) 'octave-help-file fn) - (insert "'"))) + (insert (substitute-command-keys "'")))) ;; Make 'See also' clickable. (with-syntax-table octave-mode-syntax-table (when (re-search-forward "^\\s-*See also:" nil t) @@ -1816,8 +1816,8 @@ If the environment variable OCTAVE_SRCDIR is set, it is searched first." (error "File `%s' not found" name)) file)) (`"mex" - (if (yes-or-no-p (format "File `%s' may be binary; open? " - (file-name-nondirectory name))) + (if (yes-or-no-p (format-message "File `%s' may be binary; open? " + (file-name-nondirectory name))) name (user-error "Aborted"))) (_ name))) @@ -1847,7 +1847,7 @@ if iskeyword('%s') disp('`%s'' is a keyword') else which('%s') endif\n" (when (string-match "from the file \\(.*\\)$" line) (setq file (match-string 1 line)))) (if (not file) - (user-error "%s" (or line (format "`%s' not found" fn))) + (user-error "%s" (or line (format-message "`%s' not found" fn))) (ring-insert find-tag-marker-ring (point-marker)) (setq file (funcall octave-find-definition-filename-function file)) (when file diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el index 107dee5..76d85c6 100644 --- a/lisp/progmodes/verilog-mode.el +++ b/lisp/progmodes/verilog-mode.el @@ -1054,7 +1054,7 @@ the MSB or LSB of a signal inside an AUTORESET. If nil, AUTORESET uses \"0\" as the constant. -If `unbased', AUTORESET used the unbased unsized literal \"'0\" +If `unbased', AUTORESET used the unbased unsized literal \"\\='0\" as the constant. This setting is strongly recommended for SystemVerilog designs." :type 'boolean diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index 1b270e6..47b15d8 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el @@ -164,7 +164,7 @@ '/' or is empty)." (let ((val (widget-value widget))) (unless (string-match "^\\(\\|.*/\\)$" val) - (widget-put widget :error "Invalid directory entry: must end with '/'") + (widget-put widget :error "Invalid directory entry: must end with ‘/’") widget))) ;; help string for user options @@ -8743,7 +8743,7 @@ is omitted or nil." (vhdl-comment-insert))))) (self-insert-command count))) -(defun vhdl-electric-open-bracket (count) "'[' --> '(', '([' --> '['" +(defun vhdl-electric-open-bracket (count) "‘[’ --> ‘(’, ‘([’ --> ‘[’" (interactive "p") (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) (if (= (preceding-char) ?\() @@ -8751,7 +8751,7 @@ is omitted or nil." (insert-char ?\( 1)) (self-insert-command count))) -(defun vhdl-electric-close-bracket (count) "']' --> ')', ')]' --> ']'" +(defun vhdl-electric-close-bracket (count) "‘]’ --> ‘)’, ‘)]’ --> ‘]’" (interactive "p") (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) (progn @@ -8761,7 +8761,7 @@ is omitted or nil." (blink-matching-open)) (self-insert-command count))) -(defun vhdl-electric-quote (count) "'' --> \"" +(defun vhdl-electric-quote (count) "\\='\\=' --> \"" (interactive "p") (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) (if (= (preceding-char) vhdl-last-input-event) @@ -8769,7 +8769,7 @@ is omitted or nil." (insert-char ?\' 1)) (self-insert-command count))) -(defun vhdl-electric-semicolon (count) "';;' --> ' : ', ': ;' --> ' := '" +(defun vhdl-electric-semicolon (count) "‘;;’ --> ‘ : ’, ‘: ;’ --> ‘ := ’" (interactive "p") (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) (cond ((= (preceding-char) vhdl-last-input-event) @@ -8783,7 +8783,7 @@ is omitted or nil." (t (insert-char ?\; 1))) (self-insert-command count))) -(defun vhdl-electric-comma (count) "',,' --> ' <= '" +(defun vhdl-electric-comma (count) "‘,,’ --> ‘ <= ’" (interactive "p") (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) (cond ((= (preceding-char) vhdl-last-input-event) @@ -8793,7 +8793,7 @@ is omitted or nil." (t (insert-char ?\, 1))) (self-insert-command count))) -(defun vhdl-electric-period (count) "'..' --> ' => '" +(defun vhdl-electric-period (count) "‘..’ --> ‘ => ’" (interactive "p") (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) (cond ((= (preceding-char) vhdl-last-input-event) @@ -8803,7 +8803,7 @@ is omitted or nil." (t (insert-char ?\. 1))) (self-insert-command count))) -(defun vhdl-electric-equal (count) "'==' --> ' == '" +(defun vhdl-electric-equal (count) "‘==’ --> ‘ == ’" (interactive "p") (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) (cond ((= (preceding-char) vhdl-last-input-event) commit f665b49fa3efa08a3a2d249b6a227bcb5d0d5e82 Author: Xue Fuqiao Date: Sun Aug 30 20:50:36 2015 +0800 Minor documentation and NEWS tweak * doc/lispintro/emacs-lisp-intro.texi (fwd-para let): Add an index entry. diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index 4406958..f1480a4 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi @@ -4938,6 +4938,8 @@ result of this, point is placed at the beginning of the buffer and mark is set at the end of the buffer. The whole buffer is, therefore, the region. +@c FIXME: the definition of append-to-buffer has been changed (in +@c 2010-03-30). @node append-to-buffer @section The Definition of @code{append-to-buffer} @findex append-to-buffer @@ -12920,6 +12922,7 @@ The next line of the @code{forward-paragraph} function begins a @code{let*} expression. This is a different than @code{let}. The symbol is @code{let*} not @code{let}. +@findex let* The @code{let*} special form is like @code{let} except that Emacs sets each variable in sequence, one after another, and variables in the latter part of the varlist can make use of the values to which Emacs diff --git a/etc/NEWS b/etc/NEWS index 0f88e0c..408286a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -116,8 +116,8 @@ For instance, the " will match all variants of unicode double quotes cousins, even those composed of multiple characters, as well as many other symbols like ℀, ℁, ⒜, and ⓐ. -** New function `character-folded-regexp' can be used -by searching commands to produce a a regexp matching anything that +** New function `character-fold-to-regexp' can be used +by searching commands to produce a regexp matching anything that character-folds into STRING. ** New command `checkdoc-package-keywords' checks if the commit d987e6d6712540677aac32d0e85519eaed50c596 Author: Glenn Morris Date: Sun Aug 30 06:23:56 2015 -0400 ; Auto-commit of ChangeLog files. diff --git a/ChangeLog.2 b/ChangeLog.2 index 15cb656..856cb58 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1,3 +1,929 @@ +2015-08-30 Michael Albinus + + * lisp/net/tramp-sh.el (tramp-convert-file-attributes): + Revert patch from 2015-08-24. Tramp shall be have like for local files. + * test/automated/tramp-tests.el (tramp-test18-file-attributes): + Adapt test. + +2015-08-30 Paul Eggert + + Text quoting fixes in cedet, emulation, emacs-lisp + * lisp/cedet/ede.el (ede-check-project-directory): + * lisp/cedet/semantic/analyze/debug.el: + (semantic-analyzer-debug-insert-include-summary): + * lisp/cedet/semantic/bovine/c.el (semantic-c-describe-environment): + * lisp/cedet/semantic/decorate/include.el: + (semantic-decoration-unknown-include-describe) + (semantic-decoration-all-include-summary): + * lisp/cedet/semantic/ia.el (semantic-ia-fast-jump): + * lisp/emulation/edt.el (edt-load-keys): + * lisp/emulation/viper-cmd.el: + (viper-display-current-destructive-command) + (viper-query-replace, viper-brac-function): + * lisp/emulation/viper-ex.el (viper-get-ex-token, ex-compile): + * lisp/emulation/viper-macs.el (viper-unrecord-kbd-macro): + Respect text quoting style in doc string or diagnostic. + * lisp/cedet/mode-local.el (describe-mode-local-overload): + Use format-message to avoid overtranslating quotes. + * lisp/emacs-lisp/checkdoc.el (checkdoc-in-sample-code-p): + Escape an apostrophe in a docstring. + * lisp/emacs-lisp/warnings.el (lwarn): Fix doc string. + +2015-08-29 Daniel Colascione + + Fix which-func for curly quotes: look for symbol, not message + * lisp/progmodes/which-func.el (which-func-ff-hook): Look for new + imenu-unavailable error symbol instead of trying to match message + exactly. + * lisp/imenu.el (imenu-unavailable): New error + (imenu-unavailable-error): New function. + +2015-08-29 Eli Zaretskii + + Fix Python tests on MS-Windows + * test/automated/python-tests.el + (python-shell-calculate-command-1): Run python-shell-interpreter + through shell-quote-argument before comparing with what + python-shell-calculate-command returns. + (python-shell-calculate-pythonpath-1) + (python-shell-calculate-pythonpath-2) + (python-shell-calculate-process-environment-2): Use path-separator + instead of a literal ':'. + (python-shell-calculate-exec-path-2) + (python-shell-calculate-exec-path-3) + (python-shell-calculate-exec-path-4) + (python-shell-with-environment-1) + (python-shell-with-environment-2): Run "/env/bin" through + expand-file-name before comparing with exec-path. (Bug#21375) + +2015-08-29 YAMAMOTO Mitsuharu + + Use Core Text types/functions/variables/enumerators directly + * src/macfont.h (FontDescriptorRef, FontRef, FontSymbolicTraits) + (CharacterCollection): Remove typedefs. All uses replaced with + definitions. + (MAC_FONT_NAME_ATTRIBUTE, MAC_FONT_FAMILY_NAME_ATTRIBUTE) + (MAC_FONT_TRAITS_ATTRIBUTE, MAC_FONT_SIZE_ATTRIBUTE) + (MAC_FONT_CASCADE_LIST_ATTRIBUTE) + (MAC_FONT_CHARACTER_SET_ATTRIBUTE, MAC_FONT_LANGUAGES_ATTRIBUTE) + (MAC_FONT_FORMAT_ATTRIBUTE, MAC_FONT_SYMBOLIC_TRAIT) + (MAC_FONT_WEIGHT_TRAIT, MAC_FONT_WIDTH_TRAIT) + (MAC_FONT_SLANT_TRAIT): Remove macros. All uses replaced with + definitions. + (MAC_FONT_TRAIT_ITALIC, MAC_FONT_TRAIT_BOLD) + (MAC_FONT_TRAIT_MONO_SPACE, MAC_FONT_TRAIT_COLOR_GLYPHS) + (MAC_FONT_FORMAT_BITMAP) + (MAC_CHARACTER_COLLECTION_IDENTITY_MAPPING) + (MAC_CHARACTER_COLLECTION_ADOBE_JAPAN1): Remove enumerators. All + uses replaced with definitions. + (kCTFontTraitItalic, kCTFontTraitBold, kCTFontTraitMonoSpace) + (kCTFontTraitColorGlyphs, kCTCharacterCollectionIdentityMapping) + (kCTCharacterCollectionAdobeJapan1 kCTFontOrientationDefault): Add + compatibility enumerators for older versions. + (mac_font_descriptor_create_with_attributes) + (mac_font_descriptor_create_matching_font_descriptors) + (mac_font_descriptor_create_matching_font_descriptor) + (mac_font_descriptor_copy_attribute) + (mac_font_descriptor_supports_languages) + (mac_font_create_with_name, mac_font_get_size) + (mac_font_copy_family_name, mac_font_copy_character_set) + (mac_font_get_glyphs_for_characters, mac_font_get_ascent) + (mac_font_get_descent, mac_font_get_leading) + (mac_font_get_underline_position) + (mac_font_get_underline_thickness, mac_font_copy_graphics_font) + (mac_font_copy_non_synthetic_table): Remove macros. All uses + replaced with definitions. + (mac_font_create_preferred_family_for_attributes) + (mac_font_get_advance_width_for_glyph) + (mac_font_get_bounding_rect_for_glyph) + (mac_font_create_available_families, mac_font_shape): Remove + macros for renamed functions. + (mac_nsctfont_copy_font_descriptor): Remove unused macro. + * src/macterm.m (mac_font_descriptor_supports_languages): Rename + from mac_ctfont_descriptor_supports_languages. + (mac_font_create_preferred_family_for_attributes): Rename from + mac_ctfont_create_preferred_family_for_attributes. + (mac_font_get_advance_width_for_glyph): Rename from + mac_ctfont_get_advance_width_for_glyph. Use + kCTFontOrientationDefault also for older versions. + (mac_font_get_bounding_rect_for_glyph): Rename from + mac_ctfont_get_bounding_rect_for_glyph. Use + kCTFontOrientationDefault also for older versions. + (mac_font_create_available_families): Rename from + mac_ctfont_create_available_families. + (mac_font_equal_in_postscript_name): Rename from + mac_ctfont_equal_in_postscript_name. All uses changed. + (mac_font_create_line_with_string_and_font): Rename from + mac_ctfont_create_line_with_string_and_font. All uses changed. + (mac_font_shape): Rename from mac_ctfont_shape. + (mac_font_family_compare): Remove unused declaration. + +2015-08-29 Paul Eggert + + Fix minor text quoting in calc, calendar, vc + * lisp/calc/calc-ext.el (calc-shift-Z-prefix-help): + * lisp/calc/calc-help.el (calc-j-prefix-help): + * lisp/calc/calc-misc.el (calc-help): + * lisp/calc/calc.el (calc-algebraic-mode, calc-mode): + Escape an apostrophe in a docstring. + * lisp/calc/calc-forms.el (calc-hms-notation): + * lisp/calc/calc-mode.el (calc-display-raw, calc-algebraic-mode): + Escape an apostrophe in a diagnostic. + * lisp/calc/calc-misc.el (calc-help): + * lisp/calendar/diary-lib.el (diary-include-files): + * lisp/calendar/todo-mode.el (todo-prefix, todo-item-mark): + * lisp/vc/diff-mode.el (diff-delete-trailing-whitespace): + * lisp/vc/ediff-diff.el (ediff-same-contents): + * lisp/vc/ediff-merg.el (ediff-re-merge): + * lisp/vc/ediff-ptch.el (ediff-patch-file-internal): + * lisp/vc/ediff-util.el (ediff-test-save-region) + (ediff-status-info): + * lisp/vc/ediff.el (ediff-merge-revisions) + (ediff-merge-revisions-with-ancestor): + * lisp/vc/pcvs.el (cvs-mode-checkout, cvs-vc-command-advice): + * lisp/vc/vc-cvs.el (vc-cvs-mode-line-string): + Respect text quoting style in doc string or diagnostic. + * lisp/calc/calc-prog.el (calc-kbd-push, calc-kbd-pop): + * lisp/vc/add-log.el (change-log-goto-source): + Avoid double-formatting. + * lisp/vc/ediff-init.el (format-message): + New backward-compatibility alias. + +2015-08-28 Paul Eggert + + Fix minor text quoting problems in lisp top level + * lisp/apropos.el (apropos-describe-plist): + * lisp/cus-theme.el (customize-themes): + * lisp/dired.el (dired-log): + * lisp/help-fns.el (describe-variable): + * lisp/hexl.el (hexl-insert-multibyte-char): + * lisp/info.el (Info-finder-find-node): + * lisp/json.el (json-read-string): + * lisp/novice.el (disabled-command-function) + (disabled-command-function): + * lisp/startup.el (normal-mouse-startup-screen): + * lisp/woman.el (WoMan-log, WoMan-warn): + Respect text quoting style in doc string or diagnostic. + * lisp/replace.el (replace-character-fold): + * src/syntax.c (Fmodify_syntax_entry): + Escape an apostrophe in a docstring. + * lisp/tempo.el (tempo-define-template): + Remove confusing apostrophe from docstring. + * lisp/whitespace.el (whitespace-mark-x): + Use directed quotes in docstring. + +2015-08-28 Simen Heggestøyl + + Fix indentation rule in css-mode + * lisp/textmodes/css-mode.el (css-smie-rules): Fix indentation of + brackets in presence of pseudo-selectors. (Bug#21328) + +2015-08-28 Eli Zaretskii + + Fix a bug in recording a macro while flyspell-mode is active + * lisp/subr.el (sit-for): Don't call read-event when recording a + macro. (Bug#21329) + +2015-08-27 Paul Eggert + + Tweak startup screen quoting + * lisp/startup.el (normal-splash-screen): Use standard + "M-" abbrevation rather than a confusingly-different one. + (normal-no-mouse-startup-screen): Follow ‘text-quoting-style’. + +2015-08-27 Paul Eggert + + Add test case for ‘format’ bug and refactor + * src/editfns.c (styled_format): Refactor internally, mostly by + moving declarations closer to uses. This should not affect behavior. + * test/automated/textprop-tests.el (textprop-tests-format): New test. + + Fix ‘format’ bug with property offsets + * src/editfns.c (styled_format): Fix recently-introduced ‘format’ + bug in calculating string property offsets (Bug#21351). + + Use straight quotes in lib-src diagnostics + These auxiliary programs can’t use Emacs’s text-quoting-style, + and it’s too much trouble to redo that mechanism by hand. + So just use straight quotes for now. + * lib-src/ebrowse.c (main): + * lib-src/emacsclient.c (decode_options, main): + * lib-src/etags.c (Ada_help, default_C_help, Cplusplus_help) + (Forth_help, HTML_help, Lisp_help, Makefile_help, Objc_help) + (Perl_help, PHP_help, Python_help, Scheme_help, TeX_help, auto_help) + (none_help, print_language_names, print_help, add_regex) + (suggest_asking_for_help): + * lib-src/make-docfile.c (write_c_args, scan_c_stream): + Use straight quotes in diagnostics. + + ‘text-quoting-style’ fixes for admin + * admin/admin.el (cusver-scan, cusver-check): + * admin/authors.el (authors-canonical-file-name): + * admin/bzrmerge.el (bzrmerge-missing): + Respect ‘text-quoting-style’ in diagnostics. + +2015-08-26 Paul Eggert + + Assume GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS + This removes the need for GCPRO1 etc. Suggested by Stefan Monnier in: + http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00918.html + * doc/lispref/internals.texi (Writing Emacs Primitives): + * etc/NEWS: + Document the change. + * src/alloc.c (gcprolist, dump_zombies, MAX_ZOMBIES, zombies) + (nzombies, ngcs, avg_zombies, max_live, max_zombies, avg_live) + (Fgc_status, check_gcpros, relocatable_string_data_p, gc-precise): + * src/bytecode.c (mark_byte_stack) [BYTE_MARK_STACK]: + * src/eval.c (gcpro_level) [DEBUG_GCPRO]: + * src/lisp.h (struct handler.gcpro, struct gcpro, GC_MARK_STACK) + (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS) + (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES) + (BYTE_MARK_STACK, GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6) + (GCPRO7, UNGCPRO, RETURN_UNGCPRO): + Remove. All uses removed. The code now assumes + GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS. + * src/bytecode.c (relocate_byte_stack): + Rename from unmark_byte_stack, since it now only relocates. + All callers changed. + * src/frame.c (make_frame): Add an IF_LINT to pacify GCC 5.2 + with GCPROs removed. + * src/systime.h: Use EMACS_LISP_H as the canary instead of GCPRO1. + * test/automated/finalizer-tests.el (finalizer-basic) + (finalizer-circular-reference, finalizer-cross-reference) + (finalizer-error): + * test/automated/generator-tests.el (cps-test-iter-close-finalizer): + Remove tests, as they depend on gc-precise. + +2015-08-26 Nicolas Petton + + Improve seq-concatenate for new sequence types + Use the new `seq-into-sequence' in seqs passed to `seq-concatenate' to + ensure that concatenation happens on sequences only. This makes it + possible to use `seq-concatenate' for new types of seqs. + * lisp/emacs-lisp/seq.el (seq-into-sequence, seq-concatenate): New + function used in `seq-concatenate'. + * test/automated/seq-tests.el (test-seq-into-sequence): New unit test + for seq-into-sequence. + +2015-08-26 Stephen Leake + + Add mode local overrides to xref-find-definitions + * lisp/cedet/mode-local.el (xref-mode-local--override-present, + xref-mode-local-overload): New; add mode local overrides to + xref-find-definitions. + * test/automated/elisp-mode-tests.el: Add mode local override tests. + (xref-elisp-test-run): Handle indented defuns. + (xref-elisp-generic-*): Improve doc strings. + * lisp/progmodes/elisp-mode.el (elisp-xref-find-def-functions): New. + (elisp--xref-find-definitions): Use it. + + Add mode local overrides to describe-function + * lisp/cedet/mode-local.el (describe-mode-local-overload): New; add mode + local overrides to describe-function. + * etc/NEWS: Document change. + +2015-08-26 Paul Eggert + + Prefer straight quoting in some etc text files + These files are plain text and might be used by non-Emacs apps. + They’re mostly ASCII, so just use straight quotes. + + Fix quoting in ‘message_with_string’ + * src/nsfont.m (nsfont_open): Use directed quotes in format; they + should work now. + * src/xdisp.c (message_to_stderr): New function, refactored from + part of ‘message3_nolog’. + (message3_nolog): Use it. + (message_with_string): Use it. Don’t mishandle NUL bytes when + noninteractive. Prefer AUTO_STRING when it’s most likely faster. + Use ‘format-message’, not ‘format’, so that quotes are translated. + +2015-08-26 Eli Zaretskii + + Mention false positives of file-accessible-directory on w32 + * src/fileio.c (Ffile_accessible_directory_p): Doc fix. + (Bug#21346) + +2015-08-26 Paul Eggert + + Treat error strings as help + * src/print.c (print_error_message): Translate quotes and command + keys in errmsg so that users see, e.g., "Symbol’s value as + variable is void: foo" when text-quoting-style is curved. + +2015-08-26 Michael Albinus + + * lisp/net/tramp-cache.el (top): Use `message' but `format-message'. + +2015-08-26 Paul Eggert + + Top-level elisp files respect ‘text-quoting-style’ + In top-level elisp files, use format-message in diagnostic formats, + so that they follow user preference as per ‘text-quoting-style’ + rather than being hard-coded to quote `like this'. + * lisp/allout.el (allout-get-configvar-values): + * lisp/apropos.el (apropos-symbols-internal): + * lisp/dired-aux.el (dired-do-shell-command, dired-create-files) + (dired-do-create-files-regexp, dired-create-files-non-directory): + * lisp/dired-x.el (dired-do-run-mail): + * lisp/dired.el (dired-log, dired-dnd-handle-local-file): + * lisp/disp-table.el (standard-display-european): + * lisp/find-dired.el (find-dired): + * lisp/forms.el (forms-mode): + * lisp/ido.el (ido-buffer-internal): + * lisp/info.el (Info-index-next): + * lisp/outline.el (outline-invent-heading): + * lisp/printing.el (pr-ps-outfile-preprint, pr-i-ps-send): + * lisp/proced.el (proced-log): + * lisp/ps-print.el (ps-print-preprint, ps-get-size): + * lisp/recentf.el (recentf-open-files, recentf-save-list): + * lisp/savehist.el (savehist-save): + * lisp/server.el (server-ensure-safe-dir): + * lisp/ses.el (ses-rename-cell): + * lisp/simple.el (list-processes--refresh): + * lisp/startup.el (command-line): + * lisp/strokes.el (strokes-unset-last-stroke) + (strokes-execute-stroke): + Use format-message so that quotes are restyled. + * lisp/cus-edit.el (custom-raised-buttons, customize-browse): + Don’t quote ‘raised’. + * lisp/descr-text.el (describe-char): + * lisp/dirtrack.el (dirtrack-debug-message): + * lisp/hexl.el (hexl-insert-multibyte-char): + Apply substitute-command-keys to help string. + * lisp/wdired.el (wdired-do-renames, wdired-do-symlink-changes) + (wdired-do-perm-changes): + Let dired-log do the formatting. + +2015-08-25 Paul Eggert + + Go back to grave quoting in Tramp + * lisp/net/tramp-adb.el: + * lisp/net/tramp-cache.el: + * lisp/net/tramp-compat.el: + * lisp/net/tramp-gvfs.el: + * lisp/net/tramp-gw.el: + * lisp/net/tramp-sh.el: + * lisp/net/tramp-smb.el: + * lisp/net/tramp.el: + Stick with grave quoting in diagnostics strings. This is more + portable to older Emacs, desirable for Tramp. + * lisp/net/tramp-cache.el: Use ‘format-message’, not ‘format’, + for diagnostic that needs requoting. + * lisp/net/tramp-compat.el (format-message): + Fall back on simple ‘format’, since that’s good enough now. + + Go back to grave quoting in Gnus + * lisp/gnus/auth-source.el (auth-source-netrc-parse-entries): + * lisp/gnus/gnus-agent.el (gnus-agent-check-overview-buffer) + (gnus-agent-fetch-headers): + * lisp/gnus/gnus-int.el (gnus-start-news-server): + * lisp/gnus/gnus-registry.el: + (gnus-registry--split-fancy-with-parent-internal) + (gnus-registry-post-process-groups): + * lisp/gnus/gnus-score.el (gnus-summary-increase-score): + * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): + * lisp/gnus/gnus-topic.el (gnus-topic-rename): + * lisp/gnus/legacy-gnus-agent.el (gnus-agent-unlist-expire-days): + * lisp/gnus/spam.el (spam-check-blackholes): + Stick with grave quoting in diagnostics strings. This is more + portable to older Emacs, desirable for Gnus. + + Fix customization of text-quoting-style + * lisp/cus-edit.el (custom-guess-type, custom-variable-documentation): + * lisp/wid-edit.el (widget-docstring): + Get raw docstring here since it’s cooked later and should not be + cooked twice. + * lisp/cus-edit.el (custom-group-value-create): + Cook the docstring before inserting it. + * lisp/cus-start.el (text-quoting-style): Quote the customization + docstrings according to the new rules. Give curved examples. + + format-message now curves ` and ' + That way, the caller doesn’t have to use curved quotes to + get diagnostics that match the text-quoting-style preferences. + Suggested by Dmitry Gutov in: + http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00893.html + This means we no longer need %qs, so remove that format. + While we’re at it, fix an unlikely bug and lessen the pressure + on the garbage collector by processing the string once rather + than twice in the usual case. + * doc/lispref/strings.texi (Formatting Strings): + * etc/NEWS: Document this. + * lisp/subr.el (format-message): Remove; now done in C. + * src/callint.c (Fcall_interactively): + * src/editfns.c (Fmessage, Fmessage_box): + Use Fformat_message instead of Finternal__text_restyle + followed by Fformat. + * src/doc.c (LSQM, RSQM): Remove; all uses changed to use + uLSQM and uRSQM. + (Fsubstitute_command_keys): Prefer AUTO_STRING to build_string + when pure ASCII now suffices. Fix unlikely bug when parsing + unibyte string containing non-ASCII bytes. Use inline code + rather than memcpy, as it’s a tiny number of bytes. + (Finternal__text_restyle): Remove; no longer used. + (syms_of_doc): Don’t declare it. + * src/editfns.c (Fformat): Rewrite in terms of new function + ‘styled_format’. + (Fformat_message): New function, moved here from subr.el. + (styled_format): New function, with the old guts of Fformat, + except it now optionally transliterates quotes, and it transliterates + traditional grave accent and apostrophe quoting as well. + Remove recently-added q flag; no longer needed or used. + (syms_of_editfns): Define format-message. + * src/lisp.h (uLSQM0, uLSQM1, uLSQM2, uRSQM0, uRSQM1, uRSQM2): + Remove; no longer need to be global symbols. + * src/xdisp.c (vadd_to_log): Use Fformat_message, not Fformat, + so that callers can use `%s'. + * src/image.c (image_size_error, xbm_load_image, xbm_load) + (xpm_load, pbm_load, png_load_body, jpeg_load_body, tiff_load) + (gif_load, imagemagick_load_image, imagemagick_load, svg_load) + (svg_load_image, gs_load, x_kill_gs_process): + * src/lread.c (load_warn_old_style_backquotes): + * src/xfaces.c (load_pixmap): + * src/xselect.c (x_clipboard_manager_error_1): + Use `%s' instead of %qs in formats. + +2015-08-25 Eli Zaretskii + + Minor fixes in doc/emacs/search.texi + * doc/emacs/search.texi (Basic Isearch): Fix a typo. + (Special Isearch): Use @w{} to generate several consecutive spaces + with Texinfo 6. (Bug#21345) + +2015-08-25 Michael Albinus + + * lisp/net/tramp-sh.el (tramp-awk-encode, tramp-awk-decode) + (tramp-awk-coding-test): New defconsts. + (tramp-remote-coding-commands): Use them. + (tramp-find-inline-encoding): Check for Perl only if necessary. + +2015-08-25 Xue Fuqiao + + * doc/lispintro/emacs-lisp-intro.texi (Run a Program): Add some + index entries for the special form `quote'. + +2015-08-25 Paul Eggert + + Spelling fixes + + Gnus format-message typo fix + * lisp/gnus/gnus-util.el (gnus-format-message): + Fix typo when running in older Emacs. + + Prefer directed to neutral quotes + Prefer directed to neutral quotes in docstings and diagnostics. + In docstrings, escape apostrophes that would otherwise be translated + to curved quotes using the newer, simpler rules. + * admin/unidata/unidata-gen.el (unidata-gen-table): + * lisp/align.el (align-region): + * lisp/allout.el (allout-mode, allout-solicit-alternate-bullet): + * lisp/bookmark.el (bookmark-default-annotation-text): + * lisp/calc/calc-aent.el (math-read-if, math-read-factor): + * lisp/calc/calc-lang.el (math-read-giac-subscr) + (math-read-math-subscr): + * lisp/calc/calc-misc.el (report-calc-bug): + * lisp/calc/calc-prog.el (calc-fix-token-name) + (calc-read-parse-table-part): + * lisp/cedet/ede/pmake.el (ede-proj-makefile-insert-dist-rules): + * lisp/cedet/semantic/complete.el (semantic-displayor-show-request): + * lisp/dabbrev.el (dabbrev-expand): + * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): + * lisp/emacs-lisp/elint.el (elint-get-top-forms): + * lisp/emacs-lisp/lisp-mnt.el (lm-verify): + * lisp/emulation/viper-cmd.el (viper-toggle-search-style): + * lisp/erc/erc-button.el (erc-nick-popup): + * lisp/erc/erc.el (erc-cmd-LOAD, erc-handle-login): + * lisp/eshell/em-dirs.el (eshell/cd): + * lisp/eshell/em-glob.el (eshell-glob-regexp): + * lisp/eshell/em-pred.el (eshell-parse-modifiers): + * lisp/eshell/esh-arg.el (eshell-parse-arguments): + * lisp/eshell/esh-opt.el (eshell-show-usage): + * lisp/files-x.el (modify-file-local-variable): + * lisp/filesets.el (filesets-add-buffer, filesets-remove-buffer) + (filesets-update-pre010505): + * lisp/find-cmd.el (find-generic, find-to-string): + * lisp/gnus/auth-source.el (auth-source-netrc-parse-entries): + * lisp/gnus/gnus-agent.el (gnus-agent-check-overview-buffer) + (gnus-agent-fetch-headers): + * lisp/gnus/gnus-int.el (gnus-start-news-server): + * lisp/gnus/gnus-registry.el: + (gnus-registry--split-fancy-with-parent-internal): + * lisp/gnus/gnus-score.el (gnus-summary-increase-score): + * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): + * lisp/gnus/gnus-topic.el (gnus-topic-rename): + * lisp/gnus/legacy-gnus-agent.el (gnus-agent-unlist-expire-days): + * lisp/gnus/nnmairix.el (nnmairix-widget-create-query): + * lisp/gnus/spam.el (spam-check-blackholes): + * lisp/mail/feedmail.el (feedmail-run-the-queue): + * lisp/mpc.el (mpc-playlist-rename): + * lisp/net/ange-ftp.el (ange-ftp-shell-command): + * lisp/net/mairix.el (mairix-widget-create-query): + * lisp/net/tramp-cache.el: + * lisp/obsolete/otodo-mode.el (todo-more-important-p): + * lisp/obsolete/pgg-gpg.el (pgg-gpg-process-region): + * lisp/obsolete/pgg-pgp.el (pgg-pgp-process-region): + * lisp/obsolete/pgg-pgp5.el (pgg-pgp5-process-region): + * lisp/org/ob-core.el (org-babel-goto-named-src-block) + (org-babel-goto-named-result): + * lisp/org/ob-fortran.el (org-babel-fortran-ensure-main-wrap): + * lisp/org/ob-ref.el (org-babel-ref-resolve): + * lisp/org/org-agenda.el (org-agenda-prepare): + * lisp/org/org-bibtex.el (org-bibtex-fields): + * lisp/org/org-clock.el (org-clock-notify-once-if-expired) + (org-clock-resolve): + * lisp/org/org-feed.el (org-feed-parse-atom-entry): + * lisp/org/org-habit.el (org-habit-parse-todo): + * lisp/org/org-mouse.el (org-mouse-popup-global-menu) + (org-mouse-context-menu): + * lisp/org/org-table.el (org-table-edit-formulas): + * lisp/org/ox.el (org-export-async-start): + * lisp/play/dunnet.el (dun-score, dun-help, dun-endgame-question) + (dun-rooms, dun-endgame-questions): + * lisp/progmodes/ada-mode.el (ada-goto-matching-start): + * lisp/progmodes/ada-xref.el (ada-find-executable): + * lisp/progmodes/antlr-mode.el (antlr-options-alists): + * lisp/progmodes/flymake.el (flymake-parse-err-lines) + (flymake-start-syntax-check-process): + * lisp/progmodes/python.el (python-define-auxiliary-skeleton): + * lisp/progmodes/sql.el (sql-comint): + * lisp/progmodes/verilog-mode.el (verilog-load-file-at-point): + * lisp/server.el (server-get-auth-key): + * lisp/subr.el (version-to-list): + * lisp/textmodes/reftex-ref.el (reftex-label): + * lisp/textmodes/reftex-toc.el (reftex-toc-rename-label): + * lisp/vc/ediff-diff.el (ediff-same-contents): + * lisp/vc/vc-cvs.el (vc-cvs-mode-line-string): + * test/automated/tramp-tests.el (tramp-test33-asynchronous-requests): + Use directed rather than neutral quotes in diagnostics. + + Treat ' like ’ even when not matching ` + This is simpler and easier to explain, and should encourage better + typography. Do this in Electric Quote mode and when translating + quotes in docstrings. Inspired by a suggestion by Dmitry Gutov in: + https://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00806.html + * doc/emacs/text.texi (Quotation Marks): + * doc/lispref/help.texi (Keys in Documentation): + * etc/NEWS: + Document this. + * lisp/electric.el (electric-quote-post-self-insert-function): + * src/doc.c (Fsubstitute_command_keys): + Always treat ' like ’ even when not matched by an open quote. + +2015-08-25 Glenn Morris + + * doc/emacs/cal-xtra.texi (Holiday Customizing): Fix typo in example. + * lisp/calendar/holidays.el (calendar-holidays): Fix doc typo. + +2015-08-24 YAMAMOTO Mitsuharu + + * src/macfont.m (macfont_create_family_with_symbol): Accept localized names. + +2015-08-24 Paul Eggert + + Tramp diagnostics as per ‘text-quoting-style’ + * lisp/net/tramp-adb.el (tramp-adb-handle-file-truename) + (tramp-adb-get-ls-command, tramp-adb-handle-make-directory) + (tramp-adb-handle-delete-directory) + (tramp-adb-handle-delete-file) + (tramp-adb-handle-file-local-copy) + (tramp-adb-handle-write-region, tramp-adb-handle-copy-file) + (tramp-adb-send-command-and-check, tramp-adb-wait-for-output) + (tramp-adb-maybe-open-connection): + * lisp/net/tramp-cache.el: + * lisp/net/tramp-compat.el (tramp-compat-temporary-file-directory) + (tramp-compat-octal-to-decimal) + (tramp-compat-coding-system-change-eol-conversion): + * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler) + (tramp-gvfs-do-copy-or-rename-file) + (tramp-gvfs-handle-delete-directory) + (tramp-gvfs-handle-delete-file) + (tramp-gvfs-handle-expand-file-name) + (tramp-gvfs-handle-file-local-copy) + (tramp-gvfs-handle-file-notify-add-watch) + (tramp-gvfs-handle-make-directory) + (tramp-gvfs-handle-write-region, tramp-gvfs-url-file-name): + * lisp/net/tramp-gw.el (tramp-gw-gw-proc-sentinel) + (tramp-gw-aux-proc-sentinel, tramp-gw-open-connection): + * lisp/net/tramp-sh.el (tramp-sh-handle-file-truename) + (tramp-sh-handle-set-visited-file-modtime) + (tramp-sh-handle-set-file-modes) + (tramp-sh-handle-file-name-all-completions) + (tramp-sh-handle-add-name-to-file, tramp-do-copy-or-rename-file) + (tramp-do-copy-or-rename-file-directly) + (tramp-do-copy-or-rename-file-out-of-band) + (tramp-sh-handle-make-directory) + (tramp-sh-handle-delete-directory, tramp-sh-handle-delete-file) + (tramp-sh-handle-insert-directory, tramp-process-sentinel) + (tramp-sh-handle-start-file-process) + (tramp-sh-handle-file-local-copy) + (tramp-sh-handle-write-region, tramp-sh-handle-vc-registered) + (tramp-sh-handle-file-notify-add-watch, tramp-maybe-send-script) + (tramp-find-file-exists-command, tramp-open-shell) + (tramp-find-shell) + (tramp-open-connection-setup-interactive-shell) + (tramp-find-inline-encoding, tramp-find-inline-compress) + (tramp-compute-multi-hops, tramp-maybe-open-connection) + (tramp-wait-for-output, tramp-send-command-and-check) + (tramp-send-command-and-read, tramp-get-remote-path) + (tramp-get-ls-command, tramp-get-ls-command-with-dired) + (tramp-get-ls-command-with-quoting-style) + (tramp-get-test-command, tramp-get-remote-ln) + (tramp-get-remote-perl, tramp-get-remote-stat) + (tramp-get-remote-readlink, tramp-get-remote-trash) + (tramp-get-remote-touch, tramp-get-remote-gvfs-monitor-dir) + (tramp-get-remote-inotifywait, tramp-get-remote-id) + (tramp-get-remote-python): + * lisp/net/tramp-smb.el (tramp-smb-errors) + (tramp-smb-handle-add-name-to-file, tramp-smb-handle-copy-file) + (tramp-smb-handle-delete-directory) + (tramp-smb-handle-delete-file) + (tramp-smb-handle-file-local-copy) + (tramp-smb-handle-make-directory) + (tramp-smb-handle-make-directory-internal) + (tramp-smb-handle-make-symbolic-link) + (tramp-smb-handle-rename-file, tramp-smb-handle-set-file-acl) + (tramp-smb-handle-set-file-modes) + (tramp-smb-handle-write-region, tramp-smb-get-file-entries): + * lisp/net/tramp.el (tramp-debug-message, tramp-error) + (tramp-process-actions): + Generate diagnostics according to ‘text-quoting-style’, by + using curved quotes in format strings and ‘format-message’ + when appropriate. + * lisp/net/tramp-compat.el (format-message): + Define a replacement, if it’s an older version of Emacs + that doesn’t have it already. + + * etc/NEWS: Clarify text-quoting-style and electric-quote-mode. + +2015-08-24 Xue Fuqiao + + Fix documentation for `save-excursion' + * doc/lispref/positions.texi (Excursions): + * doc/lispintro/emacs-lisp-intro.texi (save-excursion) + (Template for save-excursion, Point and mark): `save-excursion' + does not save&restore the mark any more. + +2015-08-24 Michael Albinus + + * lisp/net/tramp-sh.el (tramp-stat-marker, tramp-stat-quoted-marker): + New defconsts. + (tramp-do-file-attributes-with-stat) + (tramp-do-directory-files-and-attributes-with-stat): Use them. + (tramp-convert-file-attributes): Remove double slashes in symlinks. + * test/automated/tramp-tests.el (tramp-test18-file-attributes): + Handle symlinks with "//" in the file name. + + Revert fbb5531fa11d13854b274d28ccd329c9b6652cfc for tramp.el. + +2015-08-24 Nicolas Petton + + Fix cl-subseq and cl-concatenate + * lisp/emacs-lisp/cl-extra.el (cl-subseq, cl-concatenate): Do not use + seq functions. + * lisp/emacs-lisp/seq.el (seq-concatenate): Call cl-concatenate in + seq-concatenate. + +2015-08-24 Pip Cet (tiny change) + + Fix full-screen code when there is no window manager (Bug#21317) + * src/xterm.h (x_wm_supports): Declare external. + * src/xterm.c (wm_suppports): Rename to `x_wm_supports', export. + (do_ewmh_fullscreen, x_ewmh_activate_frame): Adjust for rename. + (x_check_fullscreen): Call `x_wm_set_size_hint', restore + `fullscreen' frame parameter. + * gtkutil.c (x_wm_set_size_hint): Set size hints when running + without a window manager. + +2015-08-24 Glenn Morris + + * lisp/version.el (emacs-version): No longer include build host + * doc/lispref/intro.texi (Version Info): Update example. + +2015-08-24 Paul Eggert + + * doc/lispref/elisp.texi: Fix typo in previous change. + + More-conservative ‘format’ quote restyling + Instead of restyling curved quotes for every call to ‘format’, + create a new function ‘format-message’ that does the restyling, + and using the new function instead of ‘format’ only in contexts + where this seems appropriate. + Problem reported by Dmitry Gutov and Andreas Schwab in: + http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00826.html + http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00827.html + * doc/lispref/commands.texi (Using Interactive): + * doc/lispref/control.texi (Signaling Errors, Signaling Errors): + * doc/lispref/display.texi (Displaying Messages, Progress): + * doc/lispref/elisp.texi: + * doc/lispref/help.texi (Keys in Documentation): + * doc/lispref/minibuf.texi (Minibuffer Misc): + * doc/lispref/strings.texi (Formatting Strings): + * etc/NEWS: + Document the changes. + * lisp/abbrev.el (expand-region-abbrevs): + * lisp/apropos.el (apropos-library): + * lisp/calc/calc-ext.el (calc-record-message) + (calc-user-function-list): + * lisp/calc/calc-help.el (calc-describe-key, calc-full-help): + * lisp/calc/calc-lang.el (math-read-big-balance): + * lisp/calc/calc-store.el (calc-edit-variable): + * lisp/calc/calc-units.el (math-build-units-table-buffer): + * lisp/calc/calc-yank.el (calc-edit-mode): + * lisp/calendar/icalendar.el (icalendar-export-region) + (icalendar--add-diary-entry): + * lisp/cedet/mode-local.el (mode-local-print-binding) + (mode-local-describe-bindings-2): + * lisp/cedet/semantic/complete.el (semantic-completion-message): + * lisp/cedet/semantic/edit.el (semantic-parse-changes-failed): + * lisp/cedet/semantic/wisent/comp.el (wisent-log): + * lisp/cedet/srecode/insert.el (srecode-insert-show-error-report): + * lisp/descr-text.el (describe-text-properties-1, describe-char): + * lisp/dframe.el (dframe-message): + * lisp/dired-aux.el (dired-query): + * lisp/emacs-lisp/byte-opt.el (byte-compile-log-lap-1): + * lisp/emacs-lisp/bytecomp.el (byte-compile-log) + (byte-compile-log-file, byte-compile-warn, byte-compile-form): + * lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use) + (cconv-analyze-form): + * lisp/emacs-lisp/check-declare.el (check-declare-warn): + * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): + * lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet): + * lisp/emacs-lisp/edebug.el (edebug-format): + * lisp/emacs-lisp/eieio-core.el (eieio-oref): + * lisp/emacs-lisp/eldoc.el (eldoc-minibuffer-message) + (eldoc-message): + * lisp/emacs-lisp/elint.el (elint-file, elint-log): + * lisp/emacs-lisp/find-func.el (find-function-library): + * lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning): + * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): + * lisp/emacs-lisp/nadvice.el (advice--make-docstring): + * lisp/emacs-lisp/package.el (package-compute-transaction) + (package-install-button-action, package-delete-button-action) + (package-menu--list-to-prompt): + * lisp/emacs-lisp/timer.el (timer-event-handler): + * lisp/emacs-lisp/warnings.el (lwarn, warn): + * lisp/emulation/viper-cmd.el: + (viper-toggle-parse-sexp-ignore-comments) + (viper-kill-buffer, viper-brac-function): + * lisp/emulation/viper-macs.el (viper-record-kbd-macro): + * lisp/facemenu.el (facemenu-add-new-face): + * lisp/faces.el (face-documentation, read-face-name) + (face-read-string, read-face-font, describe-face): + * lisp/files.el (find-alternate-file, hack-local-variables) + (hack-one-local-variable--obsolete, write-file) + (basic-save-buffer, delete-directory): + * lisp/format.el (format-write-file, format-find-file) + (format-insert-file): + * lisp/help-fns.el (help-fns--key-bindings) + (help-fns--compiler-macro, help-fns--obsolete) + (help-fns--interactive-only, describe-function-1) + (describe-variable): + * lisp/help.el (describe-mode): + * lisp/info-xref.el (info-xref-output): + * lisp/info.el (Info-virtual-index-find-node) + (Info-virtual-index, info-apropos): + * lisp/international/kkc.el (kkc-error): + * lisp/international/mule-cmds.el: + (select-safe-coding-system-interactively) + (select-safe-coding-system, describe-input-method): + * lisp/international/mule-conf.el (code-offset): + * lisp/international/mule-diag.el (describe-character-set) + (list-input-methods-1): + * lisp/international/quail.el (quail-error): + * lisp/minibuffer.el (minibuffer-message): + * lisp/mpc.el (mpc--debug): + * lisp/msb.el (msb--choose-menu): + * lisp/net/ange-ftp.el (ange-ftp-message): + * lisp/net/gnutls.el (gnutls-message-maybe): + * lisp/net/newst-backend.el (newsticker--sentinel-work): + * lisp/net/newst-treeview.el (newsticker--treeview-load): + * lisp/net/nsm.el (nsm-query-user): + * lisp/net/rlogin.el (rlogin): + * lisp/net/soap-client.el (soap-warning): + * lisp/net/tramp.el (tramp-debug-message): + * lisp/nxml/nxml-outln.el (nxml-report-outline-error): + * lisp/nxml/nxml-parse.el (nxml-parse-error): + * lisp/nxml/rng-cmpct.el (rng-c-error): + * lisp/nxml/rng-match.el (rng-compile-error): + * lisp/nxml/rng-uri.el (rng-uri-error): + * lisp/obsolete/iswitchb.el (iswitchb-possible-new-buffer): + * lisp/org/org-ctags.el: + (org-ctags-ask-rebuild-tags-file-then-find-tag): + * lisp/proced.el (proced-log): + * lisp/progmodes/ebnf2ps.el (ebnf-log): + * lisp/progmodes/flymake.el (flymake-log): + * lisp/progmodes/vhdl-mode.el (vhdl-warning-when-idle): + * lisp/replace.el (occur-1): + * lisp/simple.el (execute-extended-command) + (undo-outer-limit-truncate, define-alternatives): + * lisp/startup.el (command-line): + * lisp/subr.el (error, user-error, add-to-list): + * lisp/tutorial.el (tutorial--describe-nonstandard-key) + (tutorial--find-changed-keys): + * src/callint.c (Fcall_interactively): + * src/editfns.c (Fmessage, Fmessage_box): + Restyle the quotes of format strings intended for use as a + diagnostic, when restyling seems appropriate. + * lisp/subr.el (format-message): New function. + * src/doc.c (Finternal__text_restyle): New function. + (syms_of_doc): Define it. + +2015-08-23 Paul Eggert + + * etc/NEWS: The new ‘q’ flag is not an incompatible change. + +2015-08-23 Fabián Ezequiel Gallina + + python.el: Fix python-shell-buffer-substring on indented code + (Bug#21086) + * lisp/progmodes/python.el (python-shell-buffer-substring): + Respect current line indentation when calculating string. + * test/automated/python-tests.el + (python-shell-buffer-substring-10) + (python-shell-buffer-substring-11) + (python-shell-buffer-substring-12): New tests. + +2015-08-23 Paul Eggert + + Fix minor glitches from ‘format’ reversion + * doc/lispref/strings.texi (Formatting Strings): + After reversion, ‘text-quoting-style’ is documented in ‘Keys in + Documentation’, not below. + * src/syntax.c (Finternal_describe_syntax_value): + Prefer AUTO_STRING to build_string where either will do, as + AUTO_STRING is a bit faster. + +2015-08-23 Fabián Ezequiel Gallina + + python.el: Defer shell setup code until first interactive prompt + * lisp/progmodes/python.el + (python-shell-comint-watch-for-first-prompt-output-filter): New + function. + (inferior-python-mode): Use it. + (python-shell-first-prompt-hook): New hook. + (python-shell-send-setup-code) + (python-shell-completion-native-turn-on-maybe-with-msg): Attach to + this hook instead of inferior-python-hook. + +2015-08-23 Nicolas Petton + + Remove the calls to `seq-into` from `seq-concatenate` + Since most new types of seq would have to be defined as sequences (cons + cells or CL structs, mostly), there is no need to convert the seqs to + sequences (which can be a fairly expensive operation). + * lisp/emacs-lisp/seq.el (seq-concatenate): Do not ensure that seqs are + sequences. + +2015-08-23 Fabián Ezequiel Gallina + + python.el: Fix completion for pdb interactions + * lisp/progmodes/python.el (python-shell-completion-setup-code): + Simplify. Toggle print_mode for native wrapped completer. + (python-shell-completion-native-setup): Ensure process buffer. + Add print_mode attribute to completer wrapper to toggle returning + or printing candidates. + (python-shell-completion-native-get-completions): Cleanup. + (python-shell-completion-get-completions): Cleanup. + (python-shell-completion-at-point): Perform prompt checks. Force + fallback completion in pdb interactions. + +2015-08-23 Nicolas Petton + + Make seq.el more extensible by using cl-defmethod + * lisp/emacs-lisp/seq.el: Define seq.el functions using cl-defmethod to + make it easier to extend seq.el with new "seq types". + * test/automated/seq-tests.el (test-setf-seq-elt): New test. + * lisp/emacs-lisp/cl-extra.el (cl-subseq): Move back the definition of + subseq in cl-extra.el, and use it in seq.el. + +2015-08-23 Fabián Ezequiel Gallina + + python.el: Fix prompt detection with user overridden interpreter + * lisp/progmodes/python.el (python-shell-prompt-detect): Honor + buffer local python-shell-interpreter and + python-shell-interpreter-interactive-arg. + +2015-08-23 Eli Zaretskii + + Support exec-directory with non-ASCII characters on Windows + * src/w32proc.c (sys_spawnve): Make sure exec-directory is encoded + in the system's ANSI codepage, when it is used for invoking + cmdproxy. + +2015-08-23 Andreas Schwab + + Revert "Extend ‘format’ to translate curved quotes" + This reverts commit 244c801689d2f7a80480d83cd7d092d4762ebe08. + + Revert "Prefer ‘format’ to ‘substitute-command-keys’" + This reverts commit 6af5aad26411ffe21c3fe4bc5438347110910111. + +2015-08-23 Xue Fuqiao + + * doc/lispintro/emacs-lisp-intro.texi (Switching Buffers): Clarify + "invisible window". + 2015-08-23 Xue Fuqiao * doc/emacs/modes.texi (Choosing Modes): Minor doc fix for @@ -10469,7 +11395,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit a664f6a5d586e1f3fdbf31d0cf2fdaa6429a58fe (inclusive). +commit cc90c25a50e536669ac327f7e05ec9194d1650d0 (inclusive). See ChangeLog.1 for earlier changes. ;; Local Variables: