Now on revision 107594. ------------------------------------------------------------ revno: 107594 fixes bug(s): http://debbugs.gnu.org/11002 author: Tim Landscheidt committer: Glenn Morris branch nick: trunk timestamp: Mon 2012-03-12 23:54:37 -0700 message: Fix some missing trailing whitespace (tiny change) * lisp/calendar/icalendar.el (icalendar-export-file, icalendar-import-file): * lisp/emulation/ws-mode.el (ws-query-replace): * lisp/sort.el (sort-regexp-fields): Fix missing trailing whitespace in interactive prompts. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-03-12 20:07:45 +0000 +++ lisp/ChangeLog 2012-03-13 06:54:37 +0000 @@ -1,3 +1,10 @@ +2012-03-13 Tim Landscheidt (tiny change) + + * calendar/icalendar.el (icalendar-export-file, icalendar-import-file): + * emulation/ws-mode.el (ws-query-replace): + * sort.el (sort-regexp-fields): + Fix missing trailing whitespace in interactive prompts. (Bug#11002) + 2012-03-12 Stefan Monnier * dabbrev.el: Fix cycle completion order (bug#10963). === modified file 'lisp/calendar/icalendar.el' --- lisp/calendar/icalendar.el 2012-01-19 07:21:25 +0000 +++ lisp/calendar/icalendar.el 2012-03-13 06:54:37 +0000 @@ -915,7 +915,7 @@ "Export diary file to iCalendar format. All diary entries in the file DIARY-FILENAME are converted to iCalendar format. The result is appended to the file ICAL-FILENAME." - (interactive "FExport diary data from file: + (interactive "FExport diary data from file: \n\ Finto iCalendar file: ") (save-current-buffer (set-buffer (find-file diary-filename)) @@ -1794,7 +1794,7 @@ Argument DIARY-FILENAME input `diary-file'. Optional argument NON-MARKING determines whether events are created as non-marking or not." - (interactive "fImport iCalendar data from file: + (interactive "fImport iCalendar data from file: \n\ Finto diary file: p") ;; clean up the diary file === modified file 'lisp/emulation/ws-mode.el' --- lisp/emulation/ws-mode.el 2012-01-19 07:21:25 +0000 +++ lisp/emulation/ws-mode.el 2012-03-13 06:54:37 +0000 @@ -716,7 +716,7 @@ (defun ws-query-replace (from to) "In WordStar mode: Search string, remember string for repetition." - (interactive "sReplace: + (interactive "sReplace: \n\ sWith: " ) (setq ws-search-string from) (setq ws-search-direction t) === modified file 'lisp/sort.el' --- lisp/sort.el 2012-01-19 07:21:25 +0000 +++ lisp/sort.el 2012-03-13 06:54:37 +0000 @@ -423,7 +423,7 @@ ;; using negative prefix arg to mean "reverse" is now inconsistent with ;; other sort-.*fields functions but then again this was before, since it ;; didn't use the magnitude of the arg to specify anything. - (interactive "P\nsRegexp specifying records to sort: + (interactive "P\nsRegexp specifying records to sort: \n\ sRegexp specifying key within record: \nr") (cond ((or (equal key-regexp "") (equal key-regexp "\\&")) (setq key-regexp 0)) ------------------------------------------------------------ revno: 107593 committer: Paul Eggert branch nick: trunk timestamp: Mon 2012-03-12 15:35:55 -0700 message: Spelling fixes. diff: === modified file 'doc/lispref/internals.texi' --- doc/lispref/internals.texi 2012-03-03 22:13:28 +0000 +++ doc/lispref/internals.texi 2012-03-12 22:35:55 +0000 @@ -134,7 +134,7 @@ This function delays the initialization of @var{symbol} to the next Emacs start. You normally use this function by specifying it as the @code{:initialize} property of a customizable variable. (The argument -@var{value} is unused, and is provided only for compatiblity with the +@var{value} is unused, and is provided only for compatibility with the form Custom expects.) @end defun === modified file 'etc/NEWS' --- etc/NEWS 2012-03-12 03:58:20 +0000 +++ etc/NEWS 2012-03-12 22:35:55 +0000 @@ -1030,7 +1030,7 @@ ** The return value of `backup-buffer' has changed. It is now a list of three elements, where the second element is a list describing the original file's SELinux context. If Emacs or the -system lacks SELinux cupport, the context list is (nil nil nil nil). +system lacks SELinux support, the context list is (nil nil nil nil). See the "Basic SELinux support" entry under "Changes in Emacs 24.1", above. === modified file 'leim/ChangeLog' --- leim/ChangeLog 2012-03-09 12:18:25 +0000 +++ leim/ChangeLog 2012-03-12 22:35:55 +0000 @@ -1,7 +1,7 @@ 2012-03-09 Mohsen BANAN * quail/persian.el: Update which includes: (1) full compliance to - ISIRI-6219, forbiden characters were eliminated and missing + ISIRI-6219, forbidden characters were eliminated and missing characters were added; (2) layer 3 of ISIRI-9147 is now implemented with a '\' prefix; (3) double entry of characters which were postfixed with 'h' is now supported; (4) lots of === modified file 'leim/quail/persian.el' --- leim/quail/persian.el 2012-03-09 12:18:25 +0000 +++ leim/quail/persian.el 2012-03-12 22:35:55 +0000 @@ -34,7 +34,7 @@ ;; - (farsi-isiri-9149) Persian Keyboard based on Islamic Republic of Iran's ISIR-9147 ;; - (farsi-transliterate-banan) An intuitive transliteration keyboard for Farsi ;; -;; Additional documentaion for these inpput methods can be found at: +;; Additional documentation for these input methods can be found at: ;; http://www.persoarabic.org/PLPC/120036 ;; @@ -279,7 +279,7 @@ ;; ISIRI-9147 Persian keyboard is generally not well suited for Iranian-Expatriates ;; working/living in the West. ;; -;; The qwetry keyboard is usually second nature to Persian speaking expatriates and they +;; The qwerty keyboard is usually second nature to Persian speaking expatriates and they ;; don't want to learn/adapt to ISIRI-9147. They expect software to adapt to them. ;; ;; That is what the ``Banan Multi-Character (Reverse) Transliteration Persian Input Method'' does. @@ -289,21 +289,21 @@ ;; - can write in farsi (not just speak it). ;; - is fully comfortable with a qwerty latin keyboard. ;; - is not familiar with isir-9147 and does not wish to be trained. -;; - communicatates and writes in a mixed globish/persian -- not pure persian. +;; - communicates and writes in a mixed globish/persian -- not pure persian. ;; - is intuitively familiar with transliteration of farsi/persian into latin based on two letter ;; phonetic mapping to persian characters (e.g., gh ق -- kh خ -- sh ش -- ch چ -- zh ژ. ;; ;; This transliteration keyboard is designed to be intuitive such that ;; mapping are easy and natural to remember for a persian writer. ;; It is designed to be equivalent in capability to farsi-isiri-9147 -;; and provide for inputing all characters enumerated in ISIRI-6219. +;; and provide for inputting all characters enumerated in ISIRI-6219. ;; ;; farsi-transliterate-banan is of course phonetic oriented. But it is very different from ;; pinglish. Pinglish is word oriented where you sound out the word with latin letters -- -;; incuding the vowels. farsi-transliterate-banan is letter oriented where you enter the +;; including the vowels. farsi-transliterate-banan is letter oriented where you enter the ;; latin letter/letters closest to the persian letter. And usually omit vowels. ;; -;; For some persian characters there are multiple ways of inputing +;; For some persian characters there are multiple ways of inputting ;; the same character. For example both ``i'' and ``y'' produce ی. ;; For یک ``yk'', ``y'' is more natural and for این ``ain'', ``i'' is more natural. ;; @@ -317,7 +317,7 @@ ;; ;; ;; Prefix letter \ is used for two character inputs when an alternate form of a letter -;; is desired for exampe \% is: ‌÷ when % is: ٪. +;; is desired for example \% is: ‌÷ when % is: ٪. ;; ;; Prefix letter & is used for multi-character inputs when special characters are ;; desired based on their abbreviate name. For example you can enter ‎ to enter the @@ -485,7 +485,7 @@ ("$" ?\u0670) ;; (ucs-insert #x0670)ٰ named: الفِ مقصوره‌ی فارسی -;;;;;;;;;;; isiri-6219 Table 8 - Forbiden Characters -- جدول ۸ - نویسه‌هایِ ممنوع +;;;;;;;;;;; isiri-6219 Table 8 - Forbidden Characters -- جدول ۸ - نویسه‌هایِ ممنوع ;; ;; he ye (ucs-insert 1728) kills emacs-24.0.90 ;; arabic digits 0-9 === modified file 'lisp/faces.el' --- lisp/faces.el 2012-03-04 15:03:51 +0000 +++ lisp/faces.el 2012-03-12 22:35:55 +0000 @@ -1516,7 +1516,7 @@ (apply 'set-face-attribute face frame (if (eq face 'default) ;; For the default face, avoid making any attribute - ;; unspecifed. Instead, set attributes to default values + ;; unspecified. Instead, set attributes to default values ;; (see also realize_default_face in xfaces.c). (append '(:underline nil :overline nil :strike-through nil === modified file 'lisp/net/mairix.el' --- lisp/net/mairix.el 2012-03-10 14:36:42 +0000 +++ lisp/net/mairix.el 2012-03-12 22:35:55 +0000 @@ -659,7 +659,7 @@ " containing the word)\n" " substring= to match words containing the substring\n" " substring=N to match words containing the substring, allowing\n" - " up to N errors(mising/extra/different letters)\n" + " up to N errors(missing/extra/different letters)\n" " ^substring= to match the substring at the beginning of a word.\n")) (widget-insert "Whitespace will be converted to ',' (i.e. AND). Use '/' for OR.\n\n") === modified file 'lisp/progmodes/cc-engine.el' --- lisp/progmodes/cc-engine.el 2012-03-02 22:16:21 +0000 +++ lisp/progmodes/cc-engine.el 2012-03-12 22:35:55 +0000 @@ -236,7 +236,7 @@ (defun c-invalidate-macro-cache (beg end) ;; Called from a before-change function. If the change region is before or - ;; in the macro characterised by `c-macro-cache' etc., nullify it + ;; in the macro characterized by `c-macro-cache' etc., nullify it ;; appropriately. BEG and END are the standard before-change-functions ;; parameters. END isn't used. (cond @@ -2163,7 +2163,7 @@ (make-variable-buffer-local 'c-state-semi-nonlit-pos-cache-limit) ;; An upper limit on valid entries in `c-state-semi-nonlit-pos-cache'. This is ;; reduced by buffer changes, and increased by invocations of -;; `c-state-literal-at'. FIMXE!!! +;; `c-state-literal-at'. FIXME!!! (defsubst c-state-pp-to-literal (from to) ;; Do a parse-partial-sexp from FROM to TO, returning either ------------------------------------------------------------ revno: 107592 committer: David Engster branch nick: trunk timestamp: Mon 2012-03-12 21:51:17 +0100 message: * semantic/db-find.el (semanticdb-find-translate-path-brutish-default): If we don't yet have a proper table for PATH, use `semanticdb-current-database' instead (bug #10343). diff: === modified file 'lisp/cedet/ChangeLog' --- lisp/cedet/ChangeLog 2012-03-11 20:29:14 +0000 +++ lisp/cedet/ChangeLog 2012-03-12 20:51:17 +0000 @@ -1,3 +1,10 @@ +2012-03-12 David Engster + + * semantic/db-find.el + (semanticdb-find-translate-path-brutish-default): If we don't yet + have a proper table for PATH, use `semanticdb-current-database' + instead (bug #10343). + 2012-03-11 David Engster * semantic/wisent/javascript.el (js-mode): Define `js-mode' as === modified file 'lisp/cedet/semantic/db-find.el' --- lisp/cedet/semantic/db-find.el 2012-01-19 07:21:25 +0000 +++ lisp/cedet/semantic/db-find.el 2012-03-12 20:51:17 +0000 @@ -325,8 +325,10 @@ (cond ((null path) semanticdb-current-database) ((semanticdb-table-p path) (oref path parent-db)) (t (let ((tt (semantic-something-to-tag-table path))) - ;; @todo - What does this DO ??!?! - (with-current-buffer (semantic-tag-buffer (car tt)) + (if tt + ;; @todo - What does this DO ??!?! + (with-current-buffer (semantic-tag-buffer (car tt)) + semanticdb-current-database) semanticdb-current-database)))))) (apply #'nconc ------------------------------------------------------------ revno: 107591 fixes bug(s): http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10963 committer: Stefan Monnier branch nick: trunk timestamp: Mon 2012-03-12 16:07:45 -0400 message: * lisp/dabbrev.el: Fix cycle completion order. (dabbrev--last-obarray, dabbrev--last-completion-buffer): Remove. (dabbrev-completion): Don't use an obarray; provide a cycle-sort-function. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-03-12 18:21:35 +0000 +++ lisp/ChangeLog 2012-03-12 20:07:45 +0000 @@ -1,3 +1,10 @@ +2012-03-12 Stefan Monnier + + * dabbrev.el: Fix cycle completion order (bug#10963). + (dabbrev--last-obarray, dabbrev--last-completion-buffer): Remove. + (dabbrev-completion): Don't use an obarray; provide + a cycle-sort-function. + 2012-03-12 Leo Liu * simple.el (kill-new): Use equal-including-properties for === modified file 'lisp/dabbrev.el' --- lisp/dabbrev.el 2012-03-12 13:03:10 +0000 +++ lisp/dabbrev.el 2012-03-12 20:07:45 +0000 @@ -291,9 +291,6 @@ ;; Internal variables ;;---------------------------------------------------------------- -;; Last obarray of completions in `dabbrev-completion' -(defvar dabbrev--last-obarray nil) - ;; Table of expansions seen so far (defvar dabbrev--last-table nil) @@ -321,9 +318,6 @@ ;; The buffer we found the expansion last time. (defvar dabbrev--last-buffer-found nil) -;; The buffer we last did a completion in. -(defvar dabbrev--last-completion-buffer nil) - ;; If non-nil, a function to use when copying successive words. ;; It should be `upcase' or `downcase'. (defvar dabbrev--last-case-pattern nil) @@ -393,47 +387,39 @@ dabbrev-case-fold-search) (or (not dabbrev-upcase-means-case-search) (string= abbrev (downcase abbrev))))) - (my-obarray dabbrev--last-obarray) + (list 'uninitialized) (table - (completion-table-dynamic - (let ((initialized nil)) - (lambda (abbrev) - (unless initialized - (setq initialized t) - (save-excursion - ;;-------------------------------- - ;; New abbreviation to expand. - ;;-------------------------------- - (setq dabbrev--last-abbreviation abbrev) - ;; Find all expansion - (let ((completion-list - (dabbrev--find-all-expansions abbrev ignore-case-p)) - (completion-ignore-case ignore-case-p)) - ;; Make an obarray with all expansions - (setq my-obarray (make-vector (length completion-list) 0)) - (or (> (length my-obarray) 0) - (error "No dynamic expansion for \"%s\" found%s" - abbrev - (if dabbrev--check-other-buffers - "" " in this-buffer"))) - (cond - ((not (and ignore-case-p - dabbrev-case-replace)) - (dolist (string completion-list) - (intern string my-obarray))) - ((string= abbrev (upcase abbrev)) - (dolist (string completion-list) - (intern (upcase string) my-obarray))) - ((string= (substring abbrev 0 1) - (upcase (substring abbrev 0 1))) - (dolist (string completion-list) - (intern (capitalize string) my-obarray))) - (t - (dolist (string completion-list) - (intern (downcase string) my-obarray)))) - (setq dabbrev--last-obarray my-obarray) - (setq dabbrev--last-completion-buffer (current-buffer))))) - my-obarray))))) + (lambda (s p a) + (if (eq a 'metadata) + `(metadata (cycle-sort-function . ,#'identity) + (category . dabbrev)) + (when (eq list 'uninitialized) + (save-excursion + ;;-------------------------------- + ;; New abbreviation to expand. + ;;-------------------------------- + (setq dabbrev--last-abbreviation abbrev) + ;; Find all expansion + (let ((completion-list + (dabbrev--find-all-expansions abbrev ignore-case-p)) + (completion-ignore-case ignore-case-p)) + (or (consp completion-list) + (error "No dynamic expansion for \"%s\" found%s" + abbrev + (if dabbrev--check-other-buffers + "" " in this-buffer"))) + (setq list + (cond + ((not (and ignore-case-p dabbrev-case-replace)) + completion-list) + ((string= abbrev (upcase abbrev)) + (mapcar #'upcase completion-list)) + ((string= (substring abbrev 0 1) + (upcase (substring abbrev 0 1))) + (mapcar #'capitalize completion-list)) + (t + (mapcar #'downcase completion-list))))))) + (complete-with-action a list s p))))) (completion-in-region beg end table))) ;;;###autoload @@ -627,8 +613,6 @@ (defun dabbrev--reset-global-variables () "Initialize all global variables." - ;; dabbrev--last-obarray and dabbrev--last-completion-buffer - ;; must not be reset here. (setq dabbrev--last-table nil dabbrev--last-abbreviation nil dabbrev--last-abbrev-location nil ------------------------------------------------------------ revno: 107590 committer: Leo Liu branch nick: trunk timestamp: Tue 2012-03-13 02:21:35 +0800 message: * lisp/simple.el (kill-new): Use equal-including-properties for comparison. (kill-do-not-save-duplicates): Doc fix. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-03-12 13:03:10 +0000 +++ lisp/ChangeLog 2012-03-12 18:21:35 +0000 @@ -1,3 +1,9 @@ +2012-03-12 Leo Liu + + * simple.el (kill-new): Use equal-including-properties for + comparison. + (kill-do-not-save-duplicates): Doc fix. + 2012-03-12 Stefan Monnier * dabbrev.el: Fix cycle completion (bug#10963). === modified file 'lisp/simple.el' --- lisp/simple.el 2012-03-11 16:57:04 +0000 +++ lisp/simple.el 2012-03-12 18:21:35 +0000 @@ -3069,7 +3069,8 @@ :version "23.2") (defcustom kill-do-not-save-duplicates nil - "Do not add a new string to `kill-ring' when it is the same as the last one." + "Do not add a new string to `kill-ring' if it duplicates the last one. +The comparison is done using `equal-including-properties'." :type 'boolean :group 'killing :version "23.2") @@ -3097,7 +3098,10 @@ (signal 'args-out-of-range (list string "yank-handler specified for empty string")))) (unless (and kill-do-not-save-duplicates - (equal string (car kill-ring))) + ;; Due to text properties such as 'yank-handler that + ;; can alter the contents to yank, comparison using + ;; `equal' is unsafe. + (equal-including-properties string (car kill-ring))) (if (fboundp 'menu-bar-update-yank-menu) (menu-bar-update-yank-menu string (and replace (car kill-ring))))) (when save-interprogram-paste-before-kill @@ -3108,10 +3112,10 @@ (nreverse interprogram-paste) (list interprogram-paste))) (unless (and kill-do-not-save-duplicates - (equal s (car kill-ring))) + (equal-including-properties s (car kill-ring))) (push s kill-ring)))))) (unless (and kill-do-not-save-duplicates - (equal string (car kill-ring))) + (equal-including-properties string (car kill-ring))) (if (and replace kill-ring) (setcar kill-ring string) (push string kill-ring) ------------------------------------------------------------ revno: 107589 fixes bug(s): http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10963 committer: Stefan Monnier branch nick: trunk timestamp: Mon 2012-03-12 09:03:10 -0400 message: * lisp/dabbrev.el: Fix cycle completion. Use lexical binding and wrap to 80 columns. (dabbrev-completion): Delay computing the list of completions. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-03-12 07:42:02 +0000 +++ lisp/ChangeLog 2012-03-12 13:03:10 +0000 @@ -1,3 +1,9 @@ +2012-03-12 Stefan Monnier + + * dabbrev.el: Fix cycle completion (bug#10963). + Use lexical binding and wrap to 80 columns. + (dabbrev-completion): Delay computing the list of completions. + 2012-03-12 Kenichi Handa * international/quail.el (quail-insert-kbd-layout): Surround each === modified file 'lisp/dabbrev.el' --- lisp/dabbrev.el 2012-03-11 15:45:44 +0000 +++ lisp/dabbrev.el 2012-03-12 13:03:10 +0000 @@ -1,4 +1,4 @@ -;;; dabbrev.el --- dynamic abbreviation package +;;; dabbrev.el --- dynamic abbreviation package -*- lexical-binding: t -*- ;; Copyright (C) 1985-1986, 1992, 1994, 1996-1997, 2000-2012 ;; Free Software Foundation, Inc. @@ -387,49 +387,54 @@ (abbrev (dabbrev--abbrev-at-point)) (beg (progn (search-backward abbrev) (point))) (end (progn (search-forward abbrev) (point))) - (ignore-case-p (and (if (eq dabbrev-case-fold-search 'case-fold-search) - case-fold-search - dabbrev-case-fold-search) - (or (not dabbrev-upcase-means-case-search) - (string= abbrev (downcase abbrev))))) - (my-obarray dabbrev--last-obarray)) - (save-excursion - ;;-------------------------------- - ;; New abbreviation to expand. - ;;-------------------------------- - (setq dabbrev--last-abbreviation abbrev) - ;; Find all expansion - (let ((completion-list - (dabbrev--find-all-expansions abbrev ignore-case-p)) - (completion-ignore-case ignore-case-p)) - ;; Make an obarray with all expansions - (setq my-obarray (make-vector (length completion-list) 0)) - (or (> (length my-obarray) 0) - (error "No dynamic expansion for \"%s\" found%s" - abbrev - (if dabbrev--check-other-buffers "" " in this-buffer"))) - (cond - ((or (not ignore-case-p) - (not dabbrev-case-replace)) - (mapc (function (lambda (string) - (intern string my-obarray))) - completion-list)) - ((string= abbrev (upcase abbrev)) - (mapc (function (lambda (string) - (intern (upcase string) my-obarray))) - completion-list)) - ((string= (substring abbrev 0 1) - (upcase (substring abbrev 0 1))) - (mapc (function (lambda (string) - (intern (capitalize string) my-obarray))) - completion-list)) - (t - (mapc (function (lambda (string) - (intern (downcase string) my-obarray))) - completion-list))) - (setq dabbrev--last-obarray my-obarray) - (setq dabbrev--last-completion-buffer (current-buffer)))) - (completion-in-region beg end my-obarray))) + (ignore-case-p + (and (if (eq dabbrev-case-fold-search 'case-fold-search) + case-fold-search + dabbrev-case-fold-search) + (or (not dabbrev-upcase-means-case-search) + (string= abbrev (downcase abbrev))))) + (my-obarray dabbrev--last-obarray) + (table + (completion-table-dynamic + (let ((initialized nil)) + (lambda (abbrev) + (unless initialized + (setq initialized t) + (save-excursion + ;;-------------------------------- + ;; New abbreviation to expand. + ;;-------------------------------- + (setq dabbrev--last-abbreviation abbrev) + ;; Find all expansion + (let ((completion-list + (dabbrev--find-all-expansions abbrev ignore-case-p)) + (completion-ignore-case ignore-case-p)) + ;; Make an obarray with all expansions + (setq my-obarray (make-vector (length completion-list) 0)) + (or (> (length my-obarray) 0) + (error "No dynamic expansion for \"%s\" found%s" + abbrev + (if dabbrev--check-other-buffers + "" " in this-buffer"))) + (cond + ((not (and ignore-case-p + dabbrev-case-replace)) + (dolist (string completion-list) + (intern string my-obarray))) + ((string= abbrev (upcase abbrev)) + (dolist (string completion-list) + (intern (upcase string) my-obarray))) + ((string= (substring abbrev 0 1) + (upcase (substring abbrev 0 1))) + (dolist (string completion-list) + (intern (capitalize string) my-obarray))) + (t + (dolist (string completion-list) + (intern (downcase string) my-obarray)))) + (setq dabbrev--last-obarray my-obarray) + (setq dabbrev--last-completion-buffer (current-buffer))))) + my-obarray))))) + (completion-in-region beg end table))) ;;;###autoload (defun dabbrev-expand (arg) @@ -521,12 +526,13 @@ ;;-------------------------------- (or expansion (setq expansion - (dabbrev--find-expansion abbrev direction - (and (if (eq dabbrev-case-fold-search 'case-fold-search) - case-fold-search - dabbrev-case-fold-search) - (or (not dabbrev-upcase-means-case-search) - (string= abbrev (downcase abbrev)))))))) + (dabbrev--find-expansion + abbrev direction + (and (if (eq dabbrev-case-fold-search 'case-fold-search) + case-fold-search + dabbrev-case-fold-search) + (or (not dabbrev-upcase-means-case-search) + (string= abbrev (downcase abbrev)))))))) (cond ((not expansion) (dabbrev--reset-global-variables) @@ -667,13 +673,13 @@ (let ((case-fold-search ignore-case) (count n)) (while (and (> count 0) - (setq expansion (dabbrev--search abbrev - reverse - (and ignore-case - (if (eq dabbrev-case-distinction 'case-replace) - case-replace - dabbrev-case-distinction)) - ))) + (setq expansion (dabbrev--search + abbrev reverse + (and ignore-case + (if (eq dabbrev-case-distinction + 'case-replace) + case-replace + dabbrev-case-distinction))))) (setq count (1- count)))) (and expansion (setq dabbrev--last-expansion-location (point))) @@ -829,14 +835,15 @@ RECORD-CASE-PATTERN, if non-nil, means set `dabbrev--last-case-pattern' to record whether we upcased the expansion, downcased it, or did neither." ;;(undo-boundary) - (let ((use-case-replace (and (if (eq dabbrev-case-fold-search 'case-fold-search) - case-fold-search - dabbrev-case-fold-search) - (or (not dabbrev-upcase-means-case-search) - (string= abbrev (downcase abbrev))) - (if (eq dabbrev-case-replace 'case-replace) - case-replace - dabbrev-case-replace)))) + (let ((use-case-replace + (and (if (eq dabbrev-case-fold-search 'case-fold-search) + case-fold-search + dabbrev-case-fold-search) + (or (not dabbrev-upcase-means-case-search) + (string= abbrev (downcase abbrev))) + (if (eq dabbrev-case-replace 'case-replace) + case-replace + dabbrev-case-replace)))) ;; If we upcased or downcased the original expansion, ;; do likewise for the subsequent words when we copy them. @@ -862,12 +869,13 @@ (let ((expansion-rest (substring expansion 1)) (first-letter-position (string-match "[[:alpha:]]" abbrev))) (if (or (null first-letter-position) - (and (not (and (or (string= expansion-rest (downcase expansion-rest)) - (string= expansion-rest (upcase expansion-rest))) - (or (string= abbrev (downcase abbrev)) - (and (string= abbrev (upcase abbrev)) - (> (- (length abbrev) first-letter-position) - 1))))) + (and (not + (and (or (string= expansion-rest (downcase expansion-rest)) + (string= expansion-rest (upcase expansion-rest))) + (or (string= abbrev (downcase abbrev)) + (and (string= abbrev (upcase abbrev)) + (> (- (length abbrev) first-letter-position) + 1))))) (string= abbrev (substring expansion 0 (length abbrev))))) (setq use-case-replace nil))) @@ -951,9 +959,9 @@ ;; Limited search. (save-restriction (and dabbrev-limit - (narrow-to-region dabbrev--last-expansion-location - (+ (point) - (if reverse (- dabbrev-limit) dabbrev-limit)))) + (narrow-to-region + dabbrev--last-expansion-location + (+ (point) (if reverse (- dabbrev-limit) dabbrev-limit)))) ;;-------------------------------- ;; Look for a distinct expansion, using dabbrev--last-table. ;;-------------------------------- ------------------------------------------------------------ revno: 107588 author: Lars Magne Ingebrigtsen committer: Katsumi Yamaoka branch nick: trunk timestamp: Mon 2012-03-12 11:48:55 +0000 message: gnus-int.el (gnus-backend-trace): Flip default to nil before Emacs 24.1 release. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2012-03-10 02:02:24 +0000 +++ lisp/gnus/ChangeLog 2012-03-12 11:48:55 +0000 @@ -1,3 +1,8 @@ +2012-03-12 Lars Magne Ingebrigtsen + + * gnus-int.el (gnus-backend-trace): Flip default to nil before Emacs + 24.1 release. + 2012-03-10 David Edmondson * mm-uu.el (mm-uu-forward-extract): Allow for blank lines between the === modified file 'lisp/gnus/gnus-int.el' --- lisp/gnus/gnus-int.el 2012-02-11 22:13:29 +0000 +++ lisp/gnus/gnus-int.el 2012-03-12 11:48:55 +0000 @@ -247,7 +247,7 @@ (eq (nth 1 (assoc method gnus-opened-servers)) 'denied)) -(defvar gnus-backend-trace t) +(defvar gnus-backend-trace nil) (defun gnus-open-server (gnus-command-method) "Open a connection to GNUS-COMMAND-METHOD." ------------------------------------------------------------ revno: 107587 committer: Chong Yidong branch nick: trunk timestamp: Mon 2012-03-12 17:55:35 +0800 message: etc/PROBLEMS: Document keyboard ghosting with M-| (Bug#10740). diff: === modified file 'etc/PROBLEMS' --- etc/PROBLEMS 2012-02-25 01:54:17 +0000 +++ etc/PROBLEMS 2012-03-12 09:55:35 +0000 @@ -302,6 +302,12 @@ ** Keyboard problems +*** Unable to enter the M-| key on some German keyboards. +Some users have reported that M-| suffers from "keyboard ghosting". +This can't be fixed by Emacs, as the keypress never gets passed to it +at all (as can be verified using "xev"). You can work around this by +typing `ESC |' instead. + *** "Compose Character" key does strange things when used as a Meta key. If you define one key to serve as both Meta and Compose Character, you ------------------------------------------------------------ revno: 107586 committer: Paul Eggert branch nick: trunk timestamp: Mon 2012-03-12 01:27:25 -0700 message: * buffer.c (compare_overlays): Don't assume args differ (Bug#6830). diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-03-12 06:34:32 +0000 +++ src/ChangeLog 2012-03-12 08:27:25 +0000 @@ -1,3 +1,7 @@ +2012-03-12 Paul Eggert + + * buffer.c (compare_overlays): Don't assume args differ (Bug#6830). + 2012-03-12 Chong Yidong * eval.c (inhibit_lisp_code): Rename from === modified file 'src/buffer.c' --- src/buffer.c 2012-03-09 16:46:25 +0000 +++ src/buffer.c 2012-03-12 08:27:25 +0000 @@ -2868,7 +2868,9 @@ between "equal" overlays. The result can still change between invocations of Emacs, but it won't change in the middle of `find_field' (bug#6830). */ - return XHASH (s1->overlay) < XHASH (s2->overlay) ? -1 : 1; + if (XHASH (s1->overlay) != XHASH (s2->overlay)) + return XHASH (s1->overlay) < XHASH (s2->overlay) ? -1 : 1; + return 0; } /* Sort an array of overlays by priority. The array is modified in place. ------------------------------------------------------------ revno: 107585 [merge] committer: Kenichi Handa branch nick: trunk timestamp: Mon 2012-03-12 16:43:16 +0900 message: international/quail.el (quail-insert-kbd-layout): Surround each row by LRO and PDF instead of inserting many LRMs. Pad the left and right of each non-spacing marks. Insert invisible space between lower and upper characters to prevent composition. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-03-12 04:10:59 +0000 +++ lisp/ChangeLog 2012-03-12 07:42:02 +0000 @@ -1,3 +1,10 @@ +2012-03-12 Kenichi Handa + + * international/quail.el (quail-insert-kbd-layout): Surround each + row by LRO and PDF instead of inserting many LRMs. Pad the left + and right of each non-spacing marks. Insert invisible space + between lower and upper characters to prevent composition. + 2012-03-12 Stefan Monnier * minibuffer.el (minibuffer-complete): Don't get confused when the === modified file 'lisp/international/quail.el' --- lisp/international/quail.el 2012-03-08 18:21:07 +0000 +++ lisp/international/quail.el 2012-03-12 07:42:02 +0000 @@ -825,28 +825,35 @@ (setq i 0) (while (< i quail-keyboard-layout-len) (when (= (% i 30) 0) + ;; Insert LRO to avoid bidi-reordering of keyboard cells. + (insert (propertize (string ?\x202d) 'invisible t)) (setq row (/ i 30)) (if (> row 1) (insert-char 32 (+ row (/ (- row 2) 2))))) (setq lower (aref layout i) upper (aref layout (1+ i))) (insert bar) - (if (= (if (stringp lower) (string-width lower) (char-width lower)) 1) + (if (< (if (stringp lower) (string-width lower) (char-width lower)) 2) (insert " ")) - ;; Insert invisible LRM characters to force each keyboard row - ;; be rendered left to right, and also to prevent reordering of - ;; individual characters within each cell. See - ;; http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00085.html - ;; for the reasons. - (insert (propertize (string ?\x200e) 'invisible t)) - (insert lower) - (insert (propertize (string ?\x200e) 'invisible t)) - (insert upper) - (if (= (if (stringp upper) (string-width upper) (char-width upper)) 1) + (if (and (characterp lower) + (eq (get-char-code-property lower 'general-category) 'Mn)) + ;; Pad the left and right of non-spacing characters. + (setq lower (compose-string (string lower) 0 1 + (format "\t%c\t" lower)))) + (if (and (characterp upper) + (eq (get-char-code-property upper 'general-category) 'Mn)) + ;; Pad the left and right of non-spacing characters. + (setq upper (compose-string (string upper) 0 1 + (format "\t%c\t" upper)))) + (insert lower (propertize " " 'invisible t) upper) + (if (< (if (stringp upper) (string-width upper) (char-width upper)) 2) (insert " ")) (setq i (+ i 2)) (if (= (% i 30) 0) - (insert bar "\n"))) + (insert bar + ;; Insert PDF to deny the previously inserted LRO. + (propertize (string ?\x202c) 'invisible t) + "\n"))) ;; Insert horizontal lines while deleting blank key columns at the ;; beginning and end of each line. (save-restriction @@ -857,21 +864,21 @@ ;;(delete-region pos (point))) (let ((from1 100) (to1 0) from2 to2) (while (not (eobp)) - (if (looking-at "[| \u200e]*$") + (if (looking-at "[| \u202c\u202d]*$") ;; The entire row is blank. (delete-region (point) (match-end 0)) ;; Delete blank key columns at the head. - (if (looking-at " *\\(| \u200e \u200e \\)+") + (if (looking-at "\u202d? *\\(| \\)+") (subst-char-in-region (point) (match-end 0) ?| ? )) ;; Delete blank key columns at the tail. - (if (re-search-forward "\\( \u200e \u200e |\\)+$" + (if (re-search-forward "\\( |\\)+\u202c?$" (line-end-position) t) (delete-region (match-beginning 0) (point))) (beginning-of-line)) ;; Calculate the start and end columns of a horizontal line. (if (eolp) (setq from2 from1 to2 to1) - (skip-chars-forward " \u200e") + (skip-chars-forward " \u202d") (setq from2 (current-column)) (end-of-line) (setq to2 (current-column)) ------------------------------------------------------------ revno: 107584 committer: Chong Yidong branch nick: trunk timestamp: Mon 2012-03-12 14:34:32 +0800 message: Rename inhibit_window_configuration_change_hook to inhibit_lisp_code. This is a tweak to r107391, suggested by Stefan. * eval.c (inhibit_lisp_code): Rename from inhibit_window_configuration_change_hook; move from window.c. * xfns.c (unwind_create_frame_1, Fx_create_frame): * window.c (run_window_configuration_change_hook) (syms_of_window): Callers changed. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-03-11 17:08:10 +0000 +++ src/ChangeLog 2012-03-12 06:34:32 +0000 @@ -1,3 +1,12 @@ +2012-03-12 Chong Yidong + + * eval.c (inhibit_lisp_code): Rename from + inhibit_window_configuration_change_hook; move from window.c. + + * xfns.c (unwind_create_frame_1, Fx_create_frame): + * window.c (run_window_configuration_change_hook) + (syms_of_window): Callers changed. + 2012-03-11 Chong Yidong * keymap.c (Fkey_description): Doc fix (Bug#9700). === modified file 'src/eval.c' --- src/eval.c 2012-02-15 04:00:34 +0000 +++ src/eval.c 2012-03-12 06:34:32 +0000 @@ -124,6 +124,12 @@ int handling_signal; +/* If non-nil, Lisp code must not be run since some part of Emacs is + in an inconsistent state. Currently, x-create-frame uses this to + avoid triggering window-configuration-change-hook while the new + frame is half-initialized. */ +Lisp_Object inhibit_lisp_code; + static Lisp_Object funcall_lambda (Lisp_Object, ptrdiff_t, Lisp_Object *); static void unwind_to_catch (struct catchtag *, Lisp_Object) NO_RETURN; static int interactive_p (int); @@ -3766,6 +3772,8 @@ staticpro (&Vsignaling_function); Vsignaling_function = Qnil; + inhibit_lisp_code = Qnil; + defsubr (&Sor); defsubr (&Sand); defsubr (&Sif); === modified file 'src/lisp.h' --- src/lisp.h 2012-02-25 19:39:42 +0000 +++ src/lisp.h 2012-03-12 06:34:32 +0000 @@ -2937,6 +2937,7 @@ extern Lisp_Object Qand_rest; extern Lisp_Object Vautoload_queue; extern Lisp_Object Vsignaling_function; +extern Lisp_Object inhibit_lisp_code; extern int handling_signal; #if BYTE_MARK_STACK extern struct catchtag *catchlist; === modified file 'src/window.c' --- src/window.c 2012-02-23 17:40:33 +0000 +++ src/window.c 2012-03-12 06:34:32 +0000 @@ -122,9 +122,6 @@ /* Hook to run when window config changes. */ static Lisp_Object Qwindow_configuration_change_hook; -/* If non-nil, run_window_configuration_change_hook does nothing. */ -Lisp_Object inhibit_window_configuration_change_hook; - /* Used by the function window_scroll_pixel_based */ static int window_scroll_pixel_based_preserve_x; static int window_scroll_pixel_based_preserve_y; @@ -2897,7 +2894,7 @@ = Fdefault_value (Qwindow_configuration_change_hook); XSETFRAME (frame, f); - if (NILP (Vrun_hooks) || !NILP (inhibit_window_configuration_change_hook)) + if (NILP (Vrun_hooks) || !NILP (inhibit_lisp_code)) return; /* Use the right buffer. Matters when running the local hooks. */ @@ -6527,8 +6524,6 @@ window_scroll_preserve_hpos = -1; window_scroll_preserve_vpos = -1; - inhibit_window_configuration_change_hook = Qnil; - DEFVAR_LISP ("temp-buffer-show-function", Vtemp_buffer_show_function, doc: /* Non-nil means call as function to display a help buffer. The function is called with one argument, the buffer to be displayed. === modified file 'src/window.h' --- src/window.h 2012-02-23 07:28:21 +0000 +++ src/window.h 2012-03-12 06:34:32 +0000 @@ -810,10 +810,6 @@ extern Lisp_Object Vmouse_event; -/* If non-nil, run_window_configuration_change_hook does nothing. */ - -extern Lisp_Object inhibit_window_configuration_change_hook; - EXFUN (Fnext_window, 3); EXFUN (Fselect_window, 2); EXFUN (Fset_window_buffer, 3); === modified file 'src/xfns.c' --- src/xfns.c 2012-02-23 07:28:21 +0000 +++ src/xfns.c 2012-03-12 06:34:32 +0000 @@ -2952,7 +2952,7 @@ static Lisp_Object unwind_create_frame_1 (Lisp_Object val) { - inhibit_window_configuration_change_hook = val; + inhibit_lisp_code = val; return Qnil; } @@ -3337,9 +3337,8 @@ Vframe_list. */ { int count2 = SPECPDL_INDEX (); - record_unwind_protect (unwind_create_frame_1, - inhibit_window_configuration_change_hook); - inhibit_window_configuration_change_hook = Qt; + record_unwind_protect (unwind_create_frame_1, inhibit_lisp_code); + inhibit_lisp_code = Qt; x_default_parameter (f, parms, Qmenu_bar_lines, NILP (Vmenu_bar_mode) ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.