commit 3c5cc185df0d4143883d9bef921c2e5ffb59586f (HEAD, refs/remotes/origin/master) Author: Glenn Morris Date: Sun May 10 23:34:45 2015 -0700 * lisp/term/x-win.el: Quieten --without-x compilation. (x-own-selection-internal, x-disown-selection-internal) (x-selection-owner-p, x-selection-exists-p, x-get-selection-internal): Declare. diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el index 11fe93f..f929288 100644 --- a/lisp/term/x-win.el +++ b/lisp/term/x-win.el @@ -1323,6 +1323,17 @@ This returns an error if any Emacs frames are X frames." (x-apply-session-resources) (setq x-initialized t)) +(declare-function x-own-selection-internal "xselect.c" + (selection value &optional frame)) +(declare-function x-disown-selection-internal "xselect.c" + (selection &optional time-object terminal)) +(declare-function x-selection-owner-p "xselect.c" + (&optional selection terminal)) +(declare-function x-selection-exists-p "xselect.c" + (&optional selection terminal)) +(declare-function x-get-selection-internal "xselect.c" + (selection-symbol target-type &optional time-stamp terminal)) + (add-to-list 'display-format-alist '("\\`[^:]*:[0-9]+\\(\\.[0-9]+\\)?\\'" . x)) (gui-method-define handle-args-function x #'x-handle-args) (gui-method-define frame-creation-function x #'x-create-frame-with-faces) commit a0dd752f3902129870b8b4cc4b4f89368c7cfb66 Author: Glenn Morris Date: Sun May 10 23:22:08 2015 -0700 * Makefile.in (emacslog): Remove srcdir. (ChangeLog): Update for the above. diff --git a/Makefile.in b/Makefile.in index 5ac4e61..a02f074 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1092,7 +1092,7 @@ bootstrap: bootstrap-clean .PHONY: master-branch-is-current unchanged-history-files CHANGELOG = ChangeLog -emacslog = $(srcdir)/build-aux/gitlog-to-emacslog +emacslog = build-aux/gitlog-to-emacslog # The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ..., # ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for # the newest (highest-numbered) ChangeLog history file. @@ -1103,7 +1103,7 @@ CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX) # I guess this is PHONY so it always updates? ChangeLog: $(AM_V_GEN)cd $(srcdir) && \ - $(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX) + ./$(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX) # Check that we are in a good state for changing history. master-branch-is-current: commit 1c6e02ca81d868a65e7cbebba9b9b4a8d2cc827e Author: Paul Eggert Date: Sun May 10 22:54:38 2015 -0700 Spelling fix diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi index 9bce155..72976b1 100644 --- a/doc/lispref/sequences.texi +++ b/doc/lispref/sequences.texi @@ -797,7 +797,7 @@ vector or string (@pxref{Iteration} for more information about the @code{dolist} macro). This is primarily useful for side-effects. @end defmac -@defmac seq-let arguments sequense body@dots{} +@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}. commit e35bf5727153bdc8be7178504a8b920b9560b7b0 Author: Fabián Ezequiel Gallina Date: Mon May 11 00:03:08 2015 -0300 python.el: better limit for looking-back calls * lisp/progmodes/python.el (python-shell-accept-process-output): Use last comint prompt start as limit for looking-back. diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 2e7410a..4b0a028 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -2268,7 +2268,8 @@ banner and the initial prompt are received separately." (while t (when (not (accept-process-output process timeout)) (throw 'found nil)) - (when (looking-back regexp (point-min)) + (when (looking-back + regexp (car (python-util-comint-last-prompt))) (throw 'found t)))))) (defun python-shell-comint-end-of-output-p (output) commit b47f3356fb7ef484a1dc12db58e203404a5d8eef Author: Stefan Monnier Date: Sun May 10 22:15:12 2015 -0400 CEDET (srecode-insert-fcn): Fix use of oref on a class * lisp/cedet/srecode/insert.el (srecode-insert-fcn): Fix use of oref on a class. Reported by Pierre Lorenzon. (srecode-template-inserter-point): Remove declaration. diff --git a/lisp/cedet/srecode/insert.el b/lisp/cedet/srecode/insert.el index 426e078..c2a70fe 100644 --- a/lisp/cedet/srecode/insert.el +++ b/lisp/cedet/srecode/insert.el @@ -35,7 +35,6 @@ (require 'srecode/args) (require 'srecode/filters) -(defvar srecode-template-inserter-point) (declare-function srecode-overlaid-activate "srecode/fields") (declare-function srecode-template-inserted-region "srecode/fields") @@ -145,7 +144,7 @@ has set everything up already." ) (set-buffer standard-output) (setq end-mark (point-marker)) - (goto-char (oref srecode-template-inserter-point point))) + (goto-char (oref-default 'srecode-template-inserter-point point))) (oset-default 'srecode-template-inserter-point point eieio-unbound) ;; Return the end-mark. commit 70ac376aa5b8dd687f1735605ea863448e09ee47 Author: Stefan Monnier Date: Sun May 10 22:08:07 2015 -0400 CEDET (srecode-create-dictionary): Avoid obsolete object name * lisp/cedet/srecode/dictionary.el (srecode-create-dictionary): Don't use a symbol as an object name. Reported by Pierre Lorenzon. diff --git a/lisp/cedet/srecode/dictionary.el b/lisp/cedet/srecode/dictionary.el index 97d3310..27e730f 100644 --- a/lisp/cedet/srecode/dictionary.el +++ b/lisp/cedet/srecode/dictionary.el @@ -195,8 +195,8 @@ associated with a buffer or parent." initfrombuff t))) ;; Create the new dictionary object. - (let ((dict (srecode-dictionary - major-mode + (let ((dict (make-instance + 'srecode-dictionary :buffer buffer :parent parent :namehash (make-hash-table :test 'equal commit 4b41540b424468aeca87b9b47ffda2be25c5dac4 Author: Paul Eggert Date: Sun May 10 17:24:05 2015 -0700 C-x 8 shorthands for curved quotes, Euro, etc. Although C-x 8 lets you insert arbitrary Unicode characters, it's awkward to use this to insert commonly used symbols such as curved quotes, the Euro symbol, etc. This patch adds simpler sequences for characters commonly found in English text and in basic math. For example, assuming the Alt key works on your keyboard and iso-transl is loaded, one can now type "A-[" instead of "A-RET LEFT SIN TAB RET" to get the character "‘" (U+2018 LEFT SINGLE QUOTATION MARK). (Bug#20499) * doc/emacs/mule.texi (Unibyte Mode): A few other printing characters now work too. * etc/NEWS: Document this. * lisp/international/iso-transl.el (iso-transl-char-map): Also support the following characters: ‐ ‑ ‒ – — ― ‘ ’ “ ” † ‡ • ′ ″ € № ← → ↔ − ≈ ≠ ≤ ≥ diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index de381df..d929e09 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -1660,8 +1660,8 @@ characters present directly on the keyboard or using @key{Compose} or @cindex compose character @cindex dead character @item -For Latin-1 only, you can use the key @kbd{C-x 8} as a ``compose -character'' prefix for entry of non-@acronym{ASCII} Latin-1 printing +You can use the key @kbd{C-x 8} as a ``compose character'' prefix for +entry of non-@acronym{ASCII} Latin-1 and a few other printing characters. @kbd{C-x 8} is good for insertion (in the minibuffer as well as other buffers), for searching, and in any other context where a key sequence is allowed. diff --git a/etc/NEWS b/etc/NEWS index 844181c..aa6a257 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -213,6 +213,9 @@ successive char insertions. ** Unicode names entered via C-x 8 RET now use substring completion by default. +** C-x 8 now has shorthands for these chars: ‐ ‑ ‒ – — ― ‘ ’ “ ” † ‡ • ′ ″ +€ № ← → ↔ − ≈ ≠ ≤ ≥. As before, you can type C-x 8 C-h to list shorthands. + ** New minor mode global-eldoc-mode is enabled by default. ** Emacs now supports "bracketed paste mode" when running on a terminal diff --git a/lisp/international/iso-transl.el b/lisp/international/iso-transl.el index 73bcae0..e9fb009 100644 --- a/lisp/international/iso-transl.el +++ b/lisp/international/iso-transl.el @@ -1,4 +1,4 @@ -;;; iso-transl.el --- keyboard input definitions for ISO 8859-1 -*- coding: utf-8 -*- +;;; iso-transl.el --- keyboard input for ISO 10646 chars -*- coding: utf-8 -*- ;; Copyright (C) 1987, 1993-1999, 2001-2015 Free Software Foundation, ;; Inc. @@ -36,6 +36,10 @@ ;; to make all of the Alt keys autoload, and it is not clear ;; that the dead accent keys SHOULD autoload this package. +;; This package supports all characters defined by ISO 8859-1, along +;; with a few other ISO 10646 characters commonly used in English and +;; basic math. + ;;; Code: ;;; Provide some binding for startup: @@ -192,6 +196,31 @@ ("~o" . [?õ]) ("~t" . [?þ]) ("~~" . [?¬]) + ("_h" . [?‐]) + ("_H" . [?‑]) + ("_f" . [?‒]) + ("_n" . [?–]) + ("_m" . [?—]) + ("_q" . [?―]) + ("[" . [?‘]) + ("]" . [?’]) + ("{" . [?“]) + ("}" . [?”]) + ("1+" . [?†]) + ("2+" . [?‡]) + ("**" . [?•]) + ("*'" . [?′]) + ("*\"" . [?″]) + ("*E" . [?€]) + ("No" . [?№]) + ("a<" . [?←]) + ("a>" . [?→]) + ("a=" . [?↔]) + ("_-" . [?−]) + ("~=" . [?≈]) + ("/=" . [?≠]) + ("_<" . [?≤]) + ("_>" . [?≥]) ("' " . "'") ("` " . "`") ("\" " . "\"") commit 089632800a1d408d2d2a9f0ecc5c52ce9c5319c6 Author: Dmitry Gutov Date: Mon May 11 02:07:27 2015 +0300 Add xref-find-regexp * lisp/progmodes/xref.el (xref-find-function): Describe the `matches' action. (xref-find-regexp): New command, using it. (xref-collect-references): Rename to xref-collect-matches. (xref--collect-reference): Rename to xref--collect-match. (xref-collect-matches, xref--collect-match): Accept new argument, KIND. Update accordingly. (xref--regexp-to-extended): New function. * lisp/progmodes/elisp-mode.el (elisp-xref-find): Support the `matches' action. (elisp--xref-find-matches): Accept new argument. Resolve a FIXME. * lisp/progmodes/etags.el (etags-xref-find): Support the `matches' action. (etags--xref-find-matches): New function. diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index 7bc7798..e06b920 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -581,7 +581,7 @@ It can be quoted, or be inside a quoted form." (declare-function xref-make-elisp-location "xref" (symbol type file)) (declare-function xref-make-bogus-location "xref" (message)) (declare-function xref-make "xref" (description location)) -(declare-function xref-collect-references "xref" (name dir)) +(declare-function xref-collect-matches "xref" (input dir &optional kind)) (defun elisp-xref-find (action id) (require 'find-func) @@ -591,7 +591,9 @@ It can be quoted, or be inside a quoted form." (when sym (elisp--xref-find-definitions sym)))) (`references - (elisp--xref-find-references id)) + (elisp--xref-find-matches id 'symbol)) + (`matches + (elisp--xref-find-matches id 'regexp)) (`apropos (elisp--xref-find-apropos id)))) @@ -652,12 +654,14 @@ It can be quoted, or be inside a quoted form." (defvar package-user-dir) -(defun elisp--xref-find-references (symbol) +(defun elisp--xref-find-matches (symbol kind) (let* ((dirs (sort (mapcar (lambda (dir) (file-name-as-directory (expand-file-name dir))) - ;; FIXME: Why add package-user-dir? + ;; It's one level above a number of `load-path' + ;; elements (one for each installed package). + ;; Save us some process calls. (cons package-user-dir load-path)) #'string<)) (ref dirs)) @@ -669,7 +673,7 @@ It can be quoted, or be inside a quoted form." (cl-mapcan (lambda (dir) (and (file-exists-p dir) - (xref-collect-references symbol dir))) + (xref-collect-matches symbol dir kind))) dirs))) (defun elisp--xref-find-apropos (regexp) diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 9a93176..7a87377 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -2082,17 +2082,20 @@ for \\[find-tag] (which see)." (defun etags-xref-find (action id) (pcase action (`definitions (etags--xref-find-definitions id)) - (`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))) + (`references (etags--xref-find-matches id 'symbol)) + (`matches (etags--xref-find-matches id 'regexp)) (`apropos (etags--xref-find-definitions id t)))) +(defun etags--xref-find-matches (input kind) + (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-matches input dir kind)) + dirs))) + (defun etags--xref-find-definitions (pattern &optional regexp?) ;; This emulates the behaviour of `find-tag-in-order' but instead of ;; returning one match at a time all matches are returned as list. diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index f6faaf6..ef46e34 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -207,6 +207,9 @@ found, return nil. (apropos PATTERN): Find all symbols that match PATTERN. PATTERN is a regexp. + (matches REGEXP): Find all matches for REGEXP in the related +files. REGEXP is an Emacs regular expression. + IDENTIFIER can be any string returned by `xref-identifier-at-point-function', or from the table returned by `xref-identifier-completion-table-function'. @@ -661,6 +664,12 @@ With prefix argument, prompt for the identifier." (interactive (list (xref--read-identifier "Find references of: "))) (xref--show-xrefs identifier 'references identifier nil)) +;;;###autoload +(defun xref-find-regexp (regexp) + "Find all matches for REGEXP." + (interactive (list (xref--read-identifier "Find regexp: "))) + (xref--show-xrefs regexp 'matches regexp nil)) + (declare-function apropos-parse-pattern "apropos" (pattern)) ;;;###autoload @@ -713,38 +722,64 @@ and just use etags." (cdr xref-etags-mode--saved)))) (declare-function semantic-symref-find-references-by-name "semantic/symref") +(declare-function semantic-symref-find-text "semantic/symref") (declare-function semantic-find-file-noselect "semantic/fw") -(defun xref-collect-references (name dir) - "Collect mentions of NAME inside DIR. -Uses the Semantic Symbol Reference API, see -`semantic-symref-find-references-by-name' for details on which -tools are used, and when." +(defun xref-collect-matches (input dir &optional kind) + "Collect KIND matches for INPUT inside DIR according. +KIND can be `symbol', `regexp' or nil, the last of which means +literal matches. This function uses the Semantic Symbol +Reference API, see `semantic-symref-find-references-by-name' for +details on which tools are used, and when." (require 'semantic/symref) (defvar semantic-symref-tool) (cl-assert (directory-name-p dir)) + (when (null kind) + (setq input (regexp-quote input))) (let* ((default-directory dir) (semantic-symref-tool 'detect) - (res (semantic-symref-find-references-by-name name 'subdirs)) + (res (if (eq kind 'symbol) + (semantic-symref-find-references-by-name input 'subdirs) + (semantic-symref-find-text (xref--regexp-to-extended input) + 'subdirs))) (hits (and res (oref res :hit-lines))) (orig-buffers (buffer-list))) (unwind-protect (delq nil - (mapcar (lambda (hit) (xref--collect-reference hit name)) hits)) + (mapcar (lambda (hit) (xref--collect-match hit input kind)) hits)) (mapc #'kill-buffer (cl-set-difference (buffer-list) orig-buffers))))) -(defun xref--collect-reference (hit name) +(defun xref--regexp-to-extended (str) + (replace-regexp-in-string + ;; FIXME: Add tests. Move to subr.el, make a public function. + ;; Maybe error on Emacs-only constructs. + "\\(?:\\\\\\\\\\)*\\(?:\\\\[][]\\)?\\(?:\\[.+?\\]\\|\\(\\\\?[(){}|]\\)\\)" + (lambda (str) + (cond + ((not (match-beginning 1)) + str) + ((eq (length (match-string 1 str)) 2) + (concat (substring str 0 (match-beginning 1)) + (substring (match-string 1 str) 1 2))) + (t + (concat (substring str 0 (match-beginning 1)) + "\\" + (match-string 1 str))))) + str t t)) + +(defun xref--collect-match (hit input kind) (pcase-let* ((`(,line . ,file) hit) (buf (or (find-buffer-visiting file) - (semantic-find-file-noselect file)))) + (semantic-find-file-noselect file))) + (input (if (eq kind 'symbol) + (format "\\_<%s\\_>" (regexp-quote input)) + input))) (with-current-buffer buf (save-excursion (goto-char (point-min)) (forward-line (1- line)) - (when (re-search-forward (format "\\_<%s\\_>" - (regexp-quote name)) - (line-end-position) t) + (when (re-search-forward input (line-end-position) t) (goto-char (match-beginning 0)) (xref-make (buffer-substring (line-beginning-position) commit e20b70bf505a9ac699cfdba534fe20210923f474 Author: Glenn Morris Date: Sun May 10 12:01:39 2015 -0700 * Makefile.in: Fixes for recent change-history changes. (change-history-nocommit): Update footer regexp. Ensure output script stays executable. diff --git a/ChangeLog.2 b/ChangeLog.2 index c6bff3c..d1c9477 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1154,8 +1154,6 @@ as the default value instead of initial input (http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg01182.html). -See ChangeLog.2 for earlier changes. - 2015-04-25 Paul Eggert Don't freeze with unreadable processes diff --git a/Makefile.in b/Makefile.in index 2fdbf8d..5ac4e61 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1117,12 +1117,12 @@ unchanged-history-files: change-history-nocommit: master-branch-is-current unchanged-history-files -rm -f ChangeLog.tmp $(MAKE) ChangeLog CHANGELOG=ChangeLog.tmp - (sed '/^;; [L]ocal Variables:/,$$d' $(CHANGELOG_N).tmp rm ChangeLog.tmp new_origin=$$(git log --pretty=format:%H HEAD^!) && \ sed 's/^\(gen_origin=\).*/\1'"$$new_origin/" \ - < $(emacslog) > $(emacslog).tmp + < $(emacslog) > $(emacslog).tmp && chmod +x $(emacslog).tmp mv $(CHANGELOG_N).tmp $(CHANGELOG_N) mv $(emacslog).tmp $(emacslog) diff --git a/build-aux/gitlog-to-emacslog b/build-aux/gitlog-to-emacslog old mode 100644 new mode 100755 commit 387e1e19430c12eb7db5b58f861c4e85613476f8 Author: Nicolas Petton Date: Sun May 10 20:19:38 2015 +0200 New version of `seq-let' based on a pcase pattern * lisp/emacs-lisp/seq.el (seq-let): Define the macro in terms of a pcase pattern if `pcase-defmacro' is defined (Emacs>=25.1). diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el index f1633ce..eef96e3 100644 --- a/lisp/emacs-lisp/seq.el +++ b/lisp/emacs-lisp/seq.el @@ -4,7 +4,7 @@ ;; Author: Nicolas Petton ;; Keywords: sequences -;; Version: 1.6 +;; Version: 1.7 ;; Package: seq ;; Maintainer: emacs-devel@gnu.org @@ -40,11 +40,6 @@ ;; ;; All functions are tested in test/automated/seq-tests.el -;;; TODO: - -;; - Add a pcase macro named using `pcase-defmacro' that `seq-let' -;; - could wrap. - ;;; Code: (defmacro seq-doseq (spec &rest body) @@ -70,13 +65,32 @@ Evaluate BODY with VAR bound to each element of SEQ, in turn. (pop ,index)))) ,@body))))) -(defmacro seq-let (args seq &rest body) - "Bind the variables in ARGS to the elements of SEQ then evaluate BODY." - (declare (indent 2) (debug t)) - (let ((seq-var (make-symbol "seq"))) - `(let* ((,seq-var ,seq) - ,@(seq--make-bindings args seq-var)) - ,@body))) +(if (fboundp 'pcase-defmacro) + ;; Implementation of `seq-let' based on a `pcase' + ;; pattern. Requires Emacs>=25.1. + (progn + (pcase-defmacro seq (bindings) + `(and ,@(seq--make-pcase-bindings bindings))) + + (defmacro seq-let (args seq &rest body) + "Bind the variables in ARGS to the elements of SEQ then evaluate BODY. + +ARGS can also include the `&rest' marker followed by a variable +name to be bound to the rest of SEQ." + (declare (indent 2) (debug t)) + `(pcase-let (((seq ,args) ,seq)) ,@body))) + + ;; Implementation of `seq-let' compatible with Emacs<25.1. + (defmacro seq-let (args seq &rest body) + "Bind the variables in ARGS to the elements of SEQ then evaluate BODY. + +ARGS can also include the `&rest' marker followed by a variable +name to be bound to the rest of SEQ." + (declare (indent 2) (debug t)) + (let ((seq-var (make-symbol "seq"))) + `(let* ((,seq-var ,seq) + ,@(seq--make-bindings args seq-var)) + ,@body)))) (defun seq-drop (seq n) "Return a subsequence of SEQ without its first N elements. @@ -346,19 +360,43 @@ This is an optimization for lists in `seq-take-while'." (setq n (+ 1 n))) n)) -(defun seq--activate-font-lock-keywords () - "Activate font-lock keywords for some symbols defined in seq." - (font-lock-add-keywords 'emacs-lisp-mode - '("\\" "\\"))) +(defun seq--make-pcase-bindings (args &optional bindings nested-indexes) + "Return a list of bindings of the variables in ARGS to the elements of a sequence. +if BINDINGS is non-nil, append new bindings to it, and return +BINDINGS." + (let ((index 0) + (rest-marker nil)) + (seq-doseq (name args) + (unless rest-marker + (pcase name + ((pred seq-p) + (setq bindings (seq--make-pcase-bindings (seq--elt-safe args index) + bindings + (cons index nested-indexes)))) + (`&rest + (progn (push `(app (seq--reverse-args #'seq-drop ,index) + ,(seq--elt-safe args (1+ index))) + bindings) + (setq rest-marker t))) + (t + (push `(app (seq--reverse-args #'seq--nested-elt + (reverse (cons ,index ',nested-indexes))) + ,name) + bindings)))) + (setq index (1+ index))) + bindings)) + +;; Helper function for the Backward-compatible version of `seq-let' +;; for Emacs<25.1. (defun seq--make-bindings (args seq &optional bindings) - "Return a list of bindings of the variables in ARGS to the elements of SEQ. -if BINDINGS is non-nil, append new bindings to it, and -return BINDINGS." + "Return a list of bindings of the variables in ARGS to the elements of a sequence. +if BINDINGS is non-nil, append new bindings to it, and return +BINDINGS." (let ((index 0) - (rest-bound nil)) + (rest-marker nil)) (seq-doseq (name args) - (unless rest-bound + (unless rest-marker (pcase name ((pred seq-p) (setq bindings (seq--make-bindings (seq--elt-safe args index) @@ -368,12 +406,13 @@ return BINDINGS." (progn (push `(,(seq--elt-safe args (1+ index)) (seq-drop ,seq ,index)) bindings) - (setq rest-bound t))) + (setq rest-marker t))) (t (push `(,name (seq--elt-safe ,seq ,index)) bindings)))) (setq index (1+ index))) bindings)) + (defun seq--elt-safe (seq n) "Return element of SEQ at the index N. If no element is found, return nil." @@ -382,6 +421,25 @@ If no element is found, return nil." (> (seq-length seq) n))) (seq-elt seq n))) +(defun seq--nested-elt (seq indexes &optional default) + "Traverse SEQ using INDEXES and return the looked up element or DEFAULT if nil. +SEQ can be a nested sequence composed of lists, vectors and strings." + (or (seq-reduce (lambda (acc index) + (when (seq-p acc) + (seq--elt-safe acc index))) + indexes + seq) + default)) + +(defun seq--reverse-args (fn &rest args) + "Call FN with ARGS reversed." + (apply fn (reverse args))) + +(defun seq--activate-font-lock-keywords () + "Activate font-lock keywords for some symbols defined in seq." + (font-lock-add-keywords 'emacs-lisp-mode + '("\\" "\\"))) + (defalias 'seq-copy #'copy-sequence) (defalias 'seq-elt #'elt) (defalias 'seq-length #'length) commit 0c81a8bfdefdc7e7ee687f6cce51649c9e808876 Author: Przemysław Wojnowski Date: Tue Apr 28 19:10:01 2015 +0200 Add basic HTML5 tags and a template * lisp/textmodes/sgml-mode.el: Basic HTML5 support. (html-tag-alist): Add HTML5 tags. (html-tag-help): Add new tags descriptions. (html-navigational-links): Template for nav links. (html-html5-template): Template for a HTML5 page. diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el index c71ecb4..2ffe9c1 100644 --- a/lisp/textmodes/sgml-mode.el +++ b/lisp/textmodes/sgml-mode.el @@ -1828,6 +1828,8 @@ This takes effect when first loading the library.") ("array" (nil \n ("Item: " "" str (if sgml-xml-mode "") \n)) "align") + ("article" \n) + ("aside" \n) ("au") ("b") ("big") @@ -1853,7 +1855,10 @@ This takes effect when first loading the library.") "
" (if sgml-xml-mode "
") \n)) ("em") ("fn" "id" "fn") ;; Footnotes were deprecated in HTML 3.2 + ("footer" \n) ("head" \n) + ("header" \n) + ("hgroup" \n) ("html" (\n "\n" "" (setq str (read-input "Title: ")) "\n" @@ -1871,6 +1876,7 @@ This takes effect when first loading the library.") ("lang") ("li" ,(not sgml-xml-mode)) ("math" \n) + ("nav" \n) ("nobr") ("option" t ("value") ("label") ("selected" t)) ("over" t) @@ -1880,6 +1886,7 @@ This takes effect when first loading the library.") ("rev") ("s") ("samp") + ("section" \n) ("small") ("span" nil ("class" @@ -1910,6 +1917,8 @@ This takes effect when first loading the library.") ("acronym" . "Acronym") ("address" . "Formatted mail address") ("array" . "Math array") + ("article" . "An independent part of document or site") + ("aside" . "Secondary content related to surrounding content (e.g. page or article)") ("au" . "Author") ("b" . "Bold face") ("base" . "Base address for URLs") @@ -1939,6 +1948,7 @@ This takes effect when first loading the library.") ("figt" . "Figure text") ("fn" . "Footnote") ;; No one supports special footnote rendering. ("font" . "Font size") + ("footer" . "Footer of a section") ("form" . "Form with input fields") ("group" . "Document grouping") ("h1" . "Most important section headline") @@ -1948,6 +1958,8 @@ This takes effect when first loading the library.") ("h5" . "Unimportant section headline") ("h6" . "Least important section headline") ("head" . "Document header") + ("header" . "Header of a section") + ("hgroup" . "Group of headings - h1-h6 elements") ("hr" . "Horizontal rule") ("html" . "HTML Document") ("i" . "Italic face") @@ -1960,8 +1972,9 @@ This takes effect when first loading the library.") ("li" . "List item") ("link" . "Link relationship") ("math" . "Math formula") - ("menu" . "Menu list (obsolete)") + ("menu" . "List of commands") ("mh" . "Form mail header") + ("nav" . "Group of navigational links") ("nextid" . "Allocate new id") ("nobr" . "Text without line break") ("ol" . "Ordered list") @@ -1975,6 +1988,7 @@ This takes effect when first loading the library.") ("rev" . "Reverse video") ("s" . "Strikeout") ("samp" . "Sample text") + ("section" . "Section of a document") ("select" . "Selection list") ("small" . "Font size") ("sp" . "Nobreak space") @@ -2242,6 +2256,33 @@ HTML Autoview mode is a buffer-local minor mode for use with ""))) \n)) +(define-skeleton html-navigational-links + "Group of navigational links." + nil + "") + +(define-skeleton html-html5-template + "Initial HTML5 template" + nil + "" \n + "" \n + "" \n + "" \n + "" \n + "" \n + "" (skeleton-read "Page Title: ") "" \n + "" \n + "" \n + "
" \n + "" \n + "") + (provide 'sgml-mode) ;;; sgml-mode.el ends here commit ec13f4b344fc8f840647209137e29be470143969 Author: Dmitry Gutov Date: Sun May 10 20:43:54 2015 +0300 semantic/symref/grep: Don't use word boundaries * lisp/cedet/semantic/symref/grep.el (semantic-symref-perform-search): Instead of wrapping input in word boundaries, check that the characters before and after are not word constituents. diff --git a/lisp/cedet/semantic/symref/grep.el b/lisp/cedet/semantic/symref/grep.el index 3cf841e..6325eb4 100644 --- a/lisp/cedet/semantic/symref/grep.el +++ b/lisp/cedet/semantic/symref/grep.el @@ -158,7 +158,11 @@ This shell should support pipe redirect syntax." (cond ((eq (oref tool :searchtype) 'regexp) (oref tool searchfor)) (t - (concat "\\<" (oref tool searchfor) "\\>"))))) + ;; Can't use the word boundaries: Grep + ;; doesn't always agrees with the language + ;; syntax on those. + (format "\\(^\\|\\W\\)%s\\(\\W\\|$\\)" + (oref tool searchfor)))))) ;; Misc (b (get-buffer-create "*Semantic SymRef*")) (ans nil) commit f37d86ed0bd0857cfb5c606e9d5b5611d02783aa Author: Dmitry Gutov Date: Sun May 10 17:27:16 2015 +0300 semantic/symref/grep: Support regexp search * lisp/cedet/semantic/symref.el (semantic-symref-hit-to-tag-via-buffer): Don't regexp-quote when the search type is regexp. * lisp/cedet/semantic/symref/grep.el (semantic-symref-perform-search): Support the regexp search type. Pass -E to Grep when it's used. diff --git a/lisp/cedet/semantic/symref.el b/lisp/cedet/semantic/symref.el index 10293d9..2c5e3ba 100644 --- a/lisp/cedet/semantic/symref.el +++ b/lisp/cedet/semantic/symref.el @@ -472,8 +472,12 @@ buffers that were opened." (goto-char (point-min)) (forward-line (1- line)) - ;; Search forward for the matching text - (when (re-search-forward (regexp-quote searchtxt) + ;; Search forward for the matching text. + ;; FIXME: This still fails if the regexp uses something specific + ;; to the extended syntax, like grouping. + (when (re-search-forward (if (memq searchtype '(regexp tagregexp)) + searchtxt + (regexp-quote searchtxt)) (point-at-eol) t) (goto-char (match-beginning 0)) diff --git a/lisp/cedet/semantic/symref/grep.el b/lisp/cedet/semantic/symref/grep.el index 3fa1c5f..3cf841e 100644 --- a/lisp/cedet/semantic/symref/grep.el +++ b/lisp/cedet/semantic/symref/grep.el @@ -141,7 +141,7 @@ This shell should support pipe redirect syntax." "Perform a search with Grep." ;; Grep doesn't support some types of searches. (let ((st (oref tool :searchtype))) - (when (not (eq st 'symbol)) + (when (not (memq st '(symbol regexp))) (error "Symref impl GREP does not support searchtype of %s" st)) ) ;; Find the root of the project, and do a find-grep... @@ -150,12 +150,14 @@ This shell should support pipe redirect syntax." (filepattern (semantic-symref-derive-find-filepatterns)) ;; Grep based flags. (grepflags (cond ((eq (oref tool :resulttype) 'file) - "-l ") - (t "-n "))) - (greppat (cond ((eq (oref tool :searchtype) 'regexp) - (oref tool searchfor)) - (t - (shell-quote-argument + "-l ") + ((eq (oref tool :searchtype) 'regexp) + "-nE ") + (t "-n "))) + (greppat (shell-quote-argument + (cond ((eq (oref tool :searchtype) 'regexp) + (oref tool searchfor)) + (t (concat "\\<" (oref tool searchfor) "\\>"))))) ;; Misc (b (get-buffer-create "*Semantic SymRef*")) commit cc64f157883030c443b24692ca4304e047e2aaf9 Author: Dmitry Gutov Date: Sun May 10 03:49:11 2015 +0300 semantic-symref-regexp: Allow to input an arbitrary string * lisp/cedet/semantic/symref/list.el (semantic-symref-regexp): Allow to input an arbitrary string interactively. diff --git a/lisp/cedet/semantic/symref/list.el b/lisp/cedet/semantic/symref/list.el index c99fc5f..f72499b 100644 --- a/lisp/cedet/semantic/symref/list.el +++ b/lisp/cedet/semantic/symref/list.el @@ -84,9 +84,13 @@ This command uses the currently configured references tool within the current project to find references to the input SYM. The references are the organized by file and the name of the function they are used in. -Display the references in`semantic-symref-results-mode'." - (interactive (list (semantic-tag-name (semantic-complete-read-tag-buffer-deep - "Symrefs for: ")))) +Display the references in `semantic-symref-results-mode'." + (interactive (list (let ((tag (semantic-current-tag))) + (read-string " Symrefs for: " nil nil + (when tag + (regexp-quote (semantic-tag-name tag))))))) + ;; FIXME: Shouldn't the input be in Emacs regexp format, for + ;; consistency? Converting it to extended is not hard. (semantic-fetch-tags) (message "Gathering References...") ;; Gather results and tags commit c7d601adefe130b773c1622a5aa8722d80709c1c Author: Dmitry Gutov Date: Sun May 10 00:36:46 2015 +0300 Remove tag-symbol-match-p from etags-xref-find-definitions-tag-order * lisp/progmodes/etags.el (etags-xref-find-definitions-tag-order): Remove tag-symbol-match-p from the default value (http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00292.html). diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 5681806..9a93176 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -2075,8 +2075,7 @@ for \\[find-tag] (which see)." (defconst etags--xref-limit 1000) (defvar etags-xref-find-definitions-tag-order '(tag-exact-match-p - tag-implicit-name-match-p - tag-symbol-match-p) + tag-implicit-name-match-p) "Tag order used in `etags-xref-find' to look for definitions.") ;;;###autoload commit 6065ef7343c82aa642398246349d6445bc95c607 Author: Dmitry Gutov Date: Fri May 8 03:06:42 2015 +0300 Declare find-tag obsolete * lisp/progmodes/etags.el (find-tag): Declare obsolete in favor of xref-find-definitions. diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 6acafdb..5681806 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -947,6 +947,7 @@ onto a ring and may be popped back to with \\[pop-tag-mark]. Contrast this with the ring of marks gone to by the command. See documentation of variable `tags-file-name'." + (declare (obsolete xref-find-definitions "25.1")) (interactive (find-tag-interactive "Find tag: ")) (let* ((buf (find-tag-noselect tagname next-p regexp-p)) (pos (with-current-buffer buf (point)))) commit b9ace209580458c694926200f9308c290bd911cd Author: Jan D Date: Sun May 10 19:30:39 2015 +0200 Draw composite string correctly (Bug#20537). * nsterm.m (ns_draw_composite_glyph_string_foreground): New function. (ns_draw_glyph_string): Call it (Bug#20537). diff --git a/src/nsterm.m b/src/nsterm.m index e90c3d7..187086c 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -3188,6 +3188,96 @@ ns_dumpglyphs_stretch (struct glyph_string *s) static void +ns_draw_composite_glyph_string_foreground (struct glyph_string *s) +{ + int i, j, x; + struct font *font = s->font; + + /* If first glyph of S has a left box line, start drawing the text + of S to the right of that box line. */ + if (s->face && s->face->box != FACE_NO_BOX + && s->first_glyph->left_box_line_p) + x = s->x + eabs (s->face->box_line_width); + else + x = s->x; + + /* S is a glyph string for a composition. S->cmp_from is the index + of the first character drawn for glyphs of this composition. + S->cmp_from == 0 means we are drawing the very first character of + this composition. */ + + /* Draw a rectangle for the composition if the font for the very + first character of the composition could not be loaded. */ + if (s->font_not_found_p) + { + if (s->cmp_from == 0) + { + NSRect r = NSMakeRect (s->x, s->y, s->width-1, s->height -1); + ns_draw_box (r, 1, FRAME_CURSOR_COLOR (s->f), 1, 1); + } + } + else if (! s->first_glyph->u.cmp.automatic) + { + int y = s->ybase; + + for (i = 0, j = s->cmp_from; i < s->nchars; i++, j++) + /* TAB in a composition means display glyphs with padding + space on the left or right. */ + if (COMPOSITION_GLYPH (s->cmp, j) != '\t') + { + int xx = x + s->cmp->offsets[j * 2]; + int yy = y - s->cmp->offsets[j * 2 + 1]; + + font->driver->draw (s, j, j + 1, xx, yy, false); + if (s->face->overstrike) + font->driver->draw (s, j, j + 1, xx + 1, yy, false); + } + } + else + { + Lisp_Object gstring = composition_gstring_from_id (s->cmp_id); + Lisp_Object glyph; + int y = s->ybase; + int width = 0; + + for (i = j = s->cmp_from; i < s->cmp_to; i++) + { + glyph = LGSTRING_GLYPH (gstring, i); + if (NILP (LGLYPH_ADJUSTMENT (glyph))) + width += LGLYPH_WIDTH (glyph); + else + { + int xoff, yoff, wadjust; + + if (j < i) + { + font->driver->draw (s, j, i, x, y, false); + if (s->face->overstrike) + font->driver->draw (s, j, i, x + 1, y, false); + x += width; + } + xoff = LGLYPH_XOFF (glyph); + yoff = LGLYPH_YOFF (glyph); + wadjust = LGLYPH_WADJUST (glyph); + font->driver->draw (s, i, i + 1, x + xoff, y + yoff, false); + if (s->face->overstrike) + font->driver->draw (s, i, i + 1, x + xoff + 1, y + yoff, + false); + x += wadjust; + j = i + 1; + width = 0; + } + } + if (j < i) + { + font->driver->draw (s, j, i, x, y, false); + if (s->face->overstrike) + font->driver->draw (s, j, i, x + 1, y, false); + } + } +} + +static void ns_draw_glyph_string (struct glyph_string *s) /* -------------------------------------------------------------------------- External (RIF): Main draw-text call. @@ -3279,13 +3369,14 @@ ns_draw_glyph_string (struct glyph_string *s) { BOOL isComposite = s->first_glyph->type == COMPOSITE_GLYPH; - int end = isComposite ? s->cmp_to : s->nchars; - - font->driver->draw - (s, s->cmp_from, end, s->x, s->ybase, - (flags == NS_DUMPGLYPH_NORMAL && !s->background_filled_p) - || flags == NS_DUMPGLYPH_MOUSEFACE); + if (isComposite) + ns_draw_composite_glyph_string_foreground (s); + else + font->driver->draw + (s, s->cmp_from, s->nchars, s->x, s->ybase, + (flags == NS_DUMPGLYPH_NORMAL && !s->background_filled_p) + || flags == NS_DUMPGLYPH_MOUSEFACE); } { commit ae4e3dd50f1b19a8a3b30e5a7012a9317934c0ab Author: Glenn Morris Date: Sun May 10 06:24:00 2015 -0400 ; Auto-commit of ChangeLog files. diff --git a/ChangeLog.2 b/ChangeLog.2 index 188e3ff..c6bff3c 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1,3 +1,1161 @@ +2015-05-09 Eli Zaretskii + + Avoid infloop in ERC + * lisp/simple.el (line-move-to-column): Ignore field boundaries + while computing line beginning position. (Bug#20498) + +2015-05-08 Glenn Morris + + * Makefile.in (ChangeLog): No longer pass "srcprefix"; cd instead. + * build-aux/gitlog-to-emacslog: Check called from right directory. + (srcprefix): Remove. + + * build-aux/gitlog-to-emacslog: Get rid of "distprefix". + * Makefile.in (ChangeLog): No longer pass "distprefix". + * make-dist: Update "make ChangeLog" syntax for the above change. + + * build-aux/gitlog-to-emacslog: Don't hard-code "ChangeLog.2". + * Makefile.in (ChangeLog): Pass -n to gitlog-to-emacslog. + + * build-aux/gitlog-to-emacslog: Add "for earlier changes" to footer. + + Add command-line option-parsing to gitlog-to-emacslog. + * build-aux/gitlog-to-emacslog: Add command-line options. + By default, refuse to remove an existing output file. + * Makefile.in (CHANGELOG): Update default. + (ChangeLog): Do not test for existing file. + (change-history-nocommit): Ensure temp file does not exist. + + Quieten --without-x compilation. + * lisp/term/common-win.el: Provide a feature. + * lisp/term/x-win.el (term/common-win): Require it. + + * lisp/dired-aux.el (dired-do-print): Require lpr. + + Quieten compilation, eg in --without-x builds. + * lisp/dired-aux.el (lpr-printer-switch): + * lisp/frame.el (tool-bar-height): + * lisp/linum.el (font-info): + * lisp/window.el (font-info, overflow-newline-into-fringe) + (tool-bar-height): + * lisp/emacs-lisp/package-x.el (tar-data-buffer): + * lisp/gnus/gnus-util.el (iswitchb-mode): + * lisp/mail/rmailmm.el (libxml-parse-html-region): + * lisp/net/nsm.el (gnutls-peer-status) + (gnutls-peer-status-warning-describe): + * lisp/net/shr.el (libxml-parse-xml-region): + * lisp/url/url-http.el (gnutls-peer-status): Declare. + +2015-05-08 Stefan Monnier + + CEDET (srecode-pop, srecode-peek): Don't use `subclass' + * lisp/cedet/srecode/insert.el (srecode-pop, srecode-peek): Don't use + `subclass' since they're never called with a class. + (srecode-insert-method, srecode-insert-subtemplate): Avoid obsolete + srecode-dictionary-child-p. + +2015-05-08 Nicolas Richard + + help--binding-locus: Document argument POSITION. + * lisp/help.el (help--binding-locus): Document argument POSITION. (bug#20530) + +2015-05-08 Paul Eggert + + Merge from gnulib. + * doc/misc/texinfo.tex: Get latest version. + +2015-05-08 Oleh Krehel + + ffap.el (ffap-read-file-or-url): Fix completing-read call + * lisp/ffap.el (ffap-read-file-or-url): The HIST argument of + `completing-read' should be a symbol. + +2015-05-08 Eli Zaretskii + + Verify file modifications by other programs + * src/filelock.c (lock_file): Check whether the file was modified + since it was visited even if 'create-lockfiles' is nil. (Bug#18828) + + Fix keyboard macros that include function keys + * src/keyboard.c (read_char_minibuf_menu_prompt): Record function + keys in the macro before returning. (Bug#20454) + +2015-05-08 Glenn Morris + + * build-aux/gitlog-to-changelog: Treat "Tiny-change" like + "Copyright-paperwork-exempt". (Bug#20324) + + * lisp/vc/log-edit.el: Handle "(tiny change)". (Bug#20324) + (log-edit-rewrite-tiny-change): New variable. + (log-edit-insert-changelog): Maybe add "Copyright-paperwork-exempt". + (log-edit-changelog-ours-p): Set log-edit-author to a cons. + * etc/NEWS: Mention this. + + * lisp/calc/calc.el (math-zerop): Declare. + + * lisp/emacs-lisp/eieio-opt.el (help-fns-short-filename): Declare. + +2015-05-07 Artur Malabarba + + * lisp/emacs-lisp/subr-x.el (if-let): Fix debug spec + Support the case when BINDINGS is a single tuple. (Bug#20525) + + * etc/NEWS: Fix typo in commit 14bb519 + +2015-05-07 Jan D + + Warn for multiple display crash for all Gtk+ versions. + * configure.ac: Warn for multiple display crash for all Gtk+ + versions. Output URL to Gtk+ bug (Bug#20452). + + ns-win.el (ns-paste-secondary): Use gui-get-selection. + * ns-win.el (ns-paste-secondary): Use gui-get-selection. + +2015-05-07 Artur Malabarba + + * lisp/emacs-lisp/package.el: New "external" package status + An external package is any installed package that's not built-in + and not from `package-user-dir', which usually means it's from an + entry in `package-directory-list'. They are treated much like + built-in packages, in that they cannot be through the Package Menu + deleted and are not considered for upgrades. + (package-desc-status): Identify if a package is installed outside + `package-user-dir'. + (package-menu--print-info-simple) + (package-menu--status-predicate): Add support for it. + * etc/NEWS: Document it. + +2015-05-06 Stefan Monnier + + * lisp/mail/rmail.el: Use lexical-binding + (rmail-bury): Remove unused var `buffer-to-bury'. + (rmail-get-new-mail): Remove unused vars `opoint' and `success'. + (rmail-parse-url): Remove unused var `proto', `user', and `host'. + (rmail-unrmail-new-mail-maybe): Remove unused var `new-file'. + (rmail-insert-inbox-text): Remove unused var `movemail'. + (rmail-add-mbox-headers): Remove unused var `limit'. + (rmail-undelete-previous-message): Remove unused var `value'. + (rmail-reply): Remove unused vars `resent-to', `resent-cc', + `resent-reply-to'. + (rmail-mime-mbox-buffer, rmail-mime-view-buffer): Declare. + (rmail-restore-desktop-buffer): Rename arguments. + +2015-05-06 Glenn Morris + + * Makefile.in (change-history-commit): Add missing piece of previous. + + Avoid unnecessary bumping of Makefile.in's timestamp. + * Makefile.in (gen_origin): Move to gitlog-to-emacslog. + (emacslog): New variable. + (ChangeLog): Use $emacslog. Don't pass $gen_origin. + (unchanged-history-files): Use $emacslog rather than Makefile.in. + (change-history-nocommit): Store hash in $emacslog. + * build-aux/gitlog-to-emacslog (gen_origin): Move default here. + * admin/update_autogen (changelog_files): Update for the above. + + * Makefile.in: Don't always insist on removing existing "ChangeLog". + (CHANGELOG): New variable. + (no-ChangeLog): Remove. + (ChangeLog): Replace "no-ChangeLog"; pass output file to script. + (change-history-nocommit): Use a temp file rather than insisting + on deletion of any existing "ChangeLog". + + * build-aux/gitlog-to-emacslog: Allow specification of output. + + * admin/update_autogen: Add option to update ChangeLog. + (usage): Mention -H. + (changelog_flag, changelog_n, changelog_files): New variables. + (main): Check for -H, and maybe run change-history-nocommit. + +2015-05-06 Stefan Monnier + + * lisp/subr.el (delete-dups): Pre-size the hashtable. + + (define-modify-macro): Make sure cl--arglist-args is defined + * lisp/emacs-lisp/cl.el (define-modify-macro): Make sure + cl--arglist-args is defined (bug#20517). + +2015-05-06 Glenn Morris + + * Makefile.in (change-history-nocommit): New. + +2015-05-06 Dmitry Gutov + + Only cancel timer when it is non-nil + * lisp/cedet/pulse.el (pulse-momentary-unhighlight): Only cancel + timer when it is non-nil + (http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00223.html). + +2015-05-06 Glenn Morris + + Quieten cedet compilation + * lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym->tag): + Invert fboundp test to quieten on current Emacs. + * lisp/cedet/ede/config.el (ede-shell-run-something) + (semanticdb-file-table-object, semanticdb-needs-refresh-p) + (semanticdb-refresh-table): Declare. + (ede-preprocessor-map): Require semantic/db. + + Quieten cc-mode compilation + * lisp/progmodes/cc-awk.el (c-forward-sws): + * lisp/progmodes/cc-cmds.el (c-forward-subword, c-backward-subword): + Declare. + +2015-05-06 Oleh Krehel + + lisp/subr.el (delete-dups): Avoid nreverse. + +2015-05-06 Artur Malabarba + + * lisp/subr.el (delete-dups): Make it destructive again. + +2015-05-06 Paul Eggert + + * doc/lispref/sequences.texi (Sequence Functions): Fix quoting. + +2015-05-06 Stefan Monnier + + * lisp/emacs-lisp/testcover.el: Don't use edebug--read (bug#20487) + * lisp/emacs-lisp/testcover.el: Use lexical-binding. + (testcover--read): Rename from testcover-read. Change calling convention. + Use edebug-read-and-maybe-wrap-form now that edebug-read is gone. + (testcover-start): Use add-function. Move edebug-all-defs binding to + testcover--read. + (testcover-this-defun): Tighten scope of edebug-all-defs binding. + (testcover-mark): Remove unused var `item'. + * src/lread.c (syms_of_lread): Default load-read-function to `read'. + +2015-05-06 Oleh Krehel + + lisp/subr.el (delete-dups): Use a hash table + * lisp/subr.el (delete-dups): When there are more than 100 candidates, + use a hash table. This can result in ~500 times speed-up for typical + collections of size 5000, like that of `load-library'. + +2015-05-06 Stefan Monnier + + CEDET: Avoid `oref' on classes in a few more cases + * lisp/cedet/ede/generic.el (ede-find-target): + * lisp/cedet/ede.el (ede-project-forms-menu): Avoid `oref' on classes. + * lisp/cedet/semantic/bovine/gcc.el (semantic-gcc-setup): Remove unused + var `prefix'. + + * lisp/cedet/semantic/symref/grep.el: Fix unused var warnings + * lisp/cedet/semantic/symref/grep.el (grepflags, greppattern): Declare. + (semantic-symref-perform-search): Remove unused var `pat'. + + CEDET (srecode-compile-inserter): Avoid `oref' on classes + * lisp/cedet/srecode/compile.el (srecode-compile-inserter): + Avoid `oref' on classes (bug#20491). + (srecode-compile-split-code): Remove unused var `key'. + +2015-05-06 Dmitry Gutov + + Clean up pulse.el a little + * lisp/cedet/pulse.el (pulse): Remove. + (pulse-momentary-timer): Save instead of the stop time. + (pulse-momentary-highlight-overlay): Call + pulse-momentary-unhighlight first thing. Treat + pulse-momentary-overlay as a single value, not a list. Save the + created timer. Only pass the stop time to the timer. + (pulse-tick): Update accordingly. + (pulse-momentary-unhighlight): Treat pulse-momentary-overlay as a + single value. Cancel the timer. + +2015-05-06 Tassilo Horn + + Support the biblatex journaltitle field + * lisp/textmodes/reftex-cite.el (reftex-format-bib-entry): + Support the biblatex journaltitle field. + +2015-05-05 Glenn Morris + + Minor declare-function improvement + * lisp/emacs-lisp/bytecomp.el + (byte-compile-macroexpand-declare-function): + Handle declarations after calls. (Bug#20509) + + * lisp/progmodes/js.el (js--optimize-arglist): Remove declaration. + + * lisp/w32-fns.el (w32-shell-name): Silence compiler. + +2015-05-05 Dmitry Gutov + + Pulse using a timer + * lisp/cedet/pulse.el (pulse-momentary-stop-time): New variable. + (pulse-momentary-highlight-overlay): Set up the timer instead of + calling `pulse' + (http://lists.gnu.org/archive/html/emacs-devel/2015-05/). + (pulse-tick): New function. + (pulse-momentary-unhighlight): Cut off the stop time. + (pulse-delay): Update the docstring WRT to not using sit-for. + + Add semantic/symref/grep file patterns for ruby-mode + * lisp/cedet/semantic/symref/grep.el + (semantic-symref-filepattern-alist): Add patterns for + ruby-mode. Clarify the docstring. + + Don't require match + * lisp/progmodes/xref.el (xref--read-identifier): Don't require + match. That doesn't work for every command, and some identifier + completion tables are bound to be imperfect anyway. + +2015-05-05 Stefan Monnier + + * lisp/cedet/semantic/grammar.el: Fix compiler warnings (bug#20505) + (semantic-grammar--template-expand): New function. + (semantic-grammar-header, semantic-grammar-footer): Use it. + (semantic-grammar--lex-block-specs): Remove unused var `block-spec'. + (semantic-grammar-file-regexp): Refine regexp. + (semantic-grammar-eldoc-get-macro-docstring): + Use elisp-get-fnsym-args-string when available. + (semantic-idle-summary-current-symbol-info): Use new elisp-* names + instead of the old eldoc-* names. + * lisp/emacs-lisp/eldoc.el (eldoc-docstring-format-sym-doc): Move back + from elisp-mode.el. Tweak calling convention. + * lisp/progmodes/elisp-mode.el (package-user-dir): Declare. + (elisp-get-fnsym-args-string): Add `prefix' argument. Rename from + elisp--get-fnsym-args-string. + (elisp--highlight-function-argument): Add `prefix' arg. + (elisp-get-var-docstring): Rename from elisp--get-var-docstring. + (elisp--docstring-format-sym-doc): Move back to eldoc.el. + +2015-05-05 Glenn Morris + + * lisp/help-fns.el (describe-function-1): + Handle builtins with advertised calling conventions. (Bug#20479) + +2015-05-05 Nicolas Petton + + Merge branch 'seq-let' + + Update `seq-let' documentation + * doc/lispref/sequences.texi: Update the documentation of `seq-let' + with the support of `&rest'. + + Add support for &rest in `seq-let' + * lisp/emacs-lisp/seq.el (seq--make-bindings): Add support for `&rest' + in the argument list. + * test/automated/seq-tests.el: Add a test for parsing and binding + `&rest' in `seq-let'. + +2015-05-05 Paul Eggert + + Spelling fixes + +2015-05-05 (tiny change) Pierre Lorenzon + + * eieio-custom.el (eieio-object-value-get): Add missing increment + (Bug#20467) + + (eieio-object-value-create): Adjust to new slots representation + (Bug#20467) + * eieio-custom.el (eieio-object-value-create): + Fix missed adjustment to new representation of slots metadata. + +2015-05-05 Nicolas Petton + + * lisp/emacs-lisp/seq.el (seq--make-bindings): Improve the docstring. + +2015-05-05 Dmitry Gutov + + Work around "Attempt to modify read-only object" + * lisp/progmodes/elisp-mode.el (elisp--xref-format): Extract from + elisp--xref-find-definitions, to work around "Attempt to modify + read-only object" error. + + Only skip some variables that have function counterparts + * lisp/progmodes/elisp-mode.el (elisp--xref-identifier-location): + Only skip minor-mode-named variable if it's defined in a Lisp + file, and it's in minor-mode-list (bug#20506). + * test/automated/elisp-mode-tests.el + (elisp-xref-finds-both-function-and-variable) + (elisp-xref-finds-only-function-for-minor-mode): New tests. + +2015-05-04 Dmitry Gutov + + Buttonize the whole line, including the number at the beginning + * lisp/progmodes/xref.el (xref--location-at-point): Revert the + previous change. + (xref--insert-xrefs): Buttonize the whole line, including the + number at the beginning. + + Make sure we're inside the let bindings + * lisp/progmodes/elisp-mode.el (elisp-completion-at-point): + Make sure we're inside the let bindings. + * test/automated/elisp-mode-tests.el + (elisp-completes-functions-after-let-bindings): New test. + +2015-05-04 Glenn Morris + + * lisp/cedet/semantic/grammar.el (eldoc-function-argstring) + (eldoc-docstring-format-sym-doc, eldoc-last-data-store) + (eldoc-get-fnsym-args-string, eldoc-get-var-docstring): + Remove outdated declarations. + + Replace instances of "(eval-when-compile (autoload ...))" + * lisp/gnus/gnus-art.el (nneething-get-file-name): + Declare rather than autoload. + * lisp/gnus/gnus-async.el (gnus-html-prefetch-images): + Remove pointless autoload. + * lisp/gnus/gnus-sync.el (gnus-group-topic): Autoload at run-time. + (gnus-topic-create-topic, gnus-topic-enter-dribble): + Declare rather than autoload. + * lisp/gnus/mm-archive.el (gnus-recursive-directory-files) + (mailcap-extension-to-mime): Autoload at run-time. + * lisp/gnus/mm-util.el (latin-unity-massage-name) + (latin-unity-maybe-remap, latin-unity-representations-feasible-region) + (latin-unity-representations-present-region): + Declare rather than autoload. + * lisp/gnus/mml-smime.el (epg-make-context) + (epg-passphrase-callback-function): Autoload at run-time. + (epg-context-set-signers, epg-context-result-for) + (epg-new-signature-digest-algorithm) + (epg-verify-result-to-string, epg-list-keys, epg-verify-string) + (epg-sign-string, epg-encrypt-string) + (epg-context-set-passphrase-callback, epg-sub-key-fingerprint) + (epg-configuration, epg-expand-group, epa-select-keys): + Declare rather than autoload. + * lisp/gnus/nnir.el (nnimap-change-group, nnimap-make-thread-query): + Autoload at run-time. + (gnus-group-topic-name, nnimap-buffer, nnimap-command) + (gnus-registry-get-id-key, gnus-registry-action): + Declare rather than autoload. + * lisp/gnus/nnmail.el (mail-send-and-exit): Autoload at run-time. + * lisp/gnus/spam.el (spam-stat-buffer-change-to-non-spam) + (spam-stat-buffer-change-to-spam, spam-stat-buffer-is-non-spam) + (spam-stat-buffer-is-spam, spam-stat-load, spam-stat-save) + (spam-stat-split-fancy): Remove pointless autoloads. + * lisp/net/mairix.el: Load gnus-util when compiling. + (gnus-group-read-ephemeral-group, gnus-summary-toggle-header) + (message-field-value): Declare rather than autoload. + (mairix-gnus-ephemeral-nndoc, mairix-gnus-fetch-field): + Check gnus-alive-p is fbound. + (vm-quit, vm-visit-folder, vm-select-folder-buffer) + (vm-check-for-killed-summary, vm-error-if-folder-empty) + (vm-get-header-contents, vm-select-marked-or-prefixed-messages): + Declare rather than autoload. + + * lisp/gnus/mm-view.el (epg-decrypt-string): Autoload. + + * lisp/gnus/mml-smime.el (epg-key-sub-key-list) + (epg-sub-key-capability, epg-sub-key-validity): Fix declarations. + + * lisp/progmodes/elisp-mode.el (xref-collect-references): Declare. + + * lisp/emacs-lisp/debug.el (help-xref-interned): Update declaration. + + * lisp/allout.el (epg-user-id-string, epg-key-user-id-list): + * lisp/emacs-lisp/package.el (epg-signature-status): + Fix declarations. + + * lisp/play/gametree.el (gametree-show-children-and-entry) + (gametree-apply-layout, gametree-mouse-show-subtree) + (gametree-mouse-hide-subtree): Replace obsolete outline aliases. + + * lisp/emacs-lisp/check-declare.el (check-declare-verify): + Handle cl-defgeneric, cl-defmethod. + +2015-05-04 Dmitry Gutov + + Highlight both type and symbol name + * lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions): + Highlight both type and symbol name. + + Insert, highlight and align line numbers in xref output + * lisp/progmodes/etags.el (xref-location-line): Specialize for + xref-etags-location. + * lisp/progmodes/xref.el (xref-location-line): New generic method. + (xref-file-location): Add reader for the line slot. + (xref--location-at-point): Skip to the `xref-location' property. + (xref--collect-reference): Drop the line number from description. + (xref--insert-xrefs): Insert, highlight and align line numbers. + +2015-05-04 Daniel Colascione + + Fix previous commit + +2015-05-04 Dmitry Gutov + + Don't pulse the indentation, or the newline + * lisp/cedet/pulse.el (pulse-lighten-highlight) + (pulse-reset-face): Fall back to the inherited background + attribute in FACE. + (pulse-momentary-highlight-region): Add autoload cookie. + * lisp/progmodes/xref.el (xref--maybe-pulse): Don't highlight the + indentation, or the newline, if the line's non-empty + (http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00118.html). + +2015-05-04 Daniel Colascione + + Add `save-mark-and-excursion', which has the old `save-excursion' behavior + * doc/lispref/positions.texi (Excursions): Document + `save-mark-and-excursion'. + * lisp/font-lock.el (font-lock-fontify-block): Use + `save-mark-and-excursion' instead of `save-excursion', restoring + Emacs 24 behavior. + * lisp/simple.el (save-mark-and-excursion--save) + (save-mark-and-excursion--restore): New functions. + (save-mark-and-excursion): New user macro. + * src/editfns.c (Fsave_excursion): Mention + `save-mark-and-excursion' in `save-excursion' documentation. + +2015-05-04 Dmitry Gutov + + Classify lone symbol inside let varlist as variable + * lisp/progmodes/elisp-mode.el (elisp-completion-at-point): + Classify lone symbol inside let varlist as variable. + * test/automated/elisp-mode-tests.el (completest-variables-in-let-bindings): + New test. + + Add xref-pulse-on-jump + * lisp/cedet/pulse.el (pulse-momentary-highlight-one-line): + Add autoload cookie. + * lisp/progmodes/xref.el (xref-pulse-on-jump): New option. + (xref--maybe-pulse): New function. + (xref-pop-marker-stack, xref--pop-to-location) + (xref--display-position): Use it. + (xref--location-at-point): Use back-to-indentation. + +2015-05-04 Stefan Monnier + + * lisp/org/org-{macs,list}.el: Fix lexical warnings + * lisp/org/org-list.el (org-list-struct): Remove unused var `ind'. + (org-list-get-next-item, org-list-get-prev-item) + (org-list-get-children): Mark unused arg `struct'. + (org-list-use-alpha-bul-p): Remove unused var `bul'. + (org-toggle-checkbox): Mark unused var. + (org-update-checkbox-count): Remove unused var `box-num'. + (org-adapt-indentation): Declare. + (org-list-parse-list): Declare var instead of adding a dummy duplicate. + (org-list-send-list): Remove unused var `txt'. + (org-list-to-latex, org-list-to-texinfo): Mark unused arg `params'. + (org-list-to-subtree): Add prefix to dyn-bind var, and declare them. + * lisp/org/org-macs.el: Use `declare'. + (org-with-limited-levels): Declare dyn-bound vars. + +2015-05-04 Eli Zaretskii + + Fix minor issues with CEDET on MS-Windows + * lisp/cedet/semantic/symref/idutils.el + (semantic-symref-parse-tool-output-one-line): Fix the search + regexp to match MS-Windows file names with drive letters. + (Bug#19468) + * lisp/cedet/semantic/symref/grep.el + (semantic-symref-grep-use-template): Remove "--color=always" from + Grep switches on MS-Windows. + (semantic-symref-grep-shell): Use shell-file-name as the default + value, so this works not only on Posix platforms. + (semantic-symref-perform-search): Use shell-quote-argument instead + of literal '..' for portable quoting of Grep command-line + argument. Use shell-command-switch instead of a literal "-c". + * lisp/cedet/semantic/bovine/gcc.el + (semantic-gcc-get-include-paths): Use file-name-absolute-p to test + for an absolute file name in a portable way. + +2015-05-04 Artur Malabarba + + * lisp/emacs-lisp/package.el: Remove `package--silence' variable + (package-import-keyring, package-refresh-contents) + (package-compute-transaction, package--save-selected-packages) + (package-install-from-archive, package-delete) + (package-menu--perform-transaction): Use `inhibit-message' + instead. + (package--compile): Set `warning-minimum-level' to :error. + +2015-05-03 Stefan Monnier + + * lisp/term/screen.el (xterm-screen-extra-capabilities): New custom + (terminal-init-screen): Use it (bug#20356). + * lisp/term/xterm.el: Provide `term/xterm' instead of `xterm'. + (xterm--extra-capabilities-type): New const. + (xterm-extra-capabilities): Use it. + (xterm--version-handler): Lower the pseudo-version for `screen'. + +2015-05-03 Dmitry Gutov + + xref--insert-xrefs: Tweak the faces + * lisp/progmodes/xref.el (xref--insert-xrefs): Tweak the faces. + Always insert a newline at the end (to avoid mouse-face background + tail at the last line). + + elisp-completion-at-point: Prioritize being quoted over funpos + * lisp/progmodes/elisp-mode.el (elisp-completion-at-point): + Only consider function position when not inside quoted form + (bug#20425). + * test/automated/elisp-mode-tests.el: New file. + + Stop vc-print-log from jumping to the top + * lisp/vc/vc.el (vc-print-log-internal): Pass nil + GOTO-LOCATION-FUNC to vc-log-internal-common when WORKING-REVISION + is not specified. + (vc-incoming-outgoing-internal): Always pass nil. + (vc-log-internal-common): When GOTO-LOCATION-FUNC is nil, don't + call it, and don't set vc-sentinel-movepoint (bug#15322). + (vc-print-root-log): Don't fetch the root working revision, nor + pass it to vc-print-log-internal. + +2015-05-02 Michael Vehrs + + Fix display of keyboard layouts for right-to-left scripts + * lisp/international/quail.el (quail-insert-kbd-layout): Force + left-to-right paragraph direction. + +2015-05-02 K. Handa + + Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs + + * cmds.c (internal_self_insert): When we insert spaces for + padding, set point before the padding spaces, not after them. + +2015-05-02 Nicolas Petton + + * lisp/emacs-lisp/seq.el (seq-p): New alias to `sequencep'. + +2015-05-02 Dmitry Gutov + + 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). + +2015-05-02 Philipp Stephani + + 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) + +2015-05-02 Eli Zaretskii + + 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. + + Don't require Texinfo 5.0 for Emacs documentation + * doc/emacs/docstyle.texi: Use "@set txicodequoteundirected" and + "@set txicodequotebacktick" instead of "@codequotebacktick on" and + "@codequoteundirected on", respectively, to avoid requiring + Texinfo 5.x for Emacs documentation. + +2015-05-01 Simen Heggestøyl + + * lisp/files.el (pwd): + When called with a prefix argument, insert the current default + directory at point. + +2015-05-01 Stefan Monnier + + * lisp/isearch.el (isearch-mode-map): Allow backspace remapping + * lisp/isearch.el (isearch-mode-map): Don't inhibit + function-key-map remapping for backspace (bug#20466). + +2015-05-01 Dmitry Gutov + + Implement xref-find-references in etags and elisp-mode + * lisp/progmodes/elisp-mode.el (elisp--xref-find-references): New function. + (elisp-xref-find): Use it. + * lisp/progmodes/etags.el (etags-xref-find): Use `xref-collect-references'. + * lisp/progmodes/xref.el (xref-collect-references): + (xref--collect-reference): New functions. + +2015-05-01 Paul Eggert + + Prefer plain characters to Texinfo circumlocutions + For example, prefer 'François' to 'Fran\c{c}ois', 'Fran\c cois', + 'Fran@,{c}ois' or 'Francois' (all of which were used!) in Texinfo sources. + + Fix single-quoting style in PDF manuals + The PDF versions of the GNU manuals used curved single quotes to + represent grave accent and apostrophe, which made it a pain to cut + and paste code examples from them. Fix the PDF versions to use + grave accent and apostrophe for Lisp source code, keystrokes, etc. + This change does not affect the info files, nor does it affect + ordinary uses of curved single quotes in PDF. + * doc/emacs/docstyle.texi: New file, which specifies treatment for + grave accent and apostrophe, as well as the document encoding. + * doc/emacs/emacs-xtra.texi, doc/emacs/emacs.texi: + * doc/lispintro/emacs-lisp-intro.texi: + * doc/lispref/back.texi, doc/lispref/book-spine.texi: + * doc/lispref/elisp.texi, doc/lispref/lay-flat.texi: + * doc/misc/ada-mode.texi, doc/misc/auth.texi: + * doc/misc/autotype.texi, doc/misc/bovine.texi, doc/misc/calc.texi: + * doc/misc/cc-mode.texi, doc/misc/cl.texi, doc/misc/dbus.texi: + * doc/misc/dired-x.texi, doc/misc/ebrowse.texi, doc/misc/ede.texi: + * doc/misc/ediff.texi, doc/misc/edt.texi, doc/misc/efaq-w32.texi: + * doc/misc/efaq.texi, doc/misc/eieio.texi, doc/misc/emacs-gnutls.texi: + * doc/misc/emacs-mime.texi, doc/misc/epa.texi, doc/misc/erc.texi: + * doc/misc/ert.texi, doc/misc/eshell.texi, doc/misc/eudc.texi: + * doc/misc/eww.texi, doc/misc/flymake.texi, doc/misc/forms.texi: + * doc/misc/gnus-coding.texi, doc/misc/gnus-faq.texi: + * doc/misc/gnus.texi, doc/misc/htmlfontify.texi: + * doc/misc/idlwave.texi, doc/misc/ido.texi, doc/misc/info.texi: + * doc/misc/mairix-el.texi, doc/misc/message.texi, doc/misc/mh-e.texi: + * doc/misc/newsticker.texi, doc/misc/nxml-mode.texi: + * doc/misc/octave-mode.texi, doc/misc/org.texi, doc/misc/pcl-cvs.texi: + * doc/misc/pgg.texi, doc/misc/rcirc.texi, doc/misc/reftex.texi: + * doc/misc/remember.texi, doc/misc/sasl.texi, doc/misc/sc.texi: + * doc/misc/semantic.texi, doc/misc/ses.texi, doc/misc/sieve.texi: + * doc/misc/smtpmail.texi, doc/misc/speedbar.texi: + * doc/misc/srecode.texi, doc/misc/todo-mode.texi, doc/misc/tramp.texi: + * doc/misc/url.texi, doc/misc/vhdl-mode.texi, doc/misc/vip.texi: + * doc/misc/viper.texi, doc/misc/widget.texi, doc/misc/wisent.texi: + * doc/misc/woman.texi: + Use it instead of '@documentencoding UTF-8', to lessen the need for + global changes like this in the future. + * doc/emacs/Makefile.in (EMACS_XTRA): + * doc/lispintro/Makefile.in (srcs): + * doc/lispref/Makefile.in (srcs): + Add dependency on docstyle.texi. + * doc/misc/Makefile.in (style): New macro. + (${buildinfodir}/%.info, %.dvi, %.pdf, %.html) + (${buildinfodir}/ccmode.info, ${buildinfodir}/efaq%.info, gnus_deps): + Use it. + +2015-05-01 Glenn Morris + + * test/automated/cl-lib-tests.el (cl-lib-adjoin-test): Fix it. + + * lisp/emacs-lisp/pcase.el (get-edebug-spec, edebug-match) + (help-fns--signature): Declare. + + * lisp/emacs-lisp/pcase.el (pcase--make-docstring): Require help-fns. + +2015-05-01 Nicolas Petton + + New macro seq-let, providing destructuring support to seq.el + * lisp/emacs-lisp/seq.el (seq-let): New macro. `seq-let' is similar + to `cl-destructuring-bind' but works on all sequence types supported + by `seq.el'. Bump version number to 1.6. + * test/automated/seq-tests.el: Add tests for seq-let. + * doc/lispref/sequences.texi: Add documentation for seq-let. + +2015-05-01 Pontus Michael + + * lisp/simple.el (blink-matching-open): Better behavior in minibuffer + +2015-05-01 Glenn Morris + + * lisp/emacs-lisp/ert.el (ert--special-operator-p): Fix previous. + +2015-05-01 Artur Malabarba + + * lisp/emacs-lisp/bytecomp.el: Revert "Silence noninteractive compilations" + This reverts commit 9a7ddde977378cb5276a81476ae458889c403267. + This reverts commit 3c0ea587daf8b17960b90603a70e3ac4057d883d. + With message: "* lisp/emacs-lisp/bytecomp.el: Use `inhibit-message'". + (Bug#20445). + +2015-05-01 K. Handa + + * mule-cmds.el (input-method-use-echo-area): Change :type to + 'boolean. + +2015-05-01 Lars Magne Ingebrigtsen + + Start using proportional fonts in eww by default + * lisp/net/shr.el (shr-use-fonts): Switch the default to t, since + it seems to work well. + + Fix links in tables in shr + * lisp/net/shr.el: Remove `shr-inhibit-decoration', because that + makes (some) links in tables not work. + +2015-05-01 Jan D + + (ns-get-cut-buffer-internal): Remove this alias. + * lisp/term/ns-win.el (ns-get-cut-buffer-internal): Remove this alias. + +2015-04-30 Glenn Morris + + * lisp/emacs-lisp/ert.el (ert--special-operator-p): + Update for 2015-02-08 change to indirect-function. + + * lisp/term/ns-win.el (ns-get-selection-internal): + Remove declaration for function deleted 2014-10-21. + + * lisp/dom.el: Load subr-x when compiling, for when-let. + + Silence some compilation warnings + * lisp/emacs-lisp/check-declare.el (compilation-forget-errors): + * lisp/emulation/cua-base.el (delete-active-region): + * lisp/net/net-utils.el (w32-get-console-output-codepage): + * lisp/term/ns-win.el (ns-own-selection-internal) + (ns-disown-selection-internal, ns-selection-owner-p) + (ns-selection-exists-p, ns-get-selection): + Declare for compiler.. + + Function declaration updates prompted by 'make check-declare' + * lisp/emacs-lisp/package.el (lm-homepage): + * lisp/gnus/gnus-util.el (iswitchb-read-buffer): + * lisp/gnus/mm-decode.el (libxml-parse-html-region): + * lisp/gnus/mml.el (libxml-parse-html-region): + * lisp/gnus/nnrss.el (libxml-parse-html-region): + * lisp/net/eww.el (libxml-parse-html-region): + * lisp/net/shr.el (libxml-parse-html-region): + * lisp/vc/vc-bzr.el (vc-annotate-convert-time): + * lisp/vc/vc-cvs.el (vc-annotate-convert-time): + * lisp/vc/vc-git.el (vc-annotate-convert-time): + * lisp/vc/vc-hg.el (vc-annotate-convert-time): + * lisp/vc/vc-mtn.el (vc-annotate-convert-time): + * lisp/vc/vc-rcs.el (vc-annotate-convert-time): + Update declaration. + + Remove compatibility code for 20-year old function renaming + * lisp/progmodes/idlw-shell.el (idlwave-shell-comint-filter): + Make it an obsolete alias. + (idlwave-shell-filter): Change all uses to comint-output-filter. + +2015-04-30 Tassilo Horn + + Add ace-window face config + * etc/themes/tsdh-light-theme.el (tsdh-light): Add ace-window face + configuration. + +2015-04-30 Paul Eggert + + Unclutter 'make doc' output a bit + * Makefile.in ($(DOCS), $(INSTALL_DOC), $(UNINSTALL_DOC)): + Use make subst rather than sh IFS to split target string apart. + This makes 'make' output easier to follow. + + Merge from gnulib + * doc/misc/texinfo.tex: Update from gnulib. + +2015-04-30 Artur Malabarba + + * lisp/emacs-lisp/package.el: Some speed optimizations on menu refresh + (package-menu--print-info): Obsolete. + (package-menu--print-info-simple): New function. + (package-menu--refresh): Use it, simplify code, and improve + performance. + * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-entry): + Tiny performance improvement. + + * lisp/emacs-lisp/package.el (package--message): inhibit-message + +2015-04-29 Paul Eggert + + Omit -Wstrict-overflow workaround in GCC 5 + * src/process.c: Remove workaround for GCC -Wstrict-overflow bug + if it's GCC 5 or later, as the bug appears to be fixed in GCC 5.1. + + Merge from gnulib + This incorporates: + 2015-04-29 extern-inline: no need for workaround in GCC 5.1 + 2015-04-26 file-has-acl: port to CentOS 6 + * m4/acl.m4, m4/extern-inline.m4: Update from gnulib. + +2015-04-29 Helmut Eller + + Set next-error-* in xref--xref-buffer-mode + * xref.el (xref--xref-buffer-mode): Set `next-error-function' and + `next-error-last-buffer'. + (xref--next-error-function): New function. + (http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg01311.html) + +2015-04-29 Fabián Ezequiel Gallina + + python.el: Fix warnings on looking-back calls missing LIMIT + * lisp/progmodes/python.el (python-shell-accept-process-output): + Pass LIMIT arg to looking-back. + +2015-04-29 Artur Malabarba + + * lisp/emacs-lisp/package.el: Use pushnew for downloads in progress + (package--download-and-read-archives): Use pushnew instead of + append. If something terrible happened during a previous + download, simply refreshing should now make things work again. + +2015-04-29 Dmitry Gutov + + Introduce etags-xref-find-definitions-tag-order + * lisp/progmodes/etags.el (etags-xref-find-definitions-tag-order): + New variable. + (etags--xref-find-definitions): Use it (bug#19468). + +2015-04-29 Eli Zaretskii + + PATH- and completion-related fixes in Eshell on MS-Windows + * lisp/eshell/esh-ext.el (eshell-search-path): When running on + MS-Windows, prepend "." to list of directories produced from PATH, + as Windows always implicitly searches the current directory first. + (eshell-force-execution): Make it have a non-nil default value on + MS-Windows and MS-DOS. + * lisp/eshell/em-cmpl.el (eshell-complete-commands-list): If + eshell-force-execution is non-nil, complete on readable files and + directories, not only executables. When running on MS-Windows, + prepend "." to list of directories produced from PATH, as Windows + always implicitly searches the current directory first. + +2015-04-29 Sam Steingold + + bury RCIRC buffers when there is no activity + lisp/net/rcirc.el (rcirc-non-irc-buffer): remove + (rcirc-bury-buffers): new function + (rcirc-next-active-buffer): when there is no new activity, use + `rcirc-bury-buffers' to hide all RCIRC buffers + +2015-04-29 Michael Albinus + + Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs + +2015-04-29 Krzysztof Jurewicz (tiny change) + + Fix DBUS query result parsing for secrets-search-items + * lisp/net/secrets.el (secrets-search-items): Fix DBUS query result + parsing. The function assumed that return value of the + SearchItems method called on a collection is a list of two lists, + however this is true only when no collection is specified. GNOME + had used to incorrectly return a list of two lists in both cases, + but this was already fixed: + https://bugzilla.gnome.org/show_bug.cgi?id=695115 . Also fix an + incorrect information in the secrets-search-items’ docstring. + (Bug#20449) + +2015-04-29 Artur Malabarba + + * lisp/emacs-lisp/bytecomp.el: Use `inhibit-message' + (byte-compile--message): Use `inhibit-message' instead of hiding + the previous message with (message nil). + +2015-04-29 Oleh Krehel + + Remove the deprecated INTERNAL_FIELD macro by expanding it + * src/lisp.h (INTERNAL_FIELD): Remove. + (DEFVAR_KBOARD): Modify accordingly. + * alloc.c, buffer.c, buffer.h, category.c, keyboard.c, keyboard.h: + * syntax.c: Adjust users. + * src/buffer.c (compact_buffer): Use BVAR. + +2015-04-29 Glenn Morris + + Replace an obsolete function alias + * lisp/isearch.el (isearch-yank-x-selection): + * lisp/mouse-copy.el (mouse-drag-secondary-pasting) + (mouse-drag-secondary-moving): + * lisp/obsolete/mouse-sel.el (mouse-sel-get-selection-function): + Replace obsolete alias x-get-selection with gui-get-selection. + +2015-04-29 Stefan Monnier + + * lisp/mail/rmailsum.el: Use lexical-binding. + +2015-04-29 Glenn Morris + + * test/automated/package-test.el (package-test-update-archives-async): + Skip test on hydra.nixos.org. + +2015-04-28 Glenn Morris + + * lisp/foldout.el: Update for 2015-01-30 outline.el changes. + (foldout-zoom-subtree, foldout-exit-fold, foldout-mouse-show) + (foldout-mouse-hide-or-exit): Use new names for outline functions. + + * lisp/cedet/semantic/bovine/c.el (semantic-c-do-lex-if): + Update for 2014-06-26 hideif.el change. + + * lisp/mail/rmailsum.el: Fix search for encoded subjects. (Bug#19088) + (rmail--decode-and-apply): New function. + (rmail-message-regexp-p-1, rmail-message-subject-p): Use it. + + * lisp/mail/rmail.el (rmail-highlighted-headers): Fix :type. + +2015-04-28 Artur Malabarba + + * lisp/emacs-lisp/package.el: Fix priority-hiding corner case + (package-menu--refresh): Delegate obsolete-hiding to + `package--remove-hidden'. + (package--remove-hidden): Disregard high-priority package if it is + older than the installed one. + +2015-04-28 Paul Eggert + + Update source file encoding list + Update admin/notes/unicode, along with coding system cookies in + other files, so that the two match each other better. + * admin/notes/unicode: lisp/language/ethio-util.el and + lisp/language/ethiopic.el also use utf-8-emacs. + * admin/notes/hydra, doc/misc/dbus.texi, doc/misc/org.texi: + * doc/misc/remember.texi, etc/refcards/cs-dired-ref.tex: + * etc/refcards/cs-refcard.tex, etc/refcards/cs-survival.tex: + * etc/refcards/sk-dired-ref.tex, etc/refcards/sk-refcard.tex: + * etc/refcards/sk-survival.tex: + Add "coding: utf-8" so that this file is not mishandled in a + Latin-1 or Big-5 locale. + * lisp/international/robin.el, lisp/org/ox-ascii.el: + Specify utf-8, not utf-8-emacs, as these are plain UTF-8 files. + * lisp/language/ethio-util.el: Fix trailer. + +2015-04-28 Eli Zaretskii + + Fix synchronous invocation of Ispell + * lisp/textmodes/ispell.el (ispell-init-process): Assign a non-nil + value to ispell-process-directory before calling ispell-init-process. + Don't call set-process-coding-system if ispell-async-processp is nil. + (Bug#20448) + +2015-04-28 Artur Malabarba + + * lisp/emacs-lisp/package.el: Skip space and comments in init file + (package--ensure-init-file): Insert snippet at first + non-whitespace non-comments line. Respects local-vars at the top + of the file. + +2015-04-28 Glenn Morris + + * lisp/mail/rmail.el (rmail-copy-headers): + Handle rmail-nonignored-headers being nil. (Bug#18878) + + * lisp/subr.el (delay-mode-hooks): Fix doc typo. + + * lisp/vc/vc-bzr.el (vc-bzr-after-dir-status): + Don't get confused by a bzrlib version mismatch warning. + +2015-04-27 Thomas Fitzsimmons + + Change default location of EUDC options file + * NEWS: Document change to EUDC options file's default location. + * lisp/net/eudc-vars.el (eudc-options-file): Use + `locate-user-emacs-file' to change default options file location. + +2015-04-27 Glenn Morris + + * test/automated/package-test.el (package-test-update-archives-async): + Try to handle the test server script dying. + +2015-04-27 Stefan Monnier + + * lisp/saveplace.el (save-place-mode): New minor mode. + (save-place): Redefine as an obsolete alias. + + * lisp/midnight.el: Make it a minor mode. Allow predicates. + * lisp/midnight.el: Use lexical-binding. + (midnight-mode): Make it a proper minor mode. + (midnight-buffer-display-time): Make arg non-optional. + (midnight-find): Remove. + (clean-buffer-list-kill-never-regexps) + (clean-buffer-list-kill-regexps): Tweak type for new function choice. + (clean-buffer-list-delay): Allow clean-buffer-list-kill-regexps to + contain functions. + (clean-buffer-list): Use cl-find. + Allow clean-buffer-list-kill-never-regexps to contain functions. + +2015-04-27 Nicolas Petton + + Bump version of seq.el to 1.5 + * lisp/emacs-lisp/seq.el (seq-doseq): Remove undocumented return value + from seq-doseq. Bump version number of seq.el. + +2015-04-27 Glenn Morris + + * lisp/mail/rmail.el (rmail-reply): + Decode subject before matching "Re:" prefix. (Bug#20396) + +2015-04-27 Artur Malabarba + + * lisp/emacs-lisp/package.el: Small improvements + (package--with-work-buffer-async): More informative error. + (package-install-user-selected-packages): Rename to + `package-install-selected-packages'. + +2015-04-27 Stefan Monnier + + * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Fix last + * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Fix last change. + (eieio--class-make): Remove leftover `tag'. + +2015-04-27 Glenn Morris + + * lisp/gnus/message.el (gnus-extract-address-components): + Remove bogus declaration that was masking previous problem. + +2015-04-27 Nicolas Graner (tiny change) + + * lisp/gnus/message.el (message-insert-formatted-citation-line): + Fix typo. (Bug#20318) + +2015-04-27 Stefan Monnier + + * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Reuse oldc. + + * lisp/textmodes/reftex-toc.el: Improve multi-frame behavior + * lisp/textmodes/reftex-toc.el (reftex-toc-revert): Avoid displaying + the buffer in yet another frame. + (reftex-toc-visit-location): Make sure toc-window has focus at the end + when `final' is nil. + (reftex--rebuilding-toc): Defvar to avoid `boundp' and + silence warnings. Use `--' to clarify that it's internal. + (reftex-toc-next, reftex-toc-previous, reftex-toc-demote) + (reftex-toc-promote): Clarify unused argument. + (reftex--pro-or-de, reftex--start-line, reftex--mark-line): + Add `reftex--' prefix. Fix all users. + (reftex-toc-promote-prepare): Use _ for dummy variable. + (reftex-toc-restore-region): Rename `m + +2015-04-27 Eli Zaretskii + + Fix a typo in bibtex.el + * lisp/textmodes/bibtex.el (bibtex-insert-kill): Fix a typo from + last change. (Bug#20429) + + Fix redisplay of frame after loading new fonts + * src/xdisp.c (redisplay_internal): When retrying redisplay of a + frame because new fonts were loaded, disable all redisplay + optimizations on that frame by calling SET_FRAME_GARBAGED. + (Bug#20410) + +2015-04-27 Stefan Monnier + + * lisp/info.el (Info-menu): Properly provide the `default' + (Bug#20391) + + * elisp-mode.el: Catch errors from `documentation' + (Bug#20418) + * lisp/progmodes/elisp-mode.el (elisp--get-fnsym-args-string): + Catch errors from documentation. + (emacs-lisp-mode-abbrev-table): Remove redundant defvar. + +2015-04-26 Stefan Monnier + + lisp/emacs-lisp/package.el: Move variables to silence byte-compiler + Remove redundant ":group 'package". + +2015-04-26 Eli Zaretskii + + Fix a typo in rmail.el + * lisp/mail/rmail.el (rmail-ensure-blank-line): Fix a typo in the + last commit. (Bug#20429) + +2015-04-26 Dmitry Gutov + + Introduce xref-prompt-for-identifier + * lisp/progmodes/xref.el (xref-prompt-for-identifier): New option. + (xref--read-identifier): Use it + (http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg01205.html). + +2015-04-26 João Távora + + `tex-insert-quote' after single `'' opens quotes instead of closing + Without this, it's very hard to precede double quotes with the + apostrophe character, i.e. insert the sequence '`` + (quote-backquote-backquote), commonly useful in portuguese, for + instance. + * tex-mode.el (tex-insert-quote): Add ?' to the list of preceding + chars making `tex-insert-quote' be in the "opening" context. + +2015-04-25 Dmitry Gutov + + Pass `id' to `completing-read' as def instead of initial input + * xref.el (xref--read-identifier): Pass `id' to `completing-read' + as the default value instead of initial input + (http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg01182.html). + +See ChangeLog.2 for earlier changes. + 2015-04-25 Paul Eggert Don't freeze with unreadable processes diff --git a/build-aux/gitlog-to-emacslog b/build-aux/gitlog-to-emacslog old mode 100755 new mode 100644 index 134acf2..e38f896 --- a/build-aux/gitlog-to-emacslog +++ b/build-aux/gitlog-to-emacslog @@ -23,7 +23,7 @@ LC_ALL=C export LC_ALL # The newest revision that should not appear in the generated ChangeLog. -gen_origin=2c1b8604946efbcd8ec5dd6c6dda7541ce4fc3c0 +gen_origin=d2c7e14ac3bd2b517d35a86255c28d5b6d779451 force= output=ChangeLog nmax=2