commit 8ba236e772b64d0bb021aa691bd7eacf4b7f3ae4 (HEAD, refs/remotes/origin/master) Author: Dmitry Gutov Date: Sun Jan 29 10:41:32 2017 +0200 Escape dash in xref rgrep regexp * lisp/progmodes/xref.el (xref-collect-matches): Escape dash in REGEXP if it's the first character. diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index d8098c5a54..a507755d42 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -918,6 +918,10 @@ IGNORES is a list of glob patterns." (grep-compute-defaults) (defvar grep-find-template) (defvar grep-highlight-matches) + ;; 'grep -E -foo' results in 'grep: oo: No such file or directory'. + ;; while 'grep -e -foo' inexplicably doesn't. + (when (eq (aref regexp 0) ?-) + (setq regexp (concat "\\" regexp))) (let* ((grep-find-template (replace-regexp-in-string "-e " "-E " grep-find-template t t)) (grep-highlight-matches nil) commit 52feecd3c71716ca5dbade0e8e6ae2f8ebf46e54 Author: Dmitry Gutov Date: Sun Jan 29 10:39:55 2017 +0200 Say JavaScript, not Javascript * lisp/progmodes/js.el (js-mode-map, js-syntax-propertize) (js-js-error, js-eval, js-set-js-context) (js--get-js-context): Refer to the language consistently as JavaScript. diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index 4a5bde764b..74dd4add9e 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el @@ -574,8 +574,8 @@ then the \".\"s will be lined up: (define-key keymap [(control ?c) (control ?j)] #'js-set-js-context) (define-key keymap [(control meta ?x)] #'js-eval-defun) (define-key keymap [(meta ?.)] #'js-find-symbol) - (easy-menu-define nil keymap "Javascript Menu" - '("Javascript" + (easy-menu-define nil keymap "JavaScript Menu" + '("JavaScript" ["Select New Mozilla Context..." js-set-js-context (fboundp #'inferior-moz-process)] ["Evaluate Expression in Mozilla Context..." js-eval @@ -1712,7 +1712,7 @@ This performs fontification according to `js--class-styles'." nil)))))) (defun js-syntax-propertize (start end) - ;; Javascript allows immediate regular expression objects, written /.../. + ;; JavaScript allows immediate regular expression objects, written /.../. (goto-char start) (js-syntax-propertize-regexp end) (funcall @@ -2710,7 +2710,7 @@ current buffer. Pushes a mark onto the tag ring just like ;;; MozRepl integration (define-error 'js-moz-bad-rpc "Mozilla RPC Error") ;; '(timeout error)) -(define-error 'js-js-error "Javascript Error") ;; '(js-error error)) +(define-error 'js-js-error "JavaScript Error") ;; '(js-error error)) (defun js--wait-for-matching-output (process regexp timeout &optional start) @@ -3391,7 +3391,7 @@ With argument, run even if no intervening GC has happened." (defun js-eval (js) "Evaluate the JavaScript in JS and return JSON-decoded result." - (interactive "MJavascript to evaluate: ") + (interactive "MJavaScript to evaluate: ") (with-js (let* ((content-window (js--js-content-window (js--get-js-context))) @@ -3665,7 +3665,7 @@ Change with `js-set-js-context'.") (defun js-set-js-context (context) "Set the JavaScript context to CONTEXT. When called interactively, prompt for CONTEXT." - (interactive (list (js--read-tab "Javascript Context: "))) + (interactive (list (js--read-tab "JavaScript Context: "))) (setq js--js-context context)) (defun js--get-js-context () @@ -3679,7 +3679,7 @@ If one hasn't been set, or if it's stale, prompt for a new one." (`browser (not (js? (js< (cdr js--js-context) "contentDocument")))) (x (error "Unmatched case in js--get-js-context: %S" x)))) - (setq js--js-context (js--read-tab "Javascript Context: "))) + (setq js--js-context (js--read-tab "JavaScript Context: "))) js--js-context)) (defun js--js-content-window (context) commit 2f90bbb5febd44bc9ff8dbff9267f535f907c307 Author: Juanma Barranquero Date: Sun Jan 29 19:34:35 2017 +0100 lisp/*.el: Fix some warnings * lisp/battery.el (dbus-get-property): * lisp/dired-aux.el (format-spec): Declare function. * lisp/net/zeroconf.el (zeroconf-list-service-names) (zeroconf-list-service-types, zeroconf-list-services): Mark unused lexical arg. * lisp/progmodes/hideshow.el (hs-hide-block-at-point): * lisp/progmodes/sql.el (sql-end-of-statement): Pass LIMIT to 'looking-back'. diff --git a/lisp/battery.el b/lisp/battery.el index 71268e59ec..b1834f06ff 100644 --- a/lisp/battery.el +++ b/lisp/battery.el @@ -542,6 +542,9 @@ The following %-sequences are provided: (t "N/A")))))) +(declare-function dbus-get-property "dbus.el" + (bus service path interface property)) + ;;; `upowerd' interface. (defsubst battery-upower-prop (pname &optional device) (dbus-get-property diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index cabcfcdbd3..caa3b45705 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -987,6 +987,8 @@ corresponding command. Within CMD, %i denotes the input file(s), and %o denotes the output file. %i path(s) are relative, while %o is absolute.") +(declare-function format-spec "format-spec.el" (format specification)) + ;;;###autoload (defun dired-do-compress-to () "Compress selected files and directories to an archive. diff --git a/lisp/net/zeroconf.el b/lisp/net/zeroconf.el index 37816bb888..393f3a549f 100644 --- a/lisp/net/zeroconf.el +++ b/lisp/net/zeroconf.el @@ -256,7 +256,7 @@ supported keys depend on the service type.") "Returns all discovered Avahi service names as list." (let (result) (maphash - (lambda (key value) (add-to-list 'result (zeroconf-service-name value))) + (lambda (_key value) (add-to-list 'result (zeroconf-service-name value))) zeroconf-services-hash) result)) @@ -264,7 +264,7 @@ supported keys depend on the service type.") "Returns all discovered Avahi service types as list." (let (result) (maphash - (lambda (key value) (add-to-list 'result (zeroconf-service-type value))) + (lambda (_key value) (add-to-list 'result (zeroconf-service-type value))) zeroconf-services-hash) result)) @@ -276,7 +276,7 @@ The service type is one of the returned values of format of SERVICE." (let (result) (maphash - (lambda (key value) + (lambda (_key value) (when (equal type (zeroconf-service-type value)) (add-to-list 'result value))) zeroconf-services-hash) diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el index 0e4e67018e..5328526abd 100644 --- a/lisp/progmodes/hideshow.el +++ b/lisp/progmodes/hideshow.el @@ -582,7 +582,7 @@ and then further adjusted to be at the end of the line." (setq p (line-end-position))) ;; `q' is the point at the end of the block (hs-forward-sexp mdata 1) - (setq q (if (looking-back hs-block-end-regexp) + (setq q (if (looking-back hs-block-end-regexp nil) (match-beginning 0) (point))) (when (and (< p q) (> (count-lines p q) 1)) diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el index 71563486ec..8868343129 100644 --- a/lisp/progmodes/sql.el +++ b/lisp/progmodes/sql.el @@ -2790,7 +2790,7 @@ local variable." ;; Iterate until we've moved the desired number of stmt ends (while (not (= (cl-signum arg) 0)) ;; if we're looking at the terminator, jump by 2 - (if (or (and (> 0 arg) (looking-back term)) + (if (or (and (> 0 arg) (looking-back term nil)) (and (< 0 arg) (looking-at term))) (setq n 2) (setq n 1)) commit 9bf94639b8f674d2c7894df35f26f09d0ecc67f5 Author: Noam Postavsky Date: Sat Jan 28 12:31:28 2017 -0500 Don't warn about obsolete defgenerics when defining them * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): The declaration code should run after the definition code (Bug#25556). diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el index 8d141d7a64..6cc70c4c2f 100644 --- a/lisp/emacs-lisp/cl-generic.el +++ b/lisp/emacs-lisp/cl-generic.el @@ -226,7 +226,13 @@ DEFAULT-BODY, if present, is used as the body of a default method. (when (eq 'setf (car-safe name)) (require 'gv) (setq name (gv-setter (cadr name)))) - `(progn + `(prog1 + (progn + (defalias ',name + (cl-generic-define ',name ',args ',(nreverse options)) + ,(help-add-fundoc-usage doc args)) + ,@(mapcar (lambda (method) `(cl-defmethod ,name ,@method)) + (nreverse methods))) ,@(mapcar (lambda (declaration) (let ((f (cdr (assq (car declaration) defun-declarations-alist)))) @@ -235,12 +241,7 @@ DEFAULT-BODY, if present, is used as the body of a default method. (t (message "Warning: Unknown defun property `%S' in %S" (car declaration) name) nil)))) - (cdr declarations)) - (defalias ',name - (cl-generic-define ',name ',args ',(nreverse options)) - ,(help-add-fundoc-usage doc args)) - ,@(mapcar (lambda (method) `(cl-defmethod ,name ,@method)) - (nreverse methods))))) + (cdr declarations))))) ;;;###autoload (defun cl-generic-define (name args options) commit 0073223c23749ffd6bd3f882bc30a82cc37efd2a Author: Tino Calancha Date: Sun Jan 29 18:49:10 2017 +0900 Fix Bug#25524 * lisp/vc/diff-mode.el (diff-beginning-of-hunk): Return position at the beginning off the hunk. (diff-file-junk-re): Add SVN keywords. diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el index b7ad8e8ebd..e609ca9f94 100644 --- a/lisp/vc/diff-mode.el +++ b/lisp/vc/diff-mode.el @@ -501,7 +501,8 @@ See http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01990.html") ;; "index ", "old mode", "new mode", "new file mode" and ;; "deleted file mode" are output by git-diff. (defconst diff-file-junk-re - "diff \\|index \\|\\(?:deleted file\\|new\\(?: file\\)?\\|old\\) mode\\|=== modified file") + (concat "Index: \\|=\\{20,\\}\\|" ; SVN + "diff \\|index \\|\\(?:deleted file\\|new\\(?: file\\)?\\|old\\) mode\\|=== modified file")) ;; If point is in a diff header, then return beginning ;; of hunk position otherwise return nil. @@ -545,7 +546,8 @@ next hunk if TRY-HARDER is non-nil; otherwise signal an error." (error "Can't find the beginning of the hunk"))) ((re-search-backward regexp nil t)) ; In the middle of a hunk. ((re-search-forward regexp nil t) ; At first hunk header. - (forward-line 0)) + (forward-line 0) + (point)) (t (error "Can't find the beginning of the hunk")))))) (defun diff-unified-hunk-p ()