commit 08431a20c55bc9b7f3f1c489a481663633794420 (HEAD, refs/remotes/origin/master) Author: Michael Vehrs Date: Sat May 2 17:08:54 2015 +0300 Fix display of keyboard layouts for right-to-left scripts * lisp/international/quail.el (quail-insert-kbd-layout): Force left-to-right paragraph direction. diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 5e422bf..90a540a 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -793,9 +793,10 @@ you type is correctly handled." keyseq))) (defun quail-insert-kbd-layout (kbd-layout) -"Insert the visual keyboard layout table according to KBD-LAYOUT. + "Insert the visual keyboard layout table according to KBD-LAYOUT. The format of KBD-LAYOUT is the same as `quail-keyboard-layout'." (let (done-list layout i ch) + (setq bidi-paragraph-direction 'left-to-right) ;; At first, convert KBD-LAYOUT to the same size vector that ;; contains translated character or string. (setq layout (string-to-vector kbd-layout) commit 40e720d049693dfe0c5559a8a8285a0b5cc6c5e2 Merge: c3c9dab 0bbc027 Author: K. Handa Date: Sat May 2 22:39:54 2015 +0900 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs commit c3c9dab41b637b53034dd2f3dce6bf042380adae Author: K. Handa Date: Sat May 2 22:38:36 2015 +0900 * cmds.c (internal_self_insert): When we insert spaces for padding, set point before the padding spaces, not after them. diff --git a/src/cmds.c b/src/cmds.c index 168ce83..b590805 100644 --- a/src/cmds.c +++ b/src/cmds.c @@ -473,7 +473,7 @@ internal_self_insert (int c, EMACS_INT n) } replace_range (PT, PT + chars_to_delete, string, 1, 1, 1); - Fforward_char (make_number (n + spaces_to_insert)); + Fforward_char (make_number (n)); } else if (n > 1) { commit 0bbc027356b680f32ac7b2d47d43a65d01091032 Author: Nicolas Petton Date: Sat May 2 14:26:37 2015 +0200 * lisp/emacs-lisp/seq.el (seq-p): New alias to `sequencep'. diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el index 2f3f519..456debf 100644 --- a/lisp/emacs-lisp/seq.el +++ b/lisp/emacs-lisp/seq.el @@ -344,6 +344,7 @@ This is an optimization for lists in `seq-take-while'." (defalias 'seq-do #'mapc) (defalias 'seq-each #'seq-do) (defalias 'seq-map #'mapcar) +(defalias 'seq-p #'sequencep) (unless (fboundp 'elisp--font-lock-flush-elisp-buffers) ;; In Emacs≄25, (via elisp--font-lock-flush-elisp-buffers and a few others) commit 3bfb6a0f12f020ed869400c6bcae90fec2c448da Author: Dmitry Gutov Date: Sat May 2 13:11:07 2015 +0300 Fix etags-xref-find for references * lisp/progmodes/elisp-mode.el (elisp--xref-find-references): Use `cl-mapcan'. * lisp/progmodes/etags.el (etags-xref-find): Ditto. Prompt for directory if no tags tables are loaded (bug#19468). diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index ef477d6..2bb661a 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -650,7 +650,7 @@ It can be quoted, or be inside a quoted form." (if (string-prefix-p (car ref) (cadr ref)) (setcdr ref (cddr ref)) (setq ref (cdr ref)))) - (mapcan + (cl-mapcan (lambda (dir) (and (file-exists-p dir) (xref-collect-references symbol dir))) diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 9a57d8a..4e923aa 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -2082,10 +2082,15 @@ for \\[find-tag] (which see)." (defun etags-xref-find (action id) (pcase action (`definitions (etags--xref-find-definitions id)) - (`references (mapcan - (lambda (file) - (xref-collect-references id (file-name-directory file))) - tags-table-list)) + (`references + (let ((dirs (if tags-table-list + (mapcar #'file-name-directory tags-table-list) + ;; If no tags files are loaded, prompt for the dir. + (list (read-directory-name "In directory: " nil nil t))))) + (cl-mapcan + (lambda (dir) + (xref-collect-references id dir)) + dirs))) (`apropos (etags--xref-find-definitions id t)))) (defun etags--xref-find-definitions (pattern &optional regexp?) commit 3874b33a32ccc481a12a7b9259b7c3963a786a6f Author: Philipp Stephani Date: Sat May 2 12:15:46 2015 +0300 Update the options in whitespace-style defcustom * lisp/whitespace.el (whitespace-style): Use `set' instead of a `repeat' because the option is really set-like. Add missing options. Reorder options to match the order in the documentation. (Bug#20346) diff --git a/lisp/whitespace.el b/lisp/whitespace.el index b4cd67f..fad3e2f 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el @@ -538,31 +538,34 @@ cleaning up a buffer. See `whitespace-cleanup' and `whitespace-cleanup-region' for documentation. See also `whitespace-display-mappings' for documentation." - :type '(repeat :tag "Kind of Blank" - (choice :tag "Kind of Blank Face" - (const :tag "(Face) Face visualization" - face) - (const :tag "(Face) Trailing TABs, SPACEs and HARD SPACEs" - trailing) - (const :tag "(Face) SPACEs and HARD SPACEs" - spaces) - (const :tag "(Face) TABs" tabs) - (const :tag "(Face) Lines" lines) - (const :tag "(Face) SPACEs before TAB" - space-before-tab) - (const :tag "(Face) NEWLINEs" newline) - (const :tag "(Face) Indentation SPACEs" - indentation) - (const :tag "(Face) Too much line indentation" - big-indent) - (const :tag "(Face) Empty Lines At BOB And/Or EOB" - empty) - (const :tag "(Face) SPACEs after TAB" - space-after-tab) - (const :tag "(Mark) SPACEs and HARD SPACEs" - space-mark) - (const :tag "(Mark) TABs" tab-mark) - (const :tag "(Mark) NEWLINEs" newline-mark))) + :type '(set :tag "Kind of Blank" + (const :tag "(Face) Face visualization" face) + (const :tag "(Face) Trailing TABs, SPACEs and HARD SPACEs" + trailing) + (const :tag "(Face) TABs" tabs) + (const :tag "(Face) SPACEs and HARD SPACEs" spaces) + (const :tag "(Face) Lines" lines) + (const :tag "(Face) Lines, only overlong part" lines-tail) + (const :tag "(Face) NEWLINEs" newline) + (const :tag "(Face) Empty Lines At BOB And/Or EOB" empty) + (const :tag "(Face) Indentation SPACEs" indentation::tab) + (const :tag "(Face) Indentation TABs" + indentation::space) + (const :tag "(Face) Indentation TABs or SPACEs" indentation) + (const :tag "(Face) Too much line indentation" big-indent) + (const :tag "(Face) SPACEs after TAB: SPACEs" + space-after-tab::tab) + (const :tag "(Face) SPACEs after TAB: TABs" + space-after-tab::space) + (const :tag "(Face) SPACEs after TAB" space-after-tab) + (const :tag "(Face) SPACEs before TAB: SPACEs" + space-before-tab::tab) + (const :tag "(Face) SPACEs before TAB: TABs" + space-before-tab::space) + (const :tag "(Face) SPACEs before TAB" space-before-tab) + (const :tag "(Mark) SPACEs and HARD SPACEs" space-mark) + (const :tag "(Mark) TABs" tab-mark) + (const :tag "(Mark) NEWLINEs" newline-mark)) :group 'whitespace) (defvar whitespace-space 'whitespace-space commit ad7e1143fc6d904bc5a9a0a05536986f53a48cf7 Author: Eli Zaretskii Date: Sat May 2 12:01:04 2015 +0300 Fix error diagnostics of c-macro-expand * lisp/progmodes/cmacexp.el (c-macro-expansion): Don't bail out too early if no start-marker string was found -- that generally means cpp exited abnormally, and we still want to show its error messages to the user. diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el index 357625d..19d0473 100644 --- a/lisp/progmodes/cmacexp.el +++ b/lisp/progmodes/cmacexp.el @@ -364,8 +364,8 @@ Optional arg DISPLAY non-nil means show messages in the echo area." ;; Find and delete the mark of the start of the expansion. ;; Look for `# nn "file.c"' lines and delete them. (goto-char (point-min)) - (search-forward startmarker) - (delete-region 1 (point))) + (if (search-forward startmarker nil t) + (delete-region 1 (point)))) (while (re-search-forward (concat "^# [0-9]+ \"" (regexp-quote filename) "\"") nil t)