commit 057f93499eb0491ef816b71523242e18ae810cd5 (HEAD, refs/remotes/origin/master) Author: Dmitry Gutov Date: Mon Jul 20 04:42:53 2015 +0300 Do not corrupt grep-find-ignored-files * lisp/progmodes/project.el (project-ignores): Change the order of the arguments to nconc, in order not to corrupt grep-find-ignored-files. diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index 437c865..44a15dc 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -108,7 +108,6 @@ end it with `/'." (cl-defmethod project-ignores ((project (head vc))) (nconc - (cl-call-next-method) (let* ((dir (cdr project)) (backend (vc-responsible-backend dir))) (mapcar @@ -116,7 +115,8 @@ end it with `/'." (if (string-match "\\`/" entry) (replace-match "./" t t entry) entry)) - (vc-call-backend backend 'ignore-completion-table dir))))) + (vc-call-backend backend 'ignore-completion-table dir))) + (cl-call-next-method))) (defun project-ask-user (dir) (cons 'user (read-directory-name "Project root: " dir nil t))) commit 5330a45ebff0214cc5c5d123e7cc68f00f68ff39 Author: Dmitry Gutov Date: Mon Jul 20 04:32:58 2015 +0300 Add xref-match-item, and use it * lisp/progmodes/xref.el (xref-match-bounds): New generic function. (xref-file-location): Add reader for the column slot. (xref-match-item): New class. (xref-match-bounds): A method implementation for it. (xref-make-match): New constructor function. (xref--current-item): New private variable. (xref-pulse-momentarily): Use it. (xref--pop-to-location): Change the first argument to an xref item, instead of location, bind xref--current-item. Update all callers. (xref-next-line, xref-prev-line, xref--next-error-function) (xref--mouse-2): Look for the property `xref-item', instead of `xref-location'. (xref--item-at-point): Likewise. This function replaces `xref-location-at-point'. Update all callers. (xref--insert-xrefs): Add the `xref-item' text property, instead of `xref-location'. (xref--collect-match): Use xref-make-match. diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index a17550f..0847fda 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -78,6 +78,10 @@ This is typically the filename.") "Return the line number corresponding to the location." nil) +(cl-defgeneric xref-match-bounds (_item) + "Return a cons with columns of the beginning and end of the match." + nil) + ;;;; Commonly needed location classes are defined here: ;; FIXME: might be useful to have an optional "hint" i.e. a string to @@ -85,7 +89,7 @@ This is typically the filename.") (defclass xref-file-location (xref-location) ((file :type string :initarg :file) (line :type fixnum :initarg :line :reader xref-location-line) - (column :type fixnum :initarg :column)) + (column :type fixnum :initarg :column :reader xref-file-location-column)) :documentation "A file location is a file/line/column triple. Line numbers start from 1 and columns from 0.") @@ -165,6 +169,29 @@ SUMMARY is a short string to describe the xref. LOCATION is an `xref-location'." (make-instance 'xref-item :summary summary :location location)) +(defclass xref-match-item () + ((summary :type string :initarg :summary + :reader xref-item-summary) + (location :initarg :location + :type xref-file-location + :reader xref-item-location) + (end-column :initarg :end-column)) + :comment "An xref item describes a reference to a location +somewhere.") + +(cl-defmethod xref-match-bounds ((i xref-match-item)) + (with-slots (end-column location) i + (cons (xref-file-location-column location) + end-column))) + +(defun xref-make-match (summary end-column location) + "Create and return a new xref match item. +SUMMARY is a short string to describe the xref. +END-COLUMN is the match end column number inside SUMMARY. +LOCATION is an `xref-location'." + (make-instance 'xref-match-item :summary summary :location location + :end-column end-column)) + ;;; API @@ -309,15 +336,22 @@ elements is negated." (set-marker marker nil nil) (run-hooks 'xref-after-return-hook)))) +(defvar xref--current-item nil) + (defun xref-pulse-momentarily () - (let (beg end) - (save-excursion - (back-to-indentation) - (if (eolp) - (setq beg (line-beginning-position) - end (1+ (point))) - (setq beg (point) - end (line-end-position)))) + (pcase-let ((`(,beg . ,end) + (save-excursion + (or + (let ((bounds (xref-match-bounds xref--current-item))) + (when bounds + (cons (progn (move-to-column (car bounds)) + (point)) + (progn (move-to-column (cdr bounds)) + (point))))) + (back-to-indentation) + (if (eolp) + (cons (line-beginning-position) (1+ (point))) + (cons (point) (line-end-position))))))) (pulse-momentary-highlight-region beg end 'next-error))) ;; etags.el needs this @@ -343,18 +377,19 @@ elements is negated." (t (error "Location is outside accessible part of buffer"))) (goto-char marker))) -(defun xref--pop-to-location (location &optional window) - "Goto xref-location LOCATION and display the buffer. +(defun xref--pop-to-location (item &optional window) + "Go to the location of ITEM and display the buffer. WINDOW controls how the buffer is displayed: nil -- switch-to-buffer 'window -- pop-to-buffer (other window) 'frame -- pop-to-buffer (other frame)" - (xref--goto-location location) + (xref--goto-location (xref-item-location item)) (cl-ecase window ((nil) (switch-to-buffer (current-buffer))) (window (pop-to-buffer (current-buffer) t)) (frame (let ((pop-up-frames t)) (pop-to-buffer (current-buffer) t)))) - (run-hooks 'xref-after-jump-hook)) + (let ((xref--current-item item)) + (run-hooks 'xref-after-jump-hook))) ;;; XREF buffer (part of the UI) @@ -414,26 +449,27 @@ Used for temporary buffers.") (defun xref-show-location-at-point () "Display the source of xref at point in the other window, if any." (interactive) - (let ((loc (xref--location-at-point))) - (when loc - (xref--show-location loc)))) + (let* ((xref (xref--item-at-point)) + (xref--current-item xref)) + (when xref + (xref--show-location (xref-item-location xref))))) (defun xref-next-line () "Move to the next xref and display its source in the other window." (interactive) - (xref--search-property 'xref-location) + (xref--search-property 'xref-item) (xref-show-location-at-point)) (defun xref-prev-line () "Move to the previous xref and display its source in the other window." (interactive) - (xref--search-property 'xref-location t) + (xref--search-property 'xref-item t) (xref-show-location-at-point)) -(defun xref--location-at-point () +(defun xref--item-at-point () (save-excursion (back-to-indentation) - (get-text-property (point) 'xref-location))) + (get-text-property (point) 'xref-item))) (defvar-local xref--window nil "ACTION argument to call `display-buffer' with.") @@ -441,11 +477,11 @@ Used for temporary buffers.") (defun xref-goto-xref () "Jump to the xref on the current line and bury the xref buffer." (interactive) - (let ((loc (or (xref--location-at-point) + (let ((xref (or (xref--item-at-point) (user-error "No reference at point"))) (window xref--window)) (xref-quit) - (xref--pop-to-location loc window))) + (xref--pop-to-location xref window))) (defvar xref--xref-buffer-mode-map (let ((map (make-sparse-keymap))) @@ -470,11 +506,11 @@ Used for temporary buffers.") (goto-char (point-min))) (let ((backward (< n 0)) (n (abs n)) - (loc nil)) + (xref nil)) (dotimes (_ n) - (setq loc (xref--search-property 'xref-location backward))) - (cond (loc - (xref--pop-to-location loc)) + (setq (xref--search-property 'xref-item backward))) + (cond (xref + (xref--pop-to-location xref)) (t (error "No %s xref" (if backward "previous" "next")))))) @@ -518,7 +554,7 @@ meantime are preserved." (interactive "e") (mouse-set-point event) (forward-line 0) - (xref--search-property 'xref-location) + (xref--search-property 'xref-item) (xref-show-location-at-point)) (defun xref--insert-xrefs (xref-alist) @@ -546,7 +582,7 @@ GROUP is a string for decoration purposes and XREF is an 'face 'compilation-line-number) " "))) (xref--insert-propertized - (list 'xref-location location + (list 'xref-item xref ;; 'face 'font-lock-keyword-face 'mouse-face 'highlight 'keymap xref--button-map @@ -603,7 +639,7 @@ Return an alist of the form ((FILENAME . (XREF ...)) ...)." (user-error "No %s found for: %s" (symbol-name kind) input)) ((not (cdr xrefs)) (xref-push-marker-stack) - (xref--pop-to-location (xref-item-location (car xrefs)) window)) + (xref--pop-to-location (car xrefs) window)) (t (xref-push-marker-stack) (funcall xref-show-xrefs-function xrefs @@ -866,11 +902,14 @@ IGNORES is a list of glob patterns." (syntax-propertize (line-end-position)) (when (re-search-forward regexp (line-end-position) t) (goto-char (match-beginning 0)) - (xref-make (buffer-substring - (line-beginning-position) - (line-end-position)) - (xref-make-file-location file line - (current-column)))))))) + (let ((loc (xref-make-file-location file line + (current-column)))) + (goto-char (match-end 0)) + (xref-make-match (buffer-substring + (line-beginning-position) + (line-end-position)) + (current-column) + loc))))))) (provide 'xref) commit 10ac9dbdcf2973bd70ea63aa79a9f3ad7dd9ff5a Author: Dmitry Gutov Date: Mon Jul 20 03:26:01 2015 +0300 Rename xref--xref to xref-item * lisp/progmodes/xref.el (xref-item): Rename from `xref--xref'. Update all references. diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index bf0710e..a17550f 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -147,19 +147,23 @@ actual location is not known.") ;;; Cross-reference -(defclass xref--xref () +(defclass xref-item () ((summary :type string :initarg :summary - :reader xref--xref-summary) + :reader xref-item-summary + :documentation "One line which will be displayed for +this item in the output buffer.") (location :initarg :location - :reader xref--xref-location)) - :comment "An xref is used to display and locate constructs like -variables or functions.") + :reader xref-item-location + :documentation "An object describing how to navigate +to the reference's target.")) + :comment "An xref item describes a reference to a location +somewhere.") (defun xref-make (summary location) "Create and return a new xref item. SUMMARY is a short string to describe the xref. LOCATION is an `xref-location'." - (make-instance 'xref--xref :summary summary :location location)) + (make-instance 'xref-item :summary summary :location location)) ;;; API @@ -521,7 +525,7 @@ meantime are preserved." "Insert XREF-ALIST in the current-buffer. XREF-ALIST is of the form ((GROUP . (XREF ...)) ...). Where GROUP is a string for decoration purposes and XREF is an -`xref--xref' object." +`xref-item' object." (require 'compile) ; For the compilation faces. (cl-loop for ((group . xrefs) . more1) on xref-alist for max-line-width = @@ -557,7 +561,7 @@ GROUP is a string for decoration purposes and XREF is an Return an alist of the form ((FILENAME . (XREF ...)) ...)." (xref--alistify xrefs (lambda (x) - (xref-location-group (xref--xref-location x))) + (xref-location-group (xref-item-location x))) #'equal)) (defun xref--show-xref-buffer (xrefs alist) @@ -599,7 +603,7 @@ Return an alist of the form ((FILENAME . (XREF ...)) ...)." (user-error "No %s found for: %s" (symbol-name kind) input)) ((not (cdr xrefs)) (xref-push-marker-stack) - (xref--pop-to-location (xref--xref-location (car xrefs)) window)) + (xref--pop-to-location (xref-item-location (car xrefs)) window)) (t (xref-push-marker-stack) (funcall xref-show-xrefs-function xrefs commit e29206e84af78ea58dc06155ad5ce9dbcf683cc9 Author: Dmitry Gutov Date: Mon Jul 20 03:12:32 2015 +0300 Rename xref description slot to summary * lisp/progmodes/xref.el (xref--xref): Rename the `description' slot to `summary'. diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index a7e0bb4..b7ae3c7 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -583,7 +583,7 @@ It can be quoted, or be inside a quoted form." ;;; Xref backend (declare-function xref-make-bogus-location "xref" (message)) -(declare-function xref-make "xref" (description location)) +(declare-function xref-make "xref" (summary location)) (declare-function xref-collect-references "xref" (symbol dir)) (defun elisp-xref-find (action id) diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index 8d9a782..bf0710e 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -148,18 +148,18 @@ actual location is not known.") ;;; Cross-reference (defclass xref--xref () - ((description :type string :initarg :description - :reader xref--xref-description) + ((summary :type string :initarg :summary + :reader xref--xref-summary) (location :initarg :location :reader xref--xref-location)) :comment "An xref is used to display and locate constructs like variables or functions.") -(defun xref-make (description location) - "Create and return a new xref. -DESCRIPTION is a short string to describe the xref. +(defun xref-make (summary location) + "Create and return a new xref item. +SUMMARY is a short string to describe the xref. LOCATION is an `xref-location'." - (make-instance 'xref--xref :description description :location location)) + (make-instance 'xref--xref :summary summary :location location)) ;;; API @@ -534,7 +534,7 @@ GROUP is a string for decoration purposes and XREF is an do (xref--insert-propertized '(face compilation-info) group "\n") (cl-loop for (xref . more2) on xrefs do - (with-slots (description location) xref + (with-slots (summary location) xref (let* ((line (xref-location-line location)) (prefix (if line @@ -549,7 +549,7 @@ GROUP is a string for decoration purposes and XREF is an 'help-echo (concat "mouse-2: display in another window, " "RET or mouse-1: follow reference")) - prefix description))) + prefix summary))) (insert "\n")))) (defun xref--analyze (xrefs) commit a215fe8a8dc4529982885f3a2347a1984f1c4bc2 Author: Dmitry Gutov Date: Sun Jul 19 20:49:59 2015 +0300 vc-hg: Perform the print-log call asynchronously * lisp/vc/vc-hg.el (vc-hg-print-log): Perform the call asynchronously (bug#21067). diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el index 556174a..f634e2e 100644 --- a/lisp/vc/vc-hg.el +++ b/lisp/vc/vc-hg.el @@ -272,7 +272,7 @@ If LIMIT is non-nil, show no more than this many entries." (let ((inhibit-read-only t)) (with-current-buffer buffer - (apply 'vc-hg-command buffer 0 files "log" + (apply 'vc-hg-command buffer 'async files "log" (nconc (when start-revision (list (format "-r%s:0" start-revision))) (when limit (list "-l" (format "%s" limit))) commit 50ad176d2868a6bc622014ebe49b5bad45d0372c Author: Dmitry Gutov Date: Sun Jul 19 20:40:18 2015 +0300 Add xref-after-jump-hook and xref-after-return-hook * lisp/progmodes/xref.el (xref-after-jump-hook) (xref-after-return-hook): New hooks. (xref-pulse-on-jump): Remove, in favor of the above. (xref-pulse-momentarily): Rename from xref--maybe-pulse. (xref--pop-to-location, xref--display-position) (xref-pop-marker-stack): Use the new hooks, as requested in http://lists.gnu.org/archive/html/emacs-devel/2015-07/msg00213.html diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index 1caded0..8d9a782 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -253,8 +253,7 @@ backward." (defcustom xref-marker-ring-length 16 "Length of the xref marker ring." - :type 'integer - :version "25.1") + :type 'integer) (defcustom xref-prompt-for-identifier '(not xref-find-definitions xref-find-definitions-other-window @@ -274,13 +273,16 @@ elements is negated." (set :menu-tag "command specific" :tag "commands" :value (not) (const :tag "Except" not) - (repeat :inline t (symbol :tag "command")))) - :version "25.1") + (repeat :inline t (symbol :tag "command"))))) -(defcustom xref-pulse-on-jump t - "When non-nil, momentarily highlight jump locations." - :type 'boolean - :version "25.1") +(defcustom xref-after-jump-hook '(recenter + xref-pulse-momentarily) + "Functions called after jumping to an xref." + :type 'hook) + +(defcustom xref-after-return-hook '(xref-pulse-momentarily) + "Functions called after returning to a pre-jump location." + :type 'hook) (defvar xref--marker-ring (make-ring xref-marker-ring-length) "Ring of markers to implement the marker stack.") @@ -301,19 +303,18 @@ elements is negated." (error "The marked buffer has been deleted"))) (goto-char (marker-position marker)) (set-marker marker nil nil) - (xref--maybe-pulse)))) - -(defun xref--maybe-pulse () - (when xref-pulse-on-jump - (let (beg end) - (save-excursion - (back-to-indentation) - (if (eolp) - (setq beg (line-beginning-position) - end (1+ (point))) - (setq beg (point) - end (line-end-position)))) - (pulse-momentary-highlight-region beg end 'next-error)))) + (run-hooks 'xref-after-return-hook)))) + +(defun xref-pulse-momentarily () + (let (beg end) + (save-excursion + (back-to-indentation) + (if (eolp) + (setq beg (line-beginning-position) + end (1+ (point))) + (setq beg (point) + end (line-end-position)))) + (pulse-momentary-highlight-region beg end 'next-error))) ;; etags.el needs this (defun xref-clear-marker-stack () @@ -349,7 +350,7 @@ WINDOW controls how the buffer is displayed: ((nil) (switch-to-buffer (current-buffer))) (window (pop-to-buffer (current-buffer) t)) (frame (let ((pop-up-frames t)) (pop-to-buffer (current-buffer) t)))) - (xref--maybe-pulse)) + (run-hooks 'xref-after-jump-hook)) ;;; XREF buffer (part of the UI) @@ -380,12 +381,11 @@ Used for temporary buffers.") (when (and restore (not (eq (car restore) 'same))) (push (cons buf win) xref--display-history)))) -(defun xref--display-position (pos other-window recenter-arg xref-buf) +(defun xref--display-position (pos other-window xref-buf) ;; Show the location, but don't hijack focus. (with-selected-window (display-buffer (current-buffer) other-window) (goto-char pos) - (recenter recenter-arg) - (xref--maybe-pulse) + (run-hooks 'xref-after-jump-hook) (let ((buf (current-buffer)) (win (selected-window))) (with-current-buffer xref-buf @@ -404,7 +404,7 @@ Used for temporary buffers.") (add-hook 'buffer-list-update-hook #'xref--mark-selected nil t) (with-current-buffer xref-buf (push buf xref--temporary-buffers)))) - (xref--display-position (point) t 1 xref-buf)) + (xref--display-position (point) t xref-buf)) (user-error (message (error-message-string err))))) (defun xref-show-location-at-point () commit a46d268d28d278a6940679fc0d77d037aa52836f Author: Glenn Morris Date: Sun Jul 19 06:23:59 2015 -0400 ; Auto-commit of ChangeLog files. diff --git a/ChangeLog.2 b/ChangeLog.2 index 3fd30d6..a23f1d2 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1,3 +1,251 @@ +2015-07-19 Bozhidar Batsov + + Correct js-mode's lighter + * lisp/progmodes/js.el (js-mode): Correct the lighter. + +2015-07-19 Leo Liu + + Fix a bug in cfengine3-mode + * progmodes/cfengine.el (cfengine3-mode): Handle nil + eldoc-documentation-function. + +2015-07-18 Julien Danjou + + sieve-mode: support "body" test command + * lisp/gnus/sieve-mode.el (sieve-font-lock-keywords): + Add missing "body" test command. + +2015-07-18 Eli Zaretskii + + Fix info-apropos when the default encoding is Latin-N + * lisp/info.el (Info-find-node-2): Reset the buffer's encoding to + 'undecided', so that it is set to the encoding of the Info file we + are about to insert. Otherwise, 'info-apropos' will fail to find + some index nodes in some UTF-8 encoded files, if the buffer's + previous encoding is Latin-N or some such. + +2015-07-18 Ivan Andrus + + * epg.el (epg--start): Check that gpgconf can be found before calling it. + + Expose more file types to OS X that Emacs understands. + * Cocoa/Emacs.base/Contents/Info.plist: Add editor role for sty, dtx, + json, and org files. Export UTIs for el, elc, and org files. + +2015-07-18 Eli Zaretskii + + Fix visual-order cursor movement when lines are truncated + * src/xdisp.c (Fmove_point_visually): When lines are truncated, + simulate display in a window of infinite width, to allow move_it_* + functions reach positions outside of normal window dimensions. + Remove code that tried to handle a subset of these situations by + manual iteration of buffer text. (Bug#17777) + + Fix following Info cross-references to anchors + * lisp/info.el (Info-read-subfile): Add to the returned value the + length of subfile preamble, after converting it to file's byte + offset, as expected by the caller. Use bufferpos-to-filepos. + (Info-find-node-2): If searching for a node with a + 1000-character slop fails, try again with a 10000-character slop, + to account for known bugs in Texinfo 5.0 and 5.1. (Bug#21055) + * lisp/international/mule-util.el (bufferpos-to-filepos): New + function. + * etc/NEWS: Mention bufferpos-to-filepos. + + Fix scrolling backwards on TTY frames under scroll-conservatively + * src/xdisp.c (move_it_vertically_backward): Fix off-by-one error + in moving backwards on TTY frames. (Bug#21080) + +2015-07-17 Dmitry Gutov + + Consider a jsdoc tag to be a beginning of a paragraph as well + * lisp/progmodes/js.el (js-mode): Change c-paragraph-start to + consider a jsdoc tag to be a beginning of a paragraph as well. + +2015-07-17 Artur Malabarba + + * lisp/emacs-lisp/package.el: Fix warnings + + * lisp/emacs-lisp/package.el (package-buffer-info): + Add author and maintainers to `package-buffer-info'. + + * lisp/emacs-lisp/package.el: Many small changes + Replace all instances of 'face with 'font-lock-face. + (describe-package-1): Improve some strings and move the summary up the + list. + (package-install-file): Update docstring. + (package-menu-hide-package): Bind to `H'. + + * lisp/emacs-lisp/package.el (package--with-work-buffer-async): + Fix error handling. + +2015-07-17 Paul Eggert + + Fix hang with large yanks This should fix the bug fixed by Mike + Crowe's patch in: + https://lists.gnu.org/archive/html/emacs-devel/2015-07/msg00106.html + A problem in this area has been reported by several users; see + Bug#16737, Bug#17101, Bug#17026, Bug#17172, Bug#19320, Bug#20283. + This fix differs from Mike Crowe's patch in that it should avoid a + race condition that could lose SIGIO signals. ignore_sigio dates + back to the 1980s when some platforms couldn't block signals, and + could only ignore them, which led to races when signals arrived + while being ignored. We shouldn't have to worry about those old + platforms now. + * src/dispextern.h, src/sysdep.c (ignore_sigio): Remove. + * src/emacs.c (shut_down_emacs): + Don't call ignore_sigio; unrequest_sigio should suffice. + * src/keyboard.c (kbd_buffer_store_buffered_event): + Use unrequest_sigio, not ignore_sigio. + (kbd_buffer_get_event): + Call request_sigio when getting the ball rolling again. + +2015-07-17 Artur Malabarba + + * lisp/obsolete/longlines.el (longlines-search-function): + Fallback on `isearch-search-fun-default'. + +2015-07-17 Tassilo Horn + + Support @-mentions + * rcirc.el (rcirc-completion-at-point): Support completion of + mentions/messages with @nick instead of just nick. + +2015-07-16 Michael Albinus + + Fix Bug#20943. + * lisp/autorevert.el (auto-revert-handler): Do not check for + `buffer-modified-p'. + * lisp/files.el (buffer-stale--default-function): Check for + `buffer-modified-p'. + * test/automated/auto-revert-tests.el + (auto-revert-test02-auto-revert-mode-dired): Adapt test. + +2015-07-16 Ari Roponen + + Fix delete-dups bug on long lists + * lisp/subr.el (delete-dups): + Don't mistakenly keep some dups when applied to long lists. + +2015-07-16 Paul Eggert + + Better heuristic for C stack overflow + Improve the heuristic for distinguishing stack overflows from + other SIGSEGV causes (Bug#21004). Corinna Vinschen explained that + the getrlimit method wasn't portable to Cygwin; see: + https://www.cygwin.com/ml/cygwin/2015-07/msg00092.html + Corinna suggested pthread_getattr_np but this also has problems. + Instead, replace the low-level system stuff with a simple + heuristic based on known good stack addresses. + * src/eval.c, src/lisp.h (near_C_stack_top): New function. + * src/sysdep.c: Don't include . + (stack_direction): Remove. All uses removed. + (stack_overflow): New function. + (handle_sigsegv): Use it instead of incorrect getrlimit heuristic. + Make SEGV fatal in non-main threads. + +2015-07-16 Daiki Ueno + + epg: Automatically start pinentry server + * epg-config.el (epg-gpgconf-program): New variable. + * epg.el (epg--start): Call `pinentry-start' if + allow-emacs-pinentry is set in ~/.gnupg/gpg-agent.conf. + +2015-07-15 Katsumi Yamaoka + + * lisp/gnus/nnimap.el: Fix my last bogus change + Reinstall Stefan Monnier's change that was made in + <83d824bc4041332f338ad7e5e830f443535aa300>. + +2015-07-15 Paul Eggert + + Merge from gnulib + This incorporates: + 2015-07-05 acl-permissions: Document FreeBSD ACL_TYPE_NFS4 acls + 2015-07-05 acl-permissions: Fix on FreeBSD + 2015-07-05 file-has-acl, acl-permissions: fix some more HP-UX typos + * lib/acl-internal.c, lib/acl-internal.h, lib/get-permissions.c: + * lib/set-permissions.c: Copy from gnulib. + + Port to stricter C99 + * src/keyboard.h (kbd_buffer_store_event_hold): + Don't return a void expression. + +2015-07-15 Xue Fuqiao + + * doc/emacs/frames.texi (Creating Frames): Fix the command `C-x 5 m' runs. + +2015-07-14 Michael Albinus + + New autorevert tests. + * test/automated/auto-revert-tests.el: New file. + +2015-07-14 Paul Eggert + + Clear gcprolist etc. after stack overflow + After stack overflow, command_loop calls init_eval, and this needs to + clear gcprolist and byte_stack_list (Bug#20996). + * src/alloc.c (init_alloc): + Move gcprolist and byte_stack_list initialization from here ... + * src/eval.c (init_eval): ... to here. + +2015-07-13 Xue Fuqiao + + * doc/emacs/windows.texi (Pop Up Window): Fix the description of `C-x 4 m'. + +2015-07-13 YAMAMOTO Mitsuharu + + Avoid deprecated enums in mac-ct font backend driver + * src/macfont.m (mac_font_copy_default_descriptors_for_language) + (mac_ctfont_get_advance_width_for_glyph) + (mac_ctfont_get_bounding_rect_for_glyph): Avoid deprecated enums. + + Cache font family in mac-ct font backend driver + * src/macfont.m (macfont_family_cache): New variable. + (syms_of_macfont): Initialize it. + (macfont_available_families_cache): New variable. + (macfont_invalidate_family_cache, macfont_get_family_cache_if_present) + (macfont_set_family_cache, macfont_invalidate_available_families_cache) + (macfont_handle_font_change_notification) + (macfont_init_font_change_handler) + (macfont_copy_available_families_cache): New functions. + (macfont_create_family_with_symbol): Use font family caches. + (macfont_list, macfont_list_family): Use + macfont_copy_available_families_cache instead of + mac_font_create_available_families. + +2015-07-12 Dmitry Gutov + + Show the default value in the prompt + * lisp/progmodes/xref.el: Add `M-?' binding for + xref-find-references. Declare functions `grep-read-files' and + `grep-expand-template'. + (xref--read-identifier): Show the default value in the prompt. + + When called with prefix argument, ask for file patterns to search as well + * lisp/progmodes/xref.el (xref-find-regexp): When called with + prefix argument, ask for file patterns to search as well. When + prompting for the directory, require an existing one. + (xref-collect-matches): Add a new argument, FILES. Use it in the + above function. + + Add `project-ignores' + * lisp/progmodes/project.el (project-ignores): New generic + function, and an implementation for the VC project type. + * lisp/progmodes/xref.el (xref--rgrep-command): Split, as a + variant of rgrep-default-command that handles a generic list of + ignores. + (xref-collect-matches): Use it, and pass through to it the value + of the newly added argument. + (xref-find-regexp): Handle ignored paths within the project. + Remove outdated comment. + * lisp/vc/vc.el (vc-default-ignore-completion-table): + Skip the comments and the empty lines. + +2015-07-12 Xue Fuqiao + + * doc/emacs/buffers.texi (Misc Buffer): Add a cross reference. + 2015-07-11 Eric Abrahamsen gnus-registry.el: Correct function argument order @@ -7693,7 +7941,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit 168c80efdc3981ffbc6ee731e7681b0386eb1db2 (inclusive). +commit 83fbe89537889219aebe1a36df73ca70e30948af (inclusive). See ChangeLog.1 for earlier changes. ;; Local Variables: