commit 802e6df70b588ae37ebebfffbdbd9d80ec3a9e60 (HEAD, refs/remotes/origin/master) Author: Paul Eggert Date: Sat Jan 30 20:17:56 2016 -0800 Spelling fixes diff --git a/admin/notes/bug-triage b/admin/notes/bug-triage index 7392fb9..648ada4 100644 --- a/admin/notes/bug-triage +++ b/admin/notes/bug-triage @@ -20,7 +20,7 @@ the ones that are not reproducible on the current release. reproducible. A bug can and should stay open as long as it is still a bug and no one has fixed it. The following is a suggested checklist to follow for handling these bugs, along with - example replies. The various closings, taggings, etc, are done + example replies. Closing, tagging, etc., are done with debbugs control messages, which in debbugs-gnu is initiated with a "C". [ ] Read the mail thread for the bug. Find out if anyone has diff --git a/src/fontset.c b/src/fontset.c index 2bc9bb1..0485f6b 100644 --- a/src/fontset.c +++ b/src/fontset.c @@ -498,7 +498,7 @@ fontset_get_font_group (Lisp_Object fontset, int c) font_group = make_number (0); if (c >= 0) /* Record that FONTSET does not specify fonts for C. As - there's a possiblity that a font is found in a fallback + there's a possibility that a font is found in a fallback font group, we set 0 at the moment. */ char_table_set_range (fontset, from, to, font_group); return font_group; @@ -541,7 +541,7 @@ fontset_get_font_group (Lisp_Object fontset, int c) If FALLBACK, search only fallback fonts. */ static Lisp_Object -fontset_find_font (Lisp_Object fontset, int c, struct face *face, +fontset_find_font (Lisp_Object fontset, int c, struct face *face, int charset_id, bool fallback) { Lisp_Object vec, font_group; @@ -585,7 +585,7 @@ fontset_find_font (Lisp_Object fontset, int c, struct face *face, } /* Find the first available font in the vector of RFONT-DEF. If - CHARSET_MATCHED > 0, try the correspoing RFONT-DEF first, then + CHARSET_MATCHED > 0, try the corresponding RFONT-DEF first, then try the rest. */ for (i = 0; i < ASIZE (vec); i++) { commit 113c9a95aef00f514749b1453ff6117103cc59d8 Author: Glenn Morris Date: Sat Jan 30 19:37:12 2016 -0800 * lisp/vc/add-log.el (find-change-log): Use locate-dominating-file. diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el index 45e8633..d1a1ba0 100644 --- a/lisp/vc/add-log.el +++ b/lisp/vc/add-log.el @@ -724,24 +724,18 @@ Optional arg BUFFER-FILE overrides `buffer-file-name'." ;; for several related directories. (setq file-name (file-chase-links file-name)) (setq file-name (expand-file-name file-name)) - ;; Move up in the dir hierarchy till we find a change log file. - (let ((file1 file-name) - parent-dir) - (while (and (not (or (get-file-buffer file1) (file-exists-p file1))) - (progn (setq parent-dir - (file-name-directory - (directory-file-name - (file-name-directory file1)))) - ;; Give up if we are already at the root dir. - (not (string= (file-name-directory file1) - parent-dir)))) - ;; Move up to the parent dir and try again. - (setq file1 (expand-file-name - (file-name-nondirectory (change-log-name)) - parent-dir))) - ;; If we found a change log in a parent, use that. - (if (or (get-file-buffer file1) (file-exists-p file1)) - (setq file-name file1))))) + (let* ((cbase (file-name-nondirectory (change-log-name))) + (root + ;; TODO stopping at VCS root dir (if present) is appropriate + ;; for Emacs these days (we used to have per-directory + ;; ChangeLogs), and probably most others too. + ;; But it could be optional behavior. + (locate-dominating-file + file-name + (lambda (dir) + (let ((clog (expand-file-name cbase dir))) + (or (get-file-buffer clog) (file-exists-p clog))))))) + (if root (setq file-name (expand-file-name cbase root)))))) ;; Make a local variable in this buffer so we needn't search again. (set (make-local-variable 'change-log-default-name) file-name)) file-name) commit 4699c325be1fa5daa258719a935f40b36664fcf2 Merge: 440a35f bdfee01 Author: Matthew Carter Date: Sat Jan 30 22:09:28 2016 -0500 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs commit 440a35f6b5770596981189ad65eaa5750b901908 Author: Matthew Carter Date: Sat Jan 30 22:03:57 2016 -0500 Quote table names for postgres listings (sql-mode) * lisp/progmodes/sql.el (sql-postgres-completion-object): Avoid passing unquoted table names to the completion list. diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el index 65e94ba..fd59f46 100644 --- a/lisp/progmodes/sql.el +++ b/lisp/progmodes/sql.el @@ -4948,8 +4948,8 @@ Try to set `comint-output-filter-functions' like this: ;; Return the list of table names (public schema name can be omitted) (mapcar #'(lambda (tbl) (if (string= (car tbl) "public") - (cadr tbl) - (format "%s.%s" (car tbl) (cadr tbl)))) + (format "\"%s\"" (cadr tbl)) + (format "\"%s\".\"%s\"" (car tbl) (cadr tbl)))) cl)))) commit bdfee01a6567b9f08f82bc84d1196e6cb62587ca Author: Glenn Morris Date: Sat Jan 30 19:01:57 2016 -0800 Change Smerge "Mine" and "Other" for "Upper" and "Lower. (Bug#20878) * lisp/vc/smerge-mode.el (smerge-diff-switches) (smerge-context-menu, smerge-match-conflict, smerge-swap): Doc fixes. (smerge-upper, smerge-upper-face, smerge-keep-upper) (smerge-diff-base-upper): Rename from smerge-mine, smerge-mine-face, smerge-keep-mine, smerge-diff-base-mine. Update all uses. (smerge-mine-face, smerge-other-face): Remove obsolete face aliases. (smerge-lower, smerge-lower-face, smerge-lower-re, smerge-keep-lower) (smerge-diff-base-lower): Rename from smerge-other, smerge-other-face, smerge-other-re, smerge-keep-other, smerge-diff-base-lower. Update all uses. (smerge-basic-map): Add "l" and "u" bindings. (smerge-mode-menu): Update menu bindings for renaming. (smerge-font-lock-keywords): Update face names. (smerge-match-names): Update names. (smerge-diff-upper-lower): Rename from smerge-diff-mine-other. (smerge-match-conflict, smerge-ediff): Rename local variables. (smerge-makeup-conflict): Relabel markers. (smerge-parsep-re): Use renamed variables. diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el index 489ece8..5198624 100644 --- a/lisp/vc/smerge-mode.el +++ b/lisp/vc/smerge-mode.el @@ -67,34 +67,34 @@ (append '("-d" "-b") (if (listp diff-switches) diff-switches (list diff-switches))) "A list of strings specifying switches to be passed to diff. -Used in `smerge-diff-base-mine' and related functions." +Used in `smerge-diff-base-upper' and related functions." :type '(repeat string)) (defcustom smerge-auto-leave t "Non-nil means to leave `smerge-mode' when the last conflict is resolved." :type 'boolean) -(defface smerge-mine +(defface smerge-upper '((((class color) (min-colors 88) (background light)) :background "#ffdddd") (((class color) (min-colors 88) (background dark)) :background "#553333") (((class color)) :foreground "red")) - "Face for your code.") -(define-obsolete-face-alias 'smerge-mine-face 'smerge-mine "22.1") -(defvar smerge-mine-face 'smerge-mine) + "Face for the `upper' version of a conflict.") +(define-obsolete-face-alias 'smerge-mine 'smerge-upper "25.2") +(defvar smerge-upper-face 'smerge-upper) -(defface smerge-other +(defface smerge-lower '((((class color) (min-colors 88) (background light)) :background "#ddffdd") (((class color) (min-colors 88) (background dark)) :background "#335533") (((class color)) :foreground "green")) - "Face for the other code.") -(define-obsolete-face-alias 'smerge-other-face 'smerge-other "22.1") -(defvar smerge-other-face 'smerge-other) + "Face for the `lower' version of a conflict.") +(define-obsolete-face-alias 'smerge-other 'smerge-lower "25.2") +(defvar smerge-lower-face 'smerge-lower) (defface smerge-base '((((class color) (min-colors 88) (background light)) @@ -149,16 +149,18 @@ Used in `smerge-diff-base-mine' and related functions." ("r" . smerge-resolve) ("a" . smerge-keep-all) ("b" . smerge-keep-base) - ("o" . smerge-keep-other) - ("m" . smerge-keep-mine) + ("o" . smerge-keep-lower) ; for the obsolete keep-other + ("l" . smerge-keep-lower) + ("m" . smerge-keep-upper) ; for the obsolete keep-mine + ("u" . smerge-keep-upper) ("E" . smerge-ediff) ("C" . smerge-combine-with-next) ("R" . smerge-refine) ("\C-m" . smerge-keep-current) ("=" . ,(make-sparse-keymap "Diff")) - ("=<" "base-mine" . smerge-diff-base-mine) - ("=>" "base-other" . smerge-diff-base-other) - ("==" "mine-other" . smerge-diff-mine-other)) + ("=<" "base-upper" . smerge-diff-base-upper) + ("=>" "base-lower" . smerge-diff-base-lower) + ("==" "upper-lower" . smerge-diff-upper-lower)) "The base keymap for `smerge-mode'.") (defcustom smerge-command-prefix "\C-c^" @@ -196,19 +198,19 @@ Used in `smerge-diff-base-mine' and related functions." "--" ["Revert to Base" smerge-keep-base :help "Revert to base version" :active (smerge-check 2)] - ["Keep Other" smerge-keep-other :help "Keep `other' version" - :active (smerge-check 3)] - ["Keep Yours" smerge-keep-mine :help "Keep your version" + ["Keep Upper" smerge-keep-upper :help "Keep `upper' version" :active (smerge-check 1)] + ["Keep Lower" smerge-keep-lower :help "Keep `lower' version" + :active (smerge-check 3)] "--" - ["Diff Base/Mine" smerge-diff-base-mine - :help "Diff `base' and `mine' for current conflict" + ["Diff Base/Upper" smerge-diff-base-upper + :help "Diff `base' and `upper' for current conflict" :active (smerge-check 2)] - ["Diff Base/Other" smerge-diff-base-other - :help "Diff `base' and `other' for current conflict" + ["Diff Base/Lower" smerge-diff-base-lower + :help "Diff `base' and `lower' for current conflict" :active (smerge-check 2)] - ["Diff Mine/Other" smerge-diff-mine-other - :help "Diff `mine' and `other' for current conflict" + ["Diff Upper/Lower" smerge-diff-upper-lower + :help "Diff `upper' and `lower' for current conflict" :active (smerge-check 1)] "--" ["Invoke Ediff" smerge-ediff @@ -223,7 +225,7 @@ Used in `smerge-diff-base-mine' and related functions." )) (easy-menu-define smerge-context-menu nil - "Context menu for mine area in `smerge-mode'." + "Context menu for upper area in `smerge-mode'." '(nil ["Keep Current" smerge-keep-current :help "Use current (at point) version"] ["Kill Current" smerge-kill-current :help "Remove current (at point) version"] @@ -234,9 +236,9 @@ Used in `smerge-diff-base-mine' and related functions." (defconst smerge-font-lock-keywords '((smerge-find-conflict - (1 smerge-mine-face prepend t) + (1 smerge-upper-face prepend t) (2 smerge-base-face prepend t) - (3 smerge-other-face prepend t) + (3 smerge-lower-face prepend t) ;; FIXME: `keep' doesn't work right with syntactic fontification. (0 smerge-markers-face keep) (4 nil t t) @@ -246,7 +248,7 @@ Used in `smerge-diff-base-mine' and related functions." (defconst smerge-begin-re "^<<<<<<< \\(.*\\)\n") (defconst smerge-end-re "^>>>>>>> \\(.*\\)\n") (defconst smerge-base-re "^||||||| \\(.*\\)\n") -(defconst smerge-other-re "^=======\n") +(defconst smerge-lower-re "^=======\n") (defvar smerge-conflict-style nil "Keep track of which style of conflict is in use. @@ -267,7 +269,7 @@ Can be nil if the style is undecided, or else: (if diff-auto-refine-mode (condition-case nil (smerge-refine) (error nil)))) -(defconst smerge-match-names ["conflict" "mine" "base" "other"]) +(defconst smerge-match-names ["conflict" "upper" "base" "lower"]) (defun smerge-ensure-match (n) (unless (match-end n) @@ -570,7 +572,7 @@ major modes. Uses `smerge-resolve-function' to do the actual work." (zerop (call-process diff-command nil buf nil "-bc" b m))) (set-match-data md) (smerge-keep-n 3)) - ;; Try "diff -b BASE MINE | patch OTHER". + ;; Try "diff -b BASE UPPER | patch LOWER". ((when (and (not safe) m2e b ;; If the BASE is empty, this would just concatenate ;; the two, which is rarely right. @@ -585,7 +587,7 @@ major modes. Uses `smerge-resolve-function' to do the actual work." (narrow-to-region m0b m0e) (smerge-remove-props m0b m0e) (insert-file-contents o nil nil nil t))) - ;; Try "diff -b BASE OTHER | patch MINE". + ;; Try "diff -b BASE LOWER | patch UPPER". ((when (and (not safe) m2e b ;; If the BASE is empty, this would just concatenate ;; the two, which is rarely right. @@ -685,22 +687,40 @@ major modes. Uses `smerge-resolve-function' to do the actual work." (smerge-keep-n 2) (smerge-auto-leave)) -(defun smerge-keep-other () - "Use \"other\" version." +(defun smerge-keep-lower () + "Keep the \"lower\" version of a merge conflict. +In a conflict that looks like: + <<<<<<< + UUU + ======= + LLL + >>>>>>> +this keeps \"LLL\"." (interactive) (smerge-match-conflict) ;;(smerge-ensure-match 3) (smerge-keep-n 3) (smerge-auto-leave)) -(defun smerge-keep-mine () - "Keep your version." +(define-obsolete-function-alias 'smerge-keep-other 'smerge-keep-lower "25.2") + +(defun smerge-keep-upper () + "Keep the \"upper\" version of a merge conflict. +In a conflict that looks like: + <<<<<<< + UUU + ======= + LLL + >>>>>>> +this keeps \"UUU\"." (interactive) (smerge-match-conflict) ;;(smerge-ensure-match 1) (smerge-keep-n 1) (smerge-auto-leave)) +(define-obsolete-function-alias 'smerge-keep-mine 'smerge-keep-upper "25.2") + (defun smerge-get-current () (let ((i 3)) (while (or (not (match-end i)) @@ -734,28 +754,37 @@ major modes. Uses `smerge-resolve-function' to do the actual work." (smerge-keep-n (car left)) (smerge-auto-leave)))))) -(defun smerge-diff-base-mine () - "Diff `base' and `mine' version in current conflict region." +(defun smerge-diff-base-upper () + "Diff `base' and `upper' version in current conflict region." (interactive) (smerge-diff 2 1)) -(defun smerge-diff-base-other () - "Diff `base' and `other' version in current conflict region." +(define-obsolete-function-alias 'smerge-diff-base-mine + 'smerge-diff-base-upper "25.2") + +(defun smerge-diff-base-lower () + "Diff `base' and `lower' version in current conflict region." (interactive) (smerge-diff 2 3)) -(defun smerge-diff-mine-other () - "Diff `mine' and `other' version in current conflict region." +(define-obsolete-function-alias 'smerge-diff-base-other + 'smerge-diff-base-lower "25.2") + +(defun smerge-diff-upper-lower () + "Diff `upper' and `lower' version in current conflict region." (interactive) (smerge-diff 1 3)) +(define-obsolete-function-alias 'smerge-diff-mine-other + 'smerge-diff-upper-lower "25.2") + (defun smerge-match-conflict () "Get info about the conflict. Puts the info in the `match-data'. The submatches contain: 0: the whole conflict. - 1: your code. - 2: the base code. - 3: other code. + 1: upper version of the code. + 2: base version of the code. + 3: lower version of the code. An error is raised if not inside a conflict." (save-excursion (condition-case nil @@ -765,26 +794,26 @@ An error is raised if not inside a conflict." (_ (re-search-backward smerge-begin-re)) (start (match-beginning 0)) - (mine-start (match-end 0)) + (upper-start (match-end 0)) (filename (or (match-string 1) "")) (_ (re-search-forward smerge-end-re)) (_ (cl-assert (< orig-point (match-end 0)))) - (other-end (match-beginning 0)) + (lower-end (match-beginning 0)) (end (match-end 0)) - (_ (re-search-backward smerge-other-re start)) + (_ (re-search-backward smerge-lower-re start)) - (mine-end (match-beginning 0)) - (other-start (match-end 0)) + (upper-end (match-beginning 0)) + (lower-start (match-end 0)) base-start base-end) ;; handle the various conflict styles (cond ((save-excursion - (goto-char mine-start) + (goto-char upper-start) (re-search-forward smerge-begin-re end t)) ;; There's a nested conflict and we're after the beginning ;; of the outer one but before the beginning of the inner one. @@ -797,8 +826,8 @@ An error is raised if not inside a conflict." ((re-search-backward smerge-base-re start t) ;; a 3-parts conflict (set (make-local-variable 'smerge-conflict-style) 'diff3-A) - (setq base-end mine-end) - (setq mine-end (match-beginning 0)) + (setq base-end upper-end) + (setq upper-end (match-beginning 0)) (setq base-start (match-end 0))) ((string= filename (file-name-nondirectory @@ -811,17 +840,17 @@ An error is raised if not inside a conflict." (equal filename "ANCESTOR") (string-match "\\`[.0-9]+\\'" filename))) ;; a same-diff conflict - (setq base-start mine-start) - (setq base-end mine-end) - (setq mine-start other-start) - (setq mine-end other-end))) + (setq base-start upper-start) + (setq base-end upper-end) + (setq upper-start lower-start) + (setq upper-end lower-end))) (store-match-data (list start end - mine-start mine-end + upper-start upper-end base-start base-end - other-start other-end + lower-start lower-end (when base-start (1- base-start)) base-start - (1- other-start) other-start)) + (1- lower-start) lower-start)) t) (search-failed (user-error "Point not in conflict region"))))) @@ -1133,10 +1162,10 @@ repeating the command will highlight other two parts." '((smerge . refine) (face . smerge-refined-added)))))) (defun smerge-swap () - "Swap the \"Mine\" and the \"Other\" chunks. + "Swap the \"Upper\" and the \"Lower\" chunks. Can be used before things like `smerge-keep-all' or `smerge-resolve' where the ordering can have some subtle influence on the result, such as preferring the -spacing of the \"Other\" chunk." +spacing of the \"Lower\" chunk." (interactive) (smerge-match-conflict) (goto-char (match-beginning 3)) @@ -1205,9 +1234,9 @@ spacing of the \"Other\" chunk." default))) ;;;###autoload -(defun smerge-ediff (&optional name-mine name-other name-base) +(defun smerge-ediff (&optional name-upper name-lower name-base) "Invoke ediff to resolve the conflicts. -NAME-MINE, NAME-OTHER, and NAME-BASE, if non-nil, are used for the +NAME-UPPER, NAME-LOWER, and NAME-BASE, if non-nil, are used for the buffer names." (interactive) (let* ((buf (current-buffer)) @@ -1215,18 +1244,18 @@ buffer names." ;;(ediff-default-variant 'default-B) (config (current-window-configuration)) (filename (file-name-nondirectory (or buffer-file-name "-"))) - (mine (generate-new-buffer - (or name-mine + (upper (generate-new-buffer + (or name-upper (concat "*" filename " " - (smerge--get-marker smerge-begin-re "MINE") + (smerge--get-marker smerge-begin-re "UPPER") "*")))) - (other (generate-new-buffer - (or name-other + (lower (generate-new-buffer + (or name-lower (concat "*" filename " " - (smerge--get-marker smerge-end-re "OTHER") + (smerge--get-marker smerge-end-re "LOWER") "*")))) base) - (with-current-buffer mine + (with-current-buffer upper (buffer-disable-undo) (insert-buffer-substring buf) (goto-char (point-min)) @@ -1237,7 +1266,7 @@ buffer names." (set-buffer-modified-p nil) (funcall mode)) - (with-current-buffer other + (with-current-buffer lower (buffer-disable-undo) (insert-buffer-substring buf) (goto-char (point-min)) @@ -1269,9 +1298,9 @@ buffer names." ;; Fire up ediff. (set-buffer (if base - (ediff-merge-buffers-with-ancestor mine other base) + (ediff-merge-buffers-with-ancestor upper lower base) ;; nil 'ediff-merge-revisions-with-ancestor buffer-file-name) - (ediff-merge-buffers mine other))) + (ediff-merge-buffers upper lower))) ;; nil 'ediff-merge-revisions buffer-file-name))) ;; Ediff is now set up, and we are in the control buffer. @@ -1313,21 +1342,21 @@ with a \\[universal-argument] prefix, makes up a 3-way conflict." (pcase-let ((`(,pt1 ,pt2 ,pt3 ,pt4) (sort `(,pt1 ,pt2 ,pt3 ,@(if pt4 (list pt4))) '>=))) (goto-char pt1) (beginning-of-line) - (insert ">>>>>>> OTHER\n") + (insert ">>>>>>> LOWER\n") (goto-char pt2) (beginning-of-line) (insert "=======\n") (goto-char pt3) (beginning-of-line) (when pt4 (insert "||||||| BASE\n") (goto-char pt4) (beginning-of-line)) - (insert "<<<<<<< MINE\n")) + (insert "<<<<<<< UPPER\n")) (if smerge-mode nil (smerge-mode 1)) (smerge-refine)) (defconst smerge-parsep-re (concat smerge-begin-re "\\|" smerge-end-re "\\|" - smerge-base-re "\\|" smerge-other-re "\\|")) + smerge-base-re "\\|" smerge-lower-re "\\|")) ;;;###autoload (define-minor-mode smerge-mode commit 72e3713dc10dfacaabb23bbc905e7a45e0960307 Author: Paul Eggert Date: Sat Jan 30 18:59:49 2016 -0800 Port recent my_edata change to MS-Windows * src/lastfile.c (my_edata): Also define if WINDOWSNT. diff --git a/src/lastfile.c b/src/lastfile.c index 9c73fb4..de4e4f4 100644 --- a/src/lastfile.c +++ b/src/lastfile.c @@ -38,8 +38,8 @@ along with GNU Emacs. If not, see . */ #include "lisp.h" -#if ((!defined SYSTEM_MALLOC && !defined HYBRID_MALLOC && !defined WINDOWSNT) \ - || defined CYGWIN || defined DARWIN_OS) +#if ((!defined SYSTEM_MALLOC && !defined HYBRID_MALLOC) \ + || defined WINDOWSNT || defined CYGWIN || defined DARWIN_OS) char my_edata[] = "End of Emacs initialized data"; #endif commit 692e410470250ea3c1feafaad077ff0758c01ec3 Author: Paul Eggert Date: Sat Jan 30 15:19:16 2016 -0800 Tell Automake the new lib/Makefile.am is OK * lib/Makefile.am (AUTOMAKE_OPTIONS): Add -Wno-portability. diff --git a/lib/Makefile.am b/lib/Makefile.am index 74bab4e..316c637 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -15,6 +15,9 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . +# GNU Emacs assumes GNU Make. +AUTOMAKE_OPTIONS = -Wno-portability + BUILT_SOURCES = CLEANFILES = EXTRA_DIST = commit 370a26021882832e8fc5b836617ba3cc435a2093 Author: Paul Eggert Date: Sat Jan 30 15:18:00 2016 -0800 Make it easy to override preferred-branch test * Makefile.in (preferred-branch-is-current): Rename from emacs-25-branch-is-current. All uses changed. (PREFERRED_BRANCH): New macro. diff --git a/Makefile.in b/Makefile.in index 7b8328c..31a073b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1092,7 +1092,7 @@ bootstrap: bootstrap-clean $(MAKE) all .PHONY: ChangeLog change-history change-history-commit change-history-nocommit -.PHONY: emacs-25-branch-is-current unchanged-history-files +.PHONY: preferred-branch-is-current unchanged-history-files CHANGELOG = ChangeLog emacslog = build-aux/gitlog-to-emacslog @@ -1109,8 +1109,9 @@ ChangeLog: ./$(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX) # Check that we are in a good state for changing history. -emacs-25-branch-is-current: - git branch | grep -q '^\* emacs-25$$' +PREFERRED_BRANCH = master +preferred-branch-is-current: + git branch | grep -q '^\* $(PREFERRED_BRANCH)$$' unchanged-history-files: x=$$(git diff-files --name-only $(CHANGELOG_N) $(emacslog)) && \ test -z "$$x" @@ -1120,7 +1121,7 @@ new_commit_regexp = ^commit [0123456789abcdef]* (inclusive) # Copy newer commit messages to the start of the ChangeLog history file, # and consider them to be older. -change-history-nocommit: emacs-25-branch-is-current unchanged-history-files +change-history-nocommit: preferred-branch-is-current unchanged-history-files -rm -f ChangeLog.tmp $(MAKE) ChangeLog CHANGELOG=ChangeLog.tmp sed '/^This file records repository revisions/,$$d' \ commit ffbf163ab5ced1bc464a0034e6abc9a41f5e09c4 Author: Paul Eggert Date: Sat Jan 30 14:45:53 2016 -0800 ; Try to clean up ChangeLog.2 mess created by merge. diff --git a/ChangeLog.2 b/ChangeLog.2 index 877a697..c5cba03 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1,428 +1,349 @@ -2016-01-30 Nicolas Petton +2016-01-30 Paul Eggert - Bump version to 25.0.90 + Shrink static heap a bit - * README: - * configure.ac: - * msdos/sed2v2.inp: Bump version to 25.0.90. + * src/sheap.h: Include lisp.h, for Lisp_Object. + (STATIC_HEAP_SIZE): Now an enum constant, not a macro. + Make it 2 MiB * sizeof (Lisp_Object), which is a bit more + conservative than the old value. + (Bug#22086) -2016-01-30 Nicolas Petton +2016-01-30 Paul Eggert - * etc/AUTHORS: Update the AUTHORS file + Fix extern symbols defined and not used -2016-01-30 Nicolas Petton + * src/alloc.c: Always include . + (malloc_warning) [!SIGDANGER && (SYSTEM_MALLOC || HYBRID_MALLOC)]: + Do not define; unused. + * src/emacs.c, src/lisp.h (might_dump) [!DOUG_LEA_MALLOC]: Now static. + * src/gmalloc.c (gdefault_morecore): Rename from __default_morecore, + to avoid collision with glibc. Now static. All uses changed. + * src/lastfile.c (my_edata): Define only if + ((!defined SYSTEM_MALLOC && !defined HYBRID_MALLOC && !defined + WINDOWSNT) \ || defined CYGWIN || defined DARWIN_OS). + (Bug#22086) - authors.el updates +2016-01-30 Paul Eggert - * admin/authors.el (authors-renamed-files-alist): Additions. + Build lib/e-*.o only on platforms that need it + + * configure.ac (hybrid malloc): Simplify configuration. + (SHEAP_OBJ): Remove; no longer needed. + (HYBRID_MALLOC): New var. Subst it. + (HYBRID_MALLOC_LIB): New Automake conditional. + * lib/Makefile.am (noinst_LIBRARIES): Add libegnu.a only if + HYBRID_MALLOC_LIB. + (libegnu_a_CPPFLAGS): Omit AM_CPPFLAGS; not needed. + (MOSTLYCLEANFILES): Add libegnu.a. + * src/Makefile.in (SHEAP_OBJ): Remove. + (HYBRID_MALLOC): New macro. + (base_obj): Use it to conditionally add sheap.o. + (LIBEGNU_ARCHIVE): New macro. + ($(LIBEGNU_ARCHIVE)): New rule, replacing $(lib)/libegnu.a. + All uses of the latter replaced by the former. + * src/alloc.c (USE_ALIGNED_ALLOC): Simplify configuration. + Correct misspelling ALIGNED_ALLOC to HAVE_ALIGNED_ALLOC. + * src/gmalloc.c: Update comment. + * src/lisp.h (aligned_alloc) + [!DOUG_LEA_MALLOC && !HYBRID_MALLOC && !SYSTEM_MALLOC]: + New decl. + (Bug#22086) -2016-01-30 Nicolas Petton +2016-01-30 Paul Eggert - Make it possible to run make change-history on emacs-25 + Include when advisable + + This should help insulate us better from future glibc changes. + It is good hygiene to include .h files for APIs that Emacs uses. + Fix type clashes between Emacs and GNU (Bug#22086). + * configure.ac: Check for malloc.h. + * src/alloc.c: Include depending on HAVE_MALLOC_H, + not on DOUG_LEA_MALLOC. + * src/emacs.c, src/gmalloc.c (malloc_enable_thread): + Remove decl (now in lisp.h). + * src/gmalloc.c: Include stddef.h earlier, for ptrdiff_t. + [emacs]: Include lisp.h. + [HAVE_MALLOC_H]: Include . + (__MALLOC_HOOK_VOLATILE): New macro, if not already defined. + (__after_morecore_hook, __malloc_initialize_hook, __morecore) + (__default_morecore): + [!HAVE_MALLOC_H]: New decls near non-inclusion of . + (calloc): Make it clear that the macro should not be used. + Remove unused decl. + (malloc_info): New macro, to avoid clash with glibc . + (__morecore, __default_morecore, __after_morecore_hook) + (__malloc_extra_blocks, __malloc_initialize_hook, __free_hook) + (__malloc_hook, __realloc_hook, __memalign_hook, memory_warnings): + Remove later decls. + (gmalloc_hook, gfree_hook, grealloc_hook): + Rename from __malloc_hook, __free_hook, __realloc_hook to + avoid type collision with glibc . All uses changed. + (gmalloc_hook): + (__malloc_extra_blocks) [DOUG_LEA_MALLOC||HYBRID_MALLOC||SYSTEM_MALLOC]: + Now static. + (gmalloc_hook, __malloc_extra_blocks): Define even if [!HYBRID_MALLOC]. + (__malloc_initialize_hook, __after_morecore_hook): + Declare with types compatible with glibc. + (__memalign_hook, hybrid_calloc) [HYBRID_MALLOC]: + Remove. All uses removed. + * src/lisp.h (__malloc_extra_blocks, malloc_enable_thread): New decls. + * src/ralloc.c, src/vm-limit.c: + Simplify includes and include if available. - * Makefile.in: Check if the current branch is emacs-25 instead of - master. +2016-01-30 Paul Eggert -2016-01-30 lu4nx + * src/alloc.c: Include "sheap.h". - Support Go language in 'etags' + (alloc_unexec_pre, alloc_unexec_post) [HYBRID_MALLOC]: + Set and clear bss_sbrk_did_unexec, on all platforms not just Cygwin. + * src/lisp.h (alloc_unexec_pre, alloc_unexec_post) [!DOUG_LEA_MALLOC]: + Declare unconditionally. + * src/unexcw.c, src/unexelf.c (bss_sbrk_did_unexec): Remove decl. + (unexec): Don’t set or clear bss_sbrk_did_unexec; + the caller now does this. + (Bug#22086) - * lib-src/etags.c : Fix documentation of Ruby tags. - : New help. - : New variable. - (Go_functions): New function. - : Add entry for Go. (Bug#22370) +2016-01-30 Paul Eggert - * doc/emacs/maintaining.texi (Tag Syntax): Document Go support. - * doc/man/etags.1: Mention Go support. + Pacify --enable-gcc-warnings when HYBRID_MALLOC - * etc/NEWS: Mention Go support. + * src/buffer.c (init_buffer): + * src/emacs.c (main): + * src/xsmfns.c (smc_save_yourself_CB, x_session_initialize): + Use emacs_get_current_dir_name, not get_current_dir_name. + * src/conf_post.h (aligned_alloc) [HYBRID_MALLOC && emacs]: New macro. + (HYBRID_GET_CURRENT_DIR_NAME, get_current_dir_name): Remove. + * src/emacs.c: Include "sheap.h". + (report_sheap_usage): Remove decl. + (Fdump_emacs) [HYBRID_MALLOC]: Report usage directly. + Don't assume ptrdiff_t can be printed as int. + * src/gmalloc.c [HYBRID_MALLOC]: + Include "sheap.h" rather than declaring its contents by hand. + (get_current_dir_name, gget_current_dir_name) + (hybrid_get_current_dir_name): Remove. + (emacs_abort): Remove duplicate decl. + (aligned_alloc): Undef, like malloc etc. + (ALLOCATED_BEFORE_DUMPING): Now a static function, not a macro. + Make it a bit more efficient. + (malloc_find_object_address): Remove unused decl. + (enum mcheck_status, mcheck, mprobe, mtrace, muntrace, struct mstats) + (mstats, memory_warnings): Declare only if GC_MCHECK. + * src/lisp.h (emacs_get_current_dir_name): + New decl, replacing get_current_dir_name. + * src/sheap.c: Include sheap.h first. + (STATIC_HEAP_SIZE): Remove; now in sheap.h. + (debug_sheap): Now static. + (bss_sbrk_buffer_end): Remove; no longer used. + (bss_sbrk_ptr): Now static and private. + (bss_sbrk_did_unexec): Now bool. + (BLOCKSIZE): Remove, to avoid GCC warning about its not being used. + (bss_sbrk): Don't treat request_size 0 as special, since the code + works without this being a special case. + Avoid overflow if request size exceeds INT_MAX. + (report_sheap_usage): Remove; now done in emacs.c. + * src/sheap.h: New file. + * src/sysdep.c (get_current_dir_name): Remove macro. + Include "sheap.h". + (emacs_get_current_dir_name): Rename function from + get_current_dir_name. Handle HYBRID_MALLOC here; + this is simpler. + (Bug#22086) - * test/etags/go-src/test.go: - * test/etags/go-src/test1.go: New test files. - * test/etags/Makefile (GOSRC): New variable. - (SRCS): Add $(GOSRC). - * test/etags/ETAGS.good_1: - * test/etags/ETAGS.good_2: - * test/etags/ETAGS.good_3: - * test/etags/ETAGS.good_4: - * test/etags/ETAGS.good_5: - * test/etags/ETAGS.good_6: - * test/etags/CTAGS.good: Adapt to addition of Go tests. +2016-01-30 Paul Eggert -2016-01-30 Eli Zaretskii + Report static heap usage on non-Cygwin, too - Improve Ruby support in 'etags' + * src/emacs.c (Fdump_emacs) [HYBRID_MALLOC]: Report sheap usage here ... + * src/unexcw.c (unexec): ... instead of here, since sheap can be used + on platforms other than Cygwin (Bug#22086). - * lib-src/etags.c (Ruby_functions): Tag constants. Don't tag - singleton classes. Remove class qualifiers from tags generated - for method and constant names. (Bug#22241) +2016-01-30 Paul Eggert - * doc/emacs/maintaining.texi (Tag Syntax): Mention that constants - are tagged by etags in Ruby. + Pacify GCC on extern decls - * etc/NEWS: Mention that constants are tagged by etags in Ruby. + * src/unexelf.c (bss_sbrk_did_unexec): Move decl to top level + to pacify recent GCC (Bug#22086). - * test/etags/ruby-src/test1.ruby: Add more tests. - * test/etags/ETAGS.good_1: - * test/etags/ETAGS.good_2: - * test/etags/ETAGS.good_3: - * test/etags/ETAGS.good_4: - * test/etags/ETAGS.good_5: - * test/etags/ETAGS.good_6: - * test/etags/CTAGS.good: Adapt to the changes in etags and in Ruby - tests. +2016-01-30 Wolfgang Jenkner -2016-01-30 Eli Zaretskii + Add musl patch to support HYBRID_MALLOC on elf systems - Adjust etags test results to changes in copyright years + * src/gmalloc.c: Adjust for HYBRID_MALLOC in the non CYGWIN case. + (__default_morecore): Here, in particular. + * configure.ac: Define HYBRID_MALLOC when unexelf.o is used. + New variable SHEAP_OBJ. + * src/Makefile.in: Use it. + (Bug#22086) - * test/etags/CTAGS.good: - * test/etags/ETAGS.good_1: - * test/etags/ETAGS.good_2: - * test/etags/ETAGS.good_3: - * test/etags/ETAGS.good_4: - * test/etags/ETAGS.good_5: - * test/etags/ETAGS.good_6: Adjust to shift in characters and - in line numbers. +2016-01-30 Rich Felker (tiny change) -2016-01-30 Andreas Schwab + unexelf.c hook to support HYBRID_MALLOC on ELF - Revert "Re-enable checks in member, memql, delete to complain about non-lists" + * src/unexelf.c (unexec) [HYBRID_MALLOC]: + Define bss_sbrk_did_unexec (Bug#22086). - This reverts commit f524e8b7f12d9b5a8b92084e5385429fe7b085b9. +2016-01-30 Wolfgang Jenkner -2016-01-30 Nicolas Petton + Link temacs with gnulib compiled with -Demacs - Make it possible to run make change-history on emacs-25 + This is done to support HYBRID_MALLOC, since some static variables + (e.g., last_environ in putenv.c) hold pointers to memory malloced + before dumping (Bug#22086). + * lib/Makefile.am: Add incantation to install libegnu.a. + * src/Makefile.in ($(lib)/libgnu.a): Replace with libegnu.a + (temacs$(EXEEXT)): Use it. - * Makefile.in: Check if the current branch is emacs-25 instead of - master. +2016-01-30 Wolfgang Jenkner -2016-01-30 Dmitry Gutov + Internal linkage for gmalloc etc. if HYBRID_MALLOC - Don't fiddle with DEFAULT + This avoids clashes with symbols if the after-dump malloc is + derived from Doug Lea's implementation (Bug#22086). - * lisp/progmodes/project.el (project--completing-read-strict): - Don't change DEFAULT, whether is has any matches in - COLLECTION, or not. + * src/gmalloc.c (emacs_abort, __morecore, __default_morecore): + Move declarations up. For HYBRID_MALLOC, turn all `extern' + declarations below to `static' ones. + (aligned_alloc): Declare for !MSDOS as well. + (heapsize, _fraghead): Move resp. copy declaration downwards. + For HYBRID_MALLOC, conditionalize out the other definitions, + since the previous `static' declarations double as tentative + definitions, anyway. + (_malloc, _free, _realloc, __free_hook, _aligned_blocks) + (__realloc_hook, __memalign_hook): Conditionalize out. + (cfree, memalign, valloc): Ditto. -2016-01-30 Eli Zaretskii +2016-01-30 Paul Eggert - Document xwidget commands and functions + Merge from origin/emacs-25 - * doc/lispref/display.texi (Xwidgets): New section, describes some - of the xwidget primitives. - * doc/lispref/display.texi (Display): Update the chapter menu. - * doc/emacs/misc.texi (Embedded WebKit Widgets): New section. - * doc/emacs/emacs.texi (Top): Update the master menu to include - the xwidget node. + 3f481ad Rename xref-query-replace to xref-query-replace-in-results + 62f4ed4 Update cl-defgeneric and cl-defmethod docstrings + 2111e0e Comment out next-error-function integration in xref + 4e11ad3 Correct a use of "which" in intro.texi + a1865bc Distinguish the two meanings of Java's keyword "default". Fixes bug #22358. + 76045f7 Don't operate on menu bar of nonexistent frame + c32f3bc Unbreak the GNUstep build. -2016-01-30 Lars Ingebrigtsen +2016-01-30 Andreas Schwab - Build fix for shr.el + Re-enable checks in member, memql, delete to complain about non-lists - * shr.el (seq): Require. + * fns.c (Fmember, Fmemql, Fdelete): Revert 2007-10-16 change. -2016-01-30 Dmitry Gutov +2016-01-28 Glenn Morris - Improve project-find-file yet again! + Remove some useless-use-of eval. - * lisp/progmodes/project.el (project--completing-read-strict): - New function. - (project-find-file-in): Use it. - (project-file-completion-table): Move the default - implementation inside the cl-defgeneric form. - (http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01720.html) + * lisp/gnus/gnus.el (gnus-load-hook): Don't use eval. + * lisp/gnus/nnrss.el (xml): Simply require it. + (xml-rpc-method-call): Use declare-function. -2016-01-30 Dmitry Gutov +2016-01-28 Glenn Morris - Don't pass DIR to 'hg status' + Don't use eval to quieten prolog.el compilation. - * lisp/vc/vc-hg.el (vc-hg-dir-status-files): - Don't pass DIR to 'hg status' (bug#22481). + * lisp/progmodes/prolog.el (pltrace-on, pltrace-off): Declare. + (prolog-enable-sicstus-sd, prolog-disable-sicstus-sd): Don't use eval. -2016-01-30 Stephen Leake +2016-01-28 Glenn Morris - Fix typo in previous commits + Mark some risky prolog variables. - * lisp/progmodes/project.el (project-find-file-in): - * lisp/vc/vc-mtn.el (vc-mtn-find-ignore-file): Fix typo in previous - commit. + * lisp/progmodes/prolog.el (prolog-system-version) + (prolog-keywords, prolog-types, prolog-mode-specificators) + (prolog-determinism-specificators, prolog-directives) + (prolog-program-name, prolog-program-switches) + (prolog-consult-string, prolog-compile-string) + (prolog-eof-string, prolog-prompt-regexp, prolog-help-function): + Mark anything processed by prolog-find-value-by-system as risky. -2016-01-30 Stephen Leake +2016-01-28 Glenn Morris - Improve project-find-file + * lisp/custom.el (defcustom): Doc fix. - * lisp/progmodes/project.el (project-file-completion-table): New. - (project-find-file, project-or-external-find-file): Default to filename - at point. - (project-file-completion-table): New, split out from - project--find-file-in. - (project-find-file-in): Renamed from project--find-file-in, use - project-file-completion-table. + * doc/lispref/customize.texi (Variable Definitions): + Defcustom should always have a type. - * lisp/progmodes/xref.el (ede-minor-mode): New declaration. - (xref--find-ignores-arguments): Add doc string. +2016-01-28 Glenn Morris -2016-01-30 Stephen Leake + * lisp/emacs-lisp/bytecomp.el (byte-compile-nogroup-warn): + Warn if defcustom has no type. (Bug#16276) - Implement vc-mtn-find-ignore-file, fix some doc strings + * lisp/cedet/semantic/db-file.el (semanticdb-persistent-path): + Fix :type. - * lisp/cedet/cedet-global.el (cedet-gnu-global-root): Improve doc string. + * lisp/emacs-lisp/package.el (package-load-list): Improve :type. - * lisp/cedet/ede/locate.el (initialize-instance): Improve doc string. +2016-01-28 Michael Albinus - * lisp/vc/vc-git.el (vc-git-find-ignore-file): Fix doc string. + Fix Bug#22452 - * lisp/vc/vc-mtn.el (vc-mtn-find-ignore-file): New function. + * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection): + * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection): + * lisp/net/tramp-sh.el (tramp-maybe-open-connection): + * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): + Mark it as connected. -2016-01-23 Michael Albinus + * lisp/net/tramp.el (tramp-handle-file-remote-p): Check also, if + connection property "connected" is set. (Bug#22452) - Improve user name completion in Tramp +2016-01-27 Glenn Morris - * lisp/net/tramp.el (tramp-parse-passwd, tramp-parse-etc-group): - Call also "getent passwd" or "getent group", if possible. - (tramp-parse-putty): Cache the result. + * test/lisp/vc/vc-hg.el: Move from test/automated/. -2016-01-22 Michael Albinus + * lisp/xwidget.el (xwidget-query-on-exit-flag): Declare. - * etc/NEWS: Move kqueue entries to Emacs 25.1 sections. + * lisp/xwidget.el (xwidget-webkit-browse-url): Give explicit error + if not compiled with xwidgets. -2016-01-20 Glenn Morris +2016-01-26 Paul Eggert - Remove handling of non-string time-stamp formats, obsolete for 20 years. + C-u C-x = example doc fix - * lisp/time-stamp.el (time-stamp-format): Doc fix. - (time-stamp-old-format-warn, time-stamp-fconcat): Remove. - (time-stamp-string): Ignore non-string formats. + * doc/emacs/mule.texi (International Chars): + Adjust example to match current behavior of C-u C-x =. -2016-01-20 Eli Zaretskii +2016-01-26 Paul Eggert - Anoter fix for problematic merge from emacs-25 + malloc.h hygiene - * src/w32fns.c (globals_of_w32fns): Move initialization of - resetstkoflw to a non-Cygwin part. + This attempts to future-proof Emacs a bit against possible glibc + changes, by having Emacs use declarations rather than + coding them up by hand. Problem noted by Florian Weimer in: + https://sourceware.org/ml/libc-alpha/2016-01/msg00777.html + Implement this mainly by moving malloc.h-related functions from + emacs.c (which does not include ) to alloc.c (which does). + * src/alloc.c (my_heap_start) [DOUG_LEA_MALLOC || GNU_LINUX]: + New function. + The remaining changes to this file apply only if DOUG_LEA_MALLOC. + (alloc_unexec_pre, alloc_unexec_post): New functions. + (malloc_initialize_hook): Use my_heap_start and alloc_unexec_post. + (__MALLOC_HOOK_VOLATILE): New macro, if not already defined. + (__malloc_initialize_hook): Use it. + (malloc_state_ptr, malloc_initialize_hook, __malloc_initialize_hook): + Move here from ... + * src/emacs.c: ... here. + (malloc_get_state, malloc_set_state): Remove extern decls. + (my_heap_start) [DOUG_LEA_MALLOC || GNU_LINUX]: Remove static var. + All uses changed to similarly-named new function. + (Fdump_emacs): Use new functions alloc_unexec_pre, alloc_unexec_post. + * src/lisp.h (my_heap_start, alloc_unexec_pre, alloc_unexec_post): + New decls. -2016-01-20 Michael Albinus +2016-01-26 Eli Zaretskii - * test/Makefile.in (mostlyclean): Use ${LOGFILES}. + * doc/emacs/mark.texi (Using Region): Clarify wording. (Bug#22467) -2016-01-20 Eli Zaretskii +2016-01-26 Paul Eggert - Fix MS-Windows build broken by a botched merge from emacs-25 + Remove never-set var handle_user_signal_hook - * src/w32.c (w32_crypto_hprov): New static variable. - (globals_of_w32): Initialize w32_crypto_hprov. - (w32_init_crypt_random, w32_init_random): New functions. - Include wincrypt.h. - * src/w32.h (w32_init_random): Add prototype. + * src/keyboard.c, src/keyboard.h (handle_user_signal_hook): + Remove never-set var. All uses removed. -2016-01-20 Vincent Belaïche +2016-01-26 Anders Lindgren - Correct a whole bunch of bugs coming with renamed cell relocation. - - * lisp/ses.el (ses-localvars): rename variable - `ses--renamed-cell-symb-list' into `ses--in-killing-named-cell-list' - and adjust the comment about it. - (ses-plist-delq): new defun. - (ses--ses-buffer-list): new defvar. - (ses--unbind-cell-name): new defun. - (ses-relocate-symbol): Do not relocate symbol when it is a named cell. - (ses-relocate-formula): Undo change of - 2011-12-27T19:30:39Z!vincentb1@users.sourceforge.net that was - preventing relocation for named cell --- now doing this is delegated - to function `ses-relocate-symbol'. - (ses-relocate-range): In docstring, undo change of - 2016-01-03T07:31:52Z!johnw@newartisans.com, `ses-range' must remain - lower case as it is not a variable. - (ses-relocate-all): Cell name relocation : 1) check that cell is a - renamed cell by testing `ses-cell' property to :ses-named, rather than - comparing name to corresponding standard name. Set rowcol of renamed - cell into the hashmap --- `ses-cell' property must not be used for - that as the same name can be used for different locations in different - SES sheets ; 2) use `local-variable-if-set-p' rather than `boundp' and - `local-variable-p' to check if cell name is already in use in this - sheet or needs initialisation. - (ses-relocate-all): Cell value relocation : 1) like for name - relocation use the `ses-cell' property rather than comparing actual - name to corresponding standard name. 2) Correct bug introduced in - 2011-12-27T19:30:39Z!vincentb1@users.sourceforge.net, as the test was - made the other way round than the intention --- ie value relocation - was disabled for standard cell, not for renamed cell as was the - intention. - (ses-relocate-all): Add loop for unbinding deleted renamed cells - names. - (ses-killbuffer-hook): new defun. - (ses-mode): Add the ses--ses-buffer-list maintenance mechanism --- - kill buffer hook, plus pushing current buffer if new in list. - (ses-delete-row, ses-delete-column): Collect deleted renamed cells - into `ses--in-killing-named-cell-list'. - (ses-rename-cell): Remove update of variable - `ses--renamed-cell-symb-list', this variable is renamed to - `ses--in-killing-named-cell-list', and its setting is done in - functions `ses-delete-row' and , `ses-delete-column' now. - (ses-rename-cell): Make cell new name a buffer local variable. - (ses-rename-cell): Change correction of - 2015-12-30T23:10:37Z!vincentb1@users.sourceforge.net concerning - computation of the range over which `cursor-intangible' property was - to be updated. This correction was ok for non spilling cells, but not - for cells spilling over following blank cells. Simply use - `next-single-property-change' rather than computing the end column - from column widths. - -2016-01-30 Andreas Schwab - - Re-enable checks in member, memql, delete to complain about non-lists - - * src/fns.c (Fmember, Fmemql, Fdelete): Revert 2007-10-16 change. - -2016-01-30 Martin Rudalics - - c:/emacs-git/next/ChangeLog - -2016-01-30 Eli Zaretskii - - Minor improvements to 'pcase' documentation - - * doc/lispref/control.texi (Pattern matching case statement): - Improve the documentation of 'pcase' per comments. See two - discussion threads on emacs-devel@gnu.org for the details: - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01335.html - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01336.html. - -2016-01-30 Glenn Morris - - Don't use eval to quieten prolog.el compilation. - - * lisp/progmodes/prolog.el (pltrace-on, pltrace-off): Declare. - (prolog-enable-sicstus-sd, prolog-disable-sicstus-sd): Don't use eval. - -2016-01-30 Glenn Morris - - Mark some risky prolog variables. - - * lisp/progmodes/prolog.el (prolog-system-version) - (prolog-keywords, prolog-types, prolog-mode-specificators) - (prolog-determinism-specificators, prolog-directives) - (prolog-program-name, prolog-program-switches) - (prolog-consult-string, prolog-compile-string) - (prolog-eof-string, prolog-prompt-regexp, prolog-help-function): - Mark anything processed by prolog-find-value-by-system as risky. - -2016-01-30 Glenn Morris - - * lisp/custom.el (defcustom): Doc fix. - - * doc/lispref/customize.texi (Variable Definitions): - Defcustom should always have a type. - -2016-01-30 Glenn Morris - - * lisp/cedet/semantic/db-file.el (semanticdb-persistent-path): - Fix :type. - - * lisp/emacs-lisp/package.el (package-load-list): Improve :type. - -2016-01-30 Michael Albinus - - Fix Bug#22452 - - * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection): - * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection): - * lisp/net/tramp-sh.el (tramp-maybe-open-connection): - * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): - Mark it as connected. - - * lisp/net/tramp.el (tramp-handle-file-remote-p): Check also, if - connection property "connected" is set. (Bug#22452) - -2016-01-30 Glenn Morris - - * lisp/xwidget.el (xwidget-query-on-exit-flag): Declare. - - * lisp/xwidget.el (xwidget-webkit-browse-url): Give explicit error - if not compiled with xwidgets. - -2016-01-30 Paul Eggert - - C-u C-x = example doc fix - - * doc/emacs/mule.texi (International Chars): - Adjust example to match current behavior of C-u C-x =. - -2016-01-30 Paul Eggert - - malloc.h hygiene - - This attempts to future-proof Emacs a bit against possible glibc - changes, by having Emacs use declarations rather than - coding them up by hand. Problem noted by Florian Weimer in: - https://sourceware.org/ml/libc-alpha/2016-01/msg00777.html - Implement this mainly by moving malloc.h-related functions from - emacs.c (which does not include ) to alloc.c (which does). - * src/alloc.c (my_heap_start) [DOUG_LEA_MALLOC || GNU_LINUX]: - New function. - The remaining changes to this file apply only if DOUG_LEA_MALLOC. - (alloc_unexec_pre, alloc_unexec_post): New functions. - (malloc_initialize_hook): Use my_heap_start and alloc_unexec_post. - (__MALLOC_HOOK_VOLATILE): New macro, if not already defined. - (__malloc_initialize_hook): Use it. - (malloc_state_ptr, malloc_initialize_hook, __malloc_initialize_hook): - Move here from ... - * src/emacs.c: ... here. - (malloc_get_state, malloc_set_state): Remove extern decls. - (my_heap_start) [DOUG_LEA_MALLOC || GNU_LINUX]: Remove static var. - All uses changed to similarly-named new function. - (Fdump_emacs): Use new functions alloc_unexec_pre, alloc_unexec_post. - * src/lisp.h (my_heap_start, alloc_unexec_pre, alloc_unexec_post): - New decls. - -2016-01-30 Eli Zaretskii - - * doc/emacs/mark.texi (Using Region): Clarify wording. (Bug#22467) - -2016-01-30 Paul Eggert - - Remove never-set var handle_user_signal_hook - - * src/keyboard.c, src/keyboard.h (handle_user_signal_hook): - Remove never-set var. All uses removed. - -2016-01-30 K. Handa - - Backport:fix previous change of src/ftfont.c (ftfont_shape_by_flt) - - * src/ftfont.c (ftfont_shape_by_flt): Fix previous change. Access the - second glyph only when there are enough glyphs. - - (cherry picked from commit 9835757013569673854b692ccbb58bfb3c3ed1f7) - -2016-01-30 K. Handa - - support rendering of wider range of combinging characters by ftfont backend - - * lisp/language/hebrew.el (hebrew-shape-gstring): If the font backend - supports rendering of combining characters, call - font-shape-gstring. - - * src/font.c (Ffont_get): Handle `combining-capability' property. - (syms_of_font): New symbol ":combining-capability'. - - * src/font.h (struct font_driver): New member combining_capability. - - * src/ftfont.c: Include "category.h". - (ftfont_driver): Initialize combining_capability to - ftfont_combining_capability. - (ftfont_shape_by_flt): If OTF is null, try to find a suitable - FLT in advance. - (ftfont_combining_capability): New function. - - (cherry picked from commit 536f48e9a2251b9e654ea974bd90ff2f40218753) - -2016-01-30 Anders Lindgren - - Fixed NextStep fullscreen issue (bug#22468) + Fixed NextStep fullscreen issue (bug#22468) When in fullscreen mode, `[screen visibleFrame]' sometimes includes, sometimes excludes the menu bar. This could cause @@ -438,7 +359,7 @@ ([EmacsWindow constrainFrameRect:toScreen:]): Pass fullscreen state to `constrain_frame_rect'. -2016-01-30 Artur Malabarba +2016-01-25 Artur Malabarba * lisp/files.el: Use a fixed file name for the second dir-locals file @@ -455,14 +376,14 @@ * doc/lispref/variables.texi (Directory Local Variables): Update accordingly. -2016-01-30 Artur Malabarba +2016-01-25 Artur Malabarba * lisp/files-x.el (modify-dir-local-variable): Small rewrite Change a variable name to be more meaningful, and reorder some of the code with no change in behaviour. -2016-01-30 Artur Malabarba +2016-01-25 Artur Malabarba * lisp/files.el (dir-locals-find-file): Refactor return values @@ -476,7 +397,7 @@ (hack-dir-local-variables): Simplify accordingly and rename a variable. -2016-01-30 Glenn Morris +2016-01-25 Glenn Morris * lisp/textmodes/flyspell.el (flyspell--prev-meta-tab-binding): Declare. @@ -488,7 +409,7 @@ * lisp/xwidget.el (xwidget-webkit-scroll-behavior): Rename using American spelling. Update all uses. -2016-01-30 Glenn Morris +2016-01-25 Glenn Morris Yet more xwidget doc fixes. @@ -507,23 +428,59 @@ (xwidget-webkit-show-id-element) (xwidget-webkit-show-id-or-named-element): Prompt fixes. -2016-01-30 Ted Zlatanov +2016-01-25 Ted Zlatanov * lisp/gnus/gnus-art.el (gnus-blocked-images): Add explicit nil choice and tags. -2016-01-30 Paul Eggert +2016-01-25 Paul Eggert Spelling fixes -2016-01-30 Stefan Monnier +2016-01-25 Stefan Monnier + + (rng-c-fix-escaped-newlines): Use subst-char-in-string + + * lisp/nxml/rng-cmpct.el (rng-c-fix-escaped-newlines): + Use subst-char-in-string. + +2016-01-25 Stefan Monnier + + * lisp/textmodes/sgml-mode.el (sgml-forward-sexp): New function + + (sgml-cursor-sensor, sgml-pretty-print, sgml-parse-tag-backward) + (sgml-calculate-indent): Use it. + +2016-01-25 Stefan Monnier + + * lisp/org: Fix some compiler warnings + + * lisp/org/ob-core.el (org-babel-check-confirm-evaluate) + (org-babel-map-src-blocks): Don't emit warnings if added vars are not used. + (*this*): Declare as dyn-bound. + (org-babel-expand-src-block, org-babel-load-in-session) + (org-babel-switch-to-session-with-code, org-babel-get-rownames): + Mark unused args. + (org-babel-combine-header-arg-lists): Remove unused var `args'. + (org-babel-find-named-block): Remove unused var `msg'. + + * lisp/org/org-src.el (org-inhibit-startup, org-src-fontify-natively): + Declare as dyn-bound. + (org-edit-src-code): Remove unused var `lfmt'. + (org-edit-fixed-width-region): Remove unused var `preserve-indentation'. + +2016-01-25 Stefan Monnier + + * lisp/font-lock.el: Use #' to quote function symbols + +2016-01-25 Stefan Monnier (font-lock-ensure-function): Fix bug#22399 * lisp/font-lock.el (font-lock-ensure-function): Fix handling when font-lock-mode is not enabled (bug#22399). -2016-01-30 Alan Mackenzie +2016-01-25 Alan Mackenzie Expunge "allow" + infinitive from source and doc, part 2. @@ -544,17 +501,17 @@ Expunge the likes of "This allows to do something" from the above files. -2016-01-30 Artur Malabarba +2016-01-25 Artur Malabarba * lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode): Redundant line `special-mode' is already read-only. -2016-01-30 Artur Malabarba +2016-01-25 Artur Malabarba * lisp/emacs-lisp/ert.el (ert--results-move): Change error to user-error -2016-01-30 Paul Eggert +2016-01-24 Paul Eggert Port "$@" to OpenIndiana ksh93 @@ -565,11 +522,11 @@ * admin/check-doc-strings, configure.ac, lib-src/rcs2log: Use plain "$@" rather than ${1+"$@"}. -2016-01-30 Paul Eggert +2016-01-24 Paul Eggert * src/xwidget.c (Fxwidget_set_adjustment): Fix doc string quoting typo. -2016-01-30 Paul Eggert +2016-01-24 Paul Eggert Improve wording for SMB support @@ -578,7 +535,7 @@ need to mention the laundry list of old MS Windows implementations of SMB and CIFS, nor to mention CIFS. Also, give a URL for Samba. -2016-01-30 Paul Eggert +2016-01-24 Paul Eggert Merge from gnulib @@ -605,7 +562,7 @@ Copy from gnulib. * m4/gnulib-comp.m4: Regenerate. -2016-01-30 Alan Mackenzie +2016-01-24 Alan Mackenzie Expunge "allow" + infinitive without direct object from source and doc. @@ -672,23 +629,23 @@ alternative, such as "This allow you to do something", "This allows something to be done" or "This allows the doing of something". -2016-01-30 l3thal +2016-01-24 l3thal Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 -2016-01-30 Kelvin White +2016-01-24 Kelvin White Add NEWS entry for asynchronous reconnect in ERC -2016-01-30 l3thal +2016-01-24 l3thal Add NEWS entry for asynchronous reconnect in ERC -2016-01-30 Kelvin White +2016-01-24 Kelvin White browse-url.el: Add 'google-chrome' to supported browsers. -2016-01-30 Paul Eggert +2016-01-24 Paul Eggert Port Tramp manual to latest Texinfo @@ -699,18 +656,18 @@ All uses changed. (trampf): New macro. -2016-01-30 Lars Ingebrigtsen +2016-01-24 Lars Ingebrigtsen * eww.el (eww-render): Protect against empty content-types. -2016-01-30 Nicolas Petton +2016-01-24 Nicolas Petton authors.el updates * admin/authors.el (authors-ignored-files, authors-renamed-files-alist): Additions. -2016-01-30 Dmitry Gutov +2016-01-23 Dmitry Gutov Rename xref-query-replace to xref-query-replace-in-results @@ -724,7 +681,7 @@ * doc/emacs/maintaining.texi (Xref Commands) (Identifier Search, Identifier Search): Update accordingly. -2016-01-30 Dmitry Gutov +2016-01-23 Dmitry Gutov Update cl-defgeneric and cl-defmethod docstrings @@ -733,7 +690,7 @@ (cl-defmethod): Mention that multiple dispatch arguments are allowed. Document supported types. (Bug#22336) -2016-01-30 Dmitry Gutov +2016-01-23 Dmitry Gutov Comment out next-error-function integration in xref @@ -741,11 +698,11 @@ Comment out next-error-function integration (http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01286.html). -2016-01-30 John Wiegley +2016-01-23 John Wiegley Correct a use of "which" in intro.texi -2016-01-30 Alan Mackenzie +2016-01-23 Alan Mackenzie Distinguish the two meanings of Java's keyword "default". Fixes bug #22358. @@ -755,14 +712,14 @@ * lisp/progmodes/cc-langs.el (c-modifier-kwds): Add "default" to Java's value. -2016-01-30 Oscar Fuentes +2016-01-23 Oscar Fuentes Don't operate on menu bar of nonexistent frame * src/xfns.c (Fx_hide_tip) [USE_LUCID]: Check that the current frame is valid before redisplaying its menu. Fixes bug#22438. -2016-01-30 Anders Lindgren +2016-01-23 Anders Lindgren Unbreak the GNUstep build. @@ -774,7 +731,7 @@ ([EmacsView updateFrameSize:]): Remove unused variable `win'. ([EmacsWindow zoom:]): Remove unused variable `f'. -2016-01-30 Eli Zaretskii +2016-01-23 Eli Zaretskii John Wiegley Michael Heerdegen @@ -785,25 +742,25 @@ * etc/NEWS: Mention that 'pcase' changes are documented. -2016-01-30 Paul Eggert +2016-01-23 Paul Eggert * etc/NEWS: Say that Cairo is experimental. -2016-01-30 Paul Eggert +2016-01-23 Paul Eggert Report error for PNG under Cairo * src/image.c (lookup_rgb_color): Signal a file error instead of dumping core when mishandling an image. -2016-01-30 Arash Esbati +2016-01-23 Arash Esbati Delete a spurious backquote (tiny change) * lisp/textmodes/reftex-ref.el (reftex-label): Delete a spurious backquote which raises an error with emacs 25. -2016-01-30 Paul Eggert +2016-01-23 Paul Eggert Pacify --enable-gcc-warnings --with-cairo @@ -822,7 +779,7 @@ Omit unused locals, or move them to where they’re needed. (x_clear_area1): Now ATTRIBUTE_UNUSED. -2016-01-30 Eli Zaretskii +2016-01-22 Eli Zaretskii Update documentation for Dired search and replace @@ -832,7 +789,7 @@ * etc/NEWS: Mention xref-related changes in Dired. -2016-01-30 Paul Eggert +2016-01-22 Paul Eggert Port recent xdisp.c fix to picky C compilers @@ -840,25 +797,25 @@ putting #if inside the arguments to a standard function, which the C standard says has undefined behavior. -2016-01-30 Alan Mackenzie +2016-01-22 Alan Mackenzie Prevent spurious recognition of K&R argument declarations. Fixes bug #2203 - * lisp/progmodes/cc-engine.el (c-forward-declarator): New function. + * cc-engine.el (c-forward-declarator): New function. (c-in-knr-argdecl): Before recognizing a K&R argument declaration, check it is contained in the preceding arg list. - * lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Use the new function + * cc-fonts.el (c-font-lock-declarators): Use the new function `c-forward-declarator' in place of inline code. -2016-01-30 Eli Zaretskii +2016-01-22 Eli Zaretskii Fix the build with --enable-checking=glyphs * src/xdisp.c (dump_glyph): Don't refer to glyph->u.xwidget in a build without xwidget support. -2016-01-30 Eli Zaretskii +2016-01-22 Eli Zaretskii Document cl-generic.el @@ -867,7 +824,7 @@ (Functions): Update the chapter menu. * doc/lispref/elisp.texi: Update the master menu. -2016-01-30 Paul Eggert +2016-01-22 Paul Eggert xwidgets style cleanup @@ -945,95 +902,39 @@ HAVE_XWIDGETS is defined. (struct xwidget_type, xwidget_from_id): Remove; unused. -2016-01-30 Michael Albinus - - Backport kqueue integration from master - - * configure.ac (--with-file-notification): Add kqueue. - (top): Remove special test for "${HAVE_NS}" and - ${with_file_notification}, this is handled inside gfilenotify - tests. Add kqueue tests. Use NOTIFY_CFLAGS and NOTIFY_LIBS - instead of library specific variables. Add error message for - gfile on Nextstep. - - * doc/lispref/os.texi (File Notifications): Add kqueue as backend. - Fix some glitches in the example. - - * etc/NEWS: Mention kqueue. - - * lisp/filenotify.el (file-notify--library) - (file-notify-descriptors, file-notify-callback) - (file-notify-add-watch, file-notify-rm-watch) - (file-notify-valid-p): Add kqueue support. - (file-notify--rm-descriptor): Remove WHAT arg. - - * src/Makefile.in: Use NOTIFY_CFLAGS and NOTIFY_LIBS. - - * src/emacs.c (main): Call globals_of_kqueue and syms_of_kqueue. - - * src/inotify.c (inotifyevent_to_event): Extract file name from - watch_object if the event doesn't provide it. - (Finotify_add_watch): Add file name to watch_object. - - * src/keyboard.c (make_lispy_event): Check also for HAVE_KQUEUE. - - * src/kqueue.c: New file. - - * src/lisp.h: Declare extern globals_of_kqueue and syms_of_kqueue. - - * test/automated/file-notify-tests.el - (file-notify--test-expected-events): Remove. - (file-notify--test-cleanup): Do not set that variable. - (file-notify--test-timeout) Use different timeouts for - different libraries. - (file-notify--test-library): New defun. - (file-notify--test-event-test): Make stronger checks. - (file-notify--test-with-events): EVENTS can also be a list of - lists. Flush outstanding events before running the body. - Make timeout heuristically depend on the number of events. - (file-notify-test01-add-watch, file-notify-test02-events) - (file-notify-test04-file-validity, file-notify-test05-dir-validity): - Rewrite in order to call file monitors but directory monitors. - (file-notify-test02-events, file-notify-test04-file-validity): Do - not skip cygwin tests. Add additional test for file creation. - Adapt expected result for different backends. - (file-notify-test03-autorevert): Some of the tests don't work for - w32notify. - (file-notify-test06-many-events): New test. - -2016-01-30 John Wiegley +2016-01-22 John Wiegley Further corrections to the pcase docstring -2016-01-30 Eli Zaretskii +2016-01-22 Eli Zaretskii * doc/emacs/anti.texi (Antinews): Rewrite for Emacs 25. -2016-01-30 Stephen Leake +2016-01-21 Stephen Leake In xref-collect-references, force backends to respect the 'dir' arg * lisp/progmodes/xref.el (xref-collect-references): Force symref backends to use `default-directory'. -2016-01-30 John Wiegley +2016-01-21 John Wiegley Minor correction to pcase docstring -2016-01-30 John Wiegley +2016-01-21 John Wiegley Write a new docstring for the pcase macro * lisp/emacs-lisp/pcase.el (pcase): Write a new docstring. -2016-01-30 Stephen Berman +2016-01-21 Stephen Berman Avoid byte-compiler warning in todo-mode (bug#21953) - * lisp/calendar/todo-mode.el (todo-convert-legacy-files): Add limit argument + * todo-mode.el (todo-convert-legacy-files): Add limit argument to looking-back to comply with advertised-calling-convention. -2016-01-30 Stephen Berman +2016-01-21 Stephen Berman Fix desktop support in todo-mode and doc-view (bug#22377) @@ -1043,7 +944,7 @@ * lisp/calendar/todo-mode.el (todo-modes-set-2): * lisp/doc-view.el (doc-view-mode): Set desktop-save-buffer unconditionally. -2016-01-30 Paul Eggert +2016-01-20 Paul Eggert No need to configure gobject-introspection @@ -1055,7 +956,7 @@ Remove. All uses removed. * configure.ac (emacs_config_features): Don’t worry about GIR. -2016-01-30 Paul Eggert +2016-01-20 Paul Eggert Don’t export C symbols not used elsewhere @@ -1080,7 +981,7 @@ * src/xwidget.h (xwidget_start_redisplay, xwidget_touch): Remove decls. -2016-01-30 Dmitry Gutov +2016-01-20 Dmitry Gutov Support squiggly heredocs in ruby-mode @@ -1089,11 +990,11 @@ * test/indent/ruby.rb: Add squiggly example. -2016-01-30 Glenn Morris +2016-01-20 Glenn Morris * configure.ac (emacs_config_features): Remove WEBKIT. -2016-01-30 Paul Eggert +2016-01-20 Paul Eggert Port to platforms with gtk3 but not webkitgtk3 @@ -1111,21 +1012,21 @@ * src/xwidget.c (syms_of_xwidget): Don’t worry about HAVE_WEBKIT_OSR, since this file is no longer compiled if webkitgtk3 is not available. -2016-01-30 Eli Zaretskii +2016-01-20 Eli Zaretskii Fix doc string of 'isearch-search-fun-function' * lisp/isearch.el (isearch-search-fun-function) (isearch-search-string): Doc fixes. (Bug#22411) -2016-01-30 Stefan Monnier +2016-01-19 Stefan Monnier * lisp/xwidget.el: Nitpicks * lisp/xwidget.el (xwidget-log, xwidget-webkit-callback): Use with-current-buffer rather than save-excursion + set-buffer. -2016-01-30 Glenn Morris +2016-01-19 Glenn Morris Don't hard-code 1 as point-min. @@ -1133,11 +1034,11 @@ * lisp/xwidget.el (xwidget-webkit-last-session) (xwidget-webkit-current-session): Don't hard-code 1 as point-min. -2016-01-30 Glenn Morris +2016-01-19 Glenn Morris * lisp/xwidget.el: Add declarations to silence non-xwidget compilation. -2016-01-30 Glenn Morris +2016-01-19 Glenn Morris Trivial doc copyedits. @@ -1147,7 +1048,7 @@ (Fxwidget_info, Fxwidget_view_lookup) (Fset_xwidget_query_on_exit_flag): Trivial doc copyedits. -2016-01-30 Glenn Morris +2016-01-19 Glenn Morris Avoid advising image-display-size for xwidgets. @@ -1156,7 +1057,7 @@ * lisp/image-mode.el (xwidget-info, xwidget-at): Declare. (image-display-size): Incorporate xwidget code directly. -2016-01-30 Glenn Morris +2016-01-19 Glenn Morris Avoid breaking non-xwidget Emacs that happen to load xwidget.el. @@ -1164,70 +1065,68 @@ (kill-buffer-query-functions): Only modify these hooks if compiled with xwidget support. -2016-01-30 Glenn Morris +2016-01-19 Glenn Morris * lisp/xwidget.el (xwidget-webkit-scroll-behaviour): Fix custom spec. -2016-01-30 Glenn Morris - * configure.ac (WEBKIT, GIR, CAIRO): Use EMACS_CHECK_MODULES, not PKG_. * configure.ac (emacs_config_features): Add XWIDGETS, WEBKIT, GIR. * configure.ac (HAVE_WEBKIT_OSR): Remove broken, duplicated gtk3 test. -2016-01-30 Katsumi Yamaoka +2016-01-19 Katsumi Yamaoka * lisp/gnus/nnir.el (nnir-request-update-mark): Default to the original mark. cf. and -2016-01-30 Glenn Morris +2016-01-19 Glenn Morris * lisp/xwidget.el (report-xwidget-bug): Remove. (top-level): No longer require reporter. -2016-01-30 Joakim Verona +2016-01-19 Joakim Verona Grégoire Jadi Support for the new Xwidget feature. * configure.ac: (HAVE_XWIDGETS, WIDGET_OBJ, EMACS_CONFIG_FEATURES): - * src/xterm.c (x_draw_glyph_string, x_draw_bar_cursor): - * src/xdisp.c: + * xterm.c (x_draw_glyph_string, x_draw_bar_cursor): + * xdisp.c: (handle_display_spec, handle_single_display_spec, push_it) (pop_it, set_iterator_to_next, dump_glyph) (calc_pixel_width_or_height, fill_xwidget_glyph_string) (BUILD_XWIDGET_GLYPH_STRING, BUILD_GLYPH_STRINGS) (produce_xwidget_glyph, x_produce_glyphs) (get_window_cursor_type): - * src/window.c (Fdelete_window_internal): - * src/termhooks.h (e): - * src/print.c (print_object): - * src/lisp.h (ptrdiff_t): - * src/keyboard.c (kbd_buffer_get_event, make_lispy_event) + * window.c (Fdelete_window_internal): + * termhooks.h (e): + * print.c (print_object): + * lisp.h (ptrdiff_t): + * keyboard.c (kbd_buffer_get_event, make_lispy_event) (syms_of_keyboard): - * src/emacs.c (main): - * src/dispnew.c (update_window, scrolling_window): - * src/dispextern.h (g, i): + * emacs.c (main): + * dispnew.c (update_window, scrolling_window): + * dispextern.h (g, i): * Makefile.in (XWIDGETS_OBJ, WEBKIT_CFLAGS, WEBKIT_LIBS) (GIR_LIBS, ALL_CFLAGS, base_obj, LIBES): - * src/keyboard.c (kbd_buffer_get_event): - * src/emacsgtkfixed.c (emacs_fixed_gtk_widget_size_allocate) + * keyboard.c (kbd_buffer_get_event): + * emacsgtkfixed.c (emacs_fixed_gtk_widget_size_allocate) (emacs_fixed_class_init): Add case for an xwidget view. - * src/xwidget.c, src/xwidget.h, lisp/xwidget.el: New files for xwidgets + * xwidget.c, xwidget.h, xwidget.el: New files for xwidgets Various improvements to the Xwidget feature. - * src/xwidget.c: - * src/emacsgtkfixed.c: - * lisp/xwidget.el: + * xwidgets.c: + * emacsgtkfixed.c: + * xwidget.el: -2016-01-30 Eli Zaretskii +2016-01-19 Eli Zaretskii Improve documentation of 'alist-get' @@ -1235,7 +1134,7 @@ 'alist-get' to the list of functions that can appear in PLACE argument of 'setf'. -2016-01-30 Eli Zaretskii +2016-01-19 Eli Zaretskii Minor copyedits of doc/emacs/maintaining.texi @@ -1243,7 +1142,7 @@ description of "C-M-i" wrt tags tables. (Tags Tables): Move the definition of "tag" to a footnote. -2016-01-30 Eli Zaretskii +2016-01-19 Eli Zaretskii Unbreak the Cygwin-w32 build @@ -1251,11 +1150,11 @@ resetstkoflw into a part that isn't compiled on Cygwin. (Bug#22403) -2016-01-30 Lars Magne Ingebrigtsen +2016-01-19 Lars Magne Ingebrigtsen * shr.el (shr-table-body): Allow tables to have text children. -2016-01-30 Phillip Lord +2016-01-19 Phillip Lord Cope with multiple overlapping faces. @@ -1264,7 +1163,7 @@ (hfy-face-resolve-face): Handle font specification as well as font name. Documentation update. (Bug#21990) -2016-01-30 Paul Eggert +2016-01-18 Paul Eggert Fix spurious escapes in describe-input-method @@ -1273,8689 +1172,5511 @@ * lisp/international/quail.el (quail-help): Apply substitute-command-keys to doc strings before displaying them. -2016-01-30 Paul Eggert +2016-01-30 Nicolas Petton - Minor improvements to (random t) documentation + Bump version to 25.0.90 - * doc/lispref/numbers.texi (Random Numbers): - * src/fns.c (Frandom): - Omit unnecessary details about randomness fallback. - Say that it is a fallback. + * README: + * configure.ac: + * msdos/sed2v2.inp: Bump version to 25.0.90. -2016-01-30 Dmitry Gutov +2016-01-30 Nicolas Petton - Rename methods in Ruby etags example file + * etc/AUTHORS: Update the AUTHORS file - * test/etags/ruby-src/test.rb: Rename the example methods to - correspond to the common terminology used in Ruby. - * test/etags/CTAGS.good: +2016-01-30 Nicolas Petton + + authors.el updates + + * admin/authors.el (authors-renamed-files-alist): Additions. + +2016-01-30 Nicolas Petton + + Make it possible to run make change-history on emacs-25 + + * Makefile.in: Check if the current branch is emacs-25 instead of + master. + +2016-01-30 lu4nx + + Support Go language in 'etags' + + * lib-src/etags.c : Fix documentation of Ruby tags. + : New help. + : New variable. + (Go_functions): New function. + : Add entry for Go. (Bug#22370) + + * doc/emacs/maintaining.texi (Tag Syntax): Document Go support. + * doc/man/etags.1: Mention Go support. + + * etc/NEWS: Mention Go support. + + * test/etags/go-src/test.go: + * test/etags/go-src/test1.go: New test files. + * test/etags/Makefile (GOSRC): New variable. + (SRCS): Add $(GOSRC). * test/etags/ETAGS.good_1: * test/etags/ETAGS.good_2: * test/etags/ETAGS.good_3: * test/etags/ETAGS.good_4: * test/etags/ETAGS.good_5: - * test/etags/ETAGS.good_6: Adjust accordingly. + * test/etags/ETAGS.good_6: + * test/etags/CTAGS.good: Adapt to addition of Go tests. -2016-01-30 Dmitry Gutov +2016-01-30 Eli Zaretskii - Propertize backtick in 'def `(abc)' as symbol constituent + Improve Ruby support in 'etags' - * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): - Propertize backtick in 'def `(abc)' as symbol constituent. - (ruby-syntax-propertize-function): - Rename to ruby-syntax-propertize. + * lib-src/etags.c (Ruby_functions): Tag constants. Don't tag + singleton classes. Remove class qualifiers from tags generated + for method and constant names. (Bug#22241) -2016-01-30 Eli Zaretskii + * doc/emacs/maintaining.texi (Tag Syntax): Mention that constants + are tagged by etags in Ruby. - Fix scrolling under scroll-preserve-screen-position on TTY + * etc/NEWS: Mention that constants are tagged by etags in Ruby. - * src/window.c (window_scroll_line_based): When setting point to - preserve screen coordinates, don't let cursor enter either of the - two scroll margins. (Bug#22395) + * test/etags/ruby-src/test1.ruby: Add more tests. + * test/etags/ETAGS.good_1: + * test/etags/ETAGS.good_2: + * test/etags/ETAGS.good_3: + * test/etags/ETAGS.good_4: + * test/etags/ETAGS.good_5: + * test/etags/ETAGS.good_6: + * test/etags/CTAGS.good: Adapt to the changes in etags and in Ruby + tests. -2016-01-30 Lars Magne Ingebrigtsen +2016-01-30 Eli Zaretskii - Fix shr table rendering of nested tables + Adjust etags test results to changes in copyright years - * shr.el (shr-table-body): Don't include all tbodies in nested - tables in the levels above. + * test/etags/CTAGS.good: + * test/etags/ETAGS.good_1: + * test/etags/ETAGS.good_2: + * test/etags/ETAGS.good_3: + * test/etags/ETAGS.good_4: + * test/etags/ETAGS.good_5: + * test/etags/ETAGS.good_6: Adjust to shift in characters and + in line numbers. -2016-01-30 Dmitry Gutov +2016-01-30 Andreas Schwab - * lisp/progmodes/project.el (project--read-regexp): Quote the identifier. + Revert "Re-enable checks in member, memql, delete to complain about non-lists" -2016-01-30 Dmitry Gutov + This reverts commit f524e8b7f12d9b5a8b92084e5385429fe7b085b9. - Add xref-based replacements for Dired search commands +2016-01-30 Nicolas Petton - * lisp/dired-aux.el (dired-do-find-regexp) - (dired-do-find-regexp-and-replace): New commands. - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00864.html + Make it possible to run make change-history on emacs-25 - * lisp/dired.el (dired-mode-map): Change bindings for `A' and - `Q' to the new commands. + * Makefile.in: Check if the current branch is emacs-25 instead of + master. - * lisp/progmodes/xref.el (xref-query-replace) - (xref-collect-matches): Add progress reporters. - (xref--find-ignores-arguments): Return nil for zero ignores. - (xref--show-xrefs): Add an optional argument. - (xref-collect-matches): Drop the assert. 'find' accepts a - regular file in place of directory argument, too. +2016-01-30 Dmitry Gutov -2016-01-30 Alan Mackenzie + Don't fiddle with DEFAULT - * doc/lispref/frames.texi (Position Parameters): Say they don't exist on TTYs. + * lisp/progmodes/project.el (project--completing-read-strict): + Don't change DEFAULT, whether is has any matches in + COLLECTION, or not. 2016-01-30 Eli Zaretskii - Improve user documentation of Xref + Document xwidget commands and functions - * doc/emacs/maintaining.texi (Xref, Find Identifiers) - (Looking Up Identifiers, Identifier Search, List Identifiers): - Adjudicate comments by Dmitry Gutov . See - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00650.html - for the details. + * doc/lispref/display.texi (Xwidgets): New section, describes some + of the xwidget primitives. + * doc/lispref/display.texi (Display): Update the chapter menu. + * doc/emacs/misc.texi (Embedded WebKit Widgets): New section. + * doc/emacs/emacs.texi (Top): Update the master menu to include + the xwidget node. -2016-01-30 Eli Zaretskii +2016-01-30 Lars Ingebrigtsen - Fix scrolling under scroll-preserve-screen-position and margins + Build fix for shr.el - * src/window.c (window_scroll_pixel_based): When setting point to - preserve screen coordinates, don't let cursor enter either of the - two scroll margins. Fix incorrect usage of - WINDOW_WANTS_HEADER_LINE_P and use WINDOW_HEADER_LINE_HEIGHT - instead of CURRENT_HEADER_LINE_HEIGHT. (Bug#22395) + * shr.el (seq): Require. -2016-01-30 Eli Zaretskii +2016-01-30 Dmitry Gutov - Unbreak the MS-Windows build + Improve project-find-file yet again! - * src/sysdep.c (emacs_gnutls_global_init, gnutls_rnd): Disable for - WINDOWSNT, to avoid link failure. (Bug#22202) + * lisp/progmodes/project.el (project--completing-read-strict): + New function. + (project-find-file-in): Use it. + (project-file-completion-table): Move the default + implementation inside the cl-defgeneric form. + (http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01720.html) -2016-01-30 Alan Mackenzie +2016-01-30 Dmitry Gutov - Desktop: protect users against inadvertant upgrading of desktop file. + Don't pass DIR to 'hg status' - An upgraded (version 208) desktop file cannot be read in Emacs < 25. + * lisp/vc/vc-hg.el (vc-hg-dir-status-files): + Don't pass DIR to 'hg status' (bug#22481). - * etc/NEWS: Add an entry about upgrading a desktop file. +2016-01-30 Stephen Leake - * lisp/desktop.el (desktop-file-version): Amend doc string. - (desktop-native-file-version, desktop-io-file-version): new variables. - (desktop-clear): Set desktop-io-file-version to nil. - (desktop-buffer-info): make the presence of the last item on the list - conditional on (>= desktop-io-file-version 208). - (desktop-save): Add extra parameter VERSION to take user's C-u or C-u C-u. - Amend the doc string. Add code to determine the output file version. - (desktop-create-buffer): Set desktop-io-file-version to the input file's - version. + Fix typo in previous commits -2016-01-30 Paul Eggert + * lisp/progmodes/project.el (project-find-file-in): + * lisp/vc/vc-mtn.el (vc-mtn-find-ignore-file): Fix typo in previous + commit. - Initialize GnuTLS before calling gnutls_rnd +2016-01-30 Stephen Leake - * src/gnutls.c (emacs_gnutls_global_init): Now extern. - Don’t set gnutls_global_initialized if gnutls_global_init fails. - * src/sysdep.c: Include "gnutls.h", and - if 2.12 or later, which has gnutls_rnd. - (emacs_gnutls_global_init, gnutls_rnd): New fallback - placeholder macros if before 2.12. - (init_random): Initialize gnutls globals before trying to - use gnutls_rnd. + Improve project-find-file -2016-01-30 Andreas Schwab + * lisp/progmodes/project.el (project-file-completion-table): New. + (project-find-file, project-or-external-find-file): Default to filename + at point. + (project-file-completion-table): New, split out from + project--find-file-in. + (project-find-file-in): Renamed from project--find-file-in, use + project-file-completion-table. - Don't use GnuTLS before it is initialized + * lisp/progmodes/xref.el (ede-minor-mode): New declaration. + (xref--find-ignores-arguments): Add doc string. - * src/sysdep.c (init_random): Don't use gnutls_rnd. +2016-01-30 Stephen Leake -2016-01-30 Paul Eggert + Implement vc-mtn-find-ignore-file, fix some doc strings - Port cleanup attribute to OpenBSD + * lisp/cedet/cedet-global.el (cedet-gnu-global-root): Improve doc string. - The OpenBSD C compiler issues false alarms about strcpy, strcat, and - sprintf, and this messes up 'configure' when it tests for the cleanup - attribute. Work around the problem by using __has_attribute directly. - Problem reported by Joakim Jalap (Bug#22385). - * configure.ac: Don’t use AX_GCC_VAR_ATTRIBUTE. - * m4/ax_gcc_var_attribute.m4: Remove. - * src/conf_post.h (__has_attribute): Provide a substitute, for - non-GCC or older GCC compilers. All uses changed to assume - the substitute. Check for the cleanup attribute. - * src/emacs-module.c (module_has_cleanup): Just use __has_attribute. + * lisp/cedet/ede/locate.el (initialize-instance): Improve doc string. -2016-01-30 Paul Eggert + * lisp/vc/vc-git.el (vc-git-find-ignore-file): Fix doc string. - Prefer GnuTLS when acquiring random seed + * lisp/vc/vc-mtn.el (vc-mtn-find-ignore-file): New function. - This attempts to improve on the fix for Bug#22202. - * configure.ac (HAVE_DEV_URANDOM): Remove. - Check /dev/urandom existence at run time, not at build time, - since the device could exist in the former but not the latter. - * src/sysdep.c [HAVE_GNUTLS]: Include gnutls/gnutls.h. - (gnutls_rnd) [GNUTLS_VERSION_NUMBER < 0x020c00]: New fallback macro. - (random_seed): New typedef. - (set_random_seed): New static function. - (seed_random): Use them. - (init_random): Use random_seed instead of uintmax_t, so as to - not consume more entropy than needed. Prefer gnutls_rnd if it - works; this avoids a redundant open of /dev/urandom on - GNU/Linux with modern GnuTLS. +2016-01-23 Michael Albinus -2016-01-30 Eli Zaretskii + Improve user name completion in Tramp - Improve documentation of dynamic modules + * lisp/net/tramp.el (tramp-parse-passwd, tramp-parse-etc-group): + Call also "getent passwd" or "getent group", if possible. + (tramp-parse-putty): Cache the result. - * doc/lispref/loading.texi (How Programs Do Loading): Update the - description of searching for files in 'load' when Emacs was built - with support for dynamic modules. +2016-01-22 Michael Albinus -2016-01-30 Eli Zaretskii + * etc/NEWS: Move kqueue entries to Emacs 25.1 sections. - * INSTALL: Document --with-modules. +2016-01-20 Glenn Morris -2016-01-30 Eli Zaretskii + Remove handling of non-string time-stamp formats, obsolete for 20 years. - Document 'function-put' - - * doc/lispref/symbols.texi (Symbol Plists): Document - 'function-put'. Update documentation of 'function-get'. + * lisp/time-stamp.el (time-stamp-format): Doc fix. + (time-stamp-old-format-warn, time-stamp-fconcat): Remove. + (time-stamp-string): Ignore non-string formats. -2016-01-30 Eli Zaretskii +2016-01-20 Eli Zaretskii - Document 'funcall-interactively' + Anoter fix for problematic merge from emacs-25 - * doc/lispref/commands.texi (Interactive Call): Document - 'funcall-interactively'. - * doc/lispref/functions.texi (Calling Functions): Mention - 'funcall-interactively' and provide a cross-reference. + * src/w32fns.c (globals_of_w32fns): Move initialization of + resetstkoflw to a non-Cygwin part. -2016-01-30 Eli Zaretskii +2016-01-20 Michael Albinus - * doc/lispref/lists.texi (Association Lists): Document 'alist-get'. + * test/Makefile.in (mostlyclean): Use ${LOGFILES}. - * doc/lispref/strings.texi (Text Comparison): Document 'string-greaterp'. +2016-01-20 Eli Zaretskii -2016-01-30 Eli Zaretskii + Fix MS-Windows build broken by a botched merge from emacs-25 - Document renaming of selection-related functions + * src/w32.c (w32_crypto_hprov): New static variable. + (globals_of_w32): Initialize w32_crypto_hprov. + (w32_init_crypt_random, w32_init_random): New functions. + Include wincrypt.h. + * src/w32.h (w32_init_random): Add prototype. - * doc/lispref/frames.texi (Window System Selections): Rename "x-*" - functions into the corresponding "gui-*" functions. Make the - description slightly less X-centric. +2016-01-20 Vincent Belaïche -2016-01-30 Eli Zaretskii + Correct a whole bunch of bugs coming with renamed cell relocation. - * doc/lispref/macros.texi (Expansion): Document 'macroexpand-1'. + * lisp/ses.el (ses-localvars): rename variable + `ses--renamed-cell-symb-list' into `ses--in-killing-named-cell-list' + and adjust the comment about it. + (ses-plist-delq): new defun. + (ses--ses-buffer-list): new defvar. + (ses--unbind-cell-name): new defun. + (ses-relocate-symbol): Do not relocate symbol when it is a named cell. + (ses-relocate-formula): Undo change of + 2011-12-27T19:30:39Z!vincentb1@users.sourceforge.net that was + preventing relocation for named cell --- now doing this is delegated + to function `ses-relocate-symbol'. + (ses-relocate-range): In docstring, undo change of + 2016-01-03T07:31:52Z!johnw@newartisans.com, `ses-range' must remain + lower case as it is not a variable. + (ses-relocate-all): Cell name relocation : 1) check that cell is a + renamed cell by testing `ses-cell' property to :ses-named, rather than + comparing name to corresponding standard name. Set rowcol of renamed + cell into the hashmap --- `ses-cell' property must not be used for + that as the same name can be used for different locations in different + SES sheets ; 2) use `local-variable-if-set-p' rather than `boundp' and + `local-variable-p' to check if cell name is already in use in this + sheet or needs initialisation. + (ses-relocate-all): Cell value relocation : 1) like for name + relocation use the `ses-cell' property rather than comparing actual + name to corresponding standard name. 2) Correct bug introduced in + 2011-12-27T19:30:39Z!vincentb1@users.sourceforge.net, as the test was + made the other way round than the intention --- ie value relocation + was disabled for standard cell, not for renamed cell as was the + intention. + (ses-relocate-all): Add loop for unbinding deleted renamed cells + names. + (ses-killbuffer-hook): new defun. + (ses-mode): Add the ses--ses-buffer-list maintenance mechanism --- + kill buffer hook, plus pushing current buffer if new in list. + (ses-delete-row, ses-delete-column): Collect deleted renamed cells + into `ses--in-killing-named-cell-list'. + (ses-rename-cell): Remove update of variable + `ses--renamed-cell-symb-list', this variable is renamed to + `ses--in-killing-named-cell-list', and its setting is done in + functions `ses-delete-row' and , `ses-delete-column' now. + (ses-rename-cell): Make cell new name a buffer local variable. + (ses-rename-cell): Change correction of + 2015-12-30T23:10:37Z!vincentb1@users.sourceforge.net concerning + computation of the range over which `cursor-intangible' property was + to be updated. This correction was ok for non spilling cells, but not + for cells spilling over following blank cells. Simply use + `next-single-property-change' rather than computing the end column + from column widths. -2016-01-30 Eli Zaretskii +2016-01-19 John Wiegley - Document 'define-inline' + Merge from origin/emacs-25 - * doc/lispref/functions.texi (Defining Functions): Document - 'define-inline' and related macros. + 3ae7934 ; * etc/NEWS: Mark entries that don't need further treatment. + 6165c36 * lisp/files.el (dir-locals--all-files): Respect absolute file-names + 2ffdf15 * lisp/help-fns.el (describe-variable): Fix a left-over parenthesis + 71ecd62 * lisp/dired-x.el (dired-omit-here-always): Use add-dir-local-variable + f0b82b3 * lisp/files.el (dir-locals--all-files): Use completion instead of wildcards + 86e4513 Fix incompatbilities with MS-Windows 2000 and older + 4e96521 Mention in PROBLEMS an issue with MS-Windows NT4 + 15c23aa Ensure 8-byte aligned memory allocation on MS-Windows 9X + 39afa42 Fix tests for active region in hideif.el + 05df666 Fix interactive specs in some hideif.el commands - * lisp/emacs-lisp/inline.el (inline-letevals): Doc fix. +2016-01-19 John Wiegley -2016-01-30 Artur Malabarba + - - * lisp/files.el (dir-locals--all-files): Respect absolute file-names +2016-01-19 Paul Eggert - * lisp/help-fns.el (describe-variable): Fix a left-over parenthesis + Avoid stdio in SIGINT handler -2016-01-30 Artur Malabarba + * admin/merge-gnulib (GNULIB_MODULES): Add ignore-value. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + * lib/ignore-value.h: New file, from gnulib. + * src/keyboard.c: Include it. + (write_stdout, read_stdin): New functions. + (handle_interrupt): Use them instead of printf and getchar, + and avoid fflush when handling signals. - * lisp/dired-x.el (dired-omit-here-always): Use add-dir-local-variable +2016-01-19 Jens Lechtenboerger - instead of manually writing a dir-locals file. + Refactor mml-smime.el, mml1991.el, mml2015.el -2016-01-30 Artur Malabarba + (Maybe this is the last merge from Gnus git to Emacs git) - * lisp/files.el (dir-locals--all-files): Use completion instead of wildcards + Cf. discussion on ding mailing list, messages in + . + Common code from the three files mml-smime.el, mml1991.el, and + mml2015.el is moved to mml-sec.el. Auxiliary functions are added + to gnus-util.el. - (dir-locals-file) - * lisp/files-x.el (modify-dir-local-variable) - * lisp/dos-fns.el (dosified-file-name) - * lisp/help-fns.el (describe-variable): Change accordingly. + The code is supported by test cases with necessary test keys. -2016-01-30 Jussi Lahdenniemi (tiny change) + Documentation in message.texi is updated. - Fix incompatbilities with MS-Windows 2000 and older + * doc/misc/message.texi (Security, Using S/MIME): + Update for refactoring mml-smime.el, mml1991.el, mml2015.el. + (Using OpenPGP): Rename from "Using PGP/MIME"; update contents. + (Passphrase caching, Encrypt-to-self, Bcc Warning): New sections. - * src/w32.c : New global variable. - (filename_to_utf16, filename_from_ansi, check_windows_init_file): - Use it instead of the literal MB_ERR_INVALID_CHARS. - (maybe_load_unicows_dll): Initialize multiByteToWideCharFlags as - appropriate for the underlying OS version. For details, see - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00835.html. - * src/w32.h: Declare multiByteToWideCharFlags. - * src/w32fns.c (Fx_file_dialog, Fw32_shell_execute) - (add_tray_notification): Use multiByteToWideCharFlags instead of - the literal MB_ERR_INVALID_CHARS. - (_resetstkoflw_proc): New typedef. - (w32_reset_stack_overflow_guard): Call _resetstkoflw via a - pointer, as this function is absent in msvcrt.dll shipped with W2K - and older systems. + * lisp/gnus/gnus-util.el (gnus-test-list, gnus-subsetp, gnus-setdiff): + New functions. -2016-01-30 Eli Zaretskii + * lisp/gnus/mml-sec.el: Require gnus-util and epg. + (epa--select-keys): Autoload. + (mml-signencrypt-style-alist, mml-secure-cache-passphrase): Doc fix. + (mml-secure-openpgp-signers): New user option; + make mml1991-signers and mml2015-signers obsolete aliases to it. + (mml-secure-smime-signers): New user option; + make mml-smime-signers an obsolete alias to it. + (mml-secure-openpgp-encrypt-to-self): New user option; + make mml1991-encrypt-to-self and mml2015-encrypt-to-self obsolete + aliases to it. + (mml-secure-smime-encrypt-to-self): New user option; + make mml-smime-encrypt-to-self an obsolete alias to it. + (mml-secure-openpgp-sign-with-sender): New user option; + make mml2015-sign-with-sender an obsolete alias to it. + (mml-secure-smime-sign-with-sender): New user option; + make mml-smime-sign-with-sender an obsolete alias to it. + (mml-secure-openpgp-always-trust): New user option; + make mml2015-always-trust an obsolete alias to it. + (mml-secure-fail-when-key-problem, mml-secure-key-preferences): + New user options. + (mml-secure-cust-usage-lookup, mml-secure-cust-fpr-lookup) + (mml-secure-cust-record-keys, mml-secure-cust-remove-keys) + (mml-secure-add-secret-key-id, mml-secure-clear-secret-key-id-list) + (mml-secure-cache-passphrase-p, mml-secure-cache-expiry-interval) + (mml-secure-passphrase-callback, mml-secure-check-user-id) + (mml-secure-secret-key-exists-p, mml-secure-check-sub-key) + (mml-secure-find-usable-keys, mml-secure-select-preferred-keys) + (mml-secure-fingerprint, mml-secure-filter-keys) + (mml-secure-normalize-cust-name, mml-secure-select-keys) + (mml-secure-select-keys-1, mml-secure-signer-names, mml-secure-signers) + (mml-secure-self-recipients, mml-secure-recipients) + (mml-secure-epg-encrypt, mml-secure-epg-sign): New functions. - Mention in PROBLEMS an issue with MS-Windows NT4 + * lisp/gnus/mml-smime.el: Require epg; + refactor declaration and autoloading of epg functions. + (mml-smime-use): Doc fix. + (mml-smime-cache-passphrase, mml-smime-passphrase-cache-expiry): + Obsolete. + (mml-smime-get-dns-cert, mml-smime-get-ldap-cert): + Use format instead of gnus-format-message. + (mml-smime-epg-secret-key-id-list): Remove variable. + (mml-smime-epg-passphrase-callback, mml-smime-epg-find-usable-key) + (mml-smime-epg-find-usable-secret-key): Remove functions. + (mml-smime-epg-sign, mml-smime-epg-encrypt): Refactor. - * etc/PROBLEMS (MS-Windows): Mention the problem with Shell32.dll - on Windows NT4. For the details, see - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00835.html. + * lisp/gnus/mml1991.el (mml1991-cache-passphrase) + (mml1991-passphrase-cache-expiry): Obsolete. + (mml1991-epg-secret-key-id-list): Remove variable. + (mml1991-epg-passphrase-callback, mml1991-epg-find-usable-key) + (mml1991-epg-find-usable-secret-key): Remove functions. + (mml1991-epg-sign, mml1991-epg-encrypt): Refactor. -2016-01-30 Jussi Lahdenniemi (tiny change) + * lisp/gnus/mml2015.el (mml2015-cache-passphrase) + (mml2015-passphrase-cache-expiry): Obsolete. + (mml2015-epg-secret-key-id-list): Remove variable. + (mml2015-epg-passphrase-callback, mml2015-epg-check-user-id) + (mml2015-epg-check-sub-key, mml2015-epg-find-usable-key) + (mml2015-epg-find-usable-secret-key): Remove functions. + (mml2015-epg-decrypt, mml2015-epg-clear-decrypt, mml2015-epg-sign) + (mml2015-epg-encrypt): Refactor. - Ensure 8-byte aligned memory allocation on MS-Windows 9X +2016-01-19 Paul Eggert - * src/w32heap.c (init_heap): Redirect malloc, realloc, and free to - special functions on Windows 9X. Refuse to dump Emacs on Windows 9X. - (malloc_after_dump_9x, realloc_after_dump_9x) - (free_after_dump_9x): New functions. (Bug#22379) See also - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00852.html - for more details about the original problem. + Merge from gnulib - * nt/inc/ms-w32.h (malloc_after_dump_9x, realloc_after_dump_9x) - (free_after_dump_9x): Add prototypes. + This mostly just updates copyright dates of gnulib files. + It also updates to the latest version of texinfo.tex. -2016-01-30 Eli Zaretskii +2016-01-19 YAMAMOTO Mitsuharu - Fix tests for active region in hideif.el + Move variables to inner loop, preparing for Mac port merge - * lisp/progmodes/hideif.el (hif-evaluate-macro, hide-ifdef-block): Use - 'use-region-p' to test whether to operate on region, instead of - testing 'mark-active'. + * src/keyboard.c (command_loop_1): Move variables `cmd', + `keybuf', and `i' to inner loop. -2016-01-30 Eli Zaretskii +2016-01-19 Paul Eggert - Fix interactive specs in some hideif.el commands + Minor improvements to (random t) documentation - * lisp/progmodes/hideif.el (hif-evaluate-macro) - (hide-ifdef-undef, show-ifdef-block): Don't use '(interactive "r")' - in commands that should only act on the region if it's active. + * doc/lispref/numbers.texi (Random Numbers): + * src/fns.c (Frandom): + Omit unnecessary details about randomness fallback. + Say that it is a fallback. -2016-01-30 Phillip Lord +2016-01-19 Dmitry Gutov - Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 + Rename methods in Ruby etags example file -2016-01-30 Phillip Lord + * test/etags/ruby-src/test.rb: Rename the example methods to + correspond to the common terminology used in Ruby. + * test/etags/CTAGS.good: + * test/etags/ETAGS.good_1: + * test/etags/ETAGS.good_2: + * test/etags/ETAGS.good_3: + * test/etags/ETAGS.good_4: + * test/etags/ETAGS.good_5: + * test/etags/ETAGS.good_6: Adjust accordingly. - Enable test selector from command line +2016-01-18 Dmitry Gutov - * test/automated/Makefile.in: Change variable manipulation to avoid - over-writing selector. + Propertize backtick in 'def `(abc)' as symbol constituent -2016-01-30 Alan Mackenzie + * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): + Propertize backtick in 'def `(abc)' as symbol constituent. + (ruby-syntax-propertize-function): + Rename to ruby-syntax-propertize. - Don't confuse "::" with ":" when trying to parse member initializers. +2016-01-18 Eli Zaretskii - * lisp/progmodes/cc-engine.el (c-back-over-member-initializers): Check - more robustly for ":" token when searching backwards for it. + Fix scrolling under scroll-preserve-screen-position on TTY - * lisp/progmodes/cc-langs.el (c-:$-multichar-token-regexp): New language - variable. + * src/window.c (window_scroll_line_based): When setting point to + preserve screen coordinates, don't let cursor enter either of the + two scroll margins. (Bug#22395) -2016-01-30 Eli Zaretskii +2016-01-18 Lars Magne Ingebrigtsen - Ensure positive number of glyphs for margins of positive width + Fix shr table rendering of nested tables - * src/dispnew.c (margin_glyphs_to_reserve): Always return a - positive value when a non-zero width of the marginal area was - requested. (Bug#22356) + * shr.el (shr-table-body): Don't include all tbodies in nested + tables in the levels above. -2016-01-30 Eli Zaretskii +2016-01-18 Dmitry Gutov - Fix crashes when mini-window has non-zero margins + * lisp/progmodes/project.el (project--read-regexp): Quote the identifier. - * src/window.c (resize_frame_windows): Use 'new_size' to set - minibuffer window's 'total_cols' value, as 'size' might be in - pixels. (Bug#22356) +2016-01-18 Dmitry Gutov -2016-01-30 Alan Mackenzie + Add xref-based replacements for Dired search commands - In comment-dwim with style `extra-line', respect indent-tabs-mode. + * lisp/dired-aux.el (dired-do-find-regexp) + (dired-do-find-regexp-and-replace): New commands. + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00864.html - This fixes bug #22369. + * lisp/dired.el (dired-mode-map): Change bindings for `A' and + `Q' to the new commands. - * lisp/newcomment.el (comment-make-bol-ws): New function. - (comment-make-extra-lines): Use new function instead of a crude `make-string'. + * lisp/progmodes/xref.el (xref-query-replace) + (xref-collect-matches): Add progress reporters. + (xref--find-ignores-arguments): Return nil for zero ignores. + (xref--show-xrefs): Add an optional argument. + (xref-collect-matches): Drop the assert. 'find' accepts a + regular file in place of directory argument, too. -2016-01-30 Eli Zaretskii +2016-01-18 Alan Mackenzie - Make 'random' seeds cryptographically secure if possible + * doc/lispref/frames.texi (Position Parameters): Say they don't exist on TTYs. - * configure.ac: Check for "/dev/urandom". +2016-01-18 Eli Zaretskii - * src/sysdep.c (init_random) [HAVE_DEV_URANDOM]: Read the stream - for the seed from "/dev/urandom". - [WINDOWSNT]: Obtain the stream for the seed from w32 APIs. - * src/fns.c (Frandom): Update the doc string to indicate that - system entropy is used when available. - * src/w32.c: Include wincrypt.h. - (w32_init_crypt_random, w32_init_random): New functions, use the - CryptGenRandom API. - (globals_of_w32): Initialize w32_crypto_hprov handle to zero. - * src/w32.h (w32_init_random): Add prototype. + Improve user documentation of Xref - * doc/lispref/numbers.texi (Random Numbers): Document more details - about 't' as the argument to 'random'. + * doc/emacs/maintaining.texi (Xref, Find Identifiers) + (Looking Up Identifiers, Identifier Search, List Identifiers): + Adjudicate comments by Dmitry Gutov . See + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00650.html + for the details. - * etc/NEWS: Mention that '(random t)' now uses a cryptographically - strong seed if possible. +2016-01-18 Eli Zaretskii - (Bug#22202) + Fix scrolling under scroll-preserve-screen-position and margins -2016-01-30 Eli Zaretskii + * src/window.c (window_scroll_pixel_based): When setting point to + preserve screen coordinates, don't let cursor enter either of the + two scroll margins. Fix incorrect usage of + WINDOW_WANTS_HEADER_LINE_P and use WINDOW_HEADER_LINE_HEIGHT + instead of CURRENT_HEADER_LINE_HEIGHT. (Bug#22395) - Unhide the --no-line-directive option to 'etags' +2016-01-18 Eli Zaretskii - * lib-src/etags.c (print_help): Un-undocument the --no-line-directive - option. (Bug#22306) + Unbreak the MS-Windows build - * doc/man/etags.1: Document the --no-line-directive option. + * src/sysdep.c (emacs_gnutls_global_init, gnutls_rnd): Disable for + WINDOWSNT, to avoid link failure. (Bug#22202) -2016-01-30 Alan J Third (tiny change) +2016-01-18 Alan Mackenzie - Fix picture-mode wrt double-width characters + Desktop: protect users against inadvertant upgrading of desktop file. - * lisp/textmodes/picture.el (picture-insert): Check the width of - the character being replaced, not just that of the replacement. - (Bug#1808) + An upgraded (version 208) desktop file cannot be read in Emacs < 25. -2016-01-30 Eric Abrahamsen + * etc/NEWS: Add an entry about upgrading a desktop file. - Honor docstring of gnus-group-get-new-news + * lisp/desktop.el (desktop-file-version): Amend doc string. + (desktop-native-file-version, desktop-io-file-version): new variables. + (desktop-clear): Set desktop-io-file-version to nil. + (desktop-buffer-info): make the presence of the last item on the list + conditional on (>= desktop-io-file-version 208). + (desktop-save): Add extra parameter VERSION to take user's C-u or C-u C-u. + Amend the doc string. Add code to determine the output file version. + (desktop-create-buffer): Set desktop-io-file-version to the input file's + version. - * lisp/gnus/gnus-start.el (gnus-get-unread-articles): If the prefix arg is t, - but non-numeric, unconditionally consider all groups to need updating. +2016-01-17 Paul Eggert -2016-01-30 Simen Heggestøyl + Initialize GnuTLS before calling gnutls_rnd - Disallow parenthesis in non-pseudo CSS selectors + * src/gnutls.c (emacs_gnutls_global_init): Now extern. + Don’t set gnutls_global_initialized if gnutls_global_init fails. + * src/sysdep.c: Include "gnutls.h", and + if 2.12 or later, which has gnutls_rnd. + (emacs_gnutls_global_init, gnutls_rnd): New fallback + placeholder macros if before 2.12. + (init_random): Initialize gnutls globals before trying to + use gnutls_rnd. - * lisp/textmodes/css-mode.el (css--font-lock-keywords): Disallow - parenthesis in selectors except for in the function notation that - might appear right after a pseudo-class. - * test/indent/scss-mode.scss: Add a test for it. +2016-01-17 Andreas Schwab -2016-01-30 Katsumi Yamaoka + Don't use GnuTLS before it is initialized - * lisp/gnus/nntp.el (nntp-request-newgroups): Simplify + * src/sysdep.c (init_random): Don't use gnutls_rnd. -2016-01-30 Michael Albinus +2016-01-17 Bill Wohler - check-maybe shall run only default tests + * mh-e.el (mh-version): Add +git to version. - * test/automated/Makefile.in (check, check-expensive): Depend on - mostlyclean. - (check-maybe): Re-run only default tests. - (check-doit): Use code of check-maybe. - (mostlyclean): Move *.log files away. +2016-01-17 Paul Eggert -2016-01-30 Mark Oteiza + Port cleanup attribute to OpenBSD - * lisp/thingatpt.el (thing-at-point-uri-schemes): Add "magnet:" + The OpenBSD C compiler issues false alarms about strcpy, strcat, and + sprintf, and this messes up 'configure' when it tests for the cleanup + attribute. Work around the problem by using __has_attribute directly. + Problem reported by Joakim Jalap (Bug#22385). + * configure.ac: Don’t use AX_GCC_VAR_ATTRIBUTE. + * m4/ax_gcc_var_attribute.m4: Remove. + * src/conf_post.h (__has_attribute): Provide a substitute, for + non-GCC or older GCC compilers. All uses changed to assume + the substitute. Check for the cleanup attribute. + * src/emacs-module.c (module_has_cleanup): Just use __has_attribute. -2016-01-30 Dmitry Gutov +2016-01-17 Paul Eggert - Un-obsolete tags-loop-continue + Prefer GnuTLS when acquiring random seed - * lisp/progmodes/etags.el (tags-loop-continue): Un-obsolete. - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00682.html + This attempts to improve on the fix for Bug#22202. + * configure.ac (HAVE_DEV_URANDOM): Remove. + Check /dev/urandom existence at run time, not at build time, + since the device could exist in the former but not the latter. + * src/sysdep.c [HAVE_GNUTLS]: Include gnutls/gnutls.h. + (gnutls_rnd) [GNUTLS_VERSION_NUMBER < 0x020c00]: New fallback macro. + (random_seed): New typedef. + (set_random_seed): New static function. + (seed_random): Use them. + (init_random): Use random_seed instead of uintmax_t, so as to + not consume more entropy than needed. Prefer gnutls_rnd if it + works; this avoids a redundant open of /dev/urandom on + GNU/Linux with modern GnuTLS. -2016-01-30 Eli Zaretskii +2016-01-16 Eli Zaretskii - Document obsoletion of 'intangible' and 'point-entered/left' + Improve documentation of dynamic modules - * doc/lispref/text.texi (Special Properties): Document the new - properties 'cursor-intangible' and 'cursor-sensor-functions'. - Document the obsolete status of 'intangible', 'pointer-left', - and 'point-entered' properties, and of 'inhibit-point-motion-hooks'. - * doc/lispref/display.texi (Overlay Properties): Document that - 'intangible' overlay property is obsolete. + * doc/lispref/loading.texi (How Programs Do Loading): Update the + description of searching for files in 'load' when Emacs was built + with support for dynamic modules. - * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor-mode): Doc fix. +2016-01-16 Eli Zaretskii -2016-01-30 Eli Zaretskii + * INSTALL: Document --with-modules. - Updater documentation of 'looking-back' +2016-01-16 Eli Zaretskii - * doc/lispref/searching.texi (Regexp Search): Update documentation - of 'looking-back'. Fix markup. + Document 'function-put' -2016-01-30 Eli Zaretskii + * doc/lispref/symbols.texi (Symbol Plists): Document + 'function-put'. Update documentation of 'function-get'. - Document 'pre-redisplay-functions' +2016-01-16 Eli Zaretskii - * doc/lispref/hooks.texi (Standard Hooks): - * doc/lispref/display.texi (Forcing Redisplay): Document - 'pre-redisplay-functions'. + Document 'funcall-interactively' -2016-01-30 Eli Zaretskii + * doc/lispref/commands.texi (Interactive Call): Document + 'funcall-interactively'. + * doc/lispref/functions.texi (Calling Functions): Mention + 'funcall-interactively' and provide a cross-reference. - Document the new deafault value of 'load-read-function' +2016-01-16 Eli Zaretskii - * doc/lispref/loading.texi (How Programs Do Loading): Document the - change in the default value of 'load-read-function'. + * doc/lispref/lists.texi (Association Lists): Document 'alist-get'. -2016-01-30 Eli Zaretskii + * doc/lispref/strings.texi (Text Comparison): Document 'string-greaterp'. - Document 'bufferpos-to-filepos' and 'filepos-to-bufferpos' +2016-01-16 Eli Zaretskii - * doc/lispref/nonascii.texi (Text Representations): Document - 'bufferpos-to-filepos' and 'filepos-to-bufferpos'. + Document renaming of selection-related functions -2016-01-30 Eli Zaretskii + * doc/lispref/frames.texi (Window System Selections): Rename "x-*" + functions into the corresponding "gui-*" functions. Make the + description slightly less X-centric. - Document the new prefix-command hooks +2016-01-16 Eli Zaretskii - * doc/lispref/hooks.texi (Standard Hooks): Document - `prefix-command-echo-keystrokes-functions' and - `prefix-command-preserve-state-hook'. + * doc/lispref/macros.texi (Expansion): Document 'macroexpand-1'. -2016-01-30 Paul Eggert +2016-01-16 Eli Zaretskii - Fix one more misuse of time-stamp-time-zone + Document 'define-inline' - * test/etags/html-src/softwarelibero.html: Use "UTC0" rather - than the unportable "GMT" for time zone. + * doc/lispref/functions.texi (Defining Functions): Document + 'define-inline' and related macros. -2016-01-30 Paul Eggert + * lisp/emacs-lisp/inline.el (inline-letevals): Doc fix. - Fix NNTP NEWGROUPS off-by-a-few-hours bug +2016-01-16 Artur Malabarba - * lisp/gnus/nntp.el (nntp-request-newgroups): Format string - in Universal Time, since we’re telling the server “GMT”. - -2016-01-30 Paul Eggert + * lisp/files.el (dir-locals--all-files): Respect absolute file-names - Update publicsuffix.txt from upstream + * lisp/help-fns.el (describe-variable): Fix a left-over parenthesis - * etc/publicsuffix.txt: Update from - https://publicsuffix.org/list/effective_tld_names.dat - dated 2016-01-12 11:52:01 UTC. +2016-01-16 Artur Malabarba -2016-01-30 Glenn Morris + * lisp/dired-x.el (dired-omit-here-always): Use add-dir-local-variable - Fix some declarations. + instead of manually writing a dir-locals file. - * lisp/descr-text.el (internal-char-font): - * lisp/cedet/mode-local.el (xref-item-location): - * lisp/gnus/mml-smime.el (epg-key-sub-key-list) - (epg-sub-key-capability, epg-sub-key-validity): - * lisp/international/mule-util.el (internal-char-font): - Fix declarations. +2016-01-16 Artur Malabarba -2016-01-30 Glenn Morris + * lisp/files.el (dir-locals--all-files): Use completion instead of wildcards - Fix some custom types. + (dir-locals-file) + * lisp/files-x.el (modify-dir-local-variable) + * lisp/dos-fns.el (dosified-file-name) + * lisp/help-fns.el (describe-variable): Change accordingly. - * lisp/gnus/gnus-fun.el (gnus-x-face-omit-files, gnus-face-omit-files): - * lisp/gnus/gnus.el (gnus-valid-select-methods): - * lisp/mail/rmail.el (rmail-get-coding-function): - * lisp/net/newst-treeview.el (newsticker-groups-filename): - * lisp/progmodes/hideif.el (hide-ifdef-exclude-define-regexp): - * lisp/textmodes/tildify.el (tildify-space-predicates): - * lisp/url/url-tramp.el (url-tramp-protocols): - Fix custom types. +2016-01-16 Jussi Lahdenniemi (tiny change) -2016-01-30 Glenn Morris + Fix incompatbilities with MS-Windows 2000 and older - Add some missing version tags. + * src/w32.c : New global variable. + (filename_to_utf16, filename_from_ansi, check_windows_init_file): + Use it instead of the literal MB_ERR_INVALID_CHARS. + (maybe_load_unicows_dll): Initialize multiByteToWideCharFlags as + appropriate for the underlying OS version. For details, see + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00835.html. + * src/w32.h: Declare multiByteToWideCharFlags. + * src/w32fns.c (Fx_file_dialog, Fw32_shell_execute) + (add_tray_notification): Use multiByteToWideCharFlags instead of + the literal MB_ERR_INVALID_CHARS. + (_resetstkoflw_proc): New typedef. + (w32_reset_stack_overflow_guard): Call _resetstkoflw via a + pointer, as this function is absent in msvcrt.dll shipped with W2K + and older systems. - * lisp/electric.el (electric-quote-comment) - (electric-quote-string, electric-quote-paragraph): - * lisp/epg-config.el (epg-gpgconf-program): - * lisp/rect.el (rectangle-preview): - * lisp/emacs-lisp/check-declare.el (check-declare-ext-errors): - * lisp/emacs-lisp/package.el (package-selected-packages) - (package-hidden-regexps): - * lisp/erc/erc.el (erc-network-hide-list, erc-channel-hide-list): - * lisp/eshell/em-term.el (eshell-destroy-buffer-when-process-dies): - * lisp/gnus/mml-sec.el (mml1991-signers, mml2015-signers) - (mml-smime-signers, mml1991-encrypt-to-self, mml2015-encrypt-to-self) - (mml-smime-encrypt-to-self, mml2015-sign-with-sender) - (mml-smime-sign-with-sender, mml2015-always-trust) - (mml-secure-fail-when-key-problem, mml-secure-key-preferences): - * lisp/net/browse-url.el (browse-url-conkeror-new-window-is-buffer) - (browse-url-conkeror-arguments): - * lisp/net/newst-reader.el (newsticker-download-logos): - * lisp/progmodes/gud.el (gud-guiler-command-name): - * lisp/progmodes/prog-mode.el (prettify-symbols-unprettify-at-point): - * lisp/progmodes/project.el (project-vc): - * lisp/progmodes/python.el (python-indent-guess-indent-offset-verbose) - (python-shell-remote-exec-path, python-shell-first-prompt-hook) - (python-shell-completion-native-disabled-interpreters) - (python-shell-completion-native-enable) - (python-shell-completion-native-output-timeout) - (python-shell-completion-native-try-output-timeout): - * lisp/progmodes/xref.el (xref): - * lisp/term/screen.el (xterm-screen-extra-capabilities): - * lisp/term/xterm.el (xterm-max-cut-length): - Add missing version tags. +2016-01-16 Eli Zaretskii -2016-01-30 Glenn Morris + Mention in PROBLEMS an issue with MS-Windows NT4 - * test/automated/core-elisp-tests.el - (core-elisp-tests-1-defvar-in-let): Add a custom type. + * etc/PROBLEMS (MS-Windows): Mention the problem with Shell32.dll + on Windows NT4. For the details, see + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00835.html. -2016-01-30 Glenn Morris +2016-01-16 Jussi Lahdenniemi (tiny change) - * src/buffer.c (syms_of_buffer) : Doc fix. + Ensure 8-byte aligned memory allocation on MS-Windows 9X - Remove comments that do not apply since 2005-08-09. (Bug#22349) + * src/w32heap.c (init_heap): Redirect malloc, realloc, and free to + special functions on Windows 9X. Refuse to dump Emacs on Windows 9X. + (malloc_after_dump_9x, realloc_after_dump_9x) + (free_after_dump_9x): New functions. (Bug#22379) See also + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00852.html + for more details about the original problem. -2016-01-30 Paul Eggert + * nt/inc/ms-w32.h (malloc_after_dump_9x, realloc_after_dump_9x) + (free_after_dump_9x): Add prototypes. - Merge from gnulib +2016-01-16 Eli Zaretskii - This mostly just changes "UTC" to "UTC0" for POSIX conformance. - It also updates to the latest version of texinfo.tex. - * build-aux/gitlog-to-changelog, build-aux/move-if-change: - * build-aux/update-copyright, doc/misc/texinfo.tex: - Update from gnulib. + Fix tests for active region in hideif.el -2016-01-30 Eli Zaretskii + * lisp/progmodes/hideif.el (hif-evaluate-macro, hide-ifdef-block): Use + 'use-region-p' to test whether to operate on region, instead of + testing 'mark-active'. - Update documentation of 'process-running-child-p' +2016-01-16 Eli Zaretskii - * doc/lispref/processes.texi (Input to Processes): Document the - changes in return value of 'process-running-child-p'. + Fix interactive specs in some hideif.el commands -2016-01-30 Eli Zaretskii + * lisp/progmodes/hideif.el (hif-evaluate-macro) + (hide-ifdef-undef, show-ifdef-block): Don't use '(interactive "r")' + in commands that should only act on the region if it's active. - Update documentation of 'deactivate-mark'. +2016-01-15 Phillip Lord - * doc/lispref/markers.texi (The Mark): Document that - 'deactivate-mark' is now buffer-local when set. + Enable test selector from command line -2016-01-30 Eli Zaretskii + * test/automated/Makefile.in: Change variable manipulation to avoid + over-writing selector. - Update documentation of 'completion-table-dynamic' +2016-01-15 Alan Mackenzie - * doc/lispref/minibuf.texi (Programmed Completion): Document the - new optional argument to 'completion-table-dynamic'. + Don't confuse "::" with ":" when trying to parse member initializers. -2016-01-30 Eli Zaretskii + * lisp/progmodes/cc-engine.el (c-back-over-member-initializers): Check + more robustly for ":" token when searching backwards for it. - Document changes in 'read-buffer' and 'read-buffer-function' + * lisp/progmodes/cc-langs (c-:$-multichar-token-regexp): New language + variable. - * doc/lispref/minibuf.texi (High-Level Completion): Document the - 4th argument to 'read-buffer' and 'read-buffer-function'. +2016-01-15 Eli Zaretskii -2016-01-30 Paul Eggert + Ensure positive number of glyphs for margins of positive width - Fix time-stamp-time-zone bugs introduced in July + * src/dispnew.c (margin_glyphs_to_reserve): Always return a + positive value when a non-zero width of the marginal area was + requested. (Bug#22356) - This fixes a bug introduced when the July changes to - format-time-string installed, as the changes were not - correctly handled in this module (Bug#22302). - Also, document time stamp time zones. - * lisp/time-stamp.el (time-stamp-time-zone): Document values better. - (time-stamp--format): New private function. - (time-stamp-string, time-stamp-string-preprocess) - (time-stamp-do-number): Use it. - * doc/emacs/files.texi (Time Stamps): Mention time zones. - * doc/misc/autotype.texi (Timestamps): Document time-stamp-time-zone. +2016-01-15 Eli Zaretskii -2016-01-30 Eli Zaretskii + Fix crashes when mini-window has non-zero margins - Make piping to subprocesses more robust on MS-Windows + * src/window.c (resize_frame_windows): Use 'new_size' to set + minibuffer window's 'total_cols' value, as 'size' might be in + pixels. (Bug#22356) - * src/w32.c (sys_write): Don't write to a pipe more stuff than its - buffer can hold. Don't return -1 if something has been written to - the pipe. Zero out 'errno' before calling '_write', to avoid - returning a stale value. (Bug#22344) - * src/w32proc.c (syms_of_ntproc) : New variable. - * src/w32.c (pipe2): Use it to request a user-defined size for the - pipe being created. +2016-01-15 Alan Mackenzie - * etc/NEWS: Mention 'w32-pipe-buffer-size'. + In comment-dwim with style `extra-line', respect indent-tabs-mode. - * doc/emacs/msdos.texi (Windows Processes): Document - 'w32-pipe-buffer-size'. + This fixes bug #22369. -2016-01-30 Dmitry Gutov + * lisp/newcomment.el (comment-make-bol-ws): New function. + (comment-make-extra-lines): Use new function instead of a crude `make-string'. - test/automated/vc-hg.el: Support out-of-tree build +2016-01-15 Eli Zaretskii - * test/automated/vc-hg.el - (vc-hg-annotate-extract-revision-at-line-with-filename) - (vc-hg-annotate-extract-revision-at-line-with-both): - Don't refer to source-directory. - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00755.html + Make 'random' seeds cryptographically secure if possible -2016-01-30 Michael Albinus + * configure.ac: Check for "/dev/urandom". - Minor change in tramp-tests.el + * src/sysdep.c (init_random) [HAVE_DEV_URANDOM]: Read the stream + for the seed from "/dev/urandom". + [WINDOWSNT]: Obtain the stream for the seed from w32 APIs. + * src/fns.c (Frandom): Update the doc string to indicate that + system entropy is used when available. + * src/w32.c: Include wincrypt.h. + (w32_init_crypt_random, w32_init_random): New functions, use the + CryptGenRandom API. + (globals_of_w32): Initialize w32_crypto_hprov handle to zero. + * src/w32.h (w32_init_random): Add prototype. - * test/automated/tramp-tests.el (tramp-test29-vc-registered): - Use `dired-uncache' instead of a Tramp internal function. + * doc/lispref/numbers.texi (Random Numbers): Document more details + about 't' as the argument to 'random'. -2016-01-30 Peter Feigl + * etc/NEWS: Mention that '(random t)' now uses a cryptographically + strong seed if possible. - * etc/HELLO: Add Armenian and Mongolian greetings. + (Bug#22202) - (Bug#22346) +2016-01-15 Eli Zaretskii -2016-01-30 Alan Mackenzie + Unhide the --no-line-directive option to 'etags' - Java Mode: Fontify identifiers in the presence of annotations. + * lib-src/etags.c (print_help): Un-undocument the --no-line-directive + option. (Bug#22306) - * lisp/progmodes/cc-engine.el (c-forward-annotation): Tidy up the coding: - Don't move point when the defun fails. - (c-forward-decl-or-cast-1): Correct a usage of match data. + * doc/man/etags.1: Document the --no-line-directive option. - * lisp/progmodes/cc-fonts.el (c-font-lock-maybe-decl-faces): Remove. - (c-font-lock-declarations): Use the new c-maybe-decl-faces in place of the - removed variable. +2016-01-15 Alan J Third (tiny change) - * lisp/progmodes/cc-langs.el (c-maybe-decl-faces): New language variable. + Fix picture-mode wrt double-width characters -2016-01-30 Eli Zaretskii + * lisp/textmodes/picture.el (picture-insert): Check the width of + the character being replaced, not just that of the replacement. + (Bug#1808) - Avoid an infloop when we run out of memory +2016-01-15 Eric Abrahamsen - * src/alloc.c (garbage_collect_1): Don't bother saving and - restoring the echo-area message if we are GC'ing after running out - of memory. This avoids an infloop due to repeated attempts to - allocate memory for the cons cell needed to save the message, - which signals the memory-full error, which attempts to save the - echo-area message, which signals memory-full again, etc. + Honor docstring of gnus-group-get-new-news -2016-01-30 Eli Zaretskii + * lisp/gnus/gnus-start.el (gnus-get-unread-articles): If the prefix arg is t, + but non-numeric, unconditionally consider all groups to need updating. - Avoid unnecessary failures of auto-saving after fatal error +2016-01-14 Simen Heggestøyl - * src/w32.c (map_w32_filename): Avoid non-trivial system calls for - the benefit of FAT volumes if we are called as part of shutting - down due to a fatal error, which probably means we are trying to - auto-save the session. - * src/lread.c (check_obarray): Don't bother making the obarray - valid if we are shutting down due to a fatal error. This avoids - interfering with auto-saving the crashed session. + Disallow parenthesis in non-pseudo CSS selectors -2016-01-30 Paul Eggert + * lisp/textmodes/css-mode.el (css--font-lock-keywords): Disallow + parenthesis in selectors except for in the function notation that + might appear right after a pseudo-class. + * test/indent/scss-mode.scss: Add a test for it. - Simplify HAVE_MODULES use in mark_maybe_pointer +2016-01-14 Katsumi Yamaoka - * src/alloc.c (HAVE_MODULES): Now a constant 0 if not defined, - so that later code can use 'if' rather than '#ifdef'. - (mark_maybe_pointer): Simplify based on HAVE_MODULES now - always working. + * lisp/gnus/nntp.el (nntp-request-newgroups): Simplify -2016-01-30 Paul Eggert +2016-01-14 Michael Albinus - Revert attempt to use 'noexcept' in typedef + check-maybe shall run only default tests - This use of 'noexcept' runs afoul of the C++11 standard. - Problem reported by Philipp Stephani in: - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00706.html - * src/emacs-module.c (emacs_finalizer_function): - Move this typedef here ... - * src/emacs-module.h: ... from here, and use only the C - version of the typedef. The typedef is now private since it - is never used in the .h file now and anyway it seemed to be - causing more confusion than it cured. - (make_user_ptr, get_user_finalizer, set_user_finalizer): - Open-code the type instead. + * test/automated/Makefile.in (check, check-expensive): Depend on + mostlyclean. + (check-maybe): Re-run only default tests. + (check-doit): Use code of check-maybe. + (mostlyclean): Move *.log files away. -2016-01-30 Eli Zaretskii +2016-01-13 Mark Oteiza - Update documentation of 'indirect-function' + * lisp/thingatpt.el (thing-at-point-uri-schemes): Add "magnet:" - * doc/lispref/eval.texi (Function Indirection): Update the - documentation of 'indirect-function'. +2016-01-13 Dmitry Gutov -2016-01-30 Eli Zaretskii + Un-obsolete tags-loop-continue - Update documentation for obsoleting 'syntax-begin-function' + * lisp/progmodes/etags.el (tags-loop-continue): Un-obsolete. + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00682.html - * doc/lispref/syntax.texi (Position Parse): Undocument - 'syntax-begin-function' that is now obsolete. +2016-01-13 Eli Zaretskii -2016-01-30 Eli Zaretskii + Document obsoletion of 'intangible' and 'point-entered/left' - Document new features if Eshell + * doc/lispref/text.texi (Special Properties): Document the new + properties 'cursor-intangible' and 'cursor-sensor-functions'. + Document the obsolete status of 'intangible', 'pointer-left', + and 'point-entered' properties, and of 'inhibit-point-motion-hooks'. + * doc/lispref/display.texi (Overlay Properties): Document that + 'intangible' overlay property is obsolete. - * doc/misc/eshell.texi (Input/Output): Document the new - '#' syntax. - (Input/Output): Document 'eshell-destroy-buffer-when-process-dies'. - Disable "Key Index" generation, as there are no @kindex entries in - this manual. + * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor-mode): Doc fix. -2016-01-30 Michael Albinus +2016-01-13 Eli Zaretskii - Handle too long commands in Tramp + Updater documentation of 'looking-back' - * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link) - (tramp-do-file-attributes-with-ls): Send sequence of commands, in - order to not exceed shell command line limit. + * doc/lispref/searching.texi (Regexp Search): Update documentation + of 'looking-back'. Fix markup. - * test/automated/tramp-tests.el (tramp--test-darwin-p): Remove. - (tramp--test-utf8): Include Arabic file name, again. +2016-01-13 Eli Zaretskii -2016-01-30 Paul Eggert + Document 'pre-redisplay-functions' - * .gitattributes: *.cur and *.pif are binary files too. + * doc/lispref/hooks.texi (Standard Hooks): + * doc/lispref/display.texi (Forcing Redisplay): Document + 'pre-redisplay-functions'. -2016-01-30 Stefan Monnier +2016-01-13 Eli Zaretskii - * src/alloc.c (mark_maybe_pointer): HAVE_MODULES may be undefined + Document the new deafault value of 'load-read-function' -2016-01-30 Stefan Monnier + * doc/lispref/loading.texi (How Programs Do Loading): Document the + change in the default value of 'load-read-function'. - * lisp/progmodes/sh-script.el (sh-smie-sh-rules): Improve indentation inside $(...) +2016-01-13 Eli Zaretskii - * lisp/progmodes/sh-script.el (sh-smie-sh-rules): Improve indentation - within $(...). - * test/indent/shell.sh: Add corresponding test. + Document 'bufferpos-to-filepos' and 'filepos-to-bufferpos' -2016-01-30 Stefan Monnier + * doc/lispref/nonascii.texi (Text Representations): Document + 'bufferpos-to-filepos' and 'filepos-to-bufferpos'. - * src/alloc.c (mark_maybe_pointer): Also check wide-int's emacs_value +2016-01-13 Eli Zaretskii - (mark_memory): Simplify loop. Don't assume a pointer-sized word can be - cast to Lisp_Object. + Document the new prefix-command hooks -2016-01-30 Dmitry Gutov + * doc/lispref/hooks.texi (Standard Hooks): Document + `prefix-command-echo-keystrokes-functions' and + `prefix-command-preserve-state-hook'. - Use short date for 'hg annotate', and output the author +2016-01-13 Paul Eggert - * lisp/vc/vc-hg.el (vc-hg-annotate-command): - Change '-d' to '-dq'. (Bug#21805) - (vc-hg-annotate-switches): Default to "-u" "--follow". - (vc-hg-annotate-re): Update to recognize the short date format - and the optional username. - (vc-hg-annotate-time) - (vc-hg-annotate-extract-revision-at-line): Update accordingly. + Fix one more misuse of time-stamp-time-zone - * test/automated/vc-hg.el: New file. + * test/etags/html-src/softwarelibero.html: Use "UTC0" rather + than the unportable "GMT" for time zone. -2016-01-30 Paul Eggert +2016-01-13 Paul Eggert - Spelling fix + Fix NNTP NEWGROUPS off-by-a-few-hours bug -2016-01-30 Eli Zaretskii + * lisp/gnus/nntp.el (nntp-request-newgroups): Format string + in Universal Time, since we’re telling the server “GMT”. - Document user-level functions in project.el +2016-01-12 Paul Eggert - * lisp/progmodes/project.el (project-find-file) - (project-or-external-find-file): Add doc strings. + Update publicsuffix.txt from upstream -2016-01-30 Eli Zaretskii + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/effective_tld_names.dat + dated 2016-01-12 11:52:01 UTC. - Document the user-level features of the Xref package +2016-01-12 Glenn Morris - * doc/emacs/maintaining.texi (Maintaining): Add a list of - described features. - (Xref): New section, made out of thoroughly rewritten "Tags" - section. - (Find Identifiers, Looking Up Identifiers, Xref Commands) - (Identifier Search, List Identifiers): New subsections, - incorporating the old tags commands and the new xref commands. - (Tags Tables, Tag Syntax, Create Tags Table, Etags Regexps): - Section and subsections demoted to a lower level. - * doc/emacs/search.texi (Search): - * doc/emacs/windows.texi (Pop Up Window): - * doc/emacs/frames.texi (Creating Frames): - * doc/emacs/programs.texi (Imenu, Symbol Completion): - * doc/emacs/building.texi (Grep Searching): - * doc/emacs/dired.texi (Operating on Files): - * doc/emacs/glossary.texi (Glossary): All references to tags changed. + Fix some declarations. -2016-01-30 Stefan Monnier + * lisp/descr-text.el (internal-char-font): + * lisp/cedet/mode-local.el (xref-item-location): + * lisp/gnus/mml-smime.el (epg-key-sub-key-list) + (epg-sub-key-capability, epg-sub-key-validity): + * lisp/international/mule-util.el (internal-char-font): + Fix declarations. - * doc/lispref/loading.texi: Add `define-type' entry for load-history +2016-01-12 Glenn Morris - * doc/lispref/loading.texi (Where Defined): Remove incorrect - cl-defmethod description, and add missing define-type entry. + Fix some custom types. -2016-01-30 Eli Zaretskii + * lisp/gnus/gnus-fun.el (gnus-x-face-omit-files, gnus-face-omit-files): + * lisp/gnus/gnus.el (gnus-valid-select-methods): + * lisp/mail/rmail.el (rmail-get-coding-function): + * lisp/net/newst-treeview.el (newsticker-groups-filename): + * lisp/progmodes/hideif.el (hide-ifdef-exclude-define-regexp): + * lisp/textmodes/tildify.el (tildify-space-predicates): + * lisp/url/url-tramp.el (url-tramp-protocols): + Fix custom types. - Improve doc strings and prompts in xref.el +2016-01-12 Glenn Morris - * lisp/progmodes/xref.el (xref-backend-functions) - (xref-find-definitions): Doc fixes. - (xref-query-replace): Doc fix. Improve prompts for arguments. + Add some missing version tags. -2016-01-30 Alan Mackenzie + * lisp/electric.el (electric-quote-comment) + (electric-quote-string, electric-quote-paragraph): + * lisp/epg-config.el (epg-gpgconf-program): + * lisp/rect.el (rectangle-preview): + * lisp/emacs-lisp/check-declare.el (check-declare-ext-errors): + * lisp/emacs-lisp/package.el (package-selected-packages) + (package-hidden-regexps): + * lisp/erc/erc.el (erc-network-hide-list, erc-channel-hide-list): + * lisp/eshell/em-term.el (eshell-destroy-buffer-when-process-dies): + * lisp/gnus/mml-sec.el (mml1991-signers, mml2015-signers) + (mml-smime-signers, mml1991-encrypt-to-self, mml2015-encrypt-to-self) + (mml-smime-encrypt-to-self, mml2015-sign-with-sender) + (mml-smime-sign-with-sender, mml2015-always-trust) + (mml-secure-fail-when-key-problem, mml-secure-key-preferences): + * lisp/net/browse-url.el (browse-url-conkeror-new-window-is-buffer) + (browse-url-conkeror-arguments): + * lisp/net/newst-reader.el (newsticker-download-logos): + * lisp/progmodes/gud.el (gud-guiler-command-name): + * lisp/progmodes/prog-mode.el (prettify-symbols-unprettify-at-point): + * lisp/progmodes/project.el (project-vc): + * lisp/progmodes/python.el (python-indent-guess-indent-offset-verbose) + (python-shell-remote-exec-path, python-shell-first-prompt-hook) + (python-shell-completion-native-disabled-interpreters) + (python-shell-completion-native-enable) + (python-shell-completion-native-output-timeout) + (python-shell-completion-native-try-output-timeout): + * lisp/progmodes/xref.el (xref): + * lisp/term/screen.el (xterm-screen-extra-capabilities): + * lisp/term/xterm.el (xterm-max-cut-length): + Add missing version tags. - Allow the use of `font-lock-extend-region-multiline' in CC Mode. +2016-01-12 Glenn Morris - * lisp/progmodes/cc-mode.el (c-font-lock-init): Remove - `font-lock-extend-regions-wholelines' from - `font-lock-extend-region-functions' rather than setting the latter to - nil. + * test/automated/core-elisp-tests.el + (core-elisp-tests-1-defvar-in-let): Add a custom type. -2016-01-30 Michael Albinus +2016-01-12 Glenn Morris - Fix coding system for Tramp on OS X. + * src/buffer.c (syms_of_buffer) : Doc fix. - * lisp/net/tramp-compat.el: Require ucs-normalize. + Remove comments that do not apply since 2005-08-09. (Bug#22349) - * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): - Set coding system to `utf-8-hfs' for Mac OS X. +2016-01-12 Paul Eggert - * test/automated/tramp-tests.el (tramp-test29-vc-registered): - Flush directory properties when needed. - (tramp--test-utf8): Include Chinese file name, again. + Merge from gnulib -2016-01-30 Eli Zaretskii + This mostly just changes "UTC" to "UTC0" for POSIX conformance. + It also updates to the latest version of texinfo.tex. + * build-aux/gitlog-to-changelog, build-aux/move-if-change: + * build-aux/update-copyright, doc/misc/texinfo.tex: + Update from gnulib. - Update 'load-history' docs +2016-01-12 Eli Zaretskii - * doc/lispref/loading.texi (Where Defined): Update the list of - forms in 'load-history' by adding the forms created for the - 'cl-generic' generics. (Bug#21422) + Update documentation of 'process-running-child-p' -2016-01-30 Paul Eggert + * doc/lispref/processes.texi (Input to Processes): Document the + changes in return value of 'process-running-child-p'. - Fix (error ...) error +2016-01-12 Eli Zaretskii - Problem reported by Glenn Morris in: - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00561.html - * lisp/vc/add-log.el (change-log-goto-source): Fix typos - introduced in my Aug 28 change, where I got confused by the - two meanings of (error ...). + Update documentation of 'deactivate-mark'. -2016-01-30 Alan Mackenzie + * doc/lispref/markers.texi (The Mark): Document that + 'deactivate-mark' is now buffer-local when set. - Correctly analyze brace arguments in templated C++ function declarations. +2016-01-12 Eli Zaretskii - * lisp/progmodes/cc-defs.el (c-go-list-forward, c-go-list-backward): add - POS and LIMIT parameters, like the other c-go-list-* functions have. + Update documentation of 'completion-table-dynamic' - * lisp/progmodes/cc-engine.el (c-restore-<>-properties): Check backwards - for a ?\( rather than a ?<. (c-looking-at-inexpr-block): Handle names - followed by template specifiers. - -2016-01-30 Glenn Morris - - * lisp/cedet/mode-local.el (describe-function-orig-buffer): Declare. - - * lisp/ffap.el (ffap-latex-mode): Avoid free variable. - -2016-01-30 Mark Oteiza - - * lisp/play/dunnet.el (dun-fix-screen): Avoid `end-of-buffer`. - -2016-01-30 Alan Mackenzie - - Respect fontification region calculated by major mode. Fixes bug #22316. - - * lisp/font-lock.el (font-lock-extend-jit-lock-region-after-change): when a - fontification region has been calculated by a function on - font-lock-extend-after-change-region-function use this region rather than - changing the end position to somewhere else. - -2016-01-30 Eli Zaretskii - - Improve documentation of Delete Selection mode - - * lisp/delsel.el (delete-selection-mode) - (delete-selection-helper): Update and expand the doc strings. - (Bug#22296) - - * doc/emacs/mark.texi (Using Region): Document the behavior of - delete commands in Delete Selection mode. (Bug#22296) - - * doc/lispref/markers.texi (The Mark): Document how to add the - support for Delete Selection mode to Lisp programs. (Bug#22296) - -2016-01-30 Dmitry Gutov + * doc/lispref/minibuf.texi (Programmed Completion): Document the + new optional argument to 'completion-table-dynamic'. - Fix two project-find-file issues +2016-01-12 Eli Zaretskii - * lisp/progmodes/project.el (project--value-in-dir): - Temporarily set enable-local-variables to :all. - (project-find-file, project-or-external-find-file): - All autoloads. - (project--find-file-in): Require xref. + Document changes in 'read-buffer' and 'read-buffer-function' -2016-01-30 Eli Zaretskii + * doc/lispref/minibuf.texi (High-Level Completion): Document the + 4th argument to 'read-buffer' and 'read-buffer-function'. - Clarify doc string of 'dired-current-directory' +2016-01-12 Paul Eggert - * lisp/dired.el (dired-current-directory): Doc fix: clarify that - the return value might not end in a slash when called with the - optional argument non-nil. (Bug#6273) + Fix time-stamp-time-zone bugs introduced in July -2016-01-30 Eli Zaretskii + This fixes a bug introduced when the July changes to + format-time-string installed, as the changes were not + correctly handled in this module (Bug#22302). + Also, document time stamp time zones. + * lisp/time-stamp.el (time-stamp-time-zone): Document values better. + (time-stamp--format): New private function. + (time-stamp-string, time-stamp-string-preprocess) + (time-stamp-do-number): Use it. + * doc/emacs/files.texi (Time Stamps): Mention time zones. + * doc/misc/autotype.texi (Timestamps): Document time-stamp-time-zone. - Use the face of preceding text for displaying the ellipsis +2016-01-12 Eli Zaretskii - * src/xdisp.c (setup_for_ellipsis): Use the face of the preceding - text in it->saved_face_id for displaying the ellipsis, and ignore - the face, if any, of the invisible text. (Bug#22320) + Make piping to subprocesses more robust on MS-Windows -2016-01-30 Michael Albinus + * src/w32.c (sys_write): Don't write to a pipe more stuff than its + buffer can hold. Don't return -1 if something has been written to + the pipe. Zero out 'errno' before calling '_write', to avoid + returning a stale value. (Bug#22344) + * src/w32proc.c (syms_of_ntproc) : New variable. + * src/w32.c (pipe2): Use it to request a user-defined size for the + pipe being created. - Suppress Chinese file name test for OSX in tramp-tests.el + * etc/NEWS: Mention 'w32-pipe-buffer-size'. - * test/automated/tramp-tests.el (tramp--test-utf8): - Remove instrumentation. Suppress Chinese file name test for OSX. + * doc/emacs/msdos.texi (Windows Processes): Document + 'w32-pipe-buffer-size'. -2016-01-30 Glenn Morris +2016-01-16 Stefan Monnier - * admin/admin.el (set-version): Also handle the NEWS file. + * lisp/emacs-lisp/syntax.el (syntax-ppss-table): New var -2016-01-30 Dmitry Gutov + (syntax-ppss): + * lisp/font-lock.el (font-lock-fontify-syntactically-region): Use it. - apropos-library: Skip obvious duplicates; don't error on generics +2016-01-16 Stefan Monnier - * lisp/apropos.el (apropos-library): Skip "was an autoload" - entries, to avoid obvious duplicates. For each cl-defmethod - entry, take just its function symbol (bug#21422). + lisp/nxml: Use syntax-tables for comments -2016-01-30 Dmitry Gutov + * lisp/nxml/nxml-mode.el (nxml-set-face): Prepend. + (nxml-mode): Set syntax-ppss-table. + Use sgml-syntax-propertize-function for syntax-propertize-function. + Let font-lock highlight strings and comments. + (nxml-degrade): Don't touch "nxml-inside" property any more. + (nxml-after-change, nxml-after-change1): Remove functions. + (comment): Don't set fontify rule any more. + (nxml-fontify-attribute): Don't highlight the value any more. + (nxml-namespace-attribute-value-delimiter, nxml-namespace-attribute-value) + (nxml-comment-delimiter, nxml-comment-content): Remove faces. - Add project-find-file and project-or-external-find-file + * lisp/nxml/nxml-rap.el (nxml-scan-end): Remove. + (nxml-get-inside, nxml-inside-start, nxml-inside-end): Use syntax-ppss. + (nxml-clear-inside, nxml-set-inside): Remove. + (nxml-scan-after-change): Remove function. + (nxml-scan-prolog, nxml-tokenize-forward): Simplify. + (nxml-ensure-scan-up-to-date): Use syntax-propertize. + (nxml-move-outside-backwards): + * lisp/nxml/nxml-outln.el (nxml-section-tag-backward): Adjust to new + nxml-inside-start behavior. - * lisp/minibuffer.el (completion-category-defaults): - Add `project-file' category. + * lisp/nxml/nxml-util.el (nxml-debug-set-inside) + (nxml-debug-clear-inside): Remove macros. - * lisp/progmodes/project.el (project-find-file) - (project-or-external-find-file): New commands. - (project--find-file-in): New private function. + * lisp/nxml/xmltok.el (xmltok-forward-special): Remove function. + (xmltok-scan-after-comment-open): Simplify. - * lisp/progmodes/xref.el (xref-collect-matches): Use - `expand-file-name' on DIR, to expand the tildes. - (xref--find-ignores-arguments): Extract from - `xref--rgrep-command'. +2016-01-16 Stefan Monnier -2016-01-30 Leo Liu + * elisp-mode.el (elisp--font-lock-flush-elisp-buffers): Fix comment - Add defvar-local to lisp-imenu-generic-expression +2016-01-16 Stefan Monnier - * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): Add - defvar-local. + * lisp/nxml: Use standard completion; it also works for company-mode -2016-01-30 Leo Liu + * lisp/nxml/nxml-mode.el (nxml-complete): Obsolete. + (nxml-completion-at-point-function): Remove. + (nxml-mode): Don't set completion-at-point-functions. + * lisp/nxml/rng-nxml.el (rng-nxml-mode-init): Set it here instead. + (rng-completion-at-point): Rename from rng-complete and mark it + non-interactive. It is now to be used as completion-at-point-function. + (rng-complete-tag, rng-complete-end-tag, rng-complete-attribute-name) + (rng-complete-attribute-value): Don't perform completion, but return + completion data instead. + (rng-complete-qname-function, rng-generate-qname-list): Add a few + arguments, previously passed via dynamic coping. + (rng-strings-to-completion-table): Rename from + rng-strings-to-completion-alist. Don't return an alist. Don't both + sorting and uniquifying. - Revert commit b1e3d14845517bfa9fa5d6d3840f3ab3160306fd + * lisp/nxml/rng-util.el (rng-complete-before-point): Delete function. + (rng-completion-exact-p, rng-quote-string): Delete functions. - * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): - Don't declare (indent 1). + * lisp/nxml/rng-valid.el (rng-recover-start-tag-open) + (rng-missing-attributes-message, rng-missing-element-message) + (rng-mark-missing-end-tags): Use explicit ".." in formats rather than + calling rng-quote-string everywhere. -2016-01-30 Glenn Morris +2016-01-16 Stefan Monnier - * lisp/emacs-lisp/autoload.el (autoload-find-destination): Doc fix. + Use sgml-electric-tag-pair-mode also in nxml-mode -2016-01-30 Glenn Morris + * lisp/nxml/rng-nxml.el: Require sgml-mode. + (rng-nxml-easy-menu): Add entry for sgml-electric-tag-pair-mode. + (rng-complete-qname-function): Use complete-with-action. - * lisp/emacs-lisp/autoload.el (autoload-find-destination): + * lisp/textmodes/sgml-mode.el (sgml-electric-tag-pair-before-change-function): + Let-bind forward-sexp-function, since nxml-mode binds it to + something incompatible. - Avoid specifying the length of a time object (it has not been "2" - for some time). + * lisp/nxml/nxml-mode.el: Use setq-local and defvar-local. -2016-01-30 Andreas Schwab +2016-01-15 Stefan Monnier - Properly encode/decode base64Binary data in SOAP + * xmltok.el: Mark the "sole --" rather than the comment opener - * lisp/net/soap-client.el (soap-encode-xs-basic-type): Encode - base64Binary value as utf-8. - (soap-decode-xs-basic-type): Decode base64Binary value as utf-8. + * lisp/nxml/xmltok.el (xmltok-scan-after-comment-open): Put the error + marker on the "sole --" rather than on the comment opener. -2016-01-30 Eli Zaretskii +2016-01-15 Sam Steingold - Obey coding-system-for-write when writing stdout/stderr in batch + replace `tramp-compat-split-string' (removed) with `split-string' - * src/print.c (printchar_to_stream): - * src/xdisp.c (message_to_stderr): If coding-system-for-write has - a non-nil value, use it to encode output in preference to - locale-coding-system. See the discussions in - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00048.html - for the details. + (python-shell-tramp-refresh-process-environment) + (python-shell-calculate-pythonpath): use `split-string' + instead of defunct `tramp-compat-split-string' - * doc/lispref/os.texi (Terminal Output): Document how to send - non-ASCII text via 'send-string-to-terminal'. - (Batch Mode): Document how text written to standard streams is - encoded. Fix inaccuracy regarding which output streams are used - by output functions in batch mode. +2016-01-15 Stefan Monnier -2016-01-30 Xue Fuqiao + Update nXML to use Emacs's Unicode support, and lexical-binding - * doc/misc/efaq.texi (Packages that do not come with Emacs): - Update the URI of MELPA and marmalade-repo. Reported by CHENG Gao - in - https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00390.html. + * etc/nxml/*.el: Remove obsolete char-name files. + * lisp/nxml/xsd-regexp.el (xsdre-range-list-difference): Remove unused + var `next'. + * lisp/nxml/rng-nxml.el (rng-set-state-after): Don't assume point-min==1. + * lisp/nxml/rng-match.el (rng-update-match-state): Simplify. + * lisp/nxml/nxml-outln.el (nxml-outline-state-transform-exceptions) + (nxml-target-section-pos, nxml-depth-in-target-section) + (nxml-outline-state-transform-alist) + (nxml-outline-display-section-tag-function): Move decl before first use. + * lisp/nxml/nxml-mode.el (nxml-char-name-ignore-case) + (nxml-char-name-alist, nxml-char-name-table) + (nxml-autoload-char-name-set-list, nxml-named-char-history): Remove vars. + (nxml-enable-char-name-set, nxml-disable-char-name-set) + (nxml-char-name-set-enabled-p, nxml-autoload-char-name-set) + (nxml-define-char-name-set, nxml-get-char-name): Remove functions. + (nxml-insert-named-char): Use read-char-by-name instead. + (nxml-char-ref-display-extra): Use get-char-code-property. + * lisp/nxml/nxml-maint.el (nxml-create-unicode-char-name-sets): + Remove function. + * lisp/nxml/nxml-glyph.el, lisp/nxml/nxml-uchnm.el: Remove files. -2016-01-30 Maksim Golubev (tiny change) +2016-01-15 Michael Albinus - * lisp/progmodes/opascal.el (opascal-mode-syntax-table): + Add "sg" method to Tramp - Fix backslash. (Bug#22224) + * doc/misc/tramp.texi (Inline methods): Add "sg" method. + (Customizing Completion): Add function `tramp-parse-etc-group'. -2016-01-30 Federico Beffa (tiny change) + * lisp/net/tramp-sh.el (tramp-methods) : Add. (Bug#22329) + (tramp-completion-function-alist-sg): New defconst. + (top): Completion function for "sg" is + `tramp-completion-function-alist-sg'. - * lisp/progmodes/xscheme.el (xscheme-prompt-for-expression-exit): + * lisp/net/tramp.el (tramp-completion-function-alist): Adapt docstring. + (tramp-parse-etc-group, tramp-parse-etc-group-group): New defuns. - Make it actually work. (Bug#22265) +2016-01-14 Michael Albinus -2016-01-30 Alan Mackenzie + Remove XEmacs compatibility in Tramp - Remove function wrongly on AWK Mode value of context fontification hook. + * doc/misc/tramp.texi: Replace flags by their hard coded name. + Remove unused flags and the enclosed alternative text for XEmacs. - * lisp/progmodes/cc-langs.el (c-before-context-fontification-functions): - swap order of entries so that awk's entry isn't superseded by the default. + * doc/misc/trampver.texi: Use "Tramp" CamelCase. Rename "emacs" + and "xemacs" flags to "unified" and "separate". Remove flags + "emacsgw", "emacsname", "emacsdir", "ftppackagename", + "emacsothername", "emacsotherdir" and "emacsotherfilename". + (trampver): + * lisp/net/trampver.el (tramp-version): Set to "2.3.0-pre". - * lisp/progmodes/cc-mode.el (c-before-context-fl-expand-region): Correct - to handle nil value of c-before-context-fontification-functions. - -2016-01-30 Paul Eggert - - * src/buffer.c: Stick with ASCII in doc string. - -2016-01-30 Paul Eggert - - Reword transient-mark-mode doc string - - * src/buffer.c (syms_of_buffer): Reword doc string to avoid confusion. - The value 'lambda (literally) can be interpreted as (quote lambda), - which is not intended here; we want just the lambda symbol. - -2016-01-30 Eli Zaretskii - - Update doc string of 'selective-display' - - * src/buffer.c (syms_of_buffer) : Say that - using it with the value of 't' is obsolete. (Bug#1092) - -2016-01-30 Alan Mackenzie - - Make C++ buffers writeable when writing their initial text properties. - - This is a correction to yesterday's CC Mode patch. - - * lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): Put - c-save-buffer-state around the function rather than a mere `let'. - -2016-01-30 Michael Albinus - - Additional changes for "make check-expensive" - - * CONTRIBUTE : Encourage use of ":tags '(:expensive-test)". - Explain make target `check-expensive'. - - * etc/NEWS: Mention new make target `check-expensive'. - - * test/automated/Makefile.in (check-doit): New target. - (check, check-expensive): Use it. - -2016-01-30 Alan Mackenzie - - Apply text properties for <, > in new after-change function (C++ Java Modes). - - These are category/syntax-table properties to give < and > paren syntax. - Also apply certain `c-type' text properties to the insides of <..> constructs - to ensure that identifiers contained by them get fontified. This patch fixes - bug #681. - - * lisp/progmodes/cc-cmds.el (c-electric-lt-gt): Reformulate due to new - after-change action. - - * lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): Expand - change region to include s which might not be already marked as - parens, rather than just when paren text properties are removed. - (c-restore-<>-properties): New after-change function, which applies text - properties marking < and > with paren syntax. - - * lisp/progmodes/cc-fonts.el (c-font-lock-declarations): Ensure `c-type' - properties are applied to the interiors of <...> constructs, to ensure - fontification of identifiers there. - - * lisp/progmodes/cc-langs.el (c-before-font-lock-functions): Add - c-restore-<>-properties to this list for C++ and Java. - - * lisp/progmodes/cc-mode.el (c-common-init): When invoking - c-before-font-lock-functions, exclude c-restore-<>-properties from the - functions invoked. - (c-before-change): Initialize c-new-BEG/END here (rather than c-after-change) - to allow modification by before-change functions. - (c-after-change): Amend c-new-END here, rather than initializing it and - c-new-BEG. - -2016-01-30 Michael Albinus - - Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 - -2016-01-30 Michael Albinus - - Introduce check-expensive tests. - - * Makefile.in (check-expensive): - * test/automated/Makefile.in (check-expensive): New target. - - * test/automated/auto-revert-tests.el - (auto-revert-test01-auto-revert-several-files): - * test/automated/file-notify-tests.el (file-notify--deftest-remote): - * test/automated/tramp-tests.el (tramp-test26-process-file) - (tramp-test27-start-file-process, tramp-test28-shell-command) - (tramp-test29-vc-registered) - (tramp-test31-special-characters-with-stat) - (tramp-test31-special-characters-with-perl) - (tramp-test31-special-characters-with-ls) - (tramp-test32-utf8-with-stat, tramp-test32-utf8-with-perl) - (tramp-test32-utf8-with-ls, tramp-test33-asynchronous-requests) - (tramp-test35-unload): Tag the tests as :expensive-test. - -2016-01-30 Lars Magne Ingebrigtsen - - shr-tag-video bug fix - - * shr.el (shr-tag-video): Protect against the `poster' being - empty. - -2016-01-30 Michael Albinus - - Minor fixes in tramp-tests.el - - * test/automated/tramp-tests.el (tramp-test26-process-file): - Move point properly. - (tramp-test29-vc-registered): Work with relative file names. - -2016-01-30 Eli Zaretskii - - Ensure redisplay when 'truncate-lines' is set - - * lisp/frame.el (redisplay--variables): Add 'truncate-lines'. - (Bug#22303) - -2016-01-30 Eli Zaretskii - - Fix a doc string of 'transient-mark-mode' - - * src/buffer.c (syms_of_buffer) : Prevent - "lambda" in doc string from becoming a link to lambda expressions. - -2016-01-30 Eli Zaretskii - - MS-Windows followup to latest gnulib update - - * nt/gnulib.mk (EXTRA_DIST): Add ignore-value.h. - -2016-01-30 Paul Eggert - - Spelling fix - -2016-01-30 Jens Lechtenboerger - - Do secure signed Bcc handling - - * lisp/gnus/message.el (message-send): Do secure signed Bcc handling - (bug#18718). - -2016-01-30 Paul Eggert - - Avoid stdio in SIGINT handler - - * admin/merge-gnulib (GNULIB_MODULES): Add ignore-value. - * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. - * lib/ignore-value.h: New file, from gnulib. - * src/keyboard.c: Include it. - (write_stdout, read_stdin): New functions. - (handle_interrupt): Use them instead of printf and getchar, - and avoid fflush when handling signals. - -2016-01-30 Paul Eggert - - * doc/misc/texinfo.tex: Revert unwanted copyright change. - -2016-01-30 Artur Malabarba - - * lisp/align.el (align): Simplify a lambda - - * lisp/align.el (align): Fix arg order in call to `align-region' - -2016-01-30 Eli Zaretskii - - Fix compilation next-error in buffers with selective-display - - * lisp/progmodes/compile.el (compilation-beginning-of-line): New - function. - (compilation-internal-error-properties) - (compilation-next-error-function, compilation-set-window): Use - it. (Bug#1092) - -2016-01-30 Lars Magne Ingebrigtsen - - * lisp/net/nsm.el (nsm-check-protocol): Fix typo in the message. - -2016-01-30 Lars Magne Ingebrigtsen - - Add SHA1 warnings for high network security settings - - * lisp/net/nsm.el (nsm-check-protocol): When using high security, warn - about SHA1 certificates, which are now believed to be open to - spoofing. - -2016-01-30 Jens Lechtenboerger - - Refactor mml-smime.el, mml1991.el, mml2015.el - - (Maybe this is the last merge from Gnus git to Emacs git) - - Cf. discussion on ding mailing list, messages in - . - Common code from the three files mml-smime.el, mml1991.el, and - mml2015.el is moved to mml-sec.el. Auxiliary functions are added - to gnus-util.el. - - The code is supported by test cases with necessary test keys. - - Documentation in message.texi is updated. - - * doc/misc/message.texi (Security, Using S/MIME): - Update for refactoring mml-smime.el, mml1991.el, mml2015.el. - (Using OpenPGP): Rename from "Using PGP/MIME"; update contents. - (Passphrase caching, Encrypt-to-self, Bcc Warning): New sections. - - * lisp/gnus/gnus-util.el (gnus-test-list, gnus-subsetp, gnus-setdiff): - New functions. - - * lisp/gnus/mml-sec.el: Require gnus-util and epg. - (epa--select-keys): Autoload. - (mml-signencrypt-style-alist, mml-secure-cache-passphrase): Doc fix. - (mml-secure-openpgp-signers): New user option; - make mml1991-signers and mml2015-signers obsolete aliases to it. - (mml-secure-smime-signers): New user option; - make mml-smime-signers an obsolete alias to it. - (mml-secure-openpgp-encrypt-to-self): New user option; - make mml1991-encrypt-to-self and mml2015-encrypt-to-self obsolete - aliases to it. - (mml-secure-smime-encrypt-to-self): New user option; - make mml-smime-encrypt-to-self an obsolete alias to it. - (mml-secure-openpgp-sign-with-sender): New user option; - make mml2015-sign-with-sender an obsolete alias to it. - (mml-secure-smime-sign-with-sender): New user option; - make mml-smime-sign-with-sender an obsolete alias to it. - (mml-secure-openpgp-always-trust): New user option; - make mml2015-always-trust an obsolete alias to it. - (mml-secure-fail-when-key-problem, mml-secure-key-preferences): - New user options. - (mml-secure-cust-usage-lookup, mml-secure-cust-fpr-lookup) - (mml-secure-cust-record-keys, mml-secure-cust-remove-keys) - (mml-secure-add-secret-key-id, mml-secure-clear-secret-key-id-list) - (mml-secure-cache-passphrase-p, mml-secure-cache-expiry-interval) - (mml-secure-passphrase-callback, mml-secure-check-user-id) - (mml-secure-secret-key-exists-p, mml-secure-check-sub-key) - (mml-secure-find-usable-keys, mml-secure-select-preferred-keys) - (mml-secure-fingerprint, mml-secure-filter-keys) - (mml-secure-normalize-cust-name, mml-secure-select-keys) - (mml-secure-select-keys-1, mml-secure-signer-names, mml-secure-signers) - (mml-secure-self-recipients, mml-secure-recipients) - (mml-secure-epg-encrypt, mml-secure-epg-sign): New functions. - - * lisp/gnus/mml-smime.el: Require epg; - refactor declaration and autoloading of epg functions. - (mml-smime-use): Doc fix. - (mml-smime-cache-passphrase, mml-smime-passphrase-cache-expiry): - Obsolete. - (mml-smime-get-dns-cert, mml-smime-get-ldap-cert): - Use format instead of gnus-format-message. - (mml-smime-epg-secret-key-id-list): Remove variable. - (mml-smime-epg-passphrase-callback, mml-smime-epg-find-usable-key) - (mml-smime-epg-find-usable-secret-key): Remove functions. - (mml-smime-epg-sign, mml-smime-epg-encrypt): Refactor. - - * lisp/gnus/mml1991.el (mml1991-cache-passphrase) - (mml1991-passphrase-cache-expiry): Obsolete. - (mml1991-epg-secret-key-id-list): Remove variable. - (mml1991-epg-passphrase-callback, mml1991-epg-find-usable-key) - (mml1991-epg-find-usable-secret-key): Remove functions. - (mml1991-epg-sign, mml1991-epg-encrypt): Refactor. - - * lisp/gnus/mml2015.el (mml2015-cache-passphrase) - (mml2015-passphrase-cache-expiry): Obsolete. - (mml2015-epg-secret-key-id-list): Remove variable. - (mml2015-epg-passphrase-callback, mml2015-epg-check-user-id) - (mml2015-epg-check-sub-key, mml2015-epg-find-usable-key) - (mml2015-epg-find-usable-secret-key): Remove functions. - (mml2015-epg-decrypt, mml2015-epg-clear-decrypt, mml2015-epg-sign) - (mml2015-epg-encrypt): Refactor. - -2016-01-30 Glenn Morris - - * lisp/progmodes/fortran.el (fortran-make-syntax-propertize-function): - - Explicitly ignore case. (Bug#22262) - -2016-01-30 Stefan Monnier - - (semantic-symref-derive-find-filepatterns): Return a list - - * lisp/cedet/semantic/symref/grep.el - (semantic-symref-derive-find-filepatterns): Return a list. - (semantic-symref-perform-search): Quote the result here once and for all. - -2016-01-30 Eli Zaretskii - - Fix xref-find-references on MS-Windows - - * lisp/cedet/semantic/symref/grep.el - (semantic-symref-derive-find-filepatterns): Use - 'shell-quote-argument' instead of manually quoting in a way that - only works with Posix shells. (Bug#22289) - -2016-01-30 Eli Zaretskii - - Document new features of tildify-mode - - * lisp/textmodes/tildify.el (tildify-foreach-ignore-environments) - (tildify-mode): Spelling fixes in doc strings. - - * etc/NEWS: Reformat the tildify-mode entry. - -2016-01-30 Eli Zaretskii - - Document new features of Whitespace mode - - * doc/emacs/display.texi (Useless Whitespace): Document - 'whitespace-toggle-options' and the new 'big-indent' style. - Document 'whitespace-big-indent-regexp'. Document the Global - Whitespace mode. - -2016-01-30 Eli Zaretskii - - Improve documentation of new Hide-IfDef features - - * etc/NEWS: Expand and reword Hide-IfDef section. - -2016-01-30 Leo Liu - - Fix regression in font-locking cl-assert and cl-check-type - - * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): Fix - el-errs-re. - -2016-01-30 Paul Eggert - - Spelling and grammar fixes - -2016-01-30 Paul Eggert - - Fix copyright years by hand - - These are dates that admin/update-copyright did not update, or - updated incorrectly. - -2016-01-30 Paul Eggert - - Update copyright year to 2016 - - Run admin/update-copyright. - -2016-01-30 Paul Eggert - - Merge from gnulib - - This mostly just updates copyright dates of gnulib files. - It also updates to the latest version of texinfo.tex. - -2016-01-30 Mark Oteiza - - lisp/emacs-lisp/chart.el (chart-new-buffer): Move to silence byte compiler. - -2016-01-30 Mark Oteiza - - Port chart.el methods to cl-generic. - - cl-call-next-method cannot be used inside EIEIO's defmethod. - * lisp/emacs-lisp/chart.el: Require cl-generic at compile time. - * lisp/emacs-lisp/chart.el (initialize-instance, chart-draw): - (chart-draw-title, chart-size-in-dir, chart-draw-axis): - (chart-axis-draw, chart-translate-xpos, chart-translate-ypos): - (chart-translate-namezone, chart-draw-data, chart-add-sequence): - (chart-trim, chart-sort): Use cl-defmethod instead of defmethod. - -2016-01-30 Brian Burns - - Add nt/INSTALL.W64 build instructions - - * nt/INSTALL.W64: New file. - * nt/INSTALL: Point to INSTALL.W64 for 64-bit build instructions. - -2016-01-30 Joakim Jalap - - Add new input method 'programmer-dvorak' - - * lisp/leim/quail/programmer-dvorak.el ("programmer-dvorak"): New - input method. - - * etc/NEWS: Mention it. - -2016-01-30 Eli Zaretskii - - Allow to invoke original M-TAB binding in 'flyspell-prog-mode' - - * lisp/textmodes/flyspell.el (flyspell-prog-mode): Record the - original M-TAB binding in a buffer-local variable. - (flyspell-auto-correct-word): Invoke the original binding of M-TAB - if that is recorded, when point is in a place where flyspell - should not be active (e.g., because the user turned on - 'flyspell-prog-mode'). (Bug#18533) - -2016-01-30 Eli Zaretskii - - Fix EWW rendering of long RTL lines - - * lisp/net/shr.el (shr-insert-document): Undo any previous hscroll - of the selected window before filling its lines. (Bug#22250) - -2016-01-30 Vincent Belaïche - - fix bug#21054 - - * lisp/ses.el (ses-check-curcell): Call `ses-set-curcell' unconditionally - -2016-01-30 YAMAMOTO Mitsuharu - - Clean up cairo printing code - - * src/gtkutil.c (xg_get_page_setup): Use listn. - * src/xfns.c (Fx_export_frames, Fx_print_frames_dialog): Doc fix. Use - decode_window_system_frame and FRAME_VISIBLE_P. - (Fx_print_frames_dialog): Use redisplay_preserve_echo_area instead - of Fdisplay. - * src/xterm.c (x_cr_export_frames): Use redisplay_preserve_echo_area - instead of Fdisplay. Temporarily unblock_input around QUIT. - -2016-01-30 YAMAMOTO Mitsuharu - - Move variables to inner loop, preparing for Mac port merge - - * src/keyboard.c (command_loop_1): Move variables `cmd', - `keybuf', and `i' to inner loop. - -2016-01-30 YAMAMOTO Mitsuharu - - Add handle_user_signal_hook - - * src/keyboard.h (handle_user_signal_hook): New declaration. - * src/keyboard.c (handle_user_signal_hook): New variable. - (handle_user_signal): Call it. - -2016-01-30 YAMAMOTO Mitsuharu - - Avoid writing to purespace - - * src/alloc.c (Fmake_string): Don't write to empty string contents. - (allocate_vector): Don't write to empty vector size. - * src/character.h (CHECK_CHARACTER_CAR, CHECK_CHARACTER_CDR): - Don't call unnecessary XSETCAR or XSETCDR. - * src/lisp.h (STRING_SET_UNIBYTE, STRING_SET_MULTIBYTE): Don't - write to empty string size_byte. - -2016-01-30 YAMAMOTO Mitsuharu - - Remove unused variable - - * lisp/international/mule-cmds.el: Remove unused variable - `mac-system-coding-system'. - -2016-01-30 YAMAMOTO Mitsuharu - - * configure.ac: Find libxml2 headers in Xcode SDK dir on Darwin. - -2016-01-30 YAMAMOTO Mitsuharu - - Use posix_openpt instead of openpty on Darwin - - * configure.ac (PTY_ITERATION, FIRST_PTY_LETTER, PTY_OPEN) - (PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF): Remove - Darwin-specific definitions. Use posix_openpt instead. - -2016-01-30 Shakthi Kannan - - Document support for ':documentation' in Lisp mode - - * lisp/emacs-lisp/lisp-mode.el (lisp-string-in-doc-position-p) - (lisp-string-after-doc-keyword-p) - (lisp-font-lock-syntactic-face-function): Add doc strings. - -2016-01-30 Shakthi Kannan - - Document new features of TeX mode - - * doc/emacs/text.texi (TeX Print): Document - 'tex-print-file-extension'. - * doc/emacs/programs.texi (Misc for Programs): Document support - for Prettify Symbols mode in TeX mode. - -2016-01-30 Eli Zaretskii - - Clarify docs of hscroll in RTL text - - * doc/lispref/windows.texi (Horizontal Scrolling): Clarify the - meaning of a window's horizontal scroll amount for RTL paragraphs. - -2016-01-30 Eli Zaretskii - - Fix rendering of HTML pages that use character composition - - * src/indent.c (Fvertical_motion): Fix the case when point starts - in the middle of a composition, as in shr-vertical-motion. - (Bug#22250) - -2016-01-30 Eli Zaretskii - - Avoid some compiler warnings in w32.c - - * src/w32.c (codepage_for_filenames, crlf_to_lf) - (ansi_encode_filename, socket_to_fd, sys_write) - (check_windows_init_file): Avoid compiler warnings about - differences in pointer signedness. - -2016-01-30 Dmitry Gutov - - Undo ill-advised change - - * lisp/progmodes/xref.el (xref-collect-matches): Undo - ill-advised change. The hits come in the order that `find' - produces them in, which isn't alphabetical. - -2016-01-30 Dmitry Gutov - - Unbreak completion in python-mode buffers - - * lisp/progmodes/python.el (python-shell-completion-at-point): - Unbreak in python-mode buffers. - -2016-01-30 Eli Zaretskii - - Fix typos in CC Mode manual - - * doc/misc/cc-mode.texi (c-offsets-alist, Style Variables): Fix - typos. (Bug#22267) - -2016-01-30 Eli Zaretskii - - Avoid assertion violations in compact_font_cache_entry - - * src/alloc.c (compact_font_cache_entry): Don't use VECTORP to - avoid assertion violation in ASIZE. (Bug#22263) - -2016-01-30 Eli Zaretskii - - Fix filling text with bidirectional characters in shr.el - - * lisp/net/shr.el (shr-insert-document): Bind - bidi-display-reordering to nil while filling lines. This is - required for when a line includes characters whose bidi - directionality is opposite to the base paragraph direction, - because columns are counted in the logical order. (Bug#22250) - -2016-01-30 Martin Rudalics - - * src/xfns.c (x_create_tip_frame): Process alpha parameter. - -2016-01-30 Michael Albinus - - Sync with Tramp 2.2.13 - - * doc/misc/trampver.texi: Change version to "2.2.13.25.1". - - * lisp/net/tramp-compat.el (tramp-compat-delete-dups): - Use `tramp-compat-funcall'. - - * lisp/net/tramp-gvfs.el (tramp-gvfs-parse-device-names): - Make `split-string' call compatible with older Emacsen. - - * lisp/net/trampver.el: Change version to "2.2.13.25.1". - -2016-01-30 Lambda Coder - - * doc/misc/tramp.texi: Editorial revisions to the Tramp manual - -2016-01-30 Lars Ingebrigtsen - - Mention that tls.el is secure by default, and will fail - -2016-01-30 Lars Ingebrigtsen - - Make tls.el use trustfiles by default - - * lisp/net/tls.el (tls-program): Add a certfile by default (bug#21227). - (open-tls-stream): Insert the trustfile by looking at - `gnutls-trustfiles'. - -2016-01-30 Lars Ingebrigtsen - - Refactor out gnutls-trustfiles - - * lisp/net/gnutls.el (gnutls-trustfiles): Refactor out for reuse by tls.el. - -2016-01-30 Lars Ingebrigtsen - - Remove --insecure from gnutls-cli invocation - - * tls.el (tls-program): Default to using secure TLS - connections (bug#19284). - -2016-01-30 Paul Eggert - - Spelling fix - -2016-01-30 Paul Eggert - - Port report-emacs-bug to deterministic builds - - * lisp/mail/emacsbug.el (report-emacs-bug): Future-proof the - recent "built on" change to deterministic builds where - emacs-build-system will be nil. See: - http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01369.html - -2016-01-30 Jose A. Ortega Ruiz (tiny change) - - Fix URL auth error message - - * lisp/url/url-http.el (url-http-handle-authentication): Make the error - message more correct (bug#20069). - -2016-01-30 Lars Ingebrigtsen - - shr link traversal fixup - - * shr.el (shr-next-link): Don't bug out on adjacent links. - - Backport: - - (cherry picked from commit 1efc5f8b09273c359683ce13be95fb5df7a84311) - -2016-01-30 Tom Tromey - - set :safe on css-indent-offset - - * lisp/textmodes/css-mode.el (css-indent-offset): Add :safe 'integerp. - -2016-01-30 Lars Ingebrigtsen - - * eww.el (eww-mode): Remove superfluous bidi reset. - -2016-01-30 James Stout (tiny change) - - Make chunked encoding trailer detection more compliant - - * lisp/url/url-http.el - (url-http-chunked-encoding-after-change-function): Make - trailer detection more compliant (bug#16345). - -2016-01-30 Martin Rudalics - - Fix Bug#10873 in `report-emacs-bug' - - * lisp/mail/emacsbug.el (report-emacs-bug): If - `report-emacs-bug-no-explanations' is nil, make sure we can show - mail and warnings buffer on this frame (Bug#10873). - -2016-01-30 Lars Ingebrigtsen - - Always reset the bidi direction - - * eww.el (eww-display-html): Always reset the bidi direction - to `left-to-right' (bug#22257). - -2016-01-30 Alan Mackenzie - - Allow line comments ending with escaped NL to be continued to the next line. - - Use this in C, C++, and Objective C Modes. Fixes bug#22246 - - * src/syntax.c (comment-end-can-be-escaped): New buffer local variable. - (forw-comment, back-comment): On encountering an end of comment character, - test whether it is escaped when `comment-end-can-be-escaped' is non-nil. - - * doc/lispref/syntax.texi (Control Parsing): Describe - `comment-end-can-be-escaped'. - - * etc/NEWS (Lisp Changes): Describe `comment-end-can-be-escaped'. - - * lisp/progmodes/cc-langs.el: New c-lang-setvar `comment-end-can-be-escaped'. - -2016-01-30 Dmitry Gutov - - Rename project-library-roots to project-external-roots - - * lisp/progmodes/project.el (project-library-roots): Rename to - project-external-roots. - (project-library-roots-function): Rename to - project-vc-external-roots-function. Only use it in the VC - backend, for now. Update project-external-roots accordingly. - (project-vc-library-roots): Remove. - (project-or-libraries-find-regexp): - Rename to project-or-external-find-regexp. - - * lisp/progmodes/elisp-mode.el (elisp-library-roots): - Rename to elisp-load-path-roots. - - * lisp/progmodes/etags.el (etags-library-roots): Remove. Use - an anonymous function for the default value of - project-vc-external-roots-function. - -2016-01-30 Deniz Dogan - - Clear erc user list upon disconnection - - * lisp/erc/erc-backend.el (erc-process-sentinel): Clear channel user - lists upon disconnection. This prevents invalid channel - user lists when reconnecting (bug#10947). - -2016-01-30 Lars Ingebrigtsen - - Don't bug out in erc after waking from sleep - - * lisp/erc/erc-backend.el (erc-server-send-ping): If the server has - closed connection, this may already have been detected and - `erc-server-last-received-time' has been set to nil (bug#13608). - -2016-01-30 David Edmondson - - Proxy error in erc with multiple clients - - * lisp/erc/erc.el (erc-channel-receive-names): Fix errors - generated when multiple IRC clients talk to a single IRC proxy - (bug#19034). - - Backport: - - (cherry picked from commit 507e98a54d1aa37823c64993d6b59257a82fe8f4) - -2016-01-30 Dima Kogan - - Ensure that we don't have several timers in erc - - * lisp/erc/erc-backend.el (erc-server-setup-periodical-ping): Checks - for existing timers in the alist before adding new ones. If a - timer already exists, it is cancelled and - overwritten. (bug#19292). - -2016-01-30 Jens Lechtenboerger - - Fix mml-sec build warnings - - * lisp/gnus/mml-sec.el: Fix warnings by adding autoloads - (bug#18718). - - Backport: - - (cherry picked from commit 3603097f62f5f4aa5451716e9ac380161f6829e2) - -2016-01-30 Lars Ingebrigtsen - - Don't insert erc logs at the end - - * lisp/erc/erc-log.el (erc-log-setup-logging): Insert the previous log - at the start of the buffer, not at the end (bug#20496). - -2016-01-30 Lars Ingebrigtsen - - (eww-setup-buffer): Restore left-to-right defaults - - * eww.el (eww-setup-buffer): Restore left-to-right defaults. - - Backport: - - (cherry picked from commit 96c874b96b617c124d500a94de761a61f2a08685) - -2016-01-30 Lars Ingebrigtsen - - Don't join erc channels doubly - - * lisp/erc/erc-join.el (erc-autojoin-channels): Don't join channels - more than once (if you have several nicks) (bug#20695). - -2016-01-30 Eli Zaretskii - - Avoid leaving "ghost" of mouse pointer on MS-Windows - - * src/w32term.c (frame_set_mouse_pixel_position): - * src/w32fns.c (Fw32_mouse_absolute_pixel_position): Momentarily - disable "mouse trails" when moving the mouse pointer. (Bug#22247) - * src/w32term.c (frame_set_mouse_pixel_position): Include - w32common.h. - -2016-01-30 Krzysztof Jurewicz (tiny change) - - Fix auth source lookups from erc with port numbers - - * lisp/erc/erc.el (erc-open): `auth-source' wants strings, not port - numbers (bug#20541). - -2016-01-30 Fran Litterio - - Run erc-kill-channel-hook always on exit - - * lisp/erc/erc.el (erc-kill-buffer-function): Run erc-kill-channel-hook - when erc-kill-queries-on-quit is set (bug#21187). - -2016-01-30 Paul Eggert - - Spelling fix - - * test/automated/url-parse-tests.el: - (url-generic-parse-url/same-document-reference): - Rename from url-generic-parse-url/same-decument-reference. - -2016-01-30 Paul Eggert - - Reword initial *scratch* for brevity, appearance - - * lisp/startup.el (initial-scratch-message): - Reword to avoid apostrophes, and to make it shorter. - See the thread starting in: - http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01241.html - -2016-01-30 Leo Liu - - Add ert-deftest to lisp-mode.el - - * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression, - lisp-el-font-lock-keywords-1): Add ert-deftest. - -2016-01-30 Lars Ingebrigtsen - - Mark imap changes as not needing doc changes - - * lisp/net/imap.el (imap-ssl-open): Remove - -2016-01-30 Lars Ingebrigtsen - - Use built-in encryption in imap.el - - * lisp/net/imap.el (imap-ssl-program): Remove (bug#21134). - (imap-starttls-open): Use open-network-stream instead of starttls.el. - (imap-tls-open): Use open-network-stream instead of tls.el. - -2016-01-30 Eli Zaretskii - - Don't try using /bin/sh in artist.el on MS-Windows - - * lisp/textmodes/artist.el (artist-figlet-get-font-list-windows): - New function. - (artist-figlet-choose-font): Use it on MS-Windows and MS-DOS. - (Bug#20167) - -2016-01-30 Wolfgang Jenkner - - Always define gmalloc etc. in src/gmalloc.c -2016-01-19 John Wiegley - - - - -2016-01-19 John Wiegley - - Merge from origin/emacs-25 - - 3ae7934 ; * etc/NEWS: Mark entries that don't need further treatment. - 6165c36 * lisp/files.el (dir-locals--all-files): Respect absolute file-names - 2ffdf15 * lisp/help-fns.el (describe-variable): Fix a left-over parenthesis - 71ecd62 * lisp/dired-x.el (dired-omit-here-always): Use add-dir-local-variable - f0b82b3 * lisp/files.el (dir-locals--all-files): Use completion instead of wildcards - 86e4513 Fix incompatbilities with MS-Windows 2000 and older - 4e96521 Mention in PROBLEMS an issue with MS-Windows NT4 - 15c23aa Ensure 8-byte aligned memory allocation on MS-Windows 9X - 39afa42 Fix tests for active region in hideif.el - 05df666 Fix interactive specs in some hideif.el commands - -2016-01-19 John Wiegley - - - - -2016-01-19 Paul Eggert - - Avoid stdio in SIGINT handler - - * admin/merge-gnulib (GNULIB_MODULES): Add ignore-value. - * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. - * lib/ignore-value.h: New file, from gnulib. - * src/keyboard.c: Include it. - (write_stdout, read_stdin): New functions. - (handle_interrupt): Use them instead of printf and getchar, - and avoid fflush when handling signals. - -2016-01-19 Jens Lechtenboerger - - Refactor mml-smime.el, mml1991.el, mml2015.el - - (Maybe this is the last merge from Gnus git to Emacs git) - - Cf. discussion on ding mailing list, messages in - . - Common code from the three files mml-smime.el, mml1991.el, and - mml2015.el is moved to mml-sec.el. Auxiliary functions are added - to gnus-util.el. - - The code is supported by test cases with necessary test keys. - - Documentation in message.texi is updated. - - * doc/misc/message.texi (Security, Using S/MIME): - Update for refactoring mml-smime.el, mml1991.el, mml2015.el. - (Using OpenPGP): Rename from "Using PGP/MIME"; update contents. - (Passphrase caching, Encrypt-to-self, Bcc Warning): New sections. - - * lisp/gnus/gnus-util.el (gnus-test-list, gnus-subsetp, gnus-setdiff): - New functions. - - * lisp/gnus/mml-sec.el: Require gnus-util and epg. - (epa--select-keys): Autoload. - (mml-signencrypt-style-alist, mml-secure-cache-passphrase): Doc fix. - (mml-secure-openpgp-signers): New user option; - make mml1991-signers and mml2015-signers obsolete aliases to it. - (mml-secure-smime-signers): New user option; - make mml-smime-signers an obsolete alias to it. - (mml-secure-openpgp-encrypt-to-self): New user option; - make mml1991-encrypt-to-self and mml2015-encrypt-to-self obsolete - aliases to it. - (mml-secure-smime-encrypt-to-self): New user option; - make mml-smime-encrypt-to-self an obsolete alias to it. - (mml-secure-openpgp-sign-with-sender): New user option; - make mml2015-sign-with-sender an obsolete alias to it. - (mml-secure-smime-sign-with-sender): New user option; - make mml-smime-sign-with-sender an obsolete alias to it. - (mml-secure-openpgp-always-trust): New user option; - make mml2015-always-trust an obsolete alias to it. - (mml-secure-fail-when-key-problem, mml-secure-key-preferences): - New user options. - (mml-secure-cust-usage-lookup, mml-secure-cust-fpr-lookup) - (mml-secure-cust-record-keys, mml-secure-cust-remove-keys) - (mml-secure-add-secret-key-id, mml-secure-clear-secret-key-id-list) - (mml-secure-cache-passphrase-p, mml-secure-cache-expiry-interval) - (mml-secure-passphrase-callback, mml-secure-check-user-id) - (mml-secure-secret-key-exists-p, mml-secure-check-sub-key) - (mml-secure-find-usable-keys, mml-secure-select-preferred-keys) - (mml-secure-fingerprint, mml-secure-filter-keys) - (mml-secure-normalize-cust-name, mml-secure-select-keys) - (mml-secure-select-keys-1, mml-secure-signer-names, mml-secure-signers) - (mml-secure-self-recipients, mml-secure-recipients) - (mml-secure-epg-encrypt, mml-secure-epg-sign): New functions. - - * lisp/gnus/mml-smime.el: Require epg; - refactor declaration and autoloading of epg functions. - (mml-smime-use): Doc fix. - (mml-smime-cache-passphrase, mml-smime-passphrase-cache-expiry): - Obsolete. - (mml-smime-get-dns-cert, mml-smime-get-ldap-cert): - Use format instead of gnus-format-message. - (mml-smime-epg-secret-key-id-list): Remove variable. - (mml-smime-epg-passphrase-callback, mml-smime-epg-find-usable-key) - (mml-smime-epg-find-usable-secret-key): Remove functions. - (mml-smime-epg-sign, mml-smime-epg-encrypt): Refactor. - - * lisp/gnus/mml1991.el (mml1991-cache-passphrase) - (mml1991-passphrase-cache-expiry): Obsolete. - (mml1991-epg-secret-key-id-list): Remove variable. - (mml1991-epg-passphrase-callback, mml1991-epg-find-usable-key) - (mml1991-epg-find-usable-secret-key): Remove functions. - (mml1991-epg-sign, mml1991-epg-encrypt): Refactor. - - * lisp/gnus/mml2015.el (mml2015-cache-passphrase) - (mml2015-passphrase-cache-expiry): Obsolete. - (mml2015-epg-secret-key-id-list): Remove variable. - (mml2015-epg-passphrase-callback, mml2015-epg-check-user-id) - (mml2015-epg-check-sub-key, mml2015-epg-find-usable-key) - (mml2015-epg-find-usable-secret-key): Remove functions. - (mml2015-epg-decrypt, mml2015-epg-clear-decrypt, mml2015-epg-sign) - (mml2015-epg-encrypt): Refactor. - -2016-01-19 Paul Eggert - - Merge from gnulib - - This mostly just updates copyright dates of gnulib files. - It also updates to the latest version of texinfo.tex. - -2016-01-19 YAMAMOTO Mitsuharu - - Move variables to inner loop, preparing for Mac port merge - - * src/keyboard.c (command_loop_1): Move variables `cmd', - `keybuf', and `i' to inner loop. - -2016-01-19 Paul Eggert - - Minor improvements to (random t) documentation - - * doc/lispref/numbers.texi (Random Numbers): - * src/fns.c (Frandom): - Omit unnecessary details about randomness fallback. - Say that it is a fallback. - -2016-01-19 Dmitry Gutov - - Rename methods in Ruby etags example file - - * test/etags/ruby-src/test.rb: Rename the example methods to - correspond to the common terminology used in Ruby. - * test/etags/CTAGS.good: - * test/etags/ETAGS.good_1: - * test/etags/ETAGS.good_2: - * test/etags/ETAGS.good_3: - * test/etags/ETAGS.good_4: - * test/etags/ETAGS.good_5: - * test/etags/ETAGS.good_6: Adjust accordingly. - -2016-01-18 Dmitry Gutov - - Propertize backtick in 'def `(abc)' as symbol constituent - - * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): - Propertize backtick in 'def `(abc)' as symbol constituent. - (ruby-syntax-propertize-function): - Rename to ruby-syntax-propertize. - -2016-01-18 Eli Zaretskii - - Fix scrolling under scroll-preserve-screen-position on TTY - - * src/window.c (window_scroll_line_based): When setting point to - preserve screen coordinates, don't let cursor enter either of the - two scroll margins. (Bug#22395) - -2016-01-18 Lars Magne Ingebrigtsen - - Fix shr table rendering of nested tables - - * shr.el (shr-table-body): Don't include all tbodies in nested - tables in the levels above. - -2016-01-18 Dmitry Gutov - - * lisp/progmodes/project.el (project--read-regexp): Quote the identifier. - -2016-01-18 Dmitry Gutov - - Add xref-based replacements for Dired search commands - - * lisp/dired-aux.el (dired-do-find-regexp) - (dired-do-find-regexp-and-replace): New commands. - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00864.html - - * lisp/dired.el (dired-mode-map): Change bindings for `A' and - `Q' to the new commands. - - * lisp/progmodes/xref.el (xref-query-replace) - (xref-collect-matches): Add progress reporters. - (xref--find-ignores-arguments): Return nil for zero ignores. - (xref--show-xrefs): Add an optional argument. - (xref-collect-matches): Drop the assert. 'find' accepts a - regular file in place of directory argument, too. - -2016-01-18 Alan Mackenzie - - * doc/lispref/frames.texi (Position Parameters): Say they don't exist on TTYs. - -2016-01-18 Eli Zaretskii - - Improve user documentation of Xref - - * doc/emacs/maintaining.texi (Xref, Find Identifiers) - (Looking Up Identifiers, Identifier Search, List Identifiers): - Adjudicate comments by Dmitry Gutov . See - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00650.html - for the details. - -2016-01-18 Eli Zaretskii - - Fix scrolling under scroll-preserve-screen-position and margins - - * src/window.c (window_scroll_pixel_based): When setting point to - preserve screen coordinates, don't let cursor enter either of the - two scroll margins. Fix incorrect usage of - WINDOW_WANTS_HEADER_LINE_P and use WINDOW_HEADER_LINE_HEIGHT - instead of CURRENT_HEADER_LINE_HEIGHT. (Bug#22395) - -2016-01-18 Eli Zaretskii - - Unbreak the MS-Windows build - - * src/sysdep.c (emacs_gnutls_global_init, gnutls_rnd): Disable for - WINDOWSNT, to avoid link failure. (Bug#22202) - -2016-01-18 Alan Mackenzie - - Desktop: protect users against inadvertant upgrading of desktop file. - - An upgraded (version 208) desktop file cannot be read in Emacs < 25. - - * etc/NEWS: Add an entry about upgrading a desktop file. - - * lisp/desktop.el (desktop-file-version): Amend doc string. - (desktop-native-file-version, desktop-io-file-version): new variables. - (desktop-clear): Set desktop-io-file-version to nil. - (desktop-buffer-info): make the presence of the last item on the list - conditional on (>= desktop-io-file-version 208). - (desktop-save): Add extra parameter VERSION to take user's C-u or C-u C-u. - Amend the doc string. Add code to determine the output file version. - (desktop-create-buffer): Set desktop-io-file-version to the input file's - version. - -2016-01-17 Paul Eggert - - Initialize GnuTLS before calling gnutls_rnd - - * src/gnutls.c (emacs_gnutls_global_init): Now extern. - Don’t set gnutls_global_initialized if gnutls_global_init fails. - * src/sysdep.c: Include "gnutls.h", and - if 2.12 or later, which has gnutls_rnd. - (emacs_gnutls_global_init, gnutls_rnd): New fallback - placeholder macros if before 2.12. - (init_random): Initialize gnutls globals before trying to - use gnutls_rnd. - -2016-01-17 Andreas Schwab - - Don't use GnuTLS before it is initialized - - * src/sysdep.c (init_random): Don't use gnutls_rnd. - -2016-01-17 Bill Wohler - - * mh-e.el (mh-version): Add +git to version. - -2016-01-17 Paul Eggert - - Port cleanup attribute to OpenBSD - - The OpenBSD C compiler issues false alarms about strcpy, strcat, and - sprintf, and this messes up 'configure' when it tests for the cleanup - attribute. Work around the problem by using __has_attribute directly. - Problem reported by Joakim Jalap (Bug#22385). - * configure.ac: Don’t use AX_GCC_VAR_ATTRIBUTE. - * m4/ax_gcc_var_attribute.m4: Remove. - * src/conf_post.h (__has_attribute): Provide a substitute, for - non-GCC or older GCC compilers. All uses changed to assume - the substitute. Check for the cleanup attribute. - * src/emacs-module.c (module_has_cleanup): Just use __has_attribute. - -2016-01-17 Paul Eggert - - Prefer GnuTLS when acquiring random seed - - This attempts to improve on the fix for Bug#22202. - * configure.ac (HAVE_DEV_URANDOM): Remove. - Check /dev/urandom existence at run time, not at build time, - since the device could exist in the former but not the latter. - * src/sysdep.c [HAVE_GNUTLS]: Include gnutls/gnutls.h. - (gnutls_rnd) [GNUTLS_VERSION_NUMBER < 0x020c00]: New fallback macro. - (random_seed): New typedef. - (set_random_seed): New static function. - (seed_random): Use them. - (init_random): Use random_seed instead of uintmax_t, so as to - not consume more entropy than needed. Prefer gnutls_rnd if it - works; this avoids a redundant open of /dev/urandom on - GNU/Linux with modern GnuTLS. - -2016-01-16 Eli Zaretskii - - Improve documentation of dynamic modules - - * doc/lispref/loading.texi (How Programs Do Loading): Update the - description of searching for files in 'load' when Emacs was built - with support for dynamic modules. - -2016-01-16 Eli Zaretskii - - * INSTALL: Document --with-modules. - -2016-01-16 Eli Zaretskii - - Document 'function-put' - - * doc/lispref/symbols.texi (Symbol Plists): Document - 'function-put'. Update documentation of 'function-get'. - -2016-01-16 Eli Zaretskii - - Document 'funcall-interactively' - - * doc/lispref/commands.texi (Interactive Call): Document - 'funcall-interactively'. - * doc/lispref/functions.texi (Calling Functions): Mention - 'funcall-interactively' and provide a cross-reference. - -2016-01-16 Eli Zaretskii - - * doc/lispref/lists.texi (Association Lists): Document 'alist-get'. - - * doc/lispref/strings.texi (Text Comparison): Document 'string-greaterp'. - -2016-01-16 Eli Zaretskii - - Document renaming of selection-related functions - - * doc/lispref/frames.texi (Window System Selections): Rename "x-*" - functions into the corresponding "gui-*" functions. Make the - description slightly less X-centric. - -2016-01-16 Eli Zaretskii - - * doc/lispref/macros.texi (Expansion): Document 'macroexpand-1'. - -2016-01-16 Eli Zaretskii - - Document 'define-inline' - - * doc/lispref/functions.texi (Defining Functions): Document - 'define-inline' and related macros. - - * lisp/emacs-lisp/inline.el (inline-letevals): Doc fix. - -2016-01-16 Artur Malabarba - - * lisp/files.el (dir-locals--all-files): Respect absolute file-names - - * lisp/help-fns.el (describe-variable): Fix a left-over parenthesis - -2016-01-16 Artur Malabarba - - * lisp/dired-x.el (dired-omit-here-always): Use add-dir-local-variable - - instead of manually writing a dir-locals file. - -2016-01-16 Artur Malabarba - - * lisp/files.el (dir-locals--all-files): Use completion instead of wildcards - - (dir-locals-file) - * lisp/files-x.el (modify-dir-local-variable) - * lisp/dos-fns.el (dosified-file-name) - * lisp/help-fns.el (describe-variable): Change accordingly. - -2016-01-16 Jussi Lahdenniemi (tiny change) - - Fix incompatbilities with MS-Windows 2000 and older - - * src/w32.c : New global variable. - (filename_to_utf16, filename_from_ansi, check_windows_init_file): - Use it instead of the literal MB_ERR_INVALID_CHARS. - (maybe_load_unicows_dll): Initialize multiByteToWideCharFlags as - appropriate for the underlying OS version. For details, see - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00835.html. - * src/w32.h: Declare multiByteToWideCharFlags. - * src/w32fns.c (Fx_file_dialog, Fw32_shell_execute) - (add_tray_notification): Use multiByteToWideCharFlags instead of - the literal MB_ERR_INVALID_CHARS. - (_resetstkoflw_proc): New typedef. - (w32_reset_stack_overflow_guard): Call _resetstkoflw via a - pointer, as this function is absent in msvcrt.dll shipped with W2K - and older systems. - -2016-01-16 Eli Zaretskii - - Mention in PROBLEMS an issue with MS-Windows NT4 - - * etc/PROBLEMS (MS-Windows): Mention the problem with Shell32.dll - on Windows NT4. For the details, see - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00835.html. - -2016-01-16 Jussi Lahdenniemi (tiny change) - - Ensure 8-byte aligned memory allocation on MS-Windows 9X - - * src/w32heap.c (init_heap): Redirect malloc, realloc, and free to - special functions on Windows 9X. Refuse to dump Emacs on Windows 9X. - (malloc_after_dump_9x, realloc_after_dump_9x) - (free_after_dump_9x): New functions. (Bug#22379) See also - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00852.html - for more details about the original problem. - - * nt/inc/ms-w32.h (malloc_after_dump_9x, realloc_after_dump_9x) - (free_after_dump_9x): Add prototypes. - -2016-01-16 Eli Zaretskii - - Fix tests for active region in hideif.el - - * lisp/progmodes/hideif.el (hif-evaluate-macro, hide-ifdef-block): Use - 'use-region-p' to test whether to operate on region, instead of - testing 'mark-active'. - -2016-01-16 Eli Zaretskii - - Fix interactive specs in some hideif.el commands - - * lisp/progmodes/hideif.el (hif-evaluate-macro) - (hide-ifdef-undef, show-ifdef-block): Don't use '(interactive "r")' - in commands that should only act on the region if it's active. - -2016-01-15 Phillip Lord - - Enable test selector from command line - - * test/automated/Makefile.in: Change variable manipulation to avoid - over-writing selector. - -2016-01-15 Alan Mackenzie - - Don't confuse "::" with ":" when trying to parse member initializers. - - * lisp/progmodes/cc-engine.el (c-back-over-member-initializers): Check - more robustly for ":" token when searching backwards for it. - - * lisp/progmodes/cc-langs (c-:$-multichar-token-regexp): New language - variable. - -2016-01-15 Eli Zaretskii - - Ensure positive number of glyphs for margins of positive width - - * src/dispnew.c (margin_glyphs_to_reserve): Always return a - positive value when a non-zero width of the marginal area was - requested. (Bug#22356) - -2016-01-15 Eli Zaretskii - - Fix crashes when mini-window has non-zero margins - - * src/window.c (resize_frame_windows): Use 'new_size' to set - minibuffer window's 'total_cols' value, as 'size' might be in - pixels. (Bug#22356) - -2016-01-15 Alan Mackenzie - - In comment-dwim with style `extra-line', respect indent-tabs-mode. - - This fixes bug #22369. - - * lisp/newcomment.el (comment-make-bol-ws): New function. - (comment-make-extra-lines): Use new function instead of a crude `make-string'. - -2016-01-15 Eli Zaretskii - - Make 'random' seeds cryptographically secure if possible - - * configure.ac: Check for "/dev/urandom". - - * src/sysdep.c (init_random) [HAVE_DEV_URANDOM]: Read the stream - for the seed from "/dev/urandom". - [WINDOWSNT]: Obtain the stream for the seed from w32 APIs. - * src/fns.c (Frandom): Update the doc string to indicate that - system entropy is used when available. - * src/w32.c: Include wincrypt.h. - (w32_init_crypt_random, w32_init_random): New functions, use the - CryptGenRandom API. - (globals_of_w32): Initialize w32_crypto_hprov handle to zero. - * src/w32.h (w32_init_random): Add prototype. - - * doc/lispref/numbers.texi (Random Numbers): Document more details - about 't' as the argument to 'random'. - - * etc/NEWS: Mention that '(random t)' now uses a cryptographically - strong seed if possible. - - (Bug#22202) - -2016-01-15 Eli Zaretskii - - Unhide the --no-line-directive option to 'etags' - - * lib-src/etags.c (print_help): Un-undocument the --no-line-directive - option. (Bug#22306) - - * doc/man/etags.1: Document the --no-line-directive option. - -2016-01-15 Alan J Third (tiny change) - - Fix picture-mode wrt double-width characters - - * lisp/textmodes/picture.el (picture-insert): Check the width of - the character being replaced, not just that of the replacement. - (Bug#1808) - -2016-01-15 Eric Abrahamsen - - Honor docstring of gnus-group-get-new-news - - * lisp/gnus/gnus-start.el (gnus-get-unread-articles): If the prefix arg is t, - but non-numeric, unconditionally consider all groups to need updating. - -2016-01-14 Simen Heggestøyl - - Disallow parenthesis in non-pseudo CSS selectors - - * lisp/textmodes/css-mode.el (css--font-lock-keywords): Disallow - parenthesis in selectors except for in the function notation that - might appear right after a pseudo-class. - * test/indent/scss-mode.scss: Add a test for it. - -2016-01-14 Katsumi Yamaoka - - * lisp/gnus/nntp.el (nntp-request-newgroups): Simplify - -2016-01-14 Michael Albinus - - check-maybe shall run only default tests - - * test/automated/Makefile.in (check, check-expensive): Depend on - mostlyclean. - (check-maybe): Re-run only default tests. - (check-doit): Use code of check-maybe. - (mostlyclean): Move *.log files away. - -2016-01-13 Mark Oteiza - - * lisp/thingatpt.el (thing-at-point-uri-schemes): Add "magnet:" - -2016-01-13 Dmitry Gutov - - Un-obsolete tags-loop-continue - - * lisp/progmodes/etags.el (tags-loop-continue): Un-obsolete. - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00682.html - -2016-01-13 Eli Zaretskii - - Document obsoletion of 'intangible' and 'point-entered/left' - - * doc/lispref/text.texi (Special Properties): Document the new - properties 'cursor-intangible' and 'cursor-sensor-functions'. - Document the obsolete status of 'intangible', 'pointer-left', - and 'point-entered' properties, and of 'inhibit-point-motion-hooks'. - * doc/lispref/display.texi (Overlay Properties): Document that - 'intangible' overlay property is obsolete. - - * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor-mode): Doc fix. - -2016-01-13 Eli Zaretskii - - Updater documentation of 'looking-back' - - * doc/lispref/searching.texi (Regexp Search): Update documentation - of 'looking-back'. Fix markup. - -2016-01-13 Eli Zaretskii - - Document 'pre-redisplay-functions' - - * doc/lispref/hooks.texi (Standard Hooks): - * doc/lispref/display.texi (Forcing Redisplay): Document - 'pre-redisplay-functions'. - -2016-01-13 Eli Zaretskii - - Document the new deafault value of 'load-read-function' - - * doc/lispref/loading.texi (How Programs Do Loading): Document the - change in the default value of 'load-read-function'. - -2016-01-13 Eli Zaretskii - - Document 'bufferpos-to-filepos' and 'filepos-to-bufferpos' - - * doc/lispref/nonascii.texi (Text Representations): Document - 'bufferpos-to-filepos' and 'filepos-to-bufferpos'. - -2016-01-13 Eli Zaretskii - - Document the new prefix-command hooks - - * doc/lispref/hooks.texi (Standard Hooks): Document - `prefix-command-echo-keystrokes-functions' and - `prefix-command-preserve-state-hook'. - -2016-01-13 Paul Eggert - - Fix one more misuse of time-stamp-time-zone - - * test/etags/html-src/softwarelibero.html: Use "UTC0" rather - than the unportable "GMT" for time zone. - -2016-01-13 Paul Eggert - - Fix NNTP NEWGROUPS off-by-a-few-hours bug - - * lisp/gnus/nntp.el (nntp-request-newgroups): Format string - in Universal Time, since we’re telling the server “GMT”. - -2016-01-12 Paul Eggert - - Update publicsuffix.txt from upstream - - * etc/publicsuffix.txt: Update from - https://publicsuffix.org/list/effective_tld_names.dat - dated 2016-01-12 11:52:01 UTC. - -2016-01-12 Glenn Morris - - Fix some declarations. - - * lisp/descr-text.el (internal-char-font): - * lisp/cedet/mode-local.el (xref-item-location): - * lisp/gnus/mml-smime.el (epg-key-sub-key-list) - (epg-sub-key-capability, epg-sub-key-validity): - * lisp/international/mule-util.el (internal-char-font): - Fix declarations. - -2016-01-12 Glenn Morris - - Fix some custom types. - - * lisp/gnus/gnus-fun.el (gnus-x-face-omit-files, gnus-face-omit-files): - * lisp/gnus/gnus.el (gnus-valid-select-methods): - * lisp/mail/rmail.el (rmail-get-coding-function): - * lisp/net/newst-treeview.el (newsticker-groups-filename): - * lisp/progmodes/hideif.el (hide-ifdef-exclude-define-regexp): - * lisp/textmodes/tildify.el (tildify-space-predicates): - * lisp/url/url-tramp.el (url-tramp-protocols): - Fix custom types. - -2016-01-12 Glenn Morris - - Add some missing version tags. - - * lisp/electric.el (electric-quote-comment) - (electric-quote-string, electric-quote-paragraph): - * lisp/epg-config.el (epg-gpgconf-program): - * lisp/rect.el (rectangle-preview): - * lisp/emacs-lisp/check-declare.el (check-declare-ext-errors): - * lisp/emacs-lisp/package.el (package-selected-packages) - (package-hidden-regexps): - * lisp/erc/erc.el (erc-network-hide-list, erc-channel-hide-list): - * lisp/eshell/em-term.el (eshell-destroy-buffer-when-process-dies): - * lisp/gnus/mml-sec.el (mml1991-signers, mml2015-signers) - (mml-smime-signers, mml1991-encrypt-to-self, mml2015-encrypt-to-self) - (mml-smime-encrypt-to-self, mml2015-sign-with-sender) - (mml-smime-sign-with-sender, mml2015-always-trust) - (mml-secure-fail-when-key-problem, mml-secure-key-preferences): - * lisp/net/browse-url.el (browse-url-conkeror-new-window-is-buffer) - (browse-url-conkeror-arguments): - * lisp/net/newst-reader.el (newsticker-download-logos): - * lisp/progmodes/gud.el (gud-guiler-command-name): - * lisp/progmodes/prog-mode.el (prettify-symbols-unprettify-at-point): - * lisp/progmodes/project.el (project-vc): - * lisp/progmodes/python.el (python-indent-guess-indent-offset-verbose) - (python-shell-remote-exec-path, python-shell-first-prompt-hook) - (python-shell-completion-native-disabled-interpreters) - (python-shell-completion-native-enable) - (python-shell-completion-native-output-timeout) - (python-shell-completion-native-try-output-timeout): - * lisp/progmodes/xref.el (xref): - * lisp/term/screen.el (xterm-screen-extra-capabilities): - * lisp/term/xterm.el (xterm-max-cut-length): - Add missing version tags. - -2016-01-12 Glenn Morris - - * test/automated/core-elisp-tests.el - (core-elisp-tests-1-defvar-in-let): Add a custom type. - -2016-01-12 Glenn Morris - - * src/buffer.c (syms_of_buffer) : Doc fix. - - Remove comments that do not apply since 2005-08-09. (Bug#22349) - -2016-01-12 Paul Eggert - - Merge from gnulib - - This mostly just changes "UTC" to "UTC0" for POSIX conformance. - It also updates to the latest version of texinfo.tex. - * build-aux/gitlog-to-changelog, build-aux/move-if-change: - * build-aux/update-copyright, doc/misc/texinfo.tex: - Update from gnulib. - -2016-01-12 Eli Zaretskii - - Update documentation of 'process-running-child-p' - - * doc/lispref/processes.texi (Input to Processes): Document the - changes in return value of 'process-running-child-p'. - -2016-01-12 Eli Zaretskii - - Update documentation of 'deactivate-mark'. - - * doc/lispref/markers.texi (The Mark): Document that - 'deactivate-mark' is now buffer-local when set. - -2016-01-12 Eli Zaretskii - - Update documentation of 'completion-table-dynamic' - - * doc/lispref/minibuf.texi (Programmed Completion): Document the - new optional argument to 'completion-table-dynamic'. - -2016-01-12 Eli Zaretskii - - Document changes in 'read-buffer' and 'read-buffer-function' - - * doc/lispref/minibuf.texi (High-Level Completion): Document the - 4th argument to 'read-buffer' and 'read-buffer-function'. - -2016-01-12 Paul Eggert - - Fix time-stamp-time-zone bugs introduced in July - - This fixes a bug introduced when the July changes to - format-time-string installed, as the changes were not - correctly handled in this module (Bug#22302). - Also, document time stamp time zones. - * lisp/time-stamp.el (time-stamp-time-zone): Document values better. - (time-stamp--format): New private function. - (time-stamp-string, time-stamp-string-preprocess) - (time-stamp-do-number): Use it. - * doc/emacs/files.texi (Time Stamps): Mention time zones. - * doc/misc/autotype.texi (Timestamps): Document time-stamp-time-zone. - -2016-01-12 Eli Zaretskii - - Make piping to subprocesses more robust on MS-Windows - - * src/w32.c (sys_write): Don't write to a pipe more stuff than its - buffer can hold. Don't return -1 if something has been written to - the pipe. Zero out 'errno' before calling '_write', to avoid - returning a stale value. (Bug#22344) - * src/w32proc.c (syms_of_ntproc) : New variable. - * src/w32.c (pipe2): Use it to request a user-defined size for the - pipe being created. - - * etc/NEWS: Mention 'w32-pipe-buffer-size'. - - * doc/emacs/msdos.texi (Windows Processes): Document - 'w32-pipe-buffer-size'. - -2016-01-16 Stefan Monnier - - * lisp/emacs-lisp/syntax.el (syntax-ppss-table): New var - - (syntax-ppss): - * lisp/font-lock.el (font-lock-fontify-syntactically-region): Use it. - -2016-01-16 Stefan Monnier - - lisp/nxml: Use syntax-tables for comments - - * lisp/nxml/nxml-mode.el (nxml-set-face): Prepend. - (nxml-mode): Set syntax-ppss-table. - Use sgml-syntax-propertize-function for syntax-propertize-function. - Let font-lock highlight strings and comments. - (nxml-degrade): Don't touch "nxml-inside" property any more. - (nxml-after-change, nxml-after-change1): Remove functions. - (comment): Don't set fontify rule any more. - (nxml-fontify-attribute): Don't highlight the value any more. - (nxml-namespace-attribute-value-delimiter, nxml-namespace-attribute-value) - (nxml-comment-delimiter, nxml-comment-content): Remove faces. - - * lisp/nxml/nxml-rap.el (nxml-scan-end): Remove. - (nxml-get-inside, nxml-inside-start, nxml-inside-end): Use syntax-ppss. - (nxml-clear-inside, nxml-set-inside): Remove. - (nxml-scan-after-change): Remove function. - (nxml-scan-prolog, nxml-tokenize-forward): Simplify. - (nxml-ensure-scan-up-to-date): Use syntax-propertize. - (nxml-move-outside-backwards): - * lisp/nxml/nxml-outln.el (nxml-section-tag-backward): Adjust to new - nxml-inside-start behavior. - - * lisp/nxml/nxml-util.el (nxml-debug-set-inside) - (nxml-debug-clear-inside): Remove macros. - - * lisp/nxml/xmltok.el (xmltok-forward-special): Remove function. - (xmltok-scan-after-comment-open): Simplify. - -2016-01-16 Stefan Monnier - - * elisp-mode.el (elisp--font-lock-flush-elisp-buffers): Fix comment - -2016-01-16 Stefan Monnier - - * lisp/nxml: Use standard completion; it also works for company-mode - - * lisp/nxml/nxml-mode.el (nxml-complete): Obsolete. - (nxml-completion-at-point-function): Remove. - (nxml-mode): Don't set completion-at-point-functions. - * lisp/nxml/rng-nxml.el (rng-nxml-mode-init): Set it here instead. - (rng-completion-at-point): Rename from rng-complete and mark it - non-interactive. It is now to be used as completion-at-point-function. - (rng-complete-tag, rng-complete-end-tag, rng-complete-attribute-name) - (rng-complete-attribute-value): Don't perform completion, but return - completion data instead. - (rng-complete-qname-function, rng-generate-qname-list): Add a few - arguments, previously passed via dynamic coping. - (rng-strings-to-completion-table): Rename from - rng-strings-to-completion-alist. Don't return an alist. Don't both - sorting and uniquifying. - - * lisp/nxml/rng-util.el (rng-complete-before-point): Delete function. - (rng-completion-exact-p, rng-quote-string): Delete functions. - - * lisp/nxml/rng-valid.el (rng-recover-start-tag-open) - (rng-missing-attributes-message, rng-missing-element-message) - (rng-mark-missing-end-tags): Use explicit ".." in formats rather than - calling rng-quote-string everywhere. - -2016-01-16 Stefan Monnier - - Use sgml-electric-tag-pair-mode also in nxml-mode - - * lisp/nxml/rng-nxml.el: Require sgml-mode. - (rng-nxml-easy-menu): Add entry for sgml-electric-tag-pair-mode. - (rng-complete-qname-function): Use complete-with-action. - - * lisp/textmodes/sgml-mode.el (sgml-electric-tag-pair-before-change-function): - Let-bind forward-sexp-function, since nxml-mode binds it to - something incompatible. - - * lisp/nxml/nxml-mode.el: Use setq-local and defvar-local. - -2016-01-15 Stefan Monnier - - * xmltok.el: Mark the "sole --" rather than the comment opener - - * lisp/nxml/xmltok.el (xmltok-scan-after-comment-open): Put the error - marker on the "sole --" rather than on the comment opener. - -2016-01-15 Sam Steingold - - replace `tramp-compat-split-string' (removed) with `split-string' - - (python-shell-tramp-refresh-process-environment) - (python-shell-calculate-pythonpath): use `split-string' - instead of defunct `tramp-compat-split-string' - -2016-01-15 Stefan Monnier - - Update nXML to use Emacs's Unicode support, and lexical-binding - - * etc/nxml/*.el: Remove obsolete char-name files. - * lisp/nxml/xsd-regexp.el (xsdre-range-list-difference): Remove unused - var `next'. - * lisp/nxml/rng-nxml.el (rng-set-state-after): Don't assume point-min==1. - * lisp/nxml/rng-match.el (rng-update-match-state): Simplify. - * lisp/nxml/nxml-outln.el (nxml-outline-state-transform-exceptions) - (nxml-target-section-pos, nxml-depth-in-target-section) - (nxml-outline-state-transform-alist) - (nxml-outline-display-section-tag-function): Move decl before first use. - * lisp/nxml/nxml-mode.el (nxml-char-name-ignore-case) - (nxml-char-name-alist, nxml-char-name-table) - (nxml-autoload-char-name-set-list, nxml-named-char-history): Remove vars. - (nxml-enable-char-name-set, nxml-disable-char-name-set) - (nxml-char-name-set-enabled-p, nxml-autoload-char-name-set) - (nxml-define-char-name-set, nxml-get-char-name): Remove functions. - (nxml-insert-named-char): Use read-char-by-name instead. - (nxml-char-ref-display-extra): Use get-char-code-property. - * lisp/nxml/nxml-maint.el (nxml-create-unicode-char-name-sets): - Remove function. - * lisp/nxml/nxml-glyph.el, lisp/nxml/nxml-uchnm.el: Remove files. - -2016-01-15 Michael Albinus - - Add "sg" method to Tramp - - * doc/misc/tramp.texi (Inline methods): Add "sg" method. - (Customizing Completion): Add function `tramp-parse-etc-group'. - - * lisp/net/tramp-sh.el (tramp-methods) : Add. (Bug#22329) - (tramp-completion-function-alist-sg): New defconst. - (top): Completion function for "sg" is - `tramp-completion-function-alist-sg'. - - * lisp/net/tramp.el (tramp-completion-function-alist): Adapt docstring. - (tramp-parse-etc-group, tramp-parse-etc-group-group): New defuns. - -2016-01-14 Michael Albinus - - Remove XEmacs compatibility in Tramp - - * doc/misc/tramp.texi: Replace flags by their hard coded name. - Remove unused flags and the enclosed alternative text for XEmacs. - - * doc/misc/trampver.texi: Use "Tramp" CamelCase. Rename "emacs" - and "xemacs" flags to "unified" and "separate". Remove flags - "emacsgw", "emacsname", "emacsdir", "ftppackagename", - "emacsothername", "emacsotherdir" and "emacsotherfilename". - (trampver): - * lisp/net/trampver.el (tramp-version): Set to "2.3.0-pre". - - * lisp/net/tramp.el (bkup-backup-directory-info) - (directory-sep-char, ls-lisp-use-insert-directory-program) - (outline-regexp, tramp-backup-directory-alist) - (tramp-default-method, tramp-shell-prompt-pattern, tramp-syntax) - (tramp-file-name-regexp-unified) - (tramp-file-name-regexp-separate) - (tramp-completion-file-name-regexp-unified) - (tramp-completion-file-name-regexp-separate, tramp-chunksize) - (tramp-get-method-parameter, tramp-find-method, tramp-find-user) - (tramp-debug-message, tramp-progress-reporter-update) - (with-tramp-progress-reporter) - (tramp-rfn-eshadow-setup-minibuffer) - (rfn-eshadow-setup-minibuffer-hook, tramp-unload-hook) - (tramp-rfn-eshadow-update-overlay) - (rfn-eshadow-update-overlay-hook, tramp-default-file-modes) - (tramp-file-name-for-operation) - (tramp-completion-file-name-handler) - (tramp-autoload-file-name-handler, tramp-completion-mode-p) - (tramp-handle-directory-files) - (tramp-handle-directory-files-and-attributes) - (tramp-handle-dired-uncache, tramp-handle-find-backup-file-name) - (tramp-handle-insert-file-contents, tramp-handle-load) - (tramp-handle-shell-command) - (tramp-handle-verify-visited-file-modtime) - (tramp-handle-file-notify-valid-p, tramp-accept-process-output) - (tramp-check-for-regexp, tramp-wait-for-regexp) - (tramp-send-string, tramp-mode-string-to-int) - (tramp-get-local-gid, tramp-check-cached-permissions) - (tramp-get-remote-tmpdir, tramp-make-tramp-temp-file) - (auto-save-file-name-transforms) - (tramp-handle-make-auto-save-file-name, tramp-read-passwd) - (tramp-clear-passwd, tramp-time-diff): - * lisp/net/tramp-adb.el (directory-listing-before-filename-regexp) - (directory-sep-char, tramp-adb-file-name-handler-alist) - (tramp-adb-parse-device-names) - (tramp-adb-handle-expand-file-name) - (tramp-adb-handle-file-truename, tramp-adb--gnu-switches-to-ash) - (tramp-adb-handle-file-local-copy) - (tramp-adb-handle-write-region, tramp-adb-handle-set-file-modes) - (tramp-adb-handle-rename-file, tramp-adb-handle-process-file) - (tramp-adb-handle-shell-command) - (tramp-adb-handle-start-file-process, tramp-adb-get-device) - (tramp-adb-maybe-open-connection): - * lisp/net/tramp-cache.el (tramp-persistency-file-name) - (tramp-cache-print): - * lisp/net/tramp-cmds.el (tramp-cleanup-all-connections) - (tramp-bug, tramp-reporter-dump-variable) - (tramp-load-report-modules, tramp-append-tramp-buffers): - * lisp/net/tramp-compat.el (tramp-compat-funcall) - (tramp-advice-file-expand-wildcards) - (tramp-compat-temporary-file-directory) - (tramp-compat-make-temp-file, tramp-compat-copy-file) - (tramp-compat-delete-directory, ) - (tramp-compat-process-running-p): - * lisp/net/tramp-ftp.el (tramp-methods) : - (tramp-default-method-alist, tramp-foreign-file-name-handler-alist): - * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist) - (tramp-gvfs-do-copy-or-rename-file, tramp-gvfs-handle-copy-file) - (tramp-gvfs-handle-file-local-copy) - (tramp-gvfs-handle-file-name-all-completions) - (tramp-gvfs-handle-file-notify-add-watch) - (tramp-gvfs-monitor-file-process-filter) - (tramp-gvfs-handle-file-readable-p) - (tramp-gvfs-handle-rename-file, tramp-gvfs-handle-write-region) - (tramp-gvfs-file-name, tramp-gvfs-handler-askquestion) - (tramp-gvfs-maybe-open-connection) - (tramp-gvfs-parse-device-names): - * lisp/net/tramp-gw.el (tramp-gw-aux-proc-sentinel) - (tramp-gw-open-connection, tramp-gw-open-network-stream): - * lisp/net/tramp-sh.el (directory-sep-char) - (tramp-sh-file-name-handler-alist) - (tramp-sh-handle-file-truename) - (tramp-sh-handle-set-visited-file-modtime) - (tramp-sh-handle-verify-visited-file-modtime) - (tramp-sh-handle-set-file-modes, tramp-sh-handle-set-file-times) - (tramp-sh-handle-file-acl) - (tramp-sh-handle-file-name-all-completions) - (tramp-sh-handle-copy-file, tramp-sh-handle-rename-file) - (tramp-do-copy-or-rename-file-directly) - (tramp-do-copy-or-rename-file-out-of-band) - (dired-compress-file-suffixes, dired-remove-file) - (tramp-sh-handle-dired-compress-file) - (tramp-sh-handle-insert-directory) - (tramp-sh-handle-expand-file-name) - (tramp-sh-handle-start-file-process) - (tramp-sh-handle-process-file, tramp-sh-handle-file-local-copy) - (tramp-sh-handle-write-region, tramp-sh-handle-vc-registered) - (tramp-sh-handle-file-notify-add-watch) - (tramp-sh-gvfs-monitor-dir-process-filter) - (tramp-sh-inotifywait-process-filter, tramp-maybe-send-script) - (tramp-find-executable) - (tramp-open-connection-setup-interactive-shell) - (tramp-find-inline-encoding, tramp-compute-multi-hops) - (tramp-maybe-open-connection, tramp-convert-file-attributes) - (tramp-get-remote-path, tramp-get-remote-touch): - * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist) - (tramp-smb-handle-copy-directory, tramp-smb-handle-copy-file) - (tramp-smb-handle-delete-directory) - (tramp-smb-handle-directory-files, tramp-smb-handle-file-acl) - (tramp-smb-handle-make-directory-internal) - (tramp-smb-handle-process-file, tramp-smb-handle-rename-file) - (tramp-smb-handle-set-file-acl, tramp-smb-handle-set-file-modes) - (tramp-smb-handle-write-region, tramp-smb-get-file-entries) - (tramp-smb-get-cifs-capabilities) - (tramp-smb-maybe-open-connection): - * lisp/net/trampver.el (tramp-repository-get-version): - Remove XEmacs compat code. - - * lisp/net/tramp-cmds.el (mml-mode, mml-insert-empty-tag) - (reporter-dump-variable): Declare functions. - - * lisp/net/tramp.el (tramp-bkup-backup-directory-info) - (tramp-advice-minibuffer-electric-separator) - (tramp-advice-minibuffer-electric-tilde) - (tramp-handle-unhandled-file-name-directory): - * lisp/net/tramp-compat.el (tramp-compat-with-temp-message) - (tramp-compat-font-lock-add-keywords) - (tramp-compat-load, tramp-compat-number-sequence) - (tramp-compat-split-string, tramp-compat-delete-dups): - * lisp/net/tramp-sh.el (tramp-sh-handle-insert-file-contents-literally): - Remove. - - * lisp/net/tramp-sh.el (tramp-methods) : This does not work - recursively. - -2016-01-14 K. Handa - - fix previous change of src/ftfont.c (ftfont_shape_by_flt) - - * src/ftfont.c (ftfont_shape_by_flt): Fix previous change. Access the - second glyph only when there are enough glyphs. - -2016-01-13 Glenn Morris - - * src/buffer.c (Fset_buffer_major_mode): Allow default major-mode, - - or its hook, to move point. (Bug#22348) - -2016-01-12 Michael Albinus - - Merge missing commit from emacs-25 branch - - * test/Makefile.in (SELECTOR_DEFAULT, SELECTOR_EXPENSIVE, SELECTOR): - New variables. - (check-expensive, check-doit): New targets. - - * Makefile.in (check-expensive): New target. - - * test/lisp/autorevert-tests.el - (auto-revert-test01-auto-revert-several-files): - * test/lisp/filenotify-tests.el (file-notify--deftest-remote) - (file-notify-test06-many-events): - * test/lisp/net/tramp-tests.el (tramp-test26-process-file) - (tramp-test27-start-file-process, tramp-test28-shell-command) - (tramp-test29-vc-registered) - (tramp-test31-special-characters-with-stat) - (tramp-test31-special-characters-with-perl) - (tramp-test31-special-characters-with-ls) - (tramp-test32-utf8-with-stat, tramp-test32-utf8-with-perl) - (tramp-test32-utf8-with-ls, tramp-test33-asynchronous-requests) - (tramp-test35-unload): Tag the tests as :expensive-test. - -2016-01-12 John Wiegley - - Merge from origin/emacs-25 - - 1f6898d test/automated/vc-hg.el: Support out-of-tree build - 3adb56e Minor change in tramp-tests.el - 2b535ba ; * etc/NEWS: Update the js.el entry. - 76b518c * etc/HELLO: Add Armenian and Mongolian greetings. - b51f1ef Java Mode: Fontify identifiers in the presence of annotations. - 36b9539 Avoid an infloop when we run out of memory - 2006752 Avoid unnecessary failures of auto-saving after fatal error - eef6784 Simplify HAVE_MODULES use in mark_maybe_pointer - 552694a Revert attempt to use 'noexcept' in typedef - 6ad0d39 Update documentation of 'indirect-function' - c6a5314 ; * etc/NEWS: Move entry of 'inhibit-point-motion-hooks'. - 303141a Update documentation for obsoleting 'syntax-begin-function' - 4e6f61c ; * etc/NEWS: Mark documented and not-to-be-documented entries. - e667bbb Document new features if Eshell - 9c4e4e0 ; * etc/NEWS: Update EUDC entries. - 1089dc9 Handle too long commands in Tramp - 684eb58 * .gitattributes: *.cur and *.pif are binary files too. - d2c7fda * src/alloc.c (mark_maybe_pointer): HAVE_MODULES may be undefined - bd3f53d * sh-script.el (sh-smie-sh-rules): Improve indentation inside $(...) - 09b2b8a * src/alloc.c (mark_maybe_pointer): Also check wide-int's emacs_value - cca0f93 ; Account for spaces before the filename - c71e1e8 Use short date for 'hg annotate', and output the author - f50027b Spelling fix - c7dff67 ; * etc/NEWS: Fix the Xref entries that got separated. - cc140bc Document user-level functions in project.el - f8208b6 Document the user-level features of the Xref package - b131fb8 * loading.texi: Add `define-type' entry for load-history - db3c2a8 Improve doc strings and prompts in xref.el - f6117ef Allow the use of `font-lock-extend-region-multiline' in CC Mode. - 90fd798 Fix coding system for Tramp on OS X. - e985a0e ; * etc/NEWS: Mark the 'check-expensive' entry not to be documented. - 9dfcbf0 Update 'load-history' docs - 207e191 Fix (error ...) error - 457738f Correctly analyze brace arguments in templated C++ function declarations. - d57724a * lisp/cedet/mode-local.el (describe-function-orig-buffer): Declare. - 2a9532d * lisp/ffap.el (ffap-latex-mode): Avoid free variable. - 1a6b084 * lisp/play/dunnet.el (dun-fix-screen): Avoid `end-of-buffer`. - 8be046f Respect fontification region calculated by major mode. Fixes bug #22316. - 4b37cba Improve documentation of Delete Selection mode - a034dd3 Fix two project-find-file issues - 30abf29 Clarify doc string of 'dired-current-directory' - e990bb2 Use the face of preceding text for displaying the ellipsis - 5810ac3 Suppress Chinese file name test for OSX in tramp-tests.el - eeb710a ; * lisp/startup.el: Sentences end with two spaces. - 428b3de * admin/admin.el (set-version): Also handle the NEWS file. - 648de81 ; Add NEWS entry for project.el - 671862f apropos-library: Skip obvious duplicates; don't error on generics - 51668a5 ; Grammar fix - ed41d11 Add project-find-file and project-or-external-find-file - 056da45 ; Improve commentary in 'setup_for_ellipsis' - 269d008 ; Improve docstring for `inhibit-startup-echo-area-message' - -2016-01-12 John Wiegley - - Merge from origin/emacs-25 - - ce4a052 Add defvar-local to lisp-imenu-generic-expression - a0121bc Revert commit b1e3d14845517bfa9fa5d6d3840f3ab3160306fd - 76fe2d5 * lisp/emacs-lisp/autoload.el (autoload-find-destination): Doc fix. - 1ae088f * lisp/emacs-lisp/autoload.el (autoload-find-destination): - b6b47af Properly encode/decode base64Binary data in SOAP - c632466 Obey coding-system-for-write when writing stdout/stderr in batch - 2f32cb5 * doc/misc/efaq.texi (Packages that do not come with Emacs): - Update the URI of MELPA and marmalade-repo. - Reported by CHENG Goa in - https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00390.html. - d2937aa * lisp/progmodes/opascal.el (opascal-mode-syntax-table): - 5330c25 * lisp/progmodes/xscheme.el (xscheme-prompt-for-expression-exit): - 7380990 Remove function wrongly on AWK Mode value of context - fontification hook. - d400753 * src/buffer.c: Stick with ASCII in doc string. - 221240c Reword transient-mark-mode doc string - 977d3ea Update doc string of 'selective-display' - 229c3fa Make C++ buffers writeable when writing their initial text - properties. - f5c762c Additional changes for "make check-expensive" - 1729cf3 ; * admin/MAINTAINERS: Remove myself. - 33219d3 Apply text properties for <, > in new after-change function - (C++ Java Modes). - -2016-01-12 John Wiegley - - Merge from origin/emacs-25 - - 9fb185a shr-tag-video bug fix - 6300655 Minor fixes in tramp-tests.el - 50575b1 Ensure redisplay when 'truncate-lines' is set - 0d9e80d Fix a doc string of 'transient-mark-mode' - 0000ae5 MS-Windows followup to latest gnulib update - 4bc5e02 Spelling fix - f1093f7 Do secure signed Bcc handling - -2016-01-12 John Wiegley - - Merge from origin/emacs-25 - - 861022f * doc/misc/texinfo.tex: Revert unwanted copyright change. - 46e47a5 ; * etc/refcards/ru-refcard.tex (cyear): Update via M-x set-copyright. - 71ea138 * lisp/align.el (align): Simplify a lambda - 5618a50 * lisp/align.el (align): Fix arg order in call to `align-region' - 1f680db Fix compilation next-error in buffers with selective-display - d20a948 * nsm.el (nsm-check-protocol): Fix typo in the message. - 1da116f Add SHA1 warnings for high network security settings - e48bacd ; * etc/NEWS: Typo fix. - -2016-01-12 John Wiegley - - Merge from origin/emacs-25 - - 43662a2 ; Clarify that xref is still experimental - 0a6e6ca ; * admin/release-process: Remove some obsolete records. - c2e9e3d * lisp/progmodes/fortran.el (fortran-make-syntax-propertize-function): - 8637f3d (semantic-symref-derive-find-filepatterns): Return a list - 0a7ad07 ; Re-arrange xref-related entries in NEWS. - fe903ef Fix xref-find-references on MS-Windows - 55a28d8 ; Fixed visual bell artifact problem on NextStep. - d064034 Document new features of tildify-mode - 964bea7 Document new features of Whitespace mode - cd68f47 Improve documentation of new Hide-IfDef features - 723b8bf Fix regression in font-locking cl-assert and cl-check-type - -2016-01-12 John Wiegley - - Merge from origin/emacs-25 - - ef33bc7 Spelling and grammar fixes - 9c3dbab Fix copyright years by hand - 0e96320 Update copyright year to 2016 - -2016-01-12 John Wiegley - - Merge from origin/emacs-25 - - 9ee6ecb lisp/emacs-lisp/chart.el (chart-new-buffer): Move to silence byte compiler. - 526d80c Port chart.el methods to cl-generic. - 410bb69 Add nt/INSTALL.W64 build instructions - 8f5b524 Add new input method 'programmer-dvorak' - 6d11f6e Allow to invoke original M-TAB binding in 'flyspell-prog-mode' - bb83bb1 Fix EWW rendering of long RTL lines - b1a8509 fix bug#21054 - ce5ad12 Clean up cairo printing code - -2016-01-12 John Wiegley - - Merge from origin/emacs-25 - - 6ee327d Add handle_user_signal_hook - 47580e0 Avoid writing to purespace - 0588be7 Remove unused variable - 89e7483 * configure.ac: Find libxml2 headers in Xcode SDK dir on Darwin. - 3b95e9c Use posix_openpt instead of openpty on Darwin - 86312ff Document support for ':documentation' in Lisp mode - c930e75b Document new features of TeX mode - 7c83d84 Clarify docs of hscroll in RTL text - 4c8f8db Fix rendering of HTML pages that use character composition - a8d37ca Avoid some compiler warnings in w32.c - ce106f3de Undo ill-advised change - be0bba4 Unbreak completion in python-mode buffers - -2016-01-11 Dmitry Gutov - - test/automated/vc-hg.el: Support out-of-tree build - - * test/automated/vc-hg.el - (vc-hg-annotate-extract-revision-at-line-with-filename) - (vc-hg-annotate-extract-revision-at-line-with-both): - Don't refer to source-directory. - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00755.html - -2016-01-11 Michael Albinus - - Minor change in tramp-tests.el - - * test/automated/tramp-tests.el (tramp-test29-vc-registered): - Use `dired-uncache' instead of a Tramp internal function. - -2016-01-11 Peter Feigl - - * etc/HELLO: Add Armenian and Mongolian greetings. - - (Bug#22346) - -2016-01-11 Alan Mackenzie - - Java Mode: Fontify identifiers in the presence of annotations. - - * lisp/progmodes/cc-engine.el (c-forward-annotation): Tidy up the coding: - Don't move point when the defun fails. - (c-forward-decl-or-cast-1): Correct a usage of match data. - - * lisp/progmodes/cc-fonts.el (c-font-lock-maybe-decl-faces): Remove. - (c-font-lock-declarations): Use the new c-maybe-decl-faces in place of the - removed variable. - - * lisp/progmodes/cc-langs.el (c-maybe-decl-faces): New language variable. - -2016-01-11 Eli Zaretskii - - Avoid an infloop when we run out of memory - - * src/alloc.c (garbage_collect_1): Don't bother saving and - restoring the echo-area message if we are GC'ing after running out - of memory. This avoids an infloop due to repeated attempts to - allocate memory for the cons cell needed to save the message, - which signals the memory-full error, which attempts to save the - echo-area message, which signals memory-full again, etc. - -2016-01-11 Eli Zaretskii - - Avoid unnecessary failures of auto-saving after fatal error - - * src/w32.c (map_w32_filename): Avoid non-trivial system calls for - the benefit of FAT volumes if we are called as part of shutting - down due to a fatal error, which probably means we are trying to - auto-save the session. - * src/lread.c (check_obarray): Don't bother making the obarray - valid if we are shutting down due to a fatal error. This avoids - interfering with auto-saving the crashed session. - -2016-01-11 Paul Eggert - - Simplify HAVE_MODULES use in mark_maybe_pointer - - * src/alloc.c (HAVE_MODULES): Now a constant 0 if not defined, - so that later code can use 'if' rather than '#ifdef'. - (mark_maybe_pointer): Simplify based on HAVE_MODULES now - always working. - -2016-01-11 Paul Eggert - - Revert attempt to use 'noexcept' in typedef - - This use of 'noexcept' runs afoul of the C++11 standard. - Problem reported by Philipp Stephani in: - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00706.html - * src/emacs-module.c (emacs_finalizer_function): - Move this typedef here ... - * src/emacs-module.h: ... from here, and use only the C - version of the typedef. The typedef is now private since it - is never used in the .h file now and anyway it seemed to be - causing more confusion than it cured. - (make_user_ptr, get_user_finalizer, set_user_finalizer): - Open-code the type instead. - -2016-01-10 Eli Zaretskii - - Update documentation of 'indirect-function' - - * doc/lispref/eval.texi (Function Indirection): Update the - documentation of 'indirect-function'. - -2016-01-10 Eli Zaretskii - - Update documentation for obsoleting 'syntax-begin-function' - - * doc/lispref/syntax.texi (Position Parse): Undocument - 'syntax-begin-function' that is now obsolete. - -2016-01-10 Eli Zaretskii - - Document new features if Eshell - - * doc/misc/eshell.texi (Input/Output): Document the new - '#' syntax. - (Input/Output): Document 'eshell-destroy-buffer-when-process-dies'. - Disable "Key Index" generation, as there are no @kindex entries in - this manual. - -2016-01-10 Michael Albinus - - Handle too long commands in Tramp - - * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link) - (tramp-do-file-attributes-with-ls): Send sequence of commands, in - order to not exceed shell command line limit. - - * test/automated/tramp-tests.el (tramp--test-darwin-p): Remove. - (tramp--test-utf8): Include Arabic file name, again. - -2016-01-10 Paul Eggert - - * .gitattributes: *.cur and *.pif are binary files too. - -2016-01-10 Stefan Monnier - - * src/alloc.c (mark_maybe_pointer): HAVE_MODULES may be undefined - -2016-01-10 Stefan Monnier - - * sh-script.el (sh-smie-sh-rules): Improve indentation inside $(...) - - * lisp/progmodes/sh-script.el (sh-smie-sh-rules): Improve indentation - within $(...). - * test/indent/shell.sh: Add corresponding test. - -2016-01-09 Stefan Monnier - - * src/alloc.c (mark_maybe_pointer): Also check wide-int's emacs_value - - (mark_memory): Simplify loop. Don't assume a pointer-sized word can be - cast to Lisp_Object. - -2016-01-09 Dmitry Gutov - - Use short date for 'hg annotate', and output the author - - * lisp/vc/vc-hg.el (vc-hg-annotate-command): - Change '-d' to '-dq'. (Bug#21805) - (vc-hg-annotate-switches): Default to "-u" "--follow". - (vc-hg-annotate-re): Update to recognize the short date format - and the optional username. - (vc-hg-annotate-time) - (vc-hg-annotate-extract-revision-at-line): Update accordingly. - - * test/automated/vc-hg.el: New file. - -2016-01-09 Paul Eggert - - Spelling fix - -2016-01-09 Eli Zaretskii - - Document user-level functions in project.el - - * lisp/progmodes/project.el (project-find-file) - (project-or-external-find-file): Add doc strings. - -2016-01-09 Eli Zaretskii - - Document the user-level features of the Xref package - - * doc/emacs/maintaining.texi (Maintaining): Add a list of - described features. - (Xref): New section, made out of thoroughly rewritten "Tags" - section. - (Find Identifiers, Looking Up Identifiers, Xref Commands) - (Identifier Search, List Identifiers): New subsections, - incorporating the old tags commands and the new xref commands. - (Tags Tables, Tag Syntax, Create Tags Table, Etags Regexps): - Section and subsections demoted to a lower level. - * doc/emacs/search.texi (Search): - * doc/emacs/windows.texi (Pop Up Window): - * doc/emacs/frames.texi (Creating Frames): - * doc/emacs/programs.texi (Imenu, Symbol Completion): - * doc/emacs/building.texi (Grep Searching): - * doc/emacs/dired.texi (Operating on Files): - * doc/emacs/glossary.texi (Glossary): All references to tags changed. - -2016-01-09 Stefan Monnier - - * loading.texi: Add `define-type' entry for load-history - - * doc/lispref/loading.texi (Where Defined): Remove incorrect - cl-defmethod description, and add missing define-type entry. - -2016-01-09 Eli Zaretskii - - Improve doc strings and prompts in xref.el - - * lisp/progmodes/xref.el (xref-backend-functions) - (xref-find-definitions): Doc fixes. - (xref-query-replace): Doc fix. Improve prompts for arguments. - -2016-01-09 Alan Mackenzie - - Allow the use of `font-lock-extend-region-multiline' in CC Mode. - - * lisp/progmodes/cc-mode.el (c-font-lock-init): Remove - `font-lock-extend-regions-wholelines' from - `font-lock-extend-region-functions' rather than setting the latter to - nil. - -2016-01-09 Michael Albinus - - Fix coding system for Tramp on OS X. - - * lisp/net/tramp-compat.el: Require ucs-normalize. - - * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): - Set coding system to `utf-8-hfs' for Mac OS X. - - * test/automated/tramp-tests.el (tramp-test29-vc-registered): - Flush directory properties when needed. - (tramp--test-utf8): Include Chinese file name, again. - -2016-01-09 Eli Zaretskii - - Update 'load-history' docs - - * doc/lispref/loading.texi (Where Defined): Update the list of - forms in 'load-history' by adding the forms created for the - 'cl-generic' generics. (Bug#21422) - -2016-01-08 Paul Eggert - - Fix (error ...) error - - Problem reported by Glenn Morris in: - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00561.html - * lisp/vc/add-log.el (change-log-goto-source): Fix typos - introduced in my Aug 28 change, where I got confused by the - two meanings of (error ...). - -2016-01-08 Alan Mackenzie - - Correctly analyze brace arguments in templated C++ function declarations. - - * lisp/progmodes/cc-defs.el (c-go-list-forward, c-go-list-backward): add - POS and LIMIT parameters, like the other c-go-list-* functions have. - - * lisp/progmodes/cc-engine.el (c-restore-<>-properties): Check backwards - for a ?\( rather than a ?<. (c-looking-at-inexpr-block): Handle names - followed by template specifiers. - -2016-01-08 Glenn Morris - - * lisp/cedet/mode-local.el (describe-function-orig-buffer): Declare. - - * lisp/ffap.el (ffap-latex-mode): Avoid free variable. - -2016-01-08 Mark Oteiza - - * lisp/play/dunnet.el (dun-fix-screen): Avoid `end-of-buffer`. - -2016-01-08 Alan Mackenzie - - Respect fontification region calculated by major mode. Fixes bug #22316. - - * lisp/font-lock.el (font-lock-extend-jit-lock-region-after-change): when a - fontification region has been calculated by a function on - font-lock-extend-after-change-region-function use this region rather than - changing the end position to somewhere else. - -2016-01-08 Eli Zaretskii - - Improve documentation of Delete Selection mode - - * lisp/delsel.el (delete-selection-mode) - (delete-selection-helper): Update and expand the doc strings. - (Bug#22296) - - * doc/emacs/mark.texi (Using Region): Document the behavior of - delete commands in Delete Selection mode. (Bug#22296) - - * doc/lispref/markers.texi (The Mark): Document how to add the - support for Delete Selection mode to Lisp programs. (Bug#22296) - -2016-01-08 Dmitry Gutov - - Fix two project-find-file issues - - * lisp/progmodes/project.el (project--value-in-dir): - Temporarily set enable-local-variables to :all. - (project-find-file, project-or-external-find-file): - All autoloads. - (project--find-file-in): Require xref. - -2016-01-08 Eli Zaretskii - - Clarify doc string of 'dired-current-directory' - - * lisp/dired.el (dired-current-directory): Doc fix: clarify that - the return value might not end in a slash when called with the - optional argument non-nil. (Bug#6273) - -2016-01-08 Eli Zaretskii - - Use the face of preceding text for displaying the ellipsis - - * src/xdisp.c (setup_for_ellipsis): Use the face of the preceding - text in it->saved_face_id for displaying the ellipsis, and ignore - the face, if any, of the invisible text. (Bug#22320) - -2016-01-08 Michael Albinus - - Suppress Chinese file name test for OSX in tramp-tests.el - - * test/automated/tramp-tests.el (tramp--test-utf8): - Remove instrumentation. Suppress Chinese file name test for OSX. - -2016-01-07 Glenn Morris - - * admin/admin.el (set-version): Also handle the NEWS file. - -2016-01-07 Dmitry Gutov - - apropos-library: Skip obvious duplicates; don't error on generics - - * lisp/apropos.el (apropos-library): Skip "was an autoload" - entries, to avoid obvious duplicates. For each cl-defmethod - entry, take just its function symbol (bug#21422). - -2016-01-07 Dmitry Gutov - - Add project-find-file and project-or-external-find-file - - * lisp/minibuffer.el (completion-category-defaults): - Add `project-file' category. - - * lisp/progmodes/project.el (project-find-file) - (project-or-external-find-file): New commands. - (project--find-file-in): New private function. - - * lisp/progmodes/xref.el (xref-collect-matches): Use - `expand-file-name' on DIR, to expand the tildes. - (xref--find-ignores-arguments): Extract from - `xref--rgrep-command'. - -2016-01-06 Leo Liu - - Add defvar-local to lisp-imenu-generic-expression - - * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): Add - defvar-local. - -2016-01-06 Leo Liu - - Revert commit b1e3d14845517bfa9fa5d6d3840f3ab3160306fd - - * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): - Don't declare (indent 1). - -2016-01-06 Glenn Morris - - * lisp/emacs-lisp/autoload.el (autoload-find-destination): Doc fix. - -2016-01-06 Glenn Morris - - * lisp/emacs-lisp/autoload.el (autoload-find-destination): - - Avoid specifying the length of a time object (it has not been "2" - for some time). - -2016-01-06 Andreas Schwab - - Properly encode/decode base64Binary data in SOAP - - * lisp/net/soap-client.el (soap-encode-xs-basic-type): Encode - base64Binary value as utf-8. - (soap-decode-xs-basic-type): Decode base64Binary value as utf-8. - -2016-01-06 Eli Zaretskii - - Obey coding-system-for-write when writing stdout/stderr in batch - - * src/print.c (printchar_to_stream): - * src/xdisp.c (message_to_stderr): If coding-system-for-write has - a non-nil value, use it to encode output in preference to - locale-coding-system. See the discussions in - http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00048.html - for the details. - - * doc/lispref/os.texi (Terminal Output): Document how to send - non-ASCII text via 'send-string-to-terminal'. - (Batch Mode): Document how text written to standard streams is - encoded. Fix inaccuracy regarding which output streams are used - by output functions in batch mode. - -2016-01-06 Xue Fuqiao - - * doc/misc/efaq.texi (Packages that do not come with Emacs): - Update the URI of MELPA and marmalade-repo. Reported by CHENG Gao - in - https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00390.html. - -2016-01-05 Maksim Golubev (tiny change) - - * lisp/progmodes/opascal.el (opascal-mode-syntax-table): - - Fix backslash. (Bug#22224) - -2016-01-05 Federico Beffa (tiny change) - - * lisp/progmodes/xscheme.el (xscheme-prompt-for-expression-exit): - - Make it actually work. (Bug#22265) - -2016-01-05 Alan Mackenzie - - Remove function wrongly on AWK Mode value of context fontification hook. - - * lisp/progmodes/cc-langs.el (c-before-context-fontification-functions): - swap order of entries so that awk's entry isn't superseded by the default. - - * lisp/progmodes/cc-mode.el (c-before-context-fl-expand-region): Correct - to handle nil value of c-before-context-fontification-functions. - -2016-01-05 Paul Eggert - - * src/buffer.c: Stick with ASCII in doc string. - -2016-01-05 Paul Eggert - - Reword transient-mark-mode doc string - - * src/buffer.c (syms_of_buffer): Reword doc string to avoid confusion. - The value 'lambda (literally) can be interpreted as (quote lambda), - which is not intended here; we want just the lambda symbol. - -2016-01-05 Eli Zaretskii - - Update doc string of 'selective-display' - - * src/buffer.c (syms_of_buffer) : Say that - using it with the value of 't' is obsolete. (Bug#1092) - -2016-01-05 Alan Mackenzie - - Make C++ buffers writeable when writing their initial text properties. - - This is a correction to yesterday's CC Mode patch. - - * lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): Put - c-save-buffer-state around the function rather than a mere `let'. - -2016-01-05 Michael Albinus - - Additional changes for "make check-expensive" - - * CONTRIBUTE : Encourage use of ":tags '(:expensive-test)". - Explain make target `check-expensive'. - - * etc/NEWS: Mention new make target `check-expensive'. - - * test/automated/Makefile.in (check-doit): New target. - (check, check-expensive): Use it. - -2016-01-04 Alan Mackenzie - - Apply text properties for <, > in new after-change function (C++ Java Modes). - - These are category/syntax-table properties to give < and > paren syntax. - Also apply certain `c-type' text properties to the insides of <..> constructs - to ensure that identifiers contained by them get fontified. This patch fixes - bug #681. - - * lisp/progmodes/cc-cmds.el (c-electric-lt-gt): Reformulate due to new - after-change action. - - * lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): Expand - change region to include s which might not be already marked as - parens, rather than just when paren text properties are removed. - (c-restore-<>-properties): New after-change function, which applies text - properties marking < and > with paren syntax. - - * lisp/progmodes/cc-fonts.el (c-font-lock-declarations): Ensure `c-type' - properties are applied to the interiors of <...> constructs, to ensure - fontification of identifiers there. - - * lisp/progmodes/cc-langs.el (c-before-font-lock-functions): Add - c-restore-<>-properties to this list for C++ and Java. - - * lisp/progmodes/cc-mode.el (c-common-init): When invoking - c-before-font-lock-functions, exclude c-restore-<>-properties from the - functions invoked. - (c-before-change): Initialize c-new-BEG/END here (rather than c-after-change) - to allow modification by before-change functions. - (c-after-change): Amend c-new-END here, rather than initializing it and - c-new-BEG. - -2016-01-04 Michael Albinus - - Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 - -2016-01-04 Michael Albinus - - Introduce check-expensive tests. - - * Makefile.in (check-expensive): - * test/automated/Makefile.in (check-expensive): New target. - - * test/automated/auto-revert-tests.el - (auto-revert-test01-auto-revert-several-files): - * test/automated/file-notify-tests.el (file-notify--deftest-remote): - * test/automated/tramp-tests.el (tramp-test26-process-file) - (tramp-test27-start-file-process, tramp-test28-shell-command) - (tramp-test29-vc-registered) - (tramp-test31-special-characters-with-stat) - (tramp-test31-special-characters-with-perl) - (tramp-test31-special-characters-with-ls) - (tramp-test32-utf8-with-stat, tramp-test32-utf8-with-perl) - (tramp-test32-utf8-with-ls, tramp-test33-asynchronous-requests) - (tramp-test35-unload): Tag the tests as :expensive-test. - -2016-01-04 Lars Magne Ingebrigtsen - - shr-tag-video bug fix - - * shr.el (shr-tag-video): Protect against the `poster' being - empty. - -2016-01-04 Michael Albinus - - Minor fixes in tramp-tests.el - - * test/automated/tramp-tests.el (tramp-test26-process-file): - Move point properly. - (tramp-test29-vc-registered): Work with relative file names. - -2016-01-04 Eli Zaretskii - - Ensure redisplay when 'truncate-lines' is set - - * lisp/frame.el (redisplay--variables): Add 'truncate-lines'. - (Bug#22303) - -2016-01-04 Eli Zaretskii - - Fix a doc string of 'transient-mark-mode' - - * src/buffer.c (syms_of_buffer) : Prevent - "lambda" in doc string from becoming a link to lambda expressions. - -2016-01-04 Eli Zaretskii - - MS-Windows followup to latest gnulib update - - * nt/gnulib.mk (EXTRA_DIST): Add ignore-value.h. - -2016-01-04 Paul Eggert - - Spelling fix - -2016-01-03 Jens Lechtenboerger - - Do secure signed Bcc handling - - * lisp/gnus/message.el (message-send): Do secure signed Bcc handling - (bug#18718). - -2016-01-03 Paul Eggert - - Avoid stdio in SIGINT handler - - * admin/merge-gnulib (GNULIB_MODULES): Add ignore-value. - * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. - * lib/ignore-value.h: New file, from gnulib. - * src/keyboard.c: Include it. - (write_stdout, read_stdin): New functions. - (handle_interrupt): Use them instead of printf and getchar, - and avoid fflush when handling signals. - -2016-01-03 Paul Eggert - - * doc/misc/texinfo.tex: Revert unwanted copyright change. - -2016-01-03 Artur Malabarba - - * lisp/align.el (align): Simplify a lambda - - * lisp/align.el (align): Fix arg order in call to `align-region' - -2016-01-03 Eli Zaretskii - - Fix compilation next-error in buffers with selective-display - - * lisp/progmodes/compile.el (compilation-beginning-of-line): New - function. - (compilation-internal-error-properties) - (compilation-next-error-function, compilation-set-window): Use - it. (Bug#1092) - -2016-01-03 Lars Magne Ingebrigtsen - - * nsm.el (nsm-check-protocol): Fix typo in the message. - -2016-01-03 Lars Magne Ingebrigtsen - - Add SHA1 warnings for high network security settings - - * nsm.el (nsm-check-protocol): When using high security, warn - about SHA1 certificates, which are now believed to be open to - spoofing. - -2016-01-02 Jens Lechtenboerger - - Refactor mml-smime.el, mml1991.el, mml2015.el - - (Maybe this is the last merge from Gnus git to Emacs git) - - Cf. discussion on ding mailing list, messages in - . - Common code from the three files mml-smime.el, mml1991.el, and - mml2015.el is moved to mml-sec.el. Auxiliary functions are added - to gnus-util.el. - - The code is supported by test cases with necessary test keys. - - Documentation in message.texi is updated. - - * doc/misc/message.texi (Security, Using S/MIME): - Update for refactoring mml-smime.el, mml1991.el, mml2015.el. - (Using OpenPGP): Rename from "Using PGP/MIME"; update contents. - (Passphrase caching, Encrypt-to-self, Bcc Warning): New sections. - - * lisp/gnus/gnus-util.el (gnus-test-list, gnus-subsetp, gnus-setdiff): - New functions. - - * lisp/gnus/mml-sec.el: Require gnus-util and epg. - (epa--select-keys): Autoload. - (mml-signencrypt-style-alist, mml-secure-cache-passphrase): Doc fix. - (mml-secure-openpgp-signers): New user option; - make mml1991-signers and mml2015-signers obsolete aliases to it. - (mml-secure-smime-signers): New user option; - make mml-smime-signers an obsolete alias to it. - (mml-secure-openpgp-encrypt-to-self): New user option; - make mml1991-encrypt-to-self and mml2015-encrypt-to-self obsolete - aliases to it. - (mml-secure-smime-encrypt-to-self): New user option; - make mml-smime-encrypt-to-self an obsolete alias to it. - (mml-secure-openpgp-sign-with-sender): New user option; - make mml2015-sign-with-sender an obsolete alias to it. - (mml-secure-smime-sign-with-sender): New user option; - make mml-smime-sign-with-sender an obsolete alias to it. - (mml-secure-openpgp-always-trust): New user option; - make mml2015-always-trust an obsolete alias to it. - (mml-secure-fail-when-key-problem, mml-secure-key-preferences): - New user options. - (mml-secure-cust-usage-lookup, mml-secure-cust-fpr-lookup) - (mml-secure-cust-record-keys, mml-secure-cust-remove-keys) - (mml-secure-add-secret-key-id, mml-secure-clear-secret-key-id-list) - (mml-secure-cache-passphrase-p, mml-secure-cache-expiry-interval) - (mml-secure-passphrase-callback, mml-secure-check-user-id) - (mml-secure-secret-key-exists-p, mml-secure-check-sub-key) - (mml-secure-find-usable-keys, mml-secure-select-preferred-keys) - (mml-secure-fingerprint, mml-secure-filter-keys) - (mml-secure-normalize-cust-name, mml-secure-select-keys) - (mml-secure-select-keys-1, mml-secure-signer-names, mml-secure-signers) - (mml-secure-self-recipients, mml-secure-recipients) - (mml-secure-epg-encrypt, mml-secure-epg-sign): New functions. - - * lisp/gnus/mml-smime.el: Require epg; - refactor declaration and autoloading of epg functions. - (mml-smime-use): Doc fix. - (mml-smime-cache-passphrase, mml-smime-passphrase-cache-expiry): - Obsolete. - (mml-smime-get-dns-cert, mml-smime-get-ldap-cert): - Use format instead of gnus-format-message. - (mml-smime-epg-secret-key-id-list): Remove variable. - (mml-smime-epg-passphrase-callback, mml-smime-epg-find-usable-key) - (mml-smime-epg-find-usable-secret-key): Remove functions. - (mml-smime-epg-sign, mml-smime-epg-encrypt): Refactor. - - * lisp/gnus/mml1991.el (mml1991-cache-passphrase) - (mml1991-passphrase-cache-expiry): Obsolete. - (mml1991-epg-secret-key-id-list): Remove variable. - (mml1991-epg-passphrase-callback, mml1991-epg-find-usable-key) - (mml1991-epg-find-usable-secret-key): Remove functions. - (mml1991-epg-sign, mml1991-epg-encrypt): Refactor. - - * lisp/gnus/mml2015.el (mml2015-cache-passphrase) - (mml2015-passphrase-cache-expiry): Obsolete. - (mml2015-epg-secret-key-id-list): Remove variable. - (mml2015-epg-passphrase-callback, mml2015-epg-check-user-id) - (mml2015-epg-check-sub-key, mml2015-epg-find-usable-key) - (mml2015-epg-find-usable-secret-key): Remove functions. - (mml2015-epg-decrypt, mml2015-epg-clear-decrypt, mml2015-epg-sign) - (mml2015-epg-encrypt): Refactor. - -2016-01-02 Glenn Morris - - * lisp/progmodes/fortran.el (fortran-make-syntax-propertize-function): - - Explicitly ignore case. (Bug#22262) - -2016-01-02 Stefan Monnier - - (semantic-symref-derive-find-filepatterns): Return a list - - * lisp/cedet/semantic/symref/grep.el - (semantic-symref-derive-find-filepatterns): Return a list. - (semantic-symref-perform-search): Quote the result here once and for all. - -2016-01-02 Eli Zaretskii - - Fix xref-find-references on MS-Windows - - * lisp/cedet/semantic/symref/grep.el - (semantic-symref-derive-find-filepatterns): Use - 'shell-quote-argument' instead of manually quoting in a way that - only works with Posix shells. (Bug#22289) - -2016-01-02 Eli Zaretskii - - Document new features of tildify-mode - - * lisp/textmodes/tildify.el (tildify-foreach-ignore-environments) - (tildify-mode): Spelling fixes in doc strings. - - * etc/NEWS: Reformat the tildify-mode entry. - -2016-01-02 Eli Zaretskii - - Document new features of Whitespace mode - - * doc/emacs/display.texi (Useless Whitespace): Document - 'whitespace-toggle-options' and the new 'big-indent' style. - Document 'whitespace-big-indent-regexp'. Document the Global - Whitespace mode. - -2016-01-02 Eli Zaretskii - - Improve documentation of new Hide-IfDef features - - * etc/NEWS: Expand and reword Hide-IfDef section. - -2016-01-02 Leo Liu - - Fix regression in font-locking cl-assert and cl-check-type - - * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): Fix - el-errs-re. - -2016-01-01 Paul Eggert - - Spelling and grammar fixes - -2016-01-01 Paul Eggert - - Fix copyright years by hand - - These are dates that admin/update-copyright did not update, or - updated incorrectly. - -2016-01-01 Paul Eggert - - Update copyright year to 2016 - - Run admin/update-copyright. - -2016-01-01 Paul Eggert - - Merge from gnulib - - This mostly just updates copyright dates of gnulib files. - It also updates to the latest version of texinfo.tex. - -2015-12-31 Mark Oteiza - - lisp/emacs-lisp/chart.el (chart-new-buffer): Move to silence byte compiler. - -2015-12-31 Mark Oteiza - - Port chart.el methods to cl-generic. - - cl-call-next-method cannot be used inside EIEIO's defmethod. - * lisp/emacs-lisp/chart.el: Require cl-generic at compile time. - * lisp/emacs-lisp/chart.el (initialize-instance, chart-draw): - (chart-draw-title, chart-size-in-dir, chart-draw-axis): - (chart-axis-draw, chart-translate-xpos, chart-translate-ypos): - (chart-translate-namezone, chart-draw-data, chart-add-sequence): - (chart-trim, chart-sort): Use cl-defmethod instead of defmethod. - -2015-12-31 Brian Burns - - Add nt/INSTALL.W64 build instructions - - * nt/INSTALL.W64: New file. - * nt/INSTALL: Point to INSTALL.W64 for 64-bit build instructions. - -2015-12-31 Joakim Jalap - - Add new input method 'programmer-dvorak' - - * lisp/leim/quail/programmer-dvorak.el ("programmer-dvorak"): New - input method. - - * etc/NEWS: Mention it. - -2015-12-31 Eli Zaretskii - - Allow to invoke original M-TAB binding in 'flyspell-prog-mode' - - * lisp/textmodes/flyspell.el (flyspell-prog-mode): Record the - original M-TAB binding in a buffer-local variable. - (flyspell-auto-correct-word): Invoke the original binding of M-TAB - if that is recorded, when point is in a place where flyspell - should not be active (e.g., because the user turned on - 'flyspell-prog-mode'). (Bug#18533) - -2015-12-31 Eli Zaretskii - - Fix EWW rendering of long RTL lines - - * lisp/net/shr.el (shr-insert-document): Undo any previous hscroll - of the selected window before filling its lines. (Bug#22250) - -2015-12-31 Vincent Belaïche - - fix bug#21054 - - * ses.el (ses-check-curcell): Call `ses-set-curcell' unconditionally - -2015-12-31 YAMAMOTO Mitsuharu - - Clean up cairo printing code - - * src/gtkutil.c (xg_get_page_setup): Use listn. - * src/xfns.c (Fx_export_frames, Fx_print_frames_dialog): Doc fix. Use - decode_window_system_frame and FRAME_VISIBLE_P. - (Fx_print_frames_dialog): Use redisplay_preserve_echo_area instead - of Fdisplay. - * src/xterm.c (x_cr_export_frames): Use redisplay_preserve_echo_area - instead of Fdisplay. Temporarily unblock_input around QUIT. - -2015-12-30 YAMAMOTO Mitsuharu - - Add handle_user_signal_hook - - * src/keyboard.h (handle_user_signal_hook): New declaration. - * src/keyboard.c (handle_user_signal_hook): New variable. - (handle_user_signal): Call it. - -2015-12-30 YAMAMOTO Mitsuharu - - Avoid writing to purespace - - * src/alloc.c (Fmake_string): Don't write to empty string contents. - (allocate_vector): Don't write to empty vector size. - * src/character.h (CHECK_CHARACTER_CAR, CHECK_CHARACTER_CDR): - Don't call unnecessary XSETCAR or XSETCDR. - * src/lisp.h (STRING_SET_UNIBYTE, STRING_SET_MULTIBYTE): Don't - write to empty string size_byte. - -2015-12-30 YAMAMOTO Mitsuharu - - Remove unused variable - - * lisp/international/mule-cmds.el: Remove unused variable - `mac-system-coding-system'. - -2015-12-30 YAMAMOTO Mitsuharu - - * configure.ac: Find libxml2 headers in Xcode SDK dir on Darwin. - -2015-12-30 YAMAMOTO Mitsuharu - - Use posix_openpt instead of openpty on Darwin - - * configure.ac (PTY_ITERATION, FIRST_PTY_LETTER, PTY_OPEN) - (PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF): Remove - Darwin-specific definitions. Use posix_openpt instead. - -2015-12-30 Shakthi Kannan - - Document support for ':documentation' in Lisp mode - - * lisp/emacs-lisp/lisp-mode.el (lisp-string-in-doc-position-p) - (lisp-string-after-doc-keyword-p) - (lisp-font-lock-syntactic-face-function): Add doc strings. - -2015-12-30 Shakthi Kannan - - Document new features of TeX mode - - * doc/emacs/text.texi (TeX Print): Document - 'tex-print-file-extension'. - * doc/emacs/programs.texi (Misc for Programs): Document support - for Prettify Symbols mode in TeX mode. - -2015-12-30 Eli Zaretskii - - Clarify docs of hscroll in RTL text - - * doc/lispref/windows.texi (Horizontal Scrolling): Clarify the - meaning of a window's horizontal scroll amount for RTL paragraphs. - -2015-12-30 Eli Zaretskii - - Fix rendering of HTML pages that use character composition - - * src/indent.c (Fvertical_motion): Fix the case when point starts - in the middle of a composition, as in shr-vertical-motion. - (Bug#22250) - -2015-12-30 Eli Zaretskii - - Avoid some compiler warnings in w32.c - - * src/w32.c (codepage_for_filenames, crlf_to_lf) - (ansi_encode_filename, socket_to_fd, sys_write) - (check_windows_init_file): Avoid compiler warnings about - differences in pointer signedness. - -2015-12-29 Dmitry Gutov - - Undo ill-advised change - - * lisp/progmodes/xref.el (xref-collect-matches): Undo - ill-advised change. The hits come in the order that `find' - produces them in, which isn't alphabetical. - -2015-12-29 Dmitry Gutov - - Unbreak completion in python-mode buffers - - * lisp/progmodes/python.el (python-shell-completion-at-point): - Unbreak in python-mode buffers. - -2016-01-09 Andrew Hyatt - - Adding example replies to bug-triage. - - * admin/notes/bug-triage: Added example replies. Also, as requested, - making the process notes into more of a checklist. - -2016-01-08 Andrew Hyatt - - Rename the notes/admin/triage file to bug-triage. - - * CONTRIBUTE: Change reference to the triage file name. - * admin/notes/triage: Rename file to admin/notes/bug-triage. - -2016-01-07 Glenn Morris - - Allow creation of loaddefs files without timestamps. - - * lisp/emacs-lisp/autoload.el (autoload-timestamps): New variable. - (autoload-generate-file-autoloads, update-directory-autoloads): - If autoload-timestamps is nil, write "t" instead of file timestamp. - (autoload-find-destination, update-directory-autoloads): - If timestamp is "t", use the modtime of the output file instead. - -2016-01-06 Glenn Morris - - Doc tweaks. - - * lisp/calendar/cal-hebrew.el (diary-hebrew-list-entries): - * lisp/calendar/cal-iso.el (calendar-iso-to-absolute) - (calendar-iso-from-absolute): - * lisp/calendar/cal-tex.el (cal-tex-comment): - * lisp/calendar/solar.el (calendar-time-display-form): Doc tweaks. - -2016-01-06 Glenn Morris - - Build tweaks related to tags files. - - * lib-src/Makefile.in (tagsfiles): New variable. - (TAGS): Also depend on the source files. Use our own etags program. - * lisp/Makefile.in (ETAGS): Add EXEEXT. - (lisptagsfiles1, lisptagsfiles2, lisptagsfiles3, lisptagsfiles4): - Remove. - (tagsfiles): New, replacing lisptagsfiles1 etc. - Remove irrelevant source files here rather than in the TAGS rule. - (${ETAGS}): New rule. - (TAGS): Also depend on the etags executable. - * lwlib/Makefile.in (EXEEXT): New, set by configure. - (ETAGS): Add EXEEXT. - (${ETAGS}): New rule. - (ctagsfiles): Use "wildcard". - (TAGS): Also depend on the etags executable. - * nt/Makefile.in (ETAGS, tagsfiles): New variables. - (${ETAGS}): New rule. - (TAGS): Fix dependencies. - * oldXMenu/Makefile.in (EXEEXT): New, set by configure. - (ETAGS): New variable, replacing $TAGS. Use our own etags program. - Remove "-t" argument. - (${ETAGS}): New rule. - (tagsfiles): New variable. - (TAGS): New rule, with proper dependencies. - * src/Makefile.in (ETAGS): Add EXEEXT. Add a build rule. - (ctagsfiles1, ctagsfiles2): Use "wildcard". - (ctagsfiles3): Remove. - (TAGS): Depend on etags. - (../lisp/TAGS, $(lwlibdir)/TAGS): Let the rules in the relevant - directories decide if updates are needed. - -2016-01-06 Glenn Morris - - * lisp/Makefile.in (CAL_SRC): Skip calendar.el. - -2016-01-06 Glenn Morris - - * test/lisp/emacs-lisp/package-tests.el - - (package-test-macro-compilation): Fixup branch merge. - -2016-01-05 Eli Zaretskii - - Fix fallout from merging emacs-25 branch in test/ - - * .gitignore: Update for the new place of biditest.txt. - * test/automated/: Directory removed. All files moved to their - proper places. - * test/etags/: Directory removed. All files moved to their proper - places. - * test/automated/url-parse-tests.el: File removed; it was an exact - copy of the same file in test/lisp/url/. - * test/automated/url-expand-tests.el: Moved to test/lisp/url/. - -2016-01-04 Paul Eggert - - Spelling fixes. - -2016-01-04 Daniel Colascione - - Let users disable unsafe signal handling code - - * src/keyboard.c (syms_of_keyboard): New user variables - `attempt-stack-overflow-recovery' and - `attempt-orderly-shutdown-on-fatal-signal'. - * src/sysdep.c (stack_overflow): Check - `attempt-stack-overflow-recovery'. - * src/emacs.c (terminate_due_to_signal): Check - `attempt-orderly-shutdown-on-fatal-signal'. - -2016-01-03 Michael Albinus - - * configure.ac: Add error message for gfile on Nextstep. - -2016-01-03 John Wiegley - - Merge branch 'emacs-25-merge' - -2016-01-02 Vincent Belaïche - - Align textually on fix done for emacs-25 branch for bug#21054 - - * lisp/ses.el (ses-check-curcell): Suppress ``temporary fix'' comment, - and useless `(if t ...)' in order to align textually on fix done for - emacs-25 branch for bug#21054. - -2016-01-02 K. Handa - - support rendering of wider range of combinging characters by ftfont backend - - * lisp/language/hebrew.el (hebrew-shape-gstring): If the font backend - supports rendering of combining characters, call - font-shape-gstring. - - * src/font.c (Ffont_get): Handle `combining-capability' property. - (syms_of_font): New symbol ":combining-capability'. - - * src/font.h (struct font_driver): New member combining_capability. - - * src/ftfont.c: Include "category.h". - (ftfont_driver): Initialize combining_capability to - ftfont_combining_capability. - (ftfont_shape_by_flt): If OTF is null, try to find a suitable - FLT in advance. - (ftfont_combining_capability): New function. - -2016-01-01 Andrew Hyatt - - Add notes on bug triage procedure - - * CONTRIBUTE: In section on the issue tracker, point to new triage file. - * admin/notes/triage: New file explaining triage procedure. - -2015-12-30 Vincent Belaïche - - Correct ses-rename-cell cursor-intangible text prop updating. - - There were two problems: - - - First ses-rename-cell has to work when called non interactively - (with non-nil CELL argument), so in this case the start pos of - put-text-property cannot be plainly (point), you need a - ses-goto-print call before - - - Second, the range itself was computed erronously, only the first - char was affected instead of the full cell width. This was not - noticeable prior to changes (Deprecate `intangible' and - `point-entered' properties) made by Stefan on 2015-04-13T19:51:15Z - - * lisp/ses.el (ses-rename-cell): Correct computation of position range - to which the 'cursor-intangible text property has to be set to cell - new name. - -2015-12-30 Vincent Belaïche - - Don't fake empty cells value by "" when printing with a lambda. - - When using a lambda expression printer function the user should be - free to format differently a really empty cell, ie. containing nil, - from a cell containing an empty string "". - - * ses.el (ses-call-printer): Replace `(or value "")' by just `value' - in the case of a lambda expression printer function. - - * ses.texi (Printer functions): Add example and description about - lambda expression printer function handling all the possible values, - including unexpected ones. - -2015-12-30 Vincent Belaïche - - Quick temporary hack to fix curcell refreshing. - - The problem was caused by change: 2015-04-13 Deprecate `intangible' - and `point-entered' properties. The problem is that this change has - removed the (setq ses--curcell t) setting in the ses-command-hook - function. - - * ses.el (ses-check-curcell): replace `(eq ses--curcell t)' by just `t' as - a condition to call function `ses-set-curcell'. Comment this as a quick - temporary hack to make it work, as I don't know yet whether a definite - correction would be to make the ses-set-curcell at every ses-check-curcell, - or to revert to the previous approach, ie marking ses--curcell as out-of-date - at every potentially cursor motion command. - -2015-12-30 Lars Magne Ingebrigtsen - - Restrictive URL checking tweaks - - * lisp/net/eww.el (eww): Check whether the domain is - restrictive instead of the string - (http://македонија.icom.museum is restrictive even if each - part is from a different script). - -2015-12-30 Lars Magne Ingebrigtsen - - New function `puny-highly-restrictive-domain-p' - - * lisp/net/puny.el (puny-highly-restrictive-string-p): Rename. - (puny-highly-restrictive-domain-p): New function. - -2015-12-30 Lars Magne Ingebrigtsen - - eww build fix (require puny) - -2015-12-30 Lars Magne Ingebrigtsen - - Transform non-restrictive domains to punycode for display - - * lisp/net/eww.el (eww): Check whether the domain is Highly - Restrictive in the Unicode IDNA sense. - -2015-12-30 John Wiegley - - Merge emacs-25 into master (using imerge) - -2015-12-29 Eli Zaretskii - - Fix typos in CC Mode manual - - * doc/misc/cc-mode.texi (c-offsets-alist, Style Variables): Fix - typos. (Bug#22267) - -2015-12-29 Eli Zaretskii - - Avoid assertion violations in compact_font_cache_entry - - * src/alloc.c (compact_font_cache_entry): Don't use VECTORP to - avoid assertion violation in ASIZE. (Bug#22263) - -2015-12-29 Eli Zaretskii - - Fix filling text with bidirectional characters in shr.el - - * lisp/net/shr.el (shr-insert-document): Bind - bidi-display-reordering to nil while filling lines. This is - required for when a line includes characters whose bidi - directionality is opposite to the base paragraph direction, - because columns are counted in the logical order. (Bug#22250) - -2015-12-29 Lars Ingebrigtsen - - Further Unicode restrictive fixups - - * puny.el (puny-highly-restrictive-p): Include the extra - identifier characters from table 3. - -2015-12-29 Martin Rudalics - - * src/xfns.c (x_create_tip_frame): Process alpha parameter. - -2015-12-29 Michael Albinus - - Sync with Tramp 2.2.13 - - * doc/misc/trampver.texi: Change version to "2.2.13.25.1". - - * lisp/net/tramp-compat.el (tramp-compat-delete-dups): - Use `tramp-compat-funcall'. - - * lisp/net/tramp-gvfs.el (tramp-gvfs-parse-device-names): - Make `split-string' call compatible with older Emacsen. - - * lisp/net/trampver.el: Change version to "2.2.13.25.1". - -2015-12-29 Lambda Coder - - * doc/misc/tramp.texi: Editorial revisions to the Tramp manual - -2015-12-29 Lars Ingebrigtsen - - Mention that tls.el is secure by default, and will fail - -2015-12-29 Lars Ingebrigtsen - - Make tls.el use trustfiles by default - - * lisp/net/tls.el (tls-program): Add a certfile by default (bug#21227). - (open-tls-stream): Insert the trustfile by looking at - `gnutls-trustfiles'. - -2015-12-29 Lars Ingebrigtsen - - Refactor out gnutls-trustfiles - - * lisp/net/gnutls.el (gnutls-trustfiles): Refactor out for reuse by tls.el. - -2015-12-29 Lars Ingebrigtsen - - Remove --insecure from gnutls-cli invocation - - * tls.el (tls-program): Default to using secure TLS - connections (bug#19284). - -2015-12-29 Lars Ingebrigtsen - - Add a new function to say whether a string is restrictive - - * puny.el (puny-highly-restrictive-p): New function. - -2015-12-28 Paul Eggert - - Spelling fix - -2015-12-28 Paul Eggert - - Port report-emacs-bug to deterministic builds - - * lisp/mail/emacsbug.el (report-emacs-bug): Future-proof the - recent "built on" change to deterministic builds where - emacs-build-system will be nil. See: - http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01369.html - -2015-12-28 Jose A. Ortega Ruiz (tiny change) - - Fix URL auth error message - - * lisp/url/url-http.el (url-http-handle-authentication): Make the error - message more correct (bug#20069). - -2015-12-28 Lars Ingebrigtsen - - Mention the new puny.el library - -2015-12-28 Lars Ingebrigtsen - - IDNA-related fixes for the URL library - - * lisp/url/url-http.el (url-http-create-request): IDNA-encode - the Host: header. - - * lisp/url/url-util.el (url-encode-url): Don't hex-encode - domain names, but leave them as UTF-8, so that they can be - IDNA-encoded later when contacting the host. - -2015-12-28 Lars Ingebrigtsen - - IDNA-encode all domain names in `open-network-stream' - - * network-stream.el (open-network-stream) - (network-stream-open-plain, network-stream-open-starttls): - IDNA-encode all domain names, if needed. - -2015-12-28 Lars Ingebrigtsen - - Fix puny-encoding all-non-ASCII domains - - * puny.el (puny-encode-string): Fix the all-non-ASCII encoding case. - -2015-12-28 Lars Ingebrigtsen - - * lisp/net/shr.el (shr-next-link): Don't bug out on adjacent links. - -2015-12-28 Tom Tromey - - set :safe on css-indent-offset - - * lisp/textmodes/css-mode.el (css-indent-offset): Add :safe 'integerp. - -2015-12-28 Lars Ingebrigtsen + * lisp/net/tramp.el (bkup-backup-directory-info) + (directory-sep-char, ls-lisp-use-insert-directory-program) + (outline-regexp, tramp-backup-directory-alist) + (tramp-default-method, tramp-shell-prompt-pattern, tramp-syntax) + (tramp-file-name-regexp-unified) + (tramp-file-name-regexp-separate) + (tramp-completion-file-name-regexp-unified) + (tramp-completion-file-name-regexp-separate, tramp-chunksize) + (tramp-get-method-parameter, tramp-find-method, tramp-find-user) + (tramp-debug-message, tramp-progress-reporter-update) + (with-tramp-progress-reporter) + (tramp-rfn-eshadow-setup-minibuffer) + (rfn-eshadow-setup-minibuffer-hook, tramp-unload-hook) + (tramp-rfn-eshadow-update-overlay) + (rfn-eshadow-update-overlay-hook, tramp-default-file-modes) + (tramp-file-name-for-operation) + (tramp-completion-file-name-handler) + (tramp-autoload-file-name-handler, tramp-completion-mode-p) + (tramp-handle-directory-files) + (tramp-handle-directory-files-and-attributes) + (tramp-handle-dired-uncache, tramp-handle-find-backup-file-name) + (tramp-handle-insert-file-contents, tramp-handle-load) + (tramp-handle-shell-command) + (tramp-handle-verify-visited-file-modtime) + (tramp-handle-file-notify-valid-p, tramp-accept-process-output) + (tramp-check-for-regexp, tramp-wait-for-regexp) + (tramp-send-string, tramp-mode-string-to-int) + (tramp-get-local-gid, tramp-check-cached-permissions) + (tramp-get-remote-tmpdir, tramp-make-tramp-temp-file) + (auto-save-file-name-transforms) + (tramp-handle-make-auto-save-file-name, tramp-read-passwd) + (tramp-clear-passwd, tramp-time-diff): + * lisp/net/tramp-adb.el (directory-listing-before-filename-regexp) + (directory-sep-char, tramp-adb-file-name-handler-alist) + (tramp-adb-parse-device-names) + (tramp-adb-handle-expand-file-name) + (tramp-adb-handle-file-truename, tramp-adb--gnu-switches-to-ash) + (tramp-adb-handle-file-local-copy) + (tramp-adb-handle-write-region, tramp-adb-handle-set-file-modes) + (tramp-adb-handle-rename-file, tramp-adb-handle-process-file) + (tramp-adb-handle-shell-command) + (tramp-adb-handle-start-file-process, tramp-adb-get-device) + (tramp-adb-maybe-open-connection): + * lisp/net/tramp-cache.el (tramp-persistency-file-name) + (tramp-cache-print): + * lisp/net/tramp-cmds.el (tramp-cleanup-all-connections) + (tramp-bug, tramp-reporter-dump-variable) + (tramp-load-report-modules, tramp-append-tramp-buffers): + * lisp/net/tramp-compat.el (tramp-compat-funcall) + (tramp-advice-file-expand-wildcards) + (tramp-compat-temporary-file-directory) + (tramp-compat-make-temp-file, tramp-compat-copy-file) + (tramp-compat-delete-directory, ) + (tramp-compat-process-running-p): + * lisp/net/tramp-ftp.el (tramp-methods) : + (tramp-default-method-alist, tramp-foreign-file-name-handler-alist): + * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist) + (tramp-gvfs-do-copy-or-rename-file, tramp-gvfs-handle-copy-file) + (tramp-gvfs-handle-file-local-copy) + (tramp-gvfs-handle-file-name-all-completions) + (tramp-gvfs-handle-file-notify-add-watch) + (tramp-gvfs-monitor-file-process-filter) + (tramp-gvfs-handle-file-readable-p) + (tramp-gvfs-handle-rename-file, tramp-gvfs-handle-write-region) + (tramp-gvfs-file-name, tramp-gvfs-handler-askquestion) + (tramp-gvfs-maybe-open-connection) + (tramp-gvfs-parse-device-names): + * lisp/net/tramp-gw.el (tramp-gw-aux-proc-sentinel) + (tramp-gw-open-connection, tramp-gw-open-network-stream): + * lisp/net/tramp-sh.el (directory-sep-char) + (tramp-sh-file-name-handler-alist) + (tramp-sh-handle-file-truename) + (tramp-sh-handle-set-visited-file-modtime) + (tramp-sh-handle-verify-visited-file-modtime) + (tramp-sh-handle-set-file-modes, tramp-sh-handle-set-file-times) + (tramp-sh-handle-file-acl) + (tramp-sh-handle-file-name-all-completions) + (tramp-sh-handle-copy-file, tramp-sh-handle-rename-file) + (tramp-do-copy-or-rename-file-directly) + (tramp-do-copy-or-rename-file-out-of-band) + (dired-compress-file-suffixes, dired-remove-file) + (tramp-sh-handle-dired-compress-file) + (tramp-sh-handle-insert-directory) + (tramp-sh-handle-expand-file-name) + (tramp-sh-handle-start-file-process) + (tramp-sh-handle-process-file, tramp-sh-handle-file-local-copy) + (tramp-sh-handle-write-region, tramp-sh-handle-vc-registered) + (tramp-sh-handle-file-notify-add-watch) + (tramp-sh-gvfs-monitor-dir-process-filter) + (tramp-sh-inotifywait-process-filter, tramp-maybe-send-script) + (tramp-find-executable) + (tramp-open-connection-setup-interactive-shell) + (tramp-find-inline-encoding, tramp-compute-multi-hops) + (tramp-maybe-open-connection, tramp-convert-file-attributes) + (tramp-get-remote-path, tramp-get-remote-touch): + * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist) + (tramp-smb-handle-copy-directory, tramp-smb-handle-copy-file) + (tramp-smb-handle-delete-directory) + (tramp-smb-handle-directory-files, tramp-smb-handle-file-acl) + (tramp-smb-handle-make-directory-internal) + (tramp-smb-handle-process-file, tramp-smb-handle-rename-file) + (tramp-smb-handle-set-file-acl, tramp-smb-handle-set-file-modes) + (tramp-smb-handle-write-region, tramp-smb-get-file-entries) + (tramp-smb-get-cifs-capabilities) + (tramp-smb-maybe-open-connection): + * lisp/net/trampver.el (tramp-repository-get-version): + Remove XEmacs compat code. - * eww.el (eww-mode): Remove superfluous bidi reset. + * lisp/net/tramp-cmds.el (mml-mode, mml-insert-empty-tag) + (reporter-dump-variable): Declare functions. -2015-12-28 James Stout (tiny change) + * lisp/net/tramp.el (tramp-bkup-backup-directory-info) + (tramp-advice-minibuffer-electric-separator) + (tramp-advice-minibuffer-electric-tilde) + (tramp-handle-unhandled-file-name-directory): + * lisp/net/tramp-compat.el (tramp-compat-with-temp-message) + (tramp-compat-font-lock-add-keywords) + (tramp-compat-load, tramp-compat-number-sequence) + (tramp-compat-split-string, tramp-compat-delete-dups): + * lisp/net/tramp-sh.el (tramp-sh-handle-insert-file-contents-literally): + Remove. - Make chunked encoding trailer detection more compliant + * lisp/net/tramp-sh.el (tramp-methods) : This does not work + recursively. - * lisp/url/url-http.el - (url-http-chunked-encoding-after-change-function): Make - trailer detection more compliant (bug#16345). +2016-01-14 K. Handa -2015-12-28 Lars Ingebrigtsen + fix previous change of src/ftfont.c (ftfont_shape_by_flt) - Reconnect erc even on server errors + * src/ftfont.c (ftfont_shape_by_flt): Fix previous change. Access the + second glyph only when there are enough glyphs. - * lisp/erc/erc-backend.el (erc-server-reconnect-p): Try to - reconnect even if a server error has occurred (bug#18527). +2016-01-13 Glenn Morris -2015-12-28 Lars Ingebrigtsen + * src/buffer.c (Fset_buffer_major_mode): Allow default major-mode, - Fix punycode short circuit logic + or its hook, to move point. (Bug#22348) - * puny.el (puny-encode-domain): Fix short-circuit logic. +2016-01-12 Michael Albinus -2015-12-28 Martin Rudalics + Merge missing commit from emacs-25 branch - Fix Bug#10873 in `report-emacs-bug' + * test/Makefile.in (SELECTOR_DEFAULT, SELECTOR_EXPENSIVE, SELECTOR): + New variables. + (check-expensive, check-doit): New targets. - * lisp/mail/emacsbug.el (report-emacs-bug): If - `report-emacs-bug-no-explanations' is nil, make sure we can show - mail and warnings buffer on this frame (Bug#10873). + * Makefile.in (check-expensive): New target. -2015-12-28 Lars Ingebrigtsen + * test/lisp/autorevert-tests.el + (auto-revert-test01-auto-revert-several-files): + * test/lisp/filenotify-tests.el (file-notify--deftest-remote) + (file-notify-test06-many-events): + * test/lisp/net/tramp-tests.el (tramp-test26-process-file) + (tramp-test27-start-file-process, tramp-test28-shell-command) + (tramp-test29-vc-registered) + (tramp-test31-special-characters-with-stat) + (tramp-test31-special-characters-with-perl) + (tramp-test31-special-characters-with-ls) + (tramp-test32-utf8-with-stat, tramp-test32-utf8-with-perl) + (tramp-test32-utf8-with-ls, tramp-test33-asynchronous-requests) + (tramp-test35-unload): Tag the tests as :expensive-test. - IDNA speed up +2016-01-12 John Wiegley - * puny.el (puny-encode-domain): Make the common non-IDNA case faster + Merge from origin/emacs-25 -2015-12-28 Lars Ingebrigtsen + 1f6898d test/automated/vc-hg.el: Support out-of-tree build + 3adb56e Minor change in tramp-tests.el + 2b535ba ; * etc/NEWS: Update the js.el entry. + 76b518c * etc/HELLO: Add Armenian and Mongolian greetings. + b51f1ef Java Mode: Fontify identifiers in the presence of annotations. + 36b9539 Avoid an infloop when we run out of memory + 2006752 Avoid unnecessary failures of auto-saving after fatal error + eef6784 Simplify HAVE_MODULES use in mark_maybe_pointer + 552694a Revert attempt to use 'noexcept' in typedef + 6ad0d39 Update documentation of 'indirect-function' + c6a5314 ; * etc/NEWS: Move entry of 'inhibit-point-motion-hooks'. + 303141a Update documentation for obsoleting 'syntax-begin-function' + 4e6f61c ; * etc/NEWS: Mark documented and not-to-be-documented entries. + e667bbb Document new features if Eshell + 9c4e4e0 ; * etc/NEWS: Update EUDC entries. + 1089dc9 Handle too long commands in Tramp + 684eb58 * .gitattributes: *.cur and *.pif are binary files too. + d2c7fda * src/alloc.c (mark_maybe_pointer): HAVE_MODULES may be undefined + bd3f53d * sh-script.el (sh-smie-sh-rules): Improve indentation inside $(...) + 09b2b8a * src/alloc.c (mark_maybe_pointer): Also check wide-int's emacs_value + cca0f93 ; Account for spaces before the filename + c71e1e8 Use short date for 'hg annotate', and output the author + f50027b Spelling fix + c7dff67 ; * etc/NEWS: Fix the Xref entries that got separated. + cc140bc Document user-level functions in project.el + f8208b6 Document the user-level features of the Xref package + b131fb8 * loading.texi: Add `define-type' entry for load-history + db3c2a8 Improve doc strings and prompts in xref.el + f6117ef Allow the use of `font-lock-extend-region-multiline' in CC Mode. + 90fd798 Fix coding system for Tramp on OS X. + e985a0e ; * etc/NEWS: Mark the 'check-expensive' entry not to be documented. + 9dfcbf0 Update 'load-history' docs + 207e191 Fix (error ...) error + 457738f Correctly analyze brace arguments in templated C++ function declarations. + d57724a * lisp/cedet/mode-local.el (describe-function-orig-buffer): Declare. + 2a9532d * lisp/ffap.el (ffap-latex-mode): Avoid free variable. + 1a6b084 * lisp/play/dunnet.el (dun-fix-screen): Avoid `end-of-buffer`. + 8be046f Respect fontification region calculated by major mode. Fixes bug #22316. + 4b37cba Improve documentation of Delete Selection mode + a034dd3 Fix two project-find-file issues + 30abf29 Clarify doc string of 'dired-current-directory' + e990bb2 Use the face of preceding text for displaying the ellipsis + 5810ac3 Suppress Chinese file name test for OSX in tramp-tests.el + eeb710a ; * lisp/startup.el: Sentences end with two spaces. + 428b3de * admin/admin.el (set-version): Also handle the NEWS file. + 648de81 ; Add NEWS entry for project.el + 671862f apropos-library: Skip obvious duplicates; don't error on generics + 51668a5 ; Grammar fix + ed41d11 Add project-find-file and project-or-external-find-file + 056da45 ; Improve commentary in 'setup_for_ellipsis' + 269d008 ; Improve docstring for `inhibit-startup-echo-area-message' - Add IDNA domain encode/decode functions +2016-01-12 John Wiegley - * puny.el (puny-decode-domain): New function. - (puny-encode-domain): Ditto. - (puny-decode-digit): Fix digit decoding error. + Merge from origin/emacs-25 -2015-12-28 Lars Ingebrigtsen + ce4a052 Add defvar-local to lisp-imenu-generic-expression + a0121bc Revert commit b1e3d14845517bfa9fa5d6d3840f3ab3160306fd + 76fe2d5 * lisp/emacs-lisp/autoload.el (autoload-find-destination): Doc fix. + 1ae088f * lisp/emacs-lisp/autoload.el (autoload-find-destination): + b6b47af Properly encode/decode base64Binary data in SOAP + c632466 Obey coding-system-for-write when writing stdout/stderr in batch + 2f32cb5 * doc/misc/efaq.texi (Packages that do not come with Emacs): + Update the URI of MELPA and marmalade-repo. + Reported by CHENG Goa in + https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00390.html. + d2937aa * lisp/progmodes/opascal.el (opascal-mode-syntax-table): + 5330c25 * lisp/progmodes/xscheme.el (xscheme-prompt-for-expression-exit): + 7380990 Remove function wrongly on AWK Mode value of context + fontification hook. + d400753 * src/buffer.c: Stick with ASCII in doc string. + 221240c Reword transient-mark-mode doc string + 977d3ea Update doc string of 'selective-display' + 229c3fa Make C++ buffers writeable when writing their initial text + properties. + f5c762c Additional changes for "make check-expensive" + 1729cf3 ; * admin/MAINTAINERS: Remove myself. + 33219d3 Apply text properties for <, > in new after-change function + (C++ Java Modes). - Rename idna.el to puny.el +2016-01-12 John Wiegley - * puny.el: Renamed from idna.el to avoid name collisions with - the external idna.el library. + Merge from origin/emacs-25 -2015-12-28 Lars Ingebrigtsen + 9fb185a shr-tag-video bug fix + 6300655 Minor fixes in tramp-tests.el + 50575b1 Ensure redisplay when 'truncate-lines' is set + 0d9e80d Fix a doc string of 'transient-mark-mode' + 0000ae5 MS-Windows followup to latest gnulib update + 4bc5e02 Spelling fix + f1093f7 Do secure signed Bcc handling - Always reset the bidi direction +2016-01-12 John Wiegley - * eww.el (eww-display-html): Always reset the bidi direction - to `left-to-right' (bug#22257). + Merge from origin/emacs-25 -2015-12-28 Alan Mackenzie + 861022f * doc/misc/texinfo.tex: Revert unwanted copyright change. + 46e47a5 ; * etc/refcards/ru-refcard.tex (cyear): Update via M-x set-copyright. + 71ea138 * lisp/align.el (align): Simplify a lambda + 5618a50 * lisp/align.el (align): Fix arg order in call to `align-region' + 1f680db Fix compilation next-error in buffers with selective-display + d20a948 * nsm.el (nsm-check-protocol): Fix typo in the message. + 1da116f Add SHA1 warnings for high network security settings + e48bacd ; * etc/NEWS: Typo fix. - Allow line comments ending with escaped NL to be continued to the next line. +2016-01-12 John Wiegley - Use this in C, C++, and Objective C Modes. Fixes bug#22246 + Merge from origin/emacs-25 - * src/syntax.c (comment-end-can-be-escaped): New buffer local variable. - (forw-comment, back-comment): On encountering an end of comment character, - test whether it is escaped when `comment-end-can-be-escaped' is non-nil. + 43662a2 ; Clarify that xref is still experimental + 0a6e6ca ; * admin/release-process: Remove some obsolete records. + c2e9e3d * lisp/progmodes/fortran.el (fortran-make-syntax-propertize-function): + 8637f3d (semantic-symref-derive-find-filepatterns): Return a list + 0a7ad07 ; Re-arrange xref-related entries in NEWS. + fe903ef Fix xref-find-references on MS-Windows + 55a28d8 ; Fixed visual bell artifact problem on NextStep. + d064034 Document new features of tildify-mode + 964bea7 Document new features of Whitespace mode + cd68f47 Improve documentation of new Hide-IfDef features + 723b8bf Fix regression in font-locking cl-assert and cl-check-type - * doc/lispref/syntax.texi (Control Parsing): Describe - `comment-end-can-be-escaped'. +2016-01-12 John Wiegley - * etc/NEWS (Lisp Changes): Describe `comment-end-can-be-escaped'. + Merge from origin/emacs-25 - * lisp/progmodes/cc-langs.el: New c-lang-setvar `comment-end-can-be-escaped'. + ef33bc7 Spelling and grammar fixes + 9c3dbab Fix copyright years by hand + 0e96320 Update copyright year to 2016 -2015-12-28 Katsumi Yamaoka +2016-01-12 John Wiegley - lisp/gnus/mml-sec.el (mml-secure-bcc-is-safe): Keep old Emacsen compatibility + Merge from origin/emacs-25 - * lisp/gnus/mml-sec.el (mml-secure-bcc-is-safe): - Don't use split-string with 4th arg for old Emacsen compatibility. + 9ee6ecb lisp/emacs-lisp/chart.el (chart-new-buffer): Move to silence byte compiler. + 526d80c Port chart.el methods to cl-generic. + 410bb69 Add nt/INSTALL.W64 build instructions + 8f5b524 Add new input method 'programmer-dvorak' + 6d11f6e Allow to invoke original M-TAB binding in 'flyspell-prog-mode' + bb83bb1 Fix EWW rendering of long RTL lines + b1a8509 fix bug#21054 + ce5ad12 Clean up cairo printing code -2015-12-27 Dmitry Gutov +2016-01-12 John Wiegley - Rename project-library-roots to project-external-roots + Merge from origin/emacs-25 - * lisp/progmodes/project.el (project-library-roots): Rename to - project-external-roots. - (project-library-roots-function): Rename to - project-vc-external-roots-function. Only use it in the VC - backend, for now. Update project-external-roots accordingly. - (project-vc-library-roots): Remove. - (project-or-libraries-find-regexp): - Rename to project-or-external-find-regexp. + 6ee327d Add handle_user_signal_hook + 47580e0 Avoid writing to purespace + 0588be7 Remove unused variable + 89e7483 * configure.ac: Find libxml2 headers in Xcode SDK dir on Darwin. + 3b95e9c Use posix_openpt instead of openpty on Darwin + 86312ff Document support for ':documentation' in Lisp mode + c930e75b Document new features of TeX mode + 7c83d84 Clarify docs of hscroll in RTL text + 4c8f8db Fix rendering of HTML pages that use character composition + a8d37ca Avoid some compiler warnings in w32.c + ce106f3de Undo ill-advised change + be0bba4 Unbreak completion in python-mode buffers - * lisp/progmodes/elisp-mode.el (elisp-library-roots): - Rename to elisp-load-path-roots. +2016-01-11 Dmitry Gutov - * lisp/progmodes/etags.el (etags-library-roots): Remove. Use - an anonymous function for the default value of - project-vc-external-roots-function. + test/automated/vc-hg.el: Support out-of-tree build -2015-12-27 Lars Ingebrigtsen + * test/automated/vc-hg.el + (vc-hg-annotate-extract-revision-at-line-with-filename) + (vc-hg-annotate-extract-revision-at-line-with-both): + Don't refer to source-directory. + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00755.html - * idna.el (idna-decode-string-internal): Implement decoding. +2016-01-11 Michael Albinus -2015-12-27 Lars Ingebrigtsen + Minor change in tramp-tests.el - Further IDNA tweaks + * test/automated/tramp-tests.el (tramp-test29-vc-registered): + Use `dired-uncache' instead of a Tramp internal function. - (idna-encode-string): Make idna-encode-string safe for - non-ASCII use. +2016-01-11 Peter Feigl -2015-12-27 Lars Ingebrigtsen + * etc/HELLO: Add Armenian and Mongolian greetings. - Clean up the code slightly + (Bug#22346) -2015-12-27 Lars Ingebrigtsen +2016-01-11 Alan Mackenzie - Added basic idna encoding support + Java Mode: Fontify identifiers in the presence of annotations. - * lisp/net/idna.el: New file. + * lisp/progmodes/cc-engine.el (c-forward-annotation): Tidy up the coding: + Don't move point when the defun fails. + (c-forward-decl-or-cast-1): Correct a usage of match data. -2015-12-27 Vivek Dasmohapatra + * lisp/progmodes/cc-fonts.el (c-font-lock-maybe-decl-faces): Remove. + (c-font-lock-declarations): Use the new c-maybe-decl-faces in place of the + removed variable. - Disconnection fixes for erc + * lisp/progmodes/cc-langs.el (c-maybe-decl-faces): New language variable. - * lisp/erc/erc-backend.el (erc-server-reconnect-p): Don't - reconnect if the user has disconnected explicitly (bug#4589). +2016-01-11 Eli Zaretskii -2015-12-27 Thomas Riccardi (tiny change) + Avoid an infloop when we run out of memory - Further erc asynch fixes + * src/alloc.c (garbage_collect_1): Don't bother saving and + restoring the echo-area message if we are GC'ing after running out + of memory. This avoids an infloop due to repeated attempts to + allocate memory for the cons cell needed to save the message, + which signals the memory-full error, which attempts to save the + echo-area message, which signals memory-full again, etc. - * lisp/erc/erc-backend.el (erc-process-sentinel-2): Make - erc-server-connect to return even if the connection is not - ready. Then erc-open and erc-server-reconnect do the - same. (bug#5650). +2016-01-11 Eli Zaretskii -2015-12-27 Vivek Dasmohapatra + Avoid unnecessary failures of auto-saving after fatal error - Make erc connect asynchronously + * src/w32.c (map_w32_filename): Avoid non-trivial system calls for + the benefit of FAT volumes if we are called as part of shutting + down due to a fatal error, which probably means we are trying to + auto-save the session. + * src/lread.c (check_obarray): Don't bother making the obarray + valid if we are shutting down due to a fatal error. This avoids + interfering with auto-saving the crashed session. - * lisp/erc/erc-backend.el (erc-server-reconnect): Use it to - reconnect asynchronously. +2016-01-11 Paul Eggert - * lisp/erc/erc-backend.el (erc-open-network-stream): New function (bug#5650). + Simplify HAVE_MODULES use in mark_maybe_pointer -2015-12-27 Deniz Dogan + * src/alloc.c (HAVE_MODULES): Now a constant 0 if not defined, + so that later code can use 'if' rather than '#ifdef'. + (mark_maybe_pointer): Simplify based on HAVE_MODULES now + always working. - Clear erc user list upon disconnection +2016-01-11 Paul Eggert - * lisp/erc/erc-backend.el (erc-process-sentinel): Clear channel user - lists upon disconnection. This prevents invalid channel - user lists when reconnecting (bug#10947). + Revert attempt to use 'noexcept' in typedef -2015-12-27 Lars Ingebrigtsen + This use of 'noexcept' runs afoul of the C++11 standard. + Problem reported by Philipp Stephani in: + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00706.html + * src/emacs-module.c (emacs_finalizer_function): + Move this typedef here ... + * src/emacs-module.h: ... from here, and use only the C + version of the typedef. The typedef is now private since it + is never used in the .h file now and anyway it seemed to be + causing more confusion than it cured. + (make_user_ptr, get_user_finalizer, set_user_finalizer): + Open-code the type instead. - Don't bug out in erc after waking from sleep +2016-01-10 Eli Zaretskii - * erc-backend.el (erc-server-send-ping): If the server has - closed connection, this may already have been detected and - `erc-server-last-received-time' has been set to nil (bug#13608). + Update documentation of 'indirect-function' -2015-12-27 David Edmondson + * doc/lispref/eval.texi (Function Indirection): Update the + documentation of 'indirect-function'. - Proxy error in erc with multiple clients +2016-01-10 Eli Zaretskii - * lisp/erc/erc.el (erc-channel-receive-names): Fix errors - generated when multiple IRC clients talk to a single IRC proxy - (bug#19034). + Update documentation for obsoleting 'syntax-begin-function' -2015-12-27 Dima Kogan + * doc/lispref/syntax.texi (Position Parse): Undocument + 'syntax-begin-function' that is now obsolete. - Ensure that we don't have several timers in erc +2016-01-10 Eli Zaretskii - * lisp/erc/erc-backend.el (erc-server-setup-periodical-ping): Checks - for existing timers in the alist before adding new ones. If a - timer already exists, it is cancelled and - overwritten. (bug#19292). + Document new features if Eshell -2015-12-27 Jens Lechtenboerger + * doc/misc/eshell.texi (Input/Output): Document the new + '#' syntax. + (Input/Output): Document 'eshell-destroy-buffer-when-process-dies'. + Disable "Key Index" generation, as there are no @kindex entries in + this manual. - * lisp/gnus/mml-sec.el: Fix warnings by adding autoloads - (bug#18718). +2016-01-10 Michael Albinus -2015-12-27 Lars Ingebrigtsen + Handle too long commands in Tramp - * lisp/erc/erc-log.el (erc-log-setup-logging): Insert the previous log - at the start of the buffer, not at the end (bug#20496). + * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link) + (tramp-do-file-attributes-with-ls): Send sequence of commands, in + order to not exceed shell command line limit. -2015-12-27 Lars Ingebrigtsen + * test/automated/tramp-tests.el (tramp--test-darwin-p): Remove. + (tramp--test-utf8): Include Arabic file name, again. - * lisp/net/eww.el (eww-setup-buffer): Restore left-to-right defaults. +2016-01-10 Paul Eggert -2015-12-27 Lars Ingebrigtsen + * .gitattributes: *.cur and *.pif are binary files too. - Don't join erc channels doubly +2016-01-10 Stefan Monnier - * erc-join.el (erc-autojoin-channels): Don't join channels - more than once (if you have several nicks) (bug#20695). + * src/alloc.c (mark_maybe_pointer): HAVE_MODULES may be undefined -2015-12-27 Eli Zaretskii +2016-01-10 Stefan Monnier - Avoid leaving "ghost" of mouse pointer on MS-Windows + * sh-script.el (sh-smie-sh-rules): Improve indentation inside $(...) - * src/w32term.c (frame_set_mouse_pixel_position): - * src/w32fns.c (Fw32_mouse_absolute_pixel_position): Momentarily - disable "mouse trails" when moving the mouse pointer. (Bug#22247) - * src/w32term.c (frame_set_mouse_pixel_position): Include - w32common.h. + * lisp/progmodes/sh-script.el (sh-smie-sh-rules): Improve indentation + within $(...). + * test/indent/shell.sh: Add corresponding test. -2015-12-27 Lars Ingebrigtsen +2016-01-09 Stefan Monnier - * lisp/gnus/mml-sec.el (mml-secure-bcc-is-safe): Fix typo in last check-in. + * src/alloc.c (mark_maybe_pointer): Also check wide-int's emacs_value -2015-12-27 Jens Lechtenboerger + (mark_memory): Simplify loop. Don't assume a pointer-sized word can be + cast to Lisp_Object. - Identify unsafe combinations of Bcc and encryption +2016-01-09 Dmitry Gutov - * lisp/gnus/gnus-util.el (gnus-subsetp): New function - * lisp/gnus/mml-sec.el (mml-secure-safe-bcc-list): New variable - * lisp/gnus/mml-sec.el (mml-secure-bcc-is-safe): New function + Use short date for 'hg annotate', and output the author -2015-12-27 Krzysztof Jurewicz (tiny change) + * lisp/vc/vc-hg.el (vc-hg-annotate-command): + Change '-d' to '-dq'. (Bug#21805) + (vc-hg-annotate-switches): Default to "-u" "--follow". + (vc-hg-annotate-re): Update to recognize the short date format + and the optional username. + (vc-hg-annotate-time) + (vc-hg-annotate-extract-revision-at-line): Update accordingly. - Fix auth source lookups from erc with port numbers + * test/automated/vc-hg.el: New file. - * lisp/erc/erc.el (erc-open): `auth-source' wants strings, not port - numbers (bug#20541). +2016-01-09 Paul Eggert -2015-12-27 Fran Litterio + Spelling fix - Run erc-kill-channel-hook always on exit +2016-01-09 Eli Zaretskii - * lisp/erc/erc.el (erc-kill-buffer-function): Run erc-kill-channel-hook - when erc-kill-queries-on-quit is set (bug#21187). + Document user-level functions in project.el -2015-12-26 Paul Eggert + * lisp/progmodes/project.el (project-find-file) + (project-or-external-find-file): Add doc strings. - Spelling fix +2016-01-09 Eli Zaretskii - * test/automated/url-parse-tests.el: - (url-generic-parse-url/same-document-reference): - Rename from url-generic-parse-url/same-decument-reference. + Document the user-level features of the Xref package -2015-12-26 Paul Eggert + * doc/emacs/maintaining.texi (Maintaining): Add a list of + described features. + (Xref): New section, made out of thoroughly rewritten "Tags" + section. + (Find Identifiers, Looking Up Identifiers, Xref Commands) + (Identifier Search, List Identifiers): New subsections, + incorporating the old tags commands and the new xref commands. + (Tags Tables, Tag Syntax, Create Tags Table, Etags Regexps): + Section and subsections demoted to a lower level. + * doc/emacs/search.texi (Search): + * doc/emacs/windows.texi (Pop Up Window): + * doc/emacs/frames.texi (Creating Frames): + * doc/emacs/programs.texi (Imenu, Symbol Completion): + * doc/emacs/building.texi (Grep Searching): + * doc/emacs/dired.texi (Operating on Files): + * doc/emacs/glossary.texi (Glossary): All references to tags changed. - Reword initial *scratch* for brevity, appearance +2016-01-09 Stefan Monnier - * lisp/startup.el (initial-scratch-message): - Reword to avoid apostrophes, and to make it shorter. - See the thread starting in: - http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01241.html + * loading.texi: Add `define-type' entry for load-history -2015-12-26 Leo Liu + * doc/lispref/loading.texi (Where Defined): Remove incorrect + cl-defmethod description, and add missing define-type entry. - Add ert-deftest to lisp-mode.el +2016-01-09 Eli Zaretskii - * lisp-mode.el (lisp-imenu-generic-expression, - lisp-el-font-lock-keywords-1): Add ert-deftest. + Improve doc strings and prompts in xref.el -2015-12-26 Lars Ingebrigtsen + * lisp/progmodes/xref.el (xref-backend-functions) + (xref-find-definitions): Doc fixes. + (xref-query-replace): Doc fix. Improve prompts for arguments. - Mark imap changes as not needing doc changes +2016-01-09 Alan Mackenzie - * imap.el (imap-ssl-open): Remove + Allow the use of `font-lock-extend-region-multiline' in CC Mode. -2015-12-26 Lars Ingebrigtsen + * lisp/progmodes/cc-mode.el (c-font-lock-init): Remove + `font-lock-extend-regions-wholelines' from + `font-lock-extend-region-functions' rather than setting the latter to + nil. - Use built-in encryption in imap.el +2016-01-09 Michael Albinus - * lisp/net/imap.el (imap-ssl-program): Remove (bug#21134). - (imap-starttls-open): Use open-network-stream instead of starttls.el. - (imap-tls-open): Use open-network-stream instead of tls.el. + Fix coding system for Tramp on OS X. -2015-12-26 Eli Zaretskii + * lisp/net/tramp-compat.el: Require ucs-normalize. - Don't try using /bin/sh in artist.el on MS-Windows + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Set coding system to `utf-8-hfs' for Mac OS X. - * lisp/textmodes/artist.el (artist-figlet-get-font-list-windows): - New function. - (artist-figlet-choose-font): Use it on MS-Windows and MS-DOS. - (Bug#20167) + * test/automated/tramp-tests.el (tramp-test29-vc-registered): + Flush directory properties when needed. + (tramp--test-utf8): Include Chinese file name, again. -2015-12-26 Wolfgang Jenkner +2016-01-09 Eli Zaretskii - Always define gmalloc etc. in src/gmalloc.c + Update 'load-history' docs - This is a work-around to prevent the compiler from using semantic - knowledge about malloc for optimization purposes. E.g., gcc 5.2 - with -O2 replaces most of calloc's definition by a call to calloc; - see Bug#22085. - * src/gmalloc.c [!HYBRID_MALLOC] (malloc, realloc, calloc) - (aligned_alloc, free): Do not undef. Instead, define these as - functions (perhaps renamed to gmalloc etc.) in terms of gmalloc etc. + * doc/lispref/loading.texi (Where Defined): Update the list of + forms in 'load-history' by adding the forms created for the + 'cl-generic' generics. (Bug#21422) -2015-12-26 Eli Zaretskii +2016-01-08 Paul Eggert - Fix documentation of browse-url browser-related functions + Fix (error ...) error - * lisp/net/browse-url.el (browse-url) - (browse-url-default-browser, browse-url-default-windows-browser) - (browse-url-default-macosx-browser, browse-url-chromium) - (browse-url-kde, browse-url-text-xterm): Clarify the usage of ARGS - and NEW-WINDOW arguments in these functions. (Bug#19421) + Problem reported by Glenn Morris in: + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00561.html + * lisp/vc/add-log.el (change-log-goto-source): Fix typos + introduced in my Aug 28 change, where I got confused by the + two meanings of (error ...). -2015-12-26 Paul Eggert +2016-01-08 Alan Mackenzie - Propagate Bug#14412 fix to backtrace_eval_unrewind + Correctly analyze brace arguments in templated C++ function declarations. - * src/eval.c (unbind_to): Redo so that the FALLTHROUGH!! comment - becomes accurate again. This shouldn’t affect behavior. - (backtrace_eval_unrewind): Apply the recent unbind_to fix here, too. + * lisp/progmodes/cc-defs.el (c-go-list-forward, c-go-list-backward): add + POS and LIMIT parameters, like the other c-go-list-* functions have. -2015-12-26 Eli Zaretskii + * lisp/progmodes/cc-engine.el (c-restore-<>-properties): Check backwards + for a ?\( rather than a ?<. (c-looking-at-inexpr-block): Handle names + followed by template specifiers. - Don't produce non-ASCII characters in *scratch* +2016-01-08 Glenn Morris - * lisp/startup.el (initial-scratch-message): Quote apostrophes to - avoid producing non-ASCII characters in the *scratch* buffer's - commentary. + * lisp/cedet/mode-local.el (describe-function-orig-buffer): Declare. -2015-12-26 Eli Zaretskii + * lisp/ffap.el (ffap-latex-mode): Avoid free variable. - Document changes in 'compare-windows' +2016-01-08 Mark Oteiza - * lisp/vc/compare-w.el (compare-windows-removed) - (compare-windows-added): Doc fix. + * lisp/play/dunnet.el (dun-fix-screen): Avoid `end-of-buffer`. - * doc/emacs/files.texi (Comparing Files): Document the changes in - window selection by 'compare-windows'. +2016-01-08 Alan Mackenzie -2015-12-26 Eli Zaretskii + Respect fontification region calculated by major mode. Fixes bug #22316. - Document 'vc-annotate-background-mode' + * lisp/font-lock.el (font-lock-extend-jit-lock-region-after-change): when a + fontification region has been calculated by a function on + font-lock-extend-after-change-region-function use this region rather than + changing the end position to somewhere else. - * doc/emacs/maintaining.texi (Old Revisions): Document - 'vc-annotate-background-mode'. +2016-01-08 Eli Zaretskii -2015-12-26 Eli Zaretskii + Improve documentation of Delete Selection mode - Document 'vc-region-history' + * lisp/delsel.el (delete-selection-mode) + (delete-selection-helper): Update and expand the doc strings. + (Bug#22296) - * doc/emacs/maintaining.texi (VC Change Log): Document - 'vc-region-history'. + * doc/emacs/mark.texi (Using Region): Document the behavior of + delete commands in Delete Selection mode. (Bug#22296) -2015-12-26 Eli Zaretskii + * doc/lispref/markers.texi (The Mark): Document how to add the + support for Delete Selection mode to Lisp programs. (Bug#22296) - Improve documentation of 'vc-push' +2016-01-08 Dmitry Gutov - * doc/emacs/maintaining.texi (Pulling / Pushing): Expand and - improve the documentation of 'vc-push'. + Fix two project-find-file issues - * lisp/vc/vc.el (vc-pull, vc-push): Doc fix. + * lisp/progmodes/project.el (project--value-in-dir): + Temporarily set enable-local-variables to :all. + (project-find-file, project-or-external-find-file): + All autoloads. + (project--find-file-in): Require xref. -2015-12-26 Alain Schneble +2016-01-08 Eli Zaretskii - Include the tests for the URL parsing fixes + Clarify doc string of 'dired-current-directory' -2016-01-30 Alain Schneble + * lisp/dired.el (dired-current-directory): Doc fix: clarify that + the return value might not end in a slash when called with the + optional argument non-nil. (Bug#6273) - Make relative URL parsing and resolution consistent with RFC 3986 (bug#22044) +2016-01-08 Eli Zaretskii - * test/automated/url-parse-tests.el: Add tests covering url-generic-parse-url. - * test/automated/url-expand-tests.el: Add tests covering url-expand-file-name. - * lisp/url/url-parse.el (url-generic-parse-url): Keep empty fragment - information in URL-struct. - * lisp/url/url-parse.el (url-path-and-query): Do not artificially turn empty - path and query into nil path and query, respectively. - * lisp/url/url-expand.el (url-expander-remove-relative-links): Do not turn - empty path into an absolute ("/") path. - * lisp/url/url-expand.el (url-expand-file-name): Properly resolve - fragment-only URIs. Do not just return them unchanged. - * lisp/url/url-expand.el (url-default-expander): An empty path in the relative - reference URI should not drop the last segment. + Use the face of preceding text for displaying the ellipsis - Backport: + * src/xdisp.c (setup_for_ellipsis): Use the face of the preceding + text in it->saved_face_id for displaying the ellipsis, and ignore + the face, if any, of the invisible text. (Bug#22320) - (cherry picked from commit b792ecea1715e080ad8e232d3d154b8a25d2edfb) +2016-01-08 Michael Albinus -2015-12-26 Eli Zaretskii + Suppress Chinese file name test for OSX in tramp-tests.el - Document 'url-user-agent'. + * test/automated/tramp-tests.el (tramp--test-utf8): + Remove instrumentation. Suppress Chinese file name test for OSX. - * lisp/url/url-http.el (url-user-agent): Move from here... - * lisp/url/url-vars.el (url-user-agent): ...to here. This is to - keep all the URL defcustoms in one place, and also have it defined - whenever the URL library is loaded. +2016-01-07 Glenn Morris - * doc/misc/url.texi (Customization): Document 'url-user-agent'. + * admin/admin.el (set-version): Also handle the NEWS file. -2015-12-26 Eli Zaretskii +2016-01-07 Dmitry Gutov - Document protocols supported by URL library via Tramp + apropos-library: Skip obvious duplicates; don't error on generics - * doc/misc/url.texi (Tramp): New node, describes the URL schemes - supported via Tramp. - (Supported URL Types, file/ftp, rlogin/telnet/tn3270): Mention - Tramp. + * lisp/apropos.el (apropos-library): Skip "was an autoload" + entries, to avoid obvious duplicates. For each cl-defmethod + entry, take just its function symbol (bug#21422). -2015-12-26 Eli Zaretskii +2016-01-07 Dmitry Gutov - Document changes in Shell-script mode + Add project-find-file and project-or-external-find-file - * lisp/progmodes/sh-script.el (sh-mode, sh-set-shell): Document - the 'sh-shell' file-local variable. - (top level): Add an auto-load form to avoid byte-compiler warning - about 'comint-send-string'. + * lisp/minibuffer.el (completion-category-defaults): + Add `project-file' category. -2015-12-26 Eli Zaretskii + * lisp/progmodes/project.el (project-find-file) + (project-or-external-find-file): New commands. + (project--find-file-in): New private function. - Fix documentation of 'ses-define-local-printer' + * lisp/progmodes/xref.el (xref-collect-matches): Use + `expand-file-name' on DIR, to expand the tildes. + (xref--find-ignores-arguments): Extract from + `xref--rgrep-command'. - * doc/misc/ses.texi (Printer functions): Fix whitespace between - sentences and punctuation. Add an index entry for - 'ses-define-local-printer'. +2016-01-06 Leo Liu -2015-12-26 Shakthi Kannan + Add defvar-local to lisp-imenu-generic-expression - Document 'ert-summarize-tests-batch-and-exit' + * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): Add + defvar-local. - * doc/misc/ert.texi (Running Tests in Batch Mode): Document - 'ert-summarize-tests-batch-and-exit'. +2016-01-06 Leo Liu -2015-12-26 Eli Zaretskii + Revert commit b1e3d14845517bfa9fa5d6d3840f3ab3160306fd - Avoid assertion violation in unbind_to + * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): + Don't declare (indent 1). - * src/eval.c (unbind_to) : Avoid assertion violation - if we get here with an object that is not a symbol. (Bug#14412) +2016-01-06 Glenn Morris -2015-12-25 Andreas Schwab + * lisp/emacs-lisp/autoload.el (autoload-find-destination): Doc fix. - Don't treat /foo/bar:mumble as ange-ftp address - * lisp/net/browse-url.el (browse-url-filename-alist): Match colons - only in the first component. (bug#5362) +2016-01-06 Glenn Morris -2016-01-30 Lars Ingebrigtsen + * lisp/emacs-lisp/autoload.el (autoload-find-destination): - Follow redirects in eww + Avoid specifying the length of a time object (it has not been "2" + for some time). - Merge conflict, but I think I resolved it. +2016-01-06 Andreas Schwab - Follow meta refresh tags in eww + Properly encode/decode base64Binary data in SOAP - * eww.el (eww-tag-meta): Follow meta refresh tags (bug#22234). + * lisp/net/soap-client.el (soap-encode-xs-basic-type): Encode + base64Binary value as utf-8. + (soap-decode-xs-basic-type): Decode base64Binary value as utf-8. - Backport: +2016-01-06 Eli Zaretskii -2016-01-30 Lars Ingebrigtsen + Obey coding-system-for-write when writing stdout/stderr in batch - Allow http://user:pass@foo/ URLs again + * src/print.c (printchar_to_stream): + * src/xdisp.c (message_to_stderr): If coding-system-for-write has + a non-nil value, use it to encode output in preference to + locale-coding-system. See the discussions in + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00048.html + for the details. - * lisp/url/url-auth.el (url-basic-auth): Allow explicit - user/passwords in URLs (bug#19046). + * doc/lispref/os.texi (Terminal Output): Document how to send + non-ASCII text via 'send-string-to-terminal'. + (Batch Mode): Document how text written to standard streams is + encoded. Fix inaccuracy regarding which output streams are used + by output functions in batch mode. - Backport: +2016-01-06 Xue Fuqiao - (cherry picked from commit b563715a2db265517d5a77f165a42afa1e233fdd) + * doc/misc/efaq.texi (Packages that do not come with Emacs): + Update the URI of MELPA and marmalade-repo. Reported by CHENG Gao + in + https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00390.html. -2016-01-30 Samer Masterson +2016-01-05 Maksim Golubev (tiny change) - Autoload url-insert-buffer-contents + * lisp/progmodes/opascal.el (opascal-mode-syntax-table): - * lisp/url/url-handlers.el: Add autoload cookie so that - `package-list-packages' doesn't bug out (bug#21927) (tiny change) + Fix backslash. (Bug#22224) - Backport: +2016-01-05 Federico Beffa (tiny change) - (cherry picked from commit 7a7b5b492ff9929eecd90c4564db6fbf3b192323) + * lisp/progmodes/xscheme.el (xscheme-prompt-for-expression-exit): -2015-12-25 Eli Zaretskii + Make it actually work. (Bug#22265) - Make sure *scratch* etc. use forward slashes in its default-directory +2016-01-05 Alan Mackenzie - * lisp/startup.el (normal-top-level): On MS-Windows, convert - backslashes to forward slashes while decoding default-directory - of the initially-created buffers. + Remove function wrongly on AWK Mode value of context fontification hook. -2015-12-25 Eli Zaretskii + * lisp/progmodes/cc-langs.el (c-before-context-fontification-functions): + swap order of entries so that awk's entry isn't superseded by the default. - Restore info about the build host in bug reports + * lisp/progmodes/cc-mode.el (c-before-context-fl-expand-region): Correct + to handle nil value of c-before-context-fontification-functions. - * lisp/mail/emacsbug.el (report-emacs-bug): Report the system on - which Emacs was built. This is important information for - investigating bug reports reported by users who don't build their - Emacs. +2016-01-05 Paul Eggert -2015-12-25 Eli Zaretskii + * src/buffer.c: Stick with ASCII in doc string. - Fix bootstrap broken by changes related to OS X file-name encoding +2016-01-05 Paul Eggert - * lisp/international/ucs-normalize.el (eval-when-compile): Make - sure char-code-property-alist includes elements that allow access - to 'decomposition' and 'canonical-combining-class' Unicode - properties, as compiling ucs-normalize.el requires that. - * lisp/loadup.el (featurep 'ns): Load ucs-normalize and ns-win - only of charprop.el was already loaded. + Reword transient-mark-mode doc string - * src/Makefile.in ($(lispsource)/international/ucs-normalize.elc): - New order-only dependency. + * src/buffer.c (syms_of_buffer): Reword doc string to avoid confusion. + The value 'lambda (literally) can be interpreted as (quote lambda), + which is not intended here; we want just the lambda symbol. -2015-12-25 Leo Liu +2016-01-05 Eli Zaretskii - * lisp/ido.el (ido-add-virtual-buffers-to-list): - Use bookmark-get-filename. + Update doc string of 'selective-display' -2015-12-25 Michael Albinus + * src/buffer.c (syms_of_buffer) : Say that + using it with the value of 't' is obsolete. (Bug#1092) - Make tramp-test29-vc-registered more robust +2016-01-05 Alan Mackenzie - * test/automated/tramp-tests.el (tramp-test29-vc-registered): - Move `bzr' case down. Skip test when `vc-create-repo' fails. - Remove instrumentation. + Make C++ buffers writeable when writing their initial text properties. -2015-12-24 YAMAMOTO Mitsuharu + This is a correction to yesterday's CC Mode patch. - * lisp/term/x-win.el (x-gtk-stock-map): Fix typo. + * lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): Put + c-save-buffer-state around the function rather than a mere `let'. -2015-12-23 Katsumi Yamaoka +2016-01-05 Michael Albinus - Fix `gnus-union' so as to behave like `cl-union' + Additional changes for "make check-expensive" - * lisp/gnus/gnus-group.el (gnus-group-prepare-flat): - Make gnus-union use `equal' to compare items in lists. + * CONTRIBUTE : Encourage use of ":tags '(:expensive-test)". + Explain make target `check-expensive'. - * lisp/gnus/gnus-util.el (gnus-union): - Make it behave like cl-union partially. + * etc/NEWS: Mention new make target `check-expensive'. -2015-12-23 Paul Eggert + * test/automated/Makefile.in (check-doit): New target. + (check, check-expensive): Use it. - Fix dired.c typo with ptrdiff_t vs Lisp_Object +2016-01-04 Alan Mackenzie - * src/dired.c (file_name_completion): Don't assume Lisp_Object is - an integer type, fixing a problem introduced in the recent fix for - Bug#22169. + Apply text properties for <, > in new after-change function (C++ Java Modes). -2015-12-23 Eli Zaretskii + These are category/syntax-table properties to give < and > paren syntax. + Also apply certain `c-type' text properties to the insides of <..> constructs + to ensure that identifiers contained by them get fontified. This patch fixes + bug #681. - Document default process sentinel more prominently + * lisp/progmodes/cc-cmds.el (c-electric-lt-gt): Reformulate due to new + after-change action. - * doc/lispref/processes.texi (Asynchronous Processes): Mention the - defaults for process filter and sentinel. Provide cross-references. - (Process Information): Provide cross-references to where filters - and sentinels are described. - (Filter Functions): Add an index entry for "default filter". - (Sentinels): Add a few status messages not documented previously. - Resolve the "killed" confusion. Document and describe the default - sentinel. (Bug#22220) + * lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): Expand + change region to include s which might not be already marked as + parens, rather than just when paren text properties are removed. + (c-restore-<>-properties): New after-change function, which applies text + properties marking < and > with paren syntax. -2015-12-23 Eli Zaretskii + * lisp/progmodes/cc-fonts.el (c-font-lock-declarations): Ensure `c-type' + properties are applied to the interiors of <...> constructs, to ensure + fontification of identifiers there. - Fix file-name completion on OS X + * lisp/progmodes/cc-langs.el (c-before-font-lock-functions): Add + c-restore-<>-properties to this list for C++ and Java. - * src/dired.c (file_name_completion): Reject false matches due to - file-name-coding-systems that decompose characters when encoding - file names, by comparing decoded file names as well. (Bug#22169) - (syms_of_dired) : New DEFSYM. + * lisp/progmodes/cc-mode.el (c-common-init): When invoking + c-before-font-lock-functions, exclude c-restore-<>-properties from the + functions invoked. + (c-before-change): Initialize c-new-BEG/END here (rather than c-after-change) + to allow modification by before-change functions. + (c-after-change): Amend c-new-END here, rather than initializing it and + c-new-BEG. - * lisp/international/ucs-normalize.el (utf-8-hfs): Give it a - non-nil 'decomposed-characters' property. +2016-01-04 Michael Albinus -2015-12-23 Anders Lindgren + Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 - File-name completion of non-ASCII characters on OS X (bug#22169) +2016-01-04 Michael Albinus - The coding system `utf-8-nfd', locally defined in ns-win.el, - didn't provide a :pre-write-conversion method, causing file name - completion of non-ASCII characters to fail. Solved by using the - `utf-8-hfs' coding system provided by `ucs-normalize'. + Introduce check-expensive tests. - * lisp/loadup.el: Load international/ucs-normalize (when building - for ns). + * Makefile.in (check-expensive): + * test/automated/Makefile.in (check-expensive): New target. - * lisp/term/ns-win.el (utf-8-nfd): Made `utf-8-nfd' as alias for - `utf-8-hfs' and removed the old implementation. Set `utf-8-hfs' - as the file name coding system. + * test/automated/auto-revert-tests.el + (auto-revert-test01-auto-revert-several-files): + * test/automated/file-notify-tests.el (file-notify--deftest-remote): + * test/automated/tramp-tests.el (tramp-test26-process-file) + (tramp-test27-start-file-process, tramp-test28-shell-command) + (tramp-test29-vc-registered) + (tramp-test31-special-characters-with-stat) + (tramp-test31-special-characters-with-perl) + (tramp-test31-special-characters-with-ls) + (tramp-test32-utf8-with-stat, tramp-test32-utf8-with-perl) + (tramp-test32-utf8-with-ls, tramp-test33-asynchronous-requests) + (tramp-test35-unload): Tag the tests as :expensive-test. - * src/nsfns.m (ns-convert-utf8-nfd-to-nfc): Removed. +2016-01-04 Lars Magne Ingebrigtsen -2015-12-22 Tom Tromey + shr-tag-video bug fix - Fix bug #18588 by making bug-reference-bug-regexp more lenient + * shr.el (shr-tag-video): Protect against the `poster' being + empty. - * lisp/progmodes/bug-reference.el (bug-reference-bug-regexp): Accept - "bug NNNN". (Bug #18588) +2016-01-04 Michael Albinus -2016-01-30 Tom Tromey -2015-12-22 Tom Tromey + Minor fixes in tramp-tests.el - add some cl-* aliases to lisp-mode imenu + * test/automated/tramp-tests.el (tramp-test26-process-file): + Move point properly. + (tramp-test29-vc-registered): Work with relative file names. - * (lisp-imenu-generic-expression): Add cl-define-compiler-macro, - cl-defgeneric, and cl-defmethod. +2016-01-04 Eli Zaretskii -2015-12-22 Tom Tromey + Ensure redisplay when 'truncate-lines' is set - Make a variable buffer-local + * lisp/frame.el (redisplay--variables): Add 'truncate-lines'. + (Bug#22303) - * lisp/generic-x.el (generic-rul-mode-setup-function): Make - font-lock-syntax-table buffer-local. (Bug #21627) +2016-01-04 Eli Zaretskii -2015-12-22 Eli Zaretskii + Fix a doc string of 'transient-mark-mode' - Fix decoding of text in URLs retrieved by EWW + * src/buffer.c (syms_of_buffer) : Prevent + "lambda" in doc string from becoming a link to lambda expressions. - * lisp/net/eww.el (eww-render): Pass 'charset' to - 'eww-display-raw'. Use the value of 'last-coding-system-used', if - non-nil, to set 'buffer-file-coding-system' of the buffer where we - show the URL. - (eww-display-html, eww-display-raw): Decode the text correctly, - using the charset found in the headers, and defaulting to UTF-8. - If the user told us to use a specific encoding, override the - charset from the headers. (Bug#22222) +2016-01-04 Eli Zaretskii -2015-12-22 Alan Mackenzie + MS-Windows followup to latest gnulib update - Fix a coding error in c-forward-<>-arglist-recur. Fixes bug#22156 + * nt/gnulib.mk (EXTRA_DIST): Add ignore-value.h. - * lisp/progmodes/cc-engine.el (c-forward-<>-arglist-recur): Remove unused - variable `tmp'. - After a failed search for a matching ">", restore point before continuing. +2016-01-04 Paul Eggert -2015-12-22 Michael Albinus + Spelling fix - Instrument Tramp tests +2016-01-03 Jens Lechtenboerger - * test/automated/tramp-tests.el (tramp-test29-vc-registered) - (tramp--test-utf8): Instrument tests. + Do secure signed Bcc handling -2015-12-22 Martin Rudalics + * lisp/gnus/message.el (message-send): Do secure signed Bcc handling + (bug#18718). - Fix `display-buffer' call in `display-message-or-buffer' (Bug#22221) +2016-01-03 Paul Eggert - * lisp/simple.el (display-message-or-buffer): Call - `display-buffer' with ACTION instead of NOT-THIS-WINDOW - (Bug#22221). + Avoid stdio in SIGINT handler -2016-01-30 Juri Linkov -2015-12-21 Juri Linkov + * admin/merge-gnulib (GNULIB_MODULES): Add ignore-value. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + * lib/ignore-value.h: New file, from gnulib. + * src/keyboard.c: Include it. + (write_stdout, read_stdin): New functions. + (handle_interrupt): Use them instead of printf and getchar, + and avoid fflush when handling signals. - * lisp/saveplace.el (toggle-save-place, save-place-to-alist) +2016-01-03 Paul Eggert - (save-places-to-alist, save-place-dired-hook): - Check for dired-subdir-alist. (Bug#19851) + * doc/misc/texinfo.tex: Revert unwanted copyright change. -2015-12-21 Paul Eggert +2016-01-03 Artur Malabarba - Add FIXME comment re stack overflow and modules + * lisp/align.el (align): Simplify a lambda -2016-01-30 Paul Eggert -2015-12-20 Paul Eggert + * lisp/align.el (align): Fix arg order in call to `align-region' - Revert some recent emacs-module commentary +2016-01-03 Eli Zaretskii - Most of the recently-added commentary was incorrect, due to the - possibility of stack overflow. + Fix compilation next-error in buffers with selective-display -2016-01-30 Paul Eggert + * lisp/progmodes/compile.el (compilation-beginning-of-line): New + function. + (compilation-internal-error-properties) + (compilation-next-error-function, compilation-set-window): Use + it. (Bug#1092) - Spelling fix: prefer "cooperate" to "co-operate" +2016-01-03 Lars Magne Ingebrigtsen -2016-01-30 Paul Eggert -2015-12-20 Paul Eggert + * nsm.el (nsm-check-protocol): Fix typo in the message. - Spelling fix: prefer "cooperate" to "co-operate" +2016-01-03 Lars Magne Ingebrigtsen -2015-12-20 Paul Eggert + Add SHA1 warnings for high network security settings - Port undo fixes to -fno-common + * nsm.el (nsm-check-protocol): When using high security, warn + about SHA1 certificates, which are now believed to be open to + spoofing. - Port recent fix for Bug#21968 to platforms like 'gcc -fno-common'. - * src/keyboard.c, src/keyboard.h (point_before_last_command_or_undo) - (buffer_before_last_command_or_undo): - Declare in keyboard.h, and define in keyboard.c, - instead of assuming the traditional Unix relaxed ref-def linkage. +2016-01-02 Jens Lechtenboerger -2015-12-20 Philipp Stephani + Refactor mml-smime.el, mml1991.el, mml2015.el - Improve commentary for emacs-module.c + (Maybe this is the last merge from Gnus git to Emacs git) - * src/lisp.h: Document emacs-module.c assumptions about EQ and NILP. - * src/emacs-module.c (module_non_local_exit_get): Document that we - cannot use the current implementation. - (module_is_not_nil, module_eq): Document assumptions about EQ and - NILP. + Cf. discussion on ding mailing list, messages in + . + Common code from the three files mml-smime.el, mml1991.el, and + mml2015.el is moved to mml-sec.el. Auxiliary functions are added + to gnus-util.el. -2015-12-20 Michael Albinus + The code is supported by test cases with necessary test keys. - Suppress test on Mac OS X + Documentation in message.texi is updated. - * test/automated/tramp-tests.el (tramp--test-darwin-p): New defun. - (tramp--test-utf8): Use it. + * doc/misc/message.texi (Security, Using S/MIME): + Update for refactoring mml-smime.el, mml1991.el, mml2015.el. + (Using OpenPGP): Rename from "Using PGP/MIME"; update contents. + (Passphrase caching, Encrypt-to-self, Bcc Warning): New sections. -2015-12-20 Alan Mackenzie + * lisp/gnus/gnus-util.el (gnus-test-list, gnus-subsetp, gnus-setdiff): + New functions. - Merge branch 'scratch/follow' into emacs-25 + * lisp/gnus/mml-sec.el: Require gnus-util and epg. + (epa--select-keys): Autoload. + (mml-signencrypt-style-alist, mml-secure-cache-passphrase): Doc fix. + (mml-secure-openpgp-signers): New user option; + make mml1991-signers and mml2015-signers obsolete aliases to it. + (mml-secure-smime-signers): New user option; + make mml-smime-signers an obsolete alias to it. + (mml-secure-openpgp-encrypt-to-self): New user option; + make mml1991-encrypt-to-self and mml2015-encrypt-to-self obsolete + aliases to it. + (mml-secure-smime-encrypt-to-self): New user option; + make mml-smime-encrypt-to-self an obsolete alias to it. + (mml-secure-openpgp-sign-with-sender): New user option; + make mml2015-sign-with-sender an obsolete alias to it. + (mml-secure-smime-sign-with-sender): New user option; + make mml-smime-sign-with-sender an obsolete alias to it. + (mml-secure-openpgp-always-trust): New user option; + make mml2015-always-trust an obsolete alias to it. + (mml-secure-fail-when-key-problem, mml-secure-key-preferences): + New user options. + (mml-secure-cust-usage-lookup, mml-secure-cust-fpr-lookup) + (mml-secure-cust-record-keys, mml-secure-cust-remove-keys) + (mml-secure-add-secret-key-id, mml-secure-clear-secret-key-id-list) + (mml-secure-cache-passphrase-p, mml-secure-cache-expiry-interval) + (mml-secure-passphrase-callback, mml-secure-check-user-id) + (mml-secure-secret-key-exists-p, mml-secure-check-sub-key) + (mml-secure-find-usable-keys, mml-secure-select-preferred-keys) + (mml-secure-fingerprint, mml-secure-filter-keys) + (mml-secure-normalize-cust-name, mml-secure-select-keys) + (mml-secure-select-keys-1, mml-secure-signer-names, mml-secure-signers) + (mml-secure-self-recipients, mml-secure-recipients) + (mml-secure-epg-encrypt, mml-secure-epg-sign): New functions. - This allows Isearch, etc., to work well when Follow Mode is active. + * lisp/gnus/mml-smime.el: Require epg; + refactor declaration and autoloading of epg functions. + (mml-smime-use): Doc fix. + (mml-smime-cache-passphrase, mml-smime-passphrase-cache-expiry): + Obsolete. + (mml-smime-get-dns-cert, mml-smime-get-ldap-cert): + Use format instead of gnus-format-message. + (mml-smime-epg-secret-key-id-list): Remove variable. + (mml-smime-epg-passphrase-callback, mml-smime-epg-find-usable-key) + (mml-smime-epg-find-usable-secret-key): Remove functions. + (mml-smime-epg-sign, mml-smime-epg-encrypt): Refactor. -2015-12-19 Michael Albinus + * lisp/gnus/mml1991.el (mml1991-cache-passphrase) + (mml1991-passphrase-cache-expiry): Obsolete. + (mml1991-epg-secret-key-id-list): Remove variable. + (mml1991-epg-passphrase-callback, mml1991-epg-find-usable-key) + (mml1991-epg-find-usable-secret-key): Remove functions. + (mml1991-epg-sign, mml1991-epg-encrypt): Refactor. - * lisp/net/tramp-sh.el (tramp-get-ls-command-with-w-option): - Improve check. + * lisp/gnus/mml2015.el (mml2015-cache-passphrase) + (mml2015-passphrase-cache-expiry): Obsolete. + (mml2015-epg-secret-key-id-list): Remove variable. + (mml2015-epg-passphrase-callback, mml2015-epg-check-user-id) + (mml2015-epg-check-sub-key, mml2015-epg-find-usable-key) + (mml2015-epg-find-usable-secret-key): Remove functions. + (mml2015-epg-decrypt, mml2015-epg-clear-decrypt, mml2015-epg-sign) + (mml2015-epg-encrypt): Refactor. -2015-12-19 Eli Zaretskii +2016-01-02 Glenn Morris - Fix last commit + * lisp/progmodes/fortran.el (fortran-make-syntax-propertize-function): - * doc/emacs/rmail.texi (Rmail Deletion): Document new behavior of 'u' - with numeric argument. + Explicitly ignore case. (Bug#22262) -2015-12-19 Eli Zaretskii +2016-01-02 Stefan Monnier - Document new features of Rmail + (semantic-symref-derive-find-filepatterns): Return a list - * doc/emacs/rmail.texi (Rmail Summary Edit, Rmail Deletion): - Document new behavior of 'd' and 'C-d' with numeric argument. - (Rmail Display): Document the rendering of HTML MIME parts. + * lisp/cedet/semantic/symref/grep.el + (semantic-symref-derive-find-filepatterns): Return a list. + (semantic-symref-perform-search): Quote the result here once and for all. -2015-12-19 Eli Zaretskii +2016-01-02 Eli Zaretskii - Improve documentation of new cl-lib functions + Fix xref-find-references on MS-Windows - * doc/misc/cl.texi (Predicates on Numbers, Numerical Functions): - Fix wording. + * lisp/cedet/semantic/symref/grep.el + (semantic-symref-derive-find-filepatterns): Use + 'shell-quote-argument' instead of manually quoting in a way that + only works with Posix shells. (Bug#22289) -2015-12-19 Eli Zaretskii +2016-01-02 Eli Zaretskii - Document the new feature of 'minibuffer-with-setup-hook' + Document new features of tildify-mode - * lisp/files.el (minibuffer-with-setup-hook): Clarify how FUN is - added to `minibuffer-setup-hook'. + * lisp/textmodes/tildify.el (tildify-foreach-ignore-environments) + (tildify-mode): Spelling fixes in doc strings. -2015-12-19 Eli Zaretskii + * etc/NEWS: Reformat the tildify-mode entry. - Document new features of Font Lock +2016-01-02 Eli Zaretskii - * doc/lispref/modes.texi (Other Font Lock Variables): Document - 'font-lock-flush-function' and 'font-lock-ensure-function'. - (Font Lock Basics): Document the basic fontification functions - referenced in "Other Font Lock Variables". + Document new features of Whitespace mode - * lisp/font-lock.el (font-lock-flush, font-lock-ensure): Doc fix. + * doc/emacs/display.texi (Useless Whitespace): Document + 'whitespace-toggle-options' and the new 'big-indent' style. + Document 'whitespace-big-indent-regexp'. Document the Global + Whitespace mode. -2015-12-19 Eli Zaretskii +2016-01-02 Eli Zaretskii - Document new features of Rectangle mode + Improve documentation of new Hide-IfDef features - * doc/emacs/killing.texi (Rectangles): Document "C-x C-x" in - rectangle-mark-mode. + * etc/NEWS: Expand and reword Hide-IfDef section. -2015-12-19 Eli Zaretskii +2016-01-02 Leo Liu - Manual followup to last change + Fix regression in font-locking cl-assert and cl-check-type - * doc/lispref/display.texi (Displaying Messages): Sync with the - doc string. (Bug#22210) + * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): Fix + el-errs-re. -2015-12-19 Eli Zaretskii +2016-01-01 Paul Eggert - Clarify doc string of 'display-message-or-buffer' + Spelling and grammar fixes - * lisp/simple.el (display-message-or-buffer): Doc fix. Suggested - by Sebastian Wiesner . (Bug#22210) +2016-01-01 Paul Eggert -2015-12-19 Eli Zaretskii + Fix copyright years by hand - * doc/emacs/emacs.texi (Top): Update top-level menus. + These are dates that admin/update-copyright did not update, or + updated incorrectly. - * doc/lispref/elisp.texi (Top): Update top-level menus. +2016-01-01 Paul Eggert -2015-12-19 Eli Zaretskii + Update copyright year to 2016 - Document how to avoid file-local variables that aren't + Run admin/update-copyright. - * doc/emacs/custom.texi (Specifying File Variables): Describe how - to prevent Emacs from interpreting unrelated text as file-local - variables. (Bug#22166) +2016-01-01 Paul Eggert -2015-12-19 Dave Thomas (tiny change) + Merge from gnulib - Fix a typo in eterm-color's termcap entry + This mostly just updates copyright dates of gnulib files. + It also updates to the latest version of texinfo.tex. - * lisp/term.el (term-termcap-format): Fix a typo in the "ue=" - entry. (Bug#22184) +2015-12-31 Mark Oteiza -2015-12-19 Eli Zaretskii + lisp/emacs-lisp/chart.el (chart-new-buffer): Move to silence byte compiler. - Allow 'browse-url-emacs' visit non-existent URLs +2015-12-31 Mark Oteiza - * lisp/url/url-handlers.el (url-insert-file-contents): Don't - signal an error if VISIT is non-nil, to more faithfully emulate - the behavior of 'insert-file-contents'. (Bug#22160) + Port chart.el methods to cl-generic. -2016-01-30 Paul Eggert -2015-12-18 Paul Eggert + cl-call-next-method cannot be used inside EIEIO's defmethod. + * lisp/emacs-lisp/chart.el: Require cl-generic at compile time. + * lisp/emacs-lisp/chart.el (initialize-instance, chart-draw): + (chart-draw-title, chart-size-in-dir, chart-draw-axis): + (chart-axis-draw, chart-translate-xpos, chart-translate-ypos): + (chart-translate-namezone, chart-draw-data, chart-add-sequence): + (chart-trim, chart-sort): Use cl-defmethod instead of defmethod. - Remove SunOS 4.x cruft +2015-12-31 Brian Burns - Support for SunOS 4.x was removed in Emacs 23 but some cruft was left behind. - * lib-src/pop.c [sun]: Remove no-longer-needed include. - * lwlib/xlwmenu.c (SUNSO41): Remove. + Add nt/INSTALL.W64 build instructions -2016-01-30 Paul Eggert -2015-12-18 Paul Eggert + * nt/INSTALL.W64: New file. + * nt/INSTALL: Point to INSTALL.W64 for 64-bit build instructions. - Merge from gnulib +2015-12-31 Joakim Jalap - This mostly commentary fixes. - * doc/misc/texinfo.tex, lib/intprops.h: Copy from gnulib. - * lib/gnulib.mk: Regenerate with new gnulib-tool. + Add new input method 'programmer-dvorak' -2015-12-18 Michael Albinus + * lisp/leim/quail/programmer-dvorak.el ("programmer-dvorak"): New + input method. - Minor fixes in Tramp + * etc/NEWS: Mention it. - * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls): - Reorder ls arguments. +2015-12-31 Eli Zaretskii - * lisp/net/tramp.el (tramp-dissect-file-name): Fix docstring. + Allow to invoke original M-TAB binding in 'flyspell-prog-mode' -2015-12-18 Michael Albinus + * lisp/textmodes/flyspell.el (flyspell-prog-mode): Record the + original M-TAB binding in a buffer-local variable. + (flyspell-auto-correct-word): Invoke the original binding of M-TAB + if that is recorded, when point is in a place where flyspell + should not be active (e.g., because the user turned on + 'flyspell-prog-mode'). (Bug#18533) - Make tramp a built-in package +2015-12-31 Eli Zaretskii - * lisp/finder.el (finder-compile-keywords): Update - `package--builtins' also when Version: keyword is available. + Fix EWW rendering of long RTL lines - * lisp/net/trampver.el: Add Version: keyword. - (tramp-version): Change it to "2.2.13.25.1", in order to be - compatible with `version-to-list'. + * lisp/net/shr.el (shr-insert-document): Undo any previous hscroll + of the selected window before filling its lines. (Bug#22250) -2015-12-18 Lele Gaifax +2015-12-31 Vincent Belaïche - * etc/tutorials/TUTORIAL.it: Update and fix typos. (Bug#22187) + fix bug#21054 -2015-12-18 Alan Mackenzie + * ses.el (ses-check-curcell): Call `ses-set-curcell' unconditionally - Rename `recenter-group' to `recenter-window-group' +2015-12-31 YAMAMOTO Mitsuharu - * doc/lispref/windows.texi (Textual Scrolling) - * lisp/window.el (top level, recenter-group) - * lisp/follow.el (follow-mode) - * lisp/isearch.el (isearch-back-into-window): Rename `recenter-group' to - `recenter-window-group' and `recenter-group-function' to - `recenter-window-group-function'. + Clean up cairo printing code -2015-12-18 Eli Zaretskii + * src/gtkutil.c (xg_get_page_setup): Use listn. + * src/xfns.c (Fx_export_frames, Fx_print_frames_dialog): Doc fix. Use + decode_window_system_frame and FRAME_VISIBLE_P. + (Fx_print_frames_dialog): Use redisplay_preserve_echo_area instead + of Fdisplay. + * src/xterm.c (x_cr_export_frames): Use redisplay_preserve_echo_area + instead of Fdisplay. Temporarily unblock_input around QUIT. - Fix vertical-motion in tabulated-list mode +2015-12-30 YAMAMOTO Mitsuharu - * src/indent.c (Fvertical_motion): When moving from line beginning - to point under line truncation, assume overshoot by one line only - if point actually lies beyond the window's right margin. - (Bug#22194) + Add handle_user_signal_hook -2015-12-18 Martin Rudalics + * src/keyboard.h (handle_user_signal_hook): New declaration. + * src/keyboard.c (handle_user_signal_hook): New variable. + (handle_user_signal): Call it. - Don't have help functions call x-display-pixel-width/-height on ttys +2015-12-30 YAMAMOTO Mitsuharu - * lisp/help.el (temp-buffer-max-height, temp-buffer-max-width): - Don't call x-display-pixel-width/-height on ttys. + Avoid writing to purespace -2016-01-30 Dmitry Gutov -2015-12-17 Dmitry Gutov + * src/alloc.c (Fmake_string): Don't write to empty string contents. + (allocate_vector): Don't write to empty vector size. + * src/character.h (CHECK_CHARACTER_CAR, CHECK_CHARACTER_CDR): + Don't call unnecessary XSETCAR or XSETCDR. + * src/lisp.h (STRING_SET_UNIBYTE, STRING_SET_MULTIBYTE): Don't + write to empty string size_byte. - Use 'hg id' in vc-hg-previous-revision +2015-12-30 YAMAMOTO Mitsuharu - * lisp/vc/vc-hg.el (vc-hg-previous-revision): - Use 'hg id' to retrieve it (bug#22032). + Remove unused variable -2015-12-17 Alan Mackenzie + * lisp/international/mule-cmds.el: Remove unused variable + `mac-system-coding-system'. - * lisp/follow.el (follow-sit-for): Remove (it's redundant). +2015-12-30 YAMAMOTO Mitsuharu -2015-12-17 Eli Zaretskii + * configure.ac: Find libxml2 headers in Xcode SDK dir on Darwin. - Fix a typo in the Emacs manual +2015-12-30 YAMAMOTO Mitsuharu - * doc/emacs/trouble.texi (Sending Patches): Fix a typo. Reported - by Lele Gaifax . (Bug#22193) + Use posix_openpt instead of openpty on Darwin -2015-12-17 Eli Zaretskii + * configure.ac (PTY_ITERATION, FIRST_PTY_LETTER, PTY_OPEN) + (PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF): Remove + Darwin-specific definitions. Use posix_openpt instead. - Fix parsing netrc entries with ports +2015-12-30 Shakthi Kannan - * lisp/gnus/auth-source.el (auth-source-ensure-strings): Don't - make a list out of 't'. (Bug#22188) + Document support for ':documentation' in Lisp mode - * test/automated/auth-source-tests.el - (auth-source-test-netrc-parse-entry): New test. + * lisp/emacs-lisp/lisp-mode.el (lisp-string-in-doc-position-p) + (lisp-string-after-doc-keyword-p) + (lisp-font-lock-syntactic-face-function): Add doc strings. -2015-12-17 Paul Eggert +2015-12-30 Shakthi Kannan - Fix typo in Doug Lea malloc configure log + Document new features of TeX mode - * configure.ac (emacs_cv_var_doug_lea_malloc): - Fix typo that confused the log output of 'configure'. + * doc/emacs/text.texi (TeX Print): Document + 'tex-print-file-extension'. + * doc/emacs/programs.texi (Misc for Programs): Document support + for Prettify Symbols mode in TeX mode. -2015-12-16 Nicolas Petton +2015-12-30 Eli Zaretskii - * etc/NEWS: Mention the new pcase patterns `seq' and `map'. + Clarify docs of hscroll in RTL text -2015-12-16 Alan Mackenzie + * doc/lispref/windows.texi (Horizontal Scrolling): Clarify the + meaning of a window's horizontal scroll amount for RTL paragraphs. - * etc/NEWS: Move entry on pcase to correct section +2015-12-30 Eli Zaretskii - (Accidentally omitted from previous commit) + Fix rendering of HTML pages that use character composition -2015-12-16 Alan Mackenzie + * src/indent.c (Fvertical_motion): Fix the case when point starts + in the middle of a composition, as in shr-vertical-motion. + (Bug#22250) - Add documentation for changes to Show Paren mode. +2015-12-30 Eli Zaretskii - * lisp/paren.el (show-paren-highlight-openparen): Enhance doc string. + Avoid some compiler warnings in w32.c - * doc/emacs/programs.texi (Matching): Add descriptions of some pertinent user - options, including the new show-paren-when-point-inside-paren and - show-paren-when-point-in-periphery. + * src/w32.c (codepage_for_filenames, crlf_to_lf) + (ansi_encode_filename, socket_to_fd, sys_write) + (check_windows_init_file): Avoid compiler warnings about + differences in pointer signedness. - * etc/NEWS (.. Specialized Modes ...): Add an entry for Show Paren mode. - Move an entry on pcase to the Lisp Changes section. +2015-12-29 Dmitry Gutov -2015-12-16 Eli Zaretskii + Undo ill-advised change - Document Eldoc changes + * lisp/progmodes/xref.el (xref-collect-matches): Undo + ill-advised change. The hits come in the order that `find' + produces them in, which isn't alphabetical. - * doc/emacs/programs.texi (Lisp Doc): Document Global Eldoc mode. +2015-12-29 Dmitry Gutov -2015-12-16 Eli Zaretskii + Unbreak completion in python-mode buffers - Fix invocation of Python and Guile interpreters from gdb-mi + * lisp/progmodes/python.el (python-shell-completion-at-point): + Unbreak in python-mode buffers. - * lisp/progmodes/gdb-mi.el (gdb-control-commands-regexp): Add - commands for interactive Python and Guile interpreters. - (gdb-send): Recognize various ways of exiting from Python and - Guile interpreters and returning to GDB. For details, see - http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00693.html - and http://stackoverflow.com/questions/31514741. +2016-01-09 Andrew Hyatt -2015-12-16 Paul Eggert + Adding example replies to bug-triage. - Remove attempt to use C11 threads + * admin/notes/bug-triage: Added example replies. Also, as requested, + making the process notes into more of a checklist. - C11 threads are not needed for Emacs now, and their use is causing - hassles on FreeBSD 10.x. Problem reported by Ashish SHUKLA in: - http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00648.html - * configure.ac: Do not check for C11 threads. Remove unnecessary - fiddling with CPPFLAGS when configuring pthreads. - * src/emacs-module.c (main_thread, check_main_thread) - (module_init): Do not worry about C11 threads. +2016-01-08 Andrew Hyatt -2015-12-15 Michael Albinus + Rename the notes/admin/triage file to bug-triage. - Set utf8 encoding with stty in Tramp + * CONTRIBUTE: Change reference to the triage file name. + * admin/notes/triage: Rename file to admin/notes/bug-triage. - * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): - Move up uname check. Handle Mac OS X eol encoding. Set utf8 - encoding with stty. +2016-01-07 Glenn Morris -2015-12-15 Alan Mackenzie + Allow creation of loaddefs files without timestamps. - Tidy up documentation associated with window groups. + * lisp/emacs-lisp/autoload.el (autoload-timestamps): New variable. + (autoload-generate-file-autoloads, update-directory-autoloads): + If autoload-timestamps is nil, write "t" instead of file timestamp. + (autoload-find-destination, update-directory-autoloads): + If timestamp is "t", use the modtime of the output file instead. - * doc/lispref/windows.texi (Basic Windows): Add an @anchor for "Window - Groups". Correct example function to `window-group-start'. - (Window Start and End, Textual scrolling): Point to the new anchor. State - that (most of) the args in window group functions have the same meaning as for - the corresponding window primitives. +2016-01-06 Glenn Morris - * doc/lispref/positions.texi (Screen Lines). Same as above. + Doc tweaks. -2015-12-15 Michael Albinus + * lisp/calendar/cal-hebrew.el (diary-hebrew-list-entries): + * lisp/calendar/cal-iso.el (calendar-iso-to-absolute) + (calendar-iso-from-absolute): + * lisp/calendar/cal-tex.el (cal-tex-comment): + * lisp/calendar/solar.el (calendar-time-display-form): Doc tweaks. - Complete last commit +2016-01-06 Glenn Morris - * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): - Move uname check up. Handle Mac OS X eol encoding. + Build tweaks related to tags files. -2015-12-15 Michael Albinus + * lib-src/Makefile.in (tagsfiles): New variable. + (TAGS): Also depend on the source files. Use our own etags program. + * lisp/Makefile.in (ETAGS): Add EXEEXT. + (lisptagsfiles1, lisptagsfiles2, lisptagsfiles3, lisptagsfiles4): + Remove. + (tagsfiles): New, replacing lisptagsfiles1 etc. + Remove irrelevant source files here rather than in the TAGS rule. + (${ETAGS}): New rule. + (TAGS): Also depend on the etags executable. + * lwlib/Makefile.in (EXEEXT): New, set by configure. + (ETAGS): Add EXEEXT. + (${ETAGS}): New rule. + (ctagsfiles): Use "wildcard". + (TAGS): Also depend on the etags executable. + * nt/Makefile.in (ETAGS, tagsfiles): New variables. + (${ETAGS}): New rule. + (TAGS): Fix dependencies. + * oldXMenu/Makefile.in (EXEEXT): New, set by configure. + (ETAGS): New variable, replacing $TAGS. Use our own etags program. + Remove "-t" argument. + (${ETAGS}): New rule. + (tagsfiles): New variable. + (TAGS): New rule, with proper dependencies. + * src/Makefile.in (ETAGS): Add EXEEXT. Add a build rule. + (ctagsfiles1, ctagsfiles2): Use "wildcard". + (ctagsfiles3): Remove. + (TAGS): Depend on etags. + (../lisp/TAGS, $(lwlibdir)/TAGS): Let the rules in the relevant + directories decide if updates are needed. - Handle Mac OS X eol encoding in Tramp +2016-01-06 Glenn Morris - * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): - Handle Mac OS X eol encoding. + * lisp/Makefile.in (CAL_SRC): Skip calendar.el. -2015-12-15 YAMAMOTO Mitsuharu +2016-01-06 Glenn Morris - Fix variable name typo in compute_tip_xy + * test/lisp/emacs-lisp/package-tests.el - * src/w32fns.c (compute_tip_xy): - * src/xfns.c (compute_tip_xy): Modify *root_x instead of *root_y - when `right' is integer. + (package-test-macro-compilation): Fixup branch merge. -2016-01-30 foudfou -2015-12-14 foudfou (tiny change) +2016-01-05 Eli Zaretskii - * lisp/ibuffer.el: Add ability to (un-)mark or delete buffers in the region. + Fix fallout from merging emacs-25 branch in test/ -2015-12-14 Tassilo Horn + * .gitignore: Update for the new place of biditest.txt. + * test/automated/: Directory removed. All files moved to their + proper places. + * test/etags/: Directory removed. All files moved to their proper + places. + * test/automated/url-parse-tests.el: File removed; it was an exact + copy of the same file in test/lisp/url/. + * test/automated/url-expand-tests.el: Moved to test/lisp/url/. - Revert "Fix rx matcher overflow without limiting" +2016-01-04 Paul Eggert - This reverts commit fe27e037663d36be3e5741c2ce86ab4ee8017db1. + Spelling fixes. -2015-12-14 Alan Mackenzie +2016-01-04 Daniel Colascione - Ispell: Bind isearch-regexp-function to nil around call to isearch..-new-loop + Let users disable unsafe signal handling code - * lisp/textmodes/ispell.el (ispell-highlight-spelling-error-overlay): bind - isearch-regexp-function to nil around call to isearch-lazy-highligh-new-loop. + * src/keyboard.c (syms_of_keyboard): New user variables + `attempt-stack-overflow-recovery' and + `attempt-orderly-shutdown-on-fatal-signal'. + * src/sysdep.c (stack_overflow): Check + `attempt-stack-overflow-recovery'. + * src/emacs.c (terminate_due_to_signal): Check + `attempt-orderly-shutdown-on-fatal-signal'. -2015-12-14 Tassilo Horn +2016-01-03 Michael Albinus - Fix rx matcher overflow without limiting + * configure.ac: Add error message for gfile on Nextstep. - * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Improve last - change to the regexp without imposing a limit on the length of the - options. +2016-01-03 John Wiegley -2015-12-14 Alan Mackenzie + Merge branch 'emacs-25-merge' - Enhance ispell-skip-region-alist by generating part of it at runtime. +2016-01-02 Vincent Belaïche - * lisp/textmodes/ispell.el (ispell--\\w-filter, ispell--make-\\w-expression) - (ispell--make-filename-or-URL-re): New functions which generate a regexp. - (ispell-skip-region-alist): Remove the bit that matches a filename/URL, etc. - (ispell-begin-skip-region-regexp, ispell-skip-region-list, ispell-message): - Include the result of ispell--make-filename-or-URL-re in regexps. + Align textually on fix done for emacs-25 branch for bug#21054 -2015-12-14 Glenn Morris + * lisp/ses.el (ses-check-curcell): Suppress ``temporary fix'' comment, + and useless `(if t ...)' in order to align textually on fix done for + emacs-25 branch for bug#21054. - * build-aux/gitlog-to-emacslog: Ignore more pointless merge commits. +2016-01-02 K. Handa -2015-12-14 Alan Mackenzie + support rendering of wider range of combinging characters by ftfont backend - Replace GROUP argument in six window primitives by new functions. + * lisp/language/hebrew.el (hebrew-shape-gstring): If the font backend + supports rendering of combining characters, call + font-shape-gstring. - * doc/lispref/windows.texi (Window Start and End, Textual Scrolling) - * doc/lispref/positions.texi (Screen Lines): Remove optional GROUP argument - from description of six window functions. Add in description of new functions - window-group-start, window-group-end, set-window-group-start, - pos-visible-in-window-group-p, recenter-group and move-to-window-group-line, - together with the six variables indirecting to the pertinent group - functions. + * src/font.c (Ffont_get): Handle `combining-capability' property. + (syms_of_font): New symbol ":combining-capability'. - * src/window.c - * src/keyboard.c: Revert the commit from 2015-11-11 12:02:48, in so far as it - applies to these two files, which added the GROUP argument to six window - primitives. + * src/font.h (struct font_driver): New member combining_capability. - * lisp/follow.el (follow-mode): Use updated variable names for the indirected - functions. + * src/ftfont.c: Include "category.h". + (ftfont_driver): Initialize combining_capability to + ftfont_combining_capability. + (ftfont_shape_by_flt): If OTF is null, try to find a suitable + FLT in advance. + (ftfont_combining_capability): New function. - * lisp/isearch.el (isearch-update, isearch-done, isearch-string-out-of-window) - (isearch-back-into-window, isearch-lazy-highlight-new-loop) - (isearch-lazy-highlight-search, isearch-lazy-highlight-update): Replace calls - to window primitives (e.g. window-start) with a GROUP argument by calls to - new functions (e.g. window-group-start). +2016-01-01 Andrew Hyatt - * lisp/ispell.el (ispell-command-loop): Replace call to - pos-visible-in-window-p with pos-visible-in-window-group-p. + Add notes on bug triage procedure - * lisp/window.el (window-group-start, window-group-end) - (set-window-group-start, recenter-group, pos-visible-in-window-group-p) - (selected-window-group, move-to-window-group-line): New functions. - (window-group-start-function, window-group-end-function) - (set-window-group-start-function, recenter-group-function) - (pos-visible-in-window-group-p-function, selected-window-group-function) - (move-to-window-group-line-function): New variables. + * CONTRIBUTE: In section on the issue tracker, point to new triage file. + * admin/notes/triage: New file explaining triage procedure. -2015-12-14 Vitorio Miguel (tiny change) +2015-12-30 Vincent Belaïche - * etc/tutorials/TUTORIAL.pt_BR: Fix a typo. (Bug#22165) + Correct ses-rename-cell cursor-intangible text prop updating. -2015-12-13 Eli Zaretskii + There were two problems: - Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25 + - First ses-rename-cell has to work when called non interactively + (with non-nil CELL argument), so in this case the start pos of + put-text-property cannot be plainly (point), you need a + ses-goto-print call before -2015-12-13 Tassilo Horn + - Second, the range itself was computed erronously, only the first + char was affected instead of the full cell width. This was not + noticeable prior to changes (Deprecate `intangible' and + `point-entered' properties) made by Stefan on 2015-04-13T19:51:15Z - Improve regex to not trigger stack overflow + * lisp/ses.el (ses-rename-cell): Correct computation of position range + to which the 'cursor-intangible text property has to be set to cell + new name. - * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Improve regex in - order not to trigger a stack overflow in regex matcher with unbalanced - brackets (bug#22146). +2015-12-30 Vincent Belaïche -2015-12-13 Eli Zaretskii + Don't fake empty cells value by "" when printing with a lambda. - Fix visiting files with raw-text + When using a lambda expression printer function the user should be + free to format differently a really empty cell, ie. containing nil, + from a cell containing an empty string "". - * src/fileio.c (Finsert_file_contents): Fix setting buffer unibyte - when some stuff was actually read. (Bug#22162) + * ses.el (ses-call-printer): Replace `(or value "")' by just `value' + in the case of a lambda expression printer function. -2015-12-13 Tassilo Horn + * ses.texi (Printer functions): Add example and description about + lambda expression printer function handling all the possible values, + including unexpected ones. - Fix regex matching keyval labels +2015-12-30 Vincent Belaïche - * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Fix regexp - matching keyval labels. + Quick temporary hack to fix curcell refreshing. -2015-12-13 Michael Albinus + The problem was caused by change: 2015-04-13 Deprecate `intangible' + and `point-entered' properties. The problem is that this change has + removed the (setq ses--curcell t) setting in the ses-command-hook + function. - * lisp/ido.el (ido-file-name-all-completions-1): Do not raise an error + * ses.el (ses-check-curcell): replace `(eq ses--curcell t)' by just `t' as + a condition to call function `ses-set-curcell'. Comment this as a quick + temporary hack to make it work, as I don't know yet whether a definite + correction would be to make the ses-set-curcell at every ses-check-curcell, + or to revert to the previous approach, ie marking ses--curcell as out-of-date + at every potentially cursor motion command. - ... in case of Tramp. (Bug#20821) +2015-12-30 Lars Magne Ingebrigtsen -2016-01-30 Paul Eggert -2015-12-12 Paul Eggert + Restrictive URL checking tweaks - Fix performance regression with gcc -O0 + * lisp/net/eww.el (eww): Check whether the domain is + restrictive instead of the string + (http://македонија.icom.museum is restrictive even if each + part is from a different script). - This fixes the smaller performance hit that I noted in: - https://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00357.html - * src/alloc.c (macro_XPNTR_OR_SYMBOL_OFFSET, macro_XPNTR): - * src/puresize.h (puresize_h_PURE_P) - (puresize_h_CHECK_IMPURE): - New macros, with the old contents of the functions. - * src/alloc.c (XPNTR_OR_SYMBOL_OFFSET, XPNTR): - * src/puresize.h (PURE_P, CHECK_IMPURE): - Use the new macros. Also macros, if DEFINE_KEY_OPS_AS_MACROS. - * src/conf_post.h (ATTRIBUTE_UNUSED): - * src/lisp.h (DEFINE_KEY_OPS_AS_MACROS): New macros. +2015-12-30 Lars Magne Ingebrigtsen -2015-12-12 Artur Malabarba + New function `puny-highly-restrictive-domain-p' - * lisp/emacs-lisp/package.el (package-unpack): Security check + * lisp/net/puny.el (puny-highly-restrictive-string-p): Rename. + (puny-highly-restrictive-domain-p): New function. - Check that we received the package we were offered. +2015-12-30 Lars Magne Ingebrigtsen -2015-12-12 Artur Malabarba + eww build fix (require puny) - * lisp/emacs-lisp/package.el (package--compile): Don't activate +2015-12-30 Lars Magne Ingebrigtsen - `package-unpack' takes care of all activations now (other than - `package-initialize). `package--compile' now only compiles. + Transform non-restrictive domains to punycode for display -2015-12-12 Eli Zaretskii + * lisp/net/eww.el (eww): Check whether the domain is Highly + Restrictive in the Unicode IDNA sense. - Document the new bindings of and in the minibuffer +2015-12-30 John Wiegley - * doc/emacs/mini.texi (Minibuffer History): Describe the new - bindings of and in the minibuffer. + Merge emacs-25 into master (using imerge) -2015-12-12 Eli Zaretskii +2015-12-29 Eli Zaretskii - Document new features of Ido + Fix typos in CC Mode manual - * doc/misc/ido.texi (Misc): Document 'C-S-b'. + * doc/misc/cc-mode.texi (c-offsets-alist, Style Variables): Fix + typos. (Bug#22267) -2015-12-12 Martin Rudalics +2015-12-29 Eli Zaretskii - Fix frame height calculations with added menu bar on Windows (Bug#22105) + Avoid assertion violations in compact_font_cache_entry - * doc/lispref/frames.texi (Parameter Access): Mention pitfalls - when simultaneously specifying multiple parameters for - `modify-frame-parameters' that all may change the frame's size. - * src/w32fns.c (x_set_menu_bar_lines): Don't set - windows_or_buffers_changed here. - (my_create_tip_window, Fx_show_tip): Call AdjustWindowRect - with third argument false. - * src/w32menu.c (set_frame_menubar): Set - windows_or_buffers_changed here. - * src/w32term.c (x_set_window_size): Determine third argument of - AdjustWindowRect from whether the frame has a menu bar and not - from whether it wants one. + * src/alloc.c (compact_font_cache_entry): Don't use VECTORP to + avoid assertion violation in ASIZE. (Bug#22263) -2015-12-12 Eli Zaretskii +2015-12-29 Eli Zaretskii - Document the change in interactive shell mode + Fix filling text with bidirectional characters in shr.el - * doc/emacs/misc.texi (Interactive Shell): Document that the - '*shell*' buffer by default displays in a new window. + * lisp/net/shr.el (shr-insert-document): Bind + bidi-display-reordering to nil while filling lines. This is + required for when a line includes characters whose bidi + directionality is opposite to the base paragraph direction, + because columns are counted in the logical order. (Bug#22250) -2015-12-12 Eli Zaretskii +2015-12-29 Lars Ingebrigtsen - Document new features of package.el + Further Unicode restrictive fixups - * doc/emacs/package.texi (Package Menu): Document the 'external' - status and the new menu commands. - (Package Installation): Document archive priorities. + * puny.el (puny-highly-restrictive-p): Include the extra + identifier characters from table 3. - * lisp/emacs-lisp/package.el (package-archive-priorities): Doc fix. - (package-menu-hide-low-priority): Doc fix. +2015-12-29 Martin Rudalics -2015-12-12 Eli Zaretskii + * src/xfns.c (x_create_tip_frame): Process alpha parameter. - Update and document new features of xterm support +2015-12-29 Michael Albinus - * doc/emacs/frames.texi (Text-Only Mouse): Document that - track-mouse is supported by newer xterm versions. + Sync with Tramp 2.2.13 -2015-12-12 Eli Zaretskii + * doc/misc/trampver.texi: Change version to "2.2.13.25.1". - Document new features of Prettify Mode + * lisp/net/tramp-compat.el (tramp-compat-delete-dups): + Use `tramp-compat-funcall'. - * doc/emacs/programs.texi (Misc for Programs): Document - 'prettify-symbols-compose-predicate' and - 'prettify-symbols-unprettify-at-point'. + * lisp/net/tramp-gvfs.el (tramp-gvfs-parse-device-names): + Make `split-string' call compatible with older Emacsen. - * lisp/progmodes/prog-mode.el (prettify-symbols-alist) - (prettify-symbols-default-compose-p) - (prettify-symbols-compose-predicate) - (prettify-symbols--compose-symbol): Doc fixes. + * lisp/net/trampver.el: Change version to "2.2.13.25.1". -2015-12-12 Eli Zaretskii +2015-12-29 Lambda Coder - Document multi-mode indentation facilities + * doc/misc/tramp.texi: Editorial revisions to the Tramp manual - * doc/lispref/text.texi (Mode-Specific Indent): Document - 'prog-indentation-context', 'prog-first-column', and 'prog-widen'. +2015-12-29 Lars Ingebrigtsen - * lisp/progmodes/prog-mode.el (prog-indentation-context) - (prog-widen): Doc fixes. + Mention that tls.el is secure by default, and will fail -2015-12-12 Eli Zaretskii +2015-12-29 Lars Ingebrigtsen - Document 'vc-refresh-state' + Make tls.el use trustfiles by default - * doc/emacs/maintaining.texi (Version Control): Document - 'vc-refresh-state'. + * lisp/net/tls.el (tls-program): Add a certfile by default (bug#21227). + (open-tls-stream): Insert the trustfile by looking at + `gnutls-trustfiles'. - * lisp/vc/vc-hooks.el (vc-refresh-state): Doc fix. +2015-12-29 Lars Ingebrigtsen -2015-12-12 Eli Zaretskii + Refactor out gnutls-trustfiles - Fix echo for "C-u" + * lisp/net/gnutls.el (gnutls-trustfiles): Refactor out for reuse by tls.el. - * src/keyboard.c (command_loop_1): Undo last change. It caused - duplicate echo of C-u. (Bug#22107) +2015-12-29 Lars Ingebrigtsen -2015-12-11 Eli Zaretskii + Remove --insecure from gnutls-cli invocation - Avoid errors when creating files under SVN in new directory + * tls.el (tls-program): Default to using secure TLS + connections (bug#19284). - * lisp/vc/vc-svn.el (vc-svn-registered): Use - file-accessible-directory-p, to avoid cd'ing to a non-existing - directory, which signals an error on some systems. (Bug#21984) - (vc-svn-checkin): Call log-edit-extract-headers with 2 arguments. - Use declare-function to avoid byte-compiler warnings. +2015-12-29 Lars Ingebrigtsen -2015-12-11 Eli Zaretskii + Add a new function to say whether a string is restrictive - Improve Lua support in etags + * puny.el (puny-highly-restrictive-p): New function. - * lib-src/etags.c (Lua_functions): Skip spaces before looking for - "function". +2015-12-28 Paul Eggert - * etc/NEWS: Mention improved Lua support by 'etags'. + Spelling fix - * test/etags/lua-src/test.lua (test): Add tests for indented - function definitions. - * test/etags/ETAGS.good_1: - * test/etags/ETAGS.good_2: - * test/etags/ETAGS.good_3: - * test/etags/ETAGS.good_4: - * test/etags/ETAGS.good_5: - * test/etags/ETAGS.good_6: - * test/etags/CTAGS.good: Adapt to the modified Lua tests. +2015-12-28 Paul Eggert -2015-12-11 Eli Zaretskii + Port report-emacs-bug to deterministic builds - Fix 'this-command-keys' wrt prefix argument + * lisp/mail/emacsbug.el (report-emacs-bug): Future-proof the + recent "built on" change to deterministic builds where + emacs-build-system will be nil. See: + http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01369.html - * src/keyboard.c (command_loop_1): Restore the feature whereby C-u - was part of this-command-keys, but not of this-single-command-keys. - (Bug#22107) +2015-12-28 Jose A. Ortega Ruiz (tiny change) + + Fix URL auth error message + + * lisp/url/url-http.el (url-http-handle-authentication): Make the error + message more correct (bug#20069). - * lisp/simple.el (internal-echo-keystrokes-prefix): Add - commentary about the function's return value. +2015-12-28 Lars Ingebrigtsen -2015-12-11 Eli Zaretskii + Mention the new puny.el library - * lisp/files.el (load-library): Doc fix. (Bug#22140) +2015-12-28 Lars Ingebrigtsen -2015-12-11 Eli Zaretskii + IDNA-related fixes for the URL library - Improve and document Ruby support in 'etags' + * lisp/url/url-http.el (url-http-create-request): IDNA-encode + the Host: header. - * lib-src/etags.c (Ruby_suffixes): Add ".ruby". - (Ruby_functions): Support "module" and overloaded operators. - (Ruby_help): Mention "module". + * lisp/url/url-util.el (url-encode-url): Don't hex-encode + domain names, but leave them as UTF-8, so that they can be + IDNA-encoded later when contacting the host. - * test/etags/ruby-src/test.rb: - * test/etags/ruby-src/test1.ruby: New files. - * test/etags/Makefile (RBSRC): New tests. - (SRCS): Add ${RBSRC}. - * test/etags/ETAGS.good_1: - * test/etags/ETAGS.good_2: - * test/etags/ETAGS.good_3: - * test/etags/ETAGS.good_4: - * test/etags/ETAGS.good_5: - * test/etags/ETAGS.good_6: - * test/etags/CTAGS.good: Adapt to the new Ruby tests. +2015-12-28 Lars Ingebrigtsen - * doc/man/etags.1: Mention Ruby support. - * etc/NEWS: Mention Ruby support. + IDNA-encode all domain names in `open-network-stream' -2015-12-11 Xi Lu + * network-stream.el (open-network-stream) + (network-stream-open-plain, network-stream-open-starttls): + IDNA-encode all domain names, if needed. - Initial support for Ruby in 'etags' +2015-12-28 Lars Ingebrigtsen - * lib-src/etags.c : New variable. - (lang_names): Add an entry for Ruby. - (Ruby_functions): New function. (Bug#22116) + Fix puny-encoding all-non-ASCII domains -2015-12-11 Eli Zaretskii + * puny.el (puny-encode-string): Fix the all-non-ASCII encoding case. - Clarify documentation of 'modify-frame-parameters' +2015-12-28 Lars Ingebrigtsen - * doc/lispref/frames.texi (Parameter Access): Clarify what "ignored - PARMs" mean for 'modify-frame-parameters'. + * lisp/net/shr.el (shr-next-link): Don't bug out on adjacent links. - * src/frame.c (Fmodify_frame_parameters): Clarify what "ignored - PARMs" mean for this function. (Bug#22104) +2015-12-28 Tom Tromey -2015-12-11 Eli Zaretskii + set :safe on css-indent-offset - Fix setting buffer unibyte when reading from a device + * lisp/textmodes/css-mode.el (css-indent-offset): Add :safe 'integerp. - * src/fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte - to make a (possibly non-empty) buffer unibyte. (Bug#22096) +2015-12-28 Lars Ingebrigtsen -2015-12-11 Eli Zaretskii + * eww.el (eww-mode): Remove superfluous bidi reset. - Clarify documentation of 'values' +2015-12-28 James Stout (tiny change) - * doc/lispref/eval.texi (Eval): Clarify that 'values' are not - updated by any evaluation commands in 'lisp-interaction-mode'. - (Bug#22056) + Make chunked encoding trailer detection more compliant -2015-12-11 Anders Lindgren + * lisp/url/url-http.el + (url-http-chunked-encoding-after-change-function): Make + trailer detection more compliant (bug#16345). - Fixed subversion vc error when opening file in new directory (bug#21984). +2015-12-28 Lars Ingebrigtsen - * lisp/vc/vc-svn.el (vc-svn-registered): Check if directory exists. + Reconnect erc even on server errors -2015-12-09 Eli Zaretskii + * lisp/erc/erc-backend.el (erc-server-reconnect-p): Try to + reconnect even if a server error has occurred (bug#18527). - Yet another fix for when point ends up in invisible text +2015-12-28 Lars Ingebrigtsen - * src/xdisp.c (redisplay_window): When someone forced - window-start, and honoring that failed to show the cursor, try - moving out of invisible text, before falling back to the middle of - the window. (Bug#22098) + Fix punycode short circuit logic -2015-12-09 Michael Albinus + * puny.el (puny-encode-domain): Fix short-circuit logic. - Fix error in Tramp perl script for cygwin +2015-12-28 Martin Rudalics - * lisp/net/tramp-sh.el (tramp-perl-file-truename): Do not raise an - error if file doesn't exist. + Fix Bug#10873 in `report-emacs-bug' -2015-12-09 YAMAMOTO Mitsuharu + * lisp/mail/emacsbug.el (report-emacs-bug): If + `report-emacs-bug-no-explanations' is nil, make sure we can show + mail and warnings buffer on this frame (Bug#10873). - Remove font workaround for limited outdated versions +2015-12-28 Lars Ingebrigtsen - * src/macfont.m (mac_font_descriptor_get_adjusted_weight): Remove - workaround for HiraginoSans-W7 on OS X 10.11 and 10.11.1. + IDNA speed up -2015-12-09 Anders Lindgren + * puny.el (puny-encode-domain): Make the common non-IDNA case faster - Don't add "." to load path (bug#21104) +2015-12-28 Lars Ingebrigtsen - When configured with --enable-locallisppath=no, which is the - default for OS X, the load-path incorrectly was populated with ".". + Add IDNA domain encode/decode functions - * src/lread.c (init_lread): Don't call `decode_env_path' when - PATH_SITELOADSEARCH is empty. + * puny.el (puny-decode-domain): New function. + (puny-encode-domain): Ditto. + (puny-decode-digit): Fix digit decoding error. -2015-12-08 Artur Malabarba +2015-12-28 Lars Ingebrigtsen - * lisp/emacs-lisp/package.el (package--with-response-buffer): + Rename idna.el to puny.el - Search for the blank-line in the right buffer. + * puny.el: Renamed from idna.el to avoid name collisions with + the external idna.el library. -2015-12-08 Glenn Morris +2015-12-28 Lars Ingebrigtsen - * test/automated/simple-test.el (undo-auto-boundary-timer): Update - for recent change. + Always reset the bidi direction -2015-12-08 Glenn Morris + * eww.el (eww-display-html): Always reset the bidi direction + to `left-to-right' (bug#22257). - Fix some display-warning usage. +2015-12-28 Alan Mackenzie - * lisp/files.el (hack-local-variables, hack-dir-local-variables): - * lisp/calendar/diary-lib.el (diary-include-files, diary-sexp-entry): - * lisp/calendar/holidays.el (calendar-holiday-list): - * lisp/mail/rmailout.el (rmail-output-read-file-name): - Fix display-warning usage. + Allow line comments ending with escaped NL to be continued to the next line. -2016-01-30 Glenn Morris -2015-12-07 Glenn Morris + Use this in C, C++, and Objective C Modes. Fixes bug#22246 - * lisp/calendar/cal-html.el: Require diary-lib. + * src/syntax.c (comment-end-can-be-escaped): New buffer local variable. + (forw-comment, back-comment): On encountering an end of comment character, + test whether it is escaped when `comment-end-can-be-escaped' is non-nil. - (cal-html-list-diary-entries): Handle no diary. (Bug#21994) + * doc/lispref/syntax.texi (Control Parsing): Describe + `comment-end-can-be-escaped'. -2016-01-30 Thomas Fitzsimmons + * etc/NEWS (Lisp Changes): Describe `comment-end-can-be-escaped'. - Add Obsolete-since header to eudcb-ph.el + * lisp/progmodes/cc-langs.el: New c-lang-setvar `comment-end-can-be-escaped'. - * lisp/obsolete/eudcb-ph.el: Add Obsolete-since header. -2015-12-07 Thomas Fitzsimmons +2015-12-28 Katsumi Yamaoka - Add Obsolete-since header to eudcb-ph.el + lisp/gnus/mml-sec.el (mml-secure-bcc-is-safe): Keep old Emacsen compatibility - * eudcb-ph.el: Add Obsolete-since header. + * lisp/gnus/mml-sec.el (mml-secure-bcc-is-safe): + Don't use split-string with 4th arg for old Emacsen compatibility. -2015-12-07 Paul Eggert +2015-12-27 Dmitry Gutov - Spelling fixes + Rename project-library-roots to project-external-roots - * doc/misc/calc.texi (Predefined Units): Use the bland modern - scientific style for spelling the units “ampere” and - “angstrom” rather than the older style “Ampere” and - “Ångstrom”. The latter spelling was wrong anyway (it should - have been “Ångström”). - * lisp/emacs-lisp/ert.el (ert--explain-equal-rec): - Fix misspelling of ‘atom’ in code. + * lisp/progmodes/project.el (project-library-roots): Rename to + project-external-roots. + (project-library-roots-function): Rename to + project-vc-external-roots-function. Only use it in the VC + backend, for now. Update project-external-roots accordingly. + (project-vc-library-roots): Remove. + (project-or-libraries-find-regexp): + Rename to project-or-external-find-regexp. -2015-12-07 Eli Zaretskii + * lisp/progmodes/elisp-mode.el (elisp-library-roots): + Rename to elisp-load-path-roots. - Improve documentation of kill commands + * lisp/progmodes/etags.el (etags-library-roots): Remove. Use + an anonymous function for the default value of + project-vc-external-roots-function. - * lisp/simple.el (region-extract-function, delete-backward-char) - (delete-forward-char, kill-region, copy-region-as-kill) - (kill-ring-save): Better document the optional argument REGION in - the doc strings. Mention in the doc strings that text put in the - kill-ring can be filtered by 'filter-buffer-substring'. +2015-12-27 Lars Ingebrigtsen - * doc/lispref/text.texi (Kill Functions): Mention that functions - described in this subsection can filter text they put in the - kill-ring. Add a cross-reference to "Buffer Contents" and an - index entry. Document the optional argument 'region' and its - effect. - (Bug#21315) + * idna.el (idna-decode-string-internal): Implement decoding. -2015-12-07 Alan Mackenzie +2015-12-27 Lars Ingebrigtsen - Further progress making Isearch, Ispell, Replace work with Follow Mode. + Further IDNA tweaks - * lisp/follow.el: (follow-mode): Remove references to sit*-for-function, which - no longer exists. Add follow-post-command-hook to three special purpose - hooks at setup, and remove them at tear down. + (idna-encode-string): Make idna-encode-string safe for + non-ASCII use. - * lisp/isearch.el: (isearch-update): invoke isearch-update-post-hook before - isearch-lazy-highlight-new-loop. - (isearch-lazy-highlight-new-loop): Restore this function to what it previously - was, merging the functionality of isearch-lazy-highlight-maybe-new-loop into - it. - (isearch-lazy-highlight-maybe-new-loop): function removed. +2015-12-27 Lars Ingebrigtsen - * lisp/replace.el: (replace-update-post-hook): New hook variable. - (perform-replace): Add second (nil) argument to looking-back. Invoke - replace-update-post-hook before calling replace-highlight. + Clean up the code slightly - * lisp/textmodes/ispell.el: (ispell-update-post-hook): New hook variable. - (ispell-command-loop): invoke ispell-update-post-hook. Add GROUP argument to - call of pos-visible-in-window-p. - (ispell-display-buffer): Place *Choices* window at the top of the last window - in a window group. +2015-12-27 Lars Ingebrigtsen -2015-12-07 Alan Mackenzie + Added basic idna encoding support - Amend doc of `mapconcat': it can take sequences, not merely strings. + * lisp/net/idna.el: New file. - * doc/lispref/functions.texi (Mapping Functions): Amend the doc of `mapconcat' - to say that SEPARATOR and the results from FUNCTION may be any character - sequences, not just strings. Add an @xref to "Sequences Arrays Vectors". +2015-12-27 Vivek Dasmohapatra -2015-12-07 Michael Albinus + Disconnection fixes for erc - Fix an utf8 problem for Tramp on BSD + * lisp/erc/erc-backend.el (erc-server-reconnect-p): Don't + reconnect if the user has disconnected explicitly (bug#4589). - * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): - Make lax check for utf8. - (tramp-get-remote-locale): Add "en_US.UTF-8" as candidate. +2015-12-27 Thomas Riccardi (tiny change) -2016-01-30 Thomas Fitzsimmons -2015-12-06 Thomas Fitzsimmons + Further erc asynch fixes - Make eudcb-ph.el obsolete + * lisp/erc/erc-backend.el (erc-process-sentinel-2): Make + erc-server-connect to return even if the connection is not + ready. Then erc-open and erc-server-reconnect do the + same. (bug#5650). - * doc/misc/eudc.texi: Bump version to 1.40.0. - Remove PH/QI sections and mentions. - * lisp/obsolete/eudcb-ph.el: Make obsolete. - * lisp/net/eudc-vars.el (eudc-known-protocols): Remove ph. - (eudc-ph-bbdb-conversion-alist): Make obsolete. - * etc/NEWS: Mention this. (Bug#21191) +2015-12-27 Vivek Dasmohapatra + + Make erc connect asynchronously -2016-01-30 Paul Eggert -2015-12-06 Paul Eggert + * lisp/erc/erc-backend.el (erc-server-reconnect): Use it to + reconnect asynchronously. - Remove overenthusiastic eassert + * lisp/erc/erc-backend.el (erc-open-network-stream): New function (bug#5650). - * src/lisp.h (XSYMBOL): Remove eassert incorrectly added in - previous change. It breaks on MS-Windows --with-wide-int. - Problem reported by Eli Zaretskii in: - http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00275.html +2015-12-27 Deniz Dogan -2015-12-06 Paul Eggert + Clear erc user list upon disconnection - Pacify gcc -Wparentheses + * lisp/erc/erc-backend.el (erc-process-sentinel): Clear channel user + lists upon disconnection. This prevents invalid channel + user lists when reconnecting (bug#10947). - * src/xdisp.c (row_containing_pos): Reparenthesize. +2015-12-27 Lars Ingebrigtsen -2015-12-06 Paul Eggert + Don't bug out in erc after waking from sleep - Port mod-test to 32-bit Emacs --without-wide-int + * erc-backend.el (erc-server-send-ping): If the server has + closed connection, this may already have been detected and + `erc-server-last-received-time' has been set to nil (bug#13608). - * modules/mod-test/test.el (mod-test-sum-test): - Bring back the 2**29 tests, but port them to 32-bit Emacs - --without-wide-int. +2015-12-27 David Edmondson -2015-12-06 Michael Albinus + Proxy error in erc with multiple clients - Fix minor Tramp problems found on BSD + * lisp/erc/erc.el (erc-channel-receive-names): Fix errors + generated when multiple IRC clients talk to a single IRC proxy + (bug#19034). - * lisp/net/tramp-sh.el (tramp-perl-file-truename): Do not append - trailing slash. Quote apostrophes. - (tramp-sh-handle-file-truename): Do not append trailing slash in - the "ls" case. - (tramp-get-ls-command-with-w-option): New defun. - (tramp-do-file-attributes-with-ls) - (tramp-do-directory-files-and-attributes-with-stat): Use it. +2015-12-27 Dima Kogan - * test/automated/tramp-tests.el - (tramp-test31-special-characters-with-perl) - (tramp-test31-special-characters-with-ls) - (tramp-test32-utf8-with-perl, tramp-test32-utf8-with-ls): - Suppress also readlink. + Ensure that we don't have several timers in erc -2015-12-06 Eli Zaretskii + * lisp/erc/erc-backend.el (erc-server-setup-periodical-ping): Checks + for existing timers in the alist before adding new ones. If a + timer already exists, it is cancelled and + overwritten. (bug#19292). - Fix cursor display when invisible text is at line beginning +2015-12-27 Jens Lechtenboerger - * src/xdisp.c (redisplay_window): When scrolling fails to show - point, prefer using the desired matrix if possible for finding the - fallback glyph row for displaying the cursor. (Bug#22098) - (row_containing_pos): Exit the loop as soon as we hit the first - disabled glyph row. Otherwise we risk accessing garbled data and - departing to the no-no land. + * lisp/gnus/mml-sec.el: Fix warnings by adding autoloads + (bug#18718). -2015-12-06 Paul Eggert +2015-12-27 Lars Ingebrigtsen - Improve module interface when WIDE_EMACS_INT + * lisp/erc/erc-log.el (erc-log-setup-logging): Insert the previous log + at the start of the buffer, not at the end (bug#20496). - * src/emacs-module.c (plain_values): New constant. - (module_nil): Now a constant. - (Finternal_module_call, value_to_lisp_bits, lisp_to_value_bits) - (syms_of_module): Use if, not #ifdef, so that both sides are - checked at compile-time, and so that GCC doesn’t complain - about an unused var in the typical case. Also, depend on - plain_values, not on WIDE_EMACS_INT; the code shouldn’t assume - that WIDE_EMACS_INT implies !USE_LSB_TAG. - (value_to_lisp_bits, lisp_to_value_bits): New functions. - Sign-extend integers rather than zero-extending them, as small - negative integers are more likely. - (value_to_lisp, lisp_to_value): Rewrite in terms of the new *_bits - functions. - (HAVE_STRUCT_ATTRIBUTE_ALIGNED): Define to 0 if not already defined. - (mark_modules): Remove. All uses removed. - (lisp_to_value): Don’t assume Fcons returns a pointer aligned - to GCALIGNMENT. - (syms_of_module): Check that module_nil converts to Qnil. - * src/lisp.h (lisp_h_XSYMBOL, XSYMBOL): Use signed conversion, since - we prefer signed to unsigned when either will do. - (TAG_PTR): Sign-extend pointers when USE_LSB_TAG, as this is - a bit better for emacs-module.c. +2015-12-27 Lars Ingebrigtsen -2015-12-06 Paul Eggert + * lisp/net/eww.el (eww-setup-buffer): Restore left-to-right defaults. - Port mod-test to x86-64 GNU/Linux running 32-bit +2015-12-27 Lars Ingebrigtsen - * modules/mod-test/test.el (mod-test-sum-test): - Don’t attempt to match descriptions to operating systems. - It didn’t work on Fedora x86-64 running a 32-bit executable, - and it’s not worth the trouble anyway. - Port to 32-bit platforms by removing an assumption about - fixnum widths. + Don't join erc channels doubly -2015-12-06 Michael Albinus + * erc-join.el (erc-autojoin-channels): Don't join channels + more than once (if you have several nicks) (bug#20695). - Fix auto-revert-tests.el when filenotify isn't used +2015-12-27 Eli Zaretskii - * test/automated/auto-revert-tests.el (auto-revert--wait-for-revert): - Make it working also when filenotify isn't used. + Avoid leaving "ghost" of mouse pointer on MS-Windows -2016-01-30 Juri Linkov -2015-12-05 Juri Linkov + * src/w32term.c (frame_set_mouse_pixel_position): + * src/w32fns.c (Fw32_mouse_absolute_pixel_position): Momentarily + disable "mouse trails" when moving the mouse pointer. (Bug#22247) + * src/w32term.c (frame_set_mouse_pixel_position): Include + w32common.h. - * lisp/textmodes/ispell.el (ispell-highlight-spelling-error-overlay): +2015-12-27 Lars Ingebrigtsen - Let-bind isearch-regexp-function to nil. (Bug#22097) + * lisp/gnus/mml-sec.el (mml-secure-bcc-is-safe): Fix typo in last check-in. -2015-12-05 Artur Malabarba +2015-12-27 Jens Lechtenboerger - * lisp/emacs-lisp/package.el: Don't install bad signatures (bug#22089) + Identify unsafe combinations of Bcc and encryption - (package--with-response-buffer): NOERROR and ERROR-FORM only - handle connection errors. - (bad-signature): New error type. - (package--check-signature-content): Use it. - (package--check-signature): Properly distinguish connection errors - from bad-signature errors. Do the check for - `package-check-signature' `allow-unsigned' here instead of forcing - the callbacks to do it. Add a new argument, UNWIND. - (package--download-one-archive, package-install-from-archive): - Update usage of `package--check-signature'. + * lisp/gnus/gnus-util.el (gnus-subsetp): New function + * lisp/gnus/mml-sec.el (mml-secure-safe-bcc-list): New variable + * lisp/gnus/mml-sec.el (mml-secure-bcc-is-safe): New function -2015-12-05 Ulf Jasper +2015-12-27 Krzysztof Jurewicz (tiny change) - Fix Bug#22092. + Fix auth source lookups from erc with port numbers - * lisp/calendar/icalendar.el (icalendar--get-unfolded-buffer): - Clean up inconsistent line endings. (Bug#22092) - (icalendar--clean-up-line-endings): New. - * test/automated/icalendar-tests.el (icalendar-real-world): Add test - for Bug#22092. + * lisp/erc/erc.el (erc-open): `auth-source' wants strings, not port + numbers (bug#20541). -2015-12-05 Eli Zaretskii +2015-12-27 Fran Litterio - Document 'bookmark-set-no-overwrite' + Run erc-kill-channel-hook always on exit - * doc/emacs/regs.texi (Bookmarks): Document the new command - 'bookmark-set-no-overwrite' and its keybinding. + * lisp/erc/erc.el (erc-kill-buffer-function): Run erc-kill-channel-hook + when erc-kill-queries-on-quit is set (bug#21187). -2015-12-05 Eli Zaretskii +2015-12-26 Paul Eggert - Document new binding of 'mouse-buffer-menu' + Spelling fix - * doc/emacs/buffers.texi (Buffer Menus): 'mouse-buffer-menu' is - now also on C-F10. + * test/automated/url-parse-tests.el: + (url-generic-parse-url/same-document-reference): + Rename from url-generic-parse-url/same-decument-reference. -2015-12-05 Eli Zaretskii +2015-12-26 Paul Eggert - Initial documentation of dynamic modules + Reword initial *scratch* for brevity, appearance - * doc/lispref/loading.texi (Dynamic Modules): New section with - initial documentation for dynamic modules. - * doc/lispref/elisp.texi (Top): Add "Dynamic Modules" to the - detailed menu + * lisp/startup.el (initial-scratch-message): + Reword to avoid apostrophes, and to make it shorter. + See the thread starting in: + http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01241.html - * etc/NEWS: Fix typos in dynamic modules' entry. +2015-12-26 Leo Liu -2015-12-05 Artur Malabarba + Add ert-deftest to lisp-mode.el - Remove copyright statements from trivial test files + * lisp-mode.el (lisp-imenu-generic-expression, + lisp-el-font-lock-keywords-1): Add ert-deftest. -2015-12-05 Eli Zaretskii +2015-12-26 Lars Ingebrigtsen - Add "Preliminaries" section to etc/DEBUG + Mark imap changes as not needing doc changes - * etc/DEBUG: Add the "Preliminaries" section for GDB beginners. - Most of the content was suggested by Phillip Lord - . Remove the section about debugging - with the Visual Studio, as building Emacs with the Microsoft - compilers is no longer supported. Minor fixes in some other - sections. + * imap.el (imap-ssl-open): Remove -2015-12-05 Alex Dunn (tiny change) +2015-12-26 Lars Ingebrigtsen - Improve parsing of version strings + Use built-in encryption in imap.el - * lisp/subr.el (version-regexp-alist): Allow "." as priority separator - (version-to-list): More helpful error messages. - (version-to-list): ".5" is valid (update docstring). Make - "22.8X3" invalid, as the doc string says. + * lisp/net/imap.el (imap-ssl-program): Remove (bug#21134). + (imap-starttls-open): Use open-network-stream instead of starttls.el. + (imap-tls-open): Use open-network-stream instead of tls.el. - * test/automated/subr-tests.el (ert-test-version-parsing): New - tests for version string processing. +2015-12-26 Eli Zaretskii -2015-12-05 Eli Zaretskii + Don't try using /bin/sh in artist.el on MS-Windows - Fix documentation of 'undo' changes + * lisp/textmodes/artist.el (artist-figlet-get-font-list-windows): + New function. + (artist-figlet-choose-font): Use it on MS-Windows and MS-DOS. + (Bug#20167) - * doc/lispref/text.texi (Undo): Minor wording changes. Use US - English conventions for spelling and whitespace between sentences. +2015-12-26 Wolfgang Jenkner - * etc/NEWS: Fix wording and spelling of undo-related entries. - Mark them as documented. + Always define gmalloc etc. in src/gmalloc.c -2016-01-30 Glenn Morris -2015-12-04 Glenn Morris + This is a work-around to prevent the compiler from using semantic + knowledge about malloc for optimization purposes. E.g., gcc 5.2 + with -O2 replaces most of calloc's definition by a call to calloc; + see Bug#22085. + * src/gmalloc.c [!HYBRID_MALLOC] (malloc, realloc, calloc) + (aligned_alloc, free): Do not undef. Instead, define these as + functions (perhaps renamed to gmalloc etc.) in terms of gmalloc etc. - * lisp/net/net-utils.el: Small improvements. +2015-12-26 Eli Zaretskii - (net-utils--executable-find-sbin): New function. - (ifconfig-program): Check sbin directories. - Fallback to "ip". (Bug#22091) - (ifconfig-program-options): Check the actual program in use. - (arp-program): Check sbin directories. + Fix documentation of browse-url browser-related functions -2016-01-30 (tiny change) Arash Esbati (tiny change) -2015-12-04 Arash Esbati (tiny change) + * lisp/net/browse-url.el (browse-url) + (browse-url-default-browser, browse-url-default-windows-browser) + (browse-url-default-macosx-browser, browse-url-chromium) + (browse-url-kde, browse-url-text-xterm): Clarify the usage of ARGS + and NEW-WINDOW arguments in these functions. (Bug#19421) - Fix wrong-type-argument integer-or-marker-p nil error +2015-12-26 Paul Eggert - * lisp/textmodes/reftex-auc.el (reftex-what-index-tag): - Fix (wrong-type-argument integer-or-marker-p nil) error (bug#22077). + Propagate Bug#14412 fix to backtrace_eval_unrewind + + * src/eval.c (unbind_to): Redo so that the FALLTHROUGH!! comment + becomes accurate again. This shouldn’t affect behavior. + (backtrace_eval_unrewind): Apply the recent unbind_to fix here, too. + +2015-12-26 Eli Zaretskii -2015-12-04 Alan Mackenzie + Don't produce non-ASCII characters in *scratch* - Merge branch 'scratch/follow' of /home/acm/emacs/emacs.git/emacs-25 into scratch/follow + * lisp/startup.el (initial-scratch-message): Quote apostrophes to + avoid producing non-ASCII characters in the *scratch* buffer's + commentary. - Merge necessitated by a rebase operation. +2015-12-26 Eli Zaretskii -2015-12-04 Alan Mackenzie + Document changes in 'compare-windows' - lisp/isearch.el: Eliminate macro isearch-call-message, replacing with funcall. + * lisp/vc/compare-w.el (compare-windows-removed) + (compare-windows-added): Doc fix. -2015-12-04 Alan Mackenzie + * doc/emacs/files.texi (Comparing Files): Document the changes in + window selection by 'compare-windows'. - First commit to scratch/follow. Make Isearch work with Follow Mode, etc. +2015-12-26 Eli Zaretskii - doc/lispref/window.texi (Basic Windows): Add paragraph defining "Group of - Windows" and new @defun selected-window-group. - (Window Start and End): Describe new &optional parameter GROUP and - ...-group-function for window-start, window-end, set-window-start, and - pos-visible-in-window-p. - (Textual Scrolling) Describe the same for recenter. - doc/lispref/positions.texi (Screen Lines): Describe the same for - move-to-window-line. + Document 'vc-annotate-background-mode' - src/window.c (Fwindow_start, Fwindow_end, Fset_window_start) - (Fpos_visible_in_window_p, Frecenter, Fmove_to_window_line): To each, add ar - new optional parameter "group". At the beginning of each, check whether the - corresponding ...-group-function is set to a function, and if so execute this - function in place of the normal processing. - (syms_of_window): Define symbols for the six new variables below. - (window-start-group-function, window-end-group-function) - (set-window-start-group-function, recenter-group-function) - (pos-visible-in-window-p-group-function, move-to-window-line-group-function): - New permanent local buffer local variables. - src/keyboard.c (Fposn_at_point): Add extra parameter in call to - Fpos_visible_in_window_p. + * doc/emacs/maintaining.texi (Old Revisions): Document + 'vc-annotate-background-mode'. - lisp/window.el (selected-window-group-function): New permanent local buffer - local variable. - (selected-window-group): New function. +2015-12-26 Eli Zaretskii - lisp/follow.el (follow-mode): Set the ...-group-function variables at mode - enable, kill them at mode disable. Add/remove follow-after-change to/from - after-change-functions. - (follow-start-end-invalid): New variable. - (follow-redisplay): Manipulate follow-start-end-invalid. - (follow-after-change, follow-window-start, follow-window-end) - (follow-set-window-start, follow-pos-visible-in-window-p) - (follow-move-to-window-line, follow-sit-for): New functions. + Document 'vc-region-history' - lisp/isearch.el (isearch-call-message): New macro. - (isearch-update, with-isearch-suspended, isearch-del-char) - (isearch-search-and-update, isearch-ring-adjust): Invoke above new macro. - (with-isearch-suspended): Rearrange code such that isearch-call-message is - invoked before point is moved. - (isearch-message): Add comment about where point must be at function call. - (isearch-search): Remove call to isearch-message. - (isearch-lazy-highlight-window-group): New variable. - (isearch-lazy-highlight-new-loop): Unconditionally start idle timer. Move - the battery of tests to ... - (isearch-lazy-highlight-maybe-new-loop): New function, started by idle timer. - Note: (sit-for 0) is still called. - (isearch-lazy-highlight-update): Check membership of - isearch-lazy-highlight-window-group. Don't set the `window' overlay - property. - (isearch-update, isearch-done, isearch-string-out-of-window) - (isearch-back-into-window, isearch-lazy-highlight-maybe-new-loop) - (isearch-lazy-highlight-search, isearch-lazy-highlight-update) - (isearch-lazy-highlight-update): Call the six amended primitives (see - src/window.c above) with the new `group' argument set to t, to cooperate - with Follow Mode. + * doc/emacs/maintaining.texi (VC Change Log): Document + 'vc-region-history'. -2015-12-04 Stefan Monnier +2015-12-26 Eli Zaretskii - * lisp/emacs-lisp/ert.el: Prefer pcase over cl-typecase + Improve documentation of 'vc-push' - * lisp/emacs-lisp/ert.el (ert--should-error-handle-error) - (ert--explain-format-atom, ert--explain-equal-rec) - (ert--print-backtrace, ert-test-result-type-p, ert-select-tests) - (ert--insert-human-readable-selector): Prefer pcase over cl-typecase. + * doc/emacs/maintaining.texi (Pulling / Pushing): Expand and + improve the documentation of 'vc-push'. -2015-12-04 Artur Malabarba + * lisp/vc/vc.el (vc-pull, vc-push): Doc fix. - * lisp/character-fold.el: Remove special case-folding support +2015-12-26 Alain Schneble - (character-fold-to-regexp): Remove special code for - case-folding. Char-fold search still respects the - `case-fold-search' variable (i.e., f matches F). This only - removes the code that was added to ensure that f also matched - all chars that F matched. For instance, after this commit, f - no longer matches 𝔽. + Include the tests for the URL parsing fixes - This was necessary because the logic created a regexp with - 2^(length of the string) redundant paths. So, when a very - long string "almost" matched, Emacs took a very long time to - figure out that it didn't. This became particularly relevant - because isearch's lazy-highlight does a search bounded by (1- - match-end) (which, in most circumstances, is a search that - almost matches). A recipe for this can be found in bug#22090. +2015-12-26 Eli Zaretskii -2015-12-04 Stefan Monnier + Document 'url-user-agent'. - * lisp/emacs-lisp/cl-macs.el (character): Can't be negative - Fixes (bug#21701) + * lisp/url/url-http.el (url-user-agent): Move from here... + * lisp/url/url-vars.el (url-user-agent): ...to here. This is to + keep all the URL defcustoms in one place, and also have it defined + whenever the URL library is loaded. -2015-12-04 Daiki Ueno + * doc/misc/url.texi (Customization): Document 'url-user-agent'. - lisp/gnus/qp.el: Don't replace "from " at bol +2015-12-26 Eli Zaretskii - * lisp/gnus/qp.el (quoted-printable-encode-region): Bind `case-fold-search' - to nil when looking for "^From ". Problem reported by Simon Josefsson. + Document protocols supported by URL library via Tramp -2015-12-03 Phillip Lord + * doc/misc/url.texi (Tramp): New node, describes the URL schemes + supported via Tramp. + (Supported URL Types, file/ftp, rlogin/telnet/tn3270): Mention + Tramp. - Externalize some symbols in undo-auto +2015-12-26 Eli Zaretskii - * doc/lispref/text.texi: Update symbols. - * lisp/simple.el (undo-auto--amalgamate, - undo-auto--current-boundary-timer): Make symbols public. - * src/cmds.c (Fself_insert_command,Fdelete_char): Call - updated symbol. + Document changes in Shell-script mode -2015-12-03 Stefan Monnier + * lisp/progmodes/sh-script.el (sh-mode, sh-set-shell): Document + the 'sh-shell' file-local variable. + (top level): Add an auto-load form to avoid byte-compiler warning + about 'comint-send-string'. - * lisp/emacs-lisp/smie.el (smie-next-sexp): Fix BOB "token" +2015-12-26 Eli Zaretskii -2015-12-03 Michael Albinus + Fix documentation of 'ses-define-local-printer' - Some error message improvements in tramp-sh.el + * doc/misc/ses.texi (Printer functions): Fix whitespace between + sentences and punctuation. Add an index entry for + 'ses-define-local-printer'. - * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): - Suppress error messages for "mesg" and "biff" calls. - (tramp-get-remote-path): Ignore errors when expanding - `tramp-own-remote-path'. Raise a warning instead. +2015-12-26 Shakthi Kannan -2015-12-03 Eli Zaretskii + Document 'ert-summarize-tests-batch-and-exit' - Document 'nacl' value for 'system-type' + * doc/misc/ert.texi (Running Tests in Batch Mode): Document + 'ert-summarize-tests-batch-and-exit'. - * doc/lispref/os.texi (System Environment): Document the 'nacl' - value of 'system-type'. +2015-12-26 Eli Zaretskii -2015-12-03 Eli Zaretskii + Avoid assertion violation in unbind_to - Document 'window-max-chars-per-line' + * src/eval.c (unbind_to) : Avoid assertion violation + if we get here with an object that is not a symbol. (Bug#14412) - * doc/lispref/windows.texi (Window Sizes): Document - 'window-max-chars-per-line'. +2015-12-25 Andreas Schwab -2015-12-03 Artur Malabarba + Don't treat /foo/bar:mumble as ange-ftp address + * lisp/net/browse-url.el (browse-url-filename-alist): Match colons + only in the first component. (bug#5362) - Fix some file headers for the purpose of `package--builtins' +2015-12-25 Eli Zaretskii - * lisp/emacs-lisp/cl-preloaded.el - * lisp/emacs-lisp/eieio-compat.el - * lisp/net/sasl-scram-rfc.el: Add a "Package:" header + Make sure *scratch* etc. use forward slashes in its default-directory - * lisp/ielm.el: Fix summary line. + * lisp/startup.el (normal-top-level): On MS-Windows, convert + backslashes to forward slashes while decoding default-directory + of the initially-created buffers. -2015-12-03 Artur Malabarba +2015-12-25 Eli Zaretskii - * lisp/emacs-lisp/package.el (package-unpack): Load before compiling + Restore info about the build host in bug reports - Reload any previously loaded package files before compiling - the package (also reload the same files after compiling). - This ensures that we have the most recent definitions during - compilation, and avoids generating bad elc files when a macro - changes and it is used in a different file from the one it's - defined in. + * lisp/mail/emacsbug.el (report-emacs-bug): Report the system on + which Emacs was built. This is important information for + investigating bug reports reported by users who don't build their + Emacs. -2015-12-03 Artur Malabarba +2015-12-25 Eli Zaretskii - * lisp/emacs-lisp/package.el: Refactor package activation code + Fix bootstrap broken by changes related to OS X file-name encoding - (package-activate): Move code that activates dependencies into - package-activate-1. - (package--load-files-for-activation): New function. - (package-activate-1): Add code for (optionally) activating - dependencies, and move file-loading code into - `package--load-files-for-activation'. + * lisp/international/ucs-normalize.el (eval-when-compile): Make + sure char-code-property-alist includes elements that allow access + to 'decomposition' and 'canonical-combining-class' Unicode + properties, as compiling ucs-normalize.el requires that. + * lisp/loadup.el (featurep 'ns): Load ucs-normalize and ns-win + only of charprop.el was already loaded. -2015-12-03 Eli Zaretskii + * src/Makefile.in ($(lispsource)/international/ucs-normalize.elc): + New order-only dependency. - Document new font-related functionality +2015-12-25 Leo Liu - * doc/lispref/display.texi (Low-Level Font): Document - 'default-font-width', 'default-font-height', 'window-font-width', - and 'window-font-height'. + * lisp/ido.el (ido-add-virtual-buffers-to-list): + Use bookmark-get-filename. - * etc/NEWS: Move entries for 'default-font-width', - 'default-font-height', 'window-font-width', and 'window-font-height' - to their place and mark them documented. +2015-12-25 Michael Albinus -2015-12-03 Eli Zaretskii + Make tramp-test29-vc-registered more robust - Fix documentation and implementation of 'directory-name-p' + * test/automated/tramp-tests.el (tramp-test29-vc-registered): + Move `bzr' case down. Skip test when `vc-create-repo' fails. + Remove instrumentation. - * lisp/files.el (directory-name-p): Modify to recognize - backslashes on MS-Windows and MS-DOS. Adjust the doc string - accordingly. Use '=', not char-equal, for comparison, as - letter-case cannot possibly be an issue here. +2015-12-24 YAMAMOTO Mitsuharu - * doc/lispref/files.texi (Directory Names): Move the documentation - of directory-name-p here from "Relative File Names". Update the - description per the changes in implementation. + * lisp/term/x-win.el (x-gtk-stock-map): Fix typo. - * etc/NEWS: Move the entry for 'directory-name-p' to its proper - place and mark it documented. +2015-12-23 Katsumi Yamaoka -2015-12-02 Eli Zaretskii + Fix `gnus-union' so as to behave like `cl-union' - Minor copyedit in Emacs manual + * lisp/gnus/gnus-group.el (gnus-group-prepare-flat): + Make gnus-union use `equal' to compare items in lists. - * doc/emacs/search.texi (Lax Search): Make wording about character - folding by default less definitive. (Bug#22043) + * lisp/gnus/gnus-util.el (gnus-union): + Make it behave like cl-union partially. -2015-12-02 Eli Zaretskii +2015-12-23 Paul Eggert - More emacs-module.c fixes for wide ints + Fix dired.c typo with ptrdiff_t vs Lisp_Object - * src/emacs-module.c (value_to_lisp) [WIDE_EMACS_INT]: Use - unsigned data types to manipulate pointers, to avoid sign - extension coming after us with a vengeance. + * src/dired.c (file_name_completion): Don't assume Lisp_Object is + an integer type, fixing a problem introduced in the recent fix for + Bug#22169. - * modules/mod-test/test.el (mod-test-sum-test): Add tests for - Emacs with wide ints that verify integer values near the critical - value that requires us to switch to a cons cell. +2015-12-23 Eli Zaretskii -2015-12-02 Stephen Leake + Document default process sentinel more prominently - Fix bug#22069 in cl-generic.el + * doc/lispref/processes.texi (Asynchronous Processes): Mention the + defaults for process filter and sentinel. Provide cross-references. + (Process Information): Provide cross-references to where filters + and sentinels are described. + (Filter Functions): Add an index entry for "default filter". + (Sentinels): Add a few status messages not documented previously. + Resolve the "killed" confusion. Document and describe the default + sentinel. (Bug#22220) - * lisp/emacs-lisp/cl-generic.el (cl-no-method): Remove %S; this string is - not run thru `format'. +2015-12-23 Eli Zaretskii -2016-01-30 Dmitry Gutov -2015-12-01 Dmitry Gutov + Fix file-name completion on OS X - APPEND etags--xref-backend to xref-backend-functions + * src/dired.c (file_name_completion): Reject false matches due to + file-name-coding-systems that decompose characters when encoding + file names, by comparing decoded file names as well. (Bug#22169) + (syms_of_dired) : New DEFSYM. - * lisp/progmodes/xref.el (xref-backend-functions): - Use APPEND when adding the default element - (http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00061.html). + * lisp/international/ucs-normalize.el (utf-8-hfs): Give it a + non-nil 'decomposed-characters' property. -2015-12-01 Eli Zaretskii +2015-12-23 Anders Lindgren - More accurate documentation of lax whitespace matching + File-name completion of non-ASCII characters on OS X (bug#22169) - * lisp/isearch.el (isearch-forward-word, isearch-forward-symbol) - (word-search-backward, word-search-forward) - (word-search-backward-lax, word-search-forward-lax): Mention in - doc strings that toggling lax whitespace matching has no effect on - these commands. + The coding system `utf-8-nfd', locally defined in ns-win.el, + didn't provide a :pre-write-conversion method, causing file name + completion of non-ASCII characters to fail. Solved by using the + `utf-8-hfs' coding system provided by `ucs-normalize'. - * doc/emacs/search.texi (Word Search, Symbol Search): Clarify that - lax whitespace matching has no effect on these commands. + * lisp/loadup.el: Load international/ucs-normalize (when building + for ns). -2015-12-01 Eli Zaretskii + * lisp/term/ns-win.el (utf-8-nfd): Made `utf-8-nfd' as alias for + `utf-8-hfs' and removed the old implementation. Set `utf-8-hfs' + as the file name coding system. - Fix emacs-module.c for wide ints + * src/nsfns.m (ns-convert-utf8-nfd-to-nfc): Removed. - * src/emacs-module.c (lisp_to_value): Compare the produced value - with the original Lisp object, not with the one potentially - converted into a Lisp_Cons. Fixes assertion violations when - working with integers larger than fit into a 32-bit value. +2015-12-22 Tom Tromey - * modules/mod-test/test.el (mod-test-sum-test): Add tests for - large integers, to test --with-wide-int. + Fix bug #18588 by making bug-reference-bug-regexp more lenient -2015-12-01 Eli Zaretskii + * lisp/progmodes/bug-reference.el (bug-reference-bug-regexp): Accept + "bug NNNN". (Bug #18588) - Document 'directory-files-recursively' +2015-12-22 Tom Tromey - * lisp/files.el (directory-files-recursively): Doc fix. Rename - the argument MATCH to REGEXP, to be more explicit about its form. + add some cl-* aliases to lisp-mode imenu - * doc/lispref/files.texi (Contents of Directories): Improve the - documentation of 'directory-files-recursively'. Add - cross-references. + * (lisp-imenu-generic-expression): Add cl-define-compiler-macro, + cl-defgeneric, and cl-defmethod. - * etc/NEWS: Move the entry for 'directory-files-recursively' to - its place and mark it documented. +2015-12-22 Tom Tromey -2015-12-01 Eli Zaretskii + Make a variable buffer-local - Document 'inhibit-read-only' property + * lisp/generic-x.el (generic-rul-mode-setup-function): Make + font-lock-syntax-table buffer-local. (Bug #21627) - * doc/lispref/text.texi (Special Properties): Describe the new - 'inhibit-read-only' text property. Add cross-reference to where - read-only buffers are described. - * doc/lispref/buffers.texi (Read Only Buffers): Mention that - 'inhibit-read-only' property exempts text from being read-only. - Add cross-reference to "Special Properties". +2015-12-22 Eli Zaretskii - * etc/NEWS: Move the entry about 'inhibit-read-only' property to - its place and mark it documented. + Fix decoding of text in URLs retrieved by EWW -2015-12-01 Artur Malabarba + * lisp/net/eww.el (eww-render): Pass 'charset' to + 'eww-display-raw'. Use the value of 'last-coding-system-used', if + non-nil, to set 'buffer-file-coding-system' of the buffer where we + show the URL. + (eww-display-html, eww-display-raw): Decode the text correctly, + using the charset found in the headers, and defaulting to UTF-8. + If the user told us to use a specific encoding, override the + charset from the headers. (Bug#22222) - * lisp/emacs-lisp/package.el: Update header comments +2015-12-22 Alan Mackenzie -2015-12-01 Artur Malabarba + Fix a coding error in c-forward-<>-arglist-recur. Fixes bug#22156 - * lisp/character-fold.el: Add back multi-char matching + * lisp/progmodes/cc-engine.el (c-forward-<>-arglist-recur): Remove unused + variable `tmp'. + After a failed search for a matching ">", restore point before continuing. - (character-fold-to-regexp): Uncomment recently commented code - and make the algorithm "dummer" by not checking every possible - combination. This will miss some possible matches, but it - greatly reduces regexp size. +2015-12-22 Michael Albinus - * test/automated/character-fold-tests.el - (character-fold--test-fold-to-regexp): Comment out test of - functionality no longer supported. + Instrument Tramp tests -2015-12-01 Xue Fuqiao + * test/automated/tramp-tests.el (tramp-test29-vc-registered) + (tramp--test-utf8): Instrument tests. - * doc/emacs/ack.texi (Acknowledgments): Update. +2015-12-22 Martin Rudalics -2015-12-01 Michael Albinus + Fix `display-buffer' call in `display-message-or-buffer' (Bug#22221) - Check `file-remote-p' over absolute files names in files.el + * lisp/simple.el (display-message-or-buffer): Call + `display-buffer' with ACTION instead of NOT-THIS-WINDOW + (Bug#22221). - * lisp/files.el (directory-files-recursively) - (get-free-disk-space): Check `file-remote-p' over absolute files names. +2015-12-21 Juri Linkov -2015-12-01 Andreas Schwab + * lisp/saveplace.el (toggle-save-place, save-place-to-alist) - * src/lread.c (syms_of_lread): Doc fix. + (save-places-to-alist, save-place-dired-hook): + Check for dired-subdir-alist. (Bug#19851) -2016-01-30 Dmitry Gutov -2015-11-30 Dmitry Gutov +2015-12-21 Paul Eggert - Don't mistake certain JS method calls for keywords + Add FIXME comment re stack overflow and modules - * lisp/progmodes/js.el (js--ctrl-statement-indentation): - Braceless keyword can't come after a period (bug#22063). +2015-12-20 Paul Eggert -2016-01-30 David Reitter + Revert some recent emacs-module commentary - Read frame_title_format from buffer-local variable for NS port + Most of the recently-added commentary was incorrect, due to the + possibility of stack overflow. - * src/nsfns.m (x_implicitly_set_name): Read frame-title-format and - icon-title-format variables from buffer in appropriate window. - (Bug#22048) +2015-12-20 Paul Eggert -2016-01-30 Juri Linkov -2015-11-30 David Reitter + Spelling fix: prefer "cooperate" to "co-operate" - Read frame_title_format from buffer-local variable for NS port +2015-12-20 Paul Eggert - * nsfns.m (x_implicitly_set_name): Read frame-title-format and - icon-title-format variables from buffer in appropriate window. - (Bug#22048) + Port undo fixes to -fno-common -2015-11-30 Juri Linkov + Port recent fix for Bug#21968 to platforms like 'gcc -fno-common'. + * src/keyboard.c, src/keyboard.h (point_before_last_command_or_undo) + (buffer_before_last_command_or_undo): + Declare in keyboard.h, and define in keyboard.c, + instead of assuming the traditional Unix relaxed ref-def linkage. - * lisp/replace.el (occur-engine): Count matches in empty lines. +2015-12-20 Philipp Stephani - (Bug#22062) + Improve commentary for emacs-module.c -2015-11-30 Aurélien Aptel + * src/lisp.h: Document emacs-module.c assumptions about EQ and NILP. + * src/emacs-module.c (module_non_local_exit_get): Document that we + cannot use the current implementation. + (module_is_not_nil, module_eq): Document assumptions about EQ and + NILP. - * src/emacs-module.h: Fix finalizer typedef for C++11 +2015-12-20 Michael Albinus - C++11 standard doesn't allow exception-specification in typedef. - The workaround is to declare a dummy function prototype and use - decltype on it. + Suppress test on Mac OS X -2015-11-30 Eli Zaretskii + * test/automated/tramp-tests.el (tramp--test-darwin-p): New defun. + (tramp--test-utf8): Use it. - Fix last change +2015-12-20 Alan Mackenzie - * src/emacs-module.c (lisp_to_value, value_to_lisp) - [WIDE_EMACS_INT]: Avoid compiler warnings. + Merge branch 'scratch/follow' into emacs-25 -2015-11-30 Stefan Monnier + This allows Isearch, etc., to work well when Follow Mode is active. - Rely on conservative stack scanning to find "emacs_value"s +2015-12-19 Michael Albinus - * src/emacs-module.c (struct emacs_value_tag) - (struct emacs_value_frame, struct emacs_value_storage): Remove. - (value_frame_size): Remove constant. - (struct emacs_env_private): Use Lisp_Object for non_local_exit info. - (lisp_to_value): Remove first arg. - (module_nil): New constant. - Use it instead of NULL when returning an emacs_value. - (module_make_function): Adjust to new calling convention of - Qinternal_module_call. - (DEFUN): Receive args in an array rather than a list. - Use SAFE_ALLOCA rather than xnmalloc. Skip the lisp_to_value loop when - we don't have WIDE_EMACS_INT. Adjust to new type of non_local_exit info. - (module_non_local_exit_signal_1, module_non_local_exit_throw_1): - Adjust to new type of non_local_exit info. - (ltv_mark) [WIDE_EMACS_INT]: New constant. - (value_to_lisp, lisp_to_value): Rewrite. - (initialize_frame, initialize_storage, finalize_storage): Remove functions. - (allocate_emacs_value): Remove function. - (mark_modules): Gut it. - (initialize_environment): Don't initialize storage any more. - Keep the actual env object on Vmodule_environments. - (finalize_environment): Don't finalize storage any more. - (syms_of_module): Initialize ltv_mark and module_nil. + * lisp/net/tramp-sh.el (tramp-get-ls-command-with-w-option): + Improve check. - * src/emacs-module.h (emacs_value): Make it more clear that this type - is really opaque, including the fact that NULL may not be valid. +2015-12-19 Eli Zaretskii - * modules/mod-test/mod-test.c (Fmod_test_signal, Fmod_test_throw): - Don't assume that NULL is a valid emacs_value. + Fix last commit -2015-11-30 Eli Zaretskii + * doc/emacs/rmail.texi (Rmail Deletion): Document new behavior of 'u' + with numeric argument. - Yet another doc improvement for search commands +2015-12-19 Eli Zaretskii - * doc/emacs/search.texi (Word Search, Symbol Search) - (Regexp Search): Document commands that don't support lax - whitespace matching or character folding. - (Nonincremental Search): Mention the search commands that can be - invoked from the menu bar. + Document new features of Rmail - * lisp/isearch.el (isearch-define-mode-toggle-word) - (isearch-define-mode-toggle-symbol) - (isearch-define-mode-toggle-character-fold): Note in the doc - string that turning these on exits the regexp mode. - (isearch-forward-regexp, isearch-forward-word) - (isearch-forward-symbol, isearch-backward-regexp) - (word-search-backward, word-search-forward) - (word-search-backward-lax, word-search-forward-lax): State in the - doc string which commands don't support character folding and/or - lax-whitespace matching. + * doc/emacs/rmail.texi (Rmail Summary Edit, Rmail Deletion): + Document new behavior of 'd' and 'C-d' with numeric argument. + (Rmail Display): Document the rendering of HTML MIME parts. -2015-11-30 Martin Rudalics +2015-12-19 Eli Zaretskii - Run `window-size-change-functions' also when reading from minibuffer + Improve documentation of new cl-lib functions - * src/xdisp.c (redisplay_internal): Run `window-size-change-functions' - also when reading from minibuffer. + * doc/misc/cl.texi (Predicates on Numbers, Numerical Functions): + Fix wording. -2015-11-30 Ulf Jasper +2015-12-19 Eli Zaretskii - Fix scrambling of html-rendered item buffers + Document the new feature of 'minibuffer-with-setup-hook' - * lisp/net/newst-treeview.el (newsticker--treeview-render-text): Fix - scrambling of contents by wrapping call to html-renderer in - save-selected-window. + * lisp/files.el (minibuffer-with-setup-hook): Clarify how FUN is + added to `minibuffer-setup-hook'. -2015-11-30 Paul Eggert +2015-12-19 Eli Zaretskii - Fix font typo in previous doc fix. + Document new features of Font Lock -2015-11-30 Paul Eggert + * doc/lispref/modes.texi (Other Font Lock Variables): Document + 'font-lock-flush-function' and 'font-lock-ensure-function'. + (Font Lock Basics): Document the basic fontification functions + referenced in "Other Font Lock Variables". - A bit more security doc, esp. file local vars + * lisp/font-lock.el (font-lock-flush, font-lock-ensure): Doc fix. - * doc/emacs/emacs.texi (Top): - * doc/emacs/misc.texi (Miscellaneous Commands): - Refer to new Host Security section. - (Host Security): New section. - * doc/lispref/os.texi (Security Considerations): - Mention file local variables. +2015-12-19 Eli Zaretskii -2015-11-30 Artur Malabarba + Document new features of Rectangle mode - * lisp/character-fold.el: Comment out branching code + * doc/emacs/killing.texi (Rectangles): Document "C-x C-x" in + rectangle-mark-mode. - (character-fold-to-regexp): Comment out code that uses multi-char - table. The branching caused by this induces absurdly long regexps, - up to 10k chars for as little as 25 input characters. +2015-12-19 Eli Zaretskii -2015-11-30 Paul Eggert + Manual followup to last change - Spelling and grammar fixes + * doc/lispref/display.texi (Displaying Messages): Sync with the + doc string. (Bug#22210) -2016-01-30 Dmitry Gutov -2015-11-29 Dmitry Gutov +2015-12-19 Eli Zaretskii - Make lisp-completion-at-point a wrapper instead of an alias + Clarify doc string of 'display-message-or-buffer' - * lisp/progmodes/elisp-mode.el (lisp-completion-at-point): - Turn into an obsolete wrapper around elisp-completion-at-point - (bug#20455). + * lisp/simple.el (display-message-or-buffer): Doc fix. Suggested + by Sebastian Wiesner . (Bug#22210) -2015-11-29 Artur Malabarba +2015-12-19 Eli Zaretskii - * lisp/isearch.el (isearch-search-fun-default): Nicer error + * doc/emacs/emacs.texi (Top): Update top-level menus. - message when the search fails. + * doc/lispref/elisp.texi (Top): Update top-level menus. -2015-11-29 Dmitry Gutov +2015-12-19 Eli Zaretskii - Update menu-bar-goto-uses-etags-p for the current xref API + Document how to avoid file-local variables that aren't - * lisp/menu-bar.el (menu-bar-goto-uses-etags-p): Consult - xref-backend-functions, instead of now-nonexistent - xref-find-function. + * doc/emacs/custom.texi (Specifying File Variables): Describe how + to prevent Emacs from interpreting unrelated text as file-local + variables. (Bug#22166) -2015-11-29 Artur Malabarba +2015-12-19 Dave Thomas (tiny change) - * lisp/isearch.el (isearch-define-mode-toggle): Advertise binding + Fix a typo in eterm-color's termcap entry -2015-11-29 Artur Malabarba + * lisp/term.el (term-termcap-format): Fix a typo in the "ue=" + entry. (Bug#22184) - * lisp/menu-bar.el: Use folding in searches +2015-12-19 Eli Zaretskii - (nonincremental-search-forward): Use `isearch-search-fun-default' - to determine the search function. - (nonincremental-search-backward) - (nonincremental-repeat-search-forward) - (nonincremental-repeat-search-backward): Use it. + Allow 'browse-url-emacs' visit non-existent URLs -2015-11-29 Artur Malabarba + * lisp/url/url-handlers.el (url-insert-file-contents): Don't + signal an error if VISIT is non-nil, to more faithfully emulate + the behavior of 'insert-file-contents'. (Bug#22160) - * lisp/menu-bar.el (menu-bar-goto-uses-etags-p): Fix a warning +2015-12-18 Paul Eggert -2015-11-29 Artur Malabarba + Remove SunOS 4.x cruft - * lisp/character-fold.el (character-fold-to-regexp): Be careful + Support for SunOS 4.x was removed in Emacs 23 but some cruft was left behind. + * lib-src/pop.c [sun]: Remove no-longer-needed include. + * lwlib/xlwmenu.c (SUNSO41): Remove. - not to return huge regexps. +2015-12-18 Paul Eggert -2015-11-29 Eli Zaretskii + Merge from gnulib - Improve documentation of string-collate-* functions + This mostly commentary fixes. + * doc/misc/texinfo.tex, lib/intprops.h: Copy from gnulib. + * lib/gnulib.mk: Regenerate with new gnulib-tool. - * doc/lispref/strings.texi (Text Comparison): Improve wording and - indexing of 'string-collate-equalp' and 'string-collate-lessp'. +2015-12-18 Michael Albinus - * etc/NEWS: Move the entry of 'string-collate-equalp' and - 'string-collate-lessp' to "Lisp Changes" section and mark it as - documented. + Minor fixes in Tramp -2015-11-29 Eli Zaretskii + * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls): + Reorder ls arguments. - Document truncate-string-ellipsis + * lisp/net/tramp.el (tramp-dissect-file-name): Fix docstring. - * doc/lispref/display.texi (Size of Displayed Text): Document - 'truncate-string-ellipsis'. +2015-12-18 Michael Albinus - * lisp/international/mule-util.el (truncate-string-ellipsis): Doc fix. - (truncate-string-to-width): Mention in the doc string that the - default for ELLIPSIS comes from 'truncate-string-ellipsis'. + Make tramp a built-in package - * etc/NEWS: Move the 'truncate-string-ellipsis' entry to the "Lisp - Changes" section. + * lisp/finder.el (finder-compile-keywords): Update + `package--builtins' also when Version: keyword is available. -2015-11-29 Eli Zaretskii + * lisp/net/trampver.el: Add Version: keyword. + (tramp-version): Change it to "2.2.13.25.1", in order to be + compatible with `version-to-list'. - Fix confusion wrt character folding in the Emacs manual +2015-12-18 Lele Gaifax - * doc/emacs/search.texi (Nonincremental Search, Regexp Search): - Document that invoking search-forward/backward and - re-search-forward/backward supports only case folding, but not the - rest of the lax-search features. Reported by Mike Kupfer - . + * etc/tutorials/TUTORIAL.it: Update and fix typos. (Bug#22187) -2015-11-29 Ken Brown +2015-12-18 Alan Mackenzie - Update mod-test-sum-test + Rename `recenter-group' to `recenter-window-group' - * modules/mod-test/test.el (mod-test-sum-test): Update to - accommodate the lack of dladdr on Cygwin. + * doc/lispref/windows.texi (Textual Scrolling) + * lisp/window.el (top level, recenter-group) + * lisp/follow.el (follow-mode) + * lisp/isearch.el (isearch-back-into-window): Rename `recenter-group' to + `recenter-window-group' and `recenter-group-function' to + `recenter-window-group-function'. -2015-11-29 Alan Mackenzie +2015-12-18 Eli Zaretskii - Byte compiler: Catch missing argument to `funcall'. Fixes bug#22051. + Fix vertical-motion in tabulated-list mode - * lisp/emacs-lisp/bytecomp.el (byte-compile-funcall): When there's no argument - to `funcall', (i) Output an error message; (ii) Generate code to signal a - `wrong-number-of-arguments' error. + * src/indent.c (Fvertical_motion): When moving from line beginning + to point under line truncation, assume overshoot by one line only + if point actually lies beyond the window's right margin. + (Bug#22194) -2015-11-29 Martin Rudalics +2015-12-18 Martin Rudalics - * lisp/window.el (split-window): Don't sanitize sizes when SIZE is non-nil. + Don't have help functions call x-display-pixel-width/-height on ttys -2015-11-28 Artur Malabarba + * lisp/help.el (temp-buffer-max-height, temp-buffer-max-width): + Don't call x-display-pixel-width/-height on ttys. - * lisp/character-fold.el (character-fold-to-regexp) +2015-12-17 Dmitry Gutov - Warn about using long strings. + Use 'hg id' in vc-hg-previous-revision - * test/automated/character-fold-tests.el - (character-fold--test-lax-whitespace) - (character-fold--test-consistency): Reduce string size for tests. + * lisp/vc/vc-hg.el (vc-hg-previous-revision): + Use 'hg id' to retrieve it (bug#22032). -2015-11-28 Eli Zaretskii +2015-12-17 Alan Mackenzie - Document renaming of x-select-enable-* variables + * lisp/follow.el (follow-sit-for): Remove (it's redundant). - * doc/emacs/killing.texi (Clipboard): Rename - x-select-enable-clipboard to select-enable-clipboard and - x-select-enable-primary to select-enable-primary. Update index - entries. +2015-12-17 Eli Zaretskii - * etc/NEWS: Mark entry as documented. + Fix a typo in the Emacs manual -2015-11-28 Eli Zaretskii + * doc/emacs/trouble.texi (Sending Patches): Fix a typo. Reported + by Lele Gaifax . (Bug#22193) - Document the shorthand hints displayed by M-x +2015-12-17 Eli Zaretskii - * doc/emacs/m-x.texi (M-x): Document the numeric meaning of - suggest-key-bindings. Document the shorthand hints for commands - that have no key bindings. Document that M-x completion ignores - obsolete commands. + Fix parsing netrc entries with ports - * etc/NEWS: Move the M-x entry to "Editing Changes" and mark it as - documented. + * lisp/gnus/auth-source.el (auth-source-ensure-strings): Don't + make a list out of 't'. (Bug#22188) -2015-11-28 Eli Zaretskii + * test/automated/auth-source-tests.el + (auth-source-test-netrc-parse-entry): New test. - Update docs of character folding +2015-12-17 Paul Eggert - * doc/emacs/search.texi (Lax Search): Update the description of - character folding for the latest changes. + Fix typo in Doug Lea malloc configure log -2015-11-28 Artur Malabarba + * configure.ac (emacs_cv_var_doug_lea_malloc): + Fix typo that confused the log output of 'configure'. - * lisp/character-fold.el: Also play nice with case-folding +2015-12-16 Nicolas Petton - (character-fold-to-regexp): Take `case-fold-search' into account. + * etc/NEWS: Mention the new pcase patterns `seq' and `map'. -2015-11-28 Artur Malabarba +2015-12-16 Alan Mackenzie - * lisp/character-fold.el: Add support for multi-char matches + * etc/NEWS: Move entry on pcase to correct section - (character-fold-table): Now has an extra-slot. This is a second - char-table that holds multi-character matches. See docstring for - details. - (character-fold-to-regexp): Can build branching regexps when a - character's entry the extra slot of `character-fold-table' matches the - characters that succeed it. + (Accidentally omitted from previous commit) -2015-11-28 Artur Malabarba +2015-12-16 Alan Mackenzie - * lisp/character-fold.el: Code simplifications + Add documentation for changes to Show Paren mode. - (character-fold-table): Reduce the scope of a variable. - (character-fold-to-regexp): Change logic to work directly on the - input string. It's a little easier to understand, probably - faster, and sets us up for implementing multi-char matches. + * lisp/paren.el (show-paren-highlight-openparen): Enhance doc string. - * test/automated/character-fold-tests.el - (character-fold--test-fold-to-regexp): New test. + * doc/emacs/programs.texi (Matching): Add descriptions of some pertinent user + options, including the new show-paren-when-point-inside-paren and + show-paren-when-point-in-periphery. + + * etc/NEWS (.. Specialized Modes ...): Add an entry for Show Paren mode. + Move an entry on pcase to the Lisp Changes section. + +2015-12-16 Eli Zaretskii + + Document Eldoc changes -2015-11-28 Eli Zaretskii + * doc/emacs/programs.texi (Lisp Doc): Document Global Eldoc mode. - Document changes in "C-h l" +2015-12-16 Eli Zaretskii - * doc/emacs/help.texi (Misc Help): Document the changes in "C-h l". + Fix invocation of Python and Guile interpreters from gdb-mi - * etc/NEWS: mark "C-h l" changes as documented. + * lisp/progmodes/gdb-mi.el (gdb-control-commands-regexp): Add + commands for interactive Python and Guile interpreters. + (gdb-send): Recognize various ways of exiting from Python and + Guile interpreters and returning to GDB. For details, see + http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00693.html + and http://stackoverflow.com/questions/31514741. -2015-11-28 Eli Zaretskii +2015-12-16 Paul Eggert - Finalize documentation of 'custom-prompt-customize-unsaved-options' + Remove attempt to use C11 threads - * doc/emacs/custom.texi (Saving Customizations): Index the new - function 'custom-prompt-customize-unsaved-options'. + C11 threads are not needed for Emacs now, and their use is causing + hassles on FreeBSD 10.x. Problem reported by Ashish SHUKLA in: + http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00648.html + * configure.ac: Do not check for C11 threads. Remove unnecessary + fiddling with CPPFLAGS when configuring pthreads. + * src/emacs-module.c (main_thread, check_main_thread) + (module_init): Do not worry about C11 threads. - * etc/NEWS: Mention when 'custom-prompt-customize-unsaved-options' - is useful. +2015-12-15 Michael Albinus -2015-11-28 Eli Zaretskii + Set utf8 encoding with stty in Tramp - Document 'comment-line' + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Move up uname check. Handle Mac OS X eol encoding. Set utf8 + encoding with stty. - * doc/emacs/programs.texi (Comment Commands): Document - 'comment-line'. +2015-12-15 Alan Mackenzie - * etc/NEWS: Move the entry for 'comment-line' into "Editing Changes". + Tidy up documentation associated with window groups. -2015-11-28 Eli Zaretskii + * doc/lispref/windows.texi (Basic Windows): Add an @anchor for "Window + Groups". Correct example function to `window-group-start'. + (Window Start and End, Textual scrolling): Point to the new anchor. State + that (most of) the args in window group functions have the same meaning as for + the corresponding window primitives. - Document new checkdoc features + * doc/lispref/positions.texi (Screen Lines). Same as above. - * doc/lispref/tips.texi (Tips, Library Headers): Document the - keyword-checking features of checkdoc and the commands - 'checkdoc-file' and 'checkdoc-current-buffer'. +2015-12-15 Michael Albinus - * etc/NEWS: Move the checkdoc-related entries to their own - section. + Complete last commit -2015-11-28 Philipp Stephani + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Move uname check up. Handle Mac OS X eol encoding. - Simplify the prologue of emacs-module.c functions +2015-12-15 Michael Albinus - * src/emacs-module.c (MODULE_FUNCTION_BEGIN): New macro. - (module_make_global_ref) - (module_free_global_ref, module_make_function, module_funcall) - (module_intern, module_type_of, module_extract_integer) - (module_make_integer, module_extract_float, module_make_float) - (module_copy_string_contents, module_make_string) - (module_make_user_ptr, module_get_user_ptr, module_set_user_ptr) - (module_get_user_finalizer, module_set_user_finalizer) - (module_vec_set, module_vec_get, module_vec_size): Use new helper - macro MODULE_FUNCTION_BEGIN. + Handle Mac OS X eol encoding in Tramp -2015-11-28 Eli Zaretskii + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Handle Mac OS X eol encoding. - Don't reject module calls with no arguments +2015-12-15 YAMAMOTO Mitsuharu - * src/emacs-module.c (Finternal_module_call): Allow ARGLIST be nil. + Fix variable name typo in compute_tip_xy -2015-11-28 Philipp Stephani + * src/w32fns.c (compute_tip_xy): + * src/xfns.c (compute_tip_xy): Modify *root_x instead of *root_y + when `right' is integer. - Make module-call be visible from Lisp +2015-12-14 foudfou (tiny change) - * src/emacs-module.c (module_make_function): Use internal--module-call. - (Finternal_module_call): Renamed from Fmodule_call. Add safety - checks. - (syms_of_module): DEFSYM save-value-p and save-pointer-p. Do - defsubr internal--module-call. + * lisp/ibuffer.el: Add ability to (un-)mark or delete buffers in the region. -2015-11-28 Eli Zaretskii +2015-12-14 Tassilo Horn - Add etags tests for the recent Lua-related bugfix + Revert "Fix rx matcher overflow without limiting" - * test/etags/lua-src/test.lua: New file, tests the issues raised - by bug#21934. - * test/etags/Makefile (LUASRC): Add test.lua. - * test/etags/ETAGS.good_1: - * test/etags/ETAGS.good_2: - * test/etags/ETAGS.good_3: - * test/etags/ETAGS.good_4: - * test/etags/ETAGS.good_5: - * test/etags/ETAGS.good_6: - * test/etags/CTAGS.good: Adapt to the new Lua test. Also, an old - regression fix, resolved around 25 May 2015, required changes to - the "good" ETAGS files. + This reverts commit fe27e037663d36be3e5741c2ce86ab4ee8017db1. -2015-11-28 Eli Zaretskii +2015-12-14 Alan Mackenzie - Fix Lua tags when a function name includes '.' or ':' + Ispell: Bind isearch-regexp-function to nil around call to isearch..-new-loop - * lib-src/etags.c (Lua_functions): Add a tag for the last element - of a function name after a dot or a colon. (Bug#21934) + * lisp/textmodes/ispell.el (ispell-highlight-spelling-error-overlay): bind + isearch-regexp-function to nil around call to isearch-lazy-highligh-new-loop. -2015-11-28 Eli Zaretskii +2015-12-14 Tassilo Horn - Improve documentation of search and replace commands + Fix rx matcher overflow without limiting - * doc/emacs/search.texi (Replacement and Lax Matches): Document - which commands are affected by 'replace-character-fold'. - (Lax Search): Add a cross reference to "Replacement and Lax - Matches". Improve wording. Fix lost extra whitespace. - (Search Customizations): Improve wording. (Bug#22036) - See also comments in - http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02376.html. + * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Improve last + change to the regexp without imposing a limit on the length of the + options. - * lisp/replace.el (query-replace, query-replace-regexp) - (query-replace-regexp-eval, replace-string, replace-regexp): - Mention 'replace-character-fold' in the doc strings. +2015-12-14 Alan Mackenzie -2015-11-28 Paul Eggert + Enhance ispell-skip-region-alist by generating part of it at runtime. - Fix minor problems found by static checking + * lisp/textmodes/ispell.el (ispell--\\w-filter, ispell--make-\\w-expression) + (ispell--make-filename-or-URL-re): New functions which generate a regexp. + (ispell-skip-region-alist): Remove the bit that matches a filename/URL, etc. + (ispell-begin-skip-region-regexp, ispell-skip-region-list, ispell-message): + Include the result of ispell--make-filename-or-URL-re in regexps. - * src/undo.c (prepare_record): Add proper prototype for C. +2015-12-14 Glenn Morris -2015-11-27 Stefan Monnier + * build-aux/gitlog-to-emacslog: Ignore more pointless merge commits. - * src/emacs-module.c (struct env_storage): Delete +2015-12-14 Alan Mackenzie - (struct emacs_runtime_private): Keep an emacs_env instead. - (Fmodule_load, Fmodule_call): Declare emacs_env_private separately. - (initialize_environment): Split the arg in two. Adjust all callers. - Only store the private part in Vmodule_environments. - (finalize_environment): Change the arg to only be the private env. - Adjust all callers. + Replace GROUP argument in six window primitives by new functions. -2015-11-27 Eli Zaretskii + * doc/lispref/windows.texi (Window Start and End, Textual Scrolling) + * doc/lispref/positions.texi (Screen Lines): Remove optional GROUP argument + from description of six window functions. Add in description of new functions + window-group-start, window-group-end, set-window-group-start, + pos-visible-in-window-group-p, recenter-group and move-to-window-group-line, + together with the six variables indirecting to the pertinent group + functions. - Improve documentation of 'replace-character-fold' + * src/window.c + * src/keyboard.c: Revert the commit from 2015-11-11 12:02:48, in so far as it + applies to these two files, which added the GROUP argument to six window + primitives. - * lisp/replace.el (replace-character-fold): Clarify which commands - are affected by this variable. + * lisp/follow.el (follow-mode): Use updated variable names for the indirected + functions. -2016-01-30 Mark Oteiza + * lisp/isearch.el (isearch-update, isearch-done, isearch-string-out-of-window) + (isearch-back-into-window, isearch-lazy-highlight-new-loop) + (isearch-lazy-highlight-search, isearch-lazy-highlight-update): Replace calls + to window primitives (e.g. window-start) with a GROUP argument by calls to + new functions (e.g. window-group-start). - Backport: Add interactive seek command. + * lisp/ispell.el (ispell-command-loop): Replace call to + pos-visible-in-window-p with pos-visible-in-window-group-p. - * lisp/mpc.el (mpc-cmd-seekcur): New function. - (mpc-seek-current): New command. - (mpc-mode-menu): Add entry for mpc-seek-current - (mpc-mode-map): Bind mpc-seek-current to "g" + * lisp/window.el (window-group-start, window-group-end) + (set-window-group-start, recenter-group, pos-visible-in-window-group-p) + (selected-window-group, move-to-window-group-line): New functions. + (window-group-start-function, window-group-end-function) + (set-window-group-start-function, recenter-group-function) + (pos-visible-in-window-group-p-function, selected-window-group-function) + (move-to-window-group-line-function): New variables. -2015-11-27 Dmitry Gutov +2015-12-14 Vitorio Miguel (tiny change) - Autoload etags when using its xref backend + * etc/tutorials/TUTORIAL.pt_BR: Fix a typo. (Bug#22165) - * lisp/progmodes/xref.el (xref--etags-backend): - Rename to etags--xref-backend. Move to etags.el. Autoload. - (Bug#22026) +2015-12-13 Eli Zaretskii -2015-11-27 Artur Malabarba + Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25 - * lisp/character-fold.el: Allow complex chars to match their decomposition +2015-12-13 Tassilo Horn - (character-fold-table): When a character's decomposition does not - involve a formatting tag (i.e., if it has an "exact" description via - other characters), then this character is allowed to match the - decomposition. + Improve regex to not trigger stack overflow -2015-11-27 Artur Malabarba + * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Improve regex in + order not to trigger a stack overflow in regex matcher with unbalanced + brackets (bug#22146). - * lisp/character-fold.el: More descriptive variable names +2015-12-13 Eli Zaretskii - (character-fold-table): Rename a lot of the lexical variables to - make the code easier to read. + Fix visiting files with raw-text -2015-11-27 Artur Malabarba + * src/fileio.c (Finsert_file_contents): Fix setting buffer unibyte + when some stuff was actually read. (Bug#22162) - * lisp/isearch.el: Ensure we still support `isearch-new-word' +2015-12-13 Tassilo Horn - (isearch-new-regexp-function): Define variable. - (isearch-new-word): Define as an obsolete alias. (Bug#22018) + Fix regex matching keyval labels -2015-11-27 Eli Zaretskii + * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Fix regexp + matching keyval labels. - Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25 +2015-12-13 Michael Albinus -2015-11-27 Lee Bochicchio + * lisp/ido.el (ido-file-name-all-completions-1): Do not raise an error - * test/lisp/abbrev-tests.el: Define more tests + ... in case of Tramp. (Bug#20821) - (abbrev-table-name-test, kill-all-abbrevs-test) - (clear-abbrev-table-test): New tests. +2015-12-12 Paul Eggert -2015-11-27 Eli Zaretskii + Fix performance regression with gcc -O0 - Add module tests for wrong-type-argument + This fixes the smaller performance hit that I noted in: + https://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00357.html + * src/alloc.c (macro_XPNTR_OR_SYMBOL_OFFSET, macro_XPNTR): + * src/puresize.h (puresize_h_PURE_P) + (puresize_h_CHECK_IMPURE): + New macros, with the old contents of the functions. + * src/alloc.c (XPNTR_OR_SYMBOL_OFFSET, XPNTR): + * src/puresize.h (PURE_P, CHECK_IMPURE): + Use the new macros. Also macros, if DEFINE_KEY_OPS_AS_MACROS. + * src/conf_post.h (ATTRIBUTE_UNUSED): + * src/lisp.h (DEFINE_KEY_OPS_AS_MACROS): New macros. - * modules/mod-test/test.el (mod-test-sum-test): Add tests for - wrong-type-argument. +2015-12-12 Artur Malabarba -2015-11-27 Eli Zaretskii + * lisp/emacs-lisp/package.el (package-unpack): Security check - Improve handling of signals and 'throw' in modules + Check that we received the package we were offered. - * src/emacs-module.c: Add commentary explaining how to write - functions in this file. - (module_make_global_ref, module_free_global_ref) - (module_non_local_exit_signal, module_non_local_exit_throw) - (module_make_function, module_funcall, module_intern) - (module_type_of, module_is_not_nil, module_eq) - (module_extract_integer, module_make_integer) - (module_extract_float, module_make_float) - (module_copy_string_contents, module_make_string) - (module_make_user_ptr, module_get_user_ptr, module_set_user_ptr) - (module_get_user_finalizer, module_set_user_finalizer) - (module_vec_set, module_vec_get, module_vec_size) - (module_non_local_exit_signal_1, module_non_local_exit_throw_1): - Do nothing and return with failure indication immediately, if some - previous module call signaled an error or wants to throw. See - http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02133.html - for the relevant discussions. +2015-12-12 Artur Malabarba -2015-11-27 Eli Zaretskii + * lisp/emacs-lisp/package.el (package--compile): Don't activate - Add ':version' tag to 'checkdoc-package-keywords-flag' + `package-unpack' takes care of all activations now (other than + `package-initialize). `package--compile' now only compiles. - * lisp/emacs-lisp/checkdoc.el (checkdoc-package-keywords-flag): - Add a ':version' tag. +2015-12-12 Eli Zaretskii -2015-11-27 Eli Zaretskii + Document the new bindings of and in the minibuffer - Improve documentation of 'eval-buffer' and 'eval-region' + * doc/emacs/mini.texi (Minibuffer History): Describe the new + bindings of and in the minibuffer. - * src/lread.c (Feval_buffer, Feval_region): Doc fixes. (Bug#22023) +2015-12-12 Eli Zaretskii - * doc/lispref/eval.texi (Eval): Mention narrowing to clarify - "accessible portion of buffer". + Document new features of Ido -2015-11-27 Eli Zaretskii + * doc/misc/ido.texi (Misc): Document 'C-S-b'. - Unbreak the Cygwin w32 build +2015-12-12 Martin Rudalics - * src/emacs.c (main): Call w32_init_main_thread in the Cygwin w32 - build as well. Reported by Andy Moreton . + Fix frame height calculations with added menu bar on Windows (Bug#22105) -2015-11-27 Eli Zaretskii + * doc/lispref/frames.texi (Parameter Access): Mention pitfalls + when simultaneously specifying multiple parameters for + `modify-frame-parameters' that all may change the frame's size. + * src/w32fns.c (x_set_menu_bar_lines): Don't set + windows_or_buffers_changed here. + (my_create_tip_window, Fx_show_tip): Call AdjustWindowRect + with third argument false. + * src/w32menu.c (set_frame_menubar): Set + windows_or_buffers_changed here. + * src/w32term.c (x_set_window_size): Determine third argument of + AdjustWindowRect from whether the frame has a menu bar and not + from whether it wants one. - Improve commentary in character-fold.el +2015-12-12 Eli Zaretskii - * lisp/character-fold.el (character-fold-to-regexp): Move detailed - description from commit log message to comments. (Bug#22019) + Document the change in interactive shell mode -2015-11-26 Alan Mackenzie + * doc/emacs/misc.texi (Interactive Shell): Document that the + '*shell*' buffer by default displays in a new window. - Byte Compiler: generate code to adjust stack count after call to `signal'. +2015-12-12 Eli Zaretskii - Corrects change from earlier today. + Document new features of package.el - * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): supply the current value of - `byte-compile--for-effect' as argument to `byte-compile-form'. + * doc/emacs/package.texi (Package Menu): Document the 'external' + status and the new menu commands. + (Package Installation): Document archive priorities. -2015-11-26 Eli Zaretskii + * lisp/emacs-lisp/package.el (package-archive-priorities): Doc fix. + (package-menu-hide-low-priority): Doc fix. - Improve commentary of prepare_to_modify_buffer_1 +2015-12-12 Eli Zaretskii - * src/insdel.c (prepare_to_modify_buffer_1): Mention in commentary - that this function runs Lisp. Suggested by Richard Stallman - . + Update and document new features of xterm support -2015-11-26 Phillip Lord + * doc/emacs/frames.texi (Text-Only Mouse): Document that + track-mouse is supported by newer xterm versions. - Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 +2015-12-12 Eli Zaretskii -2015-11-26 Phillip Lord + Document new features of Prettify Mode - Fix regression after merge. + * doc/emacs/programs.texi (Misc for Programs): Document + 'prettify-symbols-compose-predicate' and + 'prettify-symbols-unprettify-at-point'. - * src/undo.c (prepare_record): Remove call to run_undoable_change. + * lisp/progmodes/prog-mode.el (prettify-symbols-alist) + (prettify-symbols-default-compose-p) + (prettify-symbols-compose-predicate) + (prettify-symbols--compose-symbol): Doc fixes. -2015-11-26 Phillip Lord +2015-12-12 Eli Zaretskii - After delete, record point location in undo. + Document multi-mode indentation facilities - Addresses Bug #21968. + * doc/lispref/text.texi (Mode-Specific Indent): Document + 'prog-indentation-context', 'prog-first-column', and 'prog-widen'. - * lisp/simple.el (undo-auto--add-boundary): Clean up code to - better support intercalating calls. - * src/keyboard.c, src/keyboard.h (command_loop_1): Store value of - point and current buffer before each command. - * src/undo.c (record_point): Now only record the point. - * src/undo.c (prepare_record): Functionality removed form - record_point. - * src/undo.c (record_delete): Check if point needs recording. - * src/undo.c (undo-boundary): Record value of point before each - boundary. - * test/automated/simple-test.el: New tests. + * lisp/progmodes/prog-mode.el (prog-indentation-context) + (prog-widen): Doc fixes. - Conflicts: - src/undo.c +2015-12-12 Eli Zaretskii -2015-11-26 Eli Zaretskii + Document 'vc-refresh-state' - Fix compiler warnings in w32.c + * doc/emacs/maintaining.texi (Version Control): Document + 'vc-refresh-state'. - * src/w32.c (sys_socket): In case of error, use -1 as return - value, not INVALID_SOCKET, which causes compiler warnings. - (maybe_load_unicows_dll): Cast the return value of GetProcAddress - to the appropriate function signature, to avoid compiler errors. - Reported by Andy Moreton . (Bug#21953) + * lisp/vc/vc-hooks.el (vc-refresh-state): Doc fix. -2015-11-26 Dmitry Gutov +2015-12-12 Eli Zaretskii - Check if the file exists on disk before producing the revert diff + Fix echo for "C-u" - * lisp/vc/vc-dispatcher.el (vc-buffer-sync): Check if the file - exists on disk (bug#20558). + * src/keyboard.c (command_loop_1): Undo last change. It caused + duplicate echo of C-u. (Bug#22107) -2015-11-26 Alan Mackenzie +2015-12-11 Eli Zaretskii - Byte compiler: on setq with an odd number of arguments, generate a `signal' + Avoid errors when creating files under SVN in new directory - * lisp/emacs-lisp/cconv.el (cconv-convert): Don't transform `setq' form when - it has an odd number of arguments, to allow bytecomp to handle the error. + * lisp/vc/vc-svn.el (vc-svn-registered): Use + file-accessible-directory-p, to avoid cd'ing to a non-existing + directory, which signals an error on some systems. (Bug#21984) + (vc-svn-checkin): Call log-edit-extract-headers with 2 arguments. + Use declare-function to avoid byte-compiler warnings. - * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): In a `setq' form with an - odd number of arguments, generate a `signal' instead of the normal code. +2015-12-11 Eli Zaretskii -2016-01-30 Dmitry Gutov -2015-11-25 Dmitry Gutov + Improve Lua support in etags - Use find-tag-default for xref-backend-identifier-at-point + * lib-src/etags.c (Lua_functions): Skip spaces before looking for + "function". - * lisp/progmodes/etags.el (find-tag-tag) - (tags-completion-at-point-function): Extract common code as - find-tag--default. - (xref-backend-identifier-at-point): Define in terms of the new - function. + * etc/NEWS: Mention improved Lua support by 'etags'. -2016-01-30 Paul Eggert -2015-11-25 Paul Eggert + * test/etags/lua-src/test.lua (test): Add tests for indented + function definitions. + * test/etags/ETAGS.good_1: + * test/etags/ETAGS.good_2: + * test/etags/ETAGS.good_3: + * test/etags/ETAGS.good_4: + * test/etags/ETAGS.good_5: + * test/etags/ETAGS.good_6: + * test/etags/CTAGS.good: Adapt to the modified Lua tests. - * src/undo.c (record_property_change): Remove now-unused local. +2015-12-11 Eli Zaretskii -2015-11-25 Phillip Lord + Fix 'this-command-keys' wrt prefix argument - run_undoable_changes now called from insdel. + * src/keyboard.c (command_loop_1): Restore the feature whereby C-u + was part of this-command-keys, but not of this-single-command-keys. + (Bug#22107) - The original calls from inside undo.c are not always at a safe position - to call lisp, as they originate in varied positions within insdel.c. - Calling them directly from prepare_to_modify_buffer_1 ensures that they - are always run at the same point. + * lisp/simple.el (internal-echo-keystrokes-prefix): Add + commentary about the function's return value. - * src/undo.c (run_undoable_changes,syms_of_undo): Remove function - and symbol used. - * src/insdel.c (run_undoable_changes): Add function and symbol. +2015-12-11 Eli Zaretskii -2015-11-25 Eli Zaretskii + * lisp/files.el (load-library): Doc fix. (Bug#22140) - Improve and update documentation of search commands +2015-12-11 Eli Zaretskii - * doc/emacs/search.texi (Lax Search): Renamed from "Search Case"; - all references changed. Move the description of lax-whitespace - here. Add description of the new character folding features and - additional customizable options. - (Isearch Yank): Move before "Error in Search". - (Basic Isearch): Improve wording. Add index entries. Add short - description of how to abandon search, making this subsection a - complete introduction to search basics. - (Repeat Isearch): Add index entries. Describe additional - customizable options. Describe mouse clicks. - (Isearch Yank): Add index entries. Describe mouse-2 click in echo - area. Describe more customizable options. - (Error in Isearch): Add index entries. - (Special Isearch): Move actual description of some isearch - commands to other sections, leaving here just the summary of the - commands. Add command that toggles character folding. Describe - commands, like "C-h C-h", that were previously omitted for some - reason. - (Not Exiting Isearch): Describe search-exit-option. Add index - entries. - (Word Search): Describe eww-search-word and eww-search-prefix. - (Symbol Search): Add index entries. - (Regexp Search): Describe regexp-search-ring-max. - (Replacement and Lax Matches): Renamed from "Replacement and - Case"; all references changed. Describe lax-whitespace matching - in replace commands and related options. Describe character - folding in replace commands and related options. - (Query Replace): Describe query-replace-from-to-separator and the - new history features. Add index entries for highlighted text. - Describe query-replace-skip-read-only. Describe more keys - accepted by query-replace. - (Other Repeating Search): More index entries for Occur. Describe - list-matching-lines-default-context-lines. - (Search Customizations): New section, documents customizable - options that were not documented until now. - * doc/emacs/glossary.texi (Glossary): Add "Case Folding" and - "Character Folding". + Improve and document Ruby support in 'etags' - * etc/NEWS: Move search- and replace-related entries to a single - parent section. + * lib-src/etags.c (Ruby_suffixes): Add ".ruby". + (Ruby_functions): Support "module" and overloaded operators. + (Ruby_help): Mention "module". - * lisp/replace.el (query-replace-show-replacement): Doc fix. - * lisp/isearch.el (search-nonincremental-instead) - (isearch-hide-immediately): Doc fixes. + * test/etags/ruby-src/test.rb: + * test/etags/ruby-src/test1.ruby: New files. + * test/etags/Makefile (RBSRC): New tests. + (SRCS): Add ${RBSRC}. + * test/etags/ETAGS.good_1: + * test/etags/ETAGS.good_2: + * test/etags/ETAGS.good_3: + * test/etags/ETAGS.good_4: + * test/etags/ETAGS.good_5: + * test/etags/ETAGS.good_6: + * test/etags/CTAGS.good: Adapt to the new Ruby tests. -2015-11-25 Katsumi Yamaoka + * doc/man/etags.1: Mention Ruby support. + * etc/NEWS: Mention Ruby support. - Remove nnml-retrieve-groups that is unnecessary and somewhat problematic +2015-12-11 Xi Lu - * lisp/gnus/nnml.el (nnml-retrieve-groups): Remove. See: - and - + Initial support for Ruby in 'etags' -2015-11-25 Paul Eggert + * lib-src/etags.c : New variable. + (lang_names): Add an entry for Ruby. + (Ruby_functions): New function. (Bug#22116) - Fix module_format_fun_env when dynlib_addr fails +2015-12-11 Eli Zaretskii - * src/emacs-module.c (module_format_fun_env): - exprintf doesn’t support %p, so use %x. Reported by Eli Zaretskii in: - http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02122.html + Clarify documentation of 'modify-frame-parameters' -2015-11-25 Paul Eggert + * doc/lispref/frames.texi (Parameter Access): Clarify what "ignored + PARMs" mean for 'modify-frame-parameters'. - Disambiguate variable help a bit better + * src/frame.c (Fmodify_frame_parameters): Clarify what "ignored + PARMs" mean for this function. (Bug#22104) - * lisp/help-fns.el (describe-variable): Quote the - variable’s value if it is a symbol other than t or nil. - See: T.V Raman in: - http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02147.html +2015-12-11 Eli Zaretskii -2016-01-30 Dmitry Gutov + Fix setting buffer unibyte when reading from a device - Pass SVN commit message through log-edit-extract-headers + * src/fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte + to make a (possibly non-empty) buffer unibyte. (Bug#22096) - * lisp/vc/vc-svn.el (vc-svn-checkin): Pass COMMENT through - log-edit-extract-headers (bug#18954). +2015-12-11 Eli Zaretskii -2016-01-30 Alan Mackenzie + Clarify documentation of 'values' - CC Mode: Eliminate compiler warning messages. + * doc/lispref/eval.texi (Eval): Clarify that 'values' are not + updated by any evaluation commands in 'lisp-interaction-mode'. + (Bug#22056) - * lisp/progmodes/cc-mode.el (top level): remove compile time declaration of - `font-lock-syntactic-keywords' (which CC Mode doesn't use). - * lisp/progmodes/cc-awk.el (awk-mode-syntax-table) - (c-awk-set-syntax-table-properties): Clarify comments about - `font-lock-syntactic-keywords'. +2015-12-11 Anders Lindgren - * lisp/progmodes/cc-bytecomp.el (cc-bytecomp-load): Create a dummy declaration - of this before the real (interpreted) one, to satisfy the byte compiler. + Fixed subversion vc error when opening file in new directory (bug#21984). -2016-01-30 Simen Heggestøyl + * lisp/vc/vc-svn.el (vc-svn-registered): Check if directory exists. - Extend the test suite for json.el +2015-12-09 Eli Zaretskii - * lisp/json.el (json-plist-p): Clarify docstring. + Yet another fix for when point ends up in invisible text - * test/automated/json-tests.el (json-tests--with-temp-buffer): New - macro. - (test-json-join, test-json-alist-p) - (test-json-plist-p, test-json-advance, test-json-peek) - (test-json-pop, test-json-skip-whitespace) - (test-json-read-keyword, test-json-encode-keyword) - (test-json-read-number, test-json-encode-number) - (test-json-read-escaped-char, test-json-read-string) - (test-json-encode-string, test-json-encode-key) - (test-json-new-object, test-json-add-to-object) - (test-json-read-object, test-json-encode-list) - (test-json-read-array, test-json-encode-array) - (test-json-read, test-json-read-from-string) - (test-json-encode): New tests. - (json-read-simple-alist): Merged into `test-json-read-object'. - (json-encode-string-with-special-chars): Merged into - `test-json-encode-string'. - (json-read-string-with-special-chars): Split into - `test-json-encode-string' and `test-json-read-from-string'. + * src/xdisp.c (redisplay_window): When someone forced + window-start, and honoring that failed to show the cursor, try + moving out of invisible text, before falling back to the middle of + the window. (Bug#22098) -2016-01-30 Anders Lindgren +2015-12-09 Michael Albinus - Fixed bug#18283: Enable applescript in NextStep. + Fix error in Tramp perl script for cygwin - * nextstep/templates/Info.plist.in: Set NSAppleScriptEnabled to YES. + * lisp/net/tramp-sh.el (tramp-perl-file-truename): Do not raise an + error if file doesn't exist. -2016-01-30 Eli Zaretskii +2015-12-09 YAMAMOTO Mitsuharu - Allow completion on dynamic module files in load-library + Remove font workaround for limited outdated versions - * lisp/files.el (load-library): Bind completion-ignored-extensions - to nil, to allow completion on dynamic modules typed as file - names. Reported by Andy Moreton . + * src/macfont.m (mac_font_descriptor_get_adjusted_weight): Remove + workaround for HiraginoSans-W7 on OS X 10.11 and 10.11.1. -2016-01-30 Alan Mackenzie +2015-12-09 Anders Lindgren - CC Mode: eliminate almost all byte compilation warnings + Don't add "." to load path (bug#21104) - * lisp/progmodes/cc-bytecomp.el (cc-bytecomp-noruntime-functions): Remove. - (cc-require): Remove the crude hack that saved and restored - byte-compile-noruntime-functions. - (cc-conditional-require, cc-conditional-require-after-load): New macros. + When configured with --enable-locallisppath=no, which is the + default for OS X, the load-path incorrectly was populated with ".". - * lisp/progmodes/cc-defs.el (top level): Reformulate code which loaded - cc-fix.el using the new macros in cc-bytecomp.el. + * src/lread.c (init_lread): Don't call `decode_env_path' when + PATH_SITELOADSEARCH is empty. - * lisp/progmodes/cc-langs.el (c++-template-syntax-table) - (c-no-parens-syntax-table): Add extra "(eval ..)"s around "'(lambda ..)" - forms to remove the superflous quotes. +2015-12-08 Artur Malabarba -2016-01-30 Eli Zaretskii + * lisp/emacs-lisp/package.el (package--with-response-buffer): - Add one more mod-test test + Search for the blank-line in the right buffer. - * modules/mod-test/test.el (mod-test-sum-test): Test the error - signaled when the function is invoked with a wrong number of - arguments. +2015-12-08 Glenn Morris -2016-01-30 Philipp Stephani + * test/automated/simple-test.el (undo-auto-boundary-timer): Update + for recent change. - * modules/mod-test/mod-test.c (Fmod_test_sum): Verify there are 2 args. +2015-12-08 Glenn Morris -2016-01-30 Eli Zaretskii + Fix some display-warning usage. - Implement dynlib_addr for MS-Windows + * lisp/files.el (hack-local-variables, hack-dir-local-variables): + * lisp/calendar/diary-lib.el (diary-include-files, diary-sexp-entry): + * lisp/calendar/holidays.el (calendar-holiday-list): + * lisp/mail/rmailout.el (rmail-output-read-file-name): + Fix display-warning usage. - * src/dynlib.c [WINDOWSNT]: Include w32common.h. - [WINDOWSNT]: New static variable. - (GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS) - (GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT) [WINDOWSNT]: Define - if undefined. - (dynlib_reset_last_error): Reset g_b_init_get_module_handle_ex to - zero. - (dynlib_addr) [WINDOWSNT]: Non-trivial implementation to report - the full file name of the module for a given address. +2015-12-07 Glenn Morris -2016-01-30 Alan Mackenzie + * lisp/calendar/cal-html.el: Require diary-lib. - Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 + (cal-html-list-diary-entries): Handle no diary. (Bug#21994) -2016-01-30 Alan Mackenzie +2015-12-07 Thomas Fitzsimmons - Squashed commit of the following: + Add Obsolete-since header to eudcb-ph.el - commit e1ecf76585bef2eb87995f7a7f92cc12003a6f70 - Author: Alan Mackenzie - Date: Tue Nov 24 16:50:09 2015 +0000 + * eudcb-ph.el: Add Obsolete-since header. - Byte compile: minor amendments. +2015-12-07 Paul Eggert - * lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): - add a comment to explain the binding of variables around a subsidiary - compilation. - (byte-compile-new-defuns): Amend the doc string. + Spelling fixes - commit c537bfed1dda1593d218956ff00c6105a3ff0316 - Author: Alan Mackenzie - Date: Sat Nov 21 18:43:57 2015 +0000 + * doc/misc/calc.texi (Predefined Units): Use the bland modern + scientific style for spelling the units “ampere” and + “angstrom” rather than the older style “Ampere” and + “Ångstrom”. The latter spelling was wrong anyway (it should + have been “Ångström”). + * lisp/emacs-lisp/ert.el (ert--explain-equal-rec): + Fix misspelling of ‘atom’ in code. - Byte compiler: fix spurious warnings "might not be defined at runtime". +2015-12-07 Eli Zaretskii - Also initialize byte-compile-noruntime-functions between runs. + Improve documentation of kill commands - * lisp/emacs-lisp/bytecomp.el (byte-compile-new-defuns): New variable. - (byte-compile-initial-macro-environment): For eval-when-compile: bind - byte-compile-unresolved-functions and byte-compile-new-defuns around - byte-compile-top-level, to prevent spurious entries being made. - (byte-compile-warn-about-unresolved-functions): Check whether function is - in byte-compile-new-defuns before emitting a warning about it. - (byte-compile-from-buffer): Initialize new variable and - byte-compile-noruntime-functions to nil. - (byte-compile-file-form-require): record all new functions defined by a - `require' in byte-compile-new-defuns. - (byte-compile-file-form-defmumble): record the new alias in - byte-compile-new-defuns. + * lisp/simple.el (region-extract-function, delete-backward-char) + (delete-forward-char, kill-region, copy-region-as-kill) + (kill-ring-save): Better document the optional argument REGION in + the doc strings. Mention in the doc strings that text put in the + kill-ring can be filtered by 'filter-buffer-substring'. -2016-01-30 Eli Zaretskii + * doc/lispref/text.texi (Kill Functions): Mention that functions + described in this subsection can filter text they put in the + kill-ring. Add a cross-reference to "Buffer Contents" and an + index entry. Document the optional argument 'region' and its + effect. + (Bug#21315) - Fix crash at startup related to GC of font entities +2015-12-07 Alan Mackenzie - * src/font.h (GC_FONT_SPEC_P, GC_FONT_ENTITY_P) - (GC_FONT_OBJECT_P, GC_XFONT_SPEC, GC_XFONT_ENTITY) - (GC_XFONT_OBJECT): New macros, for use in garbage collector. - * src/alloc.c (compact_font_cache_entry, compact_font_caches): - Don't ifdef away font cache compaction on NT_GUI, as the problems - which led to that seem to have been solved. - (compact_font_cache_entry): Use GC_FONT_SPEC_P, GC_XFONT_SPEC, - GC_XFONT_ENTITY, and GC_XFONT_OBJECT, instead of their non-GC_ - cousins. (Bug#21999) + Further progress making Isearch, Ispell, Replace work with Follow Mode. -2016-01-30 Alan Mackenzie + * lisp/follow.el: (follow-mode): Remove references to sit*-for-function, which + no longer exists. Add follow-post-command-hook to three special purpose + hooks at setup, and remove them at tear down. - Byte compile: Output an error, not a warning, for odd number of args to setq + * lisp/isearch.el: (isearch-update): invoke isearch-update-post-hook before + isearch-lazy-highlight-new-loop. + (isearch-lazy-highlight-new-loop): Restore this function to what it previously + was, merging the functionality of isearch-lazy-highlight-maybe-new-loop into + it. + (isearch-lazy-highlight-maybe-new-loop): function removed. - * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): Amend. + * lisp/replace.el: (replace-update-post-hook): New hook variable. + (perform-replace): Add second (nil) argument to looking-back. Invoke + replace-update-post-hook before calling replace-highlight. -2016-01-30 Ken Raeburn + * lisp/textmodes/ispell.el: (ispell-update-post-hook): New hook variable. + (ispell-command-loop): invoke ispell-update-post-hook. Add GROUP argument to + call of pos-visible-in-window-p. + (ispell-display-buffer): Place *Choices* window at the top of the last window + in a window group. - Fix kbd_buffer iteration loop in readable_events +2015-12-07 Alan Mackenzie - * src/keyboard.c (readable_events): Wrap the event pointer back to the - start of the kbd_buffer array inside the top of the loop instead of - right before checking the loop condition, since kbd_fetch_ptr and - kbd_store_ptr point past the end of the array to mean that element 0 - is next. (bug#21935) + Amend doc of `mapconcat': it can take sequences, not merely strings. -2016-01-30 Paul Eggert + * doc/lispref/functions.texi (Mapping Functions): Amend the doc of `mapconcat' + to say that SEPARATOR and the results from FUNCTION may be any character + sequences, not just strings. Add an @xref to "Sequences Arrays Vectors". - Improve text-quoting-style doc again +2015-12-07 Michael Albinus - * doc/lispref/help.texi (Keys in Documentation): - Omit overkill discussion of ‘setq’. Mention Emacs versions - where ‘grave’ style was standard. + Fix an utf8 problem for Tramp on BSD + + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Make lax check for utf8. + (tramp-get-remote-locale): Add "en_US.UTF-8" as candidate. -2016-01-30 Paul Eggert +2015-12-06 Thomas Fitzsimmons - Improve text-quoting-style doc + Make eudcb-ph.el obsolete -2016-01-30 Paul Eggert + * doc/misc/eudc.texi: Bump version to 1.40.0. + Remove PH/QI sections and mentions. + * lisp/obsolete/eudcb-ph.el: Make obsolete. + * lisp/net/eudc-vars.el (eudc-known-protocols): Remove ph. + (eudc-ph-bbdb-conversion-alist): Make obsolete. + * etc/NEWS: Mention this. (Bug#21191) - Simplify module_make_function +2015-12-06 Paul Eggert - * src/emacs-module.c (module_make_function): - Simplify by calling build_unibyte_string. + Remove overenthusiastic eassert -2016-01-30 Paul Eggert + * src/lisp.h (XSYMBOL): Remove eassert incorrectly added in + previous change. It breaks on MS-Windows --with-wide-int. + Problem reported by Eli Zaretskii in: + http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00275.html - Port better to FreeBSD’s dlfunc vs dlsym +2015-12-06 Paul Eggert - This avoids warnings when converting between void * and - function pointers, which strict C11 does not allow. - * configure.ac (dlfunc): Check for existence. - * src/dynlib.c (dlfunc) [!HAVE_DLFUNC]: New macro. - (dynlib_func): New function. - * src/dynlib.h (dynlib_function_ptr, dynlib_func): New decls. - * src/emacs-module.c (Fmodule_load): Use dynlib_func, not - dynlib_sym, for function pointers. + Pacify gcc -Wparentheses -2016-01-30 Paul Eggert + * src/xdisp.c (row_containing_pos): Reparenthesize. - Simplify use of emacs_finalizer_function type +2015-12-06 Paul Eggert - * src/emacs-module.h (emacs_finalizer_function): - Now EMACS_NOEXCEPT. All users simplified to omit EMACS_NOEXCEPT. - (struct emacs_env_25): Use emacs_finalizer_function where applicable. + Port mod-test to 32-bit Emacs --without-wide-int -2016-01-30 Paul Eggert + * modules/mod-test/test.el (mod-test-sum-test): + Bring back the 2**29 tests, but port them to 32-bit Emacs + --without-wide-int. - module_format_fun_env fixes +2015-12-06 Michael Albinus - * src/doprnt.c (exprintf) [HAVE_MODULES]: Also define in this case. - * src/emacs-module.c (module_format_fun_env): - Convert path and sym to UTF-8. - Don’t use VLAs, as the C11 standard says they’re optional, - and anyway they can cause core dumps with large allocations. - Use exprintf rather than snprintf, as exprintf handles arbitrarily - long strings. Simplify the code a bit. + Fix minor Tramp problems found on BSD -2016-01-30 Dmitry Gutov + * lisp/net/tramp-sh.el (tramp-perl-file-truename): Do not append + trailing slash. Quote apostrophes. + (tramp-sh-handle-file-truename): Do not append trailing slash in + the "ls" case. + (tramp-get-ls-command-with-w-option): New defun. + (tramp-do-file-attributes-with-ls) + (tramp-do-directory-files-and-attributes-with-stat): Use it. - Don't use package-user-dir in elisp-library-roots if it's not bound + * test/automated/tramp-tests.el + (tramp-test31-special-characters-with-perl) + (tramp-test31-special-characters-with-ls) + (tramp-test32-utf8-with-perl, tramp-test32-utf8-with-ls): + Suppress also readlink. - * lisp/progmodes/elisp-mode.el (elisp-library-roots): Don't - use package-user-dir if it's not bound (bug#19759). +2015-12-06 Eli Zaretskii -2016-01-30 Anders Lindgren + Fix cursor display when invisible text is at line beginning - New visible-bell for NextStep (OS X El Capitan compatible). + * src/xdisp.c (redisplay_window): When scrolling fails to show + point, prefer using the desired matrix if possible for finding the + fallback glyph row for displaying the cursor. (Bug#22098) + (row_containing_pos): Exit the loop as soon as we hit the first + disabled glyph row. Otherwise we risk accessing garbled data and + departing to the no-no land. - Instead of inverting a rectangle in the middle of the frame, use - the standard NextStep image "caution", represented using an - warning sign with an exclamation mark. (Bug#21662) +2015-12-06 Paul Eggert - Implemented based on a suggestion drafted by Mustafa Kocaturk. + Improve module interface when WIDE_EMACS_INT - * src/nsterm.m (EmacsBell): New class for managing the caution - image. Support multiple active bells, the image is removed once - all bells have timed out. - (ns_timeout): Removed, no longer used. - (ns_ring_bell): Reimplemented to use EmacsBell. + * src/emacs-module.c (plain_values): New constant. + (module_nil): Now a constant. + (Finternal_module_call, value_to_lisp_bits, lisp_to_value_bits) + (syms_of_module): Use if, not #ifdef, so that both sides are + checked at compile-time, and so that GCC doesn’t complain + about an unused var in the typical case. Also, depend on + plain_values, not on WIDE_EMACS_INT; the code shouldn’t assume + that WIDE_EMACS_INT implies !USE_LSB_TAG. + (value_to_lisp_bits, lisp_to_value_bits): New functions. + Sign-extend integers rather than zero-extending them, as small + negative integers are more likely. + (value_to_lisp, lisp_to_value): Rewrite in terms of the new *_bits + functions. + (HAVE_STRUCT_ATTRIBUTE_ALIGNED): Define to 0 if not already defined. + (mark_modules): Remove. All uses removed. + (lisp_to_value): Don’t assume Fcons returns a pointer aligned + to GCALIGNMENT. + (syms_of_module): Check that module_nil converts to Qnil. + * src/lisp.h (lisp_h_XSYMBOL, XSYMBOL): Use signed conversion, since + we prefer signed to unsigned when either will do. + (TAG_PTR): Sign-extend pointers when USE_LSB_TAG, as this is + a bit better for emacs-module.c. -2016-01-30 Johan Bockgård +2015-12-06 Paul Eggert - * lisp/emacs-lisp/nadvice.el (add-function): Fix debug spec. + Port mod-test to x86-64 GNU/Linux running 32-bit - (remove-function): Ditto. (Bug#20376) + * modules/mod-test/test.el (mod-test-sum-test): + Don’t attempt to match descriptions to operating systems. + It didn’t work on Fedora x86-64 running a 32-bit executable, + and it’s not worth the trouble anyway. + Port to 32-bit platforms by removing an assumption about + fixnum widths. -2016-01-30 Mark Oteiza +2015-12-06 Michael Albinus - * lisp/leim/quail/tamil-dvorak.el: Add necessary escapes. + Fix auto-revert-tests.el when filenotify isn't used -2016-01-30 Eli Zaretskii + * test/automated/auto-revert-tests.el (auto-revert--wait-for-revert): + Make it working also when filenotify isn't used. - Improve how non-ASCII strings are accepted from modules +2015-12-05 Juri Linkov - * src/emacs-module.c (module_make_function, module_make_string): - Build a unibyte Lisp string and then decode it by UTF-8, instead - of building a multibyte string without decoding. This is more - tolerant to deviations from UTF-8. + * lisp/textmodes/ispell.el (ispell-highlight-spelling-error-overlay): -2016-01-30 Paul Eggert + Let-bind isearch-regexp-function to nil. (Bug#22097) - Port recent module changes to pickier compilers +2015-12-05 Artur Malabarba - * src/emacs-module.c (module_make_function) - (module_make_string): Add casts to fix pointer signedness issues. + * lisp/emacs-lisp/package.el: Don't install bad signatures (bug#22089) -2016-01-30 Philipp Stephani + (package--with-response-buffer): NOERROR and ERROR-FORM only + handle connection errors. + (bad-signature): New error type. + (package--check-signature-content): Use it. + (package--check-signature): Properly distinguish connection errors + from bad-signature errors. Do the check for + `package-check-signature' `allow-unsigned' here instead of forcing + the callbacks to do it. Add a new argument, UNWIND. + (package--download-one-archive, package-install-from-archive): + Update usage of `package--check-signature'. - Fix how strings are accepted from modules +2015-12-05 Ulf Jasper - * src/emacs-module.c (module_make_function, module_make_string): Use - make_multibyte_string. - (module_copy_string_contents): Encode before reading the byte - size. Return false if and only if an error occurred. + Fix Bug#22092. -2016-01-30 Eli Zaretskii + * lisp/calendar/icalendar.el (icalendar--get-unfolded-buffer): + Clean up inconsistent line endings. (Bug#22092) + (icalendar--clean-up-line-endings): New. + * test/automated/icalendar-tests.el (icalendar-real-world): Add test + for Bug#22092. - Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25 +2015-12-05 Eli Zaretskii -2016-01-30 Shakthi Kannan + Document 'bookmark-set-no-overwrite' - Add the tamil-dvorak input method + * doc/emacs/regs.texi (Bookmarks): Document the new command + 'bookmark-set-no-overwrite' and its keybinding. - * lisp/leim/quail/tamil-dvorak.el: New file. (Bug#21768) +2015-12-05 Eli Zaretskii - * etc/NEWS: Mention the new input method. + Document new binding of 'mouse-buffer-menu' -2016-01-30 Martin Rudalics + * doc/emacs/buffers.texi (Buffer Menus): 'mouse-buffer-menu' is + now also on C-F10. - Move setting FRAME_WINDOW_SIZES_CHANGED to resize_frame_windows. +2015-12-05 Eli Zaretskii - * src/frame.c (adjust_frame_size): Don't set - FRAME_WINDOW_SIZES_CHANGED here ... - * src/window.c (resize_frame_windows): ... but here, as suggested - by Stefan Monnier. Also remove some dead code along the way. + Initial documentation of dynamic modules -2016-01-30 Alan Mackenzie + * doc/lispref/loading.texi (Dynamic Modules): New section with + initial documentation for dynamic modules. + * doc/lispref/elisp.texi (Top): Add "Dynamic Modules" to the + detailed menu - * etc/NEWS (Incompatible Lisp Changes): Also `setf' needs an even # of args. + * etc/NEWS: Fix typos in dynamic modules' entry. -2016-01-30 Alan Mackenzie +2015-12-05 Artur Malabarba - Signal an error when `setf' gets an odd number of arguments. + Remove copyright statements from trivial test files - * lisp/emacs-lisp/gv.el (setf): Amend. +2015-12-05 Eli Zaretskii -2016-01-30 Stefan Monnier + Add "Preliminaries" section to etc/DEBUG - * lisp/emacs-lisp/smie.el (smie-backward-sexp): Handle BOB better. + * etc/DEBUG: Add the "Preliminaries" section for GDB beginners. + Most of the content was suggested by Phillip Lord + . Remove the section about debugging + with the Visual Studio, as building Emacs with the Microsoft + compilers is no longer supported. Minor fixes in some other + sections. -2016-01-30 Alan Mackenzie +2015-12-05 Alex Dunn (tiny change) - * etc/NEWS (Incompatible Lisp Changes): Document new restriction on `setq'. + Improve parsing of version strings -2016-01-30 Alan Mackenzie + * lisp/subr.el (version-regexp-alist): Allow "." as priority separator + (version-to-list): More helpful error messages. + (version-to-list): ".5" is valid (update docstring). Make + "22.8X3" invalid, as the doc string says. - Expunge occurrences of `setq' with an odd number of arguments. + * test/automated/subr-tests.el (ert-test-version-parsing): New + tests for version string processing. - * lisp/apropos.el (apropos-documentation): - * lisp/obsolete/complete.el (PC-include-file-all-completions): - * lisp/progmodes/compile.el (compilation-goto-locus): - * lisp/vc/vc-cvs.el (vc-cvs-parse-root): (twice) - Insert missing nil at end of `setq' forms. +2015-12-05 Eli Zaretskii - * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-autoload): Remove an - erroneous trailing variable name from a setq, thus allowing a compilation - properly to track functions not defined at runtime. + Fix documentation of 'undo' changes -2016-01-30 John Wiegley + * doc/lispref/text.texi (Undo): Minor wording changes. Use US + English conventions for spelling and whitespace between sentences. - Add a note about a questionable use of bool in xdisp.c + * etc/NEWS: Fix wording and spelling of undo-related entries. + Mark them as documented. -2016-01-30 Alan Mackenzie +2015-12-04 Glenn Morris - Issue a warning from the byte compiler on a malformed `setq' form. + * lisp/net/net-utils.el: Small improvements. - Partly fixes bug#20241. - * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): Issue a warning when a - `setq' form with an odd number of arguments is compiled. + (net-utils--executable-find-sbin): New function. + (ifconfig-program): Check sbin directories. + Fallback to "ip". (Bug#22091) + (ifconfig-program-options): Check the actual program in use. + (arp-program): Check sbin directories. -2016-01-30 Alan Mackenzie +2015-12-04 Arash Esbati (tiny change) - Don't let cconv_convert insert a nil argument into a `setq' form. + Fix wrong-type-argument integer-or-marker-p nil error - Fixes bug#21983. - * lisp/emacs-lisp/cconv.el (cconv-convert): Don't silently insert a nil last - argument into a `setq' when there're an odd number of args. This enables the - byte compiler to issue a message in this case. + * lisp/textmodes/reftex-auc.el (reftex-what-index-tag): + Fix (wrong-type-argument integer-or-marker-p nil) error (bug#22077). -2016-01-30 Alan Mackenzie +2015-12-04 Alan Mackenzie + + Merge branch 'scratch/follow' of /home/acm/emacs/emacs.git/emacs-25 into scratch/follow - Signal an error when `setq' has an odd number of arguments. Fixes bug#20241. + Merge necessitated by a rebase operation. - * src/eval.c (Fsetq): Signal an error on an odd number of arguments. - (syms_of_eval): Add a DEFSYM for Qsetq. +2015-12-04 Alan Mackenzie -2016-01-30 Martin Rudalics + lisp/isearch.el: Eliminate macro isearch-call-message, replacing with funcall. - * doc/lispref/windows.texi (Window Sizes): Fix indices and references. +2015-12-04 Alan Mackenzie - * src/frame.c (adjust_frame_size): Set FRAME_WINDOW_SIZES_CHANGED (Bug#21975). + First commit to scratch/follow. Make Isearch work with Follow Mode, etc. -2016-01-30 Thomas Fitzsimmons + doc/lispref/window.texi (Basic Windows): Add paragraph defining "Group of + Windows" and new @defun selected-window-group. + (Window Start and End): Describe new &optional parameter GROUP and + ...-group-function for window-start, window-end, set-window-start, and + pos-visible-in-window-p. + (Textual Scrolling) Describe the same for recenter. + doc/lispref/positions.texi (Screen Lines): Describe the same for + move-to-window-line. - Add EUDC BBDB 3 entry in NEWS + src/window.c (Fwindow_start, Fwindow_end, Fset_window_start) + (Fpos_visible_in_window_p, Frecenter, Fmove_to_window_line): To each, add ar + new optional parameter "group". At the beginning of each, check whether the + corresponding ...-group-function is set to a function, and if so execute this + function in place of the normal processing. + (syms_of_window): Define symbols for the six new variables below. + (window-start-group-function, window-end-group-function) + (set-window-start-group-function, recenter-group-function) + (pos-visible-in-window-p-group-function, move-to-window-line-group-function): + New permanent local buffer local variables. + src/keyboard.c (Fposn_at_point): Add extra parameter in call to + Fpos_visible_in_window_p. - * NEWS: Mention EUDC BBDB backend support for BBDB 3. + lisp/window.el (selected-window-group-function): New permanent local buffer + local variable. + (selected-window-group): New function. -2016-01-30 Thomas Fitzsimmons + lisp/follow.el (follow-mode): Set the ...-group-function variables at mode + enable, kill them at mode disable. Add/remove follow-after-change to/from + after-change-functions. + (follow-start-end-invalid): New variable. + (follow-redisplay): Manipulate follow-start-end-invalid. + (follow-after-change, follow-window-start, follow-window-end) + (follow-set-window-start, follow-pos-visible-in-window-p) + (follow-move-to-window-line, follow-sit-for): New functions. - Improve EUDC to BBDB 3 export + lisp/isearch.el (isearch-call-message): New macro. + (isearch-update, with-isearch-suspended, isearch-del-char) + (isearch-search-and-update, isearch-ring-adjust): Invoke above new macro. + (with-isearch-suspended): Rearrange code such that isearch-call-message is + invoked before point is moved. + (isearch-message): Add comment about where point must be at function call. + (isearch-search): Remove call to isearch-message. + (isearch-lazy-highlight-window-group): New variable. + (isearch-lazy-highlight-new-loop): Unconditionally start idle timer. Move + the battery of tests to ... + (isearch-lazy-highlight-maybe-new-loop): New function, started by idle timer. + Note: (sit-for 0) is still called. + (isearch-lazy-highlight-update): Check membership of + isearch-lazy-highlight-window-group. Don't set the `window' overlay + property. + (isearch-update, isearch-done, isearch-string-out-of-window) + (isearch-back-into-window, isearch-lazy-highlight-maybe-new-loop) + (isearch-lazy-highlight-search, isearch-lazy-highlight-update) + (isearch-lazy-highlight-update): Call the six amended primitives (see + src/window.c above) with the new `group' argument set to t, to cooperate + with Follow Mode. - * lisp/net/eudc-vars.el (eudc-ldap-bbdb-conversion-alist): Change phone - entry to single item. Add company conversion. - * lisp/net/eudc-export.el (eudc-bbdbify-company): New function. - (bbdb-parse-phone): Declare function. - (eudc-bbdbify-phone): Add BBDB 3 support. - (Bug#21971) +2015-12-04 Stefan Monnier -2016-01-30 Thomas Fitzsimmons + * lisp/emacs-lisp/ert.el: Prefer pcase over cl-typecase - Add BBDB 3 support for EUDC export + * lisp/emacs-lisp/ert.el (ert--should-error-handle-error) + (ert--explain-format-atom, ert--explain-equal-rec) + (ert--print-backtrace, ert-test-result-type-p, ert-select-tests) + (ert--insert-human-readable-selector): Prefer pcase over cl-typecase. - * lisp/net/eudc.el: Add bbdb-version defvar. - (eudc--using-bbdb-3-or-newer-p): New function. - * lisp/net/eudc-export.el (eudc-create-bbdb-record): Add support for - bbdb-create-internal argument list changes introduced in BBDB 3. - * lisp/net/eudcb-bbdb.el: Remove bbdb-version defvar. - (eudc-bbdb-field): Call eudc--using-bbdb-3-or-newer-p. - (Bug#21971) +2015-12-04 Artur Malabarba -2016-01-30 Eli Zaretskii + * lisp/character-fold.el: Remove special case-folding support - Allow loading modules by 'load-file' + (character-fold-to-regexp): Remove special code for + case-folding. Char-fold search still respects the + `case-fold-search' variable (i.e., f matches F). This only + removes the code that was added to ensure that f also matched + all chars that F matched. For instance, after this commit, f + no longer matches 𝔽. - * src/lread.c (Fload): Call 'unbind_to' with 'Fmodule_load' as the - 2nd arg, to avoid the "binding stack not balanced" error. - (syms_of_lread) : New Lisp variable. + This was necessary because the logic created a regexp with + 2^(length of the string) redundant paths. So, when a very + long string "almost" matched, Emacs took a very long time to + figure out that it didn't. This became particularly relevant + because isearch's lazy-highlight does a search bounded by (1- + match-end) (which, in most circumstances, is a search that + almost matches). A recipe for this can be found in bug#22090. - * lisp/files.el (module-file-suffix): Declare. - (load-file): Remove 'module-file-suffix' from - 'completion-ignored-extensions', to allow completion on modules. +2015-12-04 Stefan Monnier - * etc/NEWS: Mention 'module-file-suffix'. + * lisp/emacs-lisp/cl-macs.el (character): Can't be negative + Fixes (bug#21701) -2016-01-30 Eli Zaretskii +2015-12-04 Daiki Ueno - Fix unoptimized builds + lisp/gnus/qp.el: Don't replace "from " at bol - * src/lisp.h (XTYPE): Move before XSYMBOL, to fix unoptimized - builds. + * lisp/gnus/qp.el (quoted-printable-encode-region): Bind `case-fold-search' + to nil when looking for "^From ". Problem reported by Simon Josefsson. -2016-01-30 Dmitry Gutov +2015-12-03 Phillip Lord - Work around the asynchronous-empty-diff problem + Externalize some symbols in undo-auto - * lisp/vc/vc-rcs.el (vc-rcs-diff): - * lisp/vc/vc-mtn.el (vc-mtn-diff): - * lisp/vc/vc-hg.el (vc-hg-diff): - * lisp/vc/vc-git.el (vc-git-diff): Ignore the ASYNC argument, - do a synchronous process call (bug#21969). + * doc/lispref/text.texi: Update symbols. + * lisp/simple.el (undo-auto--amalgamate, + undo-auto--current-boundary-timer): Make symbols public. + * src/cmds.c (Fself_insert_command,Fdelete_char): Call + updated symbol. -2016-01-30 Karl Fogel +2015-12-03 Stefan Monnier - Finish excising electric indent from `open-line' + * lisp/emacs-lisp/smie.el (smie-next-sexp): Fix BOB "token" - * lisp/simple.el (open-line): Remove INTERACTIVE argument. +2015-12-03 Michael Albinus - * test/automated/simple-test.el (open-line-indent, open-line-hook): - Adjust accordingly. + Some error message improvements in tramp-sh.el - This change finishes what my commit of Thu Nov 19 17:32:37 2015 -0600 - (git commit c59353896) started. It turns out that having INTERACTIVE - cause `post-self-insert-hook' to run (via `newline') meant `open-line' - still had the electric indent behavior, as `post-self-insert-hook' - normally contains `electric-indent-post-self-insert-function' ever - since `electric-indent-mode' has been on by default. Tracing the code - change in `open-line' is mildly twisty, because Artur Malabarba's - earliest two commits of 24 Oct 2015 first removed the `interactive' - form entirely (git commit 6939896e2) and then restored it with the new - extra "p" already added (git commit bd4f04f86), such that there is no - single-commit diff in which one sees the second "p" appear. Thus this - change is effectively a reversion of parts of each of those commits. + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Suppress error messages for "mesg" and "biff" calls. + (tramp-get-remote-path): Ignore errors when expanding + `tramp-own-remote-path'. Raise a warning instead. - This could close bug#21884, at least until further discussion. +2015-12-03 Eli Zaretskii -2016-01-30 Dmitry Gutov + Document 'nacl' value for 'system-type' - Adhere closer to the "implicit tag name" definition + * doc/lispref/os.texi (System Environment): Document the 'nacl' + value of 'system-type'. - * lisp/progmodes/etags.el (etags-tags-completion-table): - Adhere closer to the "implicit tag name" definition. Simplify - the regexp. Search for the explicit tag name first, and when - not found, search locally for the implicit one. (Bug#21934) +2015-12-03 Eli Zaretskii -2016-01-30 Stefan Monnier + Document 'window-max-chars-per-line' - Unrevert most of regexp reentrancy abort patch + * doc/lispref/windows.texi (Window Sizes): Document + 'window-max-chars-per-line'. - The problem was in: - * src/syntax.c (update_syntax_table_forward): Propertize even when truncated - which is hence not unreverted. - The rest is: - * src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST): - (UPDATE_SYNTAX_TABLE_FAST): Re-introduce. - All callers in regex.c changed back to the _FAST versions. +2015-12-03 Artur Malabarba - * test/automated/message-mode-tests.el: Tweak the test to rely on auto - propertization in backward-sexp. + Fix some file headers for the purpose of `package--builtins' -2016-01-30 Paul Eggert + * lisp/emacs-lisp/cl-preloaded.el + * lisp/emacs-lisp/eieio-compat.el + * lisp/net/sasl-scram-rfc.el: Add a "Package:" header - Revert regexp reentrancy abort patch + * lisp/ielm.el: Fix summary line. - Although the patch does fix Bug#21688 and prevents a core dump, - it also makes the message-mode-propertize test fail; see: - http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01667.html - Perhaps someone else can come up with a better fix some day. - * src/syntax.c (update_syntax_table_forward): - Propertize even when truncated. - * src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST): - (UPDATE_SYNTAX_TABLE_FAST): Remove. - All callers changed back to the non-_FAST versions. +2015-12-03 Artur Malabarba -2016-01-30 Paul Eggert + * lisp/emacs-lisp/package.el (package-unpack): Load before compiling - Add a few safety checks when ENABLE_CHECKING + Reload any previously loaded package files before compiling + the package (also reload the same files after compiling). + This ensures that we have the most recent definitions during + compilation, and avoids generating bad elc files when a macro + changes and it is used in a different file from the one it's + defined in. - This was motivated by the recent addition of module code, - which added some ENABLE_CHECKING-enabled checks that are - useful elsewhere too. - * src/alloc.c (compact_font_cache_entry): - * src/fns.c (sweep_weak_table): - * src/lread.c (oblookup): - Use gc_asize rather than doing it by hand. - * src/emacs-module.c (module_make_global_ref) - (module_free_global_ref, module_vec_size): - Omit assertions that lisp.h now checks. - * src/lisp.h (XFASTINT, ASIZE): In functional implementations, - check that the result is nonnegative. Use eassume, as this - info can help a bit when optimizing production code. - (XSYMBOL) [!USE_LSB_TAG]: Assert that argument is a symbol, - to be consistent with the USE_LSB_TAG case. - (gc_asize): New function, when ASIZE is needed in the gc. - (gc_aset): Use it. - (HASH_TABLE_P): Move definition up, so that it can be used ... - (XHASH_TABLE): ... here, to assert that the arg is a hash table. +2015-12-03 Artur Malabarba -2016-01-30 Eli Zaretskii + * lisp/emacs-lisp/package.el: Refactor package activation code - Simplify recording of main thread's ID on MS-Windows + (package-activate): Move code that activates dependencies into + package-activate-1. + (package--load-files-for-activation): New function. + (package-activate-1): Add code for (optionally) activating + dependencies, and move file-loading code into + `package--load-files-for-activation'. - * src/w32term.c (w32_initialize): - * src/w32console.c (initialize_w32_display): - * src/w32fns.c (globals_of_w32fns): Don't record the main thread - ID independently for each type of session (GUI, TTY, batch). - * src/w32term.c (w32_init_main_thread): New function, records the - main thread's thread ID. - * src/w32term.h: Add prototype for w32_init_main_thread. - * src/emacs.c (main) [WINDOWSNT]: Call w32_init_main_thread. +2015-12-03 Eli Zaretskii - * src/emacs-module.c [WINDOWSNT]: Rename main_thread_id to - main_thread, for consistency with other threading libraries. All - users changed. Include w32term.h. - (check_main_thread) [WINDOWSNT]: Simplify the test: no need to - make sure the main thread is alive, as we hold a handle on it - opened by w32_init_main_thread. - (module_init) [WINDOWSNT]: Reuse the thread ID recorded by - w32_init_main_thread, instead of calling the requisite APIs once - more. + Document new font-related functionality -2016-01-30 Mark Oteiza + * doc/lispref/display.texi (Low-Level Font): Document + 'default-font-width', 'default-font-height', 'window-font-width', + and 'window-font-height'. - Backport: Fix issue where a new tempfile was created every refresh + * etc/NEWS: Move entries for 'default-font-width', + 'default-font-height', 'window-font-width', and 'window-font-height' + to their place and mark them documented. - * lisp/mpc.el (mpc-format): Leave dir as relative path +2015-12-03 Eli Zaretskii -2016-01-30 Eli Zaretskii + Fix documentation and implementation of 'directory-name-p' - Call 'window-size-change-functions' for mini-windows + * lisp/files.el (directory-name-p): Modify to recognize + backslashes on MS-Windows and MS-DOS. Adjust the doc string + accordingly. Use '=', not char-equal, for comparison, as + letter-case cannot possibly be an issue here. - * src/window.c (grow_mini_window, shrink_mini_window): Set the - frame's 'window_sizes_changed' flag. - * src/xdisp.c (redisplay_internal): Call the hooks on - 'window-size-change-functions' if the call to 'echo_area_display' - sets the frame's 'window_sizes_changed' flag. - (syms_of_xdisp) : - Update doc string to indicate the mini-window resizes trigger a - call to the hooks, and don't promise that will happen "before - redisplay". (Bug#19576, Bug#21333) + * doc/lispref/files.texi (Directory Names): Move the documentation + of directory-name-p here from "Relative File Names". Update the + description per the changes in implementation. - * doc/lispref/windows.texi (Window Hooks): Update the description - of 'window-size-change-functions'. + * etc/NEWS: Move the entry for 'directory-name-p' to its proper + place and mark it documented. -2016-01-30 Eli Zaretskii +2015-12-02 Eli Zaretskii - Improve documentation of dynamic modules + Minor copyedit in Emacs manual - * src/fns.c (Frequire): Doc fix to include the dynamic module - support. - * src/lread.c (Fload, Vload_suffixes): Doc fixes to include the - dynamic module support. - (Fload): Treat the module suffix the same as '*.el' and '*.elc' - wrt the MUST-SUFFIX argument. + * doc/emacs/search.texi (Lax Search): Make wording about character + folding by default less definitive. (Bug#22043) - * etc/NEWS: Expand documentation of dynamically loaded modules. +2015-12-02 Eli Zaretskii -2016-01-30 Philipp Stephani (tiny change) + More emacs-module.c fixes for wide ints - Initial documentation for dynamic modules + * src/emacs-module.c (value_to_lisp) [WIDE_EMACS_INT]: Use + unsigned data types to manipulate pointers, to avoid sign + extension coming after us with a vengeance. - * etc/NEWS: Mention the new support for dynamically loaded modules. + * modules/mod-test/test.el (mod-test-sum-test): Add tests for + Emacs with wide ints that verify integer values near the critical + value that requires us to switch to a cons cell. -2016-01-30 Dmitry Gutov +2015-12-02 Stephen Leake - Add xref--etags-backend to xref-backing-functions using add-hook + Fix bug#22069 in cl-generic.el - * lisp/progmodes/xref.el (xref-backend-functions): Move the - default value into a separate `add-hook' call (bug#21964). + * lisp/emacs-lisp/cl-generic.el (cl-no-method): Remove %S; this string is + not run thru `format'. - * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): - Don't declare the xref-backend-functions variable. - It doesn't make any difference. +2015-12-01 Dmitry Gutov -2016-01-30 Paul Eggert + APPEND etags--xref-backend to xref-backend-functions - Fix double-decrement bug when freeing global refs + * lisp/progmodes/xref.el (xref-backend-functions): + Use APPEND when adding the default element + (http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00061.html). - * src/emacs-module.c (module_free_global_ref): Add a FIXME - comment about error reporting. Fix a recently-introduced typo - that double-decremented the refcount. +2015-12-01 Eli Zaretskii -2016-01-30 Paul Eggert + More accurate documentation of lax whitespace matching - Declare emacs_module_init in the module API + * lisp/isearch.el (isearch-forward-word, isearch-forward-symbol) + (word-search-backward, word-search-forward) + (word-search-backward-lax, word-search-forward-lax): Mention in + doc strings that toggling lax whitespace matching has no effect on + these commands. - * src/emacs-module.h (emacs_module_init): New decl. - Without it, GCC might complain about a module that defines - emacs_module_init without using it. This also checks the - API better. + * doc/emacs/search.texi (Word Search, Symbol Search): Clarify that + lax whitespace matching has no effect on these commands. -2016-01-30 Paul Eggert +2015-12-01 Eli Zaretskii - Fix module test to use ptrdiff_t nargs too + Fix emacs-module.c for wide ints - * modules/mod-test/mod-test.c (Fmod_test_return_t) - (Fmod_test_sum, Fmod_test_signal, Fmod_test_throw) - (Fmod_test_non_local_exit_funcall, Fmod_test_globref_make) - (Fmod_test_string_a_to_b, Fmod_test_userptr_make) - (Fmod_test_userptr_get, Fmod_test_vector_fill) - (Fmod_test_vector_eq): Arg counts are ptrdiff_t, not int. - (finalizer): Remove; no longer used. + * src/emacs-module.c (lisp_to_value): Compare the produced value + with the original Lisp object, not with the one potentially + converted into a Lisp_Cons. Fixes assertion violations when + working with integers larger than fit into a 32-bit value. -2016-01-30 Paul Eggert + * modules/mod-test/test.el (mod-test-sum-test): Add tests for + large integers, to test --with-wide-int. - Fix reindent-introduced typo in module code +2015-12-01 Eli Zaretskii - * src/emacs-module.c (MODULE_SETJMP_1): Fix typo that I - introduced while reindenting the code earlier, and add a - comment explaining the unusual use of do-while here. + Document 'directory-files-recursively' -2016-01-30 Anders Lindgren + * lisp/files.el (directory-files-recursively): Doc fix. Rename + the argument MATCH to REGEXP, to be more explicit about its form. - Fixed bug#19576: `write-file' saves wrong buffer. + * doc/lispref/files.texi (Contents of Directories): Improve the + documentation of 'directory-files-recursively'. Add + cross-references. - If a function on the hook `window-size-change-functions' doesn't - restore the current buffer, functions that save and restore the - current window configuration (like `y-or-no-p') could silently - change the current buffer. When `write-file' asked the user - confirmation to overwrite a file, `y-or-no-p' changed the current - buffer, and the wrong buffer was saved to the file. + * etc/NEWS: Move the entry for 'directory-files-recursively' to + its place and mark it documented. - * lisp/follow.el (follow-windows-start-end): Call `select-frame' - using the `norecord' parameter. - (follow-window-size-change): Restore current buffer. Call - `select-frame' using the `norecord' parameter. Cleanup. +2015-12-01 Eli Zaretskii -2016-01-30 John Wiegley + Document 'inhibit-read-only' property - Correct a documentation error in frames.texi + * doc/lispref/text.texi (Special Properties): Describe the new + 'inhibit-read-only' text property. Add cross-reference to where + read-only buffers are described. + * doc/lispref/buffers.texi (Read Only Buffers): Mention that + 'inhibit-read-only' property exempts text from being read-only. + Add cross-reference to "Special Properties". -2016-01-30 Stephen Leake + * etc/NEWS: Move the entry about 'inhibit-read-only' property to + its place and mark it documented. - * lisp/cedet/mode-local.el: Delete obsolete comment +2015-12-01 Artur Malabarba -2016-01-30 Paul Eggert + * lisp/emacs-lisp/package.el: Update header comments - Module function arg counts are ptrdiff_t, not int +2015-12-01 Artur Malabarba - * src/emacs-module.c (struct module_fun_env) - (module_make_function, module_funcall, Fmodule_call): - * src/emacs-module.h (struct emacs_runtime, struct emacs_env_25): - Use ptrdiff_t, not int, for arg counts. - * src/emacs-module.c (module_make_function): Don’t bother - checking arity against MOST_POSITIVE_FIXNUM, as that’s - unnecessary here. Make the checking clearer by negating it. - (module_make_function, Fmodule_call): No need to use xzalloc - since the storage doesn’t need to be cleared. - (module_funcall): Don’t use VLA, since C11 doesn’t guarantee support - for it, and many implementations are buggy with large VLAs anyway. - Use SAFE_ALLOCA_LISP instead. - (module_vec_set): Don’t crash if i < 0. - (module_vec_get): Don’t crash if i < MOST_NEGATIVE_FIXNUM. - (module_vec_set, module_vec_get): Do fixnum checks only when - i is out of array bounds, for efficiency in the usual case. - (Fmodule_load): Simplify fixnum range check. - (Fmodule_call): Simplify arity check. Use xnmalloc to detect - integer overflow in array allocation size. + * lisp/character-fold.el: Add back multi-char matching -2016-01-30 Eli Zaretskii + (character-fold-to-regexp): Uncomment recently commented code + and make the algorithm "dummer" by not checking every possible + combination. This will miss some possible matches, but it + greatly reduces regexp size. - Minor improvements in module test + * test/automated/character-fold-tests.el + (character-fold--test-fold-to-regexp): Comment out test of + functionality no longer supported. - * modules/mod-test/mod-test.c: Include stdlib.h, to avoid warnings - about missing prototype of malloc. - * modules/mod-test/Makefile (CFLAGS): Add -std=gnu99, to avoid - compiler warnings. +2015-12-01 Xue Fuqiao -2016-01-30 Eli Zaretskii + * doc/emacs/ack.texi (Acknowledgments): Update. - Improve MS-Windows implementation in dynlib.c +2015-12-01 Michael Albinus - * src/dynlib.c [WINDOWSNT]: Include errno.h, lisp.h, and w32.h. - No need to include windows.h, as w32.h already does that. - : New static variable. - (dynlib_reset_last_error): New function. - (dynlib_open): Convert forward slashes to backslashes. Convert - file names from UTF-8 to either UTF-16 or the current ANSI - codepage, and call either LoadLibraryW or LoadLibraryA. If the - argument is NULL, return a handle to the main module, like - 'dlopen' does. Record the error, if any, for use by dynlib_error. - (dynlib_sym): Check the handle for validity. Record the error, if - any, for use by dynlib_error. - (dynlib_error): Call w32_strerror to produce the error string, and - zero out the last error code, like dlerror does. - (dynlib_close): Check the handle for validity. Record the error, - if any, for use by dynlib_error. Don't call FreeLibrary with a - handle for the main module. - * src/w32.c (globals_of_w32): Call dynlib_reset_last_error. + Check `file-remote-p' over absolute files names in files.el -2016-01-30 Paul Eggert + * lisp/files.el (directory-files-recursively) + (get-free-disk-space): Check `file-remote-p' over absolute files names. - Include-file tweaks for modules +2015-12-01 Andreas Schwab - * src/dynlib.c, src/emacs-module.c: Include first. - * src/dynlib.h: Do not include config.h. - It’s every .c file’s responsibility to include config.h first. - * src/emacs-module.c: Include emacs-module.h immediately after - config.h, to test that emacs-module.h doesn’t depend on - include files other than config.h. + * src/lread.c (syms_of_lread): Doc fix. -2016-01-30 Paul Eggert +2015-11-30 Dmitry Gutov - Simplify push_handler and profile its malloc + Don't mistake certain JS method calls for keywords - * src/lisp.h (PUSH_HANDLER): Remove. - All callers changed to use push_handler directly. - * src/eval.c (internal_condition_case) - (internal_condition_case_1, internal_condition_case_2) - (internal_condition_case_n): - Use same pattern as for other invokers of push_handler. - (push_handler, push_handler_nosignal): Use call-by-value - instead of call-by-reference. All uses changed. - (push_handler): Simplify by rewriting in terms of - push_handler_nosignal. - (push_handler_nosignal): Profile any newly allocated memory. + * lisp/progmodes/js.el (js--ctrl-statement-indentation): + Braceless keyword can't come after a period (bug#22063). -2016-01-30 Paul Eggert +2015-11-30 David Reitter - * src/emacs-module.h: Include stddef.h, not stdlib.h. + Read frame_title_format from buffer-local variable for NS port + + * src/nsfns.m (x_implicitly_set_name): Read frame-title-format and + icon-title-format variables from buffer in appropriate window. + (Bug#22048) -2016-01-30 Juanma Barranquero +2015-11-30 Juri Linkov - Discover repository version in linked worktrees (bug#21930) + * lisp/replace.el (occur-engine): Count matches in empty lines. - * lisp/version.el (emacs-repository--version-git-1): Do not assume - HEAD is at .git/HEAD, it can also be at .git/worktrees//HEAD. - (emacs-repository-get-version): Grok linked worktrees when EXTERNAL - is nil too. + (Bug#22062) + +2015-11-30 Aurélien Aptel -2016-01-30 Juri Linkov + * src/emacs-module.h: Fix finalizer typedef for C++11 - * lisp/replace.el (occur-regexp-descr): New function. - (occur-1, occur-engine): Use it. + C++11 standard doesn't allow exception-specification in typedef. + The workaround is to declare a dummy function prototype and use + decltype on it. - * lisp/isearch.el (isearch-occur): Propertize regexp with - isearch-string and isearch-regexp-function-descr for - occur-regexp-descr to display the correct description - message in the header (bug#21176, bug#21180). +2015-11-30 Eli Zaretskii -2016-01-30 Karl Fogel + Fix last change - Revert `open-line' electric-indent sensitivity + * src/emacs-module.c (lisp_to_value, value_to_lisp) + [WIDE_EMACS_INT]: Avoid compiler warnings. - * lisp/simple.el (open-line): Remove electric indent code. - (electric-indent-just-newline): Don't declare. +2015-11-30 Stefan Monnier - * test/automated/simple-test.el (open-line-indent): Adjust test. + Rely on conservative stack scanning to find "emacs_value"s - This partly reverts Artur Malabarba's change that added electric - indent sensitivity to `open-line' (Oct 24 22:26:27 2015 +0100, git - commit bd4f04f86), and adjusts a new test he added right afterwards - (Sat Oct 24 23:43:06 2015 +0100, git commit 207f235e3) accordingly. - However, the new INTERACTIVE argument to `open-line', which he also - added in the first commit, is not reverted here. + * src/emacs-module.c (struct emacs_value_tag) + (struct emacs_value_frame, struct emacs_value_storage): Remove. + (value_frame_size): Remove constant. + (struct emacs_env_private): Use Lisp_Object for non_local_exit info. + (lisp_to_value): Remove first arg. + (module_nil): New constant. + Use it instead of NULL when returning an emacs_value. + (module_make_function): Adjust to new calling convention of + Qinternal_module_call. + (DEFUN): Receive args in an array rather than a list. + Use SAFE_ALLOCA rather than xnmalloc. Skip the lisp_to_value loop when + we don't have WIDE_EMACS_INT. Adjust to new type of non_local_exit info. + (module_non_local_exit_signal_1, module_non_local_exit_throw_1): + Adjust to new type of non_local_exit info. + (ltv_mark) [WIDE_EMACS_INT]: New constant. + (value_to_lisp, lisp_to_value): Rewrite. + (initialize_frame, initialize_storage, finalize_storage): Remove functions. + (allocate_emacs_value): Remove function. + (mark_modules): Gut it. + (initialize_environment): Don't initialize storage any more. + Keep the actual env object on Vmodule_environments. + (finalize_environment): Don't finalize storage any more. + (syms_of_module): Initialize ltv_mark and module_nil. - See the thread "Questioning the new behavior of `open-line'." on the - Emacs Devel mailing list, and in particular this message: + * src/emacs-module.h (emacs_value): Make it more clear that this type + is really opaque, including the fact that NULL may not be valid. - From: Artur Malabarba - Subject: Re: Questioning the new behavior of `open-line'. - To: Karl Fogel - Cc: David Kastrup, Pierpaolo Bernardi, emacs-devel - Date: Wed, 18 Nov 2015 21:03:58 +0000 - Message-ID: \ - + * modules/mod-test/mod-test.c (Fmod_test_signal, Fmod_test_throw): + Don't assume that NULL is a valid emacs_value. - https://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01707.html +2015-11-30 Eli Zaretskii -2016-01-30 Paul Eggert + Yet another doc improvement for search commands - Omit unnecessary clear in Fmodule_load + * doc/emacs/search.texi (Word Search, Symbol Search) + (Regexp Search): Document commands that don't support lax + whitespace matching or character folding. + (Nonincremental Search): Mention the search commands that can be + invoked from the menu bar. - * src/emacs-module.c (Fmodule_load): - Simplify and avoid unnecessary initialization of priv member to 0. + * lisp/isearch.el (isearch-define-mode-toggle-word) + (isearch-define-mode-toggle-symbol) + (isearch-define-mode-toggle-character-fold): Note in the doc + string that turning these on exits the regexp mode. + (isearch-forward-regexp, isearch-forward-word) + (isearch-forward-symbol, isearch-backward-regexp) + (word-search-backward, word-search-forward) + (word-search-backward-lax, word-search-forward-lax): State in the + doc string which commands don't support character folding and/or + lax-whitespace matching. - * src/emacs-module.c: (module_vec_set, module_vec_get, module_vec_size) +2015-11-30 Martin Rudalics -2016-01-30 Paul Eggert + Run `window-size-change-functions' also when reading from minibuffer - Prefer signed integer types in module code + * src/xdisp.c (redisplay_internal): Run `window-size-change-functions' + also when reading from minibuffer. - Generally speaking, at the C level the Emacs source code prefers - signed types like ‘ptrdiff_t’ to unsigned types like ‘size_t’, - partly to avoid the usual signedness confusion when comparing values. - Change the module API to follow this convention. - Use ‘int’ for small values that can’t exceed INT_MAX. - * modules/mod-test/mod-test.c (Fmod_test_globref_make) - (Fmod_test_string_a_to_b, Fmod_test_vector_fill) - (Fmod_test_vector_eq): - * src/emacs-module.c (struct emacs_value_frame) - (module_make_global_ref, module_free_global_ref) - (module_copy_string_contents, module_make_string) - (module_vec_set, module_vec_get, module_vec_size): - * src/emacs-module.h (struct emacs_runtime, struct emacs_env_25): - * src/lread.c (suffix_p): - Prefer signed to unsigned integer types. +2015-11-30 Ulf Jasper -2016-01-30 Paul Eggert + Fix scrambling of html-rendered item buffers - Omit ‘const’ on locals + * lisp/net/newst-treeview.el (newsticker--treeview-render-text): Fix + scrambling of contents by wrapping call to html-renderer in + save-selected-window. - Remove ‘const’ qualifier from locals that were newly added. - We don’t normally bother declaring locals with ‘const’ even - though they are not modified, for the same reason we don’t - bother declaring them with ‘register’ even though their - addresses are not taken; the advantage in compile-time - checking isn’t worth the loss of readability. - * modules/mod-test/mod-test.c (Fmod_test_non_local_exit_funcall) - (Fmod_test_vector_fill, Fmod_test_vector_eq): - * src/emacs-module.c (MODULE_SETJMP_1) - (module_make_global_ref, module_free_global_ref) - (module_non_local_exit_get, module_make_function) - (module_extract_integer, module_extract_float) - (module_get_user_ptr, module_set_user_ptr) - (module_get_user_finalizer, module_set_user_finalizer) - (module_vec_get, Fmodule_call) - (module_non_local_exit_signal_1) - (module_non_local_exit_throw_1, lisp_to_value) - (finalize_storage, allocate_emacs_value, mark_modules) - (module_handle_signal, module_handle_throw) - (module_format_fun_env): - * src/eval.c (push_handler, push_handler_nosignal) - (init_handler): - * src/lread.c (suffix_p): - Omit unnecessary ‘const’. +2015-11-30 Paul Eggert -2016-01-30 Paul Eggert + Fix font typo in previous doc fix. - Prefer intmax_t to int64_t in module code +2015-11-30 Paul Eggert - * modules/mod-test/mod-test.c (sum, Fmod_test_sum): - * src/emacs-module.c (module_extract_integer) - (module_make_integer): - * src/emacs-module.h (struct emacs_env_25): - Prefer intmax_t to int64_t. This doesn’t change the generated - code on any of the machines Emacs currently ports to, but it’s - at least in theory more future-proof as C99 doesn’t guarantee - that int64_t exists. + A bit more security doc, esp. file local vars -2016-01-30 Paul Eggert + * doc/emacs/emacs.texi (Top): + * doc/emacs/misc.texi (Miscellaneous Commands): + Refer to new Host Security section. + (Host Security): New section. + * doc/lispref/os.texi (Security Considerations): + Mention file local variables. - Rename module.c to emacs-module.c, etc. +2015-11-30 Artur Malabarba - * src/emacs-module.c: Rename from src/module.c. - * src/emacs-module.h: Rename from src/module.h. - All uses changed. + * lisp/character-fold.el: Comment out branching code -2016-01-30 Paul Eggert + (character-fold-to-regexp): Comment out code that uses multi-char + table. The branching caused by this induces absurdly long regexps, + up to 10k chars for as little as 25 input characters. - Fix minor module problems found by static checking +2015-11-30 Paul Eggert - * src/dynlib.c (dynlib_close): #ifdef out for now, as it’s not used. - * src/eval.c, src/lisp.h (lisp_eval_depth): Now static. - * src/emacs-module.c (Fmodule_load): Fix pointer signedness bug. - (Fmodule_call): Tell GCC that the default case is unreachable. + Spelling and grammar fixes -2016-01-30 Paul Eggert +2015-11-29 Dmitry Gutov - Style fixes for indenting etc. in module code + Make lisp-completion-at-point a wrapper instead of an alias - This is mostly indenting and spacing changes. Also, remove - some unnecessary static decls instead of bothering to reindent them. - * src/emacs-module.h (EMACS_EXTERN_C_BEGIN): Remove, and do this inline, - as most other Emacs files do for this sort of thing. + * lisp/progmodes/elisp-mode.el (lisp-completion-at-point): + Turn into an obsolete wrapper around elisp-completion-at-point + (bug#20455). -2016-01-30 Eli Zaretskii +2015-11-29 Artur Malabarba - Minor improvements in modules testing Makefile + * lisp/isearch.el (isearch-search-fun-default): Nicer error - * modules/mod-test/Makefile (EMACS, SO): New variables. - (CFLAGS): When SO = dll, don't use -fPIC. - (check): New target, runs the test. + message when the search fails. -2016-01-30 Eli Zaretskii +2015-11-29 Dmitry Gutov - * .gitignore: Add "*.dll". + Update menu-bar-goto-uses-etags-p for the current xref API -2016-01-30 Paul Eggert + * lisp/menu-bar.el (menu-bar-goto-uses-etags-p): Consult + xref-backend-functions, instead of now-nonexistent + xref-find-function. - Migrate modules/.gitignore into .gitignore +2015-11-29 Artur Malabarba - * .gitignore: Add former contents of modules/.gitignore. - * modules/.gitignore: Remove. + * lisp/isearch.el (isearch-define-mode-toggle): Advertise binding -2016-01-30 Paul Eggert +2015-11-29 Artur Malabarba - Add copyright notices to module code + * lisp/menu-bar.el: Use folding in searches - Put them in the usual format for GNU Emacs copyright notices. + (nonincremental-search-forward): Use `isearch-search-fun-default' + to determine the search function. + (nonincremental-search-backward) + (nonincremental-repeat-search-forward) + (nonincremental-repeat-search-backward): Use it. -2016-01-30 Paul Eggert +2015-11-29 Artur Malabarba - Rename emacs_module.h to module.h + * lisp/menu-bar.el (menu-bar-goto-uses-etags-p): Fix a warning - * src/module.h: Rename from src/emacs_module.h. - All uses changed. +2015-11-29 Artur Malabarba -2016-01-30 Juanma Barranquero + * lisp/character-fold.el (character-fold-to-regexp): Be careful - * src/module.c (Fmodule_load): Remove unused vars `doc_name', `args' + not to return huge regexps. - * src/lread.c (Fload): Remove unused variable `size' +2015-11-29 Eli Zaretskii -2016-01-30 Alan Mackenzie + Improve documentation of string-collate-* functions - src/keyboard.c (pre-command-hook): Fix typo in doc string: "pre" -> "post". + * doc/lispref/strings.texi (Text Comparison): Improve wording and + indexing of 'string-collate-equalp' and 'string-collate-lessp'. -2016-01-30 Dmitry Gutov + * etc/NEWS: Move the entry of 'string-collate-equalp' and + 'string-collate-lessp' to "Lisp Changes" section and mark it as + documented. - Prioritize looking inside vc-parent-buffer over log-view-mode fallback +2015-11-29 Eli Zaretskii - * lisp/vc/vc.el (vc-deduce-fileset): Prioritize looking inside - vc-parent-buffer over log-view-mode fallback (bug#21955). + Document truncate-string-ellipsis -2016-01-30 Alan Mackenzie + * doc/lispref/display.texi (Size of Displayed Text): Document + 'truncate-string-ellipsis'. - lisp/isearch.el: Eliminate macro isearch-call-message, replacing with funcall. + * lisp/international/mule-util.el (truncate-string-ellipsis): Doc fix. + (truncate-string-to-width): Mention in the doc string that the + default for ELLIPSIS comes from 'truncate-string-ellipsis'. -2016-01-30 Ken Brown + * etc/NEWS: Move the 'truncate-string-ellipsis' entry to the "Lisp + Changes" section. - * configure.ac (LIBMODULES): Don’t define on Cygwin +2015-11-29 Eli Zaretskii -2016-01-30 Eli Zaretskii + Fix confusion wrt character folding in the Emacs manual - Fix MS-Windows build --with-modules + * doc/emacs/search.texi (Nonincremental Search, Regexp Search): + Document that invoking search-forward/backward and + re-search-forward/backward supports only case folding, but not the + rest of the lax-search features. Reported by Mike Kupfer + . - * src/module.c: Reformat copyright commentary. - (module_vec_get): Use explicit cast to size_t to avoid compiler - warning in 32-bit builds. - (check_main_thread) [WINDOWSNT]: Fix letter-case in Windows APIs. - Compare thread IDs directly, as GetThreadId is not available - before Windows Vista. - (check_main_thread) [WINDOWSNT]: Duplicate the thread handle - without using APIs and constants not available on XP and older - systems. Obtain and store the thread ID as well. +2015-11-29 Ken Brown -2016-01-30 Aurélien Aptel - Philipp Stephani + Update mod-test-sum-test - Add dynamic module test and helper script + * modules/mod-test/test.el (mod-test-sum-test): Update to + accommodate the lack of dladdr on Cygwin. - Add 'modhelp.py' script (python2) to automate module testing and - module generation. +2015-11-29 Alan Mackenzie - To build and test all modules in the modules/ dir - $ ./modhelp.py test + Byte compiler: Catch missing argument to `funcall'. Fixes bug#22051. - To generate a module from template code (good starting point) - $ ./modhelp init mynewtestmodule + * lisp/emacs-lisp/bytecomp.el (byte-compile-funcall): When there's no argument + to `funcall', (i) Output an error message; (ii) Generate code to signal a + `wrong-number-of-arguments' error. - See the script -h option for more documentation. +2015-11-29 Martin Rudalics - * modules/modhelp.py: New module helper script. - * modules/mod-test/Makefile: New file. Makefile for the test module. - * modules/mod-test/mod-test.c: New file. Test module source file. - * modules/mod-test/test.el: New file. ert test suite for the test module. - * modules/.gitignore: New file. Local .gitignore file. + * lisp/window.el (split-window): Don't sanitize sizes when SIZE is non-nil. -2016-01-30 Aurélien Aptel +2015-11-28 Artur Malabarba - Make 'Fload' look for modules + * lisp/character-fold.el (character-fold-to-regexp) - 'Fload' can now load dynamic modules. This also makes 'require' work. + Warn about using long strings. - * src/lread.c: - (suffix_p): New function. - (Fload): Use 'suffix_p'. Call 'Fmodule_load' when we try to load a file - with a module suffix. - (syms_of_lread): Append module suffix to 'Vload_suffixes'. + * test/automated/character-fold-tests.el + (character-fold--test-lax-whitespace) + (character-fold--test-consistency): Reduce string size for tests. -2016-01-30 Aurélien Aptel - Philipp Stephani +2015-11-28 Eli Zaretskii - Add dynamic module module support + Document renaming of x-select-enable-* variables - * configure.ac: Add '--with-modules' option. Conditionally add - dynlib.o and module.o to the list of objects. Add any system - specific flags to the linker flags to support dynamic libraries. - * m4/ax_gcc_var_attribute.m4: Add autoconf extension to test gcc - attributes. - * src/Makefile.in: Conditionally add module objects and linker flags. - * src/alloc.c (garbage_collect_1): protect module local values from - GC. - * src/lisp.h: Add 'module_init' and 'syms_of_module' prototypes. - * src/emacs-module.h: New header file included by modules. Public - module API. - * src/emacs-module.c: New module implementation file. + * doc/emacs/killing.texi (Clipboard): Rename + x-select-enable-clipboard to select-enable-clipboard and + x-select-enable-primary to select-enable-primary. Update index + entries. -2016-01-30 Aurélien Aptel + * etc/NEWS: Mark entry as documented. - Add new User Pointer (User_Ptr) type +2015-11-28 Eli Zaretskii - * src/lisp.h: Add new Lisp_Misc_User_Ptr type. - (XUSER_PTR): New User_Ptr accessor. - * src/alloc.c (make_user_ptr): New function. - (mark_object, sweep_misc): Handle Lisp_Misc_User_Ptr. - * src/data.c (Ftype_of): Return 'user-ptr' for user pointer. - (Fuser-ptrp): New user pointer type predicate function. - (syms_of_data): New 'user-ptrp', 'user-ptr' symbol. New 'user-ptrp' - subr. - * src/print.c (print_object): Add printer for User_Ptr type. + Document the shorthand hints displayed by M-x -2016-01-30 Aurélien Aptel - Philipp Stephani + * doc/emacs/m-x.texi (M-x): Document the numeric meaning of + suggest-key-bindings. Document the shorthand hints for commands + that have no key bindings. Document that M-x completion ignores + obsolete commands. - Add portable layer for dynamic loading + * etc/NEWS: Move the M-x entry to "Editing Changes" and mark it as + documented. - * src/dynlib.h: New file. - * src/dynlib.c: New file. +2015-11-28 Eli Zaretskii -2016-01-30 Philipp Stephani + Update docs of character folding - Add catch-all & no-signal version of PUSH_HANDLER + * doc/emacs/search.texi (Lax Search): Update the description of + character folding for the latest changes. - Ground work for modules. Add a non-signaling version of PUSH_HANDLER and - a new "catch-all" handler type. +2015-11-28 Artur Malabarba - * src/eval.c (init_handler, push_handler, push_handler_nosignal): New - functions. - * src/fns.c (hash_remove_from_table): Expose function public. - * src/lisp.h: New handler type, define macro to push_handler call. + * lisp/character-fold.el: Also play nice with case-folding -2016-01-30 Ken Brown + (character-fold-to-regexp): Take `case-fold-search' into account. - Silence byte-compiler warning +2015-11-28 Artur Malabarba - * lisp/server.el (server-process-filter): Silence byte-compiler - warning. + * lisp/character-fold.el: Add support for multi-char matches -2016-01-30 Paul Eggert + (character-fold-table): Now has an extra-slot. This is a second + char-table that holds multi-character matches. See docstring for + details. + (character-fold-to-regexp): Can build branching regexps when a + character's entry the extra slot of `character-fold-table' matches the + characters that succeed it. - Quote symbols in docstrings using `' +2015-11-28 Artur Malabarba - Be more systematic about quoting symbols `like-this' rather than - `like-this or 'like-this' in docstrings. This follows up Artur - Malabarba's email in: - http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01647.html + * lisp/character-fold.el: Code simplifications -2016-01-30 Peder O. Klingenberg + (character-fold-table): Reduce the scope of a variable. + (character-fold-to-regexp): Change logic to work directly on the + input string. It's a little easier to understand, probably + faster, and sets us up for implementing multi-char matches. - Fix savegames in dunnet + * test/automated/character-fold-tests.el + (character-fold--test-fold-to-regexp): New test. - * lisp/play/dunnet.el (dun-rot13): Use the standard rot13-region instead - of separate implementation. +2015-11-28 Eli Zaretskii -2016-01-30 Artur Malabarba + Document changes in "C-h l" - * lisp/emacs-lisp/package.el (package--with-response-buffer): + * doc/emacs/help.texi (Misc Help): Document the changes in "C-h l". - Ensure we're at the start of the buffer before searching for - the end of headers. + * etc/NEWS: mark "C-h l" changes as documented. -2016-01-30 Xue Fuqiao +2015-11-28 Eli Zaretskii - * admin/release-process: Improve wording. + Finalize documentation of 'custom-prompt-customize-unsaved-options' -2016-01-30 Xue Fuqiao + * doc/emacs/custom.texi (Saving Customizations): Index the new + function 'custom-prompt-customize-unsaved-options'. - Backport: * CONTRIBUTE: Remove information about feature freeze. + * etc/NEWS: Mention when 'custom-prompt-customize-unsaved-options' + is useful. - (cherry picked from commit ae0653b5ab9ee223751ec389b87011963e1cbbef) +2015-11-28 Eli Zaretskii -2016-01-30 Xue Fuqiao + Document 'comment-line' - Backport: Document the release process + * doc/emacs/programs.texi (Comment Commands): Document + 'comment-line'. - * admin/notes/versioning: Add information about RC releases. - * admin/release-process: Document the release process. - * admin/authors.el (authors-ignored-files): - * admin/README: Change FOR-RELEASE to release-process. - * CONTRIBUTE: - * admin/notes/bugtracker: Don't mention FOR-RELEASE. + * etc/NEWS: Move the entry for 'comment-line' into "Editing Changes". - (cherry picked from commit 9a4aa0f5945a03611ae29c516025dbd353bd26ab) +2015-11-28 Eli Zaretskii -2016-01-30 Xue Fuqiao + Document new checkdoc features - Backport: * admin/release-process: Rename from admin/FOR-RELEASE. + * doc/lispref/tips.texi (Tips, Library Headers): Document the + keyword-checking features of checkdoc and the commands + 'checkdoc-file' and 'checkdoc-current-buffer'. - (cherry picked from commit f8cc14b59700e51a4e31139c0a65c8154995e055) + * etc/NEWS: Move the checkdoc-related entries to their own + section. -2016-01-30 Xue Fuqiao +2015-11-28 Philipp Stephani - Backport: Mention CONTRIBUTE in README + Simplify the prologue of emacs-module.c functions - Mention CONTRIBUTE in README, since it was moved from etc/ to root. - * etc/TODO: Remove the reference to `etc/CONTRIBUTE'. - * README: Mention CONTRIBUTE. + * src/emacs-module.c (MODULE_FUNCTION_BEGIN): New macro. + (module_make_global_ref) + (module_free_global_ref, module_make_function, module_funcall) + (module_intern, module_type_of, module_extract_integer) + (module_make_integer, module_extract_float, module_make_float) + (module_copy_string_contents, module_make_string) + (module_make_user_ptr, module_get_user_ptr, module_set_user_ptr) + (module_get_user_finalizer, module_set_user_finalizer) + (module_vec_set, module_vec_get, module_vec_size): Use new helper + macro MODULE_FUNCTION_BEGIN. - (cherry picked from commit ed2e7e20ae0945288c98091f308f5460c3453873) +2015-11-28 Eli Zaretskii -2016-01-30 Paul Eggert + Don't reject module calls with no arguments - Fix docstring quoting problems with ‘ '’ + * src/emacs-module.c (Finternal_module_call): Allow ARGLIST be nil. - Problem reported by Artur Malabarba in: - http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01513.html - Most of these fixes are to documentation; many involve fixing - longstanding quoting glitches that are independent of the - recent substitute-command-keys changes. The changes to code are: - * lisp/cedet/mode-local.el (mode-local-augment-function-help) - (describe-mode-local-overload): - Substitute docstrings before displaying them. - * lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): - Quote the generated docstring for later substitution. +2015-11-28 Philipp Stephani -2016-01-30 Eli Zaretskii + Make module-call be visible from Lisp - Improve configure --help text for wide ints + * src/emacs-module.c (module_make_function): Use internal--module-call. + (Finternal_module_call): Renamed from Fmodule_call. Add safety + checks. + (syms_of_module): DEFSYM save-value-p and save-pointer-p. Do + defsubr internal--module-call. - * configure.ac (wide-int): Clarify user-level advantages and - disadvantages. +2015-11-28 Eli Zaretskii -2016-01-30 Stephen Leake + Add etags tests for the recent Lua-related bugfix - Improve doc string + * test/etags/lua-src/test.lua: New file, tests the issues raised + by bug#21934. + * test/etags/Makefile (LUASRC): Add test.lua. + * test/etags/ETAGS.good_1: + * test/etags/ETAGS.good_2: + * test/etags/ETAGS.good_3: + * test/etags/ETAGS.good_4: + * test/etags/ETAGS.good_5: + * test/etags/ETAGS.good_6: + * test/etags/CTAGS.good: Adapt to the new Lua test. Also, an old + regression fix, resolved around 25 May 2015, required changes to + the "good" ETAGS files. - * lisp/progmodes/xref.el (xref-backend-references): Improve doc string. +2015-11-28 Eli Zaretskii -2016-01-30 Paul Eggert + Fix Lua tags when a function name includes '.' or ':' - eval_sub followed dangling pointer when debugging + * lib-src/etags.c (Lua_functions): Add a tag for the last element + of a function name after a dot or a colon. (Bug#21934) - Problem reported by Pip Cet (Bug#21245). - This bug could occur in eval_sub if the C compiler reused - storage associated with the ‘argvals’ local after ‘argvals’ - went out of scope, and if the Elisp debugger stopped on Elisp - function exit and accessed ‘argvals’. It could also occur if - a variadic function was called with so many arguments (over - 2048 args on x86-64) that SAFE_ALLOCA_LISP called malloc, then - SAFE_FREE freed the arguments, then the memory manager used - the storage for other purposes, then the debugger accessed the - arguments. - * src/eval.c (eval_sub): Declare ‘argvals’ at top level of - function body. Simplify local decls. - When allocating args via SAFE_ALLOCA, call - debugger before invoking SAFE_FREE, as the debugger needs - access to the args. - (eval_sub, apply_lambda): Rework to avoid need for - set_backtrace_debug_on_exit hack. This is cleaner, - and should work better with buggy custom debuggers. +2015-11-28 Eli Zaretskii -2016-01-30 Daiki Ueno + Improve documentation of search and replace commands - * lisp/image-mode.el: Support encrypted file + * doc/emacs/search.texi (Replacement and Lax Matches): Document + which commands are affected by 'replace-character-fold'. + (Lax Search): Add a cross reference to "Replacement and Lax + Matches". Improve wording. Fix lost extra whitespace. + (Search Customizations): Improve wording. (Bug#22036) + See also comments in + http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02376.html. - (image-toggle-display-image): Read content from the buffer instead - of the file, if the buffer holds a decrypted data. (Bug#21870) + * lisp/replace.el (query-replace, query-replace-regexp) + (query-replace-regexp-eval, replace-string, replace-regexp): + Mention 'replace-character-fold' in the doc strings. -2016-01-30 Paul Eggert +2015-11-28 Paul Eggert - ELF unexec: align section header + Fix minor problems found by static checking - This ports the recent unexelf.c changes to Fedora x86-64 - when configured with GCC’s -fsanitize=undefined option. - * src/unexelf.c (unexec): Align new_data2_size to a multiple - of ElfW (Shdr)’s alignment, so that NEW_SECTION_H returns a - pointer aligned appropriately for its type. + * src/undo.c (prepare_record): Add proper prototype for C. -2016-01-30 Andreas Schwab +2015-11-27 Stefan Monnier - Do more checks on bytecode objects (Bug#21929) + * src/emacs-module.c (struct env_storage): Delete - * src/eval.c (funcall_lambda): Check size of compiled function - object. - (Ffetch_bytecode): Likewise. + (struct emacs_runtime_private): Keep an emacs_env instead. + (Fmodule_load, Fmodule_call): Declare emacs_env_private separately. + (initialize_environment): Split the arg in two. Adjust all callers. + Only store the private part in Vmodule_environments. + (finalize_environment): Change the arg to only be the private env. + Adjust all callers. -2016-01-30 Johan Bockgård +2015-11-27 Eli Zaretskii - pcase.el: Fix edebugging of backquoted cons patterns + Improve documentation of 'replace-character-fold' - * lisp/emacs-lisp/pcase.el (pcase-QPAT): Fix edebugging of backquoted - cons patterns. (Bug#21920) + * lisp/replace.el (replace-character-fold): Clarify which commands + are affected by this variable. -2016-01-30 Paul Eggert +2015-11-27 Dmitry Gutov - Improve fix for regex reentrancy abort + Autoload etags when using its xref backend - Suggested by Stefan Monnier (Bug#21688). - * src/syntax.c (update_syntax_table_forward): - Remove recently-added PROPERTIZE arg, and assume it is true. - All callers changed. - * src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST): - Invoke update_syntax_table directly. + * lisp/progmodes/xref.el (xref--etags-backend): + Rename to etags--xref-backend. Move to etags.el. Autoload. + (Bug#22026) -2016-01-30 Artur Malabarba +2015-11-27 Artur Malabarba - * lisp/faces.el (faces--attribute-at-point): Use `face-list-p' + * lisp/character-fold.el: Allow complex chars to match their decomposition - * lisp/emacs-lisp/package.el (package--with-response-buffer): Missing require + (character-fold-table): When a character's decomposition does not + involve a formatting tag (i.e., if it has an "exact" description via + other characters), then this character is allowed to match the + decomposition. - * lisp/emacs-lisp/nadvice.el (add-function): Escape quote +2015-11-27 Artur Malabarba -2016-01-30 Vasily Korytov + * lisp/character-fold.el: More descriptive variable names - Recognize .rbw and .pyw files (bug#18753) + (character-fold-table): Rename a lot of the lexical variables to + make the code easier to read. - * lisp/progmodes/python.el (auto-mode-alist): - Recognize .pyw files. +2015-11-27 Artur Malabarba - * lisp/progmodes/ruby-mode.el (auto-mode-alist): - Recognize .rbw files. + * lisp/isearch.el: Ensure we still support `isearch-new-word' -2016-01-30 Dmitry Gutov + (isearch-new-regexp-function): Define variable. + (isearch-new-word): Define as an obsolete alias. (Bug#22018) - Fix ruby-mode auto-mode-alist entry +2015-11-27 Eli Zaretskii - * lisp/progmodes/ruby-mode.el (auto-mode-alist): Add grouping - around the extensions (bug#21257). + Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25 -2016-01-30 Dmitry Gutov +2015-11-27 Lee Bochicchio - Fix etags completion near eob + * test/lisp/abbrev-tests.el: Define more tests - * lisp/progmodes/etags.el (tags-completion-at-point-function): - Use `goto-char', to avoid the end-of-buffer error (bug#20061). + (abbrev-table-name-test, kill-all-abbrevs-test) + (clear-abbrev-table-test): New tests. -2016-01-30 Alan Mackenzie +2015-11-27 Eli Zaretskii - De-pessimize detection of C++ member initialization lists. + Add module tests for wrong-type-argument - list/progmodes/cc-engine.el (c-back-over-list-of-member-inits): New macro. - (c-back-over-member-initializers): Reformulate such that c-at-toplevel-p - is only called when a construct "looks right" rather than continually. - (c-guess-basic-syntax, CASE 5R): Add a check for the mode being C++ Mode. + * modules/mod-test/test.el (mod-test-sum-test): Add tests for + wrong-type-argument. -2016-01-30 Artur Malabarba +2015-11-27 Eli Zaretskii - Backport: * lisp/emacs-lisp/package.el: Fix a decoding issue. + Improve handling of signals and 'throw' in modules - * lisp/url/url-handlers.el (url-insert-file-contents): Move some code to - `url-insert-buffer-contents'. - (url-insert-buffer-contents): New function + * src/emacs-module.c: Add commentary explaining how to write + functions in this file. + (module_make_global_ref, module_free_global_ref) + (module_non_local_exit_signal, module_non_local_exit_throw) + (module_make_function, module_funcall, module_intern) + (module_type_of, module_is_not_nil, module_eq) + (module_extract_integer, module_make_integer) + (module_extract_float, module_make_float) + (module_copy_string_contents, module_make_string) + (module_make_user_ptr, module_get_user_ptr, module_set_user_ptr) + (module_get_user_finalizer, module_set_user_finalizer) + (module_vec_set, module_vec_get, module_vec_size) + (module_non_local_exit_signal_1, module_non_local_exit_throw_1): + Do nothing and return with failure indication immediately, if some + previous module call signaled an error or wants to throw. See + http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02133.html + for the relevant discussions. - (package--with-response-buffer): Use `url-insert-buffer-contents'. - The previous code had some issues with decoding. Refactoring that - function allows us to use the decoding from url-handlers while still - treating both sync and async requests the same. +2015-11-27 Eli Zaretskii -2016-01-30 Stephen Leake + Add ':version' tag to 'checkdoc-package-keywords-flag' - Improve a few doc strings, comments + * lisp/emacs-lisp/checkdoc.el (checkdoc-package-keywords-flag): + Add a ':version' tag. - * lisp/cedet/cedet-global.el (cedet-gnu-global-expand-filename): - * lisp/cedet/ede/locate.el (ede-locate-base): - * lisp/cedet/semantic/symref.el (semantic-symref-calculate-rootdir): - * src/fns.c (Fdelq): Improve doc string. +2015-11-27 Eli Zaretskii - * lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions): Add FIXME. + Improve documentation of 'eval-buffer' and 'eval-region' -2016-01-30 Anders Lindgren + * src/lread.c (Feval_buffer, Feval_region): Doc fixes. (Bug#22023) - Enhance NSTRACE (trace output for NextStep). + * doc/lispref/eval.texi (Eval): Mention narrowing to clarify + "accessible portion of buffer". - Trace can be disabled for groups of functions. By default, event - functions and functions that generate lots of output are disabled. +2015-11-27 Eli Zaretskii - Trace output of Objective-C functions now use the "[ClassName - parameter:]" form. + Unbreak the Cygwin w32 build - * src/nsterm.h (NSTRACE_ALL_GROUPS, NSTRACE_GROUP_EVENTS) - (NSTRACE_GROUP_UPDATES, NSTRACE_GROUP_FRINGE, NSTRACE_GROUP_COLOR) - (NSTRACE_GROUP_GLYPHS, NSTRACE_GROUP_FOCUS): New macros, - controlling in which function groups trace should be active. - (NSTRACE_WHEN): Support for silencing a function, this also - silencing all called functions. - (NSTRACE_UNSILENCE): New macro, used to re-enable trace. - (NSTRACE_FMT_FSTYPE, NSTRACE_ARG_FSTYPE): New macros, used to - print the full screen state in NSTRACE functions. + * src/emacs.c (main): Call w32_init_main_thread in the Cygwin w32 + build as well. Reported by Andy Moreton . - * src/nsterm.m (nstrace_depth, nstrace_num): Made volatile as they - can be accessed from multiple threads. - (nstrace_enabled_global): New variable, when FALSE, trace is - silenced. - (nstrace_restore_global_trace_state): New function, used to - restore `nstrace_enabled_global' at end of block. - ([EmacsView setFrame:], [EmacsWindow setFrame:display:]) - ([EmacsWindow setFrame:display:animation:]) - ([EmacsWindow setFrameTopLeftPoint:]): New functions, print trace - and call corresponding super function. - (Many functions): Add or enhance trace output. +2015-11-27 Eli Zaretskii - * src/nsimage.m (ns_image_from_file): Enhanced trace output. + Improve commentary in character-fold.el - * src/nsfns.m (x_set_tool_bar_lines): Add trace output. + * lisp/character-fold.el (character-fold-to-regexp): Move detailed + description from commit log message to comments. (Bug#22019) - * src/nsmenu.m ([EmacsToolbar setVisible:]): New function, print trace - and call corresponding super function. +2015-11-26 Alan Mackenzie -2016-01-30 Anders Lindgren + Byte Compiler: generate code to adjust stack count after call to `signal'. - Fixed a toolbar related issue on OS X. + Corrects change from earlier today. - Earlier, when toggling the tool-bar in a maximized frame, the - frame size didn't match the number of text lines, leaving an - unused area at the bottom of the frame. + * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): supply the current value of + `byte-compile--for-effect' as argument to `byte-compile-form'. - * src/nsfns.m (x_set_tool_bar_lines): Exit maximized and full height - fullscreen modes when tool bar is disabled. +2015-11-26 Eli Zaretskii -2016-01-30 Anders Lindgren + Improve commentary of prepare_to_modify_buffer_1 - Fixed OS X 10.6.8 build issue (bug#21862). + * src/insdel.c (prepare_to_modify_buffer_1): Mention in commentary + that this function runs Lisp. Suggested by Richard Stallman + . - * src/nsterm.h (EmacsView): Add missing declarations. - * src/nsterm.m ([EmacsView windowDidBecomeKey]): New method, like - the standard method but without the notification parameter. - Intended to be used for direct calls. - ([EmacsView windowDidEnterFullScreen]): Call the non-notification - version of `windowDidBecomeKey'. Made the notification method call - the non-notification method instead of the vice versa. - (NSWindowDidEnterFullScreenNotification): Deleted, no longer - needed. +2015-11-26 Phillip Lord -2016-01-30 Artur Malabarba + Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 - * lisp/faces.el (faces--attribute-at-point): Fix an issue +2015-11-26 Phillip Lord - Previous code would signal an error when the face at point was - a manually built list of attributes such as '(:foregroud "white"). + Fix regression after merge. - * test/automated/faces-tests.el (faces--test-color-at-point): Add a test + * src/undo.c (prepare_record): Remove call to run_undoable_change. -2016-01-30 Paul Eggert +2015-11-26 Phillip Lord - Fix regex abort when it tries to reenter itself + After delete, record point location in undo. - Problem reported by Ken Raeburn. - Solution suggested by Stefan Monnier (Bug#21688). - * src/regex.c (re_match_2_internal): - Use new _FAST functions to avoid regex code reentering itself. - * src/syntax.c (update_syntax_table_forward): New arg PROPERTIZE. - All callers changed. - * src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST) - (UPDATE_SYNTAX_TABLE_FAST): New inline functions. + Addresses Bug #21968. -2016-01-30 Dmitry Gutov + * lisp/simple.el (undo-auto--add-boundary): Clean up code to + better support intercalating calls. + * src/keyboard.c, src/keyboard.h (command_loop_1): Store value of + point and current buffer before each command. + * src/undo.c (record_point): Now only record the point. + * src/undo.c (prepare_record): Functionality removed form + record_point. + * src/undo.c (record_delete): Check if point needs recording. + * src/undo.c (undo-boundary): Record value of point before each + boundary. + * test/automated/simple-test.el: New tests. - Improve Ruby 1.9-style keyword keys highlighting + Conflicts: + src/undo.c - * lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): - Handle required keyword arguments (bug#21367). - And highlight the colon together with the name. +2015-11-26 Eli Zaretskii -2016-01-30 Dmitry Gutov + Fix compiler warnings in w32.c - Unify the absolutely equal xref-backend-references implementations + * src/w32.c (sys_socket): In case of error, use -1 as return + value, not INVALID_SOCKET, which causes compiler warnings. + (maybe_load_unicows_dll): Cast the return value of GetProcAddress + to the appropriate function signature, to avoid compiler errors. + Reported by Andy Moreton . (Bug#21953) - * lisp/progmodes/elisp-mode.el (xref-backend-references): - Remove. +2015-11-26 Dmitry Gutov - * lisp/progmodes/etags.el (xref-backend-references): - Remove. + Check if the file exists on disk before producing the revert diff - * lisp/progmodes/xref.el (xref-backend-references): - Define the default implementation. + * lisp/vc/vc-dispatcher.el (vc-buffer-sync): Check if the file + exists on disk (bug#20558). -2016-01-30 Dmitry Gutov +2015-11-26 Alan Mackenzie - Update project-find-regexp for the new xref API + Byte compiler: on setq with an odd number of arguments, generate a `signal' - * lisp/progmodes/project.el (project--read-regexp): - Update to use the new xref API methods. + * lisp/emacs-lisp/cconv.el (cconv-convert): Don't transform `setq' form when + it has an odd number of arguments, to allow bytecomp to handle the error. - * lisp/progmodes/xref.el (xref-find-backend): Autoload. + * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): In a `setq' form with an + odd number of arguments, generate a `signal' instead of the normal code. -2016-01-30 Dmitry Gutov +2015-11-25 Dmitry Gutov - Fix replacing a match with a shorter string + Use find-tag-default for xref-backend-identifier-at-point - In effect, partially reverting fe973fc. + * lisp/progmodes/etags.el (find-tag-tag) + (tags-completion-at-point-function): Extract common code as + find-tag--default. + (xref-backend-identifier-at-point): Define in terms of the new + function. - * lisp/progmodes/xref.el (xref-query-replace): Store the end - of each match as a marker again, instead of length. - (xref--query-replace-1): Update accordingly. +2015-11-25 Paul Eggert -2016-01-30 Artur Malabarba + * src/undo.c (record_property_change): Remove now-unused local. - * lisp/progmodes/xref.el (xref-pop-marker-stack): Downgrade errors +2015-11-25 Phillip Lord - Signal user-errors instead. + run_undoable_changes now called from insdel. -2016-01-30 Eli Zaretskii + The original calls from inside undo.c are not always at a safe position + to call lisp, as they originate in varied positions within insdel.c. + Calling them directly from prepare_to_modify_buffer_1 ensures that they + are always run at the same point. - Document 'describe-symbol' + * src/undo.c (run_undoable_changes,syms_of_undo): Remove function + and symbol used. + * src/insdel.c (run_undoable_changes): Add function and symbol. - * doc/emacs/help.texi (Help Summary): Mention "C-h o". - (Name Help): Document "C-h o" and describe-symbol. +2015-11-25 Eli Zaretskii - * lisp/help-fns.el (describe-symbol): Doc fix. + Improve and update documentation of search commands -2016-01-30 Paul Eggert + * doc/emacs/search.texi (Lax Search): Renamed from "Search Case"; + all references changed. Move the description of lax-whitespace + here. Add description of the new character folding features and + additional customizable options. + (Isearch Yank): Move before "Error in Search". + (Basic Isearch): Improve wording. Add index entries. Add short + description of how to abandon search, making this subsection a + complete introduction to search basics. + (Repeat Isearch): Add index entries. Describe additional + customizable options. Describe mouse clicks. + (Isearch Yank): Add index entries. Describe mouse-2 click in echo + area. Describe more customizable options. + (Error in Isearch): Add index entries. + (Special Isearch): Move actual description of some isearch + commands to other sections, leaving here just the summary of the + commands. Add command that toggles character folding. Describe + commands, like "C-h C-h", that were previously omitted for some + reason. + (Not Exiting Isearch): Describe search-exit-option. Add index + entries. + (Word Search): Describe eww-search-word and eww-search-prefix. + (Symbol Search): Add index entries. + (Regexp Search): Describe regexp-search-ring-max. + (Replacement and Lax Matches): Renamed from "Replacement and + Case"; all references changed. Describe lax-whitespace matching + in replace commands and related options. Describe character + folding in replace commands and related options. + (Query Replace): Describe query-replace-from-to-separator and the + new history features. Add index entries for highlighted text. + Describe query-replace-skip-read-only. Describe more keys + accepted by query-replace. + (Other Repeating Search): More index entries for Occur. Describe + list-matching-lines-default-context-lines. + (Search Customizations): New section, documents customizable + options that were not documented until now. + * doc/emacs/glossary.texi (Glossary): Add "Case Folding" and + "Character Folding". - Change test name to avoid spellcheck issue. + * etc/NEWS: Move search- and replace-related entries to a single + parent section. -2016-01-30 Eli Zaretskii + * lisp/replace.el (query-replace-show-replacement): Doc fix. + * lisp/isearch.el (search-nonincremental-instead) + (isearch-hide-immediately): Doc fixes. - Avoid signaling an error in 'describe-symbol' +2015-11-25 Katsumi Yamaoka - * lisp/help-fns.el (describe-symbol): Avoid errors when the symbol - exists as a function/variable/face/etc., but is undocumented. + Remove nnml-retrieve-groups that is unnecessary and somewhat problematic - * test/automated/help-fns.el (help-fns-test-describe-symbol): New - test. + * lisp/gnus/nnml.el (nnml-retrieve-groups): Remove. See: + and + -2016-01-30 Eli Zaretskii +2015-11-25 Paul Eggert - * INSTALL (--with-cairo): Document this new configure option. + Fix module_format_fun_env when dynlib_addr fails -2016-01-30 Eli Zaretskii + * src/emacs-module.c (module_format_fun_env): + exprintf doesn’t support %p, so use %x. Reported by Eli Zaretskii in: + http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02122.html - Document that GNU Make >= 3.81 is required to build Emacs +2015-11-25 Paul Eggert - * doc/lispref/internals.texi (Building Emacs): Document that GNU - Make 3.81 or later is now required. + Disambiguate variable help a bit better -2016-01-30 Artur Malabarba + * lisp/help-fns.el (describe-variable): Quote the + variable’s value if it is a symbol other than t or nil. + See: T.V Raman in: + http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02147.html - Backport: * lisp/emacs-lisp/package.el: Refactor -with-work-buffer-async. 2015-11-24 Dmitry Gutov Pass SVN commit message through log-edit-extract-headers @@ -12717,15 +9438,6 @@ `url-insert-buffer-contents'. (url-insert-buffer-contents): New function -2016-01-30 Eli Zaretskii - - * CONTRIBUTE (Branches): Improve wording for back-ported commits. - -2016-01-30 Dmitry Gutov - - Merge branch 'master' into emacs-25 - -2016-01-30 Dmitry Gutov 2015-11-15 Stefan Monnier * lisp/progmodes/verilog-mode.el: Use with-silent-modifications @@ -12845,11 +9557,6 @@ (xref-backend-references, xref-backend-definitions) (xref-backend-apropos): New generic methods. -2016-01-30 Juri Linkov - - Support rectangular regions for more commands - - * lisp/simple.el (region-extract-function): Handle the arg value ‘bounds’. 2015-11-13 Juri Linkov Support rectangular regions for more commands @@ -12893,7 +9600,6 @@ Search for all matches in the hit line. Add `highlight' face to the matched region in the summary. Update both callers. -2016-01-30 Dmitry Gutov 2015-11-13 Dmitry Gutov Replace xref-match-bounds with xref-match-length @@ -12911,16 +9617,6 @@ (xref-query-replace): Ditto. And check that the search results are up-to-date. -2016-01-30 John Wiegley - - Merge remote-tracking branch 'origin/master' into emacs-25 - -2016-01-30 l3thal - - Merge branch 'erc-async-reconnect' into emacs-25 - - Reconnect asynchronously. - 2015-11-13 Paul Eggert Merge from gnulib @@ -12940,138 +9636,6 @@ mflt_run to leave the output areas unchanged on failure, as this isn’t part of its interface spec. -2016-01-30 Eli Zaretskii - - Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25 - -2016-01-30 Paul Eggert - - Port recent XCB changes to 64-bit ‘long int’ - - For historical reasons, libX11 represents 32-bit values like Atoms as - ‘long int’ even on platforms where ‘long int’ is 64 bits. XCB doesn’t - do that, so adapt the recent XCB code to behave properly on 64-bit - platforms. Also, fix what appears to be a bug in the interpretation - of xcb_get_property_value_length, at least on my Fedora platform - which is running libxcb-1.11-5.fc21. - * src/xfns.c (x_real_pos_and_offsets): - * src/xterm.c (get_current_wm_state): - xcb_get_property_value_length returns a byte count, not a word count. - For 32-bit quantities, xcb_get_property_value returns a vector - of 32-bit words, not of (possibly 64-bit) long int. - - Backport. - -2016-01-30 Paul Eggert - - * src/undo.c (run_undoable_change): Now static. - - Backport. - -2016-01-30 Eli Zaretskii - - Remove support for ':timeout' from w32 tray notifications - - * src/w32fns.c (Fw32_notification_notify): Delete the code that - supports ':timeout'. - (syms_of_w32fns): Don't DEFSYM ':timeout'. This avoids clashes - with dbusbind.c when D-Bus is compiled in. - - * doc/lispref/os.texi (Desktop Notifications): Don't mention - ':timeout'. - - Backport. - -2016-01-30 Juanma Barranquero - - * test/automated/simple-test.el: Add test for bug#20698 (bug#21885) - - (simple-test--transpositions): New macro. - (simple-transpose-subr): New test. - - Backport. - -2016-01-30 Juanma Barranquero - - * lisp/progmodes/elisp-mode.el: Declare function `project-roots' - - Backport. - -2016-01-30 Juanma Barranquero - - * src/undo.c: Small fixes for previous change - - (run_undoable_change): Mark void argument list. - (record_property_change): Remove unused variable `boundary'. - - Backport. - -2016-01-30 Eli Zaretskii - - Add a few more variables to redisplay--variables - - * lisp/frame.el (redisplay--variables): Add bidi-paragraph-direction - and bidi-display-reordering to the list. - - Backport. - -2016-01-30 Eli Zaretskii - - * lisp/loadup.el: Enlarge the size of the hash table to 80000. - - Backport. - -2016-01-30 Eli Barzilay - - Fix point positioning after transposing with negative arg - - * lisp/simple.el (transpose-subr): When invoked with a negative - argument, move point to after the transposed text, like we do - when invoked with a positive argument. (Bug#21885) - - Backport. - -2016-01-30 Eli Zaretskii - - Fix last change in shr.el - - * lisp/net/shr.el (shr--have-one-fringe-p): Rename from - have-fringes-p. All callers changed. Doc fix. (Bug#21895) - - Backport. - -2016-01-30 Eli Zaretskii - - Fix last change - - * src/w32fns.c (syms_of_w32fns) [WINDOWSNT && !HAVE_DBUS]: - Don't DEFSYM tray notification symbols if D-Bus is being used. - - Backport. - -2016-01-30 Eli Zaretskii - - Another fix for MinGW64 and Cygwin builds due to notifications - - * src/w32fns.c: Ifdef away tray notification code if D-Bus is - being compiled into Emacs. - (syms_of_w32fns) [WINDOWSNT && !HAVE_DBUS]: Don't defsubr - Sw32_notification_notify and Sw32_notification_close if the code - is not compiled. Reported by Andy Moreton . - - Backport. - -2016-01-30 YAMAMOTO Mitsuharu - - Remove intern calls and XXX comments from Fx_export_frames - - * src/xfns.c (Fx_export_frames): Use Qpdf, Qpng, Qpostscript, and - Qsvg instead of intern calls. Use "postscript" instead of "ps" - for consistency with image types. Remove XXX comments. - (syms_of_xfns) : DEFSYM it. - - Backport. - 2015-11-13 Paul Eggert Port recent XCB changes to 64-bit ‘long int’ @@ -31981,7 +28545,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit 2d231aad9a24eda1e36e0b33d96f31aa7e29a737 (inclusive). +commit 3f43da09956b663d92f578e41bcacb8742bb6bba (inclusive). See ChangeLog.1 for earlier changes. ;; Local Variables: commit 2ee29634fe25352fb320bc0e04e0cae3eca5ad97 Author: Paul Eggert Date: Sat Jan 30 14:20:57 2016 -0800 Shrink static heap a bit * src/sheap.h: Include lisp.h, for Lisp_Object. (STATIC_HEAP_SIZE): Now an enum constant, not a macro. Make it 2 MiB * sizeof (Lisp_Object), which is a bit more conservative than the old value. (Bug#22086) diff --git a/src/sheap.h b/src/sheap.h index 4af3cf4..db059d2 100644 --- a/src/sheap.h +++ b/src/sheap.h @@ -18,12 +18,12 @@ You should have received a copy of the GNU General Public License along with GNU Emacs. If not, see . */ #include +#include "lisp.h" -#ifdef ENABLE_CHECKING -# define STATIC_HEAP_SIZE (28 * 1024 * 1024) -#else -# define STATIC_HEAP_SIZE (19 * 1024 * 1024) -#endif +/* Size of the static heap. Guess a value that is probably too large, + by up to a factor of two or so. Typically the unused part is not + paged in and so does not cost much. */ +enum { STATIC_HEAP_SIZE = sizeof (Lisp_Object) << 21 }; extern char bss_sbrk_buffer[STATIC_HEAP_SIZE]; extern char *max_bss_sbrk_ptr; commit 3d82a8ee4bd392ae536c8c3640140d1d0f594f44 Author: Paul Eggert Date: Sat Jan 30 14:20:57 2016 -0800 Fix extern symbols defined and not used * src/alloc.c: Always include . (malloc_warning) [!SIGDANGER && (SYSTEM_MALLOC || HYBRID_MALLOC)]: Do not define; unused. * src/emacs.c, src/lisp.h (might_dump) [!DOUG_LEA_MALLOC]: Now static. * src/gmalloc.c (gdefault_morecore): Rename from __default_morecore, to avoid collision with glibc. Now static. All uses changed. * src/lastfile.c (my_edata): Define only if ((!defined SYSTEM_MALLOC && !defined HYBRID_MALLOC && !defined WINDOWSNT) \ || defined CYGWIN || defined DARWIN_OS). (Bug#22086) diff --git a/src/alloc.c b/src/alloc.c index b1d3f2e..57ef4c5 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -22,10 +22,7 @@ along with GNU Emacs. If not, see . */ #include #include /* For CHAR_BIT. */ - -#ifdef ENABLE_CHECKING -#include /* For SIGABRT. */ -#endif +#include /* For SIGABRT, SIGDANGER. */ #ifdef HAVE_PTHREAD #include @@ -565,6 +562,8 @@ static struct Lisp_Finalizer doomed_finalizers; Malloc ************************************************************************/ +#if defined SIGDANGER || (!defined SYSTEM_MALLOC && !defined HYBRID_MALLOC) + /* Function malloc calls this if it finds we are near exhausting storage. */ void @@ -573,6 +572,7 @@ malloc_warning (const char *str) pending_malloc_warning = str; } +#endif /* Display an already-pending malloc warning. */ diff --git a/src/emacs.c b/src/emacs.c index de770a6..540bf73 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -128,6 +128,9 @@ Lisp_Object Vlibrary_cache; bool initialized; /* Set to true if this instance of Emacs might dump. */ +#ifndef DOUG_LEA_MALLOC +static +#endif bool might_dump; #ifdef DARWIN_OS diff --git a/src/gmalloc.c b/src/gmalloc.c index ca86276..282216a 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c @@ -56,7 +56,6 @@ License along with this library. If not, see . extern void (*__MALLOC_HOOK_VOLATILE __after_morecore_hook) (void); extern void (*__MALLOC_HOOK_VOLATILE __malloc_initialize_hook) (void); extern void *(*__morecore) (ptrdiff_t); -extern void *__default_morecore (ptrdiff_t); #endif /* If HYBRID_MALLOC is defined, then temacs will use malloc, @@ -1512,8 +1511,8 @@ extern void *__sbrk (ptrdiff_t increment); /* Allocate INCREMENT more bytes of data space, and return the start of data space, or NULL on errors. If INCREMENT is negative, shrink data space. */ -void * -__default_morecore (ptrdiff_t increment) +static void * +gdefault_morecore (ptrdiff_t increment) { void *result; #ifdef HYBRID_MALLOC @@ -1528,7 +1527,7 @@ __default_morecore (ptrdiff_t increment) return result; } -void *(*__morecore) (ptrdiff_t) = __default_morecore; +void *(*__morecore) (ptrdiff_t) = gdefault_morecore; /* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc. diff --git a/src/lastfile.c b/src/lastfile.c index 2d0bcc7..9c73fb4 100644 --- a/src/lastfile.c +++ b/src/lastfile.c @@ -38,7 +38,10 @@ along with GNU Emacs. If not, see . */ #include "lisp.h" +#if ((!defined SYSTEM_MALLOC && !defined HYBRID_MALLOC && !defined WINDOWSNT) \ + || defined CYGWIN || defined DARWIN_OS) char my_edata[] = "End of Emacs initialized data"; +#endif /* Help unexec locate the end of the .bss area used by Emacs (which isn't always a separate section in NT executables). */ diff --git a/src/lisp.h b/src/lisp.h index cafcfde..ef86c4f 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -619,7 +619,9 @@ extern _Noreturn Lisp_Object wrong_type_argument (Lisp_Object, Lisp_Object); extern _Noreturn void wrong_choice (Lisp_Object, Lisp_Object); /* Defined in emacs.c. */ +#ifdef DOUG_LEA_MALLOC extern bool might_dump; +#endif /* True means Emacs has already been initialized. Used during startup to detect startup of dumped Emacs. */ extern bool initialized; commit 7fdc3cf046ee112b883752ea15ca8cb05444d12f Author: Paul Eggert Date: Sat Jan 30 14:20:57 2016 -0800 Build lib/e-*.o only on platforms that need it * configure.ac (hybrid malloc): Simplify configuration. (SHEAP_OBJ): Remove; no longer needed. (HYBRID_MALLOC): New var. Subst it. (HYBRID_MALLOC_LIB): New Automake conditional. * lib/Makefile.am (noinst_LIBRARIES): Add libegnu.a only if HYBRID_MALLOC_LIB. (libegnu_a_CPPFLAGS): Omit AM_CPPFLAGS; not needed. (MOSTLYCLEANFILES): Add libegnu.a. * src/Makefile.in (SHEAP_OBJ): Remove. (HYBRID_MALLOC): New macro. (base_obj): Use it to conditionally add sheap.o. (LIBEGNU_ARCHIVE): New macro. ($(LIBEGNU_ARCHIVE)): New rule, replacing $(lib)/libegnu.a. All uses of the latter replaced by the former. * src/alloc.c (USE_ALIGNED_ALLOC): Simplify configuration. Correct misspelling ALIGNED_ALLOC to HAVE_ALIGNED_ALLOC. * src/gmalloc.c: Update comment. * src/lisp.h (aligned_alloc) [!DOUG_LEA_MALLOC && !HYBRID_MALLOC && !SYSTEM_MALLOC]: New decl. (Bug#22086) diff --git a/configure.ac b/configure.ac index ef6ddc6..856c36c 100644 --- a/configure.ac +++ b/configure.ac @@ -2123,12 +2123,12 @@ case "$opsys" in esac if test "${system_malloc}" != yes && test "${doug_lea_malloc}" != yes \ - && test "${UNEXEC_OBJ}" = unexelf.o && test "${hybrid_malloc}" != no; then + && test "${UNEXEC_OBJ}" = unexelf.o; then hybrid_malloc=yes fi GMALLOC_OBJ= -SHEAP_OBJ= +HYBRID_MALLOC= if test "${system_malloc}" = "yes"; then AC_DEFINE([SYSTEM_MALLOC], 1, [Define to 1 to use the system memory allocator, even if it is not @@ -2140,10 +2140,10 @@ if test "${system_malloc}" = "yes"; then elif test "$hybrid_malloc" = yes; then AC_DEFINE(HYBRID_MALLOC, 1, [Define to use gmalloc before dumping and the system malloc after.]) + HYBRID_MALLOC=1 GNU_MALLOC= GNU_MALLOC_reason="only before dumping" GMALLOC_OBJ=gmalloc.o - SHEAP_OBJ=sheap.o VMLIMIT_OBJ= else test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o @@ -2163,8 +2163,9 @@ else of the main data segment.]) fi fi +AC_SUBST([HYBRID_MALLOC]) +AM_CONDITIONAL([HYBRID_MALLOC_LIB], [test -n "$HYBRID_MALLOC"]) AC_SUBST(GMALLOC_OBJ) -AC_SUBST(SHEAP_OBJ) AC_SUBST(VMLIMIT_OBJ) if test "$doug_lea_malloc" = "yes" && test "$hybrid_malloc" != yes; then diff --git a/lib/Makefile.am b/lib/Makefile.am index a1dd6a4..74bab4e 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1,3 +1,20 @@ +# Copyright 2016 Free Software Foundation, Inc. + +# This file is part of GNU Emacs. + +# GNU Emacs is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# GNU Emacs is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with GNU Emacs. If not, see . + BUILT_SOURCES = CLEANFILES = EXTRA_DIST = @@ -17,14 +34,16 @@ include gnulib.mk libgnu_a_SOURCES += openat-die.c save-cwd.c endif +if HYBRID_MALLOC_LIB noinst_LIBRARIES += libegnu.a +endif libegnu_a_SOURCES = $(libgnu_a_SOURCES) libegnu_a_LIBADD = $(patsubst %.o,e-%.o,$(libgnu_a_LIBADD)) EXTRA_libegnu_a_SOURCES = $(EXTRA_libgnu_a_SOURCES) libegnu_a_SHORTNAME = e - -libegnu_a_CPPFLAGS = $(AM_CPPFLAGS) -Demacs +libegnu_a_CPPFLAGS = -Demacs +MOSTLYCLEANFILES += libegnu.a .PHONY: bootstrap-clean diff --git a/src/Makefile.in b/src/Makefile.in index e59d3b1..1505758 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -254,8 +254,7 @@ XFIXES_CFLAGS = @XFIXES_CFLAGS@ ## widget.o if USE_X_TOOLKIT, otherwise empty. WIDGET_OBJ=@WIDGET_OBJ@ -## sheap.o if HYBRID_MALLOC, otherwise empty. -SHEAP_OBJ=@SHEAP_OBJ@ +HYBRID_MALLOC = @HYBRID_MALLOC@ ## cygw32.o if CYGWIN, otherwise empty. CYGWIN_OBJ=@CYGWIN_OBJ@ @@ -400,6 +399,7 @@ base_obj = dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ doprnt.o intervals.o textprop.o composite.o xml.o $(NOTIFY_OBJ) \ $(XWIDGETS_OBJ) \ profiler.o decompress.o \ + $(if $(HYBRID_MALLOC),sheap.o) \ $(SHEAP_OBJ) \ $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) \ $(W32_OBJ) $(WINDOW_SYSTEM_OBJ) $(XGSELOBJ) @@ -580,7 +580,9 @@ globals.h: gl-stamp; @true $(ALLOBJS): globals.h -$(lib)/libegnu.a: $(config_h) +LIBEGNU_ARCHIVE = $(lib)/lib$(if $(HYBRID_MALLOC),e)gnu.a + +$(LIBEGNU_ARCHIVE): $(config_h) $(MAKE) -C $(lib) all ## We have to create $(etc) here because init_cmdargs tests its @@ -588,9 +590,9 @@ $(lib)/libegnu.a: $(config_h) ## This goes on to affect various things, and the emacs binary fails ## to start if Vinstallation_directory has the wrong value. temacs$(EXEEXT): $(LIBXMENU) $(ALLOBJS) \ - $(lib)/libegnu.a $(EMACSRES) ${charsets} ${charscript} + $(LIBEGNU_ARCHIVE) $(EMACSRES) ${charsets} ${charscript} $(AM_V_CCLD)$(CC) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \ - -o temacs $(ALLOBJS) $(lib)/libegnu.a $(W32_RES_LINK) $(LIBES) + -o temacs $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(W32_RES_LINK) $(LIBES) $(MKDIR_P) $(etc) ifneq ($(CANNOT_DUMP),yes) $(PAXCTL_if_present) -r $@ diff --git a/src/alloc.c b/src/alloc.c index 039b728..b1d3f2e 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -1123,17 +1123,12 @@ lisp_free (void *block) clang 3.3 anyway. */ #if ! ADDRESS_SANITIZER -# if !defined SYSTEM_MALLOC && !defined DOUG_LEA_MALLOC && !defined HYBRID_MALLOC -# define USE_ALIGNED_ALLOC 1 -/* Defined in gmalloc.c. */ -void *aligned_alloc (size_t, size_t); -# elif defined HYBRID_MALLOC -# if defined ALIGNED_ALLOC || defined HAVE_POSIX_MEMALIGN +# if defined HYBRID_MALLOC +# if defined HAVE_ALIGNED_ALLOC || defined HAVE_POSIX_MEMALIGN # define USE_ALIGNED_ALLOC 1 -# define aligned_alloc hybrid_aligned_alloc -/* Defined in gmalloc.c. */ -void *aligned_alloc (size_t, size_t); # endif +# elif !defined SYSTEM_MALLOC && !defined DOUG_LEA_MALLOC +# define USE_ALIGNED_ALLOC 1 # elif defined HAVE_ALIGNED_ALLOC # define USE_ALIGNED_ALLOC 1 # elif defined HAVE_POSIX_MEMALIGN diff --git a/src/gmalloc.c b/src/gmalloc.c index 4feff83..ca86276 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c @@ -65,13 +65,7 @@ extern void *__default_morecore (ptrdiff_t); however, will use the system malloc, realloc.... In other source files, malloc, realloc... are renamed hybrid_malloc, hybrid_realloc... via macros in conf_post.h. hybrid_malloc and - friends are wrapper functions defined later in this file. - aligned_alloc is defined as a macro only in alloc.c. - - As of this writing (August 2014), Cygwin is the only platform on - which HYBRID_MACRO is defined. Any other platform that wants to - define it will have to define the macros DUMPED and - ALLOCATED_BEFORE_DUMPING, defined below for Cygwin. */ + friends are wrapper functions defined later in this file. */ #undef malloc #undef realloc #undef calloc diff --git a/src/lisp.h b/src/lisp.h index 4f4ec2c..cafcfde 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3772,6 +3772,7 @@ INLINE void (check_cons_list) (void) { lisp_h_check_cons_list (); } #if !defined DOUG_LEA_MALLOC && !defined HYBRID_MALLOC && !defined SYSTEM_MALLOC /* Defined in gmalloc.c. */ extern size_t __malloc_extra_blocks; +extern void *aligned_alloc (size_t, size_t); #endif extern void malloc_enable_thread (void); commit a4817d834e7d125d31049dfb6fd0a0df4782bad0 Author: Paul Eggert Date: Sat Jan 30 14:20:57 2016 -0800 Include when advisable This should help insulate us better from future glibc changes. It is good hygiene to include .h files for APIs that Emacs uses. Fix type clashes between Emacs and GNU (Bug#22086). * configure.ac: Check for malloc.h. * src/alloc.c: Include depending on HAVE_MALLOC_H, not on DOUG_LEA_MALLOC. * src/emacs.c, src/gmalloc.c (malloc_enable_thread): Remove decl (now in lisp.h). * src/gmalloc.c: Include stddef.h earlier, for ptrdiff_t. [emacs]: Include lisp.h. [HAVE_MALLOC_H]: Include . (__MALLOC_HOOK_VOLATILE): New macro, if not already defined. (__after_morecore_hook, __malloc_initialize_hook, __morecore) (__default_morecore): [!HAVE_MALLOC_H]: New decls near non-inclusion of . (calloc): Make it clear that the macro should not be used. Remove unused decl. (malloc_info): New macro, to avoid clash with glibc . (__morecore, __default_morecore, __after_morecore_hook) (__malloc_extra_blocks, __malloc_initialize_hook, __free_hook) (__malloc_hook, __realloc_hook, __memalign_hook, memory_warnings): Remove later decls. (gmalloc_hook, gfree_hook, grealloc_hook): Rename from __malloc_hook, __free_hook, __realloc_hook to avoid type collision with glibc . All uses changed. (gmalloc_hook): (__malloc_extra_blocks) [DOUG_LEA_MALLOC||HYBRID_MALLOC||SYSTEM_MALLOC]: Now static. (gmalloc_hook, __malloc_extra_blocks): Define even if [!HYBRID_MALLOC]. (__malloc_initialize_hook, __after_morecore_hook): Declare with types compatible with glibc. (__memalign_hook, hybrid_calloc) [HYBRID_MALLOC]: Remove. All uses removed. * src/lisp.h (__malloc_extra_blocks, malloc_enable_thread): New decls. * src/ralloc.c, src/vm-limit.c: Simplify includes and include if available. diff --git a/configure.ac b/configure.ac index cd3a9bc..ef6ddc6 100644 --- a/configure.ac +++ b/configure.ac @@ -1589,6 +1589,7 @@ fi dnl checks for header files AC_CHECK_HEADERS_ONCE( + malloc.h sys/systeminfo.h sys/sysinfo.h coff.h pty.h diff --git a/src/alloc.c b/src/alloc.c index 617148e..039b728 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -59,6 +59,10 @@ along with GNU Emacs. If not, see . */ #include "dosfns.h" /* For dos_memory_info. */ #endif +#ifdef HAVE_MALLOC_H +# include +#endif + #if (defined ENABLE_CHECKING \ && defined HAVE_VALGRIND_VALGRIND_H \ && !defined USE_VALGRIND) @@ -107,8 +111,6 @@ my_heap_start (void) #ifdef DOUG_LEA_MALLOC -#include - /* Specify maximum number of areas to mmap. It would be nice to use a value that explicitly means "no limit". */ diff --git a/src/conf_post.h b/src/conf_post.h index 9f4becd..c5eec5a 100644 --- a/src/conf_post.h +++ b/src/conf_post.h @@ -99,7 +99,6 @@ typedef bool bool_bf; #ifdef emacs #define malloc hybrid_malloc #define realloc hybrid_realloc -#define calloc hybrid_calloc #define aligned_alloc hybrid_aligned_alloc #define free hybrid_free #endif diff --git a/src/emacs.c b/src/emacs.c index 7cfc91e..de770a6 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -134,8 +134,6 @@ bool might_dump; extern void unexec_init_emacs_zone (void); #endif -extern void malloc_enable_thread (void); - /* If true, Emacs should not attempt to use a window-specific code, but instead should use the virtual terminal under which it was started. */ bool inhibit_window_system; diff --git a/src/gmalloc.c b/src/gmalloc.c index 4fd3246..4feff83 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c @@ -25,6 +25,7 @@ License along with this library. If not, see . #define USE_PTHREAD #endif +#include #include #include #include @@ -38,6 +39,26 @@ License along with this library. If not, see . #include /* for sbrk */ #endif +#ifdef emacs +# include "lisp.h" +#endif + +#ifdef HAVE_MALLOC_H +# if 4 < __GNUC__ + (2 <= __GNUC_MINOR__) +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# endif +# include +#endif +#ifndef __MALLOC_HOOK_VOLATILE +# define __MALLOC_HOOK_VOLATILE volatile +#endif +#ifndef HAVE_MALLOC_H +extern void (*__MALLOC_HOOK_VOLATILE __after_morecore_hook) (void); +extern void (*__MALLOC_HOOK_VOLATILE __malloc_initialize_hook) (void); +extern void *(*__morecore) (ptrdiff_t); +extern void *__default_morecore (ptrdiff_t); +#endif + /* If HYBRID_MALLOC is defined, then temacs will use malloc, realloc... as defined in this file (and renamed gmalloc, grealloc... via the macros that follow). The dumped emacs, @@ -58,9 +79,10 @@ License along with this library. If not, see . #undef free #define malloc gmalloc #define realloc grealloc -#define calloc gcalloc +#define calloc do_not_call_me /* Emacs never calls calloc. */ #define aligned_alloc galigned_alloc #define free gfree +#define malloc_info gmalloc_info #ifdef HYBRID_MALLOC # include "sheap.h" @@ -77,15 +99,6 @@ extern "C" { #endif -#include - -/* Underlying allocation function; successive calls should - return contiguous pieces of memory. */ -extern void *(*__morecore) (ptrdiff_t size); - -/* Default value of `__morecore'. */ -extern void *__default_morecore (ptrdiff_t size); - #ifdef HYBRID_MALLOC #define extern static #endif @@ -95,9 +108,7 @@ extern void *malloc (size_t size) ATTRIBUTE_MALLOC_SIZE ((1)); /* Re-allocate the previously allocated block in ptr, making the new block SIZE bytes long. */ extern void *realloc (void *ptr, size_t size) ATTRIBUTE_ALLOC_SIZE ((2)); -/* Allocate NMEMB elements of SIZE bytes each, all initialized to 0. */ -extern void *calloc (size_t nmemb, size_t size) ATTRIBUTE_MALLOC_SIZE ((1,2)); -/* Free a block allocated by `malloc', `realloc' or `calloc'. */ +/* Free a block. */ extern void free (void *ptr); /* Allocate SIZE bytes allocated to ALIGNMENT bytes. */ @@ -107,11 +118,6 @@ extern void *memalign (size_t, size_t); extern int posix_memalign (void **, size_t, size_t); #endif -#ifdef USE_PTHREAD -/* Set up mutexes and make malloc etc. thread-safe. */ -extern void malloc_enable_thread (void); -#endif - /* The allocator divides the heap into blocks of fixed size; large requests receive one or more whole blocks, and small requests receive a fragment of a block. Fragment sizes are powers of two, @@ -243,26 +249,11 @@ extern int _malloc_thread_enabled_p; #define UNLOCK_ALIGNED_BLOCKS() #endif -/* If not NULL, this function is called after each time - `__morecore' is called to increase the data size. */ -extern void (*__after_morecore_hook) (void); - -/* Number of extra blocks to get each time we ask for more core. - This reduces the frequency of calling `(*__morecore)'. */ -extern size_t __malloc_extra_blocks; - /* Nonzero if `malloc' has been called and done its initialization. */ extern int __malloc_initialized; /* Function called to initialize malloc data structures. */ extern int __malloc_initialize (void); -/* Hooks for debugging versions. */ -extern void (*__malloc_initialize_hook) (void); -extern void (*__free_hook) (void *ptr); -extern void *(*__malloc_hook) (size_t size); -extern void *(*__realloc_hook) (void *ptr, size_t size); -extern void *(*__memalign_hook) (size_t size, size_t alignment); - #ifdef GC_MCHECK /* Return values for `mprobe': these are the kinds of inconsistencies that @@ -304,9 +295,6 @@ struct mstats /* Pick up the current statistics. */ extern struct mstats mstats (void); -/* Call WARNFUN with a warning message when memory usage is high. */ -extern void memory_warnings (void *start, void (*warnfun) (const char *)); - #endif #undef extern @@ -337,13 +325,11 @@ License along with this library. If not, see . #include -void *(*__morecore) (ptrdiff_t size) = __default_morecore; +/* Debugging hook for 'malloc'. */ +static void *(*__MALLOC_HOOK_VOLATILE gmalloc_hook) (size_t); #ifndef HYBRID_MALLOC -/* Debugging hook for `malloc'. */ -void *(*__malloc_hook) (size_t size); - /* Pointer to the base of the first block. */ char *_heapbase; @@ -368,10 +354,9 @@ size_t _bytes_free; /* Are you experienced? */ int __malloc_initialized; -size_t __malloc_extra_blocks; - -void (*__malloc_initialize_hook) (void); -void (*__after_morecore_hook) (void); +void (*__MALLOC_HOOK_VOLATILE __malloc_initialize_hook) (void); +void (*__MALLOC_HOOK_VOLATILE __after_morecore_hook) (void); +void *(*__morecore) (ptrdiff_t); #else @@ -379,6 +364,13 @@ static struct list _fraghead[BLOCKLOG]; #endif /* HYBRID_MALLOC */ +/* Number of extra blocks to get each time we ask for more core. + This reduces the frequency of calling `(*__morecore)'. */ +#if defined DOUG_LEA_MALLOC || defined HYBRID_MALLOC || defined SYSTEM_MALLOC +static +#endif +size_t __malloc_extra_blocks; + /* Number of info entries. */ static size_t heapsize; @@ -935,15 +927,15 @@ malloc (size_t size) if (!__malloc_initialized && !__malloc_initialize ()) return NULL; - /* Copy the value of __malloc_hook to an automatic variable in case - __malloc_hook is modified in another thread between its + /* Copy the value of gmalloc_hook to an automatic variable in case + gmalloc_hook is modified in another thread between its NULL-check and the use. Note: Strictly speaking, this is not a right solution. We should use mutexes to access non-read-only variables that are shared among multiple threads. We just leave it for compatibility with - glibc malloc (i.e., assignments to __malloc_hook) for now. */ - hook = __malloc_hook; + glibc malloc (i.e., assignments to gmalloc_hook) for now. */ + hook = gmalloc_hook; return (hook != NULL ? *hook : _malloc_internal) (size); } @@ -995,10 +987,10 @@ License along with this library. If not, see . The author may be reached (Email) at the address mike@ai.mit.edu, or (US mail) as Mike Haertel c/o Free Software Foundation. */ +/* Debugging hook for free. */ +static void (*__MALLOC_HOOK_VOLATILE gfree_hook) (void *); #ifndef HYBRID_MALLOC -/* Debugging hook for free. */ -void (*__free_hook) (void *__ptr); /* List of blocks allocated by aligned_alloc. */ struct alignlist *_aligned_blocks = NULL; @@ -1251,7 +1243,7 @@ _free_internal_nolock (void *ptr) } /* Return memory to the heap. - Like `free' but don't call a __free_hook if there is one. */ + Like 'free' but don't call a hook if there is one. */ void _free_internal (void *ptr) { @@ -1265,7 +1257,7 @@ _free_internal (void *ptr) void free (void *ptr) { - void (*hook) (void *) = __free_hook; + void (*hook) (void *) = gfree_hook; if (hook != NULL) (*hook) (ptr); @@ -1309,10 +1301,8 @@ License along with this library. If not, see . #define min(a, b) ((a) < (b) ? (a) : (b)) #endif -#ifndef HYBRID_MALLOC /* Debugging hook for realloc. */ -void *(*__realloc_hook) (void *ptr, size_t size); -#endif +static void *(*grealloc_hook) (void *, size_t); /* Resize the given region to the new size, returning a pointer to the (possibly moved) region. This is optimized for speed; @@ -1456,7 +1446,7 @@ realloc (void *ptr, size_t size) if (!__malloc_initialized && !__malloc_initialize ()) return NULL; - hook = __realloc_hook; + hook = grealloc_hook; return (hook != NULL ? *hook : _realloc_internal) (ptr, size); } /* Copyright (C) 1991, 1992, 1994 Free Software Foundation, Inc. @@ -1479,6 +1469,7 @@ License along with this library. If not, see . /* Allocate an array of NMEMB elements each SIZE bytes long. The entire array is initialized to zeros. */ +#ifndef calloc void * calloc (size_t nmemb, size_t size) { @@ -1496,6 +1487,7 @@ calloc (size_t nmemb, size_t size) return memset (result, 0, bytes); return result; } +#endif /* Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -1541,6 +1533,9 @@ __default_morecore (ptrdiff_t increment) return NULL; return result; } + +void *(*__morecore) (ptrdiff_t) = __default_morecore; + /* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc. This library is free software; you can redistribute it and/or @@ -1556,19 +1551,11 @@ General Public License for more details. You should have received a copy of the GNU General Public License along with this library. If not, see . */ -#ifndef HYBRID_MALLOC -void *(*__memalign_hook) (size_t size, size_t alignment); -#endif - void * aligned_alloc (size_t alignment, size_t size) { void *result; size_t adj, lastadj; - void *(*hook) (size_t, size_t) = __memalign_hook; - - if (hook) - return (*hook) (alignment, size); /* Allocate a block with enough extra space to pad the block with up to (ALIGNMENT - 1) bytes if necessary. */ @@ -1731,7 +1718,6 @@ valloc (size_t size) /* Declare system malloc and friends. */ extern void *malloc (size_t size); extern void *realloc (void *ptr, size_t size); -extern void *calloc (size_t nmemb, size_t size); extern void free (void *ptr); #ifdef HAVE_ALIGNED_ALLOC extern void *aligned_alloc (size_t alignment, size_t size); @@ -1750,14 +1736,6 @@ hybrid_malloc (size_t size) return gmalloc (size); } -void * -hybrid_calloc (size_t nmemb, size_t size) -{ - if (DUMPED) - return calloc (nmemb, size); - return gcalloc (nmemb, size); -} - void hybrid_free (void *ptr) { @@ -1947,9 +1925,9 @@ freehook (void *ptr) else hdr = NULL; - __free_hook = old_free_hook; + gfree_hook = old_free_hook; free (hdr); - __free_hook = freehook; + gfree_hook = freehook; } static void * @@ -1957,9 +1935,9 @@ mallochook (size_t size) { struct hdr *hdr; - __malloc_hook = old_malloc_hook; + gmalloc_hook = old_malloc_hook; hdr = malloc (sizeof *hdr + size + 1); - __malloc_hook = mallochook; + gmalloc_hook = mallochook; if (hdr == NULL) return NULL; @@ -1985,13 +1963,13 @@ reallochook (void *ptr, size_t size) memset ((char *) ptr + size, FREEFLOOD, osize - size); } - __free_hook = old_free_hook; - __malloc_hook = old_malloc_hook; - __realloc_hook = old_realloc_hook; + gfree_hook = old_free_hook; + gmalloc_hook = old_malloc_hook; + grealloc_hook = old_realloc_hook; hdr = realloc (hdr, sizeof *hdr + size + 1); - __free_hook = freehook; - __malloc_hook = mallochook; - __realloc_hook = reallochook; + gfree_hook = freehook; + gmalloc_hook = mallochook; + grealloc_hook = reallochook; if (hdr == NULL) return NULL; @@ -2048,12 +2026,12 @@ mcheck (void (*func) (enum mcheck_status)) /* These hooks may not be safely inserted if malloc is already in use. */ if (!__malloc_initialized && !mcheck_used) { - old_free_hook = __free_hook; - __free_hook = freehook; - old_malloc_hook = __malloc_hook; - __malloc_hook = mallochook; - old_realloc_hook = __realloc_hook; - __realloc_hook = reallochook; + old_free_hook = gfree_hook; + gfree_hook = freehook; + old_malloc_hook = gmalloc_hook; + gmalloc_hook = mallochook; + old_realloc_hook = grealloc_hook; + grealloc_hook = reallochook; mcheck_used = 1; } diff --git a/src/lisp.h b/src/lisp.h index 3c8e3dd..4f4ec2c 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3769,6 +3769,12 @@ extern void check_cons_list (void); INLINE void (check_cons_list) (void) { lisp_h_check_cons_list (); } #endif +#if !defined DOUG_LEA_MALLOC && !defined HYBRID_MALLOC && !defined SYSTEM_MALLOC +/* Defined in gmalloc.c. */ +extern size_t __malloc_extra_blocks; +#endif +extern void malloc_enable_thread (void); + #ifdef REL_ALLOC /* Defined in ralloc.c. */ extern void *r_alloc (void **, size_t) ATTRIBUTE_ALLOC_SIZE ((2)); diff --git a/src/ralloc.c b/src/ralloc.c index 12d2fa9..d1a9e01 100644 --- a/src/ralloc.c +++ b/src/ralloc.c @@ -22,31 +22,15 @@ along with GNU Emacs. If not, see . */ rather than all of them. This means allowing for a possible hole between the first bloc and the end of malloc storage. */ -#ifdef emacs - #include -#include "lisp.h" /* Needed for VALBITS. */ -#include "blockinput.h" - -#include - -#ifdef DOUG_LEA_MALLOC -#define M_TOP_PAD -2 -extern int mallopt (int, int); -#else /* not DOUG_LEA_MALLOC */ -#if !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC -extern size_t __malloc_extra_blocks; -#endif /* not SYSTEM_MALLOC and not HYBRID_MALLOC */ -#endif /* not DOUG_LEA_MALLOC */ - -#else /* not emacs */ - #include -#include - -#endif /* not emacs */ +#ifdef emacs +# include "lisp.h" +# include "blockinput.h" +# include +#endif #include "getpagesize.h" @@ -95,7 +79,9 @@ static int extra_bytes; /* The hook `malloc' uses for the function which gets more space from the system. */ -#if !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC +#ifdef HAVE_MALLOC_H +# include +#else extern void *(*__morecore) (ptrdiff_t); #endif diff --git a/src/vm-limit.c b/src/vm-limit.c index 0c6dbdd..42f0470 100644 --- a/src/vm-limit.c +++ b/src/vm-limit.c @@ -51,9 +51,16 @@ char data_start[1] = { 1 }; # endif #endif -/* From gmalloc.c. */ -extern void (* __after_morecore_hook) (void); +#ifdef HAVE_MALLOC_H +# include +#endif +#ifndef __MALLOC_HOOK_VOLATILE +# define __MALLOC_HOOK_VOLATILE volatile +#endif +#ifndef HAVE_MALLOC_H extern void *(*__morecore) (ptrdiff_t); +extern void (*__MALLOC_HOOK_VOLATILE __after_morecore_hook) (void); +#endif /* From ralloc.c. */ #ifdef REL_ALLOC commit e4cd4a76a621927bc155a18353ef7fd09133887d Author: Paul Eggert Date: Sat Jan 30 14:20:57 2016 -0800 * src/alloc.c: Include "sheap.h". (alloc_unexec_pre, alloc_unexec_post) [HYBRID_MALLOC]: Set and clear bss_sbrk_did_unexec, on all platforms not just Cygwin. * src/lisp.h (alloc_unexec_pre, alloc_unexec_post) [!DOUG_LEA_MALLOC]: Declare unconditionally. * src/unexcw.c, src/unexelf.c (bss_sbrk_did_unexec): Remove decl. (unexec): Don’t set or clear bss_sbrk_did_unexec; the caller now does this. (Bug#22086) diff --git a/src/alloc.c b/src/alloc.c index d379761..617148e 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -35,6 +35,7 @@ along with GNU Emacs. If not, see . */ #include "dispextern.h" #include "intervals.h" #include "puresize.h" +#include "sheap.h" #include "systime.h" #include "character.h" #include "buffer.h" @@ -117,18 +118,6 @@ my_heap_start (void) inside glibc's malloc. */ static void *malloc_state_ptr; -/* Get and free this pointer; useful around unexec. */ -void -alloc_unexec_pre (void) -{ - malloc_state_ptr = malloc_get_state (); -} -void -alloc_unexec_post (void) -{ - free (malloc_state_ptr); -} - /* Restore the dumped malloc state. Because malloc can be invoked even before main (e.g. by the dynamic linker), the dumped malloc state must be restored as early as possible using this special hook. */ @@ -177,6 +166,30 @@ voidfuncptr __MALLOC_HOOK_VOLATILE __malloc_initialize_hook #endif +/* Allocator-related actions to do just before and after unexec. */ + +void +alloc_unexec_pre (void) +{ +#ifdef DOUG_LEA_MALLOC + malloc_state_ptr = malloc_get_state (); +#endif +#ifdef HYBRID_MALLOC + bss_sbrk_did_unexec = true; +#endif +} + +void +alloc_unexec_post (void) +{ +#ifdef DOUG_LEA_MALLOC + free (malloc_state_ptr); +#endif +#ifdef HYBRID_MALLOC + bss_sbrk_did_unexec = false; +#endif +} + /* Mark, unmark, query mark bit of a Lisp string. S must be a pointer to a struct Lisp_String. */ diff --git a/src/lisp.h b/src/lisp.h index 53f123d..3c8e3dd 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3602,13 +3602,8 @@ extern void mark_object (Lisp_Object); #if defined REL_ALLOC && !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC extern void refill_memory_reserve (void); #endif -#ifdef DOUG_LEA_MALLOC extern void alloc_unexec_pre (void); extern void alloc_unexec_post (void); -#else -INLINE void alloc_unexec_pre (void) {} -INLINE void alloc_unexec_post (void) {} -#endif extern const char *pending_malloc_warning; extern Lisp_Object zero_vector; extern Lisp_Object *stack_base; diff --git a/src/unexcw.c b/src/unexcw.c index e4aa356..6ebd8c6 100644 --- a/src/unexcw.c +++ b/src/unexcw.c @@ -30,8 +30,6 @@ along with GNU Emacs. If not, see . */ #define DOTEXE ".exe" -extern int bss_sbrk_did_unexec; - /* ** header for Windows executable files */ @@ -298,9 +296,7 @@ unexec (const char *outfile, const char *infile) ret = emacs_close (fd_in); assert (ret == 0); - bss_sbrk_did_unexec = 1; fixup_executable (fd_out); - bss_sbrk_did_unexec = 0; ret = emacs_close (fd_out); assert (ret == 0); diff --git a/src/unexelf.c b/src/unexelf.c index 3dc0456..e901994 100644 --- a/src/unexelf.c +++ b/src/unexelf.c @@ -211,10 +211,6 @@ entry_address (void *section_h, ptrdiff_t idx, ptrdiff_t entsize) typedef unsigned char byte; -#ifdef HYBRID_MALLOC -extern int bss_sbrk_did_unexec; -#endif - /* **************************************************************** * unexec * @@ -231,10 +227,6 @@ unexec (const char *new_name, const char *old_name) off_t new_file_size; void *new_break; -#ifdef HYBRID_MALLOC - bss_sbrk_did_unexec = 1; -#endif - /* Pointers to the base of the image of the two files. */ caddr_t old_base, new_base; commit e1a9f2099c2e683dffc4b898ce85ce935c4cb254 Author: Paul Eggert Date: Sat Jan 30 14:20:57 2016 -0800 Pacify --enable-gcc-warnings when HYBRID_MALLOC * src/buffer.c (init_buffer): * src/emacs.c (main): * src/xsmfns.c (smc_save_yourself_CB, x_session_initialize): Use emacs_get_current_dir_name, not get_current_dir_name. * src/conf_post.h (aligned_alloc) [HYBRID_MALLOC && emacs]: New macro. (HYBRID_GET_CURRENT_DIR_NAME, get_current_dir_name): Remove. * src/emacs.c: Include "sheap.h". (report_sheap_usage): Remove decl. (Fdump_emacs) [HYBRID_MALLOC]: Report usage directly. Don't assume ptrdiff_t can be printed as int. * src/gmalloc.c [HYBRID_MALLOC]: Include "sheap.h" rather than declaring its contents by hand. (get_current_dir_name, gget_current_dir_name) (hybrid_get_current_dir_name): Remove. (emacs_abort): Remove duplicate decl. (aligned_alloc): Undef, like malloc etc. (ALLOCATED_BEFORE_DUMPING): Now a static function, not a macro. Make it a bit more efficient. (malloc_find_object_address): Remove unused decl. (enum mcheck_status, mcheck, mprobe, mtrace, muntrace, struct mstats) (mstats, memory_warnings): Declare only if GC_MCHECK. * src/lisp.h (emacs_get_current_dir_name): New decl, replacing get_current_dir_name. * src/sheap.c: Include sheap.h first. (STATIC_HEAP_SIZE): Remove; now in sheap.h. (debug_sheap): Now static. (bss_sbrk_buffer_end): Remove; no longer used. (bss_sbrk_ptr): Now static and private. (bss_sbrk_did_unexec): Now bool. (BLOCKSIZE): Remove, to avoid GCC warning about its not being used. (bss_sbrk): Don't treat request_size 0 as special, since the code works without this being a special case. Avoid overflow if request size exceeds INT_MAX. (report_sheap_usage): Remove; now done in emacs.c. * src/sheap.h: New file. * src/sysdep.c (get_current_dir_name): Remove macro. Include "sheap.h". (emacs_get_current_dir_name): Rename function from get_current_dir_name. Handle HYBRID_MALLOC here; this is simpler. (Bug#22086) diff --git a/src/buffer.c b/src/buffer.c index 0c52eaf..3e41067 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -5277,7 +5277,7 @@ init_buffer (int initialized) if (NILP (BVAR (&buffer_defaults, enable_multibyte_characters))) Fset_buffer_multibyte (Qnil); - pwd = get_current_dir_name (); + pwd = emacs_get_current_dir_name (); if (!pwd) { diff --git a/src/conf_post.h b/src/conf_post.h index 5c332a0..9f4becd 100644 --- a/src/conf_post.h +++ b/src/conf_post.h @@ -100,11 +100,8 @@ typedef bool bool_bf; #define malloc hybrid_malloc #define realloc hybrid_realloc #define calloc hybrid_calloc +#define aligned_alloc hybrid_aligned_alloc #define free hybrid_free -#if defined HAVE_GET_CURRENT_DIR_NAME && !defined BROKEN_GET_CURRENT_DIR_NAME -#define HYBRID_GET_CURRENT_DIR_NAME 1 -#define get_current_dir_name hybrid_get_current_dir_name -#endif #endif #endif /* HYBRID_MALLOC */ diff --git a/src/emacs.c b/src/emacs.c index 7ba5cfe..7cfc91e 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -79,6 +79,7 @@ along with GNU Emacs. If not, see . */ #include "composite.h" #include "dispextern.h" #include "regex.h" +#include "sheap.h" #include "syntax.h" #include "sysselect.h" #include "systime.h" @@ -134,7 +135,6 @@ extern void unexec_init_emacs_zone (void); #endif extern void malloc_enable_thread (void); -extern void report_sheap_usage (int); /* If true, Emacs should not attempt to use a window-specific code, but instead should use the virtual terminal under which it was started. */ @@ -775,7 +775,7 @@ main (int argc, char **argv) filename_from_ansi (ch_to_dir, newdir); ch_to_dir = newdir; #endif - original_pwd = get_current_dir_name (); + original_pwd = emacs_get_current_dir_name (); if (chdir (ch_to_dir) != 0) { fprintf (stderr, "%s: Can't chdir to %s: %s\n", @@ -2075,7 +2075,14 @@ You must run Emacs in batch mode in order to dump it. */) Vpurify_flag = Qnil; #ifdef HYBRID_MALLOC - report_sheap_usage (1); + { + static char const fmt[] = "%d of %d static heap bytes used"; + char buf[sizeof fmt + 2 * (INT_STRLEN_BOUND (int) - 2)]; + int max_usage = max_bss_sbrk_ptr - bss_sbrk_buffer; + sprintf (buf, fmt, max_usage, STATIC_HEAP_SIZE); + /* Don't log messages, because at this point buffers cannot be created. */ + message1_nolog (buf); + } #endif fflush (stdout); diff --git a/src/gmalloc.c b/src/gmalloc.c index 30e0131..4fd3246 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c @@ -28,11 +28,6 @@ License along with this library. If not, see . #include #include #include - -#ifdef HYBRID_GET_CURRENT_DIR_NAME -#undef get_current_dir_name -#endif - #include #ifdef USE_PTHREAD @@ -43,10 +38,6 @@ License along with this library. If not, see . #include /* for sbrk */ #endif -#ifdef emacs -extern void emacs_abort (void); -#endif - /* If HYBRID_MALLOC is defined, then temacs will use malloc, realloc... as defined in this file (and renamed gmalloc, grealloc... via the macros that follow). The dumped emacs, @@ -63,6 +54,7 @@ extern void emacs_abort (void); #undef malloc #undef realloc #undef calloc +#undef aligned_alloc #undef free #define malloc gmalloc #define realloc grealloc @@ -71,13 +63,13 @@ extern void emacs_abort (void); #define free gfree #ifdef HYBRID_MALLOC -extern void *bss_sbrk (ptrdiff_t size); -extern int bss_sbrk_did_unexec; -extern char bss_sbrk_buffer[]; -extern void *bss_sbrk_buffer_end; -#define DUMPED bss_sbrk_did_unexec -#define ALLOCATED_BEFORE_DUMPING(P) \ - ((P) < bss_sbrk_buffer_end && (P) >= (void *) bss_sbrk_buffer) +# include "sheap.h" +# define DUMPED bss_sbrk_did_unexec +static bool +ALLOCATED_BEFORE_DUMPING (char *p) +{ + return bss_sbrk_buffer <= p && p < bss_sbrk_buffer + STATIC_HEAP_SIZE; +} #endif #ifdef __cplusplus @@ -87,10 +79,6 @@ extern "C" #include -#ifdef emacs -extern void emacs_abort (void); -#endif - /* Underlying allocation function; successive calls should return contiguous pieces of memory. */ extern void *(*__morecore) (ptrdiff_t size); @@ -255,10 +243,6 @@ extern int _malloc_thread_enabled_p; #define UNLOCK_ALIGNED_BLOCKS() #endif -/* Given an address in the middle of a malloc'd object, - return the address of the beginning of the object. */ -extern void *malloc_find_object_address (void *ptr); - /* If not NULL, this function is called after each time `__morecore' is called to increase the data size. */ extern void (*__after_morecore_hook) (void); @@ -279,6 +263,8 @@ extern void *(*__malloc_hook) (size_t size); extern void *(*__realloc_hook) (void *ptr, size_t size); extern void *(*__memalign_hook) (size_t size, size_t alignment); +#ifdef GC_MCHECK + /* Return values for `mprobe': these are the kinds of inconsistencies that `mcheck' enables detection of. */ enum mcheck_status @@ -321,6 +307,8 @@ extern struct mstats mstats (void); /* Call WARNFUN with a warning message when memory usage is high. */ extern void memory_warnings (void *start, void (*warnfun) (const char *)); +#endif + #undef extern #ifdef __cplusplus @@ -1797,7 +1785,7 @@ hybrid_aligned_alloc (size_t alignment, size_t size) #endif } #endif - + void * hybrid_realloc (void *ptr, size_t size) { @@ -1825,19 +1813,6 @@ hybrid_realloc (void *ptr, size_t size) return result; } -#ifdef HYBRID_GET_CURRENT_DIR_NAME -/* Defined in sysdep.c. */ -char *gget_current_dir_name (void); - -char * -hybrid_get_current_dir_name (void) -{ - if (DUMPED) - return get_current_dir_name (); - return gget_current_dir_name (); -} -#endif - #else /* ! HYBRID_MALLOC */ void * diff --git a/src/lisp.h b/src/lisp.h index 82cbca8..53f123d 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -4254,9 +4254,7 @@ struct tty_display_info; struct terminal; /* Defined in sysdep.c. */ -#ifndef HAVE_GET_CURRENT_DIR_NAME -extern char *get_current_dir_name (void); -#endif +extern char *emacs_get_current_dir_name (void); extern void stuff_char (char c); extern void init_foreground_group (void); extern void sys_subshell (void); diff --git a/src/sheap.c b/src/sheap.c index 1451eca..fe905ca 100644 --- a/src/sheap.c +++ b/src/sheap.c @@ -19,87 +19,62 @@ You should have received a copy of the GNU General Public License along with GNU Emacs. If not, see . */ #include + +#include "sheap.h" + #include #include "lisp.h" #include #include /* for exit */ -#ifdef ENABLE_CHECKING -#define STATIC_HEAP_SIZE (28 * 1024 * 1024) -#else -#define STATIC_HEAP_SIZE (19 * 1024 * 1024) -#endif - -int debug_sheap = 0; - -#define BLOCKSIZE 4096 +static int debug_sheap; char bss_sbrk_buffer[STATIC_HEAP_SIZE]; -/* The following is needed in gmalloc.c */ -void *bss_sbrk_buffer_end = bss_sbrk_buffer + STATIC_HEAP_SIZE; -char *bss_sbrk_ptr; char *max_bss_sbrk_ptr; -int bss_sbrk_did_unexec; +bool bss_sbrk_did_unexec; void * bss_sbrk (ptrdiff_t request_size) { + static char *bss_sbrk_ptr; + if (!bss_sbrk_ptr) { max_bss_sbrk_ptr = bss_sbrk_ptr = bss_sbrk_buffer; #ifdef CYGWIN - sbrk (BLOCKSIZE); /* force space for fork to work */ + /* Force space for fork to work. */ + sbrk (4096); #endif } - if (!(int) request_size) - { - return (bss_sbrk_ptr); - } - else if (bss_sbrk_ptr + (int) request_size < bss_sbrk_buffer) + int used = bss_sbrk_ptr - bss_sbrk_buffer; + + if (request_size < -used) { - printf - ("attempt to free too much: avail %d used %d failed request %d\n", - STATIC_HEAP_SIZE, bss_sbrk_ptr - bss_sbrk_buffer, - (int) request_size); + printf (("attempt to free too much: " + "avail %d used %d failed request %"pD"d\n"), + STATIC_HEAP_SIZE, used, request_size); exit (-1); return 0; } - else if (bss_sbrk_ptr + (int) request_size > - bss_sbrk_buffer + STATIC_HEAP_SIZE) + else if (STATIC_HEAP_SIZE - used < request_size) { - printf ("static heap exhausted: avail %d used %d failed request %d\n", - STATIC_HEAP_SIZE, - bss_sbrk_ptr - bss_sbrk_buffer, (int) request_size); + printf ("static heap exhausted: avail %d used %d failed request %"pD"d\n", + STATIC_HEAP_SIZE, used, request_size); exit (-1); return 0; } - else if ((int) request_size < 0) - { - bss_sbrk_ptr += (int) request_size; - if (debug_sheap) - printf ("freed size %d\n", request_size); - return bss_sbrk_ptr; - } - else + + void *ret = bss_sbrk_ptr; + bss_sbrk_ptr += request_size; + if (max_bss_sbrk_ptr < bss_sbrk_ptr) + max_bss_sbrk_ptr = bss_sbrk_ptr; + if (debug_sheap) { - char *ret = bss_sbrk_ptr; - if (debug_sheap) - printf ("allocated 0x%08x size %d\n", ret, request_size); - bss_sbrk_ptr += (int) request_size; - if (bss_sbrk_ptr > max_bss_sbrk_ptr) - max_bss_sbrk_ptr = bss_sbrk_ptr; - return ret; + if (request_size < 0) + printf ("freed size %"pD"d\n", request_size); + else + printf ("allocated %p size %"pD"d\n", ret, request_size); } -} - -void -report_sheap_usage (int die_if_pure_storage_exceeded) -{ - char buf[200]; - sprintf (buf, "Maximum static heap usage: %d of %d bytes", - max_bss_sbrk_ptr - bss_sbrk_buffer, STATIC_HEAP_SIZE); - /* Don't log messages, cause at this point, we're not allowed to create - buffers. */ - message1_nolog (buf); + return ret; } diff --git a/src/sheap.h b/src/sheap.h new file mode 100644 index 0000000..4af3cf4 --- /dev/null +++ b/src/sheap.h @@ -0,0 +1,31 @@ +/* Static heap allocation for GNU Emacs. + +Copyright 2016 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs. If not, see . */ + +#include + +#ifdef ENABLE_CHECKING +# define STATIC_HEAP_SIZE (28 * 1024 * 1024) +#else +# define STATIC_HEAP_SIZE (19 * 1024 * 1024) +#endif + +extern char bss_sbrk_buffer[STATIC_HEAP_SIZE]; +extern char *max_bss_sbrk_ptr; +extern bool bss_sbrk_did_unexec; +extern void *bss_sbrk (ptrdiff_t); diff --git a/src/sysdep.c b/src/sysdep.c index 19a7212..418c50d 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -19,14 +19,6 @@ along with GNU Emacs. If not, see . */ #include -/* If HYBRID_GET_CURRENT_DIR_NAME is defined in conf_post.h, then we - need the following before including unistd.h, in order to pick up - the right prototype for gget_current_dir_name. */ -#ifdef HYBRID_GET_CURRENT_DIR_NAME -#undef get_current_dir_name -#define get_current_dir_name gget_current_dir_name -#endif - #include #include "sysstdio.h" #ifdef HAVE_PWD_H @@ -40,6 +32,7 @@ along with GNU Emacs. If not, see . */ #include #include "lisp.h" +#include "sheap.h" #include "sysselect.h" #include "blockinput.h" @@ -137,14 +130,21 @@ static const int baud_convert[] = 1800, 2400, 4800, 9600, 19200, 38400 }; -#if !defined HAVE_GET_CURRENT_DIR_NAME || defined BROKEN_GET_CURRENT_DIR_NAME \ - || (defined HYBRID_GET_CURRENT_DIR_NAME) -/* Return the current working directory. Returns NULL on errors. - Any other returned value must be freed with free. This is used - only when get_current_dir_name is not defined on the system. */ +/* Return the current working directory. The result should be freed + with 'free'. Return NULL on errors. */ char * -get_current_dir_name (void) +emacs_get_current_dir_name (void) { +# if HAVE_GET_CURRENT_DIR_NAME && !BROKEN_GET_CURRENT_DIR_NAME +# ifdef HYBRID_MALLOC + bool use_libc = bss_sbrk_did_unexec; +# else + bool use_libc = true; +# endif + if (use_libc) + return get_current_dir_name (); +# endif + char *buf; char *pwd = getenv ("PWD"); struct stat dotstat, pwdstat; @@ -192,7 +192,6 @@ get_current_dir_name (void) } return buf; } -#endif /* Discard pending input on all input descriptors. */ diff --git a/src/xsmfns.c b/src/xsmfns.c index 7641449..df5c46b 100644 --- a/src/xsmfns.c +++ b/src/xsmfns.c @@ -204,7 +204,7 @@ smc_save_yourself_CB (SmcConn smcConn, props[props_idx]->vals[0].value = SDATA (user_login_name); ++props_idx; - char *cwd = get_current_dir_name (); + char *cwd = emacs_get_current_dir_name (); if (cwd) { props[props_idx] = &prop_ptr[props_idx]; @@ -401,7 +401,7 @@ x_session_initialize (struct x_display_info *dpyinfo) ptrdiff_t name_len = 0; /* libSM seems to crash if pwd is missing - see bug#18851. */ - if (! get_current_dir_name ()) + if (! emacs_get_current_dir_name ()) { fprintf (stderr, "Disabling session management due to pwd error: %s\n", emacs_strerror (errno)); commit 874c59a81b7ee12a739149c5229e6d3bbd463324 Author: Paul Eggert Date: Sat Jan 30 14:20:56 2016 -0800 Report static heap usage on non-Cygwin, too * src/emacs.c (Fdump_emacs) [HYBRID_MALLOC]: Report sheap usage here ... * src/unexcw.c (unexec): ... instead of here, since sheap can be used on platforms other than Cygwin (Bug#22086). diff --git a/src/emacs.c b/src/emacs.c index fb6f896..7ba5cfe 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -134,6 +134,7 @@ extern void unexec_init_emacs_zone (void); #endif extern void malloc_enable_thread (void); +extern void report_sheap_usage (int); /* If true, Emacs should not attempt to use a window-specific code, but instead should use the virtual terminal under which it was started. */ @@ -2073,6 +2074,10 @@ You must run Emacs in batch mode in order to dump it. */) tem = Vpurify_flag; Vpurify_flag = Qnil; +#ifdef HYBRID_MALLOC + report_sheap_usage (1); +#endif + fflush (stdout); /* Tell malloc where start of impure now is. */ /* Also arrange for warnings when nearly out of space. */ diff --git a/src/unexcw.c b/src/unexcw.c index febe939..e4aa356 100644 --- a/src/unexcw.c +++ b/src/unexcw.c @@ -30,8 +30,6 @@ along with GNU Emacs. If not, see . */ #define DOTEXE ".exe" -extern void report_sheap_usage (int); - extern int bss_sbrk_did_unexec; /* @@ -276,8 +274,6 @@ unexec (const char *outfile, const char *infile) int ret; int ret2; - report_sheap_usage (1); - infile = add_exe_suffix_if_necessary (infile, infile_buffer); outfile = add_exe_suffix_if_necessary (outfile, outfile_buffer); commit 384ffef6434d3e8809abd3b5edc848db0333ba24 Author: Paul Eggert Date: Sat Jan 30 14:20:56 2016 -0800 Pacify GCC on extern decls * src/unexelf.c (bss_sbrk_did_unexec): Move decl to top level to pacify recent GCC (Bug#22086). diff --git a/src/unexelf.c b/src/unexelf.c index 32aa1b2..3dc0456 100644 --- a/src/unexelf.c +++ b/src/unexelf.c @@ -211,6 +211,10 @@ entry_address (void *section_h, ptrdiff_t idx, ptrdiff_t entsize) typedef unsigned char byte; +#ifdef HYBRID_MALLOC +extern int bss_sbrk_did_unexec; +#endif + /* **************************************************************** * unexec * @@ -228,7 +232,6 @@ unexec (const char *new_name, const char *old_name) void *new_break; #ifdef HYBRID_MALLOC - extern int bss_sbrk_did_unexec; bss_sbrk_did_unexec = 1; #endif commit d6585a910ed3e9e0e43c093b5fbfeb6d56b703b4 Author: Wolfgang Jenkner Date: Sat Jan 30 14:20:56 2016 -0800 Add musl patch to support HYBRID_MALLOC on elf systems * src/gmalloc.c: Adjust for HYBRID_MALLOC in the non CYGWIN case. (__default_morecore): Here, in particular. * configure.ac: Define HYBRID_MALLOC when unexelf.o is used. New variable SHEAP_OBJ. * src/Makefile.in: Use it. (Bug#22086) diff --git a/configure.ac b/configure.ac index 4a0dc56..cd3a9bc 100644 --- a/configure.ac +++ b/configure.ac @@ -2121,7 +2121,13 @@ case "$opsys" in cygwin) hybrid_malloc=yes;; esac +if test "${system_malloc}" != yes && test "${doug_lea_malloc}" != yes \ + && test "${UNEXEC_OBJ}" = unexelf.o && test "${hybrid_malloc}" != no; then + hybrid_malloc=yes +fi + GMALLOC_OBJ= +SHEAP_OBJ= if test "${system_malloc}" = "yes"; then AC_DEFINE([SYSTEM_MALLOC], 1, [Define to 1 to use the system memory allocator, even if it is not @@ -2136,6 +2142,7 @@ elif test "$hybrid_malloc" = yes; then GNU_MALLOC= GNU_MALLOC_reason="only before dumping" GMALLOC_OBJ=gmalloc.o + SHEAP_OBJ=sheap.o VMLIMIT_OBJ= else test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o @@ -2156,9 +2163,10 @@ else fi fi AC_SUBST(GMALLOC_OBJ) +AC_SUBST(SHEAP_OBJ) AC_SUBST(VMLIMIT_OBJ) -if test "$doug_lea_malloc" = "yes" ; then +if test "$doug_lea_malloc" = "yes" && test "$hybrid_malloc" != yes; then if test "$GNU_MALLOC" = yes ; then GNU_MALLOC_reason=" (Using Doug Lea's new malloc from the GNU C Library.)" @@ -5035,7 +5043,7 @@ fi AC_SUBST(RALLOC_OBJ) if test "$opsys" = "cygwin"; then - CYGWIN_OBJ="sheap.o cygw32.o" + CYGWIN_OBJ="cygw32.o" ## Cygwin differs because of its unexec(). PRE_ALLOC_OBJ= POST_ALLOC_OBJ=lastfile.o diff --git a/src/Makefile.in b/src/Makefile.in index 6a31542..e59d3b1 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -254,7 +254,10 @@ XFIXES_CFLAGS = @XFIXES_CFLAGS@ ## widget.o if USE_X_TOOLKIT, otherwise empty. WIDGET_OBJ=@WIDGET_OBJ@ -## sheap.o if CYGWIN, otherwise empty. +## sheap.o if HYBRID_MALLOC, otherwise empty. +SHEAP_OBJ=@SHEAP_OBJ@ + +## cygw32.o if CYGWIN, otherwise empty. CYGWIN_OBJ=@CYGWIN_OBJ@ ## fontset.o fringe.o image.o if we have any window system @@ -397,6 +400,7 @@ base_obj = dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ doprnt.o intervals.o textprop.o composite.o xml.o $(NOTIFY_OBJ) \ $(XWIDGETS_OBJ) \ profiler.o decompress.o \ + $(SHEAP_OBJ) \ $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) \ $(W32_OBJ) $(WINDOW_SYSTEM_OBJ) $(XGSELOBJ) obj = $(base_obj) $(NS_OBJC_OBJ) diff --git a/src/gmalloc.c b/src/gmalloc.c index 72d65af..30e0131 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c @@ -70,7 +70,7 @@ extern void emacs_abort (void); #define aligned_alloc galigned_alloc #define free gfree -#ifdef CYGWIN +#ifdef HYBRID_MALLOC extern void *bss_sbrk (ptrdiff_t size); extern int bss_sbrk_did_unexec; extern char bss_sbrk_buffer[]; @@ -1542,7 +1542,7 @@ void * __default_morecore (ptrdiff_t increment) { void *result; -#if defined (CYGWIN) +#ifdef HYBRID_MALLOC if (!DUMPED) { return bss_sbrk (increment); commit dec139084586762793448277ebe80cfa7a1790b3 Author: Rich Felker Date: Sat Jan 30 14:20:56 2016 -0800 unexelf.c hook to support HYBRID_MALLOC on ELF * src/unexelf.c (unexec) [HYBRID_MALLOC]: Define bss_sbrk_did_unexec (Bug#22086). Copyright-paperwork-exempt: yes diff --git a/src/unexelf.c b/src/unexelf.c index e901994..32aa1b2 100644 --- a/src/unexelf.c +++ b/src/unexelf.c @@ -227,6 +227,11 @@ unexec (const char *new_name, const char *old_name) off_t new_file_size; void *new_break; +#ifdef HYBRID_MALLOC + extern int bss_sbrk_did_unexec; + bss_sbrk_did_unexec = 1; +#endif + /* Pointers to the base of the image of the two files. */ caddr_t old_base, new_base; commit a5f85861293911b3f394464a04f7972b83d47a95 Author: Wolfgang Jenkner Date: Sat Jan 30 14:20:56 2016 -0800 Link temacs with gnulib compiled with -Demacs This is done to support HYBRID_MALLOC, since some static variables (e.g., last_environ in putenv.c) hold pointers to memory malloced before dumping (Bug#22086). * lib/Makefile.am: Add incantation to install libegnu.a. * src/Makefile.in ($(lib)/libgnu.a): Replace with libegnu.a (temacs$(EXEEXT)): Use it. diff --git a/lib/Makefile.am b/lib/Makefile.am index cda9681..a1dd6a4 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -17,6 +17,15 @@ include gnulib.mk libgnu_a_SOURCES += openat-die.c save-cwd.c endif +noinst_LIBRARIES += libegnu.a + +libegnu_a_SOURCES = $(libgnu_a_SOURCES) +libegnu_a_LIBADD = $(patsubst %.o,e-%.o,$(libgnu_a_LIBADD)) +EXTRA_libegnu_a_SOURCES = $(EXTRA_libgnu_a_SOURCES) +libegnu_a_SHORTNAME = e + +libegnu_a_CPPFLAGS = $(AM_CPPFLAGS) -Demacs + .PHONY: bootstrap-clean bootstrap-clean: maintainer-clean diff --git a/src/Makefile.in b/src/Makefile.in index b38e7d5..6a31542 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -576,7 +576,7 @@ globals.h: gl-stamp; @true $(ALLOBJS): globals.h -$(lib)/libgnu.a: $(config_h) +$(lib)/libegnu.a: $(config_h) $(MAKE) -C $(lib) all ## We have to create $(etc) here because init_cmdargs tests its @@ -584,9 +584,9 @@ $(lib)/libgnu.a: $(config_h) ## This goes on to affect various things, and the emacs binary fails ## to start if Vinstallation_directory has the wrong value. temacs$(EXEEXT): $(LIBXMENU) $(ALLOBJS) \ - $(lib)/libgnu.a $(EMACSRES) ${charsets} ${charscript} + $(lib)/libegnu.a $(EMACSRES) ${charsets} ${charscript} $(AM_V_CCLD)$(CC) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \ - -o temacs $(ALLOBJS) $(lib)/libgnu.a $(W32_RES_LINK) $(LIBES) + -o temacs $(ALLOBJS) $(lib)/libegnu.a $(W32_RES_LINK) $(LIBES) $(MKDIR_P) $(etc) ifneq ($(CANNOT_DUMP),yes) $(PAXCTL_if_present) -r $@ commit cb22fce283e3852ea33a09f40707cf0c004c717e Author: Wolfgang Jenkner Date: Sat Jan 30 14:20:55 2016 -0800 Internal linkage for gmalloc etc. if HYBRID_MALLOC This avoids clashes with symbols if the after-dump malloc is derived from Doug Lea's implementation (Bug#22086). * src/gmalloc.c (emacs_abort, __morecore, __default_morecore): Move declarations up. For HYBRID_MALLOC, turn all `extern' declarations below to `static' ones. (aligned_alloc): Declare for !MSDOS as well. (heapsize, _fraghead): Move resp. copy declaration downwards. For HYBRID_MALLOC, conditionalize out the other definitions, since the previous `static' declarations double as tentative definitions, anyway. (_malloc, _free, _realloc, __free_hook, _aligned_blocks) (__realloc_hook, __memalign_hook): Conditionalize out. (cfree, memalign, valloc): Ditto. diff --git a/src/gmalloc.c b/src/gmalloc.c index 00b8364..72d65af 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c @@ -87,6 +87,20 @@ extern "C" #include +#ifdef emacs +extern void emacs_abort (void); +#endif + +/* Underlying allocation function; successive calls should + return contiguous pieces of memory. */ +extern void *(*__morecore) (ptrdiff_t size); + +/* Default value of `__morecore'. */ +extern void *__default_morecore (ptrdiff_t size); + +#ifdef HYBRID_MALLOC +#define extern static +#endif /* Allocate SIZE bytes of memory. */ extern void *malloc (size_t size) ATTRIBUTE_MALLOC_SIZE ((1)); @@ -99,8 +113,8 @@ extern void *calloc (size_t nmemb, size_t size) ATTRIBUTE_MALLOC_SIZE ((1,2)); extern void free (void *ptr); /* Allocate SIZE bytes allocated to ALIGNMENT bytes. */ -#ifdef MSDOS extern void *aligned_alloc (size_t, size_t); +#ifdef MSDOS extern void *memalign (size_t, size_t); extern int posix_memalign (void **, size_t, size_t); #endif @@ -110,10 +124,6 @@ extern int posix_memalign (void **, size_t, size_t); extern void malloc_enable_thread (void); #endif -#ifdef emacs -extern void emacs_abort (void); -#endif - /* The allocator divides the heap into blocks of fixed size; large requests receive one or more whole blocks, and small requests receive a fragment of a block. Fragment sizes are powers of two, @@ -249,13 +259,6 @@ extern int _malloc_thread_enabled_p; return the address of the beginning of the object. */ extern void *malloc_find_object_address (void *ptr); -/* Underlying allocation function; successive calls should - return contiguous pieces of memory. */ -extern void *(*__morecore) (ptrdiff_t size); - -/* Default value of `__morecore'. */ -extern void *__default_morecore (ptrdiff_t size); - /* If not NULL, this function is called after each time `__morecore' is called to increase the data size. */ extern void (*__after_morecore_hook) (void); @@ -318,6 +321,8 @@ extern struct mstats mstats (void); /* Call WARNFUN with a warning message when memory usage is high. */ extern void memory_warnings (void *start, void (*warnfun) (const char *)); +#undef extern + #ifdef __cplusplus } #endif @@ -346,6 +351,8 @@ License along with this library. If not, see . void *(*__morecore) (ptrdiff_t size) = __default_morecore; +#ifndef HYBRID_MALLOC + /* Debugging hook for `malloc'. */ void *(*__malloc_hook) (size_t size); @@ -355,9 +362,6 @@ char *_heapbase; /* Block information table. Allocated with align/__free (not malloc/free). */ malloc_info *_heapinfo; -/* Number of info entries. */ -static size_t heapsize; - /* Search index in the info table. */ size_t _heapindex; @@ -381,6 +385,15 @@ size_t __malloc_extra_blocks; void (*__malloc_initialize_hook) (void); void (*__after_morecore_hook) (void); +#else + +static struct list _fraghead[BLOCKLOG]; + +#endif /* HYBRID_MALLOC */ + +/* Number of info entries. */ +static size_t heapsize; + #if defined GC_MALLOC_CHECK && defined GC_PROTECT_MALLOC_STATE /* Some code for hunting a bug writing into _heapinfo. @@ -946,7 +959,7 @@ malloc (size_t size) return (hook != NULL ? *hook : _malloc_internal) (size); } -#ifndef _LIBC +#if !(defined (_LIBC) || defined (HYBRID_MALLOC)) /* On some ANSI C systems, some libc functions call _malloc, _free and _realloc. Make them use the GNU functions. */ @@ -995,11 +1008,13 @@ License along with this library. If not, see . or (US mail) as Mike Haertel c/o Free Software Foundation. */ +#ifndef HYBRID_MALLOC /* Debugging hook for free. */ void (*__free_hook) (void *__ptr); /* List of blocks allocated by aligned_alloc. */ struct alignlist *_aligned_blocks = NULL; +#endif /* Return memory to the heap. Like `_free_internal' but don't lock mutex. */ @@ -1270,6 +1285,7 @@ free (void *ptr) _free_internal (ptr); } +#ifndef HYBRID_MALLOC /* Define the `cfree' alias for `free'. */ #ifdef weak_alias weak_alias (free, cfree) @@ -1280,6 +1296,7 @@ cfree (void *ptr) free (ptr); } #endif +#endif /* Change the size of a block allocated by `malloc'. Copyright 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. Written May 1989 by Mike Haertel. @@ -1304,8 +1321,10 @@ License along with this library. If not, see . #define min(a, b) ((a) < (b) ? (a) : (b)) #endif +#ifndef HYBRID_MALLOC /* Debugging hook for realloc. */ void *(*__realloc_hook) (void *ptr, size_t size); +#endif /* Resize the given region to the new size, returning a pointer to the (possibly moved) region. This is optimized for speed; @@ -1549,7 +1568,9 @@ General Public License for more details. You should have received a copy of the GNU General Public License along with this library. If not, see . */ +#ifndef HYBRID_MALLOC void *(*__memalign_hook) (size_t size, size_t alignment); +#endif void * aligned_alloc (size_t alignment, size_t size) @@ -1638,6 +1659,8 @@ aligned_alloc (size_t alignment, size_t size) return result; } +/* Note that memalign and posix_memalign are not used in Emacs. */ +#ifndef HYBRID_MALLOC /* An obsolete alias for aligned_alloc, for any old libraries that use this alias. */ @@ -1649,7 +1672,6 @@ memalign (size_t alignment, size_t size) /* If HYBRID_MALLOC is defined, we may want to use the system posix_memalign below. */ -#ifndef HYBRID_MALLOC int posix_memalign (void **memptr, size_t alignment, size_t size) { @@ -1689,6 +1711,7 @@ License along with this library. If not, see . The author may be reached (Email) at the address mike@ai.mit.edu, or (US mail) as Mike Haertel c/o Free Software Foundation. */ +#ifndef HYBRID_MALLOC /* Allocate SIZE bytes on a page boundary. */ extern void *valloc (size_t); @@ -1708,6 +1731,7 @@ valloc (size_t size) return aligned_alloc (pagesize, size); } +#endif /* HYBRID_MALLOC */ #undef malloc #undef realloc commit 935b4d0ce4b1f03dedd276548fd506bea1f0c0fd Author: Paul Eggert Date: Sat Jan 30 14:08:35 2016 -0800 ; Update ChangeLog.2 commit by hand diff --git a/ChangeLog.2 b/ChangeLog.2 index 9157eb5..877a697 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -31981,8 +31981,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -2016-01-30f9a297dc45a40c9b7175715ffe4f1612 (inclusive). -commit 8cdb9ac0fb060366bc823de84ecdba258716addb (inclusive). +commit 2d231aad9a24eda1e36e0b33d96f31aa7e29a737 (inclusive). See ChangeLog.1 for earlier changes. ;; Local Variables: commit 2d231aad9a24eda1e36e0b33d96f31aa7e29a737 Merge: 99fa8c3 7b14da4 Author: Paul Eggert Date: Sat Jan 30 13:56:23 2016 -0800 ; Merge from origin/emacs-25 The following commits were skipped: 7b14da4 Bump version to 25.0.90 6f607a9 ; Auto-commit of loaddefs files. commit 99fa8c3dbf333f1e3fa7d6449d4b4428ce439ce1 Merge: 3005605 875577b Author: Paul Eggert Date: Sat Jan 30 13:56:23 2016 -0800 - commit 3005605776955593e0b416de9e1ebf158114343e Merge: cb4e054 ad879b7 Author: Paul Eggert Date: Sat Jan 30 11:43:27 2016 -0800 ; Merge from origin/emacs-25 The following commits were skipped: ad879b7 Backport:fix previous change of src/ftfont.c (ftfont_shape_by_flt) 4a3db0f support rendering of wider range of combinging characters by ftfont backend commit cb4e054e41cdb7e398351a5ae8224759e721349e Merge: e6d5753 6090275 Author: Paul Eggert Date: Sat Jan 30 11:43:26 2016 -0800 - commit e6d575316a42946aac6d83c9587f09afd1a59d98 Merge: 9304e6d fef1b30 Author: Paul Eggert Date: Sat Jan 30 11:41:07 2016 -0800 ; Merge from origin/emacs-25 The following commit was skipped: fef1b30 Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 commit 9304e6d3a222de6ef1c405bfd6e09eee6ed2c2aa Merge: beec9cb 12eeaa8 Author: Paul Eggert Date: Sat Jan 30 11:41:07 2016 -0800 - commit beec9cbb1705a7bc4e11a11fe4b5a2f1bfca96a0 Merge: 1a9cec1 2aae081 Author: Paul Eggert Date: Sat Jan 30 11:28:37 2016 -0800 ; Merge from origin/emacs-25 The following commit was skipped: 2aae081 ; Auto-commit of loaddefs files. commit 1a9cec16fe8d805dbb9f3a082bebcdefb878cf13 Merge: 3b71a72 3f481ad Author: Paul Eggert Date: Sat Jan 30 11:28:37 2016 -0800 Merge from origin/emacs-25 3f481ad Rename xref-query-replace to xref-query-replace-in-results 62f4ed4 Update cl-defgeneric and cl-defmethod docstrings 2111e0e Comment out next-error-function integration in xref 4e11ad3 Correct a use of "which" in intro.texi a1865bc Distinguish the two meanings of Java's keyword "default". Fixes bug #22358. 76045f7 Don't operate on menu bar of nonexistent frame c32f3bc Unbreak the GNUstep build. commit 3b71a72a777237c8ef34835a2021adc8eb5e5c7f Merge: 2b41d6a 371154b Author: Paul Eggert Date: Sat Jan 30 11:28:37 2016 -0800 ; Merge from origin/emacs-25 The following commit was skipped: 371154b ; Auto-commit of loaddefs files. commit 2b41d6a979b0ea361e078891b8763b4ae7be8092 Merge: fe9c8b6 71468e0 Author: Paul Eggert Date: Sat Jan 30 11:28:37 2016 -0800 - commit fe9c8b687c5121a413342024b62824a86d2de2be Merge: 82b0897 7bf54d0 Author: Paul Eggert Date: Sat Jan 30 11:27:35 2016 -0800 ; Merge from origin/emacs-25 The following commit was skipped: 7bf54d0 Backport kqueue integration from master commit 82b089783e71b2aeef950eaecfe4cbc0735e64a2 Merge: d27c807 f7dc6d8 Author: Paul Eggert Date: Sat Jan 30 11:27:34 2016 -0800 - commit 7b14da444e6ad0eae1eb6c0dde870a84257d6283 (tag: refs/tags/emacs-25.0.90) Author: Nicolas Petton Date: Sat Jan 30 14:43:12 2016 +0100 Bump version to 25.0.90 * README: * configure.ac: * msdos/sed2v2.inp: Bump version to 25.0.90. diff --git a/README b/README index 61f4cc1..1f38965 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ Copyright (C) 2001-2016 Free Software Foundation, Inc. See the end of the file for license conditions. -This directory tree holds version 25.0.50 of GNU Emacs, the extensible, +This directory tree holds version 25.0.90 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. The file INSTALL in this directory says how to build and install GNU diff --git a/configure.ac b/configure.ac index fad556f..5d6fcda 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ dnl along with GNU Emacs. If not, see . AC_PREREQ(2.65) dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el. -AC_INIT(GNU Emacs, 25.0.50, bug-gnu-emacs@gnu.org) +AC_INIT(GNU Emacs, 25.0.90, bug-gnu-emacs@gnu.org) dnl Set emacs_config_options to the options of 'configure', quoted for the shell, dnl and then quoted again for a C string. Separate options with spaces. diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index 1787356..1866585 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp @@ -66,7 +66,7 @@ /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/ /^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION ""/ /^#undef PENDING_OUTPUT_COUNT/s/^.*$/#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)/ -/^#undef VERSION/s/^.*$/#define VERSION "25.0.50"/ +/^#undef VERSION/s/^.*$/#define VERSION "25.0.90"/ /^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/ /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ commit 875577bcc8d6139d61f91118d0907b847912b3e1 Author: Nicolas Petton Date: Sat Jan 30 14:40:17 2016 +0100 * etc/AUTHORS: Update the AUTHORS file diff --git a/etc/AUTHORS b/etc/AUTHORS index f3adef4..7a58dc7 100644 --- a/etc/AUTHORS +++ b/etc/AUTHORS @@ -5,7 +5,7 @@ list of their contributions. Aaron Ecay: changed ob-R.el ob-core.el org-src.el ox-latex.el nsterm.m ob-awk.el ob-exp.el ob-python.el ob-tangle.el org-bibtex.el org-id.el - org.el org.texi paren.el + org.el org.texi package.el paren.el Aaron Larson: co-wrote bibtex.el @@ -34,8 +34,9 @@ Adam Hupp: changed emacs.py emacs2.py emacs3.py gud.el Adam Sjøgren: changed mml2015.el spam.el shr.el xterm.c blink.xpm braindamaged.xpm cry.xpm dead.xpm evil.xpm forced.xpm frown.xpm - grin.xpm gtkutil.c indifferent.xpm message.el reverse-smile.xpm sad.xpm - smile.xpm wry.xpm gnus-html.el gnus-spec.el and 5 other files + gnus-sum.el grin.xpm gtkutil.c indifferent.xpm message.el + reverse-smile.xpm sad.xpm smile.xpm wry.xpm gnus-html.el + and 7 other files Adam Sokolnicki: changed ruby-mode.el @@ -56,9 +57,9 @@ Adrian Lanz: changed mail-source.el spam.el Adrian Robert: co-wrote ns-win.el and changed nsterm.m nsfns.m nsfont.m nsterm.h nsmenu.m configure.ac - src/Makefile.in macos.texi README emacs.c font.c keyboard.c nsgui.h - nsimage.m xdisp.c image.c lib-src/Makefile.in lisp.h menu.c Makefile.in - darwin.h and 78 other files + src/Makefile.in macos.texi README config.in emacs.c font.c keyboard.c + nsgui.h nsimage.m xdisp.c image.c lib-src/Makefile.in lisp.h menu.c + Makefile.in and 79 other files Ævar Arnfjörð Bjarmason: changed rcirc.el @@ -81,15 +82,22 @@ Akinori Musha: changed ruby-mode.el Makefile.in sieve-mode.el Aki Vehtari: changed bibtex.el gnus-art.el gnus-score.el gnus-sum.el nnmail.el tar-mode.el +Alain Schneble: wrote url-expand-tests.el url-parse-tests.el +and changed url-expand.el url-parse.el + Alakazam Petrofsky: changed hanoi.el +Alan J Third: changed picture.el + Alan Mackenzie: wrote cc-awk.el and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-fonts.el cc-langs.el cc-mode.el cc-styles.el cc-vars.el -and changed cc-mode.texi lread.c programs.texi font-lock.el isearch.el - display.texi font-core.el lisp.el modes.texi search.texi cc-menus.el - cc-subword.el easy-mmode.el os.texi startup.el subr.el syntax.c - text.texi INSTALL.REPO add-log.el buffers.texi and 32 other files +and changed cc-mode.texi bytecomp.el ispell.el isearch.el follow.el + font-lock.el programs.texi windows.texi cc-bytecomp.el lread.c subr.el + cconv.el display.texi frames.texi functions.texi syntax.c window.c + desktop.el edebug.el font-core.el jit-lock.el and 116 other files + +Alan Modra: changed unexelf.c Alan Schmitt: changed gnus-sum.el nnimap.el ob-ocaml.el org-faces.el @@ -139,6 +147,8 @@ and changed emacs3.py vc-hooks.el vc.el xml.el Alex Coventry: changed files.el +Alex Dunn: changed subr-tests.el subr.el + Alex Kosorukoff: changed org-capture.el Alex Ott: changed TUTORIAL.ru ede/files.el ru-refcard.tex base.el @@ -190,11 +200,10 @@ Anand Mitra: changed gnus-sum.el Anders Holst: wrote hippie-exp.el -Anders Lindgern: changed nsterm.m - Anders Lindgren: wrote autorevert.el cwarn.el follow.el -and changed font-lock.el nsterm.m etags.c compile.el ert.el nsfont.m - nsterm.h +and changed nsterm.m nsfns.m nsterm.h nsmenu.m nsimage.m font-lock.el + Info.plist.in etags.c loadup.el lread.c ns-win.el vc-svn.el compile.el + ert.el nsfont.m Andrea Rossetti: changed ruler-mode.el @@ -225,20 +234,20 @@ Andreas Leue: changed artist.el Andreas Luik: changed xfns.c xterm.c Andreas Politz: changed editfns.c elp.el frame.c ibuffer.el ido.el - imenu.el modes.texi outline.el sql.el subr.el term.el + imenu.el modes.texi outline.el sql.el subr.el term.el wid-edit.el Andreas Rottmann: changed emacsclient.1 emacsclient.c misc.texi server.el Andreas Schwab: changed configure.ac lisp.h process.c xdisp.c alloc.c - coding.c Makefile.in files.el keyboard.c fileio.c xterm.c editfns.c - emacs.c src/Makefile.in fns.c lread.c print.c eval.c font.c xfns.c - sysdep.c and 633 other files + coding.c Makefile.in fileio.c files.el keyboard.c xterm.c lread.c + editfns.c emacs.c fns.c src/Makefile.in print.c eval.c font.c sysdep.c + xfns.c and 634 other files Andreas Seltenreich: changed nnweb.el gnus.texi message.el gnus-sum.el - gnus.el gnus-srvr.el gnus-util.el mm-url.el mm-uu.el url-http.el - xterm.c battery.el comint.el easy-mmode.el gmm-utils.el gnus-art.el - gnus-cite.el gnus-draft.el gnus-group.el gnus-ml.el gnus-msg.el - and 6 other files + gnus.el nnslashdot.el gnus-srvr.el gnus-util.el mm-url.el mm-uu.el + url-http.el xterm.c battery.el comint.el easy-mmode.el gmm-utils.el + gnus-art.el gnus-cite.el gnus-draft.el gnus-group.el gnus-ml.el + and 7 other files Andreas Vögele: changed pgg-def.el @@ -257,7 +266,7 @@ Andrew Beals: changed spook.lines Andrew Choi: changed macterm.c darwin.h mac-win.el sysdep.c emacs.c mac.c macfns.c fontset.c frame.c keyboard.c xfaces.c dispextern.h macmenu.c unexmacosx.c configure.ac frame.h macterm.h titdic-cnv.el xdisp.c - alloc.c callproc.c and 26 other files + alloc.c callproc.c and 27 other files Andrew Cohen: wrote spam-wash.el and changed nnir.el gnus-sum.el nnimap.el gnus-msg.el gnus.texi @@ -271,10 +280,9 @@ Andrew Hall: changed paren.el Andrew Hyatt: changed org-archive.el org.el org.texi Andrew Innes: changed makefile.nt w32fns.c w32term.c w32.c w32proc.c - makefile.w32-in fileio.c gmake.defs leim/makefile.w32-in - lib-src/makefile.w32-in w32-fns.el dos-w32.el inc/ms-w32.h nmake.defs - nt/makefile.w32-in src/makefile.w32-in w32term.h makefile.def unexw32.c - w32menu.c w32xfns.c and 139 other files + fileio.c w32-fns.el dos-w32.el inc/ms-w32.h w32term.h makefile.def + unexw32.c w32menu.c w32xfns.c addpm.c cmdproxy.c emacs.c w32-win.el + w32inevt.c configure.bat lread.c and 130 other files Andrew Oram: changed calendar.texi (and other doc files) @@ -292,7 +300,7 @@ Andrey Zhdanov: changed gud.el Andrzej Lichnerowicz: wrote ob-io.el ob-scala.el -Andy Moreton: changed emacs/makefile.w32-in gnutls.c +Andy Moreton: changed gnutls.c w32fns.c w32heap.c w32proc.c w32term.c Andy Norman: wrote ange-ftp.el @@ -317,8 +325,10 @@ Antoine Levitt: changed gnus-group.el gnus-sum.el message.texi ada-prj.el gnus-art.el gnus-uu.el gnus.el gnus.texi message.el mh-funcs.el and 8 other files +Arash Esbati: changed reftex-ref.el reftex-vars.el + Ari Roponen: changed atimer.c doc.c hash.texi mule.texi package.el - startup.el time-date.el + startup.el subr.el time-date.el Arisawa Akihiro: changed characters.el coding.c epa-file.el japan-util.el language/tibetan.el message.el mm-decode.el mm-view.el ps-print.el @@ -338,21 +348,29 @@ and changed ada-mode.texi frames.texi generic-x.el texinfo.el Artem Chuprina: changed message.el -Artur Malabarba: wrote let-alist.el -and changed package.el bindings.el newcomment.el package-test.el - desktop.el doc-view.el ido.el image-mode.el isearch.el package-x.el - simple.el +Artur Malabarba: wrote character-fold-tests.el faces-tests.el + isearch-tests.el let-alist.el simple-test.el sort-tests.el + tabulated-list-test.el +and changed package.el isearch.el character-fold.el files.el + tabulated-list.el package-test.el faces.el files-x.el menu-bar.el + replace.el align.el bytecomp.el help-fns.el cl-lib-tests.el custom.el + custom.texi map.el simple.el subr-tests.el variables.texi bindings.el + and 37 other files Arun Persaud: changed org-agenda.el org-src.el +Ashish Shukla: changed emacs-gnutls.texi gnutls.el + Ashwin Ram: wrote refer.el Atsuo Ohki: changed lread.c Aubrey Jaffer: changed info.el unexelf.c -Aurélien Aptel: changed cus-face.el dispextern.h display.texi faces.el - nsterm.m ox-html.el url.texi w32term.c xfaces.c xterm.c +Aurélien Aptel: changed alloc.c emacs-module.h lisp.h Makefile + configure.ac data.c dynlib.c dynlib.h lread.c mod-test.c modhelp.py + print.c src/Makefile.in test.el cus-face.el dispextern.h display.texi + emacs-module.c faces.el nsterm.m ox-html.el and 6 other files Axel Boldt: changed ehelp.el electric.el @@ -376,13 +394,15 @@ Barry O'Reilly: changed simple.el lisp.h undo-tests.el keyboard.c Bastien Guerry: wrote gnus-bookmark.el and co-wrote org-bibtex.el org-list.el org-protocol.el org-src.el and changed org.el org-agenda.el org.texi ox-html.el org-clock.el - org-capture.el org-table.el ox-latex.el ox.el ox-odt.el org-compat.el - ox-publish.el ob.el org-mobile.el org-colview.el org-macs.el - org-pcomplete.el org-timer.el org-faces.el ox-ascii.el org-archive.el - and 116 other files + org-capture.el org-table.el ox-latex.el org-exp.el ox-odt.el + org-compat.el ob.el org-mobile.el org-colview.el org-publish.el ox.el + org-macs.el org-pcomplete.el org-timer.el org-faces.el ox-ascii.el + and 119 other files Ben A. Mesander: co-wrote erc-dcc.el +Ben Bacarisse: changed nnmh.el + Bengt Martensson: co-wrote bibtex.el Ben Harris: changed configure.ac @@ -399,9 +419,8 @@ Benjamin Rutt: co-wrote gnus-dired.el and changed vc.el gnus-msg.el message.el diff-mode.el ffap.el nnimap.el nnmbox.el simple.el vc-cvs.el -Ben Key: changed w32.c w32fns.c w32menu.c configure.bat INSTALL - gmake.defs nmake.defs src/makefile.w32-in w32.h w32term.c configure.ac - emacs.c inc/ms-w32.h keyboard.c lib-src/makefile.w32-in make-docfile.c +Ben Key: changed w32.c w32fns.c w32menu.c configure.bat INSTALL w32.h + w32term.c configure.ac emacs.c inc/ms-w32.h keyboard.c make-docfile.c nsfont.m nsterm.m sound.c xfaces.c Ben Menasha: changed nnmh.el @@ -441,8 +460,8 @@ and co-wrote mh-junk.el and changed mh-customize.el mh-search.el mh-alias.el Makefile mh-e.texi mh-identity.el README mh-speed.el mh-init.el mh-acros.el mh-gnus.el mh-unit.el mh-inc.el mh-xemacs-compat.el mh-print.el lisp/Makefile.in - image.el mh-tool-bar.el mh-xemacs.el display.texi makefile.w32-in - and 86 other files + image.el mh-tool-bar.el mh-xemacs.el display.texi mh-pick.el + and 83 other files Björn Lindström: changed rcirc.texi @@ -479,10 +498,14 @@ and changed fill.el simple.el indent.el paragraphs.el cmds.c intervals.c text-mode.el textprop.c ada.el allout.el awk-mode.el bibtex.el buffer.c buffer.h c-mode.el and 38 other files +Boris Samorodov: changed imap.el + +Boruch Baum: changed bookmark.el + Boyd Lynn Gerber: changed configure.ac Bozhidar Batsov: changed ruby-mode.el subr-x.el subr.el bytecomp.el - comint.el lisp-mode.el package.el progmodes/python.el prolog.el + comint.el js.el lisp-mode.el package.el progmodes/python.el prolog.el ruby-mode-tests.el scheme.el Brad Howes: changed gnus-demon.el @@ -493,6 +516,8 @@ Brendan Kehoe: changed hpux9.h Brent Goodrick: changed abbrev.el +Brian Burns: changed INSTALL INSTALL.W64 + Brian Cully: changed macos.texi Brian D. Carlstrom: changed gud.el smtpmail.el @@ -558,16 +583,18 @@ Carsten Dominik: wrote idlw-complete-structtag.el idlw-toolbar.el and co-wrote idlw-help.el idlw-shell.el idlwave.el org-bbdb.el org-bibtex.el org-entities.el org-gnus.el org-list.el org-pcomplete.el org-src.el ox-beamer.el ox-html.el ox-icalendar.el -and changed ox.el ox-latex.el org.texi org-remember.el orgcard.tex - ox-publish.el org-docbook.el ox-ascii.el org-attach.el org-protocol.el - org-mouse.el org-mac-message.el org-wl.el ox-jsinfo.el org-crypt.el - org-freemind.el idlw-rinfo.el org-exp-blocks.el org-habit.el org-mhe.el - org-plot.el and 35 other files +and changed org-exp.el ox-latex.el org.texi org-publish.el + org-remember.el orgcard.tex org-export-latex.el org-docbook.el + ox-ascii.el org-attach.el org-protocol.el org-mouse.el org-jsinfo.el + org-mac-message.el org-wl.el org-crypt.el org-freemind.el idlw-rinfo.el + org-exp-blocks.el org-habit.el org-mhe.el and 35 other files Caveh Jalali: changed configure.ac intel386.h sol2-4.h -Chad Brown: changed aix4-2.h bsd-common.h configure.ac cygwin.h dired.c - gnu-linux.h mh-comp.el msdos.h sed2v2.inp sysdep.c usg5-4.h +Cédric Chépied: changed newst-treeview.el + +Chad Brown: changed aix4-2.h bsd-common.h config.in configure.ac cygwin.h + dired.c gnu-linux.h mh-comp.el msdos.h sed2v2.inp sysdep.c usg5-4.h Changwoo Ryu: changed files.el @@ -596,7 +623,7 @@ and co-wrote longlines.el tango-dark-theme.el tango-theme.el and changed simple.el display.texi xdisp.c files.el frames.texi cus-edit.el files.texi custom.el subr.el text.texi faces.el keyboard.c startup.el package.el misc.texi emacs.texi modes.texi mouse.el - custom.texi image.c window.el and 923 other files + custom.texi image.c window.el and 947 other files Chris Chase: co-wrote idlw-shell.el idlwave.el @@ -647,7 +674,7 @@ Christian Neukirchen: changed mm-util.el Christian Ohler: wrote ert-tests.el ert.el and co-wrote ert-x.el and changed Makefile.in automated automated/Makefile.in configure.ac - ert-x-tests.el ert.texi misc/Makefile.in misc/makefile.w32-in + ert-x-tests.el ert.texi misc/Makefile.in Christian Plate: changed nnmaildir.el sgml-mode.el @@ -659,8 +686,7 @@ Christian Wittern: changed image-mode.el Christoph Bauer: changed configure.ac -Christoph Conrad: changed gnus-agent.el gnus-score.el - lib-src/makefile.w32-in qp.el +Christoph Conrad: changed gnus-agent.el gnus-score.el qp.el Christoph Dittmann: changed ox-beamer.el @@ -676,7 +702,7 @@ Christopher Allan Webber: changed gamegrid.el org-agenda.el tetris.el Christopher Genovese: changed assoc.el help-fns.el -Christophe Rhodes: changed ox-latex.el ox.el +Christophe Rhodes: changed org-exp.el ox-latex.el Christopher J. Madsen: wrote decipher.el and changed replace.el files.el ispell.el time.el @@ -688,26 +714,26 @@ Christopher Oliver: changed mouse.el Christopher Schmidt: changed ibuffer.el org.el tips.texi calc-aent.el calc.el calc.texi calendar.el cl-macs.el comint.el dired-x.el dired.el files.el files.texi find-dired.el gnus-int.el gnus-msg.el gnus.texi - help-fns.el info.el locate.el lread.c and 14 other files + help-fns.el info.el locate.el lread.c and 15 other files -Christoph Scholtes: changed README.W32 lib/makefile.w32-in - nt/makefile.w32-in progmodes/python.el stdint.h INSTALL - maintaining.texi src/makefile.w32-in zipdist.bat INSTALL.REPO admin.el - bookmark.el config.nt configure.bat control.texi cua-base.el gmake.defs - help-mode.el help.el ibuffer.el ido.el and 13 other files +Christoph Scholtes: changed README.W32 progmodes/python.el stdint.h + INSTALL maintaining.texi INSTALL.REPO admin.el bookmark.el + configure.bat control.texi cua-base.el help-mode.el help.el ibuffer.el + ido.el make-dist makedist.bat menu.c minibuf.c process.c + progmodes/grep.el and 5 other files Christoph Wedler: wrote antlr-mode.el -and changed format.el gnus-art.el gnus-picon.el message.el register.el - smiley.el texinfmt.el +and changed progmodes/python.el format.el gnus-art.el gnus-picon.el + message.el prog-mode.el python-tests.el register.el smiley.el + texinfmt.el -Chris Zheng: changed gnutls.c +Chris Zheng: changed gnutls.c w32-win.el Chuck Blake: changed term.c Chunyu Wang: changed gnus-art.el pcl-cvs.texi -Claudio Bley: changed image.c image.el process.c src/makefile.w32-in - stat.h w32-win.el w32.c +Claudio Bley: changed image.c image.el process.c stat.h w32-win.el w32.c Claudio Fontana: changed Makefile.in leim/Makefile.in lib-src/Makefile.in @@ -720,7 +746,7 @@ and changed calc.el replace.el update-game-score.c calc-ext.el calc-misc.el calc-macs.el calc-mode.el calc-graph.el gamegrid.el calc-aent.el calc-bin.el calc-embed.el calc-keypd.el calc-math.el calc-prog.el calc-units.el calcalg2.el font-core.el info.el calc-alg.el - calc-arith.el and 80 other files + calc-arith.el and 81 other files Colin Williams: changed calc.texi @@ -736,12 +762,13 @@ Craig Tanis: changed ox-latex.el Daiki Ueno: wrote epa-dired.el epa-file.el epa-hook.el epa-mail.el epa.el epg-config.el epg.el pgg-def.el pgg-gpg.el pgg-parse.el pgg-pgp.el - pgg-pgp5.el pgg.el plstore.el sasl.el starttls.el + pgg-pgp5.el pgg.el pinentry.el plstore.el sasl.el starttls.el and co-wrote sasl-cram.el sasl-digest.el and changed mml2015.el mml1991.el epa.texi auth-source.el mml-smime.el - mml.el package.el gnus.texi mm-decode.el mm-uu.el auth.texi gnus-sum.el - mm-view.el mml-sec.el archive-contents archive-contents.sig dbus.el - dired.el dired.texi epa-file-hook.el epa-setup.el and 32 other files + mml.el package.el gnus.texi mm-decode.el mm-uu.el process.c subr.el + auth.texi gnus-sum.el image-mode.el mm-view.el mml-sec.el + processes.texi qp.el archive-contents archive-contents.sig + and 45 other files Dale Gulledge: changed TUTORIAL.eo @@ -752,7 +779,8 @@ and changed mail-extr.el Dale Sedivec: changed sgml-mode.el wisent/python.el -Damien Cassou: changed info.el +Damien Cassou: co-wrote auth-source-tests.el +and changed info.el Damien Elmes: changed erc.el erc-dcc.el erc-track.el erc-log.el erc-pcomplete.el README erc-button.el erc-nets.el erc-ring.el Makefile @@ -769,10 +797,10 @@ Dan Christensen: changed gnus-sum.el nndoc.el nnfolder.el gnus-art.el Dan Davison: wrote ob-matlab.el ob-octave.el and co-wrote ob-R.el ob-core.el ob-exp.el ob-lob.el ob-perl.el ob-python.el ob-ref.el org-src.el -and changed ob.el ob-sh.el org.el ox.el ox-latex.el ob-tangle.el ob-C.el - ob-asymptote.el ob-clojure.el ob-haskell.el ob-ruby.el ob-scheme.el - ob-table.el ob-ditaa.el ob-dot.el ob-gnuplot.el ob-js.el ob-mscgen.el - ob-ocaml.el ob-org.el ob-plantuml.el and 14 other files +and changed ob.el ob-sh.el org-exp.el org.el ox-latex.el ob-tangle.el + ob-C.el ob-asymptote.el ob-clojure.el ob-haskell.el ob-ruby.el + ob-scheme.el ob-table.el ob-ditaa.el ob-dot.el ob-gnuplot.el ob-js.el + ob-mscgen.el ob-ocaml.el ob-org.el ob-plantuml.el and 14 other files Daniel Bergey: changed indian.el @@ -784,12 +812,12 @@ Daniel Colascione: wrote finalizer-tests.el generator-tests.el generator.el syntax-tests.el and co-wrote js.el and changed w32fns.c alloc.c emacs.c cl-macs.el image.c keyboard.c lisp.h - sh-script.el configure.ac cygw32.c process.c src/Makefile.in w32term.h - automated/cl-lib-tests.el cygw32.h dbusbind.c fns.c unexcw.c unexw32.c - w32.c w32term.c and 144 other files + process.c sh-script.el configure.ac cygw32.c simple.el src/Makefile.in + w32term.h automated/cl-lib-tests.el cygw32.h dbusbind.c fns.c unexcw.c + unexw32.c w32.c and 154 other files Daniel Dehennin: changed mml2015.el gnus-mlspl.el gnus-msg.el - mm-decode.el ox.el + mm-decode.el org-exp.el Daniel E. Doherty: changed calc.texi @@ -814,6 +842,8 @@ Daniel LaLiberte: wrote cust-print.el edebug.el isearch.el and co-wrote hideif.el and changed mlconvert.el eval-region.el +Daniel Mcclanahan: changed lisp-mode.el + Daniel M Coffman: changed arc-mode.el Daniel M German: co-wrote org-protocol.el @@ -838,11 +868,10 @@ Daniel Quinlan: changed dired.el info.el Daniel Schoepe: changed gnus-sum.el -Dani Moncayo: changed Makefile.in msys-to-w32 configure.ac buffers.texi - lists.texi mini.texi nt/makefile.w32-in INSTALL README.W32 basic.texi - custom.texi dired.texi display.texi emacs-lisp-intro.texi killing.texi +Dani Moncayo: changed msys-to-w32 Makefile.in configure.ac buffers.texi + lists.texi mini.texi INSTALL README.W32 basic.texi custom.texi + dired.texi display.texi emacs-lisp-intro.texi files.texi killing.texi make-dist mark.texi msysconfig.sh simple.el text.texi version.el - zipdist.bat Dan Nicolaescu: wrote iris-ansi.el romanian.el vc-dir.el and co-wrote hideshow.el @@ -882,10 +911,12 @@ and co-wrote latin-ltx.el socks.el and changed configure.ac help.el mule-cmds.el fortran.el mule-conf.el xterm.c browse-url.el mule.el coding.c src/Makefile.in european.el fns.c mule-diag.el simple.el wid-edit.el cus-edit.el cus-start.el - files.el keyboard.c byte-opt.el info.el and 770 other files + files.el keyboard.c byte-opt.el info.el and 772 other files Dave Pearson: wrote 5x5.el quickurl.el +Dave Thomas: changed term.el + David Abrahams: changed gnus-int.el gnus-sum.el nnimap.el gnus-registry.el org-agenda.el auth-source.el coding.c cus-start.el ediff-init.el ediff-util.el filelock.c gnus-range.el gnus-salt.el @@ -904,15 +935,15 @@ David Byers: changed minibuf.c David Cadé: changed mpc.el -David Caldwell: changed unexmacosx.c +David Caldwell: changed unexmacosx.c vc-hooks.el David Casperson: changed font-core.el menu-bar.el tex-mode.el David De La Harpe Golden: changed files.el mouse.el simple.el fileio.c cus-start.el nsselect.m select.el w32-fns.el x-win.el xterm.c -David Edmondson: changed message.el mml2015.el gnus-cite.el mm-uu.el - mm-view.el nnfolder.el nnimap.el nnml.el shr.el +David Edmondson: changed message.el mml2015.el erc.el gnus-cite.el + imap.el mm-uu.el mm-view.el nnfolder.el nnimap.el nnml.el shr.el David Engster: wrote mairix.el nnmairix.el and co-wrote gitmerge.el @@ -920,7 +951,7 @@ and changed cedet/semantic.el db.el insert.el semantic/complete.el c.by c.el db-el.el db-find.el ede-grammar.el eieio-opt.el eieio.el eieio.texi gnus.texi registry.el srecode/compile.el wisent/python.el analyze.el bovine/el.el bovine/grammar.el db-file.el decorate/mode.el - and 85 other files + and 86 other files David Gillespie: wrote calc-aent.el calc-alg.el calc-arith.el calc-bin.el calc-comb.el calc-cplx.el calc-embed.el calc-ext.el calc-fin.el @@ -945,7 +976,7 @@ David Hedbor: changed nnmail.el David Hull: changed vc-hg.el -David Hunter: changed config.nt flymake.el inc/ms-w32.h process.c +David Hunter: changed flymake.el inc/ms-w32.h process.c David J. Biesack: changed antlr-mode.el quickurl.el @@ -957,10 +988,10 @@ David J. MacKenzie: changed configure.ac Makefile.in etags.c fakemail.c David Kågedal: wrote tempo.el and changed sendmail.el xmenu.c -David Kastrup: changed greek.el replace.el efaq.texi search.c subr.el - ange-ftp.el calc.el help.el keymaps.texi mouse.el woman.el desktop.el - gnus-art.el keymap.c keymap.h lisp-mnt.el meta-mode.el mpuz.el - process.c search.texi startup.el and 81 other files +David Kastrup: changed greek.el replace.el subr.el efaq.texi search.c + ange-ftp.el calc.el gnus-art.el help.el keymaps.texi mouse.el woman.el + cperl-mode.el desktop.el ebrowse.el info.el keyboard.c keymap.c + keymap.h kmacro.el lisp-mnt.el and 102 other files David Lawrence: changed comint.el simple.el files.el c++-mode.el compile.el inf-lisp.el shell.el emerge.el tex-mode.el c-mode.el cl.el @@ -969,9 +1000,9 @@ David Lawrence: changed comint.el simple.el files.el c++-mode.el David Lord: changed timeclock.el -David Maus: changed org.el org-agenda.el ox.el org-feed.el org-wl.el +David Maus: changed org.el org-agenda.el org-exp.el org-feed.el org-wl.el org-macs.el ox-html.el org-capture.el org.texi org-gnus.el org-bbdb.el - org-clock.el org-protocol.el ox-publish.el ob-haskell.el ob.el + org-clock.el org-protocol.el org-publish.el ob-haskell.el ob.el org-bibtex.el org-compat.el org-footnote.el org-id.el org-list.el and 20 other files @@ -990,10 +1021,10 @@ and changed display.texi David Moore: co-wrote nnvirtual.el and changed gnus-xmas.el -David Mosberger-Tang: changed alpha.h unexelf.c cm.h configure.ac - cvtmail.c data.c dispnew.c emacsserver.c etags.c fakemail.c keyboard.c - mem-limits.h process.c profile.c sorted-doc.c sysdep.c terminfo.c - unexelf1.c yow.c +David Mosberger-Tang: changed alpha.h unexelf.c cm.h config.in + configure.ac cvtmail.c data.c dispnew.c emacsserver.c etags.c + fakemail.c keyboard.c mem-limits.h process.c profile.c sorted-doc.c + sysdep.c terminfo.c unexelf1.c yow.c David M. Smith: wrote ielm.el and changed imenu.el pgg-def.el xterm.c @@ -1009,7 +1040,7 @@ and co-wrote util-modes.el and changed w32menu.c w32term.c close.png close.xpm empty.png empty.xpm end-guide.png end-guide.xpm files.el guide.png guide.xpm handle.png handle.xpm keyboard.c leaf.png leaf.xpm no-guide.png no-guide.xpm - no-handle.png no-handle.xpm open.png and 22 other files + no-handle.png no-handle.xpm open.png and 21 other files David Raynes: changed ns-win.el @@ -1019,8 +1050,7 @@ and changed nsterm.m nsfns.m ns-win.el nsfont.m cus-start.el macos.texi easy-mmode.el emacsbug.el emacsclient.c faces.el flyspell.el info.el keyboard.c keymap.c lib-src/Makefile.in and 15 other files -David Robinow: changed w32inevt.c lib-src/makefile.w32-in - lispintro/makefile.w32-in +David Robinow: changed w32inevt.c David Robinson: changed menu-bar.el x-win.el @@ -1056,16 +1086,16 @@ and changed complete.el Denis Stünkel: changed ibuf-ext.el -Deniz Dogan: changed rcirc.el simple.el css-mode.el TUTORIAL.sv - commands.texi erc-log.el erc.el image.el iswitchb.el lisp-mode.el - process.c progmodes/python.el quickurl.el rcirc.texi vc/vc-bzr.el - wdired.el window.el +Deniz Dogan: changed rcirc.el simple.el css-mode.el erc-backend.el + TUTORIAL.sv commands.texi erc-log.el erc.el image.el iswitchb.el + lisp-mode.el process.c progmodes/python.el quickurl.el rcirc.texi + vc/vc-bzr.el wdired.el window.el Dennis Gilmore: changed sparc.h Denys Duchier: changed pop3.el -Derek Atkins: changed pgg-pgp.el +Derek Atkins: changed imap.el pgg-pgp.el Derek L. Davies: changed gud.el @@ -1078,14 +1108,13 @@ and changed buffer.c Devon Sean McCullough: changed comint.el url-http.el -Dhruva Krishnamurthy: changed emacsclient.c fontset.c makefile.w32-in - misc/makefile.w32-in nt/makefile.w32-in sound.c w32proc.c +Dhruva Krishnamurthy: changed emacsclient.c fontset.c sound.c w32proc.c Diane Murray: changed erc.el erc-backend.el erc-menu.el erc-button.el erc-track.el erc-match.el erc-nets.el erc-list.el erc-autoaway.el erc-capab.el erc-nickserv.el erc-stamp.el erc-compat.el erc-fill.el erc-goodies.el erc-ibuffer.el erc-log.el erc-nicklist.el url-http.el - Makefile erc-dcc.el and 37 other files + Makefile erc-dcc.el and 36 other files Didier Verna: wrote gnus-diary.el nndiary.el and co-wrote nnml.el @@ -1097,8 +1126,8 @@ and changed nntp.el message.el gnus-group.el gnus-sum.el gnus-msg.el Dieter Schuster: changed etags.c -Dima Kogan: changed hideshow.el autorevert.el erc-backend.el font.c - subword.el gud.el simple.el xfaces.c xgselect.c +Dima Kogan: changed erc-backend.el font.c gud.el hideshow.el alloc.c + autorevert.el subword.el simple.el winner.el xfaces.c xgselect.c Dirk Herrmann: co-wrote bibtex.el @@ -1120,11 +1149,11 @@ Dmitry Dzhus: changed gdb-mi.el gud.el fadr.el all.xpm building.texi Dmitry Gorbik: changed org.el -Dmitry Gutov: changed ruby-mode.el ruby-mode-tests.el xref.el ruby.rb - package.el vc-git.el log-edit.el package-test.el elisp-mode.el js.el - lisp.el menu-bar.el etags.el newcomment.el vc-svn.el vc.el - archive-contents automated/package-test.el find-func.el minibuffer.el - simple.el and 40 other files +Dmitry Gutov: wrote elisp-mode-tests.el json-tests.el vc-hg.el +and changed ruby-mode.el xref.el elisp-mode.el etags.el project.el + ruby-mode-tests.el vc-git.el ruby.rb package.el vc.el js.el log-edit.el + menu-bar.el vc-svn.el minibuffer.el package-test.el progmodes/grep.el + find-func.el lisp.el pulse.el simple.el and 81 other files Dmitry Kurochkin: changed isearch.el @@ -1151,7 +1180,7 @@ and changed cus-edit.el dired.el faces.el files.el help-mode.el imenu.el bookmark.el custom.el descr-text.el dired.texi etags.el finder.el frame.el help-fns.el help.el and 10 other files -Ed L. Cashin: changed gnus-sum.el +Ed L. Cashin: changed gnus-sum.el imap.el Ed Swarthout: changed hexl.el textmodes/table.el @@ -1197,15 +1226,17 @@ Elias Pipping: changed doc-view.el XDelAssoc.c XMakeAssoc.c files.el shr.el Eli Barzilay: wrote calculator.el +and changed simple.el dired.el Eli Tziperman: wrote rmail-spam-filter.el Eli Zaretskii: wrote [bidirectional display in xdisp.c] - [tty menus in term.c] bidi.c biditest.el rxvt.el tty-colors.el -and changed xdisp.c msdos.c w32.c w32fns.c fileio.c files.el simple.el - w32proc.c display.texi dispnew.c dispextern.h config.bat emacs.c - sed1v2.inp src/makefile.w32-in term.c w32term.c msdos.h src/Makefile.in - keyboard.c process.c and 797 other files + [tty menus in term.c] abbrev-tests.el bidi.c biditest.el + coding-tests.el rxvt.el tty-colors.el +and changed xdisp.c msdos.c w32.c w32fns.c files.el display.texi fileio.c + simple.el w32proc.c w32term.c dispnew.c emacs.c keyboard.c window.c + dispextern.h frames.texi INSTALL src/Makefile.in config.bat files.texi + sed1v2.inp and 959 other files Emanuele Giaquinta: changed configure.ac rxvt.el charset.c etags.c fontset.c frame.el gnus-faq.texi loadup.el lread.c sh-script.el @@ -1226,9 +1257,9 @@ and changed ada-stmt.el Era Eriksson: changed bibtex.el dired.el json.el ses.el ses.texi shell.el tramp.el tramp.texi -Eric Abrahamsen: changed nnir.el eieio.el gnus-bcklg.el gnus-registry.el - gnus-sum.el gnus.texi nnimap.el nnmairix.el org.el org.texi ox-html.el - ox-latex.el registry.el +Eric Abrahamsen: changed registry.el nnimap.el gnus-registry.el + gnus-start.el nnir.el eieio.el gnus-bcklg.el gnus-group.el gnus-sum.el + gnus.texi nnmairix.el org.el org.texi ox-html.el ox-latex.el Eric Bélanger: changed image.c @@ -1241,7 +1272,7 @@ and changed mh-utils.el mh-e.el mh-comp.el mh-mime.el Eric Eide: changed gnus-xmas.el -Eric Hanchrow: changed erc.el vc-git.el TUTORIAL.es abbrev.el +Eric Hanchrow: changed erc.el shr.el vc-git.el TUTORIAL.es abbrev.el autorevert.el cperl-mode.el dired.el emacsclient.c env.el frames.texi ibuf-ext.el ispell.el ldap.el make-dist opascal.el progmodes/python.el tramp.texi window.el @@ -1288,7 +1319,7 @@ and changed c.srt ede.texi info.el rmail.el speedbspec.el cedet.el ede-autoconf.srt ede-make.srt eieio.texi gud.el sb-dir-minus.xpm sb-dir-plus.xpm sb-dir.xpm sb-mail.xpm sb-pg-minus.xpm sb-pg-plus.xpm sb-pg.xpm sb-tag-gt.xpm sb-tag-minus.xpm sb-tag-plus.xpm - sb-tag-type.xpm and 31 other files + sb-tag-type.xpm and 34 other files Eric Schulte: wrote ob-C.el ob-asymptote.el ob-awk.el ob-calc.el ob-comint.el ob-css.el ob-ditaa.el ob-dot.el ob-emacs-lisp.el @@ -1299,7 +1330,7 @@ Eric Schulte: wrote ob-C.el ob-asymptote.el ob-awk.el ob-calc.el and co-wrote ob-R.el ob-clojure.el ob-core.el ob-exp.el ob-fortran.el ob-lisp.el ob-lob.el ob-maxima.el ob-perl.el ob-picolisp.el ob-python.el ob-ref.el ob-scheme.el org-bibtex.el -and changed org.texi org.el org-exp-blocks.el ox.el ox-latex.el +and changed org.texi org.el org-exp-blocks.el org-exp.el ox-latex.el org-src.el ob-plantuml.el ob-screen.el org-macs.el org-table.el org-agenda.el org-mouse.el orgcard.tex ob-lilypond.el ob-mscgen.el ob-octave.el org-clock.el org-compat.el org-footnote.el ox-ascii.el @@ -1314,8 +1345,8 @@ Eric S. Raymond: wrote AT386.el asm-mode.el cookie1.el finder.el gud.el and co-wrote make-mode.el and changed vc.el vc-hooks.el vc-svn.el vc-cvs.el vc-git.el vc-rcs.el vc-sccs.el vc-hg.el vc-bzr.el vc-dispatcher.el files.texi vc-mcvs.el - vc-mtn.el files.el comint.el emacsbug.el simple.el vc-arch.el vc-src.el - Makefile.in add-log.el and 271 other files + vc-mtn.el files.el vc-arch.el comint.el emacsbug.el simple.el vc-src.el + Makefile.in add-log.el and 272 other files Eric Youngdale: changed etags-vmslib.c @@ -1350,6 +1381,8 @@ Evangelos Evangelou: changed progmodes/f90.el Evgeni Dobrev: changed man.el +Evgeny Fraimovitch: changed emacsclient.c + Evgeny Roubinchtein: changed mail-source.el pc-select.el Exal de Jesus Garcia Carrillo: changed erc-sound.el erc.texi @@ -1357,7 +1390,7 @@ Exal de Jesus Garcia Carrillo: changed erc-sound.el erc.texi Eyal Lotem: changed ido.el Fabián Ezequiel Gallina: wrote progmodes/python.el subr-x-tests.el -and changed python-tests.el subr-x.el imenu.el +and changed python-tests.el subr-x.el imenu.el wisent/python.el Fabrice Bauzac: changed dired-aux.el @@ -1365,14 +1398,16 @@ Fabrice Niessen: wrote leuven-theme.el and changed org-agenda.el Fabrice Popineau: changed w32.c ms-w32.h w32fns.c w32heap.c configure.ac - lisp.h unexw32.c w32term.c buffer.c emacs.c image.c nmake.defs - w32heap.h w32proc.c INSTALL addsection.c alloc.c config.nt dispextern.h - emacs-x64.manifest emacs-x86.manifest and 23 other files + lisp.h unexw32.c w32term.c buffer.c emacs.c image.c w32heap.h w32proc.c + INSTALL addsection.c alloc.c dispextern.h emacs-x64.manifest + emacs-x86.manifest etags.c fileio.c and 20 other files Fan Kai: changed esh-arg.el Faried Nawaz: changed message.el +Federico Beffa: changed xscheme.el + Felix H. Dahlke: changed js.el Felix Lee: changed flyspell.el outline.el cl.texi data.c gud.el nntp.el @@ -1384,7 +1419,8 @@ Felix S. T. Wu: co-wrote vi.el (public domain) Feng Li: changed calc-ext.el pascal.el which-func.el -Feng Shu: changed org.el org.texi ox.el ox-html.el ox-latex.el ox-odt.el +Feng Shu: changed org.el org.texi org-exp.el ox-html.el ox-latex.el + ox-odt.el ox.el Ferenc Wagner: changed nnweb.el @@ -1448,7 +1484,7 @@ Frank Schmitt: changed gnus-sum.el cmdargs.texi gnus-faq.texi Frank Weinberg: changed gnus-art.el -Fran Litterio: changed erc-backend.el erc.el +Fran Litterio: changed erc.el erc-backend.el Frédéric Bothamy: changed TUTORIAL.fr @@ -1501,7 +1537,7 @@ Gary Oberbrunner: changed gud.el Gary Wong: changed termcap.c tparam.c -Gaute B Strokkenes: changed gnus-fun.el mail-source.el process.c +Gaute B Strokkenes: changed imap.el gnus-fun.el mail-source.el process.c G Dinesh Dutt: changed etags.el @@ -1518,7 +1554,7 @@ Geoff Voelker: wrote ms-w32.h w32-fns.el w32.c w32.h w32heap.c w32heap.h and changed makefile.nt w32fns.c fileio.c makefile.def callproc.c s/ms-w32.h emacs.bat.in unexw32.c w32term.h dos-w32.el loadup.el w32-win.el emacs.c keyboard.c ntterm.c process.c w32console.c addpm.c - cmdproxy.c comint.el files.el and 101 other files + cmdproxy.c comint.el files.el and 100 other files Georg C. F. Greve: changed pgg-gpg.el @@ -1534,7 +1570,7 @@ Gerd Möllmann: wrote authors.el ebrowse.el jit-lock.el rx.el tooltip.el and changed xdisp.c xterm.c dispnew.c dispextern.h xfns.c xfaces.c window.c keyboard.c lisp.h faces.el alloc.c buffer.c startup.el xterm.h fns.c simple.el term.c configure.ac frame.c xmenu.c emacs.c - and 600 other files + and 610 other files Gergely Nagy: changed erc.el @@ -1557,10 +1593,10 @@ Giuseppe Scrivano: changed browse-url.el buffer.c configure.ac sysdep.c Glenn Morris: wrote automated/f90.el automated/vc-bzr.el check-declare.el and changed configure.ac Makefile.in src/Makefile.in calendar.el - diary-lib.el files.el lisp/Makefile.in rmail.el progmodes/f90.el - make-dist simple.el misc/Makefile.in bytecomp.el emacs.texi - lib-src/Makefile.in ack.texi authors.el cal-menu.el startup.el - display.texi admin.el and 1534 other files + diary-lib.el lisp/Makefile.in files.el rmail.el progmodes/f90.el + make-dist simple.el bytecomp.el emacs.texi misc/Makefile.in ack.texi + lib-src/Makefile.in startup.el authors.el admin.el cal-menu.el + holidays.el and 1590 other files Glynn Clements: wrote gamegrid.el snake.el tetris.el @@ -1577,8 +1613,10 @@ Greg Klanderman: changed messagexmas.el Greg McGary: co-wrote po.el and changed tar-mode.el -Grégoire Jadi: changed org.texi rcirc.el latin-post.el ob-core.el - org-id.el org.el reporter.el sendmail.el +Grégoire Jadi: changed emacsgtkfixed.c keyboard.c xwidget.c xwidget.el + org.texi Makefile.in configure.ac dispextern.h dispnew.c emacs.c lisp.h + print.c rcirc.el termhooks.h window.c xdisp.c xterm.c xwidget.h + latin-post.el ob-core.el org-id.el and 4 other files Gregorio Gervasio, Jr.: changed gnus-sum.el @@ -1587,6 +1625,8 @@ Gregor Kappler: changed ox.el Gregor Schmid: changed intervals.c intervals.h tcl-mode.el textprop.c dispnew.c indent.c xdisp.c +Gregory Chernov: changed nnslashdot.el + Gregory Neil Shapiro: changed mailabbrev.el Gregor Zattler: changed emacs-lisp-intro.texi @@ -1598,7 +1638,8 @@ Guanpeng Xu: changed add-log.el TUTORIAL.cn display.texi mouse.el Gunnar Horrigmo: changed gnus-sum.el -Gustav Hållberg: changed descr-text.el progmodes/compile.el rect.el vc.el +Gustav Hållberg: changed descr-text.el diff-mode.el progmodes/compile.el + rect.el vc.el Gustav Wikström: changed org-agenda.el org.texi @@ -1633,20 +1674,21 @@ Hans Wennborg: changed emacs.c Han-Wen Nienhuys: changed emacsclient.c server.el +Harald Hanche-Olsen: changed sgml-mode.el skeleton.el + Harald Maier: changed w32heap.c Harald Meland: changed gnus-art.el gnus-salt.el gnus-score.el gnus-util.el gnus-win.el mail-source.el -Harri Kiiskinen: changed org-protocol.el ox-publish.el +Harri Kiiskinen: changed org-protocol.el org-publish.el H. Dieter Wilhelm: changed calc-help.el maintaining.texi Heiko Muenkel: changed b2m.c -Helmut Eller: changed emacs-lisp/debug.el cl-indent.el cl-macs.el +Helmut Eller: changed emacs-lisp/debug.el xref.el cl-indent.el cl-macs.el elisp-mode.el etags.el eval.c lisp-mode.el process-tests.el process.c - xref.el Helmut Waitzmann: changed gnus-sum.el gnus.texi @@ -1680,6 +1722,8 @@ Hoan Ton-That: changed erc-log.el Holger Schauer: wrote fortune.el and changed message-utils.el +Hosoya Kei: changed TUTORIAL.ja + Hovav Shacham: wrote windmove.el Howard Gayle: wrote case-table.el casetab.c iso-ascii.el iso-insert.el @@ -1703,7 +1747,7 @@ Ian D: changed doc-view.el image-mode.el Ian Eure: changed sql.el url-util.el -Ian Kelling: changed ob-core.el +Ian Kelling: changed process.c ob-core.el Ian Lance Taylor: changed sco4.h @@ -1723,8 +1767,8 @@ Ilya Shlyakhter: changed org.el ob-lilypond.el org-clock.el Ilya Zakharevich: wrote tmm.el and co-wrote cperl-mode.el -and changed syntax.c intervals.c syntax.h textprop.c dired.c font-lock.el - intervals.h regex.c regex.h search.c +and changed syntax.c w32fns.c intervals.c syntax.h textprop.c dired.c + font-lock.el intervals.h regex.c regex.h search.c Ilya Zonov: changed org-mouse.el @@ -1737,7 +1781,8 @@ Inge Frick: changed easymenu.el keyboard.c view.el compile.el Inge Wallin: co-wrote avl-tree.el ewoc.el -Ingo Lohmar: changed help-fns.el ls-lisp.el org-agenda.el org.el +Ingo Lohmar: changed calendar.el calendar.texi help-fns.el ls-lisp.el + org-agenda.el org.el Inoue Seiichiro: changed xterm.c xfns.c xterm.h @@ -1756,18 +1801,22 @@ Istvan Marko: changed gnus-agent.el xfns.c Itai Zukerman: changed mm-decode.el -Ivan Andrus: changed ffap.el find-file.el ibuf-ext.el ibuffer.el +Ivan Andrus: changed epg.el ffap.el find-file.el ibuf-ext.el ibuffer.el + newcomment.el nextstep/templates/Info.plist.in nxml-mode.el progmodes/python.el Ivan Boldyrev: changed mml1991.el Ivan Kanis: wrote vc-hg.el -and changed eww.el shr.el appt.el dired.el saveplace.el term.el time.el +and changed eww.el shr.el appt.el dired.el help-fns.el saveplace.el + term.el time.el + +Ivan Radanov Ivanov: changed quail/cyrillic.el -Ivan Shmakov: changed eww.el shr.el desktop.el eww.texi files.el - cus-dep.el diff-mode.el enriched.el erc-track.el facemenu.el faces.el - files.texi misearch.el nndoc.el tar-mode.el tcl.el tex-mode.el - url-cookie.el +Ivan Shmakov: changed eww.el shr.el desktop.el eww.texi faces.el files.el + cus-dep.el descr-text.el diff-mode.el enriched.el erc-track.el + facemenu.el files.texi misearch.el nndoc.el tar-mode.el tcl.el + tex-mode.el url-cookie.el Ivan Vilata i Balaguer: changed org-clock.el org.texi @@ -1785,6 +1834,10 @@ Jack Duthen: changed which-func.el Jack Repenning: changed unexelfsgi.c +Jackson Ray Hamilton: changed js.el indent/js-indent-init-dynamic.js + indent/js-indent-init-t.js js-indent-init-dynamic.js js-jsx.js js.js + sgml-mode.el + Jack Twilley: changed message.el Jacob Morzinski: changed mh-comp.el @@ -1797,7 +1850,7 @@ Jaeyoun Chung: changed hangul3.el hanja3.el gnus-mule.el hangul.el Jambunathan K: wrote ox-odt.el and co-wrote ox-html.el -and changed org-lparse.el org.el org.texi ox.el icomplete.el +and changed org-lparse.el org.el org-exp.el org.texi icomplete.el OrgOdtContentTemplate.xml OrgOdtStyles.xml hi-lock.el replace.el minibuffer.el org-footnote.el org-inlinetask.el register.el doc-view.el etags.el htmlfontify.el ido.el indian.el iswitchb.el org-bbdb.el @@ -1818,6 +1871,8 @@ James R. Larus: co-wrote mh-e.el James R. Van Zandt: changed sh-script.el +James Stout: changed url-http.el + James TD Smith: changed org.el org-colview.el org-clock.el org-remember.el org-plot.el org-agenda.el org-compat.el org-habit.el org.texi @@ -1840,8 +1895,8 @@ and changed org.el org.texi Jan Djärv: wrote dnd.el dynamic-setting.el x-dnd.el and changed gtkutil.c xterm.c nsterm.m xfns.c configure.ac nsfns.m xmenu.c xterm.h nsterm.h nsmenu.m gtkutil.h keyboard.c x-win.el emacs.c - frame.c process.c src/Makefile.in xsettings.c nsfont.m cus-start.el - frames.texi and 301 other files + frame.c src/Makefile.in process.c xsettings.c cus-start.el nsfont.m + frames.texi and 304 other files Jan-Hein Buhrman: changed ange-ftp.el env.el @@ -1857,7 +1912,7 @@ Jan Rychter: changed gnus-msg.el Jan Schormann: wrote solitaire.el -Jan Seeger: changed ox-publish.el parse-time.el +Jan Seeger: changed org-publish.el parse-time.el Jan Tatarik: wrote gnus-icalendar.el and changed gnus-score.el gnus-logic.el @@ -1885,23 +1940,24 @@ Jason Dunsmore: changed org.el ox-html.el Jason L. Wright: changed smtpmail.el -Jason Merrill: changed gnus-sum.el add-log.el gnus-salt.el nnfolder.el +Jason Merrill: changed gnus-sum.el add-log.el gnus-salt.el imap.el + nnfolder.el Jason Riedy: changed org-table.el org.texi Jason Rumney: wrote w32-vars.el and changed w32fns.c w32term.c w32font.c w32menu.c w32-win.el w32term.h - w32.c w32uniscribe.c src/makefile.w32-in w32-fns.el makefile.nt - w32console.c w32bdf.c lib-src/makefile.w32-in configure.bat keyboard.c - w32proc.c w32select.c font.c image.c w32font.h and 165 other files + w32.c w32uniscribe.c w32-fns.el makefile.nt w32console.c w32bdf.c + configure.bat keyboard.c w32proc.c w32select.c font.c image.c w32font.h + w32gui.h xdisp.c and 154 other files Jason S. Cornez: changed keyboard.c Jay Belanger: changed calc.texi calc.el calc-ext.el calc-units.el - calc-aent.el calc-embed.el calc-help.el calc-lang.el calc-prog.el - calc-forms.el calccomp.el calc-math.el calc-arith.el calc-graph.el - calc-misc.el calcalg2.el calc-alg.el calc-store.el calc-yank.el - calc-bin.el calc-mode.el and 39 other files + calc-aent.el calc-embed.el calc-help.el calc-prog.el calc-forms.el + calc-lang.el calccomp.el calc-math.el calc-yank.el calc-arith.el + calc-graph.el calc-misc.el calcalg2.el calc-alg.el calc-store.el + calc-bin.el calc-menu.el and 39 other files Jay K. Adams: wrote jka-cmpr-hook.el jka-compr.el @@ -1945,6 +2001,9 @@ Jens Krinke: changed smime.el Jens Lautenbacher: changed gnus.el +Jens Lechtenboerger: changed mml-sec.el gnus-util.el message.el + message.texi mml-smime.el mml1991.el mml2015.el + Jens Petersen: wrote find-func.el and changed mule-cmds.el pcmpl-rpm.el @@ -1982,7 +2041,7 @@ and changed gnus-sum.el gnus-art.el message.el gnus-group.el gnus-msg.el gnus.el gnus-util.el rfc2047.el mm-bodies.el mm-util.el mml.el mm-decode.el nnrss.el gnus-srvr.el gnus-topic.el nnmail.el gnus-start.el gnus-uu.el spam-stat.el gnus-score.el gnus.texi - and 197 other files + and 201 other files Jhair Tocancipa Triana: changed gnus-audio.el @@ -1993,7 +2052,7 @@ and co-wrote wyse50.el and changed keyboard.c xterm.c xfns.c window.c process.c ymakefile dispnew.c xdisp.c sysdep.c configure.ac lisp.h Makefile.in keymap.c configure make-dist buffer.c frame.c screen.c simple.el alloc.c emacs.c - and 402 other files + and 401 other files Jim Diamond: changed server.el @@ -2003,7 +2062,7 @@ Jim Kingdon: changed emacs.texi emacsclient.c functions.texi hp300bsd.h Jim Meyering: changed lread.c make-docfile.c w32.c w32font.c copyright.el ebrowse.c emacs.c nsfont.m pop.c term.c xfaces.c xselect.c xterm.c alloc.c artist.el autoinsert.el buffer.h callproc.c character.h - charset.c configure and 56 other files + charset.c configure and 55 other files Jim Paris: changed process.c @@ -2027,18 +2086,22 @@ Joakim Hårsman: changed w32fns.c Joakim Hove: wrote html2text.el -Joakim Verona: wrote db-javascript.el +Joakim Jalap: wrote programmer-dvorak.el + +Joakim Verona: wrote db-javascript.el xwidget.el and co-wrote db-ebrowse.el -and changed Makefile.in configure.ac image-mode.el image.c image.el - nnrss.el progmodes/compile.el thingatpt.el window.c window.h +and changed emacsgtkfixed.c keyboard.c xwidget.c Makefile.in configure.ac + window.c dispextern.h dispnew.c emacs.c lisp.h print.c termhooks.h + xdisp.c xterm.c xwidget.h image-mode.el image.c image.el nnrss.el + progmodes/compile.el thingatpt.el window.h Joanna Pluta: changed TUTORIAL.pl João Cachopo: changed spam.el -João Távora: wrote elec-pair.el electric-tests.el -and changed shr.el tex-mode.el electric.el emacs.texi lisp-mode.el - progmodes/python.el python-tests.el simple.el tls.el vc.el +João Távora: wrote elec-pair.el electric-tests.el message-mode-tests.el +and changed tex-mode.el message.el shr.el electric.el emacs.texi + lisp-mode.el progmodes/python.el python-tests.el simple.el tls.el vc.el Jochen Hein: changed gnus-art.el @@ -2078,11 +2141,11 @@ Joe Wells: wrote mail-extr.el resume.el and co-wrote apropos.el and changed arc-mode.el tex-mode.el -Johan Bockgård: changed erc.el cl-macs.el erc-backend.el erc-button.el - erc-match.el icomplete.el xdisp.c browse-url.el bytecomp.el custom.el - display.texi erc-compat.el erc-nickserv.el erc-ring.el erc-speak.el - erc-track.el help-fns.el mouse-sel.el simple.el subr.el xterm.el - and 54 other files +Johan Bockgård: changed erc.el cl-macs.el pcase.el erc-backend.el + erc-button.el erc-match.el icomplete.el mouse-sel.el xdisp.c + browse-url.el bytecomp.el custom.el display.texi eieio.el erc-compat.el + erc-nickserv.el erc-ring.el erc-speak.el erc-track.el gnus-sum.el + help-fns.el and 60 other files Johan Claesson: changed filecache.el @@ -2144,16 +2207,16 @@ John Wiegley: wrote align.el automated/eshell.el cal-bahai.el em-alias.el remember.el timeclock.el and co-wrote org-pcomplete.el and changed org-clock.el org-agenda.el erc-chess.el org.el erc.el - iswitchb.el ido.el alloc.c allout.el auth-source.el cal-menu.el - calendar.el desktop.el diary-lib.el erc-bbdb.el erc-button.el - erc-complete.el erc-fill.el erc-ibuffer.el erc-list.el erc-match.el - and 22 other files + iswitchb.el ido.el alloc.c control.texi pcase.el allout.el + auth-source.el cal-menu.el calendar.el desktop.el diary-lib.el + erc-bbdb.el erc-button.el erc-complete.el erc-fill.el erc-ibuffer.el + and 24 other files John Williams: changed etags.el John Yates: changed hideshow.el -Jon Anders Skorpen: changed ox-publish.el +Jon Anders Skorpen: changed org-publish.el Jonas Bernoulli: changed eieio.el button.el ido.el lisp-mnt.el tabulated-list.el tips.texi @@ -2161,9 +2224,9 @@ Jonas Bernoulli: changed eieio.el button.el ido.el lisp-mnt.el Jonas Hoersch: changed org-inlinetask.el org.el Jonathan I. Kamens: changed pop.c movemail.c rmail.el configure.ac b2m.pl - lib-src/Makefile.in Makefile.in files.el pop.h terminal.el vc.el - gnus-sum.el jka-compr.el rmailout.el rnewspost.el sendmail.el simple.el - timezone.el vc-hooks.el + lib-src/Makefile.in Makefile.in config.in files.el pop.h terminal.el + vc.el gnus-sum.el jka-compr.el rmailout.el rnewspost.el sendmail.el + simple.el timezone.el vc-hooks.el Jonathan Leech-Pepin: wrote ox-texinfo.el @@ -2197,7 +2260,7 @@ and changed erc.el erc-track.el erc-backend.el erc-match.el erc-stamp.el erc-page.el erc-pcomplete.el erc-sound.el minibuffer.el package.el erc-bbdb.el and 12 other files -Jose A. Ortega Ruiz: changed gnus-sum.el +Jose A. Ortega Ruiz: changed url-http.el gnus-sum.el Jose E. Marchesi: changed ada-mode.el gomoku.el simple.el smtpmail.el @@ -2216,28 +2279,30 @@ Josh Elsasser: changed configure.ac Josh Feinstein: changed erc-join.el erc.el Josh Huber: changed mml-sec.el mml.el message.el gnus-msg.el mml2015.el - nnmail.el ChangeLog ChangeLog.1 gnus-cite.el gnus-delay.el gnus-spec.el - mml1991.el nnwfm.el gnus-cus.el gnus-smiley.el gnus-start.el - gnus-topic.el gnus.el nnbabyl.el nndiary.el nnfolder.el - and 7 other files + nnmail.el gnus-cite.el gnus-delay.el gnus-spec.el mml1991.el + nnultimate.el nnwfm.el gnus-cus.el gnus-smiley.el gnus-start.el + gnus-topic.el gnus.el nnbabyl.el nndiary.el nnfolder.el nnimap.el + and 6 other files Joshua Varner: changed intro.texi +Jostein Kjønigsen: changed progmodes/compile.el + Jouni K. Seppänen: changed gnus.texi nnimap.el mm-url.el Juan León Lahoz García: wrote wdired.el and changed files.el perl-mode.el -Juanma Barranquero: wrote emacs-lock.el frameset.el -and changed src/makefile.w32-in subr.el desktop.el config.nt w32fns.c - lib-src/makefile.w32-in server.el emacsclient.c faces.el files.el - simple.el bs.el help-fns.el w32term.c org.el xdisp.c keyboard.c w32.c - buffer.c ido.el image.c and 1109 other files +Juanma Barranquero: wrote emacs-lock.el frameset.el keymap-tests.el +and changed subr.el desktop.el w32fns.c server.el emacsclient.c simple.el + faces.el files.el bs.el help-fns.el w32term.c org.el xdisp.c keyboard.c + w32.c buffer.c ido.el image.c window.c allout.el process.c + and 1124 other files Juan Pechiar: wrote ob-mscgen.el and changed ob-octave.el -Juergen Kreileder: changed nnimap.el +Juergen Kreileder: changed imap.el nnimap.el Juergen Nickelsen: wrote ws-mode.el @@ -2263,16 +2328,19 @@ Junio Hamano: changed window.el Jure Cuhalev: changed ispell.el +Jürgen Hartmann: changed window.el + Jürgen Hötzel: wrote tramp-adb.el -and changed comint.el em-unix.el esh-util.el tramp.el url-handlers.el - wid-edit.el +and changed tramp-gvfs.el tramp-sh.el comint.el em-unix.el esh-util.el + tramp-cache.el tramp.el url-handlers.el wid-edit.el Juri Linkov: wrote files-x.el misearch.el occur-tests.el -and changed isearch.el info.el replace.el simple.el dired-aux.el - progmodes/grep.el dired.el progmodes/compile.el startup.el faces.el - files.el menu-bar.el display.texi bindings.el descr-text.el desktop.el - comint.el image-mode.el man.el cus-edit.el ispell.el - and 353 other files +and changed isearch.el info.el replace.el simple.el progmodes/grep.el + dired-aux.el dired.el progmodes/compile.el startup.el faces.el files.el + menu-bar.el bindings.el display.texi descr-text.el desktop.el comint.el + ispell.el image-mode.el man.el cus-edit.el and 354 other files + +Jussi Lahdenniemi: changed ms-w32.h w32.c w32.h w32fns.c w32heap.c Justin Bogner: changed fortune.el @@ -2289,12 +2357,12 @@ and co-wrote longlines.el tramp-sh.el tramp.el and changed message.el gnus-agent.el gnus-sum.el files.el nnmail.el tramp.texi nntp.el gnus.el simple.el ange-ftp.el dired.el paragraphs.el bindings.el files.texi gnus-art.el gnus-group.el man.el INSTALL - Makefile.in crisp.el fileio.c and 43 other files + Makefile.in crisp.el fileio.c and 45 other files Kailash C. Chowksey: changed HELLO ind-util.el kannada.el knd-util.el - lisp/Makefile.in loadup.el makefile.w32-in + lisp/Makefile.in loadup.el -Kai Tetzlaff: changed ox-publish.el url-http.el +Kai Tetzlaff: changed org-publish.el url-http.el Kalle Kankare: changed image.c @@ -2322,15 +2390,15 @@ Karl Eichwalder: changed Makefile.in add-log.el bookmark.el dired-aux.el dired.el info.el menu-bar.el midnight.el po.el Karl Fogel: wrote bookmark.el mail-hist.el saveplace.el -and changed files.el doc-view.el image-mode.el info.el simple.el INSTALL - autogen.sh isearch.el menu-bar.el thingatpt.el vc-svn.el INSTALL.REPO - comint.el configure configure.ac editfns.c gnus-bookmark.el gnus-msg.el - gnus-sum.el man.el nnmail.el and 6 other files +and changed simple.el files.el simple-test.el vc-svn.el doc-view.el + image-mode.el info.el CONTRIBUTE INSTALL autogen.sh isearch.el + menu-bar.el thingatpt.el vc-git.el vc-hg.el vc.el vc/vc-bzr.el + INSTALL.REPO comint.el configure configure.ac and 12 other files Karl Heuer: changed keyboard.c lisp.h xdisp.c buffer.c xfns.c xterm.c alloc.c files.el frame.c configure.ac window.c data.c minibuf.c editfns.c fns.c process.c Makefile.in fileio.c simple.el keymap.c - indent.c and 446 other files + indent.c and 445 other files Karl Kleinpaste: changed gnus-sum.el gnus-art.el gnus-picon.el gnus-score.el gnus-uu.el gnus-xmas.el gnus.el mm-uu.el mml.el nnmail.el @@ -2348,15 +2416,17 @@ Karol Ostrovsky: changed configure.ac src/Makefile.in Károly Lőrentey: changed xfns.c bindings.el keyboard.c menu-bar.el buffer.c coding.c frame.el print.c rxvt.el simple.el spam.el sysdep.c x-win.el xdisp.c xt-mouse.el xterm.c xterm.h .gdbinit AT386.el HELLO - README and 100 other files + README and 101 other files Katsuhiro Hermit Endo: changed gnus-group.el gnus-spec.el Katsumi Yamaoka: wrote canlock.el and changed gnus-art.el message.el gnus-sum.el gnus.texi mm-decode.el - mm-util.el mm-view.el gnus-msg.el gnus-util.el mml.el gnus-group.el + mm-util.el gnus-util.el mm-view.el gnus-msg.el gnus-group.el mml.el rfc2047.el gnus-start.el gnus.el shr.el nntp.el gnus-agent.el nnrss.el - mm-uu.el nnmail.el gmm-utils.el and 146 other files + mm-uu.el nnmail.el gnus-html.el and 153 other files + +Kaushal Modi: changed calc-yank.el woman.el Kaushik Srenevasan: changed gdb-mi.el @@ -2383,13 +2453,13 @@ Kelly Dean: changed simple.el help-mode.el desktop.el files.el lisp.el register.el easy-mmode.el fileio.c help-fns.el help-macro.el help.el keyboard.c package-x.el rect.el windmove.el winner.el -Kelvin White: changed erc.el erc.texi NEWS.24 erc-backend.el erc-ring.el - erc-stamp.el +Kelvin White: changed erc.el erc-pcomplete.el erc.texi NEWS.24 + erc-backend.el erc-ring.el erc-stamp.el -Ken Brown: changed configure.ac gmalloc.c sheap.c cygwin.h emacs.c - browse-url.el conf_post.h emacs.rc.in unexcw.c w32term.c alloc.c - dispextern.h frame.c lisp.h src/Makefile.in vm-limit.c xgselect.c - CPP-DEFINES callproc.c config.nt dired.c and 17 other files +Ken Brown: changed configure.ac gmalloc.c sheap.c emacs.c cygwin.h + unexcw.c browse-url.el conf_post.h emacs.rc.in server.el w32term.c + alloc.c dispextern.h frame.c lisp.h profiler.c src/Makefile.in sysdep.c + syssignal.h test.el vm-limit.c and 23 other files Ken Brush: changed emacsclient.c @@ -2397,9 +2467,9 @@ Kenichi Handa: wrote composite.el decoder-tests.el isearch-x.el language/cyrillic.el ps-bdf.el py-punct.el pypunct-b5.el thai-word.el and co-wrote ps-def.el ps-mule.el ps-print.el ps-samp.el quail.el and changed coding.c mule-cmds.el mule.el fontset.c charset.c xdisp.c - font.c fontset.el xterm.c fileio.c mule-conf.el characters.el fns.c - ftfont.c mule-diag.el coding.h charset.h ccl.c xfaces.c editfns.c - composite.c and 374 other files + font.c fontset.el xterm.c fileio.c mule-conf.el characters.el ftfont.c + fns.c mule-diag.el coding.h charset.h ccl.c xfaces.c editfns.c + composite.c and 388 other files Kenichi Okada: co-wrote sasl-cram.el sasl-digest.el @@ -2417,10 +2487,10 @@ Kenneth Stailey: changed alpha.h configure.ac ns32000.h openbsd.h pmax.h Ken Olum: changed mail/rmailmm.el message.el rmail.el -Ken Raeburn: changed lisp.h lread.c alloc.c buffer.c fns.c keyboard.c - minibuf.c coding.c editfns.c fileio.c keymap.c xdisp.c configure.ac - emacs.c undo.c xfns.c xterm.c charset.h coding.h fontset.c process.c - and 96 other files +Ken Raeburn: changed lisp.h xterm.c xfns.c keyboard.c lread.c alloc.c + buffer.c fns.c minibuf.c coding.c configure.ac editfns.c fileio.c + keymap.c xdisp.c emacs.c src/Makefile.in undo.c charset.h coding.h + fontset.c and 101 other files Ken Stevens: wrote ispell.el @@ -2441,10 +2511,10 @@ Kevin Gallagher: wrote edt-lk201.el edt-mapper.el edt-pc.el edt-user.el and changed edt.texi Kevin Gallo: wrote w32-win.el -and changed makefile.nt dispnew.c addpm.c config.nt config.w95 - dispextern.h emacs.c facemenu.el faces.el fns.c frame.c frame.h - keyboard.c makefile.def mouse.el ntterm.c process.c s/ms-w32.h scroll.c - startup.el sysdep.c and 19 other files +and changed makefile.nt dispnew.c addpm.c config.w95 dispextern.h emacs.c + facemenu.el faces.el fns.c frame.c frame.h keyboard.c makefile.def + mouse.el ntterm.c process.c s/ms-w32.h scroll.c startup.el sysdep.c + term.c and 18 other files Kevin Greiner: wrote legacy-gnus-agent.el and changed gnus-agent.el gnus-sum.el gnus-start.el gnus-int.el nntp.el @@ -2472,12 +2542,13 @@ Kim F. Storm: wrote bindat.el cua-base.el cua-gmrk.el cua-rect.el ido.el and changed xdisp.c dispextern.h process.c simple.el window.c keyboard.c xterm.c dispnew.c subr.el w32term.c lisp.h fringe.c display.texi macterm.c alloc.c fns.c xfaces.c keymap.c xfns.c xterm.h .gdbinit - and 250 other files + and 249 other files Kimit Yada: changed copyright.el Kim-Minh Kaplan: changed gnus-picon.el gnus-sum.el gnus-start.el - gnus-win.el gnus-xmas.el gnus.texi message.el nndraft.el nnml.el + gnus-win.el gnus-xmas.el gnus.texi imap.el message.el nndraft.el + nnml.el Kirill A. Korinskiy: changed fortune.el @@ -2500,6 +2571,8 @@ Kobayashi Yasuhiro: changed w32fns.c configure.bat indent.c info.el Kodi Arfer: changed org.texi ox-html.el +Koichi Arakawa: changed w32proc.c + Konrad Hinsen: wrote org-eshell.el and changed ob-python.el @@ -2509,6 +2582,8 @@ Konstantin Novitsky: changed progmodes/python.el Kristoffer Grönlund: wrote wombat-theme.el +Krzysztof Jurewicz: changed erc.el secrets.el + K. Shane Hartman: wrote chistory.el echistory.el electric.el emacsbug.el helper.el picture.el view.el and changed rmail.el ebuff-menu.el simple.el dired.el add-log.el @@ -2533,12 +2608,14 @@ Kyotaro Horiguchi: changed coding.c indent.c Laimonas Vėbra: changed european.el +Lambda Coder: changed tramp.texi + Lara Rios: co-wrote cal-menu.el Lars Balker Rasmussen: changed gnus-art.el gnus-agent.el message.el -Lars Brinkhoff: changed building.texi configure.ac editfns.c fns.c - os.texi +Lars Brinkhoff: changed building.texi config.in configure.ac editfns.c + fns.c os.texi Lars Hansen: changed desktop.el tramp.el info.el mh-e.el dired-x.el dired-x.texi dired.el ls-lisp.el rmail.el dired.c files.texi @@ -2569,8 +2646,8 @@ and co-wrote gnus-kill.el gnus-mh.el gnus-msg.el gnus-score.el rfc2047.el time-date.el and changed gnus.texi gnus-cite.el smtpmail.el pop3.el gnus-xmas.el gnutls.c auth-source.el url-http.el files.el proto-stream.el subr.el - dired.el simple.el image.c nnrss.el text.texi xml.c editfns.c - gnus-nocem.el gnus-registry.el message.texi and 240 other files + dired.el simple.el imap.el image.c nnrss.el text.texi xml.c editfns.c + gnutls.el nnultimate.el and 248 other files Lars Rasmusson: changed ebrowse.c @@ -2579,10 +2656,11 @@ Lasse Rasinen: changed gnus-start.el Laurent Martelli: changed mm-decode.el Lawrence Mitchell: wrote erc-backend.el erc-log.el -and changed erc.el ox-latex.el org.el ox.el erc-match.el erc-nets.el - erc-nickserv.el ox-html.el browse-url.el erc-button.el erc-compat.el - erc-dcc.el erc-fill.el erc-list.el erc-track.el ielm.el ob.el Makefile - cl-macs.el erc-autoaway.el erc-autojoin.el and 25 other files +and changed erc.el ox-latex.el org.el erc-match.el erc-nets.el + erc-nickserv.el org-exp.el ox-html.el browse-url.el erc-button.el + erc-compat.el erc-dcc.el erc-fill.el erc-list.el erc-track.el ielm.el + ob.el Makefile cl-macs.el erc-autoaway.el erc-autojoin.el + and 26 other files Lawrence R. Dodd: co-wrote dired-x.el and changed fortran.el ispell.el sendmail.el cmuscheme.el comint.el @@ -2590,10 +2668,14 @@ and changed fortran.el ispell.el sendmail.el cmuscheme.el comint.el lisp.el man.el minibuf.c rcs2log rmail.el simple.el terminal.el text-mode.el tpu-edt.el and 3 other files +Lee Bochicchio: changed abbrev-tests.el + Lee Duhem: changed eval.c Leigh Stoller: changed emacsclient.c server.el +Lele Gaifax: changed TUTORIAL.it + Lennart Borgman: co-wrote ert-x.el and changed nxml-mode.el tutorial.el window.el ada-xref.el buff-menu.el emacs-lisp/debug.el emacsclient.c filesets.el flymake.el help-fns.el @@ -2604,11 +2686,11 @@ and changed nxml-mode.el tutorial.el window.el ada-xref.el buff-menu.el Lennart Staflin: changed dired.el diary-ins.el diary-lib.el tq.el xdisp.c Leo Liu: wrote calc-tests.el pcmpl-x.el -and changed octave.el ido.el rcirc.el files.el subr.el eldoc.el simple.el - flymake.el smie.el abbrev.el lisp-mode.el progmodes/python.el - cl-extra.el cl-macs.el emacs-lisp/cl-lib.el progmodes/compile.el - register.el rng-valid.el window.el bindings.el cfengine.el - and 157 other files +and changed octave.el ido.el rcirc.el lisp-mode.el files.el subr.el + eldoc.el simple.el flymake.el smie.el abbrev.el progmodes/python.el + cfengine.el cl-extra.el cl-macs.el emacs-lisp/cl-lib.el + progmodes/compile.el register.el rng-valid.el window.el bindings.el + and 159 other files Leonard H. Tower Jr.: changed rnews.el rnewspost.el emacsbug.el rmailout.el sendmail.el @@ -2619,7 +2701,7 @@ Leonard Randall: changed org-bibtex.el reftex-parse.el Leo P. White: changed eieio-custom.el -Levin Du: changed org-clock.el parse-time.el +Levin Du: changed parse-time.el org-clock.el Le Wang: changed org-src.el comint.el hilit-chg.el misc.el @@ -2645,10 +2727,10 @@ Luc Teirlinck: wrote help-at-pt.el and changed files.el autorevert.el cus-edit.el subr.el simple.el frames.texi startup.el display.texi files.texi dired.el comint.el modes.texi custom.texi emacs.texi fns.c frame.el ielm.el minibuf.texi - variables.texi buffers.texi commands.texi and 214 other files + variables.texi buffers.texi commands.texi and 213 other files Ludovic Courtès: wrote nnregistry.el -and changed configure.ac gnus.texi +and changed configure.ac gnus.texi loadup.el Luis Felipe López Acevedo: changed TUTORIAL.es @@ -2659,7 +2741,7 @@ Lukas Huonker: changed tetris.el Łukasz Demianiuk: changed erc.el Łukasz Stelmach: changed cookie1.el gtkutil.c message.el org-agenda.el - org-bbdb.el org.el ox-html.el ox.el + org-bbdb.el org-exp.el org.el ox-html.el Luke Lee: changed hideif.el @@ -2667,7 +2749,7 @@ Lute Kamstra: changed modes.texi emacs-lisp/debug.el generic-x.el generic.el font-lock.el simple.el subr.el battery.el debugging.texi easy-mmode.el elisp.texi emacs-lisp/generic.el hl-line.el info.el octave.el basic.texi bindings.el calc.el cmdargs.texi diff-mode.el - doclicense.texi and 291 other files + doclicense.texi and 290 other files Lynn Slater: wrote help-macro.el @@ -2677,15 +2759,17 @@ Madan Ramakrishnan: changed org-agenda.el Magnus Henoch: wrote sasl-scram-rfc-tests.el sasl-scram-rfc.el and changed url-http.el ispell.el url.el dbusbind.c dns.el configure.ac - nnmaildir.el sasl.el url-gw.el url-parse.el url-proxy.el autoinsert.el - cl.texi cyrillic.el dbus.el gnus.texi hashcash.el image.c log-edit.el - message.el org-clock.el and 14 other files + nnmaildir.el progmodes/compile.el sasl.el url-gw.el url-parse.el + url-proxy.el autoinsert.el cl.texi cyrillic.el dbus.el gnus.texi + hashcash.el image.c log-edit.el message.el and 14 other files + +Maksim Golubev: changed opascal.el Malcolm Purvis: changed spam-stat.el Manoj Srivastava: wrote manoj-dark-theme.el -Manuel Giraud: changed ox-html.el ox-publish.el org.texi +Manuel Giraud: changed ox-html.el org-publish.el org.texi Manuel Gómez: changed speedbar.el @@ -2711,9 +2795,9 @@ Marco Walther: changed mips-siemens.h unexelfsni.c unexsni.c Marc Shapiro: co-wrote bibtex.el Marcus G. Daniels: changed xterm.c configure.ac lwlib-Xm.c lwlib.c - xdisp.c xfns.c dispnew.c src/Makefile.in xmenu.c alloc.c editfns.c - emacs.c frame.c frame.h irix5-0.h keyboard.c linux.h lwlib-Xm.h lwlib.h - ntterm.c ptx4.h and 10 other files + xdisp.c xfns.c dispnew.c src/Makefile.in xmenu.c alloc.c config.in + editfns.c emacs.c frame.c frame.h irix5-0.h keyboard.c linux.h + lwlib-Xm.h lwlib.h ntterm.c and 11 other files Marcus Harnisch: changed gnus-art.el @@ -2736,8 +2820,8 @@ and changed erc.el erc-dcc.el erc-speak.el Makefile erc-bbdb.el Mark A. Hershberger: changed xml.el nnrss.el mm-url.el cperl-mode.el isearch.el vc-bzr.el NXML-NEWS cc-mode.texi compilation.txt ede.texi eieio.texi esh-mode.el flymake.el gnus-group.el misc/Makefile.in - misc/makefile.w32-in nxml-mode.texi progmodes/compile.el - progmodes/python.el programs.texi and 7 other files + nxml-mode.texi progmodes/compile.el progmodes/python.el programs.texi + schema and 6 other files Mark Davies: changed amdx86-64.h configure configure.ac hp800.h lib-src/Makefile.in netbsd.h ralloc.c sh3el.h sort.el @@ -2771,7 +2855,9 @@ Marko Kohtala: changed info.el Mark Osbourne: changed hexl-mode.el -Mark Oteiza: changed eww.el files.el +Mark Oteiza: changed mpc.el emacs-lisp/chart.el eww.el thingatpt.el + dunnet.el tamil-dvorak.el calendar.el custom.el eldoc.el files.el + progmodes/python.el tex-mode.el Mark Plaksin: changed nnrss.el term.el @@ -2803,7 +2889,7 @@ Markus Sauermann: changed lisp-mode.el Markus Triska: wrote linum.el and changed bytecomp.el byte-opt.el doctor.el image-mode.el processes.texi calc-math.el emacs.c expand.el flymake.el flymake.texi - flyspell.el handwrite.el internals.texi proced.el ps-mode.el + flyspell.el handwrite.el internals.texi proced.el prolog.el ps-mode.el speedbar.el subr.el tumme.el widget.texi xterm.c Mark W. Eichin: changed keyboard.c xterm.c @@ -2832,10 +2918,10 @@ Martin Neitzel: changed supercite.el Martin Pohlack: changed iimage.el pc-select.el -Martin Rudalics: changed window.el window.c windows.texi frame.c xdisp.c - w32term.c xterm.c w32fns.c help.el frame.el xfns.c buffer.c frames.texi - cus-start.el window.h dired.el display.texi dispnew.c keyboard.c - mouse.el files.el and 173 other files +Martin Rudalics: changed window.el window.c windows.texi frame.c w32fns.c + xdisp.c w32term.c xterm.c frames.texi xfns.c frame.el help.el buffer.c + cus-start.el display.texi dispnew.c window.h dired.el nsfns.m frame.h + mouse.el and 177 other files Martin Stjernholm: wrote cc-bytecomp.el and co-wrote cc-align.el cc-cmds.el cc-compat.el cc-defs.el cc-engine.el @@ -2882,7 +2968,7 @@ Mathias Megyei: changed lisp/Makefile.in Mats Lidell: changed TUTORIAL.sv european.el gnus-art.el org-element.el -Matt Armstrong: changed gnus-topic.el gnus.el message.el +Matt Armstrong: changed gnus-topic.el gnus.el imap.el message.el Matt Curtis: changed pulse.el @@ -2938,16 +3024,16 @@ Memnon Anon: changed org.texi Micah Anderson: changed spook.lines -Michael Albinus: wrote dbus-tests.el dbus.el file-notify-tests.el - filenotify.el secrets.el tramp-cmds.el tramp-compat.el tramp-ftp.el - tramp-gvfs.el tramp-gw.el tramp-smb.el tramp-tests.el url-tramp.el - vc-tests.el xesam.el zeroconf.el +Michael Albinus: wrote auto-revert-tests.el dbus-tests.el dbus.el + file-notify-tests.el filenotify.el secrets.el tramp-cmds.el + tramp-compat.el tramp-ftp.el tramp-gvfs.el tramp-gw.el tramp-smb.el + tramp-tests.el url-tramp.el vc-tests.el xesam.el zeroconf.el and co-wrote tramp-cache.el tramp-sh.el tramp.el -and changed tramp.texi dbusbind.c trampver.texi trampver.el tramp-adb.el +and changed tramp.texi dbusbind.c trampver.el trampver.texi tramp-adb.el ange-ftp.el dbus.texi files.el tramp-fish.el autorevert.el files.texi - tramp-imap.el notifications.el configure.ac tramp-vc.el lisp.h - lisp/Makefile.in simple.el tramp-uu.el em-unix.el keyboard.c - and 116 other files + tramp-imap.el os.texi configure.ac lisp.h notifications.el + gfilenotify.c keyboard.c tramp-vc.el inotify.c lisp/Makefile.in + and 122 other files Michael Ben-Gershon: changed acorn.h configure.ac riscix1-1.h riscix1-2.h unexec.c @@ -2979,7 +3065,8 @@ Michael Gschwind: wrote iso-cvt.el Michael Harnois: changed nnimap.el -Michael Heerdegen: changed dired.el easy-mmode.el eldoc.el wdired.el +Michael Heerdegen: changed control.texi dired.el easy-mmode.el eldoc.el + pcase.el shr.el wdired.el Michael Hoffman: changed term.el @@ -3011,14 +3098,14 @@ Michael Olson: changed erc.el erc-backend.el Makefile erc-track.el erc-log.el erc-stamp.el erc-autoaway.el erc-dcc.el erc-goodies.el erc-list.el erc-compat.el erc-identd.el erc.texi ERC-NEWS erc-bbdb.el erc-match.el erc-notify.el erc-ibuffer.el erc-services.el remember.el - erc-button.el and 62 other files + erc-button.el and 56 other files Michael Piotrowski: changed gnus-art.el gnus-sum.el ps-print.el Michael R. Cook: changed gnus-sum.el gnus-topic.el gnus-art.el Michael R. Mauger: changed sql.el emacsclient.c comint.el cua-base.el - custom.el facemenu.el recentf.el replace.el tramp.el w32fns.c + custom.el facemenu.el recentf.el replace.el server.el tramp.el w32fns.c Michael R. Wolf: changed ange-ftp.el @@ -3028,12 +3115,12 @@ Michael Shields: changed spam.el gnus-art.el gnus-sum.el gnus-cite.el Makefile.in gnus-group.el gnus.el intel386.h nndraft.el pgg-def.el window.c window.el -Michael Sperber: changed aix3-1.h aix4-2.h gnus.texi mail-source.el - nnmail.el org-capture.el +Michael Sperber: changed gnus-sum.el nnmail.el aix3-1.h aix4-2.h + gnus.texi mail-source.el mailcap.el nnml.el org-capture.el Michael Staats: wrote pc-select.el -Michael Vehrs: changed woman.el +Michael Vehrs: changed quail.el woman.el Michael Welsh Duggan: changed nnimap.el lisp.h sh-script.el w32term.c buffer.c gnus-spec.el keyboard.c nnir.el nnmail.el print.c @@ -3048,10 +3135,10 @@ Michal Jankowski: changed insdel.c keyboard.c Michal Nazarewicz: wrote descr-text-test.el tildify-tests.el and co-wrote tildify.el -and changed simple.el remember.el bindings.el buffer.c cfengine.el cmds.c - descr-text.el eldoc.el files.el fill.el flyspell.el frame.c frame.h - hexl.el ielm.el ispell.el lisp/files.el mpc.el nxml-mode.el octave.el - paragraphs.el and 9 other files +and changed simple.el files.el remember.el bindings.el buffer.c + cfengine.el cmds.c descr-text.el eldoc.el elisp-mode.el fill.el + flyspell.el frame.c frame.h hexl.el ielm.el ispell.el mpc.el + nxml-mode.el octave.el paragraphs.el and 9 other files Michal Sojka: changed ox-icalendar.el @@ -3065,12 +3152,16 @@ Microelectronics and Computer Technology Corporation: changed Miguel Ruiz: changed ob-gnuplot.el +Mihai Olteanu: changed hexl.el + Mihir Rege: changed js.el Mikael Djurfeldt: changed xdisp.c Mikael Fornius: changed org.el org-habit.el +Mike Fabian: changed select.el + Mike Haertel: changed 7300.h Mike Kazantsev: changed erc-dcc.el @@ -3109,7 +3200,7 @@ Miles Bader: wrote button.el face-remap.el image-file.el macroexp.el and changed comint.el faces.el simple.el editfns.c xfaces.c xdisp.c info.el minibuf.c display.texi wid-edit.el xterm.c dispextern.h quick-install-emacs subr.el window.el cus-edit.el diff-mode.el xfns.c - bytecomp.el help.el lisp.h and 273 other files + bytecomp.el help.el lisp.h and 272 other files Milton Wulei: changed gdb-ui.el @@ -3149,7 +3240,7 @@ Myles English: changed org-clock.el Nachum Dershowitz: co-wrote cal-hebrew.el Nagy Andras: co-wrote gnus-sieve.el -and changed gnus.el +and changed imap.el gnus.el Nakagawa Makoto: changed ldap.el @@ -3197,14 +3288,14 @@ Nicholas Maniscalco: changed term.el Nick Alcock: changed gnus.el -Nick Dokos: changed org-table.el ox.el icalendar.el mh-search.el +Nick Dokos: changed org-exp.el org-table.el icalendar.el mh-search.el org-mobile.el org.el ox-ascii.el url-cache.el Nick Roberts: wrote gdb-mi.el t-mouse.el and changed gdb-ui.el gud.el building.texi tooltip.el speedbar.el bindings.el thumbs.el xt-mouse.el .gdbinit DEBUG cc-mode.el comint.el keyboard.c subr.el frames.texi help-mode.el progmodes/compile.el - xdisp.c display.texi term.c vc-svn.el and 144 other files + xdisp.c display.texi term.c vc-svn.el and 145 other files Nico Francois: changed w32fns.c w32inevt.c w32menu.c @@ -3216,17 +3307,27 @@ Nicolas Goaziou: wrote org-element.el org-macro.el ox-ascii.el ox-latex.el ox-md.el ox-org.el ox.el and co-wrote ox-beamer.el ox-icalendar.el ox-man.el and changed org-list.el org.el ox-html.el org-footnote.el ox-texinfo.el - org.texi ox-publish.el ox-odt.el org-inlinetask.el org-indent.el - org-docbook.el ob-exp.el org-agenda.el org-timer.el ob.el + org-exp.el org.texi ox-publish.el ox-odt.el org-inlinetask.el + org-indent.el org-docbook.el ob-exp.el org-agenda.el org-timer.el ob.el org-capture.el ob-asymptote.el org-clock.el org-macs.el - org-pcomplete.el org-table.el and 22 other files + org-pcomplete.el and 25 other files -Nicolas Petton: wrote seq-tests.el seq.el -and changed sequences.texi authors.el +Nicolas Graner: changed message.el -Nicolas Richard: changed org.el simple.el align.el battery.el byte-run.el - eieio-opt.el elisp-mode.el help.el isearch.el ispell.el minibuffer.el - ob.el package.el wid-edit.el +Nicolas Petton: wrote map-tests.el map.el seq-tests.el seq.el + thunk-tests.el thunk.el +and co-wrote auth-source-tests.el subr-tests.el +and changed sequences.texi emacs.png emacs23.png obarray-tests.el + obarray.el arc-mode.el cl-extra.el emacs.svg Emacs.icns auth-source.el + authors.el emacs.ico Makefile.in README data.c emacs-document.svg + emacs-document23.svg emacs.texi emacs23.svg files.el fns.c + and 3 other files + +Nicolas Richard: wrote cmds-tests.el +and changed ffap.el package.el help.el keyboard.c landmark.el org.el + simple.el DEBUG align.el battery.el byte-run.el eieio-opt.el + elisp-mode.el ido.el isearch.el ispell.el minibuffer.el ob.el + pcmpl-unix.el replace-tests.el replace.el and 5 other files Niels Giesen: changed icalendar.el org-agenda.el org-clock.el org-docbook.el org-table.el ox-icalendar.el ox-latex.el @@ -3240,20 +3341,23 @@ Nikolai Weibull: changed org.el Nikolaj Schumacher: changed flymake.el progmodes/compile.el eldoc.el elp.el nsfont.m rx.el +Nikolaus Rath: changed nnimap.el gnus.texi + Nil Geisweiller: changed flymake.el -Nils Ackermann: changed message.el nnmh.el +Nils Ackermann: changed message.el nnmh.el reftex-vars.el Noah Friedman: wrote eldoc.el rlogin.el type-break.el and co-wrote erc-dcc.el and changed rsz-mini.el comint.el emacs-buffer.gdb files.el Makefile mailabbrev.el sendmail.el subr.el timer.el yow.el apropos.el battery.el - bytecomp.el calc.el coding.c complete.el configure.ac copyright.h fns.c - gnu-linux.h hpux7.h and 18 other files + bytecomp.el calc.el coding.c complete.el config.in configure.ac + copyright.h fns.c gnu-linux.h and 20 other files Noah Lavine: changed tramp.el -Noam Postavsky: changed cmdproxy.c process-tests.el w32proc.c +Noam Postavsky: changed buffer-tests.el cmdproxy.c process-tests.el + w32proc.c Nobuyoshi Nakada: co-wrote ruby-mode.el @@ -3279,6 +3383,8 @@ Ognyan Kulev: changed TUTORIAL.bg cyrillic.el Okazaki Tetsurou: changed cc-fonts.el vc-svn.el vc.el +Olaf Rogalsky: changed mouse.el xt-mouse.el + Olaf Sylvester: wrote bs.el Ole Aamot: changed compile.el @@ -3286,8 +3392,11 @@ Ole Aamot: changed compile.el Oleg S. Tihonov: changed cyrillic.el ispell.el language/cyrillic.el map-ynp.el subr.el -Oleh Krehel: changed outline.el check-declare.el derived.el easy-mmode.el - gdb-mi.el lisp/custom.el org-capture.el org-clock.el replace.el +Oleh Krehel: co-wrote subr-tests.el +and changed dired-aux.el outline.el checkdoc.el subr.el buffer.c + check-declare.el alloc.c buffer.h category.c cl-indent.el custom.el + derived.el dired-x.el dired.el dired.texi display.texi easy-mmode.el + ffap.el gdb-mi.el keyboard.c keyboard.h and 10 other files Oleksandr Gavenko: changed generic-x.el progmodes/grep.el @@ -3313,6 +3422,8 @@ Olli Savia: changed etags.c syssignal.h Olof Ohlsson Sax: changed vc-svn.el +Orivej Desh: changed tramp-sh.el + Osamu Yamane: changed smtpmail.el Oscar Figueiredo: wrote ldap.el @@ -3320,10 +3431,10 @@ and co-wrote eudc-bob.el eudc-export.el eudc-hotlist.el eudc-vars.el eudc.el eudcb-bbdb.el eudcb-ldap.el eudcb-ph.el and changed ph.el -Oscar Fuentes: changed ms-w32.h CPP-DEFINES addpm.c addsection.c - browse-url.el configure.ac keyboard.c preprep.c vc-cvs.el vc-git.el - vc-hg.el vc-hooks.el vc-mtn.el vc-svn.el vc.el vc/vc-bzr.el w32.c - w32heap.c w32term.c +Oscar Fuentes: changed xfns.c CPP-DEFINES addpm.c addsection.c + browse-url.el configure.ac keyboard.c ms-w32.h preprep.c vc-cvs.el + vc-git.el vc-hg.el vc-hooks.el vc-mtn.el vc-svn.el vc.el vc/vc-bzr.el + w32.c w32heap.c w32term.c Óscar Fuentes: changed ido.el cmdproxy.c diff-mode.el emacsclient.c vc-bzr.el @@ -3345,10 +3456,10 @@ and changed imenu.el make-mode.el Paul Eggert: wrote rcs2log and co-wrote cal-dst.el -and changed lisp.h configure.ac alloc.c process.c fileio.c sysdep.c - xdisp.c keyboard.c editfns.c image.c emacs.c xterm.c data.c lread.c - callproc.c fns.c Makefile.in dispextern.h dispnew.c eval.c xfns.c - and 1085 other files +and changed lisp.h configure.ac alloc.c process.c xdisp.c fileio.c + sysdep.c keyboard.c image.c editfns.c emacs.c xterm.c lread.c data.c + callproc.c fns.c Makefile.in eval.c buffer.c dispnew.c gnulib.mk + and 1473 other files Paul Fisher: changed fns.c @@ -3362,9 +3473,9 @@ and changed message.el gnus-util.el gnus-int.el gnus.el gnus-agent.el Paul Pogonyshev: changed progmodes/python.el subr.el which-func.el align.el byte-opt.el cc-langs.el configure.ac dabbrev.el display.texi - eldoc.el etags.el image-file.el image.c image.el info.el replace.el - search.texi searching.texi ses.el src/Makefile.in tar-mode.el - and 3 other files + eldoc.el etags.el image-file.el image.c image.el info.el + progmodes/compile.el replace.el search.texi searching.texi ses.el + src/Makefile.in and 4 other files Paul Rankin: changed outline.el @@ -3389,12 +3500,13 @@ Pavel Janík: co-wrote eudc-bob.el eudc-export.el eudc-hotlist.el and changed keyboard.c xterm.c COPYING xdisp.c process.c emacs.c lisp.h menu-bar.el ldap.el make-dist xfns.c buffer.c coding.c eval.c fileio.c flyspell.el fns.c indent.c Makefile.in callint.c cus-start.el - and 692 other files + and 702 other files Pavel Kobiakov: wrote flymake.el and changed flymake.texi -Peder O. Klingenberg: changed mm-decode.el emacsbug.el gnus.texi +Peder O. Klingenberg: changed dunnet.el mm-decode.el emacsbug.el + gnus.texi P. E. Jareth Hein: changed gnus-util.el @@ -3437,6 +3549,8 @@ Peter Doornbosch: changed vc-svn.el Peter Dyballa: changed calendar.el +Peter Feigl: changed HELLO + Peter Heslin: changed flyspell.el outline.el Peter Jolly: changed arc-mode.el ftfont.c @@ -3460,10 +3574,8 @@ Peter Povinec: changed term.el Peter Rosin: changed configure.ac -Peter Runestig: changed configure.bat dos-w32.el emacs.rc.in - emacs/makefile.w32-in envadd.bat gmake.defs lispintro/makefile.w32-in - lispref/makefile.w32-in misc/makefile.w32-in multi-install-info.bat - nmake.defs nt/makefile.w32-in src/makefile.w32-in w32fns.c zone-mode.el +Peter Runestig: changed configure.bat dos-w32.el emacs.rc.in w32fns.c + zone-mode.el Peter Seibel: changed cl-indent.el lisp-mode.el @@ -3485,8 +3597,8 @@ Peter Whaite: changed data.c Pete Ware: changed message.el -Pete Williamson: changed leim/Makefile.in lib-src/Makefile.in - lisp/Makefile.in +Pete Williamson: changed configure.ac files.el leim/Makefile.in + lib-src/Makefile.in lisp/Makefile.in Petr Hracek: changed emacs.1 @@ -3509,12 +3621,26 @@ Philipp Haselwarter: changed gnus-agent.el gnus-sum.el gnus-sync.el Philipp Rumpf: changed electric.el -Phil Sainty: changed lisp.el subword.el +Philipp Stephani: changed emacs-module.c lisp.h mod-test.c Makefile + alloc.c configure.ac dynlib.c dynlib.h emacs-module.h eval.c fns.c + modhelp.py src/Makefile.in test.el xterm.el src/emacs-module.c + whitespace.el + +Phillip Lord: changed undo.c simple.el cmds.c keyboard.c + automated/Makefile.in htmlfontify.el insdel.c keyboard.h simple-test.el + text.texi cl-extra.el ert.el seq-tests.el seq.el + +Phil Sainty: changed lisp.el package.el progmodes/grep.el simple.el + subword.el Phil Sung: changed follow.el progmodes/python.el wdired.el +Pierre Lorenzon: changed eieio-custom.el + Pierre Poissinger: changed charset.c +Pierre Téchoueyres: changed tramp-cmds.el + Pieter E.J. Pareit: wrote mixal-mode.el Pieter Praet: changed org-crypt.el @@ -3527,12 +3653,21 @@ Pinku Surana: changed sql.el Piotr Zieliński: wrote org-mouse.el +Pip Cet: changed gtkutil.c xterm.c xterm.h + +Pontus Michael: changed simple.el + Prestoo Ten: changed screen.el Primoz Peterlin: changed TUTORIAL.sl -Puneeth Chaganti: changed org.texi ox.el org-agenda.el org-capture.el - ox-html.el +Przemyslaw Wojnowski: changed cl-lib-tests.el + +Przemysław Wojnowski: wrote obarray-tests.el sgml-mode-tests.el +and changed obarray.el sgml-mode.el + +Puneeth Chaganti: changed org.texi org-exp.el org-agenda.el + org-capture.el ox-html.el Rafael Laboissiere: changed org-remember.el org-bibtex.el org.el org.texi @@ -3567,7 +3702,7 @@ Ralf Mattes: changed el.srt Ralph Schleicher: wrote battery.el info-look.el and changed libc.el browse-url.el fileio.c info.el mm-decode.el - perl-mode.el which-func.el + nnultimate.el perl-mode.el which-func.el Ramakrishnan M: changed mlm-util.el @@ -3581,7 +3716,7 @@ Rasmus Pank: changed org.el ox-latex.el ob-C.el org-entities.el org-src.el ox.el Rasmus Pank Roulund: changed ange-ftp.el gnus-fun.el - gnus-notifications.el vc-git.el + gnus-notifications.el ido.el vc-git.el Raul Acevedo: changed info.el options.el @@ -3597,7 +3732,7 @@ Reiner Steib: wrote gmm-utils.el gnus-news.el and changed message.el gnus.texi gnus-art.el gnus-sum.el gnus-group.el gnus.el mml.el gnus-faq.texi mm-util.el gnus-score.el message.texi gnus-msg.el gnus-start.el gnus-util.el spam-report.el mm-uu.el spam.el - mm-decode.el files.el gnus-agent.el nnmail.el and 173 other files + mm-decode.el files.el gnus-agent.el nnmail.el and 174 other files Remek Trzaska: changed gnus-ems.el @@ -3616,22 +3751,21 @@ and changed vhdl-mode.texi Reuben Thomas: changed remember.el README files.el msdos.c INSTALL ada-mode.el ada-xref.el alloc.c arc-mode.el authors.el config.bat copyright dired.el dosfns.c ediff.texi editfns.c emacs-xtra.texi - emacs.texi emacs/Makefile.in emacs/makefile.w32-in flymake.el - and 22 other files + emacs.texi emacs/Makefile.in flymake.el frame.el and 21 other files Riccardo Murri: changed vc-bzr.el tls.el Richard Copley: changed Makefile.in epaths.in epaths.nt gdb-mi.el -Richard Dawe: changed src/Makefile.in +Richard Dawe: changed config.in src/Makefile.in Richard G. Bielawski: changed modes.texi paren.el Richard Hoskins: changed message.el Richard Kim: wrote wisent/python.el -and changed bovine.texi db-global.el loading.texi texnfo-upd.el - wisent.texi +and changed bovine.texi db-global.el loading.texi python-wy.el + texnfo-upd.el wisent.texi Richard King: wrote filelock.c uniquify.el userlock.el @@ -3657,7 +3791,9 @@ and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-langs.el and changed files.el keyboard.c simple.el xterm.c xdisp.c rmail.el fileio.c process.c sysdep.c buffer.c xfns.c window.c subr.el configure.ac startup.el sendmail.el emacs.c Makefile.in editfns.c - info.el dired.el and 1335 other files + info.el dired.el and 1338 other files + +Richard Ryniker: changed sendmail.el Richard Sharman: wrote hilit-chg.el and changed sh-script.el ediff-init.el regexp-opt.el simple.el @@ -3696,7 +3832,7 @@ Roberto Rodríguez: changed ada-mode.texi glossary.texi widget.texi Robert P. Goldman: changed org.texi ob-exp.el org.el ox-latex.el -Robert Pluim: changed configure.ac gnus-demon.el org-agenda.el +Robert Pluim: changed configure.ac gnus-demon.el org-agenda.el process.c todo-mode.el Robert Thorpe: changed cus-start.el indent.el @@ -3721,7 +3857,7 @@ Roger Breitenstein: changed smtpmail.el Roland B. Roberts: changed buffer.h callproc.c dired.c files.el gnus-group.el gnus-sum.el process.c sort.el sysdep.c systty.h -Roland Kaufmann: changed ox.el +Roland Kaufmann: changed org-exp.el Roland McGrath: wrote autoload.el etags.el map-ynp.el progmodes/grep.el and co-wrote find-dired.el progmodes/compile.el @@ -3749,6 +3885,8 @@ Roman Belenov: changed which-func.el Ronan Waide: changed smtpmail.el +Ronnie Schnell: changed dunnet.el misc.texi + Ron Schnell: wrote dunnet.el Ross Patterson: co-wrote org-protocol.el @@ -3761,7 +3899,7 @@ Rüdiger Sonderfeld: wrote inotify-test.el reftex-tests.el and changed eww.el octave.el shr.el bibtex.el configure.ac misc/Makefile.in reftex-vars.el vc-git.el TUTORIAL.de ada-mode.el autoinsert.el building.texi calc-lang.el cc-langs.el dired.texi - editfns.c emacs.c emacs.texi epa.el erc.el eww.texi and 35 other files + editfns.c emacs.c emacs.texi epa.el erc.el eww.texi and 37 other files Rui-Tao Dong: changed nnweb.el @@ -3797,7 +3935,9 @@ Saito Takuya: changed mule.el progmodes/compile.el Sam Dooley: changed keyboard.c -Samer Masterson: changed em-hist.el em-pred.el pcomplete.el +Samer Masterson: changed esh-arg.el startup.el url-handlers.el CONTRIBUTE + automated/eshell.el em-hist.el em-pred.el em-term.el esh-io.el eshell + os.texi pcomplete.el Sam Falkner: changed nntp.el @@ -3808,7 +3948,7 @@ and changed progmodes/compile.el cl-indent.el vc-cvs.el vc.el mouse.el simple.el files.el font-lock.el tex-mode.el vc-hg.el ange-ftp.el sgml-mode.el window.el add-log.el bindings.el bookmark.el bug-reference.el calendar.el cperl-mode.el diary-lib.el dired.el - and 149 other files + and 150 other files Samuel Bronson: changed custom.el emacsclient.c keyboard.c progmodes/grep.el unexmacosx.c @@ -3875,7 +4015,7 @@ and co-wrote dired-x.el find-dired.el and changed add-log.el Sebastian Rose: co-wrote org-protocol.el -and changed ox-publish.el ftfont.c ox-jsinfo.el +and changed org-publish.el ftfont.c org-jsinfo.el Sebastian Tennant: changed desktop.el @@ -3892,8 +4032,9 @@ Sébastien Vauban: changed org.el org-agenda.el ox-latex.el ob-core.el org-clock.el ox-ascii.el ox-html.el Seiji Zenitani: changed nsfns.m frame.c xterm.c PkgInfo document.icns - find-func.el frame.h help-fns.el macfns.c nsfont.m nsterm.m w32fns.c - xdisp.c xfns.c + find-func.el frame.h help-fns.el macfns.c + nextstep/templates/Info.plist.in nsfont.m nsterm.m w32fns.c xdisp.c + xfns.c Sen Nagata: wrote crm.el rfc2368.el @@ -3916,6 +4057,9 @@ Sergio Pokrovskij: changed TUTORIAL.eo Seweryn Kokot: changed positions.texi searching.texi +Shakthi Kannan: wrote tamil-dvorak.el +and changed ert.texi lisp-mode.el programs.texi text.texi + Shaun Johnson: changed ob-tangle.el org-exp-blocks.el Shawn Boles: changed url-cookie.el @@ -3927,13 +4071,13 @@ Shenghuo Zhu: wrote binhex.el mm-extern.el mm-partial.el mm-url.el and co-wrote gnus-dired.el nnfolder.el and changed gnus-art.el message.el gnus-sum.el gnus-msg.el gnus.el gnus-agent.el mm-decode.el mm-util.el gnus-group.el mml.el - gnus-start.el gnus-util.el mm-view.el nnmail.el nntp.el gnus-topic.el - gnus-xmas.el rfc2047.el mail-source.el gnus-win.el nnheader.el - and 87 other files + gnus-start.el gnus-util.el mm-view.el nnslashdot.el nnmail.el nntp.el + gnus-topic.el gnus-xmas.el rfc2047.el mail-source.el gnus-win.el + and 93 other files Shigeru Fukaya: wrote bytecomp-tests.el and changed apropos.el byte-opt.el bytecomp.el elint.el rx-new.el ses.el - texinfmt.el + subr.el texinfmt.el Shinichirou Sugou: changed etags.c @@ -3952,7 +4096,8 @@ Sidney Markowitz: changed doctor.el nsmenu.m Sigbjorn Finne: changed gnus-srvr.el -Simen Heggestøyl: changed css-mode.el scheme.el +Simen Heggestøyl: changed css-mode.el json-tests.el json.el + scss-mode.scss files.el js.el scheme.el Simon Josefsson: wrote dig.el dns-mode.el flow-fill.el fringe.el imap.el mml-sec.el mml-smime.el password-cache.el rfc2104.el sieve-mode.el @@ -3962,7 +4107,7 @@ and co-wrote gnus-sieve.el gssapi.el mml1991.el nnfolder.el nnimap.el and changed message.el gnus-sum.el gnus-art.el smtpmail.el pgg-gpg.el pgg.el gnus-agent.el mml2015.el mml.el gnus-group.el mm-decode.el gnus-msg.el gnus.texi pgg-pgp5.el browse-url.el gnus-int.el gnus.el - hashcash.el mm-view.el password.el gnus-cache.el and 98 other files + hashcash.el mm-view.el password.el gnus-cache.el and 100 other files Simon Law: changed delsel.el electric.el @@ -4003,16 +4148,16 @@ Stefan Merten: co-wrote rst.el Stefan Monnier: wrote bibtex-style.el bzrmerge.el cl-generic-tests.el cl-generic.el cl-preloaded.el cl.el completion-tests.el - core-elisp-tests.el css-mode.el cvs-status.el diff-mode.el gv.el - inline.el lexbind-tests.el log-edit.el log-view.el minibuffer.el mpc.el - nadvice.el pcase.el pcvs-defs.el pcvs-info.el pcvs-parse.el - pcvs-util.el regexp-tests.el reveal.el smerge-mode.el smie.el - subword-tests.el vc-mtn.el + core-elisp-tests.el css-mode.el cursor-sensor.el cvs-status.el + diff-mode.el gv.el inline.el lexbind-tests.el log-edit.el log-view.el + minibuffer.el mpc.el nadvice.el pcase.el pcvs-defs.el pcvs-info.el + pcvs-parse.el pcvs-util.el regexp-tests.el reveal.el smerge-mode.el + smie.el subword-tests.el vc-mtn.el and co-wrote font-lock.el gitmerge.el -and changed subr.el simple.el keyboard.c lisp.h bytecomp.el files.el - vc.el cl-macs.el xdisp.c alloc.c eval.c progmodes/compile.el keymap.c - sh-script.el pcvs.el newcomment.el buffer.c tex-mode.el window.c - vc-hooks.el lread.c and 1245 other files +and changed subr.el simple.el keyboard.c lisp.h files.el bytecomp.el + vc.el cl-macs.el xdisp.c alloc.c eval.c sh-script.el + progmodes/compile.el keymap.c pcvs.el newcomment.el tex-mode.el + buffer.c window.c vc-hooks.el info.el and 1266 other files Stefano Facchini: changed gtkutil.c @@ -4028,6 +4173,8 @@ Stefan-W. Hahn: changed org-bibtex.el ps-print.el simple.el Stefan Wiens: changed gnus-sum.el +Steinar Bang: changed gnus-setup.el imap.el + Štěpán Němec: changed INSTALL calc-ext.el cl.texi comint.el edebug.texi font-lock.el loading.texi maps.texi mark.texi message.texi mini.texi minibuf.texi misc.texi programs.texi subr.el tips.texi url-vars.el @@ -4039,10 +4186,10 @@ Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi Stephen A. Wood: changed fortran.el Stephen Berman: co-wrote todo-mode.el -and changed todo-mode.texi diary-lib.el minibuffer.el info.el - otodo-mode.el allout.el dframe.el dired-aux.el dired.el doc-view.el - elpa files.el find-dired.el frame.c gamegrid.el gnus-group.el gomoku.el - gtkutil.c misc/Makefile.in newcomment.el outline.el and 8 other files +and changed doc-view.el todo-mode.texi diary-lib.el minibuffer.el info.el + otodo-mode.el allout.el dframe.el dir dired-aux.el dired.el elpa + files.el find-dired.el frame.c gamegrid.el gnus-group.el gomoku.el + gtkutil.c misc/Makefile.in newcomment.el and 9 other files Stephen C. Gilardi: changed configure.ac @@ -4062,9 +4209,11 @@ and changed time-stamp.el mh-e.el mh-comp.el mh-utils.el mh-customize.el Stephen J. Turnbull: changed ediff-init.el strings.texi subr.el -Stephen Leake: changed ada-mode.el ada-xref.el CONTRIBUTE ada-mode.texi - ada-prj.el ada-stmt.el INSTALL.REPO align.el commits pcvs-parse.el repo - startup.el trouble.texi vhdl-mode.el +Stephen Leake: wrote elisp-mode-tests.el +and changed ada-mode.el ada-xref.el elisp-mode.el xref.el mode-local.el + CONTRIBUTE cedet-global.el vc-mtn.el window.el ada-mode.texi ada-prj.el + cl-generic.el ede/generic.el ede/locate.el ada-stmt.el files.texi fns.c + project.el symref.el windows.texi INSTALL.REPO and 19 other files Stephen Peters: changed icalendar.el @@ -4086,12 +4235,12 @@ Steven Suhr: changed dispnew.c scroll.c term.c termchar.h Steven Tamm: changed macterm.c mac.c macfns.c configure.ac mac-win.el unexmacosx.c darwin.h editfns.c lread.c macmenu.c scroll-bar.el - src/Makefile.in Makefile.in config.h dispnew.c eval.c fileio.c fns.c - generic-x.el image.c process.c and 3 other files + src/Makefile.in Makefile.in config.h config.in dispnew.c eval.c + fileio.c fns.c generic-x.el image.c and 4 other files Steve Nygard: changed unexnext.c -Steve Purcell: changed nnimap.el nsterm.m package.el +Steve Purcell: changed package.el nnimap.el nsterm.m Steve Strassmann: wrote spook.el @@ -4124,7 +4273,8 @@ and changed emacsclient.c server.el Sun Yijiang: changed TUTORIAL.cn -Suvayu Ali: changed org.texi org-inlinetask.el org-src.el org.el ox.el +Suvayu Ali: changed org.texi org-exp.el org-inlinetask.el org-src.el + org.el Svend Tollak Munkejord: changed deuglify.el @@ -4144,8 +4294,8 @@ and changed indian.el devanagari.el ind-util.el devan-util.el tml-util.el Takaaki Ota: wrote textmodes/table.el -and changed appt.el dired.c etags.c ldap.el makefile.w32-in - progmodes/compile.el recentf.el replace.el subr.el w32bdf.c +and changed appt.el dired.c etags.c ldap.el progmodes/compile.el + recentf.el replace.el subr.el w32bdf.c Takafumi Arakaki: changed url-expand.el url-http.el which-func.el @@ -4165,11 +4315,11 @@ and changed arc-mode.el Tassilo Horn: wrote doc-view.el and co-wrote org-gnus.el -and changed reftex-vars.el gnus.texi gnus-sum.el tsdh-dark-theme.el - misc.texi reftex.el subword.el tsdh-light-theme.el image-mode.el - cc-cmds.el display.texi em-term.el emacsbug.el files.el gnus-art.el - nnimap.el reftex-cite.el reftex-ref.el buffers.texi control.texi - help.texi and 63 other files +and changed reftex-vars.el tex-mode.el gnus.texi tsdh-dark-theme.el + gnus-sum.el reftex-cite.el tsdh-light-theme.el reftex.el + file-notify-tests.el misc.texi prog-mode.el subword.el image-mode.el + lisp-mode.el cc-cmds.el display.texi em-term.el emacsbug.el files.el + gnus-art.el nnimap.el and 72 other files Tatsuya Ichikawa: changed gnus-agent.el gnus-cache.el @@ -4202,7 +4352,7 @@ Tetsuo Tsukamoto: changed nnrss.el Tetsurou Okazaki: changed Makefile.in byte-opt.el lib-src/Makefile.in log-edit.el lread.c xterm.c -T.F. Torrey: changed org-rmail.el ox.el +T.F. Torrey: changed org-exp.el org-rmail.el Thamer Mahmoud: changed arabic.el @@ -4212,7 +4362,7 @@ Thien-Thi Nguyen: co-wrote hideshow.el and changed ewoc.el vc.el info.el zone.el processes.texi lisp-mode.el scheme.el text.texi vc-rcs.el display.texi fileio.c files.el vc-git.el MORE.STUFF TUTORIAL.it bindat.el cc-vars.el configure.ac dcl-mode.el - diff-mode.el dired.el and 159 other files + diff-mode.el dired.el and 161 other files Thierry Banel: changed calc-arith.el @@ -4237,8 +4387,10 @@ Thomas Dorner: changed ange-ftp.el Thomas Dye: changed org.texi org-bibtex.el ob-R.el org.el -Thomas Fitzsimmons: changed ldap.el eudc-vars.el eudc.el eudcb-ldap.el - eudc.texi ntlm.el +Thomas Fitzsimmons: wrote soap-client.el +and changed soap-inspect.el eudc-vars.el ldap.el eudc.el eudc.texi + eudc-export.el eudcb-ldap.el eudcb-ph.el ntlm.el eudcb-bbdb.el + url-http.el Thomas Horsley: changed cxux-crt0.s cxux.h cxux7.h emacs.c nh3000.h nh4000.h simple.el sysdep.c xterm.c @@ -4295,6 +4447,8 @@ Timo Savola: changed emacs.c gtkutil.c startup.el x-win.el xfns.c xterm.c Tim Van Holder: changed emacsclient.c Makefile.in configure.ac progmodes/compile.el which-func.el +Titus Von Der Malsburg: changed simple.el window.el + Tobias C. Rittweiler: changed font-lock.el searching.texi sendmail.el Tobias Ringström: changed etags.c @@ -4332,7 +4486,7 @@ and changed rmail.el nnmail.el rmailout.el gnus-sum.el nnfolder.el Tomohiro Matsuyama: wrote profiler.el and changed profiler.c alloc.c emacs.c eval.c lisp.h src/Makefile.in - src/makefile.w32-in xdisp.c + xdisp.c Tomoji Kagatani: wrote smtpmail.el @@ -4349,10 +4503,10 @@ and co-wrote package.el tcl.el and changed buffer.c lisp.h makefile.el window.c keyboard.c keymap.c xfns.c buffer.h bytecode.c callint.c callproc.c cmds.c composite.c configure.ac dispextern.h doc.c editfns.c fileio.c frame.c insdel.c - intervals.h and 137 other files + intervals.h and 139 other files -Tom Willemse: changed package.el prog-mode.el progmodes/python.el - simple.el +Tom Willemse: changed elec-pair.el package.el prog-mode.el + progmodes/python.el simple.el Torbjörn Axelsson: changed options.el @@ -4370,6 +4524,8 @@ Toru Tsuneyoshi: changed ange-ftp.el buff-menu.el cus-start.el fileio.c Toshiaki Nomura: changed uxpds.h +Travis Jeffery: changed nextstep/templates/Info.plist.in + Trent W. Buck: changed rcirc.el remember.el rx.el Trevor Murphy: changed gnus.texi nnimap.el org.el @@ -4436,11 +4592,17 @@ Valentin Wüstholz: changed org.el Valery Alexeev: changed cyril-util.el cyrillic.el -Vasily Korytov: changed cyrillic.el message.el cperl-mode.el gnus-art.el - gnus-dired.el gnus-msg.el gnus-util.el mail-source.el smiley.el +Vasilij Schneidermann: changed ielm.el tetris.el + +Vasily Korytov: changed cyrillic.el message.el progmodes/python.el + ruby-mode.el cperl-mode.el gnus-art.el gnus-dired.el gnus-msg.el + gnus-util.el mail-source.el smiley.el Vegard Øye: changed viper-init.el +Vibhav Pant: changed esh-mode.el cperl-mode.el browse-url.el eshell.texi + hangul.el + Victor Zandy: wrote zone.el Viktor Rosenfeld: changed ob-sql.el org.el @@ -4448,8 +4610,9 @@ Viktor Rosenfeld: changed ob-sql.el org.el Ville Skyttä: changed mh-comp.el pgg.el tcl.el Vincent Belaïche: changed ses.el 5x5.el calc-alg.el calc-vec.el calc.texi - ses.texi calc-embed.el calc-help.el calc-misc.el calc.el configure.bat - floatfns.c macroexp.el org.el package.el recentf.el reftex-parse.el + compilation.txt ses.texi autotype.texi calc-embed.el calc-help.el + calc-misc.el calc.el configure.bat floatfns.c macroexp.el org.el + package.el progmodes/compile.el recentf.el reftex-parse.el reftex-toc.el reftex.el Vincent Bernat: changed gnus-int.el nnimap.el @@ -4468,6 +4631,10 @@ and changed ps-prin1.ps ps-bdf.el ps-prin0.ps blank-mode.el ps-prin3.ps Vitalie Spinu: changed comint.el message.el ob-R.el ob-core.el ob-tangle.el subr.el +Vitaly Takmazov: changed emacs-x64.manifest emacs-x86.manifest + +Vitorio Miguel: changed TUTORIAL.pt_BR + Vivek Dasmohapatra: wrote hfy-cmap.el htmlfontify.el and changed erc.el erc-backend.el erc-services.el hexl.el emacs.c erc-join.el htmlfontify.texi sh-script.el xterm.c xterm.h @@ -4486,6 +4653,8 @@ Walter C. Pelissero: changed browse-url.el url-methods.el Wang Diancheng: changed gdb-mi.el nnml.el +Warren Lynn: changed tramp-sh.el + Wei-Wei Guo: co-wrote rst.el Werner Benger: changed keyboard.c @@ -4496,7 +4665,7 @@ and changed TUTORIAL.de calc.texi chinese.el emacs.1 european.el idlwave.el language/czech.el language/slovak.el lispref/Makefile.in reftex-vars.el reftex.el reftex.texi supercite.el advice.el calc-forms.el calc-sel.el calendar.el china-util.el cl-macs.el cl.texi - complete.el and 53 other files + complete.el and 52 other files Werner Meisner: changed lwlib-Xm.c @@ -4505,6 +4674,8 @@ Wes Hardaker: changed gnus-score.el gnus-art.el gnus-sum.el gnus-win.el Wesley Dawson: changed icomplete.el +Wieland Hoffmann: changed auth-source.el + Wilfred Hughes: changed vc-git.el Will Glozer: changed macterm.c @@ -4548,19 +4719,19 @@ W. Martin Borgert: changed files.el schemas.xml Wolfgang Glas: changed unexsgi.c -Wolfgang Jenkner: wrote man-tests.el +Wolfgang Jenkner: wrote man-tests.el textprop-tests.el and changed gnus-agent.el image-mode.el man.el network-stream.el - ansi-color.el gnus-spec.el gnus-sum.el gnus-util.el - automated/Makefile.in calc-tests.el calc-units.el conf-mode.el - functions.texi gnus-group.el gnus-picon.el gnus-salt.el gnus-start.el - gnus.texi intro.texi lread.c nntp.el and 7 other files + ansi-color.el comint.el gmalloc.c gnus-spec.el gnus-sum.el gnus-util.el + automated/Makefile.in calc-store.el calc-tests.el calc-units.el + conf-mode.el dired-x.el editfns.c font-lock.el functions.texi + gnus-group.el gnus-picon.el and 15 other files Wolfgang Lux: changed nsterm.m keyboard.c Wolfgang Rupprecht: wrote float-sup.el floatfns.c sup-mouse.el -and changed process.c alloc.c callint.c configure.ac data.c fns.c - lisp-mode.el lisp.h loadup.el lread.c net-utils.el nntp.el print.c - sort.el +and changed process.c alloc.c callint.c config.in configure.ac data.c + fns.c lisp-mode.el lisp.h loadup.el lread.c net-utils.el nntp.el + print.c sort.el Wolfgang Scherer: changed vc-cvs.el @@ -4574,11 +4745,13 @@ W. Trevor King: changed xterm.el Xavier Maillard: changed gnus-faq.texi gnus-score.el mh-utils.el spam.el -Xue Fuqiao: changed display.texi maintaining.texi files.texi - nonascii.texi text.texi windows.texi os.texi vc-cvs.el vc-dir.el - emacs.texi ido.texi vc-git.el vc-hg.el vc-hooks.el vc-svn.el vc.el - vc/vc-bzr.el INSTALL cl.texi emacs-lisp-intro.texi frames.texi - and 91 other files +Xi Lu: changed etags.c + +Xue Fuqiao: changed display.texi emacs-lisp-intro.texi files.texi + maintaining.texi windows.texi nonascii.texi text.texi frames.texi + os.texi vc-cvs.el vc-dir.el README emacs.texi ido.texi positions.texi + vc-git.el vc-hg.el vc-hooks.el vc-svn.el vc.el vc/vc-bzr.el + and 103 other files Yagi Tatsuya: changed gnus-art.el gnus-start.el @@ -4586,13 +4759,13 @@ Yair F: changed hebrew.el Yamamoto Mitsuharu: wrote uvs.el and changed macterm.c macfns.c mac-win.el mac.c macterm.h macmenu.c - macgui.h image.c xdisp.c xterm.c macselect.c keyboard.c w32term.c - src/Makefile.in unexmacosx.c emacs.c darwin.h dispnew.c configure.ac - dispextern.h alloc.c and 89 other files + xterm.c macgui.h image.c xdisp.c keyboard.c macselect.c w32term.c + xfns.c configure.ac src/Makefile.in unexmacosx.c emacs.c alloc.c + darwin.h dispnew.c and 95 other files Yann Dirson: changed imenu.el -Yann Hodique: changed ox-publish.el package.el rcirc.el +Yann Hodique: changed org-publish.el package.el rcirc.el Yasushi Shoji: changed org-clock.el org.texi ox-ascii.el @@ -4631,18 +4804,20 @@ Yuri Shtil: changed etags.c Yuriy Vostrikov: changed vc-git.el Yutaka Niibe: changed indent.c xdisp.c configure.ac dispnew.c sysdep.c - Makefile.in dired.el emacs.c fill.el fns.c gmalloc.c gnu-linux.h - indent.h process.c simple.el src/Makefile.in term.c window.c + Makefile.in config.in dired.el emacs.c fill.el fns.c gmalloc.c + gnu-linux.h indent.h process.c simple.el src/Makefile.in term.c + window.c Yuya Nishihara: changed vc-hooks.el Yves Baumes: changed package.el -Zachary Kanfer: changed org.el cus-edit.el keyboard.c +Zachary Kanfer: changed org.el cus-edit.el keyboard.c newcomment.el + simple.el Zhang Wei: changed chinese.el characters.el mule-cmds.el xfns.c erc.el - faces.el fontset.el lib-src/makefile.w32-in mm-util.el mule.el - org-publish.el rfc2047.el x-win.el + faces.el fontset.el mm-util.el mule.el org-publish.el rfc2047.el + x-win.el Zhang Weize: wrote ob-plantuml.el commit 6f607a9d9ece03b3f984fb0723b5207a285e2e59 Author: Nicolas Petton Date: Sat Jan 30 15:14:50 2016 +0100 ; Auto-commit of loaddefs files. * lisp/ldefs-boot.el: Update. diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 7d7e635..de40cf5 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -3,7 +3,7 @@ ;;; Code: -;;;### (autoloads nil "5x5" "play/5x5.el" (22150 28228 674072 702000)) +;;;### (autoloads nil "5x5" "play/5x5.el" (22180 39318 464077 241000)) ;;; Generated autoloads from play/5x5.el (autoload '5x5 "5x5" "\ @@ -65,8 +65,8 @@ should return a grid vector array that is the new solution. ;;;*** -;;;### (autoloads nil "ada-mode" "progmodes/ada-mode.el" (22150 28228 -;;;;;; 750072 702000)) +;;;### (autoloads nil "ada-mode" "progmodes/ada-mode.el" (22180 39318 +;;;;;; 470077 213000)) ;;; Generated autoloads from progmodes/ada-mode.el (autoload 'ada-add-extensions "ada-mode" "\ @@ -85,8 +85,8 @@ Ada mode is the major mode for editing Ada code. ;;;*** -;;;### (autoloads nil "ada-stmt" "progmodes/ada-stmt.el" (22150 28228 -;;;;;; 750072 702000)) +;;;### (autoloads nil "ada-stmt" "progmodes/ada-stmt.el" (22180 39318 +;;;;;; 470077 213000)) ;;; Generated autoloads from progmodes/ada-stmt.el (autoload 'ada-header "ada-stmt" "\ @@ -96,8 +96,8 @@ Insert a descriptive header at the top of the file. ;;;*** -;;;### (autoloads nil "ada-xref" "progmodes/ada-xref.el" (22150 28228 -;;;;;; 754072 702000)) +;;;### (autoloads nil "ada-xref" "progmodes/ada-xref.el" (22180 39318 +;;;;;; 471077 209000)) ;;; Generated autoloads from progmodes/ada-xref.el (autoload 'ada-find-file "ada-xref" "\ @@ -108,8 +108,8 @@ Completion is available. ;;;*** -;;;### (autoloads nil "add-log" "vc/add-log.el" (22150 28229 246072 -;;;;;; 702000)) +;;;### (autoloads nil "add-log" "vc/add-log.el" (22180 39318 546076 +;;;;;; 864000)) ;;; Generated autoloads from vc/add-log.el (put 'change-log-default-name 'safe-local-variable 'string-or-null-p) @@ -238,8 +238,8 @@ old-style time formats for entries are supported. ;;;*** -;;;### (autoloads nil "advice" "emacs-lisp/advice.el" (22150 28227 -;;;;;; 338072 702000)) +;;;### (autoloads nil "advice" "emacs-lisp/advice.el" (22180 39318 +;;;;;; 279078 92000)) ;;; Generated autoloads from emacs-lisp/advice.el (defvar ad-redefinition-action 'warn "\ @@ -374,7 +374,7 @@ usage: (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...) ;;;*** -;;;### (autoloads nil "align" "align.el" (22150 28226 938072 702000)) +;;;### (autoloads nil "align" "align.el" (22180 39318 222078 354000)) ;;; Generated autoloads from align.el (autoload 'align "align" "\ @@ -477,7 +477,7 @@ A replacement function for `newline-and-indent', aligning as it goes. ;;;*** -;;;### (autoloads nil "allout" "allout.el" (22150 28226 942072 702000)) +;;;### (autoloads nil "allout" "allout.el" (22180 39318 224078 344000)) ;;; Generated autoloads from allout.el (push (purecopy '(allout 2 3)) package--builtin-versions) @@ -837,8 +837,8 @@ for details on preparing Emacs for automatic allout activation. ;;;*** -;;;### (autoloads nil "allout-widgets" "allout-widgets.el" (22150 -;;;;;; 28226 938072 702000)) +;;;### (autoloads nil "allout-widgets" "allout-widgets.el" (22180 +;;;;;; 39318 222078 354000)) ;;; Generated autoloads from allout-widgets.el (push (purecopy '(allout-widgets 1 0)) package--builtin-versions) @@ -896,8 +896,8 @@ outline hot-spot navigation (see `allout-mode'). ;;;*** -;;;### (autoloads nil "ange-ftp" "net/ange-ftp.el" (22150 28228 350072 -;;;;;; 702000)) +;;;### (autoloads nil "ange-ftp" "net/ange-ftp.el" (22180 39318 406077 +;;;;;; 507000)) ;;; Generated autoloads from net/ange-ftp.el (defalias 'ange-ftp-re-read-dir 'ange-ftp-reread-dir) @@ -918,8 +918,8 @@ directory, so that Emacs will know its current contents. ;;;*** -;;;### (autoloads nil "animate" "play/animate.el" (22150 28228 674072 -;;;;;; 702000)) +;;;### (autoloads nil "animate" "play/animate.el" (22180 39318 464077 +;;;;;; 241000)) ;;; Generated autoloads from play/animate.el (autoload 'animate-string "animate" "\ @@ -951,8 +951,8 @@ the buffer *Birthday-Present-for-Name*. ;;;*** -;;;### (autoloads nil "ansi-color" "ansi-color.el" (22150 28226 942072 -;;;;;; 702000)) +;;;### (autoloads nil "ansi-color" "ansi-color.el" (22180 39318 224078 +;;;;;; 344000)) ;;; Generated autoloads from ansi-color.el (push (purecopy '(ansi-color 3 4 2)) package--builtin-versions) @@ -978,8 +978,8 @@ This is a good function to put in `comint-output-filter-functions'. ;;;*** -;;;### (autoloads nil "antlr-mode" "progmodes/antlr-mode.el" (22150 -;;;;;; 28228 754072 702000)) +;;;### (autoloads nil "antlr-mode" "progmodes/antlr-mode.el" (22183 +;;;;;; 58408 695001 816000)) ;;; Generated autoloads from progmodes/antlr-mode.el (push (purecopy '(antlr-mode 2 2 3)) package--builtin-versions) @@ -1015,8 +1015,8 @@ Used in `antlr-mode'. Also a useful function in `java-mode-hook'. ;;;*** -;;;### (autoloads nil "appt" "calendar/appt.el" (22150 28227 46072 -;;;;;; 702000)) +;;;### (autoloads nil "appt" "calendar/appt.el" (22180 39318 240078 +;;;;;; 271000)) ;;; Generated autoloads from calendar/appt.el (autoload 'appt-add "appt" "\ @@ -1037,8 +1037,8 @@ ARG is positive, otherwise off. ;;;*** -;;;### (autoloads nil "apropos" "apropos.el" (22150 28226 942072 -;;;;;; 702000)) +;;;### (autoloads nil "apropos" "apropos.el" (22180 39318 224078 +;;;;;; 344000)) ;;; Generated autoloads from apropos.el (autoload 'apropos-read-pattern "apropos" "\ @@ -1153,8 +1153,8 @@ Returns list of symbols and documentation found. ;;;*** -;;;### (autoloads nil "arc-mode" "arc-mode.el" (22150 28226 946072 -;;;;;; 702000)) +;;;### (autoloads nil "arc-mode" "arc-mode.el" (22180 39318 225078 +;;;;;; 340000)) ;;; Generated autoloads from arc-mode.el (autoload 'archive-mode "arc-mode" "\ @@ -1174,7 +1174,7 @@ archive. ;;;*** -;;;### (autoloads nil "array" "array.el" (22150 28226 946072 702000)) +;;;### (autoloads nil "array" "array.el" (22180 39318 225078 340000)) ;;; Generated autoloads from array.el (autoload 'array-mode "array" "\ @@ -1245,8 +1245,8 @@ Entering array mode calls the function `array-mode-hook'. ;;;*** -;;;### (autoloads nil "artist" "textmodes/artist.el" (22150 28229 -;;;;;; 86072 702000)) +;;;### (autoloads nil "artist" "textmodes/artist.el" (22180 39318 +;;;;;; 528076 946000)) ;;; Generated autoloads from textmodes/artist.el (push (purecopy '(artist 1 2 6)) package--builtin-versions) @@ -1452,8 +1452,8 @@ Keymap summary ;;;*** -;;;### (autoloads nil "asm-mode" "progmodes/asm-mode.el" (22150 28228 -;;;;;; 758072 702000)) +;;;### (autoloads nil "asm-mode" "progmodes/asm-mode.el" (22180 39318 +;;;;;; 472077 204000)) ;;; Generated autoloads from progmodes/asm-mode.el (autoload 'asm-mode "asm-mode" "\ @@ -1480,8 +1480,8 @@ Special commands: ;;;*** -;;;### (autoloads nil "auth-source" "gnus/auth-source.el" (22150 -;;;;;; 28227 658072 702000)) +;;;### (autoloads nil "auth-source" "gnus/auth-source.el" (22180 +;;;;;; 39318 327077 871000)) ;;; Generated autoloads from gnus/auth-source.el (defvar auth-source-cache-expiry 7200 "\ @@ -1493,8 +1493,8 @@ let-binding.") ;;;*** -;;;### (autoloads nil "autoarg" "autoarg.el" (22150 28226 946072 -;;;;;; 702000)) +;;;### (autoloads nil "autoarg" "autoarg.el" (22180 39318 225078 +;;;;;; 340000)) ;;; Generated autoloads from autoarg.el (defvar autoarg-mode nil "\ @@ -1554,8 +1554,8 @@ This is similar to `autoarg-mode' but rebinds the keypad keys ;;;*** -;;;### (autoloads nil "autoconf" "progmodes/autoconf.el" (22150 28228 -;;;;;; 758072 702000)) +;;;### (autoloads nil "autoconf" "progmodes/autoconf.el" (22180 39318 +;;;;;; 472077 204000)) ;;; Generated autoloads from progmodes/autoconf.el (autoload 'autoconf-mode "autoconf" "\ @@ -1565,8 +1565,8 @@ Major mode for editing Autoconf configure.ac files. ;;;*** -;;;### (autoloads nil "autoinsert" "autoinsert.el" (22150 28226 946072 -;;;;;; 702000)) +;;;### (autoloads nil "autoinsert" "autoinsert.el" (22180 39318 225078 +;;;;;; 340000)) ;;; Generated autoloads from autoinsert.el (autoload 'auto-insert "autoinsert" "\ @@ -1604,8 +1604,8 @@ insert a template for the file depending on the mode of the buffer. ;;;*** -;;;### (autoloads nil "autoload" "emacs-lisp/autoload.el" (22150 -;;;;;; 28227 338072 702000)) +;;;### (autoloads nil "autoload" "emacs-lisp/autoload.el" (22180 +;;;;;; 39318 279078 92000)) ;;; Generated autoloads from emacs-lisp/autoload.el (put 'generated-autoload-file 'safe-local-variable 'stringp) @@ -1656,8 +1656,8 @@ should be non-nil). ;;;*** -;;;### (autoloads nil "autorevert" "autorevert.el" (22150 28226 946072 -;;;;;; 702000)) +;;;### (autoloads nil "autorevert" "autorevert.el" (22183 58408 667002 +;;;;;; 38000)) ;;; Generated autoloads from autorevert.el (autoload 'auto-revert-mode "autorevert" "\ @@ -1745,7 +1745,7 @@ specifies in the mode line. ;;;*** -;;;### (autoloads nil "avoid" "avoid.el" (22150 28226 946072 702000)) +;;;### (autoloads nil "avoid" "avoid.el" (22180 39318 225078 340000)) ;;; Generated autoloads from avoid.el (defvar mouse-avoidance-mode nil "\ @@ -1783,8 +1783,8 @@ definition of \"random distance\".) ;;;*** -;;;### (autoloads nil "bat-mode" "progmodes/bat-mode.el" (22150 28228 -;;;;;; 758072 702000)) +;;;### (autoloads nil "bat-mode" "progmodes/bat-mode.el" (22180 39318 +;;;;;; 472077 204000)) ;;; Generated autoloads from progmodes/bat-mode.el (add-to-list 'auto-mode-alist '("\\.\\(bat\\|cmd\\)\\'" . bat-mode)) @@ -1802,8 +1802,8 @@ Run script using `bat-run' and `bat-run-args'. ;;;*** -;;;### (autoloads nil "battery" "battery.el" (22150 28226 946072 -;;;;;; 702000)) +;;;### (autoloads nil "battery" "battery.el" (22180 39318 226078 +;;;;;; 335000)) ;;; Generated autoloads from battery.el (put 'battery-mode-line-string 'risky-local-variable t) @@ -1838,8 +1838,8 @@ seconds. ;;;*** -;;;### (autoloads nil "benchmark" "emacs-lisp/benchmark.el" (22150 -;;;;;; 28227 338072 702000)) +;;;### (autoloads nil "benchmark" "emacs-lisp/benchmark.el" (22180 +;;;;;; 39318 280078 87000)) ;;; Generated autoloads from emacs-lisp/benchmark.el (autoload 'benchmark-run "benchmark" "\ @@ -1875,8 +1875,8 @@ For non-interactive use see also `benchmark-run' and ;;;*** -;;;### (autoloads nil "bibtex" "textmodes/bibtex.el" (22150 28229 -;;;;;; 94072 702000)) +;;;### (autoloads nil "bibtex" "textmodes/bibtex.el" (22180 39318 +;;;;;; 530076 937000)) ;;; Generated autoloads from textmodes/bibtex.el (autoload 'bibtex-initialize "bibtex" "\ @@ -1968,7 +1968,7 @@ A prefix arg negates the value of `bibtex-search-entry-globally'. ;;;*** ;;;### (autoloads nil "bibtex-style" "textmodes/bibtex-style.el" -;;;;;; (22150 28229 86072 702000)) +;;;;;; (22180 39318 529076 942000)) ;;; Generated autoloads from textmodes/bibtex-style.el (autoload 'bibtex-style-mode "bibtex-style" "\ @@ -1978,8 +1978,8 @@ Major mode for editing BibTeX style files. ;;;*** -;;;### (autoloads nil "binhex" "mail/binhex.el" (22150 28228 226072 -;;;;;; 702000)) +;;;### (autoloads nil "binhex" "mail/binhex.el" (22180 39318 386077 +;;;;;; 599000)) ;;; Generated autoloads from mail/binhex.el (defconst binhex-begin-line "^:...............................................................$" "\ @@ -2003,8 +2003,8 @@ Binhex decode region between START and END. ;;;*** -;;;### (autoloads nil "blackbox" "play/blackbox.el" (22150 28228 -;;;;;; 674072 702000)) +;;;### (autoloads nil "blackbox" "play/blackbox.el" (22180 39318 +;;;;;; 464077 241000)) ;;; Generated autoloads from play/blackbox.el (autoload 'blackbox "blackbox" "\ @@ -2123,8 +2123,8 @@ a reflection. ;;;*** -;;;### (autoloads nil "bookmark" "bookmark.el" (22150 28226 950072 -;;;;;; 702000)) +;;;### (autoloads nil "bookmark" "bookmark.el" (22180 39318 227078 +;;;;;; 330000)) ;;; Generated autoloads from bookmark.el (define-key ctl-x-r-map "b" 'bookmark-jump) (define-key ctl-x-r-map "m" 'bookmark-set) @@ -2348,8 +2348,8 @@ Incremental search of bookmarks, hiding the non-matches as we go. ;;;*** -;;;### (autoloads nil "browse-url" "net/browse-url.el" (22150 28228 -;;;;;; 350072 702000)) +;;;### (autoloads nil "browse-url" "net/browse-url.el" (22183 58408 +;;;;;; 681001 927000)) ;;; Generated autoloads from net/browse-url.el (defvar browse-url-browser-function 'browse-url-default-browser "\ @@ -2697,7 +2697,7 @@ from `browse-url-elinks-wrapper'. ;;;*** -;;;### (autoloads nil "bs" "bs.el" (22150 28226 950072 702000)) +;;;### (autoloads nil "bs" "bs.el" (22180 39318 227078 330000)) ;;; Generated autoloads from bs.el (push (purecopy '(bs 1 17)) package--builtin-versions) @@ -2738,8 +2738,8 @@ name of buffer configuration. ;;;*** -;;;### (autoloads nil "bubbles" "play/bubbles.el" (22150 28228 674072 -;;;;;; 702000)) +;;;### (autoloads nil "bubbles" "play/bubbles.el" (22180 39318 464077 +;;;;;; 241000)) ;;; Generated autoloads from play/bubbles.el (autoload 'bubbles "bubbles" "\ @@ -2761,7 +2761,7 @@ columns on its right towards the left. ;;;*** ;;;### (autoloads nil "bug-reference" "progmodes/bug-reference.el" -;;;;;; (22150 28228 758072 702000)) +;;;;;; (22180 39318 472077 204000)) ;;; Generated autoloads from progmodes/bug-reference.el (put 'bug-reference-url-format 'safe-local-variable (lambda (s) (or (stringp s) (and (symbolp s) (get s 'bug-reference-url-format))))) @@ -2781,8 +2781,8 @@ Like `bug-reference-mode', but only buttonize in comments and strings. ;;;*** -;;;### (autoloads nil "bytecomp" "emacs-lisp/bytecomp.el" (22150 -;;;;;; 28227 358072 702000)) +;;;### (autoloads nil "bytecomp" "emacs-lisp/bytecomp.el" (22180 +;;;;;; 39318 281078 82000)) ;;; Generated autoloads from emacs-lisp/bytecomp.el (put 'byte-compile-dynamic 'safe-local-variable 'booleanp) (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp) @@ -2902,8 +2902,8 @@ and corresponding effects. ;;;*** -;;;### (autoloads nil "cal-china" "calendar/cal-china.el" (22150 -;;;;;; 28227 46072 702000)) +;;;### (autoloads nil "cal-china" "calendar/cal-china.el" (22180 +;;;;;; 39318 240078 271000)) ;;; Generated autoloads from calendar/cal-china.el (put 'calendar-chinese-time-zone 'risky-local-variable t) @@ -2912,8 +2912,8 @@ and corresponding effects. ;;;*** -;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (22150 28227 -;;;;;; 50072 702000)) +;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (22180 39318 +;;;;;; 240078 271000)) ;;; Generated autoloads from calendar/cal-dst.el (put 'calendar-daylight-savings-starts 'risky-local-variable t) @@ -2924,8 +2924,8 @@ and corresponding effects. ;;;*** -;;;### (autoloads nil "cal-hebrew" "calendar/cal-hebrew.el" (22150 -;;;;;; 28227 50072 702000)) +;;;### (autoloads nil "cal-hebrew" "calendar/cal-hebrew.el" (22180 +;;;;;; 39318 241078 266000)) ;;; Generated autoloads from calendar/cal-hebrew.el (autoload 'calendar-hebrew-list-yahrzeits "cal-hebrew" "\ @@ -2937,7 +2937,7 @@ from the cursor position. ;;;*** -;;;### (autoloads nil "calc" "calc/calc.el" (22150 28227 26072 702000)) +;;;### (autoloads nil "calc" "calc/calc.el" (22180 39318 237078 285000)) ;;; Generated autoloads from calc/calc.el (define-key ctl-x-map "*" 'calc-dispatch) @@ -3023,8 +3023,8 @@ See Info node `(calc)Defining Functions'. ;;;*** -;;;### (autoloads nil "calc-undo" "calc/calc-undo.el" (22150 28227 -;;;;;; 22072 702000)) +;;;### (autoloads nil "calc-undo" "calc/calc-undo.el" (22180 39318 +;;;;;; 235078 294000)) ;;; Generated autoloads from calc/calc-undo.el (autoload 'calc-undo "calc-undo" "\ @@ -3034,8 +3034,8 @@ See Info node `(calc)Defining Functions'. ;;;*** -;;;### (autoloads nil "calculator" "calculator.el" (22150 28227 46072 -;;;;;; 702000)) +;;;### (autoloads nil "calculator" "calculator.el" (22180 39318 239078 +;;;;;; 275000)) ;;; Generated autoloads from calculator.el (autoload 'calculator "calculator" "\ @@ -3046,8 +3046,8 @@ See the documentation for `calculator-mode' for more information. ;;;*** -;;;### (autoloads nil "calendar" "calendar/calendar.el" (22150 28227 -;;;;;; 62072 702000)) +;;;### (autoloads nil "calendar" "calendar/calendar.el" (22180 39318 +;;;;;; 243078 257000)) ;;; Generated autoloads from calendar/calendar.el (autoload 'calendar "calendar" "\ @@ -3090,8 +3090,8 @@ This function is suitable for execution in an init file. ;;;*** -;;;### (autoloads nil "canlock" "gnus/canlock.el" (22150 28227 658072 -;;;;;; 702000)) +;;;### (autoloads nil "canlock" "gnus/canlock.el" (22180 39318 327077 +;;;;;; 871000)) ;;; Generated autoloads from gnus/canlock.el (autoload 'canlock-insert-header "canlock" "\ @@ -3108,8 +3108,8 @@ it fails. ;;;*** -;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (22150 -;;;;;; 28228 786072 702000)) +;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (22183 +;;;;;; 58408 697001 800000)) ;;; Generated autoloads from progmodes/cc-engine.el (autoload 'c-guess-basic-syntax "cc-engine" "\ @@ -3119,8 +3119,8 @@ Return the syntactic context of the current line. ;;;*** -;;;### (autoloads nil "cc-guess" "progmodes/cc-guess.el" (22150 28228 -;;;;;; 790072 702000)) +;;;### (autoloads nil "cc-guess" "progmodes/cc-guess.el" (22180 39318 +;;;;;; 478077 176000)) ;;; Generated autoloads from progmodes/cc-guess.el (defvar c-guess-guessed-offsets-alist nil "\ @@ -3218,8 +3218,8 @@ the absolute file name of the file if STYLE-NAME is nil. ;;;*** -;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (22150 28228 -;;;;;; 798072 702000)) +;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (22180 39318 +;;;;;; 479077 172000)) ;;; Generated autoloads from progmodes/cc-mode.el (autoload 'c-initialize-cc-mode "cc-mode" "\ @@ -3377,8 +3377,8 @@ Key bindings: ;;;*** -;;;### (autoloads nil "cc-styles" "progmodes/cc-styles.el" (22150 -;;;;;; 28228 798072 702000)) +;;;### (autoloads nil "cc-styles" "progmodes/cc-styles.el" (22180 +;;;;;; 39318 479077 172000)) ;;; Generated autoloads from progmodes/cc-styles.el (autoload 'c-set-style "cc-styles" "\ @@ -3429,8 +3429,8 @@ and exists only for compatibility reasons. ;;;*** -;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (22150 28228 -;;;;;; 802072 702000)) +;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (22180 39318 +;;;;;; 480077 167000)) ;;; Generated autoloads from progmodes/cc-vars.el (put 'c-basic-offset 'safe-local-variable 'integerp) (put 'c-backslash-column 'safe-local-variable 'integerp) @@ -3438,8 +3438,8 @@ and exists only for compatibility reasons. ;;;*** -;;;### (autoloads nil "ccl" "international/ccl.el" (22150 28228 106072 -;;;;;; 702000)) +;;;### (autoloads nil "ccl" "international/ccl.el" (22180 39318 364077 +;;;;;; 701000)) ;;; Generated autoloads from international/ccl.el (autoload 'ccl-compile "ccl" "\ @@ -3732,8 +3732,8 @@ See the documentation of `define-ccl-program' for the detail of CCL program. ;;;*** -;;;### (autoloads nil "cconv" "emacs-lisp/cconv.el" (22150 28227 -;;;;;; 358072 702000)) +;;;### (autoloads nil "cconv" "emacs-lisp/cconv.el" (22180 39318 +;;;;;; 281078 82000)) ;;; Generated autoloads from emacs-lisp/cconv.el (autoload 'cconv-closure-convert "cconv" "\ @@ -3752,15 +3752,15 @@ Add the warnings that closure conversion would encounter. ;;;*** -;;;### (autoloads nil "cedet" "cedet/cedet.el" (22150 28227 146072 -;;;;;; 702000)) +;;;### (autoloads nil "cedet" "cedet/cedet.el" (22180 39318 248078 +;;;;;; 234000)) ;;; Generated autoloads from cedet/cedet.el (push (purecopy '(cedet 2 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "cfengine" "progmodes/cfengine.el" (22150 28228 -;;;;;; 802072 702000)) +;;;### (autoloads nil "cfengine" "progmodes/cfengine.el" (22180 39318 +;;;;;; 480077 167000)) ;;; Generated autoloads from progmodes/cfengine.el (push (purecopy '(cfengine 1 4)) package--builtin-versions) @@ -3789,8 +3789,8 @@ Choose `cfengine2-mode' or `cfengine3-mode' by buffer contents. ;;;*** -;;;### (autoloads nil "character-fold" "character-fold.el" (22150 -;;;;;; 28227 274072 702000)) +;;;### (autoloads nil "character-fold" "character-fold.el" (22180 +;;;;;; 39318 270078 133000)) ;;; Generated autoloads from character-fold.el (autoload 'character-fold-to-regexp "character-fold" "\ @@ -3809,15 +3809,15 @@ from which to start. ;;;*** -;;;### (autoloads nil "chart" "emacs-lisp/chart.el" (22150 28227 -;;;;;; 358072 702000)) +;;;### (autoloads nil "chart" "emacs-lisp/chart.el" (22180 39318 +;;;;;; 282078 78000)) ;;; Generated autoloads from emacs-lisp/chart.el (push (purecopy '(chart 0 2)) package--builtin-versions) ;;;*** ;;;### (autoloads nil "check-declare" "emacs-lisp/check-declare.el" -;;;;;; (22150 28227 358072 702000)) +;;;;;; (22180 39318 282078 78000)) ;;; Generated autoloads from emacs-lisp/check-declare.el (autoload 'check-declare-file "check-declare" "\ @@ -3834,8 +3834,8 @@ Returns non-nil if any false statements are found. ;;;*** -;;;### (autoloads nil "checkdoc" "emacs-lisp/checkdoc.el" (22150 -;;;;;; 28227 362072 702000)) +;;;### (autoloads nil "checkdoc" "emacs-lisp/checkdoc.el" (22180 +;;;;;; 39318 282078 78000)) ;;; Generated autoloads from emacs-lisp/checkdoc.el (push (purecopy '(checkdoc 0 6 2)) package--builtin-versions) (put 'checkdoc-force-docstrings-flag 'safe-local-variable #'booleanp) @@ -4045,8 +4045,8 @@ Find package keywords that aren't in `finder-known-keywords'. ;;;*** -;;;### (autoloads nil "china-util" "language/china-util.el" (22150 -;;;;;; 28228 162072 702000)) +;;;### (autoloads nil "china-util" "language/china-util.el" (22180 +;;;;;; 39318 371077 668000)) ;;; Generated autoloads from language/china-util.el (autoload 'decode-hz-region "china-util" "\ @@ -4083,8 +4083,8 @@ Encode the text in the current buffer to HZ. ;;;*** -;;;### (autoloads nil "chistory" "chistory.el" (22150 28227 274072 -;;;;;; 702000)) +;;;### (autoloads nil "chistory" "chistory.el" (22180 39318 270078 +;;;;;; 133000)) ;;; Generated autoloads from chistory.el (autoload 'repeat-matching-complex-command "chistory" "\ @@ -4123,8 +4123,8 @@ and runs the normal hook `command-history-hook'. ;;;*** -;;;### (autoloads nil "cl-indent" "emacs-lisp/cl-indent.el" (22150 -;;;;;; 28227 366072 702000)) +;;;### (autoloads nil "cl-indent" "emacs-lisp/cl-indent.el" (22180 +;;;;;; 39318 283078 73000)) ;;; Generated autoloads from emacs-lisp/cl-indent.el (autoload 'common-lisp-indent-function "cl-indent" "\ @@ -4207,8 +4207,8 @@ instead. ;;;*** -;;;### (autoloads nil "cl-lib" "emacs-lisp/cl-lib.el" (22150 28227 -;;;;;; 366072 702000)) +;;;### (autoloads nil "cl-lib" "emacs-lisp/cl-lib.el" (22180 39318 +;;;;;; 283078 73000)) ;;; Generated autoloads from emacs-lisp/cl-lib.el (push (purecopy '(cl-lib 1 0)) package--builtin-versions) @@ -4226,8 +4226,8 @@ a future Emacs interpreter will be able to use it.") ;;;*** -;;;### (autoloads nil "cmacexp" "progmodes/cmacexp.el" (22150 28228 -;;;;;; 802072 702000)) +;;;### (autoloads nil "cmacexp" "progmodes/cmacexp.el" (22180 39318 +;;;;;; 480077 167000)) ;;; Generated autoloads from progmodes/cmacexp.el (autoload 'c-macro-expand "cmacexp" "\ @@ -4247,8 +4247,8 @@ For use inside Lisp programs, see also `c-macro-expansion'. ;;;*** -;;;### (autoloads nil "cmuscheme" "cmuscheme.el" (22150 28227 274072 -;;;;;; 702000)) +;;;### (autoloads nil "cmuscheme" "cmuscheme.el" (22180 39318 270078 +;;;;;; 133000)) ;;; Generated autoloads from cmuscheme.el (autoload 'run-scheme "cmuscheme" "\ @@ -4268,7 +4268,7 @@ is run). ;;;*** -;;;### (autoloads nil "color" "color.el" (22150 28227 274072 702000)) +;;;### (autoloads nil "color" "color.el" (22180 39318 270078 133000)) ;;; Generated autoloads from color.el (autoload 'color-name-to-rgb "color" "\ @@ -4287,7 +4287,7 @@ If FRAME cannot display COLOR, return nil. ;;;*** -;;;### (autoloads nil "comint" "comint.el" (22150 28227 278072 702000)) +;;;### (autoloads nil "comint" "comint.el" (22180 39318 271078 128000)) ;;; Generated autoloads from comint.el (defvar comint-output-filter-functions '(ansi-color-process-output comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) "\ @@ -4388,8 +4388,8 @@ REGEXP-GROUP is the regular expression group in REGEXP to use. ;;;*** -;;;### (autoloads nil "compare-w" "vc/compare-w.el" (22150 28229 -;;;;;; 250072 702000)) +;;;### (autoloads nil "compare-w" "vc/compare-w.el" (22180 39318 +;;;;;; 547076 859000)) ;;; Generated autoloads from vc/compare-w.el (autoload 'compare-windows "compare-w" "\ @@ -4425,8 +4425,8 @@ on third call it again advances points to the next difference and so on. ;;;*** -;;;### (autoloads nil "compile" "progmodes/compile.el" (22150 28228 -;;;;;; 802072 702000)) +;;;### (autoloads nil "compile" "progmodes/compile.el" (22180 39318 +;;;;;; 481077 163000)) ;;; Generated autoloads from progmodes/compile.el (defvar compilation-mode-hook nil "\ @@ -4607,8 +4607,8 @@ This is the value of `next-error-function' in Compilation buffers. ;;;*** -;;;### (autoloads nil "completion" "completion.el" (22150 28227 286072 -;;;;;; 702000)) +;;;### (autoloads nil "completion" "completion.el" (22180 39318 272078 +;;;;;; 124000)) ;;; Generated autoloads from completion.el (defvar dynamic-completion-mode nil "\ @@ -4630,8 +4630,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "conf-mode" "textmodes/conf-mode.el" (22150 -;;;;;; 28229 94072 702000)) +;;;### (autoloads nil "conf-mode" "textmodes/conf-mode.el" (22180 +;;;;;; 39318 530076 937000)) ;;; Generated autoloads from textmodes/conf-mode.el (autoload 'conf-mode "conf-mode" "\ @@ -4786,8 +4786,8 @@ For details see `conf-mode'. Example: ;;;*** -;;;### (autoloads nil "cookie1" "play/cookie1.el" (22150 28228 674072 -;;;;;; 702000)) +;;;### (autoloads nil "cookie1" "play/cookie1.el" (22180 39318 464077 +;;;;;; 241000)) ;;; Generated autoloads from play/cookie1.el (autoload 'cookie "cookie1" "\ @@ -4815,8 +4815,8 @@ and subsequent calls on the same file won't go to disk. ;;;*** -;;;### (autoloads nil "copyright" "emacs-lisp/copyright.el" (22150 -;;;;;; 28227 374072 702000)) +;;;### (autoloads nil "copyright" "emacs-lisp/copyright.el" (22180 +;;;;;; 39318 284078 68000)) ;;; Generated autoloads from emacs-lisp/copyright.el (put 'copyright-at-end-flag 'safe-local-variable 'booleanp) (put 'copyright-names-regexp 'safe-local-variable 'stringp) @@ -4854,8 +4854,8 @@ If FIX is non-nil, run `copyright-fix-years' instead. ;;;*** -;;;### (autoloads nil "cperl-mode" "progmodes/cperl-mode.el" (22150 -;;;;;; 28228 806072 702000)) +;;;### (autoloads nil "cperl-mode" "progmodes/cperl-mode.el" (22180 +;;;;;; 39318 482077 158000)) ;;; Generated autoloads from progmodes/cperl-mode.el (put 'cperl-indent-level 'safe-local-variable 'integerp) (put 'cperl-brace-offset 'safe-local-variable 'integerp) @@ -5053,8 +5053,8 @@ Run a `perldoc' on the word around point. ;;;*** -;;;### (autoloads nil "cpp" "progmodes/cpp.el" (22150 28228 806072 -;;;;;; 702000)) +;;;### (autoloads nil "cpp" "progmodes/cpp.el" (22180 39318 482077 +;;;;;; 158000)) ;;; Generated autoloads from progmodes/cpp.el (autoload 'cpp-highlight-buffer "cpp" "\ @@ -5072,8 +5072,8 @@ Edit display information for cpp conditionals. ;;;*** -;;;### (autoloads nil "crm" "emacs-lisp/crm.el" (22150 28227 374072 -;;;;;; 702000)) +;;;### (autoloads nil "crm" "emacs-lisp/crm.el" (22180 39318 285078 +;;;;;; 64000)) ;;; Generated autoloads from emacs-lisp/crm.el (autoload 'completing-read-multiple "crm" "\ @@ -5099,8 +5099,8 @@ with empty strings removed. ;;;*** -;;;### (autoloads nil "css-mode" "textmodes/css-mode.el" (22150 28229 -;;;;;; 94072 702000)) +;;;### (autoloads nil "css-mode" "textmodes/css-mode.el" (22180 39318 +;;;;;; 530076 937000)) ;;; Generated autoloads from textmodes/css-mode.el (autoload 'css-mode "css-mode" "\ @@ -5116,8 +5116,8 @@ Major mode to edit \"Sassy CSS\" files. ;;;*** -;;;### (autoloads nil "cua-base" "emulation/cua-base.el" (22150 28227 -;;;;;; 458072 702000)) +;;;### (autoloads nil "cua-base" "emulation/cua-base.el" (22180 39318 +;;;;;; 295078 18000)) ;;; Generated autoloads from emulation/cua-base.el (defvar cua-mode nil "\ @@ -5162,8 +5162,8 @@ Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings. ;;;*** -;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (22150 28227 -;;;;;; 462072 702000)) +;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (22180 39318 +;;;;;; 296078 13000)) ;;; Generated autoloads from emulation/cua-rect.el (autoload 'cua-rectangle-mark-mode "cua-rect" "\ @@ -5175,7 +5175,7 @@ Activates the region if needed. Only lasts until the region is deactivated. ;;;*** ;;;### (autoloads nil "cursor-sensor" "emacs-lisp/cursor-sensor.el" -;;;;;; (22150 28227 374072 702000)) +;;;;;; (22180 39318 285078 64000)) ;;; Generated autoloads from emacs-lisp/cursor-sensor.el (autoload 'cursor-intangible-mode "cursor-sensor" "\ @@ -5188,15 +5188,15 @@ Handle the `cursor-sensor-functions' text property. This property should hold a list of functions which react to the motion of the cursor. They're called with three arguments (WINDOW OLDPOS DIR) where WINDOW is the affected window, OLDPOS is the last known position of -the cursor and DIR can be `left' or `entered' depending on whether the cursor is -entering the area covered by the text-property property or leaving it. +the cursor and DIR can be `entered' or `left' depending on whether the cursor +is entering the area covered by the text-property property or leaving it. \(fn &optional ARG)" t nil) ;;;*** -;;;### (autoloads nil "cus-edit" "cus-edit.el" (22150 28227 290072 -;;;;;; 702000)) +;;;### (autoloads nil "cus-edit" "cus-edit.el" (22180 39318 273078 +;;;;;; 119000)) ;;; Generated autoloads from cus-edit.el (defvar custom-browse-sort-alphabetically nil "\ @@ -5515,8 +5515,8 @@ The format is suitable for use with `easy-menu-define'. ;;;*** -;;;### (autoloads nil "cus-theme" "cus-theme.el" (22150 28227 290072 -;;;;;; 702000)) +;;;### (autoloads nil "cus-theme" "cus-theme.el" (22180 39318 273078 +;;;;;; 119000)) ;;; Generated autoloads from cus-theme.el (autoload 'customize-create-theme "cus-theme" "\ @@ -5549,8 +5549,8 @@ omitted, a buffer named *Custom Themes* is used. ;;;*** -;;;### (autoloads nil "cvs-status" "vc/cvs-status.el" (22150 28229 -;;;;;; 250072 702000)) +;;;### (autoloads nil "cvs-status" "vc/cvs-status.el" (22180 39318 +;;;;;; 547076 859000)) ;;; Generated autoloads from vc/cvs-status.el (autoload 'cvs-status-mode "cvs-status" "\ @@ -5560,8 +5560,8 @@ Mode used for cvs status output. ;;;*** -;;;### (autoloads nil "cwarn" "progmodes/cwarn.el" (22150 28228 810072 -;;;;;; 702000)) +;;;### (autoloads nil "cwarn" "progmodes/cwarn.el" (22180 39318 482077 +;;;;;; 158000)) ;;; Generated autoloads from progmodes/cwarn.el (push (purecopy '(cwarn 1 3 1)) package--builtin-versions) @@ -5605,8 +5605,8 @@ See `cwarn-mode' for more information on Cwarn mode. ;;;*** -;;;### (autoloads nil "cyril-util" "language/cyril-util.el" (22150 -;;;;;; 28228 162072 702000)) +;;;### (autoloads nil "cyril-util" "language/cyril-util.el" (22180 +;;;;;; 39318 371077 668000)) ;;; Generated autoloads from language/cyril-util.el (autoload 'cyrillic-encode-koi8-r-char "cyril-util" "\ @@ -5634,8 +5634,8 @@ If the argument is nil, we return the display table to its standard state. ;;;*** -;;;### (autoloads nil "dabbrev" "dabbrev.el" (22150 28227 290072 -;;;;;; 702000)) +;;;### (autoloads nil "dabbrev" "dabbrev.el" (22180 39318 274078 +;;;;;; 114000)) ;;; Generated autoloads from dabbrev.el (put 'dabbrev-case-fold-search 'risky-local-variable t) (put 'dabbrev-case-replace 'risky-local-variable t) @@ -5681,8 +5681,8 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]. ;;;*** -;;;### (autoloads nil "data-debug" "cedet/data-debug.el" (22150 28227 -;;;;;; 146072 702000)) +;;;### (autoloads nil "data-debug" "cedet/data-debug.el" (22180 39318 +;;;;;; 248078 234000)) ;;; Generated autoloads from cedet/data-debug.el (autoload 'data-debug-new-buffer "data-debug" "\ @@ -5692,7 +5692,7 @@ Create a new data-debug buffer with NAME. ;;;*** -;;;### (autoloads nil "dbus" "net/dbus.el" (22150 28228 354072 702000)) +;;;### (autoloads nil "dbus" "net/dbus.el" (22180 39318 406077 507000)) ;;; Generated autoloads from net/dbus.el (autoload 'dbus-handle-event "dbus" "\ @@ -5705,8 +5705,8 @@ If the HANDLER returns a `dbus-error', it is propagated as return message. ;;;*** -;;;### (autoloads nil "dcl-mode" "progmodes/dcl-mode.el" (22150 28228 -;;;;;; 810072 702000)) +;;;### (autoloads nil "dcl-mode" "progmodes/dcl-mode.el" (22180 39318 +;;;;;; 483077 153000)) ;;; Generated autoloads from progmodes/dcl-mode.el (autoload 'dcl-mode "dcl-mode" "\ @@ -5832,8 +5832,8 @@ There is some minimal font-lock support (see vars ;;;*** -;;;### (autoloads nil "debug" "emacs-lisp/debug.el" (22150 28227 -;;;;;; 378072 702000)) +;;;### (autoloads nil "debug" "emacs-lisp/debug.el" (22180 39318 +;;;;;; 285078 64000)) ;;; Generated autoloads from emacs-lisp/debug.el (setq debugger 'debug) @@ -5876,8 +5876,8 @@ To specify a nil argument interactively, exit with an empty minibuffer. ;;;*** -;;;### (autoloads nil "decipher" "play/decipher.el" (22150 28228 -;;;;;; 674072 702000)) +;;;### (autoloads nil "decipher" "play/decipher.el" (22180 39318 +;;;;;; 464077 241000)) ;;; Generated autoloads from play/decipher.el (autoload 'decipher "decipher" "\ @@ -5905,8 +5905,8 @@ The most useful commands are: ;;;*** -;;;### (autoloads nil "delim-col" "delim-col.el" (22150 28227 290072 -;;;;;; 702000)) +;;;### (autoloads nil "delim-col" "delim-col.el" (22180 39318 274078 +;;;;;; 114000)) ;;; Generated autoloads from delim-col.el (push (purecopy '(delim-col 2 1)) package--builtin-versions) @@ -5931,7 +5931,7 @@ START and END delimits the corners of text rectangle. ;;;*** -;;;### (autoloads nil "delsel" "delsel.el" (22150 28227 290072 702000)) +;;;### (autoloads nil "delsel" "delsel.el" (22180 39318 274078 114000)) ;;; Generated autoloads from delsel.el (defalias 'pending-delete-mode 'delete-selection-mode) @@ -5953,14 +5953,18 @@ enable the mode if ARG is omitted or nil. When Delete Selection mode is enabled, typed text replaces the selection if the selection is active. Otherwise, typed text is just inserted at -point regardless of any selection. +point regardless of any selection. Also, commands that normally delete +just one character will delete the entire selection instead. + +See `delete-selection-helper' and `delete-selection-pre-hook' for +information on adapting behavior of commands in Delete Selection mode. \(fn &optional ARG)" t nil) ;;;*** -;;;### (autoloads nil "derived" "emacs-lisp/derived.el" (22150 28227 -;;;;;; 398072 702000)) +;;;### (autoloads nil "derived" "emacs-lisp/derived.el" (22180 39318 +;;;;;; 285078 64000)) ;;; Generated autoloads from emacs-lisp/derived.el (autoload 'define-derived-mode "derived" "\ @@ -6028,8 +6032,8 @@ the first time the mode is used. ;;;*** -;;;### (autoloads nil "descr-text" "descr-text.el" (22150 28227 290072 -;;;;;; 702000)) +;;;### (autoloads nil "descr-text" "descr-text.el" (22180 39318 274078 +;;;;;; 114000)) ;;; Generated autoloads from descr-text.el (autoload 'describe-text-properties "descr-text" "\ @@ -6078,8 +6082,8 @@ This function is meant to be used as a value of ;;;*** -;;;### (autoloads nil "desktop" "desktop.el" (22150 28227 294072 -;;;;;; 702000)) +;;;### (autoloads nil "desktop" "desktop.el" (22180 39318 274078 +;;;;;; 114000)) ;;; Generated autoloads from desktop.el (defvar desktop-save-mode nil "\ @@ -6236,12 +6240,30 @@ if different). (autoload 'desktop-save "desktop" "\ Save the desktop in a desktop file. Parameter DIRNAME specifies where to save the desktop file. -Optional parameter RELEASE says whether we're done with this desktop. -If ONLY-IF-CHANGED is non-nil, compare the current desktop information -to that in the desktop file, and if the desktop information has not -changed since it was last saved then do not rewrite the file. +Optional parameter RELEASE says whether we're done with this +desktop. If ONLY-IF-CHANGED is non-nil, compare the current +desktop information to that in the desktop file, and if the +desktop information has not changed since it was last saved then +do not rewrite the file. + +This function can save the desktop in either format version +208 (which only Emacs 25.1 and later can read) or version +206 (which is readable by any Emacs from version 22.1 onwards). +By default, it will use the same format the desktop file had when +it was last saved, or version 208 when writing a fresh desktop +file. -\(fn DIRNAME &optional RELEASE ONLY-IF-CHANGED)" t nil) +To upgrade a version 206 file to version 208, call this command +explicitly with a bare prefix argument: C-u M-x desktop-save. +You are recommended to do this once you have firmly upgraded to +Emacs 25.1 (or later). To downgrade a version 208 file to version +206, use a double command prefix: C-u C-u M-x desktop-save. +Confirmation will be requested in either case. In a non-interactive +call, VERSION can be given as an integer, either 206 or 208, which +will be accepted as the format version in which to save the file +without further confirmation. + +\(fn DIRNAME &optional RELEASE ONLY-IF-CHANGED VERSION)" t nil) (autoload 'desktop-remove "desktop" "\ Delete desktop file in `desktop-dirname'. @@ -6288,8 +6310,8 @@ Revert to the last loaded desktop. ;;;*** -;;;### (autoloads nil "deuglify" "gnus/deuglify.el" (22150 28227 -;;;;;; 658072 702000)) +;;;### (autoloads nil "deuglify" "gnus/deuglify.el" (22180 39318 +;;;;;; 327077 871000)) ;;; Generated autoloads from gnus/deuglify.el (autoload 'gnus-article-outlook-unwrap-lines "deuglify" "\ @@ -6321,8 +6343,8 @@ Deuglify broken Outlook (Express) articles and redisplay. ;;;*** -;;;### (autoloads nil "diary-lib" "calendar/diary-lib.el" (22150 -;;;;;; 28227 74072 702000)) +;;;### (autoloads nil "diary-lib" "calendar/diary-lib.el" (22180 +;;;;;; 39318 244078 252000)) ;;; Generated autoloads from calendar/diary-lib.el (autoload 'diary "diary-lib" "\ @@ -6364,7 +6386,7 @@ Major mode for editing the diary file. ;;;*** -;;;### (autoloads nil "diff" "vc/diff.el" (22150 28229 254072 702000)) +;;;### (autoloads nil "diff" "vc/diff.el" (22180 39318 548076 854000)) ;;; Generated autoloads from vc/diff.el (defvar diff-switches (purecopy "-u") "\ @@ -6412,8 +6434,8 @@ This requires the external program `diff' to be in your `exec-path'. ;;;*** -;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (22150 28229 -;;;;;; 250072 702000)) +;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (22180 39318 +;;;;;; 548076 854000)) ;;; Generated autoloads from vc/diff-mode.el (autoload 'diff-mode "diff-mode" "\ @@ -6445,7 +6467,7 @@ the mode if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "dig" "net/dig.el" (22150 28228 354072 702000)) +;;;### (autoloads nil "dig" "net/dig.el" (22180 39318 406077 507000)) ;;; Generated autoloads from net/dig.el (autoload 'dig "dig" "\ @@ -6456,7 +6478,7 @@ Optional arguments are passed to `dig-invoke'. ;;;*** -;;;### (autoloads nil "dired" "dired.el" (22150 28227 310072 702000)) +;;;### (autoloads nil "dired" "dired.el" (22180 50234 568884 829000)) ;;; Generated autoloads from dired.el (defvar dired-listing-switches (purecopy "-al") "\ @@ -6582,8 +6604,8 @@ Keybindings: ;;;*** -;;;### (autoloads nil "dirtrack" "dirtrack.el" (22150 28227 310072 -;;;;;; 702000)) +;;;### (autoloads nil "dirtrack" "dirtrack.el" (22180 39318 276078 +;;;;;; 105000)) ;;; Generated autoloads from dirtrack.el (autoload 'dirtrack-mode "dirtrack" "\ @@ -6613,8 +6635,8 @@ from `default-directory'. ;;;*** -;;;### (autoloads nil "disass" "emacs-lisp/disass.el" (22150 28227 -;;;;;; 398072 702000)) +;;;### (autoloads nil "disass" "emacs-lisp/disass.el" (22180 39318 +;;;;;; 285078 64000)) ;;; Generated autoloads from emacs-lisp/disass.el (autoload 'disassemble "disass" "\ @@ -6628,8 +6650,8 @@ redefine OBJECT if it is a symbol. ;;;*** -;;;### (autoloads nil "disp-table" "disp-table.el" (22150 28227 310072 -;;;;;; 702000)) +;;;### (autoloads nil "disp-table" "disp-table.el" (22180 39318 277078 +;;;;;; 101000)) ;;; Generated autoloads from disp-table.el (autoload 'make-display-table "disp-table" "\ @@ -6750,8 +6772,8 @@ in `.emacs'. ;;;*** -;;;### (autoloads nil "dissociate" "play/dissociate.el" (22150 28228 -;;;;;; 674072 702000)) +;;;### (autoloads nil "dissociate" "play/dissociate.el" (22180 39318 +;;;;;; 464077 241000)) ;;; Generated autoloads from play/dissociate.el (autoload 'dissociated-press "dissociate" "\ @@ -6767,7 +6789,7 @@ Default is 2. ;;;*** -;;;### (autoloads nil "dnd" "dnd.el" (22150 28227 314072 702000)) +;;;### (autoloads nil "dnd" "dnd.el" (22180 39318 277078 101000)) ;;; Generated autoloads from dnd.el (defvar dnd-protocol-alist `((,(purecopy "^file:///") . dnd-open-local-file) (,(purecopy "^file://") . dnd-open-file) (,(purecopy "^file:") . dnd-open-local-file) (,(purecopy "^\\(https?\\|ftp\\|file\\|nfs\\)://") . dnd-open-file)) "\ @@ -6787,8 +6809,8 @@ if some action was made, or nil if the URL is ignored.") ;;;*** -;;;### (autoloads nil "dns-mode" "textmodes/dns-mode.el" (22150 28229 -;;;;;; 98072 702000)) +;;;### (autoloads nil "dns-mode" "textmodes/dns-mode.el" (22180 39318 +;;;;;; 530076 937000)) ;;; Generated autoloads from textmodes/dns-mode.el (autoload 'dns-mode "dns-mode" "\ @@ -6811,8 +6833,8 @@ Locate SOA record and increment the serial field. ;;;*** -;;;### (autoloads nil "doc-view" "doc-view.el" (22150 28227 314072 -;;;;;; 702000)) +;;;### (autoloads nil "doc-view" "doc-view.el" (22180 39318 277078 +;;;;;; 101000)) ;;; Generated autoloads from doc-view.el (autoload 'doc-view-mode-p "doc-view" "\ @@ -6858,8 +6880,8 @@ See the command `doc-view-mode' for more information on this mode. ;;;*** -;;;### (autoloads nil "doctor" "play/doctor.el" (22150 28228 678072 -;;;;;; 702000)) +;;;### (autoloads nil "doctor" "play/doctor.el" (22180 39318 465077 +;;;;;; 236000)) ;;; Generated autoloads from play/doctor.el (autoload 'doctor "doctor" "\ @@ -6869,7 +6891,7 @@ Switch to *doctor* buffer and start giving psychotherapy. ;;;*** -;;;### (autoloads nil "double" "double.el" (22150 28227 318072 702000)) +;;;### (autoloads nil "double" "double.el" (22180 39318 277078 101000)) ;;; Generated autoloads from double.el (autoload 'double-mode "double" "\ @@ -6885,8 +6907,8 @@ strings when pressed twice. See `double-map' for details. ;;;*** -;;;### (autoloads nil "dunnet" "play/dunnet.el" (22150 28228 678072 -;;;;;; 702000)) +;;;### (autoloads nil "dunnet" "play/dunnet.el" (22180 39318 465077 +;;;;;; 236000)) ;;; Generated autoloads from play/dunnet.el (push (purecopy '(dunnet 2 2)) package--builtin-versions) @@ -6897,8 +6919,8 @@ Switch to *dungeon* buffer and start game. ;;;*** -;;;### (autoloads nil "easy-mmode" "emacs-lisp/easy-mmode.el" (22150 -;;;;;; 28227 398072 702000)) +;;;### (autoloads nil "easy-mmode" "emacs-lisp/easy-mmode.el" (22180 +;;;;;; 39318 285078 64000)) ;;; Generated autoloads from emacs-lisp/easy-mmode.el (defalias 'easy-mmode-define-minor-mode 'define-minor-mode) @@ -6975,8 +6997,6 @@ For example, you could write (function-put 'define-minor-mode 'doc-string-elt '2) -(function-put 'define-minor-mode 'lisp-indent-function '1) - (defalias 'easy-mmode-define-global-mode 'define-globalized-minor-mode) (defalias 'define-global-minor-mode 'define-globalized-minor-mode) @@ -7042,8 +7062,8 @@ CSS contains a list of syntax specifications of the form (CHAR . SYNTAX). ;;;*** -;;;### (autoloads nil "easymenu" "emacs-lisp/easymenu.el" (22150 -;;;;;; 28227 398072 702000)) +;;;### (autoloads nil "easymenu" "emacs-lisp/easymenu.el" (22180 +;;;;;; 39318 285078 64000)) ;;; Generated autoloads from emacs-lisp/easymenu.el (autoload 'easy-menu-define "easymenu" "\ @@ -7181,8 +7201,8 @@ To implement dynamic menus, either call this from ;;;*** -;;;### (autoloads nil "ebnf2ps" "progmodes/ebnf2ps.el" (22150 28228 -;;;;;; 814072 702000)) +;;;### (autoloads nil "ebnf2ps" "progmodes/ebnf2ps.el" (22180 39318 +;;;;;; 484077 149000)) ;;; Generated autoloads from progmodes/ebnf2ps.el (push (purecopy '(ebnf2ps 4 4)) package--builtin-versions) @@ -7447,8 +7467,8 @@ See `ebnf-style-database' documentation. ;;;*** -;;;### (autoloads nil "ebrowse" "progmodes/ebrowse.el" (22150 28228 -;;;;;; 814072 702000)) +;;;### (autoloads nil "ebrowse" "progmodes/ebrowse.el" (22180 39318 +;;;;;; 485077 144000)) ;;; Generated autoloads from progmodes/ebrowse.el (autoload 'ebrowse-tree-mode "ebrowse" "\ @@ -7596,8 +7616,8 @@ Display statistics for a class tree. ;;;*** -;;;### (autoloads nil "ebuff-menu" "ebuff-menu.el" (22150 28227 318072 -;;;;;; 702000)) +;;;### (autoloads nil "ebuff-menu" "ebuff-menu.el" (22180 39318 278078 +;;;;;; 96000)) ;;; Generated autoloads from ebuff-menu.el (autoload 'electric-buffer-list "ebuff-menu" "\ @@ -7629,8 +7649,8 @@ Run hooks in `electric-buffer-menu-mode-hook' on entry. ;;;*** -;;;### (autoloads nil "echistory" "echistory.el" (22150 28227 318072 -;;;;;; 702000)) +;;;### (autoloads nil "echistory" "echistory.el" (22180 39318 278078 +;;;;;; 96000)) ;;; Generated autoloads from echistory.el (autoload 'Electric-command-history-redo-expression "echistory" "\ @@ -7641,8 +7661,8 @@ With prefix arg NOCONFIRM, execute current line as-is without editing. ;;;*** -;;;### (autoloads nil "ecomplete" "gnus/ecomplete.el" (22150 28227 -;;;;;; 658072 702000)) +;;;### (autoloads nil "ecomplete" "gnus/ecomplete.el" (22180 39318 +;;;;;; 327077 871000)) ;;; Generated autoloads from gnus/ecomplete.el (autoload 'ecomplete-setup "ecomplete" "\ @@ -7652,7 +7672,7 @@ With prefix arg NOCONFIRM, execute current line as-is without editing. ;;;*** -;;;### (autoloads nil "ede" "cedet/ede.el" (22150 28227 202072 702000)) +;;;### (autoloads nil "ede" "cedet/ede.el" (22180 39318 249078 229000)) ;;; Generated autoloads from cedet/ede.el (push (purecopy '(ede 1 2)) package--builtin-versions) @@ -7678,8 +7698,8 @@ an EDE controlled project. ;;;*** -;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (22150 28227 -;;;;;; 406072 702000)) +;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (22180 39318 +;;;;;; 286078 59000)) ;;; Generated autoloads from emacs-lisp/edebug.el (defvar edebug-all-defs nil "\ @@ -7743,7 +7763,7 @@ Toggle edebugging of all forms. ;;;*** -;;;### (autoloads nil "ediff" "vc/ediff.el" (22150 28229 274072 702000)) +;;;### (autoloads nil "ediff" "vc/ediff.el" (22180 39318 551076 840000)) ;;; Generated autoloads from vc/ediff.el (push (purecopy '(ediff 2 81 4)) package--builtin-versions) @@ -8015,8 +8035,8 @@ With optional NODE, goes to that node. ;;;*** -;;;### (autoloads nil "ediff-help" "vc/ediff-help.el" (22150 28229 -;;;;;; 254072 702000)) +;;;### (autoloads nil "ediff-help" "vc/ediff-help.el" (22180 39318 +;;;;;; 548076 854000)) ;;; Generated autoloads from vc/ediff-help.el (autoload 'ediff-customize "ediff-help" "\ @@ -8026,8 +8046,8 @@ With optional NODE, goes to that node. ;;;*** -;;;### (autoloads nil "ediff-mult" "vc/ediff-mult.el" (22150 28229 -;;;;;; 262072 702000)) +;;;### (autoloads nil "ediff-mult" "vc/ediff-mult.el" (22180 39318 +;;;;;; 549076 850000)) ;;; Generated autoloads from vc/ediff-mult.el (autoload 'ediff-show-registry "ediff-mult" "\ @@ -8039,8 +8059,8 @@ Display Ediff's registry. ;;;*** -;;;### (autoloads nil "ediff-util" "vc/ediff-util.el" (22150 28229 -;;;;;; 270072 702000)) +;;;### (autoloads nil "ediff-util" "vc/ediff-util.el" (22180 39318 +;;;;;; 551076 840000)) ;;; Generated autoloads from vc/ediff-util.el (autoload 'ediff-toggle-multiframe "ediff-util" "\ @@ -8059,8 +8079,8 @@ To change the default, set the variable `ediff-use-toolbar-p', which see. ;;;*** -;;;### (autoloads nil "edmacro" "edmacro.el" (22150 28227 318072 -;;;;;; 702000)) +;;;### (autoloads nil "edmacro" "edmacro.el" (22180 39318 278078 +;;;;;; 96000)) ;;; Generated autoloads from edmacro.el (push (purecopy '(edmacro 2 1)) package--builtin-versions) @@ -8109,8 +8129,8 @@ or nil, use a compact 80-column format. ;;;*** -;;;### (autoloads nil "edt" "emulation/edt.el" (22150 28227 462072 -;;;;;; 702000)) +;;;### (autoloads nil "edt" "emulation/edt.el" (22180 39318 296078 +;;;;;; 13000)) ;;; Generated autoloads from emulation/edt.el (autoload 'edt-set-scroll-margins "edt" "\ @@ -8127,7 +8147,7 @@ Turn on EDT Emulation. ;;;*** -;;;### (autoloads nil "ehelp" "ehelp.el" (22150 28227 318072 702000)) +;;;### (autoloads nil "ehelp" "ehelp.el" (22180 39318 278078 96000)) ;;; Generated autoloads from ehelp.el (autoload 'with-electric-help "ehelp" "\ @@ -8163,15 +8183,15 @@ BUFFER is put back into its original major mode. ;;;*** -;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (22150 28227 -;;;;;; 422072 702000)) +;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (22180 39318 +;;;;;; 287078 55000)) ;;; Generated autoloads from emacs-lisp/eieio.el (push (purecopy '(eieio 1 4)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (22150 -;;;;;; 28227 418072 702000)) +;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (22180 +;;;;;; 39318 287078 55000)) ;;; Generated autoloads from emacs-lisp/eieio-core.el (push (purecopy '(eieio-core 1 4)) package--builtin-versions) @@ -8187,8 +8207,8 @@ It creates an autoload function for CNAME's constructor. ;;;*** -;;;### (autoloads nil "elec-pair" "elec-pair.el" (22150 28227 322072 -;;;;;; 702000)) +;;;### (autoloads nil "elec-pair" "elec-pair.el" (22180 39318 278078 +;;;;;; 96000)) ;;; Generated autoloads from elec-pair.el (defvar electric-pair-text-pairs '((34 . 34)) "\ @@ -8229,8 +8249,8 @@ Toggle `electric-pair-mode' only in this buffer. ;;;*** -;;;### (autoloads nil "elide-head" "elide-head.el" (22150 28227 322072 -;;;;;; 702000)) +;;;### (autoloads nil "elide-head" "elide-head.el" (22180 39318 278078 +;;;;;; 96000)) ;;; Generated autoloads from elide-head.el (autoload 'elide-head "elide-head" "\ @@ -8245,8 +8265,8 @@ This is suitable as an entry on `find-file-hook' or appropriate mode hooks. ;;;*** -;;;### (autoloads nil "elint" "emacs-lisp/elint.el" (22150 28227 -;;;;;; 422072 702000)) +;;;### (autoloads nil "elint" "emacs-lisp/elint.el" (22180 39318 +;;;;;; 288078 50000)) ;;; Generated autoloads from emacs-lisp/elint.el (autoload 'elint-file "elint" "\ @@ -8281,8 +8301,8 @@ optional prefix argument REINIT is non-nil. ;;;*** -;;;### (autoloads nil "elp" "emacs-lisp/elp.el" (22150 28227 422072 -;;;;;; 702000)) +;;;### (autoloads nil "elp" "emacs-lisp/elp.el" (22180 39318 288078 +;;;;;; 50000)) ;;; Generated autoloads from emacs-lisp/elp.el (autoload 'elp-instrument-function "elp" "\ @@ -8316,8 +8336,8 @@ displayed. ;;;*** -;;;### (autoloads nil "emacs-lock" "emacs-lock.el" (22150 28227 458072 -;;;;;; 702000)) +;;;### (autoloads nil "emacs-lock" "emacs-lock.el" (22180 39318 295078 +;;;;;; 18000)) ;;; Generated autoloads from emacs-lock.el (autoload 'emacs-lock-mode "emacs-lock" "\ @@ -8344,8 +8364,8 @@ Other values are interpreted as usual. ;;;*** -;;;### (autoloads nil "emacsbug" "mail/emacsbug.el" (22150 28228 -;;;;;; 226072 702000)) +;;;### (autoloads nil "emacsbug" "mail/emacsbug.el" (22180 39318 +;;;;;; 386077 599000)) ;;; Generated autoloads from mail/emacsbug.el (autoload 'report-emacs-bug "emacsbug" "\ @@ -8358,8 +8378,8 @@ Prompts for bug subject. Leaves you in a mail buffer. ;;;*** -;;;### (autoloads nil "emerge" "vc/emerge.el" (22086 11930 378062 -;;;;;; 731000)) +;;;### (autoloads nil "emerge" "vc/emerge.el" (22122 65326 207714 +;;;;;; 983000)) ;;; Generated autoloads from vc/emerge.el (autoload 'emerge-files "emerge" "\ @@ -8419,8 +8439,8 @@ Emerge two RCS revisions of a file, with another revision as ancestor. ;;;*** -;;;### (autoloads nil "enriched" "textmodes/enriched.el" (22150 28229 -;;;;;; 98072 702000)) +;;;### (autoloads nil "enriched" "textmodes/enriched.el" (22180 39318 +;;;;;; 530076 937000)) ;;; Generated autoloads from textmodes/enriched.el (autoload 'enriched-mode "enriched" "\ @@ -8455,7 +8475,7 @@ Commands: ;;;*** -;;;### (autoloads nil "epa" "epa.el" (22150 28227 482072 702000)) +;;;### (autoloads nil "epa" "epa.el" (22180 39318 299077 999000)) ;;; Generated autoloads from epa.el (autoload 'epa-list-keys "epa" "\ @@ -8643,8 +8663,8 @@ Insert selected KEYS after the point. ;;;*** -;;;### (autoloads nil "epa-dired" "epa-dired.el" (22150 28227 478072 -;;;;;; 702000)) +;;;### (autoloads nil "epa-dired" "epa-dired.el" (22180 39318 299077 +;;;;;; 999000)) ;;; Generated autoloads from epa-dired.el (autoload 'epa-dired-do-decrypt "epa-dired" "\ @@ -8669,8 +8689,8 @@ Encrypt marked files. ;;;*** -;;;### (autoloads nil "epa-file" "epa-file.el" (22150 28227 482072 -;;;;;; 702000)) +;;;### (autoloads nil "epa-file" "epa-file.el" (22180 39318 299077 +;;;;;; 999000)) ;;; Generated autoloads from epa-file.el (autoload 'epa-file-handler "epa-file" "\ @@ -8690,8 +8710,8 @@ Encrypt marked files. ;;;*** -;;;### (autoloads nil "epa-mail" "epa-mail.el" (22150 28227 482072 -;;;;;; 702000)) +;;;### (autoloads nil "epa-mail" "epa-mail.el" (22180 39318 299077 +;;;;;; 999000)) ;;; Generated autoloads from epa-mail.el (autoload 'epa-mail-mode "epa-mail" "\ @@ -8768,7 +8788,7 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "epg" "epg.el" (22150 28227 482072 702000)) +;;;### (autoloads nil "epg" "epg.el" (22180 39318 300077 995000)) ;;; Generated autoloads from epg.el (push (purecopy '(epg 1 0 0)) package--builtin-versions) @@ -8779,8 +8799,8 @@ Return a context object. ;;;*** -;;;### (autoloads nil "epg-config" "epg-config.el" (22150 28227 482072 -;;;;;; 702000)) +;;;### (autoloads nil "epg-config" "epg-config.el" (22180 39318 299077 +;;;;;; 999000)) ;;; Generated autoloads from epg-config.el (autoload 'epg-configuration "epg-config" "\ @@ -8800,7 +8820,7 @@ Look at CONFIG and try to expand GROUP. ;;;*** -;;;### (autoloads nil "erc" "erc/erc.el" (22150 28227 526072 702000)) +;;;### (autoloads nil "erc" "erc/erc.el" (22180 39318 306077 967000)) ;;; Generated autoloads from erc/erc.el (push (purecopy '(erc 5 3)) package--builtin-versions) @@ -8849,36 +8869,36 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL. ;;;*** -;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (22150 -;;;;;; 28227 506072 702000)) +;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (22180 +;;;;;; 39318 302077 986000)) ;;; Generated autoloads from erc/erc-autoaway.el (autoload 'erc-autoaway-mode "erc-autoaway") ;;;*** -;;;### (autoloads nil "erc-button" "erc/erc-button.el" (22150 28227 -;;;;;; 506072 702000)) +;;;### (autoloads nil "erc-button" "erc/erc-button.el" (22180 39318 +;;;;;; 302077 986000)) ;;; Generated autoloads from erc/erc-button.el (autoload 'erc-button-mode "erc-button" nil t) ;;;*** -;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (22150 28227 -;;;;;; 510072 702000)) +;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (22180 39318 +;;;;;; 302077 986000)) ;;; Generated autoloads from erc/erc-capab.el (autoload 'erc-capab-identify-mode "erc-capab" nil t) ;;;*** -;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (22150 28227 -;;;;;; 510072 702000)) +;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (22180 39318 +;;;;;; 302077 986000)) ;;; Generated autoloads from erc/erc-compat.el (autoload 'erc-define-minor-mode "erc-compat") ;;;*** -;;;### (autoloads nil "erc-dcc" "erc/erc-dcc.el" (22150 28227 510072 -;;;;;; 702000)) +;;;### (autoloads nil "erc-dcc" "erc/erc-dcc.el" (22180 39318 303077 +;;;;;; 981000)) ;;; Generated autoloads from erc/erc-dcc.el (autoload 'erc-dcc-mode "erc-dcc") @@ -8908,14 +8928,14 @@ that subcommand. ;;;*** ;;;### (autoloads nil "erc-desktop-notifications" "erc/erc-desktop-notifications.el" -;;;;;; (22150 28227 510072 702000)) +;;;;;; (22180 39318 303077 981000)) ;;; Generated autoloads from erc/erc-desktop-notifications.el (autoload 'erc-notifications-mode "erc-desktop-notifications" "" t) ;;;*** -;;;### (autoloads nil "erc-ezbounce" "erc/erc-ezbounce.el" (22150 -;;;;;; 28227 510072 702000)) +;;;### (autoloads nil "erc-ezbounce" "erc/erc-ezbounce.el" (22180 +;;;;;; 39318 303077 981000)) ;;; Generated autoloads from erc/erc-ezbounce.el (autoload 'erc-cmd-ezb "erc-ezbounce" "\ @@ -8977,8 +8997,8 @@ Add EZBouncer convenience functions to ERC. ;;;*** -;;;### (autoloads nil "erc-fill" "erc/erc-fill.el" (22150 28227 510072 -;;;;;; 702000)) +;;;### (autoloads nil "erc-fill" "erc/erc-fill.el" (22180 39318 303077 +;;;;;; 981000)) ;;; Generated autoloads from erc/erc-fill.el (autoload 'erc-fill-mode "erc-fill" nil t) @@ -8990,8 +9010,8 @@ You can put this on `erc-insert-modify-hook' and/or `erc-send-modify-hook'. ;;;*** -;;;### (autoloads nil "erc-identd" "erc/erc-identd.el" (22150 28227 -;;;;;; 510072 702000)) +;;;### (autoloads nil "erc-identd" "erc/erc-identd.el" (22180 39318 +;;;;;; 303077 981000)) ;;; Generated autoloads from erc/erc-identd.el (autoload 'erc-identd-mode "erc-identd") @@ -9012,8 +9032,8 @@ system. ;;;*** -;;;### (autoloads nil "erc-imenu" "erc/erc-imenu.el" (22150 28227 -;;;;;; 514072 702000)) +;;;### (autoloads nil "erc-imenu" "erc/erc-imenu.el" (22180 39318 +;;;;;; 303077 981000)) ;;; Generated autoloads from erc/erc-imenu.el (autoload 'erc-create-imenu-index "erc-imenu" "\ @@ -9023,22 +9043,22 @@ system. ;;;*** -;;;### (autoloads nil "erc-join" "erc/erc-join.el" (22150 28227 514072 -;;;;;; 702000)) +;;;### (autoloads nil "erc-join" "erc/erc-join.el" (22180 39318 303077 +;;;;;; 981000)) ;;; Generated autoloads from erc/erc-join.el (autoload 'erc-autojoin-mode "erc-join" nil t) ;;;*** -;;;### (autoloads nil "erc-list" "erc/erc-list.el" (22150 28227 514072 -;;;;;; 702000)) +;;;### (autoloads nil "erc-list" "erc/erc-list.el" (22180 39318 303077 +;;;;;; 981000)) ;;; Generated autoloads from erc/erc-list.el (autoload 'erc-list-mode "erc-list") ;;;*** -;;;### (autoloads nil "erc-log" "erc/erc-log.el" (22150 28227 514072 -;;;;;; 702000)) +;;;### (autoloads nil "erc-log" "erc/erc-log.el" (22180 39318 304077 +;;;;;; 977000)) ;;; Generated autoloads from erc/erc-log.el (autoload 'erc-log-mode "erc-log" nil t) @@ -9067,8 +9087,8 @@ You can save every individual message by putting this function on ;;;*** -;;;### (autoloads nil "erc-match" "erc/erc-match.el" (22150 28227 -;;;;;; 514072 702000)) +;;;### (autoloads nil "erc-match" "erc/erc-match.el" (22180 39318 +;;;;;; 304077 977000)) ;;; Generated autoloads from erc/erc-match.el (autoload 'erc-match-mode "erc-match") @@ -9114,15 +9134,15 @@ Delete dangerous-host interactively to `erc-dangerous-hosts'. ;;;*** -;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (22150 28227 514072 -;;;;;; 702000)) +;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (22180 39318 304077 +;;;;;; 977000)) ;;; Generated autoloads from erc/erc-menu.el (autoload 'erc-menu-mode "erc-menu" nil t) ;;;*** -;;;### (autoloads nil "erc-netsplit" "erc/erc-netsplit.el" (22150 -;;;;;; 28227 514072 702000)) +;;;### (autoloads nil "erc-netsplit" "erc/erc-netsplit.el" (22180 +;;;;;; 39318 304077 977000)) ;;; Generated autoloads from erc/erc-netsplit.el (autoload 'erc-netsplit-mode "erc-netsplit") @@ -9133,8 +9153,8 @@ Show who's gone. ;;;*** -;;;### (autoloads nil "erc-networks" "erc/erc-networks.el" (22150 -;;;;;; 28227 518072 702000)) +;;;### (autoloads nil "erc-networks" "erc/erc-networks.el" (22180 +;;;;;; 39318 304077 977000)) ;;; Generated autoloads from erc/erc-networks.el (autoload 'erc-determine-network "erc-networks" "\ @@ -9151,8 +9171,8 @@ Interactively select a server to connect to using `erc-server-alist'. ;;;*** -;;;### (autoloads nil "erc-notify" "erc/erc-notify.el" (22150 28227 -;;;;;; 518072 702000)) +;;;### (autoloads nil "erc-notify" "erc/erc-notify.el" (22180 39318 +;;;;;; 304077 977000)) ;;; Generated autoloads from erc/erc-notify.el (autoload 'erc-notify-mode "erc-notify" nil t) @@ -9170,36 +9190,36 @@ with args, toggle notify status of people. ;;;*** -;;;### (autoloads nil "erc-page" "erc/erc-page.el" (22150 28227 518072 -;;;;;; 702000)) +;;;### (autoloads nil "erc-page" "erc/erc-page.el" (22180 39318 304077 +;;;;;; 977000)) ;;; Generated autoloads from erc/erc-page.el (autoload 'erc-page-mode "erc-page") ;;;*** -;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (22150 -;;;;;; 28227 518072 702000)) +;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (22180 +;;;;;; 39318 304077 977000)) ;;; Generated autoloads from erc/erc-pcomplete.el (autoload 'erc-completion-mode "erc-pcomplete" nil t) ;;;*** -;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (22150 28227 -;;;;;; 518072 702000)) +;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (22180 39318 +;;;;;; 304077 977000)) ;;; Generated autoloads from erc/erc-replace.el (autoload 'erc-replace-mode "erc-replace") ;;;*** -;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (22150 28227 518072 -;;;;;; 702000)) +;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (22180 39318 304077 +;;;;;; 977000)) ;;; Generated autoloads from erc/erc-ring.el (autoload 'erc-ring-mode "erc-ring" nil t) ;;;*** -;;;### (autoloads nil "erc-services" "erc/erc-services.el" (22150 -;;;;;; 28227 518072 702000)) +;;;### (autoloads nil "erc-services" "erc/erc-services.el" (22180 +;;;;;; 39318 305077 972000)) ;;; Generated autoloads from erc/erc-services.el (autoload 'erc-services-mode "erc-services" nil t) @@ -9216,15 +9236,15 @@ When called interactively, read the password using `read-passwd'. ;;;*** -;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (22150 28227 -;;;;;; 518072 702000)) +;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (22180 39318 +;;;;;; 305077 972000)) ;;; Generated autoloads from erc/erc-sound.el (autoload 'erc-sound-mode "erc-sound") ;;;*** -;;;### (autoloads nil "erc-speedbar" "erc/erc-speedbar.el" (22150 -;;;;;; 28227 518072 702000)) +;;;### (autoloads nil "erc-speedbar" "erc/erc-speedbar.el" (22180 +;;;;;; 39318 305077 972000)) ;;; Generated autoloads from erc/erc-speedbar.el (autoload 'erc-speedbar-browser "erc-speedbar" "\ @@ -9235,22 +9255,22 @@ This will add a speedbar major display mode. ;;;*** -;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (22150 -;;;;;; 28227 518072 702000)) +;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (22180 +;;;;;; 39318 305077 972000)) ;;; Generated autoloads from erc/erc-spelling.el (autoload 'erc-spelling-mode "erc-spelling" nil t) ;;;*** -;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (22150 28227 -;;;;;; 518072 702000)) +;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (22180 39318 +;;;;;; 305077 972000)) ;;; Generated autoloads from erc/erc-stamp.el (autoload 'erc-timestamp-mode "erc-stamp" nil t) ;;;*** -;;;### (autoloads nil "erc-track" "erc/erc-track.el" (22150 28227 -;;;;;; 522072 702000)) +;;;### (autoloads nil "erc-track" "erc/erc-track.el" (22180 39318 +;;;;;; 305077 972000)) ;;; Generated autoloads from erc/erc-track.el (defvar erc-track-minor-mode nil "\ @@ -9275,8 +9295,8 @@ keybindings will not do anything useful. ;;;*** -;;;### (autoloads nil "erc-truncate" "erc/erc-truncate.el" (22150 -;;;;;; 28227 522072 702000)) +;;;### (autoloads nil "erc-truncate" "erc/erc-truncate.el" (22180 +;;;;;; 39318 305077 972000)) ;;; Generated autoloads from erc/erc-truncate.el (autoload 'erc-truncate-mode "erc-truncate" nil t) @@ -9295,8 +9315,8 @@ Meant to be used in hooks, like `erc-insert-post-hook'. ;;;*** -;;;### (autoloads nil "erc-xdcc" "erc/erc-xdcc.el" (22150 28227 522072 -;;;;;; 702000)) +;;;### (autoloads nil "erc-xdcc" "erc/erc-xdcc.el" (22180 39318 305077 +;;;;;; 972000)) ;;; Generated autoloads from erc/erc-xdcc.el (autoload 'erc-xdcc-mode "erc-xdcc") @@ -9307,8 +9327,8 @@ Add a file to `erc-xdcc-files'. ;;;*** -;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (22150 28227 426072 -;;;;;; 702000)) +;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (22183 58408 668002 +;;;;;; 30000)) ;;; Generated autoloads from emacs-lisp/ert.el (autoload 'ert-deftest "ert" "\ @@ -9377,8 +9397,8 @@ Display the documentation for TEST-OR-TEST-NAME (a symbol or ert-test). ;;;*** -;;;### (autoloads nil "ert-x" "emacs-lisp/ert-x.el" (22150 28227 -;;;;;; 426072 702000)) +;;;### (autoloads nil "ert-x" "emacs-lisp/ert-x.el" (22180 39318 +;;;;;; 288078 50000)) ;;; Generated autoloads from emacs-lisp/ert-x.el (put 'ert-with-test-buffer 'lisp-indent-function 1) @@ -9390,8 +9410,8 @@ Kill all test buffers that are still live. ;;;*** -;;;### (autoloads nil "esh-mode" "eshell/esh-mode.el" (22150 28227 -;;;;;; 542072 702000)) +;;;### (autoloads nil "esh-mode" "eshell/esh-mode.el" (22180 39318 +;;;;;; 309077 954000)) ;;; Generated autoloads from eshell/esh-mode.el (autoload 'eshell-mode "esh-mode" "\ @@ -9401,8 +9421,8 @@ Emacs shell interactive mode. ;;;*** -;;;### (autoloads nil "eshell" "eshell/eshell.el" (22150 28227 542072 -;;;;;; 702000)) +;;;### (autoloads nil "eshell" "eshell/eshell.el" (22180 39318 310077 +;;;;;; 949000)) ;;; Generated autoloads from eshell/eshell.el (push (purecopy '(eshell 2 4 2)) package--builtin-versions) @@ -9437,8 +9457,8 @@ corresponding to a successful execution. ;;;*** -;;;### (autoloads nil "etags" "progmodes/etags.el" (22150 28228 818072 -;;;;;; 702000)) +;;;### (autoloads nil "etags" "progmodes/etags.el" (22183 58408 698001 +;;;;;; 792000)) ;;; Generated autoloads from progmodes/etags.el (defvar tags-file-name nil "\ @@ -9687,8 +9707,6 @@ nil, we exit; otherwise we scan the next file. \(fn &optional FIRST-TIME)" t nil) -(make-obsolete 'tags-loop-continue '"use `xref-find-definitions' interface instead." '"25.1") - (autoload 'tags-search "etags" "\ Search through all files listed in tags table for match for REGEXP. Stops when a match is found. @@ -9755,8 +9773,8 @@ for \\[find-tag] (which see). ;;;*** -;;;### (autoloads nil "ethio-util" "language/ethio-util.el" (22150 -;;;;;; 28228 166072 702000)) +;;;### (autoloads nil "ethio-util" "language/ethio-util.el" (22180 +;;;;;; 39318 371077 668000)) ;;; Generated autoloads from language/ethio-util.el (autoload 'setup-ethiopic-environment-internal "ethio-util" "\ @@ -9924,7 +9942,7 @@ With ARG, insert that many delimiters. ;;;*** -;;;### (autoloads nil "eudc" "net/eudc.el" (22150 28228 354072 702000)) +;;;### (autoloads nil "eudc" "net/eudc.el" (22180 39318 407077 503000)) ;;; Generated autoloads from net/eudc.el (autoload 'eudc-set-server "eudc" "\ @@ -9978,8 +9996,8 @@ This does nothing except loading eudc by autoload side-effect. ;;;*** -;;;### (autoloads nil "eudc-bob" "net/eudc-bob.el" (22150 28228 354072 -;;;;;; 702000)) +;;;### (autoloads nil "eudc-bob" "net/eudc-bob.el" (22180 39318 406077 +;;;;;; 507000)) ;;; Generated autoloads from net/eudc-bob.el (autoload 'eudc-display-generic-binary "eudc-bob" "\ @@ -10014,8 +10032,8 @@ Display a button for the JPEG DATA. ;;;*** -;;;### (autoloads nil "eudc-export" "net/eudc-export.el" (22150 28228 -;;;;;; 354072 702000)) +;;;### (autoloads nil "eudc-export" "net/eudc-export.el" (22180 39318 +;;;;;; 407077 503000)) ;;; Generated autoloads from net/eudc-export.el (autoload 'eudc-insert-record-at-point-into-bbdb "eudc-export" "\ @@ -10031,8 +10049,8 @@ Call `eudc-insert-record-at-point-into-bbdb' if on a record. ;;;*** -;;;### (autoloads nil "eudc-hotlist" "net/eudc-hotlist.el" (22150 -;;;;;; 28228 354072 702000)) +;;;### (autoloads nil "eudc-hotlist" "net/eudc-hotlist.el" (22180 +;;;;;; 39318 407077 503000)) ;;; Generated autoloads from net/eudc-hotlist.el (autoload 'eudc-edit-hotlist "eudc-hotlist" "\ @@ -10042,8 +10060,8 @@ Edit the hotlist of directory servers in a specialized buffer. ;;;*** -;;;### (autoloads nil "ewoc" "emacs-lisp/ewoc.el" (22150 28227 430072 -;;;;;; 702000)) +;;;### (autoloads nil "ewoc" "emacs-lisp/ewoc.el" (22180 39318 288078 +;;;;;; 50000)) ;;; Generated autoloads from emacs-lisp/ewoc.el (autoload 'ewoc-create "ewoc" "\ @@ -10069,7 +10087,7 @@ fourth arg NOSEP non-nil inhibits this. ;;;*** -;;;### (autoloads nil "eww" "net/eww.el" (22150 28228 358072 702000)) +;;;### (autoloads nil "eww" "net/eww.el" (22183 58408 681001 927000)) ;;; Generated autoloads from net/eww.el (defvar eww-suggest-uris '(eww-links-at-point url-get-url-at-point eww-current-url) "\ @@ -10116,8 +10134,8 @@ Display the bookmarks. ;;;*** -;;;### (autoloads nil "executable" "progmodes/executable.el" (22150 -;;;;;; 28228 818072 702000)) +;;;### (autoloads nil "executable" "progmodes/executable.el" (22180 +;;;;;; 39318 486077 140000)) ;;; Generated autoloads from progmodes/executable.el (autoload 'executable-command-find-posix-p "executable" "\ @@ -10152,7 +10170,7 @@ file modes. ;;;*** -;;;### (autoloads nil "expand" "expand.el" (22150 28227 542072 702000)) +;;;### (autoloads nil "expand" "expand.el" (22180 39318 310077 949000)) ;;; Generated autoloads from expand.el (autoload 'expand-add-abbrevs "expand" "\ @@ -10201,8 +10219,8 @@ This is used only in conjunction with `expand-add-abbrevs'. ;;;*** -;;;### (autoloads nil "f90" "progmodes/f90.el" (22150 28228 818072 -;;;;;; 702000)) +;;;### (autoloads nil "f90" "progmodes/f90.el" (22180 39318 486077 +;;;;;; 140000)) ;;; Generated autoloads from progmodes/f90.el (autoload 'f90-mode "f90" "\ @@ -10269,8 +10287,8 @@ with no args, if that value is non-nil. ;;;*** -;;;### (autoloads nil "face-remap" "face-remap.el" (22150 28227 542072 -;;;;;; 702000)) +;;;### (autoloads nil "face-remap" "face-remap.el" (22180 39318 310077 +;;;;;; 949000)) ;;; Generated autoloads from face-remap.el (autoload 'face-remap-add-relative "face-remap" "\ @@ -10429,8 +10447,8 @@ Besides the choice of face, it is the same as `buffer-face-mode'. ;;;*** -;;;### (autoloads nil "feedmail" "mail/feedmail.el" (22092 27717 -;;;;;; 880268 464000)) +;;;### (autoloads nil "feedmail" "mail/feedmail.el" (22180 38481 +;;;;;; 458895 498000)) ;;; Generated autoloads from mail/feedmail.el (push (purecopy '(feedmail 11)) package--builtin-versions) @@ -10484,7 +10502,7 @@ you can set `feedmail-queue-reminder-alist' to nil. ;;;*** -;;;### (autoloads nil "ffap" "ffap.el" (22150 28227 554072 702000)) +;;;### (autoloads nil "ffap" "ffap.el" (22180 39318 311077 944000)) ;;; Generated autoloads from ffap.el (autoload 'ffap-next "ffap" "\ @@ -10547,8 +10565,8 @@ Evaluate the forms in variable `ffap-bindings'. ;;;*** -;;;### (autoloads nil "filecache" "filecache.el" (22150 28227 554072 -;;;;;; 702000)) +;;;### (autoloads nil "filecache" "filecache.el" (22180 39318 311077 +;;;;;; 944000)) ;;; Generated autoloads from filecache.el (autoload 'file-cache-add-directory "filecache" "\ @@ -10605,8 +10623,8 @@ the name is considered already unique; only the second substitution ;;;*** -;;;### (autoloads nil "filenotify" "filenotify.el" (22150 28227 554072 -;;;;;; 702000)) +;;;### (autoloads nil "filenotify" "filenotify.el" (22180 39318 311077 +;;;;;; 944000)) ;;; Generated autoloads from filenotify.el (autoload 'file-notify-handle-event "filenotify" "\ @@ -10621,8 +10639,8 @@ Otherwise, signal a `file-notify-error'. ;;;*** -;;;### (autoloads nil "files-x" "files-x.el" (22150 28227 554072 -;;;;;; 702000)) +;;;### (autoloads nil "files-x" "files-x.el" (22183 58408 668002 +;;;;;; 30000)) ;;; Generated autoloads from files-x.el (autoload 'add-file-local-variable "files-x" "\ @@ -10687,8 +10705,8 @@ Copy directory-local variables to the -*- line. ;;;*** -;;;### (autoloads nil "filesets" "filesets.el" (22150 28227 578072 -;;;;;; 702000)) +;;;### (autoloads nil "filesets" "filesets.el" (22180 39318 313077 +;;;;;; 935000)) ;;; Generated autoloads from filesets.el (autoload 'filesets-init "filesets" "\ @@ -10699,8 +10717,8 @@ Set up hooks, load the cache file -- if existing -- and build the menu. ;;;*** -;;;### (autoloads nil "find-cmd" "find-cmd.el" (22150 28227 578072 -;;;;;; 702000)) +;;;### (autoloads nil "find-cmd" "find-cmd.el" (22180 39318 314077 +;;;;;; 930000)) ;;; Generated autoloads from find-cmd.el (push (purecopy '(find-cmd 0 6)) package--builtin-versions) @@ -10720,8 +10738,8 @@ result is a string that should be ready for the command line. ;;;*** -;;;### (autoloads nil "find-dired" "find-dired.el" (22150 28227 578072 -;;;;;; 702000)) +;;;### (autoloads nil "find-dired" "find-dired.el" (22180 39318 314077 +;;;;;; 930000)) ;;; Generated autoloads from find-dired.el (autoload 'find-dired "find-dired" "\ @@ -10761,8 +10779,8 @@ use in place of \"-ls\" as the final argument. ;;;*** -;;;### (autoloads nil "find-file" "find-file.el" (22150 28227 578072 -;;;;;; 702000)) +;;;### (autoloads nil "find-file" "find-file.el" (22180 39318 314077 +;;;;;; 930000)) ;;; Generated autoloads from find-file.el (defvar ff-special-constructs `((,(purecopy "^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]") lambda nil (buffer-substring (match-beginning 2) (match-end 2)))) "\ @@ -10852,8 +10870,8 @@ Visit the file you click on in another window. ;;;*** -;;;### (autoloads nil "find-func" "emacs-lisp/find-func.el" (22150 -;;;;;; 28227 430072 702000)) +;;;### (autoloads nil "find-func" "emacs-lisp/find-func.el" (22180 +;;;;;; 39318 289078 46000)) ;;; Generated autoloads from emacs-lisp/find-func.el (autoload 'find-library "find-func" "\ @@ -11023,8 +11041,8 @@ Define some key bindings for the find-function family of functions. ;;;*** -;;;### (autoloads nil "find-lisp" "find-lisp.el" (22150 28227 578072 -;;;;;; 702000)) +;;;### (autoloads nil "find-lisp" "find-lisp.el" (22180 39318 314077 +;;;;;; 930000)) ;;; Generated autoloads from find-lisp.el (autoload 'find-lisp-find-dired "find-lisp" "\ @@ -11044,7 +11062,7 @@ Change the filter on a `find-lisp-find-dired' buffer to REGEXP. ;;;*** -;;;### (autoloads nil "finder" "finder.el" (22150 28227 578072 702000)) +;;;### (autoloads nil "finder" "finder.el" (22180 39318 314077 930000)) ;;; Generated autoloads from finder.el (push (purecopy '(finder 1 0)) package--builtin-versions) @@ -11066,8 +11084,8 @@ Find packages matching a given keyword. ;;;*** -;;;### (autoloads nil "flow-ctrl" "flow-ctrl.el" (22150 28227 578072 -;;;;;; 702000)) +;;;### (autoloads nil "flow-ctrl" "flow-ctrl.el" (22180 39318 314077 +;;;;;; 930000)) ;;; Generated autoloads from flow-ctrl.el (autoload 'enable-flow-control "flow-ctrl" "\ @@ -11088,8 +11106,8 @@ to get the effect of a C-q. ;;;*** -;;;### (autoloads nil "flow-fill" "gnus/flow-fill.el" (22150 28227 -;;;;;; 658072 702000)) +;;;### (autoloads nil "flow-fill" "gnus/flow-fill.el" (22180 39318 +;;;;;; 327077 871000)) ;;; Generated autoloads from gnus/flow-fill.el (autoload 'fill-flowed-encode "flow-fill" "\ @@ -11104,8 +11122,8 @@ to get the effect of a C-q. ;;;*** -;;;### (autoloads nil "flymake" "progmodes/flymake.el" (22150 28228 -;;;;;; 818072 702000)) +;;;### (autoloads nil "flymake" "progmodes/flymake.el" (22180 39318 +;;;;;; 487077 135000)) ;;; Generated autoloads from progmodes/flymake.el (push (purecopy '(flymake 0 3)) package--builtin-versions) @@ -11135,8 +11153,8 @@ Turn flymake mode off. ;;;*** -;;;### (autoloads nil "flyspell" "textmodes/flyspell.el" (22150 28229 -;;;;;; 102072 702000)) +;;;### (autoloads nil "flyspell" "textmodes/flyspell.el" (22183 58408 +;;;;;; 704001 744000)) ;;; Generated autoloads from textmodes/flyspell.el (autoload 'flyspell-prog-mode "flyspell" "\ @@ -11206,14 +11224,14 @@ Flyspell whole buffer. ;;;*** -;;;### (autoloads nil "foldout" "foldout.el" (22150 28227 582072 -;;;;;; 702000)) +;;;### (autoloads nil "foldout" "foldout.el" (22180 39318 314077 +;;;;;; 930000)) ;;; Generated autoloads from foldout.el (push (purecopy '(foldout 1 10)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "follow" "follow.el" (22150 28227 582072 702000)) +;;;### (autoloads nil "follow" "follow.el" (22180 39318 315077 926000)) ;;; Generated autoloads from follow.el (autoload 'turn-on-follow-mode "follow" "\ @@ -11307,8 +11325,8 @@ selected if the original window is the first one in the frame. ;;;*** -;;;### (autoloads nil "footnote" "mail/footnote.el" (22150 28228 -;;;;;; 226072 702000)) +;;;### (autoloads nil "footnote" "mail/footnote.el" (22180 39318 +;;;;;; 386077 599000)) ;;; Generated autoloads from mail/footnote.el (push (purecopy '(footnote 0 19)) package--builtin-versions) @@ -11327,7 +11345,7 @@ play around with the following keys: ;;;*** -;;;### (autoloads nil "forms" "forms.el" (22150 28227 586072 702000)) +;;;### (autoloads nil "forms" "forms.el" (22180 39318 316077 921000)) ;;; Generated autoloads from forms.el (autoload 'forms-mode "forms" "\ @@ -11363,8 +11381,8 @@ Visit a file in Forms mode in other window. ;;;*** -;;;### (autoloads nil "fortran" "progmodes/fortran.el" (22150 28228 -;;;;;; 822072 702000)) +;;;### (autoloads nil "fortran" "progmodes/fortran.el" (22180 39318 +;;;;;; 487077 135000)) ;;; Generated autoloads from progmodes/fortran.el (autoload 'fortran-mode "fortran" "\ @@ -11441,8 +11459,8 @@ with no args, if that value is non-nil. ;;;*** -;;;### (autoloads nil "fortune" "play/fortune.el" (22150 28228 678072 -;;;;;; 702000)) +;;;### (autoloads nil "fortune" "play/fortune.el" (22180 39318 465077 +;;;;;; 236000)) ;;; Generated autoloads from play/fortune.el (autoload 'fortune-add-fortune "fortune" "\ @@ -11490,8 +11508,8 @@ and choose the directory as the fortune-file. ;;;*** -;;;### (autoloads nil "frameset" "frameset.el" (22150 28227 622072 -;;;;;; 702000)) +;;;### (autoloads nil "frameset" "frameset.el" (22183 58408 671002 +;;;;;; 6000)) ;;; Generated autoloads from frameset.el (defvar frameset-session-filter-alist '((name . :never) (left . frameset-filter-iconified) (minibuffer . frameset-filter-minibuffer) (top . frameset-filter-iconified)) "\ @@ -11677,15 +11695,15 @@ Interactively, reads the register using `register-read-with-preview'. ;;;*** -;;;### (autoloads nil "gamegrid" "play/gamegrid.el" (22150 28228 -;;;;;; 678072 702000)) +;;;### (autoloads nil "gamegrid" "play/gamegrid.el" (22183 58408 +;;;;;; 695001 816000)) ;;; Generated autoloads from play/gamegrid.el (push (purecopy '(gamegrid 1 2)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (22150 28228 -;;;;;; 822072 702000)) +;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (22180 39318 +;;;;;; 488077 130000)) ;;; Generated autoloads from progmodes/gdb-mi.el (defvar gdb-enable-debug nil "\ @@ -11762,8 +11780,8 @@ detailed description of this mode. ;;;*** -;;;### (autoloads nil "generic" "emacs-lisp/generic.el" (22150 28227 -;;;;;; 430072 702000)) +;;;### (autoloads nil "generic" "emacs-lisp/generic.el" (22180 39318 +;;;;;; 289078 46000)) ;;; Generated autoloads from emacs-lisp/generic.el (defvar generic-mode-list nil "\ @@ -11843,8 +11861,8 @@ regular expression that can be used as an element of ;;;*** -;;;### (autoloads nil "glasses" "progmodes/glasses.el" (22150 28228 -;;;;;; 822072 702000)) +;;;### (autoloads nil "glasses" "progmodes/glasses.el" (22180 39318 +;;;;;; 489077 126000)) ;;; Generated autoloads from progmodes/glasses.el (autoload 'glasses-mode "glasses" "\ @@ -11858,8 +11876,8 @@ add virtual separators (like underscores) at places they belong to. ;;;*** -;;;### (autoloads nil "gmm-utils" "gnus/gmm-utils.el" (22150 28227 -;;;;;; 662072 702000)) +;;;### (autoloads nil "gmm-utils" "gnus/gmm-utils.el" (22180 39318 +;;;;;; 328077 866000)) ;;; Generated autoloads from gnus/gmm-utils.el (autoload 'gmm-regexp-concat "gmm-utils" "\ @@ -11913,7 +11931,7 @@ DEFAULT-MAP specifies the default key map for ICON-LIST. ;;;*** -;;;### (autoloads nil "gnus" "gnus/gnus.el" (22150 28227 942072 702000)) +;;;### (autoloads nil "gnus" "gnus/gnus.el" (22180 39318 344077 792000)) ;;; Generated autoloads from gnus/gnus.el (push (purecopy '(gnus 5 13)) package--builtin-versions) (when (fboundp 'custom-autoload) @@ -11963,8 +11981,8 @@ prompt the user for the name of an NNTP server to use. ;;;*** -;;;### (autoloads nil "gnus-agent" "gnus/gnus-agent.el" (22150 28227 -;;;;;; 666072 702000)) +;;;### (autoloads nil "gnus-agent" "gnus/gnus-agent.el" (22183 58408 +;;;;;; 672001 998000)) ;;; Generated autoloads from gnus/gnus-agent.el (autoload 'gnus-unplugged "gnus-agent" "\ @@ -12054,8 +12072,8 @@ CLEAN is obsolete and ignored. ;;;*** -;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (22150 28227 -;;;;;; 674072 702000)) +;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (22183 58408 +;;;;;; 673001 990000)) ;;; Generated autoloads from gnus/gnus-art.el (autoload 'gnus-article-prepare-display "gnus-art" "\ @@ -12065,8 +12083,8 @@ Make the current buffer look like a nice article. ;;;*** -;;;### (autoloads nil "gnus-bookmark" "gnus/gnus-bookmark.el" (22150 -;;;;;; 28227 674072 702000)) +;;;### (autoloads nil "gnus-bookmark" "gnus/gnus-bookmark.el" (22180 +;;;;;; 39318 331077 852000)) ;;; Generated autoloads from gnus/gnus-bookmark.el (autoload 'gnus-bookmark-set "gnus-bookmark" "\ @@ -12089,8 +12107,8 @@ deletion, or > if it is flagged for displaying. ;;;*** -;;;### (autoloads nil "gnus-cache" "gnus/gnus-cache.el" (22150 28227 -;;;;;; 678072 702000)) +;;;### (autoloads nil "gnus-cache" "gnus/gnus-cache.el" (22180 39318 +;;;;;; 331077 852000)) ;;; Generated autoloads from gnus/gnus-cache.el (autoload 'gnus-jog-cache "gnus-cache" "\ @@ -12131,8 +12149,8 @@ supported. ;;;*** -;;;### (autoloads nil "gnus-delay" "gnus/gnus-delay.el" (22150 28227 -;;;;;; 682072 702000)) +;;;### (autoloads nil "gnus-delay" "gnus/gnus-delay.el" (22180 39318 +;;;;;; 332077 848000)) ;;; Generated autoloads from gnus/gnus-delay.el (autoload 'gnus-delay-article "gnus-delay" "\ @@ -12167,8 +12185,8 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil. ;;;*** -;;;### (autoloads nil "gnus-diary" "gnus/gnus-diary.el" (22150 28227 -;;;;;; 686072 702000)) +;;;### (autoloads nil "gnus-diary" "gnus/gnus-diary.el" (22180 39318 +;;;;;; 332077 848000)) ;;; Generated autoloads from gnus/gnus-diary.el (autoload 'gnus-user-format-function-d "gnus-diary" "\ @@ -12183,8 +12201,8 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil. ;;;*** -;;;### (autoloads nil "gnus-dired" "gnus/gnus-dired.el" (22150 28227 -;;;;;; 686072 702000)) +;;;### (autoloads nil "gnus-dired" "gnus/gnus-dired.el" (22180 39318 +;;;;;; 332077 848000)) ;;; Generated autoloads from gnus/gnus-dired.el (autoload 'turn-on-gnus-dired-mode "gnus-dired" "\ @@ -12194,8 +12212,8 @@ Convenience method to turn on gnus-dired-mode. ;;;*** -;;;### (autoloads nil "gnus-draft" "gnus/gnus-draft.el" (22150 28227 -;;;;;; 686072 702000)) +;;;### (autoloads nil "gnus-draft" "gnus/gnus-draft.el" (22180 39318 +;;;;;; 332077 848000)) ;;; Generated autoloads from gnus/gnus-draft.el (autoload 'gnus-draft-reminder "gnus-draft" "\ @@ -12205,8 +12223,8 @@ Reminder user if there are unsent drafts. ;;;*** -;;;### (autoloads nil "gnus-fun" "gnus/gnus-fun.el" (22150 28227 -;;;;;; 686072 702000)) +;;;### (autoloads nil "gnus-fun" "gnus/gnus-fun.el" (22180 39318 +;;;;;; 332077 848000)) ;;; Generated autoloads from gnus/gnus-fun.el (autoload 'gnus--random-face-with-type "gnus-fun" "\ @@ -12271,8 +12289,8 @@ Insert a random Face header from `gnus-face-directory'. ;;;*** -;;;### (autoloads nil "gnus-gravatar" "gnus/gnus-gravatar.el" (22150 -;;;;;; 28227 686072 702000)) +;;;### (autoloads nil "gnus-gravatar" "gnus/gnus-gravatar.el" (22180 +;;;;;; 39318 333077 843000)) ;;; Generated autoloads from gnus/gnus-gravatar.el (autoload 'gnus-treat-from-gravatar "gnus-gravatar" "\ @@ -12289,8 +12307,8 @@ If gravatars are already displayed, remove them. ;;;*** -;;;### (autoloads nil "gnus-group" "gnus/gnus-group.el" (22150 28227 -;;;;;; 694072 702000)) +;;;### (autoloads nil "gnus-group" "gnus/gnus-group.el" (22180 39318 +;;;;;; 334077 839000)) ;;; Generated autoloads from gnus/gnus-group.el (autoload 'gnus-fetch-group "gnus-group" "\ @@ -12307,8 +12325,8 @@ Pop up a frame and enter GROUP. ;;;*** -;;;### (autoloads nil "gnus-html" "gnus/gnus-html.el" (22150 28227 -;;;;;; 694072 702000)) +;;;### (autoloads nil "gnus-html" "gnus/gnus-html.el" (22180 39318 +;;;;;; 334077 839000)) ;;; Generated autoloads from gnus/gnus-html.el (autoload 'gnus-article-html "gnus-html" "\ @@ -12323,8 +12341,8 @@ Pop up a frame and enter GROUP. ;;;*** -;;;### (autoloads nil "gnus-kill" "gnus/gnus-kill.el" (22150 28227 -;;;;;; 698072 702000)) +;;;### (autoloads nil "gnus-kill" "gnus/gnus-kill.el" (22180 39318 +;;;;;; 335077 834000)) ;;; Generated autoloads from gnus/gnus-kill.el (defalias 'gnus-batch-kill 'gnus-batch-score) @@ -12337,8 +12355,8 @@ Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score ;;;*** -;;;### (autoloads nil "gnus-ml" "gnus/gnus-ml.el" (22150 28227 698072 -;;;;;; 702000)) +;;;### (autoloads nil "gnus-ml" "gnus/gnus-ml.el" (22180 39318 335077 +;;;;;; 834000)) ;;; Generated autoloads from gnus/gnus-ml.el (autoload 'turn-on-gnus-mailing-list-mode "gnus-ml" "\ @@ -12361,8 +12379,8 @@ Minor mode for providing mailing-list commands. ;;;*** -;;;### (autoloads nil "gnus-mlspl" "gnus/gnus-mlspl.el" (22150 28227 -;;;;;; 698072 702000)) +;;;### (autoloads nil "gnus-mlspl" "gnus/gnus-mlspl.el" (22180 39318 +;;;;;; 335077 834000)) ;;; Generated autoloads from gnus/gnus-mlspl.el (autoload 'gnus-group-split-setup "gnus-mlspl" "\ @@ -12462,8 +12480,8 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns: ;;;*** -;;;### (autoloads nil "gnus-msg" "gnus/gnus-msg.el" (22150 28227 -;;;;;; 702072 702000)) +;;;### (autoloads nil "gnus-msg" "gnus/gnus-msg.el" (22180 39318 +;;;;;; 336077 829000)) ;;; Generated autoloads from gnus/gnus-msg.el (autoload 'gnus-msg-mail "gnus-msg" "\ @@ -12490,7 +12508,7 @@ Like `message-reply'. ;;;*** ;;;### (autoloads nil "gnus-notifications" "gnus/gnus-notifications.el" -;;;;;; (22150 28227 702072 702000)) +;;;;;; (22180 39318 336077 829000)) ;;; Generated autoloads from gnus/gnus-notifications.el (autoload 'gnus-notifications "gnus-notifications" "\ @@ -12506,8 +12524,8 @@ This is typically a function to add in ;;;*** -;;;### (autoloads nil "gnus-picon" "gnus/gnus-picon.el" (22150 28227 -;;;;;; 702072 702000)) +;;;### (autoloads nil "gnus-picon" "gnus/gnus-picon.el" (22180 39318 +;;;;;; 336077 829000)) ;;; Generated autoloads from gnus/gnus-picon.el (autoload 'gnus-treat-from-picon "gnus-picon" "\ @@ -12530,8 +12548,8 @@ If picons are already displayed, remove them. ;;;*** -;;;### (autoloads nil "gnus-range" "gnus/gnus-range.el" (22150 28227 -;;;;;; 702072 702000)) +;;;### (autoloads nil "gnus-range" "gnus/gnus-range.el" (22180 39318 +;;;;;; 336077 829000)) ;;; Generated autoloads from gnus/gnus-range.el (autoload 'gnus-sorted-difference "gnus-range" "\ @@ -12598,8 +12616,8 @@ Add NUM into sorted LIST by side effect. ;;;*** -;;;### (autoloads nil "gnus-registry" "gnus/gnus-registry.el" (22150 -;;;;;; 28227 702072 702000)) +;;;### (autoloads nil "gnus-registry" "gnus/gnus-registry.el" (22180 +;;;;;; 39318 337077 825000)) ;;; Generated autoloads from gnus/gnus-registry.el (autoload 'gnus-registry-initialize "gnus-registry" "\ @@ -12614,8 +12632,8 @@ Install the registry hooks. ;;;*** -;;;### (autoloads nil "gnus-sieve" "gnus/gnus-sieve.el" (22150 28227 -;;;;;; 806072 702000)) +;;;### (autoloads nil "gnus-sieve" "gnus/gnus-sieve.el" (22180 39318 +;;;;;; 338077 820000)) ;;; Generated autoloads from gnus/gnus-sieve.el (autoload 'gnus-sieve-update "gnus-sieve" "\ @@ -12642,8 +12660,8 @@ See the documentation for these variables and functions for details. ;;;*** -;;;### (autoloads nil "gnus-spec" "gnus/gnus-spec.el" (22150 28227 -;;;;;; 806072 702000)) +;;;### (autoloads nil "gnus-spec" "gnus/gnus-spec.el" (22180 39318 +;;;;;; 338077 820000)) ;;; Generated autoloads from gnus/gnus-spec.el (autoload 'gnus-update-format "gnus-spec" "\ @@ -12653,8 +12671,8 @@ Update the format specification near point. ;;;*** -;;;### (autoloads nil "gnus-start" "gnus/gnus-start.el" (22150 28227 -;;;;;; 846072 702000)) +;;;### (autoloads nil "gnus-start" "gnus/gnus-start.el" (22180 39318 +;;;;;; 339077 816000)) ;;; Generated autoloads from gnus/gnus-start.el (autoload 'gnus-declare-backend "gnus-start" "\ @@ -12664,8 +12682,8 @@ Declare back end NAME with ABILITIES as a Gnus back end. ;;;*** -;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (22150 28227 -;;;;;; 858072 702000)) +;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (22180 39318 +;;;;;; 342077 802000)) ;;; Generated autoloads from gnus/gnus-sum.el (autoload 'gnus-summary-bookmark-jump "gnus-sum" "\ @@ -12676,8 +12694,8 @@ BOOKMARK is a bookmark name or a bookmark record. ;;;*** -;;;### (autoloads nil "gnus-sync" "gnus/gnus-sync.el" (22150 28227 -;;;;;; 862072 702000)) +;;;### (autoloads nil "gnus-sync" "gnus/gnus-sync.el" (22180 39318 +;;;;;; 342077 802000)) ;;; Generated autoloads from gnus/gnus-sync.el (autoload 'gnus-sync-initialize "gnus-sync" "\ @@ -12692,8 +12710,8 @@ Install the sync hooks. ;;;*** -;;;### (autoloads nil "gnus-win" "gnus/gnus-win.el" (22150 28227 -;;;;;; 938072 702000)) +;;;### (autoloads nil "gnus-win" "gnus/gnus-win.el" (22180 39318 +;;;;;; 343077 797000)) ;;; Generated autoloads from gnus/gnus-win.el (autoload 'gnus-add-configuration "gnus-win" "\ @@ -12703,8 +12721,8 @@ Add the window configuration CONF to `gnus-buffer-configuration'. ;;;*** -;;;### (autoloads nil "gnutls" "net/gnutls.el" (22150 28228 358072 -;;;;;; 702000)) +;;;### (autoloads nil "gnutls" "net/gnutls.el" (22180 39318 408077 +;;;;;; 498000)) ;;; Generated autoloads from net/gnutls.el (defvar gnutls-min-prime-bits 256 "\ @@ -12720,8 +12738,8 @@ A value of nil says to use the default GnuTLS value.") ;;;*** -;;;### (autoloads nil "gomoku" "play/gomoku.el" (22150 28228 678072 -;;;;;; 702000)) +;;;### (autoloads nil "gomoku" "play/gomoku.el" (22183 58408 695001 +;;;;;; 816000)) ;;; Generated autoloads from play/gomoku.el (autoload 'gomoku "gomoku" "\ @@ -12747,8 +12765,8 @@ Use \\[describe-mode] for more info. ;;;*** -;;;### (autoloads nil "goto-addr" "net/goto-addr.el" (22150 28228 -;;;;;; 358072 702000)) +;;;### (autoloads nil "goto-addr" "net/goto-addr.el" (22180 39318 +;;;;;; 408077 498000)) ;;; Generated autoloads from net/goto-addr.el (define-obsolete-function-alias 'goto-address-at-mouse 'goto-address-at-point "22.1") @@ -12789,8 +12807,8 @@ Like `goto-address-mode', but only for comments and strings. ;;;*** -;;;### (autoloads nil "gravatar" "gnus/gravatar.el" (22150 28227 -;;;;;; 942072 702000)) +;;;### (autoloads nil "gravatar" "gnus/gravatar.el" (22180 39318 +;;;;;; 344077 792000)) ;;; Generated autoloads from gnus/gravatar.el (autoload 'gravatar-retrieve "gravatar" "\ @@ -12806,8 +12824,8 @@ Retrieve MAIL-ADDRESS gravatar and returns it. ;;;*** -;;;### (autoloads nil "grep" "progmodes/grep.el" (22150 28228 826072 -;;;;;; 702000)) +;;;### (autoloads nil "grep" "progmodes/grep.el" (22180 39318 489077 +;;;;;; 126000)) ;;; Generated autoloads from progmodes/grep.el (defvar grep-window-height nil "\ @@ -12974,7 +12992,7 @@ file name to `*.gz', and sets `grep-highlight-matches' to `always'. ;;;*** -;;;### (autoloads nil "gs" "gs.el" (22150 28228 26072 702000)) +;;;### (autoloads nil "gs" "gs.el" (22180 39318 356077 737000)) ;;; Generated autoloads from gs.el (autoload 'gs-load-image "gs" "\ @@ -12987,8 +13005,8 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful. ;;;*** -;;;### (autoloads nil "gud" "progmodes/gud.el" (22150 28228 826072 -;;;;;; 702000)) +;;;### (autoloads nil "gud" "progmodes/gud.el" (22180 39318 490077 +;;;;;; 121000)) ;;; Generated autoloads from progmodes/gud.el (autoload 'gud-gdb "gud" "\ @@ -13083,8 +13101,8 @@ it if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (22150 28227 434072 -;;;;;; 702000)) +;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (22180 39318 289078 +;;;;;; 46000)) ;;; Generated autoloads from emacs-lisp/gv.el (autoload 'gv-get "gv" "\ @@ -13186,8 +13204,8 @@ binding mode. ;;;*** -;;;### (autoloads nil "handwrite" "play/handwrite.el" (22150 28228 -;;;;;; 678072 702000)) +;;;### (autoloads nil "handwrite" "play/handwrite.el" (22180 39318 +;;;;;; 466077 231000)) ;;; Generated autoloads from play/handwrite.el (autoload 'handwrite "handwrite" "\ @@ -13204,8 +13222,8 @@ Variables: `handwrite-linespace' (default 12) ;;;*** -;;;### (autoloads nil "hanoi" "play/hanoi.el" (22086 11930 130062 -;;;;;; 731000)) +;;;### (autoloads nil "hanoi" "play/hanoi.el" (22122 65326 129715 +;;;;;; 318000)) ;;; Generated autoloads from play/hanoi.el (autoload 'hanoi "hanoi" "\ @@ -13232,8 +13250,8 @@ to be updated. ;;;*** -;;;### (autoloads nil "hashcash" "mail/hashcash.el" (22150 28228 -;;;;;; 230072 702000)) +;;;### (autoloads nil "hashcash" "mail/hashcash.el" (22180 39318 +;;;;;; 386077 599000)) ;;; Generated autoloads from mail/hashcash.el (autoload 'hashcash-insert-payment "hashcash" "\ @@ -13275,8 +13293,8 @@ Prefix arg sets default accept amount temporarily. ;;;*** -;;;### (autoloads nil "help-at-pt" "help-at-pt.el" (22150 28228 26072 -;;;;;; 702000)) +;;;### (autoloads nil "help-at-pt" "help-at-pt.el" (22180 39318 356077 +;;;;;; 737000)) ;;; Generated autoloads from help-at-pt.el (autoload 'help-at-pt-string "help-at-pt" "\ @@ -13403,8 +13421,8 @@ different regions. With numeric argument ARG, behaves like ;;;*** -;;;### (autoloads nil "help-fns" "help-fns.el" (22150 28228 26072 -;;;;;; 702000)) +;;;### (autoloads nil "help-fns" "help-fns.el" (22180 39318 357077 +;;;;;; 733000)) ;;; Generated autoloads from help-fns.el (autoload 'describe-function "help-fns" "\ @@ -13491,8 +13509,8 @@ Produce a texinfo buffer with sorted doc-strings from the DOC file. ;;;*** -;;;### (autoloads nil "help-macro" "help-macro.el" (22150 28228 26072 -;;;;;; 702000)) +;;;### (autoloads nil "help-macro" "help-macro.el" (22180 39318 357077 +;;;;;; 733000)) ;;; Generated autoloads from help-macro.el (defvar three-step-help nil "\ @@ -13506,8 +13524,8 @@ gives the window that lists the options.") ;;;*** -;;;### (autoloads nil "help-mode" "help-mode.el" (22150 28228 26072 -;;;;;; 702000)) +;;;### (autoloads nil "help-mode" "help-mode.el" (22180 39318 357077 +;;;;;; 733000)) ;;; Generated autoloads from help-mode.el (autoload 'help-mode "help-mode" "\ @@ -13608,8 +13626,8 @@ BOOKMARK is a bookmark name or a bookmark record. ;;;*** -;;;### (autoloads nil "helper" "emacs-lisp/helper.el" (22150 28227 -;;;;;; 434072 702000)) +;;;### (autoloads nil "helper" "emacs-lisp/helper.el" (22180 39318 +;;;;;; 289078 46000)) ;;; Generated autoloads from emacs-lisp/helper.el (autoload 'Helper-describe-bindings "helper" "\ @@ -13624,7 +13642,7 @@ Provide help for current mode. ;;;*** -;;;### (autoloads nil "hexl" "hexl.el" (22150 28228 26072 702000)) +;;;### (autoloads nil "hexl" "hexl.el" (22180 39318 357077 733000)) ;;; Generated autoloads from hexl.el (autoload 'hexl-mode "hexl" "\ @@ -13718,7 +13736,8 @@ This discards the buffer's undo information. ;;;*** -;;;### (autoloads nil "hi-lock" "hi-lock.el" (22150 28228 30072 702000)) +;;;### (autoloads nil "hi-lock" "hi-lock.el" (22180 39318 358077 +;;;;;; 728000)) ;;; Generated autoloads from hi-lock.el (autoload 'hi-lock-mode "hi-lock" "\ @@ -13885,8 +13904,8 @@ be found in variable `hi-lock-interactive-patterns'. ;;;*** -;;;### (autoloads nil "hideif" "progmodes/hideif.el" (22150 28228 -;;;;;; 826072 702000)) +;;;### (autoloads nil "hideif" "progmodes/hideif.el" (22180 39318 +;;;;;; 490077 121000)) ;;; Generated autoloads from progmodes/hideif.el (autoload 'hide-ifdef-mode "hideif" "\ @@ -13933,8 +13952,8 @@ Several variables affect how the hiding is done: ;;;*** -;;;### (autoloads nil "hideshow" "progmodes/hideshow.el" (22150 28228 -;;;;;; 830072 702000)) +;;;### (autoloads nil "hideshow" "progmodes/hideshow.el" (22180 39318 +;;;;;; 491077 116000)) ;;; Generated autoloads from progmodes/hideshow.el (defvar hs-special-modes-alist (mapcar 'purecopy '((c-mode "{" "}" "/[*/]" nil nil) (c++-mode "{" "}" "/[*/]" nil nil) (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil nil) (js-mode "{" "}" "/[*/]" nil))) "\ @@ -13996,8 +14015,8 @@ Unconditionally turn off `hs-minor-mode'. ;;;*** -;;;### (autoloads nil "hilit-chg" "hilit-chg.el" (22150 28228 30072 -;;;;;; 702000)) +;;;### (autoloads nil "hilit-chg" "hilit-chg.el" (22180 39318 358077 +;;;;;; 728000)) ;;; Generated autoloads from hilit-chg.el (autoload 'highlight-changes-mode "hilit-chg" "\ @@ -14128,8 +14147,8 @@ See `highlight-changes-mode' for more information on Highlight-Changes mode. ;;;*** -;;;### (autoloads nil "hippie-exp" "hippie-exp.el" (22150 28228 30072 -;;;;;; 702000)) +;;;### (autoloads nil "hippie-exp" "hippie-exp.el" (22180 39318 358077 +;;;;;; 728000)) ;;; Generated autoloads from hippie-exp.el (push (purecopy '(hippie-exp 1 6)) package--builtin-versions) @@ -14161,7 +14180,8 @@ argument VERBOSE non-nil makes the function verbose. ;;;*** -;;;### (autoloads nil "hl-line" "hl-line.el" (22150 28228 30072 702000)) +;;;### (autoloads nil "hl-line" "hl-line.el" (22180 39318 358077 +;;;;;; 728000)) ;;; Generated autoloads from hl-line.el (autoload 'hl-line-mode "hl-line" "\ @@ -14210,8 +14230,8 @@ Global-Hl-Line mode uses the functions `global-hl-line-unhighlight' and ;;;*** -;;;### (autoloads nil "holidays" "calendar/holidays.el" (22150 28227 -;;;;;; 78072 702000)) +;;;### (autoloads nil "holidays" "calendar/holidays.el" (22180 39318 +;;;;;; 244078 252000)) ;;; Generated autoloads from calendar/holidays.el (defvar holiday-general-holidays (mapcar 'purecopy '((holiday-fixed 1 1 "New Year's Day") (holiday-float 1 1 3 "Martin Luther King Day") (holiday-fixed 2 2 "Groundhog Day") (holiday-fixed 2 14 "Valentine's Day") (holiday-float 2 1 3 "President's Day") (holiday-fixed 3 17 "St. Patrick's Day") (holiday-fixed 4 1 "April Fools' Day") (holiday-float 5 0 2 "Mother's Day") (holiday-float 5 1 -1 "Memorial Day") (holiday-fixed 6 14 "Flag Day") (holiday-float 6 0 3 "Father's Day") (holiday-fixed 7 4 "Independence Day") (holiday-float 9 1 1 "Labor Day") (holiday-float 10 1 2 "Columbus Day") (holiday-fixed 10 31 "Halloween") (holiday-fixed 11 11 "Veteran's Day") (holiday-float 11 4 4 "Thanksgiving"))) "\ @@ -14321,8 +14341,8 @@ The optional LABEL is used to label the buffer created. ;;;*** -;;;### (autoloads nil "html2text" "gnus/html2text.el" (22150 28227 -;;;;;; 946072 702000)) +;;;### (autoloads nil "html2text" "gnus/html2text.el" (22180 39318 +;;;;;; 344077 792000)) ;;; Generated autoloads from gnus/html2text.el (autoload 'html2text "html2text" "\ @@ -14332,8 +14352,8 @@ Convert HTML to plain text in the current buffer. ;;;*** -;;;### (autoloads nil "htmlfontify" "htmlfontify.el" (22150 28228 -;;;;;; 34072 702000)) +;;;### (autoloads nil "htmlfontify" "htmlfontify.el" (22180 39318 +;;;;;; 359077 724000)) ;;; Generated autoloads from htmlfontify.el (push (purecopy '(htmlfontify 0 21)) package--builtin-versions) @@ -14366,8 +14386,8 @@ You may also want to set `hfy-page-header' and `hfy-page-footer'. ;;;*** -;;;### (autoloads nil "ibuf-macs" "ibuf-macs.el" (22150 28228 50072 -;;;;;; 702000)) +;;;### (autoloads nil "ibuf-macs" "ibuf-macs.el" (22180 39318 359077 +;;;;;; 724000)) ;;; Generated autoloads from ibuf-macs.el (autoload 'define-ibuffer-column "ibuf-macs" "\ @@ -14469,7 +14489,8 @@ bound to the current value of the filter. ;;;*** -;;;### (autoloads nil "ibuffer" "ibuffer.el" (22150 28228 54072 702000)) +;;;### (autoloads nil "ibuffer" "ibuffer.el" (22180 39318 360077 +;;;;;; 719000)) ;;; Generated autoloads from ibuffer.el (autoload 'ibuffer-list-buffers "ibuffer" "\ @@ -14508,8 +14529,8 @@ FORMATS is the value to use for `ibuffer-formats'. ;;;*** -;;;### (autoloads nil "icalendar" "calendar/icalendar.el" (22150 -;;;;;; 28227 78072 702000)) +;;;### (autoloads nil "icalendar" "calendar/icalendar.el" (22180 +;;;;;; 39318 244078 252000)) ;;; Generated autoloads from calendar/icalendar.el (push (purecopy '(icalendar 0 19)) package--builtin-versions) @@ -14562,8 +14583,8 @@ buffer `*icalendar-errors*'. ;;;*** -;;;### (autoloads nil "icomplete" "icomplete.el" (22150 28228 54072 -;;;;;; 702000)) +;;;### (autoloads nil "icomplete" "icomplete.el" (22180 39318 360077 +;;;;;; 719000)) ;;; Generated autoloads from icomplete.el (defvar icomplete-mode nil "\ @@ -14602,8 +14623,8 @@ completions: ;;;*** -;;;### (autoloads nil "icon" "progmodes/icon.el" (22150 28228 830072 -;;;;;; 702000)) +;;;### (autoloads nil "icon" "progmodes/icon.el" (22180 39318 491077 +;;;;;; 116000)) ;;; Generated autoloads from progmodes/icon.el (autoload 'icon-mode "icon" "\ @@ -14643,8 +14664,8 @@ with no args, if that value is non-nil. ;;;*** -;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (22150 -;;;;;; 28228 850072 702000)) +;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (22180 +;;;;;; 39318 492077 112000)) ;;; Generated autoloads from progmodes/idlw-shell.el (autoload 'idlwave-shell "idlw-shell" "\ @@ -14669,8 +14690,8 @@ See also the variable `idlwave-shell-prompt-pattern'. ;;;*** -;;;### (autoloads nil "idlwave" "progmodes/idlwave.el" (22150 28228 -;;;;;; 862072 702000)) +;;;### (autoloads nil "idlwave" "progmodes/idlwave.el" (22180 39318 +;;;;;; 495077 98000)) ;;; Generated autoloads from progmodes/idlwave.el (push (purecopy '(idlwave 6 1 22)) package--builtin-versions) @@ -14799,7 +14820,7 @@ The main features of this mode are ;;;*** -;;;### (autoloads nil "ido" "ido.el" (22150 28228 82072 702000)) +;;;### (autoloads nil "ido" "ido.el" (22180 39318 361077 714000)) ;;; Generated autoloads from ido.el (defvar ido-mode nil "\ @@ -15061,7 +15082,7 @@ DEF, if non-nil, is the default value. ;;;*** -;;;### (autoloads nil "ielm" "ielm.el" (22150 28228 82072 702000)) +;;;### (autoloads nil "ielm" "ielm.el" (22180 39318 361077 714000)) ;;; Generated autoloads from ielm.el (autoload 'ielm "ielm" "\ @@ -15073,7 +15094,7 @@ See `inferior-emacs-lisp-mode' for details. ;;;*** -;;;### (autoloads nil "iimage" "iimage.el" (22150 28228 82072 702000)) +;;;### (autoloads nil "iimage" "iimage.el" (22180 39318 361077 714000)) ;;; Generated autoloads from iimage.el (define-obsolete-function-alias 'turn-on-iimage-mode 'iimage-mode "24.1") @@ -15089,7 +15110,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'. ;;;*** -;;;### (autoloads nil "image" "image.el" (22150 28228 86072 702000)) +;;;### (autoloads nil "image" "image.el" (22180 39318 362077 710000)) ;;; Generated autoloads from image.el (autoload 'image-type-from-data "image" "\ @@ -15282,8 +15303,8 @@ If Emacs is compiled without ImageMagick support, this does nothing. ;;;*** -;;;### (autoloads nil "image-dired" "image-dired.el" (22150 28228 -;;;;;; 86072 702000)) +;;;### (autoloads nil "image-dired" "image-dired.el" (22180 39318 +;;;;;; 362077 710000)) ;;; Generated autoloads from image-dired.el (push (purecopy '(image-dired 0 4 11)) package--builtin-versions) @@ -15420,8 +15441,8 @@ easy-to-use form. ;;;*** -;;;### (autoloads nil "image-file" "image-file.el" (22150 28228 86072 -;;;;;; 702000)) +;;;### (autoloads nil "image-file" "image-file.el" (22180 39318 362077 +;;;;;; 710000)) ;;; Generated autoloads from image-file.el (defvar image-file-name-extensions (purecopy '("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm" "svg")) "\ @@ -15483,8 +15504,8 @@ An image file is one whose name has an extension in ;;;*** -;;;### (autoloads nil "image-mode" "image-mode.el" (22150 28228 86072 -;;;;;; 702000)) +;;;### (autoloads nil "image-mode" "image-mode.el" (22180 39318 362077 +;;;;;; 710000)) ;;; Generated autoloads from image-mode.el (autoload 'image-mode "image-mode" "\ @@ -15531,7 +15552,7 @@ on these modes. ;;;*** -;;;### (autoloads nil "imenu" "imenu.el" (22150 28228 90072 702000)) +;;;### (autoloads nil "imenu" "imenu.el" (22180 39318 362077 710000)) ;;; Generated autoloads from imenu.el (defvar imenu-sort-function nil "\ @@ -15669,8 +15690,8 @@ for more information. ;;;*** -;;;### (autoloads nil "ind-util" "language/ind-util.el" (22150 28228 -;;;;;; 190072 702000)) +;;;### (autoloads nil "ind-util" "language/ind-util.el" (22180 39318 +;;;;;; 374077 654000)) ;;; Generated autoloads from language/ind-util.el (autoload 'indian-compose-region "ind-util" "\ @@ -15700,8 +15721,8 @@ Convert old Emacs Devanagari characters to UCS. ;;;*** -;;;### (autoloads nil "inf-lisp" "progmodes/inf-lisp.el" (22150 28228 -;;;;;; 862072 702000)) +;;;### (autoloads nil "inf-lisp" "progmodes/inf-lisp.el" (22180 39318 +;;;;;; 495077 98000)) ;;; Generated autoloads from progmodes/inf-lisp.el (autoload 'inferior-lisp "inf-lisp" "\ @@ -15719,7 +15740,7 @@ of `inferior-lisp-program'). Runs the hooks from ;;;*** -;;;### (autoloads nil "info" "info.el" (22150 28228 98072 702000)) +;;;### (autoloads nil "info" "info.el" (22180 39318 364077 701000)) ;;; Generated autoloads from info.el (defcustom Info-default-directory-list (let* ((config-dir (file-name-as-directory (or (and (featurep 'ns) (let ((dir (expand-file-name "../info" data-directory))) (if (file-directory-p dir) dir))) configure-info-directory))) (prefixes (prune-directory-list '("/usr/local/" "/usr/" "/opt/" "/"))) (suffixes '("share/" "" "gnu/" "gnu/lib/" "gnu/lib/emacs/" "emacs/" "lib/" "lib/emacs/")) (standard-info-dirs (apply #'nconc (mapcar (lambda (pfx) (let ((dirs (mapcar (lambda (sfx) (concat pfx sfx "info/")) suffixes))) (prune-directory-list dirs))) prefixes))) (dirs (if (member config-dir standard-info-dirs) (nconc standard-info-dirs (list config-dir)) (cons config-dir standard-info-dirs)))) (if (not (eq system-type 'windows-nt)) dirs (let* ((instdir (file-name-directory invocation-directory)) (dir1 (expand-file-name "../info/" instdir)) (dir2 (expand-file-name "../../../info/" instdir))) (cond ((file-exists-p dir1) (append dirs (list dir1))) ((file-exists-p dir2) (append dirs (list dir2))) (t dirs))))) "\ @@ -15931,8 +15952,8 @@ completion alternatives to currently visited manuals. ;;;*** -;;;### (autoloads nil "info-look" "info-look.el" (22150 28228 90072 -;;;;;; 702000)) +;;;### (autoloads nil "info-look" "info-look.el" (22180 39318 363077 +;;;;;; 705000)) ;;; Generated autoloads from info-look.el (autoload 'info-lookup-reset "info-look" "\ @@ -15979,8 +16000,8 @@ Perform completion on file preceding point. ;;;*** -;;;### (autoloads nil "info-xref" "info-xref.el" (22150 28228 94072 -;;;;;; 702000)) +;;;### (autoloads nil "info-xref" "info-xref.el" (22180 39318 363077 +;;;;;; 705000)) ;;; Generated autoloads from info-xref.el (push (purecopy '(info-xref 3)) package--builtin-versions) @@ -16063,8 +16084,8 @@ the sources handy. ;;;*** -;;;### (autoloads nil "informat" "informat.el" (22150 28228 102072 -;;;;;; 702000)) +;;;### (autoloads nil "informat" "informat.el" (22180 39318 364077 +;;;;;; 701000)) ;;; Generated autoloads from informat.el (autoload 'Info-tagify "informat" "\ @@ -16109,8 +16130,8 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\" ;;;*** -;;;### (autoloads nil "inline" "emacs-lisp/inline.el" (22150 28227 -;;;;;; 434072 702000)) +;;;### (autoloads nil "inline" "emacs-lisp/inline.el" (22180 39318 +;;;;;; 289078 46000)) ;;; Generated autoloads from emacs-lisp/inline.el (autoload 'define-inline "inline" "\ @@ -16124,8 +16145,8 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\" ;;;*** -;;;### (autoloads nil "inversion" "cedet/inversion.el" (22150 28227 -;;;;;; 218072 702000)) +;;;### (autoloads nil "inversion" "cedet/inversion.el" (22180 39318 +;;;;;; 252078 216000)) ;;; Generated autoloads from cedet/inversion.el (push (purecopy '(inversion 1 3)) package--builtin-versions) @@ -16137,8 +16158,8 @@ Only checks one based on which kind of Emacs is being run. ;;;*** -;;;### (autoloads nil "isearch-x" "international/isearch-x.el" (22150 -;;;;;; 28228 106072 702000)) +;;;### (autoloads nil "isearch-x" "international/isearch-x.el" (22180 +;;;;;; 39318 365077 696000)) ;;; Generated autoloads from international/isearch-x.el (autoload 'isearch-toggle-specified-input-method "isearch-x" "\ @@ -16158,8 +16179,8 @@ Toggle input method in interactive search. ;;;*** -;;;### (autoloads nil "isearchb" "isearchb.el" (22150 28228 154072 -;;;;;; 702000)) +;;;### (autoloads nil "isearchb" "isearchb.el" (22180 39318 370077 +;;;;;; 673000)) ;;; Generated autoloads from isearchb.el (push (purecopy '(isearchb 1 5)) package--builtin-versions) @@ -16173,8 +16194,8 @@ accessed via isearchb. ;;;*** -;;;### (autoloads nil "iso-cvt" "international/iso-cvt.el" (22150 -;;;;;; 28228 106072 702000)) +;;;### (autoloads nil "iso-cvt" "international/iso-cvt.el" (22180 +;;;;;; 39318 365077 696000)) ;;; Generated autoloads from international/iso-cvt.el (autoload 'iso-spanish "iso-cvt" "\ @@ -16265,15 +16286,15 @@ Add submenus to the File menu, to convert to and from various formats. ;;;*** ;;;### (autoloads nil "iso-transl" "international/iso-transl.el" -;;;;;; (22150 28228 106072 702000)) +;;;;;; (22180 39318 365077 696000)) ;;; Generated autoloads from international/iso-transl.el (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map) (autoload 'iso-transl-ctl-x-8-map "iso-transl" "Keymap for C-x 8 prefix." t 'keymap) ;;;*** -;;;### (autoloads nil "ispell" "textmodes/ispell.el" (22150 28229 -;;;;;; 102072 702000)) +;;;### (autoloads nil "ispell" "textmodes/ispell.el" (22183 58408 +;;;;;; 705001 736000)) ;;; Generated autoloads from textmodes/ispell.el (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive)))) @@ -16506,8 +16527,8 @@ You can bind this to the key C-c i in GNUS or mail by adding to ;;;*** -;;;### (autoloads nil "japan-util" "language/japan-util.el" (22150 -;;;;;; 28228 190072 702000)) +;;;### (autoloads nil "japan-util" "language/japan-util.el" (22180 +;;;;;; 39318 375077 650000)) ;;; Generated autoloads from language/japan-util.el (autoload 'setup-japanese-environment-internal "japan-util" "\ @@ -16584,8 +16605,8 @@ If non-nil, second arg INITIAL-INPUT is a string to insert before reading. ;;;*** -;;;### (autoloads nil "jka-compr" "jka-compr.el" (22150 28228 158072 -;;;;;; 702000)) +;;;### (autoloads nil "jka-compr" "jka-compr.el" (22180 39318 370077 +;;;;;; 673000)) ;;; Generated autoloads from jka-compr.el (defvar jka-compr-inhibit nil "\ @@ -16608,8 +16629,8 @@ by `jka-compr-installed'. ;;;*** -;;;### (autoloads nil "js" "progmodes/js.el" (22150 28228 866072 -;;;;;; 702000)) +;;;### (autoloads nil "js" "progmodes/js.el" (22180 39318 495077 +;;;;;; 98000)) ;;; Generated autoloads from progmodes/js.el (push (purecopy '(js 9)) package--builtin-versions) @@ -16636,14 +16657,14 @@ locally, like so: ;;;*** -;;;### (autoloads nil "json" "json.el" (22150 28228 158072 702000)) +;;;### (autoloads nil "json" "json.el" (22180 39318 370077 673000)) ;;; Generated autoloads from json.el (push (purecopy '(json 1 4)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "keypad" "emulation/keypad.el" (22150 28227 -;;;;;; 462072 702000)) +;;;### (autoloads nil "keypad" "emulation/keypad.el" (22180 39318 +;;;;;; 296078 13000)) ;;; Generated autoloads from emulation/keypad.el (defvar keypad-setup nil "\ @@ -16698,8 +16719,8 @@ the decimal key on the keypad is mapped to DECIMAL instead of `.' ;;;*** -;;;### (autoloads nil "kinsoku" "international/kinsoku.el" (22150 -;;;;;; 28228 106072 702000)) +;;;### (autoloads nil "kinsoku" "international/kinsoku.el" (22180 +;;;;;; 39318 365077 696000)) ;;; Generated autoloads from international/kinsoku.el (autoload 'kinsoku "kinsoku" "\ @@ -16720,8 +16741,8 @@ the context of text formatting. ;;;*** -;;;### (autoloads nil "kkc" "international/kkc.el" (22150 28228 106072 -;;;;;; 702000)) +;;;### (autoloads nil "kkc" "international/kkc.el" (22180 39318 366077 +;;;;;; 691000)) ;;; Generated autoloads from international/kkc.el (defvar kkc-after-update-conversion-functions nil "\ @@ -16743,7 +16764,7 @@ and the return value is the length of the conversion. ;;;*** -;;;### (autoloads nil "kmacro" "kmacro.el" (22150 28228 162072 702000)) +;;;### (autoloads nil "kmacro" "kmacro.el" (22180 39318 370077 673000)) ;;; Generated autoloads from kmacro.el (global-set-key "\C-x(" 'kmacro-start-macro) (global-set-key "\C-x)" 'kmacro-end-macro) @@ -16855,8 +16876,8 @@ If kbd macro currently being defined end it before activating it. ;;;*** -;;;### (autoloads nil "korea-util" "language/korea-util.el" (22150 -;;;;;; 28228 194072 702000)) +;;;### (autoloads nil "korea-util" "language/korea-util.el" (22180 +;;;;;; 39318 375077 650000)) ;;; Generated autoloads from language/korea-util.el (defvar default-korean-keyboard (purecopy (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "")) "\ @@ -16870,8 +16891,8 @@ The kind of Korean keyboard for Korean input method. ;;;*** -;;;### (autoloads nil "lao-util" "language/lao-util.el" (22150 28228 -;;;;;; 194072 702000)) +;;;### (autoloads nil "lao-util" "language/lao-util.el" (22180 39318 +;;;;;; 375077 650000)) ;;; Generated autoloads from language/lao-util.el (autoload 'lao-compose-string "lao-util" "\ @@ -16908,8 +16929,8 @@ Transcribe Romanized Lao string STR to Lao character string. ;;;*** -;;;### (autoloads nil "latexenc" "international/latexenc.el" (22150 -;;;;;; 28228 106072 702000)) +;;;### (autoloads nil "latexenc" "international/latexenc.el" (22180 +;;;;;; 39318 366077 691000)) ;;; Generated autoloads from international/latexenc.el (defvar latex-inputenc-coding-alist (purecopy '(("ansinew" . windows-1252) ("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) ("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp858" . cp858) ("cp865" . cp865) ("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) ("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) ("next" . next) ("utf8" . utf-8) ("utf8x" . utf-8))) "\ @@ -16941,7 +16962,7 @@ coding system names is determined from `latex-inputenc-coding-alist'. ;;;*** ;;;### (autoloads nil "latin1-disp" "international/latin1-disp.el" -;;;;;; (22150 28228 110072 702000)) +;;;;;; (22180 39318 366077 691000)) ;;; Generated autoloads from international/latin1-disp.el (defvar latin1-display nil "\ @@ -16982,8 +17003,8 @@ use either \\[customize] or the function `latin1-display'.") ;;;*** -;;;### (autoloads nil "ld-script" "progmodes/ld-script.el" (22150 -;;;;;; 28228 866072 702000)) +;;;### (autoloads nil "ld-script" "progmodes/ld-script.el" (22180 +;;;;;; 39318 495077 98000)) ;;; Generated autoloads from progmodes/ld-script.el (autoload 'ld-script-mode "ld-script" "\ @@ -16993,8 +17014,8 @@ A major mode to edit GNU ld script files ;;;*** -;;;### (autoloads nil "let-alist" "emacs-lisp/let-alist.el" (22150 -;;;;;; 28227 434072 702000)) +;;;### (autoloads nil "let-alist" "emacs-lisp/let-alist.el" (22180 +;;;;;; 39318 289078 46000)) ;;; Generated autoloads from emacs-lisp/let-alist.el (push (purecopy '(let-alist 1 0 4)) package--builtin-versions) @@ -17033,7 +17054,7 @@ displayed in the example above. ;;;*** -;;;### (autoloads nil "life" "play/life.el" (22150 28228 678072 702000)) +;;;### (autoloads nil "life" "play/life.el" (22180 39318 466077 231000)) ;;; Generated autoloads from play/life.el (autoload 'life "life" "\ @@ -17046,7 +17067,7 @@ generations (this defaults to 1). ;;;*** -;;;### (autoloads nil "linum" "linum.el" (22150 28228 210072 702000)) +;;;### (autoloads nil "linum" "linum.el" (22180 39318 385077 604000)) ;;; Generated autoloads from linum.el (push (purecopy '(linum 0 9 24)) package--builtin-versions) @@ -17083,8 +17104,8 @@ See `linum-mode' for more information on Linum mode. ;;;*** -;;;### (autoloads nil "loadhist" "loadhist.el" (22150 28228 210072 -;;;;;; 702000)) +;;;### (autoloads nil "loadhist" "loadhist.el" (22180 39318 385077 +;;;;;; 604000)) ;;; Generated autoloads from loadhist.el (autoload 'unload-feature "loadhist" "\ @@ -17115,7 +17136,7 @@ something strange, such as redefining an Emacs function. ;;;*** -;;;### (autoloads nil "locate" "locate.el" (22150 28228 210072 702000)) +;;;### (autoloads nil "locate" "locate.el" (22180 39318 386077 599000)) ;;; Generated autoloads from locate.el (defvar locate-ls-subdir-switches (purecopy "-al") "\ @@ -17167,8 +17188,8 @@ except that FILTER is not optional. ;;;*** -;;;### (autoloads nil "log-edit" "vc/log-edit.el" (22150 28229 278072 -;;;;;; 702000)) +;;;### (autoloads nil "log-edit" "vc/log-edit.el" (22180 39318 552076 +;;;;;; 836000)) ;;; Generated autoloads from vc/log-edit.el (autoload 'log-edit "log-edit" "\ @@ -17199,8 +17220,8 @@ done. Otherwise, it uses the current buffer. ;;;*** -;;;### (autoloads nil "log-view" "vc/log-view.el" (22150 28229 278072 -;;;;;; 702000)) +;;;### (autoloads nil "log-view" "vc/log-view.el" (22180 39318 552076 +;;;;;; 836000)) ;;; Generated autoloads from vc/log-view.el (autoload 'log-view-mode "log-view" "\ @@ -17210,7 +17231,7 @@ Major mode for browsing CVS log output. ;;;*** -;;;### (autoloads nil "lpr" "lpr.el" (22150 28228 210072 702000)) +;;;### (autoloads nil "lpr" "lpr.el" (22180 39318 386077 599000)) ;;; Generated autoloads from lpr.el (defvar lpr-windows-system (memq system-type '(ms-dos windows-nt)) "\ @@ -17305,8 +17326,8 @@ for further customization of the printer command. ;;;*** -;;;### (autoloads nil "ls-lisp" "ls-lisp.el" (22150 28228 210072 -;;;;;; 702000)) +;;;### (autoloads nil "ls-lisp" "ls-lisp.el" (22180 39318 386077 +;;;;;; 599000)) ;;; Generated autoloads from ls-lisp.el (defvar ls-lisp-support-shell-wildcards t "\ @@ -17317,8 +17338,8 @@ Otherwise they are treated as Emacs regexps (for backward compatibility).") ;;;*** -;;;### (autoloads nil "lunar" "calendar/lunar.el" (22150 28227 78072 -;;;;;; 702000)) +;;;### (autoloads nil "lunar" "calendar/lunar.el" (22180 39318 245078 +;;;;;; 248000)) ;;; Generated autoloads from calendar/lunar.el (autoload 'lunar-phases "lunar" "\ @@ -17330,8 +17351,8 @@ This function is suitable for execution in an init file. ;;;*** -;;;### (autoloads nil "m4-mode" "progmodes/m4-mode.el" (22150 28228 -;;;;;; 866072 702000)) +;;;### (autoloads nil "m4-mode" "progmodes/m4-mode.el" (22180 39318 +;;;;;; 496077 94000)) ;;; Generated autoloads from progmodes/m4-mode.el (autoload 'm4-mode "m4-mode" "\ @@ -17341,7 +17362,7 @@ A major mode to edit m4 macro files. ;;;*** -;;;### (autoloads nil "macros" "macros.el" (22150 28228 210072 702000)) +;;;### (autoloads nil "macros" "macros.el" (22180 39318 386077 599000)) ;;; Generated autoloads from macros.el (autoload 'name-last-kbd-macro "macros" "\ @@ -17430,8 +17451,8 @@ and then select the region of un-tablified names and use ;;;*** -;;;### (autoloads nil "mail-extr" "mail/mail-extr.el" (22150 28228 -;;;;;; 230072 702000)) +;;;### (autoloads nil "mail-extr" "mail/mail-extr.el" (22180 39318 +;;;;;; 387077 595000)) ;;; Generated autoloads from mail/mail-extr.el (autoload 'mail-extract-address-components "mail-extr" "\ @@ -17461,8 +17482,8 @@ Convert mail domain DOMAIN to the country it corresponds to. ;;;*** -;;;### (autoloads nil "mail-hist" "mail/mail-hist.el" (22150 28228 -;;;;;; 230072 702000)) +;;;### (autoloads nil "mail-hist" "mail/mail-hist.el" (22180 39318 +;;;;;; 387077 595000)) ;;; Generated autoloads from mail/mail-hist.el (autoload 'mail-hist-define-keys "mail-hist" "\ @@ -17491,8 +17512,8 @@ This function normally would be called when the message is sent. ;;;*** -;;;### (autoloads nil "mail-utils" "mail/mail-utils.el" (22150 28228 -;;;;;; 230072 702000)) +;;;### (autoloads nil "mail-utils" "mail/mail-utils.el" (22180 39318 +;;;;;; 387077 595000)) ;;; Generated autoloads from mail/mail-utils.el (defvar mail-use-rfc822 nil "\ @@ -17566,8 +17587,8 @@ matches may be returned from the message body. ;;;*** -;;;### (autoloads nil "mailabbrev" "mail/mailabbrev.el" (22150 28228 -;;;;;; 230072 702000)) +;;;### (autoloads nil "mailabbrev" "mail/mailabbrev.el" (22180 39318 +;;;;;; 387077 595000)) ;;; Generated autoloads from mail/mailabbrev.el (defvar mail-abbrevs-mode nil "\ @@ -17616,8 +17637,8 @@ double-quotes. ;;;*** -;;;### (autoloads nil "mailalias" "mail/mailalias.el" (22150 28228 -;;;;;; 230072 702000)) +;;;### (autoloads nil "mailalias" "mail/mailalias.el" (22180 39318 +;;;;;; 387077 595000)) ;;; Generated autoloads from mail/mailalias.el (defvar mail-complete-style 'angles "\ @@ -17670,8 +17691,8 @@ current header, calls `mail-complete-function' and passes prefix ARG if any. ;;;*** -;;;### (autoloads nil "mailclient" "mail/mailclient.el" (22150 28228 -;;;;;; 234072 702000)) +;;;### (autoloads nil "mailclient" "mail/mailclient.el" (22183 58408 +;;;;;; 680001 935000)) ;;; Generated autoloads from mail/mailclient.el (autoload 'mailclient-send-it "mailclient" "\ @@ -17683,8 +17704,8 @@ The mail client is taken to be the handler of mailto URLs. ;;;*** -;;;### (autoloads nil "make-mode" "progmodes/make-mode.el" (22150 -;;;;;; 28228 870072 702000)) +;;;### (autoloads nil "make-mode" "progmodes/make-mode.el" (22180 +;;;;;; 39318 496077 94000)) ;;; Generated autoloads from progmodes/make-mode.el (autoload 'makefile-mode "make-mode" "\ @@ -17801,8 +17822,8 @@ An adapted `makefile-mode' that knows about imake. ;;;*** -;;;### (autoloads nil "makesum" "makesum.el" (22150 28228 258072 -;;;;;; 702000)) +;;;### (autoloads nil "makesum" "makesum.el" (22180 39318 392077 +;;;;;; 572000)) ;;; Generated autoloads from makesum.el (autoload 'make-command-summary "makesum" "\ @@ -17813,7 +17834,7 @@ Previous contents of that buffer are killed first. ;;;*** -;;;### (autoloads nil "man" "man.el" (22150 28228 262072 702000)) +;;;### (autoloads nil "man" "man.el" (22183 58408 680001 935000)) ;;; Generated autoloads from man.el (defalias 'manual-entry 'man) @@ -17869,14 +17890,14 @@ Default bookmark handler for Man buffers. ;;;*** -;;;### (autoloads nil "map" "emacs-lisp/map.el" (22150 28227 438072 -;;;;;; 702000)) +;;;### (autoloads nil "map" "emacs-lisp/map.el" (22183 58377 523249 +;;;;;; 394000)) ;;; Generated autoloads from emacs-lisp/map.el (push (purecopy '(map 1 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "master" "master.el" (22150 28228 262072 702000)) +;;;### (autoloads nil "master" "master.el" (22180 39318 392077 572000)) ;;; Generated autoloads from master.el (push (purecopy '(master 1 0 2)) package--builtin-versions) @@ -17899,8 +17920,8 @@ yourself the value of `master-of' by calling `master-show-slave'. ;;;*** -;;;### (autoloads nil "mb-depth" "mb-depth.el" (22150 28228 262072 -;;;;;; 702000)) +;;;### (autoloads nil "mb-depth" "mb-depth.el" (22180 39318 392077 +;;;;;; 572000)) ;;; Generated autoloads from mb-depth.el (defvar minibuffer-depth-indicate-mode nil "\ @@ -17927,14 +17948,14 @@ recursion depth in the minibuffer prompt. This is only useful if ;;;*** -;;;### (autoloads nil "md4" "md4.el" (22150 28228 262072 702000)) +;;;### (autoloads nil "md4" "md4.el" (22180 39318 392077 572000)) ;;; Generated autoloads from md4.el (push (purecopy '(md4 1 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "message" "gnus/message.el" (22150 28227 974072 -;;;;;; 702000)) +;;;### (autoloads nil "message" "gnus/message.el" (22180 39318 346077 +;;;;;; 783000)) ;;; Generated autoloads from gnus/message.el (define-mail-user-agent 'message-user-agent 'message-mail 'message-send-and-exit 'message-kill-buffer 'message-send-hook) @@ -18099,8 +18120,8 @@ which specify the range to operate on. ;;;*** -;;;### (autoloads nil "meta-mode" "progmodes/meta-mode.el" (22150 -;;;;;; 28228 870072 702000)) +;;;### (autoloads nil "meta-mode" "progmodes/meta-mode.el" (22180 +;;;;;; 39318 496077 94000)) ;;; Generated autoloads from progmodes/meta-mode.el (push (purecopy '(meta-mode 1 0)) package--builtin-versions) @@ -18116,8 +18137,8 @@ Major mode for editing MetaPost sources. ;;;*** -;;;### (autoloads nil "metamail" "mail/metamail.el" (22150 28228 -;;;;;; 234072 702000)) +;;;### (autoloads nil "metamail" "mail/metamail.el" (22180 39318 +;;;;;; 388077 590000)) ;;; Generated autoloads from mail/metamail.el (autoload 'metamail-interpret-header "metamail" "\ @@ -18160,8 +18181,8 @@ redisplayed as output is inserted. ;;;*** -;;;### (autoloads nil "mh-comp" "mh-e/mh-comp.el" (22150 28228 294072 -;;;;;; 702000)) +;;;### (autoloads nil "mh-comp" "mh-e/mh-comp.el" (22180 39318 397077 +;;;;;; 549000)) ;;; Generated autoloads from mh-e/mh-comp.el (autoload 'mh-smail "mh-comp" "\ @@ -18251,7 +18272,7 @@ delete the draft message. ;;;*** -;;;### (autoloads nil "mh-e" "mh-e/mh-e.el" (22150 28228 298072 702000)) +;;;### (autoloads nil "mh-e" "mh-e/mh-e.el" (22180 39318 398077 544000)) ;;; Generated autoloads from mh-e/mh-e.el (push (purecopy '(mh-e 8 6)) package--builtin-versions) @@ -18268,8 +18289,8 @@ Display version information about MH-E and the MH mail handling system. ;;;*** -;;;### (autoloads nil "mh-folder" "mh-e/mh-folder.el" (22150 28228 -;;;;;; 302072 702000)) +;;;### (autoloads nil "mh-folder" "mh-e/mh-folder.el" (22180 39318 +;;;;;; 398077 544000)) ;;; Generated autoloads from mh-e/mh-folder.el (autoload 'mh-rmail "mh-folder" "\ @@ -18350,8 +18371,8 @@ perform the operation on all messages in that region. ;;;*** -;;;### (autoloads nil "midnight" "midnight.el" (22150 28228 322072 -;;;;;; 702000)) +;;;### (autoloads nil "midnight" "midnight.el" (22180 39318 402077 +;;;;;; 526000)) ;;; Generated autoloads from midnight.el (defvar midnight-mode nil "\ @@ -18391,8 +18412,8 @@ to its second argument TM. ;;;*** -;;;### (autoloads nil "minibuf-eldef" "minibuf-eldef.el" (22150 28228 -;;;;;; 322072 702000)) +;;;### (autoloads nil "minibuf-eldef" "minibuf-eldef.el" (22180 39318 +;;;;;; 402077 526000)) ;;; Generated autoloads from minibuf-eldef.el (defvar minibuffer-electric-default-mode nil "\ @@ -18421,7 +18442,7 @@ is modified to remove the default indication. ;;;*** -;;;### (autoloads nil "misc" "misc.el" (22150 28228 326072 702000)) +;;;### (autoloads nil "misc" "misc.el" (22180 39318 403077 521000)) ;;; Generated autoloads from misc.el (autoload 'butterfly "misc" "\ @@ -18449,8 +18470,8 @@ The return value is always nil. ;;;*** -;;;### (autoloads nil "misearch" "misearch.el" (22150 28228 326072 -;;;;;; 702000)) +;;;### (autoloads nil "misearch" "misearch.el" (22180 39318 403077 +;;;;;; 521000)) ;;; Generated autoloads from misearch.el (add-hook 'isearch-mode-hook 'multi-isearch-setup) @@ -18538,8 +18559,8 @@ whose file names match the specified wildcard. ;;;*** -;;;### (autoloads nil "mixal-mode" "progmodes/mixal-mode.el" (22150 -;;;;;; 28228 874072 702000)) +;;;### (autoloads nil "mixal-mode" "progmodes/mixal-mode.el" (22180 +;;;;;; 39318 496077 94000)) ;;; Generated autoloads from progmodes/mixal-mode.el (push (purecopy '(mixal-mode 0 1)) package--builtin-versions) @@ -18550,8 +18571,8 @@ Major mode for the mixal asm language. ;;;*** -;;;### (autoloads nil "mm-encode" "gnus/mm-encode.el" (22150 28227 -;;;;;; 978072 702000)) +;;;### (autoloads nil "mm-encode" "gnus/mm-encode.el" (22180 39318 +;;;;;; 347077 779000)) ;;; Generated autoloads from gnus/mm-encode.el (autoload 'mm-default-file-encoding "mm-encode" "\ @@ -18561,8 +18582,8 @@ Return a default encoding for FILE. ;;;*** -;;;### (autoloads nil "mm-extern" "gnus/mm-extern.el" (22150 28227 -;;;;;; 978072 702000)) +;;;### (autoloads nil "mm-extern" "gnus/mm-extern.el" (22180 39318 +;;;;;; 347077 779000)) ;;; Generated autoloads from gnus/mm-extern.el (autoload 'mm-extern-cache-contents "mm-extern" "\ @@ -18580,8 +18601,8 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing. ;;;*** -;;;### (autoloads nil "mm-partial" "gnus/mm-partial.el" (22150 28227 -;;;;;; 978072 702000)) +;;;### (autoloads nil "mm-partial" "gnus/mm-partial.el" (22180 39318 +;;;;;; 347077 779000)) ;;; Generated autoloads from gnus/mm-partial.el (autoload 'mm-inline-partial "mm-partial" "\ @@ -18594,8 +18615,8 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing. ;;;*** -;;;### (autoloads nil "mm-url" "gnus/mm-url.el" (22150 28227 978072 -;;;;;; 702000)) +;;;### (autoloads nil "mm-url" "gnus/mm-url.el" (22180 39318 347077 +;;;;;; 779000)) ;;; Generated autoloads from gnus/mm-url.el (autoload 'mm-url-insert-file-contents "mm-url" "\ @@ -18611,8 +18632,8 @@ Insert file contents of URL using `mm-url-program'. ;;;*** -;;;### (autoloads nil "mm-uu" "gnus/mm-uu.el" (22150 28227 982072 -;;;;;; 702000)) +;;;### (autoloads nil "mm-uu" "gnus/mm-uu.el" (22180 39318 348077 +;;;;;; 774000)) ;;; Generated autoloads from gnus/mm-uu.el (autoload 'mm-uu-dissect "mm-uu" "\ @@ -18631,7 +18652,7 @@ Assume text has been decoded if DECODED is non-nil. ;;;*** -;;;### (autoloads nil "mml" "gnus/mml.el" (22150 28227 986072 702000)) +;;;### (autoloads nil "mml" "gnus/mml.el" (22180 39318 348077 774000)) ;;; Generated autoloads from gnus/mml.el (autoload 'mml-to-mime "mml" "\ @@ -18656,8 +18677,8 @@ body) or \"attachment\" (separate from the body). ;;;*** -;;;### (autoloads nil "mml1991" "gnus/mml1991.el" (22150 28227 986072 -;;;;;; 702000)) +;;;### (autoloads nil "mml1991" "gnus/mml1991.el" (22180 39318 349077 +;;;;;; 770000)) ;;; Generated autoloads from gnus/mml1991.el (autoload 'mml1991-encrypt "mml1991" "\ @@ -18672,8 +18693,8 @@ body) or \"attachment\" (separate from the body). ;;;*** -;;;### (autoloads nil "mml2015" "gnus/mml2015.el" (22150 28227 990072 -;;;;;; 702000)) +;;;### (autoloads nil "mml2015" "gnus/mml2015.el" (22180 39318 349077 +;;;;;; 770000)) ;;; Generated autoloads from gnus/mml2015.el (autoload 'mml2015-decrypt "mml2015" "\ @@ -18713,16 +18734,16 @@ body) or \"attachment\" (separate from the body). ;;;*** -;;;### (autoloads nil "mode-local" "cedet/mode-local.el" (22150 28227 -;;;;;; 222072 702000)) +;;;### (autoloads nil "mode-local" "cedet/mode-local.el" (22183 58408 +;;;;;; 667002 38000)) ;;; Generated autoloads from cedet/mode-local.el (put 'define-overloadable-function 'doc-string-elt 3) ;;;*** -;;;### (autoloads nil "modula2" "progmodes/modula2.el" (22086 11930 -;;;;;; 214062 731000)) +;;;### (autoloads nil "modula2" "progmodes/modula2.el" (21887 52709 +;;;;;; 955061 134000)) ;;; Generated autoloads from progmodes/modula2.el (defalias 'modula-2-mode 'm2-mode) @@ -18755,8 +18776,8 @@ followed by the first character of the construct. ;;;*** -;;;### (autoloads nil "morse" "play/morse.el" (22150 28228 682072 -;;;;;; 702000)) +;;;### (autoloads nil "morse" "play/morse.el" (22180 39318 466077 +;;;;;; 231000)) ;;; Generated autoloads from play/morse.el (autoload 'morse-region "morse" "\ @@ -18781,8 +18802,8 @@ Convert NATO phonetic alphabet in region to ordinary ASCII text. ;;;*** -;;;### (autoloads nil "mouse-drag" "mouse-drag.el" (22150 28228 326072 -;;;;;; 702000)) +;;;### (autoloads nil "mouse-drag" "mouse-drag.el" (22180 39318 403077 +;;;;;; 521000)) ;;; Generated autoloads from mouse-drag.el (autoload 'mouse-drag-throw "mouse-drag" "\ @@ -18829,7 +18850,7 @@ To test this function, evaluate: ;;;*** -;;;### (autoloads nil "mpc" "mpc.el" (22150 28228 326072 702000)) +;;;### (autoloads nil "mpc" "mpc.el" (22180 39318 404077 516000)) ;;; Generated autoloads from mpc.el (autoload 'mpc "mpc" "\ @@ -18839,7 +18860,7 @@ Main entry point for MPC. ;;;*** -;;;### (autoloads nil "mpuz" "play/mpuz.el" (22150 28228 682072 702000)) +;;;### (autoloads nil "mpuz" "play/mpuz.el" (22180 39318 467077 227000)) ;;; Generated autoloads from play/mpuz.el (autoload 'mpuz "mpuz" "\ @@ -18849,7 +18870,7 @@ Multiplication puzzle with GNU Emacs. ;;;*** -;;;### (autoloads nil "msb" "msb.el" (22150 28228 338072 702000)) +;;;### (autoloads nil "msb" "msb.el" (22180 39318 404077 516000)) ;;; Generated autoloads from msb.el (defvar msb-mode nil "\ @@ -18874,8 +18895,8 @@ different buffer menu using the function `msb'. ;;;*** -;;;### (autoloads nil "mule-diag" "international/mule-diag.el" (22150 -;;;;;; 28228 114072 702000)) +;;;### (autoloads nil "mule-diag" "international/mule-diag.el" (22180 +;;;;;; 39318 367077 687000)) ;;; Generated autoloads from international/mule-diag.el (autoload 'list-character-sets "mule-diag" "\ @@ -19007,8 +19028,8 @@ The default is 20. If LIMIT is negative, do not limit the listing. ;;;*** -;;;### (autoloads nil "mule-util" "international/mule-util.el" (22150 -;;;;;; 28228 114072 702000)) +;;;### (autoloads nil "mule-util" "international/mule-util.el" (22180 +;;;;;; 39318 367077 687000)) ;;; Generated autoloads from international/mule-util.el (defsubst string-to-list (string) "\ @@ -19167,8 +19188,8 @@ QUALITY can be: ;;;*** -;;;### (autoloads nil "net-utils" "net/net-utils.el" (22150 28228 -;;;;;; 378072 702000)) +;;;### (autoloads nil "net-utils" "net/net-utils.el" (22180 39318 +;;;;;; 409077 494000)) ;;; Generated autoloads from net/net-utils.el (autoload 'ifconfig "net-utils" "\ @@ -19262,8 +19283,8 @@ Open a network connection to HOST on PORT. ;;;*** -;;;### (autoloads nil "netrc" "net/netrc.el" (22150 28228 378072 -;;;;;; 702000)) +;;;### (autoloads nil "netrc" "net/netrc.el" (22180 39318 409077 +;;;;;; 494000)) ;;; Generated autoloads from net/netrc.el (autoload 'netrc-credentials "netrc" "\ @@ -19275,8 +19296,8 @@ listed in the PORTS list. ;;;*** -;;;### (autoloads nil "network-stream" "net/network-stream.el" (22150 -;;;;;; 28228 378072 702000)) +;;;### (autoloads nil "network-stream" "net/network-stream.el" (22180 +;;;;;; 39318 409077 494000)) ;;; Generated autoloads from net/network-stream.el (autoload 'open-network-stream "network-stream" "\ @@ -19372,8 +19393,8 @@ asynchronously, if possible. ;;;*** -;;;### (autoloads nil "newst-backend" "net/newst-backend.el" (22150 -;;;;;; 28228 378072 702000)) +;;;### (autoloads nil "newst-backend" "net/newst-backend.el" (22180 +;;;;;; 39318 410077 489000)) ;;; Generated autoloads from net/newst-backend.el (autoload 'newsticker-running-p "newst-backend" "\ @@ -19395,7 +19416,7 @@ Run `newsticker-start-hook' if newsticker was not running already. ;;;*** ;;;### (autoloads nil "newst-plainview" "net/newst-plainview.el" -;;;;;; (22150 28228 382072 702000)) +;;;;;; (22180 39318 410077 489000)) ;;; Generated autoloads from net/newst-plainview.el (autoload 'newsticker-plainview "newst-plainview" "\ @@ -19405,8 +19426,8 @@ Start newsticker plainview. ;;;*** -;;;### (autoloads nil "newst-reader" "net/newst-reader.el" (22150 -;;;;;; 28228 382072 702000)) +;;;### (autoloads nil "newst-reader" "net/newst-reader.el" (22180 +;;;;;; 39318 410077 489000)) ;;; Generated autoloads from net/newst-reader.el (autoload 'newsticker-show-news "newst-reader" "\ @@ -19416,8 +19437,8 @@ Start reading news. You may want to bind this to a key. ;;;*** -;;;### (autoloads nil "newst-ticker" "net/newst-ticker.el" (22150 -;;;;;; 28228 382072 702000)) +;;;### (autoloads nil "newst-ticker" "net/newst-ticker.el" (22180 +;;;;;; 39318 410077 489000)) ;;; Generated autoloads from net/newst-ticker.el (autoload 'newsticker-ticker-running-p "newst-ticker" "\ @@ -19437,8 +19458,8 @@ running already. ;;;*** -;;;### (autoloads nil "newst-treeview" "net/newst-treeview.el" (22150 -;;;;;; 28228 382072 702000)) +;;;### (autoloads nil "newst-treeview" "net/newst-treeview.el" (22180 +;;;;;; 39318 411077 484000)) ;;; Generated autoloads from net/newst-treeview.el (autoload 'newsticker-treeview "newst-treeview" "\ @@ -19448,8 +19469,8 @@ Start newsticker treeview. ;;;*** -;;;### (autoloads nil "nndiary" "gnus/nndiary.el" (22150 28227 990072 -;;;;;; 702000)) +;;;### (autoloads nil "nndiary" "gnus/nndiary.el" (22180 39318 349077 +;;;;;; 770000)) ;;; Generated autoloads from gnus/nndiary.el (autoload 'nndiary-generate-nov-databases "nndiary" "\ @@ -19459,8 +19480,8 @@ Generate NOV databases in all nndiary directories. ;;;*** -;;;### (autoloads nil "nndoc" "gnus/nndoc.el" (22150 28227 990072 -;;;;;; 702000)) +;;;### (autoloads nil "nndoc" "gnus/nndoc.el" (22180 39318 350077 +;;;;;; 765000)) ;;; Generated autoloads from gnus/nndoc.el (autoload 'nndoc-add-type "nndoc" "\ @@ -19474,8 +19495,8 @@ symbol in the alist. ;;;*** -;;;### (autoloads nil "nnfolder" "gnus/nnfolder.el" (22150 28227 -;;;;;; 994072 702000)) +;;;### (autoloads nil "nnfolder" "gnus/nnfolder.el" (22180 39318 +;;;;;; 350077 765000)) ;;; Generated autoloads from gnus/nnfolder.el (autoload 'nnfolder-generate-active-file "nnfolder" "\ @@ -19486,7 +19507,7 @@ This command does not work if you use short group names. ;;;*** -;;;### (autoloads nil "nnml" "gnus/nnml.el" (22150 28228 2072 702000)) +;;;### (autoloads nil "nnml" "gnus/nnml.el" (22180 39318 352077 756000)) ;;; Generated autoloads from gnus/nnml.el (autoload 'nnml-generate-nov-databases "nnml" "\ @@ -19496,7 +19517,7 @@ Generate NOV databases in all nnml directories. ;;;*** -;;;### (autoloads nil "novice" "novice.el" (22150 28228 446072 702000)) +;;;### (autoloads nil "novice" "novice.el" (22180 39318 422077 434000)) ;;; Generated autoloads from novice.el (define-obsolete-variable-alias 'disabled-command-hook 'disabled-command-function "22.1") @@ -19528,8 +19549,8 @@ future sessions. ;;;*** -;;;### (autoloads nil "nroff-mode" "textmodes/nroff-mode.el" (22150 -;;;;;; 28229 102072 702000)) +;;;### (autoloads nil "nroff-mode" "textmodes/nroff-mode.el" (22180 +;;;;;; 39318 532076 928000)) ;;; Generated autoloads from textmodes/nroff-mode.el (autoload 'nroff-mode "nroff-mode" "\ @@ -19543,14 +19564,14 @@ closing requests for requests that are used in matched pairs. ;;;*** -;;;### (autoloads nil "ntlm" "net/ntlm.el" (22150 28228 386072 702000)) +;;;### (autoloads nil "ntlm" "net/ntlm.el" (22180 39318 411077 484000)) ;;; Generated autoloads from net/ntlm.el (push (purecopy '(ntlm 2 0 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "nxml-glyph" "nxml/nxml-glyph.el" (22150 28228 -;;;;;; 450072 702000)) +;;;### (autoloads nil "nxml-glyph" "nxml/nxml-glyph.el" (22180 39318 +;;;;;; 422077 434000)) ;;; Generated autoloads from nxml/nxml-glyph.el (autoload 'nxml-glyph-display-string "nxml-glyph" "\ @@ -19562,8 +19583,8 @@ Return nil if the face cannot display a glyph for N. ;;;*** -;;;### (autoloads nil "nxml-mode" "nxml/nxml-mode.el" (22150 28228 -;;;;;; 450072 702000)) +;;;### (autoloads nil "nxml-mode" "nxml/nxml-mode.el" (22180 39318 +;;;;;; 422077 434000)) ;;; Generated autoloads from nxml/nxml-mode.el (autoload 'nxml-mode "nxml-mode" "\ @@ -19623,8 +19644,8 @@ Many aspects this mode can be customized using ;;;*** -;;;### (autoloads nil "nxml-uchnm" "nxml/nxml-uchnm.el" (22150 28228 -;;;;;; 454072 702000)) +;;;### (autoloads nil "nxml-uchnm" "nxml/nxml-uchnm.el" (22180 39318 +;;;;;; 423077 429000)) ;;; Generated autoloads from nxml/nxml-uchnm.el (autoload 'nxml-enable-unicode-char-name-sets "nxml-uchnm" "\ @@ -19636,8 +19657,8 @@ the variable `nxml-enabled-unicode-blocks'. ;;;*** -;;;### (autoloads nil "octave" "progmodes/octave.el" (22150 28228 -;;;;;; 874072 702000)) +;;;### (autoloads nil "octave" "progmodes/octave.el" (22180 39318 +;;;;;; 497077 89000)) ;;; Generated autoloads from progmodes/octave.el (autoload 'octave-mode "octave" "\ @@ -19674,8 +19695,8 @@ startup file, `~/.emacs-octave'. ;;;*** -;;;### (autoloads nil "opascal" "progmodes/opascal.el" (22150 28228 -;;;;;; 878072 702000)) +;;;### (autoloads nil "opascal" "progmodes/opascal.el" (22180 39318 +;;;;;; 497077 89000)) ;;; Generated autoloads from progmodes/opascal.el (define-obsolete-function-alias 'delphi-mode 'opascal-mode "24.4") @@ -19710,7 +19731,7 @@ Coloring: ;;;*** -;;;### (autoloads nil "org" "org/org.el" (22150 28228 642072 702000)) +;;;### (autoloads nil "org" "org/org.el" (22183 58408 693001 832000)) ;;; Generated autoloads from org/org.el (autoload 'org-babel-do-load-languages "org" "\ @@ -19931,8 +19952,8 @@ Call the customize function with org as argument. ;;;*** -;;;### (autoloads nil "org-agenda" "org/org-agenda.el" (22150 28228 -;;;;;; 558072 702000)) +;;;### (autoloads nil "org-agenda" "org/org-agenda.el" (22180 39318 +;;;;;; 445077 328000)) ;;; Generated autoloads from org/org-agenda.el (autoload 'org-toggle-sticky-agenda "org-agenda" "\ @@ -20205,8 +20226,8 @@ to override `appt-message-warning-time'. ;;;*** -;;;### (autoloads nil "org-capture" "org/org-capture.el" (22150 28228 -;;;;;; 558072 702000)) +;;;### (autoloads nil "org-capture" "org/org-capture.el" (22180 39318 +;;;;;; 447077 319000)) ;;; Generated autoloads from org/org-capture.el (autoload 'org-capture-string "org-capture" "\ @@ -20248,8 +20269,8 @@ Set `org-capture-templates' to be similar to `org-remember-templates'. ;;;*** -;;;### (autoloads nil "org-colview" "org/org-colview.el" (22150 28228 -;;;;;; 582072 702000)) +;;;### (autoloads nil "org-colview" "org/org-colview.el" (22180 39318 +;;;;;; 447077 319000)) ;;; Generated autoloads from org/org-colview.el (autoload 'org-columns-remove-overlays "org-colview" "\ @@ -20312,8 +20333,8 @@ Turn on or update column view in the agenda. ;;;*** -;;;### (autoloads nil "org-compat" "org/org-compat.el" (22150 28228 -;;;;;; 582072 702000)) +;;;### (autoloads nil "org-compat" "org/org-compat.el" (22180 39318 +;;;;;; 448077 314000)) ;;; Generated autoloads from org/org-compat.el (autoload 'org-check-version "org-compat" "\ @@ -20323,8 +20344,8 @@ Try very hard to provide sensible version strings. ;;;*** -;;;### (autoloads nil "org-macs" "org/org-macs.el" (22150 28228 602072 -;;;;;; 702000)) +;;;### (autoloads nil "org-macs" "org/org-macs.el" (22180 39318 451077 +;;;;;; 300000)) ;;; Generated autoloads from org/org-macs.el (autoload 'org-load-noerror-mustsuffix "org-macs" "\ @@ -20334,8 +20355,8 @@ Load FILE with optional arguments NOERROR and MUSTSUFFIX. Drop the MUSTSUFFIX a ;;;*** -;;;### (autoloads nil "org-version" "org/org-version.el" (22086 11930 -;;;;;; 98062 731000)) +;;;### (autoloads nil "org-version" "org/org-version.el" (21887 52709 +;;;;;; 904061 417000)) ;;; Generated autoloads from org/org-version.el (autoload 'org-release "org-version" "\ @@ -20352,8 +20373,8 @@ The Git version of org-mode. ;;;*** -;;;### (autoloads nil "outline" "outline.el" (22150 28228 666072 -;;;;;; 702000)) +;;;### (autoloads nil "outline" "outline.el" (22180 39318 462077 +;;;;;; 250000)) ;;; Generated autoloads from outline.el (put 'outline-regexp 'safe-local-variable 'stringp) (put 'outline-heading-end-regexp 'safe-local-variable 'stringp) @@ -20396,8 +20417,8 @@ See the command `outline-mode' for more information on this mode. ;;;*** -;;;### (autoloads nil "package" "emacs-lisp/package.el" (22150 28227 -;;;;;; 450072 702000)) +;;;### (autoloads nil "package" "emacs-lisp/package.el" (22188 33909 +;;;;;; 808230 168000)) ;;; Generated autoloads from emacs-lisp/package.el (push (purecopy '(package 1 1 0)) package--builtin-versions) @@ -20512,7 +20533,7 @@ The list is displayed in a buffer named `*Packages*'. ;;;*** -;;;### (autoloads nil "paren" "paren.el" (22150 28228 666072 702000)) +;;;### (autoloads nil "paren" "paren.el" (22180 39318 463077 245000)) ;;; Generated autoloads from paren.el (defvar show-paren-mode nil "\ @@ -20538,8 +20559,8 @@ matching parenthesis is highlighted in `show-paren-style' after ;;;*** -;;;### (autoloads nil "parse-time" "calendar/parse-time.el" (22150 -;;;;;; 28227 78072 702000)) +;;;### (autoloads nil "parse-time" "calendar/parse-time.el" (22180 +;;;;;; 39318 245078 248000)) ;;; Generated autoloads from calendar/parse-time.el (put 'parse-time-rules 'risky-local-variable t) @@ -20552,8 +20573,8 @@ unknown are returned as nil. ;;;*** -;;;### (autoloads nil "pascal" "progmodes/pascal.el" (22150 28228 -;;;;;; 890072 702000)) +;;;### (autoloads nil "pascal" "progmodes/pascal.el" (22180 39318 +;;;;;; 498077 84000)) ;;; Generated autoloads from progmodes/pascal.el (autoload 'pascal-mode "pascal" "\ @@ -20602,8 +20623,8 @@ See also the user variables `pascal-type-keywords', `pascal-start-keywords' and ;;;*** -;;;### (autoloads nil "password-cache" "password-cache.el" (22150 -;;;;;; 28228 666072 702000)) +;;;### (autoloads nil "password-cache" "password-cache.el" (22180 +;;;;;; 39318 463077 245000)) ;;; Generated autoloads from password-cache.el (defvar password-cache t "\ @@ -20624,17 +20645,41 @@ Check if KEY is in the cache. ;;;*** -;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (22150 28227 -;;;;;; 454072 702000)) +;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (22183 58408 +;;;;;; 668002 30000)) ;;; Generated autoloads from emacs-lisp/pcase.el (autoload 'pcase "pcase" "\ -Eval EXP and perform ML-style pattern matching on that value. +Evaluate EXP and attempt to match it against structural patterns. CASES is a list of elements of the form (PATTERN CODE...). -Patterns can take the following forms: +A structural PATTERN describes a template that identifies a class +of values. For example, the pattern `(,foo ,bar) matches any +two element list, binding its elements to symbols named `foo' and +`bar' -- in much the same way that `cl-destructuring-bind' would. + +A significant difference from `cl-destructuring-bind' is that, if +a pattern match fails, the next case is tried until either a +successful match is found or there are no more cases. + +Another difference is that pattern elements may be backquoted, +meaning they must match exactly: The pattern \\='(foo bar) +matches only against two element lists containing the symbols +`foo' and `bar' in that order. (As a short-hand, atoms always +match themselves, such as numbers or strings, and need not be +quoted). + +Lastly, a pattern can be logical, such as (pred numberp), that +matches any number-like element; or the symbol `_', that matches +anything. Also, when patterns are backquoted, a comma may be +used to introduce logical patterns inside backquoted patterns. + +The complete list of standard patterns is as follows: + _ matches anything. SYMBOL matches anything and binds it to SYMBOL. + If a SYMBOL is used twice in the same pattern + the second occurrence becomes an `eq'uality test. (or PAT...) matches if any of the patterns matches. (and PAT...) matches if all the patterns match. \\='VAL matches if the object is `equal' to VAL. @@ -20644,23 +20689,18 @@ Patterns can take the following forms: (guard BOOLEXP) matches if BOOLEXP evaluates to non-nil. (let PAT EXP) matches if EXP matches PAT. (app FUN PAT) matches if FUN applied to the object matches PAT. -If a SYMBOL is used twice in the same pattern (i.e. the pattern is -\"non-linear\"), then the second occurrence is turned into an `eq'uality test. -FUN can take the form +Additional patterns can be defined using `pcase-defmacro'. + +The FUN argument in the `app' pattern may have the following forms: SYMBOL or (lambda ARGS BODY) in which case it's called with one argument. (F ARG1 .. ARGn) in which case F gets called with an n+1'th argument which is the value being matched. -So a FUN of the form SYMBOL is equivalent to one of the form (FUN). +So a FUN of the form SYMBOL is equivalent to (FUN). FUN can refer to variables bound earlier in the pattern. -E.g. you can match pairs where the cdr is larger than the car with a pattern -like \\=`(,a . ,(pred (< a))) or, with more checks: -\\=`(,(and a (pred numberp)) . ,(and (pred numberp) (pred (< a)))) -FUN is assumed to be pure, i.e. it can be dropped if its result is not used, -and two identical calls can be merged into one. -Additional patterns can be defined via `pcase-defmacro'. -Currently, the following patterns are provided this way: +See Info node `(elisp) Pattern matching case statement' in the +Emacs Lisp manual for more information and examples. \(fn EXP &rest CASES)" nil t) @@ -20726,8 +20766,8 @@ to this macro. ;;;*** -;;;### (autoloads nil "pcmpl-cvs" "pcmpl-cvs.el" (22150 28228 666072 -;;;;;; 702000)) +;;;### (autoloads nil "pcmpl-cvs" "pcmpl-cvs.el" (22180 39318 463077 +;;;;;; 245000)) ;;; Generated autoloads from pcmpl-cvs.el (autoload 'pcomplete/cvs "pcmpl-cvs" "\ @@ -20737,8 +20777,8 @@ Completion rules for the `cvs' command. ;;;*** -;;;### (autoloads nil "pcmpl-gnu" "pcmpl-gnu.el" (22150 28228 666072 -;;;;;; 702000)) +;;;### (autoloads nil "pcmpl-gnu" "pcmpl-gnu.el" (22180 39318 463077 +;;;;;; 245000)) ;;; Generated autoloads from pcmpl-gnu.el (autoload 'pcomplete/gzip "pcmpl-gnu" "\ @@ -20765,8 +20805,8 @@ Completion for the GNU tar utility. ;;;*** -;;;### (autoloads nil "pcmpl-linux" "pcmpl-linux.el" (22150 28228 -;;;;;; 670072 702000)) +;;;### (autoloads nil "pcmpl-linux" "pcmpl-linux.el" (22180 39318 +;;;;;; 463077 245000)) ;;; Generated autoloads from pcmpl-linux.el (autoload 'pcomplete/kill "pcmpl-linux" "\ @@ -20786,8 +20826,8 @@ Completion for GNU/Linux `mount'. ;;;*** -;;;### (autoloads nil "pcmpl-rpm" "pcmpl-rpm.el" (22150 28228 670072 -;;;;;; 702000)) +;;;### (autoloads nil "pcmpl-rpm" "pcmpl-rpm.el" (22180 39318 463077 +;;;;;; 245000)) ;;; Generated autoloads from pcmpl-rpm.el (autoload 'pcomplete/rpm "pcmpl-rpm" "\ @@ -20797,8 +20837,8 @@ Completion for the `rpm' command. ;;;*** -;;;### (autoloads nil "pcmpl-unix" "pcmpl-unix.el" (22150 28228 670072 -;;;;;; 702000)) +;;;### (autoloads nil "pcmpl-unix" "pcmpl-unix.el" (22180 39318 463077 +;;;;;; 245000)) ;;; Generated autoloads from pcmpl-unix.el (autoload 'pcomplete/cd "pcmpl-unix" "\ @@ -20853,8 +20893,8 @@ Includes files as well as host names followed by a colon. ;;;*** -;;;### (autoloads nil "pcmpl-x" "pcmpl-x.el" (22150 28228 670072 -;;;;;; 702000)) +;;;### (autoloads nil "pcmpl-x" "pcmpl-x.el" (22180 39318 463077 +;;;;;; 245000)) ;;; Generated autoloads from pcmpl-x.el (autoload 'pcomplete/tlmgr "pcmpl-x" "\ @@ -20878,8 +20918,8 @@ Completion for the `ag' command. ;;;*** -;;;### (autoloads nil "pcomplete" "pcomplete.el" (22150 28228 674072 -;;;;;; 702000)) +;;;### (autoloads nil "pcomplete" "pcomplete.el" (22180 39318 463077 +;;;;;; 245000)) ;;; Generated autoloads from pcomplete.el (autoload 'pcomplete "pcomplete" "\ @@ -20936,7 +20976,7 @@ Setup `shell-mode' to use pcomplete. ;;;*** -;;;### (autoloads nil "pcvs" "vc/pcvs.el" (22150 28229 282072 702000)) +;;;### (autoloads nil "pcvs" "vc/pcvs.el" (22183 58408 707001 720000)) ;;; Generated autoloads from vc/pcvs.el (autoload 'cvs-checkout "pcvs" "\ @@ -21011,8 +21051,8 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d ;;;*** -;;;### (autoloads nil "pcvs-defs" "vc/pcvs-defs.el" (22150 28229 -;;;;;; 278072 702000)) +;;;### (autoloads nil "pcvs-defs" "vc/pcvs-defs.el" (22180 39318 +;;;;;; 552076 836000)) ;;; Generated autoloads from vc/pcvs-defs.el (defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] `(menu-item ,(purecopy "Directory Status") cvs-status :help ,(purecopy "A more verbose status of a workarea"))) (define-key m [checkout] `(menu-item ,(purecopy "Checkout Module") cvs-checkout :help ,(purecopy "Check out a module from the repository"))) (define-key m [update] `(menu-item ,(purecopy "Update Directory") cvs-update :help ,(purecopy "Fetch updates from the repository"))) (define-key m [examine] `(menu-item ,(purecopy "Examine Directory") cvs-examine :help ,(purecopy "Examine the current state of a workarea"))) (fset 'cvs-global-menu m)) "\ @@ -21020,8 +21060,8 @@ Global menu used by PCL-CVS.") ;;;*** -;;;### (autoloads nil "perl-mode" "progmodes/perl-mode.el" (22150 -;;;;;; 28228 890072 702000)) +;;;### (autoloads nil "perl-mode" "progmodes/perl-mode.el" (22180 +;;;;;; 39318 498077 84000)) ;;; Generated autoloads from progmodes/perl-mode.el (put 'perl-indent-level 'safe-local-variable 'integerp) (put 'perl-continued-statement-offset 'safe-local-variable 'integerp) @@ -21082,8 +21122,8 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'. ;;;*** -;;;### (autoloads nil "picture" "textmodes/picture.el" (22150 28229 -;;;;;; 106072 702000)) +;;;### (autoloads nil "picture" "textmodes/picture.el" (22180 39318 +;;;;;; 532076 928000)) ;;; Generated autoloads from textmodes/picture.el (autoload 'picture-mode "picture" "\ @@ -21163,8 +21203,8 @@ they are not by default assigned to keys. ;;;*** -;;;### (autoloads nil "pinentry" "net/pinentry.el" (22150 28228 386072 -;;;;;; 702000)) +;;;### (autoloads nil "pinentry" "net/pinentry.el" (22180 39318 411077 +;;;;;; 484000)) ;;; Generated autoloads from net/pinentry.el (push (purecopy '(pinentry 0 1)) package--builtin-versions) @@ -21181,8 +21221,8 @@ will not be shown. ;;;*** -;;;### (autoloads nil "plstore" "gnus/plstore.el" (22150 28228 10072 -;;;;;; 702000)) +;;;### (autoloads nil "plstore" "gnus/plstore.el" (22180 39318 353077 +;;;;;; 751000)) ;;; Generated autoloads from gnus/plstore.el (autoload 'plstore-open "plstore" "\ @@ -21197,8 +21237,8 @@ Major mode for editing PLSTORE files. ;;;*** -;;;### (autoloads nil "po" "textmodes/po.el" (22150 28229 106072 -;;;;;; 702000)) +;;;### (autoloads nil "po" "textmodes/po.el" (22180 39318 533076 +;;;;;; 923000)) ;;; Generated autoloads from textmodes/po.el (autoload 'po-find-file-coding-system "po" "\ @@ -21209,7 +21249,7 @@ Called through `file-coding-system-alist', before the file is visited for real. ;;;*** -;;;### (autoloads nil "pong" "play/pong.el" (22150 28228 682072 702000)) +;;;### (autoloads nil "pong" "play/pong.el" (22180 39318 467077 227000)) ;;; Generated autoloads from play/pong.el (autoload 'pong "pong" "\ @@ -21225,7 +21265,7 @@ pong-mode keybindings:\\ ;;;*** -;;;### (autoloads nil "pop3" "gnus/pop3.el" (22150 28228 14072 702000)) +;;;### (autoloads nil "pop3" "gnus/pop3.el" (22180 39318 354077 747000)) ;;; Generated autoloads from gnus/pop3.el (autoload 'pop3-movemail "pop3" "\ @@ -21236,8 +21276,8 @@ Use streaming commands. ;;;*** -;;;### (autoloads nil "pp" "emacs-lisp/pp.el" (22150 28227 454072 -;;;;;; 702000)) +;;;### (autoloads nil "pp" "emacs-lisp/pp.el" (22180 39318 292078 +;;;;;; 32000)) ;;; Generated autoloads from emacs-lisp/pp.el (autoload 'pp-to-string "pp" "\ @@ -21287,8 +21327,8 @@ Ignores leading comment characters. ;;;*** -;;;### (autoloads nil "printing" "printing.el" (22150 28228 698072 -;;;;;; 702000)) +;;;### (autoloads nil "printing" "printing.el" (22180 39318 468077 +;;;;;; 222000)) ;;; Generated autoloads from printing.el (push (purecopy '(printing 6 9 3)) package--builtin-versions) @@ -21876,7 +21916,7 @@ are both set to t. ;;;*** -;;;### (autoloads nil "proced" "proced.el" (22150 28228 702072 702000)) +;;;### (autoloads nil "proced" "proced.el" (22180 39318 469077 218000)) ;;; Generated autoloads from proced.el (autoload 'proced "proced" "\ @@ -21894,8 +21934,8 @@ Proced buffers. ;;;*** -;;;### (autoloads nil "profiler" "profiler.el" (22150 28228 702072 -;;;;;; 702000)) +;;;### (autoloads nil "profiler" "profiler.el" (22180 39318 469077 +;;;;;; 218000)) ;;; Generated autoloads from profiler.el (autoload 'profiler-start "profiler" "\ @@ -21923,8 +21963,8 @@ Open profile FILENAME. ;;;*** -;;;### (autoloads nil "project" "progmodes/project.el" (22150 28228 -;;;;;; 890072 702000)) +;;;### (autoloads nil "project" "progmodes/project.el" (22188 33909 +;;;;;; 812230 144000)) ;;; Generated autoloads from progmodes/project.el (autoload 'project-current "project" "\ @@ -21948,10 +21988,24 @@ pattern to search for. \(fn REGEXP)" t nil) +(autoload 'project-find-file "project" "\ +Visit a file (with completion) in the current project's roots. +The completion default is the filename at point, if one is +recognized. + +\(fn)" t nil) + +(autoload 'project-or-external-find-file "project" "\ +Visit a file (with completion) in the current project's roots or external roots. +The completion default is the filename at point, if one is +recognized. + +\(fn)" t nil) + ;;;*** -;;;### (autoloads nil "prolog" "progmodes/prolog.el" (22150 28228 -;;;;;; 894072 702000)) +;;;### (autoloads nil "prolog" "progmodes/prolog.el" (22188 33909 +;;;;;; 813230 138000)) ;;; Generated autoloads from progmodes/prolog.el (autoload 'prolog-mode "prolog" "\ @@ -21984,7 +22038,7 @@ With prefix argument ARG, restart the Prolog process if running before. ;;;*** -;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (22150 28228 986072 702000)) +;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (22180 39318 513077 15000)) ;;; Generated autoloads from ps-bdf.el (defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/local/share/emacs/fonts/bdf")) "\ @@ -21995,8 +22049,8 @@ The default value is (\"/usr/local/share/emacs/fonts/bdf\").") ;;;*** -;;;### (autoloads nil "ps-mode" "progmodes/ps-mode.el" (22150 28228 -;;;;;; 894072 702000)) +;;;### (autoloads nil "ps-mode" "progmodes/ps-mode.el" (22180 39318 +;;;;;; 500077 75000)) ;;; Generated autoloads from progmodes/ps-mode.el (push (purecopy '(ps-mode 1 1 9)) package--builtin-versions) @@ -22042,8 +22096,8 @@ Typing \\\\[ps-run-goto-error] when the cursor is at the number ;;;*** -;;;### (autoloads nil "ps-print" "ps-print.el" (22150 28228 990072 -;;;;;; 702000)) +;;;### (autoloads nil "ps-print" "ps-print.el" (22180 39318 514077 +;;;;;; 11000)) ;;; Generated autoloads from ps-print.el (push (purecopy '(ps-print 7 3 5)) package--builtin-versions) @@ -22240,8 +22294,8 @@ If EXTENSION is any other symbol, it is ignored. ;;;*** -;;;### (autoloads nil "pulse" "cedet/pulse.el" (22150 28227 222072 -;;;;;; 702000)) +;;;### (autoloads nil "pulse" "cedet/pulse.el" (22180 39318 252078 +;;;;;; 216000)) ;;; Generated autoloads from cedet/pulse.el (push (purecopy '(pulse 1 0)) package--builtin-versions) @@ -22259,8 +22313,8 @@ Optional argument FACE specifies the face to do the highlighting. ;;;*** -;;;### (autoloads nil "python" "progmodes/python.el" (22150 28228 -;;;;;; 906072 702000)) +;;;### (autoloads nil "python" "progmodes/python.el" (22183 58408 +;;;;;; 699001 784000)) ;;; Generated autoloads from progmodes/python.el (push (purecopy '(python 0 25 1)) package--builtin-versions) @@ -22297,7 +22351,7 @@ Major mode for editing Python files. ;;;*** -;;;### (autoloads nil "qp" "gnus/qp.el" (22150 28228 14072 702000)) +;;;### (autoloads nil "qp" "gnus/qp.el" (22180 39318 354077 747000)) ;;; Generated autoloads from gnus/qp.el (autoload 'quoted-printable-decode-region "qp" "\ @@ -22316,8 +22370,8 @@ them into characters should be done separately. ;;;*** -;;;### (autoloads nil "quail" "international/quail.el" (22150 28228 -;;;;;; 122072 702000)) +;;;### (autoloads nil "quail" "international/quail.el" (22180 39318 +;;;;;; 368077 682000)) ;;; Generated autoloads from international/quail.el (autoload 'quail-title "quail" "\ @@ -22547,8 +22601,8 @@ of each directory. ;;;*** -;;;### (autoloads nil "quail/hangul" "leim/quail/hangul.el" (22150 -;;;;;; 28228 202072 702000)) +;;;### (autoloads nil "quail/hangul" "leim/quail/hangul.el" (22180 +;;;;;; 39318 382077 618000)) ;;; Generated autoloads from leim/quail/hangul.el (autoload 'hangul-input-method-activate "quail/hangul" "\ @@ -22561,7 +22615,7 @@ HELP-TEXT is a text set in `hangul-input-method-help-text'. ;;;*** ;;;### (autoloads nil "quail/uni-input" "leim/quail/uni-input.el" -;;;;;; (22150 28228 210072 702000)) +;;;;;; (22180 39318 385077 604000)) ;;; Generated autoloads from leim/quail/uni-input.el (autoload 'ucs-input-activate "quail/uni-input" "\ @@ -22575,8 +22629,8 @@ While this input method is active, the variable ;;;*** -;;;### (autoloads nil "quickurl" "net/quickurl.el" (22150 28228 390072 -;;;;;; 702000)) +;;;### (autoloads nil "quickurl" "net/quickurl.el" (22180 39318 412077 +;;;;;; 480000)) ;;; Generated autoloads from net/quickurl.el (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\ @@ -22647,8 +22701,8 @@ Display `quickurl-list' as a formatted list using `quickurl-list-mode'. ;;;*** -;;;### (autoloads nil "rcirc" "net/rcirc.el" (22150 28228 390072 -;;;;;; 702000)) +;;;### (autoloads nil "rcirc" "net/rcirc.el" (22180 39318 413077 +;;;;;; 475000)) ;;; Generated autoloads from net/rcirc.el (autoload 'rcirc "rcirc" "\ @@ -22686,8 +22740,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "re-builder" "emacs-lisp/re-builder.el" (22150 -;;;;;; 28227 454072 702000)) +;;;### (autoloads nil "re-builder" "emacs-lisp/re-builder.el" (22180 +;;;;;; 39318 292078 32000)) ;;; Generated autoloads from emacs-lisp/re-builder.el (defalias 'regexp-builder 're-builder) @@ -22705,8 +22759,8 @@ matching parts of the target buffer will be highlighted. ;;;*** -;;;### (autoloads nil "recentf" "recentf.el" (22150 28228 990072 -;;;;;; 702000)) +;;;### (autoloads nil "recentf" "recentf.el" (22180 39318 515077 +;;;;;; 6000)) ;;; Generated autoloads from recentf.el (defvar recentf-mode nil "\ @@ -22732,7 +22786,7 @@ were operated on recently. ;;;*** -;;;### (autoloads nil "rect" "rect.el" (22150 28228 990072 702000)) +;;;### (autoloads nil "rect" "rect.el" (22180 39318 515077 6000)) ;;; Generated autoloads from rect.el (autoload 'delete-rectangle "rect" "\ @@ -22872,8 +22926,8 @@ Activates the region if needed. Only lasts until the region is deactivated. ;;;*** -;;;### (autoloads nil "refill" "textmodes/refill.el" (22150 28229 -;;;;;; 106072 702000)) +;;;### (autoloads nil "refill" "textmodes/refill.el" (22180 39318 +;;;;;; 533076 923000)) ;;; Generated autoloads from textmodes/refill.el (autoload 'refill-mode "refill" "\ @@ -22893,8 +22947,8 @@ For true \"word wrap\" behavior, use `visual-line-mode' instead. ;;;*** -;;;### (autoloads nil "reftex" "textmodes/reftex.el" (22150 28229 -;;;;;; 130072 702000)) +;;;### (autoloads nil "reftex" "textmodes/reftex.el" (22180 39318 +;;;;;; 536076 909000)) ;;; Generated autoloads from textmodes/reftex.el (autoload 'reftex-citation "reftex-cite" nil t) (autoload 'reftex-all-document-files "reftex-parse") @@ -22947,8 +23001,8 @@ This enforces rescanning the buffer on next use. ;;;*** -;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (22150 -;;;;;; 28229 114072 702000)) +;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (22183 +;;;;;; 58408 706001 728000)) ;;; Generated autoloads from textmodes/reftex-vars.el (put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) (put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) @@ -22957,8 +23011,8 @@ This enforces rescanning the buffer on next use. ;;;*** -;;;### (autoloads nil "regexp-opt" "emacs-lisp/regexp-opt.el" (22150 -;;;;;; 28227 454072 702000)) +;;;### (autoloads nil "regexp-opt" "emacs-lisp/regexp-opt.el" (22180 +;;;;;; 39318 292078 32000)) ;;; Generated autoloads from emacs-lisp/regexp-opt.el (autoload 'regexp-opt "regexp-opt" "\ @@ -22987,15 +23041,15 @@ This means the number of non-shy regexp grouping constructs ;;;*** -;;;### (autoloads nil "regi" "emacs-lisp/regi.el" (22150 28227 454072 -;;;;;; 702000)) +;;;### (autoloads nil "regi" "emacs-lisp/regi.el" (22180 39318 292078 +;;;;;; 32000)) ;;; Generated autoloads from emacs-lisp/regi.el (push (purecopy '(regi 1 8)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "remember" "textmodes/remember.el" (22150 28229 -;;;;;; 130072 702000)) +;;;### (autoloads nil "remember" "textmodes/remember.el" (22180 39318 +;;;;;; 536076 909000)) ;;; Generated autoloads from textmodes/remember.el (push (purecopy '(remember 2 0)) package--builtin-versions) @@ -23049,7 +23103,7 @@ to turn the *scratch* buffer into your notes buffer. ;;;*** -;;;### (autoloads nil "repeat" "repeat.el" (22150 28228 994072 702000)) +;;;### (autoloads nil "repeat" "repeat.el" (22180 39318 515077 6000)) ;;; Generated autoloads from repeat.el (push (purecopy '(repeat 0 51)) package--builtin-versions) @@ -23072,8 +23126,8 @@ recently executed command not bound to an input event\". ;;;*** -;;;### (autoloads nil "reporter" "mail/reporter.el" (22150 28228 -;;;;;; 234072 702000)) +;;;### (autoloads nil "reporter" "mail/reporter.el" (22180 39318 +;;;;;; 388077 590000)) ;;; Generated autoloads from mail/reporter.el (autoload 'reporter-submit-bug-report "reporter" "\ @@ -23104,8 +23158,8 @@ mail-sending package is used for editing and sending the message. ;;;*** -;;;### (autoloads nil "reposition" "reposition.el" (22150 28228 994072 -;;;;;; 702000)) +;;;### (autoloads nil "reposition" "reposition.el" (22180 39318 516077 +;;;;;; 2000)) ;;; Generated autoloads from reposition.el (autoload 'reposition-window "reposition" "\ @@ -23131,7 +23185,7 @@ first comment line visible (if point is in a comment). ;;;*** -;;;### (autoloads nil "reveal" "reveal.el" (22150 28228 994072 702000)) +;;;### (autoloads nil "reveal" "reveal.el" (22180 39318 516077 2000)) ;;; Generated autoloads from reveal.el (autoload 'reveal-mode "reveal" "\ @@ -23166,8 +23220,8 @@ the mode if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "ring" "emacs-lisp/ring.el" (22150 28227 454072 -;;;;;; 702000)) +;;;### (autoloads nil "ring" "emacs-lisp/ring.el" (22180 39318 292078 +;;;;;; 32000)) ;;; Generated autoloads from emacs-lisp/ring.el (autoload 'ring-p "ring" "\ @@ -23182,8 +23236,8 @@ Make a ring that can contain SIZE elements. ;;;*** -;;;### (autoloads nil "rlogin" "net/rlogin.el" (22150 28228 394072 -;;;;;; 702000)) +;;;### (autoloads nil "rlogin" "net/rlogin.el" (22180 39318 413077 +;;;;;; 475000)) ;;; Generated autoloads from net/rlogin.el (autoload 'rlogin "rlogin" "\ @@ -23227,8 +23281,8 @@ variable. ;;;*** -;;;### (autoloads nil "rmail" "mail/rmail.el" (22150 28228 242072 -;;;;;; 702000)) +;;;### (autoloads nil "rmail" "mail/rmail.el" (22180 39318 389077 +;;;;;; 585000)) ;;; Generated autoloads from mail/rmail.el (defvar rmail-file-name (purecopy "~/RMAIL") "\ @@ -23425,8 +23479,8 @@ Set PASSWORD to be used for retrieving mail from a POP or IMAP server. ;;;*** -;;;### (autoloads nil "rmailout" "mail/rmailout.el" (22150 28228 -;;;;;; 246072 702000)) +;;;### (autoloads nil "rmailout" "mail/rmailout.el" (22180 39318 +;;;;;; 390077 581000)) ;;; Generated autoloads from mail/rmailout.el (put 'rmail-output-file-alist 'risky-local-variable t) @@ -23490,8 +23544,8 @@ than appending to it. Deletes the message after writing if ;;;*** -;;;### (autoloads nil "rng-cmpct" "nxml/rng-cmpct.el" (22150 28228 -;;;;;; 454072 702000)) +;;;### (autoloads nil "rng-cmpct" "nxml/rng-cmpct.el" (22180 39318 +;;;;;; 423077 429000)) ;;; Generated autoloads from nxml/rng-cmpct.el (autoload 'rng-c-load-schema "rng-cmpct" "\ @@ -23502,8 +23556,8 @@ Return a pattern. ;;;*** -;;;### (autoloads nil "rng-nxml" "nxml/rng-nxml.el" (22150 28228 -;;;;;; 458072 702000)) +;;;### (autoloads nil "rng-nxml" "nxml/rng-nxml.el" (22180 39318 +;;;;;; 424077 425000)) ;;; Generated autoloads from nxml/rng-nxml.el (autoload 'rng-nxml-mode-init "rng-nxml" "\ @@ -23515,8 +23569,8 @@ Validation will be enabled if `rng-nxml-auto-validate-flag' is non-nil. ;;;*** -;;;### (autoloads nil "rng-valid" "nxml/rng-valid.el" (22150 28228 -;;;;;; 462072 702000)) +;;;### (autoloads nil "rng-valid" "nxml/rng-valid.el" (22180 39318 +;;;;;; 425077 420000)) ;;; Generated autoloads from nxml/rng-valid.el (autoload 'rng-validate-mode "rng-valid" "\ @@ -23546,8 +23600,8 @@ to use for finding the schema. ;;;*** -;;;### (autoloads nil "rng-xsd" "nxml/rng-xsd.el" (22150 28228 462072 -;;;;;; 702000)) +;;;### (autoloads nil "rng-xsd" "nxml/rng-xsd.el" (22180 39318 426077 +;;;;;; 415000)) ;;; Generated autoloads from nxml/rng-xsd.el (put 'http://www\.w3\.org/2001/XMLSchema-datatypes 'rng-dt-compile 'rng-xsd-compile) @@ -23574,8 +23628,8 @@ must be equal. ;;;*** -;;;### (autoloads nil "robin" "international/robin.el" (22086 11929 -;;;;;; 882062 731000)) +;;;### (autoloads nil "robin" "international/robin.el" (22122 65326 +;;;;;; 50715 656000)) ;;; Generated autoloads from international/robin.el (autoload 'robin-define-package "robin" "\ @@ -23607,7 +23661,7 @@ Start using robin package NAME, which is a string. ;;;*** -;;;### (autoloads nil "rot13" "rot13.el" (22150 28228 994072 702000)) +;;;### (autoloads nil "rot13" "rot13.el" (22180 39318 516077 2000)) ;;; Generated autoloads from rot13.el (autoload 'rot13 "rot13" "\ @@ -23644,8 +23698,8 @@ Toggle the use of ROT13 encoding for the current window. ;;;*** -;;;### (autoloads nil "rst" "textmodes/rst.el" (22150 28229 146072 -;;;;;; 702000)) +;;;### (autoloads nil "rst" "textmodes/rst.el" (22180 39318 537076 +;;;;;; 905000)) ;;; Generated autoloads from textmodes/rst.el (add-to-list 'auto-mode-alist (purecopy '("\\.re?st\\'" . rst-mode))) @@ -23675,8 +23729,8 @@ for modes derived from Text mode, like Mail mode. ;;;*** -;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (22150 -;;;;;; 28228 910072 702000)) +;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (22180 +;;;;;; 39318 502077 66000)) ;;; Generated autoloads from progmodes/ruby-mode.el (push (purecopy '(ruby-mode 1 2)) package--builtin-versions) @@ -23693,8 +23747,8 @@ Major mode for editing Ruby code. ;;;*** -;;;### (autoloads nil "ruler-mode" "ruler-mode.el" (22150 28228 994072 -;;;;;; 702000)) +;;;### (autoloads nil "ruler-mode" "ruler-mode.el" (22180 39318 517076 +;;;;;; 997000)) ;;; Generated autoloads from ruler-mode.el (push (purecopy '(ruler-mode 1 6)) package--builtin-versions) @@ -23712,8 +23766,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "rx" "emacs-lisp/rx.el" (22150 28227 454072 -;;;;;; 702000)) +;;;### (autoloads nil "rx" "emacs-lisp/rx.el" (22180 39318 292078 +;;;;;; 32000)) ;;; Generated autoloads from emacs-lisp/rx.el (autoload 'rx-to-string "rx" "\ @@ -24024,15 +24078,15 @@ enclosed in `(and ...)'. ;;;*** -;;;### (autoloads nil "sasl-ntlm" "net/sasl-ntlm.el" (22150 28228 -;;;;;; 394072 702000)) +;;;### (autoloads nil "sasl-ntlm" "net/sasl-ntlm.el" (22180 39318 +;;;;;; 413077 475000)) ;;; Generated autoloads from net/sasl-ntlm.el (push (purecopy '(sasl 1 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "savehist" "savehist.el" (22150 28228 994072 -;;;;;; 702000)) +;;;### (autoloads nil "savehist" "savehist.el" (22180 39318 517076 +;;;;;; 997000)) ;;; Generated autoloads from savehist.el (push (purecopy '(savehist 24)) package--builtin-versions) @@ -24064,8 +24118,8 @@ histories, which is probably undesirable. ;;;*** -;;;### (autoloads nil "saveplace" "saveplace.el" (22150 28228 994072 -;;;;;; 702000)) +;;;### (autoloads nil "saveplace" "saveplace.el" (22180 39318 517076 +;;;;;; 997000)) ;;; Generated autoloads from saveplace.el (defvar save-place-mode nil "\ @@ -24086,8 +24140,8 @@ where it was when you previously visited the same file. ;;;*** -;;;### (autoloads nil "scheme" "progmodes/scheme.el" (22150 28228 -;;;;;; 910072 702000)) +;;;### (autoloads nil "scheme" "progmodes/scheme.el" (22180 39318 +;;;;;; 502077 66000)) ;;; Generated autoloads from progmodes/scheme.el (autoload 'scheme-mode "scheme" "\ @@ -24126,8 +24180,8 @@ that variable's value is a string. ;;;*** -;;;### (autoloads nil "score-mode" "gnus/score-mode.el" (22150 28228 -;;;;;; 18072 702000)) +;;;### (autoloads nil "score-mode" "gnus/score-mode.el" (22180 39318 +;;;;;; 354077 747000)) ;;; Generated autoloads from gnus/score-mode.el (autoload 'gnus-score-mode "score-mode" "\ @@ -24140,8 +24194,8 @@ This mode is an extended emacs-lisp mode. ;;;*** -;;;### (autoloads nil "scroll-all" "scroll-all.el" (22150 28228 994072 -;;;;;; 702000)) +;;;### (autoloads nil "scroll-all" "scroll-all.el" (22180 39318 517076 +;;;;;; 997000)) ;;; Generated autoloads from scroll-all.el (defvar scroll-all-mode nil "\ @@ -24166,8 +24220,8 @@ one window apply to all visible windows in the same frame. ;;;*** -;;;### (autoloads nil "scroll-lock" "scroll-lock.el" (22150 28228 -;;;;;; 994072 702000)) +;;;### (autoloads nil "scroll-lock" "scroll-lock.el" (22180 39318 +;;;;;; 517076 997000)) ;;; Generated autoloads from scroll-lock.el (autoload 'scroll-lock-mode "scroll-lock" "\ @@ -24183,16 +24237,16 @@ vertically fixed relative to window boundaries during scrolling. ;;;*** -;;;### (autoloads nil "secrets" "net/secrets.el" (22150 28228 394072 -;;;;;; 702000)) +;;;### (autoloads nil "secrets" "net/secrets.el" (22180 39318 413077 +;;;;;; 475000)) ;;; Generated autoloads from net/secrets.el (when (featurep 'dbusbind) (autoload 'secrets-show-secrets "secrets" nil t)) ;;;*** -;;;### (autoloads nil "semantic" "cedet/semantic.el" (22150 28227 -;;;;;; 222072 702000)) +;;;### (autoloads nil "semantic" "cedet/semantic.el" (22180 39318 +;;;;;; 253078 211000)) ;;; Generated autoloads from cedet/semantic.el (push (purecopy '(semantic 2 2)) package--builtin-versions) @@ -24250,7 +24304,7 @@ Semantic mode. ;;;*** ;;;### (autoloads nil "semantic/bovine/grammar" "cedet/semantic/bovine/grammar.el" -;;;;;; (22150 28227 234072 702000)) +;;;;;; (22180 39318 254078 206000)) ;;; Generated autoloads from cedet/semantic/bovine/grammar.el (autoload 'bovine-grammar-mode "semantic/bovine/grammar" "\ @@ -24261,7 +24315,7 @@ Major mode for editing Bovine grammars. ;;;*** ;;;### (autoloads nil "semantic/wisent/grammar" "cedet/semantic/wisent/grammar.el" -;;;;;; (22150 28227 266072 702000)) +;;;;;; (22180 39318 267078 147000)) ;;; Generated autoloads from cedet/semantic/wisent/grammar.el (autoload 'wisent-grammar-mode "semantic/wisent/grammar" "\ @@ -24271,8 +24325,8 @@ Major mode for editing Wisent grammars. ;;;*** -;;;### (autoloads nil "sendmail" "mail/sendmail.el" (22150 28228 -;;;;;; 254072 702000)) +;;;### (autoloads nil "sendmail" "mail/sendmail.el" (22180 39318 +;;;;;; 391077 576000)) ;;; Generated autoloads from mail/sendmail.el (defvar mail-from-style 'default "\ @@ -24553,14 +24607,14 @@ Like `mail' command, but display mail buffer in another frame. ;;;*** -;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (22150 28227 454072 -;;;;;; 702000)) +;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (22180 39318 293078 +;;;;;; 27000)) ;;; Generated autoloads from emacs-lisp/seq.el (push (purecopy '(seq 2 3)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "server" "server.el" (22150 28228 998072 702000)) +;;;### (autoloads nil "server" "server.el" (22180 39318 518076 992000)) ;;; Generated autoloads from server.el (put 'server-host 'risky-local-variable t) @@ -24627,7 +24681,7 @@ only these files will be asked to be saved. ;;;*** -;;;### (autoloads nil "ses" "ses.el" (22150 28229 14072 702000)) +;;;### (autoloads nil "ses" "ses.el" (22188 33909 814230 133000)) ;;; Generated autoloads from ses.el (autoload 'ses-mode "ses" "\ @@ -24671,8 +24725,8 @@ formula: ;;;*** -;;;### (autoloads nil "sgml-mode" "textmodes/sgml-mode.el" (22150 -;;;;;; 28229 150072 702000)) +;;;### (autoloads nil "sgml-mode" "textmodes/sgml-mode.el" (22180 +;;;;;; 39318 537076 905000)) ;;; Generated autoloads from textmodes/sgml-mode.el (autoload 'sgml-mode "sgml-mode" "\ @@ -24737,8 +24791,8 @@ To work around that, do: ;;;*** -;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (22150 -;;;;;; 28228 918072 702000)) +;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (22180 +;;;;;; 39318 503077 61000)) ;;; Generated autoloads from progmodes/sh-script.el (push (purecopy '(sh-script 2 0 6)) package--builtin-versions) (put 'sh-shell 'safe-local-variable 'symbolp) @@ -24802,8 +24856,8 @@ with your script for an edit-interpret-debug cycle. ;;;*** -;;;### (autoloads nil "shadow" "emacs-lisp/shadow.el" (22150 28227 -;;;;;; 454072 702000)) +;;;### (autoloads nil "shadow" "emacs-lisp/shadow.el" (22180 39318 +;;;;;; 293078 27000)) ;;; Generated autoloads from emacs-lisp/shadow.el (autoload 'list-load-path-shadows "shadow" "\ @@ -24852,8 +24906,8 @@ function, `load-path-shadows-find'. ;;;*** -;;;### (autoloads nil "shadowfile" "shadowfile.el" (22150 28229 14072 -;;;;;; 702000)) +;;;### (autoloads nil "shadowfile" "shadowfile.el" (22180 39318 519076 +;;;;;; 988000)) ;;; Generated autoloads from shadowfile.el (autoload 'shadow-define-cluster "shadowfile" "\ @@ -24891,7 +24945,7 @@ Set up file shadowing. ;;;*** -;;;### (autoloads nil "shell" "shell.el" (22150 28229 14072 702000)) +;;;### (autoloads nil "shell" "shell.el" (22180 39318 519076 988000)) ;;; Generated autoloads from shell.el (defvar shell-dumb-shell-regexp (purecopy "cmd\\(proxy\\)?\\.exe") "\ @@ -24939,7 +24993,7 @@ Otherwise, one argument `-i' is passed to the shell. ;;;*** -;;;### (autoloads nil "shr" "net/shr.el" (22150 28228 398072 702000)) +;;;### (autoloads nil "shr" "net/shr.el" (22188 33909 809230 162000)) ;;; Generated autoloads from net/shr.el (autoload 'shr-render-region "shr" "\ @@ -24956,8 +25010,8 @@ DOM should be a parse tree as generated by ;;;*** -;;;### (autoloads nil "sieve" "gnus/sieve.el" (22150 28228 18072 -;;;;;; 702000)) +;;;### (autoloads nil "sieve" "gnus/sieve.el" (22180 39318 355077 +;;;;;; 742000)) ;;; Generated autoloads from gnus/sieve.el (autoload 'sieve-manage "sieve" "\ @@ -24982,8 +25036,8 @@ DOM should be a parse tree as generated by ;;;*** -;;;### (autoloads nil "sieve-mode" "gnus/sieve-mode.el" (22150 28228 -;;;;;; 18072 702000)) +;;;### (autoloads nil "sieve-mode" "gnus/sieve-mode.el" (22180 39318 +;;;;;; 355077 742000)) ;;; Generated autoloads from gnus/sieve-mode.el (autoload 'sieve-mode "sieve-mode" "\ @@ -24998,8 +25052,8 @@ Turning on Sieve mode runs `sieve-mode-hook'. ;;;*** -;;;### (autoloads nil "simula" "progmodes/simula.el" (22150 28228 -;;;;;; 922072 702000)) +;;;### (autoloads nil "simula" "progmodes/simula.el" (22180 39318 +;;;;;; 503077 61000)) ;;; Generated autoloads from progmodes/simula.el (autoload 'simula-mode "simula" "\ @@ -25047,8 +25101,8 @@ with no arguments, if that value is non-nil. ;;;*** -;;;### (autoloads nil "skeleton" "skeleton.el" (22150 28229 18072 -;;;;;; 702000)) +;;;### (autoloads nil "skeleton" "skeleton.el" (22180 39318 521076 +;;;;;; 978000)) ;;; Generated autoloads from skeleton.el (defvar skeleton-filter-function 'identity "\ @@ -25167,8 +25221,8 @@ twice for the others. ;;;*** -;;;### (autoloads nil "smerge-mode" "vc/smerge-mode.el" (22150 28229 -;;;;;; 286072 702000)) +;;;### (autoloads nil "smerge-mode" "vc/smerge-mode.el" (22180 39318 +;;;;;; 554076 827000)) ;;; Generated autoloads from vc/smerge-mode.el (autoload 'smerge-ediff "smerge-mode" "\ @@ -25195,8 +25249,8 @@ If no conflict maker is found, turn off `smerge-mode'. ;;;*** -;;;### (autoloads nil "smiley" "gnus/smiley.el" (22150 28228 18072 -;;;;;; 702000)) +;;;### (autoloads nil "smiley" "gnus/smiley.el" (22180 39318 355077 +;;;;;; 742000)) ;;; Generated autoloads from gnus/smiley.el (autoload 'smiley-region "smiley" "\ @@ -25213,8 +25267,8 @@ interactively. If there's no argument, do it at the current buffer. ;;;*** -;;;### (autoloads nil "smtpmail" "mail/smtpmail.el" (22150 28228 -;;;;;; 254072 702000)) +;;;### (autoloads nil "smtpmail" "mail/smtpmail.el" (22180 39318 +;;;;;; 391077 576000)) ;;; Generated autoloads from mail/smtpmail.el (autoload 'smtpmail-send-it "smtpmail" "\ @@ -25229,8 +25283,8 @@ Send mail that was queued as a result of setting `smtpmail-queue-mail'. ;;;*** -;;;### (autoloads nil "snake" "play/snake.el" (22150 28228 682072 -;;;;;; 702000)) +;;;### (autoloads nil "snake" "play/snake.el" (22180 39318 467077 +;;;;;; 227000)) ;;; Generated autoloads from play/snake.el (autoload 'snake "snake" "\ @@ -25253,8 +25307,8 @@ Snake mode keybindings: ;;;*** -;;;### (autoloads nil "snmp-mode" "net/snmp-mode.el" (22150 28228 -;;;;;; 402072 702000)) +;;;### (autoloads nil "snmp-mode" "net/snmp-mode.el" (22180 39318 +;;;;;; 414077 471000)) ;;; Generated autoloads from net/snmp-mode.el (autoload 'snmp-mode "snmp-mode" "\ @@ -25283,15 +25337,15 @@ then `snmpv2-mode-hook'. ;;;*** -;;;### (autoloads nil "soap-client" "net/soap-client.el" (22150 28228 -;;;;;; 406072 702000)) +;;;### (autoloads nil "soap-client" "net/soap-client.el" (22180 39318 +;;;;;; 415077 466000)) ;;; Generated autoloads from net/soap-client.el (push (purecopy '(soap-client 3 0 2)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "solar" "calendar/solar.el" (22150 28227 82072 -;;;;;; 702000)) +;;;### (autoloads nil "solar" "calendar/solar.el" (22180 39318 245078 +;;;;;; 248000)) ;;; Generated autoloads from calendar/solar.el (autoload 'sunrise-sunset "solar" "\ @@ -25306,8 +25360,8 @@ This function is suitable for execution in an init file. ;;;*** -;;;### (autoloads nil "solitaire" "play/solitaire.el" (22150 28228 -;;;;;; 682072 702000)) +;;;### (autoloads nil "solitaire" "play/solitaire.el" (22180 39318 +;;;;;; 467077 227000)) ;;; Generated autoloads from play/solitaire.el (autoload 'solitaire "solitaire" "\ @@ -25382,7 +25436,7 @@ Pick your favorite shortcuts: ;;;*** -;;;### (autoloads nil "sort" "sort.el" (22150 28229 18072 702000)) +;;;### (autoloads nil "sort" "sort.el" (22180 39318 521076 978000)) ;;; Generated autoloads from sort.el (put 'sort-fold-case 'safe-local-variable 'booleanp) @@ -25557,7 +25611,7 @@ is non-nil, it also prints a message describing the number of deletions. ;;;*** -;;;### (autoloads nil "spam" "gnus/spam.el" (22150 28228 22072 702000)) +;;;### (autoloads nil "spam" "gnus/spam.el" (22180 39318 356077 737000)) ;;; Generated autoloads from gnus/spam.el (autoload 'spam-initialize "spam" "\ @@ -25571,8 +25625,8 @@ installed through `spam-necessary-extra-headers'. ;;;*** -;;;### (autoloads nil "spam-report" "gnus/spam-report.el" (22150 -;;;;;; 28228 22072 702000)) +;;;### (autoloads nil "spam-report" "gnus/spam-report.el" (22180 +;;;;;; 39318 355077 742000)) ;;; Generated autoloads from gnus/spam-report.el (autoload 'spam-report-process-queue "spam-report" "\ @@ -25614,8 +25668,8 @@ Spam reports will be queued with the method used when ;;;*** -;;;### (autoloads nil "speedbar" "speedbar.el" (22150 28229 22072 -;;;;;; 702000)) +;;;### (autoloads nil "speedbar" "speedbar.el" (22180 39318 522076 +;;;;;; 974000)) ;;; Generated autoloads from speedbar.el (defalias 'speedbar 'speedbar-frame-mode) @@ -25639,8 +25693,8 @@ selected. If the speedbar frame is active, then select the attached frame. ;;;*** -;;;### (autoloads nil "spook" "play/spook.el" (22150 28228 682072 -;;;;;; 702000)) +;;;### (autoloads nil "spook" "play/spook.el" (22180 39318 467077 +;;;;;; 227000)) ;;; Generated autoloads from play/spook.el (autoload 'spook "spook" "\ @@ -25655,8 +25709,8 @@ Return a vector containing the lines from `spook-phrases-file'. ;;;*** -;;;### (autoloads nil "sql" "progmodes/sql.el" (22150 28228 926072 -;;;;;; 702000)) +;;;### (autoloads nil "sql" "progmodes/sql.el" (22180 39318 505077 +;;;;;; 52000)) ;;; Generated autoloads from progmodes/sql.el (push (purecopy '(sql 3 5)) package--builtin-versions) @@ -26122,15 +26176,15 @@ Run vsql as an inferior process. ;;;*** -;;;### (autoloads nil "srecode" "cedet/srecode.el" (22150 28227 270072 -;;;;;; 702000)) +;;;### (autoloads nil "srecode" "cedet/srecode.el" (22180 39318 268078 +;;;;;; 142000)) ;;; Generated autoloads from cedet/srecode.el (push (purecopy '(srecode 1 2)) package--builtin-versions) ;;;*** ;;;### (autoloads nil "srecode/srt-mode" "cedet/srecode/srt-mode.el" -;;;;;; (22150 28227 274072 702000)) +;;;;;; (22180 39318 270078 133000)) ;;; Generated autoloads from cedet/srecode/srt-mode.el (autoload 'srecode-template-mode "srecode/srt-mode" "\ @@ -26142,8 +26196,8 @@ Major-mode for writing SRecode macros. ;;;*** -;;;### (autoloads nil "starttls" "gnus/starttls.el" (22150 28228 -;;;;;; 22072 702000)) +;;;### (autoloads nil "starttls" "gnus/starttls.el" (22180 39318 +;;;;;; 356077 737000)) ;;; Generated autoloads from gnus/starttls.el (autoload 'starttls-open-stream "starttls" "\ @@ -26166,7 +26220,8 @@ GnuTLS requires a port number. ;;;*** -;;;### (autoloads nil "strokes" "strokes.el" (22150 28229 22072 702000)) +;;;### (autoloads nil "strokes" "strokes.el" (22183 58408 704001 +;;;;;; 744000)) ;;; Generated autoloads from strokes.el (autoload 'strokes-global-set-stroke "strokes" "\ @@ -26279,8 +26334,8 @@ Read a complex stroke and insert its glyph into the current buffer. ;;;*** -;;;### (autoloads nil "studly" "play/studly.el" (22086 11930 130062 -;;;;;; 731000)) +;;;### (autoloads nil "studly" "play/studly.el" (21887 52709 923061 +;;;;;; 312000)) ;;; Generated autoloads from play/studly.el (autoload 'studlify-region "studly" "\ @@ -26300,8 +26355,8 @@ Studlify-case the current buffer. ;;;*** -;;;### (autoloads nil "subword" "progmodes/subword.el" (22150 28228 -;;;;;; 930072 702000)) +;;;### (autoloads nil "subword" "progmodes/subword.el" (22180 39318 +;;;;;; 505077 52000)) ;;; Generated autoloads from progmodes/subword.el (define-obsolete-function-alias 'capitalized-words-mode 'subword-mode "25.1") @@ -26393,8 +26448,8 @@ See `superword-mode' for more information on Superword mode. ;;;*** -;;;### (autoloads nil "supercite" "mail/supercite.el" (22150 28228 -;;;;;; 254072 702000)) +;;;### (autoloads nil "supercite" "mail/supercite.el" (22180 39318 +;;;;;; 391077 576000)) ;;; Generated autoloads from mail/supercite.el (autoload 'sc-cite-original "supercite" "\ @@ -26426,7 +26481,8 @@ and `sc-post-hook' is run after the guts of this function. ;;;*** -;;;### (autoloads nil "t-mouse" "t-mouse.el" (22150 28229 26072 702000)) +;;;### (autoloads nil "t-mouse" "t-mouse.el" (22180 39318 524076 +;;;;;; 965000)) ;;; Generated autoloads from t-mouse.el (define-obsolete-function-alias 't-mouse-mode 'gpm-mouse-mode "23.1") @@ -26454,7 +26510,7 @@ It relies on the `gpm' daemon being activated. ;;;*** -;;;### (autoloads nil "tabify" "tabify.el" (22150 28229 26072 702000)) +;;;### (autoloads nil "tabify" "tabify.el" (22180 39318 524076 965000)) ;;; Generated autoloads from tabify.el (autoload 'untabify "tabify" "\ @@ -26483,8 +26539,8 @@ The variable `tab-width' controls the spacing of tab stops. ;;;*** -;;;### (autoloads nil "table" "textmodes/table.el" (22150 28229 166072 -;;;;;; 702000)) +;;;### (autoloads nil "table" "textmodes/table.el" (22188 33909 815230 +;;;;;; 127000)) ;;; Generated autoloads from textmodes/table.el (autoload 'table-insert "table" "\ @@ -27055,7 +27111,7 @@ converts a table into plain text without frames. It is a companion to ;;;*** -;;;### (autoloads nil "talk" "talk.el" (22150 28229 26072 702000)) +;;;### (autoloads nil "talk" "talk.el" (22180 39318 524076 965000)) ;;; Generated autoloads from talk.el (autoload 'talk-connect "talk" "\ @@ -27070,8 +27126,8 @@ Connect to the Emacs talk group from the current X display or tty frame. ;;;*** -;;;### (autoloads nil "tar-mode" "tar-mode.el" (22150 28229 26072 -;;;;;; 702000)) +;;;### (autoloads nil "tar-mode" "tar-mode.el" (22180 39318 524076 +;;;;;; 965000)) ;;; Generated autoloads from tar-mode.el (autoload 'tar-mode "tar-mode" "\ @@ -27094,8 +27150,8 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. ;;;*** -;;;### (autoloads nil "tcl" "progmodes/tcl.el" (22150 28228 934072 -;;;;;; 702000)) +;;;### (autoloads nil "tcl" "progmodes/tcl.el" (22180 39318 505077 +;;;;;; 52000)) ;;; Generated autoloads from progmodes/tcl.el (autoload 'tcl-mode "tcl" "\ @@ -27143,8 +27199,8 @@ Prefix argument means invert sense of `tcl-use-smart-word-finder'. ;;;*** -;;;### (autoloads nil "telnet" "net/telnet.el" (22150 28228 406072 -;;;;;; 702000)) +;;;### (autoloads nil "telnet" "net/telnet.el" (22180 39318 415077 +;;;;;; 466000)) ;;; Generated autoloads from net/telnet.el (autoload 'telnet "telnet" "\ @@ -27169,7 +27225,7 @@ Normally input is edited in Emacs and sent a line at a time. ;;;*** -;;;### (autoloads nil "term" "term.el" (22150 28229 58072 702000)) +;;;### (autoloads nil "term" "term.el" (22180 39318 525076 960000)) ;;; Generated autoloads from term.el (autoload 'make-term "term" "\ @@ -27211,8 +27267,8 @@ use in that buffer. ;;;*** -;;;### (autoloads nil "testcover" "emacs-lisp/testcover.el" (22150 -;;;;;; 28227 458072 702000)) +;;;### (autoloads nil "testcover" "emacs-lisp/testcover.el" (22180 +;;;;;; 39318 294078 23000)) ;;; Generated autoloads from emacs-lisp/testcover.el (autoload 'testcover-this-defun "testcover" "\ @@ -27222,8 +27278,8 @@ Start coverage on function under point. ;;;*** -;;;### (autoloads nil "tetris" "play/tetris.el" (22150 28228 682072 -;;;;;; 702000)) +;;;### (autoloads nil "tetris" "play/tetris.el" (22180 39318 467077 +;;;;;; 227000)) ;;; Generated autoloads from play/tetris.el (push (purecopy '(tetris 2 1)) package--builtin-versions) @@ -27248,8 +27304,8 @@ tetris-mode keybindings: ;;;*** -;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (22150 28229 -;;;;;; 186072 702000)) +;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (22180 39318 +;;;;;; 539076 896000)) ;;; Generated autoloads from textmodes/tex-mode.el (defvar tex-shell-file-name nil "\ @@ -27550,8 +27606,8 @@ Major mode to edit DocTeX files. ;;;*** -;;;### (autoloads nil "texinfmt" "textmodes/texinfmt.el" (22150 28229 -;;;;;; 190072 702000)) +;;;### (autoloads nil "texinfmt" "textmodes/texinfmt.el" (22180 39318 +;;;;;; 540076 891000)) ;;; Generated autoloads from textmodes/texinfmt.el (autoload 'texinfo-format-buffer "texinfmt" "\ @@ -27590,8 +27646,8 @@ if large. You can use `Info-split' to do this manually. ;;;*** -;;;### (autoloads nil "texinfo" "textmodes/texinfo.el" (22150 28229 -;;;;;; 194072 702000)) +;;;### (autoloads nil "texinfo" "textmodes/texinfo.el" (22180 39318 +;;;;;; 540076 891000)) ;;; Generated autoloads from textmodes/texinfo.el (defvar texinfo-open-quote (purecopy "``") "\ @@ -27675,8 +27731,8 @@ value of `texinfo-mode-hook'. ;;;*** -;;;### (autoloads nil "thai-util" "language/thai-util.el" (22150 -;;;;;; 28228 198072 702000)) +;;;### (autoloads nil "thai-util" "language/thai-util.el" (22180 +;;;;;; 39318 375077 650000)) ;;; Generated autoloads from language/thai-util.el (autoload 'thai-compose-region "thai-util" "\ @@ -27703,8 +27759,8 @@ Compose Thai characters in the current buffer. ;;;*** -;;;### (autoloads nil "thingatpt" "thingatpt.el" (22150 28229 198072 -;;;;;; 702000)) +;;;### (autoloads nil "thingatpt" "thingatpt.el" (22180 39318 541076 +;;;;;; 887000)) ;;; Generated autoloads from thingatpt.el (autoload 'forward-thing "thingatpt" "\ @@ -27768,7 +27824,7 @@ Return the Lisp list at point, or nil if none is found. ;;;*** -;;;### (autoloads nil "thumbs" "thumbs.el" (22150 28229 198072 702000)) +;;;### (autoloads nil "thumbs" "thumbs.el" (22180 39318 541076 887000)) ;;; Generated autoloads from thumbs.el (autoload 'thumbs-find-thumb "thumbs" "\ @@ -27802,15 +27858,15 @@ In dired, call the setroot program on the image at point. ;;;*** -;;;### (autoloads nil "thunk" "emacs-lisp/thunk.el" (22150 28227 -;;;;;; 458072 702000)) +;;;### (autoloads nil "thunk" "emacs-lisp/thunk.el" (22180 39318 +;;;;;; 294078 23000)) ;;; Generated autoloads from emacs-lisp/thunk.el (push (purecopy '(thunk 1 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "tibet-util" "language/tibet-util.el" (22150 -;;;;;; 28228 198072 702000)) +;;;### (autoloads nil "tibet-util" "language/tibet-util.el" (22180 +;;;;;; 39318 375077 650000)) ;;; Generated autoloads from language/tibet-util.el (autoload 'tibetan-char-p "tibet-util" "\ @@ -27883,8 +27939,8 @@ See also docstring of the function tibetan-compose-region. ;;;*** -;;;### (autoloads nil "tildify" "textmodes/tildify.el" (22150 28229 -;;;;;; 198072 702000)) +;;;### (autoloads nil "tildify" "textmodes/tildify.el" (22180 39318 +;;;;;; 540076 891000)) ;;; Generated autoloads from textmodes/tildify.el (push (purecopy '(tildify 4 6 1)) package--builtin-versions) @@ -27935,7 +27991,7 @@ This function is meant to be used as a `post-self-insert-hook'. \(fn)" t nil) (autoload 'tildify-mode "tildify" "\ -Adds electric behaviour to space character. +Adds electric behavior to space character. When space is inserted into a buffer in a position where hard space is required instead (determined by `tildify-space-pattern' and `tildify-space-predicates'), @@ -27950,7 +28006,7 @@ variable will be set to the representation. ;;;*** -;;;### (autoloads nil "time" "time.el" (22150 28229 202072 702000)) +;;;### (autoloads nil "time" "time.el" (22180 39318 541076 887000)) ;;; Generated autoloads from time.el (defvar display-time-day-and-date nil "\ @@ -28012,8 +28068,8 @@ Return a string giving the duration of the Emacs initialization. ;;;*** -;;;### (autoloads nil "time-date" "calendar/time-date.el" (22150 -;;;;;; 28227 82072 702000)) +;;;### (autoloads nil "time-date" "calendar/time-date.el" (22180 +;;;;;; 39318 245078 248000)) ;;; Generated autoloads from calendar/time-date.el (autoload 'date-to-time "time-date" "\ @@ -28116,8 +28172,8 @@ Convert the time interval in seconds to a short string. ;;;*** -;;;### (autoloads nil "time-stamp" "time-stamp.el" (22150 28229 202072 -;;;;;; 702000)) +;;;### (autoloads nil "time-stamp" "time-stamp.el" (22180 39318 541076 +;;;;;; 887000)) ;;; Generated autoloads from time-stamp.el (put 'time-stamp-format 'safe-local-variable 'stringp) (put 'time-stamp-time-zone 'safe-local-variable 'string-or-null-p) @@ -28157,8 +28213,8 @@ With ARG, turn time stamping on if and only if arg is positive. ;;;*** -;;;### (autoloads nil "timeclock" "calendar/timeclock.el" (22150 -;;;;;; 28227 82072 702000)) +;;;### (autoloads nil "timeclock" "calendar/timeclock.el" (22180 +;;;;;; 39318 245078 248000)) ;;; Generated autoloads from calendar/timeclock.el (push (purecopy '(timeclock 2 6 1)) package--builtin-versions) @@ -28268,7 +28324,7 @@ relative only to the time worked today, and not to past time. ;;;*** ;;;### (autoloads nil "titdic-cnv" "international/titdic-cnv.el" -;;;;;; (22150 28228 134072 702000)) +;;;;;; (22180 39318 369077 678000)) ;;; Generated autoloads from international/titdic-cnv.el (autoload 'titdic-convert "titdic-cnv" "\ @@ -28290,7 +28346,7 @@ To get complete usage, invoke \"emacs -batch -f batch-titdic-convert -h\". ;;;*** -;;;### (autoloads nil "tmm" "tmm.el" (22150 28229 202072 702000)) +;;;### (autoloads nil "tmm" "tmm.el" (22180 39318 542076 882000)) ;;; Generated autoloads from tmm.el (define-key global-map "\M-`" 'tmm-menubar) (define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse) @@ -28332,8 +28388,8 @@ Its value should be an event that has a binding in MENU. ;;;*** -;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (22150 -;;;;;; 28227 138072 702000)) +;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (22180 +;;;;;; 39318 247078 239000)) ;;; Generated autoloads from calendar/todo-mode.el (autoload 'todo-show "todo-mode" "\ @@ -28400,8 +28456,8 @@ Mode for displaying and reprioritizing top priority Todo. ;;;*** -;;;### (autoloads nil "tool-bar" "tool-bar.el" (22150 28229 202072 -;;;;;; 702000)) +;;;### (autoloads nil "tool-bar" "tool-bar.el" (22180 39318 542076 +;;;;;; 882000)) ;;; Generated autoloads from tool-bar.el (autoload 'toggle-tool-bar-mode-from-frame "tool-bar" "\ @@ -28471,8 +28527,8 @@ holds a keymap. ;;;*** -;;;### (autoloads nil "tq" "emacs-lisp/tq.el" (22150 28227 458072 -;;;;;; 702000)) +;;;### (autoloads nil "tq" "emacs-lisp/tq.el" (22180 39318 295078 +;;;;;; 18000)) ;;; Generated autoloads from emacs-lisp/tq.el (autoload 'tq-create "tq" "\ @@ -28485,8 +28541,8 @@ to a tcp server on another machine. ;;;*** -;;;### (autoloads nil "trace" "emacs-lisp/trace.el" (22150 28227 -;;;;;; 458072 702000)) +;;;### (autoloads nil "trace" "emacs-lisp/trace.el" (22180 39318 +;;;;;; 295078 18000)) ;;; Generated autoloads from emacs-lisp/trace.el (defvar trace-buffer "*trace-output*" "\ @@ -28531,8 +28587,8 @@ the output buffer or changing the window configuration. ;;;*** -;;;### (autoloads nil "tramp" "net/tramp.el" (22150 28228 442072 -;;;;;; 702000)) +;;;### (autoloads nil "tramp" "net/tramp.el" (22188 33909 812230 +;;;;;; 144000)) ;;; Generated autoloads from net/tramp.el (defvar tramp-mode t "\ @@ -28647,8 +28703,8 @@ Discard Tramp from loading remote files. ;;;*** -;;;### (autoloads nil "tramp-ftp" "net/tramp-ftp.el" (22150 28228 -;;;;;; 410072 702000)) +;;;### (autoloads nil "tramp-ftp" "net/tramp-ftp.el" (22180 39318 +;;;;;; 417077 457000)) ;;; Generated autoloads from net/tramp-ftp.el (autoload 'tramp-ftp-enable-ange-ftp "tramp-ftp" "\ @@ -28658,15 +28714,15 @@ Discard Tramp from loading remote files. ;;;*** -;;;### (autoloads nil "trampver" "net/trampver.el" (22150 28228 442072 -;;;;;; 702000)) +;;;### (autoloads nil "trampver" "net/trampver.el" (22180 39318 420077 +;;;;;; 443000)) ;;; Generated autoloads from net/trampver.el (push (purecopy '(tramp 2 2 13 25 1)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "tutorial" "tutorial.el" (22150 28229 206072 -;;;;;; 702000)) +;;;### (autoloads nil "tutorial" "tutorial.el" (22180 39318 542076 +;;;;;; 882000)) ;;; Generated autoloads from tutorial.el (autoload 'help-with-tutorial "tutorial" "\ @@ -28690,8 +28746,8 @@ resumed later. ;;;*** -;;;### (autoloads nil "tv-util" "language/tv-util.el" (22086 11929 -;;;;;; 906062 731000)) +;;;### (autoloads nil "tv-util" "language/tv-util.el" (22122 65326 +;;;;;; 55715 635000)) ;;; Generated autoloads from language/tv-util.el (autoload 'tai-viet-composition-function "tv-util" "\ @@ -28701,8 +28757,8 @@ resumed later. ;;;*** -;;;### (autoloads nil "two-column" "textmodes/two-column.el" (22150 -;;;;;; 28229 198072 702000)) +;;;### (autoloads nil "two-column" "textmodes/two-column.el" (22180 +;;;;;; 39318 541076 887000)) ;;; Generated autoloads from textmodes/two-column.el (autoload '2C-command "two-column" () t 'keymap) (global-set-key "\C-x6" '2C-command) @@ -28749,8 +28805,8 @@ First column's text sSs Second column's text ;;;*** -;;;### (autoloads nil "type-break" "type-break.el" (22150 28229 206072 -;;;;;; 702000)) +;;;### (autoloads nil "type-break" "type-break.el" (22180 39318 543076 +;;;;;; 877000)) ;;; Generated autoloads from type-break.el (defvar type-break-mode nil "\ @@ -28882,7 +28938,7 @@ FRAC should be the inverse of the fractional value; for example, a value of ;;;*** -;;;### (autoloads nil "uce" "mail/uce.el" (22150 28228 258072 702000)) +;;;### (autoloads nil "uce" "mail/uce.el" (22180 39318 391077 576000)) ;;; Generated autoloads from mail/uce.el (autoload 'uce-reply-to-uce "uce" "\ @@ -28896,7 +28952,7 @@ You might need to set `uce-mail-reader' before using this. ;;;*** ;;;### (autoloads nil "ucs-normalize" "international/ucs-normalize.el" -;;;;;; (22150 28228 134072 702000)) +;;;;;; (22180 39318 369077 678000)) ;;; Generated autoloads from international/ucs-normalize.el (autoload 'ucs-normalize-NFD-region "ucs-normalize" "\ @@ -28961,8 +29017,8 @@ Normalize the string STR by the Unicode NFC and Mac OS's HFS Plus. ;;;*** -;;;### (autoloads nil "underline" "textmodes/underline.el" (22150 -;;;;;; 28229 198072 702000)) +;;;### (autoloads nil "underline" "textmodes/underline.el" (22180 +;;;;;; 39318 541076 887000)) ;;; Generated autoloads from textmodes/underline.el (autoload 'underline-region "underline" "\ @@ -28982,8 +29038,8 @@ which specify the range to operate on. ;;;*** -;;;### (autoloads nil "unrmail" "mail/unrmail.el" (22150 28228 258072 -;;;;;; 702000)) +;;;### (autoloads nil "unrmail" "mail/unrmail.el" (22180 39318 391077 +;;;;;; 576000)) ;;; Generated autoloads from mail/unrmail.el (autoload 'batch-unrmail "unrmail" "\ @@ -29003,8 +29059,8 @@ The variable `unrmail-mbox-format' controls which mbox format to use. ;;;*** -;;;### (autoloads nil "unsafep" "emacs-lisp/unsafep.el" (22150 28227 -;;;;;; 458072 702000)) +;;;### (autoloads nil "unsafep" "emacs-lisp/unsafep.el" (22180 39318 +;;;;;; 295078 18000)) ;;; Generated autoloads from emacs-lisp/unsafep.el (autoload 'unsafep "unsafep" "\ @@ -29016,7 +29072,7 @@ UNSAFEP-VARS is a list of symbols with local bindings. ;;;*** -;;;### (autoloads nil "url" "url/url.el" (22150 28229 234072 702000)) +;;;### (autoloads nil "url" "url/url.el" (22180 39318 546076 864000)) ;;; Generated autoloads from url/url.el (autoload 'url-retrieve "url" "\ @@ -29063,8 +29119,8 @@ no further processing). URL is either a string or a parsed URL. ;;;*** -;;;### (autoloads nil "url-auth" "url/url-auth.el" (22150 28229 210072 -;;;;;; 702000)) +;;;### (autoloads nil "url-auth" "url/url-auth.el" (22180 39318 543076 +;;;;;; 877000)) ;;; Generated autoloads from url/url-auth.el (autoload 'url-get-authentication "url-auth" "\ @@ -29105,8 +29161,8 @@ RATING a rating between 1 and 10 of the strength of the authentication. ;;;*** -;;;### (autoloads nil "url-cache" "url/url-cache.el" (22150 28229 -;;;;;; 210072 702000)) +;;;### (autoloads nil "url-cache" "url/url-cache.el" (22180 39318 +;;;;;; 543076 877000)) ;;; Generated autoloads from url/url-cache.el (autoload 'url-store-in-cache "url-cache" "\ @@ -29127,8 +29183,8 @@ Extract FNAM from the local disk cache. ;;;*** -;;;### (autoloads nil "url-cid" "url/url-cid.el" (22150 28229 210072 -;;;;;; 702000)) +;;;### (autoloads nil "url-cid" "url/url-cid.el" (22180 39318 543076 +;;;;;; 877000)) ;;; Generated autoloads from url/url-cid.el (autoload 'url-cid "url-cid" "\ @@ -29138,8 +29194,8 @@ Extract FNAM from the local disk cache. ;;;*** -;;;### (autoloads nil "url-dav" "url/url-dav.el" (22150 28229 214072 -;;;;;; 702000)) +;;;### (autoloads nil "url-dav" "url/url-dav.el" (22180 39318 544076 +;;;;;; 873000)) ;;; Generated autoloads from url/url-dav.el (autoload 'url-dav-supported-p "url-dav" "\ @@ -29173,8 +29229,8 @@ added to this list, so most requests can just pass in nil. ;;;*** -;;;### (autoloads nil "url-file" "url/url-file.el" (22150 28229 214072 -;;;;;; 702000)) +;;;### (autoloads nil "url-file" "url/url-file.el" (22180 39318 544076 +;;;;;; 873000)) ;;; Generated autoloads from url/url-file.el (autoload 'url-file "url-file" "\ @@ -29184,8 +29240,8 @@ Handle file: and ftp: URLs. ;;;*** -;;;### (autoloads nil "url-gw" "url/url-gw.el" (22150 28229 218072 -;;;;;; 702000)) +;;;### (autoloads nil "url-gw" "url/url-gw.el" (22180 39318 544076 +;;;;;; 873000)) ;;; Generated autoloads from url/url-gw.el (autoload 'url-gateway-nslookup-host "url-gw" "\ @@ -29206,8 +29262,8 @@ overriding the value of `url-gateway-method'. ;;;*** -;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (22150 -;;;;;; 28229 218072 702000)) +;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (22180 +;;;;;; 39318 544076 873000)) ;;; Generated autoloads from url/url-handlers.el (defvar url-handler-mode nil "\ @@ -29268,8 +29324,8 @@ if it had been inserted from a file named URL. ;;;*** -;;;### (autoloads nil "url-http" "url/url-http.el" (22150 28229 218072 -;;;;;; 702000)) +;;;### (autoloads nil "url-http" "url/url-http.el" (22180 39318 545076 +;;;;;; 868000)) ;;; Generated autoloads from url/url-http.el (autoload 'url-default-expander "url-expand") @@ -29281,8 +29337,8 @@ if it had been inserted from a file named URL. ;;;*** -;;;### (autoloads nil "url-irc" "url/url-irc.el" (22150 28229 222072 -;;;;;; 702000)) +;;;### (autoloads nil "url-irc" "url/url-irc.el" (22180 39318 545076 +;;;;;; 868000)) ;;; Generated autoloads from url/url-irc.el (autoload 'url-irc "url-irc" "\ @@ -29292,8 +29348,8 @@ if it had been inserted from a file named URL. ;;;*** -;;;### (autoloads nil "url-ldap" "url/url-ldap.el" (22150 28229 222072 -;;;;;; 702000)) +;;;### (autoloads nil "url-ldap" "url/url-ldap.el" (22180 39318 545076 +;;;;;; 868000)) ;;; Generated autoloads from url/url-ldap.el (autoload 'url-ldap "url-ldap" "\ @@ -29306,8 +29362,8 @@ URL can be a URL string, or a URL vector of the type returned by ;;;*** -;;;### (autoloads nil "url-mailto" "url/url-mailto.el" (22150 28229 -;;;;;; 222072 702000)) +;;;### (autoloads nil "url-mailto" "url/url-mailto.el" (22180 39318 +;;;;;; 545076 868000)) ;;; Generated autoloads from url/url-mailto.el (autoload 'url-mail "url-mailto" "\ @@ -29322,8 +29378,8 @@ Handle the mailto: URL syntax. ;;;*** -;;;### (autoloads nil "url-misc" "url/url-misc.el" (22150 28229 222072 -;;;;;; 702000)) +;;;### (autoloads nil "url-misc" "url/url-misc.el" (22180 39318 545076 +;;;;;; 868000)) ;;; Generated autoloads from url/url-misc.el (autoload 'url-man "url-misc" "\ @@ -29354,8 +29410,8 @@ Fetch a data URL (RFC 2397). ;;;*** -;;;### (autoloads nil "url-news" "url/url-news.el" (22150 28229 222072 -;;;;;; 702000)) +;;;### (autoloads nil "url-news" "url/url-news.el" (22180 39318 545076 +;;;;;; 868000)) ;;; Generated autoloads from url/url-news.el (autoload 'url-news "url-news" "\ @@ -29370,8 +29426,8 @@ Fetch a data URL (RFC 2397). ;;;*** -;;;### (autoloads nil "url-ns" "url/url-ns.el" (22150 28229 222072 -;;;;;; 702000)) +;;;### (autoloads nil "url-ns" "url/url-ns.el" (22180 39318 545076 +;;;;;; 868000)) ;;; Generated autoloads from url/url-ns.el (autoload 'isPlainHostName "url-ns" "\ @@ -29411,8 +29467,8 @@ Fetch a data URL (RFC 2397). ;;;*** -;;;### (autoloads nil "url-parse" "url/url-parse.el" (22150 28229 -;;;;;; 222072 702000)) +;;;### (autoloads nil "url-parse" "url/url-parse.el" (22180 39318 +;;;;;; 545076 868000)) ;;; Generated autoloads from url/url-parse.el (autoload 'url-recreate-url "url-parse" "\ @@ -29463,8 +29519,8 @@ parses to ;;;*** -;;;### (autoloads nil "url-privacy" "url/url-privacy.el" (22150 28229 -;;;;;; 222072 702000)) +;;;### (autoloads nil "url-privacy" "url/url-privacy.el" (22180 39318 +;;;;;; 545076 868000)) ;;; Generated autoloads from url/url-privacy.el (autoload 'url-setup-privacy-info "url-privacy" "\ @@ -29474,8 +29530,8 @@ Setup variables that expose info about you and your system. ;;;*** -;;;### (autoloads nil "url-queue" "url/url-queue.el" (22150 28229 -;;;;;; 226072 702000)) +;;;### (autoloads nil "url-queue" "url/url-queue.el" (22180 39318 +;;;;;; 546076 864000)) ;;; Generated autoloads from url/url-queue.el (autoload 'url-queue-retrieve "url-queue" "\ @@ -29489,12 +29545,12 @@ The variable `url-queue-timeout' sets a timeout. ;;;*** -;;;### (autoloads nil "url-tramp" "url/url-tramp.el" (22150 28229 -;;;;;; 226072 702000)) +;;;### (autoloads nil "url-tramp" "url/url-tramp.el" (22180 39318 +;;;;;; 546076 864000)) ;;; Generated autoloads from url/url-tramp.el (defvar url-tramp-protocols '("ftp" "ssh" "scp" "rsync" "telnet") "\ -List of URL protocols the work is handled by Tramp. +List of URL protocols for which the work is handled by Tramp. They must also be covered by `url-handler-regexp'.") (custom-autoload 'url-tramp-protocols "url-tramp" t) @@ -29508,8 +29564,8 @@ would have been passed to OPERATION. ;;;*** -;;;### (autoloads nil "url-util" "url/url-util.el" (22150 28229 234072 -;;;;;; 702000)) +;;;### (autoloads nil "url-util" "url/url-util.el" (22180 39318 546076 +;;;;;; 864000)) ;;; Generated autoloads from url/url-util.el (defvar url-debug nil "\ @@ -29677,8 +29733,8 @@ This uses `url-current-object', set locally to the buffer. ;;;*** -;;;### (autoloads nil "userlock" "userlock.el" (22150 28229 234072 -;;;;;; 702000)) +;;;### (autoloads nil "userlock" "userlock.el" (22180 39318 546076 +;;;;;; 864000)) ;;; Generated autoloads from userlock.el (autoload 'ask-user-about-lock "userlock" "\ @@ -29706,8 +29762,8 @@ The buffer in question is current when this function is called. ;;;*** -;;;### (autoloads nil "utf-7" "international/utf-7.el" (22150 28228 -;;;;;; 134072 702000)) +;;;### (autoloads nil "utf-7" "international/utf-7.el" (22180 39318 +;;;;;; 369077 678000)) ;;; Generated autoloads from international/utf-7.el (autoload 'utf-7-post-read-conversion "utf-7" "\ @@ -29732,7 +29788,7 @@ The buffer in question is current when this function is called. ;;;*** -;;;### (autoloads nil "utf7" "gnus/utf7.el" (22150 28228 26072 702000)) +;;;### (autoloads nil "utf7" "gnus/utf7.el" (22180 39318 356077 737000)) ;;; Generated autoloads from gnus/utf7.el (autoload 'utf7-encode "utf7" "\ @@ -29742,8 +29798,8 @@ Encode UTF-7 STRING. Use IMAP modification if FOR-IMAP is non-nil. ;;;*** -;;;### (autoloads nil "uudecode" "mail/uudecode.el" (22150 28228 -;;;;;; 258072 702000)) +;;;### (autoloads nil "uudecode" "mail/uudecode.el" (22180 39318 +;;;;;; 391077 576000)) ;;; Generated autoloads from mail/uudecode.el (autoload 'uudecode-decode-region-external "uudecode" "\ @@ -29767,7 +29823,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME. ;;;*** -;;;### (autoloads nil "vc" "vc/vc.el" (22150 28229 306072 702000)) +;;;### (autoloads nil "vc" "vc/vc.el" (22180 39318 558076 808000)) ;;; Generated autoloads from vc/vc.el (defvar vc-checkout-hook nil "\ @@ -30083,8 +30139,8 @@ Return the branch part of a revision number REV. ;;;*** -;;;### (autoloads nil "vc-annotate" "vc/vc-annotate.el" (22150 28229 -;;;;;; 286072 702000)) +;;;### (autoloads nil "vc-annotate" "vc/vc-annotate.el" (22180 39318 +;;;;;; 554076 827000)) ;;; Generated autoloads from vc/vc-annotate.el (autoload 'vc-annotate "vc-annotate" "\ @@ -30123,8 +30179,8 @@ should be applied to the background or to the foreground. ;;;*** -;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (22150 28229 290072 -;;;;;; 702000)) +;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (22180 39318 554076 +;;;;;; 827000)) ;;; Generated autoloads from vc/vc-bzr.el (defconst vc-bzr-admin-dirname ".bzr" "\ @@ -30140,8 +30196,8 @@ Name of the format file in a .bzr directory.") ;;;*** -;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (22150 28229 290072 -;;;;;; 702000)) +;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (22180 39318 554076 +;;;;;; 827000)) ;;; Generated autoloads from vc/vc-cvs.el (defun vc-cvs-registered (f) "Return non-nil if file F is registered with CVS." @@ -30152,8 +30208,8 @@ Name of the format file in a .bzr directory.") ;;;*** -;;;### (autoloads nil "vc-dir" "vc/vc-dir.el" (22150 28229 294072 -;;;;;; 702000)) +;;;### (autoloads nil "vc-dir" "vc/vc-dir.el" (22180 39318 555076 +;;;;;; 822000)) ;;; Generated autoloads from vc/vc-dir.el (autoload 'vc-dir "vc-dir" "\ @@ -30177,8 +30233,8 @@ These are the commands available for use in the file status buffer: ;;;*** -;;;### (autoloads nil "vc-dispatcher" "vc/vc-dispatcher.el" (22150 -;;;;;; 28229 294072 702000)) +;;;### (autoloads nil "vc-dispatcher" "vc/vc-dispatcher.el" (22180 +;;;;;; 39318 555076 822000)) ;;; Generated autoloads from vc/vc-dispatcher.el (autoload 'vc-do-command "vc-dispatcher" "\ @@ -30201,8 +30257,8 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-git" "vc/vc-git.el" (22150 28229 294072 -;;;;;; 702000)) +;;;### (autoloads nil "vc-git" "vc/vc-git.el" (22188 33909 816230 +;;;;;; 121000)) ;;; Generated autoloads from vc/vc-git.el (defun vc-git-registered (file) "Return non-nil if FILE is registered with git." @@ -30213,7 +30269,7 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (22150 28229 298072 702000)) +;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (22188 33909 816230 121000)) ;;; Generated autoloads from vc/vc-hg.el (defun vc-hg-registered (file) "Return non-nil if FILE is registered with hg." @@ -30224,8 +30280,8 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (22150 28229 298072 -;;;;;; 702000)) +;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (22188 33909 816230 +;;;;;; 121000)) ;;; Generated autoloads from vc/vc-mtn.el (defconst vc-mtn-admin-dir "_MTN" "\ @@ -30241,8 +30297,8 @@ Name of the monotone directory's format file.") ;;;*** -;;;### (autoloads nil "vc-rcs" "vc/vc-rcs.el" (22150 28229 302072 -;;;;;; 702000)) +;;;### (autoloads nil "vc-rcs" "vc/vc-rcs.el" (22180 39318 556076 +;;;;;; 818000)) ;;; Generated autoloads from vc/vc-rcs.el (defvar vc-rcs-master-templates (purecopy '("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\ @@ -30255,8 +30311,8 @@ For a description of possible values, see `vc-check-master-templates'.") ;;;*** -;;;### (autoloads nil "vc-sccs" "vc/vc-sccs.el" (22150 28229 302072 -;;;;;; 702000)) +;;;### (autoloads nil "vc-sccs" "vc/vc-sccs.el" (22180 39318 557076 +;;;;;; 813000)) ;;; Generated autoloads from vc/vc-sccs.el (defvar vc-sccs-master-templates (purecopy '("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\ @@ -30274,8 +30330,8 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir) ;;;*** -;;;### (autoloads nil "vc-src" "vc/vc-src.el" (22150 28229 302072 -;;;;;; 702000)) +;;;### (autoloads nil "vc-src" "vc/vc-src.el" (22180 39318 557076 +;;;;;; 813000)) ;;; Generated autoloads from vc/vc-src.el (defvar vc-src-master-templates (purecopy '("%s.src/%s,v")) "\ @@ -30288,8 +30344,8 @@ For a description of possible values, see `vc-check-master-templates'.") ;;;*** -;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (22150 28229 302072 -;;;;;; 702000)) +;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (22180 39318 557076 +;;;;;; 813000)) ;;; Generated autoloads from vc/vc-svn.el (defun vc-svn-registered (f) (let ((admin-dir (cond ((and (eq system-type 'windows-nt) @@ -30302,8 +30358,8 @@ For a description of possible values, see `vc-check-master-templates'.") ;;;*** -;;;### (autoloads nil "vera-mode" "progmodes/vera-mode.el" (22150 -;;;;;; 28228 938072 702000)) +;;;### (autoloads nil "vera-mode" "progmodes/vera-mode.el" (22180 +;;;;;; 39318 505077 52000)) ;;; Generated autoloads from progmodes/vera-mode.el (push (purecopy '(vera-mode 2 28)) package--builtin-versions) (add-to-list 'auto-mode-alist (cons (purecopy "\\.vr[hi]?\\'") 'vera-mode)) @@ -30362,7 +30418,7 @@ Key bindings: ;;;*** ;;;### (autoloads nil "verilog-mode" "progmodes/verilog-mode.el" -;;;;;; (22150 28228 970072 702000)) +;;;;;; (22180 39318 508077 38000)) ;;; Generated autoloads from progmodes/verilog-mode.el (autoload 'verilog-mode "verilog-mode" "\ @@ -30501,8 +30557,8 @@ Key bindings specific to `verilog-mode-map' are: ;;;*** -;;;### (autoloads nil "vhdl-mode" "progmodes/vhdl-mode.el" (22150 -;;;;;; 28228 986072 702000)) +;;;### (autoloads nil "vhdl-mode" "progmodes/vhdl-mode.el" (22183 +;;;;;; 58408 702001 760000)) ;;; Generated autoloads from progmodes/vhdl-mode.el (autoload 'vhdl-mode "vhdl-mode" "\ @@ -31056,8 +31112,8 @@ Key bindings: ;;;*** -;;;### (autoloads nil "viet-util" "language/viet-util.el" (22150 -;;;;;; 28228 198072 702000)) +;;;### (autoloads nil "viet-util" "language/viet-util.el" (22180 +;;;;;; 39318 376077 645000)) ;;; Generated autoloads from language/viet-util.el (autoload 'viet-encode-viscii-char "viet-util" "\ @@ -31101,7 +31157,7 @@ Convert Vietnamese characters of the current buffer to `VIQR' mnemonics. ;;;*** -;;;### (autoloads nil "view" "view.el" (22150 28229 322072 702000)) +;;;### (autoloads nil "view" "view.el" (22180 39318 558076 808000)) ;;; Generated autoloads from view.el (defvar view-remove-frame-by-deleting t "\ @@ -31357,8 +31413,8 @@ Exit View mode and make the current buffer editable. ;;;*** -;;;### (autoloads nil "viper" "emulation/viper.el" (22150 28227 478072 -;;;;;; 702000)) +;;;### (autoloads nil "viper" "emulation/viper.el" (22180 39318 299077 +;;;;;; 999000)) ;;; Generated autoloads from emulation/viper.el (push (purecopy '(viper 3 14 1)) package--builtin-versions) @@ -31375,8 +31431,8 @@ Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Top'. ;;;*** -;;;### (autoloads nil "warnings" "emacs-lisp/warnings.el" (22150 -;;;;;; 28227 458072 702000)) +;;;### (autoloads nil "warnings" "emacs-lisp/warnings.el" (22180 +;;;;;; 39318 295078 18000)) ;;; Generated autoloads from emacs-lisp/warnings.el (defvar warning-prefix-function nil "\ @@ -31466,7 +31522,7 @@ this is equivalent to `display-warning', using ;;;*** -;;;### (autoloads nil "wdired" "wdired.el" (22150 28229 322072 702000)) +;;;### (autoloads nil "wdired" "wdired.el" (22180 39318 559076 804000)) ;;; Generated autoloads from wdired.el (push (purecopy '(wdired 2 0)) package--builtin-versions) @@ -31484,8 +31540,8 @@ See `wdired-mode'. ;;;*** -;;;### (autoloads nil "webjump" "net/webjump.el" (22150 28228 442072 -;;;;;; 702000)) +;;;### (autoloads nil "webjump" "net/webjump.el" (22180 39318 421077 +;;;;;; 438000)) ;;; Generated autoloads from net/webjump.el (autoload 'webjump "webjump" "\ @@ -31501,8 +31557,8 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke ;;;*** -;;;### (autoloads nil "which-func" "progmodes/which-func.el" (22150 -;;;;;; 28228 986072 702000)) +;;;### (autoloads nil "which-func" "progmodes/which-func.el" (22180 +;;;;;; 39318 512077 20000)) ;;; Generated autoloads from progmodes/which-func.el (put 'which-func-format 'risky-local-variable t) (put 'which-func-current 'risky-local-variable t) @@ -31532,8 +31588,8 @@ in certain major modes. ;;;*** -;;;### (autoloads nil "whitespace" "whitespace.el" (22150 28229 326072 -;;;;;; 702000)) +;;;### (autoloads nil "whitespace" "whitespace.el" (22180 39318 559076 +;;;;;; 804000)) ;;; Generated autoloads from whitespace.el (push (purecopy '(whitespace 13 2 2)) package--builtin-versions) @@ -31901,8 +31957,8 @@ cleaning up these problems. ;;;*** -;;;### (autoloads nil "wid-browse" "wid-browse.el" (22150 28229 326072 -;;;;;; 702000)) +;;;### (autoloads nil "wid-browse" "wid-browse.el" (22180 39318 559076 +;;;;;; 804000)) ;;; Generated autoloads from wid-browse.el (autoload 'widget-browse-at "wid-browse" "\ @@ -31930,8 +31986,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "wid-edit" "wid-edit.el" (22150 28229 330072 -;;;;;; 702000)) +;;;### (autoloads nil "wid-edit" "wid-edit.el" (22180 39318 560076 +;;;;;; 799000)) ;;; Generated autoloads from wid-edit.el (autoload 'widgetp "wid-edit" "\ @@ -31973,8 +32029,8 @@ Setup current buffer so editing string widgets works. ;;;*** -;;;### (autoloads nil "windmove" "windmove.el" (22150 28229 330072 -;;;;;; 702000)) +;;;### (autoloads nil "windmove" "windmove.el" (22180 39318 560076 +;;;;;; 799000)) ;;; Generated autoloads from windmove.el (autoload 'windmove-left "windmove" "\ @@ -32026,7 +32082,7 @@ Default MODIFIER is `shift'. ;;;*** -;;;### (autoloads nil "winner" "winner.el" (22150 28229 354072 702000)) +;;;### (autoloads nil "winner" "winner.el" (22180 39318 561076 795000)) ;;; Generated autoloads from winner.el (defvar winner-mode nil "\ @@ -32049,7 +32105,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'. ;;;*** -;;;### (autoloads nil "woman" "woman.el" (22150 28229 374072 702000)) +;;;### (autoloads nil "woman" "woman.el" (22180 39318 562076 790000)) ;;; Generated autoloads from woman.el (push (purecopy '(woman 0 551)) package--builtin-versions) @@ -32098,7 +32154,7 @@ Default bookmark handler for Woman buffers. ;;;*** -;;;### (autoloads nil "xml" "xml.el" (22150 28229 378072 702000)) +;;;### (autoloads nil "xml" "xml.el" (22180 39318 563076 785000)) ;;; Generated autoloads from xml.el (autoload 'xml-parse-file "xml" "\ @@ -32154,8 +32210,8 @@ Both features can be combined by providing a cons cell ;;;*** -;;;### (autoloads nil "xmltok" "nxml/xmltok.el" (22150 28228 462072 -;;;;;; 702000)) +;;;### (autoloads nil "xmltok" "nxml/xmltok.el" (22180 39318 426077 +;;;;;; 415000)) ;;; Generated autoloads from nxml/xmltok.el (autoload 'xmltok-get-declared-encoding-position "xmltok" "\ @@ -32173,8 +32229,8 @@ If LIMIT is non-nil, then do not consider characters beyond LIMIT. ;;;*** -;;;### (autoloads nil "xref" "progmodes/xref.el" (22150 28228 986072 -;;;;;; 702000)) +;;;### (autoloads nil "xref" "progmodes/xref.el" (22188 33909 813230 +;;;;;; 138000)) ;;; Generated autoloads from progmodes/xref.el (autoload 'xref-find-backend "xref" "\ @@ -32197,12 +32253,10 @@ Find the definition of the identifier at point. With prefix argument or when there's no identifier at point, prompt for it. -If the backend has sufficient information to determine a unique -definition for IDENTIFIER, it returns only that definition. If -there are multiple possible definitions, it returns all of them. - -If the backend returns one definition, jump to it; otherwise, -display the list in a buffer. +If sufficient information is available to determine a unique +definition for IDENTIFIER, display it in the selected window. +Otherwise, display the list of the possible definitions in a +buffer where the user can select from the list. \(fn IDENTIFIER)" t nil) @@ -32234,10 +32288,17 @@ The argument has the same meaning as in `apropos'. (define-key ctl-x-4-map "." #'xref-find-definitions-other-window) (define-key ctl-x-5-map "." #'xref-find-definitions-other-frame) +(autoload 'xref-collect-matches "xref" "\ +Collect matches for REGEXP inside FILES in DIR. +FILES is a string with glob patterns separated by spaces. +IGNORES is a list of glob patterns. + +\(fn REGEXP FILES DIR IGNORES)" nil nil) + ;;;*** -;;;### (autoloads nil "xt-mouse" "xt-mouse.el" (22150 28229 378072 -;;;;;; 702000)) +;;;### (autoloads nil "xt-mouse" "xt-mouse.el" (22180 39318 563076 +;;;;;; 785000)) ;;; Generated autoloads from xt-mouse.el (defvar xterm-mouse-mode nil "\ @@ -32266,7 +32327,20 @@ down the SHIFT key while pressing the mouse button. ;;;*** -;;;### (autoloads nil "yenc" "gnus/yenc.el" (22150 28228 26072 702000)) +;;;### (autoloads nil "xwidget" "xwidget.el" (22188 33909 818230 +;;;;;; 109000)) +;;; Generated autoloads from xwidget.el + +(autoload 'xwidget-webkit-browse-url "xwidget" "\ +Ask xwidget-webkit to browse URL. +NEW-SESSION specifies whether to create a new xwidget-webkit session. +Interactively, URL defaults to the string looking like a url around point. + +\(fn URL &optional NEW-SESSION)" t nil) + +;;;*** + +;;;### (autoloads nil "yenc" "gnus/yenc.el" (22180 39318 356077 737000)) ;;; Generated autoloads from gnus/yenc.el (autoload 'yenc-decode-region "yenc" "\ @@ -32281,7 +32355,7 @@ Extract file name from an yenc header. ;;;*** -;;;### (autoloads nil "zone" "play/zone.el" (22150 28228 682072 702000)) +;;;### (autoloads nil "zone" "play/zone.el" (22180 39318 467077 227000)) ;;; Generated autoloads from play/zone.el (autoload 'zone "zone" "\ @@ -32297,44 +32371,46 @@ Zone out, completely. ;;;;;; "calc/calc-fin.el" "calc/calc-forms.el" "calc/calc-frac.el" ;;;;;; "calc/calc-funcs.el" "calc/calc-graph.el" "calc/calc-help.el" ;;;;;; "calc/calc-incom.el" "calc/calc-keypd.el" "calc/calc-lang.el" -;;;;;; "calc/calc-loaddefs.el" "calc/calc-macs.el" "calc/calc-map.el" -;;;;;; "calc/calc-math.el" "calc/calc-menu.el" "calc/calc-misc.el" -;;;;;; "calc/calc-mode.el" "calc/calc-mtx.el" "calc/calc-nlfit.el" -;;;;;; "calc/calc-poly.el" "calc/calc-prog.el" "calc/calc-rewr.el" -;;;;;; "calc/calc-rules.el" "calc/calc-sel.el" "calc/calc-stat.el" -;;;;;; "calc/calc-store.el" "calc/calc-stuff.el" "calc/calc-trail.el" -;;;;;; "calc/calc-units.el" "calc/calc-vec.el" "calc/calc-yank.el" -;;;;;; "calc/calcalg2.el" "calc/calcalg3.el" "calc/calccomp.el" -;;;;;; "calc/calcsel2.el" "calendar/cal-bahai.el" "calendar/cal-coptic.el" -;;;;;; "calendar/cal-french.el" "calendar/cal-html.el" "calendar/cal-islam.el" -;;;;;; "calendar/cal-iso.el" "calendar/cal-julian.el" "calendar/cal-loaddefs.el" -;;;;;; "calendar/cal-mayan.el" "calendar/cal-menu.el" "calendar/cal-move.el" -;;;;;; "calendar/cal-persia.el" "calendar/cal-tex.el" "calendar/cal-x.el" -;;;;;; "calendar/diary-loaddefs.el" "calendar/hol-loaddefs.el" "cdl.el" -;;;;;; "cedet/cedet-cscope.el" "cedet/cedet-files.el" "cedet/cedet-global.el" -;;;;;; "cedet/cedet-idutils.el" "cedet/ede/auto.el" "cedet/ede/autoconf-edit.el" -;;;;;; "cedet/ede/base.el" "cedet/ede/config.el" "cedet/ede/cpp-root.el" -;;;;;; "cedet/ede/custom.el" "cedet/ede/detect.el" "cedet/ede/dired.el" -;;;;;; "cedet/ede/emacs.el" "cedet/ede/files.el" "cedet/ede/generic.el" -;;;;;; "cedet/ede/linux.el" "cedet/ede/loaddefs.el" "cedet/ede/locate.el" -;;;;;; "cedet/ede/make.el" "cedet/ede/makefile-edit.el" "cedet/ede/pconf.el" -;;;;;; "cedet/ede/pmake.el" "cedet/ede/proj-archive.el" "cedet/ede/proj-aux.el" -;;;;;; "cedet/ede/proj-comp.el" "cedet/ede/proj-elisp.el" "cedet/ede/proj-info.el" -;;;;;; "cedet/ede/proj-misc.el" "cedet/ede/proj-obj.el" "cedet/ede/proj-prog.el" -;;;;;; "cedet/ede/proj-scheme.el" "cedet/ede/proj-shared.el" "cedet/ede/proj.el" -;;;;;; "cedet/ede/project-am.el" "cedet/ede/shell.el" "cedet/ede/simple.el" -;;;;;; "cedet/ede/source.el" "cedet/ede/speedbar.el" "cedet/ede/srecode.el" -;;;;;; "cedet/ede/system.el" "cedet/ede/util.el" "cedet/semantic/analyze.el" -;;;;;; "cedet/semantic/analyze/complete.el" "cedet/semantic/analyze/debug.el" -;;;;;; "cedet/semantic/analyze/fcn.el" "cedet/semantic/analyze/refs.el" -;;;;;; "cedet/semantic/bovine.el" "cedet/semantic/bovine/c.el" "cedet/semantic/bovine/debug.el" -;;;;;; "cedet/semantic/bovine/el.el" "cedet/semantic/bovine/gcc.el" -;;;;;; "cedet/semantic/bovine/make.el" "cedet/semantic/bovine/scm.el" -;;;;;; "cedet/semantic/chart.el" "cedet/semantic/complete.el" "cedet/semantic/ctxt.el" -;;;;;; "cedet/semantic/db-debug.el" "cedet/semantic/db-ebrowse.el" -;;;;;; "cedet/semantic/db-el.el" "cedet/semantic/db-file.el" "cedet/semantic/db-find.el" -;;;;;; "cedet/semantic/db-global.el" "cedet/semantic/db-javascript.el" -;;;;;; "cedet/semantic/db-mode.el" "cedet/semantic/db-ref.el" "cedet/semantic/db-typecache.el" +;;;;;; "calc/calc-macs.el" "calc/calc-map.el" "calc/calc-math.el" +;;;;;; "calc/calc-menu.el" "calc/calc-misc.el" "calc/calc-mode.el" +;;;;;; "calc/calc-mtx.el" "calc/calc-nlfit.el" "calc/calc-poly.el" +;;;;;; "calc/calc-prog.el" "calc/calc-rewr.el" "calc/calc-rules.el" +;;;;;; "calc/calc-sel.el" "calc/calc-stat.el" "calc/calc-store.el" +;;;;;; "calc/calc-stuff.el" "calc/calc-trail.el" "calc/calc-units.el" +;;;;;; "calc/calc-vec.el" "calc/calc-yank.el" "calc/calcalg2.el" +;;;;;; "calc/calcalg3.el" "calc/calccomp.el" "calc/calcsel2.el" +;;;;;; "calendar/cal-bahai.el" "calendar/cal-coptic.el" "calendar/cal-french.el" +;;;;;; "calendar/cal-html.el" "calendar/cal-islam.el" "calendar/cal-iso.el" +;;;;;; "calendar/cal-julian.el" "calendar/cal-loaddefs.el" "calendar/cal-mayan.el" +;;;;;; "calendar/cal-menu.el" "calendar/cal-move.el" "calendar/cal-persia.el" +;;;;;; "calendar/cal-tex.el" "calendar/cal-x.el" "calendar/diary-loaddefs.el" +;;;;;; "calendar/hol-loaddefs.el" "cdl.el" "cedet/cedet-cscope.el" +;;;;;; "cedet/cedet-files.el" "cedet/cedet-global.el" "cedet/cedet-idutils.el" +;;;;;; "cedet/ede/auto.el" "cedet/ede/autoconf-edit.el" "cedet/ede/base.el" +;;;;;; "cedet/ede/config.el" "cedet/ede/cpp-root.el" "cedet/ede/custom.el" +;;;;;; "cedet/ede/detect.el" "cedet/ede/dired.el" "cedet/ede/emacs.el" +;;;;;; "cedet/ede/files.el" "cedet/ede/generic.el" "cedet/ede/linux.el" +;;;;;; "cedet/ede/locate.el" "cedet/ede/make.el" "cedet/ede/makefile-edit.el" +;;;;;; "cedet/ede/pconf.el" "cedet/ede/pmake.el" "cedet/ede/proj-archive.el" +;;;;;; "cedet/ede/proj-aux.el" "cedet/ede/proj-comp.el" "cedet/ede/proj-elisp.el" +;;;;;; "cedet/ede/proj-info.el" "cedet/ede/proj-misc.el" "cedet/ede/proj-obj.el" +;;;;;; "cedet/ede/proj-prog.el" "cedet/ede/proj-scheme.el" "cedet/ede/proj-shared.el" +;;;;;; "cedet/ede/proj.el" "cedet/ede/project-am.el" "cedet/ede/shell.el" +;;;;;; "cedet/ede/simple.el" "cedet/ede/source.el" "cedet/ede/speedbar.el" +;;;;;; "cedet/ede/srecode.el" "cedet/ede/system.el" "cedet/ede/util.el" +;;;;;; "cedet/semantic/analyze.el" "cedet/semantic/analyze/complete.el" +;;;;;; "cedet/semantic/analyze/debug.el" "cedet/semantic/analyze/fcn.el" +;;;;;; "cedet/semantic/analyze/refs.el" "cedet/semantic/bovine.el" +;;;;;; "cedet/semantic/bovine/c-by.el" "cedet/semantic/bovine/c.el" +;;;;;; "cedet/semantic/bovine/debug.el" "cedet/semantic/bovine/el.el" +;;;;;; "cedet/semantic/bovine/gcc.el" "cedet/semantic/bovine/make-by.el" +;;;;;; "cedet/semantic/bovine/make.el" "cedet/semantic/bovine/scm-by.el" +;;;;;; "cedet/semantic/bovine/scm.el" "cedet/semantic/chart.el" +;;;;;; "cedet/semantic/complete.el" "cedet/semantic/ctxt.el" "cedet/semantic/db-debug.el" +;;;;;; "cedet/semantic/db-ebrowse.el" "cedet/semantic/db-el.el" +;;;;;; "cedet/semantic/db-file.el" "cedet/semantic/db-find.el" "cedet/semantic/db-global.el" +;;;;;; "cedet/semantic/db-javascript.el" "cedet/semantic/db-mode.el" +;;;;;; "cedet/semantic/db-ref.el" "cedet/semantic/db-typecache.el" ;;;;;; "cedet/semantic/db.el" "cedet/semantic/debug.el" "cedet/semantic/decorate.el" ;;;;;; "cedet/semantic/decorate/include.el" "cedet/semantic/decorate/mode.el" ;;;;;; "cedet/semantic/dep.el" "cedet/semantic/doc.el" "cedet/semantic/ede-grammar.el" @@ -32342,82 +32418,91 @@ Zone out, completely. ;;;;;; "cedet/semantic/fw.el" "cedet/semantic/grammar-wy.el" "cedet/semantic/grammar.el" ;;;;;; "cedet/semantic/html.el" "cedet/semantic/ia-sb.el" "cedet/semantic/ia.el" ;;;;;; "cedet/semantic/idle.el" "cedet/semantic/imenu.el" "cedet/semantic/java.el" -;;;;;; "cedet/semantic/lex-spp.el" "cedet/semantic/lex.el" "cedet/semantic/loaddefs.el" -;;;;;; "cedet/semantic/mru-bookmark.el" "cedet/semantic/sb.el" "cedet/semantic/scope.el" -;;;;;; "cedet/semantic/senator.el" "cedet/semantic/sort.el" "cedet/semantic/symref.el" -;;;;;; "cedet/semantic/symref/cscope.el" "cedet/semantic/symref/filter.el" -;;;;;; "cedet/semantic/symref/global.el" "cedet/semantic/symref/grep.el" -;;;;;; "cedet/semantic/symref/idutils.el" "cedet/semantic/symref/list.el" -;;;;;; "cedet/semantic/tag-file.el" "cedet/semantic/tag-ls.el" "cedet/semantic/tag-write.el" +;;;;;; "cedet/semantic/lex-spp.el" "cedet/semantic/lex.el" "cedet/semantic/mru-bookmark.el" +;;;;;; "cedet/semantic/sb.el" "cedet/semantic/scope.el" "cedet/semantic/senator.el" +;;;;;; "cedet/semantic/sort.el" "cedet/semantic/symref.el" "cedet/semantic/symref/cscope.el" +;;;;;; "cedet/semantic/symref/filter.el" "cedet/semantic/symref/global.el" +;;;;;; "cedet/semantic/symref/grep.el" "cedet/semantic/symref/idutils.el" +;;;;;; "cedet/semantic/symref/list.el" "cedet/semantic/tag-file.el" +;;;;;; "cedet/semantic/tag-ls.el" "cedet/semantic/tag-write.el" ;;;;;; "cedet/semantic/tag.el" "cedet/semantic/texi.el" "cedet/semantic/util-modes.el" ;;;;;; "cedet/semantic/util.el" "cedet/semantic/wisent.el" "cedet/semantic/wisent/comp.el" ;;;;;; "cedet/semantic/wisent/java-tags.el" "cedet/semantic/wisent/javascript.el" -;;;;;; "cedet/semantic/wisent/python.el" "cedet/semantic/wisent/wisent.el" -;;;;;; "cedet/srecode/args.el" "cedet/srecode/compile.el" "cedet/srecode/cpp.el" -;;;;;; "cedet/srecode/ctxt.el" "cedet/srecode/dictionary.el" "cedet/srecode/document.el" +;;;;;; "cedet/semantic/wisent/javat-wy.el" "cedet/semantic/wisent/js-wy.el" +;;;;;; "cedet/semantic/wisent/python-wy.el" "cedet/semantic/wisent/python.el" +;;;;;; "cedet/semantic/wisent/wisent.el" "cedet/srecode/args.el" +;;;;;; "cedet/srecode/compile.el" "cedet/srecode/cpp.el" "cedet/srecode/ctxt.el" +;;;;;; "cedet/srecode/dictionary.el" "cedet/srecode/document.el" ;;;;;; "cedet/srecode/el.el" "cedet/srecode/expandproto.el" "cedet/srecode/extract.el" ;;;;;; "cedet/srecode/fields.el" "cedet/srecode/filters.el" "cedet/srecode/find.el" ;;;;;; "cedet/srecode/getset.el" "cedet/srecode/insert.el" "cedet/srecode/java.el" -;;;;;; "cedet/srecode/loaddefs.el" "cedet/srecode/map.el" "cedet/srecode/mode.el" -;;;;;; "cedet/srecode/semantic.el" "cedet/srecode/srt.el" "cedet/srecode/table.el" +;;;;;; "cedet/srecode/map.el" "cedet/srecode/mode.el" "cedet/srecode/semantic.el" +;;;;;; "cedet/srecode/srt-wy.el" "cedet/srecode/srt.el" "cedet/srecode/table.el" ;;;;;; "cedet/srecode/template.el" "cedet/srecode/texi.el" "cus-dep.el" ;;;;;; "dframe.el" "dired-aux.el" "dired-x.el" "dom.el" "dos-fns.el" ;;;;;; "dos-vars.el" "dos-w32.el" "dynamic-setting.el" "emacs-lisp/avl-tree.el" ;;;;;; "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el" "emacs-lisp/cl-extra.el" -;;;;;; "emacs-lisp/cl-loaddefs.el" "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el" -;;;;;; "emacs-lisp/cl.el" "emacs-lisp/eieio-base.el" "emacs-lisp/eieio-compat.el" -;;;;;; "emacs-lisp/eieio-custom.el" "emacs-lisp/eieio-datadebug.el" -;;;;;; "emacs-lisp/eieio-opt.el" "emacs-lisp/eieio-speedbar.el" -;;;;;; "emacs-lisp/generator.el" "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" -;;;;;; "emacs-lisp/smie.el" "emacs-lisp/subr-x.el" "emacs-lisp/tcover-ses.el" -;;;;;; "emacs-lisp/tcover-unsafep.el" "emulation/cua-gmrk.el" "emulation/edt-lk201.el" -;;;;;; "emulation/edt-mapper.el" "emulation/edt-pc.el" "emulation/edt-vt100.el" -;;;;;; "emulation/viper-cmd.el" "emulation/viper-ex.el" "emulation/viper-init.el" -;;;;;; "emulation/viper-keym.el" "emulation/viper-macs.el" "emulation/viper-mous.el" -;;;;;; "emulation/viper-util.el" "erc/erc-backend.el" "erc/erc-goodies.el" -;;;;;; "erc/erc-ibuffer.el" "erc/erc-lang.el" "eshell/em-alias.el" -;;;;;; "eshell/em-banner.el" "eshell/em-basic.el" "eshell/em-cmpl.el" -;;;;;; "eshell/em-dirs.el" "eshell/em-glob.el" "eshell/em-hist.el" -;;;;;; "eshell/em-ls.el" "eshell/em-pred.el" "eshell/em-prompt.el" -;;;;;; "eshell/em-rebind.el" "eshell/em-script.el" "eshell/em-smart.el" -;;;;;; "eshell/em-term.el" "eshell/em-tramp.el" "eshell/em-unix.el" -;;;;;; "eshell/em-xtra.el" "eshell/esh-arg.el" "eshell/esh-cmd.el" -;;;;;; "eshell/esh-ext.el" "eshell/esh-groups.el" "eshell/esh-io.el" -;;;;;; "eshell/esh-module.el" "eshell/esh-opt.el" "eshell/esh-proc.el" -;;;;;; "eshell/esh-util.el" "eshell/esh-var.el" "ezimage.el" "format-spec.el" -;;;;;; "fringe.el" "generic-x.el" "gnus/compface.el" "gnus/gnus-async.el" -;;;;;; "gnus/gnus-bcklg.el" "gnus/gnus-cite.el" "gnus/gnus-cloud.el" -;;;;;; "gnus/gnus-cus.el" "gnus/gnus-demon.el" "gnus/gnus-dup.el" -;;;;;; "gnus/gnus-eform.el" "gnus/gnus-ems.el" "gnus/gnus-icalendar.el" -;;;;;; "gnus/gnus-int.el" "gnus/gnus-logic.el" "gnus/gnus-mh.el" -;;;;;; "gnus/gnus-salt.el" "gnus/gnus-score.el" "gnus/gnus-srvr.el" -;;;;;; "gnus/gnus-topic.el" "gnus/gnus-undo.el" "gnus/gnus-util.el" -;;;;;; "gnus/gnus-uu.el" "gnus/gnus-vm.el" "gnus/gssapi.el" "gnus/ietf-drums.el" -;;;;;; "gnus/legacy-gnus-agent.el" "gnus/mail-parse.el" "gnus/mail-prsvr.el" -;;;;;; "gnus/mail-source.el" "gnus/mailcap.el" "gnus/messcompat.el" -;;;;;; "gnus/mm-archive.el" "gnus/mm-bodies.el" "gnus/mm-decode.el" -;;;;;; "gnus/mm-util.el" "gnus/mm-view.el" "gnus/mml-sec.el" "gnus/mml-smime.el" -;;;;;; "gnus/nnagent.el" "gnus/nnbabyl.el" "gnus/nndir.el" "gnus/nndraft.el" -;;;;;; "gnus/nneething.el" "gnus/nngateway.el" "gnus/nnheader.el" -;;;;;; "gnus/nnimap.el" "gnus/nnir.el" "gnus/nnmail.el" "gnus/nnmaildir.el" -;;;;;; "gnus/nnmairix.el" "gnus/nnmbox.el" "gnus/nnmh.el" "gnus/nnnil.el" -;;;;;; "gnus/nnoo.el" "gnus/nnregistry.el" "gnus/nnrss.el" "gnus/nnspool.el" -;;;;;; "gnus/nntp.el" "gnus/nnvirtual.el" "gnus/nnweb.el" "gnus/registry.el" -;;;;;; "gnus/rfc1843.el" "gnus/rfc2045.el" "gnus/rfc2047.el" "gnus/rfc2231.el" -;;;;;; "gnus/rtree.el" "gnus/sieve-manage.el" "gnus/smime.el" "gnus/spam-stat.el" -;;;;;; "gnus/spam-wash.el" "hex-util.el" "hfy-cmap.el" "ibuf-ext.el" -;;;;;; "international/charscript.el" "international/fontset.el" -;;;;;; "international/iso-ascii.el" "international/ja-dic-cnv.el" -;;;;;; "international/ja-dic-utl.el" "international/ogonek.el" "kermit.el" -;;;;;; "language/hanja-util.el" "language/thai-word.el" "ldefs-boot.el" -;;;;;; "leim/quail/arabic.el" "leim/quail/croatian.el" "leim/quail/cyril-jis.el" -;;;;;; "leim/quail/cyrillic.el" "leim/quail/czech.el" "leim/quail/ethiopic.el" -;;;;;; "leim/quail/georgian.el" "leim/quail/greek.el" "leim/quail/hanja-jis.el" -;;;;;; "leim/quail/hanja.el" "leim/quail/hanja3.el" "leim/quail/hebrew.el" -;;;;;; "leim/quail/indian.el" "leim/quail/ipa-praat.el" "leim/quail/ipa.el" -;;;;;; "leim/quail/japanese.el" "leim/quail/lao.el" "leim/quail/latin-alt.el" -;;;;;; "leim/quail/latin-ltx.el" "leim/quail/latin-post.el" "leim/quail/latin-pre.el" -;;;;;; "leim/quail/lrt.el" "leim/quail/persian.el" "leim/quail/programmer-dvorak.el" +;;;;;; "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el" "emacs-lisp/cl.el" +;;;;;; "emacs-lisp/eieio-base.el" "emacs-lisp/eieio-compat.el" "emacs-lisp/eieio-custom.el" +;;;;;; "emacs-lisp/eieio-datadebug.el" "emacs-lisp/eieio-opt.el" +;;;;;; "emacs-lisp/eieio-speedbar.el" "emacs-lisp/generator.el" +;;;;;; "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" "emacs-lisp/smie.el" +;;;;;; "emacs-lisp/subr-x.el" "emacs-lisp/tcover-ses.el" "emacs-lisp/tcover-unsafep.el" +;;;;;; "emulation/cua-gmrk.el" "emulation/edt-lk201.el" "emulation/edt-mapper.el" +;;;;;; "emulation/edt-pc.el" "emulation/edt-vt100.el" "emulation/viper-cmd.el" +;;;;;; "emulation/viper-ex.el" "emulation/viper-init.el" "emulation/viper-keym.el" +;;;;;; "emulation/viper-macs.el" "emulation/viper-mous.el" "emulation/viper-util.el" +;;;;;; "erc/erc-backend.el" "erc/erc-goodies.el" "erc/erc-ibuffer.el" +;;;;;; "erc/erc-lang.el" "eshell/em-alias.el" "eshell/em-banner.el" +;;;;;; "eshell/em-basic.el" "eshell/em-cmpl.el" "eshell/em-dirs.el" +;;;;;; "eshell/em-glob.el" "eshell/em-hist.el" "eshell/em-ls.el" +;;;;;; "eshell/em-pred.el" "eshell/em-prompt.el" "eshell/em-rebind.el" +;;;;;; "eshell/em-script.el" "eshell/em-smart.el" "eshell/em-term.el" +;;;;;; "eshell/em-tramp.el" "eshell/em-unix.el" "eshell/em-xtra.el" +;;;;;; "eshell/esh-arg.el" "eshell/esh-cmd.el" "eshell/esh-ext.el" +;;;;;; "eshell/esh-io.el" "eshell/esh-module.el" "eshell/esh-opt.el" +;;;;;; "eshell/esh-proc.el" "eshell/esh-util.el" "eshell/esh-var.el" +;;;;;; "ezimage.el" "format-spec.el" "fringe.el" "generic-x.el" +;;;;;; "gnus/compface.el" "gnus/gnus-async.el" "gnus/gnus-bcklg.el" +;;;;;; "gnus/gnus-cite.el" "gnus/gnus-cloud.el" "gnus/gnus-cus.el" +;;;;;; "gnus/gnus-demon.el" "gnus/gnus-dup.el" "gnus/gnus-eform.el" +;;;;;; "gnus/gnus-ems.el" "gnus/gnus-icalendar.el" "gnus/gnus-int.el" +;;;;;; "gnus/gnus-logic.el" "gnus/gnus-mh.el" "gnus/gnus-salt.el" +;;;;;; "gnus/gnus-score.el" "gnus/gnus-srvr.el" "gnus/gnus-topic.el" +;;;;;; "gnus/gnus-undo.el" "gnus/gnus-util.el" "gnus/gnus-uu.el" +;;;;;; "gnus/gnus-vm.el" "gnus/gssapi.el" "gnus/ietf-drums.el" "gnus/legacy-gnus-agent.el" +;;;;;; "gnus/mail-parse.el" "gnus/mail-prsvr.el" "gnus/mail-source.el" +;;;;;; "gnus/mailcap.el" "gnus/messcompat.el" "gnus/mm-archive.el" +;;;;;; "gnus/mm-bodies.el" "gnus/mm-decode.el" "gnus/mm-util.el" +;;;;;; "gnus/mm-view.el" "gnus/mml-sec.el" "gnus/mml-smime.el" "gnus/nnagent.el" +;;;;;; "gnus/nnbabyl.el" "gnus/nndir.el" "gnus/nndraft.el" "gnus/nneething.el" +;;;;;; "gnus/nngateway.el" "gnus/nnheader.el" "gnus/nnimap.el" "gnus/nnir.el" +;;;;;; "gnus/nnmail.el" "gnus/nnmaildir.el" "gnus/nnmairix.el" "gnus/nnmbox.el" +;;;;;; "gnus/nnmh.el" "gnus/nnnil.el" "gnus/nnoo.el" "gnus/nnregistry.el" +;;;;;; "gnus/nnrss.el" "gnus/nnspool.el" "gnus/nntp.el" "gnus/nnvirtual.el" +;;;;;; "gnus/nnweb.el" "gnus/registry.el" "gnus/rfc1843.el" "gnus/rfc2045.el" +;;;;;; "gnus/rfc2047.el" "gnus/rfc2231.el" "gnus/rtree.el" "gnus/sieve-manage.el" +;;;;;; "gnus/smime.el" "gnus/spam-stat.el" "gnus/spam-wash.el" "hex-util.el" +;;;;;; "hfy-cmap.el" "ibuf-ext.el" "international/charscript.el" +;;;;;; "international/fontset.el" "international/iso-ascii.el" "international/ja-dic-cnv.el" +;;;;;; "international/ja-dic-utl.el" "international/ogonek.el" "international/uni-bidi.el" +;;;;;; "international/uni-brackets.el" "international/uni-category.el" +;;;;;; "international/uni-combining.el" "international/uni-comment.el" +;;;;;; "international/uni-decimal.el" "international/uni-decomposition.el" +;;;;;; "international/uni-digit.el" "international/uni-lowercase.el" +;;;;;; "international/uni-mirrored.el" "international/uni-name.el" +;;;;;; "international/uni-numeric.el" "international/uni-old-name.el" +;;;;;; "international/uni-titlecase.el" "international/uni-uppercase.el" +;;;;;; "kermit.el" "language/hanja-util.el" "language/thai-word.el" +;;;;;; "ldefs-boot.el" "leim/ja-dic/ja-dic.el" "leim/quail/arabic.el" +;;;;;; "leim/quail/croatian.el" "leim/quail/cyril-jis.el" "leim/quail/cyrillic.el" +;;;;;; "leim/quail/czech.el" "leim/quail/ethiopic.el" "leim/quail/georgian.el" +;;;;;; "leim/quail/greek.el" "leim/quail/hanja-jis.el" "leim/quail/hanja.el" +;;;;;; "leim/quail/hanja3.el" "leim/quail/hebrew.el" "leim/quail/indian.el" +;;;;;; "leim/quail/ipa-praat.el" "leim/quail/ipa.el" "leim/quail/japanese.el" +;;;;;; "leim/quail/lao.el" "leim/quail/latin-alt.el" "leim/quail/latin-ltx.el" +;;;;;; "leim/quail/latin-post.el" "leim/quail/latin-pre.el" "leim/quail/lrt.el" +;;;;;; "leim/quail/persian.el" "leim/quail/programmer-dvorak.el" ;;;;;; "leim/quail/py-punct.el" "leim/quail/pypunct-b5.el" "leim/quail/rfc1345.el" ;;;;;; "leim/quail/sgml-input.el" "leim/quail/sisheng.el" "leim/quail/slovak.el" ;;;;;; "leim/quail/symbol-ksc.el" "leim/quail/tamil-dvorak.el" "leim/quail/thai.el" @@ -32468,14 +32553,14 @@ Zone out, completely. ;;;;;; "org/org-eshell.el" "org/org-faces.el" "org/org-feed.el" ;;;;;; "org/org-footnote.el" "org/org-gnus.el" "org/org-habit.el" ;;;;;; "org/org-id.el" "org/org-indent.el" "org/org-info.el" "org/org-inlinetask.el" -;;;;;; "org/org-install.el" "org/org-irc.el" "org/org-list.el" "org/org-loaddefs.el" -;;;;;; "org/org-macro.el" "org/org-mhe.el" "org/org-mobile.el" "org/org-mouse.el" -;;;;;; "org/org-pcomplete.el" "org/org-plot.el" "org/org-protocol.el" -;;;;;; "org/org-rmail.el" "org/org-src.el" "org/org-table.el" "org/org-timer.el" -;;;;;; "org/org-w3m.el" "org/ox-ascii.el" "org/ox-beamer.el" "org/ox-html.el" -;;;;;; "org/ox-icalendar.el" "org/ox-latex.el" "org/ox-man.el" "org/ox-md.el" -;;;;;; "org/ox-odt.el" "org/ox-org.el" "org/ox-publish.el" "org/ox-texinfo.el" -;;;;;; "org/ox.el" "play/gametree.el" "progmodes/ada-prj.el" "progmodes/cc-align.el" +;;;;;; "org/org-install.el" "org/org-irc.el" "org/org-list.el" "org/org-macro.el" +;;;;;; "org/org-mhe.el" "org/org-mobile.el" "org/org-mouse.el" "org/org-pcomplete.el" +;;;;;; "org/org-plot.el" "org/org-protocol.el" "org/org-rmail.el" +;;;;;; "org/org-src.el" "org/org-table.el" "org/org-timer.el" "org/org-w3m.el" +;;;;;; "org/ox-ascii.el" "org/ox-beamer.el" "org/ox-html.el" "org/ox-icalendar.el" +;;;;;; "org/ox-latex.el" "org/ox-man.el" "org/ox-md.el" "org/ox-odt.el" +;;;;;; "org/ox-org.el" "org/ox-publish.el" "org/ox-texinfo.el" "org/ox.el" +;;;;;; "play/gametree.el" "progmodes/ada-prj.el" "progmodes/cc-align.el" ;;;;;; "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el" "progmodes/cc-cmds.el" ;;;;;; "progmodes/cc-defs.el" "progmodes/cc-fonts.el" "progmodes/cc-langs.el" ;;;;;; "progmodes/cc-menus.el" "progmodes/ebnf-abn.el" "progmodes/ebnf-bnf.el" @@ -32498,7 +32583,7 @@ Zone out, completely. ;;;;;; "vc/ediff-vers.el" "vc/ediff-wind.el" "vc/pcvs-info.el" "vc/pcvs-parse.el" ;;;;;; "vc/pcvs-util.el" "vc/vc-dav.el" "vc/vc-filewise.el" "vcursor.el" ;;;;;; "vt-control.el" "vt100-led.el" "w32-fns.el" "w32-vars.el" -;;;;;; "x-dnd.el") (22150 28575 326072 702000)) +;;;;;; "x-dnd.el") (22188 49115 186777 865000)) ;;;*** commit e6b7b6d89ff9288a49099f041752908b5eb9613e Author: Nicolas Petton Date: Sat Jan 30 14:39:23 2016 +0100 ; ChangeLog fixes * ChangeLog.2: Auto-update of the ChangeLog file, as well as entry fixes. diff --git a/ChangeLog.2 b/ChangeLog.2 index f406916..aaa2d5c 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1,3 +1,8372 @@ +2016-01-30 Nicolas Petton + + Bump version to 25.0.90 + + * README: + * configure.ac: + * msdos/sed2v2.inp: Bump version to 25.0.90. + +2016-01-30 Nicolas Petton + + * etc/AUTHORS: Update the AUTHORS file + +2016-01-30 Nicolas Petton + + authors.el updates + + * admin/authors.el (authors-renamed-files-alist): Additions. + +2016-01-30 Nicolas Petton + + Make it possible to run make change-history on emacs-25 + + * Makefile.in: Check if the current branch is emacs-25 instead of + master. + +2016-01-30 lu4nx + + Support Go language in 'etags' + + * lib-src/etags.c : Fix documentation of Ruby tags. + : New help. + : New variable. + (Go_functions): New function. + : Add entry for Go. (Bug#22370) + + * doc/emacs/maintaining.texi (Tag Syntax): Document Go support. + * doc/man/etags.1: Mention Go support. + + * etc/NEWS: Mention Go support. + + * test/etags/go-src/test.go: + * test/etags/go-src/test1.go: New test files. + * test/etags/Makefile (GOSRC): New variable. + (SRCS): Add $(GOSRC). + * test/etags/ETAGS.good_1: + * test/etags/ETAGS.good_2: + * test/etags/ETAGS.good_3: + * test/etags/ETAGS.good_4: + * test/etags/ETAGS.good_5: + * test/etags/ETAGS.good_6: + * test/etags/CTAGS.good: Adapt to addition of Go tests. + +2016-01-30 Eli Zaretskii + + Improve Ruby support in 'etags' + + * lib-src/etags.c (Ruby_functions): Tag constants. Don't tag + singleton classes. Remove class qualifiers from tags generated + for method and constant names. (Bug#22241) + + * doc/emacs/maintaining.texi (Tag Syntax): Mention that constants + are tagged by etags in Ruby. + + * etc/NEWS: Mention that constants are tagged by etags in Ruby. + + * test/etags/ruby-src/test1.ruby: Add more tests. + * test/etags/ETAGS.good_1: + * test/etags/ETAGS.good_2: + * test/etags/ETAGS.good_3: + * test/etags/ETAGS.good_4: + * test/etags/ETAGS.good_5: + * test/etags/ETAGS.good_6: + * test/etags/CTAGS.good: Adapt to the changes in etags and in Ruby + tests. + +2016-01-30 Eli Zaretskii + + Adjust etags test results to changes in copyright years + + * test/etags/CTAGS.good: + * test/etags/ETAGS.good_1: + * test/etags/ETAGS.good_2: + * test/etags/ETAGS.good_3: + * test/etags/ETAGS.good_4: + * test/etags/ETAGS.good_5: + * test/etags/ETAGS.good_6: Adjust to shift in characters and + in line numbers. + +2016-01-30 Andreas Schwab + + Revert "Re-enable checks in member, memql, delete to complain about non-lists" + + This reverts commit f524e8b7f12d9b5a8b92084e5385429fe7b085b9. + +2016-01-30 Nicolas Petton + + Make it possible to run make change-history on emacs-25 + + * Makefile.in: Check if the current branch is emacs-25 instead of + master. + +2016-01-30 Dmitry Gutov + + Don't fiddle with DEFAULT + + * lisp/progmodes/project.el (project--completing-read-strict): + Don't change DEFAULT, whether is has any matches in + COLLECTION, or not. + +2016-01-30 Eli Zaretskii + + Document xwidget commands and functions + + * doc/lispref/display.texi (Xwidgets): New section, describes some + of the xwidget primitives. + * doc/lispref/display.texi (Display): Update the chapter menu. + * doc/emacs/misc.texi (Embedded WebKit Widgets): New section. + * doc/emacs/emacs.texi (Top): Update the master menu to include + the xwidget node. + +2016-01-30 Lars Ingebrigtsen + + Build fix for shr.el + + * shr.el (seq): Require. + +2016-01-30 Dmitry Gutov + + Improve project-find-file yet again! + + * lisp/progmodes/project.el (project--completing-read-strict): + New function. + (project-find-file-in): Use it. + (project-file-completion-table): Move the default + implementation inside the cl-defgeneric form. + (http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01720.html) + +2016-01-30 Dmitry Gutov + + Don't pass DIR to 'hg status' + + * lisp/vc/vc-hg.el (vc-hg-dir-status-files): + Don't pass DIR to 'hg status' (bug#22481). + +2016-01-30 Stephen Leake + + Fix typo in previous commits + + * lisp/progmodes/project.el (project-find-file-in): + * lisp/vc/vc-mtn.el (vc-mtn-find-ignore-file): Fix typo in previous + commit. + +2016-01-30 Stephen Leake + + Improve project-find-file + + * lisp/progmodes/project.el (project-file-completion-table): New. + (project-find-file, project-or-external-find-file): Default to filename + at point. + (project-file-completion-table): New, split out from + project--find-file-in. + (project-find-file-in): Renamed from project--find-file-in, use + project-file-completion-table. + + * lisp/progmodes/xref.el (ede-minor-mode): New declaration. + (xref--find-ignores-arguments): Add doc string. + +2016-01-30 Stephen Leake + + Implement vc-mtn-find-ignore-file, fix some doc strings + + * lisp/cedet/cedet-global.el (cedet-gnu-global-root): Improve doc string. + + * lisp/cedet/ede/locate.el (initialize-instance): Improve doc string. + + * lisp/vc/vc-git.el (vc-git-find-ignore-file): Fix doc string. + + * lisp/vc/vc-mtn.el (vc-mtn-find-ignore-file): New function. + +2016-01-29 Vincent Belaïche + + Correct a whole bunch of bugs coming with renamed cell relocation. + + This is the same change as commit on master branch. See + http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=badcd38aa86ed7973f2be2743c405710973a0bdd + + * lisp/ses.el (ses-localvars): rename variable + `ses--renamed-cell-symb-list' into `ses--in-killing-named-cell-list' + and adjust the comment about it. + (ses-plist-delq): new defun. + (ses--ses-buffer-list): new defvar. + (ses--unbind-cell-name): new defun. + (ses-relocate-symbol): Do not relocate symbol when it is a named cell. + (ses-relocate-formula): Undo change of + 2011-12-27T19:30:39Z!vincentb1@users.sourceforge.net that was + preventing relocation for named cell --- now doing this is delegated + to function `ses-relocate-symbol'. + (ses-relocate-range): In docstring, undo change of + 2016-01-03T07:31:52Z!johnw@newartisans.com, `ses-range' must remain + lower case as it is not a variable. + (ses-relocate-all): Cell name relocation : 1) check that cell is a + renamed cell by testing `ses-cell' property to :ses-named, rather than + comparing name to corresponding standard name. Set rowcol of renamed + cell into the hashmap --- `ses-cell' property must not be used for + that as the same name can be used for different locations in different + SES sheets ; 2) use `local-variable-if-set-p' rather than `boundp' and + `local-variable-p' to check if cell name is already in use in this + sheet or needs initialisation. + (ses-relocate-all): Cell value relocation : 1) like for name + relocation use the `ses-cell' property rather than comparing actual + name to corresponding standard name. 2) Correct bug introduced in + 2011-12-27T19:30:39Z!vincentb1@users.sourceforge.net, as the test was + made the other way round than the intention --- ie value relocation + was disabled for standard cell, not for renamed cell as was the + intention. + (ses-relocate-all): Add loop for unbinding deleted renamed cells + names. + (ses-killbuffer-hook): new defun. + (ses-mode): Add the ses--ses-buffer-list maintenance mechanism --- + kill buffer hook, plus pushing current buffer if new in list. + (ses-delete-row, ses-delete-column): Collect deleted renamed cells + into `ses--in-killing-named-cell-list'. + (ses-rename-cell): Remove update of variable + `ses--renamed-cell-symb-list', this variable is renamed to + `ses--in-killing-named-cell-list', and its setting is done in + functions `ses-delete-row' and , `ses-delete-column' now. + (ses-rename-cell): Make cell new name a buffer local variable. + (ses-rename-cell): Change correction of + 2015-12-30T23:10:37Z!vincentb1@users.sourceforge.net concerning + computation of the range over which `cursor-intangible' property was + to be updated. This correction was ok for non spilling cells, but not + for cells spilling over following blank cells. Simply use + `next-single-property-change' rather than computing the end column + from column widths. + +2016-01-29 Andreas Schwab + + Re-enable checks in member, memql, delete to complain about non-lists + + * src/fns.c (Fmember, Fmemql, Fdelete): Revert 2007-10-16 change. + +2016-01-29 Martin Rudalics + + c:/emacs-git/next/ChangeLog + +2016-01-29 Eli Zaretskii + + Minor improvements to 'pcase' documentation + + * doc/lispref/control.texi (Pattern matching case statement): + Improve the documentation of 'pcase' per comments. See two + discussion threads on emacs-devel@gnu.org for the details: + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01335.html + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01336.html. + +2016-01-29 Glenn Morris + + Don't use eval to quieten prolog.el compilation. + + * lisp/progmodes/prolog.el (pltrace-on, pltrace-off): Declare. + (prolog-enable-sicstus-sd, prolog-disable-sicstus-sd): Don't use eval. + +2016-01-29 Glenn Morris + + Mark some risky prolog variables. + + * lisp/progmodes/prolog.el (prolog-system-version) + (prolog-keywords, prolog-types, prolog-mode-specificators) + (prolog-determinism-specificators, prolog-directives) + (prolog-program-name, prolog-program-switches) + (prolog-consult-string, prolog-compile-string) + (prolog-eof-string, prolog-prompt-regexp, prolog-help-function): + Mark anything processed by prolog-find-value-by-system as risky. + +2016-01-28 Glenn Morris + + * lisp/custom.el (defcustom): Doc fix. + + * doc/lispref/customize.texi (Variable Definitions): + Defcustom should always have a type. + +2016-01-28 Glenn Morris + + * lisp/cedet/semantic/db-file.el (semanticdb-persistent-path): + Fix :type. + + * lisp/emacs-lisp/package.el (package-load-list): Improve :type. + +2016-01-28 Michael Albinus + + Fix Bug#22452 + + * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection): + * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection): + * lisp/net/tramp-sh.el (tramp-maybe-open-connection): + * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): + Mark it as connected. + + * lisp/net/tramp.el (tramp-handle-file-remote-p): Check also, if + connection property "connected" is set. (Bug#22452) + +2016-01-27 Glenn Morris + + * lisp/xwidget.el (xwidget-query-on-exit-flag): Declare. + + * lisp/xwidget.el (xwidget-webkit-browse-url): Give explicit error + if not compiled with xwidgets. + +2016-01-27 Paul Eggert + + C-u C-x = example doc fix + + * doc/emacs/mule.texi (International Chars): + Adjust example to match current behavior of C-u C-x =. + +2016-01-27 Paul Eggert + + malloc.h hygiene + + This attempts to future-proof Emacs a bit against possible glibc + changes, by having Emacs use declarations rather than + coding them up by hand. Problem noted by Florian Weimer in: + https://sourceware.org/ml/libc-alpha/2016-01/msg00777.html + Implement this mainly by moving malloc.h-related functions from + emacs.c (which does not include ) to alloc.c (which does). + * src/alloc.c (my_heap_start) [DOUG_LEA_MALLOC || GNU_LINUX]: + New function. + The remaining changes to this file apply only if DOUG_LEA_MALLOC. + (alloc_unexec_pre, alloc_unexec_post): New functions. + (malloc_initialize_hook): Use my_heap_start and alloc_unexec_post. + (__MALLOC_HOOK_VOLATILE): New macro, if not already defined. + (__malloc_initialize_hook): Use it. + (malloc_state_ptr, malloc_initialize_hook, __malloc_initialize_hook): + Move here from ... + * src/emacs.c: ... here. + (malloc_get_state, malloc_set_state): Remove extern decls. + (my_heap_start) [DOUG_LEA_MALLOC || GNU_LINUX]: Remove static var. + All uses changed to similarly-named new function. + (Fdump_emacs): Use new functions alloc_unexec_pre, alloc_unexec_post. + * src/lisp.h (my_heap_start, alloc_unexec_pre, alloc_unexec_post): + New decls. + +2016-01-26 Eli Zaretskii + + * doc/emacs/mark.texi (Using Region): Clarify wording. (Bug#22467) + +2016-01-26 Paul Eggert + + Remove never-set var handle_user_signal_hook + + * src/keyboard.c, src/keyboard.h (handle_user_signal_hook): + Remove never-set var. All uses removed. + +2016-01-26 K. Handa + + Backport:fix previous change of src/ftfont.c (ftfont_shape_by_flt) + + * src/ftfont.c (ftfont_shape_by_flt): Fix previous change. Access the + second glyph only when there are enough glyphs. + + (cherry picked from commit 9835757013569673854b692ccbb58bfb3c3ed1f7) + +2016-01-26 K. Handa + + support rendering of wider range of combinging characters by ftfont backend + + * lisp/language/hebrew.el (hebrew-shape-gstring): If the font backend + supports rendering of combining characters, call + font-shape-gstring. + + * src/font.c (Ffont_get): Handle `combining-capability' property. + (syms_of_font): New symbol ":combining-capability'. + + * src/font.h (struct font_driver): New member combining_capability. + + * src/ftfont.c: Include "category.h". + (ftfont_driver): Initialize combining_capability to + ftfont_combining_capability. + (ftfont_shape_by_flt): If OTF is null, try to find a suitable + FLT in advance. + (ftfont_combining_capability): New function. + + (cherry picked from commit 536f48e9a2251b9e654ea974bd90ff2f40218753) + +2016-01-26 Anders Lindgren + + Fixed NextStep fullscreen issue (bug#22468) + + When in fullscreen mode, `[screen visibleFrame]' sometimes + includes, sometimes excludes the menu bar. This could cause + a frame to be placed too low when in fullscreen mode. + + * src/nsterm.m (ns_menu_bar_should_be_hidden): Trace. + (constrain_frame_rect): New parameter, isFullscreen, when true don't + query the height of the menu bar. + (ns_constrain_all_frames): Pass `false' (isFullscreen) to + `constrain_frame_rect'. + ([EmacsView initFrameFromEmacs:]): Trace. + ([EmacsView isFullscreen]): Trace. + ([EmacsWindow constrainFrameRect:toScreen:]): Pass fullscreen + state to `constrain_frame_rect'. + +2016-01-26 Artur Malabarba + + * lisp/files.el: Use a fixed file name for the second dir-locals file + + (dir-locals-file): Revert to its original fixed value. + (dir-locals-file-2): New const. + (dir-locals--all-files): Don't use `file-name-all-completions'. + Instead, just check for the 2 dir-locals files and return a list + of the ones that exit (if any). + + * etc/NEWS: Document the change. + + * doc/emacs/custom.texi (Directory Variables): Document the change. + + * doc/lispref/variables.texi (Directory Local Variables): Update + accordingly. + +2016-01-26 Artur Malabarba + + * lisp/files-x.el (modify-dir-local-variable): Small rewrite + + Change a variable name to be more meaningful, and reorder some of + the code with no change in behaviour. + +2016-01-26 Artur Malabarba + + * lisp/files.el (dir-locals-find-file): Refactor return values + + Returning a cache remains unchanged, but the case of returning a + file (or pattern) is now changed to return the contaning + directory. + + (dir-locals-read-from-file): Rename to `dir-locals-read-from-dir' + and make obsolete. + (dir-locals-read-from-dir): Simplify accordingly. + (hack-dir-local-variables): Simplify accordingly and rename a + variable. + +2016-01-26 Glenn Morris + + * lisp/textmodes/flyspell.el (flyspell--prev-meta-tab-binding): + Declare. + + * configure.ac (USE_CAIRO): Rename to more standard HAVE_CAIRO. + + * configure.ac (--with-cairo): Say it's experimental. + + * lisp/xwidget.el (xwidget-webkit-scroll-behavior): + Rename using American spelling. Update all uses. + +2016-01-26 Glenn Morris + + Yet more xwidget doc fixes. + + * lisp/xwidget.el (xwidget-webkit-scroll-behaviour) + (xwidget-insert, xwidget-webkit-browse-url) + (xwidget-webkit-scroll-up, xwidget-webkit-scroll-down) + (xwidget-webkit-scroll-forward, xwidget-webkit-scroll-backward) + (xwidget-webkit-insert-string, xwidget-webkit-show-named-element) + (xwidget-webkit-show-id-element) + (xwidget-webkit-show-id-or-named-element) + (xwidget-webkit-adjust-size, xwidget-webkit-current-url) + (xwidget-webkit-execute-script-rv) + (xwidget-webkit-copy-selection-as-kill, xwidget-get) + (xwidget-put): Doc fixes. + (xwidget-webkit-insert-string, xwidget-webkit-show-named-element) + (xwidget-webkit-show-id-element) + (xwidget-webkit-show-id-or-named-element): Prompt fixes. + +2016-01-25 Ted Zlatanov + + * lisp/gnus/gnus-art.el (gnus-blocked-images): + Add explicit nil choice and tags. + +2016-01-25 Paul Eggert + + Spelling fixes + +2016-01-25 Stefan Monnier + + (font-lock-ensure-function): Fix bug#22399 + + * lisp/font-lock.el (font-lock-ensure-function): Fix handling when + font-lock-mode is not enabled (bug#22399). + +2016-01-25 Alan Mackenzie + + Expunge "allow" + infinitive from source and doc, part 2. + + Do the same for "permit", "enable", "prevent", and (where appropriate) + "require". + + doc/misc/reftex.texi: + doc/misc/url.texi: + lib/get-permissions.c: + lib/strftime.c: + lisp/org/org-element.el: + lisp/org/org-mobile.el: + lisp/textmodes/reftex-vars.el: + src/bidi.c: + src/emacs.c: + src/xdisp.c: + test/etags/c-src/emacs/src/lisp.h: + + Expunge the likes of "This allows to do something" from the above files. + +2016-01-25 Artur Malabarba + + * lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode): Redundant line + + `special-mode' is already read-only. + +2016-01-25 Artur Malabarba + + * lisp/emacs-lisp/ert.el (ert--results-move): Change error to user-error + +2016-01-25 Paul Eggert + + Port "$@" to OpenIndiana ksh93 + + In http://lists.gnu.org/archive/html/bug-autoconf/2015-12/msg00000.html + Pavel Raiskup reports that ${1+"$@"} runs afoul of a bug in /bin/sh + (derived from ksh 93t+ 2010-03-05). ${1+"$@"} works around an ancient + bug in long-dead shells, so remove the workaround. + * admin/check-doc-strings, configure.ac, lib-src/rcs2log: + Use plain "$@" rather than ${1+"$@"}. + +2016-01-25 Paul Eggert + + * src/xwidget.c (Fxwidget_set_adjustment): Fix doc string quoting typo. + +2016-01-25 Paul Eggert + + Improve wording for SMB support + + * doc/misc/tramp.texi (External methods): Improve and modernize + wording for discussion of smbclient. There is no longer any + need to mention the laundry list of old MS Windows implementations + of SMB and CIFS, nor to mention CIFS. Also, give a URL for Samba. + +2016-01-24 Paul Eggert + + Merge from gnulib + + This incorporates: + 2016-01-24 openat_proc_name: fix last '/' overwritten on OS/2 kLIBC + 2016-01-24 closedir, dirfd, opendir: port to OpenSolaris 5.10 + 2016-01-15 detect utimes() correctly on OS/2 kLIBC + 2016-01-15 openat_proc_name: port to OS/2 kLIBC + 2016-01-14 stdint: check _INTPTR_T_DECLARED for intptr_t etc. + 2016-01-14 opendir, closedir, dirfd, fdopendir: port to OS/2 kLIBC + 2016-01-14 dup, dup2, fcntl: support a directory fd on OS/2 kLIBC + 2016-01-14 binary-io: don't put fd in binary mode if a console on EMX + 2016-01-14 sig2str: list all signals on FreeBSD >= 7 + 2016-01-13 acl-permissions: port to USE_ACL==0 platforms + 2016-01-12 mktime: rename macro to avoid glibc clash + 2016-01-12 Port "$@" to OpenIndiana ksh93 + 2016-01-12 Port Universal Time settings to strict POSIX + * build-aux/gitlog-to-changelog, build-aux/update-copyright: + * doc/misc/texinfo.tex, lib/acl-internal.c, lib/acl-internal.h: + * lib/binary-io.h, lib/dirent.in.h, lib/dirfd.c, lib/dup2.c: + * lib/fcntl.c, lib/fdopendir.c, lib/mktime.c, lib/openat-proc.c: + * lib/sig2str.h, lib/stdint.in.h, m4/dirfd.m4, m4/dup2.m4: + * m4/fcntl.m4, m4/utimes.m4: + Copy from gnulib. + * m4/gnulib-comp.m4: Regenerate. + +2016-01-24 Alan Mackenzie + + Expunge "allow" + infinitive without direct object from source and doc. + + Do the same for "permit", "enable", and "prevent". + + * doc/emacs/mule.texi: + * doc/lispref/control.texi: + * doc/lispref/display.texi: + * doc/lispref/frames.texi: + * doc/lispref/functions.texi: + * doc/lispref/nonascii.texi: + * doc/lispref/streams.texi: + * doc/lispref/windows.texi: + * doc/misc/dbus.texi: + * doc/misc/eww.texi: + * doc/misc/flymake.texi: + * doc/misc/octave-mode.texi: + * doc/misc/org.texi: + * doc/misc/reftex.texi: + * doc/misc/tramp.texi: + * doc/misc/wisent.texi: + * etc/NEWS: + * lisp/autorevert.el: + * lisp/cedet/mode-local.el: + * lisp/cedet/semantic/senator.el: + * lisp/cedet/semantic/wisent.el: + * lisp/dos-fns.el: + * lisp/frameset.el: + * lisp/gnus/gnus-agent.el: + * lisp/gnus/mm-util.el: + * lisp/international/characters.el: + * lisp/ldefs-boot.el: + * lisp/mail/mailclient.el: + * lisp/man.el: + * lisp/mh-e/mh-search.el: + * lisp/net/tramp-cmds.el: + * lisp/net/tramp-gvfs.el: + * lisp/org/org-crypt.el: + * lisp/org/org-element.el: + * lisp/org/org-feed.el: + * lisp/org/org.el: + * lisp/org/ox-ascii.el: + * lisp/org/ox-icalendar.el: + * lisp/org/ox-publish.el: + * lisp/org/ox.el: + * lisp/play/gamegrid.el: + * lisp/play/gomoku.el: + * lisp/progmodes/antlr-mode.el: + * lisp/progmodes/python.el: + * lisp/progmodes/vhdl-mode.el: + * lisp/strokes.el: + * lisp/textmodes/ispell.el: + * lisp/tree-widget.el: + * lisp/vc/pcvs.el: + * lisp/window.el: + * src/lisp.h: + * src/w32.c: + * src/w32heap.c: + * src/w32term.c: + * src/window.c: + * src/xfaces.c: + + Replace solecisms like "This allow to do something" with a correct + alternative, such as "This allow you to do something", "This allows + something to be done" or "This allows the doing of something". + +2016-01-24 l3thal + + Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 + +2016-01-24 Kelvin White + + Add NEWS entry for asynchronous reconnect in ERC + +2016-01-24 l3thal + + Add NEWS entry for asynchronous reconnect in ERC + +2016-01-24 Kelvin White + + browse-url.el: Add 'google-chrome' to supported browsers. + +2016-01-24 Paul Eggert + + Port Tramp manual to latest Texinfo + + Otherwise, 'make pdf' did not work (Bug#22416). + * doc/misc/tramp.texi (xxx, yyy): Remove macros. + (trampfn): Specialize to the case where METHOD is nonempty. + The 2nd argument is now user@host, not 2nd user and 3rd host args. + All uses changed. + (trampf): New macro. + +2016-01-24 Lars Ingebrigtsen + + * eww.el (eww-render): Protect against empty content-types. + +2016-01-24 Nicolas Petton + + authors.el updates + + * admin/authors.el (authors-ignored-files, authors-renamed-files-alist): + Additions. + +2016-01-24 Dmitry Gutov + + Rename xref-query-replace to xref-query-replace-in-results + + * lisp/progmodes/xref.el(xref-query-replace): + Rename to xref-query-replace-in-results. + (http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01240.html) + + * lisp/progmodes/xref.el (xref--xref-buffer-mode-map): + * lisp/dired-aux.el (dired-do-find-regexp-and-replace): + * doc/emacs/dired.texi (Operating on Files): + * doc/emacs/maintaining.texi (Xref Commands) + (Identifier Search, Identifier Search): Update accordingly. + +2016-01-24 Dmitry Gutov + + Update cl-defgeneric and cl-defmethod docstrings + + * lisp/emacs-lisp/cl-generic.el: Remove outdated TODO item. + (cl-defgeneric): Rename BODY to DEFAULT-BODY. + (cl-defmethod): Mention that multiple dispatch arguments are + allowed. Document supported types. (Bug#22336) + +2016-01-23 Dmitry Gutov + + Comment out next-error-function integration in xref + + * lisp/progmodes/xref.el (xref--xref-buffer-mode): + Comment out next-error-function integration + (http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01286.html). + +2016-01-23 John Wiegley + + Correct a use of "which" in intro.texi + +2016-01-23 Alan Mackenzie + + Distinguish the two meanings of Java's keyword "default". Fixes bug #22358. + + * lisp/progmodes/cc-engine.el (c-guess-basic-syntax CASE 14): Check the + context of case labels (including "default") more rigorously. + (c-guess-basic-syntax CASE 15): Consequential amendment. + + * lisp/progmodes/cc-langs.el (c-modifier-kwds): Add "default" to Java's value. + +2016-01-23 Oscar Fuentes + + Don't operate on menu bar of nonexistent frame + + * src/xfns.c (Fx_hide_tip) [USE_LUCID]: Check that the current frame + is valid before redisplaying its menu. Fixes bug#22438. + +2016-01-23 Anders Lindgren + + Unbreak the GNUstep build. + + * src/nsterm.m ([EmacsBell init]): In GNUstep, don't use the + predefined "caution" image. Add trace. + (x_set_window_size): Remove unused variables `cols' and `rows'. + (ns_draw_fringe_bitmap): Exclude assignment of `fromRect' when + GNUstep is used. + ([EmacsView updateFrameSize:]): Remove unused variable `win'. + ([EmacsWindow zoom:]): Remove unused variable `f'. + +2016-01-23 Eli Zaretskii + John Wiegley + Michael Heerdegen + + Improve documentation of 'pcase' + + * doc/lispref/control.texi (Pattern matching case statement): + Reorganize, expand, and improve wording. + + * etc/NEWS: Mention that 'pcase' changes are documented. + +2016-01-23 Paul Eggert + + * etc/NEWS: Say that Cairo is experimental. + +2016-01-23 Paul Eggert + + Report error for PNG under Cairo + + * src/image.c (lookup_rgb_color): Signal a file error instead + of dumping core when mishandling an image. + +2016-01-23 Arash Esbati + + Delete a spurious backquote (tiny change) + + * lisp/textmodes/reftex-ref.el (reftex-label): Delete a + spurious backquote which raises an error with emacs 25. + +2016-01-23 Paul Eggert + + Pacify --enable-gcc-warnings --with-cairo + + Problem reported by Alexander Kuleshov in: + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01289.html + * src/gtkutil.c (xg_get_page_setup): + Use switch rather than if-then-else. + * src/image.c (COLOR_TABLE_SUPPORT): + Define directly rather than via #define and optional later #undef. + (lookup_rgb_color) [USE_CAIRO && ENABLE_CHECKING]: + Crash when the pixel is undefined, as there is a genuine bug + here (Bug#22442). + * src/image.c (tiff_load, gif_load, svg_load_image) + (x_kill_gs_process) [USE_CAIRO]: + * src/xterm.c (x_draw_fringe_bitmap) [USE_CAIRO]: + Omit unused locals, or move them to where they’re needed. + (x_clear_area1): Now ATTRIBUTE_UNUSED. + +2016-01-23 Eli Zaretskii + + Update documentation for Dired search and replace + + * doc/emacs/dired.texi (Operating on Files): Update descriptions + of 'A' and 'Q' now bound to 'dired-do-find-regexp' and + 'dired-do-find-regexp-and-replace'. + + * etc/NEWS: Mention xref-related changes in Dired. + +2016-01-23 Paul Eggert + + Port recent xdisp.c fix to picky C compilers + + * src/xdisp.c (dump_glyph): Redo the call to fprintf to avoid + putting #if inside the arguments to a standard function, which + the C standard says has undefined behavior. + +2016-01-22 Alan Mackenzie + + Prevent spurious recognition of K&R argument declarations. Fixes bug #2203 + + * lisp/progmodes/cc-engine.el (c-forward-declarator): New function. + (c-in-knr-argdecl): Before recognizing a K&R argument declaration, check it is + contained in the preceding arg list. + + * lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Use the new function + `c-forward-declarator' in place of inline code. + +2016-01-22 Eli Zaretskii + + Fix the build with --enable-checking=glyphs + + * src/xdisp.c (dump_glyph): Don't refer to glyph->u.xwidget in a + build without xwidget support. + +2016-01-22 Eli Zaretskii + + Document cl-generic.el + + * doc/lispref/functions.texi (Generic Functions): New section. + (Bug#22336) + (Functions): Update the chapter menu. + * doc/lispref/elisp.texi: Update the master menu. + +2016-01-22 Paul Eggert + + xwidgets style cleanup + + Adjust the newly-added Xwidgets code so that it uses a more-typical + Emacs style. This should not affect behavior, except that in + a few places it adds runtime checks that Lisp arguments are of + the proper type, and in one place it uses more-precise arithmetic. + * src/buffer.c, src/dispnew.c, src/emacs.c, src/emacsgtkfixed.c: + * src/emacs.c, src/print.c, src/window.c, src/xdisp.c, src/xterm.c: + Include xwidget.h unconditionally. + * src/buffer.c (Fkill_buffer): + * src/dispnew.c (update_window): + * src/emacs.c (main): + * src/print.c (print_object): + * src/window.c (Fdelete_window_internal): + * src/xdisp.c (handle_single_display_spec, push_it, pop_it) + (get_next_element, set_iterator_to_next, next_element_from_xwidget) + (dump_glyph, calc_pixel_width_or_height, BUILD_GLYPH_STRINGS_XW) + (BUILD_GLYPH_STRINGS, x_produce_glyphs, get_window_cursor_type): + * src/xterm.c (x_draw_glyph_string, x_draw_bar_cursor): + Call xwidget functions and macros without worrying about + HAVE_XWIDGETS when the code is a no-op on non-xwidget + platforms. + * src/dispextern.h (XWIDGET_GLYPH, struct glyph_string.xwidget) + (IT_XWIDGET, GET_FROM_XWIDGET, struct it.u.xwidget) + (struct it.xwidget): + * src/lisp.h (PVEC_XWIDGET, PVEC_XWIDGET_VIEW): + Always define. + * src/emacsgtkfixed.h: Omit unnecessary comment. + * src/keyboard.c: Fix spacing. + * src/xdisp.c (BUILD_XWIDGET_GLYPH_STRING, produce_xwidget_glyph): + Define to be a no-op if not HAVE_XWIDGETS. + * src/xwidget.c: Include xwidget.h first (after config.h) + to make sure that it can stand by itself. + (Fmake_xwidget, Fxwidget_webkit_execute_script): + Fix typo in doc string. + (Fmake_xwidget): Check type of args. + (Fmake_xwidget, offscreen_damage_event) + (webkit_document_load_finished_cb, webkit_download_cb) + (webkit_new_window_policy_decision_requested_cb) + (webkit_navigation_policy_decision_requested_cb) + (xwidget_osr_draw_cb, xwidget_osr_event_forward) + (xwidget_osr_event_set_embedder, xwidget_init_view): + Omit unnecessary casts. + * src/xwidget.c (Fmake_xwidget, xwidget_hidden) + (xwidget_show_view, xwidget_hide_view) + (x_draw_xwidget_glyph_string, xwidget_start_redisplay, xwidget_touch) + (xwidget_touched): + * src/xwidget.h (struct xwidget.kill_without_query) + (struct xwidget_view.redisplayed, struct xwidget_view.hidden): + Use bool for boolean. + * src/xwidget.c (store_xwidget_event_string, Fxwidget_size_request): + Simplify by using list functions. + (WEBKIT_FN_INIT): Omit unnecessary test for nil. + (Fxwidget_resize): Check type of integer args + before doing any work. Check that they are nonnegative. + (Fxwidget_set_adjustment): Check type of integer arg. + Avoid redundant call to gtk_scrolled_window_get_vadjustment. + Simplify. Use double, not float. + (Fxwidget_info, Fxwidget_view_info): Simplify by using CALLN. + (valid_xwidget_spec_p): Simplify. + (xwidget_spec_value): Omit unused arg FOUND. All callers changed. + * src/xwidget.h: Include lisp.h first, so that includers do + not need to worry about doing that before including this file. + Make this .h file safe to include even on non-HAVE_XWIDGETS + configurations, to simplify the includers. + (x_draw_xwidget_glyph_string, syms_of_xwidget, valid_xwidget_spec_p) + (xwidget_end_redisplay, lookup_xwidget) + (xwidget_view_delete_all_in_window, kill_buffer_xwidgets): + Now a no-op if !HAVE_XWIDGETS, to simplify callers. + (struct glyph_matrix, struct glyph_string, struct xwidget) + (struct xwidget_view, struct window): + New forward or incomplete decls, so that includers need not + assume the corresponding .h files are already included, or that + HAVE_XWIDGETS is defined. + (struct xwidget_type, xwidget_from_id): Remove; unused. + +2016-01-22 Michael Albinus + + Backport kqueue integration from master + + * configure.ac (--with-file-notification): Add kqueue. + (top): Remove special test for "${HAVE_NS}" and + ${with_file_notification}, this is handled inside gfilenotify + tests. Add kqueue tests. Use NOTIFY_CFLAGS and NOTIFY_LIBS + instead of library specific variables. Add error message for + gfile on Nextstep. + + * doc/lispref/os.texi (File Notifications): Add kqueue as backend. + Fix some glitches in the example. + + * etc/NEWS: Mention kqueue. + + * lisp/filenotify.el (file-notify--library) + (file-notify-descriptors, file-notify-callback) + (file-notify-add-watch, file-notify-rm-watch) + (file-notify-valid-p): Add kqueue support. + (file-notify--rm-descriptor): Remove WHAT arg. + + * src/Makefile.in: Use NOTIFY_CFLAGS and NOTIFY_LIBS. + + * src/emacs.c (main): Call globals_of_kqueue and syms_of_kqueue. + + * src/inotify.c (inotifyevent_to_event): Extract file name from + watch_object if the event doesn't provide it. + (Finotify_add_watch): Add file name to watch_object. + + * src/keyboard.c (make_lispy_event): Check also for HAVE_KQUEUE. + + * src/kqueue.c: New file. + + * src/lisp.h: Declare extern globals_of_kqueue and syms_of_kqueue. + + * test/automated/file-notify-tests.el + (file-notify--test-expected-events): Remove. + (file-notify--test-cleanup): Do not set that variable. + (file-notify--test-timeout) Use different timeouts for + different libraries. + (file-notify--test-library): New defun. + (file-notify--test-event-test): Make stronger checks. + (file-notify--test-with-events): EVENTS can also be a list of + lists. Flush outstanding events before running the body. + Make timeout heuristically depend on the number of events. + (file-notify-test01-add-watch, file-notify-test02-events) + (file-notify-test04-file-validity, file-notify-test05-dir-validity): + Rewrite in order to call file monitors but directory monitors. + (file-notify-test02-events, file-notify-test04-file-validity): Do + not skip cygwin tests. Add additional test for file creation. + Adapt expected result for different backends. + (file-notify-test03-autorevert): Some of the tests don't work for + w32notify. + (file-notify-test06-many-events): New test. + +2016-01-22 John Wiegley + + Further corrections to the pcase docstring + +2016-01-22 Eli Zaretskii + + * doc/emacs/anti.texi (Antinews): Rewrite for Emacs 25. + +2016-01-22 Stephen Leake + + In xref-collect-references, force backends to respect the 'dir' arg + + * lisp/progmodes/xref.el (xref-collect-references): Force symref backends + to use `default-directory'. + +2016-01-22 John Wiegley + + Minor correction to pcase docstring + +2016-01-22 John Wiegley + + Write a new docstring for the pcase macro + + * lisp/emacs-lisp/pcase.el (pcase): Write a new docstring. + +2016-01-21 Stephen Berman + + Avoid byte-compiler warning in todo-mode (bug#21953) + + * lisp/calendar/todo-mode.el (todo-convert-legacy-files): Add limit argument + to looking-back to comply with advertised-calling-convention. + +2016-01-21 Stephen Berman + + Fix desktop support in todo-mode and doc-view (bug#22377) + + * lisp/calendar/todo-mode.el (todo-restore-desktop-buffer): + * lisp/doc-view.el (doc-view-restore-desktop-buffer): Return current buffer. + + * lisp/calendar/todo-mode.el (todo-modes-set-2): + * lisp/doc-view.el (doc-view-mode): Set desktop-save-buffer unconditionally. + +2016-01-21 Paul Eggert + + No need to configure gobject-introspection + + It wasn’t needed for the recently-installed xwidget_mvp code; see: + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01154.html + * configure.ac (DOES_XWIDGETS_USE_GIR, GIR_REQUIRED, GIR_MODULES): + (HAVE_GIR): + * src/Makefile.in (GIR_LIBS, GIR_CFLAGS): + Remove. All uses removed. + * configure.ac (emacs_config_features): Don’t worry about GIR. + +2016-01-20 Paul Eggert + + Don’t export C symbols not used elsewhere + + These were recently added, mostly as part of xwidget code. + * src/emacsgtkfixed.c (emacs_fixed_get_type): Now static. + (EMACS_FIXED, EMACS_FIXED_GET_CLASS): + Now static functions here, not macros in emacsgtkfixed.h. + * src/emacsgtkfixed.h (EMACS_TYPE_FIXED): + Remove. All uses replaced by definiens. + (EMACS_FIXED, EMACS_FIXED_GET_CLASS): + Remove; these are now static functions in emacsgtkfixed.c. + (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS): + Remove; unused. + (emacs_fixed_get_type): Remove decl; no longer extern. + * src/xwidget.c (offscreen_damage_event) + (webkit_mime_type_policy_typedecision_requested_cb) + (webkit_new_window_policy_decision_requested_cb) + (webkit_navigation_policy_decision_requested_cb) + (xwidget_spec_value, xwidget_view_lookup) + (xwidget_start_redisplay, xwidget_touch): + Now static. + * src/xwidget.h (xwidget_start_redisplay, xwidget_touch): + Remove decls. + +2016-01-20 Dmitry Gutov + + Support squiggly heredocs in ruby-mode + + * lisp/progmodes/ruby-mode.el (ruby-here-doc-beg-re): + Support squiggly heredocs added in Ruby 2.3. + + * test/indent/ruby.rb: Add squiggly example. + +2016-01-20 Glenn Morris + + * configure.ac (emacs_config_features): Remove WEBKIT. + +2016-01-20 Paul Eggert + + Port to platforms with gtk3 but not webkitgtk3 + + I ran into this problem on my Fedora 23 installation; + Emacs configured but did not build when --with-xwidgets was specified. + * configure.ac (HAVE_WEBKIT, HAVE_GIR): Omit unnecessary initializations. + (DOES_XWIDGETS_USE_GIR): New var. + If --with-xwidgets is specified, report an error if not + doable, to be consistent with the other --with options. + Require webkitgtk3 to use Xwidgets, as the Xwidgets code does + not work at all without webkitgtk3. Simplify use of + EMACS_CHECK_MODULES. Output message about gobject + introspection only if xwidgets are used. + * etc/NEWS: Users need webkitgtk3, not merely webkit. + * src/xwidget.c (syms_of_xwidget): Don’t worry about HAVE_WEBKIT_OSR, + since this file is no longer compiled if webkitgtk3 is not available. + +2016-01-20 Eli Zaretskii + + Fix doc string of 'isearch-search-fun-function' + + * lisp/isearch.el (isearch-search-fun-function) + (isearch-search-string): Doc fixes. (Bug#22411) + +2016-01-20 Stefan Monnier + + * lisp/xwidget.el: Nitpicks + + * lisp/xwidget.el (xwidget-log, xwidget-webkit-callback): + Use with-current-buffer rather than save-excursion + set-buffer. + +2016-01-20 Glenn Morris + + Don't hard-code 1 as point-min. + + * lisp/image-mode.el (image-display-size): + * lisp/xwidget.el (xwidget-webkit-last-session) + (xwidget-webkit-current-session): Don't hard-code 1 as point-min. + +2016-01-20 Glenn Morris + + * lisp/xwidget.el: Add declarations to silence non-xwidget compilation. + +2016-01-20 Glenn Morris + + Trivial doc copyedits. + + * src/xwidget.c (Fmake_xwidget, Fget_buffer_xwidgets) + (Fxwidget_webkit_get_title, Fxwidget_resize) + (Fxwidget_set_adjustment, Fxwidgetp, Fxwidget_view_p) + (Fxwidget_info, Fxwidget_view_lookup) + (Fset_xwidget_query_on_exit_flag): Trivial doc copyedits. + +2016-01-20 Glenn Morris + + Avoid advising image-display-size for xwidgets. + + * lisp/xwidget.el (xwidget-image-display-size): Remove. + (image-display-size): Remove advice. + * lisp/image-mode.el (xwidget-info, xwidget-at): Declare. + (image-display-size): Incorporate xwidget code directly. + +2016-01-20 Glenn Morris + + Avoid breaking non-xwidget Emacs that happen to load xwidget.el. + + * lisp/xwidget.el (window-configuration-change-hook) + (kill-buffer-query-functions): Only modify these hooks if + compiled with xwidget support. + +2016-01-20 Glenn Morris + + * lisp/xwidget.el (xwidget-webkit-scroll-behaviour): Fix custom spec. + +2016-01-19 Glenn Morris + + * configure.ac (WEBKIT, GIR, CAIRO): Use EMACS_CHECK_MODULES, not PKG_. + + * configure.ac (emacs_config_features): Add XWIDGETS, WEBKIT, GIR. + + * configure.ac (HAVE_WEBKIT_OSR): Remove broken, duplicated gtk3 test. + +2016-01-19 Katsumi Yamaoka + + * lisp/gnus/nnir.el (nnir-request-update-mark): + Default to the original mark. + cf. + and + +2016-01-19 Glenn Morris + + * lisp/xwidget.el (report-xwidget-bug): Remove. + + (top-level): No longer require reporter. + +2016-01-19 Joakim Verona + Grégoire Jadi + + Support for the new Xwidget feature. + + * configure.ac: + (HAVE_XWIDGETS, WIDGET_OBJ, EMACS_CONFIG_FEATURES): + * src/xterm.c (x_draw_glyph_string, x_draw_bar_cursor): + * src/xdisp.c: + (handle_display_spec, handle_single_display_spec, push_it) + (pop_it, set_iterator_to_next, dump_glyph) + (calc_pixel_width_or_height, fill_xwidget_glyph_string) + (BUILD_XWIDGET_GLYPH_STRING, BUILD_GLYPH_STRINGS) + (produce_xwidget_glyph, x_produce_glyphs) + (get_window_cursor_type): + * src/window.c (Fdelete_window_internal): + * src/termhooks.h (e): + * src/print.c (print_object): + * src/lisp.h (ptrdiff_t): + * src/keyboard.c (kbd_buffer_get_event, make_lispy_event) + (syms_of_keyboard): + * src/emacs.c (main): + * src/dispnew.c (update_window, scrolling_window): + * src/dispextern.h (g, i): + * Makefile.in (XWIDGETS_OBJ, WEBKIT_CFLAGS, WEBKIT_LIBS) + (GIR_LIBS, ALL_CFLAGS, base_obj, LIBES): + * src/keyboard.c (kbd_buffer_get_event): + * src/emacsgtkfixed.c (emacs_fixed_gtk_widget_size_allocate) + (emacs_fixed_class_init): Add case for an xwidget view. + + * src/xwidget.c, src/xwidget.h, lisp/xwidget.el: New files for xwidgets + + + Various improvements to the Xwidget feature. + * src/xwidget.c: + * src/emacsgtkfixed.c: + * lisp/xwidget.el: + +2016-01-19 Eli Zaretskii + + Improve documentation of 'alist-get' + + * doc/lispref/variables.texi (Setting Generalized Variables): Add + 'alist-get' to the list of functions that can appear in PLACE + argument of 'setf'. + +2016-01-19 Eli Zaretskii + + Minor copyedits of doc/emacs/maintaining.texi + + * doc/emacs/maintaining.texi (List Identifiers): More accurate + description of "C-M-i" wrt tags tables. + (Tags Tables): Move the definition of "tag" to a footnote. + +2016-01-19 Eli Zaretskii + + Unbreak the Cygwin-w32 build + + * src/w32fns.c (globals_of_w32fns): Move the initialization of + resetstkoflw into a part that isn't compiled on Cygwin. + (Bug#22403) + +2016-01-19 Lars Magne Ingebrigtsen + + * shr.el (shr-table-body): Allow tables to have text children. + +2016-01-19 Phillip Lord + + Cope with multiple overlapping faces. + + * lisp/htmlfontify.el (hfy-face-to-style-i): Treat inheritance right to + left. + (hfy-face-resolve-face): Handle font specification as well as font + name. Documentation update. (Bug#21990) + +2016-01-19 Paul Eggert + + Fix spurious escapes in describe-input-method + + Problem reported by Vincent Belaïche (Bug#22309). + * lisp/international/mule-cmds.el (describe-language-environment): + * lisp/international/quail.el (quail-help): + Apply substitute-command-keys to doc strings before displaying them. + +2016-01-19 Paul Eggert + + Minor improvements to (random t) documentation + + * doc/lispref/numbers.texi (Random Numbers): + * src/fns.c (Frandom): + Omit unnecessary details about randomness fallback. + Say that it is a fallback. + +2016-01-19 Dmitry Gutov + + Rename methods in Ruby etags example file + + * test/etags/ruby-src/test.rb: Rename the example methods to + correspond to the common terminology used in Ruby. + * test/etags/CTAGS.good: + * test/etags/ETAGS.good_1: + * test/etags/ETAGS.good_2: + * test/etags/ETAGS.good_3: + * test/etags/ETAGS.good_4: + * test/etags/ETAGS.good_5: + * test/etags/ETAGS.good_6: Adjust accordingly. + +2016-01-19 Dmitry Gutov + + Propertize backtick in 'def `(abc)' as symbol constituent + + * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): + Propertize backtick in 'def `(abc)' as symbol constituent. + (ruby-syntax-propertize-function): + Rename to ruby-syntax-propertize. + +2016-01-18 Eli Zaretskii + + Fix scrolling under scroll-preserve-screen-position on TTY + + * src/window.c (window_scroll_line_based): When setting point to + preserve screen coordinates, don't let cursor enter either of the + two scroll margins. (Bug#22395) + +2016-01-18 Lars Magne Ingebrigtsen + + Fix shr table rendering of nested tables + + * shr.el (shr-table-body): Don't include all tbodies in nested + tables in the levels above. + +2016-01-18 Dmitry Gutov + + * lisp/progmodes/project.el (project--read-regexp): Quote the identifier. + +2016-01-18 Dmitry Gutov + + Add xref-based replacements for Dired search commands + + * lisp/dired-aux.el (dired-do-find-regexp) + (dired-do-find-regexp-and-replace): New commands. + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00864.html + + * lisp/dired.el (dired-mode-map): Change bindings for `A' and + `Q' to the new commands. + + * lisp/progmodes/xref.el (xref-query-replace) + (xref-collect-matches): Add progress reporters. + (xref--find-ignores-arguments): Return nil for zero ignores. + (xref--show-xrefs): Add an optional argument. + (xref-collect-matches): Drop the assert. 'find' accepts a + regular file in place of directory argument, too. + +2016-01-18 Alan Mackenzie + + * doc/lispref/frames.texi (Position Parameters): Say they don't exist on TTYs. + +2016-01-18 Eli Zaretskii + + Improve user documentation of Xref + + * doc/emacs/maintaining.texi (Xref, Find Identifiers) + (Looking Up Identifiers, Identifier Search, List Identifiers): + Adjudicate comments by Dmitry Gutov . See + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00650.html + for the details. + +2016-01-18 Eli Zaretskii + + Fix scrolling under scroll-preserve-screen-position and margins + + * src/window.c (window_scroll_pixel_based): When setting point to + preserve screen coordinates, don't let cursor enter either of the + two scroll margins. Fix incorrect usage of + WINDOW_WANTS_HEADER_LINE_P and use WINDOW_HEADER_LINE_HEIGHT + instead of CURRENT_HEADER_LINE_HEIGHT. (Bug#22395) + +2016-01-18 Eli Zaretskii + + Unbreak the MS-Windows build + + * src/sysdep.c (emacs_gnutls_global_init, gnutls_rnd): Disable for + WINDOWSNT, to avoid link failure. (Bug#22202) + +2016-01-18 Alan Mackenzie + + Desktop: protect users against inadvertant upgrading of desktop file. + + An upgraded (version 208) desktop file cannot be read in Emacs < 25. + + * etc/NEWS: Add an entry about upgrading a desktop file. + + * lisp/desktop.el (desktop-file-version): Amend doc string. + (desktop-native-file-version, desktop-io-file-version): new variables. + (desktop-clear): Set desktop-io-file-version to nil. + (desktop-buffer-info): make the presence of the last item on the list + conditional on (>= desktop-io-file-version 208). + (desktop-save): Add extra parameter VERSION to take user's C-u or C-u C-u. + Amend the doc string. Add code to determine the output file version. + (desktop-create-buffer): Set desktop-io-file-version to the input file's + version. + +2016-01-18 Paul Eggert + + Initialize GnuTLS before calling gnutls_rnd + + * src/gnutls.c (emacs_gnutls_global_init): Now extern. + Don’t set gnutls_global_initialized if gnutls_global_init fails. + * src/sysdep.c: Include "gnutls.h", and + if 2.12 or later, which has gnutls_rnd. + (emacs_gnutls_global_init, gnutls_rnd): New fallback + placeholder macros if before 2.12. + (init_random): Initialize gnutls globals before trying to + use gnutls_rnd. + +2016-01-18 Andreas Schwab + + Don't use GnuTLS before it is initialized + + * src/sysdep.c (init_random): Don't use gnutls_rnd. + +2016-01-17 Paul Eggert + + Port cleanup attribute to OpenBSD + + The OpenBSD C compiler issues false alarms about strcpy, strcat, and + sprintf, and this messes up 'configure' when it tests for the cleanup + attribute. Work around the problem by using __has_attribute directly. + Problem reported by Joakim Jalap (Bug#22385). + * configure.ac: Don’t use AX_GCC_VAR_ATTRIBUTE. + * m4/ax_gcc_var_attribute.m4: Remove. + * src/conf_post.h (__has_attribute): Provide a substitute, for + non-GCC or older GCC compilers. All uses changed to assume + the substitute. Check for the cleanup attribute. + * src/emacs-module.c (module_has_cleanup): Just use __has_attribute. + +2016-01-17 Paul Eggert + + Prefer GnuTLS when acquiring random seed + + This attempts to improve on the fix for Bug#22202. + * configure.ac (HAVE_DEV_URANDOM): Remove. + Check /dev/urandom existence at run time, not at build time, + since the device could exist in the former but not the latter. + * src/sysdep.c [HAVE_GNUTLS]: Include gnutls/gnutls.h. + (gnutls_rnd) [GNUTLS_VERSION_NUMBER < 0x020c00]: New fallback macro. + (random_seed): New typedef. + (set_random_seed): New static function. + (seed_random): Use them. + (init_random): Use random_seed instead of uintmax_t, so as to + not consume more entropy than needed. Prefer gnutls_rnd if it + works; this avoids a redundant open of /dev/urandom on + GNU/Linux with modern GnuTLS. + +2016-01-16 Eli Zaretskii + + Improve documentation of dynamic modules + + * doc/lispref/loading.texi (How Programs Do Loading): Update the + description of searching for files in 'load' when Emacs was built + with support for dynamic modules. + +2016-01-16 Eli Zaretskii + + * INSTALL: Document --with-modules. + +2016-01-16 Eli Zaretskii + + Document 'function-put' + + * doc/lispref/symbols.texi (Symbol Plists): Document + 'function-put'. Update documentation of 'function-get'. + +2016-01-16 Eli Zaretskii + + Document 'funcall-interactively' + + * doc/lispref/commands.texi (Interactive Call): Document + 'funcall-interactively'. + * doc/lispref/functions.texi (Calling Functions): Mention + 'funcall-interactively' and provide a cross-reference. + +2016-01-16 Eli Zaretskii + + * doc/lispref/lists.texi (Association Lists): Document 'alist-get'. + + * doc/lispref/strings.texi (Text Comparison): Document 'string-greaterp'. + +2016-01-16 Eli Zaretskii + + Document renaming of selection-related functions + + * doc/lispref/frames.texi (Window System Selections): Rename "x-*" + functions into the corresponding "gui-*" functions. Make the + description slightly less X-centric. + +2016-01-16 Eli Zaretskii + + * doc/lispref/macros.texi (Expansion): Document 'macroexpand-1'. + +2016-01-16 Eli Zaretskii + + Document 'define-inline' + + * doc/lispref/functions.texi (Defining Functions): Document + 'define-inline' and related macros. + + * lisp/emacs-lisp/inline.el (inline-letevals): Doc fix. + +2016-01-16 Artur Malabarba + + * lisp/files.el (dir-locals--all-files): Respect absolute file-names + + * lisp/help-fns.el (describe-variable): Fix a left-over parenthesis + +2016-01-16 Artur Malabarba + + * lisp/dired-x.el (dired-omit-here-always): Use add-dir-local-variable + + instead of manually writing a dir-locals file. + +2016-01-16 Artur Malabarba + + * lisp/files.el (dir-locals--all-files): Use completion instead of wildcards + + (dir-locals-file) + * lisp/files-x.el (modify-dir-local-variable) + * lisp/dos-fns.el (dosified-file-name) + * lisp/help-fns.el (describe-variable): Change accordingly. + +2016-01-16 Jussi Lahdenniemi (tiny change) + + Fix incompatbilities with MS-Windows 2000 and older + + * src/w32.c : New global variable. + (filename_to_utf16, filename_from_ansi, check_windows_init_file): + Use it instead of the literal MB_ERR_INVALID_CHARS. + (maybe_load_unicows_dll): Initialize multiByteToWideCharFlags as + appropriate for the underlying OS version. For details, see + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00835.html. + * src/w32.h: Declare multiByteToWideCharFlags. + * src/w32fns.c (Fx_file_dialog, Fw32_shell_execute) + (add_tray_notification): Use multiByteToWideCharFlags instead of + the literal MB_ERR_INVALID_CHARS. + (_resetstkoflw_proc): New typedef. + (w32_reset_stack_overflow_guard): Call _resetstkoflw via a + pointer, as this function is absent in msvcrt.dll shipped with W2K + and older systems. + +2016-01-16 Eli Zaretskii + + Mention in PROBLEMS an issue with MS-Windows NT4 + + * etc/PROBLEMS (MS-Windows): Mention the problem with Shell32.dll + on Windows NT4. For the details, see + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00835.html. + +2016-01-16 Jussi Lahdenniemi (tiny change) + + Ensure 8-byte aligned memory allocation on MS-Windows 9X + + * src/w32heap.c (init_heap): Redirect malloc, realloc, and free to + special functions on Windows 9X. Refuse to dump Emacs on Windows 9X. + (malloc_after_dump_9x, realloc_after_dump_9x) + (free_after_dump_9x): New functions. (Bug#22379) See also + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00852.html + for more details about the original problem. + + * nt/inc/ms-w32.h (malloc_after_dump_9x, realloc_after_dump_9x) + (free_after_dump_9x): Add prototypes. + +2016-01-16 Eli Zaretskii + + Fix tests for active region in hideif.el + + * lisp/progmodes/hideif.el (hif-evaluate-macro, hide-ifdef-block): Use + 'use-region-p' to test whether to operate on region, instead of + testing 'mark-active'. + +2016-01-16 Eli Zaretskii + + Fix interactive specs in some hideif.el commands + + * lisp/progmodes/hideif.el (hif-evaluate-macro) + (hide-ifdef-undef, show-ifdef-block): Don't use '(interactive "r")' + in commands that should only act on the region if it's active. + +2016-01-15 Phillip Lord + + Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 + +2016-01-15 Phillip Lord + + Enable test selector from command line + + * test/automated/Makefile.in: Change variable manipulation to avoid + over-writing selector. + +2016-01-15 Alan Mackenzie + + Don't confuse "::" with ":" when trying to parse member initializers. + + * lisp/progmodes/cc-engine.el (c-back-over-member-initializers): Check + more robustly for ":" token when searching backwards for it. + + * lisp/progmodes/cc-langs.el (c-:$-multichar-token-regexp): New language + variable. + +2016-01-15 Eli Zaretskii + + Ensure positive number of glyphs for margins of positive width + + * src/dispnew.c (margin_glyphs_to_reserve): Always return a + positive value when a non-zero width of the marginal area was + requested. (Bug#22356) + +2016-01-15 Eli Zaretskii + + Fix crashes when mini-window has non-zero margins + + * src/window.c (resize_frame_windows): Use 'new_size' to set + minibuffer window's 'total_cols' value, as 'size' might be in + pixels. (Bug#22356) + +2016-01-15 Alan Mackenzie + + In comment-dwim with style `extra-line', respect indent-tabs-mode. + + This fixes bug #22369. + + * lisp/newcomment.el (comment-make-bol-ws): New function. + (comment-make-extra-lines): Use new function instead of a crude `make-string'. + +2016-01-15 Eli Zaretskii + + Make 'random' seeds cryptographically secure if possible + + * configure.ac: Check for "/dev/urandom". + + * src/sysdep.c (init_random) [HAVE_DEV_URANDOM]: Read the stream + for the seed from "/dev/urandom". + [WINDOWSNT]: Obtain the stream for the seed from w32 APIs. + * src/fns.c (Frandom): Update the doc string to indicate that + system entropy is used when available. + * src/w32.c: Include wincrypt.h. + (w32_init_crypt_random, w32_init_random): New functions, use the + CryptGenRandom API. + (globals_of_w32): Initialize w32_crypto_hprov handle to zero. + * src/w32.h (w32_init_random): Add prototype. + + * doc/lispref/numbers.texi (Random Numbers): Document more details + about 't' as the argument to 'random'. + + * etc/NEWS: Mention that '(random t)' now uses a cryptographically + strong seed if possible. + + (Bug#22202) + +2016-01-15 Eli Zaretskii + + Unhide the --no-line-directive option to 'etags' + + * lib-src/etags.c (print_help): Un-undocument the --no-line-directive + option. (Bug#22306) + + * doc/man/etags.1: Document the --no-line-directive option. + +2016-01-15 Alan J Third (tiny change) + + Fix picture-mode wrt double-width characters + + * lisp/textmodes/picture.el (picture-insert): Check the width of + the character being replaced, not just that of the replacement. + (Bug#1808) + +2016-01-15 Eric Abrahamsen + + Honor docstring of gnus-group-get-new-news + + * lisp/gnus/gnus-start.el (gnus-get-unread-articles): If the prefix arg is t, + but non-numeric, unconditionally consider all groups to need updating. + +2016-01-14 Simen Heggestøyl + + Disallow parenthesis in non-pseudo CSS selectors + + * lisp/textmodes/css-mode.el (css--font-lock-keywords): Disallow + parenthesis in selectors except for in the function notation that + might appear right after a pseudo-class. + * test/indent/scss-mode.scss: Add a test for it. + +2016-01-14 Katsumi Yamaoka + + * lisp/gnus/nntp.el (nntp-request-newgroups): Simplify + +2016-01-14 Michael Albinus + + check-maybe shall run only default tests + + * test/automated/Makefile.in (check, check-expensive): Depend on + mostlyclean. + (check-maybe): Re-run only default tests. + (check-doit): Use code of check-maybe. + (mostlyclean): Move *.log files away. + +2016-01-14 Mark Oteiza + + * lisp/thingatpt.el (thing-at-point-uri-schemes): Add "magnet:" + +2016-01-14 Dmitry Gutov + + Un-obsolete tags-loop-continue + + * lisp/progmodes/etags.el (tags-loop-continue): Un-obsolete. + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00682.html + +2016-01-13 Eli Zaretskii + + Document obsoletion of 'intangible' and 'point-entered/left' + + * doc/lispref/text.texi (Special Properties): Document the new + properties 'cursor-intangible' and 'cursor-sensor-functions'. + Document the obsolete status of 'intangible', 'pointer-left', + and 'point-entered' properties, and of 'inhibit-point-motion-hooks'. + * doc/lispref/display.texi (Overlay Properties): Document that + 'intangible' overlay property is obsolete. + + * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor-mode): Doc fix. + +2016-01-13 Eli Zaretskii + + Updater documentation of 'looking-back' + + * doc/lispref/searching.texi (Regexp Search): Update documentation + of 'looking-back'. Fix markup. + +2016-01-13 Eli Zaretskii + + Document 'pre-redisplay-functions' + + * doc/lispref/hooks.texi (Standard Hooks): + * doc/lispref/display.texi (Forcing Redisplay): Document + 'pre-redisplay-functions'. + +2016-01-13 Eli Zaretskii + + Document the new deafault value of 'load-read-function' + + * doc/lispref/loading.texi (How Programs Do Loading): Document the + change in the default value of 'load-read-function'. + +2016-01-13 Eli Zaretskii + + Document 'bufferpos-to-filepos' and 'filepos-to-bufferpos' + + * doc/lispref/nonascii.texi (Text Representations): Document + 'bufferpos-to-filepos' and 'filepos-to-bufferpos'. + +2016-01-13 Eli Zaretskii + + Document the new prefix-command hooks + + * doc/lispref/hooks.texi (Standard Hooks): Document + `prefix-command-echo-keystrokes-functions' and + `prefix-command-preserve-state-hook'. + +2016-01-13 Paul Eggert + + Fix one more misuse of time-stamp-time-zone + + * test/etags/html-src/softwarelibero.html: Use "UTC0" rather + than the unportable "GMT" for time zone. + +2016-01-13 Paul Eggert + + Fix NNTP NEWGROUPS off-by-a-few-hours bug + + * lisp/gnus/nntp.el (nntp-request-newgroups): Format string + in Universal Time, since we’re telling the server “GMT”. + +2016-01-13 Paul Eggert + + Update publicsuffix.txt from upstream + + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/effective_tld_names.dat + dated 2016-01-12 11:52:01 UTC. + +2016-01-13 Glenn Morris + + Fix some declarations. + + * lisp/descr-text.el (internal-char-font): + * lisp/cedet/mode-local.el (xref-item-location): + * lisp/gnus/mml-smime.el (epg-key-sub-key-list) + (epg-sub-key-capability, epg-sub-key-validity): + * lisp/international/mule-util.el (internal-char-font): + Fix declarations. + +2016-01-13 Glenn Morris + + Fix some custom types. + + * lisp/gnus/gnus-fun.el (gnus-x-face-omit-files, gnus-face-omit-files): + * lisp/gnus/gnus.el (gnus-valid-select-methods): + * lisp/mail/rmail.el (rmail-get-coding-function): + * lisp/net/newst-treeview.el (newsticker-groups-filename): + * lisp/progmodes/hideif.el (hide-ifdef-exclude-define-regexp): + * lisp/textmodes/tildify.el (tildify-space-predicates): + * lisp/url/url-tramp.el (url-tramp-protocols): + Fix custom types. + +2016-01-13 Glenn Morris + + Add some missing version tags. + + * lisp/electric.el (electric-quote-comment) + (electric-quote-string, electric-quote-paragraph): + * lisp/epg-config.el (epg-gpgconf-program): + * lisp/rect.el (rectangle-preview): + * lisp/emacs-lisp/check-declare.el (check-declare-ext-errors): + * lisp/emacs-lisp/package.el (package-selected-packages) + (package-hidden-regexps): + * lisp/erc/erc.el (erc-network-hide-list, erc-channel-hide-list): + * lisp/eshell/em-term.el (eshell-destroy-buffer-when-process-dies): + * lisp/gnus/mml-sec.el (mml1991-signers, mml2015-signers) + (mml-smime-signers, mml1991-encrypt-to-self, mml2015-encrypt-to-self) + (mml-smime-encrypt-to-self, mml2015-sign-with-sender) + (mml-smime-sign-with-sender, mml2015-always-trust) + (mml-secure-fail-when-key-problem, mml-secure-key-preferences): + * lisp/net/browse-url.el (browse-url-conkeror-new-window-is-buffer) + (browse-url-conkeror-arguments): + * lisp/net/newst-reader.el (newsticker-download-logos): + * lisp/progmodes/gud.el (gud-guiler-command-name): + * lisp/progmodes/prog-mode.el (prettify-symbols-unprettify-at-point): + * lisp/progmodes/project.el (project-vc): + * lisp/progmodes/python.el (python-indent-guess-indent-offset-verbose) + (python-shell-remote-exec-path, python-shell-first-prompt-hook) + (python-shell-completion-native-disabled-interpreters) + (python-shell-completion-native-enable) + (python-shell-completion-native-output-timeout) + (python-shell-completion-native-try-output-timeout): + * lisp/progmodes/xref.el (xref): + * lisp/term/screen.el (xterm-screen-extra-capabilities): + * lisp/term/xterm.el (xterm-max-cut-length): + Add missing version tags. + +2016-01-13 Glenn Morris + + * test/automated/core-elisp-tests.el + (core-elisp-tests-1-defvar-in-let): Add a custom type. + +2016-01-13 Glenn Morris + + * src/buffer.c (syms_of_buffer) : Doc fix. + + Remove comments that do not apply since 2005-08-09. (Bug#22349) + +2016-01-12 Paul Eggert + + Merge from gnulib + + This mostly just changes "UTC" to "UTC0" for POSIX conformance. + It also updates to the latest version of texinfo.tex. + * build-aux/gitlog-to-changelog, build-aux/move-if-change: + * build-aux/update-copyright, doc/misc/texinfo.tex: + Update from gnulib. + +2016-01-12 Eli Zaretskii + + Update documentation of 'process-running-child-p' + + * doc/lispref/processes.texi (Input to Processes): Document the + changes in return value of 'process-running-child-p'. + +2016-01-12 Eli Zaretskii + + Update documentation of 'deactivate-mark'. + + * doc/lispref/markers.texi (The Mark): Document that + 'deactivate-mark' is now buffer-local when set. + +2016-01-12 Eli Zaretskii + + Update documentation of 'completion-table-dynamic' + + * doc/lispref/minibuf.texi (Programmed Completion): Document the + new optional argument to 'completion-table-dynamic'. + +2016-01-12 Eli Zaretskii + + Document changes in 'read-buffer' and 'read-buffer-function' + + * doc/lispref/minibuf.texi (High-Level Completion): Document the + 4th argument to 'read-buffer' and 'read-buffer-function'. + +2016-01-12 Paul Eggert + + Fix time-stamp-time-zone bugs introduced in July + + This fixes a bug introduced when the July changes to + format-time-string installed, as the changes were not + correctly handled in this module (Bug#22302). + Also, document time stamp time zones. + * lisp/time-stamp.el (time-stamp-time-zone): Document values better. + (time-stamp--format): New private function. + (time-stamp-string, time-stamp-string-preprocess) + (time-stamp-do-number): Use it. + * doc/emacs/files.texi (Time Stamps): Mention time zones. + * doc/misc/autotype.texi (Timestamps): Document time-stamp-time-zone. + +2016-01-12 Eli Zaretskii + + Make piping to subprocesses more robust on MS-Windows + + * src/w32.c (sys_write): Don't write to a pipe more stuff than its + buffer can hold. Don't return -1 if something has been written to + the pipe. Zero out 'errno' before calling '_write', to avoid + returning a stale value. (Bug#22344) + * src/w32proc.c (syms_of_ntproc) : New variable. + * src/w32.c (pipe2): Use it to request a user-defined size for the + pipe being created. + + * etc/NEWS: Mention 'w32-pipe-buffer-size'. + + * doc/emacs/msdos.texi (Windows Processes): Document + 'w32-pipe-buffer-size'. + +2016-01-11 Dmitry Gutov + + test/automated/vc-hg.el: Support out-of-tree build + + * test/automated/vc-hg.el + (vc-hg-annotate-extract-revision-at-line-with-filename) + (vc-hg-annotate-extract-revision-at-line-with-both): + Don't refer to source-directory. + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00755.html + +2016-01-11 Michael Albinus + + Minor change in tramp-tests.el + + * test/automated/tramp-tests.el (tramp-test29-vc-registered): + Use `dired-uncache' instead of a Tramp internal function. + +2016-01-11 Peter Feigl + + * etc/HELLO: Add Armenian and Mongolian greetings. + + (Bug#22346) + +2016-01-11 Alan Mackenzie + + Java Mode: Fontify identifiers in the presence of annotations. + + * lisp/progmodes/cc-engine.el (c-forward-annotation): Tidy up the coding: + Don't move point when the defun fails. + (c-forward-decl-or-cast-1): Correct a usage of match data. + + * lisp/progmodes/cc-fonts.el (c-font-lock-maybe-decl-faces): Remove. + (c-font-lock-declarations): Use the new c-maybe-decl-faces in place of the + removed variable. + + * lisp/progmodes/cc-langs.el (c-maybe-decl-faces): New language variable. + +2016-01-11 Eli Zaretskii + + Avoid an infloop when we run out of memory + + * src/alloc.c (garbage_collect_1): Don't bother saving and + restoring the echo-area message if we are GC'ing after running out + of memory. This avoids an infloop due to repeated attempts to + allocate memory for the cons cell needed to save the message, + which signals the memory-full error, which attempts to save the + echo-area message, which signals memory-full again, etc. + +2016-01-11 Eli Zaretskii + + Avoid unnecessary failures of auto-saving after fatal error + + * src/w32.c (map_w32_filename): Avoid non-trivial system calls for + the benefit of FAT volumes if we are called as part of shutting + down due to a fatal error, which probably means we are trying to + auto-save the session. + * src/lread.c (check_obarray): Don't bother making the obarray + valid if we are shutting down due to a fatal error. This avoids + interfering with auto-saving the crashed session. + +2016-01-11 Paul Eggert + + Simplify HAVE_MODULES use in mark_maybe_pointer + + * src/alloc.c (HAVE_MODULES): Now a constant 0 if not defined, + so that later code can use 'if' rather than '#ifdef'. + (mark_maybe_pointer): Simplify based on HAVE_MODULES now + always working. + +2016-01-11 Paul Eggert + + Revert attempt to use 'noexcept' in typedef + + This use of 'noexcept' runs afoul of the C++11 standard. + Problem reported by Philipp Stephani in: + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00706.html + * src/emacs-module.c (emacs_finalizer_function): + Move this typedef here ... + * src/emacs-module.h: ... from here, and use only the C + version of the typedef. The typedef is now private since it + is never used in the .h file now and anyway it seemed to be + causing more confusion than it cured. + (make_user_ptr, get_user_finalizer, set_user_finalizer): + Open-code the type instead. + +2016-01-10 Eli Zaretskii + + Update documentation of 'indirect-function' + + * doc/lispref/eval.texi (Function Indirection): Update the + documentation of 'indirect-function'. + +2016-01-10 Eli Zaretskii + + Update documentation for obsoleting 'syntax-begin-function' + + * doc/lispref/syntax.texi (Position Parse): Undocument + 'syntax-begin-function' that is now obsolete. + +2016-01-10 Eli Zaretskii + + Document new features if Eshell + + * doc/misc/eshell.texi (Input/Output): Document the new + '#' syntax. + (Input/Output): Document 'eshell-destroy-buffer-when-process-dies'. + Disable "Key Index" generation, as there are no @kindex entries in + this manual. + +2016-01-10 Michael Albinus + + Handle too long commands in Tramp + + * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link) + (tramp-do-file-attributes-with-ls): Send sequence of commands, in + order to not exceed shell command line limit. + + * test/automated/tramp-tests.el (tramp--test-darwin-p): Remove. + (tramp--test-utf8): Include Arabic file name, again. + +2016-01-10 Paul Eggert + + * .gitattributes: *.cur and *.pif are binary files too. + +2016-01-10 Stefan Monnier + + * src/alloc.c (mark_maybe_pointer): HAVE_MODULES may be undefined + +2016-01-10 Stefan Monnier + + * lisp/progmodes/sh-script.el (sh-smie-sh-rules): Improve indentation inside $(...) + + * lisp/progmodes/sh-script.el (sh-smie-sh-rules): Improve indentation + within $(...). + * test/indent/shell.sh: Add corresponding test. + +2016-01-10 Stefan Monnier + + * src/alloc.c (mark_maybe_pointer): Also check wide-int's emacs_value + + (mark_memory): Simplify loop. Don't assume a pointer-sized word can be + cast to Lisp_Object. + +2016-01-10 Dmitry Gutov + + Use short date for 'hg annotate', and output the author + + * lisp/vc/vc-hg.el (vc-hg-annotate-command): + Change '-d' to '-dq'. (Bug#21805) + (vc-hg-annotate-switches): Default to "-u" "--follow". + (vc-hg-annotate-re): Update to recognize the short date format + and the optional username. + (vc-hg-annotate-time) + (vc-hg-annotate-extract-revision-at-line): Update accordingly. + + * test/automated/vc-hg.el: New file. + +2016-01-10 Paul Eggert + + Spelling fix + +2016-01-09 Eli Zaretskii + + Document user-level functions in project.el + + * lisp/progmodes/project.el (project-find-file) + (project-or-external-find-file): Add doc strings. + +2016-01-09 Eli Zaretskii + + Document the user-level features of the Xref package + + * doc/emacs/maintaining.texi (Maintaining): Add a list of + described features. + (Xref): New section, made out of thoroughly rewritten "Tags" + section. + (Find Identifiers, Looking Up Identifiers, Xref Commands) + (Identifier Search, List Identifiers): New subsections, + incorporating the old tags commands and the new xref commands. + (Tags Tables, Tag Syntax, Create Tags Table, Etags Regexps): + Section and subsections demoted to a lower level. + * doc/emacs/search.texi (Search): + * doc/emacs/windows.texi (Pop Up Window): + * doc/emacs/frames.texi (Creating Frames): + * doc/emacs/programs.texi (Imenu, Symbol Completion): + * doc/emacs/building.texi (Grep Searching): + * doc/emacs/dired.texi (Operating on Files): + * doc/emacs/glossary.texi (Glossary): All references to tags changed. + +2016-01-09 Stefan Monnier + + * doc/lispref/loading.texi: Add `define-type' entry for load-history + + * doc/lispref/loading.texi (Where Defined): Remove incorrect + cl-defmethod description, and add missing define-type entry. + +2016-01-09 Eli Zaretskii + + Improve doc strings and prompts in xref.el + + * lisp/progmodes/xref.el (xref-backend-functions) + (xref-find-definitions): Doc fixes. + (xref-query-replace): Doc fix. Improve prompts for arguments. + +2016-01-09 Alan Mackenzie + + Allow the use of `font-lock-extend-region-multiline' in CC Mode. + + * lisp/progmodes/cc-mode.el (c-font-lock-init): Remove + `font-lock-extend-regions-wholelines' from + `font-lock-extend-region-functions' rather than setting the latter to + nil. + +2016-01-09 Michael Albinus + + Fix coding system for Tramp on OS X. + + * lisp/net/tramp-compat.el: Require ucs-normalize. + + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Set coding system to `utf-8-hfs' for Mac OS X. + + * test/automated/tramp-tests.el (tramp-test29-vc-registered): + Flush directory properties when needed. + (tramp--test-utf8): Include Chinese file name, again. + +2016-01-09 Eli Zaretskii + + Update 'load-history' docs + + * doc/lispref/loading.texi (Where Defined): Update the list of + forms in 'load-history' by adding the forms created for the + 'cl-generic' generics. (Bug#21422) + +2016-01-09 Paul Eggert + + Fix (error ...) error + + Problem reported by Glenn Morris in: + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00561.html + * lisp/vc/add-log.el (change-log-goto-source): Fix typos + introduced in my Aug 28 change, where I got confused by the + two meanings of (error ...). + +2016-01-08 Alan Mackenzie + + Correctly analyze brace arguments in templated C++ function declarations. + + * lisp/progmodes/cc-defs.el (c-go-list-forward, c-go-list-backward): add + POS and LIMIT parameters, like the other c-go-list-* functions have. + + * lisp/progmodes/cc-engine.el (c-restore-<>-properties): Check backwards + for a ?\( rather than a ?<. (c-looking-at-inexpr-block): Handle names + followed by template specifiers. + +2016-01-08 Glenn Morris + + * lisp/cedet/mode-local.el (describe-function-orig-buffer): Declare. + + * lisp/ffap.el (ffap-latex-mode): Avoid free variable. + +2016-01-08 Mark Oteiza + + * lisp/play/dunnet.el (dun-fix-screen): Avoid `end-of-buffer`. + +2016-01-08 Alan Mackenzie + + Respect fontification region calculated by major mode. Fixes bug #22316. + + * lisp/font-lock.el (font-lock-extend-jit-lock-region-after-change): when a + fontification region has been calculated by a function on + font-lock-extend-after-change-region-function use this region rather than + changing the end position to somewhere else. + +2016-01-08 Eli Zaretskii + + Improve documentation of Delete Selection mode + + * lisp/delsel.el (delete-selection-mode) + (delete-selection-helper): Update and expand the doc strings. + (Bug#22296) + + * doc/emacs/mark.texi (Using Region): Document the behavior of + delete commands in Delete Selection mode. (Bug#22296) + + * doc/lispref/markers.texi (The Mark): Document how to add the + support for Delete Selection mode to Lisp programs. (Bug#22296) + +2016-01-08 Dmitry Gutov + + Fix two project-find-file issues + + * lisp/progmodes/project.el (project--value-in-dir): + Temporarily set enable-local-variables to :all. + (project-find-file, project-or-external-find-file): + All autoloads. + (project--find-file-in): Require xref. + +2016-01-08 Eli Zaretskii + + Clarify doc string of 'dired-current-directory' + + * lisp/dired.el (dired-current-directory): Doc fix: clarify that + the return value might not end in a slash when called with the + optional argument non-nil. (Bug#6273) + +2016-01-08 Eli Zaretskii + + Use the face of preceding text for displaying the ellipsis + + * src/xdisp.c (setup_for_ellipsis): Use the face of the preceding + text in it->saved_face_id for displaying the ellipsis, and ignore + the face, if any, of the invisible text. (Bug#22320) + +2016-01-08 Michael Albinus + + Suppress Chinese file name test for OSX in tramp-tests.el + + * test/automated/tramp-tests.el (tramp--test-utf8): + Remove instrumentation. Suppress Chinese file name test for OSX. + +2016-01-08 Glenn Morris + + * admin/admin.el (set-version): Also handle the NEWS file. + +2016-01-08 Dmitry Gutov + + apropos-library: Skip obvious duplicates; don't error on generics + + * lisp/apropos.el (apropos-library): Skip "was an autoload" + entries, to avoid obvious duplicates. For each cl-defmethod + entry, take just its function symbol (bug#21422). + +2016-01-07 Dmitry Gutov + + Add project-find-file and project-or-external-find-file + + * lisp/minibuffer.el (completion-category-defaults): + Add `project-file' category. + + * lisp/progmodes/project.el (project-find-file) + (project-or-external-find-file): New commands. + (project--find-file-in): New private function. + + * lisp/progmodes/xref.el (xref-collect-matches): Use + `expand-file-name' on DIR, to expand the tildes. + (xref--find-ignores-arguments): Extract from + `xref--rgrep-command'. + +2016-01-07 Leo Liu + + Add defvar-local to lisp-imenu-generic-expression + + * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): Add + defvar-local. + +2016-01-07 Leo Liu + + Revert commit b1e3d14845517bfa9fa5d6d3840f3ab3160306fd + + * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): + Don't declare (indent 1). + +2016-01-07 Glenn Morris + + * lisp/emacs-lisp/autoload.el (autoload-find-destination): Doc fix. + +2016-01-07 Glenn Morris + + * lisp/emacs-lisp/autoload.el (autoload-find-destination): + + Avoid specifying the length of a time object (it has not been "2" + for some time). + +2016-01-06 Andreas Schwab + + Properly encode/decode base64Binary data in SOAP + + * lisp/net/soap-client.el (soap-encode-xs-basic-type): Encode + base64Binary value as utf-8. + (soap-decode-xs-basic-type): Decode base64Binary value as utf-8. + +2016-01-06 Eli Zaretskii + + Obey coding-system-for-write when writing stdout/stderr in batch + + * src/print.c (printchar_to_stream): + * src/xdisp.c (message_to_stderr): If coding-system-for-write has + a non-nil value, use it to encode output in preference to + locale-coding-system. See the discussions in + http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00048.html + for the details. + + * doc/lispref/os.texi (Terminal Output): Document how to send + non-ASCII text via 'send-string-to-terminal'. + (Batch Mode): Document how text written to standard streams is + encoded. Fix inaccuracy regarding which output streams are used + by output functions in batch mode. + +2016-01-06 Xue Fuqiao + + * doc/misc/efaq.texi (Packages that do not come with Emacs): + Update the URI of MELPA and marmalade-repo. Reported by CHENG Gao + in + https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00390.html. + +2016-01-06 Maksim Golubev (tiny change) + + * lisp/progmodes/opascal.el (opascal-mode-syntax-table): + + Fix backslash. (Bug#22224) + +2016-01-06 Federico Beffa (tiny change) + + * lisp/progmodes/xscheme.el (xscheme-prompt-for-expression-exit): + + Make it actually work. (Bug#22265) + +2016-01-05 Alan Mackenzie + + Remove function wrongly on AWK Mode value of context fontification hook. + + * lisp/progmodes/cc-langs.el (c-before-context-fontification-functions): + swap order of entries so that awk's entry isn't superseded by the default. + + * lisp/progmodes/cc-mode.el (c-before-context-fl-expand-region): Correct + to handle nil value of c-before-context-fontification-functions. + +2016-01-05 Paul Eggert + + * src/buffer.c: Stick with ASCII in doc string. + +2016-01-05 Paul Eggert + + Reword transient-mark-mode doc string + + * src/buffer.c (syms_of_buffer): Reword doc string to avoid confusion. + The value 'lambda (literally) can be interpreted as (quote lambda), + which is not intended here; we want just the lambda symbol. + +2016-01-05 Eli Zaretskii + + Update doc string of 'selective-display' + + * src/buffer.c (syms_of_buffer) : Say that + using it with the value of 't' is obsolete. (Bug#1092) + +2016-01-05 Alan Mackenzie + + Make C++ buffers writeable when writing their initial text properties. + + This is a correction to yesterday's CC Mode patch. + + * lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): Put + c-save-buffer-state around the function rather than a mere `let'. + +2016-01-05 Michael Albinus + + Additional changes for "make check-expensive" + + * CONTRIBUTE : Encourage use of ":tags '(:expensive-test)". + Explain make target `check-expensive'. + + * etc/NEWS: Mention new make target `check-expensive'. + + * test/automated/Makefile.in (check-doit): New target. + (check, check-expensive): Use it. + +2016-01-04 Alan Mackenzie + + Apply text properties for <, > in new after-change function (C++ Java Modes). + + These are category/syntax-table properties to give < and > paren syntax. + Also apply certain `c-type' text properties to the insides of <..> constructs + to ensure that identifiers contained by them get fontified. This patch fixes + bug #681. + + * lisp/progmodes/cc-cmds.el (c-electric-lt-gt): Reformulate due to new + after-change action. + + * lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): Expand + change region to include s which might not be already marked as + parens, rather than just when paren text properties are removed. + (c-restore-<>-properties): New after-change function, which applies text + properties marking < and > with paren syntax. + + * lisp/progmodes/cc-fonts.el (c-font-lock-declarations): Ensure `c-type' + properties are applied to the interiors of <...> constructs, to ensure + fontification of identifiers there. + + * lisp/progmodes/cc-langs.el (c-before-font-lock-functions): Add + c-restore-<>-properties to this list for C++ and Java. + + * lisp/progmodes/cc-mode.el (c-common-init): When invoking + c-before-font-lock-functions, exclude c-restore-<>-properties from the + functions invoked. + (c-before-change): Initialize c-new-BEG/END here (rather than c-after-change) + to allow modification by before-change functions. + (c-after-change): Amend c-new-END here, rather than initializing it and + c-new-BEG. + +2016-01-04 Michael Albinus + + Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 + +2016-01-04 Michael Albinus + + Introduce check-expensive tests. + + * Makefile.in (check-expensive): + * test/automated/Makefile.in (check-expensive): New target. + + * test/automated/auto-revert-tests.el + (auto-revert-test01-auto-revert-several-files): + * test/automated/file-notify-tests.el (file-notify--deftest-remote): + * test/automated/tramp-tests.el (tramp-test26-process-file) + (tramp-test27-start-file-process, tramp-test28-shell-command) + (tramp-test29-vc-registered) + (tramp-test31-special-characters-with-stat) + (tramp-test31-special-characters-with-perl) + (tramp-test31-special-characters-with-ls) + (tramp-test32-utf8-with-stat, tramp-test32-utf8-with-perl) + (tramp-test32-utf8-with-ls, tramp-test33-asynchronous-requests) + (tramp-test35-unload): Tag the tests as :expensive-test. + +2016-01-04 Lars Magne Ingebrigtsen + + shr-tag-video bug fix + + * shr.el (shr-tag-video): Protect against the `poster' being + empty. + +2016-01-04 Michael Albinus + + Minor fixes in tramp-tests.el + + * test/automated/tramp-tests.el (tramp-test26-process-file): + Move point properly. + (tramp-test29-vc-registered): Work with relative file names. + +2016-01-04 Eli Zaretskii + + Ensure redisplay when 'truncate-lines' is set + + * lisp/frame.el (redisplay--variables): Add 'truncate-lines'. + (Bug#22303) + +2016-01-04 Eli Zaretskii + + Fix a doc string of 'transient-mark-mode' + + * src/buffer.c (syms_of_buffer) : Prevent + "lambda" in doc string from becoming a link to lambda expressions. + +2016-01-04 Eli Zaretskii + + MS-Windows followup to latest gnulib update + + * nt/gnulib.mk (EXTRA_DIST): Add ignore-value.h. + +2016-01-04 Paul Eggert + + Spelling fix + +2016-01-04 Jens Lechtenboerger + + Do secure signed Bcc handling + + * lisp/gnus/message.el (message-send): Do secure signed Bcc handling + (bug#18718). + +2016-01-04 Paul Eggert + + Avoid stdio in SIGINT handler + + * admin/merge-gnulib (GNULIB_MODULES): Add ignore-value. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + * lib/ignore-value.h: New file, from gnulib. + * src/keyboard.c: Include it. + (write_stdout, read_stdin): New functions. + (handle_interrupt): Use them instead of printf and getchar, + and avoid fflush when handling signals. + +2016-01-04 Paul Eggert + + * doc/misc/texinfo.tex: Revert unwanted copyright change. + +2016-01-03 Artur Malabarba + + * lisp/align.el (align): Simplify a lambda + + * lisp/align.el (align): Fix arg order in call to `align-region' + +2016-01-03 Eli Zaretskii + + Fix compilation next-error in buffers with selective-display + + * lisp/progmodes/compile.el (compilation-beginning-of-line): New + function. + (compilation-internal-error-properties) + (compilation-next-error-function, compilation-set-window): Use + it. (Bug#1092) + +2016-01-03 Lars Magne Ingebrigtsen + + * lisp/net/nsm.el (nsm-check-protocol): Fix typo in the message. + +2016-01-03 Lars Magne Ingebrigtsen + + Add SHA1 warnings for high network security settings + + * lisp/net/nsm.el (nsm-check-protocol): When using high security, warn + about SHA1 certificates, which are now believed to be open to + spoofing. + +2016-01-03 Jens Lechtenboerger + + Refactor mml-smime.el, mml1991.el, mml2015.el + + (Maybe this is the last merge from Gnus git to Emacs git) + + Cf. discussion on ding mailing list, messages in + . + Common code from the three files mml-smime.el, mml1991.el, and + mml2015.el is moved to mml-sec.el. Auxiliary functions are added + to gnus-util.el. + + The code is supported by test cases with necessary test keys. + + Documentation in message.texi is updated. + + * doc/misc/message.texi (Security, Using S/MIME): + Update for refactoring mml-smime.el, mml1991.el, mml2015.el. + (Using OpenPGP): Rename from "Using PGP/MIME"; update contents. + (Passphrase caching, Encrypt-to-self, Bcc Warning): New sections. + + * lisp/gnus/gnus-util.el (gnus-test-list, gnus-subsetp, gnus-setdiff): + New functions. + + * lisp/gnus/mml-sec.el: Require gnus-util and epg. + (epa--select-keys): Autoload. + (mml-signencrypt-style-alist, mml-secure-cache-passphrase): Doc fix. + (mml-secure-openpgp-signers): New user option; + make mml1991-signers and mml2015-signers obsolete aliases to it. + (mml-secure-smime-signers): New user option; + make mml-smime-signers an obsolete alias to it. + (mml-secure-openpgp-encrypt-to-self): New user option; + make mml1991-encrypt-to-self and mml2015-encrypt-to-self obsolete + aliases to it. + (mml-secure-smime-encrypt-to-self): New user option; + make mml-smime-encrypt-to-self an obsolete alias to it. + (mml-secure-openpgp-sign-with-sender): New user option; + make mml2015-sign-with-sender an obsolete alias to it. + (mml-secure-smime-sign-with-sender): New user option; + make mml-smime-sign-with-sender an obsolete alias to it. + (mml-secure-openpgp-always-trust): New user option; + make mml2015-always-trust an obsolete alias to it. + (mml-secure-fail-when-key-problem, mml-secure-key-preferences): + New user options. + (mml-secure-cust-usage-lookup, mml-secure-cust-fpr-lookup) + (mml-secure-cust-record-keys, mml-secure-cust-remove-keys) + (mml-secure-add-secret-key-id, mml-secure-clear-secret-key-id-list) + (mml-secure-cache-passphrase-p, mml-secure-cache-expiry-interval) + (mml-secure-passphrase-callback, mml-secure-check-user-id) + (mml-secure-secret-key-exists-p, mml-secure-check-sub-key) + (mml-secure-find-usable-keys, mml-secure-select-preferred-keys) + (mml-secure-fingerprint, mml-secure-filter-keys) + (mml-secure-normalize-cust-name, mml-secure-select-keys) + (mml-secure-select-keys-1, mml-secure-signer-names, mml-secure-signers) + (mml-secure-self-recipients, mml-secure-recipients) + (mml-secure-epg-encrypt, mml-secure-epg-sign): New functions. + + * lisp/gnus/mml-smime.el: Require epg; + refactor declaration and autoloading of epg functions. + (mml-smime-use): Doc fix. + (mml-smime-cache-passphrase, mml-smime-passphrase-cache-expiry): + Obsolete. + (mml-smime-get-dns-cert, mml-smime-get-ldap-cert): + Use format instead of gnus-format-message. + (mml-smime-epg-secret-key-id-list): Remove variable. + (mml-smime-epg-passphrase-callback, mml-smime-epg-find-usable-key) + (mml-smime-epg-find-usable-secret-key): Remove functions. + (mml-smime-epg-sign, mml-smime-epg-encrypt): Refactor. + + * lisp/gnus/mml1991.el (mml1991-cache-passphrase) + (mml1991-passphrase-cache-expiry): Obsolete. + (mml1991-epg-secret-key-id-list): Remove variable. + (mml1991-epg-passphrase-callback, mml1991-epg-find-usable-key) + (mml1991-epg-find-usable-secret-key): Remove functions. + (mml1991-epg-sign, mml1991-epg-encrypt): Refactor. + + * lisp/gnus/mml2015.el (mml2015-cache-passphrase) + (mml2015-passphrase-cache-expiry): Obsolete. + (mml2015-epg-secret-key-id-list): Remove variable. + (mml2015-epg-passphrase-callback, mml2015-epg-check-user-id) + (mml2015-epg-check-sub-key, mml2015-epg-find-usable-key) + (mml2015-epg-find-usable-secret-key): Remove functions. + (mml2015-epg-decrypt, mml2015-epg-clear-decrypt, mml2015-epg-sign) + (mml2015-epg-encrypt): Refactor. + +2016-01-02 Glenn Morris + + * lisp/progmodes/fortran.el (fortran-make-syntax-propertize-function): + + Explicitly ignore case. (Bug#22262) + +2016-01-02 Stefan Monnier + + (semantic-symref-derive-find-filepatterns): Return a list + + * lisp/cedet/semantic/symref/grep.el + (semantic-symref-derive-find-filepatterns): Return a list. + (semantic-symref-perform-search): Quote the result here once and for all. + +2016-01-02 Eli Zaretskii + + Fix xref-find-references on MS-Windows + + * lisp/cedet/semantic/symref/grep.el + (semantic-symref-derive-find-filepatterns): Use + 'shell-quote-argument' instead of manually quoting in a way that + only works with Posix shells. (Bug#22289) + +2016-01-02 Eli Zaretskii + + Document new features of tildify-mode + + * lisp/textmodes/tildify.el (tildify-foreach-ignore-environments) + (tildify-mode): Spelling fixes in doc strings. + + * etc/NEWS: Reformat the tildify-mode entry. + +2016-01-02 Eli Zaretskii + + Document new features of Whitespace mode + + * doc/emacs/display.texi (Useless Whitespace): Document + 'whitespace-toggle-options' and the new 'big-indent' style. + Document 'whitespace-big-indent-regexp'. Document the Global + Whitespace mode. + +2016-01-02 Eli Zaretskii + + Improve documentation of new Hide-IfDef features + + * etc/NEWS: Expand and reword Hide-IfDef section. + +2016-01-02 Leo Liu + + Fix regression in font-locking cl-assert and cl-check-type + + * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): Fix + el-errs-re. + +2016-01-01 Paul Eggert + + Spelling and grammar fixes + +2016-01-01 Paul Eggert + + Fix copyright years by hand + + These are dates that admin/update-copyright did not update, or + updated incorrectly. + +2016-01-01 Paul Eggert + + Update copyright year to 2016 + + Run admin/update-copyright. + +2016-01-01 Paul Eggert + + Merge from gnulib + + This mostly just updates copyright dates of gnulib files. + It also updates to the latest version of texinfo.tex. + +2015-12-31 Mark Oteiza + + lisp/emacs-lisp/chart.el (chart-new-buffer): Move to silence byte compiler. + +2015-12-31 Mark Oteiza + + Port chart.el methods to cl-generic. + + cl-call-next-method cannot be used inside EIEIO's defmethod. + * lisp/emacs-lisp/chart.el: Require cl-generic at compile time. + * lisp/emacs-lisp/chart.el (initialize-instance, chart-draw): + (chart-draw-title, chart-size-in-dir, chart-draw-axis): + (chart-axis-draw, chart-translate-xpos, chart-translate-ypos): + (chart-translate-namezone, chart-draw-data, chart-add-sequence): + (chart-trim, chart-sort): Use cl-defmethod instead of defmethod. + +2015-12-31 Brian Burns + + Add nt/INSTALL.W64 build instructions + + * nt/INSTALL.W64: New file. + * nt/INSTALL: Point to INSTALL.W64 for 64-bit build instructions. + +2015-12-31 Joakim Jalap + + Add new input method 'programmer-dvorak' + + * lisp/leim/quail/programmer-dvorak.el ("programmer-dvorak"): New + input method. + + * etc/NEWS: Mention it. + +2015-12-31 Eli Zaretskii + + Allow to invoke original M-TAB binding in 'flyspell-prog-mode' + + * lisp/textmodes/flyspell.el (flyspell-prog-mode): Record the + original M-TAB binding in a buffer-local variable. + (flyspell-auto-correct-word): Invoke the original binding of M-TAB + if that is recorded, when point is in a place where flyspell + should not be active (e.g., because the user turned on + 'flyspell-prog-mode'). (Bug#18533) + +2015-12-31 Eli Zaretskii + + Fix EWW rendering of long RTL lines + + * lisp/net/shr.el (shr-insert-document): Undo any previous hscroll + of the selected window before filling its lines. (Bug#22250) + +2015-12-31 Vincent Belaïche + + fix bug#21054 + + * lisp/ses.el (ses-check-curcell): Call `ses-set-curcell' unconditionally + +2015-12-31 YAMAMOTO Mitsuharu + + Clean up cairo printing code + + * src/gtkutil.c (xg_get_page_setup): Use listn. + * src/xfns.c (Fx_export_frames, Fx_print_frames_dialog): Doc fix. Use + decode_window_system_frame and FRAME_VISIBLE_P. + (Fx_print_frames_dialog): Use redisplay_preserve_echo_area instead + of Fdisplay. + * src/xterm.c (x_cr_export_frames): Use redisplay_preserve_echo_area + instead of Fdisplay. Temporarily unblock_input around QUIT. + +2015-12-31 YAMAMOTO Mitsuharu + + Move variables to inner loop, preparing for Mac port merge + + * src/keyboard.c (command_loop_1): Move variables `cmd', + `keybuf', and `i' to inner loop. + +2015-12-31 YAMAMOTO Mitsuharu + + Add handle_user_signal_hook + + * src/keyboard.h (handle_user_signal_hook): New declaration. + * src/keyboard.c (handle_user_signal_hook): New variable. + (handle_user_signal): Call it. + +2015-12-31 YAMAMOTO Mitsuharu + + Avoid writing to purespace + + * src/alloc.c (Fmake_string): Don't write to empty string contents. + (allocate_vector): Don't write to empty vector size. + * src/character.h (CHECK_CHARACTER_CAR, CHECK_CHARACTER_CDR): + Don't call unnecessary XSETCAR or XSETCDR. + * src/lisp.h (STRING_SET_UNIBYTE, STRING_SET_MULTIBYTE): Don't + write to empty string size_byte. + +2015-12-31 YAMAMOTO Mitsuharu + + Remove unused variable + + * lisp/international/mule-cmds.el: Remove unused variable + `mac-system-coding-system'. + +2015-12-31 YAMAMOTO Mitsuharu + + * configure.ac: Find libxml2 headers in Xcode SDK dir on Darwin. + +2015-12-31 YAMAMOTO Mitsuharu + + Use posix_openpt instead of openpty on Darwin + + * configure.ac (PTY_ITERATION, FIRST_PTY_LETTER, PTY_OPEN) + (PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF): Remove + Darwin-specific definitions. Use posix_openpt instead. + +2015-12-30 Shakthi Kannan + + Document support for ':documentation' in Lisp mode + + * lisp/emacs-lisp/lisp-mode.el (lisp-string-in-doc-position-p) + (lisp-string-after-doc-keyword-p) + (lisp-font-lock-syntactic-face-function): Add doc strings. + +2015-12-30 Shakthi Kannan + + Document new features of TeX mode + + * doc/emacs/text.texi (TeX Print): Document + 'tex-print-file-extension'. + * doc/emacs/programs.texi (Misc for Programs): Document support + for Prettify Symbols mode in TeX mode. + +2015-12-30 Eli Zaretskii + + Clarify docs of hscroll in RTL text + + * doc/lispref/windows.texi (Horizontal Scrolling): Clarify the + meaning of a window's horizontal scroll amount for RTL paragraphs. + +2015-12-30 Eli Zaretskii + + Fix rendering of HTML pages that use character composition + + * src/indent.c (Fvertical_motion): Fix the case when point starts + in the middle of a composition, as in shr-vertical-motion. + (Bug#22250) + +2015-12-30 Eli Zaretskii + + Avoid some compiler warnings in w32.c + + * src/w32.c (codepage_for_filenames, crlf_to_lf) + (ansi_encode_filename, socket_to_fd, sys_write) + (check_windows_init_file): Avoid compiler warnings about + differences in pointer signedness. + +2015-12-30 Dmitry Gutov + + Undo ill-advised change + + * lisp/progmodes/xref.el (xref-collect-matches): Undo + ill-advised change. The hits come in the order that `find' + produces them in, which isn't alphabetical. + +2015-12-30 Dmitry Gutov + + Unbreak completion in python-mode buffers + + * lisp/progmodes/python.el (python-shell-completion-at-point): + Unbreak in python-mode buffers. + +2015-12-29 Eli Zaretskii + + Fix typos in CC Mode manual + + * doc/misc/cc-mode.texi (c-offsets-alist, Style Variables): Fix + typos. (Bug#22267) + +2015-12-29 Eli Zaretskii + + Avoid assertion violations in compact_font_cache_entry + + * src/alloc.c (compact_font_cache_entry): Don't use VECTORP to + avoid assertion violation in ASIZE. (Bug#22263) + +2015-12-29 Eli Zaretskii + + Fix filling text with bidirectional characters in shr.el + + * lisp/net/shr.el (shr-insert-document): Bind + bidi-display-reordering to nil while filling lines. This is + required for when a line includes characters whose bidi + directionality is opposite to the base paragraph direction, + because columns are counted in the logical order. (Bug#22250) + +2015-12-29 Martin Rudalics + + * src/xfns.c (x_create_tip_frame): Process alpha parameter. + +2015-12-29 Michael Albinus + + Sync with Tramp 2.2.13 + + * doc/misc/trampver.texi: Change version to "2.2.13.25.1". + + * lisp/net/tramp-compat.el (tramp-compat-delete-dups): + Use `tramp-compat-funcall'. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-parse-device-names): + Make `split-string' call compatible with older Emacsen. + + * lisp/net/trampver.el: Change version to "2.2.13.25.1". + +2015-12-29 Lambda Coder + + * doc/misc/tramp.texi: Editorial revisions to the Tramp manual + +2015-12-29 Lars Ingebrigtsen + + Mention that tls.el is secure by default, and will fail + +2015-12-29 Lars Ingebrigtsen + + Make tls.el use trustfiles by default + + * lisp/net/tls.el (tls-program): Add a certfile by default (bug#21227). + (open-tls-stream): Insert the trustfile by looking at + `gnutls-trustfiles'. + +2015-12-29 Lars Ingebrigtsen + + Refactor out gnutls-trustfiles + + * lisp/net/gnutls.el (gnutls-trustfiles): Refactor out for reuse by tls.el. + +2015-12-29 Lars Ingebrigtsen + + Remove --insecure from gnutls-cli invocation + + * tls.el (tls-program): Default to using secure TLS + connections (bug#19284). + +2015-12-29 Paul Eggert + + Spelling fix + +2015-12-29 Paul Eggert + + Port report-emacs-bug to deterministic builds + + * lisp/mail/emacsbug.el (report-emacs-bug): Future-proof the + recent "built on" change to deterministic builds where + emacs-build-system will be nil. See: + http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01369.html + +2015-12-29 Jose A. Ortega Ruiz (tiny change) + + Fix URL auth error message + + * lisp/url/url-http.el (url-http-handle-authentication): Make the error + message more correct (bug#20069). + +2015-12-28 Lars Ingebrigtsen + + shr link traversal fixup + + * shr.el (shr-next-link): Don't bug out on adjacent links. + + Backport: + + (cherry picked from commit 1efc5f8b09273c359683ce13be95fb5df7a84311) + +2015-12-28 Tom Tromey + + set :safe on css-indent-offset + + * lisp/textmodes/css-mode.el (css-indent-offset): Add :safe 'integerp. + +2015-12-28 Lars Ingebrigtsen + + * eww.el (eww-mode): Remove superfluous bidi reset. + +2015-12-28 James Stout (tiny change) + + Make chunked encoding trailer detection more compliant + + * lisp/url/url-http.el + (url-http-chunked-encoding-after-change-function): Make + trailer detection more compliant (bug#16345). + +2015-12-28 Martin Rudalics + + Fix Bug#10873 in `report-emacs-bug' + + * lisp/mail/emacsbug.el (report-emacs-bug): If + `report-emacs-bug-no-explanations' is nil, make sure we can show + mail and warnings buffer on this frame (Bug#10873). + +2015-12-28 Lars Ingebrigtsen + + Always reset the bidi direction + + * eww.el (eww-display-html): Always reset the bidi direction + to `left-to-right' (bug#22257). + +2015-12-28 Alan Mackenzie + + Allow line comments ending with escaped NL to be continued to the next line. + + Use this in C, C++, and Objective C Modes. Fixes bug#22246 + + * src/syntax.c (comment-end-can-be-escaped): New buffer local variable. + (forw-comment, back-comment): On encountering an end of comment character, + test whether it is escaped when `comment-end-can-be-escaped' is non-nil. + + * doc/lispref/syntax.texi (Control Parsing): Describe + `comment-end-can-be-escaped'. + + * etc/NEWS (Lisp Changes): Describe `comment-end-can-be-escaped'. + + * lisp/progmodes/cc-langs.el: New c-lang-setvar `comment-end-can-be-escaped'. + +2015-12-28 Dmitry Gutov + + Rename project-library-roots to project-external-roots + + * lisp/progmodes/project.el (project-library-roots): Rename to + project-external-roots. + (project-library-roots-function): Rename to + project-vc-external-roots-function. Only use it in the VC + backend, for now. Update project-external-roots accordingly. + (project-vc-library-roots): Remove. + (project-or-libraries-find-regexp): + Rename to project-or-external-find-regexp. + + * lisp/progmodes/elisp-mode.el (elisp-library-roots): + Rename to elisp-load-path-roots. + + * lisp/progmodes/etags.el (etags-library-roots): Remove. Use + an anonymous function for the default value of + project-vc-external-roots-function. + +2015-12-27 Deniz Dogan + + Clear erc user list upon disconnection + + * lisp/erc/erc-backend.el (erc-process-sentinel): Clear channel user + lists upon disconnection. This prevents invalid channel + user lists when reconnecting (bug#10947). + +2015-12-27 Lars Ingebrigtsen + + Don't bug out in erc after waking from sleep + + * lisp/erc/erc-backend.el (erc-server-send-ping): If the server has + closed connection, this may already have been detected and + `erc-server-last-received-time' has been set to nil (bug#13608). + +2015-12-27 David Edmondson + + Proxy error in erc with multiple clients + + * lisp/erc/erc.el (erc-channel-receive-names): Fix errors + generated when multiple IRC clients talk to a single IRC proxy + (bug#19034). + + Backport: + + (cherry picked from commit 507e98a54d1aa37823c64993d6b59257a82fe8f4) + +2015-12-27 Dima Kogan + + Ensure that we don't have several timers in erc + + * lisp/erc/erc-backend.el (erc-server-setup-periodical-ping): Checks + for existing timers in the alist before adding new ones. If a + timer already exists, it is cancelled and + overwritten. (bug#19292). + +2015-12-27 Jens Lechtenboerger + + Fix mml-sec build warnings + + * lisp/gnus/mml-sec.el: Fix warnings by adding autoloads + (bug#18718). + + Backport: + + (cherry picked from commit 3603097f62f5f4aa5451716e9ac380161f6829e2) + +2015-12-27 Lars Ingebrigtsen + + Don't insert erc logs at the end + + * lisp/erc/erc-log.el (erc-log-setup-logging): Insert the previous log + at the start of the buffer, not at the end (bug#20496). + +2015-12-27 Lars Ingebrigtsen + + (eww-setup-buffer): Restore left-to-right defaults + + * eww.el (eww-setup-buffer): Restore left-to-right defaults. + + Backport: + + (cherry picked from commit 96c874b96b617c124d500a94de761a61f2a08685) + +2015-12-27 Lars Ingebrigtsen + + Don't join erc channels doubly + + * lisp/erc/erc-join.el (erc-autojoin-channels): Don't join channels + more than once (if you have several nicks) (bug#20695). + +2015-12-27 Eli Zaretskii + + Avoid leaving "ghost" of mouse pointer on MS-Windows + + * src/w32term.c (frame_set_mouse_pixel_position): + * src/w32fns.c (Fw32_mouse_absolute_pixel_position): Momentarily + disable "mouse trails" when moving the mouse pointer. (Bug#22247) + * src/w32term.c (frame_set_mouse_pixel_position): Include + w32common.h. + +2015-12-27 Krzysztof Jurewicz (tiny change) + + Fix auth source lookups from erc with port numbers + + * lisp/erc/erc.el (erc-open): `auth-source' wants strings, not port + numbers (bug#20541). + +2015-12-27 Fran Litterio + + Run erc-kill-channel-hook always on exit + + * lisp/erc/erc.el (erc-kill-buffer-function): Run erc-kill-channel-hook + when erc-kill-queries-on-quit is set (bug#21187). + +2015-12-27 Paul Eggert + + Spelling fix + + * test/automated/url-parse-tests.el: + (url-generic-parse-url/same-document-reference): + Rename from url-generic-parse-url/same-decument-reference. + +2015-12-27 Paul Eggert + + Reword initial *scratch* for brevity, appearance + + * lisp/startup.el (initial-scratch-message): + Reword to avoid apostrophes, and to make it shorter. + See the thread starting in: + http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01241.html + +2015-12-26 Leo Liu + + Add ert-deftest to lisp-mode.el + + * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression, + lisp-el-font-lock-keywords-1): Add ert-deftest. + +2015-12-26 Lars Ingebrigtsen + + Mark imap changes as not needing doc changes + + * lisp/net/imap.el (imap-ssl-open): Remove + +2015-12-26 Lars Ingebrigtsen + + Use built-in encryption in imap.el + + * lisp/net/imap.el (imap-ssl-program): Remove (bug#21134). + (imap-starttls-open): Use open-network-stream instead of starttls.el. + (imap-tls-open): Use open-network-stream instead of tls.el. + +2015-12-26 Eli Zaretskii + + Don't try using /bin/sh in artist.el on MS-Windows + + * lisp/textmodes/artist.el (artist-figlet-get-font-list-windows): + New function. + (artist-figlet-choose-font): Use it on MS-Windows and MS-DOS. + (Bug#20167) + +2015-12-26 Wolfgang Jenkner + + Always define gmalloc etc. in src/gmalloc.c + + This is a work-around to prevent the compiler from using semantic + knowledge about malloc for optimization purposes. E.g., gcc 5.2 + with -O2 replaces most of calloc's definition by a call to calloc; + see Bug#22085. + * src/gmalloc.c [!HYBRID_MALLOC] (malloc, realloc, calloc) + (aligned_alloc, free): Do not undef. Instead, define these as + functions (perhaps renamed to gmalloc etc.) in terms of gmalloc etc. + +2015-12-26 Eli Zaretskii + + Fix documentation of browse-url browser-related functions + + * lisp/net/browse-url.el (browse-url) + (browse-url-default-browser, browse-url-default-windows-browser) + (browse-url-default-macosx-browser, browse-url-chromium) + (browse-url-kde, browse-url-text-xterm): Clarify the usage of ARGS + and NEW-WINDOW arguments in these functions. (Bug#19421) + +2015-12-26 Paul Eggert + + Propagate Bug#14412 fix to backtrace_eval_unrewind + + * src/eval.c (unbind_to): Redo so that the FALLTHROUGH!! comment + becomes accurate again. This shouldn’t affect behavior. + (backtrace_eval_unrewind): Apply the recent unbind_to fix here, too. + +2015-12-26 Eli Zaretskii + + Don't produce non-ASCII characters in *scratch* + + * lisp/startup.el (initial-scratch-message): Quote apostrophes to + avoid producing non-ASCII characters in the *scratch* buffer's + commentary. + +2015-12-26 Eli Zaretskii + + Document changes in 'compare-windows' + + * lisp/vc/compare-w.el (compare-windows-removed) + (compare-windows-added): Doc fix. + + * doc/emacs/files.texi (Comparing Files): Document the changes in + window selection by 'compare-windows'. + +2015-12-26 Eli Zaretskii + + Document 'vc-annotate-background-mode' + + * doc/emacs/maintaining.texi (Old Revisions): Document + 'vc-annotate-background-mode'. + +2015-12-26 Eli Zaretskii + + Document 'vc-region-history' + + * doc/emacs/maintaining.texi (VC Change Log): Document + 'vc-region-history'. + +2015-12-26 Eli Zaretskii + + Improve documentation of 'vc-push' + + * doc/emacs/maintaining.texi (Pulling / Pushing): Expand and + improve the documentation of 'vc-push'. + + * lisp/vc/vc.el (vc-pull, vc-push): Doc fix. + +2015-12-26 Alain Schneble + + Include the tests for the URL parsing fixes + +2015-12-26 Alain Schneble + + Make relative URL parsing and resolution consistent with RFC 3986 (bug#22044) + + * test/automated/url-parse-tests.el: Add tests covering url-generic-parse-url. + * test/automated/url-expand-tests.el: Add tests covering url-expand-file-name. + * lisp/url/url-parse.el (url-generic-parse-url): Keep empty fragment + information in URL-struct. + * lisp/url/url-parse.el (url-path-and-query): Do not artificially turn empty + path and query into nil path and query, respectively. + * lisp/url/url-expand.el (url-expander-remove-relative-links): Do not turn + empty path into an absolute ("/") path. + * lisp/url/url-expand.el (url-expand-file-name): Properly resolve + fragment-only URIs. Do not just return them unchanged. + * lisp/url/url-expand.el (url-default-expander): An empty path in the relative + reference URI should not drop the last segment. + + Backport: + + (cherry picked from commit b792ecea1715e080ad8e232d3d154b8a25d2edfb) + +2015-12-26 Eli Zaretskii + + Document 'url-user-agent'. + + * lisp/url/url-http.el (url-user-agent): Move from here... + * lisp/url/url-vars.el (url-user-agent): ...to here. This is to + keep all the URL defcustoms in one place, and also have it defined + whenever the URL library is loaded. + + * doc/misc/url.texi (Customization): Document 'url-user-agent'. + +2015-12-26 Eli Zaretskii + + Document protocols supported by URL library via Tramp + + * doc/misc/url.texi (Tramp): New node, describes the URL schemes + supported via Tramp. + (Supported URL Types, file/ftp, rlogin/telnet/tn3270): Mention + Tramp. + +2015-12-26 Eli Zaretskii + + Document changes in Shell-script mode + + * lisp/progmodes/sh-script.el (sh-mode, sh-set-shell): Document + the 'sh-shell' file-local variable. + (top level): Add an auto-load form to avoid byte-compiler warning + about 'comint-send-string'. + +2015-12-26 Eli Zaretskii + + Fix documentation of 'ses-define-local-printer' + + * doc/misc/ses.texi (Printer functions): Fix whitespace between + sentences and punctuation. Add an index entry for + 'ses-define-local-printer'. + +2015-12-26 Shakthi Kannan + + Document 'ert-summarize-tests-batch-and-exit' + + * doc/misc/ert.texi (Running Tests in Batch Mode): Document + 'ert-summarize-tests-batch-and-exit'. + +2015-12-26 Eli Zaretskii + + Avoid assertion violation in unbind_to + + * src/eval.c (unbind_to) : Avoid assertion violation + if we get here with an object that is not a symbol. (Bug#14412) + +2015-12-25 Andreas Schwab + + Don't treat /foo/bar:mumble as ange-ftp address + + * lisp/net/browse-url.el (browse-url-filename-alist): Match colons + only in the first component. (bug#5362) + +2015-12-25 Lars Ingebrigtsen + + Follow redirects in eww + + Merge conflict, but I think I resolved it. + + Follow meta refresh tags in eww + + * eww.el (eww-tag-meta): Follow meta refresh tags (bug#22234). + + Backport: + +2015-12-25 Lars Ingebrigtsen + + Allow http://user:pass@foo/ URLs again + + * lisp/url/url-auth.el (url-basic-auth): Allow explicit + user/passwords in URLs (bug#19046). + + Backport: + + (cherry picked from commit b563715a2db265517d5a77f165a42afa1e233fdd) + +2015-12-25 Samer Masterson + + Autoload url-insert-buffer-contents + + * lisp/url/url-handlers.el: Add autoload cookie so that + `package-list-packages' doesn't bug out (bug#21927) (tiny change) + + Backport: + + (cherry picked from commit 7a7b5b492ff9929eecd90c4564db6fbf3b192323) + +2015-12-25 Eli Zaretskii + + Make sure *scratch* etc. use forward slashes in its default-directory + + * lisp/startup.el (normal-top-level): On MS-Windows, convert + backslashes to forward slashes while decoding default-directory + of the initially-created buffers. + +2015-12-25 Lars Ingebrigtsen + + More eww file name coding fixes + + * eww.el (eww-decode-url-file-name): Use the base coding + system to check for encodability. + + Backport: + + (cherry picked from commit a8627008abe4ab339df19b417776da28b3ce0fc7) + +2015-12-25 Lars Ingebrigtsen + + Always save eww history + + * eww.el (eww-setup-buffer): Always save history, even when + called from outside the eww buffer (bug#19638). + + Backport: + + (cherry picked from commit 2a0f18d9b6ce0ccce3d9c4a4a3b5743bae71b41e) + +2015-12-25 Lars Ingebrigtsen + + Default web pages to right-to-left + + * eww.el (eww-mode): Most web pages are left-to-right, so make + that the default (bug#19801). + + * shr.el (shr-tag-html): Respect "dir" attributes + (left-to-right, right-to-left). + + Backport: + + (cherry picked from commit 9e089ec8a380ec3758fcf1564c5f86dc92c68c2a) + +2015-12-25 Lars Ingebrigtsen + + Make toggling checkboxes work again + + * eww.el (eww-update-field): Make toggling checkboxes work + again (bug#21881). + + Backport: + + (cherry picked from commit 5e56f606952e5e81b4d3a93ea70e791b74b33041) + +2015-12-25 Lars Ingebrigtsen + + Don't store cookies with empty names + + * lisp/url/url-cookie.el (url-cookie-store): Refuse to store + cookies with empty names (bug#21936). + + Backport: + + (cherry picked from commit 9f0fd7cb1aec3eb9e2e0f7b8854c30870286d96c) + +2015-12-25 Lars Ingebrigtsen + + Stop rendering HTML before specdlr exhaustion + + Fixes: 22117 + + * shr.el (shr-descend): Stop rendering before we run out of + specpdl room (bug#22117). + + Backport: + + (cherry picked from commit 248da292fe46224b0b5a79b632c89cf4de2c2081) + +2015-12-25 Lars Ingebrigtsen + + Use cl-reduce, not reduce. + + Backport: + + (cherry picked from commit fe4606f93b91ff3d046aee0cf21ecc277af7a786) + +2015-12-25 Lars Ingebrigtsen + + Allow several tags in shr + + * shr.el (shr-table-body): New function to find the real body + of a table. + (shr-tag-table): Use it to render several tags in a + table (bug#22170). + + Backport: + + (cherry picked from commit cdaf33029d6620073833876d76056045ecfbc7c4) + +2015-12-25 Lars Ingebrigtsen + + Make prettier unique file names in eww + + (eww-make-unique-file-name): Make unique file names by making + files like foo(2).jpg instead of foo(1)(2).jpg. + + Backport: + + (cherry picked from commit edfdd0a6cbdfa9e5e4bd0553e2b489401ca39266) + +2015-12-25 Lars Ingebrigtsen + + Decode hex-encoded URLs before using them as file names + + * eww.el (eww-decode-url-file-name): New function. + (eww-download-callback): Use it to decode file names before + saving them. + + Backport: + + (cherry picked from commit af22a010d87516c2a646572fb27512c03057784f) + +2015-12-25 Ashish SHUKLA + + Add FreeBSD cert bundle + + * doc/misc/emacs-gnutls.texi (Help For Users): Document + FreeBSD bundle. + + * lisp/net/gnutls.el (gnutls-trustfiles): Add FreeBSD cert bundle. + + Backport: + + (cherry picked from commit 60c0f1a18ad88d6dc1a8f4ee5d9d18940eaeb6f7) + +2015-12-25 Lars Ingebrigtsen + + Ignore invalid SVG images + + * shr.el (shr-tag-svg): Ignore SVG images that have no width + or height, because these can't be displayed by ImageMagick, + anyway. + + Backport: + + (cherry picked from commit 821107d53c2e390240d25c036b99ebbf9b4a93b6) + +2015-12-25 Lars Ingebrigtsen + + shr table rendering fix + + * shr.el (shr-tag-table): Allow rendering body-less tables + that have headers. + + Backport: + + (cherry picked from commit b05471e42c17e02c56c87d7599ada0c124a5fe09) + +2015-12-25 Eli Zaretskii + + Restore info about the build host in bug reports + + * lisp/mail/emacsbug.el (report-emacs-bug): Report the system on + which Emacs was built. This is important information for + investigating bug reports reported by users who don't build their + Emacs. + +2015-12-25 Eli Zaretskii + + Fix bootstrap broken by changes related to OS X file-name encoding + + * lisp/international/ucs-normalize.el (eval-when-compile): Make + sure char-code-property-alist includes elements that allow access + to 'decomposition' and 'canonical-combining-class' Unicode + properties, as compiling ucs-normalize.el requires that. + * lisp/loadup.el (featurep 'ns): Load ucs-normalize and ns-win + only of charprop.el was already loaded. + + * src/Makefile.in ($(lispsource)/international/ucs-normalize.elc): + New order-only dependency. + +2015-12-25 Leo Liu + + * lisp/ido.el (ido-add-virtual-buffers-to-list): Use bookmark-get-filename. + +2015-12-25 Michael Albinus + + Make tramp-test29-vc-registered more robust + + * test/automated/tramp-tests.el (tramp-test29-vc-registered): + Move `bzr' case down. Skip test when `vc-create-repo' fails. + Remove instrumentation. + +2015-12-24 YAMAMOTO Mitsuharu + + * lisp/term/x-win.el (x-gtk-stock-map): Fix typo. + +2015-12-24 Katsumi Yamaoka + + Fix `gnus-union' so as to behave like `cl-union' + + * lisp/gnus/gnus-group.el (gnus-group-prepare-flat): + Make gnus-union use `equal' to compare items in lists. + + * lisp/gnus/gnus-util.el (gnus-union): + Make it behave like cl-union partially. + +2015-12-23 Paul Eggert + + Fix dired.c typo with ptrdiff_t vs Lisp_Object + + * src/dired.c (file_name_completion): Don't assume Lisp_Object is + an integer type, fixing a problem introduced in the recent fix for + Bug#22169. + +2015-12-23 Eli Zaretskii + + Document default process sentinel more prominently + + * doc/lispref/processes.texi (Asynchronous Processes): Mention the + defaults for process filter and sentinel. Provide cross-references. + (Process Information): Provide cross-references to where filters + and sentinels are described. + (Filter Functions): Add an index entry for "default filter". + (Sentinels): Add a few status messages not documented previously. + Resolve the "killed" confusion. Document and describe the default + sentinel. (Bug#22220) + +2015-12-23 Eli Zaretskii + + Fix file-name completion on OS X + + * src/dired.c (file_name_completion): Reject false matches due to + file-name-coding-systems that decompose characters when encoding + file names, by comparing decoded file names as well. (Bug#22169) + (syms_of_dired) : New DEFSYM. + + * lisp/international/ucs-normalize.el (utf-8-hfs): Give it a + non-nil 'decomposed-characters' property. + +2015-12-23 Anders Lindgren + + File-name completion of non-ASCII characters on OS X (bug#22169) + + The coding system `utf-8-nfd', locally defined in ns-win.el, + didn't provide a :pre-write-conversion method, causing file name + completion of non-ASCII characters to fail. Solved by using the + `utf-8-hfs' coding system provided by `ucs-normalize'. + + * lisp/loadup.el: Load international/ucs-normalize (when building + for ns). + + * lisp/term/ns-win.el (utf-8-nfd): Made `utf-8-nfd' as alias for + `utf-8-hfs' and removed the old implementation. Set `utf-8-hfs' + as the file name coding system. + + * src/nsfns.m (ns-convert-utf8-nfd-to-nfc): Removed. + +2015-12-23 Tom Tromey + + Fix bug #18588 by making bug-reference-bug-regexp more lenient + + * lisp/progmodes/bug-reference.el (bug-reference-bug-regexp): Accept + "bug NNNN". (Bug #18588) + +2015-12-23 Tom Tromey + + add some cl-* aliases to lisp-mode imenu + + * (lisp-imenu-generic-expression): Add cl-define-compiler-macro, + cl-defgeneric, and cl-defmethod. + +2015-12-22 Tom Tromey + + Make a variable buffer-local + + * lisp/generic-x.el (generic-rul-mode-setup-function): Make + font-lock-syntax-table buffer-local. (Bug #21627) + +2015-12-22 Eli Zaretskii + + Fix decoding of text in URLs retrieved by EWW + + * lisp/net/eww.el (eww-render): Pass 'charset' to + 'eww-display-raw'. Use the value of 'last-coding-system-used', if + non-nil, to set 'buffer-file-coding-system' of the buffer where we + show the URL. + (eww-display-html, eww-display-raw): Decode the text correctly, + using the charset found in the headers, and defaulting to UTF-8. + If the user told us to use a specific encoding, override the + charset from the headers. (Bug#22222) + +2015-12-22 Alan Mackenzie + + Fix a coding error in c-forward-<>-arglist-recur. Fixes bug#22156 + + * lisp/progmodes/cc-engine.el (c-forward-<>-arglist-recur): Remove unused + variable `tmp'. + After a failed search for a matching ">", restore point before continuing. + +2015-12-22 Michael Albinus + + Instrument Tramp tests + + * test/automated/tramp-tests.el (tramp-test29-vc-registered) + (tramp--test-utf8): Instrument tests. + +2015-12-22 Martin Rudalics + + Fix `display-buffer' call in `display-message-or-buffer' (Bug#22221) + + * lisp/simple.el (display-message-or-buffer): Call + `display-buffer' with ACTION instead of NOT-THIS-WINDOW + (Bug#22221). + +2015-12-22 Juri Linkov + + * lisp/saveplace.el (toggle-save-place, save-place-to-alist) + + (save-places-to-alist, save-place-dired-hook): + Check for dired-subdir-alist. (Bug#19851) + +2015-12-21 Paul Eggert + + Add FIXME comment re stack overflow and modules + +2015-12-21 Paul Eggert + + Revert some recent emacs-module commentary + + Most of the recently-added commentary was incorrect, due to the + possibility of stack overflow. + +2015-12-21 Paul Eggert + + Spelling fix: prefer "cooperate" to "co-operate" + +2015-12-21 Paul Eggert + + Port undo fixes to -fno-common + + Port recent fix for Bug#21968 to platforms like 'gcc -fno-common'. + * src/keyboard.c, src/keyboard.h (point_before_last_command_or_undo) + (buffer_before_last_command_or_undo): + Declare in keyboard.h, and define in keyboard.c, + instead of assuming the traditional Unix relaxed ref-def linkage. + +2015-12-20 Philipp Stephani + + Improve commentary for emacs-module.c + + * src/lisp.h: Document emacs-module.c assumptions about EQ and NILP. + * src/emacs-module.c (module_non_local_exit_get): Document that we + cannot use the current implementation. + (module_is_not_nil, module_eq): Document assumptions about EQ and + NILP. + +2015-12-20 Michael Albinus + + Suppress test on Mac OS X + + * test/automated/tramp-tests.el (tramp--test-darwin-p): New defun. + (tramp--test-utf8): Use it. + +2015-12-20 Alan Mackenzie + + Merge branch 'scratch/follow' into emacs-25 + + This allows Isearch, etc., to work well when Follow Mode is active. + +2015-12-19 Michael Albinus + + * lisp/net/tramp-sh.el (tramp-get-ls-command-with-w-option): Improve check. + +2015-12-19 Eli Zaretskii + + Fix last commit + + * doc/emacs/rmail.texi (Rmail Deletion): Document new behavior of 'u' + with numeric argument. + +2015-12-19 Eli Zaretskii + + Document new features of Rmail + + * doc/emacs/rmail.texi (Rmail Summary Edit, Rmail Deletion): + Document new behavior of 'd' and 'C-d' with numeric argument. + (Rmail Display): Document the rendering of HTML MIME parts. + +2015-12-19 Eli Zaretskii + + Improve documentation of new cl-lib functions + + * doc/misc/cl.texi (Predicates on Numbers, Numerical Functions): + Fix wording. + +2015-12-19 Eli Zaretskii + + Document the new feature of 'minibuffer-with-setup-hook' + + * lisp/files.el (minibuffer-with-setup-hook): Clarify how FUN is + added to `minibuffer-setup-hook'. + +2015-12-19 Eli Zaretskii + + Document new features of Font Lock + + * doc/lispref/modes.texi (Other Font Lock Variables): Document + 'font-lock-flush-function' and 'font-lock-ensure-function'. + (Font Lock Basics): Document the basic fontification functions + referenced in "Other Font Lock Variables". + + * lisp/font-lock.el (font-lock-flush, font-lock-ensure): Doc fix. + +2015-12-19 Eli Zaretskii + + Document new features of Rectangle mode + + * doc/emacs/killing.texi (Rectangles): Document "C-x C-x" in + rectangle-mark-mode. + +2015-12-19 Eli Zaretskii + + Manual followup to last change + + * doc/lispref/display.texi (Displaying Messages): Sync with the + doc string. (Bug#22210) + +2015-12-19 Eli Zaretskii + + Clarify doc string of 'display-message-or-buffer' + + * lisp/simple.el (display-message-or-buffer): Doc fix. Suggested + by Sebastian Wiesner . (Bug#22210) + +2015-12-19 Eli Zaretskii + + * doc/emacs/emacs.texi (Top): Update top-level menus. + + * doc/lispref/elisp.texi (Top): Update top-level menus. + +2015-12-19 Eli Zaretskii + + Document how to avoid file-local variables that aren't + + * doc/emacs/custom.texi (Specifying File Variables): Describe how + to prevent Emacs from interpreting unrelated text as file-local + variables. (Bug#22166) + +2015-12-19 Dave Thomas (tiny change) + + Fix a typo in eterm-color's termcap entry + + * lisp/term.el (term-termcap-format): Fix a typo in the "ue=" + entry. (Bug#22184) + +2015-12-19 Eli Zaretskii + + Allow 'browse-url-emacs' visit non-existent URLs + + * lisp/url/url-handlers.el (url-insert-file-contents): Don't + signal an error if VISIT is non-nil, to more faithfully emulate + the behavior of 'insert-file-contents'. (Bug#22160) + +2015-12-19 Paul Eggert + + Remove SunOS 4.x cruft + + Support for SunOS 4.x was removed in Emacs 23 but some cruft was left behind. + * lib-src/pop.c [sun]: Remove no-longer-needed include. + * lwlib/xlwmenu.c (SUNSO41): Remove. + +2015-12-19 Paul Eggert + + Merge from gnulib + + This mostly commentary fixes. + * doc/misc/texinfo.tex, lib/intprops.h: Copy from gnulib. + * lib/gnulib.mk: Regenerate with new gnulib-tool. + +2015-12-18 Michael Albinus + + Minor fixes in Tramp + + * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls): + Reorder ls arguments. + + * lisp/net/tramp.el (tramp-dissect-file-name): Fix docstring. + +2015-12-18 Michael Albinus + + Make tramp a built-in package + + * lisp/finder.el (finder-compile-keywords): Update + `package--builtins' also when Version: keyword is available. + + * lisp/net/trampver.el: Add Version: keyword. + (tramp-version): Change it to "2.2.13.25.1", in order to be + compatible with `version-to-list'. + +2015-12-18 Lele Gaifax + + * etc/tutorials/TUTORIAL.it: Update and fix typos. + +2015-12-18 Alan Mackenzie + + Rename `recenter-group' to `recenter-window-group' + + * doc/lispref/windows.texi (Textual Scrolling) + * lisp/window.el (top level, recenter-group) + * lisp/follow.el (follow-mode) + * lisp/isearch.el (isearch-back-into-window): Rename `recenter-group' to + `recenter-window-group' and `recenter-group-function' to + `recenter-window-group-function'. + +2015-12-18 Eli Zaretskii + + Fix vertical-motion in tabulated-list mode + + * src/indent.c (Fvertical_motion): When moving from line beginning + to point under line truncation, assume overshoot by one line only + if point actually lies beyond the window's right margin. + (Bug#22194) + +2015-12-18 Martin Rudalics + + Don't have help functions call x-display-pixel-width/-height on ttys + + * lisp/help.el (temp-buffer-max-height, temp-buffer-max-width): + Don't call x-display-pixel-width/-height on ttys. + +2015-12-18 Dmitry Gutov + + Use 'hg id' in vc-hg-previous-revision + + * lisp/vc/vc-hg.el (vc-hg-previous-revision): + Use 'hg id' to retrieve it (bug#22032). + +2015-12-17 Alan Mackenzie + + * lisp/follow.el (follow-sit-for): Remove (it's redundant). + +2015-12-17 Eli Zaretskii + + Fix a typo in the Emacs manual + + * doc/emacs/trouble.texi (Sending Patches): Fix a typo. Reported + by Lele Gaifax . (Bug#22193) + +2015-12-17 Eli Zaretskii + + Fix parsing netrc entries with ports + + * lisp/gnus/auth-source.el (auth-source-ensure-strings): Don't + make a list out of 't'. (Bug#22188) + + * test/automated/auth-source-tests.el + (auth-source-test-netrc-parse-entry): New test. + +2015-12-17 Paul Eggert + + Fix typo in Doug Lea malloc configure log + + * configure.ac (emacs_cv_var_doug_lea_malloc): + Fix typo that confused the log output of 'configure'. + +2015-12-16 Nicolas Petton + + * etc/NEWS: Mention the new pcase patterns `seq' and `map'. + +2015-12-16 Alan Mackenzie + + * etc/NEWS: Move entry on pcase to correct section + + (Accidentally omitted from previous commit) + +2015-12-16 Alan Mackenzie + + Add documentation for changes to Show Paren mode. + + * lisp/paren.el (show-paren-highlight-openparen): Enhance doc string. + + * doc/emacs/programs.texi (Matching): Add descriptions of some pertinent user + options, including the new show-paren-when-point-inside-paren and + show-paren-when-point-in-periphery. + + * etc/NEWS (.. Specialized Modes ...): Add an entry for Show Paren mode. + Move an entry on pcase to the Lisp Changes section. + +2015-12-16 Eli Zaretskii + + Document Eldoc changes + + * doc/emacs/programs.texi (Lisp Doc): Document Global Eldoc mode. + +2015-12-16 Eli Zaretskii + + Fix invocation of Python and Guile interpreters from gdb-mi + + * lisp/progmodes/gdb-mi.el (gdb-control-commands-regexp): Add + commands for interactive Python and Guile interpreters. + (gdb-send): Recognize various ways of exiting from Python and + Guile interpreters and returning to GDB. For details, see + http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00693.html + and http://stackoverflow.com/questions/31514741. + +2015-12-16 Paul Eggert + + Remove attempt to use C11 threads + + C11 threads are not needed for Emacs now, and their use is causing + hassles on FreeBSD 10.x. Problem reported by Ashish SHUKLA in: + http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00648.html + * configure.ac: Do not check for C11 threads. Remove unnecessary + fiddling with CPPFLAGS when configuring pthreads. + * src/emacs-module.c (main_thread, check_main_thread) + (module_init): Do not worry about C11 threads. + +2015-12-15 Michael Albinus + + Set utf8 encoding with stty in Tramp + + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Move up uname check. Handle Mac OS X eol encoding. Set utf8 + encoding with stty. + +2015-12-15 Alan Mackenzie + + Tidy up documentation associated with window groups. + + * doc/lispref/windows.texi (Basic Windows): Add an @anchor for "Window + Groups". Correct example function to `window-group-start'. + (Window Start and End, Textual scrolling): Point to the new anchor. State + that (most of) the args in window group functions have the same meaning as for + the corresponding window primitives. + + * doc/lispref/positions.texi (Screen Lines). Same as above. + +2015-12-15 Michael Albinus + + Complete last commit + + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Move uname check up. Handle Mac OS X eol encoding. + +2015-12-15 Michael Albinus + + Handle Mac OS X eol encoding in Tramp + + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Handle Mac OS X eol encoding. + +2015-12-15 YAMAMOTO Mitsuharu + + Fix variable name typo in compute_tip_xy + + * src/w32fns.c (compute_tip_xy): + * src/xfns.c (compute_tip_xy): Modify *root_x instead of *root_y + when `right' is integer. + +2015-12-14 foudfou + + * lisp/ibuffer.el: Add ability to (un-)mark or delete buffers in the region. + +2015-12-14 Tassilo Horn + + Revert "Fix rx matcher overflow without limiting" + + This reverts commit fe27e037663d36be3e5741c2ce86ab4ee8017db1. + +2015-12-14 Alan Mackenzie + + Ispell: Bind isearch-regexp-function to nil around call to isearch..-new-loop + + * lisp/textmodes/ispell.el (ispell-highlight-spelling-error-overlay): bind + isearch-regexp-function to nil around call to isearch-lazy-highligh-new-loop. + +2015-12-14 Tassilo Horn + + Fix rx matcher overflow without limiting + + * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Improve last + change to the regexp without imposing a limit on the length of the + options. + +2015-12-14 Alan Mackenzie + + Enhance ispell-skip-region-alist by generating part of it at runtime. + + * lisp/textmodes/ispell.el (ispell--\\w-filter, ispell--make-\\w-expression) + (ispell--make-filename-or-URL-re): New functions which generate a regexp. + (ispell-skip-region-alist): Remove the bit that matches a filename/URL, etc. + (ispell-begin-skip-region-regexp, ispell-skip-region-list, ispell-message): + Include the result of ispell--make-filename-or-URL-re in regexps. + +2015-12-14 Glenn Morris + + * build-aux/gitlog-to-emacslog: Ignore more pointless merge commits. + +2015-12-14 Alan Mackenzie + + Replace GROUP argument in six window primitives by new functions. + + * doc/lispref/windows.texi (Window Start and End, Textual Scrolling) + * doc/lispref/positions.texi (Screen Lines): Remove optional GROUP argument + from description of six window functions. Add in description of new functions + window-group-start, window-group-end, set-window-group-start, + pos-visible-in-window-group-p, recenter-group and move-to-window-group-line, + together with the six variables indirecting to the pertinent group + functions. + + * src/window.c + * src/keyboard.c: Revert the commit from 2015-11-11 12:02:48, in so far as it + applies to these two files, which added the GROUP argument to six window + primitives. + + * lisp/follow.el (follow-mode): Use updated variable names for the indirected + functions. + + * lisp/isearch.el (isearch-update, isearch-done, isearch-string-out-of-window) + (isearch-back-into-window, isearch-lazy-highlight-new-loop) + (isearch-lazy-highlight-search, isearch-lazy-highlight-update): Replace calls + to window primitives (e.g. window-start) with a GROUP argument by calls to + new functions (e.g. window-group-start). + + * lisp/ispell.el (ispell-command-loop): Replace call to + pos-visible-in-window-p with pos-visible-in-window-group-p. + + * lisp/window.el (window-group-start, window-group-end) + (set-window-group-start, recenter-group, pos-visible-in-window-group-p) + (selected-window-group, move-to-window-group-line): New functions. + (window-group-start-function, window-group-end-function) + (set-window-group-start-function, recenter-group-function) + (pos-visible-in-window-group-p-function, selected-window-group-function) + (move-to-window-group-line-function): New variables. + +2015-12-14 Vitorio Miguel (tiny change) + + * etc/tutorials/TUTORIAL.pt_BR: Fix a typo. (Bug#22165) + +2015-12-13 Eli Zaretskii + + Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25 + +2015-12-13 Tassilo Horn + + Improve regex to not trigger stack overflow + + * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Improve regex in + order not to trigger a stack overflow in regex matcher with unbalanced + brackets (bug#22146). + +2015-12-13 Eli Zaretskii + + Fix visiting files with raw-text + + * src/fileio.c (Finsert_file_contents): Fix setting buffer unibyte + when some stuff was actually read. (Bug#22162) + +2015-12-13 Tassilo Horn + + Fix regex matching keyval labels + + * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Fix regexp + matching keyval labels. + +2015-12-13 Michael Albinus + + * lisp/ido.el (ido-file-name-all-completions-1): Do not raise an error + + ... in case of Tramp. (Bug#20821) + +2015-12-13 Paul Eggert + + Fix performance regression with gcc -O0 + + This fixes the smaller performance hit that I noted in: + https://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00357.html + * src/alloc.c (macro_XPNTR_OR_SYMBOL_OFFSET, macro_XPNTR): + * src/puresize.h (puresize_h_PURE_P) + (puresize_h_CHECK_IMPURE): + New macros, with the old contents of the functions. + * src/alloc.c (XPNTR_OR_SYMBOL_OFFSET, XPNTR): + * src/puresize.h (PURE_P, CHECK_IMPURE): + Use the new macros. Also macros, if DEFINE_KEY_OPS_AS_MACROS. + * src/conf_post.h (ATTRIBUTE_UNUSED): + * src/lisp.h (DEFINE_KEY_OPS_AS_MACROS): New macros. + +2015-12-12 Artur Malabarba + + * lisp/emacs-lisp/package.el (package-unpack): Security check + + Check that we received the package we were offered. + +2015-12-12 Artur Malabarba + + * lisp/emacs-lisp/package.el (package--compile): Don't activate + + `package-unpack' takes care of all activations now (other than + `package-initialize). `package--compile' now only compiles. + +2015-12-12 Eli Zaretskii + + Document the new bindings of and in the minibuffer + + * doc/emacs/mini.texi (Minibuffer History): Describe the new + bindings of and in the minibuffer. + +2015-12-12 Eli Zaretskii + + Document new features of Ido + + * doc/misc/ido.texi (Misc): Document 'C-S-b'. + +2015-12-12 Martin Rudalics + + Fix frame height calculations with added menu bar on Windows (Bug#22105) + + * doc/lispref/frames.texi (Parameter Access): Mention pitfalls + when simultaneously specifying multiple parameters for + `modify-frame-parameters' that all may change the frame's size. + * src/w32fns.c (x_set_menu_bar_lines): Don't set + windows_or_buffers_changed here. + (my_create_tip_window, Fx_show_tip): Call AdjustWindowRect + with third argument false. + * src/w32menu.c (set_frame_menubar): Set + windows_or_buffers_changed here. + * src/w32term.c (x_set_window_size): Determine third argument of + AdjustWindowRect from whether the frame has a menu bar and not + from whether it wants one. + +2015-12-12 Eli Zaretskii + + Document the change in interactive shell mode + + * doc/emacs/misc.texi (Interactive Shell): Document that the + '*shell*' buffer by default displays in a new window. + +2015-12-12 Eli Zaretskii + + Document new features of package.el + + * doc/emacs/package.texi (Package Menu): Document the 'external' + status and the new menu commands. + (Package Installation): Document archive priorities. + + * lisp/emacs-lisp/package.el (package-archive-priorities): Doc fix. + (package-menu-hide-low-priority): Doc fix. + +2015-12-12 Eli Zaretskii + + Update and document new features of xterm support + + * doc/emacs/frames.texi (Text-Only Mouse): Document that + track-mouse is supported by newer xterm versions. + +2015-12-12 Eli Zaretskii + + Document new features of Prettify Mode + + * doc/emacs/programs.texi (Misc for Programs): Document + 'prettify-symbols-compose-predicate' and + 'prettify-symbols-unprettify-at-point'. + + * lisp/progmodes/prog-mode.el (prettify-symbols-alist) + (prettify-symbols-default-compose-p) + (prettify-symbols-compose-predicate) + (prettify-symbols--compose-symbol): Doc fixes. + +2015-12-12 Eli Zaretskii + + Document multi-mode indentation facilities + + * doc/lispref/text.texi (Mode-Specific Indent): Document + 'prog-indentation-context', 'prog-first-column', and 'prog-widen'. + + * lisp/progmodes/prog-mode.el (prog-indentation-context) + (prog-widen): Doc fixes. + +2015-12-12 Eli Zaretskii + + Document 'vc-refresh-state' + + * doc/emacs/maintaining.texi (Version Control): Document + 'vc-refresh-state'. + + * lisp/vc/vc-hooks.el (vc-refresh-state): Doc fix. + +2015-12-12 Eli Zaretskii + + Fix echo for "C-u" + + * src/keyboard.c (command_loop_1): Undo last change. It caused + duplicate echo of C-u. (Bug#22107) + +2015-12-11 Eli Zaretskii + + Avoid errors when creating files under SVN in new directory + + * lisp/vc/vc-svn.el (vc-svn-registered): Use + file-accessible-directory-p, to avoid cd'ing to a non-existing + directory, which signals an error on some systems. (Bug#21984) + (vc-svn-checkin): Call log-edit-extract-headers with 2 arguments. + Use declare-function to avoid byte-compiler warnings. + +2015-12-11 Eli Zaretskii + + Improve Lua support in etags + + * lib-src/etags.c (Lua_functions): Skip spaces before looking for + "function". + + * etc/NEWS: Mention improved Lua support by 'etags'. + + * test/etags/lua-src/test.lua (test): Add tests for indented + function definitions. + * test/etags/ETAGS.good_1: + * test/etags/ETAGS.good_2: + * test/etags/ETAGS.good_3: + * test/etags/ETAGS.good_4: + * test/etags/ETAGS.good_5: + * test/etags/ETAGS.good_6: + * test/etags/CTAGS.good: Adapt to the modified Lua tests. + +2015-12-11 Eli Zaretskii + + Fix 'this-command-keys' wrt prefix argument + + * src/keyboard.c (command_loop_1): Restore the feature whereby C-u + was part of this-command-keys, but not of this-single-command-keys. + (Bug#22107) + + * lisp/simple.el (internal-echo-keystrokes-prefix): Add + commentary about the function's return value. + +2015-12-11 Eli Zaretskii + + * lisp/files.el (load-library): Doc fix. (Bug#22140) + +2015-12-11 Eli Zaretskii + + Improve and document Ruby support in 'etags' + + * lib-src/etags.c (Ruby_suffixes): Add ".ruby". + (Ruby_functions): Support "module" and overloaded operators. + (Ruby_help): Mention "module". + + * test/etags/ruby-src/test.rb: + * test/etags/ruby-src/test1.ruby: New files. + * test/etags/Makefile (RBSRC): New tests. + (SRCS): Add ${RBSRC}. + * test/etags/ETAGS.good_1: + * test/etags/ETAGS.good_2: + * test/etags/ETAGS.good_3: + * test/etags/ETAGS.good_4: + * test/etags/ETAGS.good_5: + * test/etags/ETAGS.good_6: + * test/etags/CTAGS.good: Adapt to the new Ruby tests. + + * doc/man/etags.1: Mention Ruby support. + * etc/NEWS: Mention Ruby support. + +2015-12-11 Xi Lu + + Initial support for Ruby in 'etags' + + * lib-src/etags.c : New variable. + (lang_names): Add an entry for Ruby. + (Ruby_functions): New function. (Bug#22116) + +2015-12-11 Eli Zaretskii + + Clarify documentation of 'modify-frame-parameters' + + * doc/lispref/frames.texi (Parameter Access): Clarify what "ignored + PARMs" mean for 'modify-frame-parameters'. + + * src/frame.c (Fmodify_frame_parameters): Clarify what "ignored + PARMs" mean for this function. (Bug#22104) + +2015-12-11 Eli Zaretskii + + Fix setting buffer unibyte when reading from a device + + * src/fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte + to make a (possibly non-empty) buffer unibyte. (Bug#22096) + +2015-12-11 Eli Zaretskii + + Clarify documentation of 'values' + + * doc/lispref/eval.texi (Eval): Clarify that 'values' are not + updated by any evaluation commands in 'lisp-interaction-mode'. + (Bug#22056) + +2015-12-11 Anders Lindgren + + Fixed subversion vc error when opening file in new directory (bug#21984). + + * lisp/vc/vc-svn.el (vc-svn-registered): Check if directory exists. + +2015-12-09 Eli Zaretskii + + Yet another fix for when point ends up in invisible text + + * src/xdisp.c (redisplay_window): When someone forced + window-start, and honoring that failed to show the cursor, try + moving out of invisible text, before falling back to the middle of + the window. (Bug#22098) + +2015-12-09 Michael Albinus + + Fix error in Tramp perl script for cygwin + + * lisp/net/tramp-sh.el (tramp-perl-file-truename): Do not raise an + error if file doesn't exist. + +2015-12-09 YAMAMOTO Mitsuharu + + Remove font workaround for limited outdated versions + + * src/macfont.m (mac_font_descriptor_get_adjusted_weight): Remove + workaround for HiraginoSans-W7 on OS X 10.11 and 10.11.1. + +2015-12-09 Anders Lindgren + + Don't add "." to load path (bug#21104) + + When configured with --enable-locallisppath=no, which is the + default for OS X, the load-path incorrectly was populated with ".". + + * src/lread.c (init_lread): Don't call `decode_env_path' when + PATH_SITELOADSEARCH is empty. + +2015-12-08 Artur Malabarba + + * lisp/emacs-lisp/package.el (package--with-response-buffer): + + Search for the blank-line in the right buffer. + +2015-12-08 Glenn Morris + + * test/automated/simple-test.el (undo-auto-boundary-timer): Update + for recent change. + +2015-12-08 Glenn Morris + + Fix some display-warning usage. + + * lisp/files.el (hack-local-variables, hack-dir-local-variables): + * lisp/calendar/diary-lib.el (diary-include-files, diary-sexp-entry): + * lisp/calendar/holidays.el (calendar-holiday-list): + * lisp/mail/rmailout.el (rmail-output-read-file-name): + Fix display-warning usage. + +2015-12-08 Glenn Morris + + * lisp/calendar/cal-html.el: Require diary-lib. + + (cal-html-list-diary-entries): Handle no diary. (Bug#21994) + +2015-12-08 Thomas Fitzsimmons + + Add Obsolete-since header to eudcb-ph.el + + * lisp/obsolete/eudcb-ph.el: Add Obsolete-since header. + +2015-12-07 Paul Eggert + + Spelling fixes + + * doc/misc/calc.texi (Predefined Units): Use the bland modern + scientific style for spelling the units “ampere” and + “angstrom” rather than the older style “Ampere” and + “Ångstrom”. The latter spelling was wrong anyway (it should + have been “Ångström”). + * lisp/emacs-lisp/ert.el (ert--explain-equal-rec): + Fix misspelling of ‘atom’ in code. + +2015-12-07 Eli Zaretskii + + Improve documentation of kill commands + + * lisp/simple.el (region-extract-function, delete-backward-char) + (delete-forward-char, kill-region, copy-region-as-kill) + (kill-ring-save): Better document the optional argument REGION in + the doc strings. Mention in the doc strings that text put in the + kill-ring can be filtered by 'filter-buffer-substring'. + + * doc/lispref/text.texi (Kill Functions): Mention that functions + described in this subsection can filter text they put in the + kill-ring. Add a cross-reference to "Buffer Contents" and an + index entry. Document the optional argument 'region' and its + effect. + (Bug#21315) + +2015-12-07 Alan Mackenzie + + Further progress making Isearch, Ispell, Replace work with Follow Mode. + + * lisp/follow.el: (follow-mode): Remove references to sit*-for-function, which + no longer exists. Add follow-post-command-hook to three special purpose + hooks at setup, and remove them at tear down. + + * lisp/isearch.el: (isearch-update): invoke isearch-update-post-hook before + isearch-lazy-highlight-new-loop. + (isearch-lazy-highlight-new-loop): Restore this function to what it previously + was, merging the functionality of isearch-lazy-highlight-maybe-new-loop into + it. + (isearch-lazy-highlight-maybe-new-loop): function removed. + + * lisp/replace.el: (replace-update-post-hook): New hook variable. + (perform-replace): Add second (nil) argument to looking-back. Invoke + replace-update-post-hook before calling replace-highlight. + + * lisp/textmodes/ispell.el: (ispell-update-post-hook): New hook variable. + (ispell-command-loop): invoke ispell-update-post-hook. Add GROUP argument to + call of pos-visible-in-window-p. + (ispell-display-buffer): Place *Choices* window at the top of the last window + in a window group. + +2015-12-07 Alan Mackenzie + + Amend doc of `mapconcat': it can take sequences, not merely strings. + + * doc/lispref/functions.texi (Mapping Functions): Amend the doc of `mapconcat' + to say that SEPARATOR and the results from FUNCTION may be any character + sequences, not just strings. Add an @xref to "Sequences Arrays Vectors". + +2015-12-07 Michael Albinus + + Fix an utf8 problem for Tramp on BSD + + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Make lax check for utf8. + (tramp-get-remote-locale): Add "en_US.UTF-8" as candidate. + +2015-12-07 Thomas Fitzsimmons + + Make eudcb-ph.el obsolete + + * doc/misc/eudc.texi: Bump version to 1.40.0. + Remove PH/QI sections and mentions. + * lisp/obsolete/eudcb-ph.el: Make obsolete. + * lisp/net/eudc-vars.el (eudc-known-protocols): Remove ph. + (eudc-ph-bbdb-conversion-alist): Make obsolete. + * etc/NEWS: Mention this. (Bug#21191) + +2015-12-07 Paul Eggert + + Remove overenthusiastic eassert + + * src/lisp.h (XSYMBOL): Remove eassert incorrectly added in + previous change. It breaks on MS-Windows --with-wide-int. + Problem reported by Eli Zaretskii in: + http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00275.html + +2015-12-06 Paul Eggert + + Pacify gcc -Wparentheses + + * src/xdisp.c (row_containing_pos): Reparenthesize. + +2015-12-06 Paul Eggert + + Port mod-test to 32-bit Emacs --without-wide-int + + * modules/mod-test/test.el (mod-test-sum-test): + Bring back the 2**29 tests, but port them to 32-bit Emacs + --without-wide-int. + +2015-12-06 Michael Albinus + + Fix minor Tramp problems found on BSD + + * lisp/net/tramp-sh.el (tramp-perl-file-truename): Do not append + trailing slash. Quote apostrophes. + (tramp-sh-handle-file-truename): Do not append trailing slash in + the "ls" case. + (tramp-get-ls-command-with-w-option): New defun. + (tramp-do-file-attributes-with-ls) + (tramp-do-directory-files-and-attributes-with-stat): Use it. + + * test/automated/tramp-tests.el + (tramp-test31-special-characters-with-perl) + (tramp-test31-special-characters-with-ls) + (tramp-test32-utf8-with-perl, tramp-test32-utf8-with-ls): + Suppress also readlink. + +2015-12-06 Eli Zaretskii + + Fix cursor display when invisible text is at line beginning + + * src/xdisp.c (redisplay_window): When scrolling fails to show + point, prefer using the desired matrix if possible for finding the + fallback glyph row for displaying the cursor. (Bug#22098) + (row_containing_pos): Exit the loop as soon as we hit the first + disabled glyph row. Otherwise we risk accessing garbled data and + departing to the no-no land. + +2015-12-06 Paul Eggert + + Improve module interface when WIDE_EMACS_INT + + * src/emacs-module.c (plain_values): New constant. + (module_nil): Now a constant. + (Finternal_module_call, value_to_lisp_bits, lisp_to_value_bits) + (syms_of_module): Use if, not #ifdef, so that both sides are + checked at compile-time, and so that GCC doesn’t complain + about an unused var in the typical case. Also, depend on + plain_values, not on WIDE_EMACS_INT; the code shouldn’t assume + that WIDE_EMACS_INT implies !USE_LSB_TAG. + (value_to_lisp_bits, lisp_to_value_bits): New functions. + Sign-extend integers rather than zero-extending them, as small + negative integers are more likely. + (value_to_lisp, lisp_to_value): Rewrite in terms of the new *_bits + functions. + (HAVE_STRUCT_ATTRIBUTE_ALIGNED): Define to 0 if not already defined. + (mark_modules): Remove. All uses removed. + (lisp_to_value): Don’t assume Fcons returns a pointer aligned + to GCALIGNMENT. + (syms_of_module): Check that module_nil converts to Qnil. + * src/lisp.h (lisp_h_XSYMBOL, XSYMBOL): Use signed conversion, since + we prefer signed to unsigned when either will do. + (TAG_PTR): Sign-extend pointers when USE_LSB_TAG, as this is + a bit better for emacs-module.c. + +2015-12-06 Paul Eggert + + Port mod-test to x86-64 GNU/Linux running 32-bit + + * modules/mod-test/test.el (mod-test-sum-test): + Don’t attempt to match descriptions to operating systems. + It didn’t work on Fedora x86-64 running a 32-bit executable, + and it’s not worth the trouble anyway. + Port to 32-bit platforms by removing an assumption about + fixnum widths. + +2015-12-06 Michael Albinus + + Fix auto-revert-tests.el when filenotify isn't used + + * test/automated/auto-revert-tests.el (auto-revert--wait-for-revert): + Make it working also when filenotify isn't used. + +2015-12-06 Juri Linkov + + * lisp/textmodes/ispell.el (ispell-highlight-spelling-error-overlay): + + Let-bind isearch-regexp-function to nil. (Bug#22097) + +2015-12-05 Artur Malabarba + + * lisp/emacs-lisp/package.el: Don't install bad signatures (bug#22089) + + (package--with-response-buffer): NOERROR and ERROR-FORM only + handle connection errors. + (bad-signature): New error type. + (package--check-signature-content): Use it. + (package--check-signature): Properly distinguish connection errors + from bad-signature errors. Do the check for + `package-check-signature' `allow-unsigned' here instead of forcing + the callbacks to do it. Add a new argument, UNWIND. + (package--download-one-archive, package-install-from-archive): + Update usage of `package--check-signature'. + +2015-12-05 Ulf Jasper + + Fix Bug#22092. + + * lisp/calendar/icalendar.el (icalendar--get-unfolded-buffer): + Clean up inconsistent line endings. (Bug#22092) + (icalendar--clean-up-line-endings): New. + * test/automated/icalendar-tests.el (icalendar-real-world): Add test + for Bug#22092. + +2015-12-05 Eli Zaretskii + + Document 'bookmark-set-no-overwrite' + + * doc/emacs/regs.texi (Bookmarks): Document the new command + 'bookmark-set-no-overwrite' and its keybinding. + +2015-12-05 Eli Zaretskii + + Document new binding of 'mouse-buffer-menu' + + * doc/emacs/buffers.texi (Buffer Menus): 'mouse-buffer-menu' is + now also on C-F10. + +2015-12-05 Eli Zaretskii + + Initial documentation of dynamic modules + + * doc/lispref/loading.texi (Dynamic Modules): New section with + initial documentation for dynamic modules. + * doc/lispref/elisp.texi (Top): Add "Dynamic Modules" to the + detailed menu + + * etc/NEWS: Fix typos in dynamic modules' entry. + +2015-12-05 Artur Malabarba + + Remove copyright statements from trivial test files + +2015-12-05 Eli Zaretskii + + Add "Preliminaries" section to etc/DEBUG + + * etc/DEBUG: Add the "Preliminaries" section for GDB beginners. + Most of the content was suggested by Phillip Lord + . Remove the section about debugging + with the Visual Studio, as building Emacs with the Microsoft + compilers is no longer supported. Minor fixes in some other + sections. + +2015-12-05 Alex Dunn (tiny change) + + Improve parsing of version strings + + * lisp/subr.el (version-regexp-alist): Allow "." as priority separator + (version-to-list): More helpful error messages. + (version-to-list): ".5" is valid (update docstring). Make + "22.8X3" invalid, as the doc string says. + + * test/automated/subr-tests.el (ert-test-version-parsing): New + tests for version string processing. + +2015-12-05 Eli Zaretskii + + Fix documentation of 'undo' changes + + * doc/lispref/text.texi (Undo): Minor wording changes. Use US + English conventions for spelling and whitespace between sentences. + + * etc/NEWS: Fix wording and spelling of undo-related entries. + Mark them as documented. + +2015-12-05 Glenn Morris + + * lisp/net/net-utils.el: Small improvements. + + (net-utils--executable-find-sbin): New function. + (ifconfig-program): Check sbin directories. + Fallback to "ip". (Bug#22091) + (ifconfig-program-options): Check the actual program in use. + (arp-program): Check sbin directories. + +2015-12-04 (tiny change) Arash Esbati (tiny change) + + Fix wrong-type-argument integer-or-marker-p nil error + + * lisp/textmodes/reftex-auc.el (reftex-what-index-tag): + Fix (wrong-type-argument integer-or-marker-p nil) error (bug#22077). + +2015-12-04 Alan Mackenzie + + Merge branch 'scratch/follow' of /home/acm/emacs/emacs.git/emacs-25 into scratch/follow + + Merge necessitated by a rebase operation. + +2015-12-04 Alan Mackenzie + + lisp/isearch.el: Eliminate macro isearch-call-message, replacing with funcall. + +2015-12-04 Alan Mackenzie + + First commit to scratch/follow. Make Isearch work with Follow Mode, etc. + + doc/lispref/window.texi (Basic Windows): Add paragraph defining "Group of + Windows" and new @defun selected-window-group. + (Window Start and End): Describe new &optional parameter GROUP and + ...-group-function for window-start, window-end, set-window-start, and + pos-visible-in-window-p. + (Textual Scrolling) Describe the same for recenter. + doc/lispref/positions.texi (Screen Lines): Describe the same for + move-to-window-line. + + src/window.c (Fwindow_start, Fwindow_end, Fset_window_start) + (Fpos_visible_in_window_p, Frecenter, Fmove_to_window_line): To each, add ar + new optional parameter "group". At the beginning of each, check whether the + corresponding ...-group-function is set to a function, and if so execute this + function in place of the normal processing. + (syms_of_window): Define symbols for the six new variables below. + (window-start-group-function, window-end-group-function) + (set-window-start-group-function, recenter-group-function) + (pos-visible-in-window-p-group-function, move-to-window-line-group-function): + New permanent local buffer local variables. + src/keyboard.c (Fposn_at_point): Add extra parameter in call to + Fpos_visible_in_window_p. + + lisp/window.el (selected-window-group-function): New permanent local buffer + local variable. + (selected-window-group): New function. + + lisp/follow.el (follow-mode): Set the ...-group-function variables at mode + enable, kill them at mode disable. Add/remove follow-after-change to/from + after-change-functions. + (follow-start-end-invalid): New variable. + (follow-redisplay): Manipulate follow-start-end-invalid. + (follow-after-change, follow-window-start, follow-window-end) + (follow-set-window-start, follow-pos-visible-in-window-p) + (follow-move-to-window-line, follow-sit-for): New functions. + + lisp/isearch.el (isearch-call-message): New macro. + (isearch-update, with-isearch-suspended, isearch-del-char) + (isearch-search-and-update, isearch-ring-adjust): Invoke above new macro. + (with-isearch-suspended): Rearrange code such that isearch-call-message is + invoked before point is moved. + (isearch-message): Add comment about where point must be at function call. + (isearch-search): Remove call to isearch-message. + (isearch-lazy-highlight-window-group): New variable. + (isearch-lazy-highlight-new-loop): Unconditionally start idle timer. Move + the battery of tests to ... + (isearch-lazy-highlight-maybe-new-loop): New function, started by idle timer. + Note: (sit-for 0) is still called. + (isearch-lazy-highlight-update): Check membership of + isearch-lazy-highlight-window-group. Don't set the `window' overlay + property. + (isearch-update, isearch-done, isearch-string-out-of-window) + (isearch-back-into-window, isearch-lazy-highlight-maybe-new-loop) + (isearch-lazy-highlight-search, isearch-lazy-highlight-update) + (isearch-lazy-highlight-update): Call the six amended primitives (see + src/window.c above) with the new `group' argument set to t, to cooperate + with Follow Mode. + +2015-12-04 Stefan Monnier + + * lisp/emacs-lisp/ert.el: Prefer pcase over cl-typecase + + * lisp/emacs-lisp/ert.el (ert--should-error-handle-error) + (ert--explain-format-atom, ert--explain-equal-rec) + (ert--print-backtrace, ert-test-result-type-p, ert-select-tests) + (ert--insert-human-readable-selector): Prefer pcase over cl-typecase. + +2015-12-04 Artur Malabarba + + * lisp/character-fold.el: Remove special case-folding support + + (character-fold-to-regexp): Remove special code for + case-folding. Char-fold search still respects the + `case-fold-search' variable (i.e., f matches F). This only + removes the code that was added to ensure that f also matched + all chars that F matched. For instance, after this commit, f + no longer matches 𝔽. + + This was necessary because the logic created a regexp with + 2^(length of the string) redundant paths. So, when a very + long string "almost" matched, Emacs took a very long time to + figure out that it didn't. This became particularly relevant + because isearch's lazy-highlight does a search bounded by (1- + match-end) (which, in most circumstances, is a search that + almost matches). A recipe for this can be found in bug#22090. + +2015-12-04 Stefan Monnier + + * lisp/emacs-lisp/cl-macs.el (character): Can't be negative + + Fixes (bug#21701) + +2015-12-04 Daiki Ueno + + lisp/gnus/qp.el: Don't replace "from " at bol + + * lisp/gnus/qp.el (quoted-printable-encode-region): Bind `case-fold-search' + to nil when looking for "^From ". Problem reported by Simon Josefsson. + +2015-12-03 Phillip Lord + + Externalize some symbols in undo-auto + + * doc/lispref/text.texi: Update symbols. + * lisp/simple.el (undo-auto--amalgamate, + undo-auto--current-boundary-timer): Make symbols public. + * src/cmds.c (Fself_insert_command,Fdelete_char): Call + updated symbol. + +2015-12-03 Stefan Monnier + + * lisp/emacs-lisp/smie.el (smie-next-sexp): Fix BOB "token" + +2015-12-03 Michael Albinus + + Some error message improvements in tramp-sh.el + + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Suppress error messages for "mesg" and "biff" calls. + (tramp-get-remote-path): Ignore errors when expanding + `tramp-own-remote-path'. Raise a warning instead. + +2015-12-03 Eli Zaretskii + + Document 'nacl' value for 'system-type' + + * doc/lispref/os.texi (System Environment): Document the 'nacl' + value of 'system-type'. + +2015-12-03 Eli Zaretskii + + Document 'window-max-chars-per-line' + + * doc/lispref/windows.texi (Window Sizes): Document + 'window-max-chars-per-line'. + +2015-12-03 Artur Malabarba + + Fix some file headers for the purpose of `package--builtins' + + * lisp/emacs-lisp/cl-preloaded.el + * lisp/emacs-lisp/eieio-compat.el + * lisp/net/sasl-scram-rfc.el: Add a "Package:" header + + * lisp/ielm.el: Fix summary line. + +2015-12-03 Artur Malabarba + + * lisp/emacs-lisp/package.el (package-unpack): Load before compiling + + Reload any previously loaded package files before compiling + the package (also reload the same files after compiling). + This ensures that we have the most recent definitions during + compilation, and avoids generating bad elc files when a macro + changes and it is used in a different file from the one it's + defined in. + +2015-12-03 Artur Malabarba + + * lisp/emacs-lisp/package.el: Refactor package activation code + + (package-activate): Move code that activates dependencies into + package-activate-1. + (package--load-files-for-activation): New function. + (package-activate-1): Add code for (optionally) activating + dependencies, and move file-loading code into + `package--load-files-for-activation'. + +2015-12-03 Eli Zaretskii + + Document new font-related functionality + + * doc/lispref/display.texi (Low-Level Font): Document + 'default-font-width', 'default-font-height', 'window-font-width', + and 'window-font-height'. + + * etc/NEWS: Move entries for 'default-font-width', + 'default-font-height', 'window-font-width', and 'window-font-height' + to their place and mark them documented. + +2015-12-03 Eli Zaretskii + + Fix documentation and implementation of 'directory-name-p' + + * lisp/files.el (directory-name-p): Modify to recognize + backslashes on MS-Windows and MS-DOS. Adjust the doc string + accordingly. Use '=', not char-equal, for comparison, as + letter-case cannot possibly be an issue here. + + * doc/lispref/files.texi (Directory Names): Move the documentation + of directory-name-p here from "Relative File Names". Update the + description per the changes in implementation. + + * etc/NEWS: Move the entry for 'directory-name-p' to its proper + place and mark it documented. + +2015-12-02 Eli Zaretskii + + Minor copyedit in Emacs manual + + * doc/emacs/search.texi (Lax Search): Make wording about character + folding by default less definitive. (Bug#22043) + +2015-12-02 Eli Zaretskii + + More emacs-module.c fixes for wide ints + + * src/emacs-module.c (value_to_lisp) [WIDE_EMACS_INT]: Use + unsigned data types to manipulate pointers, to avoid sign + extension coming after us with a vengeance. + + * modules/mod-test/test.el (mod-test-sum-test): Add tests for + Emacs with wide ints that verify integer values near the critical + value that requires us to switch to a cons cell. + +2015-12-02 Stephen Leake + + Fix bug#22069 in cl-generic.el + + * lisp/emacs-lisp/cl-generic.el (cl-no-method): Remove %S; this string is + not run thru `format'. + +2015-12-02 Dmitry Gutov + + APPEND etags--xref-backend to xref-backend-functions + + * lisp/progmodes/xref.el (xref-backend-functions): + Use APPEND when adding the default element + (http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00061.html). + +2015-12-01 Eli Zaretskii + + More accurate documentation of lax whitespace matching + + * lisp/isearch.el (isearch-forward-word, isearch-forward-symbol) + (word-search-backward, word-search-forward) + (word-search-backward-lax, word-search-forward-lax): Mention in + doc strings that toggling lax whitespace matching has no effect on + these commands. + + * doc/emacs/search.texi (Word Search, Symbol Search): Clarify that + lax whitespace matching has no effect on these commands. + +2015-12-01 Eli Zaretskii + + Fix emacs-module.c for wide ints + + * src/emacs-module.c (lisp_to_value): Compare the produced value + with the original Lisp object, not with the one potentially + converted into a Lisp_Cons. Fixes assertion violations when + working with integers larger than fit into a 32-bit value. + + * modules/mod-test/test.el (mod-test-sum-test): Add tests for + large integers, to test --with-wide-int. + +2015-12-01 Eli Zaretskii + + Document 'directory-files-recursively' + + * lisp/files.el (directory-files-recursively): Doc fix. Rename + the argument MATCH to REGEXP, to be more explicit about its form. + + * doc/lispref/files.texi (Contents of Directories): Improve the + documentation of 'directory-files-recursively'. Add + cross-references. + + * etc/NEWS: Move the entry for 'directory-files-recursively' to + its place and mark it documented. + +2015-12-01 Eli Zaretskii + + Document 'inhibit-read-only' property + + * doc/lispref/text.texi (Special Properties): Describe the new + 'inhibit-read-only' text property. Add cross-reference to where + read-only buffers are described. + * doc/lispref/buffers.texi (Read Only Buffers): Mention that + 'inhibit-read-only' property exempts text from being read-only. + Add cross-reference to "Special Properties". + + * etc/NEWS: Move the entry about 'inhibit-read-only' property to + its place and mark it documented. + +2015-12-01 Artur Malabarba + + * lisp/emacs-lisp/package.el: Update header comments + +2015-12-01 Artur Malabarba + + * lisp/character-fold.el: Add back multi-char matching + + (character-fold-to-regexp): Uncomment recently commented code + and make the algorithm "dummer" by not checking every possible + combination. This will miss some possible matches, but it + greatly reduces regexp size. + + * test/automated/character-fold-tests.el + (character-fold--test-fold-to-regexp): Comment out test of + functionality no longer supported. + +2015-12-01 Xue Fuqiao + + * doc/emacs/ack.texi (Acknowledgments): Update. + +2015-12-01 Michael Albinus + + Check `file-remote-p' over absolute files names in files.el + + * lisp/files.el (directory-files-recursively) + (get-free-disk-space): Check `file-remote-p' over absolute files names. + +2015-12-01 Andreas Schwab + + * src/lread.c (syms_of_lread): Doc fix. + +2015-12-01 Dmitry Gutov + + Don't mistake certain JS method calls for keywords + + * lisp/progmodes/js.el (js--ctrl-statement-indentation): + Braceless keyword can't come after a period (bug#22063). + +2015-12-01 David Reitter + + Read frame_title_format from buffer-local variable for NS port + + * src/nsfns.m (x_implicitly_set_name): Read frame-title-format and + icon-title-format variables from buffer in appropriate window. + (Bug#22048) + +2015-12-01 Juri Linkov + + * lisp/replace.el (occur-engine): Count matches in empty lines. + + (Bug#22062) + +2015-11-30 Aurélien Aptel + + * src/emacs-module.h: Fix finalizer typedef for C++11 + + C++11 standard doesn't allow exception-specification in typedef. + The workaround is to declare a dummy function prototype and use + decltype on it. + +2015-11-30 Eli Zaretskii + + Fix last change + + * src/emacs-module.c (lisp_to_value, value_to_lisp) + [WIDE_EMACS_INT]: Avoid compiler warnings. + +2015-11-30 Stefan Monnier + + Rely on conservative stack scanning to find "emacs_value"s + + * src/emacs-module.c (struct emacs_value_tag) + (struct emacs_value_frame, struct emacs_value_storage): Remove. + (value_frame_size): Remove constant. + (struct emacs_env_private): Use Lisp_Object for non_local_exit info. + (lisp_to_value): Remove first arg. + (module_nil): New constant. + Use it instead of NULL when returning an emacs_value. + (module_make_function): Adjust to new calling convention of + Qinternal_module_call. + (DEFUN): Receive args in an array rather than a list. + Use SAFE_ALLOCA rather than xnmalloc. Skip the lisp_to_value loop when + we don't have WIDE_EMACS_INT. Adjust to new type of non_local_exit info. + (module_non_local_exit_signal_1, module_non_local_exit_throw_1): + Adjust to new type of non_local_exit info. + (ltv_mark) [WIDE_EMACS_INT]: New constant. + (value_to_lisp, lisp_to_value): Rewrite. + (initialize_frame, initialize_storage, finalize_storage): Remove functions. + (allocate_emacs_value): Remove function. + (mark_modules): Gut it. + (initialize_environment): Don't initialize storage any more. + Keep the actual env object on Vmodule_environments. + (finalize_environment): Don't finalize storage any more. + (syms_of_module): Initialize ltv_mark and module_nil. + + * src/emacs-module.h (emacs_value): Make it more clear that this type + is really opaque, including the fact that NULL may not be valid. + + * modules/mod-test/mod-test.c (Fmod_test_signal, Fmod_test_throw): + Don't assume that NULL is a valid emacs_value. + +2015-11-30 Eli Zaretskii + + Yet another doc improvement for search commands + + * doc/emacs/search.texi (Word Search, Symbol Search) + (Regexp Search): Document commands that don't support lax + whitespace matching or character folding. + (Nonincremental Search): Mention the search commands that can be + invoked from the menu bar. + + * lisp/isearch.el (isearch-define-mode-toggle-word) + (isearch-define-mode-toggle-symbol) + (isearch-define-mode-toggle-character-fold): Note in the doc + string that turning these on exits the regexp mode. + (isearch-forward-regexp, isearch-forward-word) + (isearch-forward-symbol, isearch-backward-regexp) + (word-search-backward, word-search-forward) + (word-search-backward-lax, word-search-forward-lax): State in the + doc string which commands don't support character folding and/or + lax-whitespace matching. + +2015-11-30 Martin Rudalics + + Run `window-size-change-functions' also when reading from minibuffer + + * src/xdisp.c (redisplay_internal): Run `window-size-change-functions' + also when reading from minibuffer. + +2015-11-30 Ulf Jasper + + Fix scrambling of html-rendered item buffers + + * lisp/net/newst-treeview.el (newsticker--treeview-render-text): Fix + scrambling of contents by wrapping call to html-renderer in + save-selected-window. + +2015-11-30 Paul Eggert + + Fix font typo in previous doc fix. + +2015-11-30 Paul Eggert + + A bit more security doc, esp. file local vars + + * doc/emacs/emacs.texi (Top): + * doc/emacs/misc.texi (Miscellaneous Commands): + Refer to new Host Security section. + (Host Security): New section. + * doc/lispref/os.texi (Security Considerations): + Mention file local variables. + +2015-11-30 Artur Malabarba + + * lisp/character-fold.el: Comment out branching code + + (character-fold-to-regexp): Comment out code that uses multi-char + table. The branching caused by this induces absurdly long regexps, + up to 10k chars for as little as 25 input characters. + +2015-11-30 Paul Eggert + + Spelling and grammar fixes + +2015-11-30 Dmitry Gutov + + Make lisp-completion-at-point a wrapper instead of an alias + + * lisp/progmodes/elisp-mode.el (lisp-completion-at-point): + Turn into an obsolete wrapper around elisp-completion-at-point + (bug#20455). + +2015-11-29 Artur Malabarba + + * lisp/isearch.el (isearch-search-fun-default): Nicer error + + message when the search fails. + +2015-11-29 Dmitry Gutov + + Update menu-bar-goto-uses-etags-p for the current xref API + + * lisp/menu-bar.el (menu-bar-goto-uses-etags-p): Consult + xref-backend-functions, instead of now-nonexistent + xref-find-function. + +2015-11-29 Artur Malabarba + + * lisp/isearch.el (isearch-define-mode-toggle): Advertise binding + +2015-11-29 Artur Malabarba + + * lisp/menu-bar.el: Use folding in searches + + (nonincremental-search-forward): Use `isearch-search-fun-default' + to determine the search function. + (nonincremental-search-backward) + (nonincremental-repeat-search-forward) + (nonincremental-repeat-search-backward): Use it. + +2015-11-29 Artur Malabarba + + * lisp/menu-bar.el (menu-bar-goto-uses-etags-p): Fix a warning + +2015-11-29 Artur Malabarba + + * lisp/character-fold.el (character-fold-to-regexp): Be careful + + not to return huge regexps. + +2015-11-29 Eli Zaretskii + + Improve documentation of string-collate-* functions + + * doc/lispref/strings.texi (Text Comparison): Improve wording and + indexing of 'string-collate-equalp' and 'string-collate-lessp'. + + * etc/NEWS: Move the entry of 'string-collate-equalp' and + 'string-collate-lessp' to "Lisp Changes" section and mark it as + documented. + +2015-11-29 Eli Zaretskii + + Document truncate-string-ellipsis + + * doc/lispref/display.texi (Size of Displayed Text): Document + 'truncate-string-ellipsis'. + + * lisp/international/mule-util.el (truncate-string-ellipsis): Doc fix. + (truncate-string-to-width): Mention in the doc string that the + default for ELLIPSIS comes from 'truncate-string-ellipsis'. + + * etc/NEWS: Move the 'truncate-string-ellipsis' entry to the "Lisp + Changes" section. + +2015-11-29 Eli Zaretskii + + Fix confusion wrt character folding in the Emacs manual + + * doc/emacs/search.texi (Nonincremental Search, Regexp Search): + Document that invoking search-forward/backward and + re-search-forward/backward supports only case folding, but not the + rest of the lax-search features. Reported by Mike Kupfer + . + +2015-11-29 Ken Brown + + Update mod-test-sum-test + + * modules/mod-test/test.el (mod-test-sum-test): Update to + accommodate the lack of dladdr on Cygwin. + +2015-11-29 Alan Mackenzie + + Byte compiler: Catch missing argument to `funcall'. Fixes bug#22051. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-funcall): When there's no argument + to `funcall', (i) Output an error message; (ii) Generate code to signal a + `wrong-number-of-arguments' error. + +2015-11-29 Martin Rudalics + + * lisp/window.el (split-window): Don't sanitize sizes when SIZE is non-nil. + +2015-11-28 Artur Malabarba + + * lisp/character-fold.el (character-fold-to-regexp) + + Warn about using long strings. + + * test/automated/character-fold-tests.el + (character-fold--test-lax-whitespace) + (character-fold--test-consistency): Reduce string size for tests. + +2015-11-28 Eli Zaretskii + + Document renaming of x-select-enable-* variables + + * doc/emacs/killing.texi (Clipboard): Rename + x-select-enable-clipboard to select-enable-clipboard and + x-select-enable-primary to select-enable-primary. Update index + entries. + + * etc/NEWS: Mark entry as documented. + +2015-11-28 Eli Zaretskii + + Document the shorthand hints displayed by M-x + + * doc/emacs/m-x.texi (M-x): Document the numeric meaning of + suggest-key-bindings. Document the shorthand hints for commands + that have no key bindings. Document that M-x completion ignores + obsolete commands. + + * etc/NEWS: Move the M-x entry to "Editing Changes" and mark it as + documented. + +2015-11-28 Eli Zaretskii + + Update docs of character folding + + * doc/emacs/search.texi (Lax Search): Update the description of + character folding for the latest changes. + +2015-11-28 Artur Malabarba + + * lisp/character-fold.el: Also play nice with case-folding + + (character-fold-to-regexp): Take `case-fold-search' into account. + +2015-11-28 Artur Malabarba + + * lisp/character-fold.el: Add support for multi-char matches + + (character-fold-table): Now has an extra-slot. This is a second + char-table that holds multi-character matches. See docstring for + details. + (character-fold-to-regexp): Can build branching regexps when a + character's entry the extra slot of `character-fold-table' matches the + characters that succeed it. + +2015-11-28 Artur Malabarba + + * lisp/character-fold.el: Code simplifications + + (character-fold-table): Reduce the scope of a variable. + (character-fold-to-regexp): Change logic to work directly on the + input string. It's a little easier to understand, probably + faster, and sets us up for implementing multi-char matches. + + * test/automated/character-fold-tests.el + (character-fold--test-fold-to-regexp): New test. + +2015-11-28 Eli Zaretskii + + Document changes in "C-h l" + + * doc/emacs/help.texi (Misc Help): Document the changes in "C-h l". + + * etc/NEWS: mark "C-h l" changes as documented. + +2015-11-28 Eli Zaretskii + + Finalize documentation of 'custom-prompt-customize-unsaved-options' + + * doc/emacs/custom.texi (Saving Customizations): Index the new + function 'custom-prompt-customize-unsaved-options'. + + * etc/NEWS: Mention when 'custom-prompt-customize-unsaved-options' + is useful. + +2015-11-28 Eli Zaretskii + + Document 'comment-line' + + * doc/emacs/programs.texi (Comment Commands): Document + 'comment-line'. + + * etc/NEWS: Move the entry for 'comment-line' into "Editing Changes". + +2015-11-28 Eli Zaretskii + + Document new checkdoc features + + * doc/lispref/tips.texi (Tips, Library Headers): Document the + keyword-checking features of checkdoc and the commands + 'checkdoc-file' and 'checkdoc-current-buffer'. + + * etc/NEWS: Move the checkdoc-related entries to their own + section. + +2015-11-28 Philipp Stephani + + Simplify the prologue of emacs-module.c functions + + * src/emacs-module.c (MODULE_FUNCTION_BEGIN): New macro. + (module_make_global_ref) + (module_free_global_ref, module_make_function, module_funcall) + (module_intern, module_type_of, module_extract_integer) + (module_make_integer, module_extract_float, module_make_float) + (module_copy_string_contents, module_make_string) + (module_make_user_ptr, module_get_user_ptr, module_set_user_ptr) + (module_get_user_finalizer, module_set_user_finalizer) + (module_vec_set, module_vec_get, module_vec_size): Use new helper + macro MODULE_FUNCTION_BEGIN. + +2015-11-28 Eli Zaretskii + + Don't reject module calls with no arguments + + * src/emacs-module.c (Finternal_module_call): Allow ARGLIST be nil. + +2015-11-28 Philipp Stephani + + Make module-call be visible from Lisp + + * src/emacs-module.c (module_make_function): Use internal--module-call. + (Finternal_module_call): Renamed from Fmodule_call. Add safety + checks. + (syms_of_module): DEFSYM save-value-p and save-pointer-p. Do + defsubr internal--module-call. + +2015-11-28 Eli Zaretskii + + Add etags tests for the recent Lua-related bugfix + + * test/etags/lua-src/test.lua: New file, tests the issues raised + by bug#21934. + * test/etags/Makefile (LUASRC): Add test.lua. + * test/etags/ETAGS.good_1: + * test/etags/ETAGS.good_2: + * test/etags/ETAGS.good_3: + * test/etags/ETAGS.good_4: + * test/etags/ETAGS.good_5: + * test/etags/ETAGS.good_6: + * test/etags/CTAGS.good: Adapt to the new Lua test. Also, an old + regression fix, resolved around 25 May 2015, required changes to + the "good" ETAGS files. + +2015-11-28 Eli Zaretskii + + Fix Lua tags when a function name includes '.' or ':' + + * lib-src/etags.c (Lua_functions): Add a tag for the last element + of a function name after a dot or a colon. (Bug#21934) + +2015-11-28 Eli Zaretskii + + Improve documentation of search and replace commands + + * doc/emacs/search.texi (Replacement and Lax Matches): Document + which commands are affected by 'replace-character-fold'. + (Lax Search): Add a cross reference to "Replacement and Lax + Matches". Improve wording. Fix lost extra whitespace. + (Search Customizations): Improve wording. (Bug#22036) + See also comments in + http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02376.html. + + * lisp/replace.el (query-replace, query-replace-regexp) + (query-replace-regexp-eval, replace-string, replace-regexp): + Mention 'replace-character-fold' in the doc strings. + +2015-11-28 Paul Eggert + + Fix minor problems found by static checking + + * src/undo.c (prepare_record): Add proper prototype for C. + +2015-11-27 Stefan Monnier + + * src/emacs-module.c (struct env_storage): Delete + + (struct emacs_runtime_private): Keep an emacs_env instead. + (Fmodule_load, Fmodule_call): Declare emacs_env_private separately. + (initialize_environment): Split the arg in two. Adjust all callers. + Only store the private part in Vmodule_environments. + (finalize_environment): Change the arg to only be the private env. + Adjust all callers. + +2015-11-27 Eli Zaretskii + + Improve documentation of 'replace-character-fold' + + * lisp/replace.el (replace-character-fold): Clarify which commands + are affected by this variable. + +2015-11-27 Mark Oteiza + + Backport: Add interactive seek command. + + * lisp/mpc.el (mpc-cmd-seekcur): New function. + (mpc-seek-current): New command. + (mpc-mode-menu): Add entry for mpc-seek-current + (mpc-mode-map): Bind mpc-seek-current to "g" + +2015-11-27 Dmitry Gutov + + Autoload etags when using its xref backend + + * lisp/progmodes/xref.el (xref--etags-backend): + Rename to etags--xref-backend. Move to etags.el. Autoload. + (Bug#22026) + +2015-11-27 Artur Malabarba + + * lisp/character-fold.el: Allow complex chars to match their decomposition + + (character-fold-table): When a character's decomposition does not + involve a formatting tag (i.e., if it has an "exact" description via + other characters), then this character is allowed to match the + decomposition. + +2015-11-27 Artur Malabarba + + * lisp/character-fold.el: More descriptive variable names + + (character-fold-table): Rename a lot of the lexical variables to + make the code easier to read. + +2015-11-27 Artur Malabarba + + * lisp/isearch.el: Ensure we still support `isearch-new-word' + + (isearch-new-regexp-function): Define variable. + (isearch-new-word): Define as an obsolete alias. (Bug#22018) + +2015-11-27 Eli Zaretskii + + Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25 + +2015-11-27 Lee Bochicchio + + * test/automated/abbrev-tests.el: Define more tests + + (abbrev-table-name-test, kill-all-abbrevs-test) + (clear-abbrev-table-test): New tests. + +2015-11-27 Eli Zaretskii + + Add module tests for wrong-type-argument + + * modules/mod-test/test.el (mod-test-sum-test): Add tests for + wrong-type-argument. + +2015-11-27 Eli Zaretskii + + Improve handling of signals and 'throw' in modules + + * src/emacs-module.c: Add commentary explaining how to write + functions in this file. + (module_make_global_ref, module_free_global_ref) + (module_non_local_exit_signal, module_non_local_exit_throw) + (module_make_function, module_funcall, module_intern) + (module_type_of, module_is_not_nil, module_eq) + (module_extract_integer, module_make_integer) + (module_extract_float, module_make_float) + (module_copy_string_contents, module_make_string) + (module_make_user_ptr, module_get_user_ptr, module_set_user_ptr) + (module_get_user_finalizer, module_set_user_finalizer) + (module_vec_set, module_vec_get, module_vec_size) + (module_non_local_exit_signal_1, module_non_local_exit_throw_1): + Do nothing and return with failure indication immediately, if some + previous module call signaled an error or wants to throw. See + http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02133.html + for the relevant discussions. + +2015-11-27 Eli Zaretskii + + Add ':version' tag to 'checkdoc-package-keywords-flag' + + * lisp/emacs-lisp/checkdoc.el (checkdoc-package-keywords-flag): + Add a ':version' tag. + +2015-11-27 Eli Zaretskii + + Improve documentation of 'eval-buffer' and 'eval-region' + + * src/lread.c (Feval_buffer, Feval_region): Doc fixes. (Bug#22023) + + * doc/lispref/eval.texi (Eval): Mention narrowing to clarify + "accessible portion of buffer". + +2015-11-27 Eli Zaretskii + + Unbreak the Cygwin w32 build + + * src/emacs.c (main): Call w32_init_main_thread in the Cygwin w32 + build as well. Reported by Andy Moreton . + +2015-11-27 Eli Zaretskii + + Improve commentary in character-fold.el + + * lisp/character-fold.el (character-fold-to-regexp): Move detailed + description from commit log message to comments. (Bug#22019) + +2015-11-26 Alan Mackenzie + + Byte Compiler: generate code to adjust stack count after call to `signal'. + + Corrects change from earlier today. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): supply the current value of + `byte-compile--for-effect' as argument to `byte-compile-form'. + +2015-11-26 Eli Zaretskii + + Improve commentary of prepare_to_modify_buffer_1 + + * src/insdel.c (prepare_to_modify_buffer_1): Mention in commentary + that this function runs Lisp. Suggested by Richard Stallman + . + +2015-11-26 Phillip Lord + + Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 + +2015-11-26 Phillip Lord + + Fix regression after merge. + + * src/undo.c (prepare_record): Remove call to run_undoable_change. + +2015-11-26 Phillip Lord + + After delete, record point location in undo. + + Addresses Bug #21968. + + * lisp/simple.el (undo-auto--add-boundary): Clean up code to + better support intercalating calls. + * src/keyboard.c, src/keyboard.h (command_loop_1): Store value of + point and current buffer before each command. + * src/undo.c (record_point): Now only record the point. + * src/undo.c (prepare_record): Functionality removed form + record_point. + * src/undo.c (record_delete): Check if point needs recording. + * src/undo.c (undo-boundary): Record value of point before each + boundary. + * test/automated/simple-test.el: New tests. + + Conflicts: + src/undo.c + +2015-11-26 Eli Zaretskii + + Fix compiler warnings in w32.c + + * src/w32.c (sys_socket): In case of error, use -1 as return + value, not INVALID_SOCKET, which causes compiler warnings. + (maybe_load_unicows_dll): Cast the return value of GetProcAddress + to the appropriate function signature, to avoid compiler errors. + Reported by Andy Moreton . (Bug#21953) + +2015-11-26 Dmitry Gutov + + Check if the file exists on disk before producing the revert diff + + * lisp/vc/vc-dispatcher.el (vc-buffer-sync): Check if the file + exists on disk (bug#20558). + +2015-11-26 Alan Mackenzie + + Byte compiler: on setq with an odd number of arguments, generate a `signal' + + * lisp/emacs-lisp/cconv.el (cconv-convert): Don't transform `setq' form when + it has an odd number of arguments, to allow bytecomp to handle the error. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): In a `setq' form with an + odd number of arguments, generate a `signal' instead of the normal code. + +2015-11-26 Dmitry Gutov + + Use find-tag-default for xref-backend-identifier-at-point + + * lisp/progmodes/etags.el (find-tag-tag) + (tags-completion-at-point-function): Extract common code as + find-tag--default. + (xref-backend-identifier-at-point): Define in terms of the new + function. + +2015-11-26 Paul Eggert + + * src/undo.c (record_property_change): Remove now-unused local. + +2015-11-25 Phillip Lord + + run_undoable_changes now called from insdel. + + The original calls from inside undo.c are not always at a safe position + to call lisp, as they originate in varied positions within insdel.c. + Calling them directly from prepare_to_modify_buffer_1 ensures that they + are always run at the same point. + + * src/undo.c (run_undoable_changes,syms_of_undo): Remove function + and symbol used. + * src/insdel.c (run_undoable_changes): Add function and symbol. + +2015-11-25 Eli Zaretskii + + Improve and update documentation of search commands + + * doc/emacs/search.texi (Lax Search): Renamed from "Search Case"; + all references changed. Move the description of lax-whitespace + here. Add description of the new character folding features and + additional customizable options. + (Isearch Yank): Move before "Error in Search". + (Basic Isearch): Improve wording. Add index entries. Add short + description of how to abandon search, making this subsection a + complete introduction to search basics. + (Repeat Isearch): Add index entries. Describe additional + customizable options. Describe mouse clicks. + (Isearch Yank): Add index entries. Describe mouse-2 click in echo + area. Describe more customizable options. + (Error in Isearch): Add index entries. + (Special Isearch): Move actual description of some isearch + commands to other sections, leaving here just the summary of the + commands. Add command that toggles character folding. Describe + commands, like "C-h C-h", that were previously omitted for some + reason. + (Not Exiting Isearch): Describe search-exit-option. Add index + entries. + (Word Search): Describe eww-search-word and eww-search-prefix. + (Symbol Search): Add index entries. + (Regexp Search): Describe regexp-search-ring-max. + (Replacement and Lax Matches): Renamed from "Replacement and + Case"; all references changed. Describe lax-whitespace matching + in replace commands and related options. Describe character + folding in replace commands and related options. + (Query Replace): Describe query-replace-from-to-separator and the + new history features. Add index entries for highlighted text. + Describe query-replace-skip-read-only. Describe more keys + accepted by query-replace. + (Other Repeating Search): More index entries for Occur. Describe + list-matching-lines-default-context-lines. + (Search Customizations): New section, documents customizable + options that were not documented until now. + * doc/emacs/glossary.texi (Glossary): Add "Case Folding" and + "Character Folding". + + * etc/NEWS: Move search- and replace-related entries to a single + parent section. + + * lisp/replace.el (query-replace-show-replacement): Doc fix. + * lisp/isearch.el (search-nonincremental-instead) + (isearch-hide-immediately): Doc fixes. + +2015-11-25 Katsumi Yamaoka + + Remove nnml-retrieve-groups that is unnecessary and somewhat problematic + + * lisp/gnus/nnml.el (nnml-retrieve-groups): Remove. See: + and + + +2015-11-25 Paul Eggert + + Fix module_format_fun_env when dynlib_addr fails + + * src/emacs-module.c (module_format_fun_env): + exprintf doesn’t support %p, so use %x. Reported by Eli Zaretskii in: + http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02122.html + +2015-11-25 Paul Eggert + + Disambiguate variable help a bit better + + * lisp/help-fns.el (describe-variable): Quote the + variable’s value if it is a symbol other than t or nil. + See: T.V Raman in: + http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02147.html + +2015-11-25 Dmitry Gutov + + Pass SVN commit message through log-edit-extract-headers + + * lisp/vc/vc-svn.el (vc-svn-checkin): Pass COMMENT through + log-edit-extract-headers (bug#18954). + +2015-11-24 Alan Mackenzie + + CC Mode: Eliminate compiler warning messages. + + * lisp/progmodes/cc-mode.el (top level): remove compile time declaration of + `font-lock-syntactic-keywords' (which CC Mode doesn't use). + * lisp/progmodes/cc-awk.el (awk-mode-syntax-table) + (c-awk-set-syntax-table-properties): Clarify comments about + `font-lock-syntactic-keywords'. + + * lisp/progmodes/cc-bytecomp.el (cc-bytecomp-load): Create a dummy declaration + of this before the real (interpreted) one, to satisfy the byte compiler. + +2015-11-24 Simen Heggestøyl + + Extend the test suite for json.el + + * lisp/json.el (json-plist-p): Clarify docstring. + + * test/automated/json-tests.el (json-tests--with-temp-buffer): New + macro. + (test-json-join, test-json-alist-p) + (test-json-plist-p, test-json-advance, test-json-peek) + (test-json-pop, test-json-skip-whitespace) + (test-json-read-keyword, test-json-encode-keyword) + (test-json-read-number, test-json-encode-number) + (test-json-read-escaped-char, test-json-read-string) + (test-json-encode-string, test-json-encode-key) + (test-json-new-object, test-json-add-to-object) + (test-json-read-object, test-json-encode-list) + (test-json-read-array, test-json-encode-array) + (test-json-read, test-json-read-from-string) + (test-json-encode): New tests. + (json-read-simple-alist): Merged into `test-json-read-object'. + (json-encode-string-with-special-chars): Merged into + `test-json-encode-string'. + (json-read-string-with-special-chars): Split into + `test-json-encode-string' and `test-json-read-from-string'. + +2015-11-24 Anders Lindgren + + Fixed bug#18283: Enable applescript in NextStep. + + * nextstep/templates/Info.plist.in: Set NSAppleScriptEnabled to YES. + +2015-11-24 Eli Zaretskii + + Allow completion on dynamic module files in load-library + + * lisp/files.el (load-library): Bind completion-ignored-extensions + to nil, to allow completion on dynamic modules typed as file + names. Reported by Andy Moreton . + +2015-11-24 Alan Mackenzie + + CC Mode: eliminate almost all byte compilation warnings + + * lisp/progmodes/cc-bytecomp.el (cc-bytecomp-noruntime-functions): Remove. + (cc-require): Remove the crude hack that saved and restored + byte-compile-noruntime-functions. + (cc-conditional-require, cc-conditional-require-after-load): New macros. + + * lisp/progmodes/cc-defs.el (top level): Reformulate code which loaded + cc-fix.el using the new macros in cc-bytecomp.el. + + * lisp/progmodes/cc-langs.el (c++-template-syntax-table) + (c-no-parens-syntax-table): Add extra "(eval ..)"s around "'(lambda ..)" + forms to remove the superflous quotes. + +2015-11-24 Eli Zaretskii + + Add one more mod-test test + + * modules/mod-test/test.el (mod-test-sum-test): Test the error + signaled when the function is invoked with a wrong number of + arguments. + +2015-11-24 Philipp Stephani + + * modules/mod-test/mod-test.c (Fmod_test_sum): Verify there are 2 args. + +2015-11-24 Eli Zaretskii + + Implement dynlib_addr for MS-Windows + + * src/dynlib.c [WINDOWSNT]: Include w32common.h. + [WINDOWSNT]: New static variable. + (GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS) + (GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT) [WINDOWSNT]: Define + if undefined. + (dynlib_reset_last_error): Reset g_b_init_get_module_handle_ex to + zero. + (dynlib_addr) [WINDOWSNT]: Non-trivial implementation to report + the full file name of the module for a given address. + +2015-11-24 Alan Mackenzie + + Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 + +2015-11-24 Alan Mackenzie + + Squashed commit of the following: + + commit e1ecf76585bef2eb87995f7a7f92cc12003a6f70 + Author: Alan Mackenzie + Date: Tue Nov 24 16:50:09 2015 +0000 + + Byte compile: minor amendments. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): + add a comment to explain the binding of variables around a subsidiary + compilation. + (byte-compile-new-defuns): Amend the doc string. + + commit c537bfed1dda1593d218956ff00c6105a3ff0316 + Author: Alan Mackenzie + Date: Sat Nov 21 18:43:57 2015 +0000 + + Byte compiler: fix spurious warnings "might not be defined at runtime". + + Also initialize byte-compile-noruntime-functions between runs. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-new-defuns): New variable. + (byte-compile-initial-macro-environment): For eval-when-compile: bind + byte-compile-unresolved-functions and byte-compile-new-defuns around + byte-compile-top-level, to prevent spurious entries being made. + (byte-compile-warn-about-unresolved-functions): Check whether function is + in byte-compile-new-defuns before emitting a warning about it. + (byte-compile-from-buffer): Initialize new variable and + byte-compile-noruntime-functions to nil. + (byte-compile-file-form-require): record all new functions defined by a + `require' in byte-compile-new-defuns. + (byte-compile-file-form-defmumble): record the new alias in + byte-compile-new-defuns. + +2015-11-24 Eli Zaretskii + + Fix crash at startup related to GC of font entities + + * src/font.h (GC_FONT_SPEC_P, GC_FONT_ENTITY_P) + (GC_FONT_OBJECT_P, GC_XFONT_SPEC, GC_XFONT_ENTITY) + (GC_XFONT_OBJECT): New macros, for use in garbage collector. + * src/alloc.c (compact_font_cache_entry, compact_font_caches): + Don't ifdef away font cache compaction on NT_GUI, as the problems + which led to that seem to have been solved. + (compact_font_cache_entry): Use GC_FONT_SPEC_P, GC_XFONT_SPEC, + GC_XFONT_ENTITY, and GC_XFONT_OBJECT, instead of their non-GC_ + cousins. (Bug#21999) + +2015-11-24 Alan Mackenzie + + Byte compile: Output an error, not a warning, for odd number of args to setq + + * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): Amend. + +2015-11-24 Ken Raeburn + + Fix kbd_buffer iteration loop in readable_events + + * src/keyboard.c (readable_events): Wrap the event pointer back to the + start of the kbd_buffer array inside the top of the loop instead of + right before checking the loop condition, since kbd_fetch_ptr and + kbd_store_ptr point past the end of the array to mean that element 0 + is next. (bug#21935) + +2015-11-24 Paul Eggert + + Improve text-quoting-style doc again + + * doc/lispref/help.texi (Keys in Documentation): + Omit overkill discussion of ‘setq’. Mention Emacs versions + where ‘grave’ style was standard. + +2015-11-24 Paul Eggert + + Improve text-quoting-style doc + +2015-11-24 Paul Eggert + + Simplify module_make_function + + * src/emacs-module.c (module_make_function): + Simplify by calling build_unibyte_string. + +2015-11-24 Paul Eggert + + Port better to FreeBSD’s dlfunc vs dlsym + + This avoids warnings when converting between void * and + function pointers, which strict C11 does not allow. + * configure.ac (dlfunc): Check for existence. + * src/dynlib.c (dlfunc) [!HAVE_DLFUNC]: New macro. + (dynlib_func): New function. + * src/dynlib.h (dynlib_function_ptr, dynlib_func): New decls. + * src/emacs-module.c (Fmodule_load): Use dynlib_func, not + dynlib_sym, for function pointers. + +2015-11-24 Paul Eggert + + Simplify use of emacs_finalizer_function type + + * src/emacs-module.h (emacs_finalizer_function): + Now EMACS_NOEXCEPT. All users simplified to omit EMACS_NOEXCEPT. + (struct emacs_env_25): Use emacs_finalizer_function where applicable. + +2015-11-24 Paul Eggert + + module_format_fun_env fixes + + * src/doprnt.c (exprintf) [HAVE_MODULES]: Also define in this case. + * src/emacs-module.c (module_format_fun_env): + Convert path and sym to UTF-8. + Don’t use VLAs, as the C11 standard says they’re optional, + and anyway they can cause core dumps with large allocations. + Use exprintf rather than snprintf, as exprintf handles arbitrarily + long strings. Simplify the code a bit. + +2015-11-23 Dmitry Gutov + + Don't use package-user-dir in elisp-library-roots if it's not bound + + * lisp/progmodes/elisp-mode.el (elisp-library-roots): Don't + use package-user-dir if it's not bound (bug#19759). + +2015-11-23 Anders Lindgren + + New visible-bell for NextStep (OS X El Capitan compatible). + + Instead of inverting a rectangle in the middle of the frame, use + the standard NextStep image "caution", represented using an + warning sign with an exclamation mark. (Bug#21662) + + Implemented based on a suggestion drafted by Mustafa Kocaturk. + + * src/nsterm.m (EmacsBell): New class for managing the caution + image. Support multiple active bells, the image is removed once + all bells have timed out. + (ns_timeout): Removed, no longer used. + (ns_ring_bell): Reimplemented to use EmacsBell. + +2015-11-23 Johan Bockgård + + * lisp/emacs-lisp/nadvice.el (add-function): Fix debug spec. + + (remove-function): Ditto. (Bug#20376) + +2015-11-23 Mark Oteiza + + * lisp/leim/quail/tamil-dvorak.el: Add necessary escapes. + +2015-11-23 Eli Zaretskii + + Improve how non-ASCII strings are accepted from modules + + * src/emacs-module.c (module_make_function, module_make_string): + Build a unibyte Lisp string and then decode it by UTF-8, instead + of building a multibyte string without decoding. This is more + tolerant to deviations from UTF-8. + +2015-11-23 Paul Eggert + + Port recent module changes to pickier compilers + + * src/emacs-module.c (module_make_function) + (module_make_string): Add casts to fix pointer signedness issues. + +2015-11-23 Philipp Stephani + + Fix how strings are accepted from modules + + * src/emacs-module.c (module_make_function, module_make_string): Use + make_multibyte_string. + (module_copy_string_contents): Encode before reading the byte + size. Return false if and only if an error occurred. + +2015-11-23 Eli Zaretskii + + Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25 + +2015-11-23 Shakthi Kannan + + Add the tamil-dvorak input method + + * lisp/leim/quail/tamil-dvorak.el: New file. (Bug#21768) + + * etc/NEWS: Mention the new input method. + +2015-11-23 Martin Rudalics + + Move setting FRAME_WINDOW_SIZES_CHANGED to resize_frame_windows. + + * src/frame.c (adjust_frame_size): Don't set + FRAME_WINDOW_SIZES_CHANGED here ... + * src/window.c (resize_frame_windows): ... but here, as suggested + by Stefan Monnier. Also remove some dead code along the way. + +2015-11-23 Alan Mackenzie + + * etc/NEWS (Incompatible Lisp Changes): Also `setf' needs an even # of args. + +2015-11-23 Alan Mackenzie + + Signal an error when `setf' gets an odd number of arguments. + + * lisp/emacs-lisp/gv.el (setf): Amend. + +2015-11-23 Stefan Monnier + + * lisp/emacs-lisp/smie.el (smie-backward-sexp): Handle BOB better. + +2015-11-23 Alan Mackenzie + + * etc/NEWS (Incompatible Lisp Changes): Document new restriction on `setq'. + +2015-11-23 Alan Mackenzie + + Expunge occurrences of `setq' with an odd number of arguments. + + * lisp/apropos.el (apropos-documentation): + * lisp/obsolete/complete.el (PC-include-file-all-completions): + * lisp/progmodes/compile.el (compilation-goto-locus): + * lisp/vc/vc-cvs.el (vc-cvs-parse-root): (twice) + Insert missing nil at end of `setq' forms. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-autoload): Remove an + erroneous trailing variable name from a setq, thus allowing a compilation + properly to track functions not defined at runtime. + +2015-11-23 John Wiegley + + Add a note about a questionable use of bool in xdisp.c + +2015-11-23 Alan Mackenzie + + Issue a warning from the byte compiler on a malformed `setq' form. + + Partly fixes bug#20241. + * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): Issue a warning when a + `setq' form with an odd number of arguments is compiled. + +2015-11-23 Alan Mackenzie + + Don't let cconv_convert insert a nil argument into a `setq' form. + + Fixes bug#21983. + * lisp/emacs-lisp/cconv.el (cconv-convert): Don't silently insert a nil last + argument into a `setq' when there're an odd number of args. This enables the + byte compiler to issue a message in this case. + +2015-11-23 Alan Mackenzie + + Signal an error when `setq' has an odd number of arguments. Fixes bug#20241. + + * src/eval.c (Fsetq): Signal an error on an odd number of arguments. + (syms_of_eval): Add a DEFSYM for Qsetq. + +2015-11-23 Martin Rudalics + + * doc/lispref/windows.texi (Window Sizes): Fix indices and references. + + * src/frame.c (adjust_frame_size): Set FRAME_WINDOW_SIZES_CHANGED (Bug#21975). + +2015-11-23 Thomas Fitzsimmons + + Add EUDC BBDB 3 entry in NEWS + + * NEWS: Mention EUDC BBDB backend support for BBDB 3. + +2015-11-23 Thomas Fitzsimmons + + Improve EUDC to BBDB 3 export + + * lisp/net/eudc-vars.el (eudc-ldap-bbdb-conversion-alist): Change phone + entry to single item. Add company conversion. + * lisp/net/eudc-export.el (eudc-bbdbify-company): New function. + (bbdb-parse-phone): Declare function. + (eudc-bbdbify-phone): Add BBDB 3 support. + (Bug#21971) + +2015-11-23 Thomas Fitzsimmons + + Add BBDB 3 support for EUDC export + + * lisp/net/eudc.el: Add bbdb-version defvar. + (eudc--using-bbdb-3-or-newer-p): New function. + * lisp/net/eudc-export.el (eudc-create-bbdb-record): Add support for + bbdb-create-internal argument list changes introduced in BBDB 3. + * lisp/net/eudcb-bbdb.el: Remove bbdb-version defvar. + (eudc-bbdb-field): Call eudc--using-bbdb-3-or-newer-p. + (Bug#21971) + +2015-11-22 Eli Zaretskii + + Allow loading modules by 'load-file' + + * src/lread.c (Fload): Call 'unbind_to' with 'Fmodule_load' as the + 2nd arg, to avoid the "binding stack not balanced" error. + (syms_of_lread) : New Lisp variable. + + * lisp/files.el (module-file-suffix): Declare. + (load-file): Remove 'module-file-suffix' from + 'completion-ignored-extensions', to allow completion on modules. + + * etc/NEWS: Mention 'module-file-suffix'. + +2015-11-22 Eli Zaretskii + + Fix unoptimized builds + + * src/lisp.h (XTYPE): Move before XSYMBOL, to fix unoptimized + builds. + +2015-11-22 Dmitry Gutov + + Work around the asynchronous-empty-diff problem + + * lisp/vc/vc-rcs.el (vc-rcs-diff): + * lisp/vc/vc-mtn.el (vc-mtn-diff): + * lisp/vc/vc-hg.el (vc-hg-diff): + * lisp/vc/vc-git.el (vc-git-diff): Ignore the ASYNC argument, + do a synchronous process call (bug#21969). + +2015-11-22 Karl Fogel + + Finish excising electric indent from `open-line' + + * lisp/simple.el (open-line): Remove INTERACTIVE argument. + + * test/automated/simple-test.el (open-line-indent, open-line-hook): + Adjust accordingly. + + This change finishes what my commit of Thu Nov 19 17:32:37 2015 -0600 + (git commit c59353896) started. It turns out that having INTERACTIVE + cause `post-self-insert-hook' to run (via `newline') meant `open-line' + still had the electric indent behavior, as `post-self-insert-hook' + normally contains `electric-indent-post-self-insert-function' ever + since `electric-indent-mode' has been on by default. Tracing the code + change in `open-line' is mildly twisty, because Artur Malabarba's + earliest two commits of 24 Oct 2015 first removed the `interactive' + form entirely (git commit 6939896e2) and then restored it with the new + extra "p" already added (git commit bd4f04f86), such that there is no + single-commit diff in which one sees the second "p" appear. Thus this + change is effectively a reversion of parts of each of those commits. + + This could close bug#21884, at least until further discussion. + +2015-11-22 Dmitry Gutov + + Adhere closer to the "implicit tag name" definition + + * lisp/progmodes/etags.el (etags-tags-completion-table): + Adhere closer to the "implicit tag name" definition. Simplify + the regexp. Search for the explicit tag name first, and when + not found, search locally for the implicit one. (Bug#21934) + +2015-11-22 Stefan Monnier + + Unrevert most of regexp reentrancy abort patch + + The problem was in: + * src/syntax.c (update_syntax_table_forward): Propertize even when truncated + which is hence not unreverted. + The rest is: + * src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST): + (UPDATE_SYNTAX_TABLE_FAST): Re-introduce. + All callers in regex.c changed back to the _FAST versions. + + * test/automated/message-mode-tests.el: Tweak the test to rely on auto + propertization in backward-sexp. + +2015-11-21 Paul Eggert + + Revert regexp reentrancy abort patch + + Although the patch does fix Bug#21688 and prevents a core dump, + it also makes the message-mode-propertize test fail; see: + http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01667.html + Perhaps someone else can come up with a better fix some day. + * src/syntax.c (update_syntax_table_forward): + Propertize even when truncated. + * src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST): + (UPDATE_SYNTAX_TABLE_FAST): Remove. + All callers changed back to the non-_FAST versions. + +2015-11-21 Paul Eggert + + Add a few safety checks when ENABLE_CHECKING + + This was motivated by the recent addition of module code, + which added some ENABLE_CHECKING-enabled checks that are + useful elsewhere too. + * src/alloc.c (compact_font_cache_entry): + * src/fns.c (sweep_weak_table): + * src/lread.c (oblookup): + Use gc_asize rather than doing it by hand. + * src/emacs-module.c (module_make_global_ref) + (module_free_global_ref, module_vec_size): + Omit assertions that lisp.h now checks. + * src/lisp.h (XFASTINT, ASIZE): In functional implementations, + check that the result is nonnegative. Use eassume, as this + info can help a bit when optimizing production code. + (XSYMBOL) [!USE_LSB_TAG]: Assert that argument is a symbol, + to be consistent with the USE_LSB_TAG case. + (gc_asize): New function, when ASIZE is needed in the gc. + (gc_aset): Use it. + (HASH_TABLE_P): Move definition up, so that it can be used ... + (XHASH_TABLE): ... here, to assert that the arg is a hash table. + +2015-11-21 Eli Zaretskii + + Simplify recording of main thread's ID on MS-Windows + + * src/w32term.c (w32_initialize): + * src/w32console.c (initialize_w32_display): + * src/w32fns.c (globals_of_w32fns): Don't record the main thread + ID independently for each type of session (GUI, TTY, batch). + * src/w32term.c (w32_init_main_thread): New function, records the + main thread's thread ID. + * src/w32term.h: Add prototype for w32_init_main_thread. + * src/emacs.c (main) [WINDOWSNT]: Call w32_init_main_thread. + + * src/emacs-module.c [WINDOWSNT]: Rename main_thread_id to + main_thread, for consistency with other threading libraries. All + users changed. Include w32term.h. + (check_main_thread) [WINDOWSNT]: Simplify the test: no need to + make sure the main thread is alive, as we hold a handle on it + opened by w32_init_main_thread. + (module_init) [WINDOWSNT]: Reuse the thread ID recorded by + w32_init_main_thread, instead of calling the requisite APIs once + more. + +2015-11-21 Mark Oteiza + + Backport: Fix issue where a new tempfile was created every refresh + + * lisp/mpc.el (mpc-format): Leave dir as relative path + +2015-11-21 Eli Zaretskii + + Call 'window-size-change-functions' for mini-windows + + * src/window.c (grow_mini_window, shrink_mini_window): Set the + frame's 'window_sizes_changed' flag. + * src/xdisp.c (redisplay_internal): Call the hooks on + 'window-size-change-functions' if the call to 'echo_area_display' + sets the frame's 'window_sizes_changed' flag. + (syms_of_xdisp) : + Update doc string to indicate the mini-window resizes trigger a + call to the hooks, and don't promise that will happen "before + redisplay". (Bug#19576, Bug#21333) + + * doc/lispref/windows.texi (Window Hooks): Update the description + of 'window-size-change-functions'. + +2015-11-21 Eli Zaretskii + + Improve documentation of dynamic modules + + * src/fns.c (Frequire): Doc fix to include the dynamic module + support. + * src/lread.c (Fload, Vload_suffixes): Doc fixes to include the + dynamic module support. + (Fload): Treat the module suffix the same as '*.el' and '*.elc' + wrt the MUST-SUFFIX argument. + + * etc/NEWS: Expand documentation of dynamically loaded modules. + +2015-11-21 Philipp Stephani (tiny change) + + Initial documentation for dynamic modules + + * etc/NEWS: Mention the new support for dynamically loaded modules. + +2015-11-21 Dmitry Gutov + + Add xref--etags-backend to xref-backing-functions using add-hook + + * lisp/progmodes/xref.el (xref-backend-functions): Move the + default value into a separate `add-hook' call (bug#21964). + + * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): + Don't declare the xref-backend-functions variable. + It doesn't make any difference. + +2015-11-20 Paul Eggert + + Fix double-decrement bug when freeing global refs + + * src/emacs-module.c (module_free_global_ref): Add a FIXME + comment about error reporting. Fix a recently-introduced typo + that double-decremented the refcount. + +2015-11-20 Paul Eggert + + Declare emacs_module_init in the module API + + * src/emacs-module.h (emacs_module_init): New decl. + Without it, GCC might complain about a module that defines + emacs_module_init without using it. This also checks the + API better. + +2015-11-20 Paul Eggert + + Fix module test to use ptrdiff_t nargs too + + * modules/mod-test/mod-test.c (Fmod_test_return_t) + (Fmod_test_sum, Fmod_test_signal, Fmod_test_throw) + (Fmod_test_non_local_exit_funcall, Fmod_test_globref_make) + (Fmod_test_string_a_to_b, Fmod_test_userptr_make) + (Fmod_test_userptr_get, Fmod_test_vector_fill) + (Fmod_test_vector_eq): Arg counts are ptrdiff_t, not int. + (finalizer): Remove; no longer used. + +2015-11-20 Paul Eggert + + Fix reindent-introduced typo in module code + + * src/emacs-module.c (MODULE_SETJMP_1): Fix typo that I + introduced while reindenting the code earlier, and add a + comment explaining the unusual use of do-while here. + +2015-11-20 Anders Lindgren + + Fixed bug#19576: `write-file' saves wrong buffer. + + If a function on the hook `window-size-change-functions' doesn't + restore the current buffer, functions that save and restore the + current window configuration (like `y-or-no-p') could silently + change the current buffer. When `write-file' asked the user + confirmation to overwrite a file, `y-or-no-p' changed the current + buffer, and the wrong buffer was saved to the file. + + * lisp/follow.el (follow-windows-start-end): Call `select-frame' + using the `norecord' parameter. + (follow-window-size-change): Restore current buffer. Call + `select-frame' using the `norecord' parameter. Cleanup. + +2015-11-20 John Wiegley + + Correct a documentation error in frames.texi + +2015-11-20 Stephen Leake + + * lisp/cedet/mode-local.el: Delete obsolete comment + +2015-11-20 Paul Eggert + + Module function arg counts are ptrdiff_t, not int + + * src/emacs-module.c (struct module_fun_env) + (module_make_function, module_funcall, Fmodule_call): + * src/emacs-module.h (struct emacs_runtime, struct emacs_env_25): + Use ptrdiff_t, not int, for arg counts. + * src/emacs-module.c (module_make_function): Don’t bother + checking arity against MOST_POSITIVE_FIXNUM, as that’s + unnecessary here. Make the checking clearer by negating it. + (module_make_function, Fmodule_call): No need to use xzalloc + since the storage doesn’t need to be cleared. + (module_funcall): Don’t use VLA, since C11 doesn’t guarantee support + for it, and many implementations are buggy with large VLAs anyway. + Use SAFE_ALLOCA_LISP instead. + (module_vec_set): Don’t crash if i < 0. + (module_vec_get): Don’t crash if i < MOST_NEGATIVE_FIXNUM. + (module_vec_set, module_vec_get): Do fixnum checks only when + i is out of array bounds, for efficiency in the usual case. + (Fmodule_load): Simplify fixnum range check. + (Fmodule_call): Simplify arity check. Use xnmalloc to detect + integer overflow in array allocation size. + +2015-11-20 Eli Zaretskii + + Minor improvements in module test + + * modules/mod-test/mod-test.c: Include stdlib.h, to avoid warnings + about missing prototype of malloc. + * modules/mod-test/Makefile (CFLAGS): Add -std=gnu99, to avoid + compiler warnings. + +2015-11-20 Eli Zaretskii + + Improve MS-Windows implementation in dynlib.c + + * src/dynlib.c [WINDOWSNT]: Include errno.h, lisp.h, and w32.h. + No need to include windows.h, as w32.h already does that. + : New static variable. + (dynlib_reset_last_error): New function. + (dynlib_open): Convert forward slashes to backslashes. Convert + file names from UTF-8 to either UTF-16 or the current ANSI + codepage, and call either LoadLibraryW or LoadLibraryA. If the + argument is NULL, return a handle to the main module, like + 'dlopen' does. Record the error, if any, for use by dynlib_error. + (dynlib_sym): Check the handle for validity. Record the error, if + any, for use by dynlib_error. + (dynlib_error): Call w32_strerror to produce the error string, and + zero out the last error code, like dlerror does. + (dynlib_close): Check the handle for validity. Record the error, + if any, for use by dynlib_error. Don't call FreeLibrary with a + handle for the main module. + * src/w32.c (globals_of_w32): Call dynlib_reset_last_error. + +2015-11-20 Paul Eggert + + Include-file tweaks for modules + + * src/dynlib.c, src/emacs-module.c: Include first. + * src/dynlib.h: Do not include config.h. + It’s every .c file’s responsibility to include config.h first. + * src/emacs-module.c: Include emacs-module.h immediately after + config.h, to test that emacs-module.h doesn’t depend on + include files other than config.h. + +2015-11-20 Paul Eggert + + Simplify push_handler and profile its malloc + + * src/lisp.h (PUSH_HANDLER): Remove. + All callers changed to use push_handler directly. + * src/eval.c (internal_condition_case) + (internal_condition_case_1, internal_condition_case_2) + (internal_condition_case_n): + Use same pattern as for other invokers of push_handler. + (push_handler, push_handler_nosignal): Use call-by-value + instead of call-by-reference. All uses changed. + (push_handler): Simplify by rewriting in terms of + push_handler_nosignal. + (push_handler_nosignal): Profile any newly allocated memory. + +2015-11-20 Paul Eggert + + * src/emacs-module.h: Include stddef.h, not stdlib.h. + +2015-11-20 Juanma Barranquero + + Discover repository version in linked worktrees (bug#21930) + + * lisp/version.el (emacs-repository--version-git-1): Do not assume + HEAD is at .git/HEAD, it can also be at .git/worktrees//HEAD. + (emacs-repository-get-version): Grok linked worktrees when EXTERNAL + is nil too. + +2015-11-20 Juri Linkov + + * lisp/replace.el (occur-regexp-descr): New function. + (occur-1, occur-engine): Use it. + + * lisp/isearch.el (isearch-occur): Propertize regexp with + isearch-string and isearch-regexp-function-descr for + occur-regexp-descr to display the correct description + message in the header (bug#21176, bug#21180). + +2015-11-20 Karl Fogel + + Revert `open-line' electric-indent sensitivity + + * lisp/simple.el (open-line): Remove electric indent code. + (electric-indent-just-newline): Don't declare. + + * test/automated/simple-test.el (open-line-indent): Adjust test. + + This partly reverts Artur Malabarba's change that added electric + indent sensitivity to `open-line' (Oct 24 22:26:27 2015 +0100, git + commit bd4f04f86), and adjusts a new test he added right afterwards + (Sat Oct 24 23:43:06 2015 +0100, git commit 207f235e3) accordingly. + However, the new INTERACTIVE argument to `open-line', which he also + added in the first commit, is not reverted here. + + See the thread "Questioning the new behavior of `open-line'." on the + Emacs Devel mailing list, and in particular this message: + + From: Artur Malabarba + Subject: Re: Questioning the new behavior of `open-line'. + To: Karl Fogel + Cc: David Kastrup, Pierpaolo Bernardi, emacs-devel + Date: Wed, 18 Nov 2015 21:03:58 +0000 + Message-ID: \ + + + https://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01707.html + +2015-11-20 Paul Eggert + + Omit unnecessary clear in Fmodule_load + + * src/emacs-module.c (Fmodule_load): + Simplify and avoid unnecessary initialization of priv member to 0. + + * src/emacs-module.c: (module_vec_set, module_vec_get, module_vec_size) + +2015-11-20 Paul Eggert + + Prefer signed integer types in module code + + Generally speaking, at the C level the Emacs source code prefers + signed types like ‘ptrdiff_t’ to unsigned types like ‘size_t’, + partly to avoid the usual signedness confusion when comparing values. + Change the module API to follow this convention. + Use ‘int’ for small values that can’t exceed INT_MAX. + * modules/mod-test/mod-test.c (Fmod_test_globref_make) + (Fmod_test_string_a_to_b, Fmod_test_vector_fill) + (Fmod_test_vector_eq): + * src/emacs-module.c (struct emacs_value_frame) + (module_make_global_ref, module_free_global_ref) + (module_copy_string_contents, module_make_string) + (module_vec_set, module_vec_get, module_vec_size): + * src/emacs-module.h (struct emacs_runtime, struct emacs_env_25): + * src/lread.c (suffix_p): + Prefer signed to unsigned integer types. + +2015-11-19 Paul Eggert + + Omit ‘const’ on locals + + Remove ‘const’ qualifier from locals that were newly added. + We don’t normally bother declaring locals with ‘const’ even + though they are not modified, for the same reason we don’t + bother declaring them with ‘register’ even though their + addresses are not taken; the advantage in compile-time + checking isn’t worth the loss of readability. + * modules/mod-test/mod-test.c (Fmod_test_non_local_exit_funcall) + (Fmod_test_vector_fill, Fmod_test_vector_eq): + * src/emacs-module.c (MODULE_SETJMP_1) + (module_make_global_ref, module_free_global_ref) + (module_non_local_exit_get, module_make_function) + (module_extract_integer, module_extract_float) + (module_get_user_ptr, module_set_user_ptr) + (module_get_user_finalizer, module_set_user_finalizer) + (module_vec_get, Fmodule_call) + (module_non_local_exit_signal_1) + (module_non_local_exit_throw_1, lisp_to_value) + (finalize_storage, allocate_emacs_value, mark_modules) + (module_handle_signal, module_handle_throw) + (module_format_fun_env): + * src/eval.c (push_handler, push_handler_nosignal) + (init_handler): + * src/lread.c (suffix_p): + Omit unnecessary ‘const’. + +2015-11-19 Paul Eggert + + Prefer intmax_t to int64_t in module code + + * modules/mod-test/mod-test.c (sum, Fmod_test_sum): + * src/emacs-module.c (module_extract_integer) + (module_make_integer): + * src/emacs-module.h (struct emacs_env_25): + Prefer intmax_t to int64_t. This doesn’t change the generated + code on any of the machines Emacs currently ports to, but it’s + at least in theory more future-proof as C99 doesn’t guarantee + that int64_t exists. + +2015-11-19 Paul Eggert + + Rename module.c to emacs-module.c, etc. + + * src/emacs-module.c: Rename from src/module.c. + * src/emacs-module.h: Rename from src/module.h. + All uses changed. + +2015-11-19 Paul Eggert + + Fix minor module problems found by static checking + + * src/dynlib.c (dynlib_close): #ifdef out for now, as it’s not used. + * src/eval.c, src/lisp.h (lisp_eval_depth): Now static. + * src/emacs-module.c (Fmodule_load): Fix pointer signedness bug. + (Fmodule_call): Tell GCC that the default case is unreachable. + +2015-11-19 Paul Eggert + + Style fixes for indenting etc. in module code + + This is mostly indenting and spacing changes. Also, remove + some unnecessary static decls instead of bothering to reindent them. + * src/emacs-module.h (EMACS_EXTERN_C_BEGIN): Remove, and do this inline, + as most other Emacs files do for this sort of thing. + +2015-11-19 Eli Zaretskii + + Minor improvements in modules testing Makefile + + * modules/mod-test/Makefile (EMACS, SO): New variables. + (CFLAGS): When SO = dll, don't use -fPIC. + (check): New target, runs the test. + +2015-11-19 Eli Zaretskii + + * .gitignore: Add "*.dll". + +2015-11-19 Paul Eggert + + Migrate modules/.gitignore into .gitignore + + * .gitignore: Add former contents of modules/.gitignore. + * modules/.gitignore: Remove. + +2015-11-19 Paul Eggert + + Add copyright notices to module code + + Put them in the usual format for GNU Emacs copyright notices. + +2015-11-19 Paul Eggert + + Rename emacs_module.h to module.h + + * src/module.h: Rename from src/emacs_module.h. + All uses changed. + +2015-11-19 Juanma Barranquero + + * src/module.c (Fmodule_load): Remove unused vars `doc_name', `args' + + * src/lread.c (Fload): Remove unused variable `size' + +2015-11-19 Alan Mackenzie + + src/keyboard.c (pre-command-hook): Fix typo in doc string: "pre" -> "post". + +2015-11-19 Dmitry Gutov + + Prioritize looking inside vc-parent-buffer over log-view-mode fallback + + * lisp/vc/vc.el (vc-deduce-fileset): Prioritize looking inside + vc-parent-buffer over log-view-mode fallback (bug#21955). + +2015-11-18 Alan Mackenzie + + lisp/isearch.el: Eliminate macro isearch-call-message, replacing with funcall. + +2015-11-18 Ken Brown + + * configure.ac (LIBMODULES): Don’t define on Cygwin + +2015-11-18 Eli Zaretskii + + Fix MS-Windows build --with-modules + + * src/module.c: Reformat copyright commentary. + (module_vec_get): Use explicit cast to size_t to avoid compiler + warning in 32-bit builds. + (check_main_thread) [WINDOWSNT]: Fix letter-case in Windows APIs. + Compare thread IDs directly, as GetThreadId is not available + before Windows Vista. + (check_main_thread) [WINDOWSNT]: Duplicate the thread handle + without using APIs and constants not available on XP and older + systems. Obtain and store the thread ID as well. + +2015-11-18 Aurélien Aptel + Philipp Stephani + + Add dynamic module test and helper script + + Add 'modhelp.py' script (python2) to automate module testing and + module generation. + + To build and test all modules in the modules/ dir + $ ./modhelp.py test + + To generate a module from template code (good starting point) + $ ./modhelp init mynewtestmodule + + See the script -h option for more documentation. + + * modules/modhelp.py: New module helper script. + * modules/mod-test/Makefile: New file. Makefile for the test module. + * modules/mod-test/mod-test.c: New file. Test module source file. + * modules/mod-test/test.el: New file. ert test suite for the test module. + * modules/.gitignore: New file. Local .gitignore file. + +2015-11-18 Aurélien Aptel + + Make 'Fload' look for modules + + 'Fload' can now load dynamic modules. This also makes 'require' work. + + * src/lread.c: + (suffix_p): New function. + (Fload): Use 'suffix_p'. Call 'Fmodule_load' when we try to load a file + with a module suffix. + (syms_of_lread): Append module suffix to 'Vload_suffixes'. + +2015-11-18 Aurélien Aptel + Philipp Stephani + + Add dynamic module module support + + * configure.ac: Add '--with-modules' option. Conditionally add + dynlib.o and module.o to the list of objects. Add any system + specific flags to the linker flags to support dynamic libraries. + * m4/ax_gcc_var_attribute.m4: Add autoconf extension to test gcc + attributes. + * src/Makefile.in: Conditionally add module objects and linker flags. + * src/alloc.c (garbage_collect_1): protect module local values from + GC. + * src/lisp.h: Add 'module_init' and 'syms_of_module' prototypes. + * src/emacs-module.h: New header file included by modules. Public + module API. + * src/emacs-module.c: New module implementation file. + +2015-11-18 Aurélien Aptel + + Add new User Pointer (User_Ptr) type + + * src/lisp.h: Add new Lisp_Misc_User_Ptr type. + (XUSER_PTR): New User_Ptr accessor. + * src/alloc.c (make_user_ptr): New function. + (mark_object, sweep_misc): Handle Lisp_Misc_User_Ptr. + * src/data.c (Ftype_of): Return 'user-ptr' for user pointer. + (Fuser-ptrp): New user pointer type predicate function. + (syms_of_data): New 'user-ptrp', 'user-ptr' symbol. New 'user-ptrp' + subr. + * src/print.c (print_object): Add printer for User_Ptr type. + +2015-11-18 Aurélien Aptel + Philipp Stephani + + Add portable layer for dynamic loading + + * src/dynlib.h: New file. + * src/dynlib.c: New file. + +2015-11-18 Philipp Stephani + + Add catch-all & no-signal version of PUSH_HANDLER + + Ground work for modules. Add a non-signaling version of PUSH_HANDLER and + a new "catch-all" handler type. + + * src/eval.c (init_handler, push_handler, push_handler_nosignal): New + functions. + * src/fns.c (hash_remove_from_table): Expose function public. + * src/lisp.h: New handler type, define macro to push_handler call. + +2015-11-18 Ken Brown + + Silence byte-compiler warning + + * lisp/server.el (server-process-filter): Silence byte-compiler + warning. + +2015-11-18 Paul Eggert + + Quote symbols in docstrings using `' + + Be more systematic about quoting symbols `like-this' rather than + `like-this or 'like-this' in docstrings. This follows up Artur + Malabarba's email in: + http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01647.html + +2015-11-18 Peder O. Klingenberg + + Fix savegames in dunnet + + * lisp/play/dunnet.el (dun-rot13): Use the standard rot13-region instead + of separate implementation. + +2015-11-18 Artur Malabarba + + * lisp/emacs-lisp/package.el (package--with-response-buffer): + + Ensure we're at the start of the buffer before searching for + the end of headers. + +2015-11-18 Xue Fuqiao + + * admin/release-process: Improve wording. + +2015-11-18 Xue Fuqiao + + Backport: * CONTRIBUTE: Remove information about feature freeze. + + (cherry picked from commit ae0653b5ab9ee223751ec389b87011963e1cbbef) + +2015-11-18 Xue Fuqiao + + Backport: Document the release process + + * admin/notes/versioning: Add information about RC releases. + * admin/release-process: Document the release process. + * admin/authors.el (authors-ignored-files): + * admin/README: Change FOR-RELEASE to release-process. + * CONTRIBUTE: + * admin/notes/bugtracker: Don't mention FOR-RELEASE. + + (cherry picked from commit 9a4aa0f5945a03611ae29c516025dbd353bd26ab) + +2015-11-18 Xue Fuqiao + + Backport: * admin/release-process: Rename from admin/FOR-RELEASE. + + (cherry picked from commit f8cc14b59700e51a4e31139c0a65c8154995e055) + +2015-11-18 Xue Fuqiao + + Backport: Mention CONTRIBUTE in README + + Mention CONTRIBUTE in README, since it was moved from etc/ to root. + * etc/TODO: Remove the reference to `etc/CONTRIBUTE'. + * README: Mention CONTRIBUTE. + + (cherry picked from commit ed2e7e20ae0945288c98091f308f5460c3453873) + +2015-11-18 Paul Eggert + + Fix docstring quoting problems with ‘ '’ + + Problem reported by Artur Malabarba in: + http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01513.html + Most of these fixes are to documentation; many involve fixing + longstanding quoting glitches that are independent of the + recent substitute-command-keys changes. The changes to code are: + * lisp/cedet/mode-local.el (mode-local-augment-function-help) + (describe-mode-local-overload): + Substitute docstrings before displaying them. + * lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): + Quote the generated docstring for later substitution. + +2015-11-17 Eli Zaretskii + + Improve configure --help text for wide ints + + * configure.ac (wide-int): Clarify user-level advantages and + disadvantages. + +2015-11-17 Stephen Leake + + Improve doc string + + * lisp/progmodes/xref.el (xref-backend-references): Improve doc string. + +2015-11-17 Paul Eggert + + eval_sub followed dangling pointer when debugging + + Problem reported by Pip Cet (Bug#21245). + This bug could occur in eval_sub if the C compiler reused + storage associated with the ‘argvals’ local after ‘argvals’ + went out of scope, and if the Elisp debugger stopped on Elisp + function exit and accessed ‘argvals’. It could also occur if + a variadic function was called with so many arguments (over + 2048 args on x86-64) that SAFE_ALLOCA_LISP called malloc, then + SAFE_FREE freed the arguments, then the memory manager used + the storage for other purposes, then the debugger accessed the + arguments. + * src/eval.c (eval_sub): Declare ‘argvals’ at top level of + function body. Simplify local decls. + When allocating args via SAFE_ALLOCA, call + debugger before invoking SAFE_FREE, as the debugger needs + access to the args. + (eval_sub, apply_lambda): Rework to avoid need for + set_backtrace_debug_on_exit hack. This is cleaner, + and should work better with buggy custom debuggers. + +2015-11-17 Daiki Ueno + + * lisp/image-mode.el: Support encrypted file + + (image-toggle-display-image): Read content from the buffer instead + of the file, if the buffer holds a decrypted data. (Bug#21870) + +2015-11-17 Paul Eggert + + ELF unexec: align section header + + This ports the recent unexelf.c changes to Fedora x86-64 + when configured with GCC’s -fsanitize=undefined option. + * src/unexelf.c (unexec): Align new_data2_size to a multiple + of ElfW (Shdr)’s alignment, so that NEW_SECTION_H returns a + pointer aligned appropriately for its type. + +2015-11-17 Andreas Schwab + + Do more checks on bytecode objects (Bug#21929) + + * src/eval.c (funcall_lambda): Check size of compiled function + object. + (Ffetch_bytecode): Likewise. + +2015-11-16 Johan Bockgård + + pcase.el: Fix edebugging of backquoted cons patterns + + * lisp/emacs-lisp/pcase.el (pcase-QPAT): Fix edebugging of backquoted + cons patterns. (Bug#21920) + +2015-11-16 Paul Eggert + + Improve fix for regex reentrancy abort + + Suggested by Stefan Monnier (Bug#21688). + * src/syntax.c (update_syntax_table_forward): + Remove recently-added PROPERTIZE arg, and assume it is true. + All callers changed. + * src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST): + Invoke update_syntax_table directly. + +2015-11-16 Artur Malabarba + + * lisp/faces.el (faces--attribute-at-point): Use `face-list-p' + + * lisp/emacs-lisp/package.el (package--with-response-buffer): Missing require + + * lisp/emacs-lisp/nadvice.el (add-function): Escape quote + +2015-11-16 Vasily Korytov + + Recognize .rbw and .pyw files (bug#18753) + + * lisp/progmodes/python.el (auto-mode-alist): + Recognize .pyw files. + + * lisp/progmodes/ruby-mode.el (auto-mode-alist): + Recognize .rbw files. + +2015-11-16 Dmitry Gutov + + Fix ruby-mode auto-mode-alist entry + + * lisp/progmodes/ruby-mode.el (auto-mode-alist): Add grouping + around the extensions (bug#21257). + +2015-11-15 Dmitry Gutov + + Fix etags completion near eob + + * lisp/progmodes/etags.el (tags-completion-at-point-function): + Use `goto-char', to avoid the end-of-buffer error (bug#20061). + +2015-11-15 Alan Mackenzie + + De-pessimize detection of C++ member initialization lists. + + list/progmodes/cc-engine.el (c-back-over-list-of-member-inits): New macro. + (c-back-over-member-initializers): Reformulate such that c-at-toplevel-p + is only called when a construct "looks right" rather than continually. + (c-guess-basic-syntax, CASE 5R): Add a check for the mode being C++ Mode. + +2015-11-15 Artur Malabarba + + Backport: * lisp/emacs-lisp/package.el: Fix a decoding issue. + + * lisp/url/url-handlers.el (url-insert-file-contents): Move some code to + `url-insert-buffer-contents'. + (url-insert-buffer-contents): New function + + (package--with-response-buffer): Use `url-insert-buffer-contents'. + The previous code had some issues with decoding. Refactoring that + function allows us to use the decoding from url-handlers while still + treating both sync and async requests the same. + +2015-11-15 Stephen Leake + + Improve a few doc strings, comments + + * lisp/cedet/cedet-global.el (cedet-gnu-global-expand-filename): + * lisp/cedet/ede/locate.el (ede-locate-base): + * lisp/cedet/semantic/symref.el (semantic-symref-calculate-rootdir): + * src/fns.c (Fdelq): Improve doc string. + + * lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions): Add FIXME. + +2015-11-15 Anders Lindgren + + Enhance NSTRACE (trace output for NextStep). + + Trace can be disabled for groups of functions. By default, event + functions and functions that generate lots of output are disabled. + + Trace output of Objective-C functions now use the "[ClassName + parameter:]" form. + + * src/nsterm.h (NSTRACE_ALL_GROUPS, NSTRACE_GROUP_EVENTS) + (NSTRACE_GROUP_UPDATES, NSTRACE_GROUP_FRINGE, NSTRACE_GROUP_COLOR) + (NSTRACE_GROUP_GLYPHS, NSTRACE_GROUP_FOCUS): New macros, + controlling in which function groups trace should be active. + (NSTRACE_WHEN): Support for silencing a function, this also + silencing all called functions. + (NSTRACE_UNSILENCE): New macro, used to re-enable trace. + (NSTRACE_FMT_FSTYPE, NSTRACE_ARG_FSTYPE): New macros, used to + print the full screen state in NSTRACE functions. + + * src/nsterm.m (nstrace_depth, nstrace_num): Made volatile as they + can be accessed from multiple threads. + (nstrace_enabled_global): New variable, when FALSE, trace is + silenced. + (nstrace_restore_global_trace_state): New function, used to + restore `nstrace_enabled_global' at end of block. + ([EmacsView setFrame:], [EmacsWindow setFrame:display:]) + ([EmacsWindow setFrame:display:animation:]) + ([EmacsWindow setFrameTopLeftPoint:]): New functions, print trace + and call corresponding super function. + (Many functions): Add or enhance trace output. + + * src/nsimage.m (ns_image_from_file): Enhanced trace output. + + * src/nsfns.m (x_set_tool_bar_lines): Add trace output. + + * src/nsmenu.m ([EmacsToolbar setVisible:]): New function, print trace + and call corresponding super function. + +2015-11-15 Anders Lindgren + + Fixed a toolbar related issue on OS X. + + Earlier, when toggling the tool-bar in a maximized frame, the + frame size didn't match the number of text lines, leaving an + unused area at the bottom of the frame. + + * src/nsfns.m (x_set_tool_bar_lines): Exit maximized and full height + fullscreen modes when tool bar is disabled. + +2015-11-15 Anders Lindgren + + Fixed OS X 10.6.8 build issue (bug#21862). + + * src/nsterm.h (EmacsView): Add missing declarations. + * src/nsterm.m ([EmacsView windowDidBecomeKey]): New method, like + the standard method but without the notification parameter. + Intended to be used for direct calls. + ([EmacsView windowDidEnterFullScreen]): Call the non-notification + version of `windowDidBecomeKey'. Made the notification method call + the non-notification method instead of the vice versa. + (NSWindowDidEnterFullScreenNotification): Deleted, no longer + needed. + +2015-11-15 Artur Malabarba + + * lisp/faces.el (faces--attribute-at-point): Fix an issue + + Previous code would signal an error when the face at point was + a manually built list of attributes such as '(:foregroud "white"). + + * test/automated/faces-tests.el (faces--test-color-at-point): Add a test + +2015-11-15 Paul Eggert + + Fix regex abort when it tries to reenter itself + + Problem reported by Ken Raeburn. + Solution suggested by Stefan Monnier (Bug#21688). + * src/regex.c (re_match_2_internal): + Use new _FAST functions to avoid regex code reentering itself. + * src/syntax.c (update_syntax_table_forward): New arg PROPERTIZE. + All callers changed. + * src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST) + (UPDATE_SYNTAX_TABLE_FAST): New inline functions. + +2015-11-15 Dmitry Gutov + + Improve Ruby 1.9-style keyword keys highlighting + + * lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): + Handle required keyword arguments (bug#21367). + And highlight the colon together with the name. + +2015-11-15 Dmitry Gutov + + Unify the absolutely equal xref-backend-references implementations + + * lisp/progmodes/elisp-mode.el (xref-backend-references): + Remove. + + * lisp/progmodes/etags.el (xref-backend-references): + Remove. + + * lisp/progmodes/xref.el (xref-backend-references): + Define the default implementation. + +2015-11-15 Dmitry Gutov + + Update project-find-regexp for the new xref API + + * lisp/progmodes/project.el (project--read-regexp): + Update to use the new xref API methods. + + * lisp/progmodes/xref.el (xref-find-backend): Autoload. + +2015-11-15 Dmitry Gutov + + Fix replacing a match with a shorter string + + In effect, partially reverting fe973fc. + + * lisp/progmodes/xref.el (xref-query-replace): Store the end + of each match as a marker again, instead of length. + (xref--query-replace-1): Update accordingly. + +2015-11-14 Artur Malabarba + + * lisp/progmodes/xref.el (xref-pop-marker-stack): Downgrade errors + + Signal user-errors instead. + +2015-11-14 Eli Zaretskii + + Document 'describe-symbol' + + * doc/emacs/help.texi (Help Summary): Mention "C-h o". + (Name Help): Document "C-h o" and describe-symbol. + + * lisp/help-fns.el (describe-symbol): Doc fix. + +2015-11-14 Paul Eggert + + Change test name to avoid spellcheck issue. + +2015-11-14 Eli Zaretskii + + Avoid signaling an error in 'describe-symbol' + + * lisp/help-fns.el (describe-symbol): Avoid errors when the symbol + exists as a function/variable/face/etc., but is undocumented. + + * test/automated/help-fns.el (help-fns-test-describe-symbol): New + test. + +2015-11-14 Eli Zaretskii + + * INSTALL (--with-cairo): Document this new configure option. + +2015-11-14 Eli Zaretskii + + Document that GNU Make >= 3.81 is required to build Emacs + + * doc/lispref/internals.texi (Building Emacs): Document that GNU + Make 3.81 or later is now required. + +2015-11-14 Artur Malabarba + + Backport: * lisp/emacs-lisp/package.el: Refactor -with-work-buffer-async. + + (package--with-work-buffer-async): Reimplement as + `package--with-response-buffer'. + (package--with-work-buffer): Mark obsolete. + (package--with-response-buffer): New macro. This is a more self + contained and less contrived version of + `package--with-work-buffer-async'. It uses keyword arguments, + doesn't have async on the name, doesn't fallback on + `package--with-work-buffer', and has _much_ simpler error + handling. On master, this macro will soon be part of another + library (either standalone or inside url.el), which is why this + commit is not to be merged back. + + (package--check-signature, package--download-one-archive) + (package-install-from-archive, describe-package-1): Use it. + + (package--download-and-read-archives): Let + `package--download-one-archive' take care of calling + `package--update-downloads-in-progress'. + +2015-11-14 Eli Zaretskii + + * CONTRIBUTE (Branches): Improve wording for back-ported commits. + +2015-11-14 Dmitry Gutov + + Merge branch 'master' into emacs-25 + +2015-11-14 Dmitry Gutov + + Use generic dispatch for xref backends + + * lisp/progmodes/xref.el (xref-backend-functions): + New variable. + (xref-find-function): Remove. + (xref-find-backend) + (xref--etags-backend): New functions. + (xref-identifier-at-point-function) + (xref-identifier-completion-table-function): Remove. + (xref-backend-definitions, xref-backend-references) + (xref-backend-apropos, xref-backend-identifier-at-point) + (xref-backend-identifier-completion-table): + New generic functions. + + * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Add + `elisp--xref-backend' to the beginning of + `xref-backend-functions', locally. Delete references to + removed functions and vars. + (elisp-xref-find): Remove. + (elisp--xref-backend): New function. + (elisp--xref-find-references, elisp--xref-find-apropos) + (elisp--xref-identifier-completion-table): + Turn into appropriately named generic methods. + + * lisp/progmodes/etags.el (etags-xref-find): Remove. + (xref-backend-identifier-completion-table) + (xref-backend-references, xref-backend-definitions) + (xref-backend-apropos): New generic methods. + +2015-11-14 Juri Linkov + + Support rectangular regions for more commands + + * lisp/simple.el (region-extract-function): Handle the arg value ‘bounds’. + (region-insert-function): New function. + (shell-command-on-region): Add arg ‘region-noncontiguous-p’. + If non-nil, operate on multiple chunks. + (region-noncontiguous-p): New function. + + * lisp/rect.el: Add function rectangle--insert-region + around region-insert-function. + (extract-rectangle-bounds): New function. + (rectangle--extract-region): Handle the arg value ‘bounds’. + (rectangle--insert-region): New function. + + * lisp/emulation/cua-rect.el: Add function cua--insert-rectangle + around region-insert-function. + (cua--extract-rectangle-bounds): New function. + (cua--rectangle-region-extract): Handle the arg value ‘bounds’. + + * lisp/replace.el (query-replace, query-replace-regexp): Add arg + ‘region-noncontiguous-p’. Use ‘use-region-p’. + (query-replace-regexp-eval, map-query-replace-regexp) + (replace-string, replace-regexp): Use ‘use-region-p’. + (keep-lines, flush-lines, how-many): Use ‘use-region-p’. + (perform-replace): Add arg ‘region-noncontiguous-p’. + If non-nil, operate on multiple chunks. + + * src/casefiddle.c (Fdowncase_region): Add arg ‘region-noncontiguous-p’. + If non-nil, operate on multiple chunks. (Bug#19829) + +2015-11-14 Dmitry Gutov + + Handle multiple matches on the same line; add highlighting + + * lisp/progmodes/xref.el (xref-location-marker): Interpret the + column value in characters. + (xref--collect-matches): Rename from `xref--collect-match'. + Search for all matches in the hit line. Add `highlight' face to + the matched region in the summary. Update both callers. + +2015-11-14 Dmitry Gutov + + Replace xref-match-bounds with xref-match-length + + Relying on xref-location-marker to point to the beginning of the match + + * lisp/progmodes/xref.el (xref-match-bounds): Remove. + (xref-match-length): Add. + (xref-make-match): Change the arguments. + (xref--match-buffer-bounds): Remove. + (xref-match-item): Store length, instead of end-column. + (xref-pulse-momentarily) + (xref--collect-match) + (xref--query-replace-1): Update accordingly. + (xref-query-replace): Ditto. And check that the search results + are up-to-date. + +2015-11-13 John Wiegley + + Merge remote-tracking branch 'origin/master' into emacs-25 + +2015-11-13 l3thal + + Merge branch 'erc-async-reconnect' into emacs-25 + + Reconnect asynchronously. + +2015-11-13 Paul Eggert + + Merge from gnulib + + This incorporates: + 2015-11-13 xalloc-oversized: improve performance with GCC 5 + * lib/xalloc-oversized.h: Copy from gnulib. + +2015-11-13 Paul Eggert + + Spruce up ftfont.c memory allocation + + * src/ftfont.c (setup_otf_gstring): + Avoid O(N**2) behavior when reallocating. + (ftfont_shape_by_flt): Prefer xpalloc to xrealloc when + reallocating buffers; this simplifies the code. Do not trust + mflt_run to leave the output areas unchanged on failure, as + this isn’t part of its interface spec. + +2015-11-13 Eli Zaretskii + + Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25 + +2015-11-13 Paul Eggert + + Port recent XCB changes to 64-bit ‘long int’ + + For historical reasons, libX11 represents 32-bit values like Atoms as + ‘long int’ even on platforms where ‘long int’ is 64 bits. XCB doesn’t + do that, so adapt the recent XCB code to behave properly on 64-bit + platforms. Also, fix what appears to be a bug in the interpretation + of xcb_get_property_value_length, at least on my Fedora platform + which is running libxcb-1.11-5.fc21. + * src/xfns.c (x_real_pos_and_offsets): + * src/xterm.c (get_current_wm_state): + xcb_get_property_value_length returns a byte count, not a word count. + For 32-bit quantities, xcb_get_property_value returns a vector + of 32-bit words, not of (possibly 64-bit) long int. + + Backport. + +2015-11-13 Paul Eggert + + * src/undo.c (run_undoable_change): Now static. + + Backport. + +2015-11-13 Eli Zaretskii + + Remove support for ':timeout' from w32 tray notifications + + * src/w32fns.c (Fw32_notification_notify): Delete the code that + supports ':timeout'. + (syms_of_w32fns): Don't DEFSYM ':timeout'. This avoids clashes + with dbusbind.c when D-Bus is compiled in. + + * doc/lispref/os.texi (Desktop Notifications): Don't mention + ':timeout'. + + Backport. + +2015-11-13 Juanma Barranquero + + * test/automated/simple-test.el: Add test for bug#20698 (bug#21885) + + (simple-test--transpositions): New macro. + (simple-transpose-subr): New test. + + Backport. + +2015-11-13 Juanma Barranquero + + * lisp/progmodes/elisp-mode.el: Declare function `project-roots' + + Backport. + +2015-11-13 Juanma Barranquero + + * src/undo.c: Small fixes for previous change + + (run_undoable_change): Mark void argument list. + (record_property_change): Remove unused variable `boundary'. + + Backport. + +2015-11-13 Eli Zaretskii + + Add a few more variables to redisplay--variables + + * lisp/frame.el (redisplay--variables): Add bidi-paragraph-direction + and bidi-display-reordering to the list. + + Backport. + +2015-11-13 Eli Zaretskii + + * lisp/loadup.el: Enlarge the size of the hash table to 80000. + + Backport. + +2015-11-13 Eli Barzilay + + Fix point positioning after transposing with negative arg + + * lisp/simple.el (transpose-subr): When invoked with a negative + argument, move point to after the transposed text, like we do + when invoked with a positive argument. (Bug#21885) + + Backport. + +2015-11-13 Eli Zaretskii + + Fix last change in shr.el + + * lisp/net/shr.el (shr--have-one-fringe-p): Rename from + have-fringes-p. All callers changed. Doc fix. (Bug#21895) + + Backport. + +2015-11-13 Eli Zaretskii + + Fix last change + + * src/w32fns.c (syms_of_w32fns) [WINDOWSNT && !HAVE_DBUS]: + Don't DEFSYM tray notification symbols if D-Bus is being used. + + Backport. + +2015-11-13 Eli Zaretskii + + Another fix for MinGW64 and Cygwin builds due to notifications + + * src/w32fns.c: Ifdef away tray notification code if D-Bus is + being compiled into Emacs. + (syms_of_w32fns) [WINDOWSNT && !HAVE_DBUS]: Don't defsubr + Sw32_notification_notify and Sw32_notification_close if the code + is not compiled. Reported by Andy Moreton . + + Backport. + +2015-11-13 YAMAMOTO Mitsuharu + + Remove intern calls and XXX comments from Fx_export_frames + + * src/xfns.c (Fx_export_frames): Use Qpdf, Qpng, Qpostscript, and + Qsvg instead of intern calls. Use "postscript" instead of "ps" + for consistency with image types. Remove XXX comments. + (syms_of_xfns) : DEFSYM it. + + Backport. + +2015-11-13 Paul Eggert + + Port recent XCB changes to 64-bit ‘long int’ + + For historical reasons, libX11 represents 32-bit values like Atoms as + ‘long int’ even on platforms where ‘long int’ is 64 bits. XCB doesn’t + do that, so adapt the recent XCB code to behave properly on 64-bit + platforms. Also, fix what appears to be a bug in the interpretation + of xcb_get_property_value_length, at least on my Fedora platform + which is running libxcb-1.11-5.fc21. + * src/xfns.c (x_real_pos_and_offsets): + * src/xterm.c (get_current_wm_state): + xcb_get_property_value_length returns a byte count, not a word count. + For 32-bit quantities, xcb_get_property_value returns a vector + of 32-bit words, not of (possibly 64-bit) long int. + +2015-11-13 Paul Eggert + + * src/undo.c (run_undoable_change): Now static. + +2015-11-13 Michael Albinus + + Adapt Tramp version, do not merge with master + + * doc/misc/trampver.texi (trampver): + * lisp/net/trampver.el (tramp-version): Set to "2.2.13-25.1". + +2015-11-13 Eli Zaretskii + + Remove support for ':timeout' from w32 tray notifications + + * src/w32fns.c (Fw32_notification_notify): Delete the code that + supports ':timeout'. + (syms_of_w32fns): Don't DEFSYM ':timeout'. This avoids clashes + with dbusbind.c when D-Bus is compiled in. + + * doc/lispref/os.texi (Desktop Notifications): Don't mention + ':timeout'. + +2015-11-13 Juanma Barranquero + + * test/automated/simple-test.el: Add test for bug#20698 (bug#21885) + + (simple-test--transpositions): New macro. + (simple-transpose-subr): New test. + +2015-11-13 Juanma Barranquero + + * lisp/progmodes/elisp-mode.el: Declare function `project-roots' + +2015-11-13 Juanma Barranquero + + * src/undo.c: Small fixes for previous change + + (run_undoable_change): Mark void argument list. + (record_property_change): Remove unused variable `boundary'. + +2015-11-13 Eli Zaretskii + + Add a few more variables to redisplay--variables + + * lisp/frame.el (redisplay--variables): Add bidi-paragraph-direction + and bidi-display-reordering to the list. + +2015-11-13 Eli Zaretskii + + * lisp/loadup.el: Enlarge the size of the hash table to 80000. + +2015-11-13 Eli Barzilay + + Fix point positioning after transposing with negative arg + + * lisp/simple.el (transpose-subr): When invoked with a negative + argument, move point to after the transposed text, like we do + when invoked with a positive argument. (Bug#21885) + +2015-11-13 Eli Zaretskii + + Fix last change in shr.el + + * lisp/net/shr.el (shr--have-one-fringe-p): Rename from + have-fringes-p. All callers changed. Doc fix. (Bug#21895) + +2015-11-13 Eli Zaretskii + + Fix last change + + * src/w32fns.c (syms_of_w32fns) [WINDOWSNT && !HAVE_DBUS]: + Don't DEFSYM tray notification symbols if D-Bus is being used. + +2015-11-13 Eli Zaretskii + + Another fix for MinGW64 and Cygwin builds due to notifications + + * src/w32fns.c: Ifdef away tray notification code if D-Bus is + being compiled into Emacs. + (syms_of_w32fns) [WINDOWSNT && !HAVE_DBUS]: Don't defsubr + Sw32_notification_notify and Sw32_notification_close if the code + is not compiled. Reported by Andy Moreton . + +2015-11-13 YAMAMOTO Mitsuharu + + Remove intern calls and XXX comments from Fx_export_frames + + * src/xfns.c (Fx_export_frames): Use Qpdf, Qpng, Qpostscript, and + Qsvg instead of intern calls. Use "postscript" instead of "ps" + for consistency with image types. Remove XXX comments. + (syms_of_xfns) : DEFSYM it. + +2015-11-13 Eric Hanchrow + + shr: don't invoke unbound function (Bug#21895) + + * lisp/net/shr.el (have-fringes-p): New function. + (shr-insert-document, shr-fill-text): Use it. + +2015-11-12 Juanma Barranquero + + * test/automated/keymap-tests.el: Fix test to make it repeatable + + (keymap-store_in_keymap-FASTINT-on-nonchars): Reset Buffer-menu-mode-map + entry to its initial value to make the test repeatable in interactive + sessions (assuming it doesn't fail and crashes Emacs, of course). + +2015-11-13 Artur Malabarba + + * test/automated/cl-lib-tests.el (cl-lib-struct-constructors): Small fix + +2015-11-12 Phillip Lord + + : Tests for undo-auto functionality. + +2015-11-12 Phillip Lord + + The heuristic that Emacs uses to add an `undo-boundary' has been + reworked, as it interacts poorly with functions on `post-command-hook' + or `after-change-functions'. + + * lisp/simple.el: New section added. + * src/cmds.c (remove_excessive_undo_boundaries): Now in lisp. + (self_insert_command): Calls simple.el to amalgamate. + (delete_char): Calls simple.el to amalgamate. + * src/keyboard.c (last_undo_boundary): Removed. + * src/undo.c (run_undoable_change): New function. + +2015-11-12 Juri Linkov + + Bind [?\S-\ ] to previous line command in Dired-like modes. + + * lisp/arc-mode.el (archive-mode-map): + * lisp/dired.el (dired-mode-map): + * lisp/proced.el (proced-mode-map): + * lisp/vc/vc-dir.el (vc-dir-mode-map): + Bind [?\S-\ ] to previous line command. + (Bug#20790) + +2015-11-12 Eli Zaretskii + + Fix the MinGW64 and Cygwin-w32 builds + + * src/w32fns.c (MYNOTIFYICONDATAW_V1_SIZE) + (MYNOTIFYICONDATAW_V2_SIZE, MYNOTIFYICONDATAW_V3_SIZE): Define and + use instead of the corresponding NOTIFYICONDATAW_Vn_SIZE macros, + which cause trouble with MinGW42 headers. Ifdef away tray + notifications code for Cygwin. Reported by Andy Moreton + . + +2015-11-12 Simen Heggestøyl + + Enable sorting of JSON object keys when encoding + + * lisp/json.el (json-encoding-object-sort-predicate): New variable for + specifying a sorting predicate for JSON objects during encoding. + (json--plist-to-alist): New utility function. + (json-encode-hash-table): Re-use `json-encode-alist' when object keys + are to be sorted. + (json-encode-alist): Sort output by + `json-encoding-object-sort-predicate, when set. + (json-encode-plist): Re-use `json-encode-alist' when object keys are + to be sorted. + (json-pretty-print-buffer-ordered): New command to pretty print the + buffer with object keys sorted alphabetically. + (json-pretty-print-ordered): New command to pretty print the region with + object keys sorted alphabetically. + + * test/automated/json-tests.el (test-json-plist-to-alist) + (test-json-encode-plist, test-json-encode-hash-table) + (test-json-encode-alist-with-sort-predicate) + (test-json-encode-plist-with-sort-predicate): New tests. + + * etc/NEWS: Add an entry for the new commands. + +2015-11-12 Juanma Barranquero + + * test/automated/keymap-tests.el: New test file + +2015-11-12 Ken Raeburn + + Speed up x_real_pos_and_offsets using XCB + + * src/xfns.c (x_real_pos_and_offsets) [USE_XCB]: Add XCB flavors of + all X calls, and pipeline requests when possible, collecting results + later. Eliminate use of x_catch_errors (and thus XSync) in XCB case. + +2015-11-12 Ken Raeburn + + Enable use of XCB for checking window manager state + + * src/xterm.c (get_current_wm_state) [USE_XCB]: Use XCB calls instead + of XGetWindowProperty plus error-catching, since we can explicitly + check for errors in the XCB version. This eliminates 3 XSync calls on + top of the round-trip actually fetching the information. + +2015-11-12 Ken Raeburn + + Detect XCB and save a connection handle + + * configure.ac: If using X11, check for XCB libraries and header. + * src/Makefile.in (XCB_LIBS): Define. + (LIBX_EXTRA): Include it. + + * src/xterm.h [USE_XCB]: Include X11/Xlib-xcb.h. + (struct x_display_info) [USE_XCB]: Add an XCB connection handle field. + * src/xterm.c (x_term_init) [USE_XCB]: Initialize the new field. + +2015-11-12 Ken Raeburn + + Reduce some data dependencies between X calls + + Gains nothing in the traditional-Xlib code, but more closely aligns + with how the XCB version will work. + + * src/xfns.c (x_real_pos_and_offsets): When translating coordinates, + send coordinates (0,0) to the X server and add in the real coordinates + after getting the response. Move XGetGeometry for outer window inside + error-trapping block. Use DPY variable more, since it's available. + +2015-11-12 Ken Raeburn + + Use color cache for creating bitmap + + * src/image.c (x_create_bitmap_from_xpm_data) [ALLOC_XPM_COLORS]: Set + attributes to use the caching color allocator. Initialize and free + the cache. + +2015-11-12 Eli Barzilay + + Add "^" to the interactive specs of `dired-next/previous-line' + + * lisp/dired.el (dired-next-line, dired-previous-line): It makes sense + to bind these commands to the arrow keys, and that means that they work + better with a "^" in the `interactive' declaration so selection works + as expected. + +2015-11-12 Thomas Fitzsimmons + + Sync with soap-client repository, version 3.0.2 + + * lisp/net/soap-client.el: Bump version to 3.0.2. + + * lisp/net/soap-client.el (soap-warning): Use format, not format-message. + + * lisp/net/soap-client.el: Add cl-lib to Package-Requires. Require cl-lib. + (soap-validate-xs-simple-type): Use cl-labels instead of cl-flet. + + * lisp/net/soap-client.el: Support Emacs versions that do not have + define-error. + + * lisp/net/soap-inspect.el: Remove version header. + + * lisp/net/soap-client.el, lisp/net/soap-inspect.el: Fix first line header + format. + +2015-11-11 Alan Mackenzie + + CC Mode: Respect users' settings of open-paren-in-column-0-is-defun-start. + + lisp/progmodes/cc-engine.el (c-backward-single-comment, c-backward-comments) + (c-invalidate-state-cache-1, c-parse-state-1, c-guess-basic-syntax): + remove bindings of open-paren-in-column-0-is-defun-start to nil. + (c-get-fallback-scan-pos): "New" function (existed several years ago). + (c-parse-state-get-strategy): Reintroduce the 'BOD strategy, using + c-get-fallback-scan-pos. + (c-parse-state-1): Handle 'BOD strategy. + + lisp/progmodes/cc-mode.el (c-before-change, c-after-change) + c-font-lock-fontify-region): remove bindings of + open-paren-in-column-0-is-defun-start to nil. + + cc-mode.texi (Performance Issues, Limitations and Known Bugs): Fix mix up + between @chapter and @appendix. + +2015-11-11 Artur Malabarba + + * lisp/obarray.el: Fix shadowed variables + + (obarray-map, obarray-remove, obarray-put, obarray-get): + Change OBARRAY arg to OB to avoid shadowing ‘obarray’. + +2015-11-11 Eli Zaretskii + + Avoid error in submitting a form with EWW + + * lisp/gnus/mm-url.el (mm-url-form-encode-xwfu): Allow argument + CHUNK to be nil. (Bug#21881) + +2015-11-11 Nicolas Petton + + Rename seq-p and map-p to seqp and mapp + + * lisp/emacs-lisp/seq.el (seqp): New name. + * lisp/emacs-lisp/map.el (mapp): New name. + * doc/lispref/sequences.texi: Update the documentation for seqp. + * test/automated/map-tests.el: Update the tests for mapp. + +2015-11-11 Nicolas Petton + + Rename obarray-p to obarrayp + + * lisp/obarray.el (obarrayp): New name. + * test/automated/obarray-tests.el: Update the tests. + +2015-11-11 Nicolas Petton + + Rename obarray-foreach to obarray-map + + * lisp/obarray.el (obarray-map): New name. + * test/automated/obarray-tests.el: Update the corresponding tests. + +2015-11-11 Przemysław Wojnowski + + New file with obarray functions. + + * lisp/obarray.el: basic obarray functions extracted from abbrev.el + * test/automated/obarray-tests.el: new file + +2015-11-11 Eli Zaretskii + + Implement tray notifications for MS-Windows + + * src/w32fns.c (MY_NOTIFYICONDATAW): New typedef. + (NOTIFYICONDATAW_V1_SIZE, NOTIFYICONDATAW_V2_SIZE) + (NOTIFYICONDATAW_V3_SIZE, NIF_INFO, NIIF_NONE, NIIF_INFO) + (NIIF_WARNING, NIIF_ERROR, EMACS_TRAY_NOTIFICATION_ID) + (EMACS_NOTIFICATION_MSG): New macros. + (NI_Severity): New enumeration. + (get_dll_version, utf8_mbslen_lim, add_tray_notification) + (delete_tray_notification, Fw32_notification_notify) + (Fw32_notification_close): New functions. + (syms_of_w32fns): Defsubr functions exposed to Lisp. DEFSYM + keywords used by w32-notification-notify. + + * doc/lispref/os.texi (Desktop Notifications): Describe the native + w32 tray notifications. + +2015-11-11 Alan Mackenzie + + First commit to scratch/follow. Make Isearch work with Follow Mode, etc. + + doc/lispref/window.texi (Basic Windows): Add paragraph defining "Group of + Windows" and new @defun selected-window-group. + (Window Start and End): Describe new &optional parameter GROUP and + ...-group-function for window-start, window-end, set-window-start, and + pos-visible-in-window-p. + (Textual Scrolling) Describe the same for recenter. + doc/lispref/positions.texi (Screen Lines): Describe the same for + move-to-window-line. + + src/window.c (Fwindow_start, Fwindow_end, Fset_window_start) + (Fpos_visible_in_window_p, Frecenter, Fmove_to_window_line): To each, add ar + new optional parameter "group". At the beginning of each, check whether the + corresponding ...-group-function is set to a function, and if so execute this + function in place of the normal processing. + (syms_of_window): Define symbols for the six new variables below. + (window-start-group-function, window-end-group-function) + (set-window-start-group-function, recenter-group-function) + (pos-visible-in-window-p-group-function, move-to-window-line-group-function): + New permanent local buffer local variables. + src/keyboard.c (Fposn_at_point): Add extra parameter in call to + Fpos_visible_in_window_p. + + lisp/window.el (selected-window-group-function): New permanent local buffer + local variable. + (selected-window-group): New function. + + lisp/follow.el (follow-mode): Set the ...-group-function variables at mode + enable, kill them at mode disable. Add/remove follow-after-change to/from + after-change-functions. + (follow-start-end-invalid): New variable. + (follow-redisplay): Manipulate follow-start-end-invalid. + (follow-after-change, follow-window-start, follow-window-end) + (follow-set-window-start, follow-pos-visible-in-window-p) + (follow-move-to-window-line, follow-sit-for): New functions. + + lisp/isearch.el (isearch-call-message): New macro. + (isearch-update, with-isearch-suspended, isearch-del-char) + (isearch-search-and-update, isearch-ring-adjust): Invoke above new macro. + (with-isearch-suspended): Rearrange code such that isearch-call-message is + invoked before point is moved. + (isearch-message): Add comment about where point must be at function call. + (isearch-search): Remove call to isearch-message. + (isearch-lazy-highlight-window-group): New variable. + (isearch-lazy-highlight-new-loop): Unconditionally start idle timer. Move + the battery of tests to ... + (isearch-lazy-highlight-maybe-new-loop): New function, started by idle timer. + Note: (sit-for 0) is still called. + (isearch-lazy-highlight-update): Check membership of + isearch-lazy-highlight-window-group. Don't set the `window' overlay + property. + (isearch-update, isearch-done, isearch-string-out-of-window) + (isearch-back-into-window, isearch-lazy-highlight-maybe-new-loop) + (isearch-lazy-highlight-search, isearch-lazy-highlight-update) + (isearch-lazy-highlight-update): Call the six amended primitives (see + src/window.c above) with the new `group' argument set to t, to cooperate + with Follow Mode. + +2015-11-11 Michael Albinus + + Optimize `file-equal-p' and `file-in-directory-p' in Tramp + + * lisp/net/tramp.el (tramp-handle-file-equal-p) + (tramp-handle-file-in-directory-p): New defuns. Suggested by + Harvey Chapman + + * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): + * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): + * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist): + * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): Use them. + +2015-11-10 Karl Fogel + + * CONTRIBUTE: Encourage adding tests. + + Based on this post from John Wiegley: + + From: "John Wiegley" + Subject: Re: [Emacs-diffs] master 1f02cbe: Fix bug#21766 and add test + To: Juanma Barranquero + Cc: emacs-diffs@gnu.org, bruce.connor.am@gmail.com, + emacs-devel + Date: Wed, 28 Oct 2015 18:45:29 -0700 + Message-ID: + + https://lists.gnu.org/archive/html/emacs-devel/2015-10/msg02372.html + +2015-11-10 David Reitter + + Avoid creating notification objects when possible + + * src/nsterm.m (windowWillEnterFullScreen, windowWillExitFullScreen:, + windowDidEnterFullScreen, windowDidExitFullScreen): provide + convenience functions that do not require a notification object. When + needed, define NSWindowDidEnterFullScreenNotification to allow for + compilation on OS X 10.6.8. + +2015-11-10 Paul Eggert + + Move INTEGER_TO_CONS body out of .h file + + * src/data.c (INTBIG_TO_LISP): New macro, with most + of the contents of the old INTEGER_TO_CONS. + (intbig_to_lisp, uintbig_to_lisp): New functions. + * src/lisp.h (INTEGER_TO_CONS): + Simplify by using EXPR_SIGNED and the new functions. + This shrinks code size a bit, and makes it easier to + put a breakpoint on handling of large integers. + +2015-11-10 Paul Eggert + + Merge from gnulib + + This incorporates: + 2015-11-10 intprops: new public macro EXPR_SIGNED + 2015-11-10 intprops: fix typo in clang port + * lib/intprops.h: Copy from gnulib. + +2015-11-10 Paul Eggert + + Spelling fixes + + * lisp/net/soap-inspect.el (soap-inspect-xs-simple-type): + Fix misspelling in output. + +2015-11-10 Artur Malabarba + + * doc/lispref/variables.texi (Directory Local Variables): + + Document dir-locals wildcards + + * lisp/files.el (dir-locals-file): Point to Info node. + + * doc/emacs/custom.texi (Directory Variables): + Document dir-locals wildcards. + + * etc/NEWS: Document new functionality. + +2015-11-10 Artur Malabarba + + * lisp/files.el: Don't allow customization of dir-locals sorting + + In retrospect, this is not a good idea for the same reason that + `dir-locals-file' is a defconst, because it is important that this + behaviour be "uniform across different environments and users". + Sure, the user can still change the sorting with a hack, but we + shouldn't encourage them to change it. + + (dir-locals--all-files): Return list in the order returned by + `file-expand-wildcards'. + (file-expand-wildcards): Document the sorting predicate used. + (dir-locals-sort-predicate): Delete variable. + +2015-11-10 Artur Malabarba + + * lisp/files.el (dir-locals-read-from-file): Better handle errors + + * lisp/isearch.el (search-default-regexp-mode): change default value + +2015-11-10 Artur Malabarba + + * lisp/files.el (dir-locals-find-file): Don't stop at unreadable files + + `locate-dominating-file' will now keep looking if the files it finds in + a given directory are unreadable (or not files). + +2015-11-10 Artur Malabarba + + * lisp/files.el (dir-locals-file): Allow wildcards + + (dir-locals-find-file, dir-locals-collect-variables) + (dir-locals-read-from-file): Update accordingly. + (hack-dir-local-variables): Rename a local variable. + + * lisp/files-x.el (modify-dir-local-variable): Update accordingly + + * lisp/help-fns.el (describe-variable): Update accordingly + + * .gitignore: Add .dir-locals?.el + +2015-11-10 Artur Malabarba + + * lisp/emacs-lisp/map.el (map-merge-with): New function + + * test/automated/map-tests.el (test-map-merge-with): New test + +2015-11-10 Karl Fogel + + Fix some recently-perturbed bookmark autoloads + + * lisp/bookmark.el (bookmark-set-internal): Remove unnecessary autoload. + (bookmark-set): Restore autoload. + (bookmark-set-no-overwrite): Add autoload. + + Thanks to Juanma Barranquero for noticing the autoload problems + introduced by my recent commit adding/changing the above functions + (Sun Nov 8 14:16:43 2015 -0500, git commit 3812e17978). + +2015-11-10 Noah Friedman + + (ydump-buffer): Handle case where gap is at the start of buffer. + I don't recall if older versions of gdb were less strict but you + cannot dump a 0-length range in gdb 7.9.1. + +2015-11-10 Dmitry Gutov + + * lisp/progmodes/project.el: Update Commentary. + + Merge branch 'project-next' + +2015-11-10 Dmitry Gutov + + Fold `project-ask-user' into `project-current' + + * lisp/progmodes/project.el (project-find-functions): Remove + `project-ask-user'. + (project-ask-user): Remove function and the corresponding + `project-roots' implementation. + (project-current): Add a new argument, MAYBE-PROMPT. Prompt the + user in case there's no project in the current directory. Update + all callers. + +2015-11-09 Karl Fogel + + When VC detects a conflict, specify which file + + * lisp/vc/vc.el (vc-message-unresolved-conflicts): New function. + * lisp/vc/vc-svn.el (vc-svn-find-file-hook): + * lisp/vc/vc-hg.el (vc-hg-find-file-hook): + * lisp/vc/vc-bzr.el (vc-bzr-find-file-hook): + * lisp/vc/vc-git.el (vc-git-find-file-hook): Use above new function + to display a standard message that specifies the conflicted file. + + Before this change, the message VC used for indicating a conflicted + file was just "There are unresolved conflicts in this file" without + naming the file (and this language was duplicated in several places). + After this change, it's "There are unresolved conflicts in file FOO" + (and this language is now centralized in one function in vc.el). + + Justification: It's important for the message to name the conflicted + file because the moment when VC realizes a file is conflicted does not + always come interactively. For example, some people automatically + find a set of Org Mode files on startup, and may keep those .org files + under version control. If any of the files are conflicted, the user + just sees some messages fly by, and might later check the "*Messages*" + buffer to find out what files were conflicted. I'm not saying this + happened to me or anything; it's a purely hypothetical example. + +2015-11-09 Eli Zaretskii + + Fix assertion violation in define-key + + * src/keymap.c (store_in_keymap): Don't use XFASTINT on non-character + objects. Reported by Drew Adams + and Juanma Barranquero . + +2015-11-09 Dima Kogan + + Fix a memory leak in GC of font cache + + * src/alloc.c (compact_font_cache_entry): Don't GC unmarked font + entities if some of the fonts it references are marked. This + plugs a memory leak. (Bug#21556) + +2015-11-09 Paul Eggert + + Use INT_ADD_WRAPV etc. to check integer overflow + + * src/alloc.c (xnmalloc, xnrealloc, xpalloc, Fmake_string): + * src/buffer.c (record_overlay_string, overlay_strings): + * src/casefiddle.c (casify_object): + * src/ccl.c (Fccl_execute_on_string): + * src/character.c (char_width, c_string_width, lisp_string_width) + (count_size_as_multibyte, string_escape_byte8): + * src/coding.c (coding_alloc_by_realloc, produce_chars): + * src/data.c (arith_driver): + * src/dispnew.c (realloc_glyph_pool, init_display): + * src/editfns.c (styled_format): + * src/fns.c (Ffillarray): + * src/ftfont.c (ftfont_shape_by_flt): + * src/gnutls.c (gnutls_hex_string): + * src/gtkutil.c (get_utf8_string): + * src/image.c (x_to_xcolors, x_detect_edges, png_load_body): + * src/keymap.c (Fkey_description): + * src/lisp.h (SAFE_ALLOCA_LISP): + * src/term.c (encode_terminal_code): + * src/tparam.c (tparam1): + * src/xselect.c (x_property_data_to_lisp): + * src/xsmfns.c (smc_save_yourself_CB): + * src/xterm.c (x_term_init): + When checking for integer overflow, prefer INT_MULTIPLY_WRAPV to + more-complicated code involving division and/or + INT_MULTIPLY_OVERFLOW, and similarly for INT_ADD_WRAPV and + subtraction and/or INT_ADD_OVERFLOW. + * src/casefiddle.c (casify_object): Simplify multibyte size check. + * src/character.c: Remove some obsolete ‘#ifdef emacs’s. + * src/data.c (arith_driver): Also check for division overflow, + as that’s now possible given that the accumulator can now contain + any Emacs integer. + * src/lisp.h (lisp_word_count): Remove; no longer used. + +2015-11-09 Dmitry Gutov + + Make sure that the ignore file exists + + * lisp/vc/vc.el (vc-default-ignore-completion-table): + Make sure that the ignore file exists. + +2015-11-09 Michael Sperber + + * lisp/gnus-sum.el (gnus-summary-backend-map): Bind B-backspace to + `gnus-summary-delete-article` in a way that also works on XEmacs. + +2015-11-08 Simen Heggestøyl + + Add support for retrieving paths to JSON elements + + Add support for retrieving the path to a JSON element. This can for + instance be useful to retrieve paths in deeply nested JSON + structures. + + * lisp/json.el (json-pre-element-read-function) + (json-post-element-read-function): New variables to hold pre- and post + read callback functions for `json-read-array' and `json-read-object'. + (json--path): New variable used internally by `json-path-to-position'. + (json--record-path, json--check-position): New functions used + internally by `json-path-to-position'. + (json-path-to-position): New function for retrieving the path to a + JSON element at a given position. + (json-read-object, json-read-array): Call + `json-pre-element-read-function' and `json-post-element-read-function' + when set. + + * test/automated/json-tests.el (test-json-path-to-position-with-objects) + (test-json-path-to-position-with-arrays) + (test-json-path-to-position-no-match): New tests for + `json-path-to-position'. + +2015-11-08 Karl Fogel + + * etc/NEWS: Mention new `bookmark-set-no-overwrite'. + + This really should been part of my previous commit + (Sun Nov 8 14:16:43 2015 -0500, git commit 3812e17978). + +2015-11-08 Karl Fogel + + Offer non-overwrite bookmark setter (Bug#15746) + + * lisp/bookmark.el (bookmark-set-internal): New helper function to do + what `bookmark-set' used to do, but with more choices for overwrite + vs push, and with minor changes to the interactive prompt format. + (bookmark-set): Rewrite as wrapper around above. + If overwriting, inform the user of that in the prompt. + (bookmark-set-no-overwrite): New function, also done as wrapper. + Bind to "M" in `ctl-x-r-map' autoloads. + (bookmark-map): Similarly bind "M" here. + +2015-11-08 Paul Eggert + + * src/unexelf.c (NEW_PROGRAM_H): Remove unused macro (Bug#20614). + +2015-11-08 Alan Modra + + ELF unexec: Don't insert a new section + + Reuse the .bss section instead, making it SHT_PROGBITS. This way we + don't need to mess with symbol st_shndx, or section sh_link and + sh_info. + + This does lead to eu-elflint complaints about symbols defined in .bss + with a needed version, because normally it is undefined symbols that + have needed versions; Defined symbols have version definitions. + The exception is symbols defined by the linker in .dynbss for + variables copied from a shared library in order to avoid text + relocations, with copy relocs to copy their initial values from the + shared library. These symbols are both defined and have needed + versions, and eu-elflink only expects to see them in SHT_NOBITS + sections. Of course there is no real problem with having such symbols + in SHT_PROGBITS sections. glibc ld.so handles them fine. + + * src/unexelf.c: Delete outdated comments. + (PATCH_INDEX): Delete. + (find_section): Delete. + (unexec): Don't add a new section. Instead reuse the last bss + section, extending it to cover dumped data. Make bss sections + SHT_PROGBITS. Remove all patching of sh_link, sh_info and + st_shndx. Rename bss sections. + +2015-11-08 Alan Modra + + ELF unexec: Drive from PT_LOAD header rather than sections + + This rewrites bss handling in the ELF unexec code. Finding bss + sections by name results in complicated code that + - does not account for all names of possible bss sections, + - assumes specific ordering of bss sections, + - can wrongly choose a SHT_NOBITS section not in the bss segment, + - incorrectly calculates bss size (no accounting for alignment gaps), + - assumes .data and .bss are in the same segment. + + All of these problems and more are solved by finding the bss segment + in PT_LOAD headers, ie. the address range included in p_memsz but not + p_filesz of the last PT_LOAD header, then matching SHT_NOBITS sections + in that address range. + + * src/unexelf.c: Delete old ppc comment. + (OLD_PROGRAM_H): Define. + (round_up): Delete. + (unexec): Don't search for bss style sections by name. Instead, + use the last PT_LOAD header address range covered by p_memsz + but not p_filesz and match any SHT_NOBITS section in that + address range. Simplify initialisation of section header vars. + Don't assume that section headers are above bss segment. Move + copying of bss area out of section loop. Align .data2 section + to 1, since it now covers the entire bss area. For SHT_NOBITS + sections in the bss segment, leave sh_addr and sh_addralign + unchanged, but correct sh_offset. Clear memory corresponding + to SHT_NOBITS .plt section. Delete comment and hacks for + sections partly overlapping bss range now that the full range + is properly calculated. Delete now dead .sbss code. + (Bug#20614) + +2015-11-08 Alan Modra + + ELF unexec: R_*_NONE relocs + + These should be ignored on all targets. + + * src/unexelf.c (unexec): Ignore R_*_NONE relocs for any target, + not just Alpha. Comment on reloc size assumption. + +2015-11-08 Alan Modra + + ELF unexec: _OBJC_ symbols in bss sections + + This code assumed that there was only one bss section. Rather than + checking for a particular index, check the section type. Also, handle + the possibility that the section was SHT_NOBITS originally and is + unchanged, in which case no clearing is needed (and sh_offset isn't + necessarily valid, which can lead to a wild memset). + + * src/unexelf.c (unexec): Properly handle _OBJC_ symbols in bss sections. + +2015-11-08 Alan Modra + + ELF unexec: Symbol table patching + + No st_shndx value larger than SHN_LORESERVE should be changed. + * src/unexelf.c (unexec): Don't adjust any st_shndx larger than + SHN_LORESERVE. Error on SHN_XINDEX. + +2015-11-08 Alan Modra + + ELF unexec: Merge Alpha and MIPS COFF debug handling + + * src/unexelf.c (unexec): Merge Alpha and MIPS COFF debug handling. + Don't find .mdebug section index, find the section in the loop. + Allow for unlikely possibility that .mdebug is located at sh_offset + before bss segment, by calculating move from difference in + sh_offset rather than just assuming new_data2_size. Simplify + cbLineOffset handling. + +2015-11-08 Alan Modra + + ELF unexec: Tidy code + + Separate out some of the more mechanical changes so following patches + are smaller. + + * src/unexelf.c (unexec): Rearrange initialisation of program + header vars. Use pointer vars in loops rather than indexing + section header array via macros. Simplify _OBJC_ sym code + and reloc handling code. + +2015-11-08 Alan Modra + + ELF unexec: Correct section header index + + First a small fix. The code incorrectly uses "NEW_SECTION_H (n)" when + it should have been using "NEW_SECTION_H (nn)" to find the name of the + section currently being processed. Of course, before the bss + sections, n and nn have the same value, so this doesn't matter except + in the case of .sbss. For .sbss this probably meant .bss (most likely + the next section) was copied from memory. A later patch removes the + bogus .sbss handling anyway. + + * src/unexelf.c (unexec): Use correct index to look up names. + +2015-11-08 Michael Albinus + + Fix Bug#21841 + + * lisp/filenotify.el (file-notify--rm-descriptor): + Use `descriptor' instead of computing its value. + (file-notify--descriptor): Additional argument FILE. Adapt all callees. + (file-notify-rm-watch): Use `descriptor' when calling file name handler. + (Bug#21841) + +2015-11-08 Dmitry Gutov + + Remove dirs in vc project roots from the the vc project library roots + + * lisp/progmodes/project.el (project-library-roots): Remove + directories inside the project roots from the result. + (http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg00536.html) + +2015-11-08 Dmitry Gutov + + Move and rename xref-find-regexp to the project package + + * lisp/progmodes/project.el (project-find-regexp) + (project--read-regexp) + (project--find-regexp-in): New functions. + + * lisp/progmodes/xref.el (xref--find-xrefs): Extract from + xref--show-xrefs. Use in existing callers in place of that + function. + (xref--show-xrefs): Only do the "show" part. + (xref-find-regexp): Rename, more or less, to + project-or-libraries-find-regexp. + +2015-11-06 Dmitry Gutov + + Abolish temporary buffer management for xref + + * lisp/progmodes/xref.el (xref--temporary-buffers) + (xref--current) + (xref--inhibit-mark-current) + (xref--mark-selected): Remove. Remove all references. + (xref--show-xrefs): Do not construct the + list of the temporary buffers, nor pass it along. + +2015-11-06 Dmitry Gutov + + Rename "search path" to "library roots" + + * lisp/emacs-lisp/cl-seq.el (cl-set-difference): Retain the order + of the elements from CL-LIST1. + + * test/automated/cl-lib-tests.el (cl-lib-test-set-functions): + Update WRT to the above change. + + * lisp/progmodes/project.el (project-search-path-function): Rename + to project-library-roots-function, update the documentation and + references. + (project-search-path): Likewise, to project-library-roots. + (project-roots): Clarify documentation. + (project-vc-search-path): Likewise, to project-vc-library-roots. + (project-library-roots): In addition to the renames, thread the + results through file-name-as-directory. + (project-prune-directories): Accept a variable number of + arguments. Rename to project-combine-directories. + (project-subtract-directories): New function. + + * lisp/progmodes/elisp-mode.el (elisp--xref-find-references): + Append project-roots and project-library-roots together. + + * lisp/progmodes/etags.el (etags--xref-find-references): Ditto. + 2015-11-08 Paul Eggert Prefer xpalloc to doubling buffers by hand @@ -17955,7 +26324,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit 8a8613bcf4227dfe46a694b761e9575bdf6ca2ce (inclusive). +commit d5195155f9a297dc45a40c9b7175715ffe4f1612 (inclusive). See ChangeLog.1 for earlier changes. ;; Local Variables: commit eea0a2359f33a100cb340a7988d20cd78ebcd4a4 Author: Nicolas Petton Date: Sat Jan 30 14:38:46 2016 +0100 authors.el updates * admin/authors.el (authors-renamed-files-alist): Additions. diff --git a/admin/authors.el b/admin/authors.el index a303f4b..9b3deef 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -919,6 +919,9 @@ in the repository.") ("notes/bzr" . "notes/repo") ;; moved from lisp/ to lisp/net/ ("lisp/pinentry.el" . "lisp/net/pinentry.el") + ;; module.* moved to emacs-module.* + ("src/module.h" . "src/emacs-module.h") + ("src/module.c" . "src/emacs-module.c") ) "Alist of files which have been renamed during their lifetime. Elements are (OLDNAME . NEWNAME).") commit a4ab2a563a062e76b9e79befd3a80fdbea523f16 Author: Nicolas Petton Date: Sat Jan 30 10:35:55 2016 +0100 Make it possible to run make change-history on emacs-25 * Makefile.in: Check if the current branch is emacs-25 instead of master. diff --git a/Makefile.in b/Makefile.in index b792e7c..75fd150 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1089,7 +1089,7 @@ bootstrap: bootstrap-clean $(MAKE) all .PHONY: ChangeLog change-history change-history-commit change-history-nocommit -.PHONY: master-branch-is-current unchanged-history-files +.PHONY: emacs-25-branch-is-current unchanged-history-files CHANGELOG = ChangeLog emacslog = build-aux/gitlog-to-emacslog @@ -1106,8 +1106,8 @@ ChangeLog: ./$(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX) # Check that we are in a good state for changing history. -master-branch-is-current: - git branch | grep -q '^\* master$$' +emacs-25-branch-is-current: + git branch | grep -q '^\* emacs-25$$' unchanged-history-files: x=$$(git diff-files --name-only $(CHANGELOG_N) $(emacslog)) && \ test -z "$$x" @@ -1117,7 +1117,7 @@ new_commit_regexp = ^commit [0123456789abcdef]* (inclusive) # Copy newer commit messages to the start of the ChangeLog history file, # and consider them to be older. -change-history-nocommit: master-branch-is-current unchanged-history-files +change-history-nocommit: emacs-25-branch-is-current unchanged-history-files -rm -f ChangeLog.tmp $(MAKE) ChangeLog CHANGELOG=ChangeLog.tmp sed '/^This file records repository revisions/,$$d' \ commit 40a85fba441aa69d47ef9efd645df3411e43ae21 Author: lu4nx Date: Sat Jan 30 14:56:43 2016 +0200 Support Go language in 'etags' * lib-src/etags.c : Fix documentation of Ruby tags. : New help. : New variable. (Go_functions): New function. : Add entry for Go. (Bug#22370) * doc/emacs/maintaining.texi (Tag Syntax): Document Go support. * doc/man/etags.1: Mention Go support. * etc/NEWS: Mention Go support. * test/etags/go-src/test.go: * test/etags/go-src/test1.go: New test files. * test/etags/Makefile (GOSRC): New variable. (SRCS): Add $(GOSRC). * test/etags/ETAGS.good_1: * test/etags/ETAGS.good_2: * test/etags/ETAGS.good_3: * test/etags/ETAGS.good_4: * test/etags/ETAGS.good_5: * test/etags/ETAGS.good_6: * test/etags/CTAGS.good: Adapt to addition of Go tests. diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 7039de6..3f1a9c0 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -2218,6 +2218,9 @@ in the file. In Fortran code, functions, subroutines and block data are tags. @item +In Go code, packages, functions, and types are tags. + +@item In HTML input files, the tags are the @code{title} and the @code{h1}, @code{h2}, @code{h3} headers. Also, tags are @code{name=} in anchors and all occurrences of @code{id=}. diff --git a/doc/man/etags.1 b/doc/man/etags.1 index d34063f..fc247f7 100644 --- a/doc/man/etags.1 +++ b/doc/man/etags.1 @@ -50,7 +50,7 @@ format understood by .BR vi ( 1 )\c \&. Both forms of the program understand the syntax of C, Objective C, C++, Java, Fortran, Ada, Cobol, Erlang, -Forth, HTML, LaTeX, Emacs Lisp/Common Lisp, Lua, Makefile, Pascal, Perl, +Forth, Go, HTML, LaTeX, Emacs Lisp/Common Lisp, Lua, Makefile, Pascal, Perl, Ruby, PHP, PostScript, Python, Prolog, Scheme and most assembler\-like syntaxes. Both forms read the files specified on the command line, and write a tag diff --git a/etc/NEWS b/etc/NEWS index 78dce16..d0415a2 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1834,6 +1834,10 @@ Names of modules, classes, methods, functions, and constants are tagged. Overloaded operators are also tagged. +++ +*** New language Go +Names of packages, functions, and types are tagged. + ++++ *** Improved support for Lua Etags now tags functions even if the "function" keyword follows some diff --git a/lib-src/etags.c b/lib-src/etags.c index adc08a2..bdfced5 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -354,6 +354,7 @@ static void Cstar_entries (FILE *); static void Erlang_functions (FILE *); static void Forth_words (FILE *); static void Fortran_functions (FILE *); +static void Go_functions (FILE *); static void HTML_labels (FILE *); static void Lisp_functions (FILE *); static void Lua_functions (FILE *); @@ -641,6 +642,10 @@ static const char *Fortran_suffixes [] = static const char Fortran_help [] = "In Fortran code, functions, subroutines and block data are tags."; +static const char *Go_suffixes [] = {"go", NULL}; +static const char Go_help [] = + "In Go code, functions, interfaces and packages are tags."; + static const char *HTML_suffixes [] = { "htm", "html", "shtml", NULL }; static const char HTML_help [] = @@ -727,7 +732,7 @@ static const char *Ruby_suffixes [] = { "rb", "ruby", NULL }; static const char Ruby_help [] = "In Ruby code, 'def' or 'class' or 'module' at the beginning of\n\ -a line generate a tag."; +a line generate a tag. Constants also generate a tag."; /* Can't do the `SCM' or `scm' prefix with a version number. */ static const char *Scheme_suffixes [] = @@ -794,6 +799,7 @@ static language lang_names [] = { "erlang", Erlang_help, Erlang_functions, Erlang_suffixes }, { "forth", Forth_help, Forth_words, Forth_suffixes }, { "fortran", Fortran_help, Fortran_functions, Fortran_suffixes }, + { "go", Go_help, Go_functions, Go_suffixes }, { "html", HTML_help, HTML_labels, HTML_suffixes }, { "java", Cjava_help, Cjava_entries, Cjava_suffixes }, { "lisp", Lisp_help, Lisp_functions, Lisp_suffixes }, @@ -4209,6 +4215,73 @@ Fortran_functions (FILE *inf) /* + * Go language support + * Original code by Xi Lu (2016) + */ +static void +Go_functions(FILE *inf) +{ + char *cp, *name; + + LOOP_ON_INPUT_LINES(inf, lb, cp) + { + cp = skip_spaces (cp); + + if (LOOKING_AT (cp, "package")) + { + name = cp; + while (!notinname (*cp) && *cp != '\0') + cp++; + make_tag (name, cp - name, false, lb.buffer, + cp - lb.buffer + 1, lineno, linecharno); + } + else if (LOOKING_AT (cp, "func")) + { + /* Go implementation of interface, such as: + func (n *Integer) Add(m Integer) ... + skip `(n *Integer)` part. + */ + if (*cp == '(') + { + while (*cp != ')') + cp++; + cp = skip_spaces (cp+1); + } + + if (*cp) + { + name = cp; + + while (!notinname (*cp)) + cp++; + + make_tag (name, cp - name, true, lb.buffer, + cp - lb.buffer + 1, lineno, linecharno); + } + } + else if (members && LOOKING_AT (cp, "type")) + { + name = cp; + + /* Ignore the likes of the following: + type ( + A + ) + */ + if (*cp == '(') + return; + + while (!notinname (*cp) && *cp != '\0') + cp++; + + make_tag (name, cp - name, false, lb.buffer, + cp - lb.buffer + 1, lineno, linecharno); + } + } +} + + +/* * Ada parsing * Original code by * Philippe Waroquiers (1998) diff --git a/test/etags/CTAGS.good b/test/etags/CTAGS.good index 86eb9f8..846725e 100644 --- a/test/etags/CTAGS.good +++ b/test/etags/CTAGS.good @@ -947,6 +947,10 @@ MoveLayerAfter lua-src/allegro.lua /^function MoveLayerAfter (this_one)$/ MoveLayerBefore lua-src/allegro.lua /^function MoveLayerBefore (this_one)$/ MoveLayerBottom lua-src/allegro.lua /^function MoveLayerBottom ()$/ MoveLayerTop lua-src/allegro.lua /^function MoveLayerTop ()$/ +Mtest.go go-src/test.go 1 +Mtest.go go-src/test.go /^func main() {$/ +Mtest1.go go-src/test1.go 1 +Mtest1.go go-src/test1.go /^func main() {$/ Mx.cc cp-src/x.cc /^main(int argc, char *argv[])$/ NAME y-src/cccp.c 8 NATNUMP c-src/emacs/src/lisp.h /^NATNUMP (Lisp_Object x)$/ @@ -1077,6 +1081,8 @@ Pkg1_Proc2/p ada-src/waroquiers.ada /^ procedure Pkg1_Proc2 (I : Integer);$/ Pkg1_Proc2/p ada-src/waroquiers.ada /^ procedure Pkg1_Proc2 (I : Integer) is$/ PostControls pyt-src/server.py /^ def PostControls(self):$/ Pre_Call_State/t ada-src/2ataspri.ads /^ type Pre_Call_State is new System.Address;$/ +PrintAdd go-src/test1.go /^func (s str) PrintAdd() {$/ +PrintAdd go-src/test1.go /^func (n intNumber) PrintAdd() {$/ Private objc-src/Subprocess.m /^@interface Subprocess(Private)$/ Private_T/b ada-src/etags-test-for.ada /^ task body Private_T is$/ Private_T/b ada-src/waroquiers.ada /^ task body Private_T is$/ @@ -3135,6 +3141,7 @@ instance_method_question? ruby-src/test.rb /^ def instance_method_questio instr y-src/parse.y 80 instr parse.y 80 instruct c-src/etags.c 2527 +intNumber go-src/test1.go 13 integer c-src/emacs/src/lisp.h 2127 integer cccp.y 113 integer y-src/cccp.y 112 @@ -3738,6 +3745,7 @@ plain_C_suffixes c-src/etags.c 643 plainc c-src/etags.c 2934 plist c-src/emacs/src/lisp.h 697 plus cp-src/functions.cpp /^void Date::plus ( int days , int month , int year / +plus go-src/test1.go 5 plusvalseq prol-src/natded.prolog /^plusvalseq([]) --> [].$/ pointer c-src/emacs/src/lisp.h 2125 poll_for_input c-src/emacs/src/keyboard.c /^poll_for_input (struct atimer *timer)$/ @@ -3950,6 +3958,7 @@ save_getcjmp c-src/emacs/src/keyboard.c /^save_getcjmp (sys_jmp_buf temp)$/ save_type c-src/emacs/src/lisp.h /^save_type (struct Lisp_Save_Value *v, int n)$/ savenstr c-src/etags.c /^savenstr (const char *cp, int len)$/ savestr c-src/etags.c /^savestr (const char *cp)$/ +say go-src/test.go /^func say(msg string) {$/ scan_separators c-src/etags.c /^scan_separators (char *name)$/ scolonseen c-src/etags.c 2447 scratch c-src/sysdep.h 56 @@ -4075,6 +4084,7 @@ step cp-src/clheir.hpp /^ virtual void step(void) { }$/ step_everybody cp-src/clheir.cpp /^void step_everybody(void)$/ stop_polling c-src/emacs/src/keyboard.c /^stop_polling (void)$/ store_user_signal_events c-src/emacs/src/keyboard.c /^store_user_signal_events (void)$/ +str go-src/test1.go 9 strcaseeq c-src/etags.c /^#define strcaseeq(s,t) (assert ((s)!=NULL && (t)!=/ streq c-src/etags.c /^#define streq(s,t) (assert ((s)!=NULL || (t)!=NULL/ string_intervals c-src/emacs/src/lisp.h /^string_intervals (Lisp_Object s)$/ @@ -4217,6 +4227,7 @@ terminateInput objc-src/Subprocess.m /^- terminateInput$/ test c-src/emacs/src/lisp.h 1871 test cp-src/c.C 86 test erl-src/gs_dialog.erl /^test() ->$/ +test go-src/test1.go /^func test(p plus) {$/ test php-src/ptest.php /^test $/ test.me22b lua-src/test.lua /^ local function test.me22b (one)$/ test.me_22a lua-src/test.lua /^ function test.me_22a(one, two)$/ diff --git a/test/etags/ETAGS.good_1 b/test/etags/ETAGS.good_1 index 44ac091..c7b1221 100644 --- a/test/etags/ETAGS.good_1 +++ b/test/etags/ETAGS.good_1 @@ -2283,6 +2283,18 @@ constant (a-forth-constant(a-forth-constant38,628 code assemby-code-word 43,685 : a-forth-word 50,870 +go-src/test.go,48 +package main1,0 +func say(5,28 +func main(9,72 + +go-src/test1.go,119 +package main1,0 +func (s str) PrintAdd(17,136 +func (n intNumber) PrintAdd(21,189 +func test(25,248 +func main(29,285 + html-src/softwarelibero.html,200 Cos'è il software libero?4,38 Licenze d'uso di un programmalicenze65,2500 diff --git a/test/etags/ETAGS.good_2 b/test/etags/ETAGS.good_2 index 8a93e3b..8d0f338 100644 --- a/test/etags/ETAGS.good_2 +++ b/test/etags/ETAGS.good_2 @@ -2852,6 +2852,18 @@ constant (a-forth-constant(a-forth-constant38,628 code assemby-code-word 43,685 : a-forth-word 50,870 +go-src/test.go,48 +package main1,0 +func say(5,28 +func main(9,72 + +go-src/test1.go,119 +package main1,0 +func (s str) PrintAdd(17,136 +func (n intNumber) PrintAdd(21,189 +func test(25,248 +func main(29,285 + html-src/softwarelibero.html,200 Cos'è il software libero?4,38 Licenze d'uso di un programmalicenze65,2500 diff --git a/test/etags/ETAGS.good_3 b/test/etags/ETAGS.good_3 index e575b40..060389c 100644 --- a/test/etags/ETAGS.good_3 +++ b/test/etags/ETAGS.good_3 @@ -2600,6 +2600,21 @@ constant (a-forth-constant(a-forth-constant38,628 code assemby-code-word 43,685 : a-forth-word 50,870 +go-src/test.go,48 +package main1,0 +func say(5,28 +func main(9,72 + +go-src/test1.go,172 +package main1,0 +type plus 5,28 +type str 9,65 +type intNumber 13,99 +func (s str) PrintAdd(17,136 +func (n intNumber) PrintAdd(21,189 +func test(25,248 +func main(29,285 + html-src/softwarelibero.html,200 Cos'è il software libero?4,38 Licenze d'uso di un programmalicenze65,2500 diff --git a/test/etags/ETAGS.good_4 b/test/etags/ETAGS.good_4 index 2825806..40404f9 100644 --- a/test/etags/ETAGS.good_4 +++ b/test/etags/ETAGS.good_4 @@ -2447,6 +2447,18 @@ constant (a-forth-constant(a-forth-constant38,628 code assemby-code-word 43,685 : a-forth-word 50,870 +go-src/test.go,48 +package main1,0 +func say(5,28 +func main(9,72 + +go-src/test1.go,119 +package main1,0 +func (s str) PrintAdd(17,136 +func (n intNumber) PrintAdd(21,189 +func test(25,248 +func main(29,285 + html-src/softwarelibero.html,200 Cos'è il software libero?4,38 Licenze d'uso di un programmalicenze65,2500 diff --git a/test/etags/ETAGS.good_5 b/test/etags/ETAGS.good_5 index 35bb353..432819d 100644 --- a/test/etags/ETAGS.good_5 +++ b/test/etags/ETAGS.good_5 @@ -3333,6 +3333,21 @@ constant (a-forth-constant(a-forth-constant38,628 code assemby-code-word 43,685 : a-forth-word 50,870 +go-src/test.go,48 +package main1,0 +func say(5,28 +func main(9,72 + +go-src/test1.go,172 +package main1,0 +type plus 5,28 +type str 9,65 +type intNumber 13,99 +func (s str) PrintAdd(17,136 +func (n intNumber) PrintAdd(21,189 +func test(25,248 +func main(29,285 + html-src/softwarelibero.html,200 Cos'è il software libero?4,38 Licenze d'uso di un programmalicenze65,2500 diff --git a/test/etags/ETAGS.good_6 b/test/etags/ETAGS.good_6 index 8add300..4ad5d76 100644 --- a/test/etags/ETAGS.good_6 +++ b/test/etags/ETAGS.good_6 @@ -3333,6 +3333,21 @@ constant (a-forth-constant(a-forth-constant38,628 code assemby-code-word 43,685 : a-forth-word 50,870 +go-src/test.go,48 +package main1,0 +func say(5,28 +func main(9,72 + +go-src/test1.go,172 +package main1,0 +type plus 5,28 +type str 9,65 +type intNumber 13,99 +func (s str) PrintAdd(17,136 +func (n intNumber) PrintAdd(21,189 +func test(25,248 +func main(29,285 + html-src/softwarelibero.html,200 Cos'è il software libero?4,38 Licenze d'uso di un programmalicenze65,2500 diff --git a/test/etags/Makefile b/test/etags/Makefile index 00d5b9f..21a77eb 100644 --- a/test/etags/Makefile +++ b/test/etags/Makefile @@ -11,6 +11,7 @@ ELSRC=$(addprefix ./el-src/,TAGTEST.EL emacs/lisp/progmodes/etags.el) ERLSRC=$(addprefix ./erl-src/,gs_dialog.erl) FORTHSRC=$(addprefix ./forth-src/,test-forth.fth) FSRC=$(addprefix ./f-src/,entry.for entry.strange_suffix entry.strange) +GOSRC=$(addprefix ./go-src/,test.go test1.go) HTMLSRC=$(addprefix ./html-src/,softwarelibero.html index.shtml algrthms.html software.html) #JAVASRC=$(addprefix ./java-src/, ) LUASRC=$(addprefix ./lua-src/,allegro.lua test.lua) @@ -27,9 +28,9 @@ RBSRC=$(addprefix ./ruby-src/,test.rb test1.ruby) TEXSRC=$(addprefix ./tex-src/,testenv.tex gzip.texi texinfo.tex nonewline.tex) YSRC=$(addprefix ./y-src/,parse.y parse.c atest.y cccp.c cccp.y) SRCS=${ADASRC} ${ASRC} ${CSRC} ${CPSRC} ${ELSRC} ${ERLSRC} ${FSRC}\ - ${FORTHSRC} ${HTMLSRC} ${JAVASRC} ${LUASRC} ${MAKESRC} ${OBJCSRC}\ - ${OBJCPPSRC} ${PASSRC} ${PHPSRC} ${PERLSRC} ${PSSRC} ${PROLSRC} ${PYTSRC}\ - ${RBSRC} ${TEXSRC} ${YSRC} + ${FORTHSRC} ${GOSRC} ${HTMLSRC} ${JAVASRC} ${LUASRC} ${MAKESRC}\ + ${OBJCSRC} ${OBJCPPSRC} ${PASSRC} ${PHPSRC} ${PERLSRC} ${PSSRC}\ + ${PROLSRC} ${PYTSRC} ${RBSRC} ${TEXSRC} ${YSRC} NONSRCS=./f-src/entry.strange ./erl-src/lists.erl ./cp-src/clheir.hpp.gz ETAGS_PROG=../../lib-src/etags diff --git a/test/etags/go-src/test.go b/test/etags/go-src/test.go new file mode 100644 index 0000000..6aea26e --- /dev/null +++ b/test/etags/go-src/test.go @@ -0,0 +1,11 @@ +package main + +import "fmt" + +func say(msg string) { + fmt.Println(msg) +} + +func main() { + say("Hello, Emacs!") +} diff --git a/test/etags/go-src/test1.go b/test/etags/go-src/test1.go new file mode 100644 index 0000000..6d1efaa --- /dev/null +++ b/test/etags/go-src/test1.go @@ -0,0 +1,34 @@ +package main + +import "fmt" + +type plus interface { + PrintAdd() +} + +type str struct { + a, b string +} + +type intNumber struct { + a, b int +} + +func (s str) PrintAdd() { + fmt.Println(s.a + s.b) +} + +func (n intNumber) PrintAdd() { + fmt.Println(n.a + n.b) +} + +func test(p plus) { + p.PrintAdd() +} + +func main() { + s := str{a: "Hello,", b: "Emacs!"} + number := intNumber{a: 1, b: 2} + test(number) + test(s) +} commit 25b79d7bc71079cd6ebb2700623e7e3b76b03287 Author: Eli Zaretskii Date: Sat Jan 30 14:16:36 2016 +0200 Improve Ruby support in 'etags' * lib-src/etags.c (Ruby_functions): Tag constants. Don't tag singleton classes. Remove class qualifiers from tags generated for method and constant names. (Bug#22241) * doc/emacs/maintaining.texi (Tag Syntax): Mention that constants are tagged by etags in Ruby. * etc/NEWS: Mention that constants are tagged by etags in Ruby. * test/etags/ruby-src/test1.ruby: Add more tests. * test/etags/ETAGS.good_1: * test/etags/ETAGS.good_2: * test/etags/ETAGS.good_3: * test/etags/ETAGS.good_4: * test/etags/ETAGS.good_5: * test/etags/ETAGS.good_6: * test/etags/CTAGS.good: Adapt to the changes in etags and in Ruby tests. diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 471a16b..7039de6 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -2264,7 +2264,7 @@ generate a tag. @item In Ruby code, @code{def} or @code{class} or @code{module} at the -beginning of a line generate a tag. +beginning of a line generate a tag. Constants also generate tags. @end itemize You can also generate tags based on regexp matching (@pxref{Etags diff --git a/etc/NEWS b/etc/NEWS index af2dee9..78dce16 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1830,8 +1830,8 @@ qualified names by hand. +++ *** New language Ruby -Names of modules, classes, methods, and functions are tagged. -Overloaded operators are also tagged. +Names of modules, classes, methods, functions, and constants are +tagged. Overloaded operators are also tagged. +++ *** Improved support for Lua diff --git a/lib-src/etags.c b/lib-src/etags.c index 54ed1b4..adc08a2 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -4550,18 +4550,68 @@ Ruby_functions (FILE *inf) LOOP_ON_INPUT_LINES (inf, lb, cp) { + bool is_class = false; + bool is_method = false; + char *name; + cp = skip_spaces (cp); - if (LOOKING_AT (cp, "def") - || LOOKING_AT (cp, "class") - || LOOKING_AT (cp, "module")) + if (c_isalpha (*cp) && c_isupper (*cp)) /* constants */ { - char *name = cp; + char *bp, *colon = NULL; + + name = cp; + + for (cp++; c_isalnum (*cp) || *cp == '_' || *cp == ':'; cp++) + { + if (*cp == ':') + colon = cp; + } + if (cp > name + 1) + { + bp = skip_spaces (cp); + if (*bp == '=' && c_isspace (bp[1])) + { + if (colon && !c_isspace (colon[1])) + name = colon + 1; + make_tag (name, cp - name, false, + lb.buffer, cp - lb.buffer + 1, lineno, linecharno); + } + } + } + else if ((is_method = LOOKING_AT (cp, "def")) /* module/class/method */ + || (is_class = LOOKING_AT (cp, "class")) + || LOOKING_AT (cp, "module")) + { + const char self_name[] = "self."; + const size_t self_size1 = sizeof ("self.") - 1; + + name = cp; /* Ruby method names can end in a '='. Also, operator overloading can define operators whose names include '='. */ while (!notinname (*cp) || *cp == '=') cp++; + /* Remove "self." from the method name. */ + if (cp - name > self_size1 + && strneq (name, self_name, self_size1)) + name += self_size1; + + /* Remove the class/module qualifiers from method names. */ + if (is_method) + { + char *q; + + for (q = name; q < cp && *q != '.'; q++) + ; + if (q < cp - 1) /* punt if we see just "FOO." */ + name = q + 1; + } + + /* Don't tag singleton classes. */ + if (is_class && strneq (name, "<<", 2) && cp == name + 2) + continue; + make_tag (name, cp - name, true, lb.buffer, cp - lb.buffer + 1, lineno, linecharno); } diff --git a/test/etags/CTAGS.good b/test/etags/CTAGS.good index 1c494d6..86eb9f8 100644 --- a/test/etags/CTAGS.good +++ b/test/etags/CTAGS.good @@ -227,6 +227,8 @@ A cp-src/c.C 117 A cp-src/fail.C 7 A cp-src/fail.C 23 A ruby-src/test1.ruby /^class A$/ +A ruby-src/test1.ruby /^module A$/ +ABC ruby-src/test1.ruby 11 ADDRESS c-src/emacs/src/gmalloc.c /^#define ADDRESS(B) ((void *) (((B) - 1) * BLOCKSIZ/ ALIGNOF_STRUCT_LISP_VECTOR c-src/emacs/src/lisp.h 1378 ALLOCATED_BEFORE_DUMPING c-src/emacs/src/gmalloc.c /^#define ALLOCATED_BEFORE_DUMPING(P) \\$/ @@ -289,6 +291,7 @@ B cp-src/c.C /^void B::B() {}$/ B cp-src/c.C 122 B cp-src/fail.C 8 B cp-src/fail.C 24 +B ruby-src/test1.ruby /^ class B$/ BE_Node cp-src/c.C /^void BE_Node::BE_Node() {}$/ BE_Node cp-src/c.C 77 BITS_PER_BITS_WORD c-src/emacs/src/lisp.h 125 @@ -438,7 +441,6 @@ Cjava_entries c-src/etags.c /^Cjava_entries (FILE *inf)$/ Cjava_help c-src/etags.c 551 Cjava_suffixes c-src/etags.c 549 ClassExample ruby-src/test.rb /^ class ClassExample$/ -ClassExample.class_method ruby-src/test.rb /^ def ClassExample.class_method$/ Clear/p ada-src/2ataspri.adb /^ procedure Clear (Cell : in out TAS_Cell) is$/ Clear/p ada-src/2ataspri.ads /^ procedure Clear (Cell : in out TAS_Cell)/ Cobol_help c-src/etags.c 558 @@ -458,6 +460,7 @@ Condition_Variable/t ada-src/2ataspri.ads /^ type Condition_Variable is privat Condition_Variable/t ada-src/2ataspri.ads /^ type Condition_Variable is$/ Configure pyt-src/server.py /^class Configure(Frame, ControlEdit):$/ ConfirmQuit pyt-src/server.py /^def ConfirmQuit(frame, context):$/ +Constant ruby-src/test1.ruby 26 ControlEdit pyt-src/server.py /^class ControlEdit(Frame):$/ Controls pyt-src/server.py /^class Controls:$/ CopyTextString pas-src/common.pas /^function CopyTextString;(*($/ @@ -939,7 +942,6 @@ Metags c-src/etags.c /^main (int argc, char **argv)$/ Mfail cp-src/fail.C /^main()$/ Mkai-test.pl perl-src/kai-test.pl /^package main;$/ ModuleExample ruby-src/test.rb /^module ModuleExample$/ -ModuleExample.module_class_method ruby-src/test.rb /^ def ModuleExample.module_class_method$/ More_Lisp_Bits c-src/emacs/src/lisp.h 801 MoveLayerAfter lua-src/allegro.lua /^function MoveLayerAfter (this_one)$/ MoveLayerBefore lua-src/allegro.lua /^function MoveLayerBefore (this_one)$/ @@ -2351,6 +2353,7 @@ __str__ pyt-src/server.py /^ def __str__(self):$/ __up c.c 160 _aligned_blocks c-src/emacs/src/gmalloc.c 1004 _aligned_blocks_mutex c-src/emacs/src/gmalloc.c 518 +_bar? ruby-src/test1.ruby /^ def self._bar?(abc)$/ _bytes_free c-src/emacs/src/gmalloc.c 376 _bytes_used c-src/emacs/src/gmalloc.c 374 _chunks_free c-src/emacs/src/gmalloc.c 375 @@ -2620,6 +2623,7 @@ childDidExit objc-src/Subprocess.m /^- childDidExit$/ chunks_free c-src/emacs/src/gmalloc.c 313 chunks_used c-src/emacs/src/gmalloc.c 311 cjava c-src/etags.c 2936 +class_method ruby-src/test.rb /^ def ClassExample.class_method$/ classifyLine php-src/lce_functions.php /^ function classifyLine($line)$/ clear cp-src/conway.hpp /^ void clear(void) { alive = 0; }$/ clear-abbrev-table c-src/abbrev.c /^DEFUN ("clear-abbrev-table", Fclear_abbrev_table, / @@ -2952,6 +2956,7 @@ foo f-src/entry.for /^ character*(*) function foo()$/ foo f-src/entry.strange_suffix /^ character*(*) function foo()$/ foo f-src/entry.strange /^ character*(*) function foo()$/ foo php-src/ptest.php /^foo()$/ +foo! ruby-src/test1.ruby /^ def foo!$/ foobar c-src/c.c /^int foobar() {;}$/ foobar c.c /^extern void foobar (void) __attribute__ ((section / foobar2 c-src/h.h 20 @@ -3450,6 +3455,7 @@ miti html-src/softwarelibero.html /^Sfatiamo alcuni miti$/ modifier_names c-src/emacs/src/keyboard.c 6319 modifier_symbols c-src/emacs/src/keyboard.c 6327 modify_event_symbol c-src/emacs/src/keyboard.c /^modify_event_symbol (ptrdiff_t symbol_num, int mod/ +module_class_method ruby-src/test.rb /^ def ModuleExample.module_class_method$/ module_instance_method ruby-src/test.rb /^ def module_instance_method$/ more_aligned_int c.c 165 morecore_nolock c-src/emacs/src/gmalloc.c /^morecore_nolock (size_t size)$/ @@ -3812,6 +3818,7 @@ quantizing html-src/algrthms.html /^Quantizing the Received$/ questo ../c/c.web 34 quit_char c-src/emacs/src/keyboard.c 192 quit_throw_to_read_char c-src/emacs/src/keyboard.c /^quit_throw_to_read_char (bool from_signal)$/ +qux= ruby-src/test1.ruby /^ def qux=(tee)$/ r0 c-src/sysdep.h 54 r1 c-src/sysdep.h 55 r_alloc c-src/emacs/src/lisp.h /^extern void *r_alloc (void **, size_t) ATTRIBUTE_A/ diff --git a/test/etags/ETAGS.good_1 b/test/etags/ETAGS.good_1 index 52ded46..44ac091 100644 --- a/test/etags/ETAGS.good_1 +++ b/test/etags/ETAGS.good_1 @@ -2977,11 +2977,11 @@ class Configure(760,24879 def save(797,26022 def nosave(807,26310 -ruby-src/test.rb,604 +ruby-src/test.rb,637 module ModuleExample1,0 class ClassExample2,21 def instance_method3,44 - def ClassExample.class_method6,121 + def ClassExample.class_methodclass_method6,121 def instance_method_exclamation!9,206 def instance_method_question?12,310 def instance_method_equals=instance_method_equals=15,408 @@ -2995,12 +2995,19 @@ module ModuleExample1,0 def <=>(<=>39,943 def ===(===42,990 def module_instance_method46,1051 - def ModuleExample.module_class_method49,1131 + def ModuleExample.module_class_methodmodule_class_method49,1131 -ruby-src/test1.ruby,37 +ruby-src/test1.ruby,191 class A1,0 def a(2,8 def b(5,38 +module A9,57 + class B10,66 + ABC 11,76 + def foo!13,89 + def self._bar?(_bar?16,111 + def qux=(qux=20,162 +A::Constant Constant26,211 tex-src/testenv.tex,52 \newcommand{\nm}\nm4,77 diff --git a/test/etags/ETAGS.good_2 b/test/etags/ETAGS.good_2 index ea10012..8a93e3b 100644 --- a/test/etags/ETAGS.good_2 +++ b/test/etags/ETAGS.good_2 @@ -3548,11 +3548,11 @@ class Configure(760,24879 def save(797,26022 def nosave(807,26310 -ruby-src/test.rb,604 +ruby-src/test.rb,637 module ModuleExample1,0 class ClassExample2,21 def instance_method3,44 - def ClassExample.class_method6,121 + def ClassExample.class_methodclass_method6,121 def instance_method_exclamation!9,206 def instance_method_question?12,310 def instance_method_equals=instance_method_equals=15,408 @@ -3566,12 +3566,19 @@ module ModuleExample1,0 def <=>(<=>39,943 def ===(===42,990 def module_instance_method46,1051 - def ModuleExample.module_class_method49,1131 + def ModuleExample.module_class_methodmodule_class_method49,1131 -ruby-src/test1.ruby,37 +ruby-src/test1.ruby,191 class A1,0 def a(2,8 def b(5,38 +module A9,57 + class B10,66 + ABC 11,76 + def foo!13,89 + def self._bar?(_bar?16,111 + def qux=(qux=20,162 +A::Constant Constant26,211 tex-src/testenv.tex,52 \newcommand{\nm}\nm4,77 diff --git a/test/etags/ETAGS.good_3 b/test/etags/ETAGS.good_3 index 3b3650f..e575b40 100644 --- a/test/etags/ETAGS.good_3 +++ b/test/etags/ETAGS.good_3 @@ -3321,11 +3321,11 @@ class Configure(760,24879 def save(797,26022 def nosave(807,26310 -ruby-src/test.rb,604 +ruby-src/test.rb,637 module ModuleExample1,0 class ClassExample2,21 def instance_method3,44 - def ClassExample.class_method6,121 + def ClassExample.class_methodclass_method6,121 def instance_method_exclamation!9,206 def instance_method_question?12,310 def instance_method_equals=instance_method_equals=15,408 @@ -3339,12 +3339,19 @@ module ModuleExample1,0 def <=>(<=>39,943 def ===(===42,990 def module_instance_method46,1051 - def ModuleExample.module_class_method49,1131 + def ModuleExample.module_class_methodmodule_class_method49,1131 -ruby-src/test1.ruby,37 +ruby-src/test1.ruby,191 class A1,0 def a(2,8 def b(5,38 +module A9,57 + class B10,66 + ABC 11,76 + def foo!13,89 + def self._bar?(_bar?16,111 + def qux=(qux=20,162 +A::Constant Constant26,211 tex-src/testenv.tex,52 \newcommand{\nm}\nm4,77 diff --git a/test/etags/ETAGS.good_4 b/test/etags/ETAGS.good_4 index 0415c17..2825806 100644 --- a/test/etags/ETAGS.good_4 +++ b/test/etags/ETAGS.good_4 @@ -3141,11 +3141,11 @@ class Configure(760,24879 def save(797,26022 def nosave(807,26310 -ruby-src/test.rb,604 +ruby-src/test.rb,637 module ModuleExample1,0 class ClassExample2,21 def instance_method3,44 - def ClassExample.class_method6,121 + def ClassExample.class_methodclass_method6,121 def instance_method_exclamation!9,206 def instance_method_question?12,310 def instance_method_equals=instance_method_equals=15,408 @@ -3159,12 +3159,19 @@ module ModuleExample1,0 def <=>(<=>39,943 def ===(===42,990 def module_instance_method46,1051 - def ModuleExample.module_class_method49,1131 + def ModuleExample.module_class_methodmodule_class_method49,1131 -ruby-src/test1.ruby,37 +ruby-src/test1.ruby,191 class A1,0 def a(2,8 def b(5,38 +module A9,57 + class B10,66 + ABC 11,76 + def foo!13,89 + def self._bar?(_bar?16,111 + def qux=(qux=20,162 +A::Constant Constant26,211 tex-src/testenv.tex,52 \newcommand{\nm}\nm4,77 diff --git a/test/etags/ETAGS.good_5 b/test/etags/ETAGS.good_5 index 8dc814e..35bb353 100644 --- a/test/etags/ETAGS.good_5 +++ b/test/etags/ETAGS.good_5 @@ -4056,11 +4056,11 @@ class Configure(760,24879 def save(797,26022 def nosave(807,26310 -ruby-src/test.rb,604 +ruby-src/test.rb,637 module ModuleExample1,0 class ClassExample2,21 def instance_method3,44 - def ClassExample.class_method6,121 + def ClassExample.class_methodclass_method6,121 def instance_method_exclamation!9,206 def instance_method_question?12,310 def instance_method_equals=instance_method_equals=15,408 @@ -4074,12 +4074,19 @@ module ModuleExample1,0 def <=>(<=>39,943 def ===(===42,990 def module_instance_method46,1051 - def ModuleExample.module_class_method49,1131 + def ModuleExample.module_class_methodmodule_class_method49,1131 -ruby-src/test1.ruby,37 +ruby-src/test1.ruby,191 class A1,0 def a(2,8 def b(5,38 +module A9,57 + class B10,66 + ABC 11,76 + def foo!13,89 + def self._bar?(_bar?16,111 + def qux=(qux=20,162 +A::Constant Constant26,211 tex-src/testenv.tex,52 \newcommand{\nm}\nm4,77 diff --git a/test/etags/ETAGS.good_6 b/test/etags/ETAGS.good_6 index 322c165..8add300 100644 --- a/test/etags/ETAGS.good_6 +++ b/test/etags/ETAGS.good_6 @@ -4056,11 +4056,11 @@ class Configure(760,24879 def save(797,26022 def nosave(807,26310 -ruby-src/test.rb,604 +ruby-src/test.rb,637 module ModuleExample1,0 class ClassExample2,21 def instance_method3,44 - def ClassExample.class_method6,121 + def ClassExample.class_methodclass_method6,121 def instance_method_exclamation!9,206 def instance_method_question?12,310 def instance_method_equals=instance_method_equals=15,408 @@ -4074,12 +4074,19 @@ module ModuleExample1,0 def <=>(<=>39,943 def ===(===42,990 def module_instance_method46,1051 - def ModuleExample.module_class_method49,1131 + def ModuleExample.module_class_methodmodule_class_method49,1131 -ruby-src/test1.ruby,37 +ruby-src/test1.ruby,191 class A1,0 def a(2,8 def b(5,38 +module A9,57 + class B10,66 + ABC 11,76 + def foo!13,89 + def self._bar?(_bar?16,111 + def qux=(qux=20,162 +A::Constant Constant26,211 tex-src/testenv.tex,52 \newcommand{\nm}\nm4,77 diff --git a/test/etags/ruby-src/test1.ruby b/test/etags/ruby-src/test1.ruby index 43b1a14..26b7d53 100644 --- a/test/etags/ruby-src/test1.ruby +++ b/test/etags/ruby-src/test1.ruby @@ -5,3 +5,25 @@ class A def b() end end + +module A + class B + ABC = 4 + + def foo! + end + + def self._bar?(abc) + end + + class << self + def qux=(tee) + end + end + end +end + +A::Constant = 5 + +# def foo_in_comment +# end commit ccc3b3cd68312e1d69d9f9af943ee2b9a9d88198 Author: Eli Zaretskii Date: Sat Jan 30 12:18:43 2016 +0200 Adjust etags test results to changes in copyright years * test/etags/CTAGS.good: * test/etags/ETAGS.good_1: * test/etags/ETAGS.good_2: * test/etags/ETAGS.good_3: * test/etags/ETAGS.good_4: * test/etags/ETAGS.good_5: * test/etags/ETAGS.good_6: Adjust to shift in characters and in line numbers. diff --git a/test/etags/CTAGS.good b/test/etags/CTAGS.good index 86b019a..1c494d6 100644 --- a/test/etags/CTAGS.good +++ b/test/etags/CTAGS.good @@ -1100,7 +1100,7 @@ Python_help c-src/etags.c 660 Python_suffixes c-src/etags.c 658 QUIT c-src/emacs/src/lisp.h 3101 QUITP c-src/emacs/src/lisp.h 3112 -Qpre_abbrev_expand_hook c-src/abbrev.c 82 +Qpre_abbrev_expand_hook c-src/abbrev.c 83 RANGED_INTEGERP c-src/emacs/src/lisp.h /^RANGED_INTEGERP (intmax_t lo, Lisp_Object x, intma/ RCSid objc-src/PackInsp.m 30 READABLE_EVENTS_DO_TIMERS_NOW c-src/emacs/src/keyboard.c 346 @@ -1425,16 +1425,16 @@ VECTORP c-src/emacs/src/lisp.h /^VECTORP (Lisp_Object x)$/ VERSION c-src/etags.c 789 VERSION erl-src/gs_dialog.erl /^-define(VERSION, '2001.1101').$/ VERSION objc-src/PackInsp.m 34 -Vabbrev_start_location c-src/abbrev.c 62 -Vabbrev_start_location_buffer c-src/abbrev.c 65 -Vabbrev_table_name_list c-src/abbrev.c 42 +Vabbrev_start_location c-src/abbrev.c 63 +Vabbrev_start_location_buffer c-src/abbrev.c 66 +Vabbrev_table_name_list c-src/abbrev.c 43 ValToNmStr pas-src/common.pas /^function ValToNmStr; (*($/ -Vfundamental_mode_abbrev_table c-src/abbrev.c 51 -Vglobal_abbrev_table c-src/abbrev.c 47 -Vlast_abbrev c-src/abbrev.c 69 -Vlast_abbrev_text c-src/abbrev.c 74 +Vfundamental_mode_abbrev_table c-src/abbrev.c 52 +Vglobal_abbrev_table c-src/abbrev.c 48 +Vlast_abbrev c-src/abbrev.c 70 +Vlast_abbrev_text c-src/abbrev.c 75 Vlispy_mouse_stem c-src/emacs/src/keyboard.c 5172 -Vpre_abbrev_expand_hook c-src/abbrev.c 82 +Vpre_abbrev_expand_hook c-src/abbrev.c 83 WAIT_READING_MAX c-src/emacs/src/lisp.h 4281 WAIT_READING_MAX c-src/emacs/src/lisp.h 4283 WCHAR_TYPE_SIZE cccp.y 99 @@ -1530,9 +1530,9 @@ Y c-src/h.h 100 YACC c-src/etags.c 2199 YELLOW cp-src/screen.hpp 26 YYABORT /usr/share/bison/bison.simple 153 -YYABORT /usr/share/bison/bison.simple 153 -YYACCEPT /usr/share/bison/bison.simple 152 +YYABORT /usr/share/bison/bison.simple 154 YYACCEPT /usr/share/bison/bison.simple 152 +YYACCEPT /usr/share/bison/bison.simple 153 YYBACKUP /usr/share/bison/bison.simple /^#define YYBACKUP(Token, Value) \\$/ YYBACKUP /usr/share/bison/bison.simple /^#define YYBACKUP(Token, Value) \\$/ YYBISON y-src/parse.c 4 @@ -1544,23 +1544,23 @@ YYDPRINTF /usr/share/bison/bison.simple /^# define YYDPRINTF(Args)$/ YYDPRINTF /usr/share/bison/bison.simple /^# define YYDPRINTF(Args) \\$/ YYDPRINTF /usr/share/bison/bison.simple /^# define YYDPRINTF(Args)$/ YYEMPTY /usr/share/bison/bison.simple 150 -YYEMPTY /usr/share/bison/bison.simple 150 -YYEOF /usr/share/bison/bison.simple 151 +YYEMPTY /usr/share/bison/bison.simple 151 YYEOF /usr/share/bison/bison.simple 151 +YYEOF /usr/share/bison/bison.simple 152 YYERRCODE /usr/share/bison/bison.simple 178 -YYERRCODE /usr/share/bison/bison.simple 178 -YYERROR /usr/share/bison/bison.simple 154 +YYERRCODE /usr/share/bison/bison.simple 179 YYERROR /usr/share/bison/bison.simple 154 +YYERROR /usr/share/bison/bison.simple 155 YYFAIL /usr/share/bison/bison.simple 158 -YYFAIL /usr/share/bison/bison.simple 158 +YYFAIL /usr/share/bison/bison.simple 159 YYFINAL parse.y 93 YYFINAL cccp.y 127 YYFLAG parse.y 94 YYFLAG cccp.y 128 YYFPRINTF /usr/share/bison/bison.simple 225 -YYFPRINTF /usr/share/bison/bison.simple 225 -YYINITDEPTH /usr/share/bison/bison.simple 244 +YYFPRINTF /usr/share/bison/bison.simple 226 YYINITDEPTH /usr/share/bison/bison.simple 244 +YYINITDEPTH /usr/share/bison/bison.simple 245 YYLAST parse.y 266 YYLAST cccp.y 274 YYLEX /usr/share/bison/bison.simple 200 @@ -1568,17 +1568,17 @@ YYLEX /usr/share/bison/bison.simple 202 YYLEX /usr/share/bison/bison.simple 206 YYLEX /usr/share/bison/bison.simple 208 YYLEX /usr/share/bison/bison.simple 212 -YYLEX /usr/share/bison/bison.simple 200 -YYLEX /usr/share/bison/bison.simple 202 -YYLEX /usr/share/bison/bison.simple 206 -YYLEX /usr/share/bison/bison.simple 208 -YYLEX /usr/share/bison/bison.simple 212 +YYLEX /usr/share/bison/bison.simple 201 +YYLEX /usr/share/bison/bison.simple 203 +YYLEX /usr/share/bison/bison.simple 207 +YYLEX /usr/share/bison/bison.simple 209 +YYLEX /usr/share/bison/bison.simple 213 YYLLOC_DEFAULT /usr/share/bison/bison.simple /^# define YYLLOC_DEFAULT(Current, Rhs, N) \\$/ YYLLOC_DEFAULT /usr/share/bison/bison.simple /^# define YYLLOC_DEFAULT(Current, Rhs, N) \\$/ YYMAXDEPTH /usr/share/bison/bison.simple 255 YYMAXDEPTH /usr/share/bison/bison.simple 259 -YYMAXDEPTH /usr/share/bison/bison.simple 255 -YYMAXDEPTH /usr/share/bison/bison.simple 259 +YYMAXDEPTH /usr/share/bison/bison.simple 256 +YYMAXDEPTH /usr/share/bison/bison.simple 260 YYNTBASE parse.y 95 YYNTBASE cccp.y 129 YYPARSE_PARAM_ARG /usr/share/bison/bison.simple 351 @@ -1608,23 +1608,23 @@ YYSIZE_T /usr/share/bison/bison.simple 131 YYSIZE_T /usr/share/bison/bison.simple 136 YYSIZE_T /usr/share/bison/bison.simple 140 YYSIZE_T /usr/share/bison/bison.simple 145 -YYSIZE_T /usr/share/bison/bison.simple 51 -YYSIZE_T /usr/share/bison/bison.simple 56 -YYSIZE_T /usr/share/bison/bison.simple 71 -YYSIZE_T /usr/share/bison/bison.simple 75 -YYSIZE_T /usr/share/bison/bison.simple 128 -YYSIZE_T /usr/share/bison/bison.simple 131 -YYSIZE_T /usr/share/bison/bison.simple 136 -YYSIZE_T /usr/share/bison/bison.simple 140 -YYSIZE_T /usr/share/bison/bison.simple 145 -YYSTACK_ALLOC /usr/share/bison/bison.simple 50 -YYSTACK_ALLOC /usr/share/bison/bison.simple 55 -YYSTACK_ALLOC /usr/share/bison/bison.simple 59 -YYSTACK_ALLOC /usr/share/bison/bison.simple 78 +YYSIZE_T /usr/share/bison/bison.simple 52 +YYSIZE_T /usr/share/bison/bison.simple 57 +YYSIZE_T /usr/share/bison/bison.simple 72 +YYSIZE_T /usr/share/bison/bison.simple 76 +YYSIZE_T /usr/share/bison/bison.simple 129 +YYSIZE_T /usr/share/bison/bison.simple 132 +YYSIZE_T /usr/share/bison/bison.simple 137 +YYSIZE_T /usr/share/bison/bison.simple 141 +YYSIZE_T /usr/share/bison/bison.simple 146 YYSTACK_ALLOC /usr/share/bison/bison.simple 50 YYSTACK_ALLOC /usr/share/bison/bison.simple 55 YYSTACK_ALLOC /usr/share/bison/bison.simple 59 YYSTACK_ALLOC /usr/share/bison/bison.simple 78 +YYSTACK_ALLOC /usr/share/bison/bison.simple 51 +YYSTACK_ALLOC /usr/share/bison/bison.simple 56 +YYSTACK_ALLOC /usr/share/bison/bison.simple 60 +YYSTACK_ALLOC /usr/share/bison/bison.simple 79 YYSTACK_BYTES /usr/share/bison/bison.simple /^# define YYSTACK_BYTES(N) \\$/ YYSTACK_BYTES /usr/share/bison/bison.simple /^# define YYSTACK_BYTES(N) \\$/ YYSTACK_BYTES /usr/share/bison/bison.simple /^# define YYSTACK_BYTES(N) \\$/ @@ -1632,9 +1632,9 @@ YYSTACK_BYTES /usr/share/bison/bison.simple /^# define YYSTACK_BYTES(N) \\$/ YYSTACK_FREE /usr/share/bison/bison.simple /^# define YYSTACK_FREE(Ptr) do { \/* empty *\/; } wh/ YYSTACK_FREE /usr/share/bison/bison.simple 79 YYSTACK_FREE /usr/share/bison/bison.simple /^# define YYSTACK_FREE(Ptr) do { \/* empty *\/; } wh/ -YYSTACK_FREE /usr/share/bison/bison.simple 79 -YYSTACK_GAP_MAX /usr/share/bison/bison.simple 93 +YYSTACK_FREE /usr/share/bison/bison.simple 80 YYSTACK_GAP_MAX /usr/share/bison/bison.simple 93 +YYSTACK_GAP_MAX /usr/share/bison/bison.simple 94 YYSTACK_RELOCATE /usr/share/bison/bison.simple /^# define YYSTACK_RELOCATE(Type, Stack) \\$/ YYSTACK_RELOCATE /usr/share/bison/bison.simple 548 YYSTACK_RELOCATE /usr/share/bison/bison.simple /^# define YYSTACK_RELOCATE(Type, Stack) \\$/ @@ -1650,7 +1650,7 @@ YYSTYPE parse.y 72 YYSTYPE parse.y 85 YYSTYPE cccp.y 119 YYTERROR /usr/share/bison/bison.simple 177 -YYTERROR /usr/share/bison/bison.simple 177 +YYTERROR /usr/share/bison/bison.simple 178 YYTRANSLATE parse.y /^#define YYTRANSLATE(x) ((unsigned)(x) <= 278 ? yyt/ YYTRANSLATE cccp.y /^#define YYTRANSLATE(x) ((unsigned)(x) <= 269 ? yyt/ YY_DECL_NON_LSP_VARIABLES /usr/share/bison/bison.simple 374 @@ -2402,8 +2402,8 @@ aaa c.c 269 aaaaaa c-src/h.h 111 abbrev-expansion c-src/abbrev.c /^DEFUN ("abbrev-expansion", Fabbrev_expansion, Sabb/ abbrev-symbol c-src/abbrev.c /^DEFUN ("abbrev-symbol", Fabbrev_symbol, Sabbrev_sy/ -abbrev_all_caps c-src/abbrev.c 57 -abbrevs_changed c-src/abbrev.c 55 +abbrev_all_caps c-src/abbrev.c 58 +abbrevs_changed c-src/abbrev.c 56 abc c-src/h.h 33 abc c-src/h.h 37 abort-recursive-edit c-src/emacs/src/keyboard.c /^DEFUN ("abort-recursive-edit", Fabort_recursive_ed/ @@ -2620,10 +2620,6 @@ childDidExit objc-src/Subprocess.m /^- childDidExit$/ chunks_free c-src/emacs/src/gmalloc.c 313 chunks_used c-src/emacs/src/gmalloc.c 311 cjava c-src/etags.c 2936 -instance_method ruby-src/test.rb /^ def instance_method$/ -instance_method_equals= ruby-src/test.rb /^ def instance_method_equals=$/ -instance_method_exclamation! ruby-src/test.rb /^ def instance_method_exclamation!$/ -instance_method_question? ruby-src/test.rb /^ def instance_method_question?$/ classifyLine php-src/lce_functions.php /^ function classifyLine($line)$/ clear cp-src/conway.hpp /^ void clear(void) { alive = 0; }$/ clear-abbrev-table c-src/abbrev.c /^DEFUN ("clear-abbrev-table", Fclear_abbrev_table, / @@ -3127,6 +3123,10 @@ input_polling_used c-src/emacs/src/keyboard.c /^input_polling_used (void)$/ input_was_pending c-src/emacs/src/keyboard.c 287 insert-abbrev-table-description c-src/abbrev.c /^DEFUN ("insert-abbrev-table-description", Finsert_/ insertname pas-src/common.pas /^function insertname;(*($/ +instance_method ruby-src/test.rb /^ def instance_method$/ +instance_method_equals= ruby-src/test.rb /^ def instance_method_equals=$/ +instance_method_exclamation! ruby-src/test.rb /^ def instance_method_exclamation!$/ +instance_method_question? ruby-src/test.rb /^ def instance_method_question?$/ instr y-src/parse.y 80 instr parse.y 80 instruct c-src/etags.c 2527 @@ -3223,7 +3223,7 @@ lang c-src/etags.c 259 lang_names c-src/etags.c 718 language c-src/etags.c 199 last-tag el-src/emacs/lisp/progmodes/etags.el /^(defvar last-tag nil$/ -last_abbrev_point c-src/abbrev.c 78 +last_abbrev_point c-src/abbrev.c 79 last_auto_save c-src/emacs/src/keyboard.c 214 last_heapinfo c-src/emacs/src/gmalloc.c 402 last_mouse_button c-src/emacs/src/keyboard.c 5215 @@ -4415,13 +4415,13 @@ y cp-src/clheir.hpp 49 y cp-src/clheir.hpp 58 y-get-selection-internal c.c /^ Fy_get_selection_internal, Sy_get_selection_/ yyalloc /usr/share/bison/bison.simple 83 -yyalloc /usr/share/bison/bison.simple 83 +yyalloc /usr/share/bison/bison.simple 84 yycheck parse.y 330 yycheck cccp.y 301 yyclearin /usr/share/bison/bison.simple 149 -yyclearin /usr/share/bison/bison.simple 149 -yydebug /usr/share/bison/bison.simple 237 +yyclearin /usr/share/bison/bison.simple 150 yydebug /usr/share/bison/bison.simple 237 +yydebug /usr/share/bison/bison.simple 238 yydefact parse.y 219 yydefact cccp.y 239 yydefgoto parse.y 237 @@ -4431,7 +4431,7 @@ yyerrhandle /usr/share/bison/bison.simple 848 yyerrlab1 /usr/share/bison/bison.simple 823 yyerrlab1 /usr/share/bison/bison.simple 823 yyerrok /usr/share/bison/bison.simple 148 -yyerrok /usr/share/bison/bison.simple 148 +yyerrok /usr/share/bison/bison.simple 149 yyerror cccp.y /^yyerror (s)$/ yyerror y-src/cccp.y /^yyerror (s)$/ yyerrstatus /usr/share/bison/bison.simple 846 @@ -4439,14 +4439,14 @@ yyerrstatus /usr/share/bison/bison.simple 846 yylex cccp.y /^yylex ()$/ yylex y-src/cccp.y /^yylex ()$/ yyls /usr/share/bison/bison.simple 88 -yyls /usr/share/bison/bison.simple 88 +yyls /usr/share/bison/bison.simple 89 yylsp /usr/share/bison/bison.simple 748 yylsp /usr/share/bison/bison.simple 921 yylsp /usr/share/bison/bison.simple 748 yylsp /usr/share/bison/bison.simple 921 yymemcpy /usr/share/bison/bison.simple 264 yymemcpy /usr/share/bison/bison.simple /^yymemcpy (char *yyto, const char *yyfrom, YYSIZE_T/ -yymemcpy /usr/share/bison/bison.simple 264 +yymemcpy /usr/share/bison/bison.simple 265 yymemcpy /usr/share/bison/bison.simple /^yymemcpy (char *yyto, const char *yyfrom, YYSIZE_T/ yyn /usr/share/bison/bison.simple 755 yyn /usr/share/bison/bison.simple 861 @@ -4487,7 +4487,7 @@ yyrhs cccp.y 174 yyrline parse.y 171 yyrline cccp.y 195 yyss /usr/share/bison/bison.simple 85 -yyss /usr/share/bison/bison.simple 85 +yyss /usr/share/bison/bison.simple 86 yystate /usr/share/bison/bison.simple 757 yystate /usr/share/bison/bison.simple 761 yystate /usr/share/bison/bison.simple 875 @@ -4498,11 +4498,11 @@ yystate /usr/share/bison/bison.simple 875 yystate /usr/share/bison/bison.simple 924 yystpcpy /usr/share/bison/bison.simple 316 yystpcpy /usr/share/bison/bison.simple /^yystpcpy (char *yydest, const char *yysrc)$/ -yystpcpy /usr/share/bison/bison.simple 316 +yystpcpy /usr/share/bison/bison.simple 317 yystpcpy /usr/share/bison/bison.simple /^yystpcpy (char *yydest, const char *yysrc)$/ yystrlen /usr/share/bison/bison.simple 293 yystrlen /usr/share/bison/bison.simple /^yystrlen (const char *yystr)$/ -yystrlen /usr/share/bison/bison.simple 293 +yystrlen /usr/share/bison/bison.simple 294 yystrlen /usr/share/bison/bison.simple /^yystrlen (const char *yystr)$/ yystype cccp.y 118 yytable parse.y 269 @@ -4512,7 +4512,7 @@ yytname cccp.y 208 yytranslate parse.y 101 yytranslate cccp.y 135 yyvs /usr/share/bison/bison.simple 86 -yyvs /usr/share/bison/bison.simple 86 +yyvs /usr/share/bison/bison.simple 87 yyvsp /usr/share/bison/bison.simple 746 yyvsp /usr/share/bison/bison.simple 919 yyvsp /usr/share/bison/bison.simple 746 diff --git a/test/etags/ETAGS.good_1 b/test/etags/ETAGS.good_1 index dac2091..52ded46 100644 --- a/test/etags/ETAGS.good_1 +++ b/test/etags/ETAGS.good_1 @@ -176,32 +176,32 @@ package body Truc.Bidule Truc.Bidule/b138,2153 protected body Machin_T Machin_T/b146,2281 c-src/abbrev.c,1432 -Lisp_Object Vabbrev_table_name_list;42,1416 -Lisp_Object Vglobal_abbrev_table;47,1561 -Lisp_Object Vfundamental_mode_abbrev_table;51,1672 -int abbrevs_changed;55,1773 -int abbrev_all_caps;57,1795 -Lisp_Object Vabbrev_start_location;62,1944 -Lisp_Object Vabbrev_start_location_buffer;65,2033 -Lisp_Object Vlast_abbrev;69,2142 -Lisp_Object Vlast_abbrev_text;74,2311 -int last_abbrev_point;78,2401 -Lisp_Object Vpre_abbrev_expand_hook,82,2474 -Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;82,2474 -DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table84,2538 -DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table91,2730 -DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev106,3111 -DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev148,4430 -DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev159,4801 -DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol173,5269 -DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion201,6233 -DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev217,6748 -DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev388,11669 -write_abbrev 425,12876 -describe_abbrev 444,13311 -DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description465,13826 -DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table505,14982 -syms_of_abbrev 539,16059 +Lisp_Object Vabbrev_table_name_list;43,1424 +Lisp_Object Vglobal_abbrev_table;48,1569 +Lisp_Object Vfundamental_mode_abbrev_table;52,1680 +int abbrevs_changed;56,1781 +int abbrev_all_caps;58,1803 +Lisp_Object Vabbrev_start_location;63,1952 +Lisp_Object Vabbrev_start_location_buffer;66,2041 +Lisp_Object Vlast_abbrev;70,2150 +Lisp_Object Vlast_abbrev_text;75,2319 +int last_abbrev_point;79,2409 +Lisp_Object Vpre_abbrev_expand_hook,83,2482 +Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;83,2482 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table85,2546 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table92,2738 +DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev107,3119 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev149,4438 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev160,4809 +DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol174,5277 +DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion202,6241 +DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev218,6756 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev389,11677 +write_abbrev 426,12884 +describe_abbrev 445,13319 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description466,13834 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table506,14990 +syms_of_abbrev 540,16067 c-src/torture.c,197 (*tag1 tag118,452 @@ -217,11 +217,11 @@ pp287,1419 pp3(100,1518 c-src/getopt.h,147 -#define _GETOPT_H 19,801 -struct option73,2797 -#define no_argument 89,3124 -#define required_argument 90,3147 -#define optional_argument 91,3175 +#define _GETOPT_H 19,794 +struct option73,2790 +#define no_argument 89,3117 +#define required_argument 90,3140 +#define optional_argument 91,3168 c-src/etags.c,10045 char pot_etags_version[pot_etags_version81,3470 @@ -544,32 +544,32 @@ xmalloc 6536,174148 xrealloc 6545,174314 c-src/exit.c,47 - } __libc_atexit;30,1011 -DEFUN(exit,38,1252 + } __libc_atexit;30,1017 +DEFUN(exit,38,1258 c-src/exit.strange_suffix,47 - } __libc_atexit;30,1011 -DEFUN(exit,38,1252 + } __libc_atexit;30,1017 +DEFUN(exit,38,1258 c-src/sysdep.h,491 -#define ENTRY(21,865 -#define PSEUDO(26,972 - movl $SYS_##syscall_nam$SYS_##syscall_na31,1132 - movl $SYS_##syscall_name, %eax;eax31,1132 - int $0x80;32,1180 - test %eax,eax33,1210 - test %eax, %eax;eax33,1210 - jl syscall_error;34,1245 -#define XCHG_0 47,1562 -#define XCHG_1 48,1606 -#define XCHG_2 49,1648 -#define XCHG_3 50,1691 -#define XCHG_4 51,1734 -#define XCHG_5 52,1777 -#define r0 54,1821 -#define r1 55,1875 -#define scratch 56,1932 -#define MOVE(57,2001 +#define ENTRY(21,870 +#define PSEUDO(26,977 + movl $SYS_##syscall_nam$SYS_##syscall_na31,1137 + movl $SYS_##syscall_name, %eax;eax31,1137 + int $0x80;32,1185 + test %eax,eax33,1215 + test %eax, %eax;eax33,1215 + jl syscall_error;34,1250 +#define XCHG_0 47,1567 +#define XCHG_1 48,1611 +#define XCHG_2 49,1653 +#define XCHG_3 50,1696 +#define XCHG_4 51,1739 +#define XCHG_5 52,1782 +#define r0 54,1826 +#define r1 55,1880 +#define scratch 56,1937 +#define MOVE(57,2006 c-src/tab.c,196 static int count_words(15,263 @@ -1517,294 +1517,294 @@ struct Lisp_Misc_Any 1971,64806 ENUM_BF 1973,64866 struct Lisp_Marker1978,64980 ENUM_BF 1980,65001 -struct Lisp_Overlay2021,66838 - ENUM_BF 2034,67346 - SAVE_UNUSED,2047,67641 - SAVE_INTEGER,2048,67658 - SAVE_FUNCPOINTER,2049,67676 - SAVE_POINTER,2050,67698 - SAVE_OBJECT2051,67716 -enum { SAVE_SLOT_BITS 2055,67801 -enum { SAVE_VALUE_SLOTS 2058,67898 -enum { SAVE_TYPE_BITS 2062,68006 -enum Lisp_Save_Type2064,68072 - SAVE_TYPE_INT_INT 2066,68096 - SAVE_TYPE_INT_INT_INT2067,68169 - SAVE_TYPE_OBJ_OBJ 2069,68259 - SAVE_TYPE_OBJ_OBJ_OBJ 2070,68330 - SAVE_TYPE_OBJ_OBJ_OBJ_OBJ2071,68411 - SAVE_TYPE_PTR_INT 2073,68506 - SAVE_TYPE_PTR_OBJ 2074,68579 - SAVE_TYPE_PTR_PTR 2075,68651 - SAVE_TYPE_FUNCPTR_PTR_OBJ2076,68724 - SAVE_TYPE_MEMORY 2080,68882 -typedef void (*voidfuncptr)voidfuncptr2108,69836 -struct Lisp_Save_Value2110,69873 - ENUM_BF 2112,69900 -save_type 2134,70752 -XSAVE_POINTER 2143,70982 -set_save_pointer 2149,71144 -XSAVE_FUNCPOINTER 2155,71326 -XSAVE_INTEGER 2164,71546 -set_save_integer 2170,71708 -XSAVE_OBJECT 2179,71929 -struct Lisp_Finalizer2186,72106 -struct Lisp_Free2201,72581 - ENUM_BF 2203,72602 -union Lisp_Misc2212,72882 -XMISC 2223,73181 -XMISCANY 2229,73270 -XMISCTYPE 2236,73379 -XMARKER 2242,73467 -XOVERLAY 2249,73582 -XSAVE_VALUE 2256,73703 -XFINALIZER 2263,73832 -struct Lisp_Intfwd2274,74117 -struct Lisp_Boolfwd2284,74411 -struct Lisp_Objfwd2294,74702 -struct Lisp_Buffer_Objfwd2302,74934 -struct Lisp_Buffer_Local_Value2334,76470 -struct Lisp_Kboard_Objfwd2362,77729 -union Lisp_Fwd2368,77838 -XFWDTYPE 2378,78084 -XBUFFER_OBJFWD 2384,78180 -struct Lisp_Float2391,78316 -XFLOAT_DATA 2401,78434 - IEEE_FLOATING_POINT2415,78943 -#define _UCHAR_T2423,79266 -typedef unsigned char UCHAR;2424,79283 -enum Lisp_Compiled2429,79366 - COMPILED_ARGLIST 2431,79389 - COMPILED_BYTECODE 2432,79415 - COMPILED_CONSTANTS 2433,79442 - COMPILED_STACK_DEPTH 2434,79470 - COMPILED_DOC_STRING 2435,79500 - COMPILED_INTERACTIVE 2436,79529 -enum char_bits2443,79831 - CHAR_ALT 2445,79850 - CHAR_SUPER 2446,79876 - CHAR_HYPER 2447,79904 - CHAR_SHIFT 2448,79932 - CHAR_CTL 2449,79960 - CHAR_META 2450,79986 - CHAR_MODIFIER_MASK 2452,80014 - CHARACTERBITS 2457,80209 -LISP_MACRO_DEFUN 2462,80267 -NATNUMP 2470,80409 -RANGED_INTEGERP 2476,80490 -#define TYPE_RANGED_INTEGERP(2481,80612 -LISP_MACRO_DEFUN 2486,80797 -VECTORP 2500,81270 -OVERLAYP 2505,81373 -SAVE_VALUEP 2510,81472 -FINALIZERP 2516,81578 -AUTOLOADP 2522,81682 -BUFFER_OBJFWDP 2528,81773 -PSEUDOVECTOR_TYPEP 2534,81871 -PSEUDOVECTORP 2542,82124 -WINDOW_CONFIGURATIONP 2558,82476 -PROCESSP 2564,82586 -WINDOWP 2570,82670 -TERMINALP 2576,82752 -SUBRP 2582,82838 -COMPILEDP 2588,82916 -BUFFERP 2594,83002 -CHAR_TABLE_P 2600,83084 -SUB_CHAR_TABLE_P 2606,83175 -BOOL_VECTOR_P 2612,83274 -FRAMEP 2618,83367 -IMAGEP 2625,83484 -ARRAYP 2632,83589 -CHECK_LIST 2638,83708 -LISP_MACRO_DEFUN_VOID 2643,83789 -CHECK_STRING_CAR 2653,84086 -CHECK_CONS 2658,84190 -CHECK_VECTOR 2663,84270 -CHECK_BOOL_VECTOR 2668,84356 -CHECK_VECTOR_OR_STRING 2674,84533 -CHECK_ARRAY 2683,84707 -CHECK_BUFFER 2688,84815 -CHECK_WINDOW 2693,84901 -CHECK_PROCESS 2699,85007 -CHECK_NATNUM 2705,85103 -#define CHECK_RANGED_INTEGER(2710,85180 -#define CHECK_TYPE_RANGED_INTEGER(2721,85563 -#define CHECK_NUMBER_COERCE_MARKER(2729,85833 -XFLOATINT 2738,86086 -CHECK_NUMBER_OR_FLOAT 2744,86157 -#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(2749,86256 -CHECK_NUMBER_CAR 2760,86666 -CHECK_NUMBER_CDR 2768,86788 -#define DEFUN(2803,88383 -#define DEFUN(2812,88851 -FUNCTIONP 2822,89206 -enum maxargs2831,89401 - MANY 2833,89418 - UNEVALLED 2834,89433 -#define CALLMANY(2838,89536 -#define CALLN(2844,89889 -#define DEFVAR_LISP(2869,91094 -#define DEFVAR_LISP_NOPRO(2874,91266 -#define DEFVAR_BOOL(2879,91448 -#define DEFVAR_INT(2884,91621 -#define DEFVAR_BUFFER_DEFAULTS(2890,91792 -#define DEFVAR_KBOARD(2896,91996 -typedef jmp_buf sys_jmp_buf;2906,92320 -# define sys_setjmp(2907,92349 -# define sys_longjmp(2908,92384 -typedef sigjmp_buf sys_jmp_buf;2910,92456 -# define sys_setjmp(2911,92488 -# define sys_longjmp(2912,92528 -typedef jmp_buf sys_jmp_buf;2916,92687 -# define sys_setjmp(2917,92716 -# define sys_longjmp(2918,92750 -enum specbind_tag 2943,93802 - SPECPDL_UNWIND,2944,93822 - SPECPDL_UNWIND_PTR,2945,93891 - SPECPDL_UNWIND_INT,2946,93942 - SPECPDL_UNWIND_VOID,2947,93990 - SPECPDL_BACKTRACE,2948,94044 - SPECPDL_LET,2949,94102 - SPECPDL_LET_LOCAL,2951,94232 - SPECPDL_LET_DEFAULT 2952,94289 -union specbinding2955,94361 - ENUM_BF 2957,94383 - ENUM_BF 2959,94440 - ENUM_BF 2964,94570 - ENUM_BF 2969,94693 - ENUM_BF 2974,94811 - ENUM_BF 2978,94916 - ENUM_BF 2983,95091 -enum handlertype 3021,96407 -enum handlertype { CATCHER,3021,96407 -enum handlertype { CATCHER, CONDITION_CASE 3021,96407 -struct handler3023,96454 -#define PUSH_HANDLER(3053,97443 -#define QUIT 3101,99220 -#define QUITP 3112,99470 -struct gcpro3132,100313 -#define GC_USE_GCPROS_AS_BEFORE 3171,101294 -#define GC_MAKE_GCPROS_NOOPS 3172,101329 -#define GC_MARK_STACK_CHECK_GCPROS 3173,101361 -#define GC_USE_GCPROS_CHECK_ZOMBIES 3174,101398 -#define GC_MARK_STACK 3177,101459 -#define BYTE_MARK_STACK 3181,101559 -#define GCPRO1(3190,101830 -#define GCPRO2(3191,101870 -#define GCPRO3(3192,101936 -#define GCPRO4(3194,102031 -#define GCPRO5(3196,102151 -#define GCPRO6(3198,102296 -#define GCPRO7(3201,102471 -#define UNGCPRO 3202,102550 -#define GCPRO1(3208,102650 -#define GCPRO2(3212,102772 -#define GCPRO3(3217,102964 -#define GCPRO4(3223,103226 -#define GCPRO5(3230,103557 -#define GCPRO6(3238,103958 -#define GCPRO7(3247,104428 -#define UNGCPRO 3257,104968 -#define GCPRO1(3263,105062 -#define GCPRO2(3269,105296 -#define GCPRO3(3278,105714 -#define GCPRO4(3289,106271 -#define GCPRO5(3302,106969 -#define GCPRO6(3317,107809 -#define GCPRO7(3334,108790 -#define UNGCPRO 3353,109913 -#define RETURN_UNGCPRO(3363,110180 -vcopy 3384,110654 -set_hash_key_slot 3393,110929 -set_hash_value_slot 3399,111068 -set_symbol_function 3408,111303 -set_symbol_plist 3414,111418 -set_symbol_next 3420,111521 -blv_found 3428,111694 -set_overlay_plist 3437,111877 -string_intervals 3445,112028 -set_string_intervals 3453,112150 -set_char_table_defalt 3462,112352 -set_char_table_purpose 3467,112464 -set_char_table_extras 3475,112633 -set_char_table_contents 3482,112842 -set_sub_char_table_contents 3489,113037 -enum Arith_Comparison 3497,113300 - ARITH_EQUAL,3498,113324 - ARITH_NOTEQUAL,3499,113339 - ARITH_LESS,3500,113357 - ARITH_GRTR,3501,113371 - ARITH_LESS_OR_EQUAL,3502,113385 - ARITH_GRTR_OR_EQUAL3503,113408 -#define INTEGER_TO_CONS(3511,113759 -#define CONS_TO_INTEGER(3529,114622 -enum { NEXT_ALMOST_PRIME_LIMIT 3573,116326 -extern EMACS_INT next_almost_prime 3574,116365 -enum constype 3739,123817 -enum constype {CONSTYPE_HEAP,CONSTYPE_HEAP3739,123817 -enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}CONSTYPE_PURE3739,123817 -list2i 3745,124007 -list3i 3751,124116 -list4i 3757,124255 -extern Lisp_Object make_formatted_string 3767,124631 -build_pure_c_string 3792,125659 -build_string 3801,125864 -make_uninit_vector 3820,126435 -make_uninit_sub_char_table 3833,126654 -#define ALLOCATE_PSEUDOVECTOR(3850,127198 -#define ALLOCATE_ZEROED_PSEUDOVECTOR(3858,127534 -INLINE void 3890,128940 -extern void *r_alloc r_alloc3895,129061 -#define FLOAT_TO_STRING_BUFSIZE 3927,130524 -intern 3968,132131 -intern_c_string 3974,132219 -extern _Noreturn void error 4034,135598 -fast_string_match_ignore_case 4136,140086 -INLINE void fixup_locale 4241,143851 -INLINE void synchronize_system_messages_locale 4242,143886 -INLINE void synchronize_system_time_locale 4243,143943 -#define IS_DAEMON 4257,144416 -#define DAEMON_RUNNING 4258,144456 -#define IS_DAEMON 4261,144555 -#define DAEMON_RUNNING 4262,144600 -# define WAIT_READING_MAX 4281,145419 -# define WAIT_READING_MAX 4283,145491 -extern _Noreturn void emacs_abort 4374,148383 -egetenv 4532,152806 -#define eabs(4545,153302 -#define make_fixnum_or_float(4550,153435 -enum MAX_ALLOCA 4556,153686 -enum MAX_ALLOCA { MAX_ALLOCA 4556,153686 -extern void *record_xmalloc record_xmalloc4558,153731 -#define USE_SAFE_ALLOCA 4560,153797 -#define AVAIL_ALLOCA(4564,153930 -#define SAFE_ALLOCA(4568,154041 -#define SAFE_NALLOCA(4576,154382 -#define SAFE_ALLOCA_STRING(4590,154858 -#define SAFE_FREE(4598,155110 -#define SAFE_ALLOCA_LISP(4625,155688 -# define USE_STACK_LISP_OBJECTS 4652,156810 -# undef USE_STACK_LISP_OBJECTS4658,156976 -# define USE_STACK_LISP_OBJECTS 4659,157007 -enum { defined_GC_CHECK_STRING_BYTES 4663,157082 -enum { defined_GC_CHECK_STRING_BYTES 4665,157135 -union Aligned_Cons4670,157269 -union Aligned_String4676,157349 - USE_STACK_CONS 4689,157704 - USE_STACK_STRING 4691,157810 -#define STACK_CONS(4699,158147 -#define AUTO_CONS_EXPR(4701,158244 -#define AUTO_CONS(4709,158607 -#define AUTO_LIST1(4710,158678 -#define AUTO_LIST2(4712,158786 -#define AUTO_LIST3(4716,158941 -#define AUTO_LIST4(4720,159116 -# define verify_ascii(4732,159507 -#define AUTO_STRING(4740,159815 -#define FOR_EACH_TAIL(4752,160279 -#define FOR_EACH_ALIST_VALUE(4766,160770 -maybe_gc 4774,161057 -functionp 4784,161296 +struct Lisp_Overlay2021,66841 + ENUM_BF 2034,67349 + SAVE_UNUSED,2047,67644 + SAVE_INTEGER,2048,67661 + SAVE_FUNCPOINTER,2049,67679 + SAVE_POINTER,2050,67701 + SAVE_OBJECT2051,67719 +enum { SAVE_SLOT_BITS 2055,67804 +enum { SAVE_VALUE_SLOTS 2058,67901 +enum { SAVE_TYPE_BITS 2062,68009 +enum Lisp_Save_Type2064,68075 + SAVE_TYPE_INT_INT 2066,68099 + SAVE_TYPE_INT_INT_INT2067,68172 + SAVE_TYPE_OBJ_OBJ 2069,68262 + SAVE_TYPE_OBJ_OBJ_OBJ 2070,68333 + SAVE_TYPE_OBJ_OBJ_OBJ_OBJ2071,68414 + SAVE_TYPE_PTR_INT 2073,68509 + SAVE_TYPE_PTR_OBJ 2074,68582 + SAVE_TYPE_PTR_PTR 2075,68654 + SAVE_TYPE_FUNCPTR_PTR_OBJ2076,68727 + SAVE_TYPE_MEMORY 2080,68885 +typedef void (*voidfuncptr)voidfuncptr2108,69839 +struct Lisp_Save_Value2110,69876 + ENUM_BF 2112,69903 +save_type 2134,70755 +XSAVE_POINTER 2143,70985 +set_save_pointer 2149,71147 +XSAVE_FUNCPOINTER 2155,71329 +XSAVE_INTEGER 2164,71549 +set_save_integer 2170,71711 +XSAVE_OBJECT 2179,71932 +struct Lisp_Finalizer2186,72109 +struct Lisp_Free2201,72584 + ENUM_BF 2203,72605 +union Lisp_Misc2212,72885 +XMISC 2223,73184 +XMISCANY 2229,73273 +XMISCTYPE 2236,73382 +XMARKER 2242,73470 +XOVERLAY 2249,73585 +XSAVE_VALUE 2256,73706 +XFINALIZER 2263,73835 +struct Lisp_Intfwd2274,74120 +struct Lisp_Boolfwd2284,74414 +struct Lisp_Objfwd2294,74705 +struct Lisp_Buffer_Objfwd2302,74937 +struct Lisp_Buffer_Local_Value2334,76473 +struct Lisp_Kboard_Objfwd2362,77732 +union Lisp_Fwd2368,77841 +XFWDTYPE 2378,78087 +XBUFFER_OBJFWD 2384,78183 +struct Lisp_Float2391,78319 +XFLOAT_DATA 2401,78437 + IEEE_FLOATING_POINT2415,78946 +#define _UCHAR_T2423,79269 +typedef unsigned char UCHAR;2424,79286 +enum Lisp_Compiled2429,79369 + COMPILED_ARGLIST 2431,79392 + COMPILED_BYTECODE 2432,79418 + COMPILED_CONSTANTS 2433,79445 + COMPILED_STACK_DEPTH 2434,79473 + COMPILED_DOC_STRING 2435,79503 + COMPILED_INTERACTIVE 2436,79532 +enum char_bits2443,79834 + CHAR_ALT 2445,79853 + CHAR_SUPER 2446,79879 + CHAR_HYPER 2447,79907 + CHAR_SHIFT 2448,79935 + CHAR_CTL 2449,79963 + CHAR_META 2450,79989 + CHAR_MODIFIER_MASK 2452,80017 + CHARACTERBITS 2457,80212 +LISP_MACRO_DEFUN 2462,80270 +NATNUMP 2470,80412 +RANGED_INTEGERP 2476,80493 +#define TYPE_RANGED_INTEGERP(2481,80615 +LISP_MACRO_DEFUN 2486,80800 +VECTORP 2500,81273 +OVERLAYP 2505,81376 +SAVE_VALUEP 2510,81475 +FINALIZERP 2516,81581 +AUTOLOADP 2522,81685 +BUFFER_OBJFWDP 2528,81776 +PSEUDOVECTOR_TYPEP 2534,81874 +PSEUDOVECTORP 2542,82127 +WINDOW_CONFIGURATIONP 2558,82479 +PROCESSP 2564,82589 +WINDOWP 2570,82673 +TERMINALP 2576,82755 +SUBRP 2582,82841 +COMPILEDP 2588,82919 +BUFFERP 2594,83005 +CHAR_TABLE_P 2600,83087 +SUB_CHAR_TABLE_P 2606,83178 +BOOL_VECTOR_P 2612,83277 +FRAMEP 2618,83370 +IMAGEP 2625,83487 +ARRAYP 2632,83592 +CHECK_LIST 2638,83711 +LISP_MACRO_DEFUN_VOID 2643,83792 +CHECK_STRING_CAR 2653,84089 +CHECK_CONS 2658,84193 +CHECK_VECTOR 2663,84273 +CHECK_BOOL_VECTOR 2668,84359 +CHECK_VECTOR_OR_STRING 2674,84536 +CHECK_ARRAY 2683,84710 +CHECK_BUFFER 2688,84818 +CHECK_WINDOW 2693,84904 +CHECK_PROCESS 2699,85010 +CHECK_NATNUM 2705,85106 +#define CHECK_RANGED_INTEGER(2710,85183 +#define CHECK_TYPE_RANGED_INTEGER(2721,85566 +#define CHECK_NUMBER_COERCE_MARKER(2729,85836 +XFLOATINT 2738,86089 +CHECK_NUMBER_OR_FLOAT 2744,86160 +#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(2749,86259 +CHECK_NUMBER_CAR 2760,86669 +CHECK_NUMBER_CDR 2768,86791 +#define DEFUN(2803,88386 +#define DEFUN(2812,88854 +FUNCTIONP 2822,89209 +enum maxargs2831,89404 + MANY 2833,89421 + UNEVALLED 2834,89436 +#define CALLMANY(2838,89539 +#define CALLN(2844,89892 +#define DEFVAR_LISP(2869,91097 +#define DEFVAR_LISP_NOPRO(2874,91269 +#define DEFVAR_BOOL(2879,91451 +#define DEFVAR_INT(2884,91624 +#define DEFVAR_BUFFER_DEFAULTS(2890,91795 +#define DEFVAR_KBOARD(2896,91999 +typedef jmp_buf sys_jmp_buf;2906,92323 +# define sys_setjmp(2907,92352 +# define sys_longjmp(2908,92387 +typedef sigjmp_buf sys_jmp_buf;2910,92459 +# define sys_setjmp(2911,92491 +# define sys_longjmp(2912,92531 +typedef jmp_buf sys_jmp_buf;2916,92690 +# define sys_setjmp(2917,92719 +# define sys_longjmp(2918,92753 +enum specbind_tag 2943,93805 + SPECPDL_UNWIND,2944,93825 + SPECPDL_UNWIND_PTR,2945,93894 + SPECPDL_UNWIND_INT,2946,93945 + SPECPDL_UNWIND_VOID,2947,93993 + SPECPDL_BACKTRACE,2948,94047 + SPECPDL_LET,2949,94105 + SPECPDL_LET_LOCAL,2951,94235 + SPECPDL_LET_DEFAULT 2952,94292 +union specbinding2955,94364 + ENUM_BF 2957,94386 + ENUM_BF 2959,94443 + ENUM_BF 2964,94573 + ENUM_BF 2969,94696 + ENUM_BF 2974,94814 + ENUM_BF 2978,94919 + ENUM_BF 2983,95094 +enum handlertype 3021,96410 +enum handlertype { CATCHER,3021,96410 +enum handlertype { CATCHER, CONDITION_CASE 3021,96410 +struct handler3023,96457 +#define PUSH_HANDLER(3053,97446 +#define QUIT 3101,99223 +#define QUITP 3112,99473 +struct gcpro3132,100316 +#define GC_USE_GCPROS_AS_BEFORE 3171,101297 +#define GC_MAKE_GCPROS_NOOPS 3172,101332 +#define GC_MARK_STACK_CHECK_GCPROS 3173,101364 +#define GC_USE_GCPROS_CHECK_ZOMBIES 3174,101401 +#define GC_MARK_STACK 3177,101462 +#define BYTE_MARK_STACK 3181,101562 +#define GCPRO1(3190,101833 +#define GCPRO2(3191,101873 +#define GCPRO3(3192,101939 +#define GCPRO4(3194,102034 +#define GCPRO5(3196,102154 +#define GCPRO6(3198,102299 +#define GCPRO7(3201,102474 +#define UNGCPRO 3202,102553 +#define GCPRO1(3208,102653 +#define GCPRO2(3212,102775 +#define GCPRO3(3217,102967 +#define GCPRO4(3223,103229 +#define GCPRO5(3230,103560 +#define GCPRO6(3238,103961 +#define GCPRO7(3247,104431 +#define UNGCPRO 3257,104971 +#define GCPRO1(3263,105065 +#define GCPRO2(3269,105299 +#define GCPRO3(3278,105717 +#define GCPRO4(3289,106274 +#define GCPRO5(3302,106972 +#define GCPRO6(3317,107812 +#define GCPRO7(3334,108793 +#define UNGCPRO 3353,109916 +#define RETURN_UNGCPRO(3363,110183 +vcopy 3384,110657 +set_hash_key_slot 3393,110932 +set_hash_value_slot 3399,111071 +set_symbol_function 3408,111306 +set_symbol_plist 3414,111421 +set_symbol_next 3420,111524 +blv_found 3428,111697 +set_overlay_plist 3437,111880 +string_intervals 3445,112031 +set_string_intervals 3453,112153 +set_char_table_defalt 3462,112355 +set_char_table_purpose 3467,112467 +set_char_table_extras 3475,112636 +set_char_table_contents 3482,112845 +set_sub_char_table_contents 3489,113040 +enum Arith_Comparison 3497,113303 + ARITH_EQUAL,3498,113327 + ARITH_NOTEQUAL,3499,113342 + ARITH_LESS,3500,113360 + ARITH_GRTR,3501,113374 + ARITH_LESS_OR_EQUAL,3502,113388 + ARITH_GRTR_OR_EQUAL3503,113411 +#define INTEGER_TO_CONS(3511,113762 +#define CONS_TO_INTEGER(3529,114625 +enum { NEXT_ALMOST_PRIME_LIMIT 3573,116329 +extern EMACS_INT next_almost_prime 3574,116368 +enum constype 3739,123820 +enum constype {CONSTYPE_HEAP,CONSTYPE_HEAP3739,123820 +enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}CONSTYPE_PURE3739,123820 +list2i 3745,124010 +list3i 3751,124119 +list4i 3757,124258 +extern Lisp_Object make_formatted_string 3767,124634 +build_pure_c_string 3792,125662 +build_string 3801,125867 +make_uninit_vector 3820,126438 +make_uninit_sub_char_table 3833,126657 +#define ALLOCATE_PSEUDOVECTOR(3850,127201 +#define ALLOCATE_ZEROED_PSEUDOVECTOR(3858,127537 +INLINE void 3890,128943 +extern void *r_alloc r_alloc3895,129064 +#define FLOAT_TO_STRING_BUFSIZE 3927,130527 +intern 3968,132134 +intern_c_string 3974,132222 +extern _Noreturn void error 4034,135601 +fast_string_match_ignore_case 4136,140089 +INLINE void fixup_locale 4241,143854 +INLINE void synchronize_system_messages_locale 4242,143889 +INLINE void synchronize_system_time_locale 4243,143946 +#define IS_DAEMON 4257,144419 +#define DAEMON_RUNNING 4258,144459 +#define IS_DAEMON 4261,144558 +#define DAEMON_RUNNING 4262,144603 +# define WAIT_READING_MAX 4281,145422 +# define WAIT_READING_MAX 4283,145494 +extern _Noreturn void emacs_abort 4374,148386 +egetenv 4532,152809 +#define eabs(4545,153305 +#define make_fixnum_or_float(4550,153438 +enum MAX_ALLOCA 4556,153689 +enum MAX_ALLOCA { MAX_ALLOCA 4556,153689 +extern void *record_xmalloc record_xmalloc4558,153734 +#define USE_SAFE_ALLOCA 4560,153800 +#define AVAIL_ALLOCA(4564,153933 +#define SAFE_ALLOCA(4568,154044 +#define SAFE_NALLOCA(4576,154385 +#define SAFE_ALLOCA_STRING(4590,154861 +#define SAFE_FREE(4598,155113 +#define SAFE_ALLOCA_LISP(4625,155691 +# define USE_STACK_LISP_OBJECTS 4652,156813 +# undef USE_STACK_LISP_OBJECTS4658,156979 +# define USE_STACK_LISP_OBJECTS 4659,157010 +enum { defined_GC_CHECK_STRING_BYTES 4663,157085 +enum { defined_GC_CHECK_STRING_BYTES 4665,157138 +union Aligned_Cons4670,157272 +union Aligned_String4676,157352 + USE_STACK_CONS 4689,157707 + USE_STACK_STRING 4691,157813 +#define STACK_CONS(4699,158150 +#define AUTO_CONS_EXPR(4701,158247 +#define AUTO_CONS(4709,158610 +#define AUTO_LIST1(4710,158681 +#define AUTO_LIST2(4712,158789 +#define AUTO_LIST3(4716,158944 +#define AUTO_LIST4(4720,159119 +# define verify_ascii(4732,159510 +#define AUTO_STRING(4740,159818 +#define FOR_EACH_TAIL(4752,160282 +#define FOR_EACH_ALIST_VALUE(4766,160773 +maybe_gc 4774,161060 +functionp 4784,161299 c-src/machsyscalls.c,23 #define SYSCALL(6,113 @@ -2236,10 +2236,10 @@ el-src/emacs/lisp/progmodes/etags.el,5069 (defvar etags-xref-find-definitions-tag-order 2076,82586 (defun etags-xref-find 2082,82876 (defun etags--xref-find-definitions 2096,83405 -(defclass xref-etags-location 2129,85120 -(defun xref-make-etags-location 2135,85343 -(cl-defmethod xref-location-marker 2139,85498 -(cl-defmethod xref-location-line 2146,85742 +(defclass xref-etags-location 2129,85119 +(defun xref-make-etags-location 2135,85342 +(cl-defmethod xref-location-marker 2139,85497 +(cl-defmethod xref-location-line 2146,85741 erl-src/gs_dialog.erl,98 -define(VERSION2,32 @@ -2977,25 +2977,25 @@ class Configure(760,24879 def save(797,26022 def nosave(807,26310 -ruby-src/test.rb,594 +ruby-src/test.rb,604 module ModuleExample1,0 class ClassExample2,21 def instance_method3,44 - def ClassExample.class_method6,116 - def instance_method_exclamation!9,221 - def instance_method_question?12,319 - def instance_method_equals=class_method_equals=15,411 - def `(18,499 - def +(21,589 - def [](24,637 - def []=([]=27,687 - def <<(30,749 - def ==(==33,799 - def <=(<=36,869 - def <=>(<=>39,940 - def ===(===42,987 - def module_instance_method46,1048 - def ModuleExample.module_class_method49,1110 + def ClassExample.class_method6,121 + def instance_method_exclamation!9,206 + def instance_method_question?12,310 + def instance_method_equals=instance_method_equals=15,408 + def `(18,502 + def +(21,592 + def [](24,640 + def []=([]=27,690 + def <<(30,752 + def ==(==33,802 + def <=(<=36,872 + def <=>(<=>39,943 + def ===(===42,990 + def module_instance_method46,1051 + def ModuleExample.module_class_method49,1131 ruby-src/test1.ruby,37 class A1,0 @@ -3018,722 +3018,722 @@ tex-src/gzip.texi,303 @node Problems,460,16767 @node Concept Index,Concept Index473,17287 -tex-src/texinfo.tex,30626 -\def\texinfoversion{\texinfoversion25,1019 -\def\tie{\tie48,1510 -\def\gloggingall{\gloggingall71,2260 -\def\loggingall{\loggingall72,2329 -\def\onepageout#1{\onepageout98,3266 -\def\croppageout#1{\croppageout114,4016 -\def\cropmarks{\cropmarks141,5076 -\def\pagebody#1{\pagebody143,5123 -\def\ewtop{\ewtop156,5578 -\def\nstop{\nstop157,5642 -\def\ewbot{\ewbot159,5725 -\def\nsbot{\nsbot160,5789 -\def\parsearg #1{\parsearg169,6088 -\def\parseargx{\parseargx171,6166 -\def\parseargline{\parseargline181,6406 -\def\flushcr{\flushcr185,6527 -\newif\ifENV \ENVfalse \def\inENV{\inENV189,6726 -\def\ENVcheck{\ENVcheck190,6790 -\outer\def\begin{\begin197,7037 -\def\beginxxx #1{\beginxxx199,7075 -\def\end{\end207,7330 -\def\endxxx #1{\endxxx209,7358 -\def\errorE#1{\errorE215,7547 -\def\singlespace{\singlespace221,7741 -\def\@{\@231,7964 -\def\`{\`235,8064 -\def\'{\'236,8076 -\def\mylbrace {\mylbrace240,8124 -\def\myrbrace {\myrbrace241,8157 -\def\:{\:246,8271 -\def\*{\*249,8325 -\def\.{\.252,8401 -\def\w#1{\w257,8632 -\def\group{\group267,9115 - \def\Egroup{\Egroup272,9279 -\def\need{\need288,9721 -\def\needx#1{\needx299,9998 -\def\dots{\dots338,11384 -\def\page{\page342,11448 -\def\exdent{\exdent352,11775 -\def\exdentyyy #1{\exdentyyy353,11808 -\def\nofillexdent{\nofillexdent356,11952 -\def\nofillexdentyyy #1{\nofillexdentyyy357,11997 -\def\include{\include364,12181 -\def\includezzz #1{\includezzz365,12216 -\def\thisfile{\thisfile368,12267 -\def\center{\center372,12330 -\def\centerzzz #1{\centerzzz373,12363 -\def\sp{\sp379,12505 -\def\spxxx #1{\spxxx380,12530 -\def\comment{\comment386,12704 -\def\commentxxx #1{\commentxxx389,12801 -\def\ignoresections{\ignoresections395,12970 -\let\chapter=\relax=\relax396,12992 -\let\section=\relax=\relax405,13237 -\let\subsection=\relax=\relax408,13298 -\let\subsubsection=\relax=\relax409,13321 -\let\appendix=\relax=\relax410,13347 -\let\appendixsec=\relaxsec=\relax411,13368 -\let\appendixsection=\relaxsection=\relax412,13392 -\let\appendixsubsec=\relaxsubsec=\relax413,13420 -\let\appendixsubsection=\relaxsubsection=\relax414,13447 -\let\appendixsubsubsec=\relaxsubsubsec=\relax415,13478 -\let\appendixsubsubsection=\relaxsubsubsection=\relax416,13508 -\def\ignore{\ignore422,13610 -\long\def\ignorexxx #1\end ignore{\ignorexxx426,13750 -\def\direntry{\direntry428,13809 -\long\def\direntryxxx #1\end direntry{\direntryxxx429,13848 -\def\ifset{\ifset433,13958 -\def\ifsetxxx #1{\ifsetxxx435,14016 -\def\Eifset{\Eifset439,14143 -\def\ifsetfail{\ifsetfail440,14157 -\long\def\ifsetfailxxx #1\end ifset{\ifsetfailxxx441,14213 -\def\ifclear{\ifclear443,14274 -\def\ifclearxxx #1{\ifclearxxx445,14336 -\def\Eifclear{\Eifclear449,14467 -\def\ifclearfail{\ifclearfail450,14483 -\long\def\ifclearfailxxx #1\end ifclear{\ifclearfailxxx451,14543 -\def\set{\set455,14694 -\def\setxxx #1{\setxxx456,14721 -\def\clear{\clear459,14783 -\def\clearxxx #1{\clearxxx460,14814 -\def\iftex{\iftex465,14931 -\def\Eiftex{\Eiftex466,14944 -\def\ifinfo{\ifinfo467,14958 -\long\def\ifinfoxxx #1\end ifinfo{\ifinfoxxx468,15008 -\long\def\menu #1\end menu{\menu470,15067 -\def\asis#1{\asis471,15096 -\def\math#1{\math484,15639 -\def\node{\node486,15683 -\def\nodezzz#1{\nodezzz487,15721 -\def\nodexxx[#1,#2]{\nodexxx[488,15752 -\def\donoderef{\donoderef491,15814 -\def\unnumbnoderef{\unnumbnoderef495,15935 -\def\appendixnoderef{\appendixnoderef499,16066 -\expandafter\expandafter\expandafter\appendixsetref{setref500,16112 -\let\refill=\relaxill=\relax503,16201 -\def\setfilename{\setfilename508,16415 -\outer\def\bye{\bye517,16661 -\def\inforef #1{\inforef519,16717 -\def\inforefzzz #1,#2,#3,#4**{\inforefzzz520,16755 -\def\losespace #1{\losespace522,16852 -\def\sf{\sf531,17056 -\font\defbf=cmbx10 scaled \magstep1 %was 1314bf=cmbx10557,17851 -\font\deftt=cmtt10 scaled \magstep1tt=cmtt10558,17897 -\def\df{\df559,17933 -\def\resetmathfonts{\resetmathfonts634,20527 -\def\textfonts{\textfonts647,21116 -\def\chapfonts{\chapfonts652,21331 -\def\secfonts{\secfonts657,21547 -\def\subsecfonts{\subsecfonts662,21752 -\def\indexfonts{\indexfonts667,21969 -\def\smartitalicx{\smartitalicx690,22701 -\def\smartitalic#1{\smartitalic691,22777 -\let\cite=\smartitalic=\smartitalic697,22922 -\def\b#1{\b699,22946 -\def\t#1{\t702,22981 -\def\samp #1{\samp705,23133 -\def\key #1{\key706,23166 -\def\ctrl #1{\ctrl707,23227 -\def\tclose#1{\tclose715,23429 -\def\ {\719,23595 -\def\xkey{\xkey727,23864 -\def\kbdfoo#1#2#3\par{\kbdfoo728,23880 -\def\dmn#1{\dmn737,24181 -\def\kbd#1{\kbd739,24208 -\def\l#1{\l741,24265 -\def\r#1{\r743,24294 -\def\sc#1{\sc745,24362 -\def\ii#1{\ii746,24405 -\def\titlefont#1{\titlefont754,24638 -\def\titlepage{\titlepage760,24741 - \def\subtitlefont{\subtitlefont765,24968 - \def\authorfont{\authorfont767,25052 - \def\title{\title773,25262 - \def\titlezzz##1{\titlezzz774,25297 - \def\subtitle{\subtitle782,25612 - \def\subtitlezzz##1{\subtitlezzz783,25653 - \def\author{\author786,25771 - \def\authorzzz##1{\authorzzz787,25808 - \def\page{\page793,26099 -\def\Etitlepage{\Etitlepage803,26268 -\def\finishtitlepage{\finishtitlepage816,26656 -\def\evenheading{\evenheading845,27664 -\def\oddheading{\oddheading846,27707 -\def\everyheading{\everyheading847,27748 -\def\evenfooting{\evenfooting849,27794 -\def\oddfooting{\oddfooting850,27837 -\def\everyfooting{\everyfooting851,27878 -\def\headings #1 {\headings892,29570 -\def\HEADINGSoff{\HEADINGSoff894,29619 -\def\HEADINGSdouble{\HEADINGSdouble903,30046 -\def\HEADINGSsingle{\HEADINGSsingle913,30366 -\def\HEADINGSon{\HEADINGSon921,30587 -\def\HEADINGSafter{\HEADINGSafter923,30621 -\def\HEADINGSdoublex{\HEADINGSdoublex925,30716 -\def\HEADINGSsingleafter{\HEADINGSsingleafter932,30904 -\def\HEADINGSsinglex{\HEADINGSsinglex933,30965 -\def\today{\today942,31240 -\def\thistitle{\thistitle957,31785 -\def\settitle{\settitle958,31810 -\def\settitlezzz #1{\settitlezzz959,31847 -\def\internalBitem{\internalBitem991,32777 -\def\internalBitemx{\internalBitemx992,32827 -\def\internalBxitem "#1"{\internalBxitem994,32872 -\def\internalBxitemx "#1"{\internalBxitemx995,32952 -\def\internalBkitem{\internalBkitem997,33027 -\def\internalBkitemx{\internalBkitemx998,33079 -\def\kitemzzz #1{\kitemzzz1000,33126 -\def\xitemzzz #1{\xitemzzz1003,33228 -\def\itemzzz #1{\itemzzz1006,33331 -\def\item{\item1036,34402 -\def\itemx{\itemx1037,34453 -\def\kitem{\kitem1038,34506 -\def\kitemx{\kitemx1039,34559 -\def\xitem{\xitem1040,34614 -\def\xitemx{\xitemx1041,34667 -\def\description{\description1044,34777 -\def\table{\table1046,34827 -\def\ftable{\ftable1051,34971 -\def\Eftable{\Eftable1055,35117 -\def\vtable{\vtable1058,35186 -\def\Evtable{\Evtable1062,35332 -\def\dontindex #1{\dontindex1065,35401 -\def\fnitemindex #1{\fnitemindex1066,35421 -\def\vritemindex #1{\vritemindex1067,35466 -\def\tablez #1#2#3#4#5#6{\tablez1073,35615 -\def\Edescription{\Edescription1076,35673 -\def\itemfont{\itemfont1081,35875 -\def\Etable{\Etable1089,36101 -\def\itemize{\itemize1102,36425 -\def\itemizezzz #1{\itemizezzz1104,36461 -\def\itemizey #1#2{\itemizey1109,36556 -\def#2{1118,36802 -\def\itemcontents{\itemcontents1119,36843 -\def\bullet{\bullet1122,36891 -\def\minus{\minus1123,36918 -\def\frenchspacing{\frenchspacing1127,37026 -\def\splitoff#1#2\endmark{\splitoff1133,37251 -\def\enumerate{\enumerate1139,37481 -\def\enumeratezzz #1{\enumeratezzz1140,37520 -\def\enumeratey #1 #2\endenumeratey{\enumeratey1141,37573 - \def\thearg{\thearg1145,37720 - \ifx\thearg\empty \def\thearg{\thearg1146,37739 -\def\numericenumerate{\numericenumerate1183,39073 -\def\lowercaseenumerate{\lowercaseenumerate1189,39203 -\def\uppercaseenumerate{\uppercaseenumerate1202,39550 -\def\startenumeration#1{\startenumeration1218,40040 -\def\alphaenumerate{\alphaenumerate1226,40222 -\def\capsenumerate{\capsenumerate1227,40257 -\def\Ealphaenumerate{\Ealphaenumerate1228,40291 -\def\Ecapsenumerate{\Ecapsenumerate1229,40325 -\def\itemizeitem{\itemizeitem1233,40405 -\def\newindex #1{\newindex1258,41262 -\def\defindex{\defindex1267,41551 -\def\newcodeindex #1{\newcodeindex1271,41659 -\def\defcodeindex{\defcodeindex1278,41919 -\def\synindex #1 #2 {\synindex1282,42099 -\def\syncodeindex #1 #2 {\syncodeindex1291,42439 -\def\doindex#1{\doindex1308,43118 -\def\singleindexer #1{\singleindexer1309,43177 -\def\docodeindex#1{\docodeindex1312,43289 -\def\singlecodeindexer #1{\singlecodeindexer1313,43356 -\def\indexdummies{\indexdummies1315,43414 -\def\_{\_1316,43434 -\def\w{\w1317,43462 -\def\bf{\bf1318,43489 -\def\rm{\rm1319,43518 -\def\sl{\sl1320,43547 -\def\sf{\sf1321,43576 -\def\tt{\tt1322,43604 -\def\gtr{\gtr1323,43632 -\def\less{\less1324,43662 -\def\hat{\hat1325,43694 -\def\char{\char1326,43724 -\def\TeX{\TeX1327,43756 -\def\dots{\dots1328,43786 -\def\copyright{\copyright1329,43819 -\def\tclose##1{\tclose1330,43862 -\def\code##1{\code1331,43907 -\def\samp##1{\samp1332,43948 -\def\t##1{\t1333,43989 -\def\r##1{\r1334,44024 -\def\i##1{\i1335,44059 -\def\b##1{\b1336,44094 -\def\cite##1{\cite1337,44129 -\def\key##1{\key1338,44170 -\def\file##1{\file1339,44209 -\def\var##1{\var1340,44250 -\def\kbd##1{\kbd1341,44289 -\def\indexdummyfont#1{\indexdummyfont1346,44445 -\def\indexdummytex{\indexdummytex1347,44471 -\def\indexdummydots{\indexdummydots1348,44495 -\def\indexnofonts{\indexnofonts1350,44521 -\let\w=\indexdummyfontdummyfont1351,44541 -\let\t=\indexdummyfontdummyfont1352,44564 -\let\r=\indexdummyfontdummyfont1353,44587 -\let\i=\indexdummyfontdummyfont1354,44610 -\let\b=\indexdummyfontdummyfont1355,44633 -\let\emph=\indexdummyfontdummyfont1356,44656 -\let\strong=\indexdummyfontdummyfont1357,44682 -\let\cite=\indexdummyfont=\indexdummyfont1358,44710 -\let\sc=\indexdummyfontdummyfont1359,44736 -\let\tclose=\indexdummyfontdummyfont1363,44908 -\let\code=\indexdummyfontdummyfont1364,44936 -\let\file=\indexdummyfontdummyfont1365,44962 -\let\samp=\indexdummyfontdummyfont1366,44988 -\let\kbd=\indexdummyfontdummyfont1367,45014 -\let\key=\indexdummyfontdummyfont1368,45039 -\let\var=\indexdummyfontdummyfont1369,45064 -\let\TeX=\indexdummytexdummytex1370,45089 -\let\dots=\indexdummydotsdummydots1371,45113 -\let\indexbackslash=0 %overridden during \printindex.backslash=01381,45365 -\def\doind #1#2{\doind1383,45421 -{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1385,45464 -\def\rawbackslashxx{\rawbackslashxx1388,45604 -{\indexnofontsnofonts1393,45866 -\def\dosubind #1#2#3{\dosubind1404,46177 -{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1406,46225 -\def\rawbackslashxx{\rawbackslashxx1409,46329 -{\indexnofontsnofonts1413,46483 -\def\findex {\findex1442,47414 -\def\kindex {\kindex1443,47437 -\def\cindex {\cindex1444,47460 -\def\vindex {\vindex1445,47483 -\def\tindex {\tindex1446,47506 -\def\pindex {\pindex1447,47529 -\def\cindexsub {\cindexsub1449,47553 -\def\printindex{\printindex1461,47880 -\def\doprintindex#1{\doprintindex1463,47921 - \def\indexbackslash{\indexbackslash1480,48406 - \indexfonts\rm \tolerance=9500 \advance\baselineskip -1ptfonts\rm1481,48445 -\def\initial #1{\initial1516,49517 -\def\entry #1#2{\entry1522,49724 - \null\nobreak\indexdotfill % Have leaders before the page number.dotfill1539,50371 -\def\indexdotfill{\indexdotfill1548,50699 -\def\primary #1{\primary1551,50805 -\def\secondary #1#2{\secondary1555,50887 -\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\pardotfill1558,50969 -\newbox\partialpageialpage1565,51142 -\def\begindoublecolumns{\begindoublecolumns1571,51300 - \output={\global\setbox\partialpage=ialpage=1572,51336 -\def\enddoublecolumns{\enddoublecolumns1576,51524 -\def\doublecolumnout{\doublecolumnout1579,51609 - \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1580,51678 -\def\pagesofar{\pagesofar1583,51856 -\def\balancecolumns{\balancecolumns1587,52093 - \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpageialpage1593,52264 - \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1599,52525 -\newcount \appendixno \appendixno = `\@no1626,53430 -\def\appendixletter{\appendixletter1627,53471 -\def\opencontents{\opencontents1631,53574 -\def\thischapter{\thischapter1636,53755 -\def\seccheck#1{\seccheck1637,53793 -\def\chapternofonts{\chapternofonts1642,53897 -\def\result{\result1645,53972 -\def\equiv{\equiv1646,54007 -\def\expansion{\expansion1647,54040 -\def\print{\print1648,54081 -\def\TeX{\TeX1649,54114 -\def\dots{\dots1650,54143 -\def\copyright{\copyright1651,54174 -\def\tt{\tt1652,54215 -\def\bf{\bf1653,54242 -\def\w{\w1654,54270 -\def\less{\less1655,54295 -\def\gtr{\gtr1656,54326 -\def\hat{\hat1657,54355 -\def\char{\char1658,54384 -\def\tclose##1{\tclose1659,54415 -\def\code##1{\code1660,54459 -\def\samp##1{\samp1661,54499 -\def\r##1{\r1662,54539 -\def\b##1{\b1663,54573 -\def\key##1{\key1664,54607 -\def\file##1{\file1665,54645 -\def\kbd##1{\kbd1666,54685 -\def\i##1{\i1668,54793 -\def\cite##1{\cite1669,54827 -\def\var##1{\var1670,54867 -\def\emph##1{\emph1671,54905 -\def\dfn##1{\dfn1672,54945 -\def\thischaptername{\thischaptername1675,54986 -\outer\def\chapter{\chapter1676,55025 -\def\chapterzzz #1{\chapterzzz1677,55066 -{\chapternofonts%nofonts%1686,55462 -\global\let\section = \numberedsec=1691,55615 -\global\let\subsection = \numberedsubsec=1692,55650 -\global\let\subsubsection = \numberedsubsubsec=1693,55691 -\outer\def\appendix{\appendix1696,55742 -\def\appendixzzz #1{\appendixzzz1697,55785 -\global\advance \appendixno by 1 \message{no1699,55862 -\chapmacro {#1}{Appendix \appendixletter}letter1700,55931 -\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}letter:1703,56024 -{\chapternofonts%nofonts%1704,56096 - {#1}{Appendix \appendixletter}letter1706,56152 -\appendixnoderef %noderef1709,56252 -\global\let\section = \appendixsec=1710,56271 -\global\let\subsection = \appendixsubsec=1711,56306 -\global\let\subsubsection = \appendixsubsubsec=1712,56347 -\outer\def\top{\top1715,56398 -\outer\def\unnumbered{\unnumbered1716,56438 -\def\unnumberedzzz #1{\unnumberedzzz1717,56485 -{\chapternofonts%nofonts%1721,56648 -\global\let\section = \unnumberedsec=1726,56798 -\global\let\subsection = \unnumberedsubsec=1727,56835 -\global\let\subsubsection = \unnumberedsubsubsec=1728,56878 -\outer\def\numberedsec{\numberedsec1731,56931 -\def\seczzz #1{\seczzz1732,56972 -{\chapternofonts%nofonts%1735,57128 -\outer\def\appendixsection{\appendixsection1744,57314 -\outer\def\appendixsec{\appendixsec1745,57371 -\def\appendixsectionzzz #1{\appendixsectionzzz1746,57424 -\gdef\thissection{#1}\secheading {#1}{\appendixletter}letter1748,57536 -{\chapternofonts%nofonts%1749,57604 -{#1}{\appendixletter}letter1751,57660 -\appendixnoderef %noderef1754,57760 -\outer\def\unnumberedsec{\unnumberedsec1758,57800 -\def\unnumberedseczzz #1{\unnumberedseczzz1759,57853 -{\chapternofonts%nofonts%1761,57948 -\outer\def\numberedsubsec{\numberedsubsec1769,58116 -\def\numberedsubseczzz #1{\numberedsubseczzz1770,58171 -{\chapternofonts%nofonts%1773,58350 -\outer\def\appendixsubsec{\appendixsubsec1782,58554 -\def\appendixsubseczzz #1{\appendixsubseczzz1783,58609 -\subsecheading {#1}{\appendixletter}letter1785,58731 -{\chapternofonts%nofonts%1786,58796 -{#1}{\appendixletter}letter1788,58855 -\appendixnoderef %noderef1791,58970 -\outer\def\unnumberedsubsec{\unnumberedsubsec1795,59010 -\def\unnumberedsubseczzz #1{\unnumberedsubseczzz1796,59069 -{\chapternofonts%nofonts%1798,59170 -\outer\def\numberedsubsubsec{\numberedsubsubsec1806,59341 -\def\numberedsubsubseczzz #1{\numberedsubsubseczzz1807,59402 -{\chapternofonts%nofonts%1811,59599 -\outer\def\appendixsubsubsec{\appendixsubsubsec1822,59832 -\def\appendixsubsubseczzz #1{\appendixsubsubseczzz1823,59893 - {\appendixletter}letter1826,60032 -{\chapternofonts%nofonts%1827,60098 - {\appendixletter}letter1829,60163 -\appendixnoderef %noderef1833,60297 -\outer\def\unnumberedsubsubsec{\unnumberedsubsubsec1837,60337 -\def\unnumberedsubsubseczzz #1{\unnumberedsubsubseczzz1838,60402 -{\chapternofonts%nofonts%1840,60509 -\def\infotop{\infotop1850,60838 -\def\infounnumbered{\infounnumbered1851,60876 -\def\infounnumberedsec{\infounnumberedsec1852,60921 -\def\infounnumberedsubsec{\infounnumberedsubsec1853,60972 -\def\infounnumberedsubsubsec{\infounnumberedsubsubsec1854,61029 -\def\infoappendix{\infoappendix1856,61093 -\def\infoappendixsec{\infoappendixsec1857,61134 -\def\infoappendixsubsec{\infoappendixsubsec1858,61181 -\def\infoappendixsubsubsec{\infoappendixsubsubsec1859,61234 -\def\infochapter{\infochapter1861,61294 -\def\infosection{\infosection1862,61333 -\def\infosubsection{\infosubsection1863,61372 -\def\infosubsubsection{\infosubsubsection1864,61417 -\global\let\section = \numberedsec=1869,61654 -\global\let\subsection = \numberedsubsec=1870,61689 -\global\let\subsubsection = \numberedsubsubsec=1871,61730 -\def\majorheading{\majorheading1885,62237 -\def\majorheadingzzz #1{\majorheadingzzz1886,62282 -\def\chapheading{\chapheading1892,62515 -\def\chapheadingzzz #1{\chapheadingzzz1893,62558 -\def\heading{\heading1898,62753 -\def\subheading{\subheading1900,62790 -\def\subsubheading{\subsubheading1902,62833 -\def\dobreak#1#2{\dobreak1909,63110 -\def\setchapterstyle #1 {\setchapterstyle1911,63188 -\def\chapbreak{\chapbreak1918,63443 -\def\chappager{\chappager1919,63493 -\def\chapoddpage{\chapoddpage1920,63531 -\def\setchapternewpage #1 {\setchapternewpage1922,63610 -\def\CHAPPAGoff{\CHAPPAGoff1924,63667 -\def\CHAPPAGon{\CHAPPAGon1928,63761 -\global\def\HEADINGSon{\HEADINGSon1931,63852 -\def\CHAPPAGodd{\CHAPPAGodd1933,63894 -\global\def\HEADINGSon{\HEADINGSon1936,63990 -\def\CHAPFplain{\CHAPFplain1940,64044 -\def\chfplain #1#2{\chfplain1944,64136 -\def\unnchfplain #1{\unnchfplain1955,64359 -\def\unnchfopen #1{\unnchfopen1963,64588 -\def\chfopen #1#2{\chfopen1969,64796 -\def\CHAPFopen{\CHAPFopen1974,64940 -\def\subsecheadingbreak{\subsecheadingbreak1981,65158 -\def\secheadingbreak{\secheadingbreak1984,65287 -\def\secheading #1#2#3{\secheading1992,65569 -\def\plainsecheading #1{\plainsecheading1993,65625 -\def\secheadingi #1{\secheadingi1994,65668 -\def\subsecheading #1#2#3#4{\subsecheading2005,66036 -\def\subsecheadingi #1{\subsecheadingi2006,66103 -\def\subsubsecfonts{\subsubsecfonts2013,66400 -\def\subsubsecheading #1#2#3#4#5{\subsubsecheading2016,66523 -\def\subsubsecheadingi #1{\subsubsecheadingi2017,66601 -\def\startcontents#1{\startcontents2031,67073 - \unnumbchapmacro{#1}\def\thischapter{\thischapter2039,67346 -\outer\def\contents{\contents2048,67705 -\outer\def\summarycontents{\summarycontents2056,67849 - \def\secentry ##1##2##3##4{\secentry2066,68220 - \def\unnumbsecentry ##1##2{\unnumbsecentry2067,68255 - \def\subsecentry ##1##2##3##4##5{\subsecentry2068,68290 - \def\unnumbsubsecentry ##1##2{\unnumbsubsecentry2069,68331 - \def\subsubsecentry ##1##2##3##4##5##6{\subsubsecentry2070,68369 - \def\unnumbsubsubsecentry ##1##2{\unnumbsubsubsecentry2071,68416 -\def\chapentry#1#2#3{\chapentry2084,68850 -\def\shortchapentry#1#2#3{\shortchapentry2087,68967 - {#2\labelspace #1}space2090,69077 -\def\unnumbchapentry#1#2{\unnumbchapentry2093,69131 -\def\shortunnumberedentry#1#2{\shortunnumberedentry2094,69178 -\def\secentry#1#2#3#4{\secentry2101,69342 -\def\unnumbsecentry#1#2{\unnumbsecentry2102,69401 -\def\subsecentry#1#2#3#4#5{\subsecentry2105,69462 -\def\unnumbsubsecentry#1#2{\unnumbsubsecentry2106,69532 -\def\subsubsecentry#1#2#3#4#5#6{\subsubsecentry2109,69606 - \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}space2110,69640 -\def\unnumbsubsubsecentry#1#2{\unnumbsubsubsecentry2111,69691 -\def\dochapentry#1#2{\dochapentry2122,70065 -\def\dosecentry#1#2{\dosecentry2137,70670 -\def\dosubsecentry#1#2{\dosubsecentry2144,70848 -\def\dosubsubsecentry#1#2{\dosubsubsecentry2151,71033 -\def\labelspace{\labelspace2159,71284 -\def\dopageno#1{\dopageno2161,71319 -\def\doshortpageno#1{\doshortpageno2162,71345 -\def\chapentryfonts{\chapentryfonts2164,71377 -\def\secentryfonts{\secentryfonts2165,71412 -\def\point{\point2191,72371 -\def\result{\result2193,72392 -\def\expansion{\expansion2194,72465 -\def\print{\print2195,72536 -\def\equiv{\equiv2197,72603 -\def\error{\error2217,73376 -\def\tex{\tex2223,73605 -\def\@{\@2241,73988 -\gdef\sepspaces{\def {\ }}}\2264,74720 -\def\aboveenvbreak{\aboveenvbreak2267,74802 -\def\afterenvbreak{\afterenvbreak2271,74968 -\def\ctl{\ctl2285,75479 -\def\ctr{\ctr2286,75551 -\def\cbl{\cbl2287,75590 -\def\cbr{\cbr2288,75630 -\def\carttop{\carttop2289,75669 -\def\cartbot{\cartbot2292,75777 -\long\def\cartouche{\cartouche2298,75917 -\def\Ecartouche{\Ecartouche2325,76705 -\def\lisp{\lisp2337,76840 -\def\Elisp{\Elisp2347,77187 -\def\next##1{\next2359,77513 -\def\Eexample{\Eexample2363,77555 -\def\Esmallexample{\Esmallexample2366,77602 -\def\smalllispx{\smalllispx2372,77780 -\def\Esmalllisp{\Esmalllisp2382,78134 -\obeyspaces \obeylines \ninett \indexfonts \rawbackslashfonts2395,78490 -\def\next##1{\next2396,78547 -\def\display{\display2400,78627 -\def\Edisplay{\Edisplay2409,78946 -\def\next##1{\next2421,79257 -\def\format{\format2425,79360 -\def\Eformat{\Eformat2433,79656 -\def\next##1{\next2436,79745 -\def\flushleft{\flushleft2440,79797 -\def\Eflushleft{\Eflushleft2450,80168 -\def\next##1{\next2453,80261 -\def\flushright{\flushright2455,80283 -\def\Eflushright{\Eflushright2465,80655 -\def\next##1{\next2469,80786 -\def\quotation{\quotation2473,80844 -\def\Equotation{\Equotation2479,81036 -\def\setdeffont #1 {\setdeffont2492,81434 -\newskip\defbodyindent \defbodyindent=.4inbodyindent2494,81480 -\newskip\defargsindent \defargsindent=50ptargsindent2495,81523 -\newskip\deftypemargin \deftypemargin=12pttypemargin2496,81566 -\newskip\deflastargmargin \deflastargmargin=18ptlastargmargin2497,81609 -\def\activeparens{\activeparens2502,81807 -\def\opnr{\opnr2528,83019 -\def\lbrb{\lbrb2529,83084 -\def\defname #1#2{\defname2535,83285 -\advance\dimen2 by -\defbodyindentbodyindent2539,83403 -\advance\dimen3 by -\defbodyindentbodyindent2541,83457 -\setbox0=\hbox{\hskip \deflastargmargin{lastargmargin2543,83511 -\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuationsargsindent2545,83653 -\parshape 2 0in \dimen0 \defargsindent \dimen1 %argsindent2546,83728 -\rlap{\rightline{{\rm #2}\hskip \deftypemargin}typemargin2553,84097 -\advance\leftskip by -\defbodyindentbodyindent2556,84231 -\exdentamount=\defbodyindentbodyindent2557,84268 -\def\defparsebody #1#2#3{\defparsebody2567,84627 -\def#1{2571,84811 -\def#2{2572,84847 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2574,84919 -\exdentamount=\defbodyindentbodyindent2575,84993 -\def\defmethparsebody #1#2#3#4 {\defmethparsebody2580,85097 -\def#1{2584,85258 -\def#2##1 {2585,85294 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2587,85377 -\exdentamount=\defbodyindentbodyindent2588,85451 -\def\defopparsebody #1#2#3#4#5 {\defopparsebody2591,85536 -\def#1{2595,85697 -\def#2##1 ##2 {2596,85733 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2599,85833 -\exdentamount=\defbodyindentbodyindent2600,85907 -\def\defvarparsebody #1#2#3{\defvarparsebody2607,86178 -\def#1{2611,86365 -\def#2{2612,86401 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2614,86460 -\exdentamount=\defbodyindentbodyindent2615,86534 -\def\defvrparsebody #1#2#3#4 {\defvrparsebody2620,86625 -\def#1{2624,86784 -\def#2##1 {2625,86820 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2627,86890 -\exdentamount=\defbodyindentbodyindent2628,86964 -\def\defopvarparsebody #1#2#3#4#5 {\defopvarparsebody2631,87036 -\def#1{2635,87200 -\def#2##1 ##2 {2636,87236 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2639,87323 -\exdentamount=\defbodyindentbodyindent2640,87397 -\def\defunargs #1{\defunargs2663,88157 -\def\deftypefunargs #1{\deftypefunargs2675,88539 -\def\deffn{\deffn2689,88921 -\def\deffnheader #1#2#3{\deffnheader2691,88978 -\begingroup\defname {name2692,89026 -\def\defun{\defun2698,89171 -\def\defunheader #1#2{\defunheader2700,89224 -\begingroup\defname {name2701,89299 -\defunargs {unargs2702,89335 -\def\deftypefun{\deftypefun2708,89483 -\def\deftypefunheader #1#2{\deftypefunheader2711,89605 -\def\deftypefunheaderx #1#2 #3\relax{\deftypefunheaderx2713,89714 -\begingroup\defname {name2715,89806 -\deftypefunargs {typefunargs2716,89852 -\def\deftypefn{\deftypefn2722,90023 -\def\deftypefnheader #1#2#3{\deftypefnheader2725,90172 -\def\deftypefnheaderx #1#2#3 #4\relax{\deftypefnheaderx2727,90308 -\begingroup\defname {name2729,90401 -\deftypefunargs {typefunargs2730,90441 -\def\defmac{\defmac2736,90562 -\def\defmacheader #1#2{\defmacheader2738,90619 -\begingroup\defname {name2739,90695 -\defunargs {unargs2740,90728 -\def\defspec{\defspec2746,90852 -\def\defspecheader #1#2{\defspecheader2748,90913 -\begingroup\defname {name2749,90990 -\defunargs {unargs2750,91030 -\def\deffnx #1 {\deffnx2757,91225 -\def\defunx #1 {\defunx2758,91282 -\def\defmacx #1 {\defmacx2759,91339 -\def\defspecx #1 {\defspecx2760,91398 -\def\deftypefnx #1 {\deftypefnx2761,91459 -\def\deftypeunx #1 {\deftypeunx2762,91524 -\def\defop #1 {\defop2768,91670 -\defopparsebody\Edefop\defopx\defopheader\defoptype}opparsebody\Edefop\defopx\defopheader\defoptype2769,91705 -\def\defopheader #1#2#3{\defopheader2771,91759 -\begingroup\defname {name2773,91848 -\defunargs {unargs2774,91894 -\def\defmethod{\defmethod2779,91955 -\def\defmethodheader #1#2#3{\defmethodheader2781,92028 -\begingroup\defname {name2783,92116 -\defunargs {unargs2784,92156 -\def\defcv #1 {\defcv2789,92230 -\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}opvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype2790,92265 -\def\defcvarheader #1#2#3{\defcvarheader2792,92324 -\begingroup\defname {name2794,92410 -\defvarargs {varargs2795,92456 -\def\defivar{\defivar2800,92529 -\def\defivarheader #1#2#3{\defivarheader2802,92592 -\begingroup\defname {name2804,92678 -\defvarargs {varargs2805,92729 -\def\defopx #1 {\defopx2811,92878 -\def\defmethodx #1 {\defmethodx2812,92935 -\def\defcvx #1 {\defcvx2813,93000 -\def\defivarx #1 {\defivarx2814,93057 -\def\defvarargs #1{\defvarargs2821,93328 -\def\defvr{\defvr2827,93472 -\def\defvrheader #1#2#3{\defvrheader2829,93527 -\begingroup\defname {name2830,93575 -\def\defvar{\defvar2834,93660 -\def\defvarheader #1#2{\defvarheader2836,93720 -\begingroup\defname {name2837,93791 -\defvarargs {varargs2838,93827 -\def\defopt{\defopt2843,93893 -\def\defoptheader #1#2{\defoptheader2845,93953 -\begingroup\defname {name2846,94024 -\defvarargs {varargs2847,94063 -\def\deftypevar{\deftypevar2852,94120 -\def\deftypevarheader #1#2{\deftypevarheader2855,94236 -\begingroup\defname {name2857,94319 -\def\deftypevr{\deftypevr2864,94493 -\def\deftypevrheader #1#2#3{\deftypevrheader2866,94564 -\begingroup\defname {name2867,94616 -\def\defvrx #1 {\defvrx2875,94853 -\def\defvarx #1 {\defvarx2876,94910 -\def\defoptx #1 {\defoptx2877,94969 -\def\deftypevarx #1 {\deftypevarx2878,95028 -\def\deftypevrx #1 {\deftypevrx2879,95095 -\def\deftpargs #1{\deftpargs2884,95244 -\def\deftp{\deftp2888,95324 -\def\deftpheader #1#2#3{\deftpheader2890,95379 -\begingroup\defname {name2891,95427 -\def\deftpx #1 {\deftpx2896,95586 -\def\setref#1{\setref2907,95907 -\def\unnumbsetref#1{\unnumbsetref2912,96021 -\def\appendixsetref#1{\appendixsetref2917,96128 -\def\pxref#1{\pxref2928,96539 -\def\xref#1{\xref2929,96575 -\def\ref#1{\ref2930,96610 -\def\xrefX[#1,#2,#3,#4,#5,#6]{\xrefX[2931,96640 -\def\printedmanual{\printedmanual2932,96683 -\def\printednodename{\printednodename2933,96721 -\def\printednodename{\printednodename2938,96846 -section ``\printednodename'' in \cite{\printedmanual}\printedmanual2953,97479 -\refx{x2956,97557 -\def\dosetq #1#2{\dosetq2964,97777 -\def\internalsetq #1#2{\internalsetq2972,98035 -\def\Ypagenumber{\Ypagenumber2976,98136 -\def\Ytitle{\Ytitle2978,98162 -\def\Ynothing{\Ynothing2980,98189 -\def\Ysectionnumberandtype{\Ysectionnumberandtype2982,98206 -\def\Yappendixletterandtype{\Yappendixletterandtype2991,98522 -\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{no2992,98552 -\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %no.\the\secno2993,98607 -Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %no.\the\secno.\the\subsecno2995,98711 -Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %no.\the\secno.\the\subsecno.\the\subsubsecno2997,98782 - \def\linenumber{\linenumber3008,99121 -\def\refx#1#2{\refx3014,99305 -\def\xrdef #1#2{\xrdef3036,99931 -\def\readauxfile{\readauxfile3039,100016 -\def\supereject{\supereject3109,101797 -\footstrut\parindent=\defaultparindent\hang\textindent{aultparindent\hang\textindent3130,102482 -\def\openindices{\openindices3138,102668 -\newdimen\defaultparindent \defaultparindent = 15ptaultparindent3150,102893 -\parindent = \defaultparindentaultparindent3151,102945 -\def\smallbook{\smallbook3174,103669 -\global\def\Esmallexample{\Esmallexample3191,104096 -\def\afourpaper{\afourpaper3195,104187 -\def\finalout{\finalout3223,104995 -\def\normaldoublequote{\normaldoublequote3234,105256 -\def\normaltilde{\normaltilde3235,105282 -\def\normalcaret{\normalcaret3236,105302 -\def\normalunderscore{\normalunderscore3237,105322 -\def\normalverticalbar{\normalverticalbar3238,105347 -\def\normalless{\normalless3239,105373 -\def\normalgreater{\normalgreater3240,105392 -\def\normalplus{\normalplus3241,105414 -\def\ifusingtt#1#2{\ifusingtt3252,105906 -\def\activedoublequote{\activedoublequote3260,106234 -\def~{~3263,106320 -\def^{^3266,106381 -\def_{_3269,106420 -\def\_{\_3271,106494 -\def\lvvmode{\lvvmode3278,106831 -\def|{|3281,106881 -\def<{<3284,106944 -\def>{>3287,107001 -\def+{+3289,107039 -\def\turnoffactive{\turnoffactive3295,107200 -\global\def={=3306,107486 -\def\normalbackslash{\normalbackslash3320,107868 +tex-src/texinfo.tex,30627 +\def\texinfoversion{\texinfoversion26,1027 +\def\tie{\tie49,1518 +\def\gloggingall{\gloggingall72,2268 +\def\loggingall{\loggingall73,2337 +\def\onepageout#1{\onepageout99,3274 +\def\croppageout#1{\croppageout115,4024 +\def\cropmarks{\cropmarks142,5084 +\def\pagebody#1{\pagebody144,5131 +\def\ewtop{\ewtop157,5586 +\def\nstop{\nstop158,5650 +\def\ewbot{\ewbot160,5733 +\def\nsbot{\nsbot161,5797 +\def\parsearg #1{\parsearg170,6096 +\def\parseargx{\parseargx172,6174 +\def\parseargline{\parseargline182,6414 +\def\flushcr{\flushcr186,6535 +\newif\ifENV \ENVfalse \def\inENV{\inENV190,6734 +\def\ENVcheck{\ENVcheck191,6798 +\outer\def\begin{\begin198,7045 +\def\beginxxx #1{\beginxxx200,7083 +\def\end{\end208,7338 +\def\endxxx #1{\endxxx210,7366 +\def\errorE#1{\errorE216,7555 +\def\singlespace{\singlespace222,7749 +\def\@{\@232,7972 +\def\`{\`236,8072 +\def\'{\'237,8084 +\def\mylbrace {\mylbrace241,8132 +\def\myrbrace {\myrbrace242,8165 +\def\:{\:247,8279 +\def\*{\*250,8333 +\def\.{\.253,8409 +\def\w#1{\w258,8640 +\def\group{\group268,9123 + \def\Egroup{\Egroup273,9287 +\def\need{\need289,9729 +\def\needx#1{\needx300,10006 +\def\dots{\dots339,11392 +\def\page{\page343,11456 +\def\exdent{\exdent353,11783 +\def\exdentyyy #1{\exdentyyy354,11816 +\def\nofillexdent{\nofillexdent357,11960 +\def\nofillexdentyyy #1{\nofillexdentyyy358,12005 +\def\include{\include365,12189 +\def\includezzz #1{\includezzz366,12224 +\def\thisfile{\thisfile369,12275 +\def\center{\center373,12338 +\def\centerzzz #1{\centerzzz374,12371 +\def\sp{\sp380,12513 +\def\spxxx #1{\spxxx381,12538 +\def\comment{\comment387,12712 +\def\commentxxx #1{\commentxxx390,12809 +\def\ignoresections{\ignoresections396,12978 +\let\chapter=\relax=\relax397,13000 +\let\section=\relax=\relax406,13245 +\let\subsection=\relax=\relax409,13306 +\let\subsubsection=\relax=\relax410,13329 +\let\appendix=\relax=\relax411,13355 +\let\appendixsec=\relaxsec=\relax412,13376 +\let\appendixsection=\relaxsection=\relax413,13400 +\let\appendixsubsec=\relaxsubsec=\relax414,13428 +\let\appendixsubsection=\relaxsubsection=\relax415,13455 +\let\appendixsubsubsec=\relaxsubsubsec=\relax416,13486 +\let\appendixsubsubsection=\relaxsubsubsection=\relax417,13516 +\def\ignore{\ignore423,13618 +\long\def\ignorexxx #1\end ignore{\ignorexxx427,13758 +\def\direntry{\direntry429,13817 +\long\def\direntryxxx #1\end direntry{\direntryxxx430,13856 +\def\ifset{\ifset434,13966 +\def\ifsetxxx #1{\ifsetxxx436,14024 +\def\Eifset{\Eifset440,14151 +\def\ifsetfail{\ifsetfail441,14165 +\long\def\ifsetfailxxx #1\end ifset{\ifsetfailxxx442,14221 +\def\ifclear{\ifclear444,14282 +\def\ifclearxxx #1{\ifclearxxx446,14344 +\def\Eifclear{\Eifclear450,14475 +\def\ifclearfail{\ifclearfail451,14491 +\long\def\ifclearfailxxx #1\end ifclear{\ifclearfailxxx452,14551 +\def\set{\set456,14702 +\def\setxxx #1{\setxxx457,14729 +\def\clear{\clear460,14791 +\def\clearxxx #1{\clearxxx461,14822 +\def\iftex{\iftex466,14939 +\def\Eiftex{\Eiftex467,14952 +\def\ifinfo{\ifinfo468,14966 +\long\def\ifinfoxxx #1\end ifinfo{\ifinfoxxx469,15016 +\long\def\menu #1\end menu{\menu471,15075 +\def\asis#1{\asis472,15104 +\def\math#1{\math485,15647 +\def\node{\node487,15691 +\def\nodezzz#1{\nodezzz488,15729 +\def\nodexxx[#1,#2]{\nodexxx[489,15760 +\def\donoderef{\donoderef492,15822 +\def\unnumbnoderef{\unnumbnoderef496,15943 +\def\appendixnoderef{\appendixnoderef500,16074 +\expandafter\expandafter\expandafter\appendixsetref{setref501,16120 +\let\refill=\relaxill=\relax504,16209 +\def\setfilename{\setfilename509,16423 +\outer\def\bye{\bye518,16669 +\def\inforef #1{\inforef520,16725 +\def\inforefzzz #1,#2,#3,#4**{\inforefzzz521,16763 +\def\losespace #1{\losespace523,16860 +\def\sf{\sf532,17064 +\font\defbf=cmbx10 scaled \magstep1 %was 1314bf=cmbx10558,17859 +\font\deftt=cmtt10 scaled \magstep1tt=cmtt10559,17905 +\def\df{\df560,17941 +\def\resetmathfonts{\resetmathfonts635,20535 +\def\textfonts{\textfonts648,21124 +\def\chapfonts{\chapfonts653,21339 +\def\secfonts{\secfonts658,21555 +\def\subsecfonts{\subsecfonts663,21760 +\def\indexfonts{\indexfonts668,21977 +\def\smartitalicx{\smartitalicx691,22709 +\def\smartitalic#1{\smartitalic692,22785 +\let\cite=\smartitalic=\smartitalic698,22930 +\def\b#1{\b700,22954 +\def\t#1{\t703,22989 +\def\samp #1{\samp706,23141 +\def\key #1{\key707,23174 +\def\ctrl #1{\ctrl708,23235 +\def\tclose#1{\tclose716,23437 +\def\ {\720,23603 +\def\xkey{\xkey728,23872 +\def\kbdfoo#1#2#3\par{\kbdfoo729,23888 +\def\dmn#1{\dmn738,24189 +\def\kbd#1{\kbd740,24216 +\def\l#1{\l742,24273 +\def\r#1{\r744,24302 +\def\sc#1{\sc746,24370 +\def\ii#1{\ii747,24413 +\def\titlefont#1{\titlefont755,24646 +\def\titlepage{\titlepage761,24749 + \def\subtitlefont{\subtitlefont766,24976 + \def\authorfont{\authorfont768,25060 + \def\title{\title774,25270 + \def\titlezzz##1{\titlezzz775,25305 + \def\subtitle{\subtitle783,25620 + \def\subtitlezzz##1{\subtitlezzz784,25661 + \def\author{\author787,25779 + \def\authorzzz##1{\authorzzz788,25816 + \def\page{\page794,26107 +\def\Etitlepage{\Etitlepage804,26276 +\def\finishtitlepage{\finishtitlepage817,26664 +\def\evenheading{\evenheading846,27672 +\def\oddheading{\oddheading847,27715 +\def\everyheading{\everyheading848,27756 +\def\evenfooting{\evenfooting850,27802 +\def\oddfooting{\oddfooting851,27845 +\def\everyfooting{\everyfooting852,27886 +\def\headings #1 {\headings893,29578 +\def\HEADINGSoff{\HEADINGSoff895,29627 +\def\HEADINGSdouble{\HEADINGSdouble904,30054 +\def\HEADINGSsingle{\HEADINGSsingle914,30374 +\def\HEADINGSon{\HEADINGSon922,30595 +\def\HEADINGSafter{\HEADINGSafter924,30629 +\def\HEADINGSdoublex{\HEADINGSdoublex926,30724 +\def\HEADINGSsingleafter{\HEADINGSsingleafter933,30912 +\def\HEADINGSsinglex{\HEADINGSsinglex934,30973 +\def\today{\today943,31248 +\def\thistitle{\thistitle958,31793 +\def\settitle{\settitle959,31818 +\def\settitlezzz #1{\settitlezzz960,31855 +\def\internalBitem{\internalBitem992,32785 +\def\internalBitemx{\internalBitemx993,32835 +\def\internalBxitem "#1"{\internalBxitem995,32880 +\def\internalBxitemx "#1"{\internalBxitemx996,32960 +\def\internalBkitem{\internalBkitem998,33035 +\def\internalBkitemx{\internalBkitemx999,33087 +\def\kitemzzz #1{\kitemzzz1001,33134 +\def\xitemzzz #1{\xitemzzz1004,33236 +\def\itemzzz #1{\itemzzz1007,33339 +\def\item{\item1037,34410 +\def\itemx{\itemx1038,34461 +\def\kitem{\kitem1039,34514 +\def\kitemx{\kitemx1040,34567 +\def\xitem{\xitem1041,34622 +\def\xitemx{\xitemx1042,34675 +\def\description{\description1045,34785 +\def\table{\table1047,34835 +\def\ftable{\ftable1052,34979 +\def\Eftable{\Eftable1056,35125 +\def\vtable{\vtable1059,35194 +\def\Evtable{\Evtable1063,35340 +\def\dontindex #1{\dontindex1066,35409 +\def\fnitemindex #1{\fnitemindex1067,35429 +\def\vritemindex #1{\vritemindex1068,35474 +\def\tablez #1#2#3#4#5#6{\tablez1074,35623 +\def\Edescription{\Edescription1077,35681 +\def\itemfont{\itemfont1082,35883 +\def\Etable{\Etable1090,36109 +\def\itemize{\itemize1103,36433 +\def\itemizezzz #1{\itemizezzz1105,36469 +\def\itemizey #1#2{\itemizey1110,36564 +\def#2{1119,36810 +\def\itemcontents{\itemcontents1120,36851 +\def\bullet{\bullet1123,36899 +\def\minus{\minus1124,36926 +\def\frenchspacing{\frenchspacing1128,37034 +\def\splitoff#1#2\endmark{\splitoff1134,37259 +\def\enumerate{\enumerate1140,37489 +\def\enumeratezzz #1{\enumeratezzz1141,37528 +\def\enumeratey #1 #2\endenumeratey{\enumeratey1142,37581 + \def\thearg{\thearg1146,37728 + \ifx\thearg\empty \def\thearg{\thearg1147,37747 +\def\numericenumerate{\numericenumerate1184,39081 +\def\lowercaseenumerate{\lowercaseenumerate1190,39211 +\def\uppercaseenumerate{\uppercaseenumerate1203,39558 +\def\startenumeration#1{\startenumeration1219,40048 +\def\alphaenumerate{\alphaenumerate1227,40230 +\def\capsenumerate{\capsenumerate1228,40265 +\def\Ealphaenumerate{\Ealphaenumerate1229,40299 +\def\Ecapsenumerate{\Ecapsenumerate1230,40333 +\def\itemizeitem{\itemizeitem1234,40413 +\def\newindex #1{\newindex1259,41270 +\def\defindex{\defindex1268,41559 +\def\newcodeindex #1{\newcodeindex1272,41667 +\def\defcodeindex{\defcodeindex1279,41927 +\def\synindex #1 #2 {\synindex1283,42107 +\def\syncodeindex #1 #2 {\syncodeindex1292,42447 +\def\doindex#1{\doindex1309,43126 +\def\singleindexer #1{\singleindexer1310,43185 +\def\docodeindex#1{\docodeindex1313,43297 +\def\singlecodeindexer #1{\singlecodeindexer1314,43364 +\def\indexdummies{\indexdummies1316,43422 +\def\_{\_1317,43442 +\def\w{\w1318,43470 +\def\bf{\bf1319,43497 +\def\rm{\rm1320,43526 +\def\sl{\sl1321,43555 +\def\sf{\sf1322,43584 +\def\tt{\tt1323,43612 +\def\gtr{\gtr1324,43640 +\def\less{\less1325,43670 +\def\hat{\hat1326,43702 +\def\char{\char1327,43732 +\def\TeX{\TeX1328,43764 +\def\dots{\dots1329,43794 +\def\copyright{\copyright1330,43827 +\def\tclose##1{\tclose1331,43870 +\def\code##1{\code1332,43915 +\def\samp##1{\samp1333,43956 +\def\t##1{\t1334,43997 +\def\r##1{\r1335,44032 +\def\i##1{\i1336,44067 +\def\b##1{\b1337,44102 +\def\cite##1{\cite1338,44137 +\def\key##1{\key1339,44178 +\def\file##1{\file1340,44217 +\def\var##1{\var1341,44258 +\def\kbd##1{\kbd1342,44297 +\def\indexdummyfont#1{\indexdummyfont1347,44453 +\def\indexdummytex{\indexdummytex1348,44479 +\def\indexdummydots{\indexdummydots1349,44503 +\def\indexnofonts{\indexnofonts1351,44529 +\let\w=\indexdummyfontdummyfont1352,44549 +\let\t=\indexdummyfontdummyfont1353,44572 +\let\r=\indexdummyfontdummyfont1354,44595 +\let\i=\indexdummyfontdummyfont1355,44618 +\let\b=\indexdummyfontdummyfont1356,44641 +\let\emph=\indexdummyfontdummyfont1357,44664 +\let\strong=\indexdummyfontdummyfont1358,44690 +\let\cite=\indexdummyfont=\indexdummyfont1359,44718 +\let\sc=\indexdummyfontdummyfont1360,44744 +\let\tclose=\indexdummyfontdummyfont1364,44916 +\let\code=\indexdummyfontdummyfont1365,44944 +\let\file=\indexdummyfontdummyfont1366,44970 +\let\samp=\indexdummyfontdummyfont1367,44996 +\let\kbd=\indexdummyfontdummyfont1368,45022 +\let\key=\indexdummyfontdummyfont1369,45047 +\let\var=\indexdummyfontdummyfont1370,45072 +\let\TeX=\indexdummytexdummytex1371,45097 +\let\dots=\indexdummydotsdummydots1372,45121 +\let\indexbackslash=0 %overridden during \printindex.backslash=01382,45373 +\def\doind #1#2{\doind1384,45429 +{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1386,45472 +\def\rawbackslashxx{\rawbackslashxx1389,45612 +{\indexnofontsnofonts1394,45874 +\def\dosubind #1#2#3{\dosubind1405,46185 +{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1407,46233 +\def\rawbackslashxx{\rawbackslashxx1410,46337 +{\indexnofontsnofonts1414,46491 +\def\findex {\findex1443,47422 +\def\kindex {\kindex1444,47445 +\def\cindex {\cindex1445,47468 +\def\vindex {\vindex1446,47491 +\def\tindex {\tindex1447,47514 +\def\pindex {\pindex1448,47537 +\def\cindexsub {\cindexsub1450,47561 +\def\printindex{\printindex1462,47888 +\def\doprintindex#1{\doprintindex1464,47929 + \def\indexbackslash{\indexbackslash1481,48414 + \indexfonts\rm \tolerance=9500 \advance\baselineskip -1ptfonts\rm1482,48453 +\def\initial #1{\initial1517,49525 +\def\entry #1#2{\entry1523,49732 + \null\nobreak\indexdotfill % Have leaders before the page number.dotfill1540,50379 +\def\indexdotfill{\indexdotfill1549,50707 +\def\primary #1{\primary1552,50813 +\def\secondary #1#2{\secondary1556,50895 +\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\pardotfill1559,50977 +\newbox\partialpageialpage1566,51150 +\def\begindoublecolumns{\begindoublecolumns1572,51308 + \output={\global\setbox\partialpage=ialpage=1573,51344 +\def\enddoublecolumns{\enddoublecolumns1577,51532 +\def\doublecolumnout{\doublecolumnout1580,51617 + \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1581,51686 +\def\pagesofar{\pagesofar1584,51864 +\def\balancecolumns{\balancecolumns1588,52101 + \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpageialpage1594,52272 + \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1600,52533 +\newcount \appendixno \appendixno = `\@no1627,53438 +\def\appendixletter{\appendixletter1628,53479 +\def\opencontents{\opencontents1632,53582 +\def\thischapter{\thischapter1637,53763 +\def\seccheck#1{\seccheck1638,53801 +\def\chapternofonts{\chapternofonts1643,53905 +\def\result{\result1646,53980 +\def\equiv{\equiv1647,54015 +\def\expansion{\expansion1648,54048 +\def\print{\print1649,54089 +\def\TeX{\TeX1650,54122 +\def\dots{\dots1651,54151 +\def\copyright{\copyright1652,54182 +\def\tt{\tt1653,54223 +\def\bf{\bf1654,54250 +\def\w{\w1655,54278 +\def\less{\less1656,54303 +\def\gtr{\gtr1657,54334 +\def\hat{\hat1658,54363 +\def\char{\char1659,54392 +\def\tclose##1{\tclose1660,54423 +\def\code##1{\code1661,54467 +\def\samp##1{\samp1662,54507 +\def\r##1{\r1663,54547 +\def\b##1{\b1664,54581 +\def\key##1{\key1665,54615 +\def\file##1{\file1666,54653 +\def\kbd##1{\kbd1667,54693 +\def\i##1{\i1669,54801 +\def\cite##1{\cite1670,54835 +\def\var##1{\var1671,54875 +\def\emph##1{\emph1672,54913 +\def\dfn##1{\dfn1673,54953 +\def\thischaptername{\thischaptername1676,54994 +\outer\def\chapter{\chapter1677,55033 +\def\chapterzzz #1{\chapterzzz1678,55074 +{\chapternofonts%nofonts%1687,55470 +\global\let\section = \numberedsec=1692,55623 +\global\let\subsection = \numberedsubsec=1693,55658 +\global\let\subsubsection = \numberedsubsubsec=1694,55699 +\outer\def\appendix{\appendix1697,55750 +\def\appendixzzz #1{\appendixzzz1698,55793 +\global\advance \appendixno by 1 \message{no1700,55870 +\chapmacro {#1}{Appendix \appendixletter}letter1701,55939 +\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}letter:1704,56032 +{\chapternofonts%nofonts%1705,56104 + {#1}{Appendix \appendixletter}letter1707,56160 +\appendixnoderef %noderef1710,56260 +\global\let\section = \appendixsec=1711,56279 +\global\let\subsection = \appendixsubsec=1712,56314 +\global\let\subsubsection = \appendixsubsubsec=1713,56355 +\outer\def\top{\top1716,56406 +\outer\def\unnumbered{\unnumbered1717,56446 +\def\unnumberedzzz #1{\unnumberedzzz1718,56493 +{\chapternofonts%nofonts%1722,56656 +\global\let\section = \unnumberedsec=1727,56806 +\global\let\subsection = \unnumberedsubsec=1728,56843 +\global\let\subsubsection = \unnumberedsubsubsec=1729,56886 +\outer\def\numberedsec{\numberedsec1732,56939 +\def\seczzz #1{\seczzz1733,56980 +{\chapternofonts%nofonts%1736,57136 +\outer\def\appendixsection{\appendixsection1745,57322 +\outer\def\appendixsec{\appendixsec1746,57379 +\def\appendixsectionzzz #1{\appendixsectionzzz1747,57432 +\gdef\thissection{#1}\secheading {#1}{\appendixletter}letter1749,57544 +{\chapternofonts%nofonts%1750,57612 +{#1}{\appendixletter}letter1752,57668 +\appendixnoderef %noderef1755,57768 +\outer\def\unnumberedsec{\unnumberedsec1759,57808 +\def\unnumberedseczzz #1{\unnumberedseczzz1760,57861 +{\chapternofonts%nofonts%1762,57956 +\outer\def\numberedsubsec{\numberedsubsec1770,58124 +\def\numberedsubseczzz #1{\numberedsubseczzz1771,58179 +{\chapternofonts%nofonts%1774,58358 +\outer\def\appendixsubsec{\appendixsubsec1783,58562 +\def\appendixsubseczzz #1{\appendixsubseczzz1784,58617 +\subsecheading {#1}{\appendixletter}letter1786,58739 +{\chapternofonts%nofonts%1787,58804 +{#1}{\appendixletter}letter1789,58863 +\appendixnoderef %noderef1792,58978 +\outer\def\unnumberedsubsec{\unnumberedsubsec1796,59018 +\def\unnumberedsubseczzz #1{\unnumberedsubseczzz1797,59077 +{\chapternofonts%nofonts%1799,59178 +\outer\def\numberedsubsubsec{\numberedsubsubsec1807,59349 +\def\numberedsubsubseczzz #1{\numberedsubsubseczzz1808,59410 +{\chapternofonts%nofonts%1812,59607 +\outer\def\appendixsubsubsec{\appendixsubsubsec1823,59840 +\def\appendixsubsubseczzz #1{\appendixsubsubseczzz1824,59901 + {\appendixletter}letter1827,60040 +{\chapternofonts%nofonts%1828,60106 + {\appendixletter}letter1830,60171 +\appendixnoderef %noderef1834,60305 +\outer\def\unnumberedsubsubsec{\unnumberedsubsubsec1838,60345 +\def\unnumberedsubsubseczzz #1{\unnumberedsubsubseczzz1839,60410 +{\chapternofonts%nofonts%1841,60517 +\def\infotop{\infotop1851,60846 +\def\infounnumbered{\infounnumbered1852,60884 +\def\infounnumberedsec{\infounnumberedsec1853,60929 +\def\infounnumberedsubsec{\infounnumberedsubsec1854,60980 +\def\infounnumberedsubsubsec{\infounnumberedsubsubsec1855,61037 +\def\infoappendix{\infoappendix1857,61101 +\def\infoappendixsec{\infoappendixsec1858,61142 +\def\infoappendixsubsec{\infoappendixsubsec1859,61189 +\def\infoappendixsubsubsec{\infoappendixsubsubsec1860,61242 +\def\infochapter{\infochapter1862,61302 +\def\infosection{\infosection1863,61341 +\def\infosubsection{\infosubsection1864,61380 +\def\infosubsubsection{\infosubsubsection1865,61425 +\global\let\section = \numberedsec=1870,61662 +\global\let\subsection = \numberedsubsec=1871,61697 +\global\let\subsubsection = \numberedsubsubsec=1872,61738 +\def\majorheading{\majorheading1886,62245 +\def\majorheadingzzz #1{\majorheadingzzz1887,62290 +\def\chapheading{\chapheading1893,62523 +\def\chapheadingzzz #1{\chapheadingzzz1894,62566 +\def\heading{\heading1899,62761 +\def\subheading{\subheading1901,62798 +\def\subsubheading{\subsubheading1903,62841 +\def\dobreak#1#2{\dobreak1910,63118 +\def\setchapterstyle #1 {\setchapterstyle1912,63196 +\def\chapbreak{\chapbreak1919,63451 +\def\chappager{\chappager1920,63501 +\def\chapoddpage{\chapoddpage1921,63539 +\def\setchapternewpage #1 {\setchapternewpage1923,63618 +\def\CHAPPAGoff{\CHAPPAGoff1925,63675 +\def\CHAPPAGon{\CHAPPAGon1929,63769 +\global\def\HEADINGSon{\HEADINGSon1932,63860 +\def\CHAPPAGodd{\CHAPPAGodd1934,63902 +\global\def\HEADINGSon{\HEADINGSon1937,63998 +\def\CHAPFplain{\CHAPFplain1941,64052 +\def\chfplain #1#2{\chfplain1945,64144 +\def\unnchfplain #1{\unnchfplain1956,64367 +\def\unnchfopen #1{\unnchfopen1964,64596 +\def\chfopen #1#2{\chfopen1970,64804 +\def\CHAPFopen{\CHAPFopen1975,64948 +\def\subsecheadingbreak{\subsecheadingbreak1982,65166 +\def\secheadingbreak{\secheadingbreak1985,65295 +\def\secheading #1#2#3{\secheading1993,65577 +\def\plainsecheading #1{\plainsecheading1994,65633 +\def\secheadingi #1{\secheadingi1995,65676 +\def\subsecheading #1#2#3#4{\subsecheading2006,66044 +\def\subsecheadingi #1{\subsecheadingi2007,66111 +\def\subsubsecfonts{\subsubsecfonts2014,66408 +\def\subsubsecheading #1#2#3#4#5{\subsubsecheading2017,66531 +\def\subsubsecheadingi #1{\subsubsecheadingi2018,66609 +\def\startcontents#1{\startcontents2032,67081 + \unnumbchapmacro{#1}\def\thischapter{\thischapter2040,67354 +\outer\def\contents{\contents2049,67713 +\outer\def\summarycontents{\summarycontents2057,67857 + \def\secentry ##1##2##3##4{\secentry2067,68228 + \def\unnumbsecentry ##1##2{\unnumbsecentry2068,68263 + \def\subsecentry ##1##2##3##4##5{\subsecentry2069,68298 + \def\unnumbsubsecentry ##1##2{\unnumbsubsecentry2070,68339 + \def\subsubsecentry ##1##2##3##4##5##6{\subsubsecentry2071,68377 + \def\unnumbsubsubsecentry ##1##2{\unnumbsubsubsecentry2072,68424 +\def\chapentry#1#2#3{\chapentry2085,68858 +\def\shortchapentry#1#2#3{\shortchapentry2088,68975 + {#2\labelspace #1}space2091,69085 +\def\unnumbchapentry#1#2{\unnumbchapentry2094,69139 +\def\shortunnumberedentry#1#2{\shortunnumberedentry2095,69186 +\def\secentry#1#2#3#4{\secentry2102,69350 +\def\unnumbsecentry#1#2{\unnumbsecentry2103,69409 +\def\subsecentry#1#2#3#4#5{\subsecentry2106,69470 +\def\unnumbsubsecentry#1#2{\unnumbsubsecentry2107,69540 +\def\subsubsecentry#1#2#3#4#5#6{\subsubsecentry2110,69614 + \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}space2111,69648 +\def\unnumbsubsubsecentry#1#2{\unnumbsubsubsecentry2112,69699 +\def\dochapentry#1#2{\dochapentry2123,70073 +\def\dosecentry#1#2{\dosecentry2138,70678 +\def\dosubsecentry#1#2{\dosubsecentry2145,70856 +\def\dosubsubsecentry#1#2{\dosubsubsecentry2152,71041 +\def\labelspace{\labelspace2160,71292 +\def\dopageno#1{\dopageno2162,71327 +\def\doshortpageno#1{\doshortpageno2163,71353 +\def\chapentryfonts{\chapentryfonts2165,71385 +\def\secentryfonts{\secentryfonts2166,71420 +\def\point{\point2192,72379 +\def\result{\result2194,72400 +\def\expansion{\expansion2195,72473 +\def\print{\print2196,72544 +\def\equiv{\equiv2198,72611 +\def\error{\error2218,73384 +\def\tex{\tex2224,73613 +\def\@{\@2242,73996 +\gdef\sepspaces{\def {\ }}}\2265,74728 +\def\aboveenvbreak{\aboveenvbreak2268,74810 +\def\afterenvbreak{\afterenvbreak2272,74976 +\def\ctl{\ctl2286,75487 +\def\ctr{\ctr2287,75559 +\def\cbl{\cbl2288,75598 +\def\cbr{\cbr2289,75638 +\def\carttop{\carttop2290,75677 +\def\cartbot{\cartbot2293,75785 +\long\def\cartouche{\cartouche2299,75925 +\def\Ecartouche{\Ecartouche2326,76713 +\def\lisp{\lisp2338,76848 +\def\Elisp{\Elisp2348,77195 +\def\next##1{\next2360,77521 +\def\Eexample{\Eexample2364,77563 +\def\Esmallexample{\Esmallexample2367,77610 +\def\smalllispx{\smalllispx2373,77788 +\def\Esmalllisp{\Esmalllisp2383,78142 +\obeyspaces \obeylines \ninett \indexfonts \rawbackslashfonts2396,78498 +\def\next##1{\next2397,78555 +\def\display{\display2401,78635 +\def\Edisplay{\Edisplay2410,78954 +\def\next##1{\next2422,79265 +\def\format{\format2426,79368 +\def\Eformat{\Eformat2434,79664 +\def\next##1{\next2437,79753 +\def\flushleft{\flushleft2441,79805 +\def\Eflushleft{\Eflushleft2451,80176 +\def\next##1{\next2454,80269 +\def\flushright{\flushright2456,80291 +\def\Eflushright{\Eflushright2466,80663 +\def\next##1{\next2470,80794 +\def\quotation{\quotation2474,80852 +\def\Equotation{\Equotation2480,81044 +\def\setdeffont #1 {\setdeffont2493,81442 +\newskip\defbodyindent \defbodyindent=.4inbodyindent2495,81488 +\newskip\defargsindent \defargsindent=50ptargsindent2496,81531 +\newskip\deftypemargin \deftypemargin=12pttypemargin2497,81574 +\newskip\deflastargmargin \deflastargmargin=18ptlastargmargin2498,81617 +\def\activeparens{\activeparens2503,81815 +\def\opnr{\opnr2529,83027 +\def\lbrb{\lbrb2530,83092 +\def\defname #1#2{\defname2536,83293 +\advance\dimen2 by -\defbodyindentbodyindent2540,83411 +\advance\dimen3 by -\defbodyindentbodyindent2542,83465 +\setbox0=\hbox{\hskip \deflastargmargin{lastargmargin2544,83519 +\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuationsargsindent2546,83661 +\parshape 2 0in \dimen0 \defargsindent \dimen1 %argsindent2547,83736 +\rlap{\rightline{{\rm #2}\hskip \deftypemargin}typemargin2554,84105 +\advance\leftskip by -\defbodyindentbodyindent2557,84239 +\exdentamount=\defbodyindentbodyindent2558,84276 +\def\defparsebody #1#2#3{\defparsebody2568,84635 +\def#1{2572,84819 +\def#2{2573,84855 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2575,84927 +\exdentamount=\defbodyindentbodyindent2576,85001 +\def\defmethparsebody #1#2#3#4 {\defmethparsebody2581,85105 +\def#1{2585,85266 +\def#2##1 {2586,85302 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2588,85385 +\exdentamount=\defbodyindentbodyindent2589,85459 +\def\defopparsebody #1#2#3#4#5 {\defopparsebody2592,85544 +\def#1{2596,85705 +\def#2##1 ##2 {2597,85741 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2600,85841 +\exdentamount=\defbodyindentbodyindent2601,85915 +\def\defvarparsebody #1#2#3{\defvarparsebody2608,86186 +\def#1{2612,86373 +\def#2{2613,86409 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2615,86468 +\exdentamount=\defbodyindentbodyindent2616,86542 +\def\defvrparsebody #1#2#3#4 {\defvrparsebody2621,86633 +\def#1{2625,86792 +\def#2##1 {2626,86828 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2628,86898 +\exdentamount=\defbodyindentbodyindent2629,86972 +\def\defopvarparsebody #1#2#3#4#5 {\defopvarparsebody2632,87044 +\def#1{2636,87208 +\def#2##1 ##2 {2637,87244 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2640,87331 +\exdentamount=\defbodyindentbodyindent2641,87405 +\def\defunargs #1{\defunargs2664,88165 +\def\deftypefunargs #1{\deftypefunargs2676,88547 +\def\deffn{\deffn2690,88929 +\def\deffnheader #1#2#3{\deffnheader2692,88986 +\begingroup\defname {name2693,89034 +\def\defun{\defun2699,89179 +\def\defunheader #1#2{\defunheader2701,89232 +\begingroup\defname {name2702,89307 +\defunargs {unargs2703,89343 +\def\deftypefun{\deftypefun2709,89491 +\def\deftypefunheader #1#2{\deftypefunheader2712,89613 +\def\deftypefunheaderx #1#2 #3\relax{\deftypefunheaderx2714,89722 +\begingroup\defname {name2716,89814 +\deftypefunargs {typefunargs2717,89860 +\def\deftypefn{\deftypefn2723,90031 +\def\deftypefnheader #1#2#3{\deftypefnheader2726,90180 +\def\deftypefnheaderx #1#2#3 #4\relax{\deftypefnheaderx2728,90316 +\begingroup\defname {name2730,90409 +\deftypefunargs {typefunargs2731,90449 +\def\defmac{\defmac2737,90570 +\def\defmacheader #1#2{\defmacheader2739,90627 +\begingroup\defname {name2740,90703 +\defunargs {unargs2741,90736 +\def\defspec{\defspec2747,90860 +\def\defspecheader #1#2{\defspecheader2749,90921 +\begingroup\defname {name2750,90998 +\defunargs {unargs2751,91038 +\def\deffnx #1 {\deffnx2758,91233 +\def\defunx #1 {\defunx2759,91290 +\def\defmacx #1 {\defmacx2760,91347 +\def\defspecx #1 {\defspecx2761,91406 +\def\deftypefnx #1 {\deftypefnx2762,91467 +\def\deftypeunx #1 {\deftypeunx2763,91532 +\def\defop #1 {\defop2769,91678 +\defopparsebody\Edefop\defopx\defopheader\defoptype}opparsebody\Edefop\defopx\defopheader\defoptype2770,91713 +\def\defopheader #1#2#3{\defopheader2772,91767 +\begingroup\defname {name2774,91856 +\defunargs {unargs2775,91902 +\def\defmethod{\defmethod2780,91963 +\def\defmethodheader #1#2#3{\defmethodheader2782,92036 +\begingroup\defname {name2784,92124 +\defunargs {unargs2785,92164 +\def\defcv #1 {\defcv2790,92238 +\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}opvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype2791,92273 +\def\defcvarheader #1#2#3{\defcvarheader2793,92332 +\begingroup\defname {name2795,92418 +\defvarargs {varargs2796,92464 +\def\defivar{\defivar2801,92537 +\def\defivarheader #1#2#3{\defivarheader2803,92600 +\begingroup\defname {name2805,92686 +\defvarargs {varargs2806,92737 +\def\defopx #1 {\defopx2812,92886 +\def\defmethodx #1 {\defmethodx2813,92943 +\def\defcvx #1 {\defcvx2814,93008 +\def\defivarx #1 {\defivarx2815,93065 +\def\defvarargs #1{\defvarargs2822,93336 +\def\defvr{\defvr2828,93480 +\def\defvrheader #1#2#3{\defvrheader2830,93535 +\begingroup\defname {name2831,93583 +\def\defvar{\defvar2835,93668 +\def\defvarheader #1#2{\defvarheader2837,93728 +\begingroup\defname {name2838,93799 +\defvarargs {varargs2839,93835 +\def\defopt{\defopt2844,93901 +\def\defoptheader #1#2{\defoptheader2846,93961 +\begingroup\defname {name2847,94032 +\defvarargs {varargs2848,94071 +\def\deftypevar{\deftypevar2853,94128 +\def\deftypevarheader #1#2{\deftypevarheader2856,94244 +\begingroup\defname {name2858,94327 +\def\deftypevr{\deftypevr2865,94501 +\def\deftypevrheader #1#2#3{\deftypevrheader2867,94572 +\begingroup\defname {name2868,94624 +\def\defvrx #1 {\defvrx2876,94861 +\def\defvarx #1 {\defvarx2877,94918 +\def\defoptx #1 {\defoptx2878,94977 +\def\deftypevarx #1 {\deftypevarx2879,95036 +\def\deftypevrx #1 {\deftypevrx2880,95103 +\def\deftpargs #1{\deftpargs2885,95252 +\def\deftp{\deftp2889,95332 +\def\deftpheader #1#2#3{\deftpheader2891,95387 +\begingroup\defname {name2892,95435 +\def\deftpx #1 {\deftpx2897,95594 +\def\setref#1{\setref2908,95915 +\def\unnumbsetref#1{\unnumbsetref2913,96029 +\def\appendixsetref#1{\appendixsetref2918,96136 +\def\pxref#1{\pxref2929,96547 +\def\xref#1{\xref2930,96583 +\def\ref#1{\ref2931,96618 +\def\xrefX[#1,#2,#3,#4,#5,#6]{\xrefX[2932,96648 +\def\printedmanual{\printedmanual2933,96691 +\def\printednodename{\printednodename2934,96729 +\def\printednodename{\printednodename2939,96854 +section ``\printednodename'' in \cite{\printedmanual}\printedmanual2954,97487 +\refx{x2957,97565 +\def\dosetq #1#2{\dosetq2965,97785 +\def\internalsetq #1#2{\internalsetq2973,98043 +\def\Ypagenumber{\Ypagenumber2977,98144 +\def\Ytitle{\Ytitle2979,98170 +\def\Ynothing{\Ynothing2981,98197 +\def\Ysectionnumberandtype{\Ysectionnumberandtype2983,98214 +\def\Yappendixletterandtype{\Yappendixletterandtype2992,98530 +\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{no2993,98560 +\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %no.\the\secno2994,98615 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %no.\the\secno.\the\subsecno2996,98719 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %no.\the\secno.\the\subsecno.\the\subsubsecno2998,98790 + \def\linenumber{\linenumber3009,99129 +\def\refx#1#2{\refx3015,99313 +\def\xrdef #1#2{\xrdef3037,99939 +\def\readauxfile{\readauxfile3040,100024 +\def\supereject{\supereject3110,101805 +\footstrut\parindent=\defaultparindent\hang\textindent{aultparindent\hang\textindent3131,102490 +\def\openindices{\openindices3139,102676 +\newdimen\defaultparindent \defaultparindent = 15ptaultparindent3151,102901 +\parindent = \defaultparindentaultparindent3152,102953 +\def\smallbook{\smallbook3175,103677 +\global\def\Esmallexample{\Esmallexample3192,104104 +\def\afourpaper{\afourpaper3196,104195 +\def\finalout{\finalout3224,105003 +\def\normaldoublequote{\normaldoublequote3235,105264 +\def\normaltilde{\normaltilde3236,105290 +\def\normalcaret{\normalcaret3237,105310 +\def\normalunderscore{\normalunderscore3238,105330 +\def\normalverticalbar{\normalverticalbar3239,105355 +\def\normalless{\normalless3240,105381 +\def\normalgreater{\normalgreater3241,105400 +\def\normalplus{\normalplus3242,105422 +\def\ifusingtt#1#2{\ifusingtt3253,105914 +\def\activedoublequote{\activedoublequote3261,106242 +\def~{~3264,106328 +\def^{^3267,106389 +\def_{_3270,106428 +\def\_{\_3272,106502 +\def\lvvmode{\lvvmode3279,106839 +\def|{|3282,106889 +\def<{<3285,106952 +\def>{>3288,107009 +\def+{+3290,107047 +\def\turnoffactive{\turnoffactive3296,107208 +\global\def={=3307,107494 +\def\normalbackslash{\normalbackslash3321,107876 c-src/c.c,76 T f(1,0 @@ -3819,32 +3819,32 @@ c-src/a/b/b.c,18 #define questo 34, y-src/parse.y,738 -#define obstack_chunk_alloc 46,1111 -#define obstack_chunk_free 47,1149 -VOIDSTAR parse_hash;63,1400 -unsigned char fnin[fnin67,1519 -#define YYSTYPE 71,1617 -typedef struct node *YYSTYPE;YYSTYPE72,1648 -YYSTYPE parse_return;73,1678 -char *instr;instr80,1790 -int parse_error 81,1803 -line:line86,1862 -exp:exp94,1975 -exp_list:exp_list262,5642 -range_exp:range_exp268,5740 -range_exp_list:range_exp_list272,5770 -cell:cell278,5888 -yyerror FUN1(285,5935 -make_list FUN2(292,6015 -#define ERROR 303,6215 -yylex FUN0(314,6392 -parse_cell_or_range FUN2(586,11758 -#define CK_ABS_R(670,13200 -#define CK_REL_R(674,13279 -#define CK_ABS_C(679,13408 -#define CK_REL_C(683,13487 -#define MAYBEREL(688,13616 -str_to_col FUN1(846,16817 +#define obstack_chunk_alloc 46,1116 +#define obstack_chunk_free 47,1154 +VOIDSTAR parse_hash;63,1405 +unsigned char fnin[fnin67,1524 +#define YYSTYPE 71,1622 +typedef struct node *YYSTYPE;YYSTYPE72,1653 +YYSTYPE parse_return;73,1683 +char *instr;instr80,1795 +int parse_error 81,1808 +line:line86,1867 +exp:exp94,1980 +exp_list:exp_list262,5647 +range_exp:range_exp268,5745 +range_exp_list:range_exp_list272,5775 +cell:cell278,5893 +yyerror FUN1(285,5940 +make_list FUN2(292,6020 +#define ERROR 303,6220 +yylex FUN0(314,6397 +parse_cell_or_range FUN2(586,11763 +#define CK_ABS_R(670,13205 +#define CK_REL_R(674,13284 +#define CK_ABS_C(679,13413 +#define CK_REL_C(683,13492 +#define MAYBEREL(688,13621 +str_to_col FUN1(846,16822 y-src/parse.c,520 #define YYBISON 4,64 @@ -4081,59 +4081,59 @@ warning 993, lookup 999, /usr/share/bison/bison.simple,2110 -# define YYSTD(40, -# define YYSTD(42, -# define YYSTACK_ALLOC 50, -# define YYSIZE_T 51, -# define YYSTACK_ALLOC 55, -# define YYSIZE_T 56, -# define YYSTACK_ALLOC 59, -# define YYSTACK_FREE(67, -# define YYSIZE_T 71, -# define YYSIZE_T 75, -# define YYSTACK_ALLOC 78, -# define YYSTACK_FREE 79, -union yyalloc83, -# define YYSTACK_GAP_MAX 93, -# define YYSTACK_BYTES(98, -# define YYSTACK_BYTES(102, -# define YYSTACK_RELOCATE(112, -# define YYSIZE_T 128, -# define YYSIZE_T 131, -# define YYSIZE_T 136, -# define YYSIZE_T 140, -# define YYSIZE_T 145, -#define yyerrok 148, -#define yyclearin 149, -#define YYEMPTY 150, -#define YYEOF 151, -#define YYACCEPT 152, -#define YYABORT 153, -#define YYERROR 154, -#define YYFAIL 158, -#define YYRECOVERING(159, -#define YYBACKUP(160, -#define YYTERROR 177, -#define YYERRCODE 178, -# define YYLLOC_DEFAULT(189, -# define YYLEX 200, -# define YYLEX 202, -# define YYLEX 206, -# define YYLEX 208, -# define YYLEX 212, -# define YYFPRINTF 225, -# define YYDPRINTF(228, -int yydebug;237, -# define YYDPRINTF(239, -# define YYINITDEPTH 244, -# undef YYMAXDEPTH255, -# define YYMAXDEPTH 259, -# define yymemcpy 264, -yymemcpy 271, -# define yystrlen 293, -yystrlen 298, -# define yystpcpy 316, -yystpcpy 322, +# define YYSTD(41, +# define YYSTD(43, +# define YYSTACK_ALLOC 51, +# define YYSIZE_T 52, +# define YYSTACK_ALLOC 56, +# define YYSIZE_T 57, +# define YYSTACK_ALLOC 60, +# define YYSTACK_FREE(68, +# define YYSIZE_T 72, +# define YYSIZE_T 76, +# define YYSTACK_ALLOC 79, +# define YYSTACK_FREE 80, +union yyalloc84, +# define YYSTACK_GAP_MAX 94, +# define YYSTACK_BYTES(99, +# define YYSTACK_BYTES(103, +# define YYSTACK_RELOCATE(113, +# define YYSIZE_T 129, +# define YYSIZE_T 132, +# define YYSIZE_T 137, +# define YYSIZE_T 141, +# define YYSIZE_T 146, +#define yyerrok 149, +#define yyclearin 150, +#define YYEMPTY 151, +#define YYEOF 152, +#define YYACCEPT 153, +#define YYABORT 154, +#define YYERROR 155, +#define YYFAIL 159, +#define YYRECOVERING(160, +#define YYBACKUP(161, +#define YYTERROR 178, +#define YYERRCODE 179, +# define YYLLOC_DEFAULT(190, +# define YYLEX 201, +# define YYLEX 203, +# define YYLEX 207, +# define YYLEX 209, +# define YYLEX 213, +# define YYFPRINTF 226, +# define YYDPRINTF(229, +int yydebug;238, +# define YYDPRINTF(240, +# define YYINITDEPTH 245, +# undef YYMAXDEPTH256, +# define YYMAXDEPTH 260, +# define yymemcpy 265, +yymemcpy 272, +# define yystrlen 294, +yystrlen 299, +# define yystpcpy 317, +yystpcpy 323, # define YYPARSE_PARAM_ARG 351, # define YYPARSE_PARAM_DECL352, # define YYPARSE_PARAM_ARG 354, diff --git a/test/etags/ETAGS.good_2 b/test/etags/ETAGS.good_2 index e5dbefb..ea10012 100644 --- a/test/etags/ETAGS.good_2 +++ b/test/etags/ETAGS.good_2 @@ -176,32 +176,32 @@ package body Truc.Bidule Truc.Bidule/b138,2153 protected body Machin_T Machin_T/b146,2281 c-src/abbrev.c,1432 -Lisp_Object Vabbrev_table_name_list;42,1416 -Lisp_Object Vglobal_abbrev_table;47,1561 -Lisp_Object Vfundamental_mode_abbrev_table;51,1672 -int abbrevs_changed;55,1773 -int abbrev_all_caps;57,1795 -Lisp_Object Vabbrev_start_location;62,1944 -Lisp_Object Vabbrev_start_location_buffer;65,2033 -Lisp_Object Vlast_abbrev;69,2142 -Lisp_Object Vlast_abbrev_text;74,2311 -int last_abbrev_point;78,2401 -Lisp_Object Vpre_abbrev_expand_hook,82,2474 -Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;82,2474 -DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table84,2538 -DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table91,2730 -DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev106,3111 -DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev148,4430 -DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev159,4801 -DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol173,5269 -DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion201,6233 -DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev217,6748 -DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev388,11669 -write_abbrev 425,12876 -describe_abbrev 444,13311 -DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description465,13826 -DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table505,14982 -syms_of_abbrev 539,16059 +Lisp_Object Vabbrev_table_name_list;43,1424 +Lisp_Object Vglobal_abbrev_table;48,1569 +Lisp_Object Vfundamental_mode_abbrev_table;52,1680 +int abbrevs_changed;56,1781 +int abbrev_all_caps;58,1803 +Lisp_Object Vabbrev_start_location;63,1952 +Lisp_Object Vabbrev_start_location_buffer;66,2041 +Lisp_Object Vlast_abbrev;70,2150 +Lisp_Object Vlast_abbrev_text;75,2319 +int last_abbrev_point;79,2409 +Lisp_Object Vpre_abbrev_expand_hook,83,2482 +Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;83,2482 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table85,2546 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table92,2738 +DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev107,3119 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev149,4438 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev160,4809 +DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol174,5277 +DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion202,6241 +DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev218,6756 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev389,11677 +write_abbrev 426,12884 +describe_abbrev 445,13319 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description466,13834 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table506,14990 +syms_of_abbrev 540,16067 c-src/torture.c,197 (*tag1 tag118,452 @@ -217,23 +217,23 @@ pp287,1419 pp3(100,1518 c-src/getopt.h,538 -#define _GETOPT_H 19,801 -extern char *optarg;optarg31,1109 -extern int optind;45,1617 -extern int opterr;50,1743 -struct option73,2797 -#define no_argument 89,3124 -#define required_argument 90,3147 -#define optional_argument 91,3175 -extern int getopt 98,3440 -extern int getopt 100,3544 -extern int getopt_long 102,3599 -extern int getopt_long_only 104,3731 -extern int _getopt_internal 109,3942 -extern int getopt 114,4140 -extern int getopt_long 115,4162 -extern int getopt_long_only 116,4189 -extern int _getopt_internal 118,4222 +#define _GETOPT_H 19,794 +extern char *optarg;optarg31,1102 +extern int optind;45,1610 +extern int opterr;50,1736 +struct option73,2790 +#define no_argument 89,3117 +#define required_argument 90,3140 +#define optional_argument 91,3168 +extern int getopt 98,3433 +extern int getopt 100,3537 +extern int getopt_long 102,3592 +extern int getopt_long_only 104,3724 +extern int _getopt_internal 109,3935 +extern int getopt 114,4133 +extern int getopt_long 115,4155 +extern int getopt_long_only 116,4182 +extern int _getopt_internal 118,4215 c-src/etags.c,12175 char pot_etags_version[pot_etags_version81,3470 @@ -611,32 +611,32 @@ xmalloc 6536,174148 xrealloc 6545,174314 c-src/exit.c,47 - } __libc_atexit;30,1011 -DEFUN(exit,38,1252 + } __libc_atexit;30,1017 +DEFUN(exit,38,1258 c-src/exit.strange_suffix,47 - } __libc_atexit;30,1011 -DEFUN(exit,38,1252 + } __libc_atexit;30,1017 +DEFUN(exit,38,1258 c-src/sysdep.h,491 -#define ENTRY(21,865 -#define PSEUDO(26,972 - movl $SYS_##syscall_nam$SYS_##syscall_na31,1132 - movl $SYS_##syscall_name, %eax;eax31,1132 - int $0x80;32,1180 - test %eax,eax33,1210 - test %eax, %eax;eax33,1210 - jl syscall_error;34,1245 -#define XCHG_0 47,1562 -#define XCHG_1 48,1606 -#define XCHG_2 49,1648 -#define XCHG_3 50,1691 -#define XCHG_4 51,1734 -#define XCHG_5 52,1777 -#define r0 54,1821 -#define r1 55,1875 -#define scratch 56,1932 -#define MOVE(57,2001 +#define ENTRY(21,870 +#define PSEUDO(26,977 + movl $SYS_##syscall_nam$SYS_##syscall_na31,1137 + movl $SYS_##syscall_name, %eax;eax31,1137 + int $0x80;32,1185 + test %eax,eax33,1215 + test %eax, %eax;eax33,1215 + jl syscall_error;34,1250 +#define XCHG_0 47,1567 +#define XCHG_1 48,1611 +#define XCHG_2 49,1653 +#define XCHG_3 50,1696 +#define XCHG_4 51,1739 +#define XCHG_5 52,1782 +#define r0 54,1826 +#define r1 55,1880 +#define scratch 56,1937 +#define MOVE(57,2006 c-src/tab.c,196 static int count_words(15,263 @@ -1753,553 +1753,553 @@ struct Lisp_Misc_Any 1971,64806 ENUM_BF 1973,64866 struct Lisp_Marker1978,64980 ENUM_BF 1980,65001 -struct Lisp_Overlay2021,66838 - ENUM_BF 2034,67346 - SAVE_UNUSED,2047,67641 - SAVE_INTEGER,2048,67658 - SAVE_FUNCPOINTER,2049,67676 - SAVE_POINTER,2050,67698 - SAVE_OBJECT2051,67716 -enum { SAVE_SLOT_BITS 2055,67801 -enum { SAVE_VALUE_SLOTS 2058,67898 -enum { SAVE_TYPE_BITS 2062,68006 -enum Lisp_Save_Type2064,68072 - SAVE_TYPE_INT_INT 2066,68096 - SAVE_TYPE_INT_INT_INT2067,68169 - SAVE_TYPE_OBJ_OBJ 2069,68259 - SAVE_TYPE_OBJ_OBJ_OBJ 2070,68330 - SAVE_TYPE_OBJ_OBJ_OBJ_OBJ2071,68411 - SAVE_TYPE_PTR_INT 2073,68506 - SAVE_TYPE_PTR_OBJ 2074,68579 - SAVE_TYPE_PTR_PTR 2075,68651 - SAVE_TYPE_FUNCPTR_PTR_OBJ2076,68724 - SAVE_TYPE_MEMORY 2080,68882 -typedef void (*voidfuncptr)voidfuncptr2108,69836 -struct Lisp_Save_Value2110,69873 - ENUM_BF 2112,69900 -save_type 2134,70752 -XSAVE_POINTER 2143,70982 -set_save_pointer 2149,71144 -XSAVE_FUNCPOINTER 2155,71326 -XSAVE_INTEGER 2164,71546 -set_save_integer 2170,71708 -XSAVE_OBJECT 2179,71929 -struct Lisp_Finalizer2186,72106 -struct Lisp_Free2201,72581 - ENUM_BF 2203,72602 -union Lisp_Misc2212,72882 -XMISC 2223,73181 -XMISCANY 2229,73270 -XMISCTYPE 2236,73379 -XMARKER 2242,73467 -XOVERLAY 2249,73582 -XSAVE_VALUE 2256,73703 -XFINALIZER 2263,73832 -struct Lisp_Intfwd2274,74117 -struct Lisp_Boolfwd2284,74411 -struct Lisp_Objfwd2294,74702 -struct Lisp_Buffer_Objfwd2302,74934 -struct Lisp_Buffer_Local_Value2334,76470 -struct Lisp_Kboard_Objfwd2362,77729 -union Lisp_Fwd2368,77838 -XFWDTYPE 2378,78084 -XBUFFER_OBJFWD 2384,78180 -struct Lisp_Float2391,78316 -XFLOAT_DATA 2401,78434 - IEEE_FLOATING_POINT2415,78943 -#define _UCHAR_T2423,79266 -typedef unsigned char UCHAR;2424,79283 -enum Lisp_Compiled2429,79366 - COMPILED_ARGLIST 2431,79389 - COMPILED_BYTECODE 2432,79415 - COMPILED_CONSTANTS 2433,79442 - COMPILED_STACK_DEPTH 2434,79470 - COMPILED_DOC_STRING 2435,79500 - COMPILED_INTERACTIVE 2436,79529 -enum char_bits2443,79831 - CHAR_ALT 2445,79850 - CHAR_SUPER 2446,79876 - CHAR_HYPER 2447,79904 - CHAR_SHIFT 2448,79932 - CHAR_CTL 2449,79960 - CHAR_META 2450,79986 - CHAR_MODIFIER_MASK 2452,80014 - CHARACTERBITS 2457,80209 -LISP_MACRO_DEFUN 2462,80267 -NATNUMP 2470,80409 -RANGED_INTEGERP 2476,80490 -#define TYPE_RANGED_INTEGERP(2481,80612 -LISP_MACRO_DEFUN 2486,80797 -VECTORP 2500,81270 -OVERLAYP 2505,81373 -SAVE_VALUEP 2510,81472 -FINALIZERP 2516,81578 -AUTOLOADP 2522,81682 -BUFFER_OBJFWDP 2528,81773 -PSEUDOVECTOR_TYPEP 2534,81871 -PSEUDOVECTORP 2542,82124 -WINDOW_CONFIGURATIONP 2558,82476 -PROCESSP 2564,82586 -WINDOWP 2570,82670 -TERMINALP 2576,82752 -SUBRP 2582,82838 -COMPILEDP 2588,82916 -BUFFERP 2594,83002 -CHAR_TABLE_P 2600,83084 -SUB_CHAR_TABLE_P 2606,83175 -BOOL_VECTOR_P 2612,83274 -FRAMEP 2618,83367 -IMAGEP 2625,83484 -ARRAYP 2632,83589 -CHECK_LIST 2638,83708 -LISP_MACRO_DEFUN_VOID 2643,83789 -CHECK_STRING_CAR 2653,84086 -CHECK_CONS 2658,84190 -CHECK_VECTOR 2663,84270 -CHECK_BOOL_VECTOR 2668,84356 -CHECK_VECTOR_OR_STRING 2674,84533 -CHECK_ARRAY 2683,84707 -CHECK_BUFFER 2688,84815 -CHECK_WINDOW 2693,84901 -CHECK_PROCESS 2699,85007 -CHECK_NATNUM 2705,85103 -#define CHECK_RANGED_INTEGER(2710,85180 -#define CHECK_TYPE_RANGED_INTEGER(2721,85563 -#define CHECK_NUMBER_COERCE_MARKER(2729,85833 -XFLOATINT 2738,86086 -CHECK_NUMBER_OR_FLOAT 2744,86157 -#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(2749,86256 -CHECK_NUMBER_CAR 2760,86666 -CHECK_NUMBER_CDR 2768,86788 -#define DEFUN(2803,88383 -#define DEFUN(2812,88851 -FUNCTIONP 2822,89206 -extern void defsubr 2829,89358 -enum maxargs2831,89401 - MANY 2833,89418 - UNEVALLED 2834,89433 -#define CALLMANY(2838,89536 -#define CALLN(2844,89889 -extern void defvar_lisp 2846,89959 -extern void defvar_lisp_nopro 2847,90036 -extern void defvar_bool 2848,90119 -extern void defvar_int 2849,90190 -extern void defvar_kboard 2850,90264 -#define DEFVAR_LISP(2869,91094 -#define DEFVAR_LISP_NOPRO(2874,91266 -#define DEFVAR_BOOL(2879,91448 -#define DEFVAR_INT(2884,91621 -#define DEFVAR_BUFFER_DEFAULTS(2890,91792 -#define DEFVAR_KBOARD(2896,91996 -typedef jmp_buf sys_jmp_buf;2906,92320 -# define sys_setjmp(2907,92349 -# define sys_longjmp(2908,92384 -typedef sigjmp_buf sys_jmp_buf;2910,92456 -# define sys_setjmp(2911,92488 -# define sys_longjmp(2912,92528 -typedef jmp_buf sys_jmp_buf;2916,92687 -# define sys_setjmp(2917,92716 -# define sys_longjmp(2918,92750 -enum specbind_tag 2943,93802 - SPECPDL_UNWIND,2944,93822 - SPECPDL_UNWIND_PTR,2945,93891 - SPECPDL_UNWIND_INT,2946,93942 - SPECPDL_UNWIND_VOID,2947,93990 - SPECPDL_BACKTRACE,2948,94044 - SPECPDL_LET,2949,94102 - SPECPDL_LET_LOCAL,2951,94232 - SPECPDL_LET_DEFAULT 2952,94289 -union specbinding2955,94361 - ENUM_BF 2957,94383 - ENUM_BF 2959,94440 - ENUM_BF 2964,94570 - ENUM_BF 2969,94693 - ENUM_BF 2974,94811 - ENUM_BF 2978,94916 - ENUM_BF 2983,95091 -enum handlertype 3021,96407 -enum handlertype { CATCHER,3021,96407 -enum handlertype { CATCHER, CONDITION_CASE 3021,96407 -struct handler3023,96454 -#define PUSH_HANDLER(3053,97443 -extern Lisp_Object memory_signal_data;3075,98149 -extern char *stack_bottom;stack_bottom3079,98282 -extern void process_pending_signals 3097,99099 -extern bool volatile pending_signals;3098,99143 -extern void process_quit_flag 3100,99182 -#define QUIT 3101,99220 -#define QUITP 3112,99470 -extern Lisp_Object Vascii_downcase_table;3114,99531 -extern Lisp_Object Vascii_canon_table;3115,99573 -extern struct gcpro *gcprolist;gcprolist3130,100280 -struct gcpro3132,100313 -#define GC_USE_GCPROS_AS_BEFORE 3171,101294 -#define GC_MAKE_GCPROS_NOOPS 3172,101329 -#define GC_MARK_STACK_CHECK_GCPROS 3173,101361 -#define GC_USE_GCPROS_CHECK_ZOMBIES 3174,101398 -#define GC_MARK_STACK 3177,101459 -#define BYTE_MARK_STACK 3181,101559 -#define GCPRO1(3190,101830 -#define GCPRO2(3191,101870 -#define GCPRO3(3192,101936 -#define GCPRO4(3194,102031 -#define GCPRO5(3196,102151 -#define GCPRO6(3198,102296 -#define GCPRO7(3201,102471 -#define UNGCPRO 3202,102550 -#define GCPRO1(3208,102650 -#define GCPRO2(3212,102772 -#define GCPRO3(3217,102964 -#define GCPRO4(3223,103226 -#define GCPRO5(3230,103557 -#define GCPRO6(3238,103958 -#define GCPRO7(3247,104428 -#define UNGCPRO 3257,104968 -extern int gcpro_level;3261,105037 -#define GCPRO1(3263,105062 -#define GCPRO2(3269,105296 -#define GCPRO3(3278,105714 -#define GCPRO4(3289,106271 -#define GCPRO5(3302,106969 -#define GCPRO6(3317,107809 -#define GCPRO7(3334,108790 -#define UNGCPRO 3353,109913 -#define RETURN_UNGCPRO(3363,110180 -void staticpro 3375,110453 -vcopy 3384,110654 -set_hash_key_slot 3393,110929 -set_hash_value_slot 3399,111068 -set_symbol_function 3408,111303 -set_symbol_plist 3414,111418 -set_symbol_next 3420,111521 -blv_found 3428,111694 -set_overlay_plist 3437,111877 -string_intervals 3445,112028 -set_string_intervals 3453,112150 -set_char_table_defalt 3462,112352 -set_char_table_purpose 3467,112464 -set_char_table_extras 3475,112633 -set_char_table_contents 3482,112842 -set_sub_char_table_contents 3489,113037 -extern Lisp_Object indirect_function 3495,113196 -extern Lisp_Object find_symbol_value 3496,113248 -enum Arith_Comparison 3497,113300 - ARITH_EQUAL,3498,113324 - ARITH_NOTEQUAL,3499,113339 - ARITH_LESS,3500,113357 - ARITH_GRTR,3501,113371 - ARITH_LESS_OR_EQUAL,3502,113385 - ARITH_GRTR_OR_EQUAL3503,113408 -extern Lisp_Object arithcompare 3505,113433 -#define INTEGER_TO_CONS(3511,113759 -#define CONS_TO_INTEGER(3529,114622 -extern intmax_t cons_to_signed 3533,114837 -extern uintmax_t cons_to_unsigned 3534,114903 -extern struct Lisp_Symbol *indirect_variable indirect_variable3536,114964 -extern _Noreturn void args_out_of_range 3537,115033 -extern _Noreturn void args_out_of_range_3 3538,115101 -extern Lisp_Object do_symval_forwarding 3540,115192 -extern void set_internal 3541,115252 -extern void syms_of_data 3542,115324 -extern void swap_in_global_binding 3543,115357 -extern void syms_of_cmds 3546,115441 -extern void keys_of_cmds 3547,115474 -extern Lisp_Object detect_coding_system 3550,115536 -extern void init_coding 3552,115689 -extern void init_coding_once 3553,115721 -extern void syms_of_coding 3554,115758 -extern ptrdiff_t chars_in_text 3557,115825 -extern ptrdiff_t multibyte_chars_in_text 3558,115892 -extern void syms_of_character 3559,115969 -extern void init_charset 3562,116037 -extern void init_charset_once 3563,116070 -extern void syms_of_charset 3564,116108 -extern void init_syntax_once 3569,116228 -extern void syms_of_syntax 3570,116265 -enum { NEXT_ALMOST_PRIME_LIMIT 3573,116326 -extern EMACS_INT next_almost_prime 3574,116365 -enum constype 3739,123817 -enum constype {CONSTYPE_HEAP,CONSTYPE_HEAP3739,123817 -enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}CONSTYPE_PURE3739,123817 -extern Lisp_Object listn 3740,123863 -list2i 3745,124007 -list3i 3751,124116 -list4i 3757,124255 -extern Lisp_Object make_uninit_bool_vector 3763,124407 -extern Lisp_Object bool_vector_fill 3764,124463 -extern _Noreturn void string_overflow 3765,124527 -extern Lisp_Object make_string 3766,124573 -extern Lisp_Object make_formatted_string 3767,124631 -extern Lisp_Object make_multibyte_string 3779,124985 -extern Lisp_Object make_event_array 3780,125064 -extern Lisp_Object make_uninit_string 3781,125128 -extern Lisp_Object make_uninit_multibyte_string 3782,125179 -extern Lisp_Object make_string_from_bytes 3783,125251 -extern Lisp_Object make_specified_string 3784,125331 -extern Lisp_Object make_pure_string 3786,125423 -extern Lisp_Object make_pure_c_string 3787,125503 -build_pure_c_string 3792,125659 -build_string 3801,125864 -extern Lisp_Object pure_cons 3806,125942 -extern void make_byte_code 3807,125999 -extern struct Lisp_Vector *allocate_vector allocate_vector3808,126050 -make_uninit_vector 3820,126435 -make_uninit_sub_char_table 3833,126654 -extern struct Lisp_Vector *allocate_pseudovector allocate_pseudovector3844,126963 -#define ALLOCATE_PSEUDOVECTOR(3850,127198 -#define ALLOCATE_ZEROED_PSEUDOVECTOR(3858,127534 -extern bool gc_in_progress;3863,127735 -extern bool abort_on_gc;3864,127763 -extern Lisp_Object make_float 3865,127788 -extern void display_malloc_warning 3866,127828 -extern ptrdiff_t inhibit_garbage_collection 3867,127871 -extern Lisp_Object make_save_int_int_int 3868,127923 -extern Lisp_Object make_save_obj_obj_obj_obj 3869,127999 -extern Lisp_Object make_save_ptr 3871,128109 -extern Lisp_Object make_save_ptr_int 3872,128152 -extern Lisp_Object make_save_ptr_ptr 3873,128210 -extern Lisp_Object make_save_funcptr_ptr_obj 3874,128265 -extern Lisp_Object make_save_memory 3876,128361 -extern void free_save_value 3877,128425 -extern Lisp_Object build_overlay 3878,128468 -extern void free_marker 3879,128542 -extern void free_cons 3880,128581 -extern void init_alloc_once 3881,128625 -extern void init_alloc 3882,128661 -extern void syms_of_alloc 3883,128692 -extern struct buffer * allocate_buffer 3884,128726 -extern int valid_lisp_object_p 3885,128773 -extern int relocatable_string_data_p 3886,128819 -extern void check_cons_list 3888,128898 -INLINE void 3890,128940 -extern void *r_alloc r_alloc3895,129061 -#define FLOAT_TO_STRING_BUFSIZE 3927,130524 -extern int openp 3957,131673 -extern Lisp_Object string_to_number 3959,131783 -extern void map_obarray 3960,131846 -extern void dir_warning 3962,131960 -extern void init_obarray 3963,132013 -extern void init_lread 3964,132046 -extern void syms_of_lread 3965,132077 -intern 3968,132131 -intern_c_string 3974,132219 -extern EMACS_INT lisp_eval_depth;3980,132332 -extern Lisp_Object Vautoload_queue;3981,132366 -extern Lisp_Object Vrun_hooks;3982,132402 -extern Lisp_Object Vsignaling_function;3983,132433 -extern Lisp_Object inhibit_lisp_code;3984,132473 -extern struct handler *handlerlist;handlerlist3985,132511 -extern void run_hook 3994,132753 -extern void run_hook_with_args_2 3995,132789 -extern Lisp_Object run_hook_with_args 3996,132863 -extern _Noreturn void xsignal 3999,133022 -extern _Noreturn void xsignal0 4000,133080 -extern _Noreturn void xsignal1 4001,133126 -extern _Noreturn void xsignal2 4002,133185 -extern _Noreturn void xsignal3 4003,133257 -extern _Noreturn void signal_error 4005,133346 -extern Lisp_Object eval_sub 4006,133410 -extern Lisp_Object apply1 4007,133458 -extern Lisp_Object call0 4008,133512 -extern Lisp_Object call1 4009,133552 -extern Lisp_Object call2 4010,133605 -extern Lisp_Object call3 4011,133671 -extern Lisp_Object call4 4012,133750 -extern Lisp_Object call5 4013,133842 -extern Lisp_Object call6 4014,133947 -extern Lisp_Object call7 4015,134065 -extern Lisp_Object internal_catch 4016,134196 -extern Lisp_Object internal_lisp_condition_case 4017,134289 -extern Lisp_Object internal_condition_case 4018,134378 -extern Lisp_Object internal_condition_case_1 4019,134491 -extern Lisp_Object internal_condition_case_2 4020,134626 -extern Lisp_Object internal_condition_case_n4021,134787 -extern void specbind 4024,134983 -extern void record_unwind_protect 4025,135032 -extern void record_unwind_protect_ptr 4026,135105 -extern void record_unwind_protect_int 4027,135172 -extern void record_unwind_protect_void 4028,135233 -extern void record_unwind_protect_nothing 4029,135291 -extern void clear_unwind_protect 4030,135341 -extern void set_unwind_protect 4031,135387 -extern void set_unwind_protect_ptr 4032,135468 -extern Lisp_Object unbind_to 4033,135543 -extern _Noreturn void error 4034,135598 -fast_string_match_ignore_case 4136,140086 -extern ptrdiff_t fast_c_string_match_ignore_case 4141,140236 -extern ptrdiff_t fast_looking_at 4143,140333 -extern ptrdiff_t find_newline 4145,140472 -extern ptrdiff_t scan_newline 4147,140601 -extern ptrdiff_t scan_newline_from_point 4149,140704 -extern ptrdiff_t find_newline_no_quit 4150,140784 -extern ptrdiff_t find_before_next_newline 4152,140881 -extern void syms_of_search 4154,140979 -extern void clear_regexp_cache 4155,141014 -extern Lisp_Object Vminibuffer_list;4159,141084 -extern Lisp_Object last_minibuf_string;4160,141121 -extern Lisp_Object get_minibuffer 4161,141161 -extern void init_minibuf_once 4162,141208 -extern void syms_of_minibuf 4163,141246 -extern void syms_of_callint 4167,141313 -extern void syms_of_casefiddle 4171,141383 -extern void keys_of_casefiddle 4172,141422 -extern void init_casetab_once 4176,141492 -extern void syms_of_casetab 4177,141530 -extern Lisp_Object echo_message_buffer;4181,141598 -extern struct kboard *echo_kboard;echo_kboard4182,141638 -extern void cancel_echoing 4183,141673 -extern Lisp_Object last_undo_boundary;4184,141708 -extern bool input_pending;4185,141747 -extern sigjmp_buf return_to_command_loop;4187,141810 -extern Lisp_Object menu_bar_items 4189,141859 -extern Lisp_Object tool_bar_items 4190,141908 -extern void discard_mouse_events 4191,141964 -void handle_input_available_signal 4193,142025 -extern Lisp_Object pending_funcalls;4195,142074 -extern bool detect_input_pending 4196,142111 -extern bool detect_input_pending_ignore_squeezables 4197,142152 -extern bool detect_input_pending_run_timers 4198,142212 -extern void safe_run_hooks 4199,142264 -extern void cmd_error_internal 4200,142306 -extern Lisp_Object command_loop_1 4201,142366 -extern Lisp_Object read_menu_command 4202,142408 -extern Lisp_Object recursive_edit_1 4203,142453 -extern void record_auto_save 4204,142497 -extern void force_auto_save_soon 4205,142534 -extern void init_keyboard 4206,142575 -extern void syms_of_keyboard 4207,142609 -extern void keys_of_keyboard 4208,142646 -extern ptrdiff_t current_column 4211,142712 -extern void invalidate_current_column 4212,142752 -extern bool indented_beyond_p 4213,142798 -extern void syms_of_indent 4214,142863 -extern void store_frame_param 4217,142926 -extern void store_in_alist 4218,143000 -extern Lisp_Object do_switch_frame 4219,143070 -extern Lisp_Object get_frame_param 4220,143143 -extern void frames_discard_buffer 4221,143209 -extern void syms_of_frame 4222,143258 -extern char **initial_argv;initial_argv4225,143320 -extern int initial_argc;4226,143348 -extern bool display_arg;4228,143423 -extern Lisp_Object decode_env_path 4230,143455 -extern Lisp_Object empty_unibyte_string,4231,143526 -extern Lisp_Object empty_unibyte_string, empty_multibyte_string;4231,143526 -extern _Noreturn void terminate_due_to_signal 4232,143591 -extern Lisp_Object Vlibrary_cache;4234,143666 -void fixup_locale 4237,143727 -void synchronize_system_messages_locale 4238,143753 -void synchronize_system_time_locale 4239,143801 -INLINE void fixup_locale 4241,143851 -INLINE void synchronize_system_messages_locale 4242,143886 -INLINE void synchronize_system_time_locale 4243,143943 -extern void shut_down_emacs 4245,144003 -extern bool noninteractive;4248,144129 -extern bool no_site_lisp;4251,144221 -extern int daemon_pipe[daemon_pipe4256,144389 -#define IS_DAEMON 4257,144416 -#define DAEMON_RUNNING 4258,144456 -extern void *w32_daemon_event;w32_daemon_event4260,144524 -#define IS_DAEMON 4261,144555 -#define DAEMON_RUNNING 4262,144600 -extern bool fatal_error_in_progress;4266,144721 -extern bool inhibit_window_system;4269,144827 -extern bool running_asynch_code;4271,144920 -extern void kill_buffer_processes 4274,144983 -extern int wait_reading_process_output 4275,145032 -# define WAIT_READING_MAX 4281,145419 -# define WAIT_READING_MAX 4283,145491 -extern void add_timer_wait_descriptor 4286,145555 -extern void add_keyboard_wait_descriptor 4288,145607 -extern void delete_keyboard_wait_descriptor 4289,145655 -extern void add_gpm_wait_descriptor 4291,145722 -extern void delete_gpm_wait_descriptor 4292,145765 -extern void init_process_emacs 4294,145818 -extern void syms_of_process 4295,145857 -extern void setup_process_coding_systems 4296,145893 -extern int child_setup 4302,146013 -extern void init_callproc_1 4303,146081 -extern void init_callproc 4304,146117 -extern void set_initial_environment 4305,146151 -extern void syms_of_callproc 4306,146195 -extern Lisp_Object read_doc_string 4309,146258 -extern Lisp_Object get_doc_string 4310,146308 -extern void syms_of_doc 4311,146369 -extern int read_bytecode_char 4312,146401 -extern void syms_of_bytecode 4315,146470 -extern struct byte_stack *byte_stack_list;byte_stack_list4316,146507 -extern void mark_byte_stack 4318,146570 -extern void unmark_byte_stack 4320,146613 -extern Lisp_Object exec_byte_code 4321,146651 -extern void init_macros 4325,146801 -extern void syms_of_macros 4326,146833 -extern void truncate_undo_list 4329,146895 -extern void record_insert 4330,146945 -extern void record_delete 4331,146995 -extern void record_first_change 4332,147053 -extern void record_change 4333,147093 -extern void record_property_change 4334,147143 -extern void syms_of_undo 4337,147285 -extern void report_interval_modification 4340,147349 -extern void syms_of_menu 4343,147445 -extern void syms_of_xmenu 4346,147506 -extern char *get_current_dir_name get_current_dir_name4356,147708 -extern void stuff_char 4358,147757 -extern void init_foreground_group 4359,147790 -extern void sys_subshell 4360,147832 -extern void sys_suspend 4361,147865 -extern void discard_tty_input 4362,147897 -extern void init_sys_modes 4363,147935 -extern void reset_sys_modes 4364,147991 -extern void init_all_sys_modes 4365,148048 -extern void reset_all_sys_modes 4366,148087 -extern void child_setup_tty 4367,148127 -extern void setup_pty 4368,148162 -extern int set_window_size 4369,148191 -extern EMACS_INT get_random 4370,148235 -extern void seed_random 4371,148271 -extern void init_random 4372,148316 -extern void emacs_backtrace 4373,148348 -extern _Noreturn void emacs_abort 4374,148383 -extern void xputenv 4527,152697 -extern char *egetenv_internal egetenv_internal4529,152734 -egetenv 4532,152806 -extern void init_system_name 4539,153009 -#define eabs(4545,153302 -#define make_fixnum_or_float(4550,153435 -enum MAX_ALLOCA 4556,153686 -enum MAX_ALLOCA { MAX_ALLOCA 4556,153686 -extern void *record_xmalloc record_xmalloc4558,153731 -#define USE_SAFE_ALLOCA 4560,153797 -#define AVAIL_ALLOCA(4564,153930 -#define SAFE_ALLOCA(4568,154041 -#define SAFE_NALLOCA(4576,154382 -#define SAFE_ALLOCA_STRING(4590,154858 -#define SAFE_FREE(4598,155110 -#define SAFE_ALLOCA_LISP(4625,155688 -# define USE_STACK_LISP_OBJECTS 4652,156810 -# undef USE_STACK_LISP_OBJECTS4658,156976 -# define USE_STACK_LISP_OBJECTS 4659,157007 -enum { defined_GC_CHECK_STRING_BYTES 4663,157082 -enum { defined_GC_CHECK_STRING_BYTES 4665,157135 -union Aligned_Cons4670,157269 -union Aligned_String4676,157349 - USE_STACK_CONS 4689,157704 - USE_STACK_STRING 4691,157810 -#define STACK_CONS(4699,158147 -#define AUTO_CONS_EXPR(4701,158244 -#define AUTO_CONS(4709,158607 -#define AUTO_LIST1(4710,158678 -#define AUTO_LIST2(4712,158786 -#define AUTO_LIST3(4716,158941 -#define AUTO_LIST4(4720,159116 -extern const char *verify_ascii verify_ascii4730,159453 -# define verify_ascii(4732,159507 -#define AUTO_STRING(4740,159815 -#define FOR_EACH_TAIL(4752,160279 -#define FOR_EACH_ALIST_VALUE(4766,160770 -maybe_gc 4774,161057 -functionp 4784,161296 +struct Lisp_Overlay2021,66841 + ENUM_BF 2034,67349 + SAVE_UNUSED,2047,67644 + SAVE_INTEGER,2048,67661 + SAVE_FUNCPOINTER,2049,67679 + SAVE_POINTER,2050,67701 + SAVE_OBJECT2051,67719 +enum { SAVE_SLOT_BITS 2055,67804 +enum { SAVE_VALUE_SLOTS 2058,67901 +enum { SAVE_TYPE_BITS 2062,68009 +enum Lisp_Save_Type2064,68075 + SAVE_TYPE_INT_INT 2066,68099 + SAVE_TYPE_INT_INT_INT2067,68172 + SAVE_TYPE_OBJ_OBJ 2069,68262 + SAVE_TYPE_OBJ_OBJ_OBJ 2070,68333 + SAVE_TYPE_OBJ_OBJ_OBJ_OBJ2071,68414 + SAVE_TYPE_PTR_INT 2073,68509 + SAVE_TYPE_PTR_OBJ 2074,68582 + SAVE_TYPE_PTR_PTR 2075,68654 + SAVE_TYPE_FUNCPTR_PTR_OBJ2076,68727 + SAVE_TYPE_MEMORY 2080,68885 +typedef void (*voidfuncptr)voidfuncptr2108,69839 +struct Lisp_Save_Value2110,69876 + ENUM_BF 2112,69903 +save_type 2134,70755 +XSAVE_POINTER 2143,70985 +set_save_pointer 2149,71147 +XSAVE_FUNCPOINTER 2155,71329 +XSAVE_INTEGER 2164,71549 +set_save_integer 2170,71711 +XSAVE_OBJECT 2179,71932 +struct Lisp_Finalizer2186,72109 +struct Lisp_Free2201,72584 + ENUM_BF 2203,72605 +union Lisp_Misc2212,72885 +XMISC 2223,73184 +XMISCANY 2229,73273 +XMISCTYPE 2236,73382 +XMARKER 2242,73470 +XOVERLAY 2249,73585 +XSAVE_VALUE 2256,73706 +XFINALIZER 2263,73835 +struct Lisp_Intfwd2274,74120 +struct Lisp_Boolfwd2284,74414 +struct Lisp_Objfwd2294,74705 +struct Lisp_Buffer_Objfwd2302,74937 +struct Lisp_Buffer_Local_Value2334,76473 +struct Lisp_Kboard_Objfwd2362,77732 +union Lisp_Fwd2368,77841 +XFWDTYPE 2378,78087 +XBUFFER_OBJFWD 2384,78183 +struct Lisp_Float2391,78319 +XFLOAT_DATA 2401,78437 + IEEE_FLOATING_POINT2415,78946 +#define _UCHAR_T2423,79269 +typedef unsigned char UCHAR;2424,79286 +enum Lisp_Compiled2429,79369 + COMPILED_ARGLIST 2431,79392 + COMPILED_BYTECODE 2432,79418 + COMPILED_CONSTANTS 2433,79445 + COMPILED_STACK_DEPTH 2434,79473 + COMPILED_DOC_STRING 2435,79503 + COMPILED_INTERACTIVE 2436,79532 +enum char_bits2443,79834 + CHAR_ALT 2445,79853 + CHAR_SUPER 2446,79879 + CHAR_HYPER 2447,79907 + CHAR_SHIFT 2448,79935 + CHAR_CTL 2449,79963 + CHAR_META 2450,79989 + CHAR_MODIFIER_MASK 2452,80017 + CHARACTERBITS 2457,80212 +LISP_MACRO_DEFUN 2462,80270 +NATNUMP 2470,80412 +RANGED_INTEGERP 2476,80493 +#define TYPE_RANGED_INTEGERP(2481,80615 +LISP_MACRO_DEFUN 2486,80800 +VECTORP 2500,81273 +OVERLAYP 2505,81376 +SAVE_VALUEP 2510,81475 +FINALIZERP 2516,81581 +AUTOLOADP 2522,81685 +BUFFER_OBJFWDP 2528,81776 +PSEUDOVECTOR_TYPEP 2534,81874 +PSEUDOVECTORP 2542,82127 +WINDOW_CONFIGURATIONP 2558,82479 +PROCESSP 2564,82589 +WINDOWP 2570,82673 +TERMINALP 2576,82755 +SUBRP 2582,82841 +COMPILEDP 2588,82919 +BUFFERP 2594,83005 +CHAR_TABLE_P 2600,83087 +SUB_CHAR_TABLE_P 2606,83178 +BOOL_VECTOR_P 2612,83277 +FRAMEP 2618,83370 +IMAGEP 2625,83487 +ARRAYP 2632,83592 +CHECK_LIST 2638,83711 +LISP_MACRO_DEFUN_VOID 2643,83792 +CHECK_STRING_CAR 2653,84089 +CHECK_CONS 2658,84193 +CHECK_VECTOR 2663,84273 +CHECK_BOOL_VECTOR 2668,84359 +CHECK_VECTOR_OR_STRING 2674,84536 +CHECK_ARRAY 2683,84710 +CHECK_BUFFER 2688,84818 +CHECK_WINDOW 2693,84904 +CHECK_PROCESS 2699,85010 +CHECK_NATNUM 2705,85106 +#define CHECK_RANGED_INTEGER(2710,85183 +#define CHECK_TYPE_RANGED_INTEGER(2721,85566 +#define CHECK_NUMBER_COERCE_MARKER(2729,85836 +XFLOATINT 2738,86089 +CHECK_NUMBER_OR_FLOAT 2744,86160 +#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(2749,86259 +CHECK_NUMBER_CAR 2760,86669 +CHECK_NUMBER_CDR 2768,86791 +#define DEFUN(2803,88386 +#define DEFUN(2812,88854 +FUNCTIONP 2822,89209 +extern void defsubr 2829,89361 +enum maxargs2831,89404 + MANY 2833,89421 + UNEVALLED 2834,89436 +#define CALLMANY(2838,89539 +#define CALLN(2844,89892 +extern void defvar_lisp 2846,89962 +extern void defvar_lisp_nopro 2847,90039 +extern void defvar_bool 2848,90122 +extern void defvar_int 2849,90193 +extern void defvar_kboard 2850,90267 +#define DEFVAR_LISP(2869,91097 +#define DEFVAR_LISP_NOPRO(2874,91269 +#define DEFVAR_BOOL(2879,91451 +#define DEFVAR_INT(2884,91624 +#define DEFVAR_BUFFER_DEFAULTS(2890,91795 +#define DEFVAR_KBOARD(2896,91999 +typedef jmp_buf sys_jmp_buf;2906,92323 +# define sys_setjmp(2907,92352 +# define sys_longjmp(2908,92387 +typedef sigjmp_buf sys_jmp_buf;2910,92459 +# define sys_setjmp(2911,92491 +# define sys_longjmp(2912,92531 +typedef jmp_buf sys_jmp_buf;2916,92690 +# define sys_setjmp(2917,92719 +# define sys_longjmp(2918,92753 +enum specbind_tag 2943,93805 + SPECPDL_UNWIND,2944,93825 + SPECPDL_UNWIND_PTR,2945,93894 + SPECPDL_UNWIND_INT,2946,93945 + SPECPDL_UNWIND_VOID,2947,93993 + SPECPDL_BACKTRACE,2948,94047 + SPECPDL_LET,2949,94105 + SPECPDL_LET_LOCAL,2951,94235 + SPECPDL_LET_DEFAULT 2952,94292 +union specbinding2955,94364 + ENUM_BF 2957,94386 + ENUM_BF 2959,94443 + ENUM_BF 2964,94573 + ENUM_BF 2969,94696 + ENUM_BF 2974,94814 + ENUM_BF 2978,94919 + ENUM_BF 2983,95094 +enum handlertype 3021,96410 +enum handlertype { CATCHER,3021,96410 +enum handlertype { CATCHER, CONDITION_CASE 3021,96410 +struct handler3023,96457 +#define PUSH_HANDLER(3053,97446 +extern Lisp_Object memory_signal_data;3075,98152 +extern char *stack_bottom;stack_bottom3079,98285 +extern void process_pending_signals 3097,99102 +extern bool volatile pending_signals;3098,99146 +extern void process_quit_flag 3100,99185 +#define QUIT 3101,99223 +#define QUITP 3112,99473 +extern Lisp_Object Vascii_downcase_table;3114,99534 +extern Lisp_Object Vascii_canon_table;3115,99576 +extern struct gcpro *gcprolist;gcprolist3130,100283 +struct gcpro3132,100316 +#define GC_USE_GCPROS_AS_BEFORE 3171,101297 +#define GC_MAKE_GCPROS_NOOPS 3172,101332 +#define GC_MARK_STACK_CHECK_GCPROS 3173,101364 +#define GC_USE_GCPROS_CHECK_ZOMBIES 3174,101401 +#define GC_MARK_STACK 3177,101462 +#define BYTE_MARK_STACK 3181,101562 +#define GCPRO1(3190,101833 +#define GCPRO2(3191,101873 +#define GCPRO3(3192,101939 +#define GCPRO4(3194,102034 +#define GCPRO5(3196,102154 +#define GCPRO6(3198,102299 +#define GCPRO7(3201,102474 +#define UNGCPRO 3202,102553 +#define GCPRO1(3208,102653 +#define GCPRO2(3212,102775 +#define GCPRO3(3217,102967 +#define GCPRO4(3223,103229 +#define GCPRO5(3230,103560 +#define GCPRO6(3238,103961 +#define GCPRO7(3247,104431 +#define UNGCPRO 3257,104971 +extern int gcpro_level;3261,105040 +#define GCPRO1(3263,105065 +#define GCPRO2(3269,105299 +#define GCPRO3(3278,105717 +#define GCPRO4(3289,106274 +#define GCPRO5(3302,106972 +#define GCPRO6(3317,107812 +#define GCPRO7(3334,108793 +#define UNGCPRO 3353,109916 +#define RETURN_UNGCPRO(3363,110183 +void staticpro 3375,110456 +vcopy 3384,110657 +set_hash_key_slot 3393,110932 +set_hash_value_slot 3399,111071 +set_symbol_function 3408,111306 +set_symbol_plist 3414,111421 +set_symbol_next 3420,111524 +blv_found 3428,111697 +set_overlay_plist 3437,111880 +string_intervals 3445,112031 +set_string_intervals 3453,112153 +set_char_table_defalt 3462,112355 +set_char_table_purpose 3467,112467 +set_char_table_extras 3475,112636 +set_char_table_contents 3482,112845 +set_sub_char_table_contents 3489,113040 +extern Lisp_Object indirect_function 3495,113199 +extern Lisp_Object find_symbol_value 3496,113251 +enum Arith_Comparison 3497,113303 + ARITH_EQUAL,3498,113327 + ARITH_NOTEQUAL,3499,113342 + ARITH_LESS,3500,113360 + ARITH_GRTR,3501,113374 + ARITH_LESS_OR_EQUAL,3502,113388 + ARITH_GRTR_OR_EQUAL3503,113411 +extern Lisp_Object arithcompare 3505,113436 +#define INTEGER_TO_CONS(3511,113762 +#define CONS_TO_INTEGER(3529,114625 +extern intmax_t cons_to_signed 3533,114840 +extern uintmax_t cons_to_unsigned 3534,114906 +extern struct Lisp_Symbol *indirect_variable indirect_variable3536,114967 +extern _Noreturn void args_out_of_range 3537,115036 +extern _Noreturn void args_out_of_range_3 3538,115104 +extern Lisp_Object do_symval_forwarding 3540,115195 +extern void set_internal 3541,115255 +extern void syms_of_data 3542,115327 +extern void swap_in_global_binding 3543,115360 +extern void syms_of_cmds 3546,115444 +extern void keys_of_cmds 3547,115477 +extern Lisp_Object detect_coding_system 3550,115539 +extern void init_coding 3552,115692 +extern void init_coding_once 3553,115724 +extern void syms_of_coding 3554,115761 +extern ptrdiff_t chars_in_text 3557,115828 +extern ptrdiff_t multibyte_chars_in_text 3558,115895 +extern void syms_of_character 3559,115972 +extern void init_charset 3562,116040 +extern void init_charset_once 3563,116073 +extern void syms_of_charset 3564,116111 +extern void init_syntax_once 3569,116231 +extern void syms_of_syntax 3570,116268 +enum { NEXT_ALMOST_PRIME_LIMIT 3573,116329 +extern EMACS_INT next_almost_prime 3574,116368 +enum constype 3739,123820 +enum constype {CONSTYPE_HEAP,CONSTYPE_HEAP3739,123820 +enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}CONSTYPE_PURE3739,123820 +extern Lisp_Object listn 3740,123866 +list2i 3745,124010 +list3i 3751,124119 +list4i 3757,124258 +extern Lisp_Object make_uninit_bool_vector 3763,124410 +extern Lisp_Object bool_vector_fill 3764,124466 +extern _Noreturn void string_overflow 3765,124530 +extern Lisp_Object make_string 3766,124576 +extern Lisp_Object make_formatted_string 3767,124634 +extern Lisp_Object make_multibyte_string 3779,124988 +extern Lisp_Object make_event_array 3780,125067 +extern Lisp_Object make_uninit_string 3781,125131 +extern Lisp_Object make_uninit_multibyte_string 3782,125182 +extern Lisp_Object make_string_from_bytes 3783,125254 +extern Lisp_Object make_specified_string 3784,125334 +extern Lisp_Object make_pure_string 3786,125426 +extern Lisp_Object make_pure_c_string 3787,125506 +build_pure_c_string 3792,125662 +build_string 3801,125867 +extern Lisp_Object pure_cons 3806,125945 +extern void make_byte_code 3807,126002 +extern struct Lisp_Vector *allocate_vector allocate_vector3808,126053 +make_uninit_vector 3820,126438 +make_uninit_sub_char_table 3833,126657 +extern struct Lisp_Vector *allocate_pseudovector allocate_pseudovector3844,126966 +#define ALLOCATE_PSEUDOVECTOR(3850,127201 +#define ALLOCATE_ZEROED_PSEUDOVECTOR(3858,127537 +extern bool gc_in_progress;3863,127738 +extern bool abort_on_gc;3864,127766 +extern Lisp_Object make_float 3865,127791 +extern void display_malloc_warning 3866,127831 +extern ptrdiff_t inhibit_garbage_collection 3867,127874 +extern Lisp_Object make_save_int_int_int 3868,127926 +extern Lisp_Object make_save_obj_obj_obj_obj 3869,128002 +extern Lisp_Object make_save_ptr 3871,128112 +extern Lisp_Object make_save_ptr_int 3872,128155 +extern Lisp_Object make_save_ptr_ptr 3873,128213 +extern Lisp_Object make_save_funcptr_ptr_obj 3874,128268 +extern Lisp_Object make_save_memory 3876,128364 +extern void free_save_value 3877,128428 +extern Lisp_Object build_overlay 3878,128471 +extern void free_marker 3879,128545 +extern void free_cons 3880,128584 +extern void init_alloc_once 3881,128628 +extern void init_alloc 3882,128664 +extern void syms_of_alloc 3883,128695 +extern struct buffer * allocate_buffer 3884,128729 +extern int valid_lisp_object_p 3885,128776 +extern int relocatable_string_data_p 3886,128822 +extern void check_cons_list 3888,128901 +INLINE void 3890,128943 +extern void *r_alloc r_alloc3895,129064 +#define FLOAT_TO_STRING_BUFSIZE 3927,130527 +extern int openp 3957,131676 +extern Lisp_Object string_to_number 3959,131786 +extern void map_obarray 3960,131849 +extern void dir_warning 3962,131963 +extern void init_obarray 3963,132016 +extern void init_lread 3964,132049 +extern void syms_of_lread 3965,132080 +intern 3968,132134 +intern_c_string 3974,132222 +extern EMACS_INT lisp_eval_depth;3980,132335 +extern Lisp_Object Vautoload_queue;3981,132369 +extern Lisp_Object Vrun_hooks;3982,132405 +extern Lisp_Object Vsignaling_function;3983,132436 +extern Lisp_Object inhibit_lisp_code;3984,132476 +extern struct handler *handlerlist;handlerlist3985,132514 +extern void run_hook 3994,132756 +extern void run_hook_with_args_2 3995,132792 +extern Lisp_Object run_hook_with_args 3996,132866 +extern _Noreturn void xsignal 3999,133025 +extern _Noreturn void xsignal0 4000,133083 +extern _Noreturn void xsignal1 4001,133129 +extern _Noreturn void xsignal2 4002,133188 +extern _Noreturn void xsignal3 4003,133260 +extern _Noreturn void signal_error 4005,133349 +extern Lisp_Object eval_sub 4006,133413 +extern Lisp_Object apply1 4007,133461 +extern Lisp_Object call0 4008,133515 +extern Lisp_Object call1 4009,133555 +extern Lisp_Object call2 4010,133608 +extern Lisp_Object call3 4011,133674 +extern Lisp_Object call4 4012,133753 +extern Lisp_Object call5 4013,133845 +extern Lisp_Object call6 4014,133950 +extern Lisp_Object call7 4015,134068 +extern Lisp_Object internal_catch 4016,134199 +extern Lisp_Object internal_lisp_condition_case 4017,134292 +extern Lisp_Object internal_condition_case 4018,134381 +extern Lisp_Object internal_condition_case_1 4019,134494 +extern Lisp_Object internal_condition_case_2 4020,134629 +extern Lisp_Object internal_condition_case_n4021,134790 +extern void specbind 4024,134986 +extern void record_unwind_protect 4025,135035 +extern void record_unwind_protect_ptr 4026,135108 +extern void record_unwind_protect_int 4027,135175 +extern void record_unwind_protect_void 4028,135236 +extern void record_unwind_protect_nothing 4029,135294 +extern void clear_unwind_protect 4030,135344 +extern void set_unwind_protect 4031,135390 +extern void set_unwind_protect_ptr 4032,135471 +extern Lisp_Object unbind_to 4033,135546 +extern _Noreturn void error 4034,135601 +fast_string_match_ignore_case 4136,140089 +extern ptrdiff_t fast_c_string_match_ignore_case 4141,140239 +extern ptrdiff_t fast_looking_at 4143,140336 +extern ptrdiff_t find_newline 4145,140475 +extern ptrdiff_t scan_newline 4147,140604 +extern ptrdiff_t scan_newline_from_point 4149,140707 +extern ptrdiff_t find_newline_no_quit 4150,140787 +extern ptrdiff_t find_before_next_newline 4152,140884 +extern void syms_of_search 4154,140982 +extern void clear_regexp_cache 4155,141017 +extern Lisp_Object Vminibuffer_list;4159,141087 +extern Lisp_Object last_minibuf_string;4160,141124 +extern Lisp_Object get_minibuffer 4161,141164 +extern void init_minibuf_once 4162,141211 +extern void syms_of_minibuf 4163,141249 +extern void syms_of_callint 4167,141316 +extern void syms_of_casefiddle 4171,141386 +extern void keys_of_casefiddle 4172,141425 +extern void init_casetab_once 4176,141495 +extern void syms_of_casetab 4177,141533 +extern Lisp_Object echo_message_buffer;4181,141601 +extern struct kboard *echo_kboard;echo_kboard4182,141641 +extern void cancel_echoing 4183,141676 +extern Lisp_Object last_undo_boundary;4184,141711 +extern bool input_pending;4185,141750 +extern sigjmp_buf return_to_command_loop;4187,141813 +extern Lisp_Object menu_bar_items 4189,141862 +extern Lisp_Object tool_bar_items 4190,141911 +extern void discard_mouse_events 4191,141967 +void handle_input_available_signal 4193,142028 +extern Lisp_Object pending_funcalls;4195,142077 +extern bool detect_input_pending 4196,142114 +extern bool detect_input_pending_ignore_squeezables 4197,142155 +extern bool detect_input_pending_run_timers 4198,142215 +extern void safe_run_hooks 4199,142267 +extern void cmd_error_internal 4200,142309 +extern Lisp_Object command_loop_1 4201,142369 +extern Lisp_Object read_menu_command 4202,142411 +extern Lisp_Object recursive_edit_1 4203,142456 +extern void record_auto_save 4204,142500 +extern void force_auto_save_soon 4205,142537 +extern void init_keyboard 4206,142578 +extern void syms_of_keyboard 4207,142612 +extern void keys_of_keyboard 4208,142649 +extern ptrdiff_t current_column 4211,142715 +extern void invalidate_current_column 4212,142755 +extern bool indented_beyond_p 4213,142801 +extern void syms_of_indent 4214,142866 +extern void store_frame_param 4217,142929 +extern void store_in_alist 4218,143003 +extern Lisp_Object do_switch_frame 4219,143073 +extern Lisp_Object get_frame_param 4220,143146 +extern void frames_discard_buffer 4221,143212 +extern void syms_of_frame 4222,143261 +extern char **initial_argv;initial_argv4225,143323 +extern int initial_argc;4226,143351 +extern bool display_arg;4228,143426 +extern Lisp_Object decode_env_path 4230,143458 +extern Lisp_Object empty_unibyte_string,4231,143529 +extern Lisp_Object empty_unibyte_string, empty_multibyte_string;4231,143529 +extern _Noreturn void terminate_due_to_signal 4232,143594 +extern Lisp_Object Vlibrary_cache;4234,143669 +void fixup_locale 4237,143730 +void synchronize_system_messages_locale 4238,143756 +void synchronize_system_time_locale 4239,143804 +INLINE void fixup_locale 4241,143854 +INLINE void synchronize_system_messages_locale 4242,143889 +INLINE void synchronize_system_time_locale 4243,143946 +extern void shut_down_emacs 4245,144006 +extern bool noninteractive;4248,144132 +extern bool no_site_lisp;4251,144224 +extern int daemon_pipe[daemon_pipe4256,144392 +#define IS_DAEMON 4257,144419 +#define DAEMON_RUNNING 4258,144459 +extern void *w32_daemon_event;w32_daemon_event4260,144527 +#define IS_DAEMON 4261,144558 +#define DAEMON_RUNNING 4262,144603 +extern bool fatal_error_in_progress;4266,144724 +extern bool inhibit_window_system;4269,144830 +extern bool running_asynch_code;4271,144923 +extern void kill_buffer_processes 4274,144986 +extern int wait_reading_process_output 4275,145035 +# define WAIT_READING_MAX 4281,145422 +# define WAIT_READING_MAX 4283,145494 +extern void add_timer_wait_descriptor 4286,145558 +extern void add_keyboard_wait_descriptor 4288,145610 +extern void delete_keyboard_wait_descriptor 4289,145658 +extern void add_gpm_wait_descriptor 4291,145725 +extern void delete_gpm_wait_descriptor 4292,145768 +extern void init_process_emacs 4294,145821 +extern void syms_of_process 4295,145860 +extern void setup_process_coding_systems 4296,145896 +extern int child_setup 4302,146016 +extern void init_callproc_1 4303,146084 +extern void init_callproc 4304,146120 +extern void set_initial_environment 4305,146154 +extern void syms_of_callproc 4306,146198 +extern Lisp_Object read_doc_string 4309,146261 +extern Lisp_Object get_doc_string 4310,146311 +extern void syms_of_doc 4311,146372 +extern int read_bytecode_char 4312,146404 +extern void syms_of_bytecode 4315,146473 +extern struct byte_stack *byte_stack_list;byte_stack_list4316,146510 +extern void mark_byte_stack 4318,146573 +extern void unmark_byte_stack 4320,146616 +extern Lisp_Object exec_byte_code 4321,146654 +extern void init_macros 4325,146804 +extern void syms_of_macros 4326,146836 +extern void truncate_undo_list 4329,146898 +extern void record_insert 4330,146948 +extern void record_delete 4331,146998 +extern void record_first_change 4332,147056 +extern void record_change 4333,147096 +extern void record_property_change 4334,147146 +extern void syms_of_undo 4337,147288 +extern void report_interval_modification 4340,147352 +extern void syms_of_menu 4343,147448 +extern void syms_of_xmenu 4346,147509 +extern char *get_current_dir_name get_current_dir_name4356,147711 +extern void stuff_char 4358,147760 +extern void init_foreground_group 4359,147793 +extern void sys_subshell 4360,147835 +extern void sys_suspend 4361,147868 +extern void discard_tty_input 4362,147900 +extern void init_sys_modes 4363,147938 +extern void reset_sys_modes 4364,147994 +extern void init_all_sys_modes 4365,148051 +extern void reset_all_sys_modes 4366,148090 +extern void child_setup_tty 4367,148130 +extern void setup_pty 4368,148165 +extern int set_window_size 4369,148194 +extern EMACS_INT get_random 4370,148238 +extern void seed_random 4371,148274 +extern void init_random 4372,148319 +extern void emacs_backtrace 4373,148351 +extern _Noreturn void emacs_abort 4374,148386 +extern void xputenv 4527,152700 +extern char *egetenv_internal egetenv_internal4529,152737 +egetenv 4532,152809 +extern void init_system_name 4539,153012 +#define eabs(4545,153305 +#define make_fixnum_or_float(4550,153438 +enum MAX_ALLOCA 4556,153689 +enum MAX_ALLOCA { MAX_ALLOCA 4556,153689 +extern void *record_xmalloc record_xmalloc4558,153734 +#define USE_SAFE_ALLOCA 4560,153800 +#define AVAIL_ALLOCA(4564,153933 +#define SAFE_ALLOCA(4568,154044 +#define SAFE_NALLOCA(4576,154385 +#define SAFE_ALLOCA_STRING(4590,154861 +#define SAFE_FREE(4598,155113 +#define SAFE_ALLOCA_LISP(4625,155691 +# define USE_STACK_LISP_OBJECTS 4652,156813 +# undef USE_STACK_LISP_OBJECTS4658,156979 +# define USE_STACK_LISP_OBJECTS 4659,157010 +enum { defined_GC_CHECK_STRING_BYTES 4663,157085 +enum { defined_GC_CHECK_STRING_BYTES 4665,157138 +union Aligned_Cons4670,157272 +union Aligned_String4676,157352 + USE_STACK_CONS 4689,157707 + USE_STACK_STRING 4691,157813 +#define STACK_CONS(4699,158150 +#define AUTO_CONS_EXPR(4701,158247 +#define AUTO_CONS(4709,158610 +#define AUTO_LIST1(4710,158681 +#define AUTO_LIST2(4712,158789 +#define AUTO_LIST3(4716,158944 +#define AUTO_LIST4(4720,159119 +extern const char *verify_ascii verify_ascii4730,159456 +# define verify_ascii(4732,159510 +#define AUTO_STRING(4740,159818 +#define FOR_EACH_TAIL(4752,160282 +#define FOR_EACH_ALIST_VALUE(4766,160773 +maybe_gc 4774,161060 +functionp 4784,161299 c-src/machsyscalls.c,23 #define SYSCALL(6,113 @@ -2805,10 +2805,10 @@ el-src/emacs/lisp/progmodes/etags.el,5188 (defvar etags-xref-find-definitions-tag-order 2076,82586 (defun etags-xref-find 2082,82876 (defun etags--xref-find-definitions 2096,83405 -(defclass xref-etags-location 2129,85120 -(defun xref-make-etags-location 2135,85343 -(cl-defmethod xref-location-marker 2139,85498 -(cl-defmethod xref-location-line 2146,85742 +(defclass xref-etags-location 2129,85119 +(defun xref-make-etags-location 2135,85342 +(cl-defmethod xref-location-marker 2139,85497 +(cl-defmethod xref-location-line 2146,85741 erl-src/gs_dialog.erl,98 -define(VERSION2,32 @@ -3548,25 +3548,25 @@ class Configure(760,24879 def save(797,26022 def nosave(807,26310 -ruby-src/test.rb,594 +ruby-src/test.rb,604 module ModuleExample1,0 class ClassExample2,21 def instance_method3,44 - def ClassExample.class_method6,116 - def instance_method_exclamation!9,221 - def instance_method_question?12,319 - def instance_method_equals=class_method_equals=15,411 - def `(18,499 - def +(21,589 - def [](24,637 - def []=([]=27,687 - def <<(30,749 - def ==(==33,799 - def <=(<=36,869 - def <=>(<=>39,940 - def ===(===42,987 - def module_instance_method46,1048 - def ModuleExample.module_class_method49,1110 + def ClassExample.class_method6,121 + def instance_method_exclamation!9,206 + def instance_method_question?12,310 + def instance_method_equals=instance_method_equals=15,408 + def `(18,502 + def +(21,592 + def [](24,640 + def []=([]=27,690 + def <<(30,752 + def ==(==33,802 + def <=(<=36,872 + def <=>(<=>39,943 + def ===(===42,990 + def module_instance_method46,1051 + def ModuleExample.module_class_method49,1131 ruby-src/test1.ruby,37 class A1,0 @@ -3589,722 +3589,722 @@ tex-src/gzip.texi,303 @node Problems,460,16767 @node Concept Index,Concept Index473,17287 -tex-src/texinfo.tex,30626 -\def\texinfoversion{\texinfoversion25,1019 -\def\tie{\tie48,1510 -\def\gloggingall{\gloggingall71,2260 -\def\loggingall{\loggingall72,2329 -\def\onepageout#1{\onepageout98,3266 -\def\croppageout#1{\croppageout114,4016 -\def\cropmarks{\cropmarks141,5076 -\def\pagebody#1{\pagebody143,5123 -\def\ewtop{\ewtop156,5578 -\def\nstop{\nstop157,5642 -\def\ewbot{\ewbot159,5725 -\def\nsbot{\nsbot160,5789 -\def\parsearg #1{\parsearg169,6088 -\def\parseargx{\parseargx171,6166 -\def\parseargline{\parseargline181,6406 -\def\flushcr{\flushcr185,6527 -\newif\ifENV \ENVfalse \def\inENV{\inENV189,6726 -\def\ENVcheck{\ENVcheck190,6790 -\outer\def\begin{\begin197,7037 -\def\beginxxx #1{\beginxxx199,7075 -\def\end{\end207,7330 -\def\endxxx #1{\endxxx209,7358 -\def\errorE#1{\errorE215,7547 -\def\singlespace{\singlespace221,7741 -\def\@{\@231,7964 -\def\`{\`235,8064 -\def\'{\'236,8076 -\def\mylbrace {\mylbrace240,8124 -\def\myrbrace {\myrbrace241,8157 -\def\:{\:246,8271 -\def\*{\*249,8325 -\def\.{\.252,8401 -\def\w#1{\w257,8632 -\def\group{\group267,9115 - \def\Egroup{\Egroup272,9279 -\def\need{\need288,9721 -\def\needx#1{\needx299,9998 -\def\dots{\dots338,11384 -\def\page{\page342,11448 -\def\exdent{\exdent352,11775 -\def\exdentyyy #1{\exdentyyy353,11808 -\def\nofillexdent{\nofillexdent356,11952 -\def\nofillexdentyyy #1{\nofillexdentyyy357,11997 -\def\include{\include364,12181 -\def\includezzz #1{\includezzz365,12216 -\def\thisfile{\thisfile368,12267 -\def\center{\center372,12330 -\def\centerzzz #1{\centerzzz373,12363 -\def\sp{\sp379,12505 -\def\spxxx #1{\spxxx380,12530 -\def\comment{\comment386,12704 -\def\commentxxx #1{\commentxxx389,12801 -\def\ignoresections{\ignoresections395,12970 -\let\chapter=\relax=\relax396,12992 -\let\section=\relax=\relax405,13237 -\let\subsection=\relax=\relax408,13298 -\let\subsubsection=\relax=\relax409,13321 -\let\appendix=\relax=\relax410,13347 -\let\appendixsec=\relaxsec=\relax411,13368 -\let\appendixsection=\relaxsection=\relax412,13392 -\let\appendixsubsec=\relaxsubsec=\relax413,13420 -\let\appendixsubsection=\relaxsubsection=\relax414,13447 -\let\appendixsubsubsec=\relaxsubsubsec=\relax415,13478 -\let\appendixsubsubsection=\relaxsubsubsection=\relax416,13508 -\def\ignore{\ignore422,13610 -\long\def\ignorexxx #1\end ignore{\ignorexxx426,13750 -\def\direntry{\direntry428,13809 -\long\def\direntryxxx #1\end direntry{\direntryxxx429,13848 -\def\ifset{\ifset433,13958 -\def\ifsetxxx #1{\ifsetxxx435,14016 -\def\Eifset{\Eifset439,14143 -\def\ifsetfail{\ifsetfail440,14157 -\long\def\ifsetfailxxx #1\end ifset{\ifsetfailxxx441,14213 -\def\ifclear{\ifclear443,14274 -\def\ifclearxxx #1{\ifclearxxx445,14336 -\def\Eifclear{\Eifclear449,14467 -\def\ifclearfail{\ifclearfail450,14483 -\long\def\ifclearfailxxx #1\end ifclear{\ifclearfailxxx451,14543 -\def\set{\set455,14694 -\def\setxxx #1{\setxxx456,14721 -\def\clear{\clear459,14783 -\def\clearxxx #1{\clearxxx460,14814 -\def\iftex{\iftex465,14931 -\def\Eiftex{\Eiftex466,14944 -\def\ifinfo{\ifinfo467,14958 -\long\def\ifinfoxxx #1\end ifinfo{\ifinfoxxx468,15008 -\long\def\menu #1\end menu{\menu470,15067 -\def\asis#1{\asis471,15096 -\def\math#1{\math484,15639 -\def\node{\node486,15683 -\def\nodezzz#1{\nodezzz487,15721 -\def\nodexxx[#1,#2]{\nodexxx[488,15752 -\def\donoderef{\donoderef491,15814 -\def\unnumbnoderef{\unnumbnoderef495,15935 -\def\appendixnoderef{\appendixnoderef499,16066 -\expandafter\expandafter\expandafter\appendixsetref{setref500,16112 -\let\refill=\relaxill=\relax503,16201 -\def\setfilename{\setfilename508,16415 -\outer\def\bye{\bye517,16661 -\def\inforef #1{\inforef519,16717 -\def\inforefzzz #1,#2,#3,#4**{\inforefzzz520,16755 -\def\losespace #1{\losespace522,16852 -\def\sf{\sf531,17056 -\font\defbf=cmbx10 scaled \magstep1 %was 1314bf=cmbx10557,17851 -\font\deftt=cmtt10 scaled \magstep1tt=cmtt10558,17897 -\def\df{\df559,17933 -\def\resetmathfonts{\resetmathfonts634,20527 -\def\textfonts{\textfonts647,21116 -\def\chapfonts{\chapfonts652,21331 -\def\secfonts{\secfonts657,21547 -\def\subsecfonts{\subsecfonts662,21752 -\def\indexfonts{\indexfonts667,21969 -\def\smartitalicx{\smartitalicx690,22701 -\def\smartitalic#1{\smartitalic691,22777 -\let\cite=\smartitalic=\smartitalic697,22922 -\def\b#1{\b699,22946 -\def\t#1{\t702,22981 -\def\samp #1{\samp705,23133 -\def\key #1{\key706,23166 -\def\ctrl #1{\ctrl707,23227 -\def\tclose#1{\tclose715,23429 -\def\ {\719,23595 -\def\xkey{\xkey727,23864 -\def\kbdfoo#1#2#3\par{\kbdfoo728,23880 -\def\dmn#1{\dmn737,24181 -\def\kbd#1{\kbd739,24208 -\def\l#1{\l741,24265 -\def\r#1{\r743,24294 -\def\sc#1{\sc745,24362 -\def\ii#1{\ii746,24405 -\def\titlefont#1{\titlefont754,24638 -\def\titlepage{\titlepage760,24741 - \def\subtitlefont{\subtitlefont765,24968 - \def\authorfont{\authorfont767,25052 - \def\title{\title773,25262 - \def\titlezzz##1{\titlezzz774,25297 - \def\subtitle{\subtitle782,25612 - \def\subtitlezzz##1{\subtitlezzz783,25653 - \def\author{\author786,25771 - \def\authorzzz##1{\authorzzz787,25808 - \def\page{\page793,26099 -\def\Etitlepage{\Etitlepage803,26268 -\def\finishtitlepage{\finishtitlepage816,26656 -\def\evenheading{\evenheading845,27664 -\def\oddheading{\oddheading846,27707 -\def\everyheading{\everyheading847,27748 -\def\evenfooting{\evenfooting849,27794 -\def\oddfooting{\oddfooting850,27837 -\def\everyfooting{\everyfooting851,27878 -\def\headings #1 {\headings892,29570 -\def\HEADINGSoff{\HEADINGSoff894,29619 -\def\HEADINGSdouble{\HEADINGSdouble903,30046 -\def\HEADINGSsingle{\HEADINGSsingle913,30366 -\def\HEADINGSon{\HEADINGSon921,30587 -\def\HEADINGSafter{\HEADINGSafter923,30621 -\def\HEADINGSdoublex{\HEADINGSdoublex925,30716 -\def\HEADINGSsingleafter{\HEADINGSsingleafter932,30904 -\def\HEADINGSsinglex{\HEADINGSsinglex933,30965 -\def\today{\today942,31240 -\def\thistitle{\thistitle957,31785 -\def\settitle{\settitle958,31810 -\def\settitlezzz #1{\settitlezzz959,31847 -\def\internalBitem{\internalBitem991,32777 -\def\internalBitemx{\internalBitemx992,32827 -\def\internalBxitem "#1"{\internalBxitem994,32872 -\def\internalBxitemx "#1"{\internalBxitemx995,32952 -\def\internalBkitem{\internalBkitem997,33027 -\def\internalBkitemx{\internalBkitemx998,33079 -\def\kitemzzz #1{\kitemzzz1000,33126 -\def\xitemzzz #1{\xitemzzz1003,33228 -\def\itemzzz #1{\itemzzz1006,33331 -\def\item{\item1036,34402 -\def\itemx{\itemx1037,34453 -\def\kitem{\kitem1038,34506 -\def\kitemx{\kitemx1039,34559 -\def\xitem{\xitem1040,34614 -\def\xitemx{\xitemx1041,34667 -\def\description{\description1044,34777 -\def\table{\table1046,34827 -\def\ftable{\ftable1051,34971 -\def\Eftable{\Eftable1055,35117 -\def\vtable{\vtable1058,35186 -\def\Evtable{\Evtable1062,35332 -\def\dontindex #1{\dontindex1065,35401 -\def\fnitemindex #1{\fnitemindex1066,35421 -\def\vritemindex #1{\vritemindex1067,35466 -\def\tablez #1#2#3#4#5#6{\tablez1073,35615 -\def\Edescription{\Edescription1076,35673 -\def\itemfont{\itemfont1081,35875 -\def\Etable{\Etable1089,36101 -\def\itemize{\itemize1102,36425 -\def\itemizezzz #1{\itemizezzz1104,36461 -\def\itemizey #1#2{\itemizey1109,36556 -\def#2{1118,36802 -\def\itemcontents{\itemcontents1119,36843 -\def\bullet{\bullet1122,36891 -\def\minus{\minus1123,36918 -\def\frenchspacing{\frenchspacing1127,37026 -\def\splitoff#1#2\endmark{\splitoff1133,37251 -\def\enumerate{\enumerate1139,37481 -\def\enumeratezzz #1{\enumeratezzz1140,37520 -\def\enumeratey #1 #2\endenumeratey{\enumeratey1141,37573 - \def\thearg{\thearg1145,37720 - \ifx\thearg\empty \def\thearg{\thearg1146,37739 -\def\numericenumerate{\numericenumerate1183,39073 -\def\lowercaseenumerate{\lowercaseenumerate1189,39203 -\def\uppercaseenumerate{\uppercaseenumerate1202,39550 -\def\startenumeration#1{\startenumeration1218,40040 -\def\alphaenumerate{\alphaenumerate1226,40222 -\def\capsenumerate{\capsenumerate1227,40257 -\def\Ealphaenumerate{\Ealphaenumerate1228,40291 -\def\Ecapsenumerate{\Ecapsenumerate1229,40325 -\def\itemizeitem{\itemizeitem1233,40405 -\def\newindex #1{\newindex1258,41262 -\def\defindex{\defindex1267,41551 -\def\newcodeindex #1{\newcodeindex1271,41659 -\def\defcodeindex{\defcodeindex1278,41919 -\def\synindex #1 #2 {\synindex1282,42099 -\def\syncodeindex #1 #2 {\syncodeindex1291,42439 -\def\doindex#1{\doindex1308,43118 -\def\singleindexer #1{\singleindexer1309,43177 -\def\docodeindex#1{\docodeindex1312,43289 -\def\singlecodeindexer #1{\singlecodeindexer1313,43356 -\def\indexdummies{\indexdummies1315,43414 -\def\_{\_1316,43434 -\def\w{\w1317,43462 -\def\bf{\bf1318,43489 -\def\rm{\rm1319,43518 -\def\sl{\sl1320,43547 -\def\sf{\sf1321,43576 -\def\tt{\tt1322,43604 -\def\gtr{\gtr1323,43632 -\def\less{\less1324,43662 -\def\hat{\hat1325,43694 -\def\char{\char1326,43724 -\def\TeX{\TeX1327,43756 -\def\dots{\dots1328,43786 -\def\copyright{\copyright1329,43819 -\def\tclose##1{\tclose1330,43862 -\def\code##1{\code1331,43907 -\def\samp##1{\samp1332,43948 -\def\t##1{\t1333,43989 -\def\r##1{\r1334,44024 -\def\i##1{\i1335,44059 -\def\b##1{\b1336,44094 -\def\cite##1{\cite1337,44129 -\def\key##1{\key1338,44170 -\def\file##1{\file1339,44209 -\def\var##1{\var1340,44250 -\def\kbd##1{\kbd1341,44289 -\def\indexdummyfont#1{\indexdummyfont1346,44445 -\def\indexdummytex{\indexdummytex1347,44471 -\def\indexdummydots{\indexdummydots1348,44495 -\def\indexnofonts{\indexnofonts1350,44521 -\let\w=\indexdummyfontdummyfont1351,44541 -\let\t=\indexdummyfontdummyfont1352,44564 -\let\r=\indexdummyfontdummyfont1353,44587 -\let\i=\indexdummyfontdummyfont1354,44610 -\let\b=\indexdummyfontdummyfont1355,44633 -\let\emph=\indexdummyfontdummyfont1356,44656 -\let\strong=\indexdummyfontdummyfont1357,44682 -\let\cite=\indexdummyfont=\indexdummyfont1358,44710 -\let\sc=\indexdummyfontdummyfont1359,44736 -\let\tclose=\indexdummyfontdummyfont1363,44908 -\let\code=\indexdummyfontdummyfont1364,44936 -\let\file=\indexdummyfontdummyfont1365,44962 -\let\samp=\indexdummyfontdummyfont1366,44988 -\let\kbd=\indexdummyfontdummyfont1367,45014 -\let\key=\indexdummyfontdummyfont1368,45039 -\let\var=\indexdummyfontdummyfont1369,45064 -\let\TeX=\indexdummytexdummytex1370,45089 -\let\dots=\indexdummydotsdummydots1371,45113 -\let\indexbackslash=0 %overridden during \printindex.backslash=01381,45365 -\def\doind #1#2{\doind1383,45421 -{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1385,45464 -\def\rawbackslashxx{\rawbackslashxx1388,45604 -{\indexnofontsnofonts1393,45866 -\def\dosubind #1#2#3{\dosubind1404,46177 -{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1406,46225 -\def\rawbackslashxx{\rawbackslashxx1409,46329 -{\indexnofontsnofonts1413,46483 -\def\findex {\findex1442,47414 -\def\kindex {\kindex1443,47437 -\def\cindex {\cindex1444,47460 -\def\vindex {\vindex1445,47483 -\def\tindex {\tindex1446,47506 -\def\pindex {\pindex1447,47529 -\def\cindexsub {\cindexsub1449,47553 -\def\printindex{\printindex1461,47880 -\def\doprintindex#1{\doprintindex1463,47921 - \def\indexbackslash{\indexbackslash1480,48406 - \indexfonts\rm \tolerance=9500 \advance\baselineskip -1ptfonts\rm1481,48445 -\def\initial #1{\initial1516,49517 -\def\entry #1#2{\entry1522,49724 - \null\nobreak\indexdotfill % Have leaders before the page number.dotfill1539,50371 -\def\indexdotfill{\indexdotfill1548,50699 -\def\primary #1{\primary1551,50805 -\def\secondary #1#2{\secondary1555,50887 -\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\pardotfill1558,50969 -\newbox\partialpageialpage1565,51142 -\def\begindoublecolumns{\begindoublecolumns1571,51300 - \output={\global\setbox\partialpage=ialpage=1572,51336 -\def\enddoublecolumns{\enddoublecolumns1576,51524 -\def\doublecolumnout{\doublecolumnout1579,51609 - \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1580,51678 -\def\pagesofar{\pagesofar1583,51856 -\def\balancecolumns{\balancecolumns1587,52093 - \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpageialpage1593,52264 - \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1599,52525 -\newcount \appendixno \appendixno = `\@no1626,53430 -\def\appendixletter{\appendixletter1627,53471 -\def\opencontents{\opencontents1631,53574 -\def\thischapter{\thischapter1636,53755 -\def\seccheck#1{\seccheck1637,53793 -\def\chapternofonts{\chapternofonts1642,53897 -\def\result{\result1645,53972 -\def\equiv{\equiv1646,54007 -\def\expansion{\expansion1647,54040 -\def\print{\print1648,54081 -\def\TeX{\TeX1649,54114 -\def\dots{\dots1650,54143 -\def\copyright{\copyright1651,54174 -\def\tt{\tt1652,54215 -\def\bf{\bf1653,54242 -\def\w{\w1654,54270 -\def\less{\less1655,54295 -\def\gtr{\gtr1656,54326 -\def\hat{\hat1657,54355 -\def\char{\char1658,54384 -\def\tclose##1{\tclose1659,54415 -\def\code##1{\code1660,54459 -\def\samp##1{\samp1661,54499 -\def\r##1{\r1662,54539 -\def\b##1{\b1663,54573 -\def\key##1{\key1664,54607 -\def\file##1{\file1665,54645 -\def\kbd##1{\kbd1666,54685 -\def\i##1{\i1668,54793 -\def\cite##1{\cite1669,54827 -\def\var##1{\var1670,54867 -\def\emph##1{\emph1671,54905 -\def\dfn##1{\dfn1672,54945 -\def\thischaptername{\thischaptername1675,54986 -\outer\def\chapter{\chapter1676,55025 -\def\chapterzzz #1{\chapterzzz1677,55066 -{\chapternofonts%nofonts%1686,55462 -\global\let\section = \numberedsec=1691,55615 -\global\let\subsection = \numberedsubsec=1692,55650 -\global\let\subsubsection = \numberedsubsubsec=1693,55691 -\outer\def\appendix{\appendix1696,55742 -\def\appendixzzz #1{\appendixzzz1697,55785 -\global\advance \appendixno by 1 \message{no1699,55862 -\chapmacro {#1}{Appendix \appendixletter}letter1700,55931 -\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}letter:1703,56024 -{\chapternofonts%nofonts%1704,56096 - {#1}{Appendix \appendixletter}letter1706,56152 -\appendixnoderef %noderef1709,56252 -\global\let\section = \appendixsec=1710,56271 -\global\let\subsection = \appendixsubsec=1711,56306 -\global\let\subsubsection = \appendixsubsubsec=1712,56347 -\outer\def\top{\top1715,56398 -\outer\def\unnumbered{\unnumbered1716,56438 -\def\unnumberedzzz #1{\unnumberedzzz1717,56485 -{\chapternofonts%nofonts%1721,56648 -\global\let\section = \unnumberedsec=1726,56798 -\global\let\subsection = \unnumberedsubsec=1727,56835 -\global\let\subsubsection = \unnumberedsubsubsec=1728,56878 -\outer\def\numberedsec{\numberedsec1731,56931 -\def\seczzz #1{\seczzz1732,56972 -{\chapternofonts%nofonts%1735,57128 -\outer\def\appendixsection{\appendixsection1744,57314 -\outer\def\appendixsec{\appendixsec1745,57371 -\def\appendixsectionzzz #1{\appendixsectionzzz1746,57424 -\gdef\thissection{#1}\secheading {#1}{\appendixletter}letter1748,57536 -{\chapternofonts%nofonts%1749,57604 -{#1}{\appendixletter}letter1751,57660 -\appendixnoderef %noderef1754,57760 -\outer\def\unnumberedsec{\unnumberedsec1758,57800 -\def\unnumberedseczzz #1{\unnumberedseczzz1759,57853 -{\chapternofonts%nofonts%1761,57948 -\outer\def\numberedsubsec{\numberedsubsec1769,58116 -\def\numberedsubseczzz #1{\numberedsubseczzz1770,58171 -{\chapternofonts%nofonts%1773,58350 -\outer\def\appendixsubsec{\appendixsubsec1782,58554 -\def\appendixsubseczzz #1{\appendixsubseczzz1783,58609 -\subsecheading {#1}{\appendixletter}letter1785,58731 -{\chapternofonts%nofonts%1786,58796 -{#1}{\appendixletter}letter1788,58855 -\appendixnoderef %noderef1791,58970 -\outer\def\unnumberedsubsec{\unnumberedsubsec1795,59010 -\def\unnumberedsubseczzz #1{\unnumberedsubseczzz1796,59069 -{\chapternofonts%nofonts%1798,59170 -\outer\def\numberedsubsubsec{\numberedsubsubsec1806,59341 -\def\numberedsubsubseczzz #1{\numberedsubsubseczzz1807,59402 -{\chapternofonts%nofonts%1811,59599 -\outer\def\appendixsubsubsec{\appendixsubsubsec1822,59832 -\def\appendixsubsubseczzz #1{\appendixsubsubseczzz1823,59893 - {\appendixletter}letter1826,60032 -{\chapternofonts%nofonts%1827,60098 - {\appendixletter}letter1829,60163 -\appendixnoderef %noderef1833,60297 -\outer\def\unnumberedsubsubsec{\unnumberedsubsubsec1837,60337 -\def\unnumberedsubsubseczzz #1{\unnumberedsubsubseczzz1838,60402 -{\chapternofonts%nofonts%1840,60509 -\def\infotop{\infotop1850,60838 -\def\infounnumbered{\infounnumbered1851,60876 -\def\infounnumberedsec{\infounnumberedsec1852,60921 -\def\infounnumberedsubsec{\infounnumberedsubsec1853,60972 -\def\infounnumberedsubsubsec{\infounnumberedsubsubsec1854,61029 -\def\infoappendix{\infoappendix1856,61093 -\def\infoappendixsec{\infoappendixsec1857,61134 -\def\infoappendixsubsec{\infoappendixsubsec1858,61181 -\def\infoappendixsubsubsec{\infoappendixsubsubsec1859,61234 -\def\infochapter{\infochapter1861,61294 -\def\infosection{\infosection1862,61333 -\def\infosubsection{\infosubsection1863,61372 -\def\infosubsubsection{\infosubsubsection1864,61417 -\global\let\section = \numberedsec=1869,61654 -\global\let\subsection = \numberedsubsec=1870,61689 -\global\let\subsubsection = \numberedsubsubsec=1871,61730 -\def\majorheading{\majorheading1885,62237 -\def\majorheadingzzz #1{\majorheadingzzz1886,62282 -\def\chapheading{\chapheading1892,62515 -\def\chapheadingzzz #1{\chapheadingzzz1893,62558 -\def\heading{\heading1898,62753 -\def\subheading{\subheading1900,62790 -\def\subsubheading{\subsubheading1902,62833 -\def\dobreak#1#2{\dobreak1909,63110 -\def\setchapterstyle #1 {\setchapterstyle1911,63188 -\def\chapbreak{\chapbreak1918,63443 -\def\chappager{\chappager1919,63493 -\def\chapoddpage{\chapoddpage1920,63531 -\def\setchapternewpage #1 {\setchapternewpage1922,63610 -\def\CHAPPAGoff{\CHAPPAGoff1924,63667 -\def\CHAPPAGon{\CHAPPAGon1928,63761 -\global\def\HEADINGSon{\HEADINGSon1931,63852 -\def\CHAPPAGodd{\CHAPPAGodd1933,63894 -\global\def\HEADINGSon{\HEADINGSon1936,63990 -\def\CHAPFplain{\CHAPFplain1940,64044 -\def\chfplain #1#2{\chfplain1944,64136 -\def\unnchfplain #1{\unnchfplain1955,64359 -\def\unnchfopen #1{\unnchfopen1963,64588 -\def\chfopen #1#2{\chfopen1969,64796 -\def\CHAPFopen{\CHAPFopen1974,64940 -\def\subsecheadingbreak{\subsecheadingbreak1981,65158 -\def\secheadingbreak{\secheadingbreak1984,65287 -\def\secheading #1#2#3{\secheading1992,65569 -\def\plainsecheading #1{\plainsecheading1993,65625 -\def\secheadingi #1{\secheadingi1994,65668 -\def\subsecheading #1#2#3#4{\subsecheading2005,66036 -\def\subsecheadingi #1{\subsecheadingi2006,66103 -\def\subsubsecfonts{\subsubsecfonts2013,66400 -\def\subsubsecheading #1#2#3#4#5{\subsubsecheading2016,66523 -\def\subsubsecheadingi #1{\subsubsecheadingi2017,66601 -\def\startcontents#1{\startcontents2031,67073 - \unnumbchapmacro{#1}\def\thischapter{\thischapter2039,67346 -\outer\def\contents{\contents2048,67705 -\outer\def\summarycontents{\summarycontents2056,67849 - \def\secentry ##1##2##3##4{\secentry2066,68220 - \def\unnumbsecentry ##1##2{\unnumbsecentry2067,68255 - \def\subsecentry ##1##2##3##4##5{\subsecentry2068,68290 - \def\unnumbsubsecentry ##1##2{\unnumbsubsecentry2069,68331 - \def\subsubsecentry ##1##2##3##4##5##6{\subsubsecentry2070,68369 - \def\unnumbsubsubsecentry ##1##2{\unnumbsubsubsecentry2071,68416 -\def\chapentry#1#2#3{\chapentry2084,68850 -\def\shortchapentry#1#2#3{\shortchapentry2087,68967 - {#2\labelspace #1}space2090,69077 -\def\unnumbchapentry#1#2{\unnumbchapentry2093,69131 -\def\shortunnumberedentry#1#2{\shortunnumberedentry2094,69178 -\def\secentry#1#2#3#4{\secentry2101,69342 -\def\unnumbsecentry#1#2{\unnumbsecentry2102,69401 -\def\subsecentry#1#2#3#4#5{\subsecentry2105,69462 -\def\unnumbsubsecentry#1#2{\unnumbsubsecentry2106,69532 -\def\subsubsecentry#1#2#3#4#5#6{\subsubsecentry2109,69606 - \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}space2110,69640 -\def\unnumbsubsubsecentry#1#2{\unnumbsubsubsecentry2111,69691 -\def\dochapentry#1#2{\dochapentry2122,70065 -\def\dosecentry#1#2{\dosecentry2137,70670 -\def\dosubsecentry#1#2{\dosubsecentry2144,70848 -\def\dosubsubsecentry#1#2{\dosubsubsecentry2151,71033 -\def\labelspace{\labelspace2159,71284 -\def\dopageno#1{\dopageno2161,71319 -\def\doshortpageno#1{\doshortpageno2162,71345 -\def\chapentryfonts{\chapentryfonts2164,71377 -\def\secentryfonts{\secentryfonts2165,71412 -\def\point{\point2191,72371 -\def\result{\result2193,72392 -\def\expansion{\expansion2194,72465 -\def\print{\print2195,72536 -\def\equiv{\equiv2197,72603 -\def\error{\error2217,73376 -\def\tex{\tex2223,73605 -\def\@{\@2241,73988 -\gdef\sepspaces{\def {\ }}}\2264,74720 -\def\aboveenvbreak{\aboveenvbreak2267,74802 -\def\afterenvbreak{\afterenvbreak2271,74968 -\def\ctl{\ctl2285,75479 -\def\ctr{\ctr2286,75551 -\def\cbl{\cbl2287,75590 -\def\cbr{\cbr2288,75630 -\def\carttop{\carttop2289,75669 -\def\cartbot{\cartbot2292,75777 -\long\def\cartouche{\cartouche2298,75917 -\def\Ecartouche{\Ecartouche2325,76705 -\def\lisp{\lisp2337,76840 -\def\Elisp{\Elisp2347,77187 -\def\next##1{\next2359,77513 -\def\Eexample{\Eexample2363,77555 -\def\Esmallexample{\Esmallexample2366,77602 -\def\smalllispx{\smalllispx2372,77780 -\def\Esmalllisp{\Esmalllisp2382,78134 -\obeyspaces \obeylines \ninett \indexfonts \rawbackslashfonts2395,78490 -\def\next##1{\next2396,78547 -\def\display{\display2400,78627 -\def\Edisplay{\Edisplay2409,78946 -\def\next##1{\next2421,79257 -\def\format{\format2425,79360 -\def\Eformat{\Eformat2433,79656 -\def\next##1{\next2436,79745 -\def\flushleft{\flushleft2440,79797 -\def\Eflushleft{\Eflushleft2450,80168 -\def\next##1{\next2453,80261 -\def\flushright{\flushright2455,80283 -\def\Eflushright{\Eflushright2465,80655 -\def\next##1{\next2469,80786 -\def\quotation{\quotation2473,80844 -\def\Equotation{\Equotation2479,81036 -\def\setdeffont #1 {\setdeffont2492,81434 -\newskip\defbodyindent \defbodyindent=.4inbodyindent2494,81480 -\newskip\defargsindent \defargsindent=50ptargsindent2495,81523 -\newskip\deftypemargin \deftypemargin=12pttypemargin2496,81566 -\newskip\deflastargmargin \deflastargmargin=18ptlastargmargin2497,81609 -\def\activeparens{\activeparens2502,81807 -\def\opnr{\opnr2528,83019 -\def\lbrb{\lbrb2529,83084 -\def\defname #1#2{\defname2535,83285 -\advance\dimen2 by -\defbodyindentbodyindent2539,83403 -\advance\dimen3 by -\defbodyindentbodyindent2541,83457 -\setbox0=\hbox{\hskip \deflastargmargin{lastargmargin2543,83511 -\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuationsargsindent2545,83653 -\parshape 2 0in \dimen0 \defargsindent \dimen1 %argsindent2546,83728 -\rlap{\rightline{{\rm #2}\hskip \deftypemargin}typemargin2553,84097 -\advance\leftskip by -\defbodyindentbodyindent2556,84231 -\exdentamount=\defbodyindentbodyindent2557,84268 -\def\defparsebody #1#2#3{\defparsebody2567,84627 -\def#1{2571,84811 -\def#2{2572,84847 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2574,84919 -\exdentamount=\defbodyindentbodyindent2575,84993 -\def\defmethparsebody #1#2#3#4 {\defmethparsebody2580,85097 -\def#1{2584,85258 -\def#2##1 {2585,85294 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2587,85377 -\exdentamount=\defbodyindentbodyindent2588,85451 -\def\defopparsebody #1#2#3#4#5 {\defopparsebody2591,85536 -\def#1{2595,85697 -\def#2##1 ##2 {2596,85733 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2599,85833 -\exdentamount=\defbodyindentbodyindent2600,85907 -\def\defvarparsebody #1#2#3{\defvarparsebody2607,86178 -\def#1{2611,86365 -\def#2{2612,86401 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2614,86460 -\exdentamount=\defbodyindentbodyindent2615,86534 -\def\defvrparsebody #1#2#3#4 {\defvrparsebody2620,86625 -\def#1{2624,86784 -\def#2##1 {2625,86820 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2627,86890 -\exdentamount=\defbodyindentbodyindent2628,86964 -\def\defopvarparsebody #1#2#3#4#5 {\defopvarparsebody2631,87036 -\def#1{2635,87200 -\def#2##1 ##2 {2636,87236 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2639,87323 -\exdentamount=\defbodyindentbodyindent2640,87397 -\def\defunargs #1{\defunargs2663,88157 -\def\deftypefunargs #1{\deftypefunargs2675,88539 -\def\deffn{\deffn2689,88921 -\def\deffnheader #1#2#3{\deffnheader2691,88978 -\begingroup\defname {name2692,89026 -\def\defun{\defun2698,89171 -\def\defunheader #1#2{\defunheader2700,89224 -\begingroup\defname {name2701,89299 -\defunargs {unargs2702,89335 -\def\deftypefun{\deftypefun2708,89483 -\def\deftypefunheader #1#2{\deftypefunheader2711,89605 -\def\deftypefunheaderx #1#2 #3\relax{\deftypefunheaderx2713,89714 -\begingroup\defname {name2715,89806 -\deftypefunargs {typefunargs2716,89852 -\def\deftypefn{\deftypefn2722,90023 -\def\deftypefnheader #1#2#3{\deftypefnheader2725,90172 -\def\deftypefnheaderx #1#2#3 #4\relax{\deftypefnheaderx2727,90308 -\begingroup\defname {name2729,90401 -\deftypefunargs {typefunargs2730,90441 -\def\defmac{\defmac2736,90562 -\def\defmacheader #1#2{\defmacheader2738,90619 -\begingroup\defname {name2739,90695 -\defunargs {unargs2740,90728 -\def\defspec{\defspec2746,90852 -\def\defspecheader #1#2{\defspecheader2748,90913 -\begingroup\defname {name2749,90990 -\defunargs {unargs2750,91030 -\def\deffnx #1 {\deffnx2757,91225 -\def\defunx #1 {\defunx2758,91282 -\def\defmacx #1 {\defmacx2759,91339 -\def\defspecx #1 {\defspecx2760,91398 -\def\deftypefnx #1 {\deftypefnx2761,91459 -\def\deftypeunx #1 {\deftypeunx2762,91524 -\def\defop #1 {\defop2768,91670 -\defopparsebody\Edefop\defopx\defopheader\defoptype}opparsebody\Edefop\defopx\defopheader\defoptype2769,91705 -\def\defopheader #1#2#3{\defopheader2771,91759 -\begingroup\defname {name2773,91848 -\defunargs {unargs2774,91894 -\def\defmethod{\defmethod2779,91955 -\def\defmethodheader #1#2#3{\defmethodheader2781,92028 -\begingroup\defname {name2783,92116 -\defunargs {unargs2784,92156 -\def\defcv #1 {\defcv2789,92230 -\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}opvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype2790,92265 -\def\defcvarheader #1#2#3{\defcvarheader2792,92324 -\begingroup\defname {name2794,92410 -\defvarargs {varargs2795,92456 -\def\defivar{\defivar2800,92529 -\def\defivarheader #1#2#3{\defivarheader2802,92592 -\begingroup\defname {name2804,92678 -\defvarargs {varargs2805,92729 -\def\defopx #1 {\defopx2811,92878 -\def\defmethodx #1 {\defmethodx2812,92935 -\def\defcvx #1 {\defcvx2813,93000 -\def\defivarx #1 {\defivarx2814,93057 -\def\defvarargs #1{\defvarargs2821,93328 -\def\defvr{\defvr2827,93472 -\def\defvrheader #1#2#3{\defvrheader2829,93527 -\begingroup\defname {name2830,93575 -\def\defvar{\defvar2834,93660 -\def\defvarheader #1#2{\defvarheader2836,93720 -\begingroup\defname {name2837,93791 -\defvarargs {varargs2838,93827 -\def\defopt{\defopt2843,93893 -\def\defoptheader #1#2{\defoptheader2845,93953 -\begingroup\defname {name2846,94024 -\defvarargs {varargs2847,94063 -\def\deftypevar{\deftypevar2852,94120 -\def\deftypevarheader #1#2{\deftypevarheader2855,94236 -\begingroup\defname {name2857,94319 -\def\deftypevr{\deftypevr2864,94493 -\def\deftypevrheader #1#2#3{\deftypevrheader2866,94564 -\begingroup\defname {name2867,94616 -\def\defvrx #1 {\defvrx2875,94853 -\def\defvarx #1 {\defvarx2876,94910 -\def\defoptx #1 {\defoptx2877,94969 -\def\deftypevarx #1 {\deftypevarx2878,95028 -\def\deftypevrx #1 {\deftypevrx2879,95095 -\def\deftpargs #1{\deftpargs2884,95244 -\def\deftp{\deftp2888,95324 -\def\deftpheader #1#2#3{\deftpheader2890,95379 -\begingroup\defname {name2891,95427 -\def\deftpx #1 {\deftpx2896,95586 -\def\setref#1{\setref2907,95907 -\def\unnumbsetref#1{\unnumbsetref2912,96021 -\def\appendixsetref#1{\appendixsetref2917,96128 -\def\pxref#1{\pxref2928,96539 -\def\xref#1{\xref2929,96575 -\def\ref#1{\ref2930,96610 -\def\xrefX[#1,#2,#3,#4,#5,#6]{\xrefX[2931,96640 -\def\printedmanual{\printedmanual2932,96683 -\def\printednodename{\printednodename2933,96721 -\def\printednodename{\printednodename2938,96846 -section ``\printednodename'' in \cite{\printedmanual}\printedmanual2953,97479 -\refx{x2956,97557 -\def\dosetq #1#2{\dosetq2964,97777 -\def\internalsetq #1#2{\internalsetq2972,98035 -\def\Ypagenumber{\Ypagenumber2976,98136 -\def\Ytitle{\Ytitle2978,98162 -\def\Ynothing{\Ynothing2980,98189 -\def\Ysectionnumberandtype{\Ysectionnumberandtype2982,98206 -\def\Yappendixletterandtype{\Yappendixletterandtype2991,98522 -\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{no2992,98552 -\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %no.\the\secno2993,98607 -Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %no.\the\secno.\the\subsecno2995,98711 -Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %no.\the\secno.\the\subsecno.\the\subsubsecno2997,98782 - \def\linenumber{\linenumber3008,99121 -\def\refx#1#2{\refx3014,99305 -\def\xrdef #1#2{\xrdef3036,99931 -\def\readauxfile{\readauxfile3039,100016 -\def\supereject{\supereject3109,101797 -\footstrut\parindent=\defaultparindent\hang\textindent{aultparindent\hang\textindent3130,102482 -\def\openindices{\openindices3138,102668 -\newdimen\defaultparindent \defaultparindent = 15ptaultparindent3150,102893 -\parindent = \defaultparindentaultparindent3151,102945 -\def\smallbook{\smallbook3174,103669 -\global\def\Esmallexample{\Esmallexample3191,104096 -\def\afourpaper{\afourpaper3195,104187 -\def\finalout{\finalout3223,104995 -\def\normaldoublequote{\normaldoublequote3234,105256 -\def\normaltilde{\normaltilde3235,105282 -\def\normalcaret{\normalcaret3236,105302 -\def\normalunderscore{\normalunderscore3237,105322 -\def\normalverticalbar{\normalverticalbar3238,105347 -\def\normalless{\normalless3239,105373 -\def\normalgreater{\normalgreater3240,105392 -\def\normalplus{\normalplus3241,105414 -\def\ifusingtt#1#2{\ifusingtt3252,105906 -\def\activedoublequote{\activedoublequote3260,106234 -\def~{~3263,106320 -\def^{^3266,106381 -\def_{_3269,106420 -\def\_{\_3271,106494 -\def\lvvmode{\lvvmode3278,106831 -\def|{|3281,106881 -\def<{<3284,106944 -\def>{>3287,107001 -\def+{+3289,107039 -\def\turnoffactive{\turnoffactive3295,107200 -\global\def={=3306,107486 -\def\normalbackslash{\normalbackslash3320,107868 +tex-src/texinfo.tex,30627 +\def\texinfoversion{\texinfoversion26,1027 +\def\tie{\tie49,1518 +\def\gloggingall{\gloggingall72,2268 +\def\loggingall{\loggingall73,2337 +\def\onepageout#1{\onepageout99,3274 +\def\croppageout#1{\croppageout115,4024 +\def\cropmarks{\cropmarks142,5084 +\def\pagebody#1{\pagebody144,5131 +\def\ewtop{\ewtop157,5586 +\def\nstop{\nstop158,5650 +\def\ewbot{\ewbot160,5733 +\def\nsbot{\nsbot161,5797 +\def\parsearg #1{\parsearg170,6096 +\def\parseargx{\parseargx172,6174 +\def\parseargline{\parseargline182,6414 +\def\flushcr{\flushcr186,6535 +\newif\ifENV \ENVfalse \def\inENV{\inENV190,6734 +\def\ENVcheck{\ENVcheck191,6798 +\outer\def\begin{\begin198,7045 +\def\beginxxx #1{\beginxxx200,7083 +\def\end{\end208,7338 +\def\endxxx #1{\endxxx210,7366 +\def\errorE#1{\errorE216,7555 +\def\singlespace{\singlespace222,7749 +\def\@{\@232,7972 +\def\`{\`236,8072 +\def\'{\'237,8084 +\def\mylbrace {\mylbrace241,8132 +\def\myrbrace {\myrbrace242,8165 +\def\:{\:247,8279 +\def\*{\*250,8333 +\def\.{\.253,8409 +\def\w#1{\w258,8640 +\def\group{\group268,9123 + \def\Egroup{\Egroup273,9287 +\def\need{\need289,9729 +\def\needx#1{\needx300,10006 +\def\dots{\dots339,11392 +\def\page{\page343,11456 +\def\exdent{\exdent353,11783 +\def\exdentyyy #1{\exdentyyy354,11816 +\def\nofillexdent{\nofillexdent357,11960 +\def\nofillexdentyyy #1{\nofillexdentyyy358,12005 +\def\include{\include365,12189 +\def\includezzz #1{\includezzz366,12224 +\def\thisfile{\thisfile369,12275 +\def\center{\center373,12338 +\def\centerzzz #1{\centerzzz374,12371 +\def\sp{\sp380,12513 +\def\spxxx #1{\spxxx381,12538 +\def\comment{\comment387,12712 +\def\commentxxx #1{\commentxxx390,12809 +\def\ignoresections{\ignoresections396,12978 +\let\chapter=\relax=\relax397,13000 +\let\section=\relax=\relax406,13245 +\let\subsection=\relax=\relax409,13306 +\let\subsubsection=\relax=\relax410,13329 +\let\appendix=\relax=\relax411,13355 +\let\appendixsec=\relaxsec=\relax412,13376 +\let\appendixsection=\relaxsection=\relax413,13400 +\let\appendixsubsec=\relaxsubsec=\relax414,13428 +\let\appendixsubsection=\relaxsubsection=\relax415,13455 +\let\appendixsubsubsec=\relaxsubsubsec=\relax416,13486 +\let\appendixsubsubsection=\relaxsubsubsection=\relax417,13516 +\def\ignore{\ignore423,13618 +\long\def\ignorexxx #1\end ignore{\ignorexxx427,13758 +\def\direntry{\direntry429,13817 +\long\def\direntryxxx #1\end direntry{\direntryxxx430,13856 +\def\ifset{\ifset434,13966 +\def\ifsetxxx #1{\ifsetxxx436,14024 +\def\Eifset{\Eifset440,14151 +\def\ifsetfail{\ifsetfail441,14165 +\long\def\ifsetfailxxx #1\end ifset{\ifsetfailxxx442,14221 +\def\ifclear{\ifclear444,14282 +\def\ifclearxxx #1{\ifclearxxx446,14344 +\def\Eifclear{\Eifclear450,14475 +\def\ifclearfail{\ifclearfail451,14491 +\long\def\ifclearfailxxx #1\end ifclear{\ifclearfailxxx452,14551 +\def\set{\set456,14702 +\def\setxxx #1{\setxxx457,14729 +\def\clear{\clear460,14791 +\def\clearxxx #1{\clearxxx461,14822 +\def\iftex{\iftex466,14939 +\def\Eiftex{\Eiftex467,14952 +\def\ifinfo{\ifinfo468,14966 +\long\def\ifinfoxxx #1\end ifinfo{\ifinfoxxx469,15016 +\long\def\menu #1\end menu{\menu471,15075 +\def\asis#1{\asis472,15104 +\def\math#1{\math485,15647 +\def\node{\node487,15691 +\def\nodezzz#1{\nodezzz488,15729 +\def\nodexxx[#1,#2]{\nodexxx[489,15760 +\def\donoderef{\donoderef492,15822 +\def\unnumbnoderef{\unnumbnoderef496,15943 +\def\appendixnoderef{\appendixnoderef500,16074 +\expandafter\expandafter\expandafter\appendixsetref{setref501,16120 +\let\refill=\relaxill=\relax504,16209 +\def\setfilename{\setfilename509,16423 +\outer\def\bye{\bye518,16669 +\def\inforef #1{\inforef520,16725 +\def\inforefzzz #1,#2,#3,#4**{\inforefzzz521,16763 +\def\losespace #1{\losespace523,16860 +\def\sf{\sf532,17064 +\font\defbf=cmbx10 scaled \magstep1 %was 1314bf=cmbx10558,17859 +\font\deftt=cmtt10 scaled \magstep1tt=cmtt10559,17905 +\def\df{\df560,17941 +\def\resetmathfonts{\resetmathfonts635,20535 +\def\textfonts{\textfonts648,21124 +\def\chapfonts{\chapfonts653,21339 +\def\secfonts{\secfonts658,21555 +\def\subsecfonts{\subsecfonts663,21760 +\def\indexfonts{\indexfonts668,21977 +\def\smartitalicx{\smartitalicx691,22709 +\def\smartitalic#1{\smartitalic692,22785 +\let\cite=\smartitalic=\smartitalic698,22930 +\def\b#1{\b700,22954 +\def\t#1{\t703,22989 +\def\samp #1{\samp706,23141 +\def\key #1{\key707,23174 +\def\ctrl #1{\ctrl708,23235 +\def\tclose#1{\tclose716,23437 +\def\ {\720,23603 +\def\xkey{\xkey728,23872 +\def\kbdfoo#1#2#3\par{\kbdfoo729,23888 +\def\dmn#1{\dmn738,24189 +\def\kbd#1{\kbd740,24216 +\def\l#1{\l742,24273 +\def\r#1{\r744,24302 +\def\sc#1{\sc746,24370 +\def\ii#1{\ii747,24413 +\def\titlefont#1{\titlefont755,24646 +\def\titlepage{\titlepage761,24749 + \def\subtitlefont{\subtitlefont766,24976 + \def\authorfont{\authorfont768,25060 + \def\title{\title774,25270 + \def\titlezzz##1{\titlezzz775,25305 + \def\subtitle{\subtitle783,25620 + \def\subtitlezzz##1{\subtitlezzz784,25661 + \def\author{\author787,25779 + \def\authorzzz##1{\authorzzz788,25816 + \def\page{\page794,26107 +\def\Etitlepage{\Etitlepage804,26276 +\def\finishtitlepage{\finishtitlepage817,26664 +\def\evenheading{\evenheading846,27672 +\def\oddheading{\oddheading847,27715 +\def\everyheading{\everyheading848,27756 +\def\evenfooting{\evenfooting850,27802 +\def\oddfooting{\oddfooting851,27845 +\def\everyfooting{\everyfooting852,27886 +\def\headings #1 {\headings893,29578 +\def\HEADINGSoff{\HEADINGSoff895,29627 +\def\HEADINGSdouble{\HEADINGSdouble904,30054 +\def\HEADINGSsingle{\HEADINGSsingle914,30374 +\def\HEADINGSon{\HEADINGSon922,30595 +\def\HEADINGSafter{\HEADINGSafter924,30629 +\def\HEADINGSdoublex{\HEADINGSdoublex926,30724 +\def\HEADINGSsingleafter{\HEADINGSsingleafter933,30912 +\def\HEADINGSsinglex{\HEADINGSsinglex934,30973 +\def\today{\today943,31248 +\def\thistitle{\thistitle958,31793 +\def\settitle{\settitle959,31818 +\def\settitlezzz #1{\settitlezzz960,31855 +\def\internalBitem{\internalBitem992,32785 +\def\internalBitemx{\internalBitemx993,32835 +\def\internalBxitem "#1"{\internalBxitem995,32880 +\def\internalBxitemx "#1"{\internalBxitemx996,32960 +\def\internalBkitem{\internalBkitem998,33035 +\def\internalBkitemx{\internalBkitemx999,33087 +\def\kitemzzz #1{\kitemzzz1001,33134 +\def\xitemzzz #1{\xitemzzz1004,33236 +\def\itemzzz #1{\itemzzz1007,33339 +\def\item{\item1037,34410 +\def\itemx{\itemx1038,34461 +\def\kitem{\kitem1039,34514 +\def\kitemx{\kitemx1040,34567 +\def\xitem{\xitem1041,34622 +\def\xitemx{\xitemx1042,34675 +\def\description{\description1045,34785 +\def\table{\table1047,34835 +\def\ftable{\ftable1052,34979 +\def\Eftable{\Eftable1056,35125 +\def\vtable{\vtable1059,35194 +\def\Evtable{\Evtable1063,35340 +\def\dontindex #1{\dontindex1066,35409 +\def\fnitemindex #1{\fnitemindex1067,35429 +\def\vritemindex #1{\vritemindex1068,35474 +\def\tablez #1#2#3#4#5#6{\tablez1074,35623 +\def\Edescription{\Edescription1077,35681 +\def\itemfont{\itemfont1082,35883 +\def\Etable{\Etable1090,36109 +\def\itemize{\itemize1103,36433 +\def\itemizezzz #1{\itemizezzz1105,36469 +\def\itemizey #1#2{\itemizey1110,36564 +\def#2{1119,36810 +\def\itemcontents{\itemcontents1120,36851 +\def\bullet{\bullet1123,36899 +\def\minus{\minus1124,36926 +\def\frenchspacing{\frenchspacing1128,37034 +\def\splitoff#1#2\endmark{\splitoff1134,37259 +\def\enumerate{\enumerate1140,37489 +\def\enumeratezzz #1{\enumeratezzz1141,37528 +\def\enumeratey #1 #2\endenumeratey{\enumeratey1142,37581 + \def\thearg{\thearg1146,37728 + \ifx\thearg\empty \def\thearg{\thearg1147,37747 +\def\numericenumerate{\numericenumerate1184,39081 +\def\lowercaseenumerate{\lowercaseenumerate1190,39211 +\def\uppercaseenumerate{\uppercaseenumerate1203,39558 +\def\startenumeration#1{\startenumeration1219,40048 +\def\alphaenumerate{\alphaenumerate1227,40230 +\def\capsenumerate{\capsenumerate1228,40265 +\def\Ealphaenumerate{\Ealphaenumerate1229,40299 +\def\Ecapsenumerate{\Ecapsenumerate1230,40333 +\def\itemizeitem{\itemizeitem1234,40413 +\def\newindex #1{\newindex1259,41270 +\def\defindex{\defindex1268,41559 +\def\newcodeindex #1{\newcodeindex1272,41667 +\def\defcodeindex{\defcodeindex1279,41927 +\def\synindex #1 #2 {\synindex1283,42107 +\def\syncodeindex #1 #2 {\syncodeindex1292,42447 +\def\doindex#1{\doindex1309,43126 +\def\singleindexer #1{\singleindexer1310,43185 +\def\docodeindex#1{\docodeindex1313,43297 +\def\singlecodeindexer #1{\singlecodeindexer1314,43364 +\def\indexdummies{\indexdummies1316,43422 +\def\_{\_1317,43442 +\def\w{\w1318,43470 +\def\bf{\bf1319,43497 +\def\rm{\rm1320,43526 +\def\sl{\sl1321,43555 +\def\sf{\sf1322,43584 +\def\tt{\tt1323,43612 +\def\gtr{\gtr1324,43640 +\def\less{\less1325,43670 +\def\hat{\hat1326,43702 +\def\char{\char1327,43732 +\def\TeX{\TeX1328,43764 +\def\dots{\dots1329,43794 +\def\copyright{\copyright1330,43827 +\def\tclose##1{\tclose1331,43870 +\def\code##1{\code1332,43915 +\def\samp##1{\samp1333,43956 +\def\t##1{\t1334,43997 +\def\r##1{\r1335,44032 +\def\i##1{\i1336,44067 +\def\b##1{\b1337,44102 +\def\cite##1{\cite1338,44137 +\def\key##1{\key1339,44178 +\def\file##1{\file1340,44217 +\def\var##1{\var1341,44258 +\def\kbd##1{\kbd1342,44297 +\def\indexdummyfont#1{\indexdummyfont1347,44453 +\def\indexdummytex{\indexdummytex1348,44479 +\def\indexdummydots{\indexdummydots1349,44503 +\def\indexnofonts{\indexnofonts1351,44529 +\let\w=\indexdummyfontdummyfont1352,44549 +\let\t=\indexdummyfontdummyfont1353,44572 +\let\r=\indexdummyfontdummyfont1354,44595 +\let\i=\indexdummyfontdummyfont1355,44618 +\let\b=\indexdummyfontdummyfont1356,44641 +\let\emph=\indexdummyfontdummyfont1357,44664 +\let\strong=\indexdummyfontdummyfont1358,44690 +\let\cite=\indexdummyfont=\indexdummyfont1359,44718 +\let\sc=\indexdummyfontdummyfont1360,44744 +\let\tclose=\indexdummyfontdummyfont1364,44916 +\let\code=\indexdummyfontdummyfont1365,44944 +\let\file=\indexdummyfontdummyfont1366,44970 +\let\samp=\indexdummyfontdummyfont1367,44996 +\let\kbd=\indexdummyfontdummyfont1368,45022 +\let\key=\indexdummyfontdummyfont1369,45047 +\let\var=\indexdummyfontdummyfont1370,45072 +\let\TeX=\indexdummytexdummytex1371,45097 +\let\dots=\indexdummydotsdummydots1372,45121 +\let\indexbackslash=0 %overridden during \printindex.backslash=01382,45373 +\def\doind #1#2{\doind1384,45429 +{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1386,45472 +\def\rawbackslashxx{\rawbackslashxx1389,45612 +{\indexnofontsnofonts1394,45874 +\def\dosubind #1#2#3{\dosubind1405,46185 +{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1407,46233 +\def\rawbackslashxx{\rawbackslashxx1410,46337 +{\indexnofontsnofonts1414,46491 +\def\findex {\findex1443,47422 +\def\kindex {\kindex1444,47445 +\def\cindex {\cindex1445,47468 +\def\vindex {\vindex1446,47491 +\def\tindex {\tindex1447,47514 +\def\pindex {\pindex1448,47537 +\def\cindexsub {\cindexsub1450,47561 +\def\printindex{\printindex1462,47888 +\def\doprintindex#1{\doprintindex1464,47929 + \def\indexbackslash{\indexbackslash1481,48414 + \indexfonts\rm \tolerance=9500 \advance\baselineskip -1ptfonts\rm1482,48453 +\def\initial #1{\initial1517,49525 +\def\entry #1#2{\entry1523,49732 + \null\nobreak\indexdotfill % Have leaders before the page number.dotfill1540,50379 +\def\indexdotfill{\indexdotfill1549,50707 +\def\primary #1{\primary1552,50813 +\def\secondary #1#2{\secondary1556,50895 +\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\pardotfill1559,50977 +\newbox\partialpageialpage1566,51150 +\def\begindoublecolumns{\begindoublecolumns1572,51308 + \output={\global\setbox\partialpage=ialpage=1573,51344 +\def\enddoublecolumns{\enddoublecolumns1577,51532 +\def\doublecolumnout{\doublecolumnout1580,51617 + \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1581,51686 +\def\pagesofar{\pagesofar1584,51864 +\def\balancecolumns{\balancecolumns1588,52101 + \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpageialpage1594,52272 + \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1600,52533 +\newcount \appendixno \appendixno = `\@no1627,53438 +\def\appendixletter{\appendixletter1628,53479 +\def\opencontents{\opencontents1632,53582 +\def\thischapter{\thischapter1637,53763 +\def\seccheck#1{\seccheck1638,53801 +\def\chapternofonts{\chapternofonts1643,53905 +\def\result{\result1646,53980 +\def\equiv{\equiv1647,54015 +\def\expansion{\expansion1648,54048 +\def\print{\print1649,54089 +\def\TeX{\TeX1650,54122 +\def\dots{\dots1651,54151 +\def\copyright{\copyright1652,54182 +\def\tt{\tt1653,54223 +\def\bf{\bf1654,54250 +\def\w{\w1655,54278 +\def\less{\less1656,54303 +\def\gtr{\gtr1657,54334 +\def\hat{\hat1658,54363 +\def\char{\char1659,54392 +\def\tclose##1{\tclose1660,54423 +\def\code##1{\code1661,54467 +\def\samp##1{\samp1662,54507 +\def\r##1{\r1663,54547 +\def\b##1{\b1664,54581 +\def\key##1{\key1665,54615 +\def\file##1{\file1666,54653 +\def\kbd##1{\kbd1667,54693 +\def\i##1{\i1669,54801 +\def\cite##1{\cite1670,54835 +\def\var##1{\var1671,54875 +\def\emph##1{\emph1672,54913 +\def\dfn##1{\dfn1673,54953 +\def\thischaptername{\thischaptername1676,54994 +\outer\def\chapter{\chapter1677,55033 +\def\chapterzzz #1{\chapterzzz1678,55074 +{\chapternofonts%nofonts%1687,55470 +\global\let\section = \numberedsec=1692,55623 +\global\let\subsection = \numberedsubsec=1693,55658 +\global\let\subsubsection = \numberedsubsubsec=1694,55699 +\outer\def\appendix{\appendix1697,55750 +\def\appendixzzz #1{\appendixzzz1698,55793 +\global\advance \appendixno by 1 \message{no1700,55870 +\chapmacro {#1}{Appendix \appendixletter}letter1701,55939 +\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}letter:1704,56032 +{\chapternofonts%nofonts%1705,56104 + {#1}{Appendix \appendixletter}letter1707,56160 +\appendixnoderef %noderef1710,56260 +\global\let\section = \appendixsec=1711,56279 +\global\let\subsection = \appendixsubsec=1712,56314 +\global\let\subsubsection = \appendixsubsubsec=1713,56355 +\outer\def\top{\top1716,56406 +\outer\def\unnumbered{\unnumbered1717,56446 +\def\unnumberedzzz #1{\unnumberedzzz1718,56493 +{\chapternofonts%nofonts%1722,56656 +\global\let\section = \unnumberedsec=1727,56806 +\global\let\subsection = \unnumberedsubsec=1728,56843 +\global\let\subsubsection = \unnumberedsubsubsec=1729,56886 +\outer\def\numberedsec{\numberedsec1732,56939 +\def\seczzz #1{\seczzz1733,56980 +{\chapternofonts%nofonts%1736,57136 +\outer\def\appendixsection{\appendixsection1745,57322 +\outer\def\appendixsec{\appendixsec1746,57379 +\def\appendixsectionzzz #1{\appendixsectionzzz1747,57432 +\gdef\thissection{#1}\secheading {#1}{\appendixletter}letter1749,57544 +{\chapternofonts%nofonts%1750,57612 +{#1}{\appendixletter}letter1752,57668 +\appendixnoderef %noderef1755,57768 +\outer\def\unnumberedsec{\unnumberedsec1759,57808 +\def\unnumberedseczzz #1{\unnumberedseczzz1760,57861 +{\chapternofonts%nofonts%1762,57956 +\outer\def\numberedsubsec{\numberedsubsec1770,58124 +\def\numberedsubseczzz #1{\numberedsubseczzz1771,58179 +{\chapternofonts%nofonts%1774,58358 +\outer\def\appendixsubsec{\appendixsubsec1783,58562 +\def\appendixsubseczzz #1{\appendixsubseczzz1784,58617 +\subsecheading {#1}{\appendixletter}letter1786,58739 +{\chapternofonts%nofonts%1787,58804 +{#1}{\appendixletter}letter1789,58863 +\appendixnoderef %noderef1792,58978 +\outer\def\unnumberedsubsec{\unnumberedsubsec1796,59018 +\def\unnumberedsubseczzz #1{\unnumberedsubseczzz1797,59077 +{\chapternofonts%nofonts%1799,59178 +\outer\def\numberedsubsubsec{\numberedsubsubsec1807,59349 +\def\numberedsubsubseczzz #1{\numberedsubsubseczzz1808,59410 +{\chapternofonts%nofonts%1812,59607 +\outer\def\appendixsubsubsec{\appendixsubsubsec1823,59840 +\def\appendixsubsubseczzz #1{\appendixsubsubseczzz1824,59901 + {\appendixletter}letter1827,60040 +{\chapternofonts%nofonts%1828,60106 + {\appendixletter}letter1830,60171 +\appendixnoderef %noderef1834,60305 +\outer\def\unnumberedsubsubsec{\unnumberedsubsubsec1838,60345 +\def\unnumberedsubsubseczzz #1{\unnumberedsubsubseczzz1839,60410 +{\chapternofonts%nofonts%1841,60517 +\def\infotop{\infotop1851,60846 +\def\infounnumbered{\infounnumbered1852,60884 +\def\infounnumberedsec{\infounnumberedsec1853,60929 +\def\infounnumberedsubsec{\infounnumberedsubsec1854,60980 +\def\infounnumberedsubsubsec{\infounnumberedsubsubsec1855,61037 +\def\infoappendix{\infoappendix1857,61101 +\def\infoappendixsec{\infoappendixsec1858,61142 +\def\infoappendixsubsec{\infoappendixsubsec1859,61189 +\def\infoappendixsubsubsec{\infoappendixsubsubsec1860,61242 +\def\infochapter{\infochapter1862,61302 +\def\infosection{\infosection1863,61341 +\def\infosubsection{\infosubsection1864,61380 +\def\infosubsubsection{\infosubsubsection1865,61425 +\global\let\section = \numberedsec=1870,61662 +\global\let\subsection = \numberedsubsec=1871,61697 +\global\let\subsubsection = \numberedsubsubsec=1872,61738 +\def\majorheading{\majorheading1886,62245 +\def\majorheadingzzz #1{\majorheadingzzz1887,62290 +\def\chapheading{\chapheading1893,62523 +\def\chapheadingzzz #1{\chapheadingzzz1894,62566 +\def\heading{\heading1899,62761 +\def\subheading{\subheading1901,62798 +\def\subsubheading{\subsubheading1903,62841 +\def\dobreak#1#2{\dobreak1910,63118 +\def\setchapterstyle #1 {\setchapterstyle1912,63196 +\def\chapbreak{\chapbreak1919,63451 +\def\chappager{\chappager1920,63501 +\def\chapoddpage{\chapoddpage1921,63539 +\def\setchapternewpage #1 {\setchapternewpage1923,63618 +\def\CHAPPAGoff{\CHAPPAGoff1925,63675 +\def\CHAPPAGon{\CHAPPAGon1929,63769 +\global\def\HEADINGSon{\HEADINGSon1932,63860 +\def\CHAPPAGodd{\CHAPPAGodd1934,63902 +\global\def\HEADINGSon{\HEADINGSon1937,63998 +\def\CHAPFplain{\CHAPFplain1941,64052 +\def\chfplain #1#2{\chfplain1945,64144 +\def\unnchfplain #1{\unnchfplain1956,64367 +\def\unnchfopen #1{\unnchfopen1964,64596 +\def\chfopen #1#2{\chfopen1970,64804 +\def\CHAPFopen{\CHAPFopen1975,64948 +\def\subsecheadingbreak{\subsecheadingbreak1982,65166 +\def\secheadingbreak{\secheadingbreak1985,65295 +\def\secheading #1#2#3{\secheading1993,65577 +\def\plainsecheading #1{\plainsecheading1994,65633 +\def\secheadingi #1{\secheadingi1995,65676 +\def\subsecheading #1#2#3#4{\subsecheading2006,66044 +\def\subsecheadingi #1{\subsecheadingi2007,66111 +\def\subsubsecfonts{\subsubsecfonts2014,66408 +\def\subsubsecheading #1#2#3#4#5{\subsubsecheading2017,66531 +\def\subsubsecheadingi #1{\subsubsecheadingi2018,66609 +\def\startcontents#1{\startcontents2032,67081 + \unnumbchapmacro{#1}\def\thischapter{\thischapter2040,67354 +\outer\def\contents{\contents2049,67713 +\outer\def\summarycontents{\summarycontents2057,67857 + \def\secentry ##1##2##3##4{\secentry2067,68228 + \def\unnumbsecentry ##1##2{\unnumbsecentry2068,68263 + \def\subsecentry ##1##2##3##4##5{\subsecentry2069,68298 + \def\unnumbsubsecentry ##1##2{\unnumbsubsecentry2070,68339 + \def\subsubsecentry ##1##2##3##4##5##6{\subsubsecentry2071,68377 + \def\unnumbsubsubsecentry ##1##2{\unnumbsubsubsecentry2072,68424 +\def\chapentry#1#2#3{\chapentry2085,68858 +\def\shortchapentry#1#2#3{\shortchapentry2088,68975 + {#2\labelspace #1}space2091,69085 +\def\unnumbchapentry#1#2{\unnumbchapentry2094,69139 +\def\shortunnumberedentry#1#2{\shortunnumberedentry2095,69186 +\def\secentry#1#2#3#4{\secentry2102,69350 +\def\unnumbsecentry#1#2{\unnumbsecentry2103,69409 +\def\subsecentry#1#2#3#4#5{\subsecentry2106,69470 +\def\unnumbsubsecentry#1#2{\unnumbsubsecentry2107,69540 +\def\subsubsecentry#1#2#3#4#5#6{\subsubsecentry2110,69614 + \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}space2111,69648 +\def\unnumbsubsubsecentry#1#2{\unnumbsubsubsecentry2112,69699 +\def\dochapentry#1#2{\dochapentry2123,70073 +\def\dosecentry#1#2{\dosecentry2138,70678 +\def\dosubsecentry#1#2{\dosubsecentry2145,70856 +\def\dosubsubsecentry#1#2{\dosubsubsecentry2152,71041 +\def\labelspace{\labelspace2160,71292 +\def\dopageno#1{\dopageno2162,71327 +\def\doshortpageno#1{\doshortpageno2163,71353 +\def\chapentryfonts{\chapentryfonts2165,71385 +\def\secentryfonts{\secentryfonts2166,71420 +\def\point{\point2192,72379 +\def\result{\result2194,72400 +\def\expansion{\expansion2195,72473 +\def\print{\print2196,72544 +\def\equiv{\equiv2198,72611 +\def\error{\error2218,73384 +\def\tex{\tex2224,73613 +\def\@{\@2242,73996 +\gdef\sepspaces{\def {\ }}}\2265,74728 +\def\aboveenvbreak{\aboveenvbreak2268,74810 +\def\afterenvbreak{\afterenvbreak2272,74976 +\def\ctl{\ctl2286,75487 +\def\ctr{\ctr2287,75559 +\def\cbl{\cbl2288,75598 +\def\cbr{\cbr2289,75638 +\def\carttop{\carttop2290,75677 +\def\cartbot{\cartbot2293,75785 +\long\def\cartouche{\cartouche2299,75925 +\def\Ecartouche{\Ecartouche2326,76713 +\def\lisp{\lisp2338,76848 +\def\Elisp{\Elisp2348,77195 +\def\next##1{\next2360,77521 +\def\Eexample{\Eexample2364,77563 +\def\Esmallexample{\Esmallexample2367,77610 +\def\smalllispx{\smalllispx2373,77788 +\def\Esmalllisp{\Esmalllisp2383,78142 +\obeyspaces \obeylines \ninett \indexfonts \rawbackslashfonts2396,78498 +\def\next##1{\next2397,78555 +\def\display{\display2401,78635 +\def\Edisplay{\Edisplay2410,78954 +\def\next##1{\next2422,79265 +\def\format{\format2426,79368 +\def\Eformat{\Eformat2434,79664 +\def\next##1{\next2437,79753 +\def\flushleft{\flushleft2441,79805 +\def\Eflushleft{\Eflushleft2451,80176 +\def\next##1{\next2454,80269 +\def\flushright{\flushright2456,80291 +\def\Eflushright{\Eflushright2466,80663 +\def\next##1{\next2470,80794 +\def\quotation{\quotation2474,80852 +\def\Equotation{\Equotation2480,81044 +\def\setdeffont #1 {\setdeffont2493,81442 +\newskip\defbodyindent \defbodyindent=.4inbodyindent2495,81488 +\newskip\defargsindent \defargsindent=50ptargsindent2496,81531 +\newskip\deftypemargin \deftypemargin=12pttypemargin2497,81574 +\newskip\deflastargmargin \deflastargmargin=18ptlastargmargin2498,81617 +\def\activeparens{\activeparens2503,81815 +\def\opnr{\opnr2529,83027 +\def\lbrb{\lbrb2530,83092 +\def\defname #1#2{\defname2536,83293 +\advance\dimen2 by -\defbodyindentbodyindent2540,83411 +\advance\dimen3 by -\defbodyindentbodyindent2542,83465 +\setbox0=\hbox{\hskip \deflastargmargin{lastargmargin2544,83519 +\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuationsargsindent2546,83661 +\parshape 2 0in \dimen0 \defargsindent \dimen1 %argsindent2547,83736 +\rlap{\rightline{{\rm #2}\hskip \deftypemargin}typemargin2554,84105 +\advance\leftskip by -\defbodyindentbodyindent2557,84239 +\exdentamount=\defbodyindentbodyindent2558,84276 +\def\defparsebody #1#2#3{\defparsebody2568,84635 +\def#1{2572,84819 +\def#2{2573,84855 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2575,84927 +\exdentamount=\defbodyindentbodyindent2576,85001 +\def\defmethparsebody #1#2#3#4 {\defmethparsebody2581,85105 +\def#1{2585,85266 +\def#2##1 {2586,85302 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2588,85385 +\exdentamount=\defbodyindentbodyindent2589,85459 +\def\defopparsebody #1#2#3#4#5 {\defopparsebody2592,85544 +\def#1{2596,85705 +\def#2##1 ##2 {2597,85741 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2600,85841 +\exdentamount=\defbodyindentbodyindent2601,85915 +\def\defvarparsebody #1#2#3{\defvarparsebody2608,86186 +\def#1{2612,86373 +\def#2{2613,86409 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2615,86468 +\exdentamount=\defbodyindentbodyindent2616,86542 +\def\defvrparsebody #1#2#3#4 {\defvrparsebody2621,86633 +\def#1{2625,86792 +\def#2##1 {2626,86828 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2628,86898 +\exdentamount=\defbodyindentbodyindent2629,86972 +\def\defopvarparsebody #1#2#3#4#5 {\defopvarparsebody2632,87044 +\def#1{2636,87208 +\def#2##1 ##2 {2637,87244 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2640,87331 +\exdentamount=\defbodyindentbodyindent2641,87405 +\def\defunargs #1{\defunargs2664,88165 +\def\deftypefunargs #1{\deftypefunargs2676,88547 +\def\deffn{\deffn2690,88929 +\def\deffnheader #1#2#3{\deffnheader2692,88986 +\begingroup\defname {name2693,89034 +\def\defun{\defun2699,89179 +\def\defunheader #1#2{\defunheader2701,89232 +\begingroup\defname {name2702,89307 +\defunargs {unargs2703,89343 +\def\deftypefun{\deftypefun2709,89491 +\def\deftypefunheader #1#2{\deftypefunheader2712,89613 +\def\deftypefunheaderx #1#2 #3\relax{\deftypefunheaderx2714,89722 +\begingroup\defname {name2716,89814 +\deftypefunargs {typefunargs2717,89860 +\def\deftypefn{\deftypefn2723,90031 +\def\deftypefnheader #1#2#3{\deftypefnheader2726,90180 +\def\deftypefnheaderx #1#2#3 #4\relax{\deftypefnheaderx2728,90316 +\begingroup\defname {name2730,90409 +\deftypefunargs {typefunargs2731,90449 +\def\defmac{\defmac2737,90570 +\def\defmacheader #1#2{\defmacheader2739,90627 +\begingroup\defname {name2740,90703 +\defunargs {unargs2741,90736 +\def\defspec{\defspec2747,90860 +\def\defspecheader #1#2{\defspecheader2749,90921 +\begingroup\defname {name2750,90998 +\defunargs {unargs2751,91038 +\def\deffnx #1 {\deffnx2758,91233 +\def\defunx #1 {\defunx2759,91290 +\def\defmacx #1 {\defmacx2760,91347 +\def\defspecx #1 {\defspecx2761,91406 +\def\deftypefnx #1 {\deftypefnx2762,91467 +\def\deftypeunx #1 {\deftypeunx2763,91532 +\def\defop #1 {\defop2769,91678 +\defopparsebody\Edefop\defopx\defopheader\defoptype}opparsebody\Edefop\defopx\defopheader\defoptype2770,91713 +\def\defopheader #1#2#3{\defopheader2772,91767 +\begingroup\defname {name2774,91856 +\defunargs {unargs2775,91902 +\def\defmethod{\defmethod2780,91963 +\def\defmethodheader #1#2#3{\defmethodheader2782,92036 +\begingroup\defname {name2784,92124 +\defunargs {unargs2785,92164 +\def\defcv #1 {\defcv2790,92238 +\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}opvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype2791,92273 +\def\defcvarheader #1#2#3{\defcvarheader2793,92332 +\begingroup\defname {name2795,92418 +\defvarargs {varargs2796,92464 +\def\defivar{\defivar2801,92537 +\def\defivarheader #1#2#3{\defivarheader2803,92600 +\begingroup\defname {name2805,92686 +\defvarargs {varargs2806,92737 +\def\defopx #1 {\defopx2812,92886 +\def\defmethodx #1 {\defmethodx2813,92943 +\def\defcvx #1 {\defcvx2814,93008 +\def\defivarx #1 {\defivarx2815,93065 +\def\defvarargs #1{\defvarargs2822,93336 +\def\defvr{\defvr2828,93480 +\def\defvrheader #1#2#3{\defvrheader2830,93535 +\begingroup\defname {name2831,93583 +\def\defvar{\defvar2835,93668 +\def\defvarheader #1#2{\defvarheader2837,93728 +\begingroup\defname {name2838,93799 +\defvarargs {varargs2839,93835 +\def\defopt{\defopt2844,93901 +\def\defoptheader #1#2{\defoptheader2846,93961 +\begingroup\defname {name2847,94032 +\defvarargs {varargs2848,94071 +\def\deftypevar{\deftypevar2853,94128 +\def\deftypevarheader #1#2{\deftypevarheader2856,94244 +\begingroup\defname {name2858,94327 +\def\deftypevr{\deftypevr2865,94501 +\def\deftypevrheader #1#2#3{\deftypevrheader2867,94572 +\begingroup\defname {name2868,94624 +\def\defvrx #1 {\defvrx2876,94861 +\def\defvarx #1 {\defvarx2877,94918 +\def\defoptx #1 {\defoptx2878,94977 +\def\deftypevarx #1 {\deftypevarx2879,95036 +\def\deftypevrx #1 {\deftypevrx2880,95103 +\def\deftpargs #1{\deftpargs2885,95252 +\def\deftp{\deftp2889,95332 +\def\deftpheader #1#2#3{\deftpheader2891,95387 +\begingroup\defname {name2892,95435 +\def\deftpx #1 {\deftpx2897,95594 +\def\setref#1{\setref2908,95915 +\def\unnumbsetref#1{\unnumbsetref2913,96029 +\def\appendixsetref#1{\appendixsetref2918,96136 +\def\pxref#1{\pxref2929,96547 +\def\xref#1{\xref2930,96583 +\def\ref#1{\ref2931,96618 +\def\xrefX[#1,#2,#3,#4,#5,#6]{\xrefX[2932,96648 +\def\printedmanual{\printedmanual2933,96691 +\def\printednodename{\printednodename2934,96729 +\def\printednodename{\printednodename2939,96854 +section ``\printednodename'' in \cite{\printedmanual}\printedmanual2954,97487 +\refx{x2957,97565 +\def\dosetq #1#2{\dosetq2965,97785 +\def\internalsetq #1#2{\internalsetq2973,98043 +\def\Ypagenumber{\Ypagenumber2977,98144 +\def\Ytitle{\Ytitle2979,98170 +\def\Ynothing{\Ynothing2981,98197 +\def\Ysectionnumberandtype{\Ysectionnumberandtype2983,98214 +\def\Yappendixletterandtype{\Yappendixletterandtype2992,98530 +\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{no2993,98560 +\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %no.\the\secno2994,98615 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %no.\the\secno.\the\subsecno2996,98719 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %no.\the\secno.\the\subsecno.\the\subsubsecno2998,98790 + \def\linenumber{\linenumber3009,99129 +\def\refx#1#2{\refx3015,99313 +\def\xrdef #1#2{\xrdef3037,99939 +\def\readauxfile{\readauxfile3040,100024 +\def\supereject{\supereject3110,101805 +\footstrut\parindent=\defaultparindent\hang\textindent{aultparindent\hang\textindent3131,102490 +\def\openindices{\openindices3139,102676 +\newdimen\defaultparindent \defaultparindent = 15ptaultparindent3151,102901 +\parindent = \defaultparindentaultparindent3152,102953 +\def\smallbook{\smallbook3175,103677 +\global\def\Esmallexample{\Esmallexample3192,104104 +\def\afourpaper{\afourpaper3196,104195 +\def\finalout{\finalout3224,105003 +\def\normaldoublequote{\normaldoublequote3235,105264 +\def\normaltilde{\normaltilde3236,105290 +\def\normalcaret{\normalcaret3237,105310 +\def\normalunderscore{\normalunderscore3238,105330 +\def\normalverticalbar{\normalverticalbar3239,105355 +\def\normalless{\normalless3240,105381 +\def\normalgreater{\normalgreater3241,105400 +\def\normalplus{\normalplus3242,105422 +\def\ifusingtt#1#2{\ifusingtt3253,105914 +\def\activedoublequote{\activedoublequote3261,106242 +\def~{~3264,106328 +\def^{^3267,106389 +\def_{_3270,106428 +\def\_{\_3272,106502 +\def\lvvmode{\lvvmode3279,106839 +\def|{|3282,106889 +\def<{<3285,106952 +\def>{>3288,107009 +\def+{+3290,107047 +\def\turnoffactive{\turnoffactive3296,107208 +\global\def={=3307,107494 +\def\normalbackslash{\normalbackslash3321,107876 c-src/c.c,76 T f(1,0 @@ -4397,42 +4397,42 @@ c-src/a/b/b.c,18 #define questo 34, y-src/parse.y,1061 -#define obstack_chunk_alloc 46,1111 -#define obstack_chunk_free 47,1149 -int yylex 57,1317 -void yyerror 59,1347 -void yyerror 61,1376 -VOIDSTAR parse_hash;63,1400 -extern VOIDSTAR hash_find(64,1421 -unsigned char fnin[fnin67,1519 -#define YYSTYPE 71,1617 -typedef struct node *YYSTYPE;YYSTYPE72,1648 -YYSTYPE parse_return;73,1678 -YYSTYPE make_list 75,1716 -YYSTYPE make_list 77,1760 -char *instr;instr80,1790 -int parse_error 81,1803 -extern struct obstack tmp_mem;82,1824 -line:line86,1862 -exp:exp94,1975 -exp_list:exp_list262,5642 -range_exp:range_exp268,5740 -range_exp_list:range_exp_list272,5770 -cell:cell278,5888 -yyerror FUN1(285,5935 -make_list FUN2(292,6015 -#define ERROR 303,6215 -extern struct node *yylval;yylval305,6233 -unsigned char parse_cell_or_range 308,6278 -unsigned char parse_cell_or_range 310,6342 -yylex FUN0(314,6392 -parse_cell_or_range FUN2(586,11758 -#define CK_ABS_R(670,13200 -#define CK_REL_R(674,13279 -#define CK_ABS_C(679,13408 -#define CK_REL_C(683,13487 -#define MAYBEREL(688,13616 -str_to_col FUN1(846,16817 +#define obstack_chunk_alloc 46,1116 +#define obstack_chunk_free 47,1154 +int yylex 57,1322 +void yyerror 59,1352 +void yyerror 61,1381 +VOIDSTAR parse_hash;63,1405 +extern VOIDSTAR hash_find(64,1426 +unsigned char fnin[fnin67,1524 +#define YYSTYPE 71,1622 +typedef struct node *YYSTYPE;YYSTYPE72,1653 +YYSTYPE parse_return;73,1683 +YYSTYPE make_list 75,1721 +YYSTYPE make_list 77,1765 +char *instr;instr80,1795 +int parse_error 81,1808 +extern struct obstack tmp_mem;82,1829 +line:line86,1867 +exp:exp94,1980 +exp_list:exp_list262,5647 +range_exp:range_exp268,5745 +range_exp_list:range_exp_list272,5775 +cell:cell278,5893 +yyerror FUN1(285,5940 +make_list FUN2(292,6020 +#define ERROR 303,6220 +extern struct node *yylval;yylval305,6238 +unsigned char parse_cell_or_range 308,6283 +unsigned char parse_cell_or_range 310,6347 +yylex FUN0(314,6397 +parse_cell_or_range FUN2(586,11763 +#define CK_ABS_R(670,13205 +#define CK_REL_R(674,13284 +#define CK_ABS_C(679,13413 +#define CK_REL_C(683,13492 +#define MAYBEREL(688,13621 +str_to_col FUN1(846,16822 y-src/parse.c,520 #define YYBISON 4,64 @@ -4695,59 +4695,59 @@ warning 993, lookup 999, /usr/share/bison/bison.simple,2180 -# define YYSTD(40, -# define YYSTD(42, -# define YYSTACK_ALLOC 50, -# define YYSIZE_T 51, -# define YYSTACK_ALLOC 55, -# define YYSIZE_T 56, -# define YYSTACK_ALLOC 59, -# define YYSTACK_FREE(67, -# define YYSIZE_T 71, -# define YYSIZE_T 75, -# define YYSTACK_ALLOC 78, -# define YYSTACK_FREE 79, -union yyalloc83, -# define YYSTACK_GAP_MAX 93, -# define YYSTACK_BYTES(98, -# define YYSTACK_BYTES(102, -# define YYSTACK_RELOCATE(112, -# define YYSIZE_T 128, -# define YYSIZE_T 131, -# define YYSIZE_T 136, -# define YYSIZE_T 140, -# define YYSIZE_T 145, -#define yyerrok 148, -#define yyclearin 149, -#define YYEMPTY 150, -#define YYEOF 151, -#define YYACCEPT 152, -#define YYABORT 153, -#define YYERROR 154, -#define YYFAIL 158, -#define YYRECOVERING(159, -#define YYBACKUP(160, -#define YYTERROR 177, -#define YYERRCODE 178, -# define YYLLOC_DEFAULT(189, -# define YYLEX 200, -# define YYLEX 202, -# define YYLEX 206, -# define YYLEX 208, -# define YYLEX 212, -# define YYFPRINTF 225, -# define YYDPRINTF(228, -int yydebug;237, -# define YYDPRINTF(239, -# define YYINITDEPTH 244, -# undef YYMAXDEPTH255, -# define YYMAXDEPTH 259, -# define yymemcpy 264, -yymemcpy 271, -# define yystrlen 293, -yystrlen 298, -# define yystpcpy 316, -yystpcpy 322, +# define YYSTD(41, +# define YYSTD(43, +# define YYSTACK_ALLOC 51, +# define YYSIZE_T 52, +# define YYSTACK_ALLOC 56, +# define YYSIZE_T 57, +# define YYSTACK_ALLOC 60, +# define YYSTACK_FREE(68, +# define YYSIZE_T 72, +# define YYSIZE_T 76, +# define YYSTACK_ALLOC 79, +# define YYSTACK_FREE 80, +union yyalloc84, +# define YYSTACK_GAP_MAX 94, +# define YYSTACK_BYTES(99, +# define YYSTACK_BYTES(103, +# define YYSTACK_RELOCATE(113, +# define YYSIZE_T 129, +# define YYSIZE_T 132, +# define YYSIZE_T 137, +# define YYSIZE_T 141, +# define YYSIZE_T 146, +#define yyerrok 149, +#define yyclearin 150, +#define YYEMPTY 151, +#define YYEOF 152, +#define YYACCEPT 153, +#define YYABORT 154, +#define YYERROR 155, +#define YYFAIL 159, +#define YYRECOVERING(160, +#define YYBACKUP(161, +#define YYTERROR 178, +#define YYERRCODE 179, +# define YYLLOC_DEFAULT(190, +# define YYLEX 201, +# define YYLEX 203, +# define YYLEX 207, +# define YYLEX 209, +# define YYLEX 213, +# define YYFPRINTF 226, +# define YYDPRINTF(229, +int yydebug;238, +# define YYDPRINTF(240, +# define YYINITDEPTH 245, +# undef YYMAXDEPTH256, +# define YYMAXDEPTH 260, +# define yymemcpy 265, +yymemcpy 272, +# define yystrlen 294, +yystrlen 299, +# define yystpcpy 317, +yystpcpy 323, # define YYPARSE_PARAM_ARG 351, # define YYPARSE_PARAM_DECL352, # define YYPARSE_PARAM_ARG 354, diff --git a/test/etags/ETAGS.good_3 b/test/etags/ETAGS.good_3 index 804440a..3b3650f 100644 --- a/test/etags/ETAGS.good_3 +++ b/test/etags/ETAGS.good_3 @@ -176,32 +176,32 @@ package body Truc.Bidule Truc.Bidule/b138,2153 protected body Machin_T Machin_T/b146,2281 c-src/abbrev.c,1432 -Lisp_Object Vabbrev_table_name_list;42,1416 -Lisp_Object Vglobal_abbrev_table;47,1561 -Lisp_Object Vfundamental_mode_abbrev_table;51,1672 -int abbrevs_changed;55,1773 -int abbrev_all_caps;57,1795 -Lisp_Object Vabbrev_start_location;62,1944 -Lisp_Object Vabbrev_start_location_buffer;65,2033 -Lisp_Object Vlast_abbrev;69,2142 -Lisp_Object Vlast_abbrev_text;74,2311 -int last_abbrev_point;78,2401 -Lisp_Object Vpre_abbrev_expand_hook,82,2474 -Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;82,2474 -DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table84,2538 -DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table91,2730 -DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev106,3111 -DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev148,4430 -DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev159,4801 -DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol173,5269 -DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion201,6233 -DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev217,6748 -DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev388,11669 -write_abbrev 425,12876 -describe_abbrev 444,13311 -DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description465,13826 -DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table505,14982 -syms_of_abbrev 539,16059 +Lisp_Object Vabbrev_table_name_list;43,1424 +Lisp_Object Vglobal_abbrev_table;48,1569 +Lisp_Object Vfundamental_mode_abbrev_table;52,1680 +int abbrevs_changed;56,1781 +int abbrev_all_caps;58,1803 +Lisp_Object Vabbrev_start_location;63,1952 +Lisp_Object Vabbrev_start_location_buffer;66,2041 +Lisp_Object Vlast_abbrev;70,2150 +Lisp_Object Vlast_abbrev_text;75,2319 +int last_abbrev_point;79,2409 +Lisp_Object Vpre_abbrev_expand_hook,83,2482 +Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;83,2482 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table85,2546 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table92,2738 +DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev107,3119 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev149,4438 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev160,4809 +DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol174,5277 +DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion202,6241 +DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev218,6756 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev389,11677 +write_abbrev 426,12884 +describe_abbrev 445,13319 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description466,13834 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table506,14990 +syms_of_abbrev 540,16067 c-src/torture.c,197 (*tag1 tag118,452 @@ -217,16 +217,16 @@ pp287,1419 pp3(100,1518 c-src/getopt.h,275 -#define _GETOPT_H 19,801 -struct option73,2797 - const char *name;name76,2826 - char *name;name78,2852 - int has_arg;82,3009 - int *flag;flag83,3024 - int val;84,3037 -#define no_argument 89,3124 -#define required_argument 90,3147 -#define optional_argument 91,3175 +#define _GETOPT_H 19,794 +struct option73,2790 + const char *name;name76,2819 + char *name;name78,2845 + int has_arg;82,3002 + int *flag;flag83,3017 + int val;84,3030 +#define no_argument 89,3117 +#define required_argument 90,3140 +#define optional_argument 91,3168 c-src/etags.c,12045 char pot_etags_version[pot_etags_version81,3470 @@ -609,36 +609,36 @@ xmalloc 6536,174148 xrealloc 6545,174314 c-src/exit.c,99 - size_t n;28,961 - void EXFUN((*fn[fn29,975 - } __libc_atexit;30,1011 -DEFUN(exit,38,1252 + size_t n;28,967 + void EXFUN((*fn[fn29,981 + } __libc_atexit;30,1017 +DEFUN(exit,38,1258 c-src/exit.strange_suffix,99 - size_t n;28,961 - void EXFUN((*fn[fn29,975 - } __libc_atexit;30,1011 -DEFUN(exit,38,1252 + size_t n;28,967 + void EXFUN((*fn[fn29,981 + } __libc_atexit;30,1017 +DEFUN(exit,38,1258 c-src/sysdep.h,491 -#define ENTRY(21,865 -#define PSEUDO(26,972 - movl $SYS_##syscall_nam$SYS_##syscall_na31,1132 - movl $SYS_##syscall_name, %eax;eax31,1132 - int $0x80;32,1180 - test %eax,eax33,1210 - test %eax, %eax;eax33,1210 - jl syscall_error;34,1245 -#define XCHG_0 47,1562 -#define XCHG_1 48,1606 -#define XCHG_2 49,1648 -#define XCHG_3 50,1691 -#define XCHG_4 51,1734 -#define XCHG_5 52,1777 -#define r0 54,1821 -#define r1 55,1875 -#define scratch 56,1932 -#define MOVE(57,2001 +#define ENTRY(21,870 +#define PSEUDO(26,977 + movl $SYS_##syscall_nam$SYS_##syscall_na31,1137 + movl $SYS_##syscall_name, %eax;eax31,1137 + int $0x80;32,1185 + test %eax,eax33,1215 + test %eax, %eax;eax33,1215 + jl syscall_error;34,1250 +#define XCHG_0 47,1567 +#define XCHG_1 48,1611 +#define XCHG_2 49,1653 +#define XCHG_3 50,1696 +#define XCHG_4 51,1739 +#define XCHG_5 52,1782 +#define r0 54,1826 +#define r1 55,1880 +#define scratch 56,1937 +#define MOVE(57,2006 c-src/tab.c,196 static int count_words(15,263 @@ -1707,364 +1707,364 @@ struct Lisp_Misc_Any 1971,64806 ENUM_BF 1973,64866 struct Lisp_Marker1978,64980 ENUM_BF 1980,65001 -struct Lisp_Overlay2021,66838 - ENUM_BF 2034,67346 - SAVE_UNUSED,2047,67641 - SAVE_INTEGER,2048,67658 - SAVE_FUNCPOINTER,2049,67676 - SAVE_POINTER,2050,67698 - SAVE_OBJECT2051,67716 -enum { SAVE_SLOT_BITS 2055,67801 -enum { SAVE_VALUE_SLOTS 2058,67898 -enum { SAVE_TYPE_BITS 2062,68006 -enum Lisp_Save_Type2064,68072 - SAVE_TYPE_INT_INT 2066,68096 - SAVE_TYPE_INT_INT_INT2067,68169 - SAVE_TYPE_OBJ_OBJ 2069,68259 - SAVE_TYPE_OBJ_OBJ_OBJ 2070,68330 - SAVE_TYPE_OBJ_OBJ_OBJ_OBJ2071,68411 - SAVE_TYPE_PTR_INT 2073,68506 - SAVE_TYPE_PTR_OBJ 2074,68579 - SAVE_TYPE_PTR_PTR 2075,68651 - SAVE_TYPE_FUNCPTR_PTR_OBJ2076,68724 - SAVE_TYPE_MEMORY 2080,68882 -typedef void (*voidfuncptr)voidfuncptr2108,69836 -struct Lisp_Save_Value2110,69873 - ENUM_BF 2112,69900 - void *pointer;pointer2125,70555 - voidfuncptr funcpointer;2126,70576 - ptrdiff_t integer;2127,70607 - Lisp_Object object;2128,70632 - } data[data2129,70658 -save_type 2134,70752 -XSAVE_POINTER 2143,70982 -set_save_pointer 2149,71144 -XSAVE_FUNCPOINTER 2155,71326 -XSAVE_INTEGER 2164,71546 -set_save_integer 2170,71708 -XSAVE_OBJECT 2179,71929 -struct Lisp_Finalizer2186,72106 - struct Lisp_Misc_Any base;2188,72132 - struct Lisp_Finalizer *prev;prev2191,72220 - struct Lisp_Finalizer *next;next2192,72253 - Lisp_Object function;2197,72490 -struct Lisp_Free2201,72581 - ENUM_BF 2203,72602 -union Lisp_Misc2212,72882 - struct Lisp_Misc_Any u_any;2214,72902 - struct Lisp_Free u_free;2215,72973 - struct Lisp_Marker u_marker;2216,73002 - struct Lisp_Overlay u_overlay;2217,73035 - struct Lisp_Save_Value u_save_value;2218,73070 - struct Lisp_Finalizer u_finalizer;2219,73111 -XMISC 2223,73181 -XMISCANY 2229,73270 -XMISCTYPE 2236,73379 -XMARKER 2242,73467 -XOVERLAY 2249,73582 -XSAVE_VALUE 2256,73703 -XFINALIZER 2263,73832 -struct Lisp_Intfwd2274,74117 - enum Lisp_Fwd_Type type;2276,74140 - EMACS_INT *intvar;intvar2277,74190 -struct Lisp_Boolfwd2284,74411 - enum Lisp_Fwd_Type type;2286,74435 - bool *boolvar;boolvar2287,74486 -struct Lisp_Objfwd2294,74702 - enum Lisp_Fwd_Type type;2296,74725 - Lisp_Object *objvar;objvar2297,74775 -struct Lisp_Buffer_Objfwd2302,74934 - enum Lisp_Fwd_Type type;2304,74964 - int offset;2305,75021 - Lisp_Object predicate;2307,75113 -struct Lisp_Buffer_Local_Value2334,76470 - bool_bf local_if_set 2338,76615 - bool_bf frame_local 2341,76797 - bool_bf found 2344,76939 - union Lisp_Fwd *fwd;fwd2346,77041 - Lisp_Object where;2348,77184 - Lisp_Object defcell;2351,77310 - Lisp_Object valcell;2357,77614 -struct Lisp_Kboard_Objfwd2362,77729 - enum Lisp_Fwd_Type type;2364,77759 - int offset;2365,77816 -union Lisp_Fwd2368,77838 - struct Lisp_Intfwd u_intfwd;2370,77857 - struct Lisp_Boolfwd u_boolfwd;2371,77890 - struct Lisp_Objfwd u_objfwd;2372,77925 - struct Lisp_Buffer_Objfwd u_buffer_objfwd;2373,77958 - struct Lisp_Kboard_Objfwd u_kboard_objfwd;2374,78005 -XFWDTYPE 2378,78084 -XBUFFER_OBJFWD 2384,78180 -struct Lisp_Float2391,78316 - double data;2395,78354 - struct Lisp_Float *chain;chain2396,78373 - } u;2397,78405 -XFLOAT_DATA 2401,78434 - IEEE_FLOATING_POINT2415,78943 -#define _UCHAR_T2423,79266 -typedef unsigned char UCHAR;2424,79283 -enum Lisp_Compiled2429,79366 - COMPILED_ARGLIST 2431,79389 - COMPILED_BYTECODE 2432,79415 - COMPILED_CONSTANTS 2433,79442 - COMPILED_STACK_DEPTH 2434,79470 - COMPILED_DOC_STRING 2435,79500 - COMPILED_INTERACTIVE 2436,79529 -enum char_bits2443,79831 - CHAR_ALT 2445,79850 - CHAR_SUPER 2446,79876 - CHAR_HYPER 2447,79904 - CHAR_SHIFT 2448,79932 - CHAR_CTL 2449,79960 - CHAR_META 2450,79986 - CHAR_MODIFIER_MASK 2452,80014 - CHARACTERBITS 2457,80209 -LISP_MACRO_DEFUN 2462,80267 -NATNUMP 2470,80409 -RANGED_INTEGERP 2476,80490 -#define TYPE_RANGED_INTEGERP(2481,80612 -LISP_MACRO_DEFUN 2486,80797 -VECTORP 2500,81270 -OVERLAYP 2505,81373 -SAVE_VALUEP 2510,81472 -FINALIZERP 2516,81578 -AUTOLOADP 2522,81682 -BUFFER_OBJFWDP 2528,81773 -PSEUDOVECTOR_TYPEP 2534,81871 -PSEUDOVECTORP 2542,82124 -WINDOW_CONFIGURATIONP 2558,82476 -PROCESSP 2564,82586 -WINDOWP 2570,82670 -TERMINALP 2576,82752 -SUBRP 2582,82838 -COMPILEDP 2588,82916 -BUFFERP 2594,83002 -CHAR_TABLE_P 2600,83084 -SUB_CHAR_TABLE_P 2606,83175 -BOOL_VECTOR_P 2612,83274 -FRAMEP 2618,83367 -IMAGEP 2625,83484 -ARRAYP 2632,83589 -CHECK_LIST 2638,83708 -LISP_MACRO_DEFUN_VOID 2643,83789 -CHECK_STRING_CAR 2653,84086 -CHECK_CONS 2658,84190 -CHECK_VECTOR 2663,84270 -CHECK_BOOL_VECTOR 2668,84356 -CHECK_VECTOR_OR_STRING 2674,84533 -CHECK_ARRAY 2683,84707 -CHECK_BUFFER 2688,84815 -CHECK_WINDOW 2693,84901 -CHECK_PROCESS 2699,85007 -CHECK_NATNUM 2705,85103 -#define CHECK_RANGED_INTEGER(2710,85180 -#define CHECK_TYPE_RANGED_INTEGER(2721,85563 -#define CHECK_NUMBER_COERCE_MARKER(2729,85833 -XFLOATINT 2738,86086 -CHECK_NUMBER_OR_FLOAT 2744,86157 -#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(2749,86256 -CHECK_NUMBER_CAR 2760,86666 -CHECK_NUMBER_CDR 2768,86788 -#define DEFUN(2803,88383 -#define DEFUN(2812,88851 -FUNCTIONP 2822,89206 -enum maxargs2831,89401 - MANY 2833,89418 - UNEVALLED 2834,89433 -#define CALLMANY(2838,89536 -#define CALLN(2844,89889 -#define DEFVAR_LISP(2869,91094 -#define DEFVAR_LISP_NOPRO(2874,91266 -#define DEFVAR_BOOL(2879,91448 -#define DEFVAR_INT(2884,91621 -#define DEFVAR_BUFFER_DEFAULTS(2890,91792 -#define DEFVAR_KBOARD(2896,91996 -typedef jmp_buf sys_jmp_buf;2906,92320 -# define sys_setjmp(2907,92349 -# define sys_longjmp(2908,92384 -typedef sigjmp_buf sys_jmp_buf;2910,92456 -# define sys_setjmp(2911,92488 -# define sys_longjmp(2912,92528 -typedef jmp_buf sys_jmp_buf;2916,92687 -# define sys_setjmp(2917,92716 -# define sys_longjmp(2918,92750 -enum specbind_tag 2943,93802 - SPECPDL_UNWIND,2944,93822 - SPECPDL_UNWIND_PTR,2945,93891 - SPECPDL_UNWIND_INT,2946,93942 - SPECPDL_UNWIND_VOID,2947,93990 - SPECPDL_BACKTRACE,2948,94044 - SPECPDL_LET,2949,94102 - SPECPDL_LET_LOCAL,2951,94232 - SPECPDL_LET_DEFAULT 2952,94289 -union specbinding2955,94361 - ENUM_BF 2957,94383 - ENUM_BF 2959,94440 - ENUM_BF 2964,94570 - ENUM_BF 2969,94693 - ENUM_BF 2974,94811 - ENUM_BF 2978,94916 - ENUM_BF 2983,95091 -enum handlertype 3021,96407 -enum handlertype { CATCHER,3021,96407 -enum handlertype { CATCHER, CONDITION_CASE 3021,96407 -struct handler3023,96454 - enum handlertype type;3025,96471 - Lisp_Object tag_or_ch;3026,96496 - Lisp_Object val;3027,96521 - struct handler *next;next3028,96540 - struct handler *nextfree;nextfree3029,96564 - Lisp_Object *bytecode_top;bytecode_top3036,96922 - int bytecode_dest;3037,96951 - struct gcpro *gcpro;gcpro3042,97188 - sys_jmp_buf jmp;3044,97218 - EMACS_INT lisp_eval_depth;3045,97237 - ptrdiff_t pdlcount;3046,97266 - int poll_suppress_count;3047,97288 - int interrupt_input_blocked;3048,97315 - struct byte_stack *byte_stack;byte_stack3049,97346 -#define PUSH_HANDLER(3053,97443 -#define QUIT 3101,99220 -#define QUITP 3112,99470 -struct gcpro3132,100313 - struct gcpro *next;next3134,100328 - volatile Lisp_Object *var;var3137,100397 - ptrdiff_t nvars;3140,100479 - const char *name;name3144,100564 - int lineno;3147,100620 - int idx;3150,100681 - int level;3153,100717 -#define GC_USE_GCPROS_AS_BEFORE 3171,101294 -#define GC_MAKE_GCPROS_NOOPS 3172,101329 -#define GC_MARK_STACK_CHECK_GCPROS 3173,101361 -#define GC_USE_GCPROS_CHECK_ZOMBIES 3174,101398 -#define GC_MARK_STACK 3177,101459 -#define BYTE_MARK_STACK 3181,101559 -#define GCPRO1(3190,101830 -#define GCPRO2(3191,101870 -#define GCPRO3(3192,101936 -#define GCPRO4(3194,102031 -#define GCPRO5(3196,102151 -#define GCPRO6(3198,102296 -#define GCPRO7(3201,102471 -#define UNGCPRO 3202,102550 -#define GCPRO1(3208,102650 -#define GCPRO2(3212,102772 -#define GCPRO3(3217,102964 -#define GCPRO4(3223,103226 -#define GCPRO5(3230,103557 -#define GCPRO6(3238,103958 -#define GCPRO7(3247,104428 -#define UNGCPRO 3257,104968 -#define GCPRO1(3263,105062 -#define GCPRO2(3269,105296 -#define GCPRO3(3278,105714 -#define GCPRO4(3289,106271 -#define GCPRO5(3302,106969 -#define GCPRO6(3317,107809 -#define GCPRO7(3334,108790 -#define UNGCPRO 3353,109913 -#define RETURN_UNGCPRO(3363,110180 -vcopy 3384,110654 -set_hash_key_slot 3393,110929 -set_hash_value_slot 3399,111068 -set_symbol_function 3408,111303 -set_symbol_plist 3414,111418 -set_symbol_next 3420,111521 -blv_found 3428,111694 -set_overlay_plist 3437,111877 -string_intervals 3445,112028 -set_string_intervals 3453,112150 -set_char_table_defalt 3462,112352 -set_char_table_purpose 3467,112464 -set_char_table_extras 3475,112633 -set_char_table_contents 3482,112842 -set_sub_char_table_contents 3489,113037 -enum Arith_Comparison 3497,113300 - ARITH_EQUAL,3498,113324 - ARITH_NOTEQUAL,3499,113339 - ARITH_LESS,3500,113357 - ARITH_GRTR,3501,113371 - ARITH_LESS_OR_EQUAL,3502,113385 - ARITH_GRTR_OR_EQUAL3503,113408 -#define INTEGER_TO_CONS(3511,113759 -#define CONS_TO_INTEGER(3529,114622 -enum { NEXT_ALMOST_PRIME_LIMIT 3573,116326 -extern EMACS_INT next_almost_prime 3574,116365 -enum constype 3739,123817 -enum constype {CONSTYPE_HEAP,CONSTYPE_HEAP3739,123817 -enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}CONSTYPE_PURE3739,123817 -list2i 3745,124007 -list3i 3751,124116 -list4i 3757,124255 -extern Lisp_Object make_formatted_string 3767,124631 -build_pure_c_string 3792,125659 -build_string 3801,125864 -make_uninit_vector 3820,126435 -make_uninit_sub_char_table 3833,126654 -#define ALLOCATE_PSEUDOVECTOR(3850,127198 -#define ALLOCATE_ZEROED_PSEUDOVECTOR(3858,127534 -INLINE void 3890,128940 -extern void *r_alloc r_alloc3895,129061 -#define FLOAT_TO_STRING_BUFSIZE 3927,130524 -intern 3968,132131 -intern_c_string 3974,132219 -extern _Noreturn void error 4034,135598 -fast_string_match_ignore_case 4136,140086 -INLINE void fixup_locale 4241,143851 -INLINE void synchronize_system_messages_locale 4242,143886 -INLINE void synchronize_system_time_locale 4243,143943 -#define IS_DAEMON 4257,144416 -#define DAEMON_RUNNING 4258,144456 -#define IS_DAEMON 4261,144555 -#define DAEMON_RUNNING 4262,144600 -# define WAIT_READING_MAX 4281,145419 -# define WAIT_READING_MAX 4283,145491 -extern _Noreturn void emacs_abort 4374,148383 -egetenv 4532,152806 -#define eabs(4545,153302 -#define make_fixnum_or_float(4550,153435 -enum MAX_ALLOCA 4556,153686 -enum MAX_ALLOCA { MAX_ALLOCA 4556,153686 -extern void *record_xmalloc record_xmalloc4558,153731 -#define USE_SAFE_ALLOCA 4560,153797 -#define AVAIL_ALLOCA(4564,153930 -#define SAFE_ALLOCA(4568,154041 -#define SAFE_NALLOCA(4576,154382 -#define SAFE_ALLOCA_STRING(4590,154858 -#define SAFE_FREE(4598,155110 -#define SAFE_ALLOCA_LISP(4625,155688 -# define USE_STACK_LISP_OBJECTS 4652,156810 -# undef USE_STACK_LISP_OBJECTS4658,156976 -# define USE_STACK_LISP_OBJECTS 4659,157007 -enum { defined_GC_CHECK_STRING_BYTES 4663,157082 -enum { defined_GC_CHECK_STRING_BYTES 4665,157135 -union Aligned_Cons4670,157269 - struct Lisp_Cons s;4672,157290 - double d;4673,157312 - double d; intmax_t i;4673,157312 - double d; intmax_t i; void *p;p4673,157312 -union Aligned_String4676,157349 - struct Lisp_String s;4678,157372 - double d;4679,157396 - double d; intmax_t i;4679,157396 - double d; intmax_t i; void *p;p4679,157396 - USE_STACK_CONS 4689,157704 - USE_STACK_STRING 4691,157810 -#define STACK_CONS(4699,158147 -#define AUTO_CONS_EXPR(4701,158244 -#define AUTO_CONS(4709,158607 -#define AUTO_LIST1(4710,158678 -#define AUTO_LIST2(4712,158786 -#define AUTO_LIST3(4716,158941 -#define AUTO_LIST4(4720,159116 -# define verify_ascii(4732,159507 -#define AUTO_STRING(4740,159815 -#define FOR_EACH_TAIL(4752,160279 -#define FOR_EACH_ALIST_VALUE(4766,160770 -maybe_gc 4774,161057 -functionp 4784,161296 +struct Lisp_Overlay2021,66841 + ENUM_BF 2034,67349 + SAVE_UNUSED,2047,67644 + SAVE_INTEGER,2048,67661 + SAVE_FUNCPOINTER,2049,67679 + SAVE_POINTER,2050,67701 + SAVE_OBJECT2051,67719 +enum { SAVE_SLOT_BITS 2055,67804 +enum { SAVE_VALUE_SLOTS 2058,67901 +enum { SAVE_TYPE_BITS 2062,68009 +enum Lisp_Save_Type2064,68075 + SAVE_TYPE_INT_INT 2066,68099 + SAVE_TYPE_INT_INT_INT2067,68172 + SAVE_TYPE_OBJ_OBJ 2069,68262 + SAVE_TYPE_OBJ_OBJ_OBJ 2070,68333 + SAVE_TYPE_OBJ_OBJ_OBJ_OBJ2071,68414 + SAVE_TYPE_PTR_INT 2073,68509 + SAVE_TYPE_PTR_OBJ 2074,68582 + SAVE_TYPE_PTR_PTR 2075,68654 + SAVE_TYPE_FUNCPTR_PTR_OBJ2076,68727 + SAVE_TYPE_MEMORY 2080,68885 +typedef void (*voidfuncptr)voidfuncptr2108,69839 +struct Lisp_Save_Value2110,69876 + ENUM_BF 2112,69903 + void *pointer;pointer2125,70558 + voidfuncptr funcpointer;2126,70579 + ptrdiff_t integer;2127,70610 + Lisp_Object object;2128,70635 + } data[data2129,70661 +save_type 2134,70755 +XSAVE_POINTER 2143,70985 +set_save_pointer 2149,71147 +XSAVE_FUNCPOINTER 2155,71329 +XSAVE_INTEGER 2164,71549 +set_save_integer 2170,71711 +XSAVE_OBJECT 2179,71932 +struct Lisp_Finalizer2186,72109 + struct Lisp_Misc_Any base;2188,72135 + struct Lisp_Finalizer *prev;prev2191,72223 + struct Lisp_Finalizer *next;next2192,72256 + Lisp_Object function;2197,72493 +struct Lisp_Free2201,72584 + ENUM_BF 2203,72605 +union Lisp_Misc2212,72885 + struct Lisp_Misc_Any u_any;2214,72905 + struct Lisp_Free u_free;2215,72976 + struct Lisp_Marker u_marker;2216,73005 + struct Lisp_Overlay u_overlay;2217,73038 + struct Lisp_Save_Value u_save_value;2218,73073 + struct Lisp_Finalizer u_finalizer;2219,73114 +XMISC 2223,73184 +XMISCANY 2229,73273 +XMISCTYPE 2236,73382 +XMARKER 2242,73470 +XOVERLAY 2249,73585 +XSAVE_VALUE 2256,73706 +XFINALIZER 2263,73835 +struct Lisp_Intfwd2274,74120 + enum Lisp_Fwd_Type type;2276,74143 + EMACS_INT *intvar;intvar2277,74193 +struct Lisp_Boolfwd2284,74414 + enum Lisp_Fwd_Type type;2286,74438 + bool *boolvar;boolvar2287,74489 +struct Lisp_Objfwd2294,74705 + enum Lisp_Fwd_Type type;2296,74728 + Lisp_Object *objvar;objvar2297,74778 +struct Lisp_Buffer_Objfwd2302,74937 + enum Lisp_Fwd_Type type;2304,74967 + int offset;2305,75024 + Lisp_Object predicate;2307,75116 +struct Lisp_Buffer_Local_Value2334,76473 + bool_bf local_if_set 2338,76618 + bool_bf frame_local 2341,76800 + bool_bf found 2344,76942 + union Lisp_Fwd *fwd;fwd2346,77044 + Lisp_Object where;2348,77187 + Lisp_Object defcell;2351,77313 + Lisp_Object valcell;2357,77617 +struct Lisp_Kboard_Objfwd2362,77732 + enum Lisp_Fwd_Type type;2364,77762 + int offset;2365,77819 +union Lisp_Fwd2368,77841 + struct Lisp_Intfwd u_intfwd;2370,77860 + struct Lisp_Boolfwd u_boolfwd;2371,77893 + struct Lisp_Objfwd u_objfwd;2372,77928 + struct Lisp_Buffer_Objfwd u_buffer_objfwd;2373,77961 + struct Lisp_Kboard_Objfwd u_kboard_objfwd;2374,78008 +XFWDTYPE 2378,78087 +XBUFFER_OBJFWD 2384,78183 +struct Lisp_Float2391,78319 + double data;2395,78357 + struct Lisp_Float *chain;chain2396,78376 + } u;2397,78408 +XFLOAT_DATA 2401,78437 + IEEE_FLOATING_POINT2415,78946 +#define _UCHAR_T2423,79269 +typedef unsigned char UCHAR;2424,79286 +enum Lisp_Compiled2429,79369 + COMPILED_ARGLIST 2431,79392 + COMPILED_BYTECODE 2432,79418 + COMPILED_CONSTANTS 2433,79445 + COMPILED_STACK_DEPTH 2434,79473 + COMPILED_DOC_STRING 2435,79503 + COMPILED_INTERACTIVE 2436,79532 +enum char_bits2443,79834 + CHAR_ALT 2445,79853 + CHAR_SUPER 2446,79879 + CHAR_HYPER 2447,79907 + CHAR_SHIFT 2448,79935 + CHAR_CTL 2449,79963 + CHAR_META 2450,79989 + CHAR_MODIFIER_MASK 2452,80017 + CHARACTERBITS 2457,80212 +LISP_MACRO_DEFUN 2462,80270 +NATNUMP 2470,80412 +RANGED_INTEGERP 2476,80493 +#define TYPE_RANGED_INTEGERP(2481,80615 +LISP_MACRO_DEFUN 2486,80800 +VECTORP 2500,81273 +OVERLAYP 2505,81376 +SAVE_VALUEP 2510,81475 +FINALIZERP 2516,81581 +AUTOLOADP 2522,81685 +BUFFER_OBJFWDP 2528,81776 +PSEUDOVECTOR_TYPEP 2534,81874 +PSEUDOVECTORP 2542,82127 +WINDOW_CONFIGURATIONP 2558,82479 +PROCESSP 2564,82589 +WINDOWP 2570,82673 +TERMINALP 2576,82755 +SUBRP 2582,82841 +COMPILEDP 2588,82919 +BUFFERP 2594,83005 +CHAR_TABLE_P 2600,83087 +SUB_CHAR_TABLE_P 2606,83178 +BOOL_VECTOR_P 2612,83277 +FRAMEP 2618,83370 +IMAGEP 2625,83487 +ARRAYP 2632,83592 +CHECK_LIST 2638,83711 +LISP_MACRO_DEFUN_VOID 2643,83792 +CHECK_STRING_CAR 2653,84089 +CHECK_CONS 2658,84193 +CHECK_VECTOR 2663,84273 +CHECK_BOOL_VECTOR 2668,84359 +CHECK_VECTOR_OR_STRING 2674,84536 +CHECK_ARRAY 2683,84710 +CHECK_BUFFER 2688,84818 +CHECK_WINDOW 2693,84904 +CHECK_PROCESS 2699,85010 +CHECK_NATNUM 2705,85106 +#define CHECK_RANGED_INTEGER(2710,85183 +#define CHECK_TYPE_RANGED_INTEGER(2721,85566 +#define CHECK_NUMBER_COERCE_MARKER(2729,85836 +XFLOATINT 2738,86089 +CHECK_NUMBER_OR_FLOAT 2744,86160 +#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(2749,86259 +CHECK_NUMBER_CAR 2760,86669 +CHECK_NUMBER_CDR 2768,86791 +#define DEFUN(2803,88386 +#define DEFUN(2812,88854 +FUNCTIONP 2822,89209 +enum maxargs2831,89404 + MANY 2833,89421 + UNEVALLED 2834,89436 +#define CALLMANY(2838,89539 +#define CALLN(2844,89892 +#define DEFVAR_LISP(2869,91097 +#define DEFVAR_LISP_NOPRO(2874,91269 +#define DEFVAR_BOOL(2879,91451 +#define DEFVAR_INT(2884,91624 +#define DEFVAR_BUFFER_DEFAULTS(2890,91795 +#define DEFVAR_KBOARD(2896,91999 +typedef jmp_buf sys_jmp_buf;2906,92323 +# define sys_setjmp(2907,92352 +# define sys_longjmp(2908,92387 +typedef sigjmp_buf sys_jmp_buf;2910,92459 +# define sys_setjmp(2911,92491 +# define sys_longjmp(2912,92531 +typedef jmp_buf sys_jmp_buf;2916,92690 +# define sys_setjmp(2917,92719 +# define sys_longjmp(2918,92753 +enum specbind_tag 2943,93805 + SPECPDL_UNWIND,2944,93825 + SPECPDL_UNWIND_PTR,2945,93894 + SPECPDL_UNWIND_INT,2946,93945 + SPECPDL_UNWIND_VOID,2947,93993 + SPECPDL_BACKTRACE,2948,94047 + SPECPDL_LET,2949,94105 + SPECPDL_LET_LOCAL,2951,94235 + SPECPDL_LET_DEFAULT 2952,94292 +union specbinding2955,94364 + ENUM_BF 2957,94386 + ENUM_BF 2959,94443 + ENUM_BF 2964,94573 + ENUM_BF 2969,94696 + ENUM_BF 2974,94814 + ENUM_BF 2978,94919 + ENUM_BF 2983,95094 +enum handlertype 3021,96410 +enum handlertype { CATCHER,3021,96410 +enum handlertype { CATCHER, CONDITION_CASE 3021,96410 +struct handler3023,96457 + enum handlertype type;3025,96474 + Lisp_Object tag_or_ch;3026,96499 + Lisp_Object val;3027,96524 + struct handler *next;next3028,96543 + struct handler *nextfree;nextfree3029,96567 + Lisp_Object *bytecode_top;bytecode_top3036,96925 + int bytecode_dest;3037,96954 + struct gcpro *gcpro;gcpro3042,97191 + sys_jmp_buf jmp;3044,97221 + EMACS_INT lisp_eval_depth;3045,97240 + ptrdiff_t pdlcount;3046,97269 + int poll_suppress_count;3047,97291 + int interrupt_input_blocked;3048,97318 + struct byte_stack *byte_stack;byte_stack3049,97349 +#define PUSH_HANDLER(3053,97446 +#define QUIT 3101,99223 +#define QUITP 3112,99473 +struct gcpro3132,100316 + struct gcpro *next;next3134,100331 + volatile Lisp_Object *var;var3137,100400 + ptrdiff_t nvars;3140,100482 + const char *name;name3144,100567 + int lineno;3147,100623 + int idx;3150,100684 + int level;3153,100720 +#define GC_USE_GCPROS_AS_BEFORE 3171,101297 +#define GC_MAKE_GCPROS_NOOPS 3172,101332 +#define GC_MARK_STACK_CHECK_GCPROS 3173,101364 +#define GC_USE_GCPROS_CHECK_ZOMBIES 3174,101401 +#define GC_MARK_STACK 3177,101462 +#define BYTE_MARK_STACK 3181,101562 +#define GCPRO1(3190,101833 +#define GCPRO2(3191,101873 +#define GCPRO3(3192,101939 +#define GCPRO4(3194,102034 +#define GCPRO5(3196,102154 +#define GCPRO6(3198,102299 +#define GCPRO7(3201,102474 +#define UNGCPRO 3202,102553 +#define GCPRO1(3208,102653 +#define GCPRO2(3212,102775 +#define GCPRO3(3217,102967 +#define GCPRO4(3223,103229 +#define GCPRO5(3230,103560 +#define GCPRO6(3238,103961 +#define GCPRO7(3247,104431 +#define UNGCPRO 3257,104971 +#define GCPRO1(3263,105065 +#define GCPRO2(3269,105299 +#define GCPRO3(3278,105717 +#define GCPRO4(3289,106274 +#define GCPRO5(3302,106972 +#define GCPRO6(3317,107812 +#define GCPRO7(3334,108793 +#define UNGCPRO 3353,109916 +#define RETURN_UNGCPRO(3363,110183 +vcopy 3384,110657 +set_hash_key_slot 3393,110932 +set_hash_value_slot 3399,111071 +set_symbol_function 3408,111306 +set_symbol_plist 3414,111421 +set_symbol_next 3420,111524 +blv_found 3428,111697 +set_overlay_plist 3437,111880 +string_intervals 3445,112031 +set_string_intervals 3453,112153 +set_char_table_defalt 3462,112355 +set_char_table_purpose 3467,112467 +set_char_table_extras 3475,112636 +set_char_table_contents 3482,112845 +set_sub_char_table_contents 3489,113040 +enum Arith_Comparison 3497,113303 + ARITH_EQUAL,3498,113327 + ARITH_NOTEQUAL,3499,113342 + ARITH_LESS,3500,113360 + ARITH_GRTR,3501,113374 + ARITH_LESS_OR_EQUAL,3502,113388 + ARITH_GRTR_OR_EQUAL3503,113411 +#define INTEGER_TO_CONS(3511,113762 +#define CONS_TO_INTEGER(3529,114625 +enum { NEXT_ALMOST_PRIME_LIMIT 3573,116329 +extern EMACS_INT next_almost_prime 3574,116368 +enum constype 3739,123820 +enum constype {CONSTYPE_HEAP,CONSTYPE_HEAP3739,123820 +enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}CONSTYPE_PURE3739,123820 +list2i 3745,124010 +list3i 3751,124119 +list4i 3757,124258 +extern Lisp_Object make_formatted_string 3767,124634 +build_pure_c_string 3792,125662 +build_string 3801,125867 +make_uninit_vector 3820,126438 +make_uninit_sub_char_table 3833,126657 +#define ALLOCATE_PSEUDOVECTOR(3850,127201 +#define ALLOCATE_ZEROED_PSEUDOVECTOR(3858,127537 +INLINE void 3890,128943 +extern void *r_alloc r_alloc3895,129064 +#define FLOAT_TO_STRING_BUFSIZE 3927,130527 +intern 3968,132134 +intern_c_string 3974,132222 +extern _Noreturn void error 4034,135601 +fast_string_match_ignore_case 4136,140089 +INLINE void fixup_locale 4241,143854 +INLINE void synchronize_system_messages_locale 4242,143889 +INLINE void synchronize_system_time_locale 4243,143946 +#define IS_DAEMON 4257,144419 +#define DAEMON_RUNNING 4258,144459 +#define IS_DAEMON 4261,144558 +#define DAEMON_RUNNING 4262,144603 +# define WAIT_READING_MAX 4281,145422 +# define WAIT_READING_MAX 4283,145494 +extern _Noreturn void emacs_abort 4374,148386 +egetenv 4532,152809 +#define eabs(4545,153305 +#define make_fixnum_or_float(4550,153438 +enum MAX_ALLOCA 4556,153689 +enum MAX_ALLOCA { MAX_ALLOCA 4556,153689 +extern void *record_xmalloc record_xmalloc4558,153734 +#define USE_SAFE_ALLOCA 4560,153800 +#define AVAIL_ALLOCA(4564,153933 +#define SAFE_ALLOCA(4568,154044 +#define SAFE_NALLOCA(4576,154385 +#define SAFE_ALLOCA_STRING(4590,154861 +#define SAFE_FREE(4598,155113 +#define SAFE_ALLOCA_LISP(4625,155691 +# define USE_STACK_LISP_OBJECTS 4652,156813 +# undef USE_STACK_LISP_OBJECTS4658,156979 +# define USE_STACK_LISP_OBJECTS 4659,157010 +enum { defined_GC_CHECK_STRING_BYTES 4663,157085 +enum { defined_GC_CHECK_STRING_BYTES 4665,157138 +union Aligned_Cons4670,157272 + struct Lisp_Cons s;4672,157293 + double d;4673,157315 + double d; intmax_t i;4673,157315 + double d; intmax_t i; void *p;p4673,157315 +union Aligned_String4676,157352 + struct Lisp_String s;4678,157375 + double d;4679,157399 + double d; intmax_t i;4679,157399 + double d; intmax_t i; void *p;p4679,157399 + USE_STACK_CONS 4689,157707 + USE_STACK_STRING 4691,157813 +#define STACK_CONS(4699,158150 +#define AUTO_CONS_EXPR(4701,158247 +#define AUTO_CONS(4709,158610 +#define AUTO_LIST1(4710,158681 +#define AUTO_LIST2(4712,158789 +#define AUTO_LIST3(4716,158944 +#define AUTO_LIST4(4720,159119 +# define verify_ascii(4732,159510 +#define AUTO_STRING(4740,159818 +#define FOR_EACH_TAIL(4752,160282 +#define FOR_EACH_ALIST_VALUE(4766,160773 +maybe_gc 4774,161060 +functionp 4784,161299 c-src/machsyscalls.c,23 #define SYSCALL(6,113 @@ -2553,10 +2553,10 @@ el-src/emacs/lisp/progmodes/etags.el,5069 (defvar etags-xref-find-definitions-tag-order 2076,82586 (defun etags-xref-find 2082,82876 (defun etags--xref-find-definitions 2096,83405 -(defclass xref-etags-location 2129,85120 -(defun xref-make-etags-location 2135,85343 -(cl-defmethod xref-location-marker 2139,85498 -(cl-defmethod xref-location-line 2146,85742 +(defclass xref-etags-location 2129,85119 +(defun xref-make-etags-location 2135,85342 +(cl-defmethod xref-location-marker 2139,85497 +(cl-defmethod xref-location-line 2146,85741 erl-src/gs_dialog.erl,98 -define(VERSION2,32 @@ -3321,25 +3321,25 @@ class Configure(760,24879 def save(797,26022 def nosave(807,26310 -ruby-src/test.rb,594 +ruby-src/test.rb,604 module ModuleExample1,0 class ClassExample2,21 def instance_method3,44 - def ClassExample.class_method6,116 - def instance_method_exclamation!9,221 - def instance_method_question?12,319 - def instance_method_equals=class_method_equals=15,411 - def `(18,499 - def +(21,589 - def [](24,637 - def []=([]=27,687 - def <<(30,749 - def ==(==33,799 - def <=(<=36,869 - def <=>(<=>39,940 - def ===(===42,987 - def module_instance_method46,1048 - def ModuleExample.module_class_method49,1110 + def ClassExample.class_method6,121 + def instance_method_exclamation!9,206 + def instance_method_question?12,310 + def instance_method_equals=instance_method_equals=15,408 + def `(18,502 + def +(21,592 + def [](24,640 + def []=([]=27,690 + def <<(30,752 + def ==(==33,802 + def <=(<=36,872 + def <=>(<=>39,943 + def ===(===42,990 + def module_instance_method46,1051 + def ModuleExample.module_class_method49,1131 ruby-src/test1.ruby,37 class A1,0 @@ -3362,722 +3362,722 @@ tex-src/gzip.texi,303 @node Problems,460,16767 @node Concept Index,Concept Index473,17287 -tex-src/texinfo.tex,30626 -\def\texinfoversion{\texinfoversion25,1019 -\def\tie{\tie48,1510 -\def\gloggingall{\gloggingall71,2260 -\def\loggingall{\loggingall72,2329 -\def\onepageout#1{\onepageout98,3266 -\def\croppageout#1{\croppageout114,4016 -\def\cropmarks{\cropmarks141,5076 -\def\pagebody#1{\pagebody143,5123 -\def\ewtop{\ewtop156,5578 -\def\nstop{\nstop157,5642 -\def\ewbot{\ewbot159,5725 -\def\nsbot{\nsbot160,5789 -\def\parsearg #1{\parsearg169,6088 -\def\parseargx{\parseargx171,6166 -\def\parseargline{\parseargline181,6406 -\def\flushcr{\flushcr185,6527 -\newif\ifENV \ENVfalse \def\inENV{\inENV189,6726 -\def\ENVcheck{\ENVcheck190,6790 -\outer\def\begin{\begin197,7037 -\def\beginxxx #1{\beginxxx199,7075 -\def\end{\end207,7330 -\def\endxxx #1{\endxxx209,7358 -\def\errorE#1{\errorE215,7547 -\def\singlespace{\singlespace221,7741 -\def\@{\@231,7964 -\def\`{\`235,8064 -\def\'{\'236,8076 -\def\mylbrace {\mylbrace240,8124 -\def\myrbrace {\myrbrace241,8157 -\def\:{\:246,8271 -\def\*{\*249,8325 -\def\.{\.252,8401 -\def\w#1{\w257,8632 -\def\group{\group267,9115 - \def\Egroup{\Egroup272,9279 -\def\need{\need288,9721 -\def\needx#1{\needx299,9998 -\def\dots{\dots338,11384 -\def\page{\page342,11448 -\def\exdent{\exdent352,11775 -\def\exdentyyy #1{\exdentyyy353,11808 -\def\nofillexdent{\nofillexdent356,11952 -\def\nofillexdentyyy #1{\nofillexdentyyy357,11997 -\def\include{\include364,12181 -\def\includezzz #1{\includezzz365,12216 -\def\thisfile{\thisfile368,12267 -\def\center{\center372,12330 -\def\centerzzz #1{\centerzzz373,12363 -\def\sp{\sp379,12505 -\def\spxxx #1{\spxxx380,12530 -\def\comment{\comment386,12704 -\def\commentxxx #1{\commentxxx389,12801 -\def\ignoresections{\ignoresections395,12970 -\let\chapter=\relax=\relax396,12992 -\let\section=\relax=\relax405,13237 -\let\subsection=\relax=\relax408,13298 -\let\subsubsection=\relax=\relax409,13321 -\let\appendix=\relax=\relax410,13347 -\let\appendixsec=\relaxsec=\relax411,13368 -\let\appendixsection=\relaxsection=\relax412,13392 -\let\appendixsubsec=\relaxsubsec=\relax413,13420 -\let\appendixsubsection=\relaxsubsection=\relax414,13447 -\let\appendixsubsubsec=\relaxsubsubsec=\relax415,13478 -\let\appendixsubsubsection=\relaxsubsubsection=\relax416,13508 -\def\ignore{\ignore422,13610 -\long\def\ignorexxx #1\end ignore{\ignorexxx426,13750 -\def\direntry{\direntry428,13809 -\long\def\direntryxxx #1\end direntry{\direntryxxx429,13848 -\def\ifset{\ifset433,13958 -\def\ifsetxxx #1{\ifsetxxx435,14016 -\def\Eifset{\Eifset439,14143 -\def\ifsetfail{\ifsetfail440,14157 -\long\def\ifsetfailxxx #1\end ifset{\ifsetfailxxx441,14213 -\def\ifclear{\ifclear443,14274 -\def\ifclearxxx #1{\ifclearxxx445,14336 -\def\Eifclear{\Eifclear449,14467 -\def\ifclearfail{\ifclearfail450,14483 -\long\def\ifclearfailxxx #1\end ifclear{\ifclearfailxxx451,14543 -\def\set{\set455,14694 -\def\setxxx #1{\setxxx456,14721 -\def\clear{\clear459,14783 -\def\clearxxx #1{\clearxxx460,14814 -\def\iftex{\iftex465,14931 -\def\Eiftex{\Eiftex466,14944 -\def\ifinfo{\ifinfo467,14958 -\long\def\ifinfoxxx #1\end ifinfo{\ifinfoxxx468,15008 -\long\def\menu #1\end menu{\menu470,15067 -\def\asis#1{\asis471,15096 -\def\math#1{\math484,15639 -\def\node{\node486,15683 -\def\nodezzz#1{\nodezzz487,15721 -\def\nodexxx[#1,#2]{\nodexxx[488,15752 -\def\donoderef{\donoderef491,15814 -\def\unnumbnoderef{\unnumbnoderef495,15935 -\def\appendixnoderef{\appendixnoderef499,16066 -\expandafter\expandafter\expandafter\appendixsetref{setref500,16112 -\let\refill=\relaxill=\relax503,16201 -\def\setfilename{\setfilename508,16415 -\outer\def\bye{\bye517,16661 -\def\inforef #1{\inforef519,16717 -\def\inforefzzz #1,#2,#3,#4**{\inforefzzz520,16755 -\def\losespace #1{\losespace522,16852 -\def\sf{\sf531,17056 -\font\defbf=cmbx10 scaled \magstep1 %was 1314bf=cmbx10557,17851 -\font\deftt=cmtt10 scaled \magstep1tt=cmtt10558,17897 -\def\df{\df559,17933 -\def\resetmathfonts{\resetmathfonts634,20527 -\def\textfonts{\textfonts647,21116 -\def\chapfonts{\chapfonts652,21331 -\def\secfonts{\secfonts657,21547 -\def\subsecfonts{\subsecfonts662,21752 -\def\indexfonts{\indexfonts667,21969 -\def\smartitalicx{\smartitalicx690,22701 -\def\smartitalic#1{\smartitalic691,22777 -\let\cite=\smartitalic=\smartitalic697,22922 -\def\b#1{\b699,22946 -\def\t#1{\t702,22981 -\def\samp #1{\samp705,23133 -\def\key #1{\key706,23166 -\def\ctrl #1{\ctrl707,23227 -\def\tclose#1{\tclose715,23429 -\def\ {\719,23595 -\def\xkey{\xkey727,23864 -\def\kbdfoo#1#2#3\par{\kbdfoo728,23880 -\def\dmn#1{\dmn737,24181 -\def\kbd#1{\kbd739,24208 -\def\l#1{\l741,24265 -\def\r#1{\r743,24294 -\def\sc#1{\sc745,24362 -\def\ii#1{\ii746,24405 -\def\titlefont#1{\titlefont754,24638 -\def\titlepage{\titlepage760,24741 - \def\subtitlefont{\subtitlefont765,24968 - \def\authorfont{\authorfont767,25052 - \def\title{\title773,25262 - \def\titlezzz##1{\titlezzz774,25297 - \def\subtitle{\subtitle782,25612 - \def\subtitlezzz##1{\subtitlezzz783,25653 - \def\author{\author786,25771 - \def\authorzzz##1{\authorzzz787,25808 - \def\page{\page793,26099 -\def\Etitlepage{\Etitlepage803,26268 -\def\finishtitlepage{\finishtitlepage816,26656 -\def\evenheading{\evenheading845,27664 -\def\oddheading{\oddheading846,27707 -\def\everyheading{\everyheading847,27748 -\def\evenfooting{\evenfooting849,27794 -\def\oddfooting{\oddfooting850,27837 -\def\everyfooting{\everyfooting851,27878 -\def\headings #1 {\headings892,29570 -\def\HEADINGSoff{\HEADINGSoff894,29619 -\def\HEADINGSdouble{\HEADINGSdouble903,30046 -\def\HEADINGSsingle{\HEADINGSsingle913,30366 -\def\HEADINGSon{\HEADINGSon921,30587 -\def\HEADINGSafter{\HEADINGSafter923,30621 -\def\HEADINGSdoublex{\HEADINGSdoublex925,30716 -\def\HEADINGSsingleafter{\HEADINGSsingleafter932,30904 -\def\HEADINGSsinglex{\HEADINGSsinglex933,30965 -\def\today{\today942,31240 -\def\thistitle{\thistitle957,31785 -\def\settitle{\settitle958,31810 -\def\settitlezzz #1{\settitlezzz959,31847 -\def\internalBitem{\internalBitem991,32777 -\def\internalBitemx{\internalBitemx992,32827 -\def\internalBxitem "#1"{\internalBxitem994,32872 -\def\internalBxitemx "#1"{\internalBxitemx995,32952 -\def\internalBkitem{\internalBkitem997,33027 -\def\internalBkitemx{\internalBkitemx998,33079 -\def\kitemzzz #1{\kitemzzz1000,33126 -\def\xitemzzz #1{\xitemzzz1003,33228 -\def\itemzzz #1{\itemzzz1006,33331 -\def\item{\item1036,34402 -\def\itemx{\itemx1037,34453 -\def\kitem{\kitem1038,34506 -\def\kitemx{\kitemx1039,34559 -\def\xitem{\xitem1040,34614 -\def\xitemx{\xitemx1041,34667 -\def\description{\description1044,34777 -\def\table{\table1046,34827 -\def\ftable{\ftable1051,34971 -\def\Eftable{\Eftable1055,35117 -\def\vtable{\vtable1058,35186 -\def\Evtable{\Evtable1062,35332 -\def\dontindex #1{\dontindex1065,35401 -\def\fnitemindex #1{\fnitemindex1066,35421 -\def\vritemindex #1{\vritemindex1067,35466 -\def\tablez #1#2#3#4#5#6{\tablez1073,35615 -\def\Edescription{\Edescription1076,35673 -\def\itemfont{\itemfont1081,35875 -\def\Etable{\Etable1089,36101 -\def\itemize{\itemize1102,36425 -\def\itemizezzz #1{\itemizezzz1104,36461 -\def\itemizey #1#2{\itemizey1109,36556 -\def#2{1118,36802 -\def\itemcontents{\itemcontents1119,36843 -\def\bullet{\bullet1122,36891 -\def\minus{\minus1123,36918 -\def\frenchspacing{\frenchspacing1127,37026 -\def\splitoff#1#2\endmark{\splitoff1133,37251 -\def\enumerate{\enumerate1139,37481 -\def\enumeratezzz #1{\enumeratezzz1140,37520 -\def\enumeratey #1 #2\endenumeratey{\enumeratey1141,37573 - \def\thearg{\thearg1145,37720 - \ifx\thearg\empty \def\thearg{\thearg1146,37739 -\def\numericenumerate{\numericenumerate1183,39073 -\def\lowercaseenumerate{\lowercaseenumerate1189,39203 -\def\uppercaseenumerate{\uppercaseenumerate1202,39550 -\def\startenumeration#1{\startenumeration1218,40040 -\def\alphaenumerate{\alphaenumerate1226,40222 -\def\capsenumerate{\capsenumerate1227,40257 -\def\Ealphaenumerate{\Ealphaenumerate1228,40291 -\def\Ecapsenumerate{\Ecapsenumerate1229,40325 -\def\itemizeitem{\itemizeitem1233,40405 -\def\newindex #1{\newindex1258,41262 -\def\defindex{\defindex1267,41551 -\def\newcodeindex #1{\newcodeindex1271,41659 -\def\defcodeindex{\defcodeindex1278,41919 -\def\synindex #1 #2 {\synindex1282,42099 -\def\syncodeindex #1 #2 {\syncodeindex1291,42439 -\def\doindex#1{\doindex1308,43118 -\def\singleindexer #1{\singleindexer1309,43177 -\def\docodeindex#1{\docodeindex1312,43289 -\def\singlecodeindexer #1{\singlecodeindexer1313,43356 -\def\indexdummies{\indexdummies1315,43414 -\def\_{\_1316,43434 -\def\w{\w1317,43462 -\def\bf{\bf1318,43489 -\def\rm{\rm1319,43518 -\def\sl{\sl1320,43547 -\def\sf{\sf1321,43576 -\def\tt{\tt1322,43604 -\def\gtr{\gtr1323,43632 -\def\less{\less1324,43662 -\def\hat{\hat1325,43694 -\def\char{\char1326,43724 -\def\TeX{\TeX1327,43756 -\def\dots{\dots1328,43786 -\def\copyright{\copyright1329,43819 -\def\tclose##1{\tclose1330,43862 -\def\code##1{\code1331,43907 -\def\samp##1{\samp1332,43948 -\def\t##1{\t1333,43989 -\def\r##1{\r1334,44024 -\def\i##1{\i1335,44059 -\def\b##1{\b1336,44094 -\def\cite##1{\cite1337,44129 -\def\key##1{\key1338,44170 -\def\file##1{\file1339,44209 -\def\var##1{\var1340,44250 -\def\kbd##1{\kbd1341,44289 -\def\indexdummyfont#1{\indexdummyfont1346,44445 -\def\indexdummytex{\indexdummytex1347,44471 -\def\indexdummydots{\indexdummydots1348,44495 -\def\indexnofonts{\indexnofonts1350,44521 -\let\w=\indexdummyfontdummyfont1351,44541 -\let\t=\indexdummyfontdummyfont1352,44564 -\let\r=\indexdummyfontdummyfont1353,44587 -\let\i=\indexdummyfontdummyfont1354,44610 -\let\b=\indexdummyfontdummyfont1355,44633 -\let\emph=\indexdummyfontdummyfont1356,44656 -\let\strong=\indexdummyfontdummyfont1357,44682 -\let\cite=\indexdummyfont=\indexdummyfont1358,44710 -\let\sc=\indexdummyfontdummyfont1359,44736 -\let\tclose=\indexdummyfontdummyfont1363,44908 -\let\code=\indexdummyfontdummyfont1364,44936 -\let\file=\indexdummyfontdummyfont1365,44962 -\let\samp=\indexdummyfontdummyfont1366,44988 -\let\kbd=\indexdummyfontdummyfont1367,45014 -\let\key=\indexdummyfontdummyfont1368,45039 -\let\var=\indexdummyfontdummyfont1369,45064 -\let\TeX=\indexdummytexdummytex1370,45089 -\let\dots=\indexdummydotsdummydots1371,45113 -\let\indexbackslash=0 %overridden during \printindex.backslash=01381,45365 -\def\doind #1#2{\doind1383,45421 -{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1385,45464 -\def\rawbackslashxx{\rawbackslashxx1388,45604 -{\indexnofontsnofonts1393,45866 -\def\dosubind #1#2#3{\dosubind1404,46177 -{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1406,46225 -\def\rawbackslashxx{\rawbackslashxx1409,46329 -{\indexnofontsnofonts1413,46483 -\def\findex {\findex1442,47414 -\def\kindex {\kindex1443,47437 -\def\cindex {\cindex1444,47460 -\def\vindex {\vindex1445,47483 -\def\tindex {\tindex1446,47506 -\def\pindex {\pindex1447,47529 -\def\cindexsub {\cindexsub1449,47553 -\def\printindex{\printindex1461,47880 -\def\doprintindex#1{\doprintindex1463,47921 - \def\indexbackslash{\indexbackslash1480,48406 - \indexfonts\rm \tolerance=9500 \advance\baselineskip -1ptfonts\rm1481,48445 -\def\initial #1{\initial1516,49517 -\def\entry #1#2{\entry1522,49724 - \null\nobreak\indexdotfill % Have leaders before the page number.dotfill1539,50371 -\def\indexdotfill{\indexdotfill1548,50699 -\def\primary #1{\primary1551,50805 -\def\secondary #1#2{\secondary1555,50887 -\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\pardotfill1558,50969 -\newbox\partialpageialpage1565,51142 -\def\begindoublecolumns{\begindoublecolumns1571,51300 - \output={\global\setbox\partialpage=ialpage=1572,51336 -\def\enddoublecolumns{\enddoublecolumns1576,51524 -\def\doublecolumnout{\doublecolumnout1579,51609 - \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1580,51678 -\def\pagesofar{\pagesofar1583,51856 -\def\balancecolumns{\balancecolumns1587,52093 - \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpageialpage1593,52264 - \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1599,52525 -\newcount \appendixno \appendixno = `\@no1626,53430 -\def\appendixletter{\appendixletter1627,53471 -\def\opencontents{\opencontents1631,53574 -\def\thischapter{\thischapter1636,53755 -\def\seccheck#1{\seccheck1637,53793 -\def\chapternofonts{\chapternofonts1642,53897 -\def\result{\result1645,53972 -\def\equiv{\equiv1646,54007 -\def\expansion{\expansion1647,54040 -\def\print{\print1648,54081 -\def\TeX{\TeX1649,54114 -\def\dots{\dots1650,54143 -\def\copyright{\copyright1651,54174 -\def\tt{\tt1652,54215 -\def\bf{\bf1653,54242 -\def\w{\w1654,54270 -\def\less{\less1655,54295 -\def\gtr{\gtr1656,54326 -\def\hat{\hat1657,54355 -\def\char{\char1658,54384 -\def\tclose##1{\tclose1659,54415 -\def\code##1{\code1660,54459 -\def\samp##1{\samp1661,54499 -\def\r##1{\r1662,54539 -\def\b##1{\b1663,54573 -\def\key##1{\key1664,54607 -\def\file##1{\file1665,54645 -\def\kbd##1{\kbd1666,54685 -\def\i##1{\i1668,54793 -\def\cite##1{\cite1669,54827 -\def\var##1{\var1670,54867 -\def\emph##1{\emph1671,54905 -\def\dfn##1{\dfn1672,54945 -\def\thischaptername{\thischaptername1675,54986 -\outer\def\chapter{\chapter1676,55025 -\def\chapterzzz #1{\chapterzzz1677,55066 -{\chapternofonts%nofonts%1686,55462 -\global\let\section = \numberedsec=1691,55615 -\global\let\subsection = \numberedsubsec=1692,55650 -\global\let\subsubsection = \numberedsubsubsec=1693,55691 -\outer\def\appendix{\appendix1696,55742 -\def\appendixzzz #1{\appendixzzz1697,55785 -\global\advance \appendixno by 1 \message{no1699,55862 -\chapmacro {#1}{Appendix \appendixletter}letter1700,55931 -\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}letter:1703,56024 -{\chapternofonts%nofonts%1704,56096 - {#1}{Appendix \appendixletter}letter1706,56152 -\appendixnoderef %noderef1709,56252 -\global\let\section = \appendixsec=1710,56271 -\global\let\subsection = \appendixsubsec=1711,56306 -\global\let\subsubsection = \appendixsubsubsec=1712,56347 -\outer\def\top{\top1715,56398 -\outer\def\unnumbered{\unnumbered1716,56438 -\def\unnumberedzzz #1{\unnumberedzzz1717,56485 -{\chapternofonts%nofonts%1721,56648 -\global\let\section = \unnumberedsec=1726,56798 -\global\let\subsection = \unnumberedsubsec=1727,56835 -\global\let\subsubsection = \unnumberedsubsubsec=1728,56878 -\outer\def\numberedsec{\numberedsec1731,56931 -\def\seczzz #1{\seczzz1732,56972 -{\chapternofonts%nofonts%1735,57128 -\outer\def\appendixsection{\appendixsection1744,57314 -\outer\def\appendixsec{\appendixsec1745,57371 -\def\appendixsectionzzz #1{\appendixsectionzzz1746,57424 -\gdef\thissection{#1}\secheading {#1}{\appendixletter}letter1748,57536 -{\chapternofonts%nofonts%1749,57604 -{#1}{\appendixletter}letter1751,57660 -\appendixnoderef %noderef1754,57760 -\outer\def\unnumberedsec{\unnumberedsec1758,57800 -\def\unnumberedseczzz #1{\unnumberedseczzz1759,57853 -{\chapternofonts%nofonts%1761,57948 -\outer\def\numberedsubsec{\numberedsubsec1769,58116 -\def\numberedsubseczzz #1{\numberedsubseczzz1770,58171 -{\chapternofonts%nofonts%1773,58350 -\outer\def\appendixsubsec{\appendixsubsec1782,58554 -\def\appendixsubseczzz #1{\appendixsubseczzz1783,58609 -\subsecheading {#1}{\appendixletter}letter1785,58731 -{\chapternofonts%nofonts%1786,58796 -{#1}{\appendixletter}letter1788,58855 -\appendixnoderef %noderef1791,58970 -\outer\def\unnumberedsubsec{\unnumberedsubsec1795,59010 -\def\unnumberedsubseczzz #1{\unnumberedsubseczzz1796,59069 -{\chapternofonts%nofonts%1798,59170 -\outer\def\numberedsubsubsec{\numberedsubsubsec1806,59341 -\def\numberedsubsubseczzz #1{\numberedsubsubseczzz1807,59402 -{\chapternofonts%nofonts%1811,59599 -\outer\def\appendixsubsubsec{\appendixsubsubsec1822,59832 -\def\appendixsubsubseczzz #1{\appendixsubsubseczzz1823,59893 - {\appendixletter}letter1826,60032 -{\chapternofonts%nofonts%1827,60098 - {\appendixletter}letter1829,60163 -\appendixnoderef %noderef1833,60297 -\outer\def\unnumberedsubsubsec{\unnumberedsubsubsec1837,60337 -\def\unnumberedsubsubseczzz #1{\unnumberedsubsubseczzz1838,60402 -{\chapternofonts%nofonts%1840,60509 -\def\infotop{\infotop1850,60838 -\def\infounnumbered{\infounnumbered1851,60876 -\def\infounnumberedsec{\infounnumberedsec1852,60921 -\def\infounnumberedsubsec{\infounnumberedsubsec1853,60972 -\def\infounnumberedsubsubsec{\infounnumberedsubsubsec1854,61029 -\def\infoappendix{\infoappendix1856,61093 -\def\infoappendixsec{\infoappendixsec1857,61134 -\def\infoappendixsubsec{\infoappendixsubsec1858,61181 -\def\infoappendixsubsubsec{\infoappendixsubsubsec1859,61234 -\def\infochapter{\infochapter1861,61294 -\def\infosection{\infosection1862,61333 -\def\infosubsection{\infosubsection1863,61372 -\def\infosubsubsection{\infosubsubsection1864,61417 -\global\let\section = \numberedsec=1869,61654 -\global\let\subsection = \numberedsubsec=1870,61689 -\global\let\subsubsection = \numberedsubsubsec=1871,61730 -\def\majorheading{\majorheading1885,62237 -\def\majorheadingzzz #1{\majorheadingzzz1886,62282 -\def\chapheading{\chapheading1892,62515 -\def\chapheadingzzz #1{\chapheadingzzz1893,62558 -\def\heading{\heading1898,62753 -\def\subheading{\subheading1900,62790 -\def\subsubheading{\subsubheading1902,62833 -\def\dobreak#1#2{\dobreak1909,63110 -\def\setchapterstyle #1 {\setchapterstyle1911,63188 -\def\chapbreak{\chapbreak1918,63443 -\def\chappager{\chappager1919,63493 -\def\chapoddpage{\chapoddpage1920,63531 -\def\setchapternewpage #1 {\setchapternewpage1922,63610 -\def\CHAPPAGoff{\CHAPPAGoff1924,63667 -\def\CHAPPAGon{\CHAPPAGon1928,63761 -\global\def\HEADINGSon{\HEADINGSon1931,63852 -\def\CHAPPAGodd{\CHAPPAGodd1933,63894 -\global\def\HEADINGSon{\HEADINGSon1936,63990 -\def\CHAPFplain{\CHAPFplain1940,64044 -\def\chfplain #1#2{\chfplain1944,64136 -\def\unnchfplain #1{\unnchfplain1955,64359 -\def\unnchfopen #1{\unnchfopen1963,64588 -\def\chfopen #1#2{\chfopen1969,64796 -\def\CHAPFopen{\CHAPFopen1974,64940 -\def\subsecheadingbreak{\subsecheadingbreak1981,65158 -\def\secheadingbreak{\secheadingbreak1984,65287 -\def\secheading #1#2#3{\secheading1992,65569 -\def\plainsecheading #1{\plainsecheading1993,65625 -\def\secheadingi #1{\secheadingi1994,65668 -\def\subsecheading #1#2#3#4{\subsecheading2005,66036 -\def\subsecheadingi #1{\subsecheadingi2006,66103 -\def\subsubsecfonts{\subsubsecfonts2013,66400 -\def\subsubsecheading #1#2#3#4#5{\subsubsecheading2016,66523 -\def\subsubsecheadingi #1{\subsubsecheadingi2017,66601 -\def\startcontents#1{\startcontents2031,67073 - \unnumbchapmacro{#1}\def\thischapter{\thischapter2039,67346 -\outer\def\contents{\contents2048,67705 -\outer\def\summarycontents{\summarycontents2056,67849 - \def\secentry ##1##2##3##4{\secentry2066,68220 - \def\unnumbsecentry ##1##2{\unnumbsecentry2067,68255 - \def\subsecentry ##1##2##3##4##5{\subsecentry2068,68290 - \def\unnumbsubsecentry ##1##2{\unnumbsubsecentry2069,68331 - \def\subsubsecentry ##1##2##3##4##5##6{\subsubsecentry2070,68369 - \def\unnumbsubsubsecentry ##1##2{\unnumbsubsubsecentry2071,68416 -\def\chapentry#1#2#3{\chapentry2084,68850 -\def\shortchapentry#1#2#3{\shortchapentry2087,68967 - {#2\labelspace #1}space2090,69077 -\def\unnumbchapentry#1#2{\unnumbchapentry2093,69131 -\def\shortunnumberedentry#1#2{\shortunnumberedentry2094,69178 -\def\secentry#1#2#3#4{\secentry2101,69342 -\def\unnumbsecentry#1#2{\unnumbsecentry2102,69401 -\def\subsecentry#1#2#3#4#5{\subsecentry2105,69462 -\def\unnumbsubsecentry#1#2{\unnumbsubsecentry2106,69532 -\def\subsubsecentry#1#2#3#4#5#6{\subsubsecentry2109,69606 - \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}space2110,69640 -\def\unnumbsubsubsecentry#1#2{\unnumbsubsubsecentry2111,69691 -\def\dochapentry#1#2{\dochapentry2122,70065 -\def\dosecentry#1#2{\dosecentry2137,70670 -\def\dosubsecentry#1#2{\dosubsecentry2144,70848 -\def\dosubsubsecentry#1#2{\dosubsubsecentry2151,71033 -\def\labelspace{\labelspace2159,71284 -\def\dopageno#1{\dopageno2161,71319 -\def\doshortpageno#1{\doshortpageno2162,71345 -\def\chapentryfonts{\chapentryfonts2164,71377 -\def\secentryfonts{\secentryfonts2165,71412 -\def\point{\point2191,72371 -\def\result{\result2193,72392 -\def\expansion{\expansion2194,72465 -\def\print{\print2195,72536 -\def\equiv{\equiv2197,72603 -\def\error{\error2217,73376 -\def\tex{\tex2223,73605 -\def\@{\@2241,73988 -\gdef\sepspaces{\def {\ }}}\2264,74720 -\def\aboveenvbreak{\aboveenvbreak2267,74802 -\def\afterenvbreak{\afterenvbreak2271,74968 -\def\ctl{\ctl2285,75479 -\def\ctr{\ctr2286,75551 -\def\cbl{\cbl2287,75590 -\def\cbr{\cbr2288,75630 -\def\carttop{\carttop2289,75669 -\def\cartbot{\cartbot2292,75777 -\long\def\cartouche{\cartouche2298,75917 -\def\Ecartouche{\Ecartouche2325,76705 -\def\lisp{\lisp2337,76840 -\def\Elisp{\Elisp2347,77187 -\def\next##1{\next2359,77513 -\def\Eexample{\Eexample2363,77555 -\def\Esmallexample{\Esmallexample2366,77602 -\def\smalllispx{\smalllispx2372,77780 -\def\Esmalllisp{\Esmalllisp2382,78134 -\obeyspaces \obeylines \ninett \indexfonts \rawbackslashfonts2395,78490 -\def\next##1{\next2396,78547 -\def\display{\display2400,78627 -\def\Edisplay{\Edisplay2409,78946 -\def\next##1{\next2421,79257 -\def\format{\format2425,79360 -\def\Eformat{\Eformat2433,79656 -\def\next##1{\next2436,79745 -\def\flushleft{\flushleft2440,79797 -\def\Eflushleft{\Eflushleft2450,80168 -\def\next##1{\next2453,80261 -\def\flushright{\flushright2455,80283 -\def\Eflushright{\Eflushright2465,80655 -\def\next##1{\next2469,80786 -\def\quotation{\quotation2473,80844 -\def\Equotation{\Equotation2479,81036 -\def\setdeffont #1 {\setdeffont2492,81434 -\newskip\defbodyindent \defbodyindent=.4inbodyindent2494,81480 -\newskip\defargsindent \defargsindent=50ptargsindent2495,81523 -\newskip\deftypemargin \deftypemargin=12pttypemargin2496,81566 -\newskip\deflastargmargin \deflastargmargin=18ptlastargmargin2497,81609 -\def\activeparens{\activeparens2502,81807 -\def\opnr{\opnr2528,83019 -\def\lbrb{\lbrb2529,83084 -\def\defname #1#2{\defname2535,83285 -\advance\dimen2 by -\defbodyindentbodyindent2539,83403 -\advance\dimen3 by -\defbodyindentbodyindent2541,83457 -\setbox0=\hbox{\hskip \deflastargmargin{lastargmargin2543,83511 -\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuationsargsindent2545,83653 -\parshape 2 0in \dimen0 \defargsindent \dimen1 %argsindent2546,83728 -\rlap{\rightline{{\rm #2}\hskip \deftypemargin}typemargin2553,84097 -\advance\leftskip by -\defbodyindentbodyindent2556,84231 -\exdentamount=\defbodyindentbodyindent2557,84268 -\def\defparsebody #1#2#3{\defparsebody2567,84627 -\def#1{2571,84811 -\def#2{2572,84847 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2574,84919 -\exdentamount=\defbodyindentbodyindent2575,84993 -\def\defmethparsebody #1#2#3#4 {\defmethparsebody2580,85097 -\def#1{2584,85258 -\def#2##1 {2585,85294 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2587,85377 -\exdentamount=\defbodyindentbodyindent2588,85451 -\def\defopparsebody #1#2#3#4#5 {\defopparsebody2591,85536 -\def#1{2595,85697 -\def#2##1 ##2 {2596,85733 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2599,85833 -\exdentamount=\defbodyindentbodyindent2600,85907 -\def\defvarparsebody #1#2#3{\defvarparsebody2607,86178 -\def#1{2611,86365 -\def#2{2612,86401 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2614,86460 -\exdentamount=\defbodyindentbodyindent2615,86534 -\def\defvrparsebody #1#2#3#4 {\defvrparsebody2620,86625 -\def#1{2624,86784 -\def#2##1 {2625,86820 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2627,86890 -\exdentamount=\defbodyindentbodyindent2628,86964 -\def\defopvarparsebody #1#2#3#4#5 {\defopvarparsebody2631,87036 -\def#1{2635,87200 -\def#2##1 ##2 {2636,87236 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2639,87323 -\exdentamount=\defbodyindentbodyindent2640,87397 -\def\defunargs #1{\defunargs2663,88157 -\def\deftypefunargs #1{\deftypefunargs2675,88539 -\def\deffn{\deffn2689,88921 -\def\deffnheader #1#2#3{\deffnheader2691,88978 -\begingroup\defname {name2692,89026 -\def\defun{\defun2698,89171 -\def\defunheader #1#2{\defunheader2700,89224 -\begingroup\defname {name2701,89299 -\defunargs {unargs2702,89335 -\def\deftypefun{\deftypefun2708,89483 -\def\deftypefunheader #1#2{\deftypefunheader2711,89605 -\def\deftypefunheaderx #1#2 #3\relax{\deftypefunheaderx2713,89714 -\begingroup\defname {name2715,89806 -\deftypefunargs {typefunargs2716,89852 -\def\deftypefn{\deftypefn2722,90023 -\def\deftypefnheader #1#2#3{\deftypefnheader2725,90172 -\def\deftypefnheaderx #1#2#3 #4\relax{\deftypefnheaderx2727,90308 -\begingroup\defname {name2729,90401 -\deftypefunargs {typefunargs2730,90441 -\def\defmac{\defmac2736,90562 -\def\defmacheader #1#2{\defmacheader2738,90619 -\begingroup\defname {name2739,90695 -\defunargs {unargs2740,90728 -\def\defspec{\defspec2746,90852 -\def\defspecheader #1#2{\defspecheader2748,90913 -\begingroup\defname {name2749,90990 -\defunargs {unargs2750,91030 -\def\deffnx #1 {\deffnx2757,91225 -\def\defunx #1 {\defunx2758,91282 -\def\defmacx #1 {\defmacx2759,91339 -\def\defspecx #1 {\defspecx2760,91398 -\def\deftypefnx #1 {\deftypefnx2761,91459 -\def\deftypeunx #1 {\deftypeunx2762,91524 -\def\defop #1 {\defop2768,91670 -\defopparsebody\Edefop\defopx\defopheader\defoptype}opparsebody\Edefop\defopx\defopheader\defoptype2769,91705 -\def\defopheader #1#2#3{\defopheader2771,91759 -\begingroup\defname {name2773,91848 -\defunargs {unargs2774,91894 -\def\defmethod{\defmethod2779,91955 -\def\defmethodheader #1#2#3{\defmethodheader2781,92028 -\begingroup\defname {name2783,92116 -\defunargs {unargs2784,92156 -\def\defcv #1 {\defcv2789,92230 -\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}opvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype2790,92265 -\def\defcvarheader #1#2#3{\defcvarheader2792,92324 -\begingroup\defname {name2794,92410 -\defvarargs {varargs2795,92456 -\def\defivar{\defivar2800,92529 -\def\defivarheader #1#2#3{\defivarheader2802,92592 -\begingroup\defname {name2804,92678 -\defvarargs {varargs2805,92729 -\def\defopx #1 {\defopx2811,92878 -\def\defmethodx #1 {\defmethodx2812,92935 -\def\defcvx #1 {\defcvx2813,93000 -\def\defivarx #1 {\defivarx2814,93057 -\def\defvarargs #1{\defvarargs2821,93328 -\def\defvr{\defvr2827,93472 -\def\defvrheader #1#2#3{\defvrheader2829,93527 -\begingroup\defname {name2830,93575 -\def\defvar{\defvar2834,93660 -\def\defvarheader #1#2{\defvarheader2836,93720 -\begingroup\defname {name2837,93791 -\defvarargs {varargs2838,93827 -\def\defopt{\defopt2843,93893 -\def\defoptheader #1#2{\defoptheader2845,93953 -\begingroup\defname {name2846,94024 -\defvarargs {varargs2847,94063 -\def\deftypevar{\deftypevar2852,94120 -\def\deftypevarheader #1#2{\deftypevarheader2855,94236 -\begingroup\defname {name2857,94319 -\def\deftypevr{\deftypevr2864,94493 -\def\deftypevrheader #1#2#3{\deftypevrheader2866,94564 -\begingroup\defname {name2867,94616 -\def\defvrx #1 {\defvrx2875,94853 -\def\defvarx #1 {\defvarx2876,94910 -\def\defoptx #1 {\defoptx2877,94969 -\def\deftypevarx #1 {\deftypevarx2878,95028 -\def\deftypevrx #1 {\deftypevrx2879,95095 -\def\deftpargs #1{\deftpargs2884,95244 -\def\deftp{\deftp2888,95324 -\def\deftpheader #1#2#3{\deftpheader2890,95379 -\begingroup\defname {name2891,95427 -\def\deftpx #1 {\deftpx2896,95586 -\def\setref#1{\setref2907,95907 -\def\unnumbsetref#1{\unnumbsetref2912,96021 -\def\appendixsetref#1{\appendixsetref2917,96128 -\def\pxref#1{\pxref2928,96539 -\def\xref#1{\xref2929,96575 -\def\ref#1{\ref2930,96610 -\def\xrefX[#1,#2,#3,#4,#5,#6]{\xrefX[2931,96640 -\def\printedmanual{\printedmanual2932,96683 -\def\printednodename{\printednodename2933,96721 -\def\printednodename{\printednodename2938,96846 -section ``\printednodename'' in \cite{\printedmanual}\printedmanual2953,97479 -\refx{x2956,97557 -\def\dosetq #1#2{\dosetq2964,97777 -\def\internalsetq #1#2{\internalsetq2972,98035 -\def\Ypagenumber{\Ypagenumber2976,98136 -\def\Ytitle{\Ytitle2978,98162 -\def\Ynothing{\Ynothing2980,98189 -\def\Ysectionnumberandtype{\Ysectionnumberandtype2982,98206 -\def\Yappendixletterandtype{\Yappendixletterandtype2991,98522 -\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{no2992,98552 -\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %no.\the\secno2993,98607 -Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %no.\the\secno.\the\subsecno2995,98711 -Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %no.\the\secno.\the\subsecno.\the\subsubsecno2997,98782 - \def\linenumber{\linenumber3008,99121 -\def\refx#1#2{\refx3014,99305 -\def\xrdef #1#2{\xrdef3036,99931 -\def\readauxfile{\readauxfile3039,100016 -\def\supereject{\supereject3109,101797 -\footstrut\parindent=\defaultparindent\hang\textindent{aultparindent\hang\textindent3130,102482 -\def\openindices{\openindices3138,102668 -\newdimen\defaultparindent \defaultparindent = 15ptaultparindent3150,102893 -\parindent = \defaultparindentaultparindent3151,102945 -\def\smallbook{\smallbook3174,103669 -\global\def\Esmallexample{\Esmallexample3191,104096 -\def\afourpaper{\afourpaper3195,104187 -\def\finalout{\finalout3223,104995 -\def\normaldoublequote{\normaldoublequote3234,105256 -\def\normaltilde{\normaltilde3235,105282 -\def\normalcaret{\normalcaret3236,105302 -\def\normalunderscore{\normalunderscore3237,105322 -\def\normalverticalbar{\normalverticalbar3238,105347 -\def\normalless{\normalless3239,105373 -\def\normalgreater{\normalgreater3240,105392 -\def\normalplus{\normalplus3241,105414 -\def\ifusingtt#1#2{\ifusingtt3252,105906 -\def\activedoublequote{\activedoublequote3260,106234 -\def~{~3263,106320 -\def^{^3266,106381 -\def_{_3269,106420 -\def\_{\_3271,106494 -\def\lvvmode{\lvvmode3278,106831 -\def|{|3281,106881 -\def<{<3284,106944 -\def>{>3287,107001 -\def+{+3289,107039 -\def\turnoffactive{\turnoffactive3295,107200 -\global\def={=3306,107486 -\def\normalbackslash{\normalbackslash3320,107868 +tex-src/texinfo.tex,30627 +\def\texinfoversion{\texinfoversion26,1027 +\def\tie{\tie49,1518 +\def\gloggingall{\gloggingall72,2268 +\def\loggingall{\loggingall73,2337 +\def\onepageout#1{\onepageout99,3274 +\def\croppageout#1{\croppageout115,4024 +\def\cropmarks{\cropmarks142,5084 +\def\pagebody#1{\pagebody144,5131 +\def\ewtop{\ewtop157,5586 +\def\nstop{\nstop158,5650 +\def\ewbot{\ewbot160,5733 +\def\nsbot{\nsbot161,5797 +\def\parsearg #1{\parsearg170,6096 +\def\parseargx{\parseargx172,6174 +\def\parseargline{\parseargline182,6414 +\def\flushcr{\flushcr186,6535 +\newif\ifENV \ENVfalse \def\inENV{\inENV190,6734 +\def\ENVcheck{\ENVcheck191,6798 +\outer\def\begin{\begin198,7045 +\def\beginxxx #1{\beginxxx200,7083 +\def\end{\end208,7338 +\def\endxxx #1{\endxxx210,7366 +\def\errorE#1{\errorE216,7555 +\def\singlespace{\singlespace222,7749 +\def\@{\@232,7972 +\def\`{\`236,8072 +\def\'{\'237,8084 +\def\mylbrace {\mylbrace241,8132 +\def\myrbrace {\myrbrace242,8165 +\def\:{\:247,8279 +\def\*{\*250,8333 +\def\.{\.253,8409 +\def\w#1{\w258,8640 +\def\group{\group268,9123 + \def\Egroup{\Egroup273,9287 +\def\need{\need289,9729 +\def\needx#1{\needx300,10006 +\def\dots{\dots339,11392 +\def\page{\page343,11456 +\def\exdent{\exdent353,11783 +\def\exdentyyy #1{\exdentyyy354,11816 +\def\nofillexdent{\nofillexdent357,11960 +\def\nofillexdentyyy #1{\nofillexdentyyy358,12005 +\def\include{\include365,12189 +\def\includezzz #1{\includezzz366,12224 +\def\thisfile{\thisfile369,12275 +\def\center{\center373,12338 +\def\centerzzz #1{\centerzzz374,12371 +\def\sp{\sp380,12513 +\def\spxxx #1{\spxxx381,12538 +\def\comment{\comment387,12712 +\def\commentxxx #1{\commentxxx390,12809 +\def\ignoresections{\ignoresections396,12978 +\let\chapter=\relax=\relax397,13000 +\let\section=\relax=\relax406,13245 +\let\subsection=\relax=\relax409,13306 +\let\subsubsection=\relax=\relax410,13329 +\let\appendix=\relax=\relax411,13355 +\let\appendixsec=\relaxsec=\relax412,13376 +\let\appendixsection=\relaxsection=\relax413,13400 +\let\appendixsubsec=\relaxsubsec=\relax414,13428 +\let\appendixsubsection=\relaxsubsection=\relax415,13455 +\let\appendixsubsubsec=\relaxsubsubsec=\relax416,13486 +\let\appendixsubsubsection=\relaxsubsubsection=\relax417,13516 +\def\ignore{\ignore423,13618 +\long\def\ignorexxx #1\end ignore{\ignorexxx427,13758 +\def\direntry{\direntry429,13817 +\long\def\direntryxxx #1\end direntry{\direntryxxx430,13856 +\def\ifset{\ifset434,13966 +\def\ifsetxxx #1{\ifsetxxx436,14024 +\def\Eifset{\Eifset440,14151 +\def\ifsetfail{\ifsetfail441,14165 +\long\def\ifsetfailxxx #1\end ifset{\ifsetfailxxx442,14221 +\def\ifclear{\ifclear444,14282 +\def\ifclearxxx #1{\ifclearxxx446,14344 +\def\Eifclear{\Eifclear450,14475 +\def\ifclearfail{\ifclearfail451,14491 +\long\def\ifclearfailxxx #1\end ifclear{\ifclearfailxxx452,14551 +\def\set{\set456,14702 +\def\setxxx #1{\setxxx457,14729 +\def\clear{\clear460,14791 +\def\clearxxx #1{\clearxxx461,14822 +\def\iftex{\iftex466,14939 +\def\Eiftex{\Eiftex467,14952 +\def\ifinfo{\ifinfo468,14966 +\long\def\ifinfoxxx #1\end ifinfo{\ifinfoxxx469,15016 +\long\def\menu #1\end menu{\menu471,15075 +\def\asis#1{\asis472,15104 +\def\math#1{\math485,15647 +\def\node{\node487,15691 +\def\nodezzz#1{\nodezzz488,15729 +\def\nodexxx[#1,#2]{\nodexxx[489,15760 +\def\donoderef{\donoderef492,15822 +\def\unnumbnoderef{\unnumbnoderef496,15943 +\def\appendixnoderef{\appendixnoderef500,16074 +\expandafter\expandafter\expandafter\appendixsetref{setref501,16120 +\let\refill=\relaxill=\relax504,16209 +\def\setfilename{\setfilename509,16423 +\outer\def\bye{\bye518,16669 +\def\inforef #1{\inforef520,16725 +\def\inforefzzz #1,#2,#3,#4**{\inforefzzz521,16763 +\def\losespace #1{\losespace523,16860 +\def\sf{\sf532,17064 +\font\defbf=cmbx10 scaled \magstep1 %was 1314bf=cmbx10558,17859 +\font\deftt=cmtt10 scaled \magstep1tt=cmtt10559,17905 +\def\df{\df560,17941 +\def\resetmathfonts{\resetmathfonts635,20535 +\def\textfonts{\textfonts648,21124 +\def\chapfonts{\chapfonts653,21339 +\def\secfonts{\secfonts658,21555 +\def\subsecfonts{\subsecfonts663,21760 +\def\indexfonts{\indexfonts668,21977 +\def\smartitalicx{\smartitalicx691,22709 +\def\smartitalic#1{\smartitalic692,22785 +\let\cite=\smartitalic=\smartitalic698,22930 +\def\b#1{\b700,22954 +\def\t#1{\t703,22989 +\def\samp #1{\samp706,23141 +\def\key #1{\key707,23174 +\def\ctrl #1{\ctrl708,23235 +\def\tclose#1{\tclose716,23437 +\def\ {\720,23603 +\def\xkey{\xkey728,23872 +\def\kbdfoo#1#2#3\par{\kbdfoo729,23888 +\def\dmn#1{\dmn738,24189 +\def\kbd#1{\kbd740,24216 +\def\l#1{\l742,24273 +\def\r#1{\r744,24302 +\def\sc#1{\sc746,24370 +\def\ii#1{\ii747,24413 +\def\titlefont#1{\titlefont755,24646 +\def\titlepage{\titlepage761,24749 + \def\subtitlefont{\subtitlefont766,24976 + \def\authorfont{\authorfont768,25060 + \def\title{\title774,25270 + \def\titlezzz##1{\titlezzz775,25305 + \def\subtitle{\subtitle783,25620 + \def\subtitlezzz##1{\subtitlezzz784,25661 + \def\author{\author787,25779 + \def\authorzzz##1{\authorzzz788,25816 + \def\page{\page794,26107 +\def\Etitlepage{\Etitlepage804,26276 +\def\finishtitlepage{\finishtitlepage817,26664 +\def\evenheading{\evenheading846,27672 +\def\oddheading{\oddheading847,27715 +\def\everyheading{\everyheading848,27756 +\def\evenfooting{\evenfooting850,27802 +\def\oddfooting{\oddfooting851,27845 +\def\everyfooting{\everyfooting852,27886 +\def\headings #1 {\headings893,29578 +\def\HEADINGSoff{\HEADINGSoff895,29627 +\def\HEADINGSdouble{\HEADINGSdouble904,30054 +\def\HEADINGSsingle{\HEADINGSsingle914,30374 +\def\HEADINGSon{\HEADINGSon922,30595 +\def\HEADINGSafter{\HEADINGSafter924,30629 +\def\HEADINGSdoublex{\HEADINGSdoublex926,30724 +\def\HEADINGSsingleafter{\HEADINGSsingleafter933,30912 +\def\HEADINGSsinglex{\HEADINGSsinglex934,30973 +\def\today{\today943,31248 +\def\thistitle{\thistitle958,31793 +\def\settitle{\settitle959,31818 +\def\settitlezzz #1{\settitlezzz960,31855 +\def\internalBitem{\internalBitem992,32785 +\def\internalBitemx{\internalBitemx993,32835 +\def\internalBxitem "#1"{\internalBxitem995,32880 +\def\internalBxitemx "#1"{\internalBxitemx996,32960 +\def\internalBkitem{\internalBkitem998,33035 +\def\internalBkitemx{\internalBkitemx999,33087 +\def\kitemzzz #1{\kitemzzz1001,33134 +\def\xitemzzz #1{\xitemzzz1004,33236 +\def\itemzzz #1{\itemzzz1007,33339 +\def\item{\item1037,34410 +\def\itemx{\itemx1038,34461 +\def\kitem{\kitem1039,34514 +\def\kitemx{\kitemx1040,34567 +\def\xitem{\xitem1041,34622 +\def\xitemx{\xitemx1042,34675 +\def\description{\description1045,34785 +\def\table{\table1047,34835 +\def\ftable{\ftable1052,34979 +\def\Eftable{\Eftable1056,35125 +\def\vtable{\vtable1059,35194 +\def\Evtable{\Evtable1063,35340 +\def\dontindex #1{\dontindex1066,35409 +\def\fnitemindex #1{\fnitemindex1067,35429 +\def\vritemindex #1{\vritemindex1068,35474 +\def\tablez #1#2#3#4#5#6{\tablez1074,35623 +\def\Edescription{\Edescription1077,35681 +\def\itemfont{\itemfont1082,35883 +\def\Etable{\Etable1090,36109 +\def\itemize{\itemize1103,36433 +\def\itemizezzz #1{\itemizezzz1105,36469 +\def\itemizey #1#2{\itemizey1110,36564 +\def#2{1119,36810 +\def\itemcontents{\itemcontents1120,36851 +\def\bullet{\bullet1123,36899 +\def\minus{\minus1124,36926 +\def\frenchspacing{\frenchspacing1128,37034 +\def\splitoff#1#2\endmark{\splitoff1134,37259 +\def\enumerate{\enumerate1140,37489 +\def\enumeratezzz #1{\enumeratezzz1141,37528 +\def\enumeratey #1 #2\endenumeratey{\enumeratey1142,37581 + \def\thearg{\thearg1146,37728 + \ifx\thearg\empty \def\thearg{\thearg1147,37747 +\def\numericenumerate{\numericenumerate1184,39081 +\def\lowercaseenumerate{\lowercaseenumerate1190,39211 +\def\uppercaseenumerate{\uppercaseenumerate1203,39558 +\def\startenumeration#1{\startenumeration1219,40048 +\def\alphaenumerate{\alphaenumerate1227,40230 +\def\capsenumerate{\capsenumerate1228,40265 +\def\Ealphaenumerate{\Ealphaenumerate1229,40299 +\def\Ecapsenumerate{\Ecapsenumerate1230,40333 +\def\itemizeitem{\itemizeitem1234,40413 +\def\newindex #1{\newindex1259,41270 +\def\defindex{\defindex1268,41559 +\def\newcodeindex #1{\newcodeindex1272,41667 +\def\defcodeindex{\defcodeindex1279,41927 +\def\synindex #1 #2 {\synindex1283,42107 +\def\syncodeindex #1 #2 {\syncodeindex1292,42447 +\def\doindex#1{\doindex1309,43126 +\def\singleindexer #1{\singleindexer1310,43185 +\def\docodeindex#1{\docodeindex1313,43297 +\def\singlecodeindexer #1{\singlecodeindexer1314,43364 +\def\indexdummies{\indexdummies1316,43422 +\def\_{\_1317,43442 +\def\w{\w1318,43470 +\def\bf{\bf1319,43497 +\def\rm{\rm1320,43526 +\def\sl{\sl1321,43555 +\def\sf{\sf1322,43584 +\def\tt{\tt1323,43612 +\def\gtr{\gtr1324,43640 +\def\less{\less1325,43670 +\def\hat{\hat1326,43702 +\def\char{\char1327,43732 +\def\TeX{\TeX1328,43764 +\def\dots{\dots1329,43794 +\def\copyright{\copyright1330,43827 +\def\tclose##1{\tclose1331,43870 +\def\code##1{\code1332,43915 +\def\samp##1{\samp1333,43956 +\def\t##1{\t1334,43997 +\def\r##1{\r1335,44032 +\def\i##1{\i1336,44067 +\def\b##1{\b1337,44102 +\def\cite##1{\cite1338,44137 +\def\key##1{\key1339,44178 +\def\file##1{\file1340,44217 +\def\var##1{\var1341,44258 +\def\kbd##1{\kbd1342,44297 +\def\indexdummyfont#1{\indexdummyfont1347,44453 +\def\indexdummytex{\indexdummytex1348,44479 +\def\indexdummydots{\indexdummydots1349,44503 +\def\indexnofonts{\indexnofonts1351,44529 +\let\w=\indexdummyfontdummyfont1352,44549 +\let\t=\indexdummyfontdummyfont1353,44572 +\let\r=\indexdummyfontdummyfont1354,44595 +\let\i=\indexdummyfontdummyfont1355,44618 +\let\b=\indexdummyfontdummyfont1356,44641 +\let\emph=\indexdummyfontdummyfont1357,44664 +\let\strong=\indexdummyfontdummyfont1358,44690 +\let\cite=\indexdummyfont=\indexdummyfont1359,44718 +\let\sc=\indexdummyfontdummyfont1360,44744 +\let\tclose=\indexdummyfontdummyfont1364,44916 +\let\code=\indexdummyfontdummyfont1365,44944 +\let\file=\indexdummyfontdummyfont1366,44970 +\let\samp=\indexdummyfontdummyfont1367,44996 +\let\kbd=\indexdummyfontdummyfont1368,45022 +\let\key=\indexdummyfontdummyfont1369,45047 +\let\var=\indexdummyfontdummyfont1370,45072 +\let\TeX=\indexdummytexdummytex1371,45097 +\let\dots=\indexdummydotsdummydots1372,45121 +\let\indexbackslash=0 %overridden during \printindex.backslash=01382,45373 +\def\doind #1#2{\doind1384,45429 +{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1386,45472 +\def\rawbackslashxx{\rawbackslashxx1389,45612 +{\indexnofontsnofonts1394,45874 +\def\dosubind #1#2#3{\dosubind1405,46185 +{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1407,46233 +\def\rawbackslashxx{\rawbackslashxx1410,46337 +{\indexnofontsnofonts1414,46491 +\def\findex {\findex1443,47422 +\def\kindex {\kindex1444,47445 +\def\cindex {\cindex1445,47468 +\def\vindex {\vindex1446,47491 +\def\tindex {\tindex1447,47514 +\def\pindex {\pindex1448,47537 +\def\cindexsub {\cindexsub1450,47561 +\def\printindex{\printindex1462,47888 +\def\doprintindex#1{\doprintindex1464,47929 + \def\indexbackslash{\indexbackslash1481,48414 + \indexfonts\rm \tolerance=9500 \advance\baselineskip -1ptfonts\rm1482,48453 +\def\initial #1{\initial1517,49525 +\def\entry #1#2{\entry1523,49732 + \null\nobreak\indexdotfill % Have leaders before the page number.dotfill1540,50379 +\def\indexdotfill{\indexdotfill1549,50707 +\def\primary #1{\primary1552,50813 +\def\secondary #1#2{\secondary1556,50895 +\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\pardotfill1559,50977 +\newbox\partialpageialpage1566,51150 +\def\begindoublecolumns{\begindoublecolumns1572,51308 + \output={\global\setbox\partialpage=ialpage=1573,51344 +\def\enddoublecolumns{\enddoublecolumns1577,51532 +\def\doublecolumnout{\doublecolumnout1580,51617 + \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1581,51686 +\def\pagesofar{\pagesofar1584,51864 +\def\balancecolumns{\balancecolumns1588,52101 + \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpageialpage1594,52272 + \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1600,52533 +\newcount \appendixno \appendixno = `\@no1627,53438 +\def\appendixletter{\appendixletter1628,53479 +\def\opencontents{\opencontents1632,53582 +\def\thischapter{\thischapter1637,53763 +\def\seccheck#1{\seccheck1638,53801 +\def\chapternofonts{\chapternofonts1643,53905 +\def\result{\result1646,53980 +\def\equiv{\equiv1647,54015 +\def\expansion{\expansion1648,54048 +\def\print{\print1649,54089 +\def\TeX{\TeX1650,54122 +\def\dots{\dots1651,54151 +\def\copyright{\copyright1652,54182 +\def\tt{\tt1653,54223 +\def\bf{\bf1654,54250 +\def\w{\w1655,54278 +\def\less{\less1656,54303 +\def\gtr{\gtr1657,54334 +\def\hat{\hat1658,54363 +\def\char{\char1659,54392 +\def\tclose##1{\tclose1660,54423 +\def\code##1{\code1661,54467 +\def\samp##1{\samp1662,54507 +\def\r##1{\r1663,54547 +\def\b##1{\b1664,54581 +\def\key##1{\key1665,54615 +\def\file##1{\file1666,54653 +\def\kbd##1{\kbd1667,54693 +\def\i##1{\i1669,54801 +\def\cite##1{\cite1670,54835 +\def\var##1{\var1671,54875 +\def\emph##1{\emph1672,54913 +\def\dfn##1{\dfn1673,54953 +\def\thischaptername{\thischaptername1676,54994 +\outer\def\chapter{\chapter1677,55033 +\def\chapterzzz #1{\chapterzzz1678,55074 +{\chapternofonts%nofonts%1687,55470 +\global\let\section = \numberedsec=1692,55623 +\global\let\subsection = \numberedsubsec=1693,55658 +\global\let\subsubsection = \numberedsubsubsec=1694,55699 +\outer\def\appendix{\appendix1697,55750 +\def\appendixzzz #1{\appendixzzz1698,55793 +\global\advance \appendixno by 1 \message{no1700,55870 +\chapmacro {#1}{Appendix \appendixletter}letter1701,55939 +\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}letter:1704,56032 +{\chapternofonts%nofonts%1705,56104 + {#1}{Appendix \appendixletter}letter1707,56160 +\appendixnoderef %noderef1710,56260 +\global\let\section = \appendixsec=1711,56279 +\global\let\subsection = \appendixsubsec=1712,56314 +\global\let\subsubsection = \appendixsubsubsec=1713,56355 +\outer\def\top{\top1716,56406 +\outer\def\unnumbered{\unnumbered1717,56446 +\def\unnumberedzzz #1{\unnumberedzzz1718,56493 +{\chapternofonts%nofonts%1722,56656 +\global\let\section = \unnumberedsec=1727,56806 +\global\let\subsection = \unnumberedsubsec=1728,56843 +\global\let\subsubsection = \unnumberedsubsubsec=1729,56886 +\outer\def\numberedsec{\numberedsec1732,56939 +\def\seczzz #1{\seczzz1733,56980 +{\chapternofonts%nofonts%1736,57136 +\outer\def\appendixsection{\appendixsection1745,57322 +\outer\def\appendixsec{\appendixsec1746,57379 +\def\appendixsectionzzz #1{\appendixsectionzzz1747,57432 +\gdef\thissection{#1}\secheading {#1}{\appendixletter}letter1749,57544 +{\chapternofonts%nofonts%1750,57612 +{#1}{\appendixletter}letter1752,57668 +\appendixnoderef %noderef1755,57768 +\outer\def\unnumberedsec{\unnumberedsec1759,57808 +\def\unnumberedseczzz #1{\unnumberedseczzz1760,57861 +{\chapternofonts%nofonts%1762,57956 +\outer\def\numberedsubsec{\numberedsubsec1770,58124 +\def\numberedsubseczzz #1{\numberedsubseczzz1771,58179 +{\chapternofonts%nofonts%1774,58358 +\outer\def\appendixsubsec{\appendixsubsec1783,58562 +\def\appendixsubseczzz #1{\appendixsubseczzz1784,58617 +\subsecheading {#1}{\appendixletter}letter1786,58739 +{\chapternofonts%nofonts%1787,58804 +{#1}{\appendixletter}letter1789,58863 +\appendixnoderef %noderef1792,58978 +\outer\def\unnumberedsubsec{\unnumberedsubsec1796,59018 +\def\unnumberedsubseczzz #1{\unnumberedsubseczzz1797,59077 +{\chapternofonts%nofonts%1799,59178 +\outer\def\numberedsubsubsec{\numberedsubsubsec1807,59349 +\def\numberedsubsubseczzz #1{\numberedsubsubseczzz1808,59410 +{\chapternofonts%nofonts%1812,59607 +\outer\def\appendixsubsubsec{\appendixsubsubsec1823,59840 +\def\appendixsubsubseczzz #1{\appendixsubsubseczzz1824,59901 + {\appendixletter}letter1827,60040 +{\chapternofonts%nofonts%1828,60106 + {\appendixletter}letter1830,60171 +\appendixnoderef %noderef1834,60305 +\outer\def\unnumberedsubsubsec{\unnumberedsubsubsec1838,60345 +\def\unnumberedsubsubseczzz #1{\unnumberedsubsubseczzz1839,60410 +{\chapternofonts%nofonts%1841,60517 +\def\infotop{\infotop1851,60846 +\def\infounnumbered{\infounnumbered1852,60884 +\def\infounnumberedsec{\infounnumberedsec1853,60929 +\def\infounnumberedsubsec{\infounnumberedsubsec1854,60980 +\def\infounnumberedsubsubsec{\infounnumberedsubsubsec1855,61037 +\def\infoappendix{\infoappendix1857,61101 +\def\infoappendixsec{\infoappendixsec1858,61142 +\def\infoappendixsubsec{\infoappendixsubsec1859,61189 +\def\infoappendixsubsubsec{\infoappendixsubsubsec1860,61242 +\def\infochapter{\infochapter1862,61302 +\def\infosection{\infosection1863,61341 +\def\infosubsection{\infosubsection1864,61380 +\def\infosubsubsection{\infosubsubsection1865,61425 +\global\let\section = \numberedsec=1870,61662 +\global\let\subsection = \numberedsubsec=1871,61697 +\global\let\subsubsection = \numberedsubsubsec=1872,61738 +\def\majorheading{\majorheading1886,62245 +\def\majorheadingzzz #1{\majorheadingzzz1887,62290 +\def\chapheading{\chapheading1893,62523 +\def\chapheadingzzz #1{\chapheadingzzz1894,62566 +\def\heading{\heading1899,62761 +\def\subheading{\subheading1901,62798 +\def\subsubheading{\subsubheading1903,62841 +\def\dobreak#1#2{\dobreak1910,63118 +\def\setchapterstyle #1 {\setchapterstyle1912,63196 +\def\chapbreak{\chapbreak1919,63451 +\def\chappager{\chappager1920,63501 +\def\chapoddpage{\chapoddpage1921,63539 +\def\setchapternewpage #1 {\setchapternewpage1923,63618 +\def\CHAPPAGoff{\CHAPPAGoff1925,63675 +\def\CHAPPAGon{\CHAPPAGon1929,63769 +\global\def\HEADINGSon{\HEADINGSon1932,63860 +\def\CHAPPAGodd{\CHAPPAGodd1934,63902 +\global\def\HEADINGSon{\HEADINGSon1937,63998 +\def\CHAPFplain{\CHAPFplain1941,64052 +\def\chfplain #1#2{\chfplain1945,64144 +\def\unnchfplain #1{\unnchfplain1956,64367 +\def\unnchfopen #1{\unnchfopen1964,64596 +\def\chfopen #1#2{\chfopen1970,64804 +\def\CHAPFopen{\CHAPFopen1975,64948 +\def\subsecheadingbreak{\subsecheadingbreak1982,65166 +\def\secheadingbreak{\secheadingbreak1985,65295 +\def\secheading #1#2#3{\secheading1993,65577 +\def\plainsecheading #1{\plainsecheading1994,65633 +\def\secheadingi #1{\secheadingi1995,65676 +\def\subsecheading #1#2#3#4{\subsecheading2006,66044 +\def\subsecheadingi #1{\subsecheadingi2007,66111 +\def\subsubsecfonts{\subsubsecfonts2014,66408 +\def\subsubsecheading #1#2#3#4#5{\subsubsecheading2017,66531 +\def\subsubsecheadingi #1{\subsubsecheadingi2018,66609 +\def\startcontents#1{\startcontents2032,67081 + \unnumbchapmacro{#1}\def\thischapter{\thischapter2040,67354 +\outer\def\contents{\contents2049,67713 +\outer\def\summarycontents{\summarycontents2057,67857 + \def\secentry ##1##2##3##4{\secentry2067,68228 + \def\unnumbsecentry ##1##2{\unnumbsecentry2068,68263 + \def\subsecentry ##1##2##3##4##5{\subsecentry2069,68298 + \def\unnumbsubsecentry ##1##2{\unnumbsubsecentry2070,68339 + \def\subsubsecentry ##1##2##3##4##5##6{\subsubsecentry2071,68377 + \def\unnumbsubsubsecentry ##1##2{\unnumbsubsubsecentry2072,68424 +\def\chapentry#1#2#3{\chapentry2085,68858 +\def\shortchapentry#1#2#3{\shortchapentry2088,68975 + {#2\labelspace #1}space2091,69085 +\def\unnumbchapentry#1#2{\unnumbchapentry2094,69139 +\def\shortunnumberedentry#1#2{\shortunnumberedentry2095,69186 +\def\secentry#1#2#3#4{\secentry2102,69350 +\def\unnumbsecentry#1#2{\unnumbsecentry2103,69409 +\def\subsecentry#1#2#3#4#5{\subsecentry2106,69470 +\def\unnumbsubsecentry#1#2{\unnumbsubsecentry2107,69540 +\def\subsubsecentry#1#2#3#4#5#6{\subsubsecentry2110,69614 + \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}space2111,69648 +\def\unnumbsubsubsecentry#1#2{\unnumbsubsubsecentry2112,69699 +\def\dochapentry#1#2{\dochapentry2123,70073 +\def\dosecentry#1#2{\dosecentry2138,70678 +\def\dosubsecentry#1#2{\dosubsecentry2145,70856 +\def\dosubsubsecentry#1#2{\dosubsubsecentry2152,71041 +\def\labelspace{\labelspace2160,71292 +\def\dopageno#1{\dopageno2162,71327 +\def\doshortpageno#1{\doshortpageno2163,71353 +\def\chapentryfonts{\chapentryfonts2165,71385 +\def\secentryfonts{\secentryfonts2166,71420 +\def\point{\point2192,72379 +\def\result{\result2194,72400 +\def\expansion{\expansion2195,72473 +\def\print{\print2196,72544 +\def\equiv{\equiv2198,72611 +\def\error{\error2218,73384 +\def\tex{\tex2224,73613 +\def\@{\@2242,73996 +\gdef\sepspaces{\def {\ }}}\2265,74728 +\def\aboveenvbreak{\aboveenvbreak2268,74810 +\def\afterenvbreak{\afterenvbreak2272,74976 +\def\ctl{\ctl2286,75487 +\def\ctr{\ctr2287,75559 +\def\cbl{\cbl2288,75598 +\def\cbr{\cbr2289,75638 +\def\carttop{\carttop2290,75677 +\def\cartbot{\cartbot2293,75785 +\long\def\cartouche{\cartouche2299,75925 +\def\Ecartouche{\Ecartouche2326,76713 +\def\lisp{\lisp2338,76848 +\def\Elisp{\Elisp2348,77195 +\def\next##1{\next2360,77521 +\def\Eexample{\Eexample2364,77563 +\def\Esmallexample{\Esmallexample2367,77610 +\def\smalllispx{\smalllispx2373,77788 +\def\Esmalllisp{\Esmalllisp2383,78142 +\obeyspaces \obeylines \ninett \indexfonts \rawbackslashfonts2396,78498 +\def\next##1{\next2397,78555 +\def\display{\display2401,78635 +\def\Edisplay{\Edisplay2410,78954 +\def\next##1{\next2422,79265 +\def\format{\format2426,79368 +\def\Eformat{\Eformat2434,79664 +\def\next##1{\next2437,79753 +\def\flushleft{\flushleft2441,79805 +\def\Eflushleft{\Eflushleft2451,80176 +\def\next##1{\next2454,80269 +\def\flushright{\flushright2456,80291 +\def\Eflushright{\Eflushright2466,80663 +\def\next##1{\next2470,80794 +\def\quotation{\quotation2474,80852 +\def\Equotation{\Equotation2480,81044 +\def\setdeffont #1 {\setdeffont2493,81442 +\newskip\defbodyindent \defbodyindent=.4inbodyindent2495,81488 +\newskip\defargsindent \defargsindent=50ptargsindent2496,81531 +\newskip\deftypemargin \deftypemargin=12pttypemargin2497,81574 +\newskip\deflastargmargin \deflastargmargin=18ptlastargmargin2498,81617 +\def\activeparens{\activeparens2503,81815 +\def\opnr{\opnr2529,83027 +\def\lbrb{\lbrb2530,83092 +\def\defname #1#2{\defname2536,83293 +\advance\dimen2 by -\defbodyindentbodyindent2540,83411 +\advance\dimen3 by -\defbodyindentbodyindent2542,83465 +\setbox0=\hbox{\hskip \deflastargmargin{lastargmargin2544,83519 +\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuationsargsindent2546,83661 +\parshape 2 0in \dimen0 \defargsindent \dimen1 %argsindent2547,83736 +\rlap{\rightline{{\rm #2}\hskip \deftypemargin}typemargin2554,84105 +\advance\leftskip by -\defbodyindentbodyindent2557,84239 +\exdentamount=\defbodyindentbodyindent2558,84276 +\def\defparsebody #1#2#3{\defparsebody2568,84635 +\def#1{2572,84819 +\def#2{2573,84855 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2575,84927 +\exdentamount=\defbodyindentbodyindent2576,85001 +\def\defmethparsebody #1#2#3#4 {\defmethparsebody2581,85105 +\def#1{2585,85266 +\def#2##1 {2586,85302 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2588,85385 +\exdentamount=\defbodyindentbodyindent2589,85459 +\def\defopparsebody #1#2#3#4#5 {\defopparsebody2592,85544 +\def#1{2596,85705 +\def#2##1 ##2 {2597,85741 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2600,85841 +\exdentamount=\defbodyindentbodyindent2601,85915 +\def\defvarparsebody #1#2#3{\defvarparsebody2608,86186 +\def#1{2612,86373 +\def#2{2613,86409 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2615,86468 +\exdentamount=\defbodyindentbodyindent2616,86542 +\def\defvrparsebody #1#2#3#4 {\defvrparsebody2621,86633 +\def#1{2625,86792 +\def#2##1 {2626,86828 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2628,86898 +\exdentamount=\defbodyindentbodyindent2629,86972 +\def\defopvarparsebody #1#2#3#4#5 {\defopvarparsebody2632,87044 +\def#1{2636,87208 +\def#2##1 ##2 {2637,87244 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2640,87331 +\exdentamount=\defbodyindentbodyindent2641,87405 +\def\defunargs #1{\defunargs2664,88165 +\def\deftypefunargs #1{\deftypefunargs2676,88547 +\def\deffn{\deffn2690,88929 +\def\deffnheader #1#2#3{\deffnheader2692,88986 +\begingroup\defname {name2693,89034 +\def\defun{\defun2699,89179 +\def\defunheader #1#2{\defunheader2701,89232 +\begingroup\defname {name2702,89307 +\defunargs {unargs2703,89343 +\def\deftypefun{\deftypefun2709,89491 +\def\deftypefunheader #1#2{\deftypefunheader2712,89613 +\def\deftypefunheaderx #1#2 #3\relax{\deftypefunheaderx2714,89722 +\begingroup\defname {name2716,89814 +\deftypefunargs {typefunargs2717,89860 +\def\deftypefn{\deftypefn2723,90031 +\def\deftypefnheader #1#2#3{\deftypefnheader2726,90180 +\def\deftypefnheaderx #1#2#3 #4\relax{\deftypefnheaderx2728,90316 +\begingroup\defname {name2730,90409 +\deftypefunargs {typefunargs2731,90449 +\def\defmac{\defmac2737,90570 +\def\defmacheader #1#2{\defmacheader2739,90627 +\begingroup\defname {name2740,90703 +\defunargs {unargs2741,90736 +\def\defspec{\defspec2747,90860 +\def\defspecheader #1#2{\defspecheader2749,90921 +\begingroup\defname {name2750,90998 +\defunargs {unargs2751,91038 +\def\deffnx #1 {\deffnx2758,91233 +\def\defunx #1 {\defunx2759,91290 +\def\defmacx #1 {\defmacx2760,91347 +\def\defspecx #1 {\defspecx2761,91406 +\def\deftypefnx #1 {\deftypefnx2762,91467 +\def\deftypeunx #1 {\deftypeunx2763,91532 +\def\defop #1 {\defop2769,91678 +\defopparsebody\Edefop\defopx\defopheader\defoptype}opparsebody\Edefop\defopx\defopheader\defoptype2770,91713 +\def\defopheader #1#2#3{\defopheader2772,91767 +\begingroup\defname {name2774,91856 +\defunargs {unargs2775,91902 +\def\defmethod{\defmethod2780,91963 +\def\defmethodheader #1#2#3{\defmethodheader2782,92036 +\begingroup\defname {name2784,92124 +\defunargs {unargs2785,92164 +\def\defcv #1 {\defcv2790,92238 +\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}opvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype2791,92273 +\def\defcvarheader #1#2#3{\defcvarheader2793,92332 +\begingroup\defname {name2795,92418 +\defvarargs {varargs2796,92464 +\def\defivar{\defivar2801,92537 +\def\defivarheader #1#2#3{\defivarheader2803,92600 +\begingroup\defname {name2805,92686 +\defvarargs {varargs2806,92737 +\def\defopx #1 {\defopx2812,92886 +\def\defmethodx #1 {\defmethodx2813,92943 +\def\defcvx #1 {\defcvx2814,93008 +\def\defivarx #1 {\defivarx2815,93065 +\def\defvarargs #1{\defvarargs2822,93336 +\def\defvr{\defvr2828,93480 +\def\defvrheader #1#2#3{\defvrheader2830,93535 +\begingroup\defname {name2831,93583 +\def\defvar{\defvar2835,93668 +\def\defvarheader #1#2{\defvarheader2837,93728 +\begingroup\defname {name2838,93799 +\defvarargs {varargs2839,93835 +\def\defopt{\defopt2844,93901 +\def\defoptheader #1#2{\defoptheader2846,93961 +\begingroup\defname {name2847,94032 +\defvarargs {varargs2848,94071 +\def\deftypevar{\deftypevar2853,94128 +\def\deftypevarheader #1#2{\deftypevarheader2856,94244 +\begingroup\defname {name2858,94327 +\def\deftypevr{\deftypevr2865,94501 +\def\deftypevrheader #1#2#3{\deftypevrheader2867,94572 +\begingroup\defname {name2868,94624 +\def\defvrx #1 {\defvrx2876,94861 +\def\defvarx #1 {\defvarx2877,94918 +\def\defoptx #1 {\defoptx2878,94977 +\def\deftypevarx #1 {\deftypevarx2879,95036 +\def\deftypevrx #1 {\deftypevrx2880,95103 +\def\deftpargs #1{\deftpargs2885,95252 +\def\deftp{\deftp2889,95332 +\def\deftpheader #1#2#3{\deftpheader2891,95387 +\begingroup\defname {name2892,95435 +\def\deftpx #1 {\deftpx2897,95594 +\def\setref#1{\setref2908,95915 +\def\unnumbsetref#1{\unnumbsetref2913,96029 +\def\appendixsetref#1{\appendixsetref2918,96136 +\def\pxref#1{\pxref2929,96547 +\def\xref#1{\xref2930,96583 +\def\ref#1{\ref2931,96618 +\def\xrefX[#1,#2,#3,#4,#5,#6]{\xrefX[2932,96648 +\def\printedmanual{\printedmanual2933,96691 +\def\printednodename{\printednodename2934,96729 +\def\printednodename{\printednodename2939,96854 +section ``\printednodename'' in \cite{\printedmanual}\printedmanual2954,97487 +\refx{x2957,97565 +\def\dosetq #1#2{\dosetq2965,97785 +\def\internalsetq #1#2{\internalsetq2973,98043 +\def\Ypagenumber{\Ypagenumber2977,98144 +\def\Ytitle{\Ytitle2979,98170 +\def\Ynothing{\Ynothing2981,98197 +\def\Ysectionnumberandtype{\Ysectionnumberandtype2983,98214 +\def\Yappendixletterandtype{\Yappendixletterandtype2992,98530 +\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{no2993,98560 +\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %no.\the\secno2994,98615 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %no.\the\secno.\the\subsecno2996,98719 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %no.\the\secno.\the\subsecno.\the\subsubsecno2998,98790 + \def\linenumber{\linenumber3009,99129 +\def\refx#1#2{\refx3015,99313 +\def\xrdef #1#2{\xrdef3037,99939 +\def\readauxfile{\readauxfile3040,100024 +\def\supereject{\supereject3110,101805 +\footstrut\parindent=\defaultparindent\hang\textindent{aultparindent\hang\textindent3131,102490 +\def\openindices{\openindices3139,102676 +\newdimen\defaultparindent \defaultparindent = 15ptaultparindent3151,102901 +\parindent = \defaultparindentaultparindent3152,102953 +\def\smallbook{\smallbook3175,103677 +\global\def\Esmallexample{\Esmallexample3192,104104 +\def\afourpaper{\afourpaper3196,104195 +\def\finalout{\finalout3224,105003 +\def\normaldoublequote{\normaldoublequote3235,105264 +\def\normaltilde{\normaltilde3236,105290 +\def\normalcaret{\normalcaret3237,105310 +\def\normalunderscore{\normalunderscore3238,105330 +\def\normalverticalbar{\normalverticalbar3239,105355 +\def\normalless{\normalless3240,105381 +\def\normalgreater{\normalgreater3241,105400 +\def\normalplus{\normalplus3242,105422 +\def\ifusingtt#1#2{\ifusingtt3253,105914 +\def\activedoublequote{\activedoublequote3261,106242 +\def~{~3264,106328 +\def^{^3267,106389 +\def_{_3270,106428 +\def\_{\_3272,106502 +\def\lvvmode{\lvvmode3279,106839 +\def|{|3282,106889 +\def<{<3285,106952 +\def>{>3288,107009 +\def+{+3290,107047 +\def\turnoffactive{\turnoffactive3296,107208 +\global\def={=3307,107494 +\def\normalbackslash{\normalbackslash3321,107876 c-src/c.c,76 T f(1,0 @@ -4178,32 +4178,32 @@ c-src/a/b/b.c,18 #define questo 34, y-src/parse.y,738 -#define obstack_chunk_alloc 46,1111 -#define obstack_chunk_free 47,1149 -VOIDSTAR parse_hash;63,1400 -unsigned char fnin[fnin67,1519 -#define YYSTYPE 71,1617 -typedef struct node *YYSTYPE;YYSTYPE72,1648 -YYSTYPE parse_return;73,1678 -char *instr;instr80,1790 -int parse_error 81,1803 -line:line86,1862 -exp:exp94,1975 -exp_list:exp_list262,5642 -range_exp:range_exp268,5740 -range_exp_list:range_exp_list272,5770 -cell:cell278,5888 -yyerror FUN1(285,5935 -make_list FUN2(292,6015 -#define ERROR 303,6215 -yylex FUN0(314,6392 -parse_cell_or_range FUN2(586,11758 -#define CK_ABS_R(670,13200 -#define CK_REL_R(674,13279 -#define CK_ABS_C(679,13408 -#define CK_REL_C(683,13487 -#define MAYBEREL(688,13616 -str_to_col FUN1(846,16817 +#define obstack_chunk_alloc 46,1116 +#define obstack_chunk_free 47,1154 +VOIDSTAR parse_hash;63,1405 +unsigned char fnin[fnin67,1524 +#define YYSTYPE 71,1622 +typedef struct node *YYSTYPE;YYSTYPE72,1653 +YYSTYPE parse_return;73,1683 +char *instr;instr80,1795 +int parse_error 81,1808 +line:line86,1867 +exp:exp94,1980 +exp_list:exp_list262,5647 +range_exp:range_exp268,5745 +range_exp_list:range_exp_list272,5775 +cell:cell278,5893 +yyerror FUN1(285,5940 +make_list FUN2(292,6020 +#define ERROR 303,6220 +yylex FUN0(314,6397 +parse_cell_or_range FUN2(586,11763 +#define CK_ABS_R(670,13205 +#define CK_REL_R(674,13284 +#define CK_ABS_C(679,13413 +#define CK_REL_C(683,13492 +#define MAYBEREL(688,13621 +str_to_col FUN1(846,16822 y-src/parse.c,520 #define YYBISON 4,64 @@ -4458,62 +4458,62 @@ warning 993, lookup 999, /usr/share/bison/bison.simple,2168 -# define YYSTD(40, -# define YYSTD(42, -# define YYSTACK_ALLOC 50, -# define YYSIZE_T 51, -# define YYSTACK_ALLOC 55, -# define YYSIZE_T 56, -# define YYSTACK_ALLOC 59, -# define YYSTACK_FREE(67, -# define YYSIZE_T 71, -# define YYSIZE_T 75, -# define YYSTACK_ALLOC 78, -# define YYSTACK_FREE 79, -union yyalloc83, - short yyss;85, - YYSTYPE yyvs;86, - YYLTYPE yyls;88, -# define YYSTACK_GAP_MAX 93, -# define YYSTACK_BYTES(98, -# define YYSTACK_BYTES(102, -# define YYSTACK_RELOCATE(112, -# define YYSIZE_T 128, -# define YYSIZE_T 131, -# define YYSIZE_T 136, -# define YYSIZE_T 140, -# define YYSIZE_T 145, -#define yyerrok 148, -#define yyclearin 149, -#define YYEMPTY 150, -#define YYEOF 151, -#define YYACCEPT 152, -#define YYABORT 153, -#define YYERROR 154, -#define YYFAIL 158, -#define YYRECOVERING(159, -#define YYBACKUP(160, -#define YYTERROR 177, -#define YYERRCODE 178, -# define YYLLOC_DEFAULT(189, -# define YYLEX 200, -# define YYLEX 202, -# define YYLEX 206, -# define YYLEX 208, -# define YYLEX 212, -# define YYFPRINTF 225, -# define YYDPRINTF(228, -int yydebug;237, -# define YYDPRINTF(239, -# define YYINITDEPTH 244, -# undef YYMAXDEPTH255, -# define YYMAXDEPTH 259, -# define yymemcpy 264, -yymemcpy 271, -# define yystrlen 293, -yystrlen 298, -# define yystpcpy 316, -yystpcpy 322, +# define YYSTD(41, +# define YYSTD(43, +# define YYSTACK_ALLOC 51, +# define YYSIZE_T 52, +# define YYSTACK_ALLOC 56, +# define YYSIZE_T 57, +# define YYSTACK_ALLOC 60, +# define YYSTACK_FREE(68, +# define YYSIZE_T 72, +# define YYSIZE_T 76, +# define YYSTACK_ALLOC 79, +# define YYSTACK_FREE 80, +union yyalloc84, + short yyss;86, + YYSTYPE yyvs;87, + YYLTYPE yyls;89, +# define YYSTACK_GAP_MAX 94, +# define YYSTACK_BYTES(99, +# define YYSTACK_BYTES(103, +# define YYSTACK_RELOCATE(113, +# define YYSIZE_T 129, +# define YYSIZE_T 132, +# define YYSIZE_T 137, +# define YYSIZE_T 141, +# define YYSIZE_T 146, +#define yyerrok 149, +#define yyclearin 150, +#define YYEMPTY 151, +#define YYEOF 152, +#define YYACCEPT 153, +#define YYABORT 154, +#define YYERROR 155, +#define YYFAIL 159, +#define YYRECOVERING(160, +#define YYBACKUP(161, +#define YYTERROR 178, +#define YYERRCODE 179, +# define YYLLOC_DEFAULT(190, +# define YYLEX 201, +# define YYLEX 203, +# define YYLEX 207, +# define YYLEX 209, +# define YYLEX 213, +# define YYFPRINTF 226, +# define YYDPRINTF(229, +int yydebug;238, +# define YYDPRINTF(240, +# define YYINITDEPTH 245, +# undef YYMAXDEPTH256, +# define YYMAXDEPTH 260, +# define yymemcpy 265, +yymemcpy 272, +# define yystrlen 294, +yystrlen 299, +# define yystpcpy 317, +yystpcpy 323, # define YYPARSE_PARAM_ARG 351, # define YYPARSE_PARAM_DECL352, # define YYPARSE_PARAM_ARG 354, diff --git a/test/etags/ETAGS.good_4 b/test/etags/ETAGS.good_4 index 3b904eb..0415c17 100644 --- a/test/etags/ETAGS.good_4 +++ b/test/etags/ETAGS.good_4 @@ -176,56 +176,56 @@ package body Truc.Bidule Truc.Bidule/b138,2153 protected body Machin_T Machin_T/b146,2281 c-src/abbrev.c,2634 -Lisp_Object Vabbrev_table_name_list;42,1416 -Lisp_Object Vglobal_abbrev_table;47,1561 -Lisp_Object Vfundamental_mode_abbrev_table;51,1672 -int abbrevs_changed;55,1773 -int abbrev_all_caps;57,1795 -Lisp_Object Vabbrev_start_location;62,1944 -Lisp_Object Vabbrev_start_location_buffer;65,2033 -Lisp_Object Vlast_abbrev;69,2142 -Lisp_Object Vlast_abbrev_text;74,2311 -int last_abbrev_point;78,2401 -Lisp_Object Vpre_abbrev_expand_hook,82,2474 -Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;82,2474 -DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table84,2538 -DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table91,2730 -DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev106,3111 -DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev148,4430 -DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev159,4801 -DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol173,5269 -DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion201,6233 -DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev217,6748 -DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev388,11669 -write_abbrev 425,12876 -describe_abbrev 444,13311 -DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description465,13826 -DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table505,14982 -syms_of_abbrev 539,16059 - DEFVAR_LISP ("abbrev-table-name-list"541,16079 - DEFVAR_LISP ("global-abbrev-table"547,16341 - DEFVAR_LISP ("fundamental-mode-abbrev-table"554,16663 - DEFVAR_LISP ("last-abbrev"560,17005 - DEFVAR_LISP ("last-abbrev-text"563,17128 - DEFVAR_INT ("last-abbrev-location"567,17286 - DEFVAR_LISP ("abbrev-start-location"574,17485 - DEFVAR_LISP ("abbrev-start-location-buffer"580,17762 - DEFVAR_PER_BUFFER ("local-abbrev-table"585,18026 - DEFVAR_BOOL ("abbrevs-changed"588,18169 - DEFVAR_BOOL ("abbrev-all-caps"593,18372 - DEFVAR_LISP ("pre-abbrev-expand-hook"597,18528 - DEFVAR_LISP ("abbrev-table-name-list",\1541,16079 - DEFVAR_LISP ("global-abbrev-table",\1547,16341 - DEFVAR_LISP ("fundamental-mode-abbrev-table",\1554,16663 - DEFVAR_LISP ("last-abbrev",\1560,17005 - DEFVAR_LISP ("last-abbrev-text",\1563,17128 - DEFVAR_INT ("last-abbrev-location",\1567,17286 - DEFVAR_LISP ("abbrev-start-location",\1574,17485 - DEFVAR_LISP ("abbrev-start-location-buffer",\1580,17762 - DEFVAR_PER_BUFFER ("local-abbrev-table",\1585,18026 - DEFVAR_BOOL ("abbrevs-changed",\1588,18169 - DEFVAR_BOOL ("abbrev-all-caps",\1593,18372 - DEFVAR_LISP ("pre-abbrev-expand-hook",\1597,18528 +Lisp_Object Vabbrev_table_name_list;43,1424 +Lisp_Object Vglobal_abbrev_table;48,1569 +Lisp_Object Vfundamental_mode_abbrev_table;52,1680 +int abbrevs_changed;56,1781 +int abbrev_all_caps;58,1803 +Lisp_Object Vabbrev_start_location;63,1952 +Lisp_Object Vabbrev_start_location_buffer;66,2041 +Lisp_Object Vlast_abbrev;70,2150 +Lisp_Object Vlast_abbrev_text;75,2319 +int last_abbrev_point;79,2409 +Lisp_Object Vpre_abbrev_expand_hook,83,2482 +Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;83,2482 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table85,2546 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table92,2738 +DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev107,3119 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev149,4438 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev160,4809 +DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol174,5277 +DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion202,6241 +DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev218,6756 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev389,11677 +write_abbrev 426,12884 +describe_abbrev 445,13319 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description466,13834 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table506,14990 +syms_of_abbrev 540,16067 + DEFVAR_LISP ("abbrev-table-name-list"542,16087 + DEFVAR_LISP ("global-abbrev-table"548,16349 + DEFVAR_LISP ("fundamental-mode-abbrev-table"555,16671 + DEFVAR_LISP ("last-abbrev"561,17013 + DEFVAR_LISP ("last-abbrev-text"564,17136 + DEFVAR_INT ("last-abbrev-location"568,17294 + DEFVAR_LISP ("abbrev-start-location"575,17493 + DEFVAR_LISP ("abbrev-start-location-buffer"581,17770 + DEFVAR_PER_BUFFER ("local-abbrev-table"586,18034 + DEFVAR_BOOL ("abbrevs-changed"589,18177 + DEFVAR_BOOL ("abbrev-all-caps"594,18380 + DEFVAR_LISP ("pre-abbrev-expand-hook"598,18536 + DEFVAR_LISP ("abbrev-table-name-list",\1542,16087 + DEFVAR_LISP ("global-abbrev-table",\1548,16349 + DEFVAR_LISP ("fundamental-mode-abbrev-table",\1555,16671 + DEFVAR_LISP ("last-abbrev",\1561,17013 + DEFVAR_LISP ("last-abbrev-text",\1564,17136 + DEFVAR_INT ("last-abbrev-location",\1568,17294 + DEFVAR_LISP ("abbrev-start-location",\1575,17493 + DEFVAR_LISP ("abbrev-start-location-buffer",\1581,17770 + DEFVAR_PER_BUFFER ("local-abbrev-table",\1586,18034 + DEFVAR_BOOL ("abbrevs-changed",\1589,18177 + DEFVAR_BOOL ("abbrev-all-caps",\1594,18380 + DEFVAR_LISP ("pre-abbrev-expand-hook",\1598,18536 c-src/torture.c,197 (*tag1 tag118,452 @@ -241,11 +241,11 @@ pp287,1419 pp3(100,1518 c-src/getopt.h,147 -#define _GETOPT_H 19,801 -struct option73,2797 -#define no_argument 89,3124 -#define required_argument 90,3147 -#define optional_argument 91,3175 +#define _GETOPT_H 19,794 +struct option73,2790 +#define no_argument 89,3117 +#define required_argument 90,3140 +#define optional_argument 91,3168 c-src/etags.c,10045 char pot_etags_version[pot_etags_version81,3470 @@ -568,32 +568,32 @@ xmalloc 6536,174148 xrealloc 6545,174314 c-src/exit.c,47 - } __libc_atexit;30,1011 -DEFUN(exit,38,1252 + } __libc_atexit;30,1017 +DEFUN(exit,38,1258 c-src/exit.strange_suffix,47 - } __libc_atexit;30,1011 -DEFUN(exit,38,1252 + } __libc_atexit;30,1017 +DEFUN(exit,38,1258 c-src/sysdep.h,491 -#define ENTRY(21,865 -#define PSEUDO(26,972 - movl $SYS_##syscall_nam$SYS_##syscall_na31,1132 - movl $SYS_##syscall_name, %eax;eax31,1132 - int $0x80;32,1180 - test %eax,eax33,1210 - test %eax, %eax;eax33,1210 - jl syscall_error;34,1245 -#define XCHG_0 47,1562 -#define XCHG_1 48,1606 -#define XCHG_2 49,1648 -#define XCHG_3 50,1691 -#define XCHG_4 51,1734 -#define XCHG_5 52,1777 -#define r0 54,1821 -#define r1 55,1875 -#define scratch 56,1932 -#define MOVE(57,2001 +#define ENTRY(21,870 +#define PSEUDO(26,977 + movl $SYS_##syscall_nam$SYS_##syscall_na31,1137 + movl $SYS_##syscall_name, %eax;eax31,1137 + int $0x80;32,1185 + test %eax,eax33,1215 + test %eax, %eax;eax33,1215 + jl syscall_error;34,1250 +#define XCHG_0 47,1567 +#define XCHG_1 48,1611 +#define XCHG_2 49,1653 +#define XCHG_3 50,1696 +#define XCHG_4 51,1739 +#define XCHG_5 52,1782 +#define r0 54,1826 +#define r1 55,1880 +#define scratch 56,1937 +#define MOVE(57,2006 c-src/tab.c,196 static int count_words(15,263 @@ -1681,294 +1681,294 @@ struct Lisp_Misc_Any 1971,64806 ENUM_BF 1973,64866 struct Lisp_Marker1978,64980 ENUM_BF 1980,65001 -struct Lisp_Overlay2021,66838 - ENUM_BF 2034,67346 - SAVE_UNUSED,2047,67641 - SAVE_INTEGER,2048,67658 - SAVE_FUNCPOINTER,2049,67676 - SAVE_POINTER,2050,67698 - SAVE_OBJECT2051,67716 -enum { SAVE_SLOT_BITS 2055,67801 -enum { SAVE_VALUE_SLOTS 2058,67898 -enum { SAVE_TYPE_BITS 2062,68006 -enum Lisp_Save_Type2064,68072 - SAVE_TYPE_INT_INT 2066,68096 - SAVE_TYPE_INT_INT_INT2067,68169 - SAVE_TYPE_OBJ_OBJ 2069,68259 - SAVE_TYPE_OBJ_OBJ_OBJ 2070,68330 - SAVE_TYPE_OBJ_OBJ_OBJ_OBJ2071,68411 - SAVE_TYPE_PTR_INT 2073,68506 - SAVE_TYPE_PTR_OBJ 2074,68579 - SAVE_TYPE_PTR_PTR 2075,68651 - SAVE_TYPE_FUNCPTR_PTR_OBJ2076,68724 - SAVE_TYPE_MEMORY 2080,68882 -typedef void (*voidfuncptr)voidfuncptr2108,69836 -struct Lisp_Save_Value2110,69873 - ENUM_BF 2112,69900 -save_type 2134,70752 -XSAVE_POINTER 2143,70982 -set_save_pointer 2149,71144 -XSAVE_FUNCPOINTER 2155,71326 -XSAVE_INTEGER 2164,71546 -set_save_integer 2170,71708 -XSAVE_OBJECT 2179,71929 -struct Lisp_Finalizer2186,72106 -struct Lisp_Free2201,72581 - ENUM_BF 2203,72602 -union Lisp_Misc2212,72882 -XMISC 2223,73181 -XMISCANY 2229,73270 -XMISCTYPE 2236,73379 -XMARKER 2242,73467 -XOVERLAY 2249,73582 -XSAVE_VALUE 2256,73703 -XFINALIZER 2263,73832 -struct Lisp_Intfwd2274,74117 -struct Lisp_Boolfwd2284,74411 -struct Lisp_Objfwd2294,74702 -struct Lisp_Buffer_Objfwd2302,74934 -struct Lisp_Buffer_Local_Value2334,76470 -struct Lisp_Kboard_Objfwd2362,77729 -union Lisp_Fwd2368,77838 -XFWDTYPE 2378,78084 -XBUFFER_OBJFWD 2384,78180 -struct Lisp_Float2391,78316 -XFLOAT_DATA 2401,78434 - IEEE_FLOATING_POINT2415,78943 -#define _UCHAR_T2423,79266 -typedef unsigned char UCHAR;2424,79283 -enum Lisp_Compiled2429,79366 - COMPILED_ARGLIST 2431,79389 - COMPILED_BYTECODE 2432,79415 - COMPILED_CONSTANTS 2433,79442 - COMPILED_STACK_DEPTH 2434,79470 - COMPILED_DOC_STRING 2435,79500 - COMPILED_INTERACTIVE 2436,79529 -enum char_bits2443,79831 - CHAR_ALT 2445,79850 - CHAR_SUPER 2446,79876 - CHAR_HYPER 2447,79904 - CHAR_SHIFT 2448,79932 - CHAR_CTL 2449,79960 - CHAR_META 2450,79986 - CHAR_MODIFIER_MASK 2452,80014 - CHARACTERBITS 2457,80209 -LISP_MACRO_DEFUN 2462,80267 -NATNUMP 2470,80409 -RANGED_INTEGERP 2476,80490 -#define TYPE_RANGED_INTEGERP(2481,80612 -LISP_MACRO_DEFUN 2486,80797 -VECTORP 2500,81270 -OVERLAYP 2505,81373 -SAVE_VALUEP 2510,81472 -FINALIZERP 2516,81578 -AUTOLOADP 2522,81682 -BUFFER_OBJFWDP 2528,81773 -PSEUDOVECTOR_TYPEP 2534,81871 -PSEUDOVECTORP 2542,82124 -WINDOW_CONFIGURATIONP 2558,82476 -PROCESSP 2564,82586 -WINDOWP 2570,82670 -TERMINALP 2576,82752 -SUBRP 2582,82838 -COMPILEDP 2588,82916 -BUFFERP 2594,83002 -CHAR_TABLE_P 2600,83084 -SUB_CHAR_TABLE_P 2606,83175 -BOOL_VECTOR_P 2612,83274 -FRAMEP 2618,83367 -IMAGEP 2625,83484 -ARRAYP 2632,83589 -CHECK_LIST 2638,83708 -LISP_MACRO_DEFUN_VOID 2643,83789 -CHECK_STRING_CAR 2653,84086 -CHECK_CONS 2658,84190 -CHECK_VECTOR 2663,84270 -CHECK_BOOL_VECTOR 2668,84356 -CHECK_VECTOR_OR_STRING 2674,84533 -CHECK_ARRAY 2683,84707 -CHECK_BUFFER 2688,84815 -CHECK_WINDOW 2693,84901 -CHECK_PROCESS 2699,85007 -CHECK_NATNUM 2705,85103 -#define CHECK_RANGED_INTEGER(2710,85180 -#define CHECK_TYPE_RANGED_INTEGER(2721,85563 -#define CHECK_NUMBER_COERCE_MARKER(2729,85833 -XFLOATINT 2738,86086 -CHECK_NUMBER_OR_FLOAT 2744,86157 -#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(2749,86256 -CHECK_NUMBER_CAR 2760,86666 -CHECK_NUMBER_CDR 2768,86788 -#define DEFUN(2803,88383 -#define DEFUN(2812,88851 -FUNCTIONP 2822,89206 -enum maxargs2831,89401 - MANY 2833,89418 - UNEVALLED 2834,89433 -#define CALLMANY(2838,89536 -#define CALLN(2844,89889 -#define DEFVAR_LISP(2869,91094 -#define DEFVAR_LISP_NOPRO(2874,91266 -#define DEFVAR_BOOL(2879,91448 -#define DEFVAR_INT(2884,91621 -#define DEFVAR_BUFFER_DEFAULTS(2890,91792 -#define DEFVAR_KBOARD(2896,91996 -typedef jmp_buf sys_jmp_buf;2906,92320 -# define sys_setjmp(2907,92349 -# define sys_longjmp(2908,92384 -typedef sigjmp_buf sys_jmp_buf;2910,92456 -# define sys_setjmp(2911,92488 -# define sys_longjmp(2912,92528 -typedef jmp_buf sys_jmp_buf;2916,92687 -# define sys_setjmp(2917,92716 -# define sys_longjmp(2918,92750 -enum specbind_tag 2943,93802 - SPECPDL_UNWIND,2944,93822 - SPECPDL_UNWIND_PTR,2945,93891 - SPECPDL_UNWIND_INT,2946,93942 - SPECPDL_UNWIND_VOID,2947,93990 - SPECPDL_BACKTRACE,2948,94044 - SPECPDL_LET,2949,94102 - SPECPDL_LET_LOCAL,2951,94232 - SPECPDL_LET_DEFAULT 2952,94289 -union specbinding2955,94361 - ENUM_BF 2957,94383 - ENUM_BF 2959,94440 - ENUM_BF 2964,94570 - ENUM_BF 2969,94693 - ENUM_BF 2974,94811 - ENUM_BF 2978,94916 - ENUM_BF 2983,95091 -enum handlertype 3021,96407 -enum handlertype { CATCHER,3021,96407 -enum handlertype { CATCHER, CONDITION_CASE 3021,96407 -struct handler3023,96454 -#define PUSH_HANDLER(3053,97443 -#define QUIT 3101,99220 -#define QUITP 3112,99470 -struct gcpro3132,100313 -#define GC_USE_GCPROS_AS_BEFORE 3171,101294 -#define GC_MAKE_GCPROS_NOOPS 3172,101329 -#define GC_MARK_STACK_CHECK_GCPROS 3173,101361 -#define GC_USE_GCPROS_CHECK_ZOMBIES 3174,101398 -#define GC_MARK_STACK 3177,101459 -#define BYTE_MARK_STACK 3181,101559 -#define GCPRO1(3190,101830 -#define GCPRO2(3191,101870 -#define GCPRO3(3192,101936 -#define GCPRO4(3194,102031 -#define GCPRO5(3196,102151 -#define GCPRO6(3198,102296 -#define GCPRO7(3201,102471 -#define UNGCPRO 3202,102550 -#define GCPRO1(3208,102650 -#define GCPRO2(3212,102772 -#define GCPRO3(3217,102964 -#define GCPRO4(3223,103226 -#define GCPRO5(3230,103557 -#define GCPRO6(3238,103958 -#define GCPRO7(3247,104428 -#define UNGCPRO 3257,104968 -#define GCPRO1(3263,105062 -#define GCPRO2(3269,105296 -#define GCPRO3(3278,105714 -#define GCPRO4(3289,106271 -#define GCPRO5(3302,106969 -#define GCPRO6(3317,107809 -#define GCPRO7(3334,108790 -#define UNGCPRO 3353,109913 -#define RETURN_UNGCPRO(3363,110180 -vcopy 3384,110654 -set_hash_key_slot 3393,110929 -set_hash_value_slot 3399,111068 -set_symbol_function 3408,111303 -set_symbol_plist 3414,111418 -set_symbol_next 3420,111521 -blv_found 3428,111694 -set_overlay_plist 3437,111877 -string_intervals 3445,112028 -set_string_intervals 3453,112150 -set_char_table_defalt 3462,112352 -set_char_table_purpose 3467,112464 -set_char_table_extras 3475,112633 -set_char_table_contents 3482,112842 -set_sub_char_table_contents 3489,113037 -enum Arith_Comparison 3497,113300 - ARITH_EQUAL,3498,113324 - ARITH_NOTEQUAL,3499,113339 - ARITH_LESS,3500,113357 - ARITH_GRTR,3501,113371 - ARITH_LESS_OR_EQUAL,3502,113385 - ARITH_GRTR_OR_EQUAL3503,113408 -#define INTEGER_TO_CONS(3511,113759 -#define CONS_TO_INTEGER(3529,114622 -enum { NEXT_ALMOST_PRIME_LIMIT 3573,116326 -extern EMACS_INT next_almost_prime 3574,116365 -enum constype 3739,123817 -enum constype {CONSTYPE_HEAP,CONSTYPE_HEAP3739,123817 -enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}CONSTYPE_PURE3739,123817 -list2i 3745,124007 -list3i 3751,124116 -list4i 3757,124255 -extern Lisp_Object make_formatted_string 3767,124631 -build_pure_c_string 3792,125659 -build_string 3801,125864 -make_uninit_vector 3820,126435 -make_uninit_sub_char_table 3833,126654 -#define ALLOCATE_PSEUDOVECTOR(3850,127198 -#define ALLOCATE_ZEROED_PSEUDOVECTOR(3858,127534 -INLINE void 3890,128940 -extern void *r_alloc r_alloc3895,129061 -#define FLOAT_TO_STRING_BUFSIZE 3927,130524 -intern 3968,132131 -intern_c_string 3974,132219 -extern _Noreturn void error 4034,135598 -fast_string_match_ignore_case 4136,140086 -INLINE void fixup_locale 4241,143851 -INLINE void synchronize_system_messages_locale 4242,143886 -INLINE void synchronize_system_time_locale 4243,143943 -#define IS_DAEMON 4257,144416 -#define DAEMON_RUNNING 4258,144456 -#define IS_DAEMON 4261,144555 -#define DAEMON_RUNNING 4262,144600 -# define WAIT_READING_MAX 4281,145419 -# define WAIT_READING_MAX 4283,145491 -extern _Noreturn void emacs_abort 4374,148383 -egetenv 4532,152806 -#define eabs(4545,153302 -#define make_fixnum_or_float(4550,153435 -enum MAX_ALLOCA 4556,153686 -enum MAX_ALLOCA { MAX_ALLOCA 4556,153686 -extern void *record_xmalloc record_xmalloc4558,153731 -#define USE_SAFE_ALLOCA 4560,153797 -#define AVAIL_ALLOCA(4564,153930 -#define SAFE_ALLOCA(4568,154041 -#define SAFE_NALLOCA(4576,154382 -#define SAFE_ALLOCA_STRING(4590,154858 -#define SAFE_FREE(4598,155110 -#define SAFE_ALLOCA_LISP(4625,155688 -# define USE_STACK_LISP_OBJECTS 4652,156810 -# undef USE_STACK_LISP_OBJECTS4658,156976 -# define USE_STACK_LISP_OBJECTS 4659,157007 -enum { defined_GC_CHECK_STRING_BYTES 4663,157082 -enum { defined_GC_CHECK_STRING_BYTES 4665,157135 -union Aligned_Cons4670,157269 -union Aligned_String4676,157349 - USE_STACK_CONS 4689,157704 - USE_STACK_STRING 4691,157810 -#define STACK_CONS(4699,158147 -#define AUTO_CONS_EXPR(4701,158244 -#define AUTO_CONS(4709,158607 -#define AUTO_LIST1(4710,158678 -#define AUTO_LIST2(4712,158786 -#define AUTO_LIST3(4716,158941 -#define AUTO_LIST4(4720,159116 -# define verify_ascii(4732,159507 -#define AUTO_STRING(4740,159815 -#define FOR_EACH_TAIL(4752,160279 -#define FOR_EACH_ALIST_VALUE(4766,160770 -maybe_gc 4774,161057 -functionp 4784,161296 +struct Lisp_Overlay2021,66841 + ENUM_BF 2034,67349 + SAVE_UNUSED,2047,67644 + SAVE_INTEGER,2048,67661 + SAVE_FUNCPOINTER,2049,67679 + SAVE_POINTER,2050,67701 + SAVE_OBJECT2051,67719 +enum { SAVE_SLOT_BITS 2055,67804 +enum { SAVE_VALUE_SLOTS 2058,67901 +enum { SAVE_TYPE_BITS 2062,68009 +enum Lisp_Save_Type2064,68075 + SAVE_TYPE_INT_INT 2066,68099 + SAVE_TYPE_INT_INT_INT2067,68172 + SAVE_TYPE_OBJ_OBJ 2069,68262 + SAVE_TYPE_OBJ_OBJ_OBJ 2070,68333 + SAVE_TYPE_OBJ_OBJ_OBJ_OBJ2071,68414 + SAVE_TYPE_PTR_INT 2073,68509 + SAVE_TYPE_PTR_OBJ 2074,68582 + SAVE_TYPE_PTR_PTR 2075,68654 + SAVE_TYPE_FUNCPTR_PTR_OBJ2076,68727 + SAVE_TYPE_MEMORY 2080,68885 +typedef void (*voidfuncptr)voidfuncptr2108,69839 +struct Lisp_Save_Value2110,69876 + ENUM_BF 2112,69903 +save_type 2134,70755 +XSAVE_POINTER 2143,70985 +set_save_pointer 2149,71147 +XSAVE_FUNCPOINTER 2155,71329 +XSAVE_INTEGER 2164,71549 +set_save_integer 2170,71711 +XSAVE_OBJECT 2179,71932 +struct Lisp_Finalizer2186,72109 +struct Lisp_Free2201,72584 + ENUM_BF 2203,72605 +union Lisp_Misc2212,72885 +XMISC 2223,73184 +XMISCANY 2229,73273 +XMISCTYPE 2236,73382 +XMARKER 2242,73470 +XOVERLAY 2249,73585 +XSAVE_VALUE 2256,73706 +XFINALIZER 2263,73835 +struct Lisp_Intfwd2274,74120 +struct Lisp_Boolfwd2284,74414 +struct Lisp_Objfwd2294,74705 +struct Lisp_Buffer_Objfwd2302,74937 +struct Lisp_Buffer_Local_Value2334,76473 +struct Lisp_Kboard_Objfwd2362,77732 +union Lisp_Fwd2368,77841 +XFWDTYPE 2378,78087 +XBUFFER_OBJFWD 2384,78183 +struct Lisp_Float2391,78319 +XFLOAT_DATA 2401,78437 + IEEE_FLOATING_POINT2415,78946 +#define _UCHAR_T2423,79269 +typedef unsigned char UCHAR;2424,79286 +enum Lisp_Compiled2429,79369 + COMPILED_ARGLIST 2431,79392 + COMPILED_BYTECODE 2432,79418 + COMPILED_CONSTANTS 2433,79445 + COMPILED_STACK_DEPTH 2434,79473 + COMPILED_DOC_STRING 2435,79503 + COMPILED_INTERACTIVE 2436,79532 +enum char_bits2443,79834 + CHAR_ALT 2445,79853 + CHAR_SUPER 2446,79879 + CHAR_HYPER 2447,79907 + CHAR_SHIFT 2448,79935 + CHAR_CTL 2449,79963 + CHAR_META 2450,79989 + CHAR_MODIFIER_MASK 2452,80017 + CHARACTERBITS 2457,80212 +LISP_MACRO_DEFUN 2462,80270 +NATNUMP 2470,80412 +RANGED_INTEGERP 2476,80493 +#define TYPE_RANGED_INTEGERP(2481,80615 +LISP_MACRO_DEFUN 2486,80800 +VECTORP 2500,81273 +OVERLAYP 2505,81376 +SAVE_VALUEP 2510,81475 +FINALIZERP 2516,81581 +AUTOLOADP 2522,81685 +BUFFER_OBJFWDP 2528,81776 +PSEUDOVECTOR_TYPEP 2534,81874 +PSEUDOVECTORP 2542,82127 +WINDOW_CONFIGURATIONP 2558,82479 +PROCESSP 2564,82589 +WINDOWP 2570,82673 +TERMINALP 2576,82755 +SUBRP 2582,82841 +COMPILEDP 2588,82919 +BUFFERP 2594,83005 +CHAR_TABLE_P 2600,83087 +SUB_CHAR_TABLE_P 2606,83178 +BOOL_VECTOR_P 2612,83277 +FRAMEP 2618,83370 +IMAGEP 2625,83487 +ARRAYP 2632,83592 +CHECK_LIST 2638,83711 +LISP_MACRO_DEFUN_VOID 2643,83792 +CHECK_STRING_CAR 2653,84089 +CHECK_CONS 2658,84193 +CHECK_VECTOR 2663,84273 +CHECK_BOOL_VECTOR 2668,84359 +CHECK_VECTOR_OR_STRING 2674,84536 +CHECK_ARRAY 2683,84710 +CHECK_BUFFER 2688,84818 +CHECK_WINDOW 2693,84904 +CHECK_PROCESS 2699,85010 +CHECK_NATNUM 2705,85106 +#define CHECK_RANGED_INTEGER(2710,85183 +#define CHECK_TYPE_RANGED_INTEGER(2721,85566 +#define CHECK_NUMBER_COERCE_MARKER(2729,85836 +XFLOATINT 2738,86089 +CHECK_NUMBER_OR_FLOAT 2744,86160 +#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(2749,86259 +CHECK_NUMBER_CAR 2760,86669 +CHECK_NUMBER_CDR 2768,86791 +#define DEFUN(2803,88386 +#define DEFUN(2812,88854 +FUNCTIONP 2822,89209 +enum maxargs2831,89404 + MANY 2833,89421 + UNEVALLED 2834,89436 +#define CALLMANY(2838,89539 +#define CALLN(2844,89892 +#define DEFVAR_LISP(2869,91097 +#define DEFVAR_LISP_NOPRO(2874,91269 +#define DEFVAR_BOOL(2879,91451 +#define DEFVAR_INT(2884,91624 +#define DEFVAR_BUFFER_DEFAULTS(2890,91795 +#define DEFVAR_KBOARD(2896,91999 +typedef jmp_buf sys_jmp_buf;2906,92323 +# define sys_setjmp(2907,92352 +# define sys_longjmp(2908,92387 +typedef sigjmp_buf sys_jmp_buf;2910,92459 +# define sys_setjmp(2911,92491 +# define sys_longjmp(2912,92531 +typedef jmp_buf sys_jmp_buf;2916,92690 +# define sys_setjmp(2917,92719 +# define sys_longjmp(2918,92753 +enum specbind_tag 2943,93805 + SPECPDL_UNWIND,2944,93825 + SPECPDL_UNWIND_PTR,2945,93894 + SPECPDL_UNWIND_INT,2946,93945 + SPECPDL_UNWIND_VOID,2947,93993 + SPECPDL_BACKTRACE,2948,94047 + SPECPDL_LET,2949,94105 + SPECPDL_LET_LOCAL,2951,94235 + SPECPDL_LET_DEFAULT 2952,94292 +union specbinding2955,94364 + ENUM_BF 2957,94386 + ENUM_BF 2959,94443 + ENUM_BF 2964,94573 + ENUM_BF 2969,94696 + ENUM_BF 2974,94814 + ENUM_BF 2978,94919 + ENUM_BF 2983,95094 +enum handlertype 3021,96410 +enum handlertype { CATCHER,3021,96410 +enum handlertype { CATCHER, CONDITION_CASE 3021,96410 +struct handler3023,96457 +#define PUSH_HANDLER(3053,97446 +#define QUIT 3101,99223 +#define QUITP 3112,99473 +struct gcpro3132,100316 +#define GC_USE_GCPROS_AS_BEFORE 3171,101297 +#define GC_MAKE_GCPROS_NOOPS 3172,101332 +#define GC_MARK_STACK_CHECK_GCPROS 3173,101364 +#define GC_USE_GCPROS_CHECK_ZOMBIES 3174,101401 +#define GC_MARK_STACK 3177,101462 +#define BYTE_MARK_STACK 3181,101562 +#define GCPRO1(3190,101833 +#define GCPRO2(3191,101873 +#define GCPRO3(3192,101939 +#define GCPRO4(3194,102034 +#define GCPRO5(3196,102154 +#define GCPRO6(3198,102299 +#define GCPRO7(3201,102474 +#define UNGCPRO 3202,102553 +#define GCPRO1(3208,102653 +#define GCPRO2(3212,102775 +#define GCPRO3(3217,102967 +#define GCPRO4(3223,103229 +#define GCPRO5(3230,103560 +#define GCPRO6(3238,103961 +#define GCPRO7(3247,104431 +#define UNGCPRO 3257,104971 +#define GCPRO1(3263,105065 +#define GCPRO2(3269,105299 +#define GCPRO3(3278,105717 +#define GCPRO4(3289,106274 +#define GCPRO5(3302,106972 +#define GCPRO6(3317,107812 +#define GCPRO7(3334,108793 +#define UNGCPRO 3353,109916 +#define RETURN_UNGCPRO(3363,110183 +vcopy 3384,110657 +set_hash_key_slot 3393,110932 +set_hash_value_slot 3399,111071 +set_symbol_function 3408,111306 +set_symbol_plist 3414,111421 +set_symbol_next 3420,111524 +blv_found 3428,111697 +set_overlay_plist 3437,111880 +string_intervals 3445,112031 +set_string_intervals 3453,112153 +set_char_table_defalt 3462,112355 +set_char_table_purpose 3467,112467 +set_char_table_extras 3475,112636 +set_char_table_contents 3482,112845 +set_sub_char_table_contents 3489,113040 +enum Arith_Comparison 3497,113303 + ARITH_EQUAL,3498,113327 + ARITH_NOTEQUAL,3499,113342 + ARITH_LESS,3500,113360 + ARITH_GRTR,3501,113374 + ARITH_LESS_OR_EQUAL,3502,113388 + ARITH_GRTR_OR_EQUAL3503,113411 +#define INTEGER_TO_CONS(3511,113762 +#define CONS_TO_INTEGER(3529,114625 +enum { NEXT_ALMOST_PRIME_LIMIT 3573,116329 +extern EMACS_INT next_almost_prime 3574,116368 +enum constype 3739,123820 +enum constype {CONSTYPE_HEAP,CONSTYPE_HEAP3739,123820 +enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}CONSTYPE_PURE3739,123820 +list2i 3745,124010 +list3i 3751,124119 +list4i 3757,124258 +extern Lisp_Object make_formatted_string 3767,124634 +build_pure_c_string 3792,125662 +build_string 3801,125867 +make_uninit_vector 3820,126438 +make_uninit_sub_char_table 3833,126657 +#define ALLOCATE_PSEUDOVECTOR(3850,127201 +#define ALLOCATE_ZEROED_PSEUDOVECTOR(3858,127537 +INLINE void 3890,128943 +extern void *r_alloc r_alloc3895,129064 +#define FLOAT_TO_STRING_BUFSIZE 3927,130527 +intern 3968,132134 +intern_c_string 3974,132222 +extern _Noreturn void error 4034,135601 +fast_string_match_ignore_case 4136,140089 +INLINE void fixup_locale 4241,143854 +INLINE void synchronize_system_messages_locale 4242,143889 +INLINE void synchronize_system_time_locale 4243,143946 +#define IS_DAEMON 4257,144419 +#define DAEMON_RUNNING 4258,144459 +#define IS_DAEMON 4261,144558 +#define DAEMON_RUNNING 4262,144603 +# define WAIT_READING_MAX 4281,145422 +# define WAIT_READING_MAX 4283,145494 +extern _Noreturn void emacs_abort 4374,148386 +egetenv 4532,152809 +#define eabs(4545,153305 +#define make_fixnum_or_float(4550,153438 +enum MAX_ALLOCA 4556,153689 +enum MAX_ALLOCA { MAX_ALLOCA 4556,153689 +extern void *record_xmalloc record_xmalloc4558,153734 +#define USE_SAFE_ALLOCA 4560,153800 +#define AVAIL_ALLOCA(4564,153933 +#define SAFE_ALLOCA(4568,154044 +#define SAFE_NALLOCA(4576,154385 +#define SAFE_ALLOCA_STRING(4590,154861 +#define SAFE_FREE(4598,155113 +#define SAFE_ALLOCA_LISP(4625,155691 +# define USE_STACK_LISP_OBJECTS 4652,156813 +# undef USE_STACK_LISP_OBJECTS4658,156979 +# define USE_STACK_LISP_OBJECTS 4659,157010 +enum { defined_GC_CHECK_STRING_BYTES 4663,157085 +enum { defined_GC_CHECK_STRING_BYTES 4665,157138 +union Aligned_Cons4670,157272 +union Aligned_String4676,157352 + USE_STACK_CONS 4689,157707 + USE_STACK_STRING 4691,157813 +#define STACK_CONS(4699,158150 +#define AUTO_CONS_EXPR(4701,158247 +#define AUTO_CONS(4709,158610 +#define AUTO_LIST1(4710,158681 +#define AUTO_LIST2(4712,158789 +#define AUTO_LIST3(4716,158944 +#define AUTO_LIST4(4720,159119 +# define verify_ascii(4732,159510 +#define AUTO_STRING(4740,159818 +#define FOR_EACH_TAIL(4752,160282 +#define FOR_EACH_ALIST_VALUE(4766,160773 +maybe_gc 4774,161060 +functionp 4784,161299 c-src/machsyscalls.c,23 #define SYSCALL(6,113 @@ -2400,10 +2400,10 @@ el-src/emacs/lisp/progmodes/etags.el,5069 (defvar etags-xref-find-definitions-tag-order 2076,82586 (defun etags-xref-find 2082,82876 (defun etags--xref-find-definitions 2096,83405 -(defclass xref-etags-location 2129,85120 -(defun xref-make-etags-location 2135,85343 -(cl-defmethod xref-location-marker 2139,85498 -(cl-defmethod xref-location-line 2146,85742 +(defclass xref-etags-location 2129,85119 +(defun xref-make-etags-location 2135,85342 +(cl-defmethod xref-location-marker 2139,85497 +(cl-defmethod xref-location-line 2146,85741 erl-src/gs_dialog.erl,98 -define(VERSION2,32 @@ -3141,25 +3141,25 @@ class Configure(760,24879 def save(797,26022 def nosave(807,26310 -ruby-src/test.rb,594 +ruby-src/test.rb,604 module ModuleExample1,0 class ClassExample2,21 def instance_method3,44 - def ClassExample.class_method6,116 - def instance_method_exclamation!9,221 - def instance_method_question?12,319 - def instance_method_equals=class_method_equals=15,411 - def `(18,499 - def +(21,589 - def [](24,637 - def []=([]=27,687 - def <<(30,749 - def ==(==33,799 - def <=(<=36,869 - def <=>(<=>39,940 - def ===(===42,987 - def module_instance_method46,1048 - def ModuleExample.module_class_method49,1110 + def ClassExample.class_method6,121 + def instance_method_exclamation!9,206 + def instance_method_question?12,310 + def instance_method_equals=instance_method_equals=15,408 + def `(18,502 + def +(21,592 + def [](24,640 + def []=([]=27,690 + def <<(30,752 + def ==(==33,802 + def <=(<=36,872 + def <=>(<=>39,943 + def ===(===42,990 + def module_instance_method46,1051 + def ModuleExample.module_class_method49,1131 ruby-src/test1.ruby,37 class A1,0 @@ -3182,722 +3182,722 @@ tex-src/gzip.texi,303 @node Problems,460,16767 @node Concept Index,Concept Index473,17287 -tex-src/texinfo.tex,30626 -\def\texinfoversion{\texinfoversion25,1019 -\def\tie{\tie48,1510 -\def\gloggingall{\gloggingall71,2260 -\def\loggingall{\loggingall72,2329 -\def\onepageout#1{\onepageout98,3266 -\def\croppageout#1{\croppageout114,4016 -\def\cropmarks{\cropmarks141,5076 -\def\pagebody#1{\pagebody143,5123 -\def\ewtop{\ewtop156,5578 -\def\nstop{\nstop157,5642 -\def\ewbot{\ewbot159,5725 -\def\nsbot{\nsbot160,5789 -\def\parsearg #1{\parsearg169,6088 -\def\parseargx{\parseargx171,6166 -\def\parseargline{\parseargline181,6406 -\def\flushcr{\flushcr185,6527 -\newif\ifENV \ENVfalse \def\inENV{\inENV189,6726 -\def\ENVcheck{\ENVcheck190,6790 -\outer\def\begin{\begin197,7037 -\def\beginxxx #1{\beginxxx199,7075 -\def\end{\end207,7330 -\def\endxxx #1{\endxxx209,7358 -\def\errorE#1{\errorE215,7547 -\def\singlespace{\singlespace221,7741 -\def\@{\@231,7964 -\def\`{\`235,8064 -\def\'{\'236,8076 -\def\mylbrace {\mylbrace240,8124 -\def\myrbrace {\myrbrace241,8157 -\def\:{\:246,8271 -\def\*{\*249,8325 -\def\.{\.252,8401 -\def\w#1{\w257,8632 -\def\group{\group267,9115 - \def\Egroup{\Egroup272,9279 -\def\need{\need288,9721 -\def\needx#1{\needx299,9998 -\def\dots{\dots338,11384 -\def\page{\page342,11448 -\def\exdent{\exdent352,11775 -\def\exdentyyy #1{\exdentyyy353,11808 -\def\nofillexdent{\nofillexdent356,11952 -\def\nofillexdentyyy #1{\nofillexdentyyy357,11997 -\def\include{\include364,12181 -\def\includezzz #1{\includezzz365,12216 -\def\thisfile{\thisfile368,12267 -\def\center{\center372,12330 -\def\centerzzz #1{\centerzzz373,12363 -\def\sp{\sp379,12505 -\def\spxxx #1{\spxxx380,12530 -\def\comment{\comment386,12704 -\def\commentxxx #1{\commentxxx389,12801 -\def\ignoresections{\ignoresections395,12970 -\let\chapter=\relax=\relax396,12992 -\let\section=\relax=\relax405,13237 -\let\subsection=\relax=\relax408,13298 -\let\subsubsection=\relax=\relax409,13321 -\let\appendix=\relax=\relax410,13347 -\let\appendixsec=\relaxsec=\relax411,13368 -\let\appendixsection=\relaxsection=\relax412,13392 -\let\appendixsubsec=\relaxsubsec=\relax413,13420 -\let\appendixsubsection=\relaxsubsection=\relax414,13447 -\let\appendixsubsubsec=\relaxsubsubsec=\relax415,13478 -\let\appendixsubsubsection=\relaxsubsubsection=\relax416,13508 -\def\ignore{\ignore422,13610 -\long\def\ignorexxx #1\end ignore{\ignorexxx426,13750 -\def\direntry{\direntry428,13809 -\long\def\direntryxxx #1\end direntry{\direntryxxx429,13848 -\def\ifset{\ifset433,13958 -\def\ifsetxxx #1{\ifsetxxx435,14016 -\def\Eifset{\Eifset439,14143 -\def\ifsetfail{\ifsetfail440,14157 -\long\def\ifsetfailxxx #1\end ifset{\ifsetfailxxx441,14213 -\def\ifclear{\ifclear443,14274 -\def\ifclearxxx #1{\ifclearxxx445,14336 -\def\Eifclear{\Eifclear449,14467 -\def\ifclearfail{\ifclearfail450,14483 -\long\def\ifclearfailxxx #1\end ifclear{\ifclearfailxxx451,14543 -\def\set{\set455,14694 -\def\setxxx #1{\setxxx456,14721 -\def\clear{\clear459,14783 -\def\clearxxx #1{\clearxxx460,14814 -\def\iftex{\iftex465,14931 -\def\Eiftex{\Eiftex466,14944 -\def\ifinfo{\ifinfo467,14958 -\long\def\ifinfoxxx #1\end ifinfo{\ifinfoxxx468,15008 -\long\def\menu #1\end menu{\menu470,15067 -\def\asis#1{\asis471,15096 -\def\math#1{\math484,15639 -\def\node{\node486,15683 -\def\nodezzz#1{\nodezzz487,15721 -\def\nodexxx[#1,#2]{\nodexxx[488,15752 -\def\donoderef{\donoderef491,15814 -\def\unnumbnoderef{\unnumbnoderef495,15935 -\def\appendixnoderef{\appendixnoderef499,16066 -\expandafter\expandafter\expandafter\appendixsetref{setref500,16112 -\let\refill=\relaxill=\relax503,16201 -\def\setfilename{\setfilename508,16415 -\outer\def\bye{\bye517,16661 -\def\inforef #1{\inforef519,16717 -\def\inforefzzz #1,#2,#3,#4**{\inforefzzz520,16755 -\def\losespace #1{\losespace522,16852 -\def\sf{\sf531,17056 -\font\defbf=cmbx10 scaled \magstep1 %was 1314bf=cmbx10557,17851 -\font\deftt=cmtt10 scaled \magstep1tt=cmtt10558,17897 -\def\df{\df559,17933 -\def\resetmathfonts{\resetmathfonts634,20527 -\def\textfonts{\textfonts647,21116 -\def\chapfonts{\chapfonts652,21331 -\def\secfonts{\secfonts657,21547 -\def\subsecfonts{\subsecfonts662,21752 -\def\indexfonts{\indexfonts667,21969 -\def\smartitalicx{\smartitalicx690,22701 -\def\smartitalic#1{\smartitalic691,22777 -\let\cite=\smartitalic=\smartitalic697,22922 -\def\b#1{\b699,22946 -\def\t#1{\t702,22981 -\def\samp #1{\samp705,23133 -\def\key #1{\key706,23166 -\def\ctrl #1{\ctrl707,23227 -\def\tclose#1{\tclose715,23429 -\def\ {\719,23595 -\def\xkey{\xkey727,23864 -\def\kbdfoo#1#2#3\par{\kbdfoo728,23880 -\def\dmn#1{\dmn737,24181 -\def\kbd#1{\kbd739,24208 -\def\l#1{\l741,24265 -\def\r#1{\r743,24294 -\def\sc#1{\sc745,24362 -\def\ii#1{\ii746,24405 -\def\titlefont#1{\titlefont754,24638 -\def\titlepage{\titlepage760,24741 - \def\subtitlefont{\subtitlefont765,24968 - \def\authorfont{\authorfont767,25052 - \def\title{\title773,25262 - \def\titlezzz##1{\titlezzz774,25297 - \def\subtitle{\subtitle782,25612 - \def\subtitlezzz##1{\subtitlezzz783,25653 - \def\author{\author786,25771 - \def\authorzzz##1{\authorzzz787,25808 - \def\page{\page793,26099 -\def\Etitlepage{\Etitlepage803,26268 -\def\finishtitlepage{\finishtitlepage816,26656 -\def\evenheading{\evenheading845,27664 -\def\oddheading{\oddheading846,27707 -\def\everyheading{\everyheading847,27748 -\def\evenfooting{\evenfooting849,27794 -\def\oddfooting{\oddfooting850,27837 -\def\everyfooting{\everyfooting851,27878 -\def\headings #1 {\headings892,29570 -\def\HEADINGSoff{\HEADINGSoff894,29619 -\def\HEADINGSdouble{\HEADINGSdouble903,30046 -\def\HEADINGSsingle{\HEADINGSsingle913,30366 -\def\HEADINGSon{\HEADINGSon921,30587 -\def\HEADINGSafter{\HEADINGSafter923,30621 -\def\HEADINGSdoublex{\HEADINGSdoublex925,30716 -\def\HEADINGSsingleafter{\HEADINGSsingleafter932,30904 -\def\HEADINGSsinglex{\HEADINGSsinglex933,30965 -\def\today{\today942,31240 -\def\thistitle{\thistitle957,31785 -\def\settitle{\settitle958,31810 -\def\settitlezzz #1{\settitlezzz959,31847 -\def\internalBitem{\internalBitem991,32777 -\def\internalBitemx{\internalBitemx992,32827 -\def\internalBxitem "#1"{\internalBxitem994,32872 -\def\internalBxitemx "#1"{\internalBxitemx995,32952 -\def\internalBkitem{\internalBkitem997,33027 -\def\internalBkitemx{\internalBkitemx998,33079 -\def\kitemzzz #1{\kitemzzz1000,33126 -\def\xitemzzz #1{\xitemzzz1003,33228 -\def\itemzzz #1{\itemzzz1006,33331 -\def\item{\item1036,34402 -\def\itemx{\itemx1037,34453 -\def\kitem{\kitem1038,34506 -\def\kitemx{\kitemx1039,34559 -\def\xitem{\xitem1040,34614 -\def\xitemx{\xitemx1041,34667 -\def\description{\description1044,34777 -\def\table{\table1046,34827 -\def\ftable{\ftable1051,34971 -\def\Eftable{\Eftable1055,35117 -\def\vtable{\vtable1058,35186 -\def\Evtable{\Evtable1062,35332 -\def\dontindex #1{\dontindex1065,35401 -\def\fnitemindex #1{\fnitemindex1066,35421 -\def\vritemindex #1{\vritemindex1067,35466 -\def\tablez #1#2#3#4#5#6{\tablez1073,35615 -\def\Edescription{\Edescription1076,35673 -\def\itemfont{\itemfont1081,35875 -\def\Etable{\Etable1089,36101 -\def\itemize{\itemize1102,36425 -\def\itemizezzz #1{\itemizezzz1104,36461 -\def\itemizey #1#2{\itemizey1109,36556 -\def#2{1118,36802 -\def\itemcontents{\itemcontents1119,36843 -\def\bullet{\bullet1122,36891 -\def\minus{\minus1123,36918 -\def\frenchspacing{\frenchspacing1127,37026 -\def\splitoff#1#2\endmark{\splitoff1133,37251 -\def\enumerate{\enumerate1139,37481 -\def\enumeratezzz #1{\enumeratezzz1140,37520 -\def\enumeratey #1 #2\endenumeratey{\enumeratey1141,37573 - \def\thearg{\thearg1145,37720 - \ifx\thearg\empty \def\thearg{\thearg1146,37739 -\def\numericenumerate{\numericenumerate1183,39073 -\def\lowercaseenumerate{\lowercaseenumerate1189,39203 -\def\uppercaseenumerate{\uppercaseenumerate1202,39550 -\def\startenumeration#1{\startenumeration1218,40040 -\def\alphaenumerate{\alphaenumerate1226,40222 -\def\capsenumerate{\capsenumerate1227,40257 -\def\Ealphaenumerate{\Ealphaenumerate1228,40291 -\def\Ecapsenumerate{\Ecapsenumerate1229,40325 -\def\itemizeitem{\itemizeitem1233,40405 -\def\newindex #1{\newindex1258,41262 -\def\defindex{\defindex1267,41551 -\def\newcodeindex #1{\newcodeindex1271,41659 -\def\defcodeindex{\defcodeindex1278,41919 -\def\synindex #1 #2 {\synindex1282,42099 -\def\syncodeindex #1 #2 {\syncodeindex1291,42439 -\def\doindex#1{\doindex1308,43118 -\def\singleindexer #1{\singleindexer1309,43177 -\def\docodeindex#1{\docodeindex1312,43289 -\def\singlecodeindexer #1{\singlecodeindexer1313,43356 -\def\indexdummies{\indexdummies1315,43414 -\def\_{\_1316,43434 -\def\w{\w1317,43462 -\def\bf{\bf1318,43489 -\def\rm{\rm1319,43518 -\def\sl{\sl1320,43547 -\def\sf{\sf1321,43576 -\def\tt{\tt1322,43604 -\def\gtr{\gtr1323,43632 -\def\less{\less1324,43662 -\def\hat{\hat1325,43694 -\def\char{\char1326,43724 -\def\TeX{\TeX1327,43756 -\def\dots{\dots1328,43786 -\def\copyright{\copyright1329,43819 -\def\tclose##1{\tclose1330,43862 -\def\code##1{\code1331,43907 -\def\samp##1{\samp1332,43948 -\def\t##1{\t1333,43989 -\def\r##1{\r1334,44024 -\def\i##1{\i1335,44059 -\def\b##1{\b1336,44094 -\def\cite##1{\cite1337,44129 -\def\key##1{\key1338,44170 -\def\file##1{\file1339,44209 -\def\var##1{\var1340,44250 -\def\kbd##1{\kbd1341,44289 -\def\indexdummyfont#1{\indexdummyfont1346,44445 -\def\indexdummytex{\indexdummytex1347,44471 -\def\indexdummydots{\indexdummydots1348,44495 -\def\indexnofonts{\indexnofonts1350,44521 -\let\w=\indexdummyfontdummyfont1351,44541 -\let\t=\indexdummyfontdummyfont1352,44564 -\let\r=\indexdummyfontdummyfont1353,44587 -\let\i=\indexdummyfontdummyfont1354,44610 -\let\b=\indexdummyfontdummyfont1355,44633 -\let\emph=\indexdummyfontdummyfont1356,44656 -\let\strong=\indexdummyfontdummyfont1357,44682 -\let\cite=\indexdummyfont=\indexdummyfont1358,44710 -\let\sc=\indexdummyfontdummyfont1359,44736 -\let\tclose=\indexdummyfontdummyfont1363,44908 -\let\code=\indexdummyfontdummyfont1364,44936 -\let\file=\indexdummyfontdummyfont1365,44962 -\let\samp=\indexdummyfontdummyfont1366,44988 -\let\kbd=\indexdummyfontdummyfont1367,45014 -\let\key=\indexdummyfontdummyfont1368,45039 -\let\var=\indexdummyfontdummyfont1369,45064 -\let\TeX=\indexdummytexdummytex1370,45089 -\let\dots=\indexdummydotsdummydots1371,45113 -\let\indexbackslash=0 %overridden during \printindex.backslash=01381,45365 -\def\doind #1#2{\doind1383,45421 -{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1385,45464 -\def\rawbackslashxx{\rawbackslashxx1388,45604 -{\indexnofontsnofonts1393,45866 -\def\dosubind #1#2#3{\dosubind1404,46177 -{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1406,46225 -\def\rawbackslashxx{\rawbackslashxx1409,46329 -{\indexnofontsnofonts1413,46483 -\def\findex {\findex1442,47414 -\def\kindex {\kindex1443,47437 -\def\cindex {\cindex1444,47460 -\def\vindex {\vindex1445,47483 -\def\tindex {\tindex1446,47506 -\def\pindex {\pindex1447,47529 -\def\cindexsub {\cindexsub1449,47553 -\def\printindex{\printindex1461,47880 -\def\doprintindex#1{\doprintindex1463,47921 - \def\indexbackslash{\indexbackslash1480,48406 - \indexfonts\rm \tolerance=9500 \advance\baselineskip -1ptfonts\rm1481,48445 -\def\initial #1{\initial1516,49517 -\def\entry #1#2{\entry1522,49724 - \null\nobreak\indexdotfill % Have leaders before the page number.dotfill1539,50371 -\def\indexdotfill{\indexdotfill1548,50699 -\def\primary #1{\primary1551,50805 -\def\secondary #1#2{\secondary1555,50887 -\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\pardotfill1558,50969 -\newbox\partialpageialpage1565,51142 -\def\begindoublecolumns{\begindoublecolumns1571,51300 - \output={\global\setbox\partialpage=ialpage=1572,51336 -\def\enddoublecolumns{\enddoublecolumns1576,51524 -\def\doublecolumnout{\doublecolumnout1579,51609 - \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1580,51678 -\def\pagesofar{\pagesofar1583,51856 -\def\balancecolumns{\balancecolumns1587,52093 - \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpageialpage1593,52264 - \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1599,52525 -\newcount \appendixno \appendixno = `\@no1626,53430 -\def\appendixletter{\appendixletter1627,53471 -\def\opencontents{\opencontents1631,53574 -\def\thischapter{\thischapter1636,53755 -\def\seccheck#1{\seccheck1637,53793 -\def\chapternofonts{\chapternofonts1642,53897 -\def\result{\result1645,53972 -\def\equiv{\equiv1646,54007 -\def\expansion{\expansion1647,54040 -\def\print{\print1648,54081 -\def\TeX{\TeX1649,54114 -\def\dots{\dots1650,54143 -\def\copyright{\copyright1651,54174 -\def\tt{\tt1652,54215 -\def\bf{\bf1653,54242 -\def\w{\w1654,54270 -\def\less{\less1655,54295 -\def\gtr{\gtr1656,54326 -\def\hat{\hat1657,54355 -\def\char{\char1658,54384 -\def\tclose##1{\tclose1659,54415 -\def\code##1{\code1660,54459 -\def\samp##1{\samp1661,54499 -\def\r##1{\r1662,54539 -\def\b##1{\b1663,54573 -\def\key##1{\key1664,54607 -\def\file##1{\file1665,54645 -\def\kbd##1{\kbd1666,54685 -\def\i##1{\i1668,54793 -\def\cite##1{\cite1669,54827 -\def\var##1{\var1670,54867 -\def\emph##1{\emph1671,54905 -\def\dfn##1{\dfn1672,54945 -\def\thischaptername{\thischaptername1675,54986 -\outer\def\chapter{\chapter1676,55025 -\def\chapterzzz #1{\chapterzzz1677,55066 -{\chapternofonts%nofonts%1686,55462 -\global\let\section = \numberedsec=1691,55615 -\global\let\subsection = \numberedsubsec=1692,55650 -\global\let\subsubsection = \numberedsubsubsec=1693,55691 -\outer\def\appendix{\appendix1696,55742 -\def\appendixzzz #1{\appendixzzz1697,55785 -\global\advance \appendixno by 1 \message{no1699,55862 -\chapmacro {#1}{Appendix \appendixletter}letter1700,55931 -\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}letter:1703,56024 -{\chapternofonts%nofonts%1704,56096 - {#1}{Appendix \appendixletter}letter1706,56152 -\appendixnoderef %noderef1709,56252 -\global\let\section = \appendixsec=1710,56271 -\global\let\subsection = \appendixsubsec=1711,56306 -\global\let\subsubsection = \appendixsubsubsec=1712,56347 -\outer\def\top{\top1715,56398 -\outer\def\unnumbered{\unnumbered1716,56438 -\def\unnumberedzzz #1{\unnumberedzzz1717,56485 -{\chapternofonts%nofonts%1721,56648 -\global\let\section = \unnumberedsec=1726,56798 -\global\let\subsection = \unnumberedsubsec=1727,56835 -\global\let\subsubsection = \unnumberedsubsubsec=1728,56878 -\outer\def\numberedsec{\numberedsec1731,56931 -\def\seczzz #1{\seczzz1732,56972 -{\chapternofonts%nofonts%1735,57128 -\outer\def\appendixsection{\appendixsection1744,57314 -\outer\def\appendixsec{\appendixsec1745,57371 -\def\appendixsectionzzz #1{\appendixsectionzzz1746,57424 -\gdef\thissection{#1}\secheading {#1}{\appendixletter}letter1748,57536 -{\chapternofonts%nofonts%1749,57604 -{#1}{\appendixletter}letter1751,57660 -\appendixnoderef %noderef1754,57760 -\outer\def\unnumberedsec{\unnumberedsec1758,57800 -\def\unnumberedseczzz #1{\unnumberedseczzz1759,57853 -{\chapternofonts%nofonts%1761,57948 -\outer\def\numberedsubsec{\numberedsubsec1769,58116 -\def\numberedsubseczzz #1{\numberedsubseczzz1770,58171 -{\chapternofonts%nofonts%1773,58350 -\outer\def\appendixsubsec{\appendixsubsec1782,58554 -\def\appendixsubseczzz #1{\appendixsubseczzz1783,58609 -\subsecheading {#1}{\appendixletter}letter1785,58731 -{\chapternofonts%nofonts%1786,58796 -{#1}{\appendixletter}letter1788,58855 -\appendixnoderef %noderef1791,58970 -\outer\def\unnumberedsubsec{\unnumberedsubsec1795,59010 -\def\unnumberedsubseczzz #1{\unnumberedsubseczzz1796,59069 -{\chapternofonts%nofonts%1798,59170 -\outer\def\numberedsubsubsec{\numberedsubsubsec1806,59341 -\def\numberedsubsubseczzz #1{\numberedsubsubseczzz1807,59402 -{\chapternofonts%nofonts%1811,59599 -\outer\def\appendixsubsubsec{\appendixsubsubsec1822,59832 -\def\appendixsubsubseczzz #1{\appendixsubsubseczzz1823,59893 - {\appendixletter}letter1826,60032 -{\chapternofonts%nofonts%1827,60098 - {\appendixletter}letter1829,60163 -\appendixnoderef %noderef1833,60297 -\outer\def\unnumberedsubsubsec{\unnumberedsubsubsec1837,60337 -\def\unnumberedsubsubseczzz #1{\unnumberedsubsubseczzz1838,60402 -{\chapternofonts%nofonts%1840,60509 -\def\infotop{\infotop1850,60838 -\def\infounnumbered{\infounnumbered1851,60876 -\def\infounnumberedsec{\infounnumberedsec1852,60921 -\def\infounnumberedsubsec{\infounnumberedsubsec1853,60972 -\def\infounnumberedsubsubsec{\infounnumberedsubsubsec1854,61029 -\def\infoappendix{\infoappendix1856,61093 -\def\infoappendixsec{\infoappendixsec1857,61134 -\def\infoappendixsubsec{\infoappendixsubsec1858,61181 -\def\infoappendixsubsubsec{\infoappendixsubsubsec1859,61234 -\def\infochapter{\infochapter1861,61294 -\def\infosection{\infosection1862,61333 -\def\infosubsection{\infosubsection1863,61372 -\def\infosubsubsection{\infosubsubsection1864,61417 -\global\let\section = \numberedsec=1869,61654 -\global\let\subsection = \numberedsubsec=1870,61689 -\global\let\subsubsection = \numberedsubsubsec=1871,61730 -\def\majorheading{\majorheading1885,62237 -\def\majorheadingzzz #1{\majorheadingzzz1886,62282 -\def\chapheading{\chapheading1892,62515 -\def\chapheadingzzz #1{\chapheadingzzz1893,62558 -\def\heading{\heading1898,62753 -\def\subheading{\subheading1900,62790 -\def\subsubheading{\subsubheading1902,62833 -\def\dobreak#1#2{\dobreak1909,63110 -\def\setchapterstyle #1 {\setchapterstyle1911,63188 -\def\chapbreak{\chapbreak1918,63443 -\def\chappager{\chappager1919,63493 -\def\chapoddpage{\chapoddpage1920,63531 -\def\setchapternewpage #1 {\setchapternewpage1922,63610 -\def\CHAPPAGoff{\CHAPPAGoff1924,63667 -\def\CHAPPAGon{\CHAPPAGon1928,63761 -\global\def\HEADINGSon{\HEADINGSon1931,63852 -\def\CHAPPAGodd{\CHAPPAGodd1933,63894 -\global\def\HEADINGSon{\HEADINGSon1936,63990 -\def\CHAPFplain{\CHAPFplain1940,64044 -\def\chfplain #1#2{\chfplain1944,64136 -\def\unnchfplain #1{\unnchfplain1955,64359 -\def\unnchfopen #1{\unnchfopen1963,64588 -\def\chfopen #1#2{\chfopen1969,64796 -\def\CHAPFopen{\CHAPFopen1974,64940 -\def\subsecheadingbreak{\subsecheadingbreak1981,65158 -\def\secheadingbreak{\secheadingbreak1984,65287 -\def\secheading #1#2#3{\secheading1992,65569 -\def\plainsecheading #1{\plainsecheading1993,65625 -\def\secheadingi #1{\secheadingi1994,65668 -\def\subsecheading #1#2#3#4{\subsecheading2005,66036 -\def\subsecheadingi #1{\subsecheadingi2006,66103 -\def\subsubsecfonts{\subsubsecfonts2013,66400 -\def\subsubsecheading #1#2#3#4#5{\subsubsecheading2016,66523 -\def\subsubsecheadingi #1{\subsubsecheadingi2017,66601 -\def\startcontents#1{\startcontents2031,67073 - \unnumbchapmacro{#1}\def\thischapter{\thischapter2039,67346 -\outer\def\contents{\contents2048,67705 -\outer\def\summarycontents{\summarycontents2056,67849 - \def\secentry ##1##2##3##4{\secentry2066,68220 - \def\unnumbsecentry ##1##2{\unnumbsecentry2067,68255 - \def\subsecentry ##1##2##3##4##5{\subsecentry2068,68290 - \def\unnumbsubsecentry ##1##2{\unnumbsubsecentry2069,68331 - \def\subsubsecentry ##1##2##3##4##5##6{\subsubsecentry2070,68369 - \def\unnumbsubsubsecentry ##1##2{\unnumbsubsubsecentry2071,68416 -\def\chapentry#1#2#3{\chapentry2084,68850 -\def\shortchapentry#1#2#3{\shortchapentry2087,68967 - {#2\labelspace #1}space2090,69077 -\def\unnumbchapentry#1#2{\unnumbchapentry2093,69131 -\def\shortunnumberedentry#1#2{\shortunnumberedentry2094,69178 -\def\secentry#1#2#3#4{\secentry2101,69342 -\def\unnumbsecentry#1#2{\unnumbsecentry2102,69401 -\def\subsecentry#1#2#3#4#5{\subsecentry2105,69462 -\def\unnumbsubsecentry#1#2{\unnumbsubsecentry2106,69532 -\def\subsubsecentry#1#2#3#4#5#6{\subsubsecentry2109,69606 - \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}space2110,69640 -\def\unnumbsubsubsecentry#1#2{\unnumbsubsubsecentry2111,69691 -\def\dochapentry#1#2{\dochapentry2122,70065 -\def\dosecentry#1#2{\dosecentry2137,70670 -\def\dosubsecentry#1#2{\dosubsecentry2144,70848 -\def\dosubsubsecentry#1#2{\dosubsubsecentry2151,71033 -\def\labelspace{\labelspace2159,71284 -\def\dopageno#1{\dopageno2161,71319 -\def\doshortpageno#1{\doshortpageno2162,71345 -\def\chapentryfonts{\chapentryfonts2164,71377 -\def\secentryfonts{\secentryfonts2165,71412 -\def\point{\point2191,72371 -\def\result{\result2193,72392 -\def\expansion{\expansion2194,72465 -\def\print{\print2195,72536 -\def\equiv{\equiv2197,72603 -\def\error{\error2217,73376 -\def\tex{\tex2223,73605 -\def\@{\@2241,73988 -\gdef\sepspaces{\def {\ }}}\2264,74720 -\def\aboveenvbreak{\aboveenvbreak2267,74802 -\def\afterenvbreak{\afterenvbreak2271,74968 -\def\ctl{\ctl2285,75479 -\def\ctr{\ctr2286,75551 -\def\cbl{\cbl2287,75590 -\def\cbr{\cbr2288,75630 -\def\carttop{\carttop2289,75669 -\def\cartbot{\cartbot2292,75777 -\long\def\cartouche{\cartouche2298,75917 -\def\Ecartouche{\Ecartouche2325,76705 -\def\lisp{\lisp2337,76840 -\def\Elisp{\Elisp2347,77187 -\def\next##1{\next2359,77513 -\def\Eexample{\Eexample2363,77555 -\def\Esmallexample{\Esmallexample2366,77602 -\def\smalllispx{\smalllispx2372,77780 -\def\Esmalllisp{\Esmalllisp2382,78134 -\obeyspaces \obeylines \ninett \indexfonts \rawbackslashfonts2395,78490 -\def\next##1{\next2396,78547 -\def\display{\display2400,78627 -\def\Edisplay{\Edisplay2409,78946 -\def\next##1{\next2421,79257 -\def\format{\format2425,79360 -\def\Eformat{\Eformat2433,79656 -\def\next##1{\next2436,79745 -\def\flushleft{\flushleft2440,79797 -\def\Eflushleft{\Eflushleft2450,80168 -\def\next##1{\next2453,80261 -\def\flushright{\flushright2455,80283 -\def\Eflushright{\Eflushright2465,80655 -\def\next##1{\next2469,80786 -\def\quotation{\quotation2473,80844 -\def\Equotation{\Equotation2479,81036 -\def\setdeffont #1 {\setdeffont2492,81434 -\newskip\defbodyindent \defbodyindent=.4inbodyindent2494,81480 -\newskip\defargsindent \defargsindent=50ptargsindent2495,81523 -\newskip\deftypemargin \deftypemargin=12pttypemargin2496,81566 -\newskip\deflastargmargin \deflastargmargin=18ptlastargmargin2497,81609 -\def\activeparens{\activeparens2502,81807 -\def\opnr{\opnr2528,83019 -\def\lbrb{\lbrb2529,83084 -\def\defname #1#2{\defname2535,83285 -\advance\dimen2 by -\defbodyindentbodyindent2539,83403 -\advance\dimen3 by -\defbodyindentbodyindent2541,83457 -\setbox0=\hbox{\hskip \deflastargmargin{lastargmargin2543,83511 -\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuationsargsindent2545,83653 -\parshape 2 0in \dimen0 \defargsindent \dimen1 %argsindent2546,83728 -\rlap{\rightline{{\rm #2}\hskip \deftypemargin}typemargin2553,84097 -\advance\leftskip by -\defbodyindentbodyindent2556,84231 -\exdentamount=\defbodyindentbodyindent2557,84268 -\def\defparsebody #1#2#3{\defparsebody2567,84627 -\def#1{2571,84811 -\def#2{2572,84847 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2574,84919 -\exdentamount=\defbodyindentbodyindent2575,84993 -\def\defmethparsebody #1#2#3#4 {\defmethparsebody2580,85097 -\def#1{2584,85258 -\def#2##1 {2585,85294 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2587,85377 -\exdentamount=\defbodyindentbodyindent2588,85451 -\def\defopparsebody #1#2#3#4#5 {\defopparsebody2591,85536 -\def#1{2595,85697 -\def#2##1 ##2 {2596,85733 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2599,85833 -\exdentamount=\defbodyindentbodyindent2600,85907 -\def\defvarparsebody #1#2#3{\defvarparsebody2607,86178 -\def#1{2611,86365 -\def#2{2612,86401 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2614,86460 -\exdentamount=\defbodyindentbodyindent2615,86534 -\def\defvrparsebody #1#2#3#4 {\defvrparsebody2620,86625 -\def#1{2624,86784 -\def#2##1 {2625,86820 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2627,86890 -\exdentamount=\defbodyindentbodyindent2628,86964 -\def\defopvarparsebody #1#2#3#4#5 {\defopvarparsebody2631,87036 -\def#1{2635,87200 -\def#2##1 ##2 {2636,87236 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2639,87323 -\exdentamount=\defbodyindentbodyindent2640,87397 -\def\defunargs #1{\defunargs2663,88157 -\def\deftypefunargs #1{\deftypefunargs2675,88539 -\def\deffn{\deffn2689,88921 -\def\deffnheader #1#2#3{\deffnheader2691,88978 -\begingroup\defname {name2692,89026 -\def\defun{\defun2698,89171 -\def\defunheader #1#2{\defunheader2700,89224 -\begingroup\defname {name2701,89299 -\defunargs {unargs2702,89335 -\def\deftypefun{\deftypefun2708,89483 -\def\deftypefunheader #1#2{\deftypefunheader2711,89605 -\def\deftypefunheaderx #1#2 #3\relax{\deftypefunheaderx2713,89714 -\begingroup\defname {name2715,89806 -\deftypefunargs {typefunargs2716,89852 -\def\deftypefn{\deftypefn2722,90023 -\def\deftypefnheader #1#2#3{\deftypefnheader2725,90172 -\def\deftypefnheaderx #1#2#3 #4\relax{\deftypefnheaderx2727,90308 -\begingroup\defname {name2729,90401 -\deftypefunargs {typefunargs2730,90441 -\def\defmac{\defmac2736,90562 -\def\defmacheader #1#2{\defmacheader2738,90619 -\begingroup\defname {name2739,90695 -\defunargs {unargs2740,90728 -\def\defspec{\defspec2746,90852 -\def\defspecheader #1#2{\defspecheader2748,90913 -\begingroup\defname {name2749,90990 -\defunargs {unargs2750,91030 -\def\deffnx #1 {\deffnx2757,91225 -\def\defunx #1 {\defunx2758,91282 -\def\defmacx #1 {\defmacx2759,91339 -\def\defspecx #1 {\defspecx2760,91398 -\def\deftypefnx #1 {\deftypefnx2761,91459 -\def\deftypeunx #1 {\deftypeunx2762,91524 -\def\defop #1 {\defop2768,91670 -\defopparsebody\Edefop\defopx\defopheader\defoptype}opparsebody\Edefop\defopx\defopheader\defoptype2769,91705 -\def\defopheader #1#2#3{\defopheader2771,91759 -\begingroup\defname {name2773,91848 -\defunargs {unargs2774,91894 -\def\defmethod{\defmethod2779,91955 -\def\defmethodheader #1#2#3{\defmethodheader2781,92028 -\begingroup\defname {name2783,92116 -\defunargs {unargs2784,92156 -\def\defcv #1 {\defcv2789,92230 -\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}opvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype2790,92265 -\def\defcvarheader #1#2#3{\defcvarheader2792,92324 -\begingroup\defname {name2794,92410 -\defvarargs {varargs2795,92456 -\def\defivar{\defivar2800,92529 -\def\defivarheader #1#2#3{\defivarheader2802,92592 -\begingroup\defname {name2804,92678 -\defvarargs {varargs2805,92729 -\def\defopx #1 {\defopx2811,92878 -\def\defmethodx #1 {\defmethodx2812,92935 -\def\defcvx #1 {\defcvx2813,93000 -\def\defivarx #1 {\defivarx2814,93057 -\def\defvarargs #1{\defvarargs2821,93328 -\def\defvr{\defvr2827,93472 -\def\defvrheader #1#2#3{\defvrheader2829,93527 -\begingroup\defname {name2830,93575 -\def\defvar{\defvar2834,93660 -\def\defvarheader #1#2{\defvarheader2836,93720 -\begingroup\defname {name2837,93791 -\defvarargs {varargs2838,93827 -\def\defopt{\defopt2843,93893 -\def\defoptheader #1#2{\defoptheader2845,93953 -\begingroup\defname {name2846,94024 -\defvarargs {varargs2847,94063 -\def\deftypevar{\deftypevar2852,94120 -\def\deftypevarheader #1#2{\deftypevarheader2855,94236 -\begingroup\defname {name2857,94319 -\def\deftypevr{\deftypevr2864,94493 -\def\deftypevrheader #1#2#3{\deftypevrheader2866,94564 -\begingroup\defname {name2867,94616 -\def\defvrx #1 {\defvrx2875,94853 -\def\defvarx #1 {\defvarx2876,94910 -\def\defoptx #1 {\defoptx2877,94969 -\def\deftypevarx #1 {\deftypevarx2878,95028 -\def\deftypevrx #1 {\deftypevrx2879,95095 -\def\deftpargs #1{\deftpargs2884,95244 -\def\deftp{\deftp2888,95324 -\def\deftpheader #1#2#3{\deftpheader2890,95379 -\begingroup\defname {name2891,95427 -\def\deftpx #1 {\deftpx2896,95586 -\def\setref#1{\setref2907,95907 -\def\unnumbsetref#1{\unnumbsetref2912,96021 -\def\appendixsetref#1{\appendixsetref2917,96128 -\def\pxref#1{\pxref2928,96539 -\def\xref#1{\xref2929,96575 -\def\ref#1{\ref2930,96610 -\def\xrefX[#1,#2,#3,#4,#5,#6]{\xrefX[2931,96640 -\def\printedmanual{\printedmanual2932,96683 -\def\printednodename{\printednodename2933,96721 -\def\printednodename{\printednodename2938,96846 -section ``\printednodename'' in \cite{\printedmanual}\printedmanual2953,97479 -\refx{x2956,97557 -\def\dosetq #1#2{\dosetq2964,97777 -\def\internalsetq #1#2{\internalsetq2972,98035 -\def\Ypagenumber{\Ypagenumber2976,98136 -\def\Ytitle{\Ytitle2978,98162 -\def\Ynothing{\Ynothing2980,98189 -\def\Ysectionnumberandtype{\Ysectionnumberandtype2982,98206 -\def\Yappendixletterandtype{\Yappendixletterandtype2991,98522 -\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{no2992,98552 -\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %no.\the\secno2993,98607 -Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %no.\the\secno.\the\subsecno2995,98711 -Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %no.\the\secno.\the\subsecno.\the\subsubsecno2997,98782 - \def\linenumber{\linenumber3008,99121 -\def\refx#1#2{\refx3014,99305 -\def\xrdef #1#2{\xrdef3036,99931 -\def\readauxfile{\readauxfile3039,100016 -\def\supereject{\supereject3109,101797 -\footstrut\parindent=\defaultparindent\hang\textindent{aultparindent\hang\textindent3130,102482 -\def\openindices{\openindices3138,102668 -\newdimen\defaultparindent \defaultparindent = 15ptaultparindent3150,102893 -\parindent = \defaultparindentaultparindent3151,102945 -\def\smallbook{\smallbook3174,103669 -\global\def\Esmallexample{\Esmallexample3191,104096 -\def\afourpaper{\afourpaper3195,104187 -\def\finalout{\finalout3223,104995 -\def\normaldoublequote{\normaldoublequote3234,105256 -\def\normaltilde{\normaltilde3235,105282 -\def\normalcaret{\normalcaret3236,105302 -\def\normalunderscore{\normalunderscore3237,105322 -\def\normalverticalbar{\normalverticalbar3238,105347 -\def\normalless{\normalless3239,105373 -\def\normalgreater{\normalgreater3240,105392 -\def\normalplus{\normalplus3241,105414 -\def\ifusingtt#1#2{\ifusingtt3252,105906 -\def\activedoublequote{\activedoublequote3260,106234 -\def~{~3263,106320 -\def^{^3266,106381 -\def_{_3269,106420 -\def\_{\_3271,106494 -\def\lvvmode{\lvvmode3278,106831 -\def|{|3281,106881 -\def<{<3284,106944 -\def>{>3287,107001 -\def+{+3289,107039 -\def\turnoffactive{\turnoffactive3295,107200 -\global\def={=3306,107486 -\def\normalbackslash{\normalbackslash3320,107868 +tex-src/texinfo.tex,30627 +\def\texinfoversion{\texinfoversion26,1027 +\def\tie{\tie49,1518 +\def\gloggingall{\gloggingall72,2268 +\def\loggingall{\loggingall73,2337 +\def\onepageout#1{\onepageout99,3274 +\def\croppageout#1{\croppageout115,4024 +\def\cropmarks{\cropmarks142,5084 +\def\pagebody#1{\pagebody144,5131 +\def\ewtop{\ewtop157,5586 +\def\nstop{\nstop158,5650 +\def\ewbot{\ewbot160,5733 +\def\nsbot{\nsbot161,5797 +\def\parsearg #1{\parsearg170,6096 +\def\parseargx{\parseargx172,6174 +\def\parseargline{\parseargline182,6414 +\def\flushcr{\flushcr186,6535 +\newif\ifENV \ENVfalse \def\inENV{\inENV190,6734 +\def\ENVcheck{\ENVcheck191,6798 +\outer\def\begin{\begin198,7045 +\def\beginxxx #1{\beginxxx200,7083 +\def\end{\end208,7338 +\def\endxxx #1{\endxxx210,7366 +\def\errorE#1{\errorE216,7555 +\def\singlespace{\singlespace222,7749 +\def\@{\@232,7972 +\def\`{\`236,8072 +\def\'{\'237,8084 +\def\mylbrace {\mylbrace241,8132 +\def\myrbrace {\myrbrace242,8165 +\def\:{\:247,8279 +\def\*{\*250,8333 +\def\.{\.253,8409 +\def\w#1{\w258,8640 +\def\group{\group268,9123 + \def\Egroup{\Egroup273,9287 +\def\need{\need289,9729 +\def\needx#1{\needx300,10006 +\def\dots{\dots339,11392 +\def\page{\page343,11456 +\def\exdent{\exdent353,11783 +\def\exdentyyy #1{\exdentyyy354,11816 +\def\nofillexdent{\nofillexdent357,11960 +\def\nofillexdentyyy #1{\nofillexdentyyy358,12005 +\def\include{\include365,12189 +\def\includezzz #1{\includezzz366,12224 +\def\thisfile{\thisfile369,12275 +\def\center{\center373,12338 +\def\centerzzz #1{\centerzzz374,12371 +\def\sp{\sp380,12513 +\def\spxxx #1{\spxxx381,12538 +\def\comment{\comment387,12712 +\def\commentxxx #1{\commentxxx390,12809 +\def\ignoresections{\ignoresections396,12978 +\let\chapter=\relax=\relax397,13000 +\let\section=\relax=\relax406,13245 +\let\subsection=\relax=\relax409,13306 +\let\subsubsection=\relax=\relax410,13329 +\let\appendix=\relax=\relax411,13355 +\let\appendixsec=\relaxsec=\relax412,13376 +\let\appendixsection=\relaxsection=\relax413,13400 +\let\appendixsubsec=\relaxsubsec=\relax414,13428 +\let\appendixsubsection=\relaxsubsection=\relax415,13455 +\let\appendixsubsubsec=\relaxsubsubsec=\relax416,13486 +\let\appendixsubsubsection=\relaxsubsubsection=\relax417,13516 +\def\ignore{\ignore423,13618 +\long\def\ignorexxx #1\end ignore{\ignorexxx427,13758 +\def\direntry{\direntry429,13817 +\long\def\direntryxxx #1\end direntry{\direntryxxx430,13856 +\def\ifset{\ifset434,13966 +\def\ifsetxxx #1{\ifsetxxx436,14024 +\def\Eifset{\Eifset440,14151 +\def\ifsetfail{\ifsetfail441,14165 +\long\def\ifsetfailxxx #1\end ifset{\ifsetfailxxx442,14221 +\def\ifclear{\ifclear444,14282 +\def\ifclearxxx #1{\ifclearxxx446,14344 +\def\Eifclear{\Eifclear450,14475 +\def\ifclearfail{\ifclearfail451,14491 +\long\def\ifclearfailxxx #1\end ifclear{\ifclearfailxxx452,14551 +\def\set{\set456,14702 +\def\setxxx #1{\setxxx457,14729 +\def\clear{\clear460,14791 +\def\clearxxx #1{\clearxxx461,14822 +\def\iftex{\iftex466,14939 +\def\Eiftex{\Eiftex467,14952 +\def\ifinfo{\ifinfo468,14966 +\long\def\ifinfoxxx #1\end ifinfo{\ifinfoxxx469,15016 +\long\def\menu #1\end menu{\menu471,15075 +\def\asis#1{\asis472,15104 +\def\math#1{\math485,15647 +\def\node{\node487,15691 +\def\nodezzz#1{\nodezzz488,15729 +\def\nodexxx[#1,#2]{\nodexxx[489,15760 +\def\donoderef{\donoderef492,15822 +\def\unnumbnoderef{\unnumbnoderef496,15943 +\def\appendixnoderef{\appendixnoderef500,16074 +\expandafter\expandafter\expandafter\appendixsetref{setref501,16120 +\let\refill=\relaxill=\relax504,16209 +\def\setfilename{\setfilename509,16423 +\outer\def\bye{\bye518,16669 +\def\inforef #1{\inforef520,16725 +\def\inforefzzz #1,#2,#3,#4**{\inforefzzz521,16763 +\def\losespace #1{\losespace523,16860 +\def\sf{\sf532,17064 +\font\defbf=cmbx10 scaled \magstep1 %was 1314bf=cmbx10558,17859 +\font\deftt=cmtt10 scaled \magstep1tt=cmtt10559,17905 +\def\df{\df560,17941 +\def\resetmathfonts{\resetmathfonts635,20535 +\def\textfonts{\textfonts648,21124 +\def\chapfonts{\chapfonts653,21339 +\def\secfonts{\secfonts658,21555 +\def\subsecfonts{\subsecfonts663,21760 +\def\indexfonts{\indexfonts668,21977 +\def\smartitalicx{\smartitalicx691,22709 +\def\smartitalic#1{\smartitalic692,22785 +\let\cite=\smartitalic=\smartitalic698,22930 +\def\b#1{\b700,22954 +\def\t#1{\t703,22989 +\def\samp #1{\samp706,23141 +\def\key #1{\key707,23174 +\def\ctrl #1{\ctrl708,23235 +\def\tclose#1{\tclose716,23437 +\def\ {\720,23603 +\def\xkey{\xkey728,23872 +\def\kbdfoo#1#2#3\par{\kbdfoo729,23888 +\def\dmn#1{\dmn738,24189 +\def\kbd#1{\kbd740,24216 +\def\l#1{\l742,24273 +\def\r#1{\r744,24302 +\def\sc#1{\sc746,24370 +\def\ii#1{\ii747,24413 +\def\titlefont#1{\titlefont755,24646 +\def\titlepage{\titlepage761,24749 + \def\subtitlefont{\subtitlefont766,24976 + \def\authorfont{\authorfont768,25060 + \def\title{\title774,25270 + \def\titlezzz##1{\titlezzz775,25305 + \def\subtitle{\subtitle783,25620 + \def\subtitlezzz##1{\subtitlezzz784,25661 + \def\author{\author787,25779 + \def\authorzzz##1{\authorzzz788,25816 + \def\page{\page794,26107 +\def\Etitlepage{\Etitlepage804,26276 +\def\finishtitlepage{\finishtitlepage817,26664 +\def\evenheading{\evenheading846,27672 +\def\oddheading{\oddheading847,27715 +\def\everyheading{\everyheading848,27756 +\def\evenfooting{\evenfooting850,27802 +\def\oddfooting{\oddfooting851,27845 +\def\everyfooting{\everyfooting852,27886 +\def\headings #1 {\headings893,29578 +\def\HEADINGSoff{\HEADINGSoff895,29627 +\def\HEADINGSdouble{\HEADINGSdouble904,30054 +\def\HEADINGSsingle{\HEADINGSsingle914,30374 +\def\HEADINGSon{\HEADINGSon922,30595 +\def\HEADINGSafter{\HEADINGSafter924,30629 +\def\HEADINGSdoublex{\HEADINGSdoublex926,30724 +\def\HEADINGSsingleafter{\HEADINGSsingleafter933,30912 +\def\HEADINGSsinglex{\HEADINGSsinglex934,30973 +\def\today{\today943,31248 +\def\thistitle{\thistitle958,31793 +\def\settitle{\settitle959,31818 +\def\settitlezzz #1{\settitlezzz960,31855 +\def\internalBitem{\internalBitem992,32785 +\def\internalBitemx{\internalBitemx993,32835 +\def\internalBxitem "#1"{\internalBxitem995,32880 +\def\internalBxitemx "#1"{\internalBxitemx996,32960 +\def\internalBkitem{\internalBkitem998,33035 +\def\internalBkitemx{\internalBkitemx999,33087 +\def\kitemzzz #1{\kitemzzz1001,33134 +\def\xitemzzz #1{\xitemzzz1004,33236 +\def\itemzzz #1{\itemzzz1007,33339 +\def\item{\item1037,34410 +\def\itemx{\itemx1038,34461 +\def\kitem{\kitem1039,34514 +\def\kitemx{\kitemx1040,34567 +\def\xitem{\xitem1041,34622 +\def\xitemx{\xitemx1042,34675 +\def\description{\description1045,34785 +\def\table{\table1047,34835 +\def\ftable{\ftable1052,34979 +\def\Eftable{\Eftable1056,35125 +\def\vtable{\vtable1059,35194 +\def\Evtable{\Evtable1063,35340 +\def\dontindex #1{\dontindex1066,35409 +\def\fnitemindex #1{\fnitemindex1067,35429 +\def\vritemindex #1{\vritemindex1068,35474 +\def\tablez #1#2#3#4#5#6{\tablez1074,35623 +\def\Edescription{\Edescription1077,35681 +\def\itemfont{\itemfont1082,35883 +\def\Etable{\Etable1090,36109 +\def\itemize{\itemize1103,36433 +\def\itemizezzz #1{\itemizezzz1105,36469 +\def\itemizey #1#2{\itemizey1110,36564 +\def#2{1119,36810 +\def\itemcontents{\itemcontents1120,36851 +\def\bullet{\bullet1123,36899 +\def\minus{\minus1124,36926 +\def\frenchspacing{\frenchspacing1128,37034 +\def\splitoff#1#2\endmark{\splitoff1134,37259 +\def\enumerate{\enumerate1140,37489 +\def\enumeratezzz #1{\enumeratezzz1141,37528 +\def\enumeratey #1 #2\endenumeratey{\enumeratey1142,37581 + \def\thearg{\thearg1146,37728 + \ifx\thearg\empty \def\thearg{\thearg1147,37747 +\def\numericenumerate{\numericenumerate1184,39081 +\def\lowercaseenumerate{\lowercaseenumerate1190,39211 +\def\uppercaseenumerate{\uppercaseenumerate1203,39558 +\def\startenumeration#1{\startenumeration1219,40048 +\def\alphaenumerate{\alphaenumerate1227,40230 +\def\capsenumerate{\capsenumerate1228,40265 +\def\Ealphaenumerate{\Ealphaenumerate1229,40299 +\def\Ecapsenumerate{\Ecapsenumerate1230,40333 +\def\itemizeitem{\itemizeitem1234,40413 +\def\newindex #1{\newindex1259,41270 +\def\defindex{\defindex1268,41559 +\def\newcodeindex #1{\newcodeindex1272,41667 +\def\defcodeindex{\defcodeindex1279,41927 +\def\synindex #1 #2 {\synindex1283,42107 +\def\syncodeindex #1 #2 {\syncodeindex1292,42447 +\def\doindex#1{\doindex1309,43126 +\def\singleindexer #1{\singleindexer1310,43185 +\def\docodeindex#1{\docodeindex1313,43297 +\def\singlecodeindexer #1{\singlecodeindexer1314,43364 +\def\indexdummies{\indexdummies1316,43422 +\def\_{\_1317,43442 +\def\w{\w1318,43470 +\def\bf{\bf1319,43497 +\def\rm{\rm1320,43526 +\def\sl{\sl1321,43555 +\def\sf{\sf1322,43584 +\def\tt{\tt1323,43612 +\def\gtr{\gtr1324,43640 +\def\less{\less1325,43670 +\def\hat{\hat1326,43702 +\def\char{\char1327,43732 +\def\TeX{\TeX1328,43764 +\def\dots{\dots1329,43794 +\def\copyright{\copyright1330,43827 +\def\tclose##1{\tclose1331,43870 +\def\code##1{\code1332,43915 +\def\samp##1{\samp1333,43956 +\def\t##1{\t1334,43997 +\def\r##1{\r1335,44032 +\def\i##1{\i1336,44067 +\def\b##1{\b1337,44102 +\def\cite##1{\cite1338,44137 +\def\key##1{\key1339,44178 +\def\file##1{\file1340,44217 +\def\var##1{\var1341,44258 +\def\kbd##1{\kbd1342,44297 +\def\indexdummyfont#1{\indexdummyfont1347,44453 +\def\indexdummytex{\indexdummytex1348,44479 +\def\indexdummydots{\indexdummydots1349,44503 +\def\indexnofonts{\indexnofonts1351,44529 +\let\w=\indexdummyfontdummyfont1352,44549 +\let\t=\indexdummyfontdummyfont1353,44572 +\let\r=\indexdummyfontdummyfont1354,44595 +\let\i=\indexdummyfontdummyfont1355,44618 +\let\b=\indexdummyfontdummyfont1356,44641 +\let\emph=\indexdummyfontdummyfont1357,44664 +\let\strong=\indexdummyfontdummyfont1358,44690 +\let\cite=\indexdummyfont=\indexdummyfont1359,44718 +\let\sc=\indexdummyfontdummyfont1360,44744 +\let\tclose=\indexdummyfontdummyfont1364,44916 +\let\code=\indexdummyfontdummyfont1365,44944 +\let\file=\indexdummyfontdummyfont1366,44970 +\let\samp=\indexdummyfontdummyfont1367,44996 +\let\kbd=\indexdummyfontdummyfont1368,45022 +\let\key=\indexdummyfontdummyfont1369,45047 +\let\var=\indexdummyfontdummyfont1370,45072 +\let\TeX=\indexdummytexdummytex1371,45097 +\let\dots=\indexdummydotsdummydots1372,45121 +\let\indexbackslash=0 %overridden during \printindex.backslash=01382,45373 +\def\doind #1#2{\doind1384,45429 +{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1386,45472 +\def\rawbackslashxx{\rawbackslashxx1389,45612 +{\indexnofontsnofonts1394,45874 +\def\dosubind #1#2#3{\dosubind1405,46185 +{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1407,46233 +\def\rawbackslashxx{\rawbackslashxx1410,46337 +{\indexnofontsnofonts1414,46491 +\def\findex {\findex1443,47422 +\def\kindex {\kindex1444,47445 +\def\cindex {\cindex1445,47468 +\def\vindex {\vindex1446,47491 +\def\tindex {\tindex1447,47514 +\def\pindex {\pindex1448,47537 +\def\cindexsub {\cindexsub1450,47561 +\def\printindex{\printindex1462,47888 +\def\doprintindex#1{\doprintindex1464,47929 + \def\indexbackslash{\indexbackslash1481,48414 + \indexfonts\rm \tolerance=9500 \advance\baselineskip -1ptfonts\rm1482,48453 +\def\initial #1{\initial1517,49525 +\def\entry #1#2{\entry1523,49732 + \null\nobreak\indexdotfill % Have leaders before the page number.dotfill1540,50379 +\def\indexdotfill{\indexdotfill1549,50707 +\def\primary #1{\primary1552,50813 +\def\secondary #1#2{\secondary1556,50895 +\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\pardotfill1559,50977 +\newbox\partialpageialpage1566,51150 +\def\begindoublecolumns{\begindoublecolumns1572,51308 + \output={\global\setbox\partialpage=ialpage=1573,51344 +\def\enddoublecolumns{\enddoublecolumns1577,51532 +\def\doublecolumnout{\doublecolumnout1580,51617 + \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1581,51686 +\def\pagesofar{\pagesofar1584,51864 +\def\balancecolumns{\balancecolumns1588,52101 + \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpageialpage1594,52272 + \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1600,52533 +\newcount \appendixno \appendixno = `\@no1627,53438 +\def\appendixletter{\appendixletter1628,53479 +\def\opencontents{\opencontents1632,53582 +\def\thischapter{\thischapter1637,53763 +\def\seccheck#1{\seccheck1638,53801 +\def\chapternofonts{\chapternofonts1643,53905 +\def\result{\result1646,53980 +\def\equiv{\equiv1647,54015 +\def\expansion{\expansion1648,54048 +\def\print{\print1649,54089 +\def\TeX{\TeX1650,54122 +\def\dots{\dots1651,54151 +\def\copyright{\copyright1652,54182 +\def\tt{\tt1653,54223 +\def\bf{\bf1654,54250 +\def\w{\w1655,54278 +\def\less{\less1656,54303 +\def\gtr{\gtr1657,54334 +\def\hat{\hat1658,54363 +\def\char{\char1659,54392 +\def\tclose##1{\tclose1660,54423 +\def\code##1{\code1661,54467 +\def\samp##1{\samp1662,54507 +\def\r##1{\r1663,54547 +\def\b##1{\b1664,54581 +\def\key##1{\key1665,54615 +\def\file##1{\file1666,54653 +\def\kbd##1{\kbd1667,54693 +\def\i##1{\i1669,54801 +\def\cite##1{\cite1670,54835 +\def\var##1{\var1671,54875 +\def\emph##1{\emph1672,54913 +\def\dfn##1{\dfn1673,54953 +\def\thischaptername{\thischaptername1676,54994 +\outer\def\chapter{\chapter1677,55033 +\def\chapterzzz #1{\chapterzzz1678,55074 +{\chapternofonts%nofonts%1687,55470 +\global\let\section = \numberedsec=1692,55623 +\global\let\subsection = \numberedsubsec=1693,55658 +\global\let\subsubsection = \numberedsubsubsec=1694,55699 +\outer\def\appendix{\appendix1697,55750 +\def\appendixzzz #1{\appendixzzz1698,55793 +\global\advance \appendixno by 1 \message{no1700,55870 +\chapmacro {#1}{Appendix \appendixletter}letter1701,55939 +\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}letter:1704,56032 +{\chapternofonts%nofonts%1705,56104 + {#1}{Appendix \appendixletter}letter1707,56160 +\appendixnoderef %noderef1710,56260 +\global\let\section = \appendixsec=1711,56279 +\global\let\subsection = \appendixsubsec=1712,56314 +\global\let\subsubsection = \appendixsubsubsec=1713,56355 +\outer\def\top{\top1716,56406 +\outer\def\unnumbered{\unnumbered1717,56446 +\def\unnumberedzzz #1{\unnumberedzzz1718,56493 +{\chapternofonts%nofonts%1722,56656 +\global\let\section = \unnumberedsec=1727,56806 +\global\let\subsection = \unnumberedsubsec=1728,56843 +\global\let\subsubsection = \unnumberedsubsubsec=1729,56886 +\outer\def\numberedsec{\numberedsec1732,56939 +\def\seczzz #1{\seczzz1733,56980 +{\chapternofonts%nofonts%1736,57136 +\outer\def\appendixsection{\appendixsection1745,57322 +\outer\def\appendixsec{\appendixsec1746,57379 +\def\appendixsectionzzz #1{\appendixsectionzzz1747,57432 +\gdef\thissection{#1}\secheading {#1}{\appendixletter}letter1749,57544 +{\chapternofonts%nofonts%1750,57612 +{#1}{\appendixletter}letter1752,57668 +\appendixnoderef %noderef1755,57768 +\outer\def\unnumberedsec{\unnumberedsec1759,57808 +\def\unnumberedseczzz #1{\unnumberedseczzz1760,57861 +{\chapternofonts%nofonts%1762,57956 +\outer\def\numberedsubsec{\numberedsubsec1770,58124 +\def\numberedsubseczzz #1{\numberedsubseczzz1771,58179 +{\chapternofonts%nofonts%1774,58358 +\outer\def\appendixsubsec{\appendixsubsec1783,58562 +\def\appendixsubseczzz #1{\appendixsubseczzz1784,58617 +\subsecheading {#1}{\appendixletter}letter1786,58739 +{\chapternofonts%nofonts%1787,58804 +{#1}{\appendixletter}letter1789,58863 +\appendixnoderef %noderef1792,58978 +\outer\def\unnumberedsubsec{\unnumberedsubsec1796,59018 +\def\unnumberedsubseczzz #1{\unnumberedsubseczzz1797,59077 +{\chapternofonts%nofonts%1799,59178 +\outer\def\numberedsubsubsec{\numberedsubsubsec1807,59349 +\def\numberedsubsubseczzz #1{\numberedsubsubseczzz1808,59410 +{\chapternofonts%nofonts%1812,59607 +\outer\def\appendixsubsubsec{\appendixsubsubsec1823,59840 +\def\appendixsubsubseczzz #1{\appendixsubsubseczzz1824,59901 + {\appendixletter}letter1827,60040 +{\chapternofonts%nofonts%1828,60106 + {\appendixletter}letter1830,60171 +\appendixnoderef %noderef1834,60305 +\outer\def\unnumberedsubsubsec{\unnumberedsubsubsec1838,60345 +\def\unnumberedsubsubseczzz #1{\unnumberedsubsubseczzz1839,60410 +{\chapternofonts%nofonts%1841,60517 +\def\infotop{\infotop1851,60846 +\def\infounnumbered{\infounnumbered1852,60884 +\def\infounnumberedsec{\infounnumberedsec1853,60929 +\def\infounnumberedsubsec{\infounnumberedsubsec1854,60980 +\def\infounnumberedsubsubsec{\infounnumberedsubsubsec1855,61037 +\def\infoappendix{\infoappendix1857,61101 +\def\infoappendixsec{\infoappendixsec1858,61142 +\def\infoappendixsubsec{\infoappendixsubsec1859,61189 +\def\infoappendixsubsubsec{\infoappendixsubsubsec1860,61242 +\def\infochapter{\infochapter1862,61302 +\def\infosection{\infosection1863,61341 +\def\infosubsection{\infosubsection1864,61380 +\def\infosubsubsection{\infosubsubsection1865,61425 +\global\let\section = \numberedsec=1870,61662 +\global\let\subsection = \numberedsubsec=1871,61697 +\global\let\subsubsection = \numberedsubsubsec=1872,61738 +\def\majorheading{\majorheading1886,62245 +\def\majorheadingzzz #1{\majorheadingzzz1887,62290 +\def\chapheading{\chapheading1893,62523 +\def\chapheadingzzz #1{\chapheadingzzz1894,62566 +\def\heading{\heading1899,62761 +\def\subheading{\subheading1901,62798 +\def\subsubheading{\subsubheading1903,62841 +\def\dobreak#1#2{\dobreak1910,63118 +\def\setchapterstyle #1 {\setchapterstyle1912,63196 +\def\chapbreak{\chapbreak1919,63451 +\def\chappager{\chappager1920,63501 +\def\chapoddpage{\chapoddpage1921,63539 +\def\setchapternewpage #1 {\setchapternewpage1923,63618 +\def\CHAPPAGoff{\CHAPPAGoff1925,63675 +\def\CHAPPAGon{\CHAPPAGon1929,63769 +\global\def\HEADINGSon{\HEADINGSon1932,63860 +\def\CHAPPAGodd{\CHAPPAGodd1934,63902 +\global\def\HEADINGSon{\HEADINGSon1937,63998 +\def\CHAPFplain{\CHAPFplain1941,64052 +\def\chfplain #1#2{\chfplain1945,64144 +\def\unnchfplain #1{\unnchfplain1956,64367 +\def\unnchfopen #1{\unnchfopen1964,64596 +\def\chfopen #1#2{\chfopen1970,64804 +\def\CHAPFopen{\CHAPFopen1975,64948 +\def\subsecheadingbreak{\subsecheadingbreak1982,65166 +\def\secheadingbreak{\secheadingbreak1985,65295 +\def\secheading #1#2#3{\secheading1993,65577 +\def\plainsecheading #1{\plainsecheading1994,65633 +\def\secheadingi #1{\secheadingi1995,65676 +\def\subsecheading #1#2#3#4{\subsecheading2006,66044 +\def\subsecheadingi #1{\subsecheadingi2007,66111 +\def\subsubsecfonts{\subsubsecfonts2014,66408 +\def\subsubsecheading #1#2#3#4#5{\subsubsecheading2017,66531 +\def\subsubsecheadingi #1{\subsubsecheadingi2018,66609 +\def\startcontents#1{\startcontents2032,67081 + \unnumbchapmacro{#1}\def\thischapter{\thischapter2040,67354 +\outer\def\contents{\contents2049,67713 +\outer\def\summarycontents{\summarycontents2057,67857 + \def\secentry ##1##2##3##4{\secentry2067,68228 + \def\unnumbsecentry ##1##2{\unnumbsecentry2068,68263 + \def\subsecentry ##1##2##3##4##5{\subsecentry2069,68298 + \def\unnumbsubsecentry ##1##2{\unnumbsubsecentry2070,68339 + \def\subsubsecentry ##1##2##3##4##5##6{\subsubsecentry2071,68377 + \def\unnumbsubsubsecentry ##1##2{\unnumbsubsubsecentry2072,68424 +\def\chapentry#1#2#3{\chapentry2085,68858 +\def\shortchapentry#1#2#3{\shortchapentry2088,68975 + {#2\labelspace #1}space2091,69085 +\def\unnumbchapentry#1#2{\unnumbchapentry2094,69139 +\def\shortunnumberedentry#1#2{\shortunnumberedentry2095,69186 +\def\secentry#1#2#3#4{\secentry2102,69350 +\def\unnumbsecentry#1#2{\unnumbsecentry2103,69409 +\def\subsecentry#1#2#3#4#5{\subsecentry2106,69470 +\def\unnumbsubsecentry#1#2{\unnumbsubsecentry2107,69540 +\def\subsubsecentry#1#2#3#4#5#6{\subsubsecentry2110,69614 + \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}space2111,69648 +\def\unnumbsubsubsecentry#1#2{\unnumbsubsubsecentry2112,69699 +\def\dochapentry#1#2{\dochapentry2123,70073 +\def\dosecentry#1#2{\dosecentry2138,70678 +\def\dosubsecentry#1#2{\dosubsecentry2145,70856 +\def\dosubsubsecentry#1#2{\dosubsubsecentry2152,71041 +\def\labelspace{\labelspace2160,71292 +\def\dopageno#1{\dopageno2162,71327 +\def\doshortpageno#1{\doshortpageno2163,71353 +\def\chapentryfonts{\chapentryfonts2165,71385 +\def\secentryfonts{\secentryfonts2166,71420 +\def\point{\point2192,72379 +\def\result{\result2194,72400 +\def\expansion{\expansion2195,72473 +\def\print{\print2196,72544 +\def\equiv{\equiv2198,72611 +\def\error{\error2218,73384 +\def\tex{\tex2224,73613 +\def\@{\@2242,73996 +\gdef\sepspaces{\def {\ }}}\2265,74728 +\def\aboveenvbreak{\aboveenvbreak2268,74810 +\def\afterenvbreak{\afterenvbreak2272,74976 +\def\ctl{\ctl2286,75487 +\def\ctr{\ctr2287,75559 +\def\cbl{\cbl2288,75598 +\def\cbr{\cbr2289,75638 +\def\carttop{\carttop2290,75677 +\def\cartbot{\cartbot2293,75785 +\long\def\cartouche{\cartouche2299,75925 +\def\Ecartouche{\Ecartouche2326,76713 +\def\lisp{\lisp2338,76848 +\def\Elisp{\Elisp2348,77195 +\def\next##1{\next2360,77521 +\def\Eexample{\Eexample2364,77563 +\def\Esmallexample{\Esmallexample2367,77610 +\def\smalllispx{\smalllispx2373,77788 +\def\Esmalllisp{\Esmalllisp2383,78142 +\obeyspaces \obeylines \ninett \indexfonts \rawbackslashfonts2396,78498 +\def\next##1{\next2397,78555 +\def\display{\display2401,78635 +\def\Edisplay{\Edisplay2410,78954 +\def\next##1{\next2422,79265 +\def\format{\format2426,79368 +\def\Eformat{\Eformat2434,79664 +\def\next##1{\next2437,79753 +\def\flushleft{\flushleft2441,79805 +\def\Eflushleft{\Eflushleft2451,80176 +\def\next##1{\next2454,80269 +\def\flushright{\flushright2456,80291 +\def\Eflushright{\Eflushright2466,80663 +\def\next##1{\next2470,80794 +\def\quotation{\quotation2474,80852 +\def\Equotation{\Equotation2480,81044 +\def\setdeffont #1 {\setdeffont2493,81442 +\newskip\defbodyindent \defbodyindent=.4inbodyindent2495,81488 +\newskip\defargsindent \defargsindent=50ptargsindent2496,81531 +\newskip\deftypemargin \deftypemargin=12pttypemargin2497,81574 +\newskip\deflastargmargin \deflastargmargin=18ptlastargmargin2498,81617 +\def\activeparens{\activeparens2503,81815 +\def\opnr{\opnr2529,83027 +\def\lbrb{\lbrb2530,83092 +\def\defname #1#2{\defname2536,83293 +\advance\dimen2 by -\defbodyindentbodyindent2540,83411 +\advance\dimen3 by -\defbodyindentbodyindent2542,83465 +\setbox0=\hbox{\hskip \deflastargmargin{lastargmargin2544,83519 +\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuationsargsindent2546,83661 +\parshape 2 0in \dimen0 \defargsindent \dimen1 %argsindent2547,83736 +\rlap{\rightline{{\rm #2}\hskip \deftypemargin}typemargin2554,84105 +\advance\leftskip by -\defbodyindentbodyindent2557,84239 +\exdentamount=\defbodyindentbodyindent2558,84276 +\def\defparsebody #1#2#3{\defparsebody2568,84635 +\def#1{2572,84819 +\def#2{2573,84855 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2575,84927 +\exdentamount=\defbodyindentbodyindent2576,85001 +\def\defmethparsebody #1#2#3#4 {\defmethparsebody2581,85105 +\def#1{2585,85266 +\def#2##1 {2586,85302 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2588,85385 +\exdentamount=\defbodyindentbodyindent2589,85459 +\def\defopparsebody #1#2#3#4#5 {\defopparsebody2592,85544 +\def#1{2596,85705 +\def#2##1 ##2 {2597,85741 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2600,85841 +\exdentamount=\defbodyindentbodyindent2601,85915 +\def\defvarparsebody #1#2#3{\defvarparsebody2608,86186 +\def#1{2612,86373 +\def#2{2613,86409 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2615,86468 +\exdentamount=\defbodyindentbodyindent2616,86542 +\def\defvrparsebody #1#2#3#4 {\defvrparsebody2621,86633 +\def#1{2625,86792 +\def#2##1 {2626,86828 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2628,86898 +\exdentamount=\defbodyindentbodyindent2629,86972 +\def\defopvarparsebody #1#2#3#4#5 {\defopvarparsebody2632,87044 +\def#1{2636,87208 +\def#2##1 ##2 {2637,87244 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2640,87331 +\exdentamount=\defbodyindentbodyindent2641,87405 +\def\defunargs #1{\defunargs2664,88165 +\def\deftypefunargs #1{\deftypefunargs2676,88547 +\def\deffn{\deffn2690,88929 +\def\deffnheader #1#2#3{\deffnheader2692,88986 +\begingroup\defname {name2693,89034 +\def\defun{\defun2699,89179 +\def\defunheader #1#2{\defunheader2701,89232 +\begingroup\defname {name2702,89307 +\defunargs {unargs2703,89343 +\def\deftypefun{\deftypefun2709,89491 +\def\deftypefunheader #1#2{\deftypefunheader2712,89613 +\def\deftypefunheaderx #1#2 #3\relax{\deftypefunheaderx2714,89722 +\begingroup\defname {name2716,89814 +\deftypefunargs {typefunargs2717,89860 +\def\deftypefn{\deftypefn2723,90031 +\def\deftypefnheader #1#2#3{\deftypefnheader2726,90180 +\def\deftypefnheaderx #1#2#3 #4\relax{\deftypefnheaderx2728,90316 +\begingroup\defname {name2730,90409 +\deftypefunargs {typefunargs2731,90449 +\def\defmac{\defmac2737,90570 +\def\defmacheader #1#2{\defmacheader2739,90627 +\begingroup\defname {name2740,90703 +\defunargs {unargs2741,90736 +\def\defspec{\defspec2747,90860 +\def\defspecheader #1#2{\defspecheader2749,90921 +\begingroup\defname {name2750,90998 +\defunargs {unargs2751,91038 +\def\deffnx #1 {\deffnx2758,91233 +\def\defunx #1 {\defunx2759,91290 +\def\defmacx #1 {\defmacx2760,91347 +\def\defspecx #1 {\defspecx2761,91406 +\def\deftypefnx #1 {\deftypefnx2762,91467 +\def\deftypeunx #1 {\deftypeunx2763,91532 +\def\defop #1 {\defop2769,91678 +\defopparsebody\Edefop\defopx\defopheader\defoptype}opparsebody\Edefop\defopx\defopheader\defoptype2770,91713 +\def\defopheader #1#2#3{\defopheader2772,91767 +\begingroup\defname {name2774,91856 +\defunargs {unargs2775,91902 +\def\defmethod{\defmethod2780,91963 +\def\defmethodheader #1#2#3{\defmethodheader2782,92036 +\begingroup\defname {name2784,92124 +\defunargs {unargs2785,92164 +\def\defcv #1 {\defcv2790,92238 +\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}opvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype2791,92273 +\def\defcvarheader #1#2#3{\defcvarheader2793,92332 +\begingroup\defname {name2795,92418 +\defvarargs {varargs2796,92464 +\def\defivar{\defivar2801,92537 +\def\defivarheader #1#2#3{\defivarheader2803,92600 +\begingroup\defname {name2805,92686 +\defvarargs {varargs2806,92737 +\def\defopx #1 {\defopx2812,92886 +\def\defmethodx #1 {\defmethodx2813,92943 +\def\defcvx #1 {\defcvx2814,93008 +\def\defivarx #1 {\defivarx2815,93065 +\def\defvarargs #1{\defvarargs2822,93336 +\def\defvr{\defvr2828,93480 +\def\defvrheader #1#2#3{\defvrheader2830,93535 +\begingroup\defname {name2831,93583 +\def\defvar{\defvar2835,93668 +\def\defvarheader #1#2{\defvarheader2837,93728 +\begingroup\defname {name2838,93799 +\defvarargs {varargs2839,93835 +\def\defopt{\defopt2844,93901 +\def\defoptheader #1#2{\defoptheader2846,93961 +\begingroup\defname {name2847,94032 +\defvarargs {varargs2848,94071 +\def\deftypevar{\deftypevar2853,94128 +\def\deftypevarheader #1#2{\deftypevarheader2856,94244 +\begingroup\defname {name2858,94327 +\def\deftypevr{\deftypevr2865,94501 +\def\deftypevrheader #1#2#3{\deftypevrheader2867,94572 +\begingroup\defname {name2868,94624 +\def\defvrx #1 {\defvrx2876,94861 +\def\defvarx #1 {\defvarx2877,94918 +\def\defoptx #1 {\defoptx2878,94977 +\def\deftypevarx #1 {\deftypevarx2879,95036 +\def\deftypevrx #1 {\deftypevrx2880,95103 +\def\deftpargs #1{\deftpargs2885,95252 +\def\deftp{\deftp2889,95332 +\def\deftpheader #1#2#3{\deftpheader2891,95387 +\begingroup\defname {name2892,95435 +\def\deftpx #1 {\deftpx2897,95594 +\def\setref#1{\setref2908,95915 +\def\unnumbsetref#1{\unnumbsetref2913,96029 +\def\appendixsetref#1{\appendixsetref2918,96136 +\def\pxref#1{\pxref2929,96547 +\def\xref#1{\xref2930,96583 +\def\ref#1{\ref2931,96618 +\def\xrefX[#1,#2,#3,#4,#5,#6]{\xrefX[2932,96648 +\def\printedmanual{\printedmanual2933,96691 +\def\printednodename{\printednodename2934,96729 +\def\printednodename{\printednodename2939,96854 +section ``\printednodename'' in \cite{\printedmanual}\printedmanual2954,97487 +\refx{x2957,97565 +\def\dosetq #1#2{\dosetq2965,97785 +\def\internalsetq #1#2{\internalsetq2973,98043 +\def\Ypagenumber{\Ypagenumber2977,98144 +\def\Ytitle{\Ytitle2979,98170 +\def\Ynothing{\Ynothing2981,98197 +\def\Ysectionnumberandtype{\Ysectionnumberandtype2983,98214 +\def\Yappendixletterandtype{\Yappendixletterandtype2992,98530 +\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{no2993,98560 +\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %no.\the\secno2994,98615 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %no.\the\secno.\the\subsecno2996,98719 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %no.\the\secno.\the\subsecno.\the\subsubsecno2998,98790 + \def\linenumber{\linenumber3009,99129 +\def\refx#1#2{\refx3015,99313 +\def\xrdef #1#2{\xrdef3037,99939 +\def\readauxfile{\readauxfile3040,100024 +\def\supereject{\supereject3110,101805 +\footstrut\parindent=\defaultparindent\hang\textindent{aultparindent\hang\textindent3131,102490 +\def\openindices{\openindices3139,102676 +\newdimen\defaultparindent \defaultparindent = 15ptaultparindent3151,102901 +\parindent = \defaultparindentaultparindent3152,102953 +\def\smallbook{\smallbook3175,103677 +\global\def\Esmallexample{\Esmallexample3192,104104 +\def\afourpaper{\afourpaper3196,104195 +\def\finalout{\finalout3224,105003 +\def\normaldoublequote{\normaldoublequote3235,105264 +\def\normaltilde{\normaltilde3236,105290 +\def\normalcaret{\normalcaret3237,105310 +\def\normalunderscore{\normalunderscore3238,105330 +\def\normalverticalbar{\normalverticalbar3239,105355 +\def\normalless{\normalless3240,105381 +\def\normalgreater{\normalgreater3241,105400 +\def\normalplus{\normalplus3242,105422 +\def\ifusingtt#1#2{\ifusingtt3253,105914 +\def\activedoublequote{\activedoublequote3261,106242 +\def~{~3264,106328 +\def^{^3267,106389 +\def_{_3270,106428 +\def\_{\_3272,106502 +\def\lvvmode{\lvvmode3279,106839 +\def|{|3282,106889 +\def<{<3285,106952 +\def>{>3288,107009 +\def+{+3290,107047 +\def\turnoffactive{\turnoffactive3296,107208 +\global\def={=3307,107494 +\def\normalbackslash{\normalbackslash3321,107876 c-src/c.c,76 T f(1,0 @@ -3983,32 +3983,32 @@ c-src/a/b/b.c,18 #define questo 34, y-src/parse.y,738 -#define obstack_chunk_alloc 46,1111 -#define obstack_chunk_free 47,1149 -VOIDSTAR parse_hash;63,1400 -unsigned char fnin[fnin67,1519 -#define YYSTYPE 71,1617 -typedef struct node *YYSTYPE;YYSTYPE72,1648 -YYSTYPE parse_return;73,1678 -char *instr;instr80,1790 -int parse_error 81,1803 -line:line86,1862 -exp:exp94,1975 -exp_list:exp_list262,5642 -range_exp:range_exp268,5740 -range_exp_list:range_exp_list272,5770 -cell:cell278,5888 -yyerror FUN1(285,5935 -make_list FUN2(292,6015 -#define ERROR 303,6215 -yylex FUN0(314,6392 -parse_cell_or_range FUN2(586,11758 -#define CK_ABS_R(670,13200 -#define CK_REL_R(674,13279 -#define CK_ABS_C(679,13408 -#define CK_REL_C(683,13487 -#define MAYBEREL(688,13616 -str_to_col FUN1(846,16817 +#define obstack_chunk_alloc 46,1116 +#define obstack_chunk_free 47,1154 +VOIDSTAR parse_hash;63,1405 +unsigned char fnin[fnin67,1524 +#define YYSTYPE 71,1622 +typedef struct node *YYSTYPE;YYSTYPE72,1653 +YYSTYPE parse_return;73,1683 +char *instr;instr80,1795 +int parse_error 81,1808 +line:line86,1867 +exp:exp94,1980 +exp_list:exp_list262,5647 +range_exp:range_exp268,5745 +range_exp_list:range_exp_list272,5775 +cell:cell278,5893 +yyerror FUN1(285,5940 +make_list FUN2(292,6020 +#define ERROR 303,6220 +yylex FUN0(314,6397 +parse_cell_or_range FUN2(586,11763 +#define CK_ABS_R(670,13205 +#define CK_REL_R(674,13284 +#define CK_ABS_C(679,13413 +#define CK_REL_C(683,13492 +#define MAYBEREL(688,13621 +str_to_col FUN1(846,16822 y-src/parse.c,520 #define YYBISON 4,64 @@ -4245,59 +4245,59 @@ warning 993, lookup 999, /usr/share/bison/bison.simple,2110 -# define YYSTD(40, -# define YYSTD(42, -# define YYSTACK_ALLOC 50, -# define YYSIZE_T 51, -# define YYSTACK_ALLOC 55, -# define YYSIZE_T 56, -# define YYSTACK_ALLOC 59, -# define YYSTACK_FREE(67, -# define YYSIZE_T 71, -# define YYSIZE_T 75, -# define YYSTACK_ALLOC 78, -# define YYSTACK_FREE 79, -union yyalloc83, -# define YYSTACK_GAP_MAX 93, -# define YYSTACK_BYTES(98, -# define YYSTACK_BYTES(102, -# define YYSTACK_RELOCATE(112, -# define YYSIZE_T 128, -# define YYSIZE_T 131, -# define YYSIZE_T 136, -# define YYSIZE_T 140, -# define YYSIZE_T 145, -#define yyerrok 148, -#define yyclearin 149, -#define YYEMPTY 150, -#define YYEOF 151, -#define YYACCEPT 152, -#define YYABORT 153, -#define YYERROR 154, -#define YYFAIL 158, -#define YYRECOVERING(159, -#define YYBACKUP(160, -#define YYTERROR 177, -#define YYERRCODE 178, -# define YYLLOC_DEFAULT(189, -# define YYLEX 200, -# define YYLEX 202, -# define YYLEX 206, -# define YYLEX 208, -# define YYLEX 212, -# define YYFPRINTF 225, -# define YYDPRINTF(228, -int yydebug;237, -# define YYDPRINTF(239, -# define YYINITDEPTH 244, -# undef YYMAXDEPTH255, -# define YYMAXDEPTH 259, -# define yymemcpy 264, -yymemcpy 271, -# define yystrlen 293, -yystrlen 298, -# define yystpcpy 316, -yystpcpy 322, +# define YYSTD(41, +# define YYSTD(43, +# define YYSTACK_ALLOC 51, +# define YYSIZE_T 52, +# define YYSTACK_ALLOC 56, +# define YYSIZE_T 57, +# define YYSTACK_ALLOC 60, +# define YYSTACK_FREE(68, +# define YYSIZE_T 72, +# define YYSIZE_T 76, +# define YYSTACK_ALLOC 79, +# define YYSTACK_FREE 80, +union yyalloc84, +# define YYSTACK_GAP_MAX 94, +# define YYSTACK_BYTES(99, +# define YYSTACK_BYTES(103, +# define YYSTACK_RELOCATE(113, +# define YYSIZE_T 129, +# define YYSIZE_T 132, +# define YYSIZE_T 137, +# define YYSIZE_T 141, +# define YYSIZE_T 146, +#define yyerrok 149, +#define yyclearin 150, +#define YYEMPTY 151, +#define YYEOF 152, +#define YYACCEPT 153, +#define YYABORT 154, +#define YYERROR 155, +#define YYFAIL 159, +#define YYRECOVERING(160, +#define YYBACKUP(161, +#define YYTERROR 178, +#define YYERRCODE 179, +# define YYLLOC_DEFAULT(190, +# define YYLEX 201, +# define YYLEX 203, +# define YYLEX 207, +# define YYLEX 209, +# define YYLEX 213, +# define YYFPRINTF 226, +# define YYDPRINTF(229, +int yydebug;238, +# define YYDPRINTF(240, +# define YYINITDEPTH 245, +# undef YYMAXDEPTH256, +# define YYMAXDEPTH 260, +# define yymemcpy 265, +yymemcpy 272, +# define yystrlen 294, +yystrlen 299, +# define yystpcpy 317, +yystpcpy 323, # define YYPARSE_PARAM_ARG 351, # define YYPARSE_PARAM_DECL352, # define YYPARSE_PARAM_ARG 354, diff --git a/test/etags/ETAGS.good_5 b/test/etags/ETAGS.good_5 index c3a2778..8dc814e 100644 --- a/test/etags/ETAGS.good_5 +++ b/test/etags/ETAGS.good_5 @@ -176,56 +176,56 @@ package body Truc.Bidule Truc.Bidule/b138,2153 protected body Machin_T Machin_T/b146,2281 c-src/abbrev.c,2634 -Lisp_Object Vabbrev_table_name_list;42,1416 -Lisp_Object Vglobal_abbrev_table;47,1561 -Lisp_Object Vfundamental_mode_abbrev_table;51,1672 -int abbrevs_changed;55,1773 -int abbrev_all_caps;57,1795 -Lisp_Object Vabbrev_start_location;62,1944 -Lisp_Object Vabbrev_start_location_buffer;65,2033 -Lisp_Object Vlast_abbrev;69,2142 -Lisp_Object Vlast_abbrev_text;74,2311 -int last_abbrev_point;78,2401 -Lisp_Object Vpre_abbrev_expand_hook,82,2474 -Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;82,2474 -DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table84,2538 -DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table91,2730 -DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev106,3111 -DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev148,4430 -DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev159,4801 -DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol173,5269 -DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion201,6233 -DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev217,6748 -DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev388,11669 -write_abbrev 425,12876 -describe_abbrev 444,13311 -DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description465,13826 -DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table505,14982 -syms_of_abbrev 539,16059 - DEFVAR_LISP ("abbrev-table-name-list"541,16079 - DEFVAR_LISP ("global-abbrev-table"547,16341 - DEFVAR_LISP ("fundamental-mode-abbrev-table"554,16663 - DEFVAR_LISP ("last-abbrev"560,17005 - DEFVAR_LISP ("last-abbrev-text"563,17128 - DEFVAR_INT ("last-abbrev-location"567,17286 - DEFVAR_LISP ("abbrev-start-location"574,17485 - DEFVAR_LISP ("abbrev-start-location-buffer"580,17762 - DEFVAR_PER_BUFFER ("local-abbrev-table"585,18026 - DEFVAR_BOOL ("abbrevs-changed"588,18169 - DEFVAR_BOOL ("abbrev-all-caps"593,18372 - DEFVAR_LISP ("pre-abbrev-expand-hook"597,18528 - DEFVAR_LISP ("abbrev-table-name-list",\1541,16079 - DEFVAR_LISP ("global-abbrev-table",\1547,16341 - DEFVAR_LISP ("fundamental-mode-abbrev-table",\1554,16663 - DEFVAR_LISP ("last-abbrev",\1560,17005 - DEFVAR_LISP ("last-abbrev-text",\1563,17128 - DEFVAR_INT ("last-abbrev-location",\1567,17286 - DEFVAR_LISP ("abbrev-start-location",\1574,17485 - DEFVAR_LISP ("abbrev-start-location-buffer",\1580,17762 - DEFVAR_PER_BUFFER ("local-abbrev-table",\1585,18026 - DEFVAR_BOOL ("abbrevs-changed",\1588,18169 - DEFVAR_BOOL ("abbrev-all-caps",\1593,18372 - DEFVAR_LISP ("pre-abbrev-expand-hook",\1597,18528 +Lisp_Object Vabbrev_table_name_list;43,1424 +Lisp_Object Vglobal_abbrev_table;48,1569 +Lisp_Object Vfundamental_mode_abbrev_table;52,1680 +int abbrevs_changed;56,1781 +int abbrev_all_caps;58,1803 +Lisp_Object Vabbrev_start_location;63,1952 +Lisp_Object Vabbrev_start_location_buffer;66,2041 +Lisp_Object Vlast_abbrev;70,2150 +Lisp_Object Vlast_abbrev_text;75,2319 +int last_abbrev_point;79,2409 +Lisp_Object Vpre_abbrev_expand_hook,83,2482 +Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;83,2482 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table85,2546 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table92,2738 +DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev107,3119 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev149,4438 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev160,4809 +DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol174,5277 +DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion202,6241 +DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev218,6756 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev389,11677 +write_abbrev 426,12884 +describe_abbrev 445,13319 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description466,13834 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table506,14990 +syms_of_abbrev 540,16067 + DEFVAR_LISP ("abbrev-table-name-list"542,16087 + DEFVAR_LISP ("global-abbrev-table"548,16349 + DEFVAR_LISP ("fundamental-mode-abbrev-table"555,16671 + DEFVAR_LISP ("last-abbrev"561,17013 + DEFVAR_LISP ("last-abbrev-text"564,17136 + DEFVAR_INT ("last-abbrev-location"568,17294 + DEFVAR_LISP ("abbrev-start-location"575,17493 + DEFVAR_LISP ("abbrev-start-location-buffer"581,17770 + DEFVAR_PER_BUFFER ("local-abbrev-table"586,18034 + DEFVAR_BOOL ("abbrevs-changed"589,18177 + DEFVAR_BOOL ("abbrev-all-caps"594,18380 + DEFVAR_LISP ("pre-abbrev-expand-hook"598,18536 + DEFVAR_LISP ("abbrev-table-name-list",\1542,16087 + DEFVAR_LISP ("global-abbrev-table",\1548,16349 + DEFVAR_LISP ("fundamental-mode-abbrev-table",\1555,16671 + DEFVAR_LISP ("last-abbrev",\1561,17013 + DEFVAR_LISP ("last-abbrev-text",\1564,17136 + DEFVAR_INT ("last-abbrev-location",\1568,17294 + DEFVAR_LISP ("abbrev-start-location",\1575,17493 + DEFVAR_LISP ("abbrev-start-location-buffer",\1581,17770 + DEFVAR_PER_BUFFER ("local-abbrev-table",\1586,18034 + DEFVAR_BOOL ("abbrevs-changed",\1589,18177 + DEFVAR_BOOL ("abbrev-all-caps",\1594,18380 + DEFVAR_LISP ("pre-abbrev-expand-hook",\1598,18536 c-src/torture.c,197 (*tag1 tag118,452 @@ -241,28 +241,28 @@ pp287,1419 pp3(100,1518 c-src/getopt.h,666 -#define _GETOPT_H 19,801 -extern char *optarg;optarg31,1109 -extern int optind;45,1617 -extern int opterr;50,1743 -struct option73,2797 - const char *name;name76,2826 - char *name;name78,2852 - int has_arg;82,3009 - int *flag;flag83,3024 - int val;84,3037 -#define no_argument 89,3124 -#define required_argument 90,3147 -#define optional_argument 91,3175 -extern int getopt 98,3440 -extern int getopt 100,3544 -extern int getopt_long 102,3599 -extern int getopt_long_only 104,3731 -extern int _getopt_internal 109,3942 -extern int getopt 114,4140 -extern int getopt_long 115,4162 -extern int getopt_long_only 116,4189 -extern int _getopt_internal 118,4222 +#define _GETOPT_H 19,794 +extern char *optarg;optarg31,1102 +extern int optind;45,1610 +extern int opterr;50,1736 +struct option73,2790 + const char *name;name76,2819 + char *name;name78,2845 + int has_arg;82,3002 + int *flag;flag83,3017 + int val;84,3030 +#define no_argument 89,3117 +#define required_argument 90,3140 +#define optional_argument 91,3168 +extern int getopt 98,3433 +extern int getopt 100,3537 +extern int getopt_long 102,3592 +extern int getopt_long_only 104,3724 +extern int _getopt_internal 109,3935 +extern int getopt 114,4133 +extern int getopt_long 115,4155 +extern int getopt_long_only 116,4182 +extern int _getopt_internal 118,4215 c-src/etags.c,14175 char pot_etags_version[pot_etags_version81,3470 @@ -700,36 +700,36 @@ xmalloc 6536,174148 xrealloc 6545,174314 c-src/exit.c,99 - size_t n;28,961 - void EXFUN((*fn[fn29,975 - } __libc_atexit;30,1011 -DEFUN(exit,38,1252 + size_t n;28,967 + void EXFUN((*fn[fn29,981 + } __libc_atexit;30,1017 +DEFUN(exit,38,1258 c-src/exit.strange_suffix,99 - size_t n;28,961 - void EXFUN((*fn[fn29,975 - } __libc_atexit;30,1011 -DEFUN(exit,38,1252 + size_t n;28,967 + void EXFUN((*fn[fn29,981 + } __libc_atexit;30,1017 +DEFUN(exit,38,1258 c-src/sysdep.h,491 -#define ENTRY(21,865 -#define PSEUDO(26,972 - movl $SYS_##syscall_nam$SYS_##syscall_na31,1132 - movl $SYS_##syscall_name, %eax;eax31,1132 - int $0x80;32,1180 - test %eax,eax33,1210 - test %eax, %eax;eax33,1210 - jl syscall_error;34,1245 -#define XCHG_0 47,1562 -#define XCHG_1 48,1606 -#define XCHG_2 49,1648 -#define XCHG_3 50,1691 -#define XCHG_4 51,1734 -#define XCHG_5 52,1777 -#define r0 54,1821 -#define r1 55,1875 -#define scratch 56,1932 -#define MOVE(57,2001 +#define ENTRY(21,870 +#define PSEUDO(26,977 + movl $SYS_##syscall_nam$SYS_##syscall_na31,1137 + movl $SYS_##syscall_name, %eax;eax31,1137 + int $0x80;32,1185 + test %eax,eax33,1215 + test %eax, %eax;eax33,1215 + jl syscall_error;34,1250 +#define XCHG_0 47,1567 +#define XCHG_1 48,1611 +#define XCHG_2 49,1653 +#define XCHG_3 50,1696 +#define XCHG_4 51,1739 +#define XCHG_5 52,1782 +#define r0 54,1826 +#define r1 55,1880 +#define scratch 56,1937 +#define MOVE(57,2006 c-src/tab.c,196 static int count_words(15,263 @@ -2107,623 +2107,623 @@ struct Lisp_Misc_Any 1971,64806 ENUM_BF 1973,64866 struct Lisp_Marker1978,64980 ENUM_BF 1980,65001 -struct Lisp_Overlay2021,66838 - ENUM_BF 2034,67346 - SAVE_UNUSED,2047,67641 - SAVE_INTEGER,2048,67658 - SAVE_FUNCPOINTER,2049,67676 - SAVE_POINTER,2050,67698 - SAVE_OBJECT2051,67716 -enum { SAVE_SLOT_BITS 2055,67801 -enum { SAVE_VALUE_SLOTS 2058,67898 -enum { SAVE_TYPE_BITS 2062,68006 -enum Lisp_Save_Type2064,68072 - SAVE_TYPE_INT_INT 2066,68096 - SAVE_TYPE_INT_INT_INT2067,68169 - SAVE_TYPE_OBJ_OBJ 2069,68259 - SAVE_TYPE_OBJ_OBJ_OBJ 2070,68330 - SAVE_TYPE_OBJ_OBJ_OBJ_OBJ2071,68411 - SAVE_TYPE_PTR_INT 2073,68506 - SAVE_TYPE_PTR_OBJ 2074,68579 - SAVE_TYPE_PTR_PTR 2075,68651 - SAVE_TYPE_FUNCPTR_PTR_OBJ2076,68724 - SAVE_TYPE_MEMORY 2080,68882 -typedef void (*voidfuncptr)voidfuncptr2108,69836 -struct Lisp_Save_Value2110,69873 - ENUM_BF 2112,69900 - void *pointer;pointer2125,70555 - voidfuncptr funcpointer;2126,70576 - ptrdiff_t integer;2127,70607 - Lisp_Object object;2128,70632 - } data[data2129,70658 -save_type 2134,70752 -XSAVE_POINTER 2143,70982 -set_save_pointer 2149,71144 -XSAVE_FUNCPOINTER 2155,71326 -XSAVE_INTEGER 2164,71546 -set_save_integer 2170,71708 -XSAVE_OBJECT 2179,71929 -struct Lisp_Finalizer2186,72106 - struct Lisp_Misc_Any base;2188,72132 - struct Lisp_Finalizer *prev;prev2191,72220 - struct Lisp_Finalizer *next;next2192,72253 - Lisp_Object function;2197,72490 -struct Lisp_Free2201,72581 - ENUM_BF 2203,72602 -union Lisp_Misc2212,72882 - struct Lisp_Misc_Any u_any;2214,72902 - struct Lisp_Free u_free;2215,72973 - struct Lisp_Marker u_marker;2216,73002 - struct Lisp_Overlay u_overlay;2217,73035 - struct Lisp_Save_Value u_save_value;2218,73070 - struct Lisp_Finalizer u_finalizer;2219,73111 -XMISC 2223,73181 -XMISCANY 2229,73270 -XMISCTYPE 2236,73379 -XMARKER 2242,73467 -XOVERLAY 2249,73582 -XSAVE_VALUE 2256,73703 -XFINALIZER 2263,73832 -struct Lisp_Intfwd2274,74117 - enum Lisp_Fwd_Type type;2276,74140 - EMACS_INT *intvar;intvar2277,74190 -struct Lisp_Boolfwd2284,74411 - enum Lisp_Fwd_Type type;2286,74435 - bool *boolvar;boolvar2287,74486 -struct Lisp_Objfwd2294,74702 - enum Lisp_Fwd_Type type;2296,74725 - Lisp_Object *objvar;objvar2297,74775 -struct Lisp_Buffer_Objfwd2302,74934 - enum Lisp_Fwd_Type type;2304,74964 - int offset;2305,75021 - Lisp_Object predicate;2307,75113 -struct Lisp_Buffer_Local_Value2334,76470 - bool_bf local_if_set 2338,76615 - bool_bf frame_local 2341,76797 - bool_bf found 2344,76939 - union Lisp_Fwd *fwd;fwd2346,77041 - Lisp_Object where;2348,77184 - Lisp_Object defcell;2351,77310 - Lisp_Object valcell;2357,77614 -struct Lisp_Kboard_Objfwd2362,77729 - enum Lisp_Fwd_Type type;2364,77759 - int offset;2365,77816 -union Lisp_Fwd2368,77838 - struct Lisp_Intfwd u_intfwd;2370,77857 - struct Lisp_Boolfwd u_boolfwd;2371,77890 - struct Lisp_Objfwd u_objfwd;2372,77925 - struct Lisp_Buffer_Objfwd u_buffer_objfwd;2373,77958 - struct Lisp_Kboard_Objfwd u_kboard_objfwd;2374,78005 -XFWDTYPE 2378,78084 -XBUFFER_OBJFWD 2384,78180 -struct Lisp_Float2391,78316 - double data;2395,78354 - struct Lisp_Float *chain;chain2396,78373 - } u;2397,78405 -XFLOAT_DATA 2401,78434 - IEEE_FLOATING_POINT2415,78943 -#define _UCHAR_T2423,79266 -typedef unsigned char UCHAR;2424,79283 -enum Lisp_Compiled2429,79366 - COMPILED_ARGLIST 2431,79389 - COMPILED_BYTECODE 2432,79415 - COMPILED_CONSTANTS 2433,79442 - COMPILED_STACK_DEPTH 2434,79470 - COMPILED_DOC_STRING 2435,79500 - COMPILED_INTERACTIVE 2436,79529 -enum char_bits2443,79831 - CHAR_ALT 2445,79850 - CHAR_SUPER 2446,79876 - CHAR_HYPER 2447,79904 - CHAR_SHIFT 2448,79932 - CHAR_CTL 2449,79960 - CHAR_META 2450,79986 - CHAR_MODIFIER_MASK 2452,80014 - CHARACTERBITS 2457,80209 -LISP_MACRO_DEFUN 2462,80267 -NATNUMP 2470,80409 -RANGED_INTEGERP 2476,80490 -#define TYPE_RANGED_INTEGERP(2481,80612 -LISP_MACRO_DEFUN 2486,80797 -VECTORP 2500,81270 -OVERLAYP 2505,81373 -SAVE_VALUEP 2510,81472 -FINALIZERP 2516,81578 -AUTOLOADP 2522,81682 -BUFFER_OBJFWDP 2528,81773 -PSEUDOVECTOR_TYPEP 2534,81871 -PSEUDOVECTORP 2542,82124 -WINDOW_CONFIGURATIONP 2558,82476 -PROCESSP 2564,82586 -WINDOWP 2570,82670 -TERMINALP 2576,82752 -SUBRP 2582,82838 -COMPILEDP 2588,82916 -BUFFERP 2594,83002 -CHAR_TABLE_P 2600,83084 -SUB_CHAR_TABLE_P 2606,83175 -BOOL_VECTOR_P 2612,83274 -FRAMEP 2618,83367 -IMAGEP 2625,83484 -ARRAYP 2632,83589 -CHECK_LIST 2638,83708 -LISP_MACRO_DEFUN_VOID 2643,83789 -CHECK_STRING_CAR 2653,84086 -CHECK_CONS 2658,84190 -CHECK_VECTOR 2663,84270 -CHECK_BOOL_VECTOR 2668,84356 -CHECK_VECTOR_OR_STRING 2674,84533 -CHECK_ARRAY 2683,84707 -CHECK_BUFFER 2688,84815 -CHECK_WINDOW 2693,84901 -CHECK_PROCESS 2699,85007 -CHECK_NATNUM 2705,85103 -#define CHECK_RANGED_INTEGER(2710,85180 -#define CHECK_TYPE_RANGED_INTEGER(2721,85563 -#define CHECK_NUMBER_COERCE_MARKER(2729,85833 -XFLOATINT 2738,86086 -CHECK_NUMBER_OR_FLOAT 2744,86157 -#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(2749,86256 -CHECK_NUMBER_CAR 2760,86666 -CHECK_NUMBER_CDR 2768,86788 -#define DEFUN(2803,88383 -#define DEFUN(2812,88851 -FUNCTIONP 2822,89206 -extern void defsubr 2829,89358 -enum maxargs2831,89401 - MANY 2833,89418 - UNEVALLED 2834,89433 -#define CALLMANY(2838,89536 -#define CALLN(2844,89889 -extern void defvar_lisp 2846,89959 -extern void defvar_lisp_nopro 2847,90036 -extern void defvar_bool 2848,90119 -extern void defvar_int 2849,90190 -extern void defvar_kboard 2850,90264 -#define DEFVAR_LISP(2869,91094 -#define DEFVAR_LISP_NOPRO(2874,91266 -#define DEFVAR_BOOL(2879,91448 -#define DEFVAR_INT(2884,91621 -#define DEFVAR_BUFFER_DEFAULTS(2890,91792 -#define DEFVAR_KBOARD(2896,91996 -typedef jmp_buf sys_jmp_buf;2906,92320 -# define sys_setjmp(2907,92349 -# define sys_longjmp(2908,92384 -typedef sigjmp_buf sys_jmp_buf;2910,92456 -# define sys_setjmp(2911,92488 -# define sys_longjmp(2912,92528 -typedef jmp_buf sys_jmp_buf;2916,92687 -# define sys_setjmp(2917,92716 -# define sys_longjmp(2918,92750 -enum specbind_tag 2943,93802 - SPECPDL_UNWIND,2944,93822 - SPECPDL_UNWIND_PTR,2945,93891 - SPECPDL_UNWIND_INT,2946,93942 - SPECPDL_UNWIND_VOID,2947,93990 - SPECPDL_BACKTRACE,2948,94044 - SPECPDL_LET,2949,94102 - SPECPDL_LET_LOCAL,2951,94232 - SPECPDL_LET_DEFAULT 2952,94289 -union specbinding2955,94361 - ENUM_BF 2957,94383 - ENUM_BF 2959,94440 - ENUM_BF 2964,94570 - ENUM_BF 2969,94693 - ENUM_BF 2974,94811 - ENUM_BF 2978,94916 - ENUM_BF 2983,95091 -enum handlertype 3021,96407 -enum handlertype { CATCHER,3021,96407 -enum handlertype { CATCHER, CONDITION_CASE 3021,96407 -struct handler3023,96454 - enum handlertype type;3025,96471 - Lisp_Object tag_or_ch;3026,96496 - Lisp_Object val;3027,96521 - struct handler *next;next3028,96540 - struct handler *nextfree;nextfree3029,96564 - Lisp_Object *bytecode_top;bytecode_top3036,96922 - int bytecode_dest;3037,96951 - struct gcpro *gcpro;gcpro3042,97188 - sys_jmp_buf jmp;3044,97218 - EMACS_INT lisp_eval_depth;3045,97237 - ptrdiff_t pdlcount;3046,97266 - int poll_suppress_count;3047,97288 - int interrupt_input_blocked;3048,97315 - struct byte_stack *byte_stack;byte_stack3049,97346 -#define PUSH_HANDLER(3053,97443 -extern Lisp_Object memory_signal_data;3075,98149 -extern char *stack_bottom;stack_bottom3079,98282 -extern void process_pending_signals 3097,99099 -extern bool volatile pending_signals;3098,99143 -extern void process_quit_flag 3100,99182 -#define QUIT 3101,99220 -#define QUITP 3112,99470 -extern Lisp_Object Vascii_downcase_table;3114,99531 -extern Lisp_Object Vascii_canon_table;3115,99573 -extern struct gcpro *gcprolist;gcprolist3130,100280 -struct gcpro3132,100313 - struct gcpro *next;next3134,100328 - volatile Lisp_Object *var;var3137,100397 - ptrdiff_t nvars;3140,100479 - const char *name;name3144,100564 - int lineno;3147,100620 - int idx;3150,100681 - int level;3153,100717 -#define GC_USE_GCPROS_AS_BEFORE 3171,101294 -#define GC_MAKE_GCPROS_NOOPS 3172,101329 -#define GC_MARK_STACK_CHECK_GCPROS 3173,101361 -#define GC_USE_GCPROS_CHECK_ZOMBIES 3174,101398 -#define GC_MARK_STACK 3177,101459 -#define BYTE_MARK_STACK 3181,101559 -#define GCPRO1(3190,101830 -#define GCPRO2(3191,101870 -#define GCPRO3(3192,101936 -#define GCPRO4(3194,102031 -#define GCPRO5(3196,102151 -#define GCPRO6(3198,102296 -#define GCPRO7(3201,102471 -#define UNGCPRO 3202,102550 -#define GCPRO1(3208,102650 -#define GCPRO2(3212,102772 -#define GCPRO3(3217,102964 -#define GCPRO4(3223,103226 -#define GCPRO5(3230,103557 -#define GCPRO6(3238,103958 -#define GCPRO7(3247,104428 -#define UNGCPRO 3257,104968 -extern int gcpro_level;3261,105037 -#define GCPRO1(3263,105062 -#define GCPRO2(3269,105296 -#define GCPRO3(3278,105714 -#define GCPRO4(3289,106271 -#define GCPRO5(3302,106969 -#define GCPRO6(3317,107809 -#define GCPRO7(3334,108790 -#define UNGCPRO 3353,109913 -#define RETURN_UNGCPRO(3363,110180 -void staticpro 3375,110453 -vcopy 3384,110654 -set_hash_key_slot 3393,110929 -set_hash_value_slot 3399,111068 -set_symbol_function 3408,111303 -set_symbol_plist 3414,111418 -set_symbol_next 3420,111521 -blv_found 3428,111694 -set_overlay_plist 3437,111877 -string_intervals 3445,112028 -set_string_intervals 3453,112150 -set_char_table_defalt 3462,112352 -set_char_table_purpose 3467,112464 -set_char_table_extras 3475,112633 -set_char_table_contents 3482,112842 -set_sub_char_table_contents 3489,113037 -extern Lisp_Object indirect_function 3495,113196 -extern Lisp_Object find_symbol_value 3496,113248 -enum Arith_Comparison 3497,113300 - ARITH_EQUAL,3498,113324 - ARITH_NOTEQUAL,3499,113339 - ARITH_LESS,3500,113357 - ARITH_GRTR,3501,113371 - ARITH_LESS_OR_EQUAL,3502,113385 - ARITH_GRTR_OR_EQUAL3503,113408 -extern Lisp_Object arithcompare 3505,113433 -#define INTEGER_TO_CONS(3511,113759 -#define CONS_TO_INTEGER(3529,114622 -extern intmax_t cons_to_signed 3533,114837 -extern uintmax_t cons_to_unsigned 3534,114903 -extern struct Lisp_Symbol *indirect_variable indirect_variable3536,114964 -extern _Noreturn void args_out_of_range 3537,115033 -extern _Noreturn void args_out_of_range_3 3538,115101 -extern Lisp_Object do_symval_forwarding 3540,115192 -extern void set_internal 3541,115252 -extern void syms_of_data 3542,115324 -extern void swap_in_global_binding 3543,115357 -extern void syms_of_cmds 3546,115441 -extern void keys_of_cmds 3547,115474 -extern Lisp_Object detect_coding_system 3550,115536 -extern void init_coding 3552,115689 -extern void init_coding_once 3553,115721 -extern void syms_of_coding 3554,115758 -extern ptrdiff_t chars_in_text 3557,115825 -extern ptrdiff_t multibyte_chars_in_text 3558,115892 -extern void syms_of_character 3559,115969 -extern void init_charset 3562,116037 -extern void init_charset_once 3563,116070 -extern void syms_of_charset 3564,116108 -extern void init_syntax_once 3569,116228 -extern void syms_of_syntax 3570,116265 -enum { NEXT_ALMOST_PRIME_LIMIT 3573,116326 -extern EMACS_INT next_almost_prime 3574,116365 -enum constype 3739,123817 -enum constype {CONSTYPE_HEAP,CONSTYPE_HEAP3739,123817 -enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}CONSTYPE_PURE3739,123817 -extern Lisp_Object listn 3740,123863 -list2i 3745,124007 -list3i 3751,124116 -list4i 3757,124255 -extern Lisp_Object make_uninit_bool_vector 3763,124407 -extern Lisp_Object bool_vector_fill 3764,124463 -extern _Noreturn void string_overflow 3765,124527 -extern Lisp_Object make_string 3766,124573 -extern Lisp_Object make_formatted_string 3767,124631 -extern Lisp_Object make_multibyte_string 3779,124985 -extern Lisp_Object make_event_array 3780,125064 -extern Lisp_Object make_uninit_string 3781,125128 -extern Lisp_Object make_uninit_multibyte_string 3782,125179 -extern Lisp_Object make_string_from_bytes 3783,125251 -extern Lisp_Object make_specified_string 3784,125331 -extern Lisp_Object make_pure_string 3786,125423 -extern Lisp_Object make_pure_c_string 3787,125503 -build_pure_c_string 3792,125659 -build_string 3801,125864 -extern Lisp_Object pure_cons 3806,125942 -extern void make_byte_code 3807,125999 -extern struct Lisp_Vector *allocate_vector allocate_vector3808,126050 -make_uninit_vector 3820,126435 -make_uninit_sub_char_table 3833,126654 -extern struct Lisp_Vector *allocate_pseudovector allocate_pseudovector3844,126963 -#define ALLOCATE_PSEUDOVECTOR(3850,127198 -#define ALLOCATE_ZEROED_PSEUDOVECTOR(3858,127534 -extern bool gc_in_progress;3863,127735 -extern bool abort_on_gc;3864,127763 -extern Lisp_Object make_float 3865,127788 -extern void display_malloc_warning 3866,127828 -extern ptrdiff_t inhibit_garbage_collection 3867,127871 -extern Lisp_Object make_save_int_int_int 3868,127923 -extern Lisp_Object make_save_obj_obj_obj_obj 3869,127999 -extern Lisp_Object make_save_ptr 3871,128109 -extern Lisp_Object make_save_ptr_int 3872,128152 -extern Lisp_Object make_save_ptr_ptr 3873,128210 -extern Lisp_Object make_save_funcptr_ptr_obj 3874,128265 -extern Lisp_Object make_save_memory 3876,128361 -extern void free_save_value 3877,128425 -extern Lisp_Object build_overlay 3878,128468 -extern void free_marker 3879,128542 -extern void free_cons 3880,128581 -extern void init_alloc_once 3881,128625 -extern void init_alloc 3882,128661 -extern void syms_of_alloc 3883,128692 -extern struct buffer * allocate_buffer 3884,128726 -extern int valid_lisp_object_p 3885,128773 -extern int relocatable_string_data_p 3886,128819 -extern void check_cons_list 3888,128898 -INLINE void 3890,128940 -extern void *r_alloc r_alloc3895,129061 -#define FLOAT_TO_STRING_BUFSIZE 3927,130524 -extern int openp 3957,131673 -extern Lisp_Object string_to_number 3959,131783 -extern void map_obarray 3960,131846 -extern void dir_warning 3962,131960 -extern void init_obarray 3963,132013 -extern void init_lread 3964,132046 -extern void syms_of_lread 3965,132077 -intern 3968,132131 -intern_c_string 3974,132219 -extern EMACS_INT lisp_eval_depth;3980,132332 -extern Lisp_Object Vautoload_queue;3981,132366 -extern Lisp_Object Vrun_hooks;3982,132402 -extern Lisp_Object Vsignaling_function;3983,132433 -extern Lisp_Object inhibit_lisp_code;3984,132473 -extern struct handler *handlerlist;handlerlist3985,132511 -extern void run_hook 3994,132753 -extern void run_hook_with_args_2 3995,132789 -extern Lisp_Object run_hook_with_args 3996,132863 -extern _Noreturn void xsignal 3999,133022 -extern _Noreturn void xsignal0 4000,133080 -extern _Noreturn void xsignal1 4001,133126 -extern _Noreturn void xsignal2 4002,133185 -extern _Noreturn void xsignal3 4003,133257 -extern _Noreturn void signal_error 4005,133346 -extern Lisp_Object eval_sub 4006,133410 -extern Lisp_Object apply1 4007,133458 -extern Lisp_Object call0 4008,133512 -extern Lisp_Object call1 4009,133552 -extern Lisp_Object call2 4010,133605 -extern Lisp_Object call3 4011,133671 -extern Lisp_Object call4 4012,133750 -extern Lisp_Object call5 4013,133842 -extern Lisp_Object call6 4014,133947 -extern Lisp_Object call7 4015,134065 -extern Lisp_Object internal_catch 4016,134196 -extern Lisp_Object internal_lisp_condition_case 4017,134289 -extern Lisp_Object internal_condition_case 4018,134378 -extern Lisp_Object internal_condition_case_1 4019,134491 -extern Lisp_Object internal_condition_case_2 4020,134626 -extern Lisp_Object internal_condition_case_n4021,134787 -extern void specbind 4024,134983 -extern void record_unwind_protect 4025,135032 -extern void record_unwind_protect_ptr 4026,135105 -extern void record_unwind_protect_int 4027,135172 -extern void record_unwind_protect_void 4028,135233 -extern void record_unwind_protect_nothing 4029,135291 -extern void clear_unwind_protect 4030,135341 -extern void set_unwind_protect 4031,135387 -extern void set_unwind_protect_ptr 4032,135468 -extern Lisp_Object unbind_to 4033,135543 -extern _Noreturn void error 4034,135598 -fast_string_match_ignore_case 4136,140086 -extern ptrdiff_t fast_c_string_match_ignore_case 4141,140236 -extern ptrdiff_t fast_looking_at 4143,140333 -extern ptrdiff_t find_newline 4145,140472 -extern ptrdiff_t scan_newline 4147,140601 -extern ptrdiff_t scan_newline_from_point 4149,140704 -extern ptrdiff_t find_newline_no_quit 4150,140784 -extern ptrdiff_t find_before_next_newline 4152,140881 -extern void syms_of_search 4154,140979 -extern void clear_regexp_cache 4155,141014 -extern Lisp_Object Vminibuffer_list;4159,141084 -extern Lisp_Object last_minibuf_string;4160,141121 -extern Lisp_Object get_minibuffer 4161,141161 -extern void init_minibuf_once 4162,141208 -extern void syms_of_minibuf 4163,141246 -extern void syms_of_callint 4167,141313 -extern void syms_of_casefiddle 4171,141383 -extern void keys_of_casefiddle 4172,141422 -extern void init_casetab_once 4176,141492 -extern void syms_of_casetab 4177,141530 -extern Lisp_Object echo_message_buffer;4181,141598 -extern struct kboard *echo_kboard;echo_kboard4182,141638 -extern void cancel_echoing 4183,141673 -extern Lisp_Object last_undo_boundary;4184,141708 -extern bool input_pending;4185,141747 -extern sigjmp_buf return_to_command_loop;4187,141810 -extern Lisp_Object menu_bar_items 4189,141859 -extern Lisp_Object tool_bar_items 4190,141908 -extern void discard_mouse_events 4191,141964 -void handle_input_available_signal 4193,142025 -extern Lisp_Object pending_funcalls;4195,142074 -extern bool detect_input_pending 4196,142111 -extern bool detect_input_pending_ignore_squeezables 4197,142152 -extern bool detect_input_pending_run_timers 4198,142212 -extern void safe_run_hooks 4199,142264 -extern void cmd_error_internal 4200,142306 -extern Lisp_Object command_loop_1 4201,142366 -extern Lisp_Object read_menu_command 4202,142408 -extern Lisp_Object recursive_edit_1 4203,142453 -extern void record_auto_save 4204,142497 -extern void force_auto_save_soon 4205,142534 -extern void init_keyboard 4206,142575 -extern void syms_of_keyboard 4207,142609 -extern void keys_of_keyboard 4208,142646 -extern ptrdiff_t current_column 4211,142712 -extern void invalidate_current_column 4212,142752 -extern bool indented_beyond_p 4213,142798 -extern void syms_of_indent 4214,142863 -extern void store_frame_param 4217,142926 -extern void store_in_alist 4218,143000 -extern Lisp_Object do_switch_frame 4219,143070 -extern Lisp_Object get_frame_param 4220,143143 -extern void frames_discard_buffer 4221,143209 -extern void syms_of_frame 4222,143258 -extern char **initial_argv;initial_argv4225,143320 -extern int initial_argc;4226,143348 -extern bool display_arg;4228,143423 -extern Lisp_Object decode_env_path 4230,143455 -extern Lisp_Object empty_unibyte_string,4231,143526 -extern Lisp_Object empty_unibyte_string, empty_multibyte_string;4231,143526 -extern _Noreturn void terminate_due_to_signal 4232,143591 -extern Lisp_Object Vlibrary_cache;4234,143666 -void fixup_locale 4237,143727 -void synchronize_system_messages_locale 4238,143753 -void synchronize_system_time_locale 4239,143801 -INLINE void fixup_locale 4241,143851 -INLINE void synchronize_system_messages_locale 4242,143886 -INLINE void synchronize_system_time_locale 4243,143943 -extern void shut_down_emacs 4245,144003 -extern bool noninteractive;4248,144129 -extern bool no_site_lisp;4251,144221 -extern int daemon_pipe[daemon_pipe4256,144389 -#define IS_DAEMON 4257,144416 -#define DAEMON_RUNNING 4258,144456 -extern void *w32_daemon_event;w32_daemon_event4260,144524 -#define IS_DAEMON 4261,144555 -#define DAEMON_RUNNING 4262,144600 -extern bool fatal_error_in_progress;4266,144721 -extern bool inhibit_window_system;4269,144827 -extern bool running_asynch_code;4271,144920 -extern void kill_buffer_processes 4274,144983 -extern int wait_reading_process_output 4275,145032 -# define WAIT_READING_MAX 4281,145419 -# define WAIT_READING_MAX 4283,145491 -extern void add_timer_wait_descriptor 4286,145555 -extern void add_keyboard_wait_descriptor 4288,145607 -extern void delete_keyboard_wait_descriptor 4289,145655 -extern void add_gpm_wait_descriptor 4291,145722 -extern void delete_gpm_wait_descriptor 4292,145765 -extern void init_process_emacs 4294,145818 -extern void syms_of_process 4295,145857 -extern void setup_process_coding_systems 4296,145893 -extern int child_setup 4302,146013 -extern void init_callproc_1 4303,146081 -extern void init_callproc 4304,146117 -extern void set_initial_environment 4305,146151 -extern void syms_of_callproc 4306,146195 -extern Lisp_Object read_doc_string 4309,146258 -extern Lisp_Object get_doc_string 4310,146308 -extern void syms_of_doc 4311,146369 -extern int read_bytecode_char 4312,146401 -extern void syms_of_bytecode 4315,146470 -extern struct byte_stack *byte_stack_list;byte_stack_list4316,146507 -extern void mark_byte_stack 4318,146570 -extern void unmark_byte_stack 4320,146613 -extern Lisp_Object exec_byte_code 4321,146651 -extern void init_macros 4325,146801 -extern void syms_of_macros 4326,146833 -extern void truncate_undo_list 4329,146895 -extern void record_insert 4330,146945 -extern void record_delete 4331,146995 -extern void record_first_change 4332,147053 -extern void record_change 4333,147093 -extern void record_property_change 4334,147143 -extern void syms_of_undo 4337,147285 -extern void report_interval_modification 4340,147349 -extern void syms_of_menu 4343,147445 -extern void syms_of_xmenu 4346,147506 -extern char *get_current_dir_name get_current_dir_name4356,147708 -extern void stuff_char 4358,147757 -extern void init_foreground_group 4359,147790 -extern void sys_subshell 4360,147832 -extern void sys_suspend 4361,147865 -extern void discard_tty_input 4362,147897 -extern void init_sys_modes 4363,147935 -extern void reset_sys_modes 4364,147991 -extern void init_all_sys_modes 4365,148048 -extern void reset_all_sys_modes 4366,148087 -extern void child_setup_tty 4367,148127 -extern void setup_pty 4368,148162 -extern int set_window_size 4369,148191 -extern EMACS_INT get_random 4370,148235 -extern void seed_random 4371,148271 -extern void init_random 4372,148316 -extern void emacs_backtrace 4373,148348 -extern _Noreturn void emacs_abort 4374,148383 -extern void xputenv 4527,152697 -extern char *egetenv_internal egetenv_internal4529,152734 -egetenv 4532,152806 -extern void init_system_name 4539,153009 -#define eabs(4545,153302 -#define make_fixnum_or_float(4550,153435 -enum MAX_ALLOCA 4556,153686 -enum MAX_ALLOCA { MAX_ALLOCA 4556,153686 -extern void *record_xmalloc record_xmalloc4558,153731 -#define USE_SAFE_ALLOCA 4560,153797 -#define AVAIL_ALLOCA(4564,153930 -#define SAFE_ALLOCA(4568,154041 -#define SAFE_NALLOCA(4576,154382 -#define SAFE_ALLOCA_STRING(4590,154858 -#define SAFE_FREE(4598,155110 -#define SAFE_ALLOCA_LISP(4625,155688 -# define USE_STACK_LISP_OBJECTS 4652,156810 -# undef USE_STACK_LISP_OBJECTS4658,156976 -# define USE_STACK_LISP_OBJECTS 4659,157007 -enum { defined_GC_CHECK_STRING_BYTES 4663,157082 -enum { defined_GC_CHECK_STRING_BYTES 4665,157135 -union Aligned_Cons4670,157269 - struct Lisp_Cons s;4672,157290 - double d;4673,157312 - double d; intmax_t i;4673,157312 - double d; intmax_t i; void *p;p4673,157312 -union Aligned_String4676,157349 - struct Lisp_String s;4678,157372 - double d;4679,157396 - double d; intmax_t i;4679,157396 - double d; intmax_t i; void *p;p4679,157396 - USE_STACK_CONS 4689,157704 - USE_STACK_STRING 4691,157810 -#define STACK_CONS(4699,158147 -#define AUTO_CONS_EXPR(4701,158244 -#define AUTO_CONS(4709,158607 -#define AUTO_LIST1(4710,158678 -#define AUTO_LIST2(4712,158786 -#define AUTO_LIST3(4716,158941 -#define AUTO_LIST4(4720,159116 -extern const char *verify_ascii verify_ascii4730,159453 -# define verify_ascii(4732,159507 -#define AUTO_STRING(4740,159815 -#define FOR_EACH_TAIL(4752,160279 -#define FOR_EACH_ALIST_VALUE(4766,160770 -maybe_gc 4774,161057 -functionp 4784,161296 +struct Lisp_Overlay2021,66841 + ENUM_BF 2034,67349 + SAVE_UNUSED,2047,67644 + SAVE_INTEGER,2048,67661 + SAVE_FUNCPOINTER,2049,67679 + SAVE_POINTER,2050,67701 + SAVE_OBJECT2051,67719 +enum { SAVE_SLOT_BITS 2055,67804 +enum { SAVE_VALUE_SLOTS 2058,67901 +enum { SAVE_TYPE_BITS 2062,68009 +enum Lisp_Save_Type2064,68075 + SAVE_TYPE_INT_INT 2066,68099 + SAVE_TYPE_INT_INT_INT2067,68172 + SAVE_TYPE_OBJ_OBJ 2069,68262 + SAVE_TYPE_OBJ_OBJ_OBJ 2070,68333 + SAVE_TYPE_OBJ_OBJ_OBJ_OBJ2071,68414 + SAVE_TYPE_PTR_INT 2073,68509 + SAVE_TYPE_PTR_OBJ 2074,68582 + SAVE_TYPE_PTR_PTR 2075,68654 + SAVE_TYPE_FUNCPTR_PTR_OBJ2076,68727 + SAVE_TYPE_MEMORY 2080,68885 +typedef void (*voidfuncptr)voidfuncptr2108,69839 +struct Lisp_Save_Value2110,69876 + ENUM_BF 2112,69903 + void *pointer;pointer2125,70558 + voidfuncptr funcpointer;2126,70579 + ptrdiff_t integer;2127,70610 + Lisp_Object object;2128,70635 + } data[data2129,70661 +save_type 2134,70755 +XSAVE_POINTER 2143,70985 +set_save_pointer 2149,71147 +XSAVE_FUNCPOINTER 2155,71329 +XSAVE_INTEGER 2164,71549 +set_save_integer 2170,71711 +XSAVE_OBJECT 2179,71932 +struct Lisp_Finalizer2186,72109 + struct Lisp_Misc_Any base;2188,72135 + struct Lisp_Finalizer *prev;prev2191,72223 + struct Lisp_Finalizer *next;next2192,72256 + Lisp_Object function;2197,72493 +struct Lisp_Free2201,72584 + ENUM_BF 2203,72605 +union Lisp_Misc2212,72885 + struct Lisp_Misc_Any u_any;2214,72905 + struct Lisp_Free u_free;2215,72976 + struct Lisp_Marker u_marker;2216,73005 + struct Lisp_Overlay u_overlay;2217,73038 + struct Lisp_Save_Value u_save_value;2218,73073 + struct Lisp_Finalizer u_finalizer;2219,73114 +XMISC 2223,73184 +XMISCANY 2229,73273 +XMISCTYPE 2236,73382 +XMARKER 2242,73470 +XOVERLAY 2249,73585 +XSAVE_VALUE 2256,73706 +XFINALIZER 2263,73835 +struct Lisp_Intfwd2274,74120 + enum Lisp_Fwd_Type type;2276,74143 + EMACS_INT *intvar;intvar2277,74193 +struct Lisp_Boolfwd2284,74414 + enum Lisp_Fwd_Type type;2286,74438 + bool *boolvar;boolvar2287,74489 +struct Lisp_Objfwd2294,74705 + enum Lisp_Fwd_Type type;2296,74728 + Lisp_Object *objvar;objvar2297,74778 +struct Lisp_Buffer_Objfwd2302,74937 + enum Lisp_Fwd_Type type;2304,74967 + int offset;2305,75024 + Lisp_Object predicate;2307,75116 +struct Lisp_Buffer_Local_Value2334,76473 + bool_bf local_if_set 2338,76618 + bool_bf frame_local 2341,76800 + bool_bf found 2344,76942 + union Lisp_Fwd *fwd;fwd2346,77044 + Lisp_Object where;2348,77187 + Lisp_Object defcell;2351,77313 + Lisp_Object valcell;2357,77617 +struct Lisp_Kboard_Objfwd2362,77732 + enum Lisp_Fwd_Type type;2364,77762 + int offset;2365,77819 +union Lisp_Fwd2368,77841 + struct Lisp_Intfwd u_intfwd;2370,77860 + struct Lisp_Boolfwd u_boolfwd;2371,77893 + struct Lisp_Objfwd u_objfwd;2372,77928 + struct Lisp_Buffer_Objfwd u_buffer_objfwd;2373,77961 + struct Lisp_Kboard_Objfwd u_kboard_objfwd;2374,78008 +XFWDTYPE 2378,78087 +XBUFFER_OBJFWD 2384,78183 +struct Lisp_Float2391,78319 + double data;2395,78357 + struct Lisp_Float *chain;chain2396,78376 + } u;2397,78408 +XFLOAT_DATA 2401,78437 + IEEE_FLOATING_POINT2415,78946 +#define _UCHAR_T2423,79269 +typedef unsigned char UCHAR;2424,79286 +enum Lisp_Compiled2429,79369 + COMPILED_ARGLIST 2431,79392 + COMPILED_BYTECODE 2432,79418 + COMPILED_CONSTANTS 2433,79445 + COMPILED_STACK_DEPTH 2434,79473 + COMPILED_DOC_STRING 2435,79503 + COMPILED_INTERACTIVE 2436,79532 +enum char_bits2443,79834 + CHAR_ALT 2445,79853 + CHAR_SUPER 2446,79879 + CHAR_HYPER 2447,79907 + CHAR_SHIFT 2448,79935 + CHAR_CTL 2449,79963 + CHAR_META 2450,79989 + CHAR_MODIFIER_MASK 2452,80017 + CHARACTERBITS 2457,80212 +LISP_MACRO_DEFUN 2462,80270 +NATNUMP 2470,80412 +RANGED_INTEGERP 2476,80493 +#define TYPE_RANGED_INTEGERP(2481,80615 +LISP_MACRO_DEFUN 2486,80800 +VECTORP 2500,81273 +OVERLAYP 2505,81376 +SAVE_VALUEP 2510,81475 +FINALIZERP 2516,81581 +AUTOLOADP 2522,81685 +BUFFER_OBJFWDP 2528,81776 +PSEUDOVECTOR_TYPEP 2534,81874 +PSEUDOVECTORP 2542,82127 +WINDOW_CONFIGURATIONP 2558,82479 +PROCESSP 2564,82589 +WINDOWP 2570,82673 +TERMINALP 2576,82755 +SUBRP 2582,82841 +COMPILEDP 2588,82919 +BUFFERP 2594,83005 +CHAR_TABLE_P 2600,83087 +SUB_CHAR_TABLE_P 2606,83178 +BOOL_VECTOR_P 2612,83277 +FRAMEP 2618,83370 +IMAGEP 2625,83487 +ARRAYP 2632,83592 +CHECK_LIST 2638,83711 +LISP_MACRO_DEFUN_VOID 2643,83792 +CHECK_STRING_CAR 2653,84089 +CHECK_CONS 2658,84193 +CHECK_VECTOR 2663,84273 +CHECK_BOOL_VECTOR 2668,84359 +CHECK_VECTOR_OR_STRING 2674,84536 +CHECK_ARRAY 2683,84710 +CHECK_BUFFER 2688,84818 +CHECK_WINDOW 2693,84904 +CHECK_PROCESS 2699,85010 +CHECK_NATNUM 2705,85106 +#define CHECK_RANGED_INTEGER(2710,85183 +#define CHECK_TYPE_RANGED_INTEGER(2721,85566 +#define CHECK_NUMBER_COERCE_MARKER(2729,85836 +XFLOATINT 2738,86089 +CHECK_NUMBER_OR_FLOAT 2744,86160 +#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(2749,86259 +CHECK_NUMBER_CAR 2760,86669 +CHECK_NUMBER_CDR 2768,86791 +#define DEFUN(2803,88386 +#define DEFUN(2812,88854 +FUNCTIONP 2822,89209 +extern void defsubr 2829,89361 +enum maxargs2831,89404 + MANY 2833,89421 + UNEVALLED 2834,89436 +#define CALLMANY(2838,89539 +#define CALLN(2844,89892 +extern void defvar_lisp 2846,89962 +extern void defvar_lisp_nopro 2847,90039 +extern void defvar_bool 2848,90122 +extern void defvar_int 2849,90193 +extern void defvar_kboard 2850,90267 +#define DEFVAR_LISP(2869,91097 +#define DEFVAR_LISP_NOPRO(2874,91269 +#define DEFVAR_BOOL(2879,91451 +#define DEFVAR_INT(2884,91624 +#define DEFVAR_BUFFER_DEFAULTS(2890,91795 +#define DEFVAR_KBOARD(2896,91999 +typedef jmp_buf sys_jmp_buf;2906,92323 +# define sys_setjmp(2907,92352 +# define sys_longjmp(2908,92387 +typedef sigjmp_buf sys_jmp_buf;2910,92459 +# define sys_setjmp(2911,92491 +# define sys_longjmp(2912,92531 +typedef jmp_buf sys_jmp_buf;2916,92690 +# define sys_setjmp(2917,92719 +# define sys_longjmp(2918,92753 +enum specbind_tag 2943,93805 + SPECPDL_UNWIND,2944,93825 + SPECPDL_UNWIND_PTR,2945,93894 + SPECPDL_UNWIND_INT,2946,93945 + SPECPDL_UNWIND_VOID,2947,93993 + SPECPDL_BACKTRACE,2948,94047 + SPECPDL_LET,2949,94105 + SPECPDL_LET_LOCAL,2951,94235 + SPECPDL_LET_DEFAULT 2952,94292 +union specbinding2955,94364 + ENUM_BF 2957,94386 + ENUM_BF 2959,94443 + ENUM_BF 2964,94573 + ENUM_BF 2969,94696 + ENUM_BF 2974,94814 + ENUM_BF 2978,94919 + ENUM_BF 2983,95094 +enum handlertype 3021,96410 +enum handlertype { CATCHER,3021,96410 +enum handlertype { CATCHER, CONDITION_CASE 3021,96410 +struct handler3023,96457 + enum handlertype type;3025,96474 + Lisp_Object tag_or_ch;3026,96499 + Lisp_Object val;3027,96524 + struct handler *next;next3028,96543 + struct handler *nextfree;nextfree3029,96567 + Lisp_Object *bytecode_top;bytecode_top3036,96925 + int bytecode_dest;3037,96954 + struct gcpro *gcpro;gcpro3042,97191 + sys_jmp_buf jmp;3044,97221 + EMACS_INT lisp_eval_depth;3045,97240 + ptrdiff_t pdlcount;3046,97269 + int poll_suppress_count;3047,97291 + int interrupt_input_blocked;3048,97318 + struct byte_stack *byte_stack;byte_stack3049,97349 +#define PUSH_HANDLER(3053,97446 +extern Lisp_Object memory_signal_data;3075,98152 +extern char *stack_bottom;stack_bottom3079,98285 +extern void process_pending_signals 3097,99102 +extern bool volatile pending_signals;3098,99146 +extern void process_quit_flag 3100,99185 +#define QUIT 3101,99223 +#define QUITP 3112,99473 +extern Lisp_Object Vascii_downcase_table;3114,99534 +extern Lisp_Object Vascii_canon_table;3115,99576 +extern struct gcpro *gcprolist;gcprolist3130,100283 +struct gcpro3132,100316 + struct gcpro *next;next3134,100331 + volatile Lisp_Object *var;var3137,100400 + ptrdiff_t nvars;3140,100482 + const char *name;name3144,100567 + int lineno;3147,100623 + int idx;3150,100684 + int level;3153,100720 +#define GC_USE_GCPROS_AS_BEFORE 3171,101297 +#define GC_MAKE_GCPROS_NOOPS 3172,101332 +#define GC_MARK_STACK_CHECK_GCPROS 3173,101364 +#define GC_USE_GCPROS_CHECK_ZOMBIES 3174,101401 +#define GC_MARK_STACK 3177,101462 +#define BYTE_MARK_STACK 3181,101562 +#define GCPRO1(3190,101833 +#define GCPRO2(3191,101873 +#define GCPRO3(3192,101939 +#define GCPRO4(3194,102034 +#define GCPRO5(3196,102154 +#define GCPRO6(3198,102299 +#define GCPRO7(3201,102474 +#define UNGCPRO 3202,102553 +#define GCPRO1(3208,102653 +#define GCPRO2(3212,102775 +#define GCPRO3(3217,102967 +#define GCPRO4(3223,103229 +#define GCPRO5(3230,103560 +#define GCPRO6(3238,103961 +#define GCPRO7(3247,104431 +#define UNGCPRO 3257,104971 +extern int gcpro_level;3261,105040 +#define GCPRO1(3263,105065 +#define GCPRO2(3269,105299 +#define GCPRO3(3278,105717 +#define GCPRO4(3289,106274 +#define GCPRO5(3302,106972 +#define GCPRO6(3317,107812 +#define GCPRO7(3334,108793 +#define UNGCPRO 3353,109916 +#define RETURN_UNGCPRO(3363,110183 +void staticpro 3375,110456 +vcopy 3384,110657 +set_hash_key_slot 3393,110932 +set_hash_value_slot 3399,111071 +set_symbol_function 3408,111306 +set_symbol_plist 3414,111421 +set_symbol_next 3420,111524 +blv_found 3428,111697 +set_overlay_plist 3437,111880 +string_intervals 3445,112031 +set_string_intervals 3453,112153 +set_char_table_defalt 3462,112355 +set_char_table_purpose 3467,112467 +set_char_table_extras 3475,112636 +set_char_table_contents 3482,112845 +set_sub_char_table_contents 3489,113040 +extern Lisp_Object indirect_function 3495,113199 +extern Lisp_Object find_symbol_value 3496,113251 +enum Arith_Comparison 3497,113303 + ARITH_EQUAL,3498,113327 + ARITH_NOTEQUAL,3499,113342 + ARITH_LESS,3500,113360 + ARITH_GRTR,3501,113374 + ARITH_LESS_OR_EQUAL,3502,113388 + ARITH_GRTR_OR_EQUAL3503,113411 +extern Lisp_Object arithcompare 3505,113436 +#define INTEGER_TO_CONS(3511,113762 +#define CONS_TO_INTEGER(3529,114625 +extern intmax_t cons_to_signed 3533,114840 +extern uintmax_t cons_to_unsigned 3534,114906 +extern struct Lisp_Symbol *indirect_variable indirect_variable3536,114967 +extern _Noreturn void args_out_of_range 3537,115036 +extern _Noreturn void args_out_of_range_3 3538,115104 +extern Lisp_Object do_symval_forwarding 3540,115195 +extern void set_internal 3541,115255 +extern void syms_of_data 3542,115327 +extern void swap_in_global_binding 3543,115360 +extern void syms_of_cmds 3546,115444 +extern void keys_of_cmds 3547,115477 +extern Lisp_Object detect_coding_system 3550,115539 +extern void init_coding 3552,115692 +extern void init_coding_once 3553,115724 +extern void syms_of_coding 3554,115761 +extern ptrdiff_t chars_in_text 3557,115828 +extern ptrdiff_t multibyte_chars_in_text 3558,115895 +extern void syms_of_character 3559,115972 +extern void init_charset 3562,116040 +extern void init_charset_once 3563,116073 +extern void syms_of_charset 3564,116111 +extern void init_syntax_once 3569,116231 +extern void syms_of_syntax 3570,116268 +enum { NEXT_ALMOST_PRIME_LIMIT 3573,116329 +extern EMACS_INT next_almost_prime 3574,116368 +enum constype 3739,123820 +enum constype {CONSTYPE_HEAP,CONSTYPE_HEAP3739,123820 +enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}CONSTYPE_PURE3739,123820 +extern Lisp_Object listn 3740,123866 +list2i 3745,124010 +list3i 3751,124119 +list4i 3757,124258 +extern Lisp_Object make_uninit_bool_vector 3763,124410 +extern Lisp_Object bool_vector_fill 3764,124466 +extern _Noreturn void string_overflow 3765,124530 +extern Lisp_Object make_string 3766,124576 +extern Lisp_Object make_formatted_string 3767,124634 +extern Lisp_Object make_multibyte_string 3779,124988 +extern Lisp_Object make_event_array 3780,125067 +extern Lisp_Object make_uninit_string 3781,125131 +extern Lisp_Object make_uninit_multibyte_string 3782,125182 +extern Lisp_Object make_string_from_bytes 3783,125254 +extern Lisp_Object make_specified_string 3784,125334 +extern Lisp_Object make_pure_string 3786,125426 +extern Lisp_Object make_pure_c_string 3787,125506 +build_pure_c_string 3792,125662 +build_string 3801,125867 +extern Lisp_Object pure_cons 3806,125945 +extern void make_byte_code 3807,126002 +extern struct Lisp_Vector *allocate_vector allocate_vector3808,126053 +make_uninit_vector 3820,126438 +make_uninit_sub_char_table 3833,126657 +extern struct Lisp_Vector *allocate_pseudovector allocate_pseudovector3844,126966 +#define ALLOCATE_PSEUDOVECTOR(3850,127201 +#define ALLOCATE_ZEROED_PSEUDOVECTOR(3858,127537 +extern bool gc_in_progress;3863,127738 +extern bool abort_on_gc;3864,127766 +extern Lisp_Object make_float 3865,127791 +extern void display_malloc_warning 3866,127831 +extern ptrdiff_t inhibit_garbage_collection 3867,127874 +extern Lisp_Object make_save_int_int_int 3868,127926 +extern Lisp_Object make_save_obj_obj_obj_obj 3869,128002 +extern Lisp_Object make_save_ptr 3871,128112 +extern Lisp_Object make_save_ptr_int 3872,128155 +extern Lisp_Object make_save_ptr_ptr 3873,128213 +extern Lisp_Object make_save_funcptr_ptr_obj 3874,128268 +extern Lisp_Object make_save_memory 3876,128364 +extern void free_save_value 3877,128428 +extern Lisp_Object build_overlay 3878,128471 +extern void free_marker 3879,128545 +extern void free_cons 3880,128584 +extern void init_alloc_once 3881,128628 +extern void init_alloc 3882,128664 +extern void syms_of_alloc 3883,128695 +extern struct buffer * allocate_buffer 3884,128729 +extern int valid_lisp_object_p 3885,128776 +extern int relocatable_string_data_p 3886,128822 +extern void check_cons_list 3888,128901 +INLINE void 3890,128943 +extern void *r_alloc r_alloc3895,129064 +#define FLOAT_TO_STRING_BUFSIZE 3927,130527 +extern int openp 3957,131676 +extern Lisp_Object string_to_number 3959,131786 +extern void map_obarray 3960,131849 +extern void dir_warning 3962,131963 +extern void init_obarray 3963,132016 +extern void init_lread 3964,132049 +extern void syms_of_lread 3965,132080 +intern 3968,132134 +intern_c_string 3974,132222 +extern EMACS_INT lisp_eval_depth;3980,132335 +extern Lisp_Object Vautoload_queue;3981,132369 +extern Lisp_Object Vrun_hooks;3982,132405 +extern Lisp_Object Vsignaling_function;3983,132436 +extern Lisp_Object inhibit_lisp_code;3984,132476 +extern struct handler *handlerlist;handlerlist3985,132514 +extern void run_hook 3994,132756 +extern void run_hook_with_args_2 3995,132792 +extern Lisp_Object run_hook_with_args 3996,132866 +extern _Noreturn void xsignal 3999,133025 +extern _Noreturn void xsignal0 4000,133083 +extern _Noreturn void xsignal1 4001,133129 +extern _Noreturn void xsignal2 4002,133188 +extern _Noreturn void xsignal3 4003,133260 +extern _Noreturn void signal_error 4005,133349 +extern Lisp_Object eval_sub 4006,133413 +extern Lisp_Object apply1 4007,133461 +extern Lisp_Object call0 4008,133515 +extern Lisp_Object call1 4009,133555 +extern Lisp_Object call2 4010,133608 +extern Lisp_Object call3 4011,133674 +extern Lisp_Object call4 4012,133753 +extern Lisp_Object call5 4013,133845 +extern Lisp_Object call6 4014,133950 +extern Lisp_Object call7 4015,134068 +extern Lisp_Object internal_catch 4016,134199 +extern Lisp_Object internal_lisp_condition_case 4017,134292 +extern Lisp_Object internal_condition_case 4018,134381 +extern Lisp_Object internal_condition_case_1 4019,134494 +extern Lisp_Object internal_condition_case_2 4020,134629 +extern Lisp_Object internal_condition_case_n4021,134790 +extern void specbind 4024,134986 +extern void record_unwind_protect 4025,135035 +extern void record_unwind_protect_ptr 4026,135108 +extern void record_unwind_protect_int 4027,135175 +extern void record_unwind_protect_void 4028,135236 +extern void record_unwind_protect_nothing 4029,135294 +extern void clear_unwind_protect 4030,135344 +extern void set_unwind_protect 4031,135390 +extern void set_unwind_protect_ptr 4032,135471 +extern Lisp_Object unbind_to 4033,135546 +extern _Noreturn void error 4034,135601 +fast_string_match_ignore_case 4136,140089 +extern ptrdiff_t fast_c_string_match_ignore_case 4141,140239 +extern ptrdiff_t fast_looking_at 4143,140336 +extern ptrdiff_t find_newline 4145,140475 +extern ptrdiff_t scan_newline 4147,140604 +extern ptrdiff_t scan_newline_from_point 4149,140707 +extern ptrdiff_t find_newline_no_quit 4150,140787 +extern ptrdiff_t find_before_next_newline 4152,140884 +extern void syms_of_search 4154,140982 +extern void clear_regexp_cache 4155,141017 +extern Lisp_Object Vminibuffer_list;4159,141087 +extern Lisp_Object last_minibuf_string;4160,141124 +extern Lisp_Object get_minibuffer 4161,141164 +extern void init_minibuf_once 4162,141211 +extern void syms_of_minibuf 4163,141249 +extern void syms_of_callint 4167,141316 +extern void syms_of_casefiddle 4171,141386 +extern void keys_of_casefiddle 4172,141425 +extern void init_casetab_once 4176,141495 +extern void syms_of_casetab 4177,141533 +extern Lisp_Object echo_message_buffer;4181,141601 +extern struct kboard *echo_kboard;echo_kboard4182,141641 +extern void cancel_echoing 4183,141676 +extern Lisp_Object last_undo_boundary;4184,141711 +extern bool input_pending;4185,141750 +extern sigjmp_buf return_to_command_loop;4187,141813 +extern Lisp_Object menu_bar_items 4189,141862 +extern Lisp_Object tool_bar_items 4190,141911 +extern void discard_mouse_events 4191,141967 +void handle_input_available_signal 4193,142028 +extern Lisp_Object pending_funcalls;4195,142077 +extern bool detect_input_pending 4196,142114 +extern bool detect_input_pending_ignore_squeezables 4197,142155 +extern bool detect_input_pending_run_timers 4198,142215 +extern void safe_run_hooks 4199,142267 +extern void cmd_error_internal 4200,142309 +extern Lisp_Object command_loop_1 4201,142369 +extern Lisp_Object read_menu_command 4202,142411 +extern Lisp_Object recursive_edit_1 4203,142456 +extern void record_auto_save 4204,142500 +extern void force_auto_save_soon 4205,142537 +extern void init_keyboard 4206,142578 +extern void syms_of_keyboard 4207,142612 +extern void keys_of_keyboard 4208,142649 +extern ptrdiff_t current_column 4211,142715 +extern void invalidate_current_column 4212,142755 +extern bool indented_beyond_p 4213,142801 +extern void syms_of_indent 4214,142866 +extern void store_frame_param 4217,142929 +extern void store_in_alist 4218,143003 +extern Lisp_Object do_switch_frame 4219,143073 +extern Lisp_Object get_frame_param 4220,143146 +extern void frames_discard_buffer 4221,143212 +extern void syms_of_frame 4222,143261 +extern char **initial_argv;initial_argv4225,143323 +extern int initial_argc;4226,143351 +extern bool display_arg;4228,143426 +extern Lisp_Object decode_env_path 4230,143458 +extern Lisp_Object empty_unibyte_string,4231,143529 +extern Lisp_Object empty_unibyte_string, empty_multibyte_string;4231,143529 +extern _Noreturn void terminate_due_to_signal 4232,143594 +extern Lisp_Object Vlibrary_cache;4234,143669 +void fixup_locale 4237,143730 +void synchronize_system_messages_locale 4238,143756 +void synchronize_system_time_locale 4239,143804 +INLINE void fixup_locale 4241,143854 +INLINE void synchronize_system_messages_locale 4242,143889 +INLINE void synchronize_system_time_locale 4243,143946 +extern void shut_down_emacs 4245,144006 +extern bool noninteractive;4248,144132 +extern bool no_site_lisp;4251,144224 +extern int daemon_pipe[daemon_pipe4256,144392 +#define IS_DAEMON 4257,144419 +#define DAEMON_RUNNING 4258,144459 +extern void *w32_daemon_event;w32_daemon_event4260,144527 +#define IS_DAEMON 4261,144558 +#define DAEMON_RUNNING 4262,144603 +extern bool fatal_error_in_progress;4266,144724 +extern bool inhibit_window_system;4269,144830 +extern bool running_asynch_code;4271,144923 +extern void kill_buffer_processes 4274,144986 +extern int wait_reading_process_output 4275,145035 +# define WAIT_READING_MAX 4281,145422 +# define WAIT_READING_MAX 4283,145494 +extern void add_timer_wait_descriptor 4286,145558 +extern void add_keyboard_wait_descriptor 4288,145610 +extern void delete_keyboard_wait_descriptor 4289,145658 +extern void add_gpm_wait_descriptor 4291,145725 +extern void delete_gpm_wait_descriptor 4292,145768 +extern void init_process_emacs 4294,145821 +extern void syms_of_process 4295,145860 +extern void setup_process_coding_systems 4296,145896 +extern int child_setup 4302,146016 +extern void init_callproc_1 4303,146084 +extern void init_callproc 4304,146120 +extern void set_initial_environment 4305,146154 +extern void syms_of_callproc 4306,146198 +extern Lisp_Object read_doc_string 4309,146261 +extern Lisp_Object get_doc_string 4310,146311 +extern void syms_of_doc 4311,146372 +extern int read_bytecode_char 4312,146404 +extern void syms_of_bytecode 4315,146473 +extern struct byte_stack *byte_stack_list;byte_stack_list4316,146510 +extern void mark_byte_stack 4318,146573 +extern void unmark_byte_stack 4320,146616 +extern Lisp_Object exec_byte_code 4321,146654 +extern void init_macros 4325,146804 +extern void syms_of_macros 4326,146836 +extern void truncate_undo_list 4329,146898 +extern void record_insert 4330,146948 +extern void record_delete 4331,146998 +extern void record_first_change 4332,147056 +extern void record_change 4333,147096 +extern void record_property_change 4334,147146 +extern void syms_of_undo 4337,147288 +extern void report_interval_modification 4340,147352 +extern void syms_of_menu 4343,147448 +extern void syms_of_xmenu 4346,147509 +extern char *get_current_dir_name get_current_dir_name4356,147711 +extern void stuff_char 4358,147760 +extern void init_foreground_group 4359,147793 +extern void sys_subshell 4360,147835 +extern void sys_suspend 4361,147868 +extern void discard_tty_input 4362,147900 +extern void init_sys_modes 4363,147938 +extern void reset_sys_modes 4364,147994 +extern void init_all_sys_modes 4365,148051 +extern void reset_all_sys_modes 4366,148090 +extern void child_setup_tty 4367,148130 +extern void setup_pty 4368,148165 +extern int set_window_size 4369,148194 +extern EMACS_INT get_random 4370,148238 +extern void seed_random 4371,148274 +extern void init_random 4372,148319 +extern void emacs_backtrace 4373,148351 +extern _Noreturn void emacs_abort 4374,148386 +extern void xputenv 4527,152700 +extern char *egetenv_internal egetenv_internal4529,152737 +egetenv 4532,152809 +extern void init_system_name 4539,153012 +#define eabs(4545,153305 +#define make_fixnum_or_float(4550,153438 +enum MAX_ALLOCA 4556,153689 +enum MAX_ALLOCA { MAX_ALLOCA 4556,153689 +extern void *record_xmalloc record_xmalloc4558,153734 +#define USE_SAFE_ALLOCA 4560,153800 +#define AVAIL_ALLOCA(4564,153933 +#define SAFE_ALLOCA(4568,154044 +#define SAFE_NALLOCA(4576,154385 +#define SAFE_ALLOCA_STRING(4590,154861 +#define SAFE_FREE(4598,155113 +#define SAFE_ALLOCA_LISP(4625,155691 +# define USE_STACK_LISP_OBJECTS 4652,156813 +# undef USE_STACK_LISP_OBJECTS4658,156979 +# define USE_STACK_LISP_OBJECTS 4659,157010 +enum { defined_GC_CHECK_STRING_BYTES 4663,157085 +enum { defined_GC_CHECK_STRING_BYTES 4665,157138 +union Aligned_Cons4670,157272 + struct Lisp_Cons s;4672,157293 + double d;4673,157315 + double d; intmax_t i;4673,157315 + double d; intmax_t i; void *p;p4673,157315 +union Aligned_String4676,157352 + struct Lisp_String s;4678,157375 + double d;4679,157399 + double d; intmax_t i;4679,157399 + double d; intmax_t i; void *p;p4679,157399 + USE_STACK_CONS 4689,157707 + USE_STACK_STRING 4691,157813 +#define STACK_CONS(4699,158150 +#define AUTO_CONS_EXPR(4701,158247 +#define AUTO_CONS(4709,158610 +#define AUTO_LIST1(4710,158681 +#define AUTO_LIST2(4712,158789 +#define AUTO_LIST3(4716,158944 +#define AUTO_LIST4(4720,159119 +extern const char *verify_ascii verify_ascii4730,159456 +# define verify_ascii(4732,159510 +#define AUTO_STRING(4740,159818 +#define FOR_EACH_TAIL(4752,160282 +#define FOR_EACH_ALIST_VALUE(4766,160773 +maybe_gc 4774,161060 +functionp 4784,161299 c-src/machsyscalls.c,23 #define SYSCALL(6,113 @@ -3286,10 +3286,10 @@ el-src/emacs/lisp/progmodes/etags.el,5188 (defvar etags-xref-find-definitions-tag-order 2076,82586 (defun etags-xref-find 2082,82876 (defun etags--xref-find-definitions 2096,83405 -(defclass xref-etags-location 2129,85120 -(defun xref-make-etags-location 2135,85343 -(cl-defmethod xref-location-marker 2139,85498 -(cl-defmethod xref-location-line 2146,85742 +(defclass xref-etags-location 2129,85119 +(defun xref-make-etags-location 2135,85342 +(cl-defmethod xref-location-marker 2139,85497 +(cl-defmethod xref-location-line 2146,85741 erl-src/gs_dialog.erl,98 -define(VERSION2,32 @@ -4056,25 +4056,25 @@ class Configure(760,24879 def save(797,26022 def nosave(807,26310 -ruby-src/test.rb,594 +ruby-src/test.rb,604 module ModuleExample1,0 class ClassExample2,21 def instance_method3,44 - def ClassExample.class_method6,116 - def instance_method_exclamation!9,221 - def instance_method_question?12,319 - def instance_method_equals=class_method_equals=15,411 - def `(18,499 - def +(21,589 - def [](24,637 - def []=([]=27,687 - def <<(30,749 - def ==(==33,799 - def <=(<=36,869 - def <=>(<=>39,940 - def ===(===42,987 - def module_instance_method46,1048 - def ModuleExample.module_class_method49,1110 + def ClassExample.class_method6,121 + def instance_method_exclamation!9,206 + def instance_method_question?12,310 + def instance_method_equals=instance_method_equals=15,408 + def `(18,502 + def +(21,592 + def [](24,640 + def []=([]=27,690 + def <<(30,752 + def ==(==33,802 + def <=(<=36,872 + def <=>(<=>39,943 + def ===(===42,990 + def module_instance_method46,1051 + def ModuleExample.module_class_method49,1131 ruby-src/test1.ruby,37 class A1,0 @@ -4097,722 +4097,722 @@ tex-src/gzip.texi,303 @node Problems,460,16767 @node Concept Index,Concept Index473,17287 -tex-src/texinfo.tex,30626 -\def\texinfoversion{\texinfoversion25,1019 -\def\tie{\tie48,1510 -\def\gloggingall{\gloggingall71,2260 -\def\loggingall{\loggingall72,2329 -\def\onepageout#1{\onepageout98,3266 -\def\croppageout#1{\croppageout114,4016 -\def\cropmarks{\cropmarks141,5076 -\def\pagebody#1{\pagebody143,5123 -\def\ewtop{\ewtop156,5578 -\def\nstop{\nstop157,5642 -\def\ewbot{\ewbot159,5725 -\def\nsbot{\nsbot160,5789 -\def\parsearg #1{\parsearg169,6088 -\def\parseargx{\parseargx171,6166 -\def\parseargline{\parseargline181,6406 -\def\flushcr{\flushcr185,6527 -\newif\ifENV \ENVfalse \def\inENV{\inENV189,6726 -\def\ENVcheck{\ENVcheck190,6790 -\outer\def\begin{\begin197,7037 -\def\beginxxx #1{\beginxxx199,7075 -\def\end{\end207,7330 -\def\endxxx #1{\endxxx209,7358 -\def\errorE#1{\errorE215,7547 -\def\singlespace{\singlespace221,7741 -\def\@{\@231,7964 -\def\`{\`235,8064 -\def\'{\'236,8076 -\def\mylbrace {\mylbrace240,8124 -\def\myrbrace {\myrbrace241,8157 -\def\:{\:246,8271 -\def\*{\*249,8325 -\def\.{\.252,8401 -\def\w#1{\w257,8632 -\def\group{\group267,9115 - \def\Egroup{\Egroup272,9279 -\def\need{\need288,9721 -\def\needx#1{\needx299,9998 -\def\dots{\dots338,11384 -\def\page{\page342,11448 -\def\exdent{\exdent352,11775 -\def\exdentyyy #1{\exdentyyy353,11808 -\def\nofillexdent{\nofillexdent356,11952 -\def\nofillexdentyyy #1{\nofillexdentyyy357,11997 -\def\include{\include364,12181 -\def\includezzz #1{\includezzz365,12216 -\def\thisfile{\thisfile368,12267 -\def\center{\center372,12330 -\def\centerzzz #1{\centerzzz373,12363 -\def\sp{\sp379,12505 -\def\spxxx #1{\spxxx380,12530 -\def\comment{\comment386,12704 -\def\commentxxx #1{\commentxxx389,12801 -\def\ignoresections{\ignoresections395,12970 -\let\chapter=\relax=\relax396,12992 -\let\section=\relax=\relax405,13237 -\let\subsection=\relax=\relax408,13298 -\let\subsubsection=\relax=\relax409,13321 -\let\appendix=\relax=\relax410,13347 -\let\appendixsec=\relaxsec=\relax411,13368 -\let\appendixsection=\relaxsection=\relax412,13392 -\let\appendixsubsec=\relaxsubsec=\relax413,13420 -\let\appendixsubsection=\relaxsubsection=\relax414,13447 -\let\appendixsubsubsec=\relaxsubsubsec=\relax415,13478 -\let\appendixsubsubsection=\relaxsubsubsection=\relax416,13508 -\def\ignore{\ignore422,13610 -\long\def\ignorexxx #1\end ignore{\ignorexxx426,13750 -\def\direntry{\direntry428,13809 -\long\def\direntryxxx #1\end direntry{\direntryxxx429,13848 -\def\ifset{\ifset433,13958 -\def\ifsetxxx #1{\ifsetxxx435,14016 -\def\Eifset{\Eifset439,14143 -\def\ifsetfail{\ifsetfail440,14157 -\long\def\ifsetfailxxx #1\end ifset{\ifsetfailxxx441,14213 -\def\ifclear{\ifclear443,14274 -\def\ifclearxxx #1{\ifclearxxx445,14336 -\def\Eifclear{\Eifclear449,14467 -\def\ifclearfail{\ifclearfail450,14483 -\long\def\ifclearfailxxx #1\end ifclear{\ifclearfailxxx451,14543 -\def\set{\set455,14694 -\def\setxxx #1{\setxxx456,14721 -\def\clear{\clear459,14783 -\def\clearxxx #1{\clearxxx460,14814 -\def\iftex{\iftex465,14931 -\def\Eiftex{\Eiftex466,14944 -\def\ifinfo{\ifinfo467,14958 -\long\def\ifinfoxxx #1\end ifinfo{\ifinfoxxx468,15008 -\long\def\menu #1\end menu{\menu470,15067 -\def\asis#1{\asis471,15096 -\def\math#1{\math484,15639 -\def\node{\node486,15683 -\def\nodezzz#1{\nodezzz487,15721 -\def\nodexxx[#1,#2]{\nodexxx[488,15752 -\def\donoderef{\donoderef491,15814 -\def\unnumbnoderef{\unnumbnoderef495,15935 -\def\appendixnoderef{\appendixnoderef499,16066 -\expandafter\expandafter\expandafter\appendixsetref{setref500,16112 -\let\refill=\relaxill=\relax503,16201 -\def\setfilename{\setfilename508,16415 -\outer\def\bye{\bye517,16661 -\def\inforef #1{\inforef519,16717 -\def\inforefzzz #1,#2,#3,#4**{\inforefzzz520,16755 -\def\losespace #1{\losespace522,16852 -\def\sf{\sf531,17056 -\font\defbf=cmbx10 scaled \magstep1 %was 1314bf=cmbx10557,17851 -\font\deftt=cmtt10 scaled \magstep1tt=cmtt10558,17897 -\def\df{\df559,17933 -\def\resetmathfonts{\resetmathfonts634,20527 -\def\textfonts{\textfonts647,21116 -\def\chapfonts{\chapfonts652,21331 -\def\secfonts{\secfonts657,21547 -\def\subsecfonts{\subsecfonts662,21752 -\def\indexfonts{\indexfonts667,21969 -\def\smartitalicx{\smartitalicx690,22701 -\def\smartitalic#1{\smartitalic691,22777 -\let\cite=\smartitalic=\smartitalic697,22922 -\def\b#1{\b699,22946 -\def\t#1{\t702,22981 -\def\samp #1{\samp705,23133 -\def\key #1{\key706,23166 -\def\ctrl #1{\ctrl707,23227 -\def\tclose#1{\tclose715,23429 -\def\ {\719,23595 -\def\xkey{\xkey727,23864 -\def\kbdfoo#1#2#3\par{\kbdfoo728,23880 -\def\dmn#1{\dmn737,24181 -\def\kbd#1{\kbd739,24208 -\def\l#1{\l741,24265 -\def\r#1{\r743,24294 -\def\sc#1{\sc745,24362 -\def\ii#1{\ii746,24405 -\def\titlefont#1{\titlefont754,24638 -\def\titlepage{\titlepage760,24741 - \def\subtitlefont{\subtitlefont765,24968 - \def\authorfont{\authorfont767,25052 - \def\title{\title773,25262 - \def\titlezzz##1{\titlezzz774,25297 - \def\subtitle{\subtitle782,25612 - \def\subtitlezzz##1{\subtitlezzz783,25653 - \def\author{\author786,25771 - \def\authorzzz##1{\authorzzz787,25808 - \def\page{\page793,26099 -\def\Etitlepage{\Etitlepage803,26268 -\def\finishtitlepage{\finishtitlepage816,26656 -\def\evenheading{\evenheading845,27664 -\def\oddheading{\oddheading846,27707 -\def\everyheading{\everyheading847,27748 -\def\evenfooting{\evenfooting849,27794 -\def\oddfooting{\oddfooting850,27837 -\def\everyfooting{\everyfooting851,27878 -\def\headings #1 {\headings892,29570 -\def\HEADINGSoff{\HEADINGSoff894,29619 -\def\HEADINGSdouble{\HEADINGSdouble903,30046 -\def\HEADINGSsingle{\HEADINGSsingle913,30366 -\def\HEADINGSon{\HEADINGSon921,30587 -\def\HEADINGSafter{\HEADINGSafter923,30621 -\def\HEADINGSdoublex{\HEADINGSdoublex925,30716 -\def\HEADINGSsingleafter{\HEADINGSsingleafter932,30904 -\def\HEADINGSsinglex{\HEADINGSsinglex933,30965 -\def\today{\today942,31240 -\def\thistitle{\thistitle957,31785 -\def\settitle{\settitle958,31810 -\def\settitlezzz #1{\settitlezzz959,31847 -\def\internalBitem{\internalBitem991,32777 -\def\internalBitemx{\internalBitemx992,32827 -\def\internalBxitem "#1"{\internalBxitem994,32872 -\def\internalBxitemx "#1"{\internalBxitemx995,32952 -\def\internalBkitem{\internalBkitem997,33027 -\def\internalBkitemx{\internalBkitemx998,33079 -\def\kitemzzz #1{\kitemzzz1000,33126 -\def\xitemzzz #1{\xitemzzz1003,33228 -\def\itemzzz #1{\itemzzz1006,33331 -\def\item{\item1036,34402 -\def\itemx{\itemx1037,34453 -\def\kitem{\kitem1038,34506 -\def\kitemx{\kitemx1039,34559 -\def\xitem{\xitem1040,34614 -\def\xitemx{\xitemx1041,34667 -\def\description{\description1044,34777 -\def\table{\table1046,34827 -\def\ftable{\ftable1051,34971 -\def\Eftable{\Eftable1055,35117 -\def\vtable{\vtable1058,35186 -\def\Evtable{\Evtable1062,35332 -\def\dontindex #1{\dontindex1065,35401 -\def\fnitemindex #1{\fnitemindex1066,35421 -\def\vritemindex #1{\vritemindex1067,35466 -\def\tablez #1#2#3#4#5#6{\tablez1073,35615 -\def\Edescription{\Edescription1076,35673 -\def\itemfont{\itemfont1081,35875 -\def\Etable{\Etable1089,36101 -\def\itemize{\itemize1102,36425 -\def\itemizezzz #1{\itemizezzz1104,36461 -\def\itemizey #1#2{\itemizey1109,36556 -\def#2{1118,36802 -\def\itemcontents{\itemcontents1119,36843 -\def\bullet{\bullet1122,36891 -\def\minus{\minus1123,36918 -\def\frenchspacing{\frenchspacing1127,37026 -\def\splitoff#1#2\endmark{\splitoff1133,37251 -\def\enumerate{\enumerate1139,37481 -\def\enumeratezzz #1{\enumeratezzz1140,37520 -\def\enumeratey #1 #2\endenumeratey{\enumeratey1141,37573 - \def\thearg{\thearg1145,37720 - \ifx\thearg\empty \def\thearg{\thearg1146,37739 -\def\numericenumerate{\numericenumerate1183,39073 -\def\lowercaseenumerate{\lowercaseenumerate1189,39203 -\def\uppercaseenumerate{\uppercaseenumerate1202,39550 -\def\startenumeration#1{\startenumeration1218,40040 -\def\alphaenumerate{\alphaenumerate1226,40222 -\def\capsenumerate{\capsenumerate1227,40257 -\def\Ealphaenumerate{\Ealphaenumerate1228,40291 -\def\Ecapsenumerate{\Ecapsenumerate1229,40325 -\def\itemizeitem{\itemizeitem1233,40405 -\def\newindex #1{\newindex1258,41262 -\def\defindex{\defindex1267,41551 -\def\newcodeindex #1{\newcodeindex1271,41659 -\def\defcodeindex{\defcodeindex1278,41919 -\def\synindex #1 #2 {\synindex1282,42099 -\def\syncodeindex #1 #2 {\syncodeindex1291,42439 -\def\doindex#1{\doindex1308,43118 -\def\singleindexer #1{\singleindexer1309,43177 -\def\docodeindex#1{\docodeindex1312,43289 -\def\singlecodeindexer #1{\singlecodeindexer1313,43356 -\def\indexdummies{\indexdummies1315,43414 -\def\_{\_1316,43434 -\def\w{\w1317,43462 -\def\bf{\bf1318,43489 -\def\rm{\rm1319,43518 -\def\sl{\sl1320,43547 -\def\sf{\sf1321,43576 -\def\tt{\tt1322,43604 -\def\gtr{\gtr1323,43632 -\def\less{\less1324,43662 -\def\hat{\hat1325,43694 -\def\char{\char1326,43724 -\def\TeX{\TeX1327,43756 -\def\dots{\dots1328,43786 -\def\copyright{\copyright1329,43819 -\def\tclose##1{\tclose1330,43862 -\def\code##1{\code1331,43907 -\def\samp##1{\samp1332,43948 -\def\t##1{\t1333,43989 -\def\r##1{\r1334,44024 -\def\i##1{\i1335,44059 -\def\b##1{\b1336,44094 -\def\cite##1{\cite1337,44129 -\def\key##1{\key1338,44170 -\def\file##1{\file1339,44209 -\def\var##1{\var1340,44250 -\def\kbd##1{\kbd1341,44289 -\def\indexdummyfont#1{\indexdummyfont1346,44445 -\def\indexdummytex{\indexdummytex1347,44471 -\def\indexdummydots{\indexdummydots1348,44495 -\def\indexnofonts{\indexnofonts1350,44521 -\let\w=\indexdummyfontdummyfont1351,44541 -\let\t=\indexdummyfontdummyfont1352,44564 -\let\r=\indexdummyfontdummyfont1353,44587 -\let\i=\indexdummyfontdummyfont1354,44610 -\let\b=\indexdummyfontdummyfont1355,44633 -\let\emph=\indexdummyfontdummyfont1356,44656 -\let\strong=\indexdummyfontdummyfont1357,44682 -\let\cite=\indexdummyfont=\indexdummyfont1358,44710 -\let\sc=\indexdummyfontdummyfont1359,44736 -\let\tclose=\indexdummyfontdummyfont1363,44908 -\let\code=\indexdummyfontdummyfont1364,44936 -\let\file=\indexdummyfontdummyfont1365,44962 -\let\samp=\indexdummyfontdummyfont1366,44988 -\let\kbd=\indexdummyfontdummyfont1367,45014 -\let\key=\indexdummyfontdummyfont1368,45039 -\let\var=\indexdummyfontdummyfont1369,45064 -\let\TeX=\indexdummytexdummytex1370,45089 -\let\dots=\indexdummydotsdummydots1371,45113 -\let\indexbackslash=0 %overridden during \printindex.backslash=01381,45365 -\def\doind #1#2{\doind1383,45421 -{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1385,45464 -\def\rawbackslashxx{\rawbackslashxx1388,45604 -{\indexnofontsnofonts1393,45866 -\def\dosubind #1#2#3{\dosubind1404,46177 -{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1406,46225 -\def\rawbackslashxx{\rawbackslashxx1409,46329 -{\indexnofontsnofonts1413,46483 -\def\findex {\findex1442,47414 -\def\kindex {\kindex1443,47437 -\def\cindex {\cindex1444,47460 -\def\vindex {\vindex1445,47483 -\def\tindex {\tindex1446,47506 -\def\pindex {\pindex1447,47529 -\def\cindexsub {\cindexsub1449,47553 -\def\printindex{\printindex1461,47880 -\def\doprintindex#1{\doprintindex1463,47921 - \def\indexbackslash{\indexbackslash1480,48406 - \indexfonts\rm \tolerance=9500 \advance\baselineskip -1ptfonts\rm1481,48445 -\def\initial #1{\initial1516,49517 -\def\entry #1#2{\entry1522,49724 - \null\nobreak\indexdotfill % Have leaders before the page number.dotfill1539,50371 -\def\indexdotfill{\indexdotfill1548,50699 -\def\primary #1{\primary1551,50805 -\def\secondary #1#2{\secondary1555,50887 -\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\pardotfill1558,50969 -\newbox\partialpageialpage1565,51142 -\def\begindoublecolumns{\begindoublecolumns1571,51300 - \output={\global\setbox\partialpage=ialpage=1572,51336 -\def\enddoublecolumns{\enddoublecolumns1576,51524 -\def\doublecolumnout{\doublecolumnout1579,51609 - \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1580,51678 -\def\pagesofar{\pagesofar1583,51856 -\def\balancecolumns{\balancecolumns1587,52093 - \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpageialpage1593,52264 - \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1599,52525 -\newcount \appendixno \appendixno = `\@no1626,53430 -\def\appendixletter{\appendixletter1627,53471 -\def\opencontents{\opencontents1631,53574 -\def\thischapter{\thischapter1636,53755 -\def\seccheck#1{\seccheck1637,53793 -\def\chapternofonts{\chapternofonts1642,53897 -\def\result{\result1645,53972 -\def\equiv{\equiv1646,54007 -\def\expansion{\expansion1647,54040 -\def\print{\print1648,54081 -\def\TeX{\TeX1649,54114 -\def\dots{\dots1650,54143 -\def\copyright{\copyright1651,54174 -\def\tt{\tt1652,54215 -\def\bf{\bf1653,54242 -\def\w{\w1654,54270 -\def\less{\less1655,54295 -\def\gtr{\gtr1656,54326 -\def\hat{\hat1657,54355 -\def\char{\char1658,54384 -\def\tclose##1{\tclose1659,54415 -\def\code##1{\code1660,54459 -\def\samp##1{\samp1661,54499 -\def\r##1{\r1662,54539 -\def\b##1{\b1663,54573 -\def\key##1{\key1664,54607 -\def\file##1{\file1665,54645 -\def\kbd##1{\kbd1666,54685 -\def\i##1{\i1668,54793 -\def\cite##1{\cite1669,54827 -\def\var##1{\var1670,54867 -\def\emph##1{\emph1671,54905 -\def\dfn##1{\dfn1672,54945 -\def\thischaptername{\thischaptername1675,54986 -\outer\def\chapter{\chapter1676,55025 -\def\chapterzzz #1{\chapterzzz1677,55066 -{\chapternofonts%nofonts%1686,55462 -\global\let\section = \numberedsec=1691,55615 -\global\let\subsection = \numberedsubsec=1692,55650 -\global\let\subsubsection = \numberedsubsubsec=1693,55691 -\outer\def\appendix{\appendix1696,55742 -\def\appendixzzz #1{\appendixzzz1697,55785 -\global\advance \appendixno by 1 \message{no1699,55862 -\chapmacro {#1}{Appendix \appendixletter}letter1700,55931 -\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}letter:1703,56024 -{\chapternofonts%nofonts%1704,56096 - {#1}{Appendix \appendixletter}letter1706,56152 -\appendixnoderef %noderef1709,56252 -\global\let\section = \appendixsec=1710,56271 -\global\let\subsection = \appendixsubsec=1711,56306 -\global\let\subsubsection = \appendixsubsubsec=1712,56347 -\outer\def\top{\top1715,56398 -\outer\def\unnumbered{\unnumbered1716,56438 -\def\unnumberedzzz #1{\unnumberedzzz1717,56485 -{\chapternofonts%nofonts%1721,56648 -\global\let\section = \unnumberedsec=1726,56798 -\global\let\subsection = \unnumberedsubsec=1727,56835 -\global\let\subsubsection = \unnumberedsubsubsec=1728,56878 -\outer\def\numberedsec{\numberedsec1731,56931 -\def\seczzz #1{\seczzz1732,56972 -{\chapternofonts%nofonts%1735,57128 -\outer\def\appendixsection{\appendixsection1744,57314 -\outer\def\appendixsec{\appendixsec1745,57371 -\def\appendixsectionzzz #1{\appendixsectionzzz1746,57424 -\gdef\thissection{#1}\secheading {#1}{\appendixletter}letter1748,57536 -{\chapternofonts%nofonts%1749,57604 -{#1}{\appendixletter}letter1751,57660 -\appendixnoderef %noderef1754,57760 -\outer\def\unnumberedsec{\unnumberedsec1758,57800 -\def\unnumberedseczzz #1{\unnumberedseczzz1759,57853 -{\chapternofonts%nofonts%1761,57948 -\outer\def\numberedsubsec{\numberedsubsec1769,58116 -\def\numberedsubseczzz #1{\numberedsubseczzz1770,58171 -{\chapternofonts%nofonts%1773,58350 -\outer\def\appendixsubsec{\appendixsubsec1782,58554 -\def\appendixsubseczzz #1{\appendixsubseczzz1783,58609 -\subsecheading {#1}{\appendixletter}letter1785,58731 -{\chapternofonts%nofonts%1786,58796 -{#1}{\appendixletter}letter1788,58855 -\appendixnoderef %noderef1791,58970 -\outer\def\unnumberedsubsec{\unnumberedsubsec1795,59010 -\def\unnumberedsubseczzz #1{\unnumberedsubseczzz1796,59069 -{\chapternofonts%nofonts%1798,59170 -\outer\def\numberedsubsubsec{\numberedsubsubsec1806,59341 -\def\numberedsubsubseczzz #1{\numberedsubsubseczzz1807,59402 -{\chapternofonts%nofonts%1811,59599 -\outer\def\appendixsubsubsec{\appendixsubsubsec1822,59832 -\def\appendixsubsubseczzz #1{\appendixsubsubseczzz1823,59893 - {\appendixletter}letter1826,60032 -{\chapternofonts%nofonts%1827,60098 - {\appendixletter}letter1829,60163 -\appendixnoderef %noderef1833,60297 -\outer\def\unnumberedsubsubsec{\unnumberedsubsubsec1837,60337 -\def\unnumberedsubsubseczzz #1{\unnumberedsubsubseczzz1838,60402 -{\chapternofonts%nofonts%1840,60509 -\def\infotop{\infotop1850,60838 -\def\infounnumbered{\infounnumbered1851,60876 -\def\infounnumberedsec{\infounnumberedsec1852,60921 -\def\infounnumberedsubsec{\infounnumberedsubsec1853,60972 -\def\infounnumberedsubsubsec{\infounnumberedsubsubsec1854,61029 -\def\infoappendix{\infoappendix1856,61093 -\def\infoappendixsec{\infoappendixsec1857,61134 -\def\infoappendixsubsec{\infoappendixsubsec1858,61181 -\def\infoappendixsubsubsec{\infoappendixsubsubsec1859,61234 -\def\infochapter{\infochapter1861,61294 -\def\infosection{\infosection1862,61333 -\def\infosubsection{\infosubsection1863,61372 -\def\infosubsubsection{\infosubsubsection1864,61417 -\global\let\section = \numberedsec=1869,61654 -\global\let\subsection = \numberedsubsec=1870,61689 -\global\let\subsubsection = \numberedsubsubsec=1871,61730 -\def\majorheading{\majorheading1885,62237 -\def\majorheadingzzz #1{\majorheadingzzz1886,62282 -\def\chapheading{\chapheading1892,62515 -\def\chapheadingzzz #1{\chapheadingzzz1893,62558 -\def\heading{\heading1898,62753 -\def\subheading{\subheading1900,62790 -\def\subsubheading{\subsubheading1902,62833 -\def\dobreak#1#2{\dobreak1909,63110 -\def\setchapterstyle #1 {\setchapterstyle1911,63188 -\def\chapbreak{\chapbreak1918,63443 -\def\chappager{\chappager1919,63493 -\def\chapoddpage{\chapoddpage1920,63531 -\def\setchapternewpage #1 {\setchapternewpage1922,63610 -\def\CHAPPAGoff{\CHAPPAGoff1924,63667 -\def\CHAPPAGon{\CHAPPAGon1928,63761 -\global\def\HEADINGSon{\HEADINGSon1931,63852 -\def\CHAPPAGodd{\CHAPPAGodd1933,63894 -\global\def\HEADINGSon{\HEADINGSon1936,63990 -\def\CHAPFplain{\CHAPFplain1940,64044 -\def\chfplain #1#2{\chfplain1944,64136 -\def\unnchfplain #1{\unnchfplain1955,64359 -\def\unnchfopen #1{\unnchfopen1963,64588 -\def\chfopen #1#2{\chfopen1969,64796 -\def\CHAPFopen{\CHAPFopen1974,64940 -\def\subsecheadingbreak{\subsecheadingbreak1981,65158 -\def\secheadingbreak{\secheadingbreak1984,65287 -\def\secheading #1#2#3{\secheading1992,65569 -\def\plainsecheading #1{\plainsecheading1993,65625 -\def\secheadingi #1{\secheadingi1994,65668 -\def\subsecheading #1#2#3#4{\subsecheading2005,66036 -\def\subsecheadingi #1{\subsecheadingi2006,66103 -\def\subsubsecfonts{\subsubsecfonts2013,66400 -\def\subsubsecheading #1#2#3#4#5{\subsubsecheading2016,66523 -\def\subsubsecheadingi #1{\subsubsecheadingi2017,66601 -\def\startcontents#1{\startcontents2031,67073 - \unnumbchapmacro{#1}\def\thischapter{\thischapter2039,67346 -\outer\def\contents{\contents2048,67705 -\outer\def\summarycontents{\summarycontents2056,67849 - \def\secentry ##1##2##3##4{\secentry2066,68220 - \def\unnumbsecentry ##1##2{\unnumbsecentry2067,68255 - \def\subsecentry ##1##2##3##4##5{\subsecentry2068,68290 - \def\unnumbsubsecentry ##1##2{\unnumbsubsecentry2069,68331 - \def\subsubsecentry ##1##2##3##4##5##6{\subsubsecentry2070,68369 - \def\unnumbsubsubsecentry ##1##2{\unnumbsubsubsecentry2071,68416 -\def\chapentry#1#2#3{\chapentry2084,68850 -\def\shortchapentry#1#2#3{\shortchapentry2087,68967 - {#2\labelspace #1}space2090,69077 -\def\unnumbchapentry#1#2{\unnumbchapentry2093,69131 -\def\shortunnumberedentry#1#2{\shortunnumberedentry2094,69178 -\def\secentry#1#2#3#4{\secentry2101,69342 -\def\unnumbsecentry#1#2{\unnumbsecentry2102,69401 -\def\subsecentry#1#2#3#4#5{\subsecentry2105,69462 -\def\unnumbsubsecentry#1#2{\unnumbsubsecentry2106,69532 -\def\subsubsecentry#1#2#3#4#5#6{\subsubsecentry2109,69606 - \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}space2110,69640 -\def\unnumbsubsubsecentry#1#2{\unnumbsubsubsecentry2111,69691 -\def\dochapentry#1#2{\dochapentry2122,70065 -\def\dosecentry#1#2{\dosecentry2137,70670 -\def\dosubsecentry#1#2{\dosubsecentry2144,70848 -\def\dosubsubsecentry#1#2{\dosubsubsecentry2151,71033 -\def\labelspace{\labelspace2159,71284 -\def\dopageno#1{\dopageno2161,71319 -\def\doshortpageno#1{\doshortpageno2162,71345 -\def\chapentryfonts{\chapentryfonts2164,71377 -\def\secentryfonts{\secentryfonts2165,71412 -\def\point{\point2191,72371 -\def\result{\result2193,72392 -\def\expansion{\expansion2194,72465 -\def\print{\print2195,72536 -\def\equiv{\equiv2197,72603 -\def\error{\error2217,73376 -\def\tex{\tex2223,73605 -\def\@{\@2241,73988 -\gdef\sepspaces{\def {\ }}}\2264,74720 -\def\aboveenvbreak{\aboveenvbreak2267,74802 -\def\afterenvbreak{\afterenvbreak2271,74968 -\def\ctl{\ctl2285,75479 -\def\ctr{\ctr2286,75551 -\def\cbl{\cbl2287,75590 -\def\cbr{\cbr2288,75630 -\def\carttop{\carttop2289,75669 -\def\cartbot{\cartbot2292,75777 -\long\def\cartouche{\cartouche2298,75917 -\def\Ecartouche{\Ecartouche2325,76705 -\def\lisp{\lisp2337,76840 -\def\Elisp{\Elisp2347,77187 -\def\next##1{\next2359,77513 -\def\Eexample{\Eexample2363,77555 -\def\Esmallexample{\Esmallexample2366,77602 -\def\smalllispx{\smalllispx2372,77780 -\def\Esmalllisp{\Esmalllisp2382,78134 -\obeyspaces \obeylines \ninett \indexfonts \rawbackslashfonts2395,78490 -\def\next##1{\next2396,78547 -\def\display{\display2400,78627 -\def\Edisplay{\Edisplay2409,78946 -\def\next##1{\next2421,79257 -\def\format{\format2425,79360 -\def\Eformat{\Eformat2433,79656 -\def\next##1{\next2436,79745 -\def\flushleft{\flushleft2440,79797 -\def\Eflushleft{\Eflushleft2450,80168 -\def\next##1{\next2453,80261 -\def\flushright{\flushright2455,80283 -\def\Eflushright{\Eflushright2465,80655 -\def\next##1{\next2469,80786 -\def\quotation{\quotation2473,80844 -\def\Equotation{\Equotation2479,81036 -\def\setdeffont #1 {\setdeffont2492,81434 -\newskip\defbodyindent \defbodyindent=.4inbodyindent2494,81480 -\newskip\defargsindent \defargsindent=50ptargsindent2495,81523 -\newskip\deftypemargin \deftypemargin=12pttypemargin2496,81566 -\newskip\deflastargmargin \deflastargmargin=18ptlastargmargin2497,81609 -\def\activeparens{\activeparens2502,81807 -\def\opnr{\opnr2528,83019 -\def\lbrb{\lbrb2529,83084 -\def\defname #1#2{\defname2535,83285 -\advance\dimen2 by -\defbodyindentbodyindent2539,83403 -\advance\dimen3 by -\defbodyindentbodyindent2541,83457 -\setbox0=\hbox{\hskip \deflastargmargin{lastargmargin2543,83511 -\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuationsargsindent2545,83653 -\parshape 2 0in \dimen0 \defargsindent \dimen1 %argsindent2546,83728 -\rlap{\rightline{{\rm #2}\hskip \deftypemargin}typemargin2553,84097 -\advance\leftskip by -\defbodyindentbodyindent2556,84231 -\exdentamount=\defbodyindentbodyindent2557,84268 -\def\defparsebody #1#2#3{\defparsebody2567,84627 -\def#1{2571,84811 -\def#2{2572,84847 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2574,84919 -\exdentamount=\defbodyindentbodyindent2575,84993 -\def\defmethparsebody #1#2#3#4 {\defmethparsebody2580,85097 -\def#1{2584,85258 -\def#2##1 {2585,85294 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2587,85377 -\exdentamount=\defbodyindentbodyindent2588,85451 -\def\defopparsebody #1#2#3#4#5 {\defopparsebody2591,85536 -\def#1{2595,85697 -\def#2##1 ##2 {2596,85733 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2599,85833 -\exdentamount=\defbodyindentbodyindent2600,85907 -\def\defvarparsebody #1#2#3{\defvarparsebody2607,86178 -\def#1{2611,86365 -\def#2{2612,86401 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2614,86460 -\exdentamount=\defbodyindentbodyindent2615,86534 -\def\defvrparsebody #1#2#3#4 {\defvrparsebody2620,86625 -\def#1{2624,86784 -\def#2##1 {2625,86820 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2627,86890 -\exdentamount=\defbodyindentbodyindent2628,86964 -\def\defopvarparsebody #1#2#3#4#5 {\defopvarparsebody2631,87036 -\def#1{2635,87200 -\def#2##1 ##2 {2636,87236 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2639,87323 -\exdentamount=\defbodyindentbodyindent2640,87397 -\def\defunargs #1{\defunargs2663,88157 -\def\deftypefunargs #1{\deftypefunargs2675,88539 -\def\deffn{\deffn2689,88921 -\def\deffnheader #1#2#3{\deffnheader2691,88978 -\begingroup\defname {name2692,89026 -\def\defun{\defun2698,89171 -\def\defunheader #1#2{\defunheader2700,89224 -\begingroup\defname {name2701,89299 -\defunargs {unargs2702,89335 -\def\deftypefun{\deftypefun2708,89483 -\def\deftypefunheader #1#2{\deftypefunheader2711,89605 -\def\deftypefunheaderx #1#2 #3\relax{\deftypefunheaderx2713,89714 -\begingroup\defname {name2715,89806 -\deftypefunargs {typefunargs2716,89852 -\def\deftypefn{\deftypefn2722,90023 -\def\deftypefnheader #1#2#3{\deftypefnheader2725,90172 -\def\deftypefnheaderx #1#2#3 #4\relax{\deftypefnheaderx2727,90308 -\begingroup\defname {name2729,90401 -\deftypefunargs {typefunargs2730,90441 -\def\defmac{\defmac2736,90562 -\def\defmacheader #1#2{\defmacheader2738,90619 -\begingroup\defname {name2739,90695 -\defunargs {unargs2740,90728 -\def\defspec{\defspec2746,90852 -\def\defspecheader #1#2{\defspecheader2748,90913 -\begingroup\defname {name2749,90990 -\defunargs {unargs2750,91030 -\def\deffnx #1 {\deffnx2757,91225 -\def\defunx #1 {\defunx2758,91282 -\def\defmacx #1 {\defmacx2759,91339 -\def\defspecx #1 {\defspecx2760,91398 -\def\deftypefnx #1 {\deftypefnx2761,91459 -\def\deftypeunx #1 {\deftypeunx2762,91524 -\def\defop #1 {\defop2768,91670 -\defopparsebody\Edefop\defopx\defopheader\defoptype}opparsebody\Edefop\defopx\defopheader\defoptype2769,91705 -\def\defopheader #1#2#3{\defopheader2771,91759 -\begingroup\defname {name2773,91848 -\defunargs {unargs2774,91894 -\def\defmethod{\defmethod2779,91955 -\def\defmethodheader #1#2#3{\defmethodheader2781,92028 -\begingroup\defname {name2783,92116 -\defunargs {unargs2784,92156 -\def\defcv #1 {\defcv2789,92230 -\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}opvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype2790,92265 -\def\defcvarheader #1#2#3{\defcvarheader2792,92324 -\begingroup\defname {name2794,92410 -\defvarargs {varargs2795,92456 -\def\defivar{\defivar2800,92529 -\def\defivarheader #1#2#3{\defivarheader2802,92592 -\begingroup\defname {name2804,92678 -\defvarargs {varargs2805,92729 -\def\defopx #1 {\defopx2811,92878 -\def\defmethodx #1 {\defmethodx2812,92935 -\def\defcvx #1 {\defcvx2813,93000 -\def\defivarx #1 {\defivarx2814,93057 -\def\defvarargs #1{\defvarargs2821,93328 -\def\defvr{\defvr2827,93472 -\def\defvrheader #1#2#3{\defvrheader2829,93527 -\begingroup\defname {name2830,93575 -\def\defvar{\defvar2834,93660 -\def\defvarheader #1#2{\defvarheader2836,93720 -\begingroup\defname {name2837,93791 -\defvarargs {varargs2838,93827 -\def\defopt{\defopt2843,93893 -\def\defoptheader #1#2{\defoptheader2845,93953 -\begingroup\defname {name2846,94024 -\defvarargs {varargs2847,94063 -\def\deftypevar{\deftypevar2852,94120 -\def\deftypevarheader #1#2{\deftypevarheader2855,94236 -\begingroup\defname {name2857,94319 -\def\deftypevr{\deftypevr2864,94493 -\def\deftypevrheader #1#2#3{\deftypevrheader2866,94564 -\begingroup\defname {name2867,94616 -\def\defvrx #1 {\defvrx2875,94853 -\def\defvarx #1 {\defvarx2876,94910 -\def\defoptx #1 {\defoptx2877,94969 -\def\deftypevarx #1 {\deftypevarx2878,95028 -\def\deftypevrx #1 {\deftypevrx2879,95095 -\def\deftpargs #1{\deftpargs2884,95244 -\def\deftp{\deftp2888,95324 -\def\deftpheader #1#2#3{\deftpheader2890,95379 -\begingroup\defname {name2891,95427 -\def\deftpx #1 {\deftpx2896,95586 -\def\setref#1{\setref2907,95907 -\def\unnumbsetref#1{\unnumbsetref2912,96021 -\def\appendixsetref#1{\appendixsetref2917,96128 -\def\pxref#1{\pxref2928,96539 -\def\xref#1{\xref2929,96575 -\def\ref#1{\ref2930,96610 -\def\xrefX[#1,#2,#3,#4,#5,#6]{\xrefX[2931,96640 -\def\printedmanual{\printedmanual2932,96683 -\def\printednodename{\printednodename2933,96721 -\def\printednodename{\printednodename2938,96846 -section ``\printednodename'' in \cite{\printedmanual}\printedmanual2953,97479 -\refx{x2956,97557 -\def\dosetq #1#2{\dosetq2964,97777 -\def\internalsetq #1#2{\internalsetq2972,98035 -\def\Ypagenumber{\Ypagenumber2976,98136 -\def\Ytitle{\Ytitle2978,98162 -\def\Ynothing{\Ynothing2980,98189 -\def\Ysectionnumberandtype{\Ysectionnumberandtype2982,98206 -\def\Yappendixletterandtype{\Yappendixletterandtype2991,98522 -\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{no2992,98552 -\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %no.\the\secno2993,98607 -Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %no.\the\secno.\the\subsecno2995,98711 -Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %no.\the\secno.\the\subsecno.\the\subsubsecno2997,98782 - \def\linenumber{\linenumber3008,99121 -\def\refx#1#2{\refx3014,99305 -\def\xrdef #1#2{\xrdef3036,99931 -\def\readauxfile{\readauxfile3039,100016 -\def\supereject{\supereject3109,101797 -\footstrut\parindent=\defaultparindent\hang\textindent{aultparindent\hang\textindent3130,102482 -\def\openindices{\openindices3138,102668 -\newdimen\defaultparindent \defaultparindent = 15ptaultparindent3150,102893 -\parindent = \defaultparindentaultparindent3151,102945 -\def\smallbook{\smallbook3174,103669 -\global\def\Esmallexample{\Esmallexample3191,104096 -\def\afourpaper{\afourpaper3195,104187 -\def\finalout{\finalout3223,104995 -\def\normaldoublequote{\normaldoublequote3234,105256 -\def\normaltilde{\normaltilde3235,105282 -\def\normalcaret{\normalcaret3236,105302 -\def\normalunderscore{\normalunderscore3237,105322 -\def\normalverticalbar{\normalverticalbar3238,105347 -\def\normalless{\normalless3239,105373 -\def\normalgreater{\normalgreater3240,105392 -\def\normalplus{\normalplus3241,105414 -\def\ifusingtt#1#2{\ifusingtt3252,105906 -\def\activedoublequote{\activedoublequote3260,106234 -\def~{~3263,106320 -\def^{^3266,106381 -\def_{_3269,106420 -\def\_{\_3271,106494 -\def\lvvmode{\lvvmode3278,106831 -\def|{|3281,106881 -\def<{<3284,106944 -\def>{>3287,107001 -\def+{+3289,107039 -\def\turnoffactive{\turnoffactive3295,107200 -\global\def={=3306,107486 -\def\normalbackslash{\normalbackslash3320,107868 +tex-src/texinfo.tex,30627 +\def\texinfoversion{\texinfoversion26,1027 +\def\tie{\tie49,1518 +\def\gloggingall{\gloggingall72,2268 +\def\loggingall{\loggingall73,2337 +\def\onepageout#1{\onepageout99,3274 +\def\croppageout#1{\croppageout115,4024 +\def\cropmarks{\cropmarks142,5084 +\def\pagebody#1{\pagebody144,5131 +\def\ewtop{\ewtop157,5586 +\def\nstop{\nstop158,5650 +\def\ewbot{\ewbot160,5733 +\def\nsbot{\nsbot161,5797 +\def\parsearg #1{\parsearg170,6096 +\def\parseargx{\parseargx172,6174 +\def\parseargline{\parseargline182,6414 +\def\flushcr{\flushcr186,6535 +\newif\ifENV \ENVfalse \def\inENV{\inENV190,6734 +\def\ENVcheck{\ENVcheck191,6798 +\outer\def\begin{\begin198,7045 +\def\beginxxx #1{\beginxxx200,7083 +\def\end{\end208,7338 +\def\endxxx #1{\endxxx210,7366 +\def\errorE#1{\errorE216,7555 +\def\singlespace{\singlespace222,7749 +\def\@{\@232,7972 +\def\`{\`236,8072 +\def\'{\'237,8084 +\def\mylbrace {\mylbrace241,8132 +\def\myrbrace {\myrbrace242,8165 +\def\:{\:247,8279 +\def\*{\*250,8333 +\def\.{\.253,8409 +\def\w#1{\w258,8640 +\def\group{\group268,9123 + \def\Egroup{\Egroup273,9287 +\def\need{\need289,9729 +\def\needx#1{\needx300,10006 +\def\dots{\dots339,11392 +\def\page{\page343,11456 +\def\exdent{\exdent353,11783 +\def\exdentyyy #1{\exdentyyy354,11816 +\def\nofillexdent{\nofillexdent357,11960 +\def\nofillexdentyyy #1{\nofillexdentyyy358,12005 +\def\include{\include365,12189 +\def\includezzz #1{\includezzz366,12224 +\def\thisfile{\thisfile369,12275 +\def\center{\center373,12338 +\def\centerzzz #1{\centerzzz374,12371 +\def\sp{\sp380,12513 +\def\spxxx #1{\spxxx381,12538 +\def\comment{\comment387,12712 +\def\commentxxx #1{\commentxxx390,12809 +\def\ignoresections{\ignoresections396,12978 +\let\chapter=\relax=\relax397,13000 +\let\section=\relax=\relax406,13245 +\let\subsection=\relax=\relax409,13306 +\let\subsubsection=\relax=\relax410,13329 +\let\appendix=\relax=\relax411,13355 +\let\appendixsec=\relaxsec=\relax412,13376 +\let\appendixsection=\relaxsection=\relax413,13400 +\let\appendixsubsec=\relaxsubsec=\relax414,13428 +\let\appendixsubsection=\relaxsubsection=\relax415,13455 +\let\appendixsubsubsec=\relaxsubsubsec=\relax416,13486 +\let\appendixsubsubsection=\relaxsubsubsection=\relax417,13516 +\def\ignore{\ignore423,13618 +\long\def\ignorexxx #1\end ignore{\ignorexxx427,13758 +\def\direntry{\direntry429,13817 +\long\def\direntryxxx #1\end direntry{\direntryxxx430,13856 +\def\ifset{\ifset434,13966 +\def\ifsetxxx #1{\ifsetxxx436,14024 +\def\Eifset{\Eifset440,14151 +\def\ifsetfail{\ifsetfail441,14165 +\long\def\ifsetfailxxx #1\end ifset{\ifsetfailxxx442,14221 +\def\ifclear{\ifclear444,14282 +\def\ifclearxxx #1{\ifclearxxx446,14344 +\def\Eifclear{\Eifclear450,14475 +\def\ifclearfail{\ifclearfail451,14491 +\long\def\ifclearfailxxx #1\end ifclear{\ifclearfailxxx452,14551 +\def\set{\set456,14702 +\def\setxxx #1{\setxxx457,14729 +\def\clear{\clear460,14791 +\def\clearxxx #1{\clearxxx461,14822 +\def\iftex{\iftex466,14939 +\def\Eiftex{\Eiftex467,14952 +\def\ifinfo{\ifinfo468,14966 +\long\def\ifinfoxxx #1\end ifinfo{\ifinfoxxx469,15016 +\long\def\menu #1\end menu{\menu471,15075 +\def\asis#1{\asis472,15104 +\def\math#1{\math485,15647 +\def\node{\node487,15691 +\def\nodezzz#1{\nodezzz488,15729 +\def\nodexxx[#1,#2]{\nodexxx[489,15760 +\def\donoderef{\donoderef492,15822 +\def\unnumbnoderef{\unnumbnoderef496,15943 +\def\appendixnoderef{\appendixnoderef500,16074 +\expandafter\expandafter\expandafter\appendixsetref{setref501,16120 +\let\refill=\relaxill=\relax504,16209 +\def\setfilename{\setfilename509,16423 +\outer\def\bye{\bye518,16669 +\def\inforef #1{\inforef520,16725 +\def\inforefzzz #1,#2,#3,#4**{\inforefzzz521,16763 +\def\losespace #1{\losespace523,16860 +\def\sf{\sf532,17064 +\font\defbf=cmbx10 scaled \magstep1 %was 1314bf=cmbx10558,17859 +\font\deftt=cmtt10 scaled \magstep1tt=cmtt10559,17905 +\def\df{\df560,17941 +\def\resetmathfonts{\resetmathfonts635,20535 +\def\textfonts{\textfonts648,21124 +\def\chapfonts{\chapfonts653,21339 +\def\secfonts{\secfonts658,21555 +\def\subsecfonts{\subsecfonts663,21760 +\def\indexfonts{\indexfonts668,21977 +\def\smartitalicx{\smartitalicx691,22709 +\def\smartitalic#1{\smartitalic692,22785 +\let\cite=\smartitalic=\smartitalic698,22930 +\def\b#1{\b700,22954 +\def\t#1{\t703,22989 +\def\samp #1{\samp706,23141 +\def\key #1{\key707,23174 +\def\ctrl #1{\ctrl708,23235 +\def\tclose#1{\tclose716,23437 +\def\ {\720,23603 +\def\xkey{\xkey728,23872 +\def\kbdfoo#1#2#3\par{\kbdfoo729,23888 +\def\dmn#1{\dmn738,24189 +\def\kbd#1{\kbd740,24216 +\def\l#1{\l742,24273 +\def\r#1{\r744,24302 +\def\sc#1{\sc746,24370 +\def\ii#1{\ii747,24413 +\def\titlefont#1{\titlefont755,24646 +\def\titlepage{\titlepage761,24749 + \def\subtitlefont{\subtitlefont766,24976 + \def\authorfont{\authorfont768,25060 + \def\title{\title774,25270 + \def\titlezzz##1{\titlezzz775,25305 + \def\subtitle{\subtitle783,25620 + \def\subtitlezzz##1{\subtitlezzz784,25661 + \def\author{\author787,25779 + \def\authorzzz##1{\authorzzz788,25816 + \def\page{\page794,26107 +\def\Etitlepage{\Etitlepage804,26276 +\def\finishtitlepage{\finishtitlepage817,26664 +\def\evenheading{\evenheading846,27672 +\def\oddheading{\oddheading847,27715 +\def\everyheading{\everyheading848,27756 +\def\evenfooting{\evenfooting850,27802 +\def\oddfooting{\oddfooting851,27845 +\def\everyfooting{\everyfooting852,27886 +\def\headings #1 {\headings893,29578 +\def\HEADINGSoff{\HEADINGSoff895,29627 +\def\HEADINGSdouble{\HEADINGSdouble904,30054 +\def\HEADINGSsingle{\HEADINGSsingle914,30374 +\def\HEADINGSon{\HEADINGSon922,30595 +\def\HEADINGSafter{\HEADINGSafter924,30629 +\def\HEADINGSdoublex{\HEADINGSdoublex926,30724 +\def\HEADINGSsingleafter{\HEADINGSsingleafter933,30912 +\def\HEADINGSsinglex{\HEADINGSsinglex934,30973 +\def\today{\today943,31248 +\def\thistitle{\thistitle958,31793 +\def\settitle{\settitle959,31818 +\def\settitlezzz #1{\settitlezzz960,31855 +\def\internalBitem{\internalBitem992,32785 +\def\internalBitemx{\internalBitemx993,32835 +\def\internalBxitem "#1"{\internalBxitem995,32880 +\def\internalBxitemx "#1"{\internalBxitemx996,32960 +\def\internalBkitem{\internalBkitem998,33035 +\def\internalBkitemx{\internalBkitemx999,33087 +\def\kitemzzz #1{\kitemzzz1001,33134 +\def\xitemzzz #1{\xitemzzz1004,33236 +\def\itemzzz #1{\itemzzz1007,33339 +\def\item{\item1037,34410 +\def\itemx{\itemx1038,34461 +\def\kitem{\kitem1039,34514 +\def\kitemx{\kitemx1040,34567 +\def\xitem{\xitem1041,34622 +\def\xitemx{\xitemx1042,34675 +\def\description{\description1045,34785 +\def\table{\table1047,34835 +\def\ftable{\ftable1052,34979 +\def\Eftable{\Eftable1056,35125 +\def\vtable{\vtable1059,35194 +\def\Evtable{\Evtable1063,35340 +\def\dontindex #1{\dontindex1066,35409 +\def\fnitemindex #1{\fnitemindex1067,35429 +\def\vritemindex #1{\vritemindex1068,35474 +\def\tablez #1#2#3#4#5#6{\tablez1074,35623 +\def\Edescription{\Edescription1077,35681 +\def\itemfont{\itemfont1082,35883 +\def\Etable{\Etable1090,36109 +\def\itemize{\itemize1103,36433 +\def\itemizezzz #1{\itemizezzz1105,36469 +\def\itemizey #1#2{\itemizey1110,36564 +\def#2{1119,36810 +\def\itemcontents{\itemcontents1120,36851 +\def\bullet{\bullet1123,36899 +\def\minus{\minus1124,36926 +\def\frenchspacing{\frenchspacing1128,37034 +\def\splitoff#1#2\endmark{\splitoff1134,37259 +\def\enumerate{\enumerate1140,37489 +\def\enumeratezzz #1{\enumeratezzz1141,37528 +\def\enumeratey #1 #2\endenumeratey{\enumeratey1142,37581 + \def\thearg{\thearg1146,37728 + \ifx\thearg\empty \def\thearg{\thearg1147,37747 +\def\numericenumerate{\numericenumerate1184,39081 +\def\lowercaseenumerate{\lowercaseenumerate1190,39211 +\def\uppercaseenumerate{\uppercaseenumerate1203,39558 +\def\startenumeration#1{\startenumeration1219,40048 +\def\alphaenumerate{\alphaenumerate1227,40230 +\def\capsenumerate{\capsenumerate1228,40265 +\def\Ealphaenumerate{\Ealphaenumerate1229,40299 +\def\Ecapsenumerate{\Ecapsenumerate1230,40333 +\def\itemizeitem{\itemizeitem1234,40413 +\def\newindex #1{\newindex1259,41270 +\def\defindex{\defindex1268,41559 +\def\newcodeindex #1{\newcodeindex1272,41667 +\def\defcodeindex{\defcodeindex1279,41927 +\def\synindex #1 #2 {\synindex1283,42107 +\def\syncodeindex #1 #2 {\syncodeindex1292,42447 +\def\doindex#1{\doindex1309,43126 +\def\singleindexer #1{\singleindexer1310,43185 +\def\docodeindex#1{\docodeindex1313,43297 +\def\singlecodeindexer #1{\singlecodeindexer1314,43364 +\def\indexdummies{\indexdummies1316,43422 +\def\_{\_1317,43442 +\def\w{\w1318,43470 +\def\bf{\bf1319,43497 +\def\rm{\rm1320,43526 +\def\sl{\sl1321,43555 +\def\sf{\sf1322,43584 +\def\tt{\tt1323,43612 +\def\gtr{\gtr1324,43640 +\def\less{\less1325,43670 +\def\hat{\hat1326,43702 +\def\char{\char1327,43732 +\def\TeX{\TeX1328,43764 +\def\dots{\dots1329,43794 +\def\copyright{\copyright1330,43827 +\def\tclose##1{\tclose1331,43870 +\def\code##1{\code1332,43915 +\def\samp##1{\samp1333,43956 +\def\t##1{\t1334,43997 +\def\r##1{\r1335,44032 +\def\i##1{\i1336,44067 +\def\b##1{\b1337,44102 +\def\cite##1{\cite1338,44137 +\def\key##1{\key1339,44178 +\def\file##1{\file1340,44217 +\def\var##1{\var1341,44258 +\def\kbd##1{\kbd1342,44297 +\def\indexdummyfont#1{\indexdummyfont1347,44453 +\def\indexdummytex{\indexdummytex1348,44479 +\def\indexdummydots{\indexdummydots1349,44503 +\def\indexnofonts{\indexnofonts1351,44529 +\let\w=\indexdummyfontdummyfont1352,44549 +\let\t=\indexdummyfontdummyfont1353,44572 +\let\r=\indexdummyfontdummyfont1354,44595 +\let\i=\indexdummyfontdummyfont1355,44618 +\let\b=\indexdummyfontdummyfont1356,44641 +\let\emph=\indexdummyfontdummyfont1357,44664 +\let\strong=\indexdummyfontdummyfont1358,44690 +\let\cite=\indexdummyfont=\indexdummyfont1359,44718 +\let\sc=\indexdummyfontdummyfont1360,44744 +\let\tclose=\indexdummyfontdummyfont1364,44916 +\let\code=\indexdummyfontdummyfont1365,44944 +\let\file=\indexdummyfontdummyfont1366,44970 +\let\samp=\indexdummyfontdummyfont1367,44996 +\let\kbd=\indexdummyfontdummyfont1368,45022 +\let\key=\indexdummyfontdummyfont1369,45047 +\let\var=\indexdummyfontdummyfont1370,45072 +\let\TeX=\indexdummytexdummytex1371,45097 +\let\dots=\indexdummydotsdummydots1372,45121 +\let\indexbackslash=0 %overridden during \printindex.backslash=01382,45373 +\def\doind #1#2{\doind1384,45429 +{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1386,45472 +\def\rawbackslashxx{\rawbackslashxx1389,45612 +{\indexnofontsnofonts1394,45874 +\def\dosubind #1#2#3{\dosubind1405,46185 +{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1407,46233 +\def\rawbackslashxx{\rawbackslashxx1410,46337 +{\indexnofontsnofonts1414,46491 +\def\findex {\findex1443,47422 +\def\kindex {\kindex1444,47445 +\def\cindex {\cindex1445,47468 +\def\vindex {\vindex1446,47491 +\def\tindex {\tindex1447,47514 +\def\pindex {\pindex1448,47537 +\def\cindexsub {\cindexsub1450,47561 +\def\printindex{\printindex1462,47888 +\def\doprintindex#1{\doprintindex1464,47929 + \def\indexbackslash{\indexbackslash1481,48414 + \indexfonts\rm \tolerance=9500 \advance\baselineskip -1ptfonts\rm1482,48453 +\def\initial #1{\initial1517,49525 +\def\entry #1#2{\entry1523,49732 + \null\nobreak\indexdotfill % Have leaders before the page number.dotfill1540,50379 +\def\indexdotfill{\indexdotfill1549,50707 +\def\primary #1{\primary1552,50813 +\def\secondary #1#2{\secondary1556,50895 +\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\pardotfill1559,50977 +\newbox\partialpageialpage1566,51150 +\def\begindoublecolumns{\begindoublecolumns1572,51308 + \output={\global\setbox\partialpage=ialpage=1573,51344 +\def\enddoublecolumns{\enddoublecolumns1577,51532 +\def\doublecolumnout{\doublecolumnout1580,51617 + \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1581,51686 +\def\pagesofar{\pagesofar1584,51864 +\def\balancecolumns{\balancecolumns1588,52101 + \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpageialpage1594,52272 + \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1600,52533 +\newcount \appendixno \appendixno = `\@no1627,53438 +\def\appendixletter{\appendixletter1628,53479 +\def\opencontents{\opencontents1632,53582 +\def\thischapter{\thischapter1637,53763 +\def\seccheck#1{\seccheck1638,53801 +\def\chapternofonts{\chapternofonts1643,53905 +\def\result{\result1646,53980 +\def\equiv{\equiv1647,54015 +\def\expansion{\expansion1648,54048 +\def\print{\print1649,54089 +\def\TeX{\TeX1650,54122 +\def\dots{\dots1651,54151 +\def\copyright{\copyright1652,54182 +\def\tt{\tt1653,54223 +\def\bf{\bf1654,54250 +\def\w{\w1655,54278 +\def\less{\less1656,54303 +\def\gtr{\gtr1657,54334 +\def\hat{\hat1658,54363 +\def\char{\char1659,54392 +\def\tclose##1{\tclose1660,54423 +\def\code##1{\code1661,54467 +\def\samp##1{\samp1662,54507 +\def\r##1{\r1663,54547 +\def\b##1{\b1664,54581 +\def\key##1{\key1665,54615 +\def\file##1{\file1666,54653 +\def\kbd##1{\kbd1667,54693 +\def\i##1{\i1669,54801 +\def\cite##1{\cite1670,54835 +\def\var##1{\var1671,54875 +\def\emph##1{\emph1672,54913 +\def\dfn##1{\dfn1673,54953 +\def\thischaptername{\thischaptername1676,54994 +\outer\def\chapter{\chapter1677,55033 +\def\chapterzzz #1{\chapterzzz1678,55074 +{\chapternofonts%nofonts%1687,55470 +\global\let\section = \numberedsec=1692,55623 +\global\let\subsection = \numberedsubsec=1693,55658 +\global\let\subsubsection = \numberedsubsubsec=1694,55699 +\outer\def\appendix{\appendix1697,55750 +\def\appendixzzz #1{\appendixzzz1698,55793 +\global\advance \appendixno by 1 \message{no1700,55870 +\chapmacro {#1}{Appendix \appendixletter}letter1701,55939 +\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}letter:1704,56032 +{\chapternofonts%nofonts%1705,56104 + {#1}{Appendix \appendixletter}letter1707,56160 +\appendixnoderef %noderef1710,56260 +\global\let\section = \appendixsec=1711,56279 +\global\let\subsection = \appendixsubsec=1712,56314 +\global\let\subsubsection = \appendixsubsubsec=1713,56355 +\outer\def\top{\top1716,56406 +\outer\def\unnumbered{\unnumbered1717,56446 +\def\unnumberedzzz #1{\unnumberedzzz1718,56493 +{\chapternofonts%nofonts%1722,56656 +\global\let\section = \unnumberedsec=1727,56806 +\global\let\subsection = \unnumberedsubsec=1728,56843 +\global\let\subsubsection = \unnumberedsubsubsec=1729,56886 +\outer\def\numberedsec{\numberedsec1732,56939 +\def\seczzz #1{\seczzz1733,56980 +{\chapternofonts%nofonts%1736,57136 +\outer\def\appendixsection{\appendixsection1745,57322 +\outer\def\appendixsec{\appendixsec1746,57379 +\def\appendixsectionzzz #1{\appendixsectionzzz1747,57432 +\gdef\thissection{#1}\secheading {#1}{\appendixletter}letter1749,57544 +{\chapternofonts%nofonts%1750,57612 +{#1}{\appendixletter}letter1752,57668 +\appendixnoderef %noderef1755,57768 +\outer\def\unnumberedsec{\unnumberedsec1759,57808 +\def\unnumberedseczzz #1{\unnumberedseczzz1760,57861 +{\chapternofonts%nofonts%1762,57956 +\outer\def\numberedsubsec{\numberedsubsec1770,58124 +\def\numberedsubseczzz #1{\numberedsubseczzz1771,58179 +{\chapternofonts%nofonts%1774,58358 +\outer\def\appendixsubsec{\appendixsubsec1783,58562 +\def\appendixsubseczzz #1{\appendixsubseczzz1784,58617 +\subsecheading {#1}{\appendixletter}letter1786,58739 +{\chapternofonts%nofonts%1787,58804 +{#1}{\appendixletter}letter1789,58863 +\appendixnoderef %noderef1792,58978 +\outer\def\unnumberedsubsec{\unnumberedsubsec1796,59018 +\def\unnumberedsubseczzz #1{\unnumberedsubseczzz1797,59077 +{\chapternofonts%nofonts%1799,59178 +\outer\def\numberedsubsubsec{\numberedsubsubsec1807,59349 +\def\numberedsubsubseczzz #1{\numberedsubsubseczzz1808,59410 +{\chapternofonts%nofonts%1812,59607 +\outer\def\appendixsubsubsec{\appendixsubsubsec1823,59840 +\def\appendixsubsubseczzz #1{\appendixsubsubseczzz1824,59901 + {\appendixletter}letter1827,60040 +{\chapternofonts%nofonts%1828,60106 + {\appendixletter}letter1830,60171 +\appendixnoderef %noderef1834,60305 +\outer\def\unnumberedsubsubsec{\unnumberedsubsubsec1838,60345 +\def\unnumberedsubsubseczzz #1{\unnumberedsubsubseczzz1839,60410 +{\chapternofonts%nofonts%1841,60517 +\def\infotop{\infotop1851,60846 +\def\infounnumbered{\infounnumbered1852,60884 +\def\infounnumberedsec{\infounnumberedsec1853,60929 +\def\infounnumberedsubsec{\infounnumberedsubsec1854,60980 +\def\infounnumberedsubsubsec{\infounnumberedsubsubsec1855,61037 +\def\infoappendix{\infoappendix1857,61101 +\def\infoappendixsec{\infoappendixsec1858,61142 +\def\infoappendixsubsec{\infoappendixsubsec1859,61189 +\def\infoappendixsubsubsec{\infoappendixsubsubsec1860,61242 +\def\infochapter{\infochapter1862,61302 +\def\infosection{\infosection1863,61341 +\def\infosubsection{\infosubsection1864,61380 +\def\infosubsubsection{\infosubsubsection1865,61425 +\global\let\section = \numberedsec=1870,61662 +\global\let\subsection = \numberedsubsec=1871,61697 +\global\let\subsubsection = \numberedsubsubsec=1872,61738 +\def\majorheading{\majorheading1886,62245 +\def\majorheadingzzz #1{\majorheadingzzz1887,62290 +\def\chapheading{\chapheading1893,62523 +\def\chapheadingzzz #1{\chapheadingzzz1894,62566 +\def\heading{\heading1899,62761 +\def\subheading{\subheading1901,62798 +\def\subsubheading{\subsubheading1903,62841 +\def\dobreak#1#2{\dobreak1910,63118 +\def\setchapterstyle #1 {\setchapterstyle1912,63196 +\def\chapbreak{\chapbreak1919,63451 +\def\chappager{\chappager1920,63501 +\def\chapoddpage{\chapoddpage1921,63539 +\def\setchapternewpage #1 {\setchapternewpage1923,63618 +\def\CHAPPAGoff{\CHAPPAGoff1925,63675 +\def\CHAPPAGon{\CHAPPAGon1929,63769 +\global\def\HEADINGSon{\HEADINGSon1932,63860 +\def\CHAPPAGodd{\CHAPPAGodd1934,63902 +\global\def\HEADINGSon{\HEADINGSon1937,63998 +\def\CHAPFplain{\CHAPFplain1941,64052 +\def\chfplain #1#2{\chfplain1945,64144 +\def\unnchfplain #1{\unnchfplain1956,64367 +\def\unnchfopen #1{\unnchfopen1964,64596 +\def\chfopen #1#2{\chfopen1970,64804 +\def\CHAPFopen{\CHAPFopen1975,64948 +\def\subsecheadingbreak{\subsecheadingbreak1982,65166 +\def\secheadingbreak{\secheadingbreak1985,65295 +\def\secheading #1#2#3{\secheading1993,65577 +\def\plainsecheading #1{\plainsecheading1994,65633 +\def\secheadingi #1{\secheadingi1995,65676 +\def\subsecheading #1#2#3#4{\subsecheading2006,66044 +\def\subsecheadingi #1{\subsecheadingi2007,66111 +\def\subsubsecfonts{\subsubsecfonts2014,66408 +\def\subsubsecheading #1#2#3#4#5{\subsubsecheading2017,66531 +\def\subsubsecheadingi #1{\subsubsecheadingi2018,66609 +\def\startcontents#1{\startcontents2032,67081 + \unnumbchapmacro{#1}\def\thischapter{\thischapter2040,67354 +\outer\def\contents{\contents2049,67713 +\outer\def\summarycontents{\summarycontents2057,67857 + \def\secentry ##1##2##3##4{\secentry2067,68228 + \def\unnumbsecentry ##1##2{\unnumbsecentry2068,68263 + \def\subsecentry ##1##2##3##4##5{\subsecentry2069,68298 + \def\unnumbsubsecentry ##1##2{\unnumbsubsecentry2070,68339 + \def\subsubsecentry ##1##2##3##4##5##6{\subsubsecentry2071,68377 + \def\unnumbsubsubsecentry ##1##2{\unnumbsubsubsecentry2072,68424 +\def\chapentry#1#2#3{\chapentry2085,68858 +\def\shortchapentry#1#2#3{\shortchapentry2088,68975 + {#2\labelspace #1}space2091,69085 +\def\unnumbchapentry#1#2{\unnumbchapentry2094,69139 +\def\shortunnumberedentry#1#2{\shortunnumberedentry2095,69186 +\def\secentry#1#2#3#4{\secentry2102,69350 +\def\unnumbsecentry#1#2{\unnumbsecentry2103,69409 +\def\subsecentry#1#2#3#4#5{\subsecentry2106,69470 +\def\unnumbsubsecentry#1#2{\unnumbsubsecentry2107,69540 +\def\subsubsecentry#1#2#3#4#5#6{\subsubsecentry2110,69614 + \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}space2111,69648 +\def\unnumbsubsubsecentry#1#2{\unnumbsubsubsecentry2112,69699 +\def\dochapentry#1#2{\dochapentry2123,70073 +\def\dosecentry#1#2{\dosecentry2138,70678 +\def\dosubsecentry#1#2{\dosubsecentry2145,70856 +\def\dosubsubsecentry#1#2{\dosubsubsecentry2152,71041 +\def\labelspace{\labelspace2160,71292 +\def\dopageno#1{\dopageno2162,71327 +\def\doshortpageno#1{\doshortpageno2163,71353 +\def\chapentryfonts{\chapentryfonts2165,71385 +\def\secentryfonts{\secentryfonts2166,71420 +\def\point{\point2192,72379 +\def\result{\result2194,72400 +\def\expansion{\expansion2195,72473 +\def\print{\print2196,72544 +\def\equiv{\equiv2198,72611 +\def\error{\error2218,73384 +\def\tex{\tex2224,73613 +\def\@{\@2242,73996 +\gdef\sepspaces{\def {\ }}}\2265,74728 +\def\aboveenvbreak{\aboveenvbreak2268,74810 +\def\afterenvbreak{\afterenvbreak2272,74976 +\def\ctl{\ctl2286,75487 +\def\ctr{\ctr2287,75559 +\def\cbl{\cbl2288,75598 +\def\cbr{\cbr2289,75638 +\def\carttop{\carttop2290,75677 +\def\cartbot{\cartbot2293,75785 +\long\def\cartouche{\cartouche2299,75925 +\def\Ecartouche{\Ecartouche2326,76713 +\def\lisp{\lisp2338,76848 +\def\Elisp{\Elisp2348,77195 +\def\next##1{\next2360,77521 +\def\Eexample{\Eexample2364,77563 +\def\Esmallexample{\Esmallexample2367,77610 +\def\smalllispx{\smalllispx2373,77788 +\def\Esmalllisp{\Esmalllisp2383,78142 +\obeyspaces \obeylines \ninett \indexfonts \rawbackslashfonts2396,78498 +\def\next##1{\next2397,78555 +\def\display{\display2401,78635 +\def\Edisplay{\Edisplay2410,78954 +\def\next##1{\next2422,79265 +\def\format{\format2426,79368 +\def\Eformat{\Eformat2434,79664 +\def\next##1{\next2437,79753 +\def\flushleft{\flushleft2441,79805 +\def\Eflushleft{\Eflushleft2451,80176 +\def\next##1{\next2454,80269 +\def\flushright{\flushright2456,80291 +\def\Eflushright{\Eflushright2466,80663 +\def\next##1{\next2470,80794 +\def\quotation{\quotation2474,80852 +\def\Equotation{\Equotation2480,81044 +\def\setdeffont #1 {\setdeffont2493,81442 +\newskip\defbodyindent \defbodyindent=.4inbodyindent2495,81488 +\newskip\defargsindent \defargsindent=50ptargsindent2496,81531 +\newskip\deftypemargin \deftypemargin=12pttypemargin2497,81574 +\newskip\deflastargmargin \deflastargmargin=18ptlastargmargin2498,81617 +\def\activeparens{\activeparens2503,81815 +\def\opnr{\opnr2529,83027 +\def\lbrb{\lbrb2530,83092 +\def\defname #1#2{\defname2536,83293 +\advance\dimen2 by -\defbodyindentbodyindent2540,83411 +\advance\dimen3 by -\defbodyindentbodyindent2542,83465 +\setbox0=\hbox{\hskip \deflastargmargin{lastargmargin2544,83519 +\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuationsargsindent2546,83661 +\parshape 2 0in \dimen0 \defargsindent \dimen1 %argsindent2547,83736 +\rlap{\rightline{{\rm #2}\hskip \deftypemargin}typemargin2554,84105 +\advance\leftskip by -\defbodyindentbodyindent2557,84239 +\exdentamount=\defbodyindentbodyindent2558,84276 +\def\defparsebody #1#2#3{\defparsebody2568,84635 +\def#1{2572,84819 +\def#2{2573,84855 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2575,84927 +\exdentamount=\defbodyindentbodyindent2576,85001 +\def\defmethparsebody #1#2#3#4 {\defmethparsebody2581,85105 +\def#1{2585,85266 +\def#2##1 {2586,85302 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2588,85385 +\exdentamount=\defbodyindentbodyindent2589,85459 +\def\defopparsebody #1#2#3#4#5 {\defopparsebody2592,85544 +\def#1{2596,85705 +\def#2##1 ##2 {2597,85741 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2600,85841 +\exdentamount=\defbodyindentbodyindent2601,85915 +\def\defvarparsebody #1#2#3{\defvarparsebody2608,86186 +\def#1{2612,86373 +\def#2{2613,86409 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2615,86468 +\exdentamount=\defbodyindentbodyindent2616,86542 +\def\defvrparsebody #1#2#3#4 {\defvrparsebody2621,86633 +\def#1{2625,86792 +\def#2##1 {2626,86828 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2628,86898 +\exdentamount=\defbodyindentbodyindent2629,86972 +\def\defopvarparsebody #1#2#3#4#5 {\defopvarparsebody2632,87044 +\def#1{2636,87208 +\def#2##1 ##2 {2637,87244 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2640,87331 +\exdentamount=\defbodyindentbodyindent2641,87405 +\def\defunargs #1{\defunargs2664,88165 +\def\deftypefunargs #1{\deftypefunargs2676,88547 +\def\deffn{\deffn2690,88929 +\def\deffnheader #1#2#3{\deffnheader2692,88986 +\begingroup\defname {name2693,89034 +\def\defun{\defun2699,89179 +\def\defunheader #1#2{\defunheader2701,89232 +\begingroup\defname {name2702,89307 +\defunargs {unargs2703,89343 +\def\deftypefun{\deftypefun2709,89491 +\def\deftypefunheader #1#2{\deftypefunheader2712,89613 +\def\deftypefunheaderx #1#2 #3\relax{\deftypefunheaderx2714,89722 +\begingroup\defname {name2716,89814 +\deftypefunargs {typefunargs2717,89860 +\def\deftypefn{\deftypefn2723,90031 +\def\deftypefnheader #1#2#3{\deftypefnheader2726,90180 +\def\deftypefnheaderx #1#2#3 #4\relax{\deftypefnheaderx2728,90316 +\begingroup\defname {name2730,90409 +\deftypefunargs {typefunargs2731,90449 +\def\defmac{\defmac2737,90570 +\def\defmacheader #1#2{\defmacheader2739,90627 +\begingroup\defname {name2740,90703 +\defunargs {unargs2741,90736 +\def\defspec{\defspec2747,90860 +\def\defspecheader #1#2{\defspecheader2749,90921 +\begingroup\defname {name2750,90998 +\defunargs {unargs2751,91038 +\def\deffnx #1 {\deffnx2758,91233 +\def\defunx #1 {\defunx2759,91290 +\def\defmacx #1 {\defmacx2760,91347 +\def\defspecx #1 {\defspecx2761,91406 +\def\deftypefnx #1 {\deftypefnx2762,91467 +\def\deftypeunx #1 {\deftypeunx2763,91532 +\def\defop #1 {\defop2769,91678 +\defopparsebody\Edefop\defopx\defopheader\defoptype}opparsebody\Edefop\defopx\defopheader\defoptype2770,91713 +\def\defopheader #1#2#3{\defopheader2772,91767 +\begingroup\defname {name2774,91856 +\defunargs {unargs2775,91902 +\def\defmethod{\defmethod2780,91963 +\def\defmethodheader #1#2#3{\defmethodheader2782,92036 +\begingroup\defname {name2784,92124 +\defunargs {unargs2785,92164 +\def\defcv #1 {\defcv2790,92238 +\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}opvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype2791,92273 +\def\defcvarheader #1#2#3{\defcvarheader2793,92332 +\begingroup\defname {name2795,92418 +\defvarargs {varargs2796,92464 +\def\defivar{\defivar2801,92537 +\def\defivarheader #1#2#3{\defivarheader2803,92600 +\begingroup\defname {name2805,92686 +\defvarargs {varargs2806,92737 +\def\defopx #1 {\defopx2812,92886 +\def\defmethodx #1 {\defmethodx2813,92943 +\def\defcvx #1 {\defcvx2814,93008 +\def\defivarx #1 {\defivarx2815,93065 +\def\defvarargs #1{\defvarargs2822,93336 +\def\defvr{\defvr2828,93480 +\def\defvrheader #1#2#3{\defvrheader2830,93535 +\begingroup\defname {name2831,93583 +\def\defvar{\defvar2835,93668 +\def\defvarheader #1#2{\defvarheader2837,93728 +\begingroup\defname {name2838,93799 +\defvarargs {varargs2839,93835 +\def\defopt{\defopt2844,93901 +\def\defoptheader #1#2{\defoptheader2846,93961 +\begingroup\defname {name2847,94032 +\defvarargs {varargs2848,94071 +\def\deftypevar{\deftypevar2853,94128 +\def\deftypevarheader #1#2{\deftypevarheader2856,94244 +\begingroup\defname {name2858,94327 +\def\deftypevr{\deftypevr2865,94501 +\def\deftypevrheader #1#2#3{\deftypevrheader2867,94572 +\begingroup\defname {name2868,94624 +\def\defvrx #1 {\defvrx2876,94861 +\def\defvarx #1 {\defvarx2877,94918 +\def\defoptx #1 {\defoptx2878,94977 +\def\deftypevarx #1 {\deftypevarx2879,95036 +\def\deftypevrx #1 {\deftypevrx2880,95103 +\def\deftpargs #1{\deftpargs2885,95252 +\def\deftp{\deftp2889,95332 +\def\deftpheader #1#2#3{\deftpheader2891,95387 +\begingroup\defname {name2892,95435 +\def\deftpx #1 {\deftpx2897,95594 +\def\setref#1{\setref2908,95915 +\def\unnumbsetref#1{\unnumbsetref2913,96029 +\def\appendixsetref#1{\appendixsetref2918,96136 +\def\pxref#1{\pxref2929,96547 +\def\xref#1{\xref2930,96583 +\def\ref#1{\ref2931,96618 +\def\xrefX[#1,#2,#3,#4,#5,#6]{\xrefX[2932,96648 +\def\printedmanual{\printedmanual2933,96691 +\def\printednodename{\printednodename2934,96729 +\def\printednodename{\printednodename2939,96854 +section ``\printednodename'' in \cite{\printedmanual}\printedmanual2954,97487 +\refx{x2957,97565 +\def\dosetq #1#2{\dosetq2965,97785 +\def\internalsetq #1#2{\internalsetq2973,98043 +\def\Ypagenumber{\Ypagenumber2977,98144 +\def\Ytitle{\Ytitle2979,98170 +\def\Ynothing{\Ynothing2981,98197 +\def\Ysectionnumberandtype{\Ysectionnumberandtype2983,98214 +\def\Yappendixletterandtype{\Yappendixletterandtype2992,98530 +\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{no2993,98560 +\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %no.\the\secno2994,98615 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %no.\the\secno.\the\subsecno2996,98719 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %no.\the\secno.\the\subsecno.\the\subsubsecno2998,98790 + \def\linenumber{\linenumber3009,99129 +\def\refx#1#2{\refx3015,99313 +\def\xrdef #1#2{\xrdef3037,99939 +\def\readauxfile{\readauxfile3040,100024 +\def\supereject{\supereject3110,101805 +\footstrut\parindent=\defaultparindent\hang\textindent{aultparindent\hang\textindent3131,102490 +\def\openindices{\openindices3139,102676 +\newdimen\defaultparindent \defaultparindent = 15ptaultparindent3151,102901 +\parindent = \defaultparindentaultparindent3152,102953 +\def\smallbook{\smallbook3175,103677 +\global\def\Esmallexample{\Esmallexample3192,104104 +\def\afourpaper{\afourpaper3196,104195 +\def\finalout{\finalout3224,105003 +\def\normaldoublequote{\normaldoublequote3235,105264 +\def\normaltilde{\normaltilde3236,105290 +\def\normalcaret{\normalcaret3237,105310 +\def\normalunderscore{\normalunderscore3238,105330 +\def\normalverticalbar{\normalverticalbar3239,105355 +\def\normalless{\normalless3240,105381 +\def\normalgreater{\normalgreater3241,105400 +\def\normalplus{\normalplus3242,105422 +\def\ifusingtt#1#2{\ifusingtt3253,105914 +\def\activedoublequote{\activedoublequote3261,106242 +\def~{~3264,106328 +\def^{^3267,106389 +\def_{_3270,106428 +\def\_{\_3272,106502 +\def\lvvmode{\lvvmode3279,106839 +\def|{|3282,106889 +\def<{<3285,106952 +\def>{>3288,107009 +\def+{+3290,107047 +\def\turnoffactive{\turnoffactive3296,107208 +\global\def={=3307,107494 +\def\normalbackslash{\normalbackslash3321,107876 c-src/c.c,76 T f(1,0 @@ -4920,42 +4920,42 @@ c-src/a/b/b.c,18 #define questo 34, y-src/parse.y,1061 -#define obstack_chunk_alloc 46,1111 -#define obstack_chunk_free 47,1149 -int yylex 57,1317 -void yyerror 59,1347 -void yyerror 61,1376 -VOIDSTAR parse_hash;63,1400 -extern VOIDSTAR hash_find(64,1421 -unsigned char fnin[fnin67,1519 -#define YYSTYPE 71,1617 -typedef struct node *YYSTYPE;YYSTYPE72,1648 -YYSTYPE parse_return;73,1678 -YYSTYPE make_list 75,1716 -YYSTYPE make_list 77,1760 -char *instr;instr80,1790 -int parse_error 81,1803 -extern struct obstack tmp_mem;82,1824 -line:line86,1862 -exp:exp94,1975 -exp_list:exp_list262,5642 -range_exp:range_exp268,5740 -range_exp_list:range_exp_list272,5770 -cell:cell278,5888 -yyerror FUN1(285,5935 -make_list FUN2(292,6015 -#define ERROR 303,6215 -extern struct node *yylval;yylval305,6233 -unsigned char parse_cell_or_range 308,6278 -unsigned char parse_cell_or_range 310,6342 -yylex FUN0(314,6392 -parse_cell_or_range FUN2(586,11758 -#define CK_ABS_R(670,13200 -#define CK_REL_R(674,13279 -#define CK_ABS_C(679,13408 -#define CK_REL_C(683,13487 -#define MAYBEREL(688,13616 -str_to_col FUN1(846,16817 +#define obstack_chunk_alloc 46,1116 +#define obstack_chunk_free 47,1154 +int yylex 57,1322 +void yyerror 59,1352 +void yyerror 61,1381 +VOIDSTAR parse_hash;63,1405 +extern VOIDSTAR hash_find(64,1426 +unsigned char fnin[fnin67,1524 +#define YYSTYPE 71,1622 +typedef struct node *YYSTYPE;YYSTYPE72,1653 +YYSTYPE parse_return;73,1683 +YYSTYPE make_list 75,1721 +YYSTYPE make_list 77,1765 +char *instr;instr80,1795 +int parse_error 81,1808 +extern struct obstack tmp_mem;82,1829 +line:line86,1867 +exp:exp94,1980 +exp_list:exp_list262,5647 +range_exp:range_exp268,5745 +range_exp_list:range_exp_list272,5775 +cell:cell278,5893 +yyerror FUN1(285,5940 +make_list FUN2(292,6020 +#define ERROR 303,6220 +extern struct node *yylval;yylval305,6238 +unsigned char parse_cell_or_range 308,6283 +unsigned char parse_cell_or_range 310,6347 +yylex FUN0(314,6397 +parse_cell_or_range FUN2(586,11763 +#define CK_ABS_R(670,13205 +#define CK_REL_R(674,13284 +#define CK_ABS_C(679,13413 +#define CK_REL_C(683,13492 +#define MAYBEREL(688,13621 +str_to_col FUN1(846,16822 y-src/parse.c,520 #define YYBISON 4,64 @@ -5236,62 +5236,62 @@ warning 993, lookup 999, /usr/share/bison/bison.simple,2238 -# define YYSTD(40, -# define YYSTD(42, -# define YYSTACK_ALLOC 50, -# define YYSIZE_T 51, -# define YYSTACK_ALLOC 55, -# define YYSIZE_T 56, -# define YYSTACK_ALLOC 59, -# define YYSTACK_FREE(67, -# define YYSIZE_T 71, -# define YYSIZE_T 75, -# define YYSTACK_ALLOC 78, -# define YYSTACK_FREE 79, -union yyalloc83, - short yyss;85, - YYSTYPE yyvs;86, - YYLTYPE yyls;88, -# define YYSTACK_GAP_MAX 93, -# define YYSTACK_BYTES(98, -# define YYSTACK_BYTES(102, -# define YYSTACK_RELOCATE(112, -# define YYSIZE_T 128, -# define YYSIZE_T 131, -# define YYSIZE_T 136, -# define YYSIZE_T 140, -# define YYSIZE_T 145, -#define yyerrok 148, -#define yyclearin 149, -#define YYEMPTY 150, -#define YYEOF 151, -#define YYACCEPT 152, -#define YYABORT 153, -#define YYERROR 154, -#define YYFAIL 158, -#define YYRECOVERING(159, -#define YYBACKUP(160, -#define YYTERROR 177, -#define YYERRCODE 178, -# define YYLLOC_DEFAULT(189, -# define YYLEX 200, -# define YYLEX 202, -# define YYLEX 206, -# define YYLEX 208, -# define YYLEX 212, -# define YYFPRINTF 225, -# define YYDPRINTF(228, -int yydebug;237, -# define YYDPRINTF(239, -# define YYINITDEPTH 244, -# undef YYMAXDEPTH255, -# define YYMAXDEPTH 259, -# define yymemcpy 264, -yymemcpy 271, -# define yystrlen 293, -yystrlen 298, -# define yystpcpy 316, -yystpcpy 322, +# define YYSTD(41, +# define YYSTD(43, +# define YYSTACK_ALLOC 51, +# define YYSIZE_T 52, +# define YYSTACK_ALLOC 56, +# define YYSIZE_T 57, +# define YYSTACK_ALLOC 60, +# define YYSTACK_FREE(68, +# define YYSIZE_T 72, +# define YYSIZE_T 76, +# define YYSTACK_ALLOC 79, +# define YYSTACK_FREE 80, +union yyalloc84, + short yyss;86, + YYSTYPE yyvs;87, + YYLTYPE yyls;89, +# define YYSTACK_GAP_MAX 94, +# define YYSTACK_BYTES(99, +# define YYSTACK_BYTES(103, +# define YYSTACK_RELOCATE(113, +# define YYSIZE_T 129, +# define YYSIZE_T 132, +# define YYSIZE_T 137, +# define YYSIZE_T 141, +# define YYSIZE_T 146, +#define yyerrok 149, +#define yyclearin 150, +#define YYEMPTY 151, +#define YYEOF 152, +#define YYACCEPT 153, +#define YYABORT 154, +#define YYERROR 155, +#define YYFAIL 159, +#define YYRECOVERING(160, +#define YYBACKUP(161, +#define YYTERROR 178, +#define YYERRCODE 179, +# define YYLLOC_DEFAULT(190, +# define YYLEX 201, +# define YYLEX 203, +# define YYLEX 207, +# define YYLEX 209, +# define YYLEX 213, +# define YYFPRINTF 226, +# define YYDPRINTF(229, +int yydebug;238, +# define YYDPRINTF(240, +# define YYINITDEPTH 245, +# undef YYMAXDEPTH256, +# define YYMAXDEPTH 260, +# define yymemcpy 265, +yymemcpy 272, +# define yystrlen 294, +yystrlen 299, +# define yystpcpy 317, +yystpcpy 323, # define YYPARSE_PARAM_ARG 351, # define YYPARSE_PARAM_DECL352, # define YYPARSE_PARAM_ARG 354, diff --git a/test/etags/ETAGS.good_6 b/test/etags/ETAGS.good_6 index 2014283..322c165 100644 --- a/test/etags/ETAGS.good_6 +++ b/test/etags/ETAGS.good_6 @@ -176,56 +176,56 @@ package body Truc.Bidule Truc.Bidule/b138,2153 protected body Machin_T Machin_T/b146,2281 c-src/abbrev.c,2634 -Lisp_Object Vabbrev_table_name_list;42,1416 -Lisp_Object Vglobal_abbrev_table;47,1561 -Lisp_Object Vfundamental_mode_abbrev_table;51,1672 -int abbrevs_changed;55,1773 -int abbrev_all_caps;57,1795 -Lisp_Object Vabbrev_start_location;62,1944 -Lisp_Object Vabbrev_start_location_buffer;65,2033 -Lisp_Object Vlast_abbrev;69,2142 -Lisp_Object Vlast_abbrev_text;74,2311 -int last_abbrev_point;78,2401 -Lisp_Object Vpre_abbrev_expand_hook,82,2474 -Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;82,2474 -DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table84,2538 -DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table91,2730 -DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev106,3111 -DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev148,4430 -DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev159,4801 -DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol173,5269 -DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion201,6233 -DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev217,6748 -DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev388,11669 -write_abbrev 425,12876 -describe_abbrev 444,13311 -DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description465,13826 -DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table505,14982 -syms_of_abbrev 539,16059 - DEFVAR_LISP ("abbrev-table-name-list"541,16079 - DEFVAR_LISP ("global-abbrev-table"547,16341 - DEFVAR_LISP ("fundamental-mode-abbrev-table"554,16663 - DEFVAR_LISP ("last-abbrev"560,17005 - DEFVAR_LISP ("last-abbrev-text"563,17128 - DEFVAR_INT ("last-abbrev-location"567,17286 - DEFVAR_LISP ("abbrev-start-location"574,17485 - DEFVAR_LISP ("abbrev-start-location-buffer"580,17762 - DEFVAR_PER_BUFFER ("local-abbrev-table"585,18026 - DEFVAR_BOOL ("abbrevs-changed"588,18169 - DEFVAR_BOOL ("abbrev-all-caps"593,18372 - DEFVAR_LISP ("pre-abbrev-expand-hook"597,18528 - DEFVAR_LISP ("abbrev-table-name-list",\1541,16079 - DEFVAR_LISP ("global-abbrev-table",\1547,16341 - DEFVAR_LISP ("fundamental-mode-abbrev-table",\1554,16663 - DEFVAR_LISP ("last-abbrev",\1560,17005 - DEFVAR_LISP ("last-abbrev-text",\1563,17128 - DEFVAR_INT ("last-abbrev-location",\1567,17286 - DEFVAR_LISP ("abbrev-start-location",\1574,17485 - DEFVAR_LISP ("abbrev-start-location-buffer",\1580,17762 - DEFVAR_PER_BUFFER ("local-abbrev-table",\1585,18026 - DEFVAR_BOOL ("abbrevs-changed",\1588,18169 - DEFVAR_BOOL ("abbrev-all-caps",\1593,18372 - DEFVAR_LISP ("pre-abbrev-expand-hook",\1597,18528 +Lisp_Object Vabbrev_table_name_list;43,1424 +Lisp_Object Vglobal_abbrev_table;48,1569 +Lisp_Object Vfundamental_mode_abbrev_table;52,1680 +int abbrevs_changed;56,1781 +int abbrev_all_caps;58,1803 +Lisp_Object Vabbrev_start_location;63,1952 +Lisp_Object Vabbrev_start_location_buffer;66,2041 +Lisp_Object Vlast_abbrev;70,2150 +Lisp_Object Vlast_abbrev_text;75,2319 +int last_abbrev_point;79,2409 +Lisp_Object Vpre_abbrev_expand_hook,83,2482 +Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;83,2482 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table85,2546 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table92,2738 +DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev107,3119 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev149,4438 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev160,4809 +DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol174,5277 +DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion202,6241 +DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev218,6756 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev389,11677 +write_abbrev 426,12884 +describe_abbrev 445,13319 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description466,13834 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table506,14990 +syms_of_abbrev 540,16067 + DEFVAR_LISP ("abbrev-table-name-list"542,16087 + DEFVAR_LISP ("global-abbrev-table"548,16349 + DEFVAR_LISP ("fundamental-mode-abbrev-table"555,16671 + DEFVAR_LISP ("last-abbrev"561,17013 + DEFVAR_LISP ("last-abbrev-text"564,17136 + DEFVAR_INT ("last-abbrev-location"568,17294 + DEFVAR_LISP ("abbrev-start-location"575,17493 + DEFVAR_LISP ("abbrev-start-location-buffer"581,17770 + DEFVAR_PER_BUFFER ("local-abbrev-table"586,18034 + DEFVAR_BOOL ("abbrevs-changed"589,18177 + DEFVAR_BOOL ("abbrev-all-caps"594,18380 + DEFVAR_LISP ("pre-abbrev-expand-hook"598,18536 + DEFVAR_LISP ("abbrev-table-name-list",\1542,16087 + DEFVAR_LISP ("global-abbrev-table",\1548,16349 + DEFVAR_LISP ("fundamental-mode-abbrev-table",\1555,16671 + DEFVAR_LISP ("last-abbrev",\1561,17013 + DEFVAR_LISP ("last-abbrev-text",\1564,17136 + DEFVAR_INT ("last-abbrev-location",\1568,17294 + DEFVAR_LISP ("abbrev-start-location",\1575,17493 + DEFVAR_LISP ("abbrev-start-location-buffer",\1581,17770 + DEFVAR_PER_BUFFER ("local-abbrev-table",\1586,18034 + DEFVAR_BOOL ("abbrevs-changed",\1589,18177 + DEFVAR_BOOL ("abbrev-all-caps",\1594,18380 + DEFVAR_LISP ("pre-abbrev-expand-hook",\1598,18536 c-src/torture.c,197 (*tag1 tag118,452 @@ -241,28 +241,28 @@ pp287,1419 pp3(100,1518 c-src/getopt.h,666 -#define _GETOPT_H 19,801 -extern char *optarg;optarg31,1109 -extern int optind;45,1617 -extern int opterr;50,1743 -struct option73,2797 - const char *name;name76,2826 - char *name;name78,2852 - int has_arg;82,3009 - int *flag;flag83,3024 - int val;84,3037 -#define no_argument 89,3124 -#define required_argument 90,3147 -#define optional_argument 91,3175 -extern int getopt 98,3440 -extern int getopt 100,3544 -extern int getopt_long 102,3599 -extern int getopt_long_only 104,3731 -extern int _getopt_internal 109,3942 -extern int getopt 114,4140 -extern int getopt_long 115,4162 -extern int getopt_long_only 116,4189 -extern int _getopt_internal 118,4222 +#define _GETOPT_H 19,794 +extern char *optarg;optarg31,1102 +extern int optind;45,1610 +extern int opterr;50,1736 +struct option73,2790 + const char *name;name76,2819 + char *name;name78,2845 + int has_arg;82,3002 + int *flag;flag83,3017 + int val;84,3030 +#define no_argument 89,3117 +#define required_argument 90,3140 +#define optional_argument 91,3168 +extern int getopt 98,3433 +extern int getopt 100,3537 +extern int getopt_long 102,3592 +extern int getopt_long_only 104,3724 +extern int _getopt_internal 109,3935 +extern int getopt 114,4133 +extern int getopt_long 115,4155 +extern int getopt_long_only 116,4182 +extern int _getopt_internal 118,4215 c-src/etags.c,14175 char pot_etags_version[pot_etags_version81,3470 @@ -700,36 +700,36 @@ xmalloc 6536,174148 xrealloc 6545,174314 c-src/exit.c,99 - size_t n;28,961 - void EXFUN((*fn[fn29,975 - } __libc_atexit;30,1011 -DEFUN(exit,38,1252 + size_t n;28,967 + void EXFUN((*fn[fn29,981 + } __libc_atexit;30,1017 +DEFUN(exit,38,1258 c-src/exit.strange_suffix,99 - size_t n;28,961 - void EXFUN((*fn[fn29,975 - } __libc_atexit;30,1011 -DEFUN(exit,38,1252 + size_t n;28,967 + void EXFUN((*fn[fn29,981 + } __libc_atexit;30,1017 +DEFUN(exit,38,1258 c-src/sysdep.h,491 -#define ENTRY(21,865 -#define PSEUDO(26,972 - movl $SYS_##syscall_nam$SYS_##syscall_na31,1132 - movl $SYS_##syscall_name, %eax;eax31,1132 - int $0x80;32,1180 - test %eax,eax33,1210 - test %eax, %eax;eax33,1210 - jl syscall_error;34,1245 -#define XCHG_0 47,1562 -#define XCHG_1 48,1606 -#define XCHG_2 49,1648 -#define XCHG_3 50,1691 -#define XCHG_4 51,1734 -#define XCHG_5 52,1777 -#define r0 54,1821 -#define r1 55,1875 -#define scratch 56,1932 -#define MOVE(57,2001 +#define ENTRY(21,870 +#define PSEUDO(26,977 + movl $SYS_##syscall_nam$SYS_##syscall_na31,1137 + movl $SYS_##syscall_name, %eax;eax31,1137 + int $0x80;32,1185 + test %eax,eax33,1215 + test %eax, %eax;eax33,1215 + jl syscall_error;34,1250 +#define XCHG_0 47,1567 +#define XCHG_1 48,1611 +#define XCHG_2 49,1653 +#define XCHG_3 50,1696 +#define XCHG_4 51,1739 +#define XCHG_5 52,1782 +#define r0 54,1826 +#define r1 55,1880 +#define scratch 56,1937 +#define MOVE(57,2006 c-src/tab.c,196 static int count_words(15,263 @@ -2107,623 +2107,623 @@ struct Lisp_Misc_Any 1971,64806 ENUM_BF 1973,64866 struct Lisp_Marker1978,64980 ENUM_BF 1980,65001 -struct Lisp_Overlay2021,66838 - ENUM_BF 2034,67346 - SAVE_UNUSED,2047,67641 - SAVE_INTEGER,2048,67658 - SAVE_FUNCPOINTER,2049,67676 - SAVE_POINTER,2050,67698 - SAVE_OBJECT2051,67716 -enum { SAVE_SLOT_BITS 2055,67801 -enum { SAVE_VALUE_SLOTS 2058,67898 -enum { SAVE_TYPE_BITS 2062,68006 -enum Lisp_Save_Type2064,68072 - SAVE_TYPE_INT_INT 2066,68096 - SAVE_TYPE_INT_INT_INT2067,68169 - SAVE_TYPE_OBJ_OBJ 2069,68259 - SAVE_TYPE_OBJ_OBJ_OBJ 2070,68330 - SAVE_TYPE_OBJ_OBJ_OBJ_OBJ2071,68411 - SAVE_TYPE_PTR_INT 2073,68506 - SAVE_TYPE_PTR_OBJ 2074,68579 - SAVE_TYPE_PTR_PTR 2075,68651 - SAVE_TYPE_FUNCPTR_PTR_OBJ2076,68724 - SAVE_TYPE_MEMORY 2080,68882 -typedef void (*voidfuncptr)voidfuncptr2108,69836 -struct Lisp_Save_Value2110,69873 - ENUM_BF 2112,69900 - void *pointer;pointer2125,70555 - voidfuncptr funcpointer;2126,70576 - ptrdiff_t integer;2127,70607 - Lisp_Object object;2128,70632 - } data[data2129,70658 -save_type 2134,70752 -XSAVE_POINTER 2143,70982 -set_save_pointer 2149,71144 -XSAVE_FUNCPOINTER 2155,71326 -XSAVE_INTEGER 2164,71546 -set_save_integer 2170,71708 -XSAVE_OBJECT 2179,71929 -struct Lisp_Finalizer2186,72106 - struct Lisp_Misc_Any base;2188,72132 - struct Lisp_Finalizer *prev;prev2191,72220 - struct Lisp_Finalizer *next;next2192,72253 - Lisp_Object function;2197,72490 -struct Lisp_Free2201,72581 - ENUM_BF 2203,72602 -union Lisp_Misc2212,72882 - struct Lisp_Misc_Any u_any;2214,72902 - struct Lisp_Free u_free;2215,72973 - struct Lisp_Marker u_marker;2216,73002 - struct Lisp_Overlay u_overlay;2217,73035 - struct Lisp_Save_Value u_save_value;2218,73070 - struct Lisp_Finalizer u_finalizer;2219,73111 -XMISC 2223,73181 -XMISCANY 2229,73270 -XMISCTYPE 2236,73379 -XMARKER 2242,73467 -XOVERLAY 2249,73582 -XSAVE_VALUE 2256,73703 -XFINALIZER 2263,73832 -struct Lisp_Intfwd2274,74117 - enum Lisp_Fwd_Type type;2276,74140 - EMACS_INT *intvar;intvar2277,74190 -struct Lisp_Boolfwd2284,74411 - enum Lisp_Fwd_Type type;2286,74435 - bool *boolvar;boolvar2287,74486 -struct Lisp_Objfwd2294,74702 - enum Lisp_Fwd_Type type;2296,74725 - Lisp_Object *objvar;objvar2297,74775 -struct Lisp_Buffer_Objfwd2302,74934 - enum Lisp_Fwd_Type type;2304,74964 - int offset;2305,75021 - Lisp_Object predicate;2307,75113 -struct Lisp_Buffer_Local_Value2334,76470 - bool_bf local_if_set 2338,76615 - bool_bf frame_local 2341,76797 - bool_bf found 2344,76939 - union Lisp_Fwd *fwd;fwd2346,77041 - Lisp_Object where;2348,77184 - Lisp_Object defcell;2351,77310 - Lisp_Object valcell;2357,77614 -struct Lisp_Kboard_Objfwd2362,77729 - enum Lisp_Fwd_Type type;2364,77759 - int offset;2365,77816 -union Lisp_Fwd2368,77838 - struct Lisp_Intfwd u_intfwd;2370,77857 - struct Lisp_Boolfwd u_boolfwd;2371,77890 - struct Lisp_Objfwd u_objfwd;2372,77925 - struct Lisp_Buffer_Objfwd u_buffer_objfwd;2373,77958 - struct Lisp_Kboard_Objfwd u_kboard_objfwd;2374,78005 -XFWDTYPE 2378,78084 -XBUFFER_OBJFWD 2384,78180 -struct Lisp_Float2391,78316 - double data;2395,78354 - struct Lisp_Float *chain;chain2396,78373 - } u;2397,78405 -XFLOAT_DATA 2401,78434 - IEEE_FLOATING_POINT2415,78943 -#define _UCHAR_T2423,79266 -typedef unsigned char UCHAR;2424,79283 -enum Lisp_Compiled2429,79366 - COMPILED_ARGLIST 2431,79389 - COMPILED_BYTECODE 2432,79415 - COMPILED_CONSTANTS 2433,79442 - COMPILED_STACK_DEPTH 2434,79470 - COMPILED_DOC_STRING 2435,79500 - COMPILED_INTERACTIVE 2436,79529 -enum char_bits2443,79831 - CHAR_ALT 2445,79850 - CHAR_SUPER 2446,79876 - CHAR_HYPER 2447,79904 - CHAR_SHIFT 2448,79932 - CHAR_CTL 2449,79960 - CHAR_META 2450,79986 - CHAR_MODIFIER_MASK 2452,80014 - CHARACTERBITS 2457,80209 -LISP_MACRO_DEFUN 2462,80267 -NATNUMP 2470,80409 -RANGED_INTEGERP 2476,80490 -#define TYPE_RANGED_INTEGERP(2481,80612 -LISP_MACRO_DEFUN 2486,80797 -VECTORP 2500,81270 -OVERLAYP 2505,81373 -SAVE_VALUEP 2510,81472 -FINALIZERP 2516,81578 -AUTOLOADP 2522,81682 -BUFFER_OBJFWDP 2528,81773 -PSEUDOVECTOR_TYPEP 2534,81871 -PSEUDOVECTORP 2542,82124 -WINDOW_CONFIGURATIONP 2558,82476 -PROCESSP 2564,82586 -WINDOWP 2570,82670 -TERMINALP 2576,82752 -SUBRP 2582,82838 -COMPILEDP 2588,82916 -BUFFERP 2594,83002 -CHAR_TABLE_P 2600,83084 -SUB_CHAR_TABLE_P 2606,83175 -BOOL_VECTOR_P 2612,83274 -FRAMEP 2618,83367 -IMAGEP 2625,83484 -ARRAYP 2632,83589 -CHECK_LIST 2638,83708 -LISP_MACRO_DEFUN_VOID 2643,83789 -CHECK_STRING_CAR 2653,84086 -CHECK_CONS 2658,84190 -CHECK_VECTOR 2663,84270 -CHECK_BOOL_VECTOR 2668,84356 -CHECK_VECTOR_OR_STRING 2674,84533 -CHECK_ARRAY 2683,84707 -CHECK_BUFFER 2688,84815 -CHECK_WINDOW 2693,84901 -CHECK_PROCESS 2699,85007 -CHECK_NATNUM 2705,85103 -#define CHECK_RANGED_INTEGER(2710,85180 -#define CHECK_TYPE_RANGED_INTEGER(2721,85563 -#define CHECK_NUMBER_COERCE_MARKER(2729,85833 -XFLOATINT 2738,86086 -CHECK_NUMBER_OR_FLOAT 2744,86157 -#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(2749,86256 -CHECK_NUMBER_CAR 2760,86666 -CHECK_NUMBER_CDR 2768,86788 -#define DEFUN(2803,88383 -#define DEFUN(2812,88851 -FUNCTIONP 2822,89206 -extern void defsubr 2829,89358 -enum maxargs2831,89401 - MANY 2833,89418 - UNEVALLED 2834,89433 -#define CALLMANY(2838,89536 -#define CALLN(2844,89889 -extern void defvar_lisp 2846,89959 -extern void defvar_lisp_nopro 2847,90036 -extern void defvar_bool 2848,90119 -extern void defvar_int 2849,90190 -extern void defvar_kboard 2850,90264 -#define DEFVAR_LISP(2869,91094 -#define DEFVAR_LISP_NOPRO(2874,91266 -#define DEFVAR_BOOL(2879,91448 -#define DEFVAR_INT(2884,91621 -#define DEFVAR_BUFFER_DEFAULTS(2890,91792 -#define DEFVAR_KBOARD(2896,91996 -typedef jmp_buf sys_jmp_buf;2906,92320 -# define sys_setjmp(2907,92349 -# define sys_longjmp(2908,92384 -typedef sigjmp_buf sys_jmp_buf;2910,92456 -# define sys_setjmp(2911,92488 -# define sys_longjmp(2912,92528 -typedef jmp_buf sys_jmp_buf;2916,92687 -# define sys_setjmp(2917,92716 -# define sys_longjmp(2918,92750 -enum specbind_tag 2943,93802 - SPECPDL_UNWIND,2944,93822 - SPECPDL_UNWIND_PTR,2945,93891 - SPECPDL_UNWIND_INT,2946,93942 - SPECPDL_UNWIND_VOID,2947,93990 - SPECPDL_BACKTRACE,2948,94044 - SPECPDL_LET,2949,94102 - SPECPDL_LET_LOCAL,2951,94232 - SPECPDL_LET_DEFAULT 2952,94289 -union specbinding2955,94361 - ENUM_BF 2957,94383 - ENUM_BF 2959,94440 - ENUM_BF 2964,94570 - ENUM_BF 2969,94693 - ENUM_BF 2974,94811 - ENUM_BF 2978,94916 - ENUM_BF 2983,95091 -enum handlertype 3021,96407 -enum handlertype { CATCHER,3021,96407 -enum handlertype { CATCHER, CONDITION_CASE 3021,96407 -struct handler3023,96454 - enum handlertype type;3025,96471 - Lisp_Object tag_or_ch;3026,96496 - Lisp_Object val;3027,96521 - struct handler *next;next3028,96540 - struct handler *nextfree;nextfree3029,96564 - Lisp_Object *bytecode_top;bytecode_top3036,96922 - int bytecode_dest;3037,96951 - struct gcpro *gcpro;gcpro3042,97188 - sys_jmp_buf jmp;3044,97218 - EMACS_INT lisp_eval_depth;3045,97237 - ptrdiff_t pdlcount;3046,97266 - int poll_suppress_count;3047,97288 - int interrupt_input_blocked;3048,97315 - struct byte_stack *byte_stack;byte_stack3049,97346 -#define PUSH_HANDLER(3053,97443 -extern Lisp_Object memory_signal_data;3075,98149 -extern char *stack_bottom;stack_bottom3079,98282 -extern void process_pending_signals 3097,99099 -extern bool volatile pending_signals;3098,99143 -extern void process_quit_flag 3100,99182 -#define QUIT 3101,99220 -#define QUITP 3112,99470 -extern Lisp_Object Vascii_downcase_table;3114,99531 -extern Lisp_Object Vascii_canon_table;3115,99573 -extern struct gcpro *gcprolist;gcprolist3130,100280 -struct gcpro3132,100313 - struct gcpro *next;next3134,100328 - volatile Lisp_Object *var;var3137,100397 - ptrdiff_t nvars;3140,100479 - const char *name;name3144,100564 - int lineno;3147,100620 - int idx;3150,100681 - int level;3153,100717 -#define GC_USE_GCPROS_AS_BEFORE 3171,101294 -#define GC_MAKE_GCPROS_NOOPS 3172,101329 -#define GC_MARK_STACK_CHECK_GCPROS 3173,101361 -#define GC_USE_GCPROS_CHECK_ZOMBIES 3174,101398 -#define GC_MARK_STACK 3177,101459 -#define BYTE_MARK_STACK 3181,101559 -#define GCPRO1(3190,101830 -#define GCPRO2(3191,101870 -#define GCPRO3(3192,101936 -#define GCPRO4(3194,102031 -#define GCPRO5(3196,102151 -#define GCPRO6(3198,102296 -#define GCPRO7(3201,102471 -#define UNGCPRO 3202,102550 -#define GCPRO1(3208,102650 -#define GCPRO2(3212,102772 -#define GCPRO3(3217,102964 -#define GCPRO4(3223,103226 -#define GCPRO5(3230,103557 -#define GCPRO6(3238,103958 -#define GCPRO7(3247,104428 -#define UNGCPRO 3257,104968 -extern int gcpro_level;3261,105037 -#define GCPRO1(3263,105062 -#define GCPRO2(3269,105296 -#define GCPRO3(3278,105714 -#define GCPRO4(3289,106271 -#define GCPRO5(3302,106969 -#define GCPRO6(3317,107809 -#define GCPRO7(3334,108790 -#define UNGCPRO 3353,109913 -#define RETURN_UNGCPRO(3363,110180 -void staticpro 3375,110453 -vcopy 3384,110654 -set_hash_key_slot 3393,110929 -set_hash_value_slot 3399,111068 -set_symbol_function 3408,111303 -set_symbol_plist 3414,111418 -set_symbol_next 3420,111521 -blv_found 3428,111694 -set_overlay_plist 3437,111877 -string_intervals 3445,112028 -set_string_intervals 3453,112150 -set_char_table_defalt 3462,112352 -set_char_table_purpose 3467,112464 -set_char_table_extras 3475,112633 -set_char_table_contents 3482,112842 -set_sub_char_table_contents 3489,113037 -extern Lisp_Object indirect_function 3495,113196 -extern Lisp_Object find_symbol_value 3496,113248 -enum Arith_Comparison 3497,113300 - ARITH_EQUAL,3498,113324 - ARITH_NOTEQUAL,3499,113339 - ARITH_LESS,3500,113357 - ARITH_GRTR,3501,113371 - ARITH_LESS_OR_EQUAL,3502,113385 - ARITH_GRTR_OR_EQUAL3503,113408 -extern Lisp_Object arithcompare 3505,113433 -#define INTEGER_TO_CONS(3511,113759 -#define CONS_TO_INTEGER(3529,114622 -extern intmax_t cons_to_signed 3533,114837 -extern uintmax_t cons_to_unsigned 3534,114903 -extern struct Lisp_Symbol *indirect_variable indirect_variable3536,114964 -extern _Noreturn void args_out_of_range 3537,115033 -extern _Noreturn void args_out_of_range_3 3538,115101 -extern Lisp_Object do_symval_forwarding 3540,115192 -extern void set_internal 3541,115252 -extern void syms_of_data 3542,115324 -extern void swap_in_global_binding 3543,115357 -extern void syms_of_cmds 3546,115441 -extern void keys_of_cmds 3547,115474 -extern Lisp_Object detect_coding_system 3550,115536 -extern void init_coding 3552,115689 -extern void init_coding_once 3553,115721 -extern void syms_of_coding 3554,115758 -extern ptrdiff_t chars_in_text 3557,115825 -extern ptrdiff_t multibyte_chars_in_text 3558,115892 -extern void syms_of_character 3559,115969 -extern void init_charset 3562,116037 -extern void init_charset_once 3563,116070 -extern void syms_of_charset 3564,116108 -extern void init_syntax_once 3569,116228 -extern void syms_of_syntax 3570,116265 -enum { NEXT_ALMOST_PRIME_LIMIT 3573,116326 -extern EMACS_INT next_almost_prime 3574,116365 -enum constype 3739,123817 -enum constype {CONSTYPE_HEAP,CONSTYPE_HEAP3739,123817 -enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}CONSTYPE_PURE3739,123817 -extern Lisp_Object listn 3740,123863 -list2i 3745,124007 -list3i 3751,124116 -list4i 3757,124255 -extern Lisp_Object make_uninit_bool_vector 3763,124407 -extern Lisp_Object bool_vector_fill 3764,124463 -extern _Noreturn void string_overflow 3765,124527 -extern Lisp_Object make_string 3766,124573 -extern Lisp_Object make_formatted_string 3767,124631 -extern Lisp_Object make_multibyte_string 3779,124985 -extern Lisp_Object make_event_array 3780,125064 -extern Lisp_Object make_uninit_string 3781,125128 -extern Lisp_Object make_uninit_multibyte_string 3782,125179 -extern Lisp_Object make_string_from_bytes 3783,125251 -extern Lisp_Object make_specified_string 3784,125331 -extern Lisp_Object make_pure_string 3786,125423 -extern Lisp_Object make_pure_c_string 3787,125503 -build_pure_c_string 3792,125659 -build_string 3801,125864 -extern Lisp_Object pure_cons 3806,125942 -extern void make_byte_code 3807,125999 -extern struct Lisp_Vector *allocate_vector allocate_vector3808,126050 -make_uninit_vector 3820,126435 -make_uninit_sub_char_table 3833,126654 -extern struct Lisp_Vector *allocate_pseudovector allocate_pseudovector3844,126963 -#define ALLOCATE_PSEUDOVECTOR(3850,127198 -#define ALLOCATE_ZEROED_PSEUDOVECTOR(3858,127534 -extern bool gc_in_progress;3863,127735 -extern bool abort_on_gc;3864,127763 -extern Lisp_Object make_float 3865,127788 -extern void display_malloc_warning 3866,127828 -extern ptrdiff_t inhibit_garbage_collection 3867,127871 -extern Lisp_Object make_save_int_int_int 3868,127923 -extern Lisp_Object make_save_obj_obj_obj_obj 3869,127999 -extern Lisp_Object make_save_ptr 3871,128109 -extern Lisp_Object make_save_ptr_int 3872,128152 -extern Lisp_Object make_save_ptr_ptr 3873,128210 -extern Lisp_Object make_save_funcptr_ptr_obj 3874,128265 -extern Lisp_Object make_save_memory 3876,128361 -extern void free_save_value 3877,128425 -extern Lisp_Object build_overlay 3878,128468 -extern void free_marker 3879,128542 -extern void free_cons 3880,128581 -extern void init_alloc_once 3881,128625 -extern void init_alloc 3882,128661 -extern void syms_of_alloc 3883,128692 -extern struct buffer * allocate_buffer 3884,128726 -extern int valid_lisp_object_p 3885,128773 -extern int relocatable_string_data_p 3886,128819 -extern void check_cons_list 3888,128898 -INLINE void 3890,128940 -extern void *r_alloc r_alloc3895,129061 -#define FLOAT_TO_STRING_BUFSIZE 3927,130524 -extern int openp 3957,131673 -extern Lisp_Object string_to_number 3959,131783 -extern void map_obarray 3960,131846 -extern void dir_warning 3962,131960 -extern void init_obarray 3963,132013 -extern void init_lread 3964,132046 -extern void syms_of_lread 3965,132077 -intern 3968,132131 -intern_c_string 3974,132219 -extern EMACS_INT lisp_eval_depth;3980,132332 -extern Lisp_Object Vautoload_queue;3981,132366 -extern Lisp_Object Vrun_hooks;3982,132402 -extern Lisp_Object Vsignaling_function;3983,132433 -extern Lisp_Object inhibit_lisp_code;3984,132473 -extern struct handler *handlerlist;handlerlist3985,132511 -extern void run_hook 3994,132753 -extern void run_hook_with_args_2 3995,132789 -extern Lisp_Object run_hook_with_args 3996,132863 -extern _Noreturn void xsignal 3999,133022 -extern _Noreturn void xsignal0 4000,133080 -extern _Noreturn void xsignal1 4001,133126 -extern _Noreturn void xsignal2 4002,133185 -extern _Noreturn void xsignal3 4003,133257 -extern _Noreturn void signal_error 4005,133346 -extern Lisp_Object eval_sub 4006,133410 -extern Lisp_Object apply1 4007,133458 -extern Lisp_Object call0 4008,133512 -extern Lisp_Object call1 4009,133552 -extern Lisp_Object call2 4010,133605 -extern Lisp_Object call3 4011,133671 -extern Lisp_Object call4 4012,133750 -extern Lisp_Object call5 4013,133842 -extern Lisp_Object call6 4014,133947 -extern Lisp_Object call7 4015,134065 -extern Lisp_Object internal_catch 4016,134196 -extern Lisp_Object internal_lisp_condition_case 4017,134289 -extern Lisp_Object internal_condition_case 4018,134378 -extern Lisp_Object internal_condition_case_1 4019,134491 -extern Lisp_Object internal_condition_case_2 4020,134626 -extern Lisp_Object internal_condition_case_n4021,134787 -extern void specbind 4024,134983 -extern void record_unwind_protect 4025,135032 -extern void record_unwind_protect_ptr 4026,135105 -extern void record_unwind_protect_int 4027,135172 -extern void record_unwind_protect_void 4028,135233 -extern void record_unwind_protect_nothing 4029,135291 -extern void clear_unwind_protect 4030,135341 -extern void set_unwind_protect 4031,135387 -extern void set_unwind_protect_ptr 4032,135468 -extern Lisp_Object unbind_to 4033,135543 -extern _Noreturn void error 4034,135598 -fast_string_match_ignore_case 4136,140086 -extern ptrdiff_t fast_c_string_match_ignore_case 4141,140236 -extern ptrdiff_t fast_looking_at 4143,140333 -extern ptrdiff_t find_newline 4145,140472 -extern ptrdiff_t scan_newline 4147,140601 -extern ptrdiff_t scan_newline_from_point 4149,140704 -extern ptrdiff_t find_newline_no_quit 4150,140784 -extern ptrdiff_t find_before_next_newline 4152,140881 -extern void syms_of_search 4154,140979 -extern void clear_regexp_cache 4155,141014 -extern Lisp_Object Vminibuffer_list;4159,141084 -extern Lisp_Object last_minibuf_string;4160,141121 -extern Lisp_Object get_minibuffer 4161,141161 -extern void init_minibuf_once 4162,141208 -extern void syms_of_minibuf 4163,141246 -extern void syms_of_callint 4167,141313 -extern void syms_of_casefiddle 4171,141383 -extern void keys_of_casefiddle 4172,141422 -extern void init_casetab_once 4176,141492 -extern void syms_of_casetab 4177,141530 -extern Lisp_Object echo_message_buffer;4181,141598 -extern struct kboard *echo_kboard;echo_kboard4182,141638 -extern void cancel_echoing 4183,141673 -extern Lisp_Object last_undo_boundary;4184,141708 -extern bool input_pending;4185,141747 -extern sigjmp_buf return_to_command_loop;4187,141810 -extern Lisp_Object menu_bar_items 4189,141859 -extern Lisp_Object tool_bar_items 4190,141908 -extern void discard_mouse_events 4191,141964 -void handle_input_available_signal 4193,142025 -extern Lisp_Object pending_funcalls;4195,142074 -extern bool detect_input_pending 4196,142111 -extern bool detect_input_pending_ignore_squeezables 4197,142152 -extern bool detect_input_pending_run_timers 4198,142212 -extern void safe_run_hooks 4199,142264 -extern void cmd_error_internal 4200,142306 -extern Lisp_Object command_loop_1 4201,142366 -extern Lisp_Object read_menu_command 4202,142408 -extern Lisp_Object recursive_edit_1 4203,142453 -extern void record_auto_save 4204,142497 -extern void force_auto_save_soon 4205,142534 -extern void init_keyboard 4206,142575 -extern void syms_of_keyboard 4207,142609 -extern void keys_of_keyboard 4208,142646 -extern ptrdiff_t current_column 4211,142712 -extern void invalidate_current_column 4212,142752 -extern bool indented_beyond_p 4213,142798 -extern void syms_of_indent 4214,142863 -extern void store_frame_param 4217,142926 -extern void store_in_alist 4218,143000 -extern Lisp_Object do_switch_frame 4219,143070 -extern Lisp_Object get_frame_param 4220,143143 -extern void frames_discard_buffer 4221,143209 -extern void syms_of_frame 4222,143258 -extern char **initial_argv;initial_argv4225,143320 -extern int initial_argc;4226,143348 -extern bool display_arg;4228,143423 -extern Lisp_Object decode_env_path 4230,143455 -extern Lisp_Object empty_unibyte_string,4231,143526 -extern Lisp_Object empty_unibyte_string, empty_multibyte_string;4231,143526 -extern _Noreturn void terminate_due_to_signal 4232,143591 -extern Lisp_Object Vlibrary_cache;4234,143666 -void fixup_locale 4237,143727 -void synchronize_system_messages_locale 4238,143753 -void synchronize_system_time_locale 4239,143801 -INLINE void fixup_locale 4241,143851 -INLINE void synchronize_system_messages_locale 4242,143886 -INLINE void synchronize_system_time_locale 4243,143943 -extern void shut_down_emacs 4245,144003 -extern bool noninteractive;4248,144129 -extern bool no_site_lisp;4251,144221 -extern int daemon_pipe[daemon_pipe4256,144389 -#define IS_DAEMON 4257,144416 -#define DAEMON_RUNNING 4258,144456 -extern void *w32_daemon_event;w32_daemon_event4260,144524 -#define IS_DAEMON 4261,144555 -#define DAEMON_RUNNING 4262,144600 -extern bool fatal_error_in_progress;4266,144721 -extern bool inhibit_window_system;4269,144827 -extern bool running_asynch_code;4271,144920 -extern void kill_buffer_processes 4274,144983 -extern int wait_reading_process_output 4275,145032 -# define WAIT_READING_MAX 4281,145419 -# define WAIT_READING_MAX 4283,145491 -extern void add_timer_wait_descriptor 4286,145555 -extern void add_keyboard_wait_descriptor 4288,145607 -extern void delete_keyboard_wait_descriptor 4289,145655 -extern void add_gpm_wait_descriptor 4291,145722 -extern void delete_gpm_wait_descriptor 4292,145765 -extern void init_process_emacs 4294,145818 -extern void syms_of_process 4295,145857 -extern void setup_process_coding_systems 4296,145893 -extern int child_setup 4302,146013 -extern void init_callproc_1 4303,146081 -extern void init_callproc 4304,146117 -extern void set_initial_environment 4305,146151 -extern void syms_of_callproc 4306,146195 -extern Lisp_Object read_doc_string 4309,146258 -extern Lisp_Object get_doc_string 4310,146308 -extern void syms_of_doc 4311,146369 -extern int read_bytecode_char 4312,146401 -extern void syms_of_bytecode 4315,146470 -extern struct byte_stack *byte_stack_list;byte_stack_list4316,146507 -extern void mark_byte_stack 4318,146570 -extern void unmark_byte_stack 4320,146613 -extern Lisp_Object exec_byte_code 4321,146651 -extern void init_macros 4325,146801 -extern void syms_of_macros 4326,146833 -extern void truncate_undo_list 4329,146895 -extern void record_insert 4330,146945 -extern void record_delete 4331,146995 -extern void record_first_change 4332,147053 -extern void record_change 4333,147093 -extern void record_property_change 4334,147143 -extern void syms_of_undo 4337,147285 -extern void report_interval_modification 4340,147349 -extern void syms_of_menu 4343,147445 -extern void syms_of_xmenu 4346,147506 -extern char *get_current_dir_name get_current_dir_name4356,147708 -extern void stuff_char 4358,147757 -extern void init_foreground_group 4359,147790 -extern void sys_subshell 4360,147832 -extern void sys_suspend 4361,147865 -extern void discard_tty_input 4362,147897 -extern void init_sys_modes 4363,147935 -extern void reset_sys_modes 4364,147991 -extern void init_all_sys_modes 4365,148048 -extern void reset_all_sys_modes 4366,148087 -extern void child_setup_tty 4367,148127 -extern void setup_pty 4368,148162 -extern int set_window_size 4369,148191 -extern EMACS_INT get_random 4370,148235 -extern void seed_random 4371,148271 -extern void init_random 4372,148316 -extern void emacs_backtrace 4373,148348 -extern _Noreturn void emacs_abort 4374,148383 -extern void xputenv 4527,152697 -extern char *egetenv_internal egetenv_internal4529,152734 -egetenv 4532,152806 -extern void init_system_name 4539,153009 -#define eabs(4545,153302 -#define make_fixnum_or_float(4550,153435 -enum MAX_ALLOCA 4556,153686 -enum MAX_ALLOCA { MAX_ALLOCA 4556,153686 -extern void *record_xmalloc record_xmalloc4558,153731 -#define USE_SAFE_ALLOCA 4560,153797 -#define AVAIL_ALLOCA(4564,153930 -#define SAFE_ALLOCA(4568,154041 -#define SAFE_NALLOCA(4576,154382 -#define SAFE_ALLOCA_STRING(4590,154858 -#define SAFE_FREE(4598,155110 -#define SAFE_ALLOCA_LISP(4625,155688 -# define USE_STACK_LISP_OBJECTS 4652,156810 -# undef USE_STACK_LISP_OBJECTS4658,156976 -# define USE_STACK_LISP_OBJECTS 4659,157007 -enum { defined_GC_CHECK_STRING_BYTES 4663,157082 -enum { defined_GC_CHECK_STRING_BYTES 4665,157135 -union Aligned_Cons4670,157269 - struct Lisp_Cons s;4672,157290 - double d;4673,157312 - double d; intmax_t i;4673,157312 - double d; intmax_t i; void *p;p4673,157312 -union Aligned_String4676,157349 - struct Lisp_String s;4678,157372 - double d;4679,157396 - double d; intmax_t i;4679,157396 - double d; intmax_t i; void *p;p4679,157396 - USE_STACK_CONS 4689,157704 - USE_STACK_STRING 4691,157810 -#define STACK_CONS(4699,158147 -#define AUTO_CONS_EXPR(4701,158244 -#define AUTO_CONS(4709,158607 -#define AUTO_LIST1(4710,158678 -#define AUTO_LIST2(4712,158786 -#define AUTO_LIST3(4716,158941 -#define AUTO_LIST4(4720,159116 -extern const char *verify_ascii verify_ascii4730,159453 -# define verify_ascii(4732,159507 -#define AUTO_STRING(4740,159815 -#define FOR_EACH_TAIL(4752,160279 -#define FOR_EACH_ALIST_VALUE(4766,160770 -maybe_gc 4774,161057 -functionp 4784,161296 +struct Lisp_Overlay2021,66841 + ENUM_BF 2034,67349 + SAVE_UNUSED,2047,67644 + SAVE_INTEGER,2048,67661 + SAVE_FUNCPOINTER,2049,67679 + SAVE_POINTER,2050,67701 + SAVE_OBJECT2051,67719 +enum { SAVE_SLOT_BITS 2055,67804 +enum { SAVE_VALUE_SLOTS 2058,67901 +enum { SAVE_TYPE_BITS 2062,68009 +enum Lisp_Save_Type2064,68075 + SAVE_TYPE_INT_INT 2066,68099 + SAVE_TYPE_INT_INT_INT2067,68172 + SAVE_TYPE_OBJ_OBJ 2069,68262 + SAVE_TYPE_OBJ_OBJ_OBJ 2070,68333 + SAVE_TYPE_OBJ_OBJ_OBJ_OBJ2071,68414 + SAVE_TYPE_PTR_INT 2073,68509 + SAVE_TYPE_PTR_OBJ 2074,68582 + SAVE_TYPE_PTR_PTR 2075,68654 + SAVE_TYPE_FUNCPTR_PTR_OBJ2076,68727 + SAVE_TYPE_MEMORY 2080,68885 +typedef void (*voidfuncptr)voidfuncptr2108,69839 +struct Lisp_Save_Value2110,69876 + ENUM_BF 2112,69903 + void *pointer;pointer2125,70558 + voidfuncptr funcpointer;2126,70579 + ptrdiff_t integer;2127,70610 + Lisp_Object object;2128,70635 + } data[data2129,70661 +save_type 2134,70755 +XSAVE_POINTER 2143,70985 +set_save_pointer 2149,71147 +XSAVE_FUNCPOINTER 2155,71329 +XSAVE_INTEGER 2164,71549 +set_save_integer 2170,71711 +XSAVE_OBJECT 2179,71932 +struct Lisp_Finalizer2186,72109 + struct Lisp_Misc_Any base;2188,72135 + struct Lisp_Finalizer *prev;prev2191,72223 + struct Lisp_Finalizer *next;next2192,72256 + Lisp_Object function;2197,72493 +struct Lisp_Free2201,72584 + ENUM_BF 2203,72605 +union Lisp_Misc2212,72885 + struct Lisp_Misc_Any u_any;2214,72905 + struct Lisp_Free u_free;2215,72976 + struct Lisp_Marker u_marker;2216,73005 + struct Lisp_Overlay u_overlay;2217,73038 + struct Lisp_Save_Value u_save_value;2218,73073 + struct Lisp_Finalizer u_finalizer;2219,73114 +XMISC 2223,73184 +XMISCANY 2229,73273 +XMISCTYPE 2236,73382 +XMARKER 2242,73470 +XOVERLAY 2249,73585 +XSAVE_VALUE 2256,73706 +XFINALIZER 2263,73835 +struct Lisp_Intfwd2274,74120 + enum Lisp_Fwd_Type type;2276,74143 + EMACS_INT *intvar;intvar2277,74193 +struct Lisp_Boolfwd2284,74414 + enum Lisp_Fwd_Type type;2286,74438 + bool *boolvar;boolvar2287,74489 +struct Lisp_Objfwd2294,74705 + enum Lisp_Fwd_Type type;2296,74728 + Lisp_Object *objvar;objvar2297,74778 +struct Lisp_Buffer_Objfwd2302,74937 + enum Lisp_Fwd_Type type;2304,74967 + int offset;2305,75024 + Lisp_Object predicate;2307,75116 +struct Lisp_Buffer_Local_Value2334,76473 + bool_bf local_if_set 2338,76618 + bool_bf frame_local 2341,76800 + bool_bf found 2344,76942 + union Lisp_Fwd *fwd;fwd2346,77044 + Lisp_Object where;2348,77187 + Lisp_Object defcell;2351,77313 + Lisp_Object valcell;2357,77617 +struct Lisp_Kboard_Objfwd2362,77732 + enum Lisp_Fwd_Type type;2364,77762 + int offset;2365,77819 +union Lisp_Fwd2368,77841 + struct Lisp_Intfwd u_intfwd;2370,77860 + struct Lisp_Boolfwd u_boolfwd;2371,77893 + struct Lisp_Objfwd u_objfwd;2372,77928 + struct Lisp_Buffer_Objfwd u_buffer_objfwd;2373,77961 + struct Lisp_Kboard_Objfwd u_kboard_objfwd;2374,78008 +XFWDTYPE 2378,78087 +XBUFFER_OBJFWD 2384,78183 +struct Lisp_Float2391,78319 + double data;2395,78357 + struct Lisp_Float *chain;chain2396,78376 + } u;2397,78408 +XFLOAT_DATA 2401,78437 + IEEE_FLOATING_POINT2415,78946 +#define _UCHAR_T2423,79269 +typedef unsigned char UCHAR;2424,79286 +enum Lisp_Compiled2429,79369 + COMPILED_ARGLIST 2431,79392 + COMPILED_BYTECODE 2432,79418 + COMPILED_CONSTANTS 2433,79445 + COMPILED_STACK_DEPTH 2434,79473 + COMPILED_DOC_STRING 2435,79503 + COMPILED_INTERACTIVE 2436,79532 +enum char_bits2443,79834 + CHAR_ALT 2445,79853 + CHAR_SUPER 2446,79879 + CHAR_HYPER 2447,79907 + CHAR_SHIFT 2448,79935 + CHAR_CTL 2449,79963 + CHAR_META 2450,79989 + CHAR_MODIFIER_MASK 2452,80017 + CHARACTERBITS 2457,80212 +LISP_MACRO_DEFUN 2462,80270 +NATNUMP 2470,80412 +RANGED_INTEGERP 2476,80493 +#define TYPE_RANGED_INTEGERP(2481,80615 +LISP_MACRO_DEFUN 2486,80800 +VECTORP 2500,81273 +OVERLAYP 2505,81376 +SAVE_VALUEP 2510,81475 +FINALIZERP 2516,81581 +AUTOLOADP 2522,81685 +BUFFER_OBJFWDP 2528,81776 +PSEUDOVECTOR_TYPEP 2534,81874 +PSEUDOVECTORP 2542,82127 +WINDOW_CONFIGURATIONP 2558,82479 +PROCESSP 2564,82589 +WINDOWP 2570,82673 +TERMINALP 2576,82755 +SUBRP 2582,82841 +COMPILEDP 2588,82919 +BUFFERP 2594,83005 +CHAR_TABLE_P 2600,83087 +SUB_CHAR_TABLE_P 2606,83178 +BOOL_VECTOR_P 2612,83277 +FRAMEP 2618,83370 +IMAGEP 2625,83487 +ARRAYP 2632,83592 +CHECK_LIST 2638,83711 +LISP_MACRO_DEFUN_VOID 2643,83792 +CHECK_STRING_CAR 2653,84089 +CHECK_CONS 2658,84193 +CHECK_VECTOR 2663,84273 +CHECK_BOOL_VECTOR 2668,84359 +CHECK_VECTOR_OR_STRING 2674,84536 +CHECK_ARRAY 2683,84710 +CHECK_BUFFER 2688,84818 +CHECK_WINDOW 2693,84904 +CHECK_PROCESS 2699,85010 +CHECK_NATNUM 2705,85106 +#define CHECK_RANGED_INTEGER(2710,85183 +#define CHECK_TYPE_RANGED_INTEGER(2721,85566 +#define CHECK_NUMBER_COERCE_MARKER(2729,85836 +XFLOATINT 2738,86089 +CHECK_NUMBER_OR_FLOAT 2744,86160 +#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(2749,86259 +CHECK_NUMBER_CAR 2760,86669 +CHECK_NUMBER_CDR 2768,86791 +#define DEFUN(2803,88386 +#define DEFUN(2812,88854 +FUNCTIONP 2822,89209 +extern void defsubr 2829,89361 +enum maxargs2831,89404 + MANY 2833,89421 + UNEVALLED 2834,89436 +#define CALLMANY(2838,89539 +#define CALLN(2844,89892 +extern void defvar_lisp 2846,89962 +extern void defvar_lisp_nopro 2847,90039 +extern void defvar_bool 2848,90122 +extern void defvar_int 2849,90193 +extern void defvar_kboard 2850,90267 +#define DEFVAR_LISP(2869,91097 +#define DEFVAR_LISP_NOPRO(2874,91269 +#define DEFVAR_BOOL(2879,91451 +#define DEFVAR_INT(2884,91624 +#define DEFVAR_BUFFER_DEFAULTS(2890,91795 +#define DEFVAR_KBOARD(2896,91999 +typedef jmp_buf sys_jmp_buf;2906,92323 +# define sys_setjmp(2907,92352 +# define sys_longjmp(2908,92387 +typedef sigjmp_buf sys_jmp_buf;2910,92459 +# define sys_setjmp(2911,92491 +# define sys_longjmp(2912,92531 +typedef jmp_buf sys_jmp_buf;2916,92690 +# define sys_setjmp(2917,92719 +# define sys_longjmp(2918,92753 +enum specbind_tag 2943,93805 + SPECPDL_UNWIND,2944,93825 + SPECPDL_UNWIND_PTR,2945,93894 + SPECPDL_UNWIND_INT,2946,93945 + SPECPDL_UNWIND_VOID,2947,93993 + SPECPDL_BACKTRACE,2948,94047 + SPECPDL_LET,2949,94105 + SPECPDL_LET_LOCAL,2951,94235 + SPECPDL_LET_DEFAULT 2952,94292 +union specbinding2955,94364 + ENUM_BF 2957,94386 + ENUM_BF 2959,94443 + ENUM_BF 2964,94573 + ENUM_BF 2969,94696 + ENUM_BF 2974,94814 + ENUM_BF 2978,94919 + ENUM_BF 2983,95094 +enum handlertype 3021,96410 +enum handlertype { CATCHER,3021,96410 +enum handlertype { CATCHER, CONDITION_CASE 3021,96410 +struct handler3023,96457 + enum handlertype type;3025,96474 + Lisp_Object tag_or_ch;3026,96499 + Lisp_Object val;3027,96524 + struct handler *next;next3028,96543 + struct handler *nextfree;nextfree3029,96567 + Lisp_Object *bytecode_top;bytecode_top3036,96925 + int bytecode_dest;3037,96954 + struct gcpro *gcpro;gcpro3042,97191 + sys_jmp_buf jmp;3044,97221 + EMACS_INT lisp_eval_depth;3045,97240 + ptrdiff_t pdlcount;3046,97269 + int poll_suppress_count;3047,97291 + int interrupt_input_blocked;3048,97318 + struct byte_stack *byte_stack;byte_stack3049,97349 +#define PUSH_HANDLER(3053,97446 +extern Lisp_Object memory_signal_data;3075,98152 +extern char *stack_bottom;stack_bottom3079,98285 +extern void process_pending_signals 3097,99102 +extern bool volatile pending_signals;3098,99146 +extern void process_quit_flag 3100,99185 +#define QUIT 3101,99223 +#define QUITP 3112,99473 +extern Lisp_Object Vascii_downcase_table;3114,99534 +extern Lisp_Object Vascii_canon_table;3115,99576 +extern struct gcpro *gcprolist;gcprolist3130,100283 +struct gcpro3132,100316 + struct gcpro *next;next3134,100331 + volatile Lisp_Object *var;var3137,100400 + ptrdiff_t nvars;3140,100482 + const char *name;name3144,100567 + int lineno;3147,100623 + int idx;3150,100684 + int level;3153,100720 +#define GC_USE_GCPROS_AS_BEFORE 3171,101297 +#define GC_MAKE_GCPROS_NOOPS 3172,101332 +#define GC_MARK_STACK_CHECK_GCPROS 3173,101364 +#define GC_USE_GCPROS_CHECK_ZOMBIES 3174,101401 +#define GC_MARK_STACK 3177,101462 +#define BYTE_MARK_STACK 3181,101562 +#define GCPRO1(3190,101833 +#define GCPRO2(3191,101873 +#define GCPRO3(3192,101939 +#define GCPRO4(3194,102034 +#define GCPRO5(3196,102154 +#define GCPRO6(3198,102299 +#define GCPRO7(3201,102474 +#define UNGCPRO 3202,102553 +#define GCPRO1(3208,102653 +#define GCPRO2(3212,102775 +#define GCPRO3(3217,102967 +#define GCPRO4(3223,103229 +#define GCPRO5(3230,103560 +#define GCPRO6(3238,103961 +#define GCPRO7(3247,104431 +#define UNGCPRO 3257,104971 +extern int gcpro_level;3261,105040 +#define GCPRO1(3263,105065 +#define GCPRO2(3269,105299 +#define GCPRO3(3278,105717 +#define GCPRO4(3289,106274 +#define GCPRO5(3302,106972 +#define GCPRO6(3317,107812 +#define GCPRO7(3334,108793 +#define UNGCPRO 3353,109916 +#define RETURN_UNGCPRO(3363,110183 +void staticpro 3375,110456 +vcopy 3384,110657 +set_hash_key_slot 3393,110932 +set_hash_value_slot 3399,111071 +set_symbol_function 3408,111306 +set_symbol_plist 3414,111421 +set_symbol_next 3420,111524 +blv_found 3428,111697 +set_overlay_plist 3437,111880 +string_intervals 3445,112031 +set_string_intervals 3453,112153 +set_char_table_defalt 3462,112355 +set_char_table_purpose 3467,112467 +set_char_table_extras 3475,112636 +set_char_table_contents 3482,112845 +set_sub_char_table_contents 3489,113040 +extern Lisp_Object indirect_function 3495,113199 +extern Lisp_Object find_symbol_value 3496,113251 +enum Arith_Comparison 3497,113303 + ARITH_EQUAL,3498,113327 + ARITH_NOTEQUAL,3499,113342 + ARITH_LESS,3500,113360 + ARITH_GRTR,3501,113374 + ARITH_LESS_OR_EQUAL,3502,113388 + ARITH_GRTR_OR_EQUAL3503,113411 +extern Lisp_Object arithcompare 3505,113436 +#define INTEGER_TO_CONS(3511,113762 +#define CONS_TO_INTEGER(3529,114625 +extern intmax_t cons_to_signed 3533,114840 +extern uintmax_t cons_to_unsigned 3534,114906 +extern struct Lisp_Symbol *indirect_variable indirect_variable3536,114967 +extern _Noreturn void args_out_of_range 3537,115036 +extern _Noreturn void args_out_of_range_3 3538,115104 +extern Lisp_Object do_symval_forwarding 3540,115195 +extern void set_internal 3541,115255 +extern void syms_of_data 3542,115327 +extern void swap_in_global_binding 3543,115360 +extern void syms_of_cmds 3546,115444 +extern void keys_of_cmds 3547,115477 +extern Lisp_Object detect_coding_system 3550,115539 +extern void init_coding 3552,115692 +extern void init_coding_once 3553,115724 +extern void syms_of_coding 3554,115761 +extern ptrdiff_t chars_in_text 3557,115828 +extern ptrdiff_t multibyte_chars_in_text 3558,115895 +extern void syms_of_character 3559,115972 +extern void init_charset 3562,116040 +extern void init_charset_once 3563,116073 +extern void syms_of_charset 3564,116111 +extern void init_syntax_once 3569,116231 +extern void syms_of_syntax 3570,116268 +enum { NEXT_ALMOST_PRIME_LIMIT 3573,116329 +extern EMACS_INT next_almost_prime 3574,116368 +enum constype 3739,123820 +enum constype {CONSTYPE_HEAP,CONSTYPE_HEAP3739,123820 +enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}CONSTYPE_PURE3739,123820 +extern Lisp_Object listn 3740,123866 +list2i 3745,124010 +list3i 3751,124119 +list4i 3757,124258 +extern Lisp_Object make_uninit_bool_vector 3763,124410 +extern Lisp_Object bool_vector_fill 3764,124466 +extern _Noreturn void string_overflow 3765,124530 +extern Lisp_Object make_string 3766,124576 +extern Lisp_Object make_formatted_string 3767,124634 +extern Lisp_Object make_multibyte_string 3779,124988 +extern Lisp_Object make_event_array 3780,125067 +extern Lisp_Object make_uninit_string 3781,125131 +extern Lisp_Object make_uninit_multibyte_string 3782,125182 +extern Lisp_Object make_string_from_bytes 3783,125254 +extern Lisp_Object make_specified_string 3784,125334 +extern Lisp_Object make_pure_string 3786,125426 +extern Lisp_Object make_pure_c_string 3787,125506 +build_pure_c_string 3792,125662 +build_string 3801,125867 +extern Lisp_Object pure_cons 3806,125945 +extern void make_byte_code 3807,126002 +extern struct Lisp_Vector *allocate_vector allocate_vector3808,126053 +make_uninit_vector 3820,126438 +make_uninit_sub_char_table 3833,126657 +extern struct Lisp_Vector *allocate_pseudovector allocate_pseudovector3844,126966 +#define ALLOCATE_PSEUDOVECTOR(3850,127201 +#define ALLOCATE_ZEROED_PSEUDOVECTOR(3858,127537 +extern bool gc_in_progress;3863,127738 +extern bool abort_on_gc;3864,127766 +extern Lisp_Object make_float 3865,127791 +extern void display_malloc_warning 3866,127831 +extern ptrdiff_t inhibit_garbage_collection 3867,127874 +extern Lisp_Object make_save_int_int_int 3868,127926 +extern Lisp_Object make_save_obj_obj_obj_obj 3869,128002 +extern Lisp_Object make_save_ptr 3871,128112 +extern Lisp_Object make_save_ptr_int 3872,128155 +extern Lisp_Object make_save_ptr_ptr 3873,128213 +extern Lisp_Object make_save_funcptr_ptr_obj 3874,128268 +extern Lisp_Object make_save_memory 3876,128364 +extern void free_save_value 3877,128428 +extern Lisp_Object build_overlay 3878,128471 +extern void free_marker 3879,128545 +extern void free_cons 3880,128584 +extern void init_alloc_once 3881,128628 +extern void init_alloc 3882,128664 +extern void syms_of_alloc 3883,128695 +extern struct buffer * allocate_buffer 3884,128729 +extern int valid_lisp_object_p 3885,128776 +extern int relocatable_string_data_p 3886,128822 +extern void check_cons_list 3888,128901 +INLINE void 3890,128943 +extern void *r_alloc r_alloc3895,129064 +#define FLOAT_TO_STRING_BUFSIZE 3927,130527 +extern int openp 3957,131676 +extern Lisp_Object string_to_number 3959,131786 +extern void map_obarray 3960,131849 +extern void dir_warning 3962,131963 +extern void init_obarray 3963,132016 +extern void init_lread 3964,132049 +extern void syms_of_lread 3965,132080 +intern 3968,132134 +intern_c_string 3974,132222 +extern EMACS_INT lisp_eval_depth;3980,132335 +extern Lisp_Object Vautoload_queue;3981,132369 +extern Lisp_Object Vrun_hooks;3982,132405 +extern Lisp_Object Vsignaling_function;3983,132436 +extern Lisp_Object inhibit_lisp_code;3984,132476 +extern struct handler *handlerlist;handlerlist3985,132514 +extern void run_hook 3994,132756 +extern void run_hook_with_args_2 3995,132792 +extern Lisp_Object run_hook_with_args 3996,132866 +extern _Noreturn void xsignal 3999,133025 +extern _Noreturn void xsignal0 4000,133083 +extern _Noreturn void xsignal1 4001,133129 +extern _Noreturn void xsignal2 4002,133188 +extern _Noreturn void xsignal3 4003,133260 +extern _Noreturn void signal_error 4005,133349 +extern Lisp_Object eval_sub 4006,133413 +extern Lisp_Object apply1 4007,133461 +extern Lisp_Object call0 4008,133515 +extern Lisp_Object call1 4009,133555 +extern Lisp_Object call2 4010,133608 +extern Lisp_Object call3 4011,133674 +extern Lisp_Object call4 4012,133753 +extern Lisp_Object call5 4013,133845 +extern Lisp_Object call6 4014,133950 +extern Lisp_Object call7 4015,134068 +extern Lisp_Object internal_catch 4016,134199 +extern Lisp_Object internal_lisp_condition_case 4017,134292 +extern Lisp_Object internal_condition_case 4018,134381 +extern Lisp_Object internal_condition_case_1 4019,134494 +extern Lisp_Object internal_condition_case_2 4020,134629 +extern Lisp_Object internal_condition_case_n4021,134790 +extern void specbind 4024,134986 +extern void record_unwind_protect 4025,135035 +extern void record_unwind_protect_ptr 4026,135108 +extern void record_unwind_protect_int 4027,135175 +extern void record_unwind_protect_void 4028,135236 +extern void record_unwind_protect_nothing 4029,135294 +extern void clear_unwind_protect 4030,135344 +extern void set_unwind_protect 4031,135390 +extern void set_unwind_protect_ptr 4032,135471 +extern Lisp_Object unbind_to 4033,135546 +extern _Noreturn void error 4034,135601 +fast_string_match_ignore_case 4136,140089 +extern ptrdiff_t fast_c_string_match_ignore_case 4141,140239 +extern ptrdiff_t fast_looking_at 4143,140336 +extern ptrdiff_t find_newline 4145,140475 +extern ptrdiff_t scan_newline 4147,140604 +extern ptrdiff_t scan_newline_from_point 4149,140707 +extern ptrdiff_t find_newline_no_quit 4150,140787 +extern ptrdiff_t find_before_next_newline 4152,140884 +extern void syms_of_search 4154,140982 +extern void clear_regexp_cache 4155,141017 +extern Lisp_Object Vminibuffer_list;4159,141087 +extern Lisp_Object last_minibuf_string;4160,141124 +extern Lisp_Object get_minibuffer 4161,141164 +extern void init_minibuf_once 4162,141211 +extern void syms_of_minibuf 4163,141249 +extern void syms_of_callint 4167,141316 +extern void syms_of_casefiddle 4171,141386 +extern void keys_of_casefiddle 4172,141425 +extern void init_casetab_once 4176,141495 +extern void syms_of_casetab 4177,141533 +extern Lisp_Object echo_message_buffer;4181,141601 +extern struct kboard *echo_kboard;echo_kboard4182,141641 +extern void cancel_echoing 4183,141676 +extern Lisp_Object last_undo_boundary;4184,141711 +extern bool input_pending;4185,141750 +extern sigjmp_buf return_to_command_loop;4187,141813 +extern Lisp_Object menu_bar_items 4189,141862 +extern Lisp_Object tool_bar_items 4190,141911 +extern void discard_mouse_events 4191,141967 +void handle_input_available_signal 4193,142028 +extern Lisp_Object pending_funcalls;4195,142077 +extern bool detect_input_pending 4196,142114 +extern bool detect_input_pending_ignore_squeezables 4197,142155 +extern bool detect_input_pending_run_timers 4198,142215 +extern void safe_run_hooks 4199,142267 +extern void cmd_error_internal 4200,142309 +extern Lisp_Object command_loop_1 4201,142369 +extern Lisp_Object read_menu_command 4202,142411 +extern Lisp_Object recursive_edit_1 4203,142456 +extern void record_auto_save 4204,142500 +extern void force_auto_save_soon 4205,142537 +extern void init_keyboard 4206,142578 +extern void syms_of_keyboard 4207,142612 +extern void keys_of_keyboard 4208,142649 +extern ptrdiff_t current_column 4211,142715 +extern void invalidate_current_column 4212,142755 +extern bool indented_beyond_p 4213,142801 +extern void syms_of_indent 4214,142866 +extern void store_frame_param 4217,142929 +extern void store_in_alist 4218,143003 +extern Lisp_Object do_switch_frame 4219,143073 +extern Lisp_Object get_frame_param 4220,143146 +extern void frames_discard_buffer 4221,143212 +extern void syms_of_frame 4222,143261 +extern char **initial_argv;initial_argv4225,143323 +extern int initial_argc;4226,143351 +extern bool display_arg;4228,143426 +extern Lisp_Object decode_env_path 4230,143458 +extern Lisp_Object empty_unibyte_string,4231,143529 +extern Lisp_Object empty_unibyte_string, empty_multibyte_string;4231,143529 +extern _Noreturn void terminate_due_to_signal 4232,143594 +extern Lisp_Object Vlibrary_cache;4234,143669 +void fixup_locale 4237,143730 +void synchronize_system_messages_locale 4238,143756 +void synchronize_system_time_locale 4239,143804 +INLINE void fixup_locale 4241,143854 +INLINE void synchronize_system_messages_locale 4242,143889 +INLINE void synchronize_system_time_locale 4243,143946 +extern void shut_down_emacs 4245,144006 +extern bool noninteractive;4248,144132 +extern bool no_site_lisp;4251,144224 +extern int daemon_pipe[daemon_pipe4256,144392 +#define IS_DAEMON 4257,144419 +#define DAEMON_RUNNING 4258,144459 +extern void *w32_daemon_event;w32_daemon_event4260,144527 +#define IS_DAEMON 4261,144558 +#define DAEMON_RUNNING 4262,144603 +extern bool fatal_error_in_progress;4266,144724 +extern bool inhibit_window_system;4269,144830 +extern bool running_asynch_code;4271,144923 +extern void kill_buffer_processes 4274,144986 +extern int wait_reading_process_output 4275,145035 +# define WAIT_READING_MAX 4281,145422 +# define WAIT_READING_MAX 4283,145494 +extern void add_timer_wait_descriptor 4286,145558 +extern void add_keyboard_wait_descriptor 4288,145610 +extern void delete_keyboard_wait_descriptor 4289,145658 +extern void add_gpm_wait_descriptor 4291,145725 +extern void delete_gpm_wait_descriptor 4292,145768 +extern void init_process_emacs 4294,145821 +extern void syms_of_process 4295,145860 +extern void setup_process_coding_systems 4296,145896 +extern int child_setup 4302,146016 +extern void init_callproc_1 4303,146084 +extern void init_callproc 4304,146120 +extern void set_initial_environment 4305,146154 +extern void syms_of_callproc 4306,146198 +extern Lisp_Object read_doc_string 4309,146261 +extern Lisp_Object get_doc_string 4310,146311 +extern void syms_of_doc 4311,146372 +extern int read_bytecode_char 4312,146404 +extern void syms_of_bytecode 4315,146473 +extern struct byte_stack *byte_stack_list;byte_stack_list4316,146510 +extern void mark_byte_stack 4318,146573 +extern void unmark_byte_stack 4320,146616 +extern Lisp_Object exec_byte_code 4321,146654 +extern void init_macros 4325,146804 +extern void syms_of_macros 4326,146836 +extern void truncate_undo_list 4329,146898 +extern void record_insert 4330,146948 +extern void record_delete 4331,146998 +extern void record_first_change 4332,147056 +extern void record_change 4333,147096 +extern void record_property_change 4334,147146 +extern void syms_of_undo 4337,147288 +extern void report_interval_modification 4340,147352 +extern void syms_of_menu 4343,147448 +extern void syms_of_xmenu 4346,147509 +extern char *get_current_dir_name get_current_dir_name4356,147711 +extern void stuff_char 4358,147760 +extern void init_foreground_group 4359,147793 +extern void sys_subshell 4360,147835 +extern void sys_suspend 4361,147868 +extern void discard_tty_input 4362,147900 +extern void init_sys_modes 4363,147938 +extern void reset_sys_modes 4364,147994 +extern void init_all_sys_modes 4365,148051 +extern void reset_all_sys_modes 4366,148090 +extern void child_setup_tty 4367,148130 +extern void setup_pty 4368,148165 +extern int set_window_size 4369,148194 +extern EMACS_INT get_random 4370,148238 +extern void seed_random 4371,148274 +extern void init_random 4372,148319 +extern void emacs_backtrace 4373,148351 +extern _Noreturn void emacs_abort 4374,148386 +extern void xputenv 4527,152700 +extern char *egetenv_internal egetenv_internal4529,152737 +egetenv 4532,152809 +extern void init_system_name 4539,153012 +#define eabs(4545,153305 +#define make_fixnum_or_float(4550,153438 +enum MAX_ALLOCA 4556,153689 +enum MAX_ALLOCA { MAX_ALLOCA 4556,153689 +extern void *record_xmalloc record_xmalloc4558,153734 +#define USE_SAFE_ALLOCA 4560,153800 +#define AVAIL_ALLOCA(4564,153933 +#define SAFE_ALLOCA(4568,154044 +#define SAFE_NALLOCA(4576,154385 +#define SAFE_ALLOCA_STRING(4590,154861 +#define SAFE_FREE(4598,155113 +#define SAFE_ALLOCA_LISP(4625,155691 +# define USE_STACK_LISP_OBJECTS 4652,156813 +# undef USE_STACK_LISP_OBJECTS4658,156979 +# define USE_STACK_LISP_OBJECTS 4659,157010 +enum { defined_GC_CHECK_STRING_BYTES 4663,157085 +enum { defined_GC_CHECK_STRING_BYTES 4665,157138 +union Aligned_Cons4670,157272 + struct Lisp_Cons s;4672,157293 + double d;4673,157315 + double d; intmax_t i;4673,157315 + double d; intmax_t i; void *p;p4673,157315 +union Aligned_String4676,157352 + struct Lisp_String s;4678,157375 + double d;4679,157399 + double d; intmax_t i;4679,157399 + double d; intmax_t i; void *p;p4679,157399 + USE_STACK_CONS 4689,157707 + USE_STACK_STRING 4691,157813 +#define STACK_CONS(4699,158150 +#define AUTO_CONS_EXPR(4701,158247 +#define AUTO_CONS(4709,158610 +#define AUTO_LIST1(4710,158681 +#define AUTO_LIST2(4712,158789 +#define AUTO_LIST3(4716,158944 +#define AUTO_LIST4(4720,159119 +extern const char *verify_ascii verify_ascii4730,159456 +# define verify_ascii(4732,159510 +#define AUTO_STRING(4740,159818 +#define FOR_EACH_TAIL(4752,160282 +#define FOR_EACH_ALIST_VALUE(4766,160773 +maybe_gc 4774,161060 +functionp 4784,161299 c-src/machsyscalls.c,23 #define SYSCALL(6,113 @@ -3286,10 +3286,10 @@ el-src/emacs/lisp/progmodes/etags.el,5188 (defvar etags-xref-find-definitions-tag-order 2076,82586 (defun etags-xref-find 2082,82876 (defun etags--xref-find-definitions 2096,83405 -(defclass xref-etags-location 2129,85120 -(defun xref-make-etags-location 2135,85343 -(cl-defmethod xref-location-marker 2139,85498 -(cl-defmethod xref-location-line 2146,85742 +(defclass xref-etags-location 2129,85119 +(defun xref-make-etags-location 2135,85342 +(cl-defmethod xref-location-marker 2139,85497 +(cl-defmethod xref-location-line 2146,85741 erl-src/gs_dialog.erl,98 -define(VERSION2,32 @@ -4056,25 +4056,25 @@ class Configure(760,24879 def save(797,26022 def nosave(807,26310 -ruby-src/test.rb,594 +ruby-src/test.rb,604 module ModuleExample1,0 class ClassExample2,21 def instance_method3,44 - def ClassExample.class_method6,116 - def instance_method_exclamation!9,221 - def instance_method_question?12,319 - def instance_method_equals=class_method_equals=15,411 - def `(18,499 - def +(21,589 - def [](24,637 - def []=([]=27,687 - def <<(30,749 - def ==(==33,799 - def <=(<=36,869 - def <=>(<=>39,940 - def ===(===42,987 - def module_instance_method46,1048 - def ModuleExample.module_class_method49,1110 + def ClassExample.class_method6,121 + def instance_method_exclamation!9,206 + def instance_method_question?12,310 + def instance_method_equals=instance_method_equals=15,408 + def `(18,502 + def +(21,592 + def [](24,640 + def []=([]=27,690 + def <<(30,752 + def ==(==33,802 + def <=(<=36,872 + def <=>(<=>39,943 + def ===(===42,990 + def module_instance_method46,1051 + def ModuleExample.module_class_method49,1131 ruby-src/test1.ruby,37 class A1,0 @@ -4097,722 +4097,722 @@ tex-src/gzip.texi,303 @node Problems,460,16767 @node Concept Index,Concept Index473,17287 -tex-src/texinfo.tex,30626 -\def\texinfoversion{\texinfoversion25,1019 -\def\tie{\tie48,1510 -\def\gloggingall{\gloggingall71,2260 -\def\loggingall{\loggingall72,2329 -\def\onepageout#1{\onepageout98,3266 -\def\croppageout#1{\croppageout114,4016 -\def\cropmarks{\cropmarks141,5076 -\def\pagebody#1{\pagebody143,5123 -\def\ewtop{\ewtop156,5578 -\def\nstop{\nstop157,5642 -\def\ewbot{\ewbot159,5725 -\def\nsbot{\nsbot160,5789 -\def\parsearg #1{\parsearg169,6088 -\def\parseargx{\parseargx171,6166 -\def\parseargline{\parseargline181,6406 -\def\flushcr{\flushcr185,6527 -\newif\ifENV \ENVfalse \def\inENV{\inENV189,6726 -\def\ENVcheck{\ENVcheck190,6790 -\outer\def\begin{\begin197,7037 -\def\beginxxx #1{\beginxxx199,7075 -\def\end{\end207,7330 -\def\endxxx #1{\endxxx209,7358 -\def\errorE#1{\errorE215,7547 -\def\singlespace{\singlespace221,7741 -\def\@{\@231,7964 -\def\`{\`235,8064 -\def\'{\'236,8076 -\def\mylbrace {\mylbrace240,8124 -\def\myrbrace {\myrbrace241,8157 -\def\:{\:246,8271 -\def\*{\*249,8325 -\def\.{\.252,8401 -\def\w#1{\w257,8632 -\def\group{\group267,9115 - \def\Egroup{\Egroup272,9279 -\def\need{\need288,9721 -\def\needx#1{\needx299,9998 -\def\dots{\dots338,11384 -\def\page{\page342,11448 -\def\exdent{\exdent352,11775 -\def\exdentyyy #1{\exdentyyy353,11808 -\def\nofillexdent{\nofillexdent356,11952 -\def\nofillexdentyyy #1{\nofillexdentyyy357,11997 -\def\include{\include364,12181 -\def\includezzz #1{\includezzz365,12216 -\def\thisfile{\thisfile368,12267 -\def\center{\center372,12330 -\def\centerzzz #1{\centerzzz373,12363 -\def\sp{\sp379,12505 -\def\spxxx #1{\spxxx380,12530 -\def\comment{\comment386,12704 -\def\commentxxx #1{\commentxxx389,12801 -\def\ignoresections{\ignoresections395,12970 -\let\chapter=\relax=\relax396,12992 -\let\section=\relax=\relax405,13237 -\let\subsection=\relax=\relax408,13298 -\let\subsubsection=\relax=\relax409,13321 -\let\appendix=\relax=\relax410,13347 -\let\appendixsec=\relaxsec=\relax411,13368 -\let\appendixsection=\relaxsection=\relax412,13392 -\let\appendixsubsec=\relaxsubsec=\relax413,13420 -\let\appendixsubsection=\relaxsubsection=\relax414,13447 -\let\appendixsubsubsec=\relaxsubsubsec=\relax415,13478 -\let\appendixsubsubsection=\relaxsubsubsection=\relax416,13508 -\def\ignore{\ignore422,13610 -\long\def\ignorexxx #1\end ignore{\ignorexxx426,13750 -\def\direntry{\direntry428,13809 -\long\def\direntryxxx #1\end direntry{\direntryxxx429,13848 -\def\ifset{\ifset433,13958 -\def\ifsetxxx #1{\ifsetxxx435,14016 -\def\Eifset{\Eifset439,14143 -\def\ifsetfail{\ifsetfail440,14157 -\long\def\ifsetfailxxx #1\end ifset{\ifsetfailxxx441,14213 -\def\ifclear{\ifclear443,14274 -\def\ifclearxxx #1{\ifclearxxx445,14336 -\def\Eifclear{\Eifclear449,14467 -\def\ifclearfail{\ifclearfail450,14483 -\long\def\ifclearfailxxx #1\end ifclear{\ifclearfailxxx451,14543 -\def\set{\set455,14694 -\def\setxxx #1{\setxxx456,14721 -\def\clear{\clear459,14783 -\def\clearxxx #1{\clearxxx460,14814 -\def\iftex{\iftex465,14931 -\def\Eiftex{\Eiftex466,14944 -\def\ifinfo{\ifinfo467,14958 -\long\def\ifinfoxxx #1\end ifinfo{\ifinfoxxx468,15008 -\long\def\menu #1\end menu{\menu470,15067 -\def\asis#1{\asis471,15096 -\def\math#1{\math484,15639 -\def\node{\node486,15683 -\def\nodezzz#1{\nodezzz487,15721 -\def\nodexxx[#1,#2]{\nodexxx[488,15752 -\def\donoderef{\donoderef491,15814 -\def\unnumbnoderef{\unnumbnoderef495,15935 -\def\appendixnoderef{\appendixnoderef499,16066 -\expandafter\expandafter\expandafter\appendixsetref{setref500,16112 -\let\refill=\relaxill=\relax503,16201 -\def\setfilename{\setfilename508,16415 -\outer\def\bye{\bye517,16661 -\def\inforef #1{\inforef519,16717 -\def\inforefzzz #1,#2,#3,#4**{\inforefzzz520,16755 -\def\losespace #1{\losespace522,16852 -\def\sf{\sf531,17056 -\font\defbf=cmbx10 scaled \magstep1 %was 1314bf=cmbx10557,17851 -\font\deftt=cmtt10 scaled \magstep1tt=cmtt10558,17897 -\def\df{\df559,17933 -\def\resetmathfonts{\resetmathfonts634,20527 -\def\textfonts{\textfonts647,21116 -\def\chapfonts{\chapfonts652,21331 -\def\secfonts{\secfonts657,21547 -\def\subsecfonts{\subsecfonts662,21752 -\def\indexfonts{\indexfonts667,21969 -\def\smartitalicx{\smartitalicx690,22701 -\def\smartitalic#1{\smartitalic691,22777 -\let\cite=\smartitalic=\smartitalic697,22922 -\def\b#1{\b699,22946 -\def\t#1{\t702,22981 -\def\samp #1{\samp705,23133 -\def\key #1{\key706,23166 -\def\ctrl #1{\ctrl707,23227 -\def\tclose#1{\tclose715,23429 -\def\ {\719,23595 -\def\xkey{\xkey727,23864 -\def\kbdfoo#1#2#3\par{\kbdfoo728,23880 -\def\dmn#1{\dmn737,24181 -\def\kbd#1{\kbd739,24208 -\def\l#1{\l741,24265 -\def\r#1{\r743,24294 -\def\sc#1{\sc745,24362 -\def\ii#1{\ii746,24405 -\def\titlefont#1{\titlefont754,24638 -\def\titlepage{\titlepage760,24741 - \def\subtitlefont{\subtitlefont765,24968 - \def\authorfont{\authorfont767,25052 - \def\title{\title773,25262 - \def\titlezzz##1{\titlezzz774,25297 - \def\subtitle{\subtitle782,25612 - \def\subtitlezzz##1{\subtitlezzz783,25653 - \def\author{\author786,25771 - \def\authorzzz##1{\authorzzz787,25808 - \def\page{\page793,26099 -\def\Etitlepage{\Etitlepage803,26268 -\def\finishtitlepage{\finishtitlepage816,26656 -\def\evenheading{\evenheading845,27664 -\def\oddheading{\oddheading846,27707 -\def\everyheading{\everyheading847,27748 -\def\evenfooting{\evenfooting849,27794 -\def\oddfooting{\oddfooting850,27837 -\def\everyfooting{\everyfooting851,27878 -\def\headings #1 {\headings892,29570 -\def\HEADINGSoff{\HEADINGSoff894,29619 -\def\HEADINGSdouble{\HEADINGSdouble903,30046 -\def\HEADINGSsingle{\HEADINGSsingle913,30366 -\def\HEADINGSon{\HEADINGSon921,30587 -\def\HEADINGSafter{\HEADINGSafter923,30621 -\def\HEADINGSdoublex{\HEADINGSdoublex925,30716 -\def\HEADINGSsingleafter{\HEADINGSsingleafter932,30904 -\def\HEADINGSsinglex{\HEADINGSsinglex933,30965 -\def\today{\today942,31240 -\def\thistitle{\thistitle957,31785 -\def\settitle{\settitle958,31810 -\def\settitlezzz #1{\settitlezzz959,31847 -\def\internalBitem{\internalBitem991,32777 -\def\internalBitemx{\internalBitemx992,32827 -\def\internalBxitem "#1"{\internalBxitem994,32872 -\def\internalBxitemx "#1"{\internalBxitemx995,32952 -\def\internalBkitem{\internalBkitem997,33027 -\def\internalBkitemx{\internalBkitemx998,33079 -\def\kitemzzz #1{\kitemzzz1000,33126 -\def\xitemzzz #1{\xitemzzz1003,33228 -\def\itemzzz #1{\itemzzz1006,33331 -\def\item{\item1036,34402 -\def\itemx{\itemx1037,34453 -\def\kitem{\kitem1038,34506 -\def\kitemx{\kitemx1039,34559 -\def\xitem{\xitem1040,34614 -\def\xitemx{\xitemx1041,34667 -\def\description{\description1044,34777 -\def\table{\table1046,34827 -\def\ftable{\ftable1051,34971 -\def\Eftable{\Eftable1055,35117 -\def\vtable{\vtable1058,35186 -\def\Evtable{\Evtable1062,35332 -\def\dontindex #1{\dontindex1065,35401 -\def\fnitemindex #1{\fnitemindex1066,35421 -\def\vritemindex #1{\vritemindex1067,35466 -\def\tablez #1#2#3#4#5#6{\tablez1073,35615 -\def\Edescription{\Edescription1076,35673 -\def\itemfont{\itemfont1081,35875 -\def\Etable{\Etable1089,36101 -\def\itemize{\itemize1102,36425 -\def\itemizezzz #1{\itemizezzz1104,36461 -\def\itemizey #1#2{\itemizey1109,36556 -\def#2{1118,36802 -\def\itemcontents{\itemcontents1119,36843 -\def\bullet{\bullet1122,36891 -\def\minus{\minus1123,36918 -\def\frenchspacing{\frenchspacing1127,37026 -\def\splitoff#1#2\endmark{\splitoff1133,37251 -\def\enumerate{\enumerate1139,37481 -\def\enumeratezzz #1{\enumeratezzz1140,37520 -\def\enumeratey #1 #2\endenumeratey{\enumeratey1141,37573 - \def\thearg{\thearg1145,37720 - \ifx\thearg\empty \def\thearg{\thearg1146,37739 -\def\numericenumerate{\numericenumerate1183,39073 -\def\lowercaseenumerate{\lowercaseenumerate1189,39203 -\def\uppercaseenumerate{\uppercaseenumerate1202,39550 -\def\startenumeration#1{\startenumeration1218,40040 -\def\alphaenumerate{\alphaenumerate1226,40222 -\def\capsenumerate{\capsenumerate1227,40257 -\def\Ealphaenumerate{\Ealphaenumerate1228,40291 -\def\Ecapsenumerate{\Ecapsenumerate1229,40325 -\def\itemizeitem{\itemizeitem1233,40405 -\def\newindex #1{\newindex1258,41262 -\def\defindex{\defindex1267,41551 -\def\newcodeindex #1{\newcodeindex1271,41659 -\def\defcodeindex{\defcodeindex1278,41919 -\def\synindex #1 #2 {\synindex1282,42099 -\def\syncodeindex #1 #2 {\syncodeindex1291,42439 -\def\doindex#1{\doindex1308,43118 -\def\singleindexer #1{\singleindexer1309,43177 -\def\docodeindex#1{\docodeindex1312,43289 -\def\singlecodeindexer #1{\singlecodeindexer1313,43356 -\def\indexdummies{\indexdummies1315,43414 -\def\_{\_1316,43434 -\def\w{\w1317,43462 -\def\bf{\bf1318,43489 -\def\rm{\rm1319,43518 -\def\sl{\sl1320,43547 -\def\sf{\sf1321,43576 -\def\tt{\tt1322,43604 -\def\gtr{\gtr1323,43632 -\def\less{\less1324,43662 -\def\hat{\hat1325,43694 -\def\char{\char1326,43724 -\def\TeX{\TeX1327,43756 -\def\dots{\dots1328,43786 -\def\copyright{\copyright1329,43819 -\def\tclose##1{\tclose1330,43862 -\def\code##1{\code1331,43907 -\def\samp##1{\samp1332,43948 -\def\t##1{\t1333,43989 -\def\r##1{\r1334,44024 -\def\i##1{\i1335,44059 -\def\b##1{\b1336,44094 -\def\cite##1{\cite1337,44129 -\def\key##1{\key1338,44170 -\def\file##1{\file1339,44209 -\def\var##1{\var1340,44250 -\def\kbd##1{\kbd1341,44289 -\def\indexdummyfont#1{\indexdummyfont1346,44445 -\def\indexdummytex{\indexdummytex1347,44471 -\def\indexdummydots{\indexdummydots1348,44495 -\def\indexnofonts{\indexnofonts1350,44521 -\let\w=\indexdummyfontdummyfont1351,44541 -\let\t=\indexdummyfontdummyfont1352,44564 -\let\r=\indexdummyfontdummyfont1353,44587 -\let\i=\indexdummyfontdummyfont1354,44610 -\let\b=\indexdummyfontdummyfont1355,44633 -\let\emph=\indexdummyfontdummyfont1356,44656 -\let\strong=\indexdummyfontdummyfont1357,44682 -\let\cite=\indexdummyfont=\indexdummyfont1358,44710 -\let\sc=\indexdummyfontdummyfont1359,44736 -\let\tclose=\indexdummyfontdummyfont1363,44908 -\let\code=\indexdummyfontdummyfont1364,44936 -\let\file=\indexdummyfontdummyfont1365,44962 -\let\samp=\indexdummyfontdummyfont1366,44988 -\let\kbd=\indexdummyfontdummyfont1367,45014 -\let\key=\indexdummyfontdummyfont1368,45039 -\let\var=\indexdummyfontdummyfont1369,45064 -\let\TeX=\indexdummytexdummytex1370,45089 -\let\dots=\indexdummydotsdummydots1371,45113 -\let\indexbackslash=0 %overridden during \printindex.backslash=01381,45365 -\def\doind #1#2{\doind1383,45421 -{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1385,45464 -\def\rawbackslashxx{\rawbackslashxx1388,45604 -{\indexnofontsnofonts1393,45866 -\def\dosubind #1#2#3{\dosubind1404,46177 -{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1406,46225 -\def\rawbackslashxx{\rawbackslashxx1409,46329 -{\indexnofontsnofonts1413,46483 -\def\findex {\findex1442,47414 -\def\kindex {\kindex1443,47437 -\def\cindex {\cindex1444,47460 -\def\vindex {\vindex1445,47483 -\def\tindex {\tindex1446,47506 -\def\pindex {\pindex1447,47529 -\def\cindexsub {\cindexsub1449,47553 -\def\printindex{\printindex1461,47880 -\def\doprintindex#1{\doprintindex1463,47921 - \def\indexbackslash{\indexbackslash1480,48406 - \indexfonts\rm \tolerance=9500 \advance\baselineskip -1ptfonts\rm1481,48445 -\def\initial #1{\initial1516,49517 -\def\entry #1#2{\entry1522,49724 - \null\nobreak\indexdotfill % Have leaders before the page number.dotfill1539,50371 -\def\indexdotfill{\indexdotfill1548,50699 -\def\primary #1{\primary1551,50805 -\def\secondary #1#2{\secondary1555,50887 -\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\pardotfill1558,50969 -\newbox\partialpageialpage1565,51142 -\def\begindoublecolumns{\begindoublecolumns1571,51300 - \output={\global\setbox\partialpage=ialpage=1572,51336 -\def\enddoublecolumns{\enddoublecolumns1576,51524 -\def\doublecolumnout{\doublecolumnout1579,51609 - \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1580,51678 -\def\pagesofar{\pagesofar1583,51856 -\def\balancecolumns{\balancecolumns1587,52093 - \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpageialpage1593,52264 - \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1599,52525 -\newcount \appendixno \appendixno = `\@no1626,53430 -\def\appendixletter{\appendixletter1627,53471 -\def\opencontents{\opencontents1631,53574 -\def\thischapter{\thischapter1636,53755 -\def\seccheck#1{\seccheck1637,53793 -\def\chapternofonts{\chapternofonts1642,53897 -\def\result{\result1645,53972 -\def\equiv{\equiv1646,54007 -\def\expansion{\expansion1647,54040 -\def\print{\print1648,54081 -\def\TeX{\TeX1649,54114 -\def\dots{\dots1650,54143 -\def\copyright{\copyright1651,54174 -\def\tt{\tt1652,54215 -\def\bf{\bf1653,54242 -\def\w{\w1654,54270 -\def\less{\less1655,54295 -\def\gtr{\gtr1656,54326 -\def\hat{\hat1657,54355 -\def\char{\char1658,54384 -\def\tclose##1{\tclose1659,54415 -\def\code##1{\code1660,54459 -\def\samp##1{\samp1661,54499 -\def\r##1{\r1662,54539 -\def\b##1{\b1663,54573 -\def\key##1{\key1664,54607 -\def\file##1{\file1665,54645 -\def\kbd##1{\kbd1666,54685 -\def\i##1{\i1668,54793 -\def\cite##1{\cite1669,54827 -\def\var##1{\var1670,54867 -\def\emph##1{\emph1671,54905 -\def\dfn##1{\dfn1672,54945 -\def\thischaptername{\thischaptername1675,54986 -\outer\def\chapter{\chapter1676,55025 -\def\chapterzzz #1{\chapterzzz1677,55066 -{\chapternofonts%nofonts%1686,55462 -\global\let\section = \numberedsec=1691,55615 -\global\let\subsection = \numberedsubsec=1692,55650 -\global\let\subsubsection = \numberedsubsubsec=1693,55691 -\outer\def\appendix{\appendix1696,55742 -\def\appendixzzz #1{\appendixzzz1697,55785 -\global\advance \appendixno by 1 \message{no1699,55862 -\chapmacro {#1}{Appendix \appendixletter}letter1700,55931 -\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}letter:1703,56024 -{\chapternofonts%nofonts%1704,56096 - {#1}{Appendix \appendixletter}letter1706,56152 -\appendixnoderef %noderef1709,56252 -\global\let\section = \appendixsec=1710,56271 -\global\let\subsection = \appendixsubsec=1711,56306 -\global\let\subsubsection = \appendixsubsubsec=1712,56347 -\outer\def\top{\top1715,56398 -\outer\def\unnumbered{\unnumbered1716,56438 -\def\unnumberedzzz #1{\unnumberedzzz1717,56485 -{\chapternofonts%nofonts%1721,56648 -\global\let\section = \unnumberedsec=1726,56798 -\global\let\subsection = \unnumberedsubsec=1727,56835 -\global\let\subsubsection = \unnumberedsubsubsec=1728,56878 -\outer\def\numberedsec{\numberedsec1731,56931 -\def\seczzz #1{\seczzz1732,56972 -{\chapternofonts%nofonts%1735,57128 -\outer\def\appendixsection{\appendixsection1744,57314 -\outer\def\appendixsec{\appendixsec1745,57371 -\def\appendixsectionzzz #1{\appendixsectionzzz1746,57424 -\gdef\thissection{#1}\secheading {#1}{\appendixletter}letter1748,57536 -{\chapternofonts%nofonts%1749,57604 -{#1}{\appendixletter}letter1751,57660 -\appendixnoderef %noderef1754,57760 -\outer\def\unnumberedsec{\unnumberedsec1758,57800 -\def\unnumberedseczzz #1{\unnumberedseczzz1759,57853 -{\chapternofonts%nofonts%1761,57948 -\outer\def\numberedsubsec{\numberedsubsec1769,58116 -\def\numberedsubseczzz #1{\numberedsubseczzz1770,58171 -{\chapternofonts%nofonts%1773,58350 -\outer\def\appendixsubsec{\appendixsubsec1782,58554 -\def\appendixsubseczzz #1{\appendixsubseczzz1783,58609 -\subsecheading {#1}{\appendixletter}letter1785,58731 -{\chapternofonts%nofonts%1786,58796 -{#1}{\appendixletter}letter1788,58855 -\appendixnoderef %noderef1791,58970 -\outer\def\unnumberedsubsec{\unnumberedsubsec1795,59010 -\def\unnumberedsubseczzz #1{\unnumberedsubseczzz1796,59069 -{\chapternofonts%nofonts%1798,59170 -\outer\def\numberedsubsubsec{\numberedsubsubsec1806,59341 -\def\numberedsubsubseczzz #1{\numberedsubsubseczzz1807,59402 -{\chapternofonts%nofonts%1811,59599 -\outer\def\appendixsubsubsec{\appendixsubsubsec1822,59832 -\def\appendixsubsubseczzz #1{\appendixsubsubseczzz1823,59893 - {\appendixletter}letter1826,60032 -{\chapternofonts%nofonts%1827,60098 - {\appendixletter}letter1829,60163 -\appendixnoderef %noderef1833,60297 -\outer\def\unnumberedsubsubsec{\unnumberedsubsubsec1837,60337 -\def\unnumberedsubsubseczzz #1{\unnumberedsubsubseczzz1838,60402 -{\chapternofonts%nofonts%1840,60509 -\def\infotop{\infotop1850,60838 -\def\infounnumbered{\infounnumbered1851,60876 -\def\infounnumberedsec{\infounnumberedsec1852,60921 -\def\infounnumberedsubsec{\infounnumberedsubsec1853,60972 -\def\infounnumberedsubsubsec{\infounnumberedsubsubsec1854,61029 -\def\infoappendix{\infoappendix1856,61093 -\def\infoappendixsec{\infoappendixsec1857,61134 -\def\infoappendixsubsec{\infoappendixsubsec1858,61181 -\def\infoappendixsubsubsec{\infoappendixsubsubsec1859,61234 -\def\infochapter{\infochapter1861,61294 -\def\infosection{\infosection1862,61333 -\def\infosubsection{\infosubsection1863,61372 -\def\infosubsubsection{\infosubsubsection1864,61417 -\global\let\section = \numberedsec=1869,61654 -\global\let\subsection = \numberedsubsec=1870,61689 -\global\let\subsubsection = \numberedsubsubsec=1871,61730 -\def\majorheading{\majorheading1885,62237 -\def\majorheadingzzz #1{\majorheadingzzz1886,62282 -\def\chapheading{\chapheading1892,62515 -\def\chapheadingzzz #1{\chapheadingzzz1893,62558 -\def\heading{\heading1898,62753 -\def\subheading{\subheading1900,62790 -\def\subsubheading{\subsubheading1902,62833 -\def\dobreak#1#2{\dobreak1909,63110 -\def\setchapterstyle #1 {\setchapterstyle1911,63188 -\def\chapbreak{\chapbreak1918,63443 -\def\chappager{\chappager1919,63493 -\def\chapoddpage{\chapoddpage1920,63531 -\def\setchapternewpage #1 {\setchapternewpage1922,63610 -\def\CHAPPAGoff{\CHAPPAGoff1924,63667 -\def\CHAPPAGon{\CHAPPAGon1928,63761 -\global\def\HEADINGSon{\HEADINGSon1931,63852 -\def\CHAPPAGodd{\CHAPPAGodd1933,63894 -\global\def\HEADINGSon{\HEADINGSon1936,63990 -\def\CHAPFplain{\CHAPFplain1940,64044 -\def\chfplain #1#2{\chfplain1944,64136 -\def\unnchfplain #1{\unnchfplain1955,64359 -\def\unnchfopen #1{\unnchfopen1963,64588 -\def\chfopen #1#2{\chfopen1969,64796 -\def\CHAPFopen{\CHAPFopen1974,64940 -\def\subsecheadingbreak{\subsecheadingbreak1981,65158 -\def\secheadingbreak{\secheadingbreak1984,65287 -\def\secheading #1#2#3{\secheading1992,65569 -\def\plainsecheading #1{\plainsecheading1993,65625 -\def\secheadingi #1{\secheadingi1994,65668 -\def\subsecheading #1#2#3#4{\subsecheading2005,66036 -\def\subsecheadingi #1{\subsecheadingi2006,66103 -\def\subsubsecfonts{\subsubsecfonts2013,66400 -\def\subsubsecheading #1#2#3#4#5{\subsubsecheading2016,66523 -\def\subsubsecheadingi #1{\subsubsecheadingi2017,66601 -\def\startcontents#1{\startcontents2031,67073 - \unnumbchapmacro{#1}\def\thischapter{\thischapter2039,67346 -\outer\def\contents{\contents2048,67705 -\outer\def\summarycontents{\summarycontents2056,67849 - \def\secentry ##1##2##3##4{\secentry2066,68220 - \def\unnumbsecentry ##1##2{\unnumbsecentry2067,68255 - \def\subsecentry ##1##2##3##4##5{\subsecentry2068,68290 - \def\unnumbsubsecentry ##1##2{\unnumbsubsecentry2069,68331 - \def\subsubsecentry ##1##2##3##4##5##6{\subsubsecentry2070,68369 - \def\unnumbsubsubsecentry ##1##2{\unnumbsubsubsecentry2071,68416 -\def\chapentry#1#2#3{\chapentry2084,68850 -\def\shortchapentry#1#2#3{\shortchapentry2087,68967 - {#2\labelspace #1}space2090,69077 -\def\unnumbchapentry#1#2{\unnumbchapentry2093,69131 -\def\shortunnumberedentry#1#2{\shortunnumberedentry2094,69178 -\def\secentry#1#2#3#4{\secentry2101,69342 -\def\unnumbsecentry#1#2{\unnumbsecentry2102,69401 -\def\subsecentry#1#2#3#4#5{\subsecentry2105,69462 -\def\unnumbsubsecentry#1#2{\unnumbsubsecentry2106,69532 -\def\subsubsecentry#1#2#3#4#5#6{\subsubsecentry2109,69606 - \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}space2110,69640 -\def\unnumbsubsubsecentry#1#2{\unnumbsubsubsecentry2111,69691 -\def\dochapentry#1#2{\dochapentry2122,70065 -\def\dosecentry#1#2{\dosecentry2137,70670 -\def\dosubsecentry#1#2{\dosubsecentry2144,70848 -\def\dosubsubsecentry#1#2{\dosubsubsecentry2151,71033 -\def\labelspace{\labelspace2159,71284 -\def\dopageno#1{\dopageno2161,71319 -\def\doshortpageno#1{\doshortpageno2162,71345 -\def\chapentryfonts{\chapentryfonts2164,71377 -\def\secentryfonts{\secentryfonts2165,71412 -\def\point{\point2191,72371 -\def\result{\result2193,72392 -\def\expansion{\expansion2194,72465 -\def\print{\print2195,72536 -\def\equiv{\equiv2197,72603 -\def\error{\error2217,73376 -\def\tex{\tex2223,73605 -\def\@{\@2241,73988 -\gdef\sepspaces{\def {\ }}}\2264,74720 -\def\aboveenvbreak{\aboveenvbreak2267,74802 -\def\afterenvbreak{\afterenvbreak2271,74968 -\def\ctl{\ctl2285,75479 -\def\ctr{\ctr2286,75551 -\def\cbl{\cbl2287,75590 -\def\cbr{\cbr2288,75630 -\def\carttop{\carttop2289,75669 -\def\cartbot{\cartbot2292,75777 -\long\def\cartouche{\cartouche2298,75917 -\def\Ecartouche{\Ecartouche2325,76705 -\def\lisp{\lisp2337,76840 -\def\Elisp{\Elisp2347,77187 -\def\next##1{\next2359,77513 -\def\Eexample{\Eexample2363,77555 -\def\Esmallexample{\Esmallexample2366,77602 -\def\smalllispx{\smalllispx2372,77780 -\def\Esmalllisp{\Esmalllisp2382,78134 -\obeyspaces \obeylines \ninett \indexfonts \rawbackslashfonts2395,78490 -\def\next##1{\next2396,78547 -\def\display{\display2400,78627 -\def\Edisplay{\Edisplay2409,78946 -\def\next##1{\next2421,79257 -\def\format{\format2425,79360 -\def\Eformat{\Eformat2433,79656 -\def\next##1{\next2436,79745 -\def\flushleft{\flushleft2440,79797 -\def\Eflushleft{\Eflushleft2450,80168 -\def\next##1{\next2453,80261 -\def\flushright{\flushright2455,80283 -\def\Eflushright{\Eflushright2465,80655 -\def\next##1{\next2469,80786 -\def\quotation{\quotation2473,80844 -\def\Equotation{\Equotation2479,81036 -\def\setdeffont #1 {\setdeffont2492,81434 -\newskip\defbodyindent \defbodyindent=.4inbodyindent2494,81480 -\newskip\defargsindent \defargsindent=50ptargsindent2495,81523 -\newskip\deftypemargin \deftypemargin=12pttypemargin2496,81566 -\newskip\deflastargmargin \deflastargmargin=18ptlastargmargin2497,81609 -\def\activeparens{\activeparens2502,81807 -\def\opnr{\opnr2528,83019 -\def\lbrb{\lbrb2529,83084 -\def\defname #1#2{\defname2535,83285 -\advance\dimen2 by -\defbodyindentbodyindent2539,83403 -\advance\dimen3 by -\defbodyindentbodyindent2541,83457 -\setbox0=\hbox{\hskip \deflastargmargin{lastargmargin2543,83511 -\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuationsargsindent2545,83653 -\parshape 2 0in \dimen0 \defargsindent \dimen1 %argsindent2546,83728 -\rlap{\rightline{{\rm #2}\hskip \deftypemargin}typemargin2553,84097 -\advance\leftskip by -\defbodyindentbodyindent2556,84231 -\exdentamount=\defbodyindentbodyindent2557,84268 -\def\defparsebody #1#2#3{\defparsebody2567,84627 -\def#1{2571,84811 -\def#2{2572,84847 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2574,84919 -\exdentamount=\defbodyindentbodyindent2575,84993 -\def\defmethparsebody #1#2#3#4 {\defmethparsebody2580,85097 -\def#1{2584,85258 -\def#2##1 {2585,85294 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2587,85377 -\exdentamount=\defbodyindentbodyindent2588,85451 -\def\defopparsebody #1#2#3#4#5 {\defopparsebody2591,85536 -\def#1{2595,85697 -\def#2##1 ##2 {2596,85733 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2599,85833 -\exdentamount=\defbodyindentbodyindent2600,85907 -\def\defvarparsebody #1#2#3{\defvarparsebody2607,86178 -\def#1{2611,86365 -\def#2{2612,86401 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2614,86460 -\exdentamount=\defbodyindentbodyindent2615,86534 -\def\defvrparsebody #1#2#3#4 {\defvrparsebody2620,86625 -\def#1{2624,86784 -\def#2##1 {2625,86820 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2627,86890 -\exdentamount=\defbodyindentbodyindent2628,86964 -\def\defopvarparsebody #1#2#3#4#5 {\defopvarparsebody2631,87036 -\def#1{2635,87200 -\def#2##1 ##2 {2636,87236 -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2639,87323 -\exdentamount=\defbodyindentbodyindent2640,87397 -\def\defunargs #1{\defunargs2663,88157 -\def\deftypefunargs #1{\deftypefunargs2675,88539 -\def\deffn{\deffn2689,88921 -\def\deffnheader #1#2#3{\deffnheader2691,88978 -\begingroup\defname {name2692,89026 -\def\defun{\defun2698,89171 -\def\defunheader #1#2{\defunheader2700,89224 -\begingroup\defname {name2701,89299 -\defunargs {unargs2702,89335 -\def\deftypefun{\deftypefun2708,89483 -\def\deftypefunheader #1#2{\deftypefunheader2711,89605 -\def\deftypefunheaderx #1#2 #3\relax{\deftypefunheaderx2713,89714 -\begingroup\defname {name2715,89806 -\deftypefunargs {typefunargs2716,89852 -\def\deftypefn{\deftypefn2722,90023 -\def\deftypefnheader #1#2#3{\deftypefnheader2725,90172 -\def\deftypefnheaderx #1#2#3 #4\relax{\deftypefnheaderx2727,90308 -\begingroup\defname {name2729,90401 -\deftypefunargs {typefunargs2730,90441 -\def\defmac{\defmac2736,90562 -\def\defmacheader #1#2{\defmacheader2738,90619 -\begingroup\defname {name2739,90695 -\defunargs {unargs2740,90728 -\def\defspec{\defspec2746,90852 -\def\defspecheader #1#2{\defspecheader2748,90913 -\begingroup\defname {name2749,90990 -\defunargs {unargs2750,91030 -\def\deffnx #1 {\deffnx2757,91225 -\def\defunx #1 {\defunx2758,91282 -\def\defmacx #1 {\defmacx2759,91339 -\def\defspecx #1 {\defspecx2760,91398 -\def\deftypefnx #1 {\deftypefnx2761,91459 -\def\deftypeunx #1 {\deftypeunx2762,91524 -\def\defop #1 {\defop2768,91670 -\defopparsebody\Edefop\defopx\defopheader\defoptype}opparsebody\Edefop\defopx\defopheader\defoptype2769,91705 -\def\defopheader #1#2#3{\defopheader2771,91759 -\begingroup\defname {name2773,91848 -\defunargs {unargs2774,91894 -\def\defmethod{\defmethod2779,91955 -\def\defmethodheader #1#2#3{\defmethodheader2781,92028 -\begingroup\defname {name2783,92116 -\defunargs {unargs2784,92156 -\def\defcv #1 {\defcv2789,92230 -\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}opvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype2790,92265 -\def\defcvarheader #1#2#3{\defcvarheader2792,92324 -\begingroup\defname {name2794,92410 -\defvarargs {varargs2795,92456 -\def\defivar{\defivar2800,92529 -\def\defivarheader #1#2#3{\defivarheader2802,92592 -\begingroup\defname {name2804,92678 -\defvarargs {varargs2805,92729 -\def\defopx #1 {\defopx2811,92878 -\def\defmethodx #1 {\defmethodx2812,92935 -\def\defcvx #1 {\defcvx2813,93000 -\def\defivarx #1 {\defivarx2814,93057 -\def\defvarargs #1{\defvarargs2821,93328 -\def\defvr{\defvr2827,93472 -\def\defvrheader #1#2#3{\defvrheader2829,93527 -\begingroup\defname {name2830,93575 -\def\defvar{\defvar2834,93660 -\def\defvarheader #1#2{\defvarheader2836,93720 -\begingroup\defname {name2837,93791 -\defvarargs {varargs2838,93827 -\def\defopt{\defopt2843,93893 -\def\defoptheader #1#2{\defoptheader2845,93953 -\begingroup\defname {name2846,94024 -\defvarargs {varargs2847,94063 -\def\deftypevar{\deftypevar2852,94120 -\def\deftypevarheader #1#2{\deftypevarheader2855,94236 -\begingroup\defname {name2857,94319 -\def\deftypevr{\deftypevr2864,94493 -\def\deftypevrheader #1#2#3{\deftypevrheader2866,94564 -\begingroup\defname {name2867,94616 -\def\defvrx #1 {\defvrx2875,94853 -\def\defvarx #1 {\defvarx2876,94910 -\def\defoptx #1 {\defoptx2877,94969 -\def\deftypevarx #1 {\deftypevarx2878,95028 -\def\deftypevrx #1 {\deftypevrx2879,95095 -\def\deftpargs #1{\deftpargs2884,95244 -\def\deftp{\deftp2888,95324 -\def\deftpheader #1#2#3{\deftpheader2890,95379 -\begingroup\defname {name2891,95427 -\def\deftpx #1 {\deftpx2896,95586 -\def\setref#1{\setref2907,95907 -\def\unnumbsetref#1{\unnumbsetref2912,96021 -\def\appendixsetref#1{\appendixsetref2917,96128 -\def\pxref#1{\pxref2928,96539 -\def\xref#1{\xref2929,96575 -\def\ref#1{\ref2930,96610 -\def\xrefX[#1,#2,#3,#4,#5,#6]{\xrefX[2931,96640 -\def\printedmanual{\printedmanual2932,96683 -\def\printednodename{\printednodename2933,96721 -\def\printednodename{\printednodename2938,96846 -section ``\printednodename'' in \cite{\printedmanual}\printedmanual2953,97479 -\refx{x2956,97557 -\def\dosetq #1#2{\dosetq2964,97777 -\def\internalsetq #1#2{\internalsetq2972,98035 -\def\Ypagenumber{\Ypagenumber2976,98136 -\def\Ytitle{\Ytitle2978,98162 -\def\Ynothing{\Ynothing2980,98189 -\def\Ysectionnumberandtype{\Ysectionnumberandtype2982,98206 -\def\Yappendixletterandtype{\Yappendixletterandtype2991,98522 -\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{no2992,98552 -\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %no.\the\secno2993,98607 -Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %no.\the\secno.\the\subsecno2995,98711 -Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %no.\the\secno.\the\subsecno.\the\subsubsecno2997,98782 - \def\linenumber{\linenumber3008,99121 -\def\refx#1#2{\refx3014,99305 -\def\xrdef #1#2{\xrdef3036,99931 -\def\readauxfile{\readauxfile3039,100016 -\def\supereject{\supereject3109,101797 -\footstrut\parindent=\defaultparindent\hang\textindent{aultparindent\hang\textindent3130,102482 -\def\openindices{\openindices3138,102668 -\newdimen\defaultparindent \defaultparindent = 15ptaultparindent3150,102893 -\parindent = \defaultparindentaultparindent3151,102945 -\def\smallbook{\smallbook3174,103669 -\global\def\Esmallexample{\Esmallexample3191,104096 -\def\afourpaper{\afourpaper3195,104187 -\def\finalout{\finalout3223,104995 -\def\normaldoublequote{\normaldoublequote3234,105256 -\def\normaltilde{\normaltilde3235,105282 -\def\normalcaret{\normalcaret3236,105302 -\def\normalunderscore{\normalunderscore3237,105322 -\def\normalverticalbar{\normalverticalbar3238,105347 -\def\normalless{\normalless3239,105373 -\def\normalgreater{\normalgreater3240,105392 -\def\normalplus{\normalplus3241,105414 -\def\ifusingtt#1#2{\ifusingtt3252,105906 -\def\activedoublequote{\activedoublequote3260,106234 -\def~{~3263,106320 -\def^{^3266,106381 -\def_{_3269,106420 -\def\_{\_3271,106494 -\def\lvvmode{\lvvmode3278,106831 -\def|{|3281,106881 -\def<{<3284,106944 -\def>{>3287,107001 -\def+{+3289,107039 -\def\turnoffactive{\turnoffactive3295,107200 -\global\def={=3306,107486 -\def\normalbackslash{\normalbackslash3320,107868 +tex-src/texinfo.tex,30627 +\def\texinfoversion{\texinfoversion26,1027 +\def\tie{\tie49,1518 +\def\gloggingall{\gloggingall72,2268 +\def\loggingall{\loggingall73,2337 +\def\onepageout#1{\onepageout99,3274 +\def\croppageout#1{\croppageout115,4024 +\def\cropmarks{\cropmarks142,5084 +\def\pagebody#1{\pagebody144,5131 +\def\ewtop{\ewtop157,5586 +\def\nstop{\nstop158,5650 +\def\ewbot{\ewbot160,5733 +\def\nsbot{\nsbot161,5797 +\def\parsearg #1{\parsearg170,6096 +\def\parseargx{\parseargx172,6174 +\def\parseargline{\parseargline182,6414 +\def\flushcr{\flushcr186,6535 +\newif\ifENV \ENVfalse \def\inENV{\inENV190,6734 +\def\ENVcheck{\ENVcheck191,6798 +\outer\def\begin{\begin198,7045 +\def\beginxxx #1{\beginxxx200,7083 +\def\end{\end208,7338 +\def\endxxx #1{\endxxx210,7366 +\def\errorE#1{\errorE216,7555 +\def\singlespace{\singlespace222,7749 +\def\@{\@232,7972 +\def\`{\`236,8072 +\def\'{\'237,8084 +\def\mylbrace {\mylbrace241,8132 +\def\myrbrace {\myrbrace242,8165 +\def\:{\:247,8279 +\def\*{\*250,8333 +\def\.{\.253,8409 +\def\w#1{\w258,8640 +\def\group{\group268,9123 + \def\Egroup{\Egroup273,9287 +\def\need{\need289,9729 +\def\needx#1{\needx300,10006 +\def\dots{\dots339,11392 +\def\page{\page343,11456 +\def\exdent{\exdent353,11783 +\def\exdentyyy #1{\exdentyyy354,11816 +\def\nofillexdent{\nofillexdent357,11960 +\def\nofillexdentyyy #1{\nofillexdentyyy358,12005 +\def\include{\include365,12189 +\def\includezzz #1{\includezzz366,12224 +\def\thisfile{\thisfile369,12275 +\def\center{\center373,12338 +\def\centerzzz #1{\centerzzz374,12371 +\def\sp{\sp380,12513 +\def\spxxx #1{\spxxx381,12538 +\def\comment{\comment387,12712 +\def\commentxxx #1{\commentxxx390,12809 +\def\ignoresections{\ignoresections396,12978 +\let\chapter=\relax=\relax397,13000 +\let\section=\relax=\relax406,13245 +\let\subsection=\relax=\relax409,13306 +\let\subsubsection=\relax=\relax410,13329 +\let\appendix=\relax=\relax411,13355 +\let\appendixsec=\relaxsec=\relax412,13376 +\let\appendixsection=\relaxsection=\relax413,13400 +\let\appendixsubsec=\relaxsubsec=\relax414,13428 +\let\appendixsubsection=\relaxsubsection=\relax415,13455 +\let\appendixsubsubsec=\relaxsubsubsec=\relax416,13486 +\let\appendixsubsubsection=\relaxsubsubsection=\relax417,13516 +\def\ignore{\ignore423,13618 +\long\def\ignorexxx #1\end ignore{\ignorexxx427,13758 +\def\direntry{\direntry429,13817 +\long\def\direntryxxx #1\end direntry{\direntryxxx430,13856 +\def\ifset{\ifset434,13966 +\def\ifsetxxx #1{\ifsetxxx436,14024 +\def\Eifset{\Eifset440,14151 +\def\ifsetfail{\ifsetfail441,14165 +\long\def\ifsetfailxxx #1\end ifset{\ifsetfailxxx442,14221 +\def\ifclear{\ifclear444,14282 +\def\ifclearxxx #1{\ifclearxxx446,14344 +\def\Eifclear{\Eifclear450,14475 +\def\ifclearfail{\ifclearfail451,14491 +\long\def\ifclearfailxxx #1\end ifclear{\ifclearfailxxx452,14551 +\def\set{\set456,14702 +\def\setxxx #1{\setxxx457,14729 +\def\clear{\clear460,14791 +\def\clearxxx #1{\clearxxx461,14822 +\def\iftex{\iftex466,14939 +\def\Eiftex{\Eiftex467,14952 +\def\ifinfo{\ifinfo468,14966 +\long\def\ifinfoxxx #1\end ifinfo{\ifinfoxxx469,15016 +\long\def\menu #1\end menu{\menu471,15075 +\def\asis#1{\asis472,15104 +\def\math#1{\math485,15647 +\def\node{\node487,15691 +\def\nodezzz#1{\nodezzz488,15729 +\def\nodexxx[#1,#2]{\nodexxx[489,15760 +\def\donoderef{\donoderef492,15822 +\def\unnumbnoderef{\unnumbnoderef496,15943 +\def\appendixnoderef{\appendixnoderef500,16074 +\expandafter\expandafter\expandafter\appendixsetref{setref501,16120 +\let\refill=\relaxill=\relax504,16209 +\def\setfilename{\setfilename509,16423 +\outer\def\bye{\bye518,16669 +\def\inforef #1{\inforef520,16725 +\def\inforefzzz #1,#2,#3,#4**{\inforefzzz521,16763 +\def\losespace #1{\losespace523,16860 +\def\sf{\sf532,17064 +\font\defbf=cmbx10 scaled \magstep1 %was 1314bf=cmbx10558,17859 +\font\deftt=cmtt10 scaled \magstep1tt=cmtt10559,17905 +\def\df{\df560,17941 +\def\resetmathfonts{\resetmathfonts635,20535 +\def\textfonts{\textfonts648,21124 +\def\chapfonts{\chapfonts653,21339 +\def\secfonts{\secfonts658,21555 +\def\subsecfonts{\subsecfonts663,21760 +\def\indexfonts{\indexfonts668,21977 +\def\smartitalicx{\smartitalicx691,22709 +\def\smartitalic#1{\smartitalic692,22785 +\let\cite=\smartitalic=\smartitalic698,22930 +\def\b#1{\b700,22954 +\def\t#1{\t703,22989 +\def\samp #1{\samp706,23141 +\def\key #1{\key707,23174 +\def\ctrl #1{\ctrl708,23235 +\def\tclose#1{\tclose716,23437 +\def\ {\720,23603 +\def\xkey{\xkey728,23872 +\def\kbdfoo#1#2#3\par{\kbdfoo729,23888 +\def\dmn#1{\dmn738,24189 +\def\kbd#1{\kbd740,24216 +\def\l#1{\l742,24273 +\def\r#1{\r744,24302 +\def\sc#1{\sc746,24370 +\def\ii#1{\ii747,24413 +\def\titlefont#1{\titlefont755,24646 +\def\titlepage{\titlepage761,24749 + \def\subtitlefont{\subtitlefont766,24976 + \def\authorfont{\authorfont768,25060 + \def\title{\title774,25270 + \def\titlezzz##1{\titlezzz775,25305 + \def\subtitle{\subtitle783,25620 + \def\subtitlezzz##1{\subtitlezzz784,25661 + \def\author{\author787,25779 + \def\authorzzz##1{\authorzzz788,25816 + \def\page{\page794,26107 +\def\Etitlepage{\Etitlepage804,26276 +\def\finishtitlepage{\finishtitlepage817,26664 +\def\evenheading{\evenheading846,27672 +\def\oddheading{\oddheading847,27715 +\def\everyheading{\everyheading848,27756 +\def\evenfooting{\evenfooting850,27802 +\def\oddfooting{\oddfooting851,27845 +\def\everyfooting{\everyfooting852,27886 +\def\headings #1 {\headings893,29578 +\def\HEADINGSoff{\HEADINGSoff895,29627 +\def\HEADINGSdouble{\HEADINGSdouble904,30054 +\def\HEADINGSsingle{\HEADINGSsingle914,30374 +\def\HEADINGSon{\HEADINGSon922,30595 +\def\HEADINGSafter{\HEADINGSafter924,30629 +\def\HEADINGSdoublex{\HEADINGSdoublex926,30724 +\def\HEADINGSsingleafter{\HEADINGSsingleafter933,30912 +\def\HEADINGSsinglex{\HEADINGSsinglex934,30973 +\def\today{\today943,31248 +\def\thistitle{\thistitle958,31793 +\def\settitle{\settitle959,31818 +\def\settitlezzz #1{\settitlezzz960,31855 +\def\internalBitem{\internalBitem992,32785 +\def\internalBitemx{\internalBitemx993,32835 +\def\internalBxitem "#1"{\internalBxitem995,32880 +\def\internalBxitemx "#1"{\internalBxitemx996,32960 +\def\internalBkitem{\internalBkitem998,33035 +\def\internalBkitemx{\internalBkitemx999,33087 +\def\kitemzzz #1{\kitemzzz1001,33134 +\def\xitemzzz #1{\xitemzzz1004,33236 +\def\itemzzz #1{\itemzzz1007,33339 +\def\item{\item1037,34410 +\def\itemx{\itemx1038,34461 +\def\kitem{\kitem1039,34514 +\def\kitemx{\kitemx1040,34567 +\def\xitem{\xitem1041,34622 +\def\xitemx{\xitemx1042,34675 +\def\description{\description1045,34785 +\def\table{\table1047,34835 +\def\ftable{\ftable1052,34979 +\def\Eftable{\Eftable1056,35125 +\def\vtable{\vtable1059,35194 +\def\Evtable{\Evtable1063,35340 +\def\dontindex #1{\dontindex1066,35409 +\def\fnitemindex #1{\fnitemindex1067,35429 +\def\vritemindex #1{\vritemindex1068,35474 +\def\tablez #1#2#3#4#5#6{\tablez1074,35623 +\def\Edescription{\Edescription1077,35681 +\def\itemfont{\itemfont1082,35883 +\def\Etable{\Etable1090,36109 +\def\itemize{\itemize1103,36433 +\def\itemizezzz #1{\itemizezzz1105,36469 +\def\itemizey #1#2{\itemizey1110,36564 +\def#2{1119,36810 +\def\itemcontents{\itemcontents1120,36851 +\def\bullet{\bullet1123,36899 +\def\minus{\minus1124,36926 +\def\frenchspacing{\frenchspacing1128,37034 +\def\splitoff#1#2\endmark{\splitoff1134,37259 +\def\enumerate{\enumerate1140,37489 +\def\enumeratezzz #1{\enumeratezzz1141,37528 +\def\enumeratey #1 #2\endenumeratey{\enumeratey1142,37581 + \def\thearg{\thearg1146,37728 + \ifx\thearg\empty \def\thearg{\thearg1147,37747 +\def\numericenumerate{\numericenumerate1184,39081 +\def\lowercaseenumerate{\lowercaseenumerate1190,39211 +\def\uppercaseenumerate{\uppercaseenumerate1203,39558 +\def\startenumeration#1{\startenumeration1219,40048 +\def\alphaenumerate{\alphaenumerate1227,40230 +\def\capsenumerate{\capsenumerate1228,40265 +\def\Ealphaenumerate{\Ealphaenumerate1229,40299 +\def\Ecapsenumerate{\Ecapsenumerate1230,40333 +\def\itemizeitem{\itemizeitem1234,40413 +\def\newindex #1{\newindex1259,41270 +\def\defindex{\defindex1268,41559 +\def\newcodeindex #1{\newcodeindex1272,41667 +\def\defcodeindex{\defcodeindex1279,41927 +\def\synindex #1 #2 {\synindex1283,42107 +\def\syncodeindex #1 #2 {\syncodeindex1292,42447 +\def\doindex#1{\doindex1309,43126 +\def\singleindexer #1{\singleindexer1310,43185 +\def\docodeindex#1{\docodeindex1313,43297 +\def\singlecodeindexer #1{\singlecodeindexer1314,43364 +\def\indexdummies{\indexdummies1316,43422 +\def\_{\_1317,43442 +\def\w{\w1318,43470 +\def\bf{\bf1319,43497 +\def\rm{\rm1320,43526 +\def\sl{\sl1321,43555 +\def\sf{\sf1322,43584 +\def\tt{\tt1323,43612 +\def\gtr{\gtr1324,43640 +\def\less{\less1325,43670 +\def\hat{\hat1326,43702 +\def\char{\char1327,43732 +\def\TeX{\TeX1328,43764 +\def\dots{\dots1329,43794 +\def\copyright{\copyright1330,43827 +\def\tclose##1{\tclose1331,43870 +\def\code##1{\code1332,43915 +\def\samp##1{\samp1333,43956 +\def\t##1{\t1334,43997 +\def\r##1{\r1335,44032 +\def\i##1{\i1336,44067 +\def\b##1{\b1337,44102 +\def\cite##1{\cite1338,44137 +\def\key##1{\key1339,44178 +\def\file##1{\file1340,44217 +\def\var##1{\var1341,44258 +\def\kbd##1{\kbd1342,44297 +\def\indexdummyfont#1{\indexdummyfont1347,44453 +\def\indexdummytex{\indexdummytex1348,44479 +\def\indexdummydots{\indexdummydots1349,44503 +\def\indexnofonts{\indexnofonts1351,44529 +\let\w=\indexdummyfontdummyfont1352,44549 +\let\t=\indexdummyfontdummyfont1353,44572 +\let\r=\indexdummyfontdummyfont1354,44595 +\let\i=\indexdummyfontdummyfont1355,44618 +\let\b=\indexdummyfontdummyfont1356,44641 +\let\emph=\indexdummyfontdummyfont1357,44664 +\let\strong=\indexdummyfontdummyfont1358,44690 +\let\cite=\indexdummyfont=\indexdummyfont1359,44718 +\let\sc=\indexdummyfontdummyfont1360,44744 +\let\tclose=\indexdummyfontdummyfont1364,44916 +\let\code=\indexdummyfontdummyfont1365,44944 +\let\file=\indexdummyfontdummyfont1366,44970 +\let\samp=\indexdummyfontdummyfont1367,44996 +\let\kbd=\indexdummyfontdummyfont1368,45022 +\let\key=\indexdummyfontdummyfont1369,45047 +\let\var=\indexdummyfontdummyfont1370,45072 +\let\TeX=\indexdummytexdummytex1371,45097 +\let\dots=\indexdummydotsdummydots1372,45121 +\let\indexbackslash=0 %overridden during \printindex.backslash=01382,45373 +\def\doind #1#2{\doind1384,45429 +{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1386,45472 +\def\rawbackslashxx{\rawbackslashxx1389,45612 +{\indexnofontsnofonts1394,45874 +\def\dosubind #1#2#3{\dosubind1405,46185 +{\indexdummies % Must do this here, since \bf, etc expand at this stagedummies1407,46233 +\def\rawbackslashxx{\rawbackslashxx1410,46337 +{\indexnofontsnofonts1414,46491 +\def\findex {\findex1443,47422 +\def\kindex {\kindex1444,47445 +\def\cindex {\cindex1445,47468 +\def\vindex {\vindex1446,47491 +\def\tindex {\tindex1447,47514 +\def\pindex {\pindex1448,47537 +\def\cindexsub {\cindexsub1450,47561 +\def\printindex{\printindex1462,47888 +\def\doprintindex#1{\doprintindex1464,47929 + \def\indexbackslash{\indexbackslash1481,48414 + \indexfonts\rm \tolerance=9500 \advance\baselineskip -1ptfonts\rm1482,48453 +\def\initial #1{\initial1517,49525 +\def\entry #1#2{\entry1523,49732 + \null\nobreak\indexdotfill % Have leaders before the page number.dotfill1540,50379 +\def\indexdotfill{\indexdotfill1549,50707 +\def\primary #1{\primary1552,50813 +\def\secondary #1#2{\secondary1556,50895 +\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\pardotfill1559,50977 +\newbox\partialpageialpage1566,51150 +\def\begindoublecolumns{\begindoublecolumns1572,51308 + \output={\global\setbox\partialpage=ialpage=1573,51344 +\def\enddoublecolumns{\enddoublecolumns1577,51532 +\def\doublecolumnout{\doublecolumnout1580,51617 + \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1581,51686 +\def\pagesofar{\pagesofar1584,51864 +\def\balancecolumns{\balancecolumns1588,52101 + \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpageialpage1594,52272 + \dimen@=\pageheight \advance\dimen@ by-\ht\partialpageialpage1600,52533 +\newcount \appendixno \appendixno = `\@no1627,53438 +\def\appendixletter{\appendixletter1628,53479 +\def\opencontents{\opencontents1632,53582 +\def\thischapter{\thischapter1637,53763 +\def\seccheck#1{\seccheck1638,53801 +\def\chapternofonts{\chapternofonts1643,53905 +\def\result{\result1646,53980 +\def\equiv{\equiv1647,54015 +\def\expansion{\expansion1648,54048 +\def\print{\print1649,54089 +\def\TeX{\TeX1650,54122 +\def\dots{\dots1651,54151 +\def\copyright{\copyright1652,54182 +\def\tt{\tt1653,54223 +\def\bf{\bf1654,54250 +\def\w{\w1655,54278 +\def\less{\less1656,54303 +\def\gtr{\gtr1657,54334 +\def\hat{\hat1658,54363 +\def\char{\char1659,54392 +\def\tclose##1{\tclose1660,54423 +\def\code##1{\code1661,54467 +\def\samp##1{\samp1662,54507 +\def\r##1{\r1663,54547 +\def\b##1{\b1664,54581 +\def\key##1{\key1665,54615 +\def\file##1{\file1666,54653 +\def\kbd##1{\kbd1667,54693 +\def\i##1{\i1669,54801 +\def\cite##1{\cite1670,54835 +\def\var##1{\var1671,54875 +\def\emph##1{\emph1672,54913 +\def\dfn##1{\dfn1673,54953 +\def\thischaptername{\thischaptername1676,54994 +\outer\def\chapter{\chapter1677,55033 +\def\chapterzzz #1{\chapterzzz1678,55074 +{\chapternofonts%nofonts%1687,55470 +\global\let\section = \numberedsec=1692,55623 +\global\let\subsection = \numberedsubsec=1693,55658 +\global\let\subsubsection = \numberedsubsubsec=1694,55699 +\outer\def\appendix{\appendix1697,55750 +\def\appendixzzz #1{\appendixzzz1698,55793 +\global\advance \appendixno by 1 \message{no1700,55870 +\chapmacro {#1}{Appendix \appendixletter}letter1701,55939 +\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}letter:1704,56032 +{\chapternofonts%nofonts%1705,56104 + {#1}{Appendix \appendixletter}letter1707,56160 +\appendixnoderef %noderef1710,56260 +\global\let\section = \appendixsec=1711,56279 +\global\let\subsection = \appendixsubsec=1712,56314 +\global\let\subsubsection = \appendixsubsubsec=1713,56355 +\outer\def\top{\top1716,56406 +\outer\def\unnumbered{\unnumbered1717,56446 +\def\unnumberedzzz #1{\unnumberedzzz1718,56493 +{\chapternofonts%nofonts%1722,56656 +\global\let\section = \unnumberedsec=1727,56806 +\global\let\subsection = \unnumberedsubsec=1728,56843 +\global\let\subsubsection = \unnumberedsubsubsec=1729,56886 +\outer\def\numberedsec{\numberedsec1732,56939 +\def\seczzz #1{\seczzz1733,56980 +{\chapternofonts%nofonts%1736,57136 +\outer\def\appendixsection{\appendixsection1745,57322 +\outer\def\appendixsec{\appendixsec1746,57379 +\def\appendixsectionzzz #1{\appendixsectionzzz1747,57432 +\gdef\thissection{#1}\secheading {#1}{\appendixletter}letter1749,57544 +{\chapternofonts%nofonts%1750,57612 +{#1}{\appendixletter}letter1752,57668 +\appendixnoderef %noderef1755,57768 +\outer\def\unnumberedsec{\unnumberedsec1759,57808 +\def\unnumberedseczzz #1{\unnumberedseczzz1760,57861 +{\chapternofonts%nofonts%1762,57956 +\outer\def\numberedsubsec{\numberedsubsec1770,58124 +\def\numberedsubseczzz #1{\numberedsubseczzz1771,58179 +{\chapternofonts%nofonts%1774,58358 +\outer\def\appendixsubsec{\appendixsubsec1783,58562 +\def\appendixsubseczzz #1{\appendixsubseczzz1784,58617 +\subsecheading {#1}{\appendixletter}letter1786,58739 +{\chapternofonts%nofonts%1787,58804 +{#1}{\appendixletter}letter1789,58863 +\appendixnoderef %noderef1792,58978 +\outer\def\unnumberedsubsec{\unnumberedsubsec1796,59018 +\def\unnumberedsubseczzz #1{\unnumberedsubseczzz1797,59077 +{\chapternofonts%nofonts%1799,59178 +\outer\def\numberedsubsubsec{\numberedsubsubsec1807,59349 +\def\numberedsubsubseczzz #1{\numberedsubsubseczzz1808,59410 +{\chapternofonts%nofonts%1812,59607 +\outer\def\appendixsubsubsec{\appendixsubsubsec1823,59840 +\def\appendixsubsubseczzz #1{\appendixsubsubseczzz1824,59901 + {\appendixletter}letter1827,60040 +{\chapternofonts%nofonts%1828,60106 + {\appendixletter}letter1830,60171 +\appendixnoderef %noderef1834,60305 +\outer\def\unnumberedsubsubsec{\unnumberedsubsubsec1838,60345 +\def\unnumberedsubsubseczzz #1{\unnumberedsubsubseczzz1839,60410 +{\chapternofonts%nofonts%1841,60517 +\def\infotop{\infotop1851,60846 +\def\infounnumbered{\infounnumbered1852,60884 +\def\infounnumberedsec{\infounnumberedsec1853,60929 +\def\infounnumberedsubsec{\infounnumberedsubsec1854,60980 +\def\infounnumberedsubsubsec{\infounnumberedsubsubsec1855,61037 +\def\infoappendix{\infoappendix1857,61101 +\def\infoappendixsec{\infoappendixsec1858,61142 +\def\infoappendixsubsec{\infoappendixsubsec1859,61189 +\def\infoappendixsubsubsec{\infoappendixsubsubsec1860,61242 +\def\infochapter{\infochapter1862,61302 +\def\infosection{\infosection1863,61341 +\def\infosubsection{\infosubsection1864,61380 +\def\infosubsubsection{\infosubsubsection1865,61425 +\global\let\section = \numberedsec=1870,61662 +\global\let\subsection = \numberedsubsec=1871,61697 +\global\let\subsubsection = \numberedsubsubsec=1872,61738 +\def\majorheading{\majorheading1886,62245 +\def\majorheadingzzz #1{\majorheadingzzz1887,62290 +\def\chapheading{\chapheading1893,62523 +\def\chapheadingzzz #1{\chapheadingzzz1894,62566 +\def\heading{\heading1899,62761 +\def\subheading{\subheading1901,62798 +\def\subsubheading{\subsubheading1903,62841 +\def\dobreak#1#2{\dobreak1910,63118 +\def\setchapterstyle #1 {\setchapterstyle1912,63196 +\def\chapbreak{\chapbreak1919,63451 +\def\chappager{\chappager1920,63501 +\def\chapoddpage{\chapoddpage1921,63539 +\def\setchapternewpage #1 {\setchapternewpage1923,63618 +\def\CHAPPAGoff{\CHAPPAGoff1925,63675 +\def\CHAPPAGon{\CHAPPAGon1929,63769 +\global\def\HEADINGSon{\HEADINGSon1932,63860 +\def\CHAPPAGodd{\CHAPPAGodd1934,63902 +\global\def\HEADINGSon{\HEADINGSon1937,63998 +\def\CHAPFplain{\CHAPFplain1941,64052 +\def\chfplain #1#2{\chfplain1945,64144 +\def\unnchfplain #1{\unnchfplain1956,64367 +\def\unnchfopen #1{\unnchfopen1964,64596 +\def\chfopen #1#2{\chfopen1970,64804 +\def\CHAPFopen{\CHAPFopen1975,64948 +\def\subsecheadingbreak{\subsecheadingbreak1982,65166 +\def\secheadingbreak{\secheadingbreak1985,65295 +\def\secheading #1#2#3{\secheading1993,65577 +\def\plainsecheading #1{\plainsecheading1994,65633 +\def\secheadingi #1{\secheadingi1995,65676 +\def\subsecheading #1#2#3#4{\subsecheading2006,66044 +\def\subsecheadingi #1{\subsecheadingi2007,66111 +\def\subsubsecfonts{\subsubsecfonts2014,66408 +\def\subsubsecheading #1#2#3#4#5{\subsubsecheading2017,66531 +\def\subsubsecheadingi #1{\subsubsecheadingi2018,66609 +\def\startcontents#1{\startcontents2032,67081 + \unnumbchapmacro{#1}\def\thischapter{\thischapter2040,67354 +\outer\def\contents{\contents2049,67713 +\outer\def\summarycontents{\summarycontents2057,67857 + \def\secentry ##1##2##3##4{\secentry2067,68228 + \def\unnumbsecentry ##1##2{\unnumbsecentry2068,68263 + \def\subsecentry ##1##2##3##4##5{\subsecentry2069,68298 + \def\unnumbsubsecentry ##1##2{\unnumbsubsecentry2070,68339 + \def\subsubsecentry ##1##2##3##4##5##6{\subsubsecentry2071,68377 + \def\unnumbsubsubsecentry ##1##2{\unnumbsubsubsecentry2072,68424 +\def\chapentry#1#2#3{\chapentry2085,68858 +\def\shortchapentry#1#2#3{\shortchapentry2088,68975 + {#2\labelspace #1}space2091,69085 +\def\unnumbchapentry#1#2{\unnumbchapentry2094,69139 +\def\shortunnumberedentry#1#2{\shortunnumberedentry2095,69186 +\def\secentry#1#2#3#4{\secentry2102,69350 +\def\unnumbsecentry#1#2{\unnumbsecentry2103,69409 +\def\subsecentry#1#2#3#4#5{\subsecentry2106,69470 +\def\unnumbsubsecentry#1#2{\unnumbsubsecentry2107,69540 +\def\subsubsecentry#1#2#3#4#5#6{\subsubsecentry2110,69614 + \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}space2111,69648 +\def\unnumbsubsubsecentry#1#2{\unnumbsubsubsecentry2112,69699 +\def\dochapentry#1#2{\dochapentry2123,70073 +\def\dosecentry#1#2{\dosecentry2138,70678 +\def\dosubsecentry#1#2{\dosubsecentry2145,70856 +\def\dosubsubsecentry#1#2{\dosubsubsecentry2152,71041 +\def\labelspace{\labelspace2160,71292 +\def\dopageno#1{\dopageno2162,71327 +\def\doshortpageno#1{\doshortpageno2163,71353 +\def\chapentryfonts{\chapentryfonts2165,71385 +\def\secentryfonts{\secentryfonts2166,71420 +\def\point{\point2192,72379 +\def\result{\result2194,72400 +\def\expansion{\expansion2195,72473 +\def\print{\print2196,72544 +\def\equiv{\equiv2198,72611 +\def\error{\error2218,73384 +\def\tex{\tex2224,73613 +\def\@{\@2242,73996 +\gdef\sepspaces{\def {\ }}}\2265,74728 +\def\aboveenvbreak{\aboveenvbreak2268,74810 +\def\afterenvbreak{\afterenvbreak2272,74976 +\def\ctl{\ctl2286,75487 +\def\ctr{\ctr2287,75559 +\def\cbl{\cbl2288,75598 +\def\cbr{\cbr2289,75638 +\def\carttop{\carttop2290,75677 +\def\cartbot{\cartbot2293,75785 +\long\def\cartouche{\cartouche2299,75925 +\def\Ecartouche{\Ecartouche2326,76713 +\def\lisp{\lisp2338,76848 +\def\Elisp{\Elisp2348,77195 +\def\next##1{\next2360,77521 +\def\Eexample{\Eexample2364,77563 +\def\Esmallexample{\Esmallexample2367,77610 +\def\smalllispx{\smalllispx2373,77788 +\def\Esmalllisp{\Esmalllisp2383,78142 +\obeyspaces \obeylines \ninett \indexfonts \rawbackslashfonts2396,78498 +\def\next##1{\next2397,78555 +\def\display{\display2401,78635 +\def\Edisplay{\Edisplay2410,78954 +\def\next##1{\next2422,79265 +\def\format{\format2426,79368 +\def\Eformat{\Eformat2434,79664 +\def\next##1{\next2437,79753 +\def\flushleft{\flushleft2441,79805 +\def\Eflushleft{\Eflushleft2451,80176 +\def\next##1{\next2454,80269 +\def\flushright{\flushright2456,80291 +\def\Eflushright{\Eflushright2466,80663 +\def\next##1{\next2470,80794 +\def\quotation{\quotation2474,80852 +\def\Equotation{\Equotation2480,81044 +\def\setdeffont #1 {\setdeffont2493,81442 +\newskip\defbodyindent \defbodyindent=.4inbodyindent2495,81488 +\newskip\defargsindent \defargsindent=50ptargsindent2496,81531 +\newskip\deftypemargin \deftypemargin=12pttypemargin2497,81574 +\newskip\deflastargmargin \deflastargmargin=18ptlastargmargin2498,81617 +\def\activeparens{\activeparens2503,81815 +\def\opnr{\opnr2529,83027 +\def\lbrb{\lbrb2530,83092 +\def\defname #1#2{\defname2536,83293 +\advance\dimen2 by -\defbodyindentbodyindent2540,83411 +\advance\dimen3 by -\defbodyindentbodyindent2542,83465 +\setbox0=\hbox{\hskip \deflastargmargin{lastargmargin2544,83519 +\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuationsargsindent2546,83661 +\parshape 2 0in \dimen0 \defargsindent \dimen1 %argsindent2547,83736 +\rlap{\rightline{{\rm #2}\hskip \deftypemargin}typemargin2554,84105 +\advance\leftskip by -\defbodyindentbodyindent2557,84239 +\exdentamount=\defbodyindentbodyindent2558,84276 +\def\defparsebody #1#2#3{\defparsebody2568,84635 +\def#1{2572,84819 +\def#2{2573,84855 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2575,84927 +\exdentamount=\defbodyindentbodyindent2576,85001 +\def\defmethparsebody #1#2#3#4 {\defmethparsebody2581,85105 +\def#1{2585,85266 +\def#2##1 {2586,85302 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2588,85385 +\exdentamount=\defbodyindentbodyindent2589,85459 +\def\defopparsebody #1#2#3#4#5 {\defopparsebody2592,85544 +\def#1{2596,85705 +\def#2##1 ##2 {2597,85741 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2600,85841 +\exdentamount=\defbodyindentbodyindent2601,85915 +\def\defvarparsebody #1#2#3{\defvarparsebody2608,86186 +\def#1{2612,86373 +\def#2{2613,86409 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2615,86468 +\exdentamount=\defbodyindentbodyindent2616,86542 +\def\defvrparsebody #1#2#3#4 {\defvrparsebody2621,86633 +\def#1{2625,86792 +\def#2##1 {2626,86828 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2628,86898 +\exdentamount=\defbodyindentbodyindent2629,86972 +\def\defopvarparsebody #1#2#3#4#5 {\defopvarparsebody2632,87044 +\def#1{2636,87208 +\def#2##1 ##2 {2637,87244 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindentbodyindent2640,87331 +\exdentamount=\defbodyindentbodyindent2641,87405 +\def\defunargs #1{\defunargs2664,88165 +\def\deftypefunargs #1{\deftypefunargs2676,88547 +\def\deffn{\deffn2690,88929 +\def\deffnheader #1#2#3{\deffnheader2692,88986 +\begingroup\defname {name2693,89034 +\def\defun{\defun2699,89179 +\def\defunheader #1#2{\defunheader2701,89232 +\begingroup\defname {name2702,89307 +\defunargs {unargs2703,89343 +\def\deftypefun{\deftypefun2709,89491 +\def\deftypefunheader #1#2{\deftypefunheader2712,89613 +\def\deftypefunheaderx #1#2 #3\relax{\deftypefunheaderx2714,89722 +\begingroup\defname {name2716,89814 +\deftypefunargs {typefunargs2717,89860 +\def\deftypefn{\deftypefn2723,90031 +\def\deftypefnheader #1#2#3{\deftypefnheader2726,90180 +\def\deftypefnheaderx #1#2#3 #4\relax{\deftypefnheaderx2728,90316 +\begingroup\defname {name2730,90409 +\deftypefunargs {typefunargs2731,90449 +\def\defmac{\defmac2737,90570 +\def\defmacheader #1#2{\defmacheader2739,90627 +\begingroup\defname {name2740,90703 +\defunargs {unargs2741,90736 +\def\defspec{\defspec2747,90860 +\def\defspecheader #1#2{\defspecheader2749,90921 +\begingroup\defname {name2750,90998 +\defunargs {unargs2751,91038 +\def\deffnx #1 {\deffnx2758,91233 +\def\defunx #1 {\defunx2759,91290 +\def\defmacx #1 {\defmacx2760,91347 +\def\defspecx #1 {\defspecx2761,91406 +\def\deftypefnx #1 {\deftypefnx2762,91467 +\def\deftypeunx #1 {\deftypeunx2763,91532 +\def\defop #1 {\defop2769,91678 +\defopparsebody\Edefop\defopx\defopheader\defoptype}opparsebody\Edefop\defopx\defopheader\defoptype2770,91713 +\def\defopheader #1#2#3{\defopheader2772,91767 +\begingroup\defname {name2774,91856 +\defunargs {unargs2775,91902 +\def\defmethod{\defmethod2780,91963 +\def\defmethodheader #1#2#3{\defmethodheader2782,92036 +\begingroup\defname {name2784,92124 +\defunargs {unargs2785,92164 +\def\defcv #1 {\defcv2790,92238 +\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}opvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype2791,92273 +\def\defcvarheader #1#2#3{\defcvarheader2793,92332 +\begingroup\defname {name2795,92418 +\defvarargs {varargs2796,92464 +\def\defivar{\defivar2801,92537 +\def\defivarheader #1#2#3{\defivarheader2803,92600 +\begingroup\defname {name2805,92686 +\defvarargs {varargs2806,92737 +\def\defopx #1 {\defopx2812,92886 +\def\defmethodx #1 {\defmethodx2813,92943 +\def\defcvx #1 {\defcvx2814,93008 +\def\defivarx #1 {\defivarx2815,93065 +\def\defvarargs #1{\defvarargs2822,93336 +\def\defvr{\defvr2828,93480 +\def\defvrheader #1#2#3{\defvrheader2830,93535 +\begingroup\defname {name2831,93583 +\def\defvar{\defvar2835,93668 +\def\defvarheader #1#2{\defvarheader2837,93728 +\begingroup\defname {name2838,93799 +\defvarargs {varargs2839,93835 +\def\defopt{\defopt2844,93901 +\def\defoptheader #1#2{\defoptheader2846,93961 +\begingroup\defname {name2847,94032 +\defvarargs {varargs2848,94071 +\def\deftypevar{\deftypevar2853,94128 +\def\deftypevarheader #1#2{\deftypevarheader2856,94244 +\begingroup\defname {name2858,94327 +\def\deftypevr{\deftypevr2865,94501 +\def\deftypevrheader #1#2#3{\deftypevrheader2867,94572 +\begingroup\defname {name2868,94624 +\def\defvrx #1 {\defvrx2876,94861 +\def\defvarx #1 {\defvarx2877,94918 +\def\defoptx #1 {\defoptx2878,94977 +\def\deftypevarx #1 {\deftypevarx2879,95036 +\def\deftypevrx #1 {\deftypevrx2880,95103 +\def\deftpargs #1{\deftpargs2885,95252 +\def\deftp{\deftp2889,95332 +\def\deftpheader #1#2#3{\deftpheader2891,95387 +\begingroup\defname {name2892,95435 +\def\deftpx #1 {\deftpx2897,95594 +\def\setref#1{\setref2908,95915 +\def\unnumbsetref#1{\unnumbsetref2913,96029 +\def\appendixsetref#1{\appendixsetref2918,96136 +\def\pxref#1{\pxref2929,96547 +\def\xref#1{\xref2930,96583 +\def\ref#1{\ref2931,96618 +\def\xrefX[#1,#2,#3,#4,#5,#6]{\xrefX[2932,96648 +\def\printedmanual{\printedmanual2933,96691 +\def\printednodename{\printednodename2934,96729 +\def\printednodename{\printednodename2939,96854 +section ``\printednodename'' in \cite{\printedmanual}\printedmanual2954,97487 +\refx{x2957,97565 +\def\dosetq #1#2{\dosetq2965,97785 +\def\internalsetq #1#2{\internalsetq2973,98043 +\def\Ypagenumber{\Ypagenumber2977,98144 +\def\Ytitle{\Ytitle2979,98170 +\def\Ynothing{\Ynothing2981,98197 +\def\Ysectionnumberandtype{\Ysectionnumberandtype2983,98214 +\def\Yappendixletterandtype{\Yappendixletterandtype2992,98530 +\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{no2993,98560 +\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %no.\the\secno2994,98615 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %no.\the\secno.\the\subsecno2996,98719 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %no.\the\secno.\the\subsecno.\the\subsubsecno2998,98790 + \def\linenumber{\linenumber3009,99129 +\def\refx#1#2{\refx3015,99313 +\def\xrdef #1#2{\xrdef3037,99939 +\def\readauxfile{\readauxfile3040,100024 +\def\supereject{\supereject3110,101805 +\footstrut\parindent=\defaultparindent\hang\textindent{aultparindent\hang\textindent3131,102490 +\def\openindices{\openindices3139,102676 +\newdimen\defaultparindent \defaultparindent = 15ptaultparindent3151,102901 +\parindent = \defaultparindentaultparindent3152,102953 +\def\smallbook{\smallbook3175,103677 +\global\def\Esmallexample{\Esmallexample3192,104104 +\def\afourpaper{\afourpaper3196,104195 +\def\finalout{\finalout3224,105003 +\def\normaldoublequote{\normaldoublequote3235,105264 +\def\normaltilde{\normaltilde3236,105290 +\def\normalcaret{\normalcaret3237,105310 +\def\normalunderscore{\normalunderscore3238,105330 +\def\normalverticalbar{\normalverticalbar3239,105355 +\def\normalless{\normalless3240,105381 +\def\normalgreater{\normalgreater3241,105400 +\def\normalplus{\normalplus3242,105422 +\def\ifusingtt#1#2{\ifusingtt3253,105914 +\def\activedoublequote{\activedoublequote3261,106242 +\def~{~3264,106328 +\def^{^3267,106389 +\def_{_3270,106428 +\def\_{\_3272,106502 +\def\lvvmode{\lvvmode3279,106839 +\def|{|3282,106889 +\def<{<3285,106952 +\def>{>3288,107009 +\def+{+3290,107047 +\def\turnoffactive{\turnoffactive3296,107208 +\global\def={=3307,107494 +\def\normalbackslash{\normalbackslash3321,107876 c-src/c.c,76 T f(1,0 @@ -4920,42 +4920,42 @@ c-src/a/b/b.c,18 #define questo 34, y-src/parse.y,1061 -#define obstack_chunk_alloc 46,1111 -#define obstack_chunk_free 47,1149 -int yylex 57,1317 -void yyerror 59,1347 -void yyerror 61,1376 -VOIDSTAR parse_hash;63,1400 -extern VOIDSTAR hash_find(64,1421 -unsigned char fnin[fnin67,1519 -#define YYSTYPE 71,1617 -typedef struct node *YYSTYPE;YYSTYPE72,1648 -YYSTYPE parse_return;73,1678 -YYSTYPE make_list 75,1716 -YYSTYPE make_list 77,1760 -char *instr;instr80,1790 -int parse_error 81,1803 -extern struct obstack tmp_mem;82,1824 -line:line86,1862 -exp:exp94,1975 -exp_list:exp_list262,5642 -range_exp:range_exp268,5740 -range_exp_list:range_exp_list272,5770 -cell:cell278,5888 -yyerror FUN1(285,5935 -make_list FUN2(292,6015 -#define ERROR 303,6215 -extern struct node *yylval;yylval305,6233 -unsigned char parse_cell_or_range 308,6278 -unsigned char parse_cell_or_range 310,6342 -yylex FUN0(314,6392 -parse_cell_or_range FUN2(586,11758 -#define CK_ABS_R(670,13200 -#define CK_REL_R(674,13279 -#define CK_ABS_C(679,13408 -#define CK_REL_C(683,13487 -#define MAYBEREL(688,13616 -str_to_col FUN1(846,16817 +#define obstack_chunk_alloc 46,1116 +#define obstack_chunk_free 47,1154 +int yylex 57,1322 +void yyerror 59,1352 +void yyerror 61,1381 +VOIDSTAR parse_hash;63,1405 +extern VOIDSTAR hash_find(64,1426 +unsigned char fnin[fnin67,1524 +#define YYSTYPE 71,1622 +typedef struct node *YYSTYPE;YYSTYPE72,1653 +YYSTYPE parse_return;73,1683 +YYSTYPE make_list 75,1721 +YYSTYPE make_list 77,1765 +char *instr;instr80,1795 +int parse_error 81,1808 +extern struct obstack tmp_mem;82,1829 +line:line86,1867 +exp:exp94,1980 +exp_list:exp_list262,5647 +range_exp:range_exp268,5745 +range_exp_list:range_exp_list272,5775 +cell:cell278,5893 +yyerror FUN1(285,5940 +make_list FUN2(292,6020 +#define ERROR 303,6220 +extern struct node *yylval;yylval305,6238 +unsigned char parse_cell_or_range 308,6283 +unsigned char parse_cell_or_range 310,6347 +yylex FUN0(314,6397 +parse_cell_or_range FUN2(586,11763 +#define CK_ABS_R(670,13205 +#define CK_REL_R(674,13284 +#define CK_ABS_C(679,13413 +#define CK_REL_C(683,13492 +#define MAYBEREL(688,13621 +str_to_col FUN1(846,16822 y-src/parse.c,520 #define YYBISON 4,64 @@ -5236,62 +5236,62 @@ warning 993, lookup 999, /usr/share/bison/bison.simple,2238 -# define YYSTD(40, -# define YYSTD(42, -# define YYSTACK_ALLOC 50, -# define YYSIZE_T 51, -# define YYSTACK_ALLOC 55, -# define YYSIZE_T 56, -# define YYSTACK_ALLOC 59, -# define YYSTACK_FREE(67, -# define YYSIZE_T 71, -# define YYSIZE_T 75, -# define YYSTACK_ALLOC 78, -# define YYSTACK_FREE 79, -union yyalloc83, - short yyss;85, - YYSTYPE yyvs;86, - YYLTYPE yyls;88, -# define YYSTACK_GAP_MAX 93, -# define YYSTACK_BYTES(98, -# define YYSTACK_BYTES(102, -# define YYSTACK_RELOCATE(112, -# define YYSIZE_T 128, -# define YYSIZE_T 131, -# define YYSIZE_T 136, -# define YYSIZE_T 140, -# define YYSIZE_T 145, -#define yyerrok 148, -#define yyclearin 149, -#define YYEMPTY 150, -#define YYEOF 151, -#define YYACCEPT 152, -#define YYABORT 153, -#define YYERROR 154, -#define YYFAIL 158, -#define YYRECOVERING(159, -#define YYBACKUP(160, -#define YYTERROR 177, -#define YYERRCODE 178, -# define YYLLOC_DEFAULT(189, -# define YYLEX 200, -# define YYLEX 202, -# define YYLEX 206, -# define YYLEX 208, -# define YYLEX 212, -# define YYFPRINTF 225, -# define YYDPRINTF(228, -int yydebug;237, -# define YYDPRINTF(239, -# define YYINITDEPTH 244, -# undef YYMAXDEPTH255, -# define YYMAXDEPTH 259, -# define yymemcpy 264, -yymemcpy 271, -# define yystrlen 293, -yystrlen 298, -# define yystpcpy 316, -yystpcpy 322, +# define YYSTD(41, +# define YYSTD(43, +# define YYSTACK_ALLOC 51, +# define YYSIZE_T 52, +# define YYSTACK_ALLOC 56, +# define YYSIZE_T 57, +# define YYSTACK_ALLOC 60, +# define YYSTACK_FREE(68, +# define YYSIZE_T 72, +# define YYSIZE_T 76, +# define YYSTACK_ALLOC 79, +# define YYSTACK_FREE 80, +union yyalloc84, + short yyss;86, + YYSTYPE yyvs;87, + YYLTYPE yyls;89, +# define YYSTACK_GAP_MAX 94, +# define YYSTACK_BYTES(99, +# define YYSTACK_BYTES(103, +# define YYSTACK_RELOCATE(113, +# define YYSIZE_T 129, +# define YYSIZE_T 132, +# define YYSIZE_T 137, +# define YYSIZE_T 141, +# define YYSIZE_T 146, +#define yyerrok 149, +#define yyclearin 150, +#define YYEMPTY 151, +#define YYEOF 152, +#define YYACCEPT 153, +#define YYABORT 154, +#define YYERROR 155, +#define YYFAIL 159, +#define YYRECOVERING(160, +#define YYBACKUP(161, +#define YYTERROR 178, +#define YYERRCODE 179, +# define YYLLOC_DEFAULT(190, +# define YYLEX 201, +# define YYLEX 203, +# define YYLEX 207, +# define YYLEX 209, +# define YYLEX 213, +# define YYFPRINTF 226, +# define YYDPRINTF(229, +int yydebug;238, +# define YYDPRINTF(240, +# define YYINITDEPTH 245, +# undef YYMAXDEPTH256, +# define YYMAXDEPTH 260, +# define yymemcpy 265, +yymemcpy 272, +# define yystrlen 294, +yystrlen 299, +# define yystpcpy 317, +yystpcpy 323, # define YYPARSE_PARAM_ARG 351, # define YYPARSE_PARAM_DECL352, # define YYPARSE_PARAM_ARG 354, commit d27c8078ef766dae3587bc82b70128a70efaa223 Author: Andreas Schwab Date: Fri Jan 29 11:18:42 2016 +0100 Re-enable checks in member, memql, delete to complain about non-lists * fns.c (Fmember, Fmemql, Fdelete): Revert 2007-10-16 change. diff --git a/src/fns.c b/src/fns.c index 86ad333..d180844 100644 --- a/src/fns.c +++ b/src/fns.c @@ -1349,7 +1349,7 @@ The value is actually the tail of LIST whose car is ELT. */) (register Lisp_Object elt, Lisp_Object list) { register Lisp_Object tail; - for (tail = list; CONSP (tail); tail = XCDR (tail)) + for (tail = list; !NILP (tail); tail = XCDR (tail)) { register Lisp_Object tem; CHECK_LIST_CONS (tail, list); @@ -1397,7 +1397,7 @@ The value is actually the tail of LIST whose car is ELT. */) if (!FLOATP (elt)) return Fmemq (elt, list); - for (tail = list; CONSP (tail); tail = XCDR (tail)) + for (tail = list; !NILP (tail); tail = XCDR (tail)) { register Lisp_Object tem; CHECK_LIST_CONS (tail, list); @@ -1710,7 +1710,7 @@ changing the value of a sequence `foo'. */) { Lisp_Object tail, prev; - for (tail = seq, prev = Qnil; CONSP (tail); tail = XCDR (tail)) + for (tail = seq, prev = Qnil; !NILP (tail); tail = XCDR (tail)) { CHECK_LIST_CONS (tail, seq); commit df5ae7ddab1bd2fbb8a6a4abc05d4922abf8c5db Author: Andreas Schwab Date: Sat Jan 30 10:39:20 2016 +0100 Revert "Re-enable checks in member, memql, delete to complain about non-lists" This reverts commit f524e8b7f12d9b5a8b92084e5385429fe7b085b9. diff --git a/src/fns.c b/src/fns.c index d180844..86ad333 100644 --- a/src/fns.c +++ b/src/fns.c @@ -1349,7 +1349,7 @@ The value is actually the tail of LIST whose car is ELT. */) (register Lisp_Object elt, Lisp_Object list) { register Lisp_Object tail; - for (tail = list; !NILP (tail); tail = XCDR (tail)) + for (tail = list; CONSP (tail); tail = XCDR (tail)) { register Lisp_Object tem; CHECK_LIST_CONS (tail, list); @@ -1397,7 +1397,7 @@ The value is actually the tail of LIST whose car is ELT. */) if (!FLOATP (elt)) return Fmemq (elt, list); - for (tail = list; !NILP (tail); tail = XCDR (tail)) + for (tail = list; CONSP (tail); tail = XCDR (tail)) { register Lisp_Object tem; CHECK_LIST_CONS (tail, list); @@ -1710,7 +1710,7 @@ changing the value of a sequence `foo'. */) { Lisp_Object tail, prev; - for (tail = seq, prev = Qnil; !NILP (tail); tail = XCDR (tail)) + for (tail = seq, prev = Qnil; CONSP (tail); tail = XCDR (tail)) { CHECK_LIST_CONS (tail, seq); commit a089d6a211c9051e27a78d03d5b323300134bb21 Author: Dmitry Gutov Date: Sat Jan 30 11:55:19 2016 +0300 Don't fiddle with DEFAULT * lisp/progmodes/project.el (project--completing-read-strict): Don't change DEFAULT, whether is has any matches in COLLECTION, or not. diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index 0b05de2..1251bca 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -374,9 +374,10 @@ recognized." (defun project--completing-read-strict (prompt collection &optional predicate hist default inherit-input-method) - (when (and default (not (test-completion default collection predicate))) - (setq default (car (completion-try-completion - default collection predicate (length default))))) + ;; Tried both expanding the default before showing the prompt, and + ;; removing it when it has no matches. Neither seems natural + ;; enough. Removal is confusing; early expansion makes the prompt + ;; too long. (let* ((new-prompt (if default (format "%s (default %s): " prompt default) (format "%s: " prompt))) commit ef760b899ad89f941f552ed2d3ac9e45156f3e3c Author: Eli Zaretskii Date: Sat Jan 30 10:04:13 2016 +0200 Document xwidget commands and functions * doc/lispref/display.texi (Xwidgets): New section, describes some of the xwidget primitives. * doc/lispref/display.texi (Display): Update the chapter menu. * doc/emacs/misc.texi (Embedded WebKit Widgets): New section. * doc/emacs/emacs.texi (Top): Update the master menu to include the xwidget node. diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index ac8988b..dc99d49 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi @@ -192,6 +192,7 @@ Advanced Features * Network Security:: Managing the network security. * Document View:: Viewing PDF, PS and DVI files. * EWW:: A web browser in Emacs. +* Embedded WebKit Widgets:: Embedding browser widgets in Emacs buffers. * Shell:: Executing shell commands from Emacs. * Emacs Server:: Using Emacs as an editing server. * Printing:: Printing hardcopies of buffers or regions. diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index 2d8137e..b5a2150 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -604,6 +604,28 @@ using the command @kbd{M-x eww-open-file}. You can use EWW as the web browser for @code{browse-url}, @pxref{Browse-URL}. For full details, @pxref{Top, EWW,, eww, The Emacs Web Wowser Manual}. +@node Embedded WebKit Widgets +@section Embedded WebKit Widgets +@cindex xwidget +@cindex webkit widgets +@cindex embedded widgets + +@findex xwidget-webkit-browse-url +@findex xwidget-webkit-mode +@cindex Xwidget-WebKit mode + If Emacs was compiled with the appropriate support packages, it is +able to show browser widgets in its buffers. The command @kbd{M-x +xwidget-webkit-browse-url} asks for a URL to display in the browser +widget. The URL normally defaults to the URL at or before point, but +if there is an active region (@pxref{Mark}), the default URL comes +from the region instead, after removing any whitespace from it. The +command then creates a new buffer with the embedded browser showing +the specified URL. The buffer is put in the Xwidget-WebKit mode +(similar to Image mode, @pxref{File Conveniences}), which provides +one-key commands for scrolling the widget, changing its size, and +reloading it. Type @w{@kbd{C-h b}} in that buffer to see the key +bindings. + @node Shell @section Running Shell Commands from Emacs @cindex subshell diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index eaba03d..aa98ed4 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -27,6 +27,7 @@ that Emacs presents to the user. * Window Dividers:: Separating windows visually. * Display Property:: Enabling special display features. * Images:: Displaying images in Emacs buffers. +* Xwidgets:: Displaying native widgets in Emacs buffers. * Buttons:: Adding clickable buttons to Emacs buffers. * Abstract Display:: Emacs's Widget for Object Collections. * Blinking:: How Emacs shows the matching open parenthesis. @@ -5612,6 +5613,118 @@ except when you explicitly clear it. This mode can be useful for debugging. @end defvar +@node Xwidgets +@section Embedded Native Widgets +@cindex xwidget +@cindex embedded widgets +@cindex webkit browser widget + + Emacs is able to display native widgets, such as GTK WebKit widgets, +in Emacs buffers when it was built with the necessary support +libraries and is running on a graphical terminal. To test whether +Emacs supports display of embedded widgets, check that the +@code{xwidget-internal} feature is available (@pxref{Named Features}). + + To display an embedded widget in a buffer, you must first create an +xwidget object, and then use that object as the display specifier +in a @code{display} text or overlay property (@pxref{Display +Property}). + +@defun make-xwidget beg end type title width height arguments &optional buffer +This creates an xwidget object between @var{beg} and @var{end}, buffer +positions in @var{buffer}, and returns the new object. If +@var{buffer} is omitted or @code{nil}, it defaults to the current +buffer. If @var{buffer} names a buffer that doesn't exist, it will be +created. The @var{type} identifies the type of the xwidget component, +it can be one of the following: + +@table @code +@item webkit-osr +The WebKit OSR (@dfn{on-stack replacement}) component. +@end table + +The @var{width} and @var{height} arguments specify the widget size in +pixels, and @var{title}, a string, specifies its title. +@end defun + +@defun xwidgetp object +This function returns @code{t} if @var{object} is an xwidget, +@code{nil} otherwise. +@end defun + +@defun xwidget-plist xwidget +This function returns the property list of @var{xwidget}. +@end defun + +@defun set-xwidget-plist xwidget plist +This function replaces the property list of @var{xwidget} with a new +property list given by @var{plist}. +@end defun + +@defun xwidget-buffer xwidget +This function returns the buffer of @var{xwidget}. +@end defun + +@defun get-buffer-xwidgets buffer +This function returns a list of xwidget objects associated with the +@var{buffer}, which can be specified as a buffer object or a name of +an existing buffer, a string. The value is @code{nil} if @var{buffer} +contains no xwidgets. +@end defun + +@defun xwidget-webkit-goto-uri xwidget uri +This function browses the specified @var{uri} in the given +@var{xwidget}. The @var{uri} is a string that specifies the name of a +file or a URL. @c FIXME: What else can a URI specify in this context? +@end defun + +@defun xwidget-webkit-execute-script xwidget script +This function causes the browser widget specified by @var{xwidget} to +execute the specified JavaScript @code{script}. +@end defun + +@defun xwidget-webkit-execute-script-rv xwidget script &optional default +This function executes the specified @var{script} like +@code{xwidget-webkit-execute-script} does, but it also returns the +script's return value as a string. If @var{script} doesn't return a +value, this function returns @var{default}, or @code{nil} if +@var{default} was omitted. +@end defun + +@defun xwidget-webkit-get-title xwidget +This function returns the title of @var{xwidget} as a string. +@end defun + +@defun xwidget-resize xwidget width height +This function resizes the specified @var{xwidget} to the size +@var{width}x@var{height} pixels. +@end defun + +@defun xwidget-size-request xwidget +This function returns the desired size of @var{xwidget} as a list of +the form @code{(@var{width} @var{height})}. The dimensions are in +pixels. +@end defun + +@defun xwidget-info xwidget +This function returns the attributes of @var{xwidget} as a vector of +the form @code{[@var{type} @var{title} @var{width} @var{height}]}. +The attributes are usually determined by @code{make-xwidget} when the +xwidget is created. +@end defun + +@defun set-xwidget-query-on-exit-flag xwidget flag +This function allows you to arrange that Emacs will ask the user for +confirmation before exiting or before killing a buffer that has +@var{xwidget} associated with it. If @var{flag} is non-@code{nil}, +Emacs will query the user, otherwise it will not. +@end defun + +@defun xwidget-query-on-exit-flag xwidget +This function returns the current setting of @var{xwidget}s +query-on-exit flag, either @code{t} or @code{nil}. +@end defun + @node Buttons @section Buttons @cindex buttons in buffers diff --git a/etc/NEWS b/etc/NEWS index 09bced4..af2dee9 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -126,13 +126,15 @@ and can contain escape sequences for command keys, quotes, and the like. * Changes in Emacs 25.1 ++++ ** Xwidgets: a new feature for embedding native widgets inside Emacs buffers. -If you have gtk3 and webkitgtk3 installed, you can access the -embedded webkit browser with `M-x xwidget-webkit-browse-url'. This -opens a new buffer with the embedded browser. The buffer will -have a new mode, `xwidget-webkit-mode' (similar to `image-mode'), -which supports the webkit widget. +If you have gtk3 and webkitgtk3 installed, and Emacs was built with +xwidget support, you can access the embedded webkit browser with `M-x +xwidget-webkit-browse-url'. This opens a new buffer with the embedded +browser. The buffer will have a new mode, `xwidget-webkit-mode' +(similar to `image-mode'), which supports the webkit widget. ++++ *** New functions for xwidget-webkit mode `xwidget-webkit-insert-string', `xwidget-webkit-adjust-size-dispatch', `xwidget-webkit-back', `xwidget-webkit-browse-url', `xwidget-webkit-reload', commit 05f1f0dbb80a46e54865bdd30400bdc708cad7a3 Author: Lars Ingebrigtsen Date: Sat Jan 30 08:54:17 2016 +0100 Build fix for shr.el * shr.el (seq): Require. diff --git a/lisp/net/shr.el b/lisp/net/shr.el index 746cbb6..41c5f95 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -35,6 +35,7 @@ (require 'browse-url) (require 'subr-x) (require 'dom) +(require 'seq) (defgroup shr nil "Simple HTML Renderer" commit 2b87dea0b8ccbfe4faf13a8f2d6c955c2756e161 Author: Dmitry Gutov Date: Sat Jan 30 07:21:31 2016 +0300 Improve project-find-file yet again! * lisp/progmodes/project.el (project--completing-read-strict): New function. (project-find-file-in): Use it. (project-file-completion-table): Move the default implementation inside the cl-defgeneric form. (http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01720.html) diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index 2cc76aa..0b05de2 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -154,12 +154,33 @@ end it with `/'. DIR must be one of `project-roots' or vc-directory-exclusion-list) grep-find-ignored-files)) -(cl-defgeneric project-file-completion-table (_project _dirs) +(cl-defgeneric project-file-completion-table (project dirs) "Return a completion table for files in directories DIRS in PROJECT. DIRS is a list of absolute directories; it should be some subset of the project roots and external roots. -PROJECT is used to find the project ignores and other project meta-data." - ) + +The default implementation uses `find-program'. PROJECT is used +to find the list of ignores for each directory." + ;; FIXME: Uniquely abbreviate the roots? + (require 'xref) + (let ((all-files + (cl-mapcan + (lambda (dir) + (let ((command + (format "%s %s %s -type f -print0" + find-program + dir + (xref--find-ignores-arguments + (project-ignores project dir) + (expand-file-name dir))))) + (split-string (shell-command-to-string command) "\0" t))) + dirs))) + (lambda (string pred action) + (cond + ((eq action 'metadata) + '(metadata . ((category . project-file)))) + (t + (complete-with-action action all-files string pred)))))) (defgroup project-vc nil "Project implementation using the VC package." @@ -340,40 +361,34 @@ recognized." (project-external-roots pr)))) (project-find-file-in (thing-at-point 'filename) dirs pr))) -;; FIXME: Uniquely abbreviate the roots? -(cl-defmethod project-file-completion-table (project dirs) - "Default implementation using `find-program'." - (require 'xref) - (let ((all-files - (cl-mapcan - (lambda (dir) - (let ((command - (format "%s %s %s -type f -print0" - find-program - dir - (xref--find-ignores-arguments - (project-ignores project dir) - (expand-file-name dir))))) - (split-string (shell-command-to-string command) "\0" t))) - dirs))) - (lambda (string pred action) - (cond - ((eq action 'metadata) - '(metadata . ((category . project-file)))) - (t - (complete-with-action action all-files string pred)))) - )) - (defun project-find-file-in (filename dirs project) - "Complete FILENAME in DIRS in PROJECT, visit the file." - ;; FIXME: verify that filename is accepted by the completion table - (find-file - (completing-read - (if filename - (format "Find file (%s): " filename) - "Find file: ") - (project-file-completion-table project dirs) - nil t nil nil filename))) + "Complete FILENAME in DIRS in PROJECT and visit the result." + (let* ((table (project-file-completion-table project dirs)) + (file (project--completing-read-strict + "Find file" table nil nil + filename))) + (if (string= file "") + (user-error "You didn't specify the file") + (find-file file)))) + +(defun project--completing-read-strict (prompt + collection &optional predicate + hist default inherit-input-method) + (when (and default (not (test-completion default collection predicate))) + (setq default (car (completion-try-completion + default collection predicate (length default))))) + (let* ((new-prompt (if default + (format "%s (default %s): " prompt default) + (format "%s: " prompt))) + (res (completing-read new-prompt + collection predicate t + nil hist default inherit-input-method))) + (if (and (equal res default) + (not (test-completion res collection predicate))) + (completing-read (format "%s: " prompt) + collection predicate t res hist nil + inherit-input-method) + res))) (provide 'project) ;;; project.el ends here commit 06083cf41c473404d246de9b91a0116f38c5485f Author: Dmitry Gutov Date: Sat Jan 30 06:55:32 2016 +0300 Don't pass DIR to 'hg status' * lisp/vc/vc-hg.el (vc-hg-dir-status-files): Don't pass DIR to 'hg status' (bug#22481). diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el index 8cb3547..2d8bab7 100644 --- a/lisp/vc/vc-hg.el +++ b/lisp/vc/vc-hg.el @@ -647,10 +647,14 @@ REV is the revision to check out into WORKFILE." ;; Follows vc-exec-after. (declare-function vc-set-async-update "vc-dispatcher" (process-buffer)) -(defun vc-hg-dir-status-files (dir files update-function) - (apply 'vc-hg-command (current-buffer) 'async dir "status" - (concat "-mardu" (if files "i")) - "-C" files) +(defun vc-hg-dir-status-files (_dir files update-function) + ;; XXX: We can't pass DIR directly to 'hg status' because that + ;; returns all ignored files if FILES is non-nil (bug#22481). + ;; If honoring DIR ever becomes important, try using '-I DIR/'. + (vc-hg-command (current-buffer) 'async files + "status" + (concat "-mardu" (if files "i")) + "-C") (vc-run-delayed (vc-hg-after-dir-status update-function))) commit 545ad84a8cbe6f05999aa6b7cc1003801817c314 Author: Stephen Leake Date: Fri Jan 29 17:53:35 2016 -0600 Fix typo in previous commits * lisp/progmodes/project.el (project-find-file-in): * lisp/vc/vc-mtn.el (vc-mtn-find-ignore-file): Fix typo in previous commit. diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index d12f662..2cc76aa 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -372,7 +372,7 @@ recognized." (if filename (format "Find file (%s): " filename) "Find file: ") - (project--file-completion-table project dirs) + (project-file-completion-table project dirs) nil t nil nil filename))) (provide 'project) diff --git a/lisp/vc/vc-mtn.el b/lisp/vc/vc-mtn.el index 0e2e16b..6ce853f 100644 --- a/lisp/vc/vc-mtn.el +++ b/lisp/vc/vc-mtn.el @@ -104,7 +104,7 @@ switches." (defun vc-mtn-find-ignore-file (file) "Return the mtn ignore file that controls FILE." - (expand-file-name ".mtnignore" (vc-git-root file))) + (expand-file-name ".mtnignore" (vc-mtn-root file))) (defun vc-mtn-registered (file) (let ((root (vc-mtn-root file))) commit 7deeab6ff05c392533e05c95ec5e7abb6e3ecfe7 Author: Stephen Leake Date: Fri Jan 29 17:43:26 2016 -0600 Improve project-find-file * lisp/progmodes/project.el (project-file-completion-table): New. (project-find-file, project-or-external-find-file): Default to filename at point. (project-file-completion-table): New, split out from project--find-file-in. (project-find-file-in): Renamed from project--find-file-in, use project-file-completion-table. * lisp/progmodes/xref.el (ede-minor-mode): New declaration. (xref--find-ignores-arguments): Add doc string. diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index 85f3907..d12f662 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -154,6 +154,13 @@ end it with `/'. DIR must be one of `project-roots' or vc-directory-exclusion-list) grep-find-ignored-files)) +(cl-defgeneric project-file-completion-table (_project _dirs) + "Return a completion table for files in directories DIRS in PROJECT. +DIRS is a list of absolute directories; it should be some +subset of the project roots and external roots. +PROJECT is used to find the project ignores and other project meta-data." + ) + (defgroup project-vc nil "Project implementation using the VC package." :version "25.1" @@ -313,51 +320,60 @@ pattern to search for." ;;;###autoload (defun project-find-file () - "Visit a file in the current project's roots. - -This is like `find-file', but it limits the file-name completion -candidates to the files within the current project roots." + "Visit a file (with completion) in the current project's roots. +The completion default is the filename at point, if one is +recognized." (interactive) (let* ((pr (project-current t)) (dirs (project-roots pr))) - (project--find-file-in dirs pr))) + (project-find-file-in (thing-at-point 'filename) dirs pr))) ;;;###autoload (defun project-or-external-find-file () - "Visit a file in the current project's roots or external roots. - -This is like `find-file', but it limits the file-name completion -candidates to the files within the current project roots and external roots." + "Visit a file (with completion) in the current project's roots or external roots. +The completion default is the filename at point, if one is +recognized." (interactive) (let* ((pr (project-current t)) (dirs (append (project-roots pr) (project-external-roots pr)))) - (project--find-file-in dirs pr))) + (project-find-file-in (thing-at-point 'filename) dirs pr))) ;; FIXME: Uniquely abbreviate the roots? -(defun project--find-file-in (dirs project) +(cl-defmethod project-file-completion-table (project dirs) + "Default implementation using `find-program'." (require 'xref) - (let* ((all-files - (cl-mapcan - (lambda (dir) - (let ((command - (format "%s %s %s -type f -print0" - find-program - dir - (xref--find-ignores-arguments - (project-ignores project dir) - (expand-file-name dir))))) - (split-string (shell-command-to-string command) "\0" t))) - dirs)) - (table (lambda (string pred action) - (cond - ((eq action 'metadata) - '(metadata . ((category . project-file)))) - (t - (complete-with-action action all-files string pred)))))) - (find-file - (completing-read "Find file: " table nil t)))) + (let ((all-files + (cl-mapcan + (lambda (dir) + (let ((command + (format "%s %s %s -type f -print0" + find-program + dir + (xref--find-ignores-arguments + (project-ignores project dir) + (expand-file-name dir))))) + (split-string (shell-command-to-string command) "\0" t))) + dirs))) + (lambda (string pred action) + (cond + ((eq action 'metadata) + '(metadata . ((category . project-file)))) + (t + (complete-with-action action all-files string pred)))) + )) + +(defun project-find-file-in (filename dirs project) + "Complete FILENAME in DIRS in PROJECT, visit the file." + ;; FIXME: verify that filename is accepted by the completion table + (find-file + (completing-read + (if filename + (format "Find file (%s): " filename) + "Find file: ") + (project--file-completion-table project dirs) + nil t nil nil filename))) (provide 'project) ;;; project.el ends here diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index 267853d..2fd7297 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -854,6 +854,7 @@ and just use etags." (declare-function semantic-symref-find-references-by-name "semantic/symref") (declare-function semantic-find-file-noselect "semantic/fw") (declare-function grep-expand-template "grep") +(defvar ede-minor-mode) ;; ede.el (defun xref-collect-references (symbol dir) "Collect references to SYMBOL inside DIR. @@ -948,6 +949,9 @@ IGNORES is a list of glob patterns." (xref--find-ignores-arguments ignores dir))) (defun xref--find-ignores-arguments (ignores dir) + "Convert IGNORES and DIR to a list of arguments for 'find'. +IGNORES is a list of glob patterns. DIR is an absolute +directory, used as the root of the ignore globs." ;; `shell-quote-argument' quotes the tilde as well. (cl-assert (not (string-match-p "\\`~" dir))) (when ignores commit a71560b0e3011c04dc86546b1da51b828cdf040a Author: Stephen Leake Date: Wed Jan 27 15:04:33 2016 -0600 Implement vc-mtn-find-ignore-file, fix some doc strings * lisp/cedet/cedet-global.el (cedet-gnu-global-root): Improve doc string. * lisp/cedet/ede/locate.el (initialize-instance): Improve doc string. * lisp/vc/vc-git.el (vc-git-find-ignore-file): Fix doc string. * lisp/vc/vc-mtn.el (vc-mtn-find-ignore-file): New function. diff --git a/lisp/cedet/cedet-global.el b/lisp/cedet/cedet-global.el index def023d..f1cc3c9 100644 --- a/lisp/cedet/cedet-global.el +++ b/lisp/cedet/cedet-global.el @@ -127,9 +127,9 @@ Signal an error if Gnu global not available." (message "%s" (cedet-gnu-global-root))) (defun cedet-gnu-global-root (&optional dir) - "Return the root of any GNU Global scanned project. -If a default starting DIR is not specified, the current buffer's -`default-directory' is used." + "Return the root of any GNU Global scanned project containing DIR. +Returns nil if no GNU Global project can be found. +DIR defaults to `default-directory'." (let ((default-directory (or dir default-directory))) (with-current-buffer (cedet-gnu-global-call (list "-pq")) (goto-char (point-min)) diff --git a/lisp/cedet/ede/locate.el b/lisp/cedet/ede/locate.el index abbfd60..38d2388 100644 --- a/lisp/cedet/ede/locate.el +++ b/lisp/cedet/ede/locate.el @@ -231,7 +231,7 @@ variable `cedet-global-command'.") (let* ((default-directory (oref loc root)) (root (cedet-gnu-global-root))) (when (not root) - (error "Cannot use GNU Global in %s" + (error "No GNU Global project found for %s" (oref loc root)))) ) diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 560d303..1c43e3e 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -714,7 +714,7 @@ It is based on `log-edit-mode', and has Git-specific extensions.") "cat-file" "blob" (concat (if rev rev "HEAD") ":" fullname)))) (defun vc-git-find-ignore-file (file) - "Return the root directory of the repository of FILE." + "Return the git ignore file that controls FILE." (expand-file-name ".gitignore" (vc-git-root file))) diff --git a/lisp/vc/vc-mtn.el b/lisp/vc/vc-mtn.el index 115a658..0e2e16b 100644 --- a/lisp/vc/vc-mtn.el +++ b/lisp/vc/vc-mtn.el @@ -102,6 +102,10 @@ switches." "Return the administrative directory of FILE." (expand-file-name vc-mtn-admin-dir (vc-mtn-root file))) +(defun vc-mtn-find-ignore-file (file) + "Return the mtn ignore file that controls FILE." + (expand-file-name ".mtnignore" (vc-git-root file))) + (defun vc-mtn-registered (file) (let ((root (vc-mtn-root file))) (when root commit 9421b948101689675293a0827ca86321888af83a Author: Vincent Belaïche Date: Fri Jan 29 12:22:30 2016 +0100 Correct a whole bunch of bugs coming with renamed cell relocation. This is the same change as commit on master branch. See http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=badcd38aa86ed7973f2be2743c405710973a0bdd * lisp/ses.el (ses-localvars): rename variable `ses--renamed-cell-symb-list' into `ses--in-killing-named-cell-list' and adjust the comment about it. (ses-plist-delq): new defun. (ses--ses-buffer-list): new defvar. (ses--unbind-cell-name): new defun. (ses-relocate-symbol): Do not relocate symbol when it is a named cell. (ses-relocate-formula): Undo change of 2011-12-27T19:30:39Z!vincentb1@users.sourceforge.net that was preventing relocation for named cell --- now doing this is delegated to function `ses-relocate-symbol'. (ses-relocate-range): In docstring, undo change of 2016-01-03T07:31:52Z!johnw@newartisans.com, `ses-range' must remain lower case as it is not a variable. (ses-relocate-all): Cell name relocation : 1) check that cell is a renamed cell by testing `ses-cell' property to :ses-named, rather than comparing name to corresponding standard name. Set rowcol of renamed cell into the hashmap --- `ses-cell' property must not be used for that as the same name can be used for different locations in different SES sheets ; 2) use `local-variable-if-set-p' rather than `boundp' and `local-variable-p' to check if cell name is already in use in this sheet or needs initialisation. (ses-relocate-all): Cell value relocation : 1) like for name relocation use the `ses-cell' property rather than comparing actual name to corresponding standard name. 2) Correct bug introduced in 2011-12-27T19:30:39Z!vincentb1@users.sourceforge.net, as the test was made the other way round than the intention --- ie value relocation was disabled for standard cell, not for renamed cell as was the intention. (ses-relocate-all): Add loop for unbinding deleted renamed cells names. (ses-killbuffer-hook): new defun. (ses-mode): Add the ses--ses-buffer-list maintenance mechanism --- kill buffer hook, plus pushing current buffer if new in list. (ses-delete-row, ses-delete-column): Collect deleted renamed cells into `ses--in-killing-named-cell-list'. (ses-rename-cell): Remove update of variable `ses--renamed-cell-symb-list', this variable is renamed to `ses--in-killing-named-cell-list', and its setting is done in functions `ses-delete-row' and , `ses-delete-column' now. (ses-rename-cell): Make cell new name a buffer local variable. (ses-rename-cell): Change correction of 2015-12-30T23:10:37Z!vincentb1@users.sourceforge.net concerning computation of the range over which `cursor-intangible' property was to be updated. This correction was ok for non spilling cells, but not for cells spilling over following blank cells. Simply use `next-single-property-change' rather than computing the end column from column widths. diff --git a/lisp/ses.el b/lisp/ses.el index d1e3afb..858833e 100644 --- a/lisp/ses.el +++ b/lisp/ses.el @@ -302,9 +302,9 @@ default printer and then modify its output.") ses--numcols ses--numrows ses--symbolic-formulas ses--data-marker ses--params-marker (ses--Dijkstra-attempt-nb . 0) ses--Dijkstra-weight-bound - ;; This list is useful to speed-up clean-up of symbols when - ;; an area containing renamed cell is deleted. - ses--renamed-cell-symb-list + ;; This list is useful for clean-up of symbols when an area + ;; containing renamed cell is deleted. + ses--in-killing-named-cell-list ;; Global variables that we override next-line-add-newlines transient-mark-mode) "Buffer-local variables used by SES.")) @@ -445,6 +445,44 @@ is nil if SYM is not a symbol that names a cell." (and (consp rowcol) (ses-get-cell (car rowcol) (cdr rowcol))))))) +(defun ses-plist-delq (plist prop) + "Return PLIST after deletion of proprerty/value pair. + +PROP is the symbol identifying the property/value pair. PLIST may +be modified by border effect." + (cond + ((null plist) nil) + ((eq (car plist) prop) (cddr plist)) + (t (let* ((plist-1 (cdr plist)) + (plist-2 (cdr plist-1))) + (setcdr plist-1 (ses-plist-delq plist-2 prop)) + plist)))) + +(defvar ses--ses-buffer-list nil "A list of buffers containing a SES spreadsheet.") + +(defun ses--unbind-cell-name (name) + "Make NAME non longer a renamed cell name." + (remhash name ses--named-cell-hashmap) + (kill-local-variable name) + ;; remove symbol property 'ses-cell from symbol NAME, unless this + ;; symbol is also a renamed cell name in another SES buffer. + (let (used-elsewhere (buffer-list ses--ses-buffer-list) buf) + (while buffer-list + (setq buf (pop buffer-list)) + (cond + ((eq buf (current-buffer))) + ;; This case should not happen, some SES buffer has been + ;; killed without the ses-killbuffer-hook being called. + ((null (buffer-live-p buf)) + ;; Silently repair ses--ses-buffer-list + (setq ses--ses-buffer-list (delq buf ses--ses-buffer-list))) + (t + (with-current-buffer buf + (when (gethash name ses--named-cell-hashmap) + (setq used-elsewhere t + buffer-list nil)))))) + (unless used-elsewhere + (setplist name (ses-plist-delq (symbol-plist name) 'ses-cell))) )) (defmacro ses--letref (vars place &rest body) (declare (indent 2) (debug (sexp form &rest body))) @@ -1480,8 +1518,10 @@ by (ROWINCR,COLINCR)." col (+ col colincr)) (if (and (>= row startrow) (>= col startcol) (< row ses--numrows) (< col ses--numcols)) - ;;Relocate this variable - (ses-create-cell-symbol row col) + ;;Relocate this variable, unless it is a named cell + (if (eq (get sym 'ses-cell) :ses-named) + sym + (ses-create-cell-symbol row col)) ;;Delete reference to a deleted cell nil)))) @@ -1498,8 +1538,7 @@ removed. Example: Sets `ses-relocate-return' to `delete' if cell-references were removed." (let (rowcol result) (if (or (atom formula) (eq (car formula) 'quote)) - (if (and (setq rowcol (ses-sym-rowcol formula)) - (string-match-p "\\`[A-Z]+[0-9]+\\'" (symbol-name formula))) + (if (setq rowcol (ses-sym-rowcol formula)) (ses-relocate-symbol formula rowcol startrow startcol rowincr colincr) formula) ; Pass through as-is. @@ -1531,7 +1570,7 @@ Sets `ses-relocate-return' to `delete' if cell-references were removed." (nreverse result)))) (defun ses-relocate-range (range startrow startcol rowincr colincr) - "Relocate one RANGE, of the form (SES-RANGE MIN MAX). Cells starting + "Relocate one RANGE, of the form (ses-range MIN MAX). Cells starting at (STARTROW,STARTCOL) are being shifted by (ROWINCR,COLINCR). Result is the new range, or nil if the entire range is deleted. If new rows are being added just beyond the end of a row range, or new columns just beyond a column range, @@ -1637,14 +1676,15 @@ to each symbol." sym (>= xrow 0) (>= xcol 0) - (null (eq sym - (ses-create-cell-symbol xrow xcol)))) + ;; the following could also be tested as + ;; (null (eq sym (ses-create-cell-symbol xrow xcol))) + (eq (get sym 'ses-cell) :ses-named)) ;; This is a renamed cell, do not update the cell ;; name, but just update the coordinate property. - (put sym 'ses-cell (cons row col)) + (puthash sym (cons row col) ses--named-cell-hashmap) (ses-set-cell row col 'symbol (setq sym (ses-create-cell-symbol row col))) - (unless (and (boundp sym) (local-variable-p sym)) + (unless (local-variable-if-set-p sym) (set (make-local-variable sym) nil) (put sym 'ses-cell (cons row col)))))) ))) ;; Relocate the cell values. @@ -1659,16 +1699,22 @@ to each symbol." (setq mycol (+ col mincol) xrow (- myrow rowincr) xcol (- mycol colincr)) - (let ((sym (ses-cell-symbol myrow mycol)) - (xsym (ses-create-cell-symbol xrow xcol))) - ;; Make the value relocation only when if the cell is not - ;; a renamed cell. Otherwise this is not needed. - (and (eq sym xsym) - (ses-set-cell myrow mycol 'value - (if (and (< xrow ses--numrows) (< xcol ses--numcols)) - (ses-cell-value xrow xcol) - ;;Cell is off the end of the array - (symbol-value xsym)))))))) + (let ((sym (ses-cell-symbol myrow mycol))) + ;; We don't need to relocate value for renamed cells, as they keep the same + ;; symbol. + (unless (eq (get sym 'ses-cell) :ses-named) + (ses-set-cell myrow mycol 'value + (if (and (< xrow ses--numrows) (< xcol ses--numcols)) + (ses-cell-value xrow xcol) + ;; Cell is off the end of the array. + (symbol-value (ses-create-cell-symbol xrow xcol)))))))) + (when ses--in-killing-named-cell-list + (message "Unbinding killed named cell symbols...") + (setq ses-start-time (float-time)) + (while ses--in-killing-named-cell-list + (ses--time-check "Unbinding killed named cell symbols... (%d left)" (length ses--in-killing-named-cell-list)) + (ses--unbind-cell-name (pop ses--in-killing-named-cell-list)) ) + (message nil)) ) ((and (wholenump rowincr) (wholenump colincr)) ;; Insertion of rows and/or columns. Run the loop backwards. @@ -1926,6 +1972,11 @@ Delete overlays, remove special text properties." (unless was-modified (restore-buffer-modified-p nil)))) +(defun ses-killbuffer-hook () + "Hook when the current buffer is killed." + (setq ses--ses-buffer-list (delq (current-buffer) ses--ses-buffer-list))) + + ;;;###autoload (defun ses-mode () "Major mode for Simple Emacs Spreadsheet. @@ -1980,6 +2031,8 @@ formula: ;; calculation). indent-tabs-mode nil) (1value (add-hook 'change-major-mode-hook 'ses-cleanup nil t)) + (1value (add-hook 'kill-buffer-hook 'ses-killbuffer-hook nil t)) + (cl-pushnew (current-buffer) ses--ses-buffer-list :test 'eq) ;; This makes revert impossible if the buffer is read-only. ;; (1value (add-hook 'before-revert-hook 'ses-cleanup nil t)) (setq header-line-format '(:eval (progn @@ -2626,6 +2679,20 @@ With prefix, deletes COUNT rows starting from the current one." ;;Delete lines from cell data area (ses-goto-data row 0) (ses-delete-line (* count (1+ ses--numcols))) + ;; Collect named cells in the deleted rows, in order to clean the + ;; symbols out of the named cell hash map, once the deletion is + ;; complete + (unless (null ses--in-killing-named-cell-list) + (warn "Internal error, `ses--in-killing-named-cell-list' should be nil, but is equal to %S" + ses--in-killing-named-cell-list) + (setq ses--in-killing-named-cell-list nil)) + (dotimes-with-progress-reporter (nrow count) + "Collecting named cell in deleted rows..." + (dotimes (col ses--numcols) + (let* ((row (+ row nrow)) + (sym (ses-cell-symbol row col))) + (and (eq (get sym 'ses-cell) :ses-named) + (push sym ses--in-killing-named-cell-list))))) ;;Relocate variables and formulas (ses-set-with-undo 'ses--cells (ses-vector-delete ses--cells row count)) (ses-relocate-all row 0 (- count) 0) @@ -2723,10 +2790,22 @@ With prefix, deletes COUNT columns starting from the current one." (ses-begin-change) (ses-set-parameter 'ses--numcols (- ses--numcols count)) (ses-adjust-print-width col (- width)) + ;; Prepare collecting named cells in the deleted columns, in order + ;; to clean the symbols out of the named cell hash map, once the + ;; deletion is complete + (unless (null ses--in-killing-named-cell-list) + (warn "Internal error, `ses--in-killing-named-cell-list' should be nil, but is equal to %S" + ses--in-killing-named-cell-list) + (setq ses--in-killing-named-cell-list nil)) (dotimes-with-progress-reporter (row ses--numrows) "Deleting column..." ;;Delete lines from cell data area (ses-goto-data row col) (ses-delete-line count) + ;; Collect named cells in the deleted columns within this row + (dotimes (ncol count) + (let ((sym (ses-cell-symbol row (+ col ncol)))) + (and (eq (get sym 'ses-cell) :ses-named) + (push sym ses--in-killing-named-cell-list)))) ;;Delete cells. Check if deletion area begins or ends with a skip. (if (or (eq (ses-cell-value row col) '*skip*) (and (< col ses--numcols) @@ -3403,20 +3482,16 @@ highlighted range in the spreadsheet." (setf (ses-cell-references xcell) (cons new-name (delq sym (ses-cell-references xcell)))))) - (push new-name ses--renamed-cell-symb-list) - (set new-name (symbol-value sym)) + (set (make-local-variable new-name) (symbol-value sym)) (setf (ses-cell--symbol cell) new-name) (makunbound sym) (and curcell (setq ses--curcell new-name)) - (let* ((pos (point)) - (inhibit-read-only t) - (col (current-column)) - (end (save-excursion - (move-to-column (1+ col)) - (if (eolp) - (+ pos (ses-col-width col) 1) - (point))))) - (put-text-property pos end 'cursor-intangible new-name)) + (save-excursion + (or curcell (ses-goto-print row col)) + (let* ((pos (point)) + (inhibit-read-only t) + (end (next-single-property-change pos 'cursor-intangible))) + (put-text-property pos end 'cursor-intangible new-name))) ;; Update the cell name in the mode-line. (force-mode-line-update))) commit f524e8b7f12d9b5a8b92084e5385429fe7b085b9 Author: Andreas Schwab Date: Fri Jan 29 11:18:42 2016 +0100 Re-enable checks in member, memql, delete to complain about non-lists * fns.c (Fmember, Fmemql, Fdelete): Revert 2007-10-16 change. diff --git a/src/fns.c b/src/fns.c index 86ad333..d180844 100644 --- a/src/fns.c +++ b/src/fns.c @@ -1349,7 +1349,7 @@ The value is actually the tail of LIST whose car is ELT. */) (register Lisp_Object elt, Lisp_Object list) { register Lisp_Object tail; - for (tail = list; CONSP (tail); tail = XCDR (tail)) + for (tail = list; !NILP (tail); tail = XCDR (tail)) { register Lisp_Object tem; CHECK_LIST_CONS (tail, list); @@ -1397,7 +1397,7 @@ The value is actually the tail of LIST whose car is ELT. */) if (!FLOATP (elt)) return Fmemq (elt, list); - for (tail = list; CONSP (tail); tail = XCDR (tail)) + for (tail = list; !NILP (tail); tail = XCDR (tail)) { register Lisp_Object tem; CHECK_LIST_CONS (tail, list); @@ -1710,7 +1710,7 @@ changing the value of a sequence `foo'. */) { Lisp_Object tail, prev; - for (tail = seq, prev = Qnil; CONSP (tail); tail = XCDR (tail)) + for (tail = seq, prev = Qnil; !NILP (tail); tail = XCDR (tail)) { CHECK_LIST_CONS (tail, seq); commit c32cc606df56d6dd7b394c32b2d5599f12dfd20e Author: Martin Rudalics Date: Fri Jan 29 11:14:13 2016 +0100 c:/emacs-git/next/ChangeLog diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index 55d7242..b98e3a5 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -714,9 +714,12 @@ Sizes}) or splitting (@pxref{Splitting Windows}) windows. @cindex line height @cindex column width -The term @dfn{line height} is sometimes used instead of ``default -character height''. Similarly, the term @dfn{column width} is used as -shorthand for ``default character width''. +@cindex canonical character height +@cindex canonical character width +The terms @dfn{line height} and @dfn{canonical character height} are +sometimes used instead of ``default character height''. Similarly, the +terms @dfn{column width} and @dfn{canonical character width} are used +instead of ``default character width''. @defun frame-char-height &optional frame @defunx frame-char-width &optional frame diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index ca756e3..771bd4e 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -371,14 +371,14 @@ means to use the left or top edge of @var{window} as reference position. If the optional argument @var{wrap} is non-@code{nil}, this means to wrap @var{direction} around frame borders. For example, if @var{window} is at the top of the frame and @var{direction} is @code{above}, then -return the minibuffer window provided the frame has one, and a window at -the bottom of the frame otherwise. +this function usually returns the frame's minibuffer window if it's +active and a window at the bottom of the frame otherwise. If the optional argument @var{mini} is @code{nil}, this means to return the minibuffer window if and only if it is currently active. If -@var{mini} is non-@code{nil}, it returns the minibuffer window even when -it's not active. However, if @var{wrap} non-@code{nil}, it always acts -as if @var{mini} were @code{nil}. +@var{mini} is non-@code{nil}, this function may return the minibuffer +window even when it's not active. However, if @var{wrap} is +non-@code{nil}, it always acts as if @var{mini} were @code{nil}. If it doesn't find a suitable window, this function returns @code{nil}. @end defun @@ -664,15 +664,17 @@ following function useful: @defun window-max-chars-per-line &optional window face This function returns the number of characters displayed in the -specified @var{face} in the specified @var{window} (which must be a -live window). If @var{face} was remapped (@pxref{Face Remapping}), -the information is returned for the remapped face. If omitted or -@code{nil}, @var{face} defaults to the default face, and @var{window} -defaults to the selected window. Unlike @code{window-body-width}, -this function accounts for the actual size of the @var{face}'s font, -instead of working in units of frame's canonical character width. It -also accounts for space used by the continuation glyph, if -@var{window} lacks one or both of its fringes. +specified face @var{face} in the specified window @var{window} (which +must be a live window). If @var{face} was remapped (@pxref{Face +Remapping}), the information is returned for the remapped face. If +omitted or @code{nil}, @var{face} defaults to the default face, and +@var{window} defaults to the selected window. + +Unlike @code{window-body-width}, this function accounts for the actual +size of @var{face}'s font, instead of working in units of the canonical +character width of @var{window}'s frame (@pxref{Frame Font}). It also +accounts for space used by the continuation glyph, if @var{window} lacks +one or both of its fringes. @end defun @cindex fixed-size window @@ -701,7 +703,7 @@ margins, fringes, a scroll bar and a right divider, if present. The following function tells how small a specific window can get taking into account the sizes of its areas and the values of @code{window-min-height}, @code{window-min-width} and -@code{window-size-fixed}. +@code{window-size-fixed} (@pxref{Preserving Window Sizes}). @defun window-min-size &optional window horizontal ignore pixelwise This function returns the minimum size of @var{window}. @var{window} @@ -713,10 +715,9 @@ of @var{window}'s lines. The return value makes sure that all components of @var{window} remain fully visible if @var{window}'s size were actually set to it. With @var{horizontal} @code{nil} it includes the mode and header line, the -horizontal scroll bar and the bottom divider. With @var{horizontal} -non-@code{nil} it includes the fringes, a scroll bar, and a right -divider, if present. It does not, however, include the space reserved -for the margins. +horizontal scroll bar and the bottom divider, if present. With +@var{horizontal} non-@code{nil} it includes the margins and fringes, the +vertical scroll bar and the right divider, if present. The optional argument @var{ignore}, if non-@code{nil}, means ignore restrictions imposed by fixed size windows, @code{window-min-height} or @@ -1263,8 +1264,8 @@ frame), an error is signaled. By default, the space taken up by @var{window} is given to one of its adjacent sibling windows, if any. However, if the variable @code{window-combination-resize} is non-@code{nil}, the space is -proportionally distributed among any remaining windows in the window -combination. @xref{Recombining Windows}. +proportionally distributed among any remaining windows in the same +window combination. @xref{Recombining Windows}. The behavior of this function may be altered by the window parameters of @var{window}, so long as the variable @@ -1771,11 +1772,13 @@ nor the buffer list. @defun window-use-time &optional window This functions returns the use time of window @var{window}. @var{window} must be a live window and defaults to the selected one. -The @dfn{use time} of a window is not really a time value, but it does -increase monotonically with each window selection, so the window with -the lowest use time is the least recently selected one, and the -window with the highest use time is the most recently selected -one. + +The @dfn{use time} of a window is not really a time value, but an +integer that does increase monotonically with each call of +@code{select-window} with a @code{nil} @var{norecord} argument. The +window with the lowest use time is usually called the least recently +used window while the window with the highest use time is called the +most recently used one (@pxref{Cyclic Window Ordering}). @end defun @@ -1790,11 +1793,11 @@ some other window, it moves through live windows in a specific order. For any given configuration of windows, this order never varies. It is called the @dfn{cyclic ordering of windows}. - The ordering is determined by a depth-first traversal of the frame's -window tree, retrieving the live windows which are the leaf nodes of -the tree (@pxref{Windows and Frames}). If the minibuffer is active, -the minibuffer window is included too. The ordering is cyclic, so the -last window in the sequence is followed by the first one. + The ordering is determined by a depth-first traversal of each frame's +window tree, retrieving the live windows which are the leaf nodes of the +tree (@pxref{Windows and Frames}). If the minibuffer is active, the +minibuffer window is included too. The ordering is cyclic, so the last +window in the sequence is followed by the first one. @defun next-window &optional window minibuf all-frames @cindex minibuffer window, and @code{next-window} @@ -2146,9 +2149,8 @@ Invokes @code{pop-to-buffer} to proceed. Marks the selected window as non-dedicated and proceeds. @end table -When called non-interactively, @code{switch-to-buffer} always signals an -error when the selected window is dedicated to its buffer and -@var{force-same-window} is non-@code{nil}. +This option does not affect non-interactive calls of +@code{switch-to-buffer}. @end defopt By default, @code{switch-to-buffer} shows the buffer at its position of @@ -2209,7 +2211,7 @@ for the documentation of @code{display-buffer}. @deffn Command pop-to-buffer buffer-or-name &optional action norecord This function makes @var{buffer-or-name} the current buffer and -displays it in some window, preferably not the window previously +displays it in some window, preferably not the window currently selected. It then selects the displaying window. If that window is on a different graphical frame, that frame is given input focus if possible (@pxref{Input Focus}). The return value is the buffer that @@ -2420,7 +2422,6 @@ frame is a candidate; this function replaces the default predicate. If @var{alist} has a non-@code{nil} @code{inhibit-same-window} entry, the selected window is used; thus if the selected frame has a single window, it is not used. - @end defun @defun display-buffer-pop-up-window buffer alist diff --git a/lisp/window.el b/lisp/window.el index 948e2da..e4669c1 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -2034,7 +2034,7 @@ has one, and a window at the bottom of the frame otherwise. Optional argument MINI nil means to return the minibuffer window if and only if it is currently active. MINI non-nil means to return the minibuffer window even when it's not active. However, -if WRAP non-nil, always act as if MINI were nil. +if WRAP is non-nil, always act as if MINI were nil. Return nil if no suitable window can be found." (setq window (window-normalize-window window t)) commit d7a93efd0e512ce145ee696561054f8065fe03ab Author: Eli Zaretskii Date: Fri Jan 29 11:40:31 2016 +0200 Minor improvements to 'pcase' documentation * doc/lispref/control.texi (Pattern matching case statement): Improve the documentation of 'pcase' per comments. See two discussion threads on emacs-devel@gnu.org for the details: http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01335.html http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01336.html. diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index 6fa802d..3f48c45 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi @@ -304,15 +304,15 @@ is useful to select alternatives based on more general conditions that distinguish between broad classes of values. The @code{pcase} macro allows you to choose between alternatives based on matching the value of an expression against a series of patterns. A pattern can be a -literal value (comparison to literal values is what @code{cond} does), -or it can be a more general description of the expected structure of -the expression's value. +literal value (for comparisons to literal values you'd use +@code{cond}), or it can be a more general description of the expected +structure of the expression's value. @defmac pcase expression &rest clauses Evaluate @var{expression} and choose among an arbitrary number of alternatives based on the value of @var{expression}. The possible alternatives are specified by @var{clauses}, each of which must be a -list of the form @code{(@var{pattern} @var{body-forms})}. +list of the form @code{(@var{pattern} @var{body-forms}@dots{})}. @code{pcase} tries to match the value of @var{expression} to the @var{pattern} of each clause, in textual order. If the value matches, the clause succeeds; @code{pcase} then evaluates its @var{body-forms}, @@ -328,7 +328,7 @@ Note: In the description of the patterns below, we use ``the value being matched'' to refer to the value of the @var{expression} that is the first argument of @code{pcase}. -A UPattern can have one of the following forms: +A UPattern can have the following forms: @table @code @@ -337,7 +337,8 @@ Matches if the value being matched is @code{equal} to @var{val}. @item @var{atom} Matches any @var{atom}, which can be a keyword, a number, or a string. (These are self-quoting, so this kind of UPattern is actually a -shorthand for @code{'@var{atom}}.) +shorthand for @code{'@var{atom}}.) Note that a string or a float +matches any string or float with the same contents/value. @item _ Matches any value. This is known as @dfn{don't care} or @dfn{wildcard}. @item @var{symbol} @@ -362,7 +363,8 @@ Matches if the specified @var{expression} matches the specified an @emph{arbitrary} expression, not just the expression that is the first argument to @code{pcase}. (It is called @code{let} because @var{upattern} can bind symbols to values using the @var{symbol} -UPattern.) +UPattern. For example: +@w{@code{((or `(key . ,val) (let val 5)) val)}}.) @item (app @var{function} @var{upattern}) Matches if @var{function} applied to the value being matched returns a value that matches @var{upattern}. This is like the @code{pred} @@ -407,24 +409,27 @@ Here's an illustrative example of using UPatterns: (code (message "Unknown return code %S" code))) @end example -The QPatterns are more powerful. They allow matching the value of the -@var{expression} that is the first argument of @code{pcase} against -specifications of its @emph{structure}. For example, you can specify -that the value must be a list of 2 elements whose first element is a -string and the second element is a number. QPatterns can have one of -the following forms: +In addition, you can use backquoted patterns that are more powerful. +They allow matching the value of the @var{expression} that is the +first argument of @code{pcase} against specifications of its +@emph{structure}. For example, you can specify that the value must be +a list of 2 elements whose first element is a specific string and the +second element is any value with a backquoted pattern like +@code{`("first" ,second-elem)}. + +Backquoted patterns have the form @code{`@var{qpattern}} where +@var{qpattern} can have the following forms: @table @code -@item `(@var{qpattern1} . @var{qpattern2}) +@item (@var{qpattern1} . @var{qpattern2}) Matches if the value being matched is a cons cell whose @code{car} matches @var{qpattern1} and whose @code{cdr} matches @var{qpattern2}. -@item `[@var{qpattern1} @var{qpattern2} @dots{} @var{qpatternm}] +This readily generalizes to backquoted lists as in +@w{@code{(@var{qpattern1} @var{qpattern2} @dots{})}}. +@item [@var{qpattern1} @var{qpattern2} @dots{} @var{qpatternm}] Matches if the value being matched is a vector of length @var{m} whose @code{0}..@code{(@var{m}-1)}th elements match @var{qpattern1}, @var{qpattern2} @dots{} @var{qpatternm}, respectively. -@item `(,@var{upattern1} ,@var{upattern2} @dots{}) -Matches if the value being matched is a list whose elements match the -corresponding @var{upattern1}, @var{upattern2}, etc. @item @var{atom} Matches if corresponding element of the value being matched is @code{equal} to the specified @var{atom}. @@ -433,6 +438,13 @@ Matches if the corresponding element of the value being matched matches the specified @var{upattern}. @end table +Note that uses of QPatterns can be expressed using only UPatterns, as +QPatterns are implemented on top of UPatterns using +@code{pcase-defmacro}, described below. However, using QPatterns will +in many cases lead to a more readable code. +@c FIXME: There should be an example here showing how a 'pcase' that +@c uses QPatterns can be rewritten using UPatterns. + @end defmac Here is an example of using @code{pcase} to implement a simple @@ -476,8 +488,11 @@ Additional UPatterns can be defined using the @code{pcase-defmacro} macro. @defmac pcase-defmacro name args &rest body -Define a new UPattern for @code{pcase}. The UPattern will have the -form @code{(@var{name} @var{args})}. +Define a new kind of UPattern for @code{pcase}. The new UPattern will +be invoked as @code{(@var{name} @var{actual-args})}. The @var{body} +should describe how to rewrite the UPattern @var{name} into some other +UPattern. The rewriting will be the result of evaluating @var{body} +in an environment where @var{args} are bound to @var{actual-args}. @end defmac @node Combining Conditions commit 7257815df133593e754f6396972f46fd2083374e Author: Glenn Morris Date: Thu Jan 28 21:11:55 2016 -0500 ; * lisp/textmodes/table.el: Comment tweak. diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el index 8c4cbc7..653db83 100644 --- a/lisp/textmodes/table.el +++ b/lisp/textmodes/table.el @@ -570,7 +570,7 @@ ;; Maybe provide complete XEmacs support in the future however the ;; "extent" is the single largest obstacle lying ahead, read the ;; document in Emacs info. -;; (eval '(progn (require 'info) (Info-find-node "elisp" "Not Intervals"))) +;; (progn (require 'info) (Info-find-node "elisp" "Not Intervals")) ;; ;; ;; --------------- commit e94983f6a637761bf1944ce3633cf1698091a61b Author: Glenn Morris Date: Thu Jan 28 21:04:20 2016 -0500 Don't use eval to quieten prolog.el compilation. * lisp/progmodes/prolog.el (pltrace-on, pltrace-off): Declare. (prolog-enable-sicstus-sd, prolog-disable-sicstus-sd): Don't use eval. diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el index 352f378..3767dba 100644 --- a/lisp/progmodes/prolog.el +++ b/lisp/progmodes/prolog.el @@ -2617,6 +2617,8 @@ and end of list building." (goto-char (point-max)) ) +(declare-function pltrace-on "ext:pltrace" ()) + (defun prolog-enable-sicstus-sd () "Enable the source level debugging facilities of SICStus 3.7 and later." (interactive) @@ -2627,21 +2629,22 @@ and end of list building." (progn ;; If there is a *prolog* buffer, then call pltrace-on (if (get-buffer "*prolog*") - ;; Avoid compilation warnings by using eval - (eval '(pltrace-on))) + (pltrace-on)) (setq prolog-use-sicstus-sd t) ))) +(declare-function pltrace-off "ext:pltrace" (&optional remove-process-filter)) + (defun prolog-disable-sicstus-sd () "Disable the source level debugging facilities of SICStus 3.7 and later." (interactive) + (require 'pltrace) (setq prolog-use-sicstus-sd nil) ;; Remove the hook (remove-hook 'prolog-inferior-mode-hook 'pltrace-on) ;; If there is a *prolog* buffer, then call pltrace-off (if (get-buffer "*prolog*") - ;; Avoid compile warnings by using eval - (eval '(pltrace-off)))) + (pltrace-off))) (defun prolog-toggle-sicstus-sd () ;; FIXME: Use define-minor-mode. commit 59e39ccf2a26fd7251cdaf1852167eee1700b62b Author: Glenn Morris Date: Thu Jan 28 21:01:17 2016 -0500 Mark some risky prolog variables. * lisp/progmodes/prolog.el (prolog-system-version) (prolog-keywords, prolog-types, prolog-mode-specificators) (prolog-determinism-specificators, prolog-directives) (prolog-program-name, prolog-program-switches) (prolog-consult-string, prolog-compile-string) (prolog-eof-string, prolog-prompt-regexp, prolog-help-function): Mark anything processed by prolog-find-value-by-system as risky. diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el index c621467..352f378 100644 --- a/lisp/progmodes/prolog.el +++ b/lisp/progmodes/prolog.el @@ -367,6 +367,7 @@ The version numbers are of the format (Major . Minor)." :type '(repeat (list (symbol :tag "System") (cons :tag "Version numbers" (integer :tag "Major") (integer :tag "Minor")))) + :risky t :group 'prolog) ;; Indentation @@ -440,7 +441,8 @@ Legal values: "Alist of Prolog keywords which is used for font locking of directives." :version "24.1" :group 'prolog-font-lock - :type 'sexp) + :type 'sexp + :risky t) (defcustom prolog-types '((mercury @@ -449,7 +451,8 @@ Legal values: "Alist of Prolog types used by font locking." :version "24.1" :group 'prolog-font-lock - :type 'sexp) + :type 'sexp + :risky t) (defcustom prolog-mode-specificators '((mercury @@ -458,7 +461,8 @@ Legal values: "Alist of Prolog mode specificators used by font locking." :version "24.1" :group 'prolog-font-lock - :type 'sexp) + :type 'sexp + :risky t) (defcustom prolog-determinism-specificators '((mercury @@ -468,7 +472,8 @@ Legal values: "Alist of Prolog determinism specificators used by font locking." :version "24.1" :group 'prolog-font-lock - :type 'sexp) + :type 'sexp + :risky t) (defcustom prolog-directives '((mercury @@ -477,7 +482,8 @@ Legal values: "Alist of Prolog source code directives used by font locking." :version "24.1" :group 'prolog-font-lock - :type 'sexp) + :type 'sexp + :risky t) ;; Keyboard @@ -563,7 +569,8 @@ the first column (i.e., DCG heads) inserts ` -->' and newline." (or (car names) "prolog")))) "Alist of program names for invoking an inferior Prolog with `run-prolog'." :group 'prolog-inferior - :type 'sexp) + :type 'sexp + :risky t) (defun prolog-program-name () (prolog-find-value-by-system prolog-program-name)) @@ -573,7 +580,8 @@ the first column (i.e., DCG heads) inserts ` -->' and newline." "Alist of switches given to inferior Prolog run with `run-prolog'." :version "24.1" :group 'prolog-inferior - :type 'sexp) + :type 'sexp + :risky t) (defun prolog-program-switches () (prolog-find-value-by-system prolog-program-switches)) @@ -596,7 +604,9 @@ Some parts of the string are replaced: region of a buffer, in which case it is the number of lines before the region." :group 'prolog-inferior - :type 'sexp) + :type 'sexp + :risky t) + (defun prolog-consult-string () (prolog-find-value-by-system prolog-consult-string)) @@ -621,7 +631,9 @@ Some parts of the string are replaced: If `prolog-program-name' is non-nil, it is a string sent to a Prolog process. If `prolog-program-name' is nil, it is an argument to the `compile' function." :group 'prolog-inferior - :type 'sexp) + :type 'sexp + :risky t) + (defun prolog-compile-string () (prolog-find-value-by-system prolog-compile-string)) @@ -629,7 +641,8 @@ If `prolog-program-name' is nil, it is an argument to the `compile' function." "Alist of strings that represent end of file for prolog. nil means send actual operating system end of file." :group 'prolog-inferior - :type 'sexp) + :type 'sexp + :risky t) (defcustom prolog-prompt-regexp '((eclipse "^[a-zA-Z0-9()]* *\\?- \\|^\\[[a-zA-Z]* [0-9]*\\]:") @@ -640,7 +653,9 @@ nil means send actual operating system end of file." "Alist of prompts of the prolog system command line." :version "24.1" :group 'prolog-inferior - :type 'sexp) + :type 'sexp + :risky t) + (defun prolog-prompt-regexp () (prolog-find-value-by-system prolog-prompt-regexp)) @@ -649,7 +664,8 @@ nil means send actual operating system end of file." ;; (t "^|: +")) ;; "Alist of regexps matching the prompt when consulting `user'." ;; :group 'prolog-inferior -;; :type 'sexp) +;; :type 'sexp +;; :risky t) (defcustom prolog-debug-on-string "debug.\n" "Predicate for enabling debug mode." @@ -1020,6 +1036,8 @@ VERSION is of the format (Major . Minor)" (define-abbrev-table 'prolog-mode-abbrev-table ()) +;; Becauses this can `eval' its arguments, any variable that gets +;; processed by it should be marked as :risky. (defun prolog-find-value-by-system (alist) "Get value from ALIST according to `prolog-system'." (let ((system (or prolog-system @@ -2341,6 +2359,7 @@ In effect it sets the `fill-prefix' when inside comments and then calls (swi prolog-help-online) (t prolog-help-online)) "Alist for the name of the function for finding help on a predicate.") +(put 'prolog-help-function 'risky-local-variable t) (defun prolog-help-on-predicate () "Invoke online help on the atom under cursor." commit c51943d71d99b7196957292e2cf9a9c554ec4d21 Author: Glenn Morris Date: Thu Jan 28 17:45:50 2016 -0500 * lisp/custom.el (defcustom): Doc fix. * doc/lispref/customize.texi (Variable Definitions): Defcustom should always have a type. diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi index 1f207dc..994c346 100644 --- a/doc/lispref/customize.texi +++ b/doc/lispref/customize.texi @@ -334,7 +334,8 @@ macro accepts the following keywords: @item :type @var{type} Use @var{type} as the data type for this option. It specifies which values are legitimate, and how to display the value -(@pxref{Customization Types}). +(@pxref{Customization Types}). Every @code{defcustom} should specify +a value for this keyword. @item :options @var{value-list} @kindex options@r{, @code{defcustom} keyword} diff --git a/lisp/custom.el b/lisp/custom.el index f84aed2..550ba44 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -224,6 +224,7 @@ The remaining arguments to `defcustom' should have the form The following keywords are meaningful: :type VALUE should be a widget type for editing the symbol's value. + Every `defcustom' should specify a value for this keyword. :options VALUE should be a list of valid members of the widget type. :initialize VALUE should be a function used to initialize the commit af5cff969e2a07e85735c05049aa8e1a475eac5e Author: Glenn Morris Date: Thu Jan 28 17:13:38 2016 -0500 * lisp/cedet/semantic/db-file.el (semanticdb-persistent-path): Fix :type. diff --git a/lisp/cedet/semantic/db-file.el b/lisp/cedet/semantic/db-file.el index b8c104b..d9dd1f9 100644 --- a/lisp/cedet/semantic/db-file.el +++ b/lisp/cedet/semantic/db-file.el @@ -67,7 +67,8 @@ disable any saving anywhere, `always', which enables saving everywhere, or `project', which enables saving in any directory that passes a list of predicates in `semanticdb-project-predicate-functions'." :group 'semanticdb - :type nil) + :type '(repeat (choice (string :tag "Directory") (const never) (const always) + (const project)))) (define-obsolete-variable-alias 'semanticdb-save-database-hooks 'semanticdb-save-database-functions "24.3") commit 9be8a2fb41043b4d4734a67f155d6923df10671b Author: Glenn Morris Date: Thu Jan 28 08:58:43 2016 -0800 * lisp/emacs-lisp/package.el (package-load-list): Improve :type. diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index fbc8be4..34772a0 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -182,7 +182,13 @@ If VERSION is a string, only that version is ever loaded. Any other version, even if newer, is silently ignored. Hence, the package is \"held\" at that version. If VERSION is nil, the package is not loaded (it is \"disabled\")." - :type '(repeat symbol) + :type '(repeat (choice (const all) + (list :tag "Specific package" + (symbol :tag "Package name") + (choice :tag "Version" + (const :tag "disable" nil) + (const :tag "most recent" t) + (string :tag "specific version"))))) :risky t :version "24.1") commit deae005667516b7e1296527f7e34c54604a81882 Author: Michael Albinus Date: Thu Jan 28 13:37:58 2016 +0100 Fix Bug#22452 * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection): * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection): * lisp/net/tramp-sh.el (tramp-maybe-open-connection): * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Mark it as connected. * lisp/net/tramp.el (tramp-handle-file-remote-p): Check also, if connection property "connected" is set. (Bug#22452) diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el index dbd1318..32fd188 100644 --- a/lisp/net/tramp-adb.el +++ b/lisp/net/tramp-adb.el @@ -1250,7 +1250,10 @@ connection if a previous connection has died for some reason." ;; Read the expression. (goto-char (point-min)) (read (current-buffer))) - ":" 'omit-nulls)))))))) + ":" 'omit-nulls)) + + ;; Mark it as connected. + (tramp-set-connection-property p "connected" t))))))) (add-hook 'tramp-unload-hook (lambda () diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index e19ceae..dee8333 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el @@ -1617,7 +1617,11 @@ connection if a previous connection has died for some reason." ;; is marked with the fuse-mountpoint "/". We shall react. (when (string-equal (tramp-get-file-property vec "/" "fuse-mountpoint" "") "/") - (tramp-error vec 'file-error "FUSE mount denied"))))) + (tramp-error vec 'file-error "FUSE mount denied")) + + ;; Mark it as connected. + (tramp-set-connection-property + (tramp-get-connection-process vec) "connected" t)))) ;; In `tramp-check-cached-permissions', the connection properties ;; {uig,gid}-{integer,string} are used. We set them to their local diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 7ace886..1f43747 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -5040,7 +5040,10 @@ connection if a previous connection has died for some reason." target-alist (cdr target-alist))) ;; Make initial shell settings. - (tramp-open-connection-setup-interactive-shell p vec))))) + (tramp-open-connection-setup-interactive-shell p vec) + + ;; Mark it as connected. + (tramp-set-connection-property p "connected" t))))) ;; When the user did interrupt, we must cleanup. (quit diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index e957fdf..509e2e3 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el @@ -1914,7 +1914,10 @@ If ARGUMENT is non-nil, use it as argument for ;; character by character; if we send the string ;; at once, it is read painfully slow. (tramp-set-connection-property p "smb-share" share) - (tramp-set-connection-property p "chunksize" 1)) + (tramp-set-connection-property p "chunksize" 1) + + ;; Mark it as connected. + (tramp-set-connection-property p "connected" t)) ;; Check for the error reason. If it was due to wrong ;; password, reestablish the connection. We cannot diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index e8e40ae..4396216 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -3009,7 +3009,8 @@ User is always nil." (when (tramp-tramp-file-p filename) (let* ((v (tramp-dissect-file-name filename)) (p (tramp-get-connection-process v)) - (c (and p (processp p) (memq (process-status p) '(run open))))) + (c (and p (processp p) (memq (process-status p) '(run open)) + (tramp-get-connection-property p "connected" nil)))) ;; We expand the file name only, if there is already a connection. (with-parsed-tramp-file-name (if c (expand-file-name filename) filename) nil commit 8e5046a6e504c2eba349407251b3e2967ff1cfa9 Author: Glenn Morris Date: Wed Jan 27 17:06:08 2016 -0500 * lisp/xwidget.el (xwidget-query-on-exit-flag): Declare. diff --git a/lisp/xwidget.el b/lisp/xwidget.el index 8893119..8c8e679 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -57,6 +57,7 @@ The possible values are: `native' or `image'." (declare-function xwidget-view-model "xwidget.c" (xwidget-view)) (declare-function delete-xwidget-view "xwidget.c" (xwidget-view)) (declare-function get-buffer-xwidgets "xwidget.c" (buffer)) +(declare-function xwidget-query-on-exit-flag "xwidget.c" (xwidget)) (defun xwidget-insert (pos type title width height &optional args) "Insert an xwidget at position POS. commit 82bf438c569967d0868f55242f273a4b0e46528a Author: Glenn Morris Date: Wed Jan 27 17:01:30 2016 -0500 * lisp/xwidget.el (xwidget-webkit-browse-url): Give explicit error if not compiled with xwidgets. diff --git a/lisp/xwidget.el b/lisp/xwidget.el index 9f257ba..8893119 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -97,6 +97,8 @@ Interactively, URL defaults to the string looking like a url around point." (browse-url-interactive-arg "xwidget-webkit URL: " ;;(xwidget-webkit-current-url) ))) + (or (featurep 'xwidget-internal) + (user-error "Your Emacs was not compiled with xwidgets support")) (when (stringp url) (if new-session (xwidget-webkit-new-session url) commit bc0903d78c41102ea7043572e1a38f30410f9937 Author: Paul Eggert Date: Tue Jan 26 23:24:27 2016 -0800 C-u C-x = example doc fix * doc/emacs/mule.texi (International Chars): Adjust example to match current behavior of C-u C-x =. diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index 40206d9..a0b1d62 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -225,11 +225,12 @@ code point in charset: 0xEA syntax: w which means: word category: .:Base, L:Left-to-right (strong), c:Chinese, j:Japanese, l:Latin, v:Viet - to input: type "C-x 8 RET HEX-CODEPOINT" or "C-x 8 RET NAME" + to input: type "C-x 8 RET ea" or + "C-x 8 RET LATIN SMALL LETTER E WITH CIRCUMFLEX" buffer code: #xC3 #xAA file code: #xC3 #xAA (encoded by coding system utf-8-unix) display: by this font (glyph code) - xft:-unknown-DejaVu Sans Mono-normal-normal- + xft:-PfEd-DejaVu Sans Mono-normal-normal- normal-*-15-*-*-*-m-0-iso10646-1 (#xAC) Character code properties: customize what to show commit b88e9cded7ae3756e3a2ec4a23e8df352a0239f9 Author: Paul Eggert Date: Tue Jan 26 23:00:10 2016 -0800 malloc.h hygiene This attempts to future-proof Emacs a bit against possible glibc changes, by having Emacs use declarations rather than coding them up by hand. Problem noted by Florian Weimer in: https://sourceware.org/ml/libc-alpha/2016-01/msg00777.html Implement this mainly by moving malloc.h-related functions from emacs.c (which does not include ) to alloc.c (which does). * src/alloc.c (my_heap_start) [DOUG_LEA_MALLOC || GNU_LINUX]: New function. The remaining changes to this file apply only if DOUG_LEA_MALLOC. (alloc_unexec_pre, alloc_unexec_post): New functions. (malloc_initialize_hook): Use my_heap_start and alloc_unexec_post. (__MALLOC_HOOK_VOLATILE): New macro, if not already defined. (__malloc_initialize_hook): Use it. (malloc_state_ptr, malloc_initialize_hook, __malloc_initialize_hook): Move here from ... * src/emacs.c: ... here. (malloc_get_state, malloc_set_state): Remove extern decls. (my_heap_start) [DOUG_LEA_MALLOC || GNU_LINUX]: Remove static var. All uses changed to similarly-named new function. (Fdump_emacs): Use new functions alloc_unexec_pre, alloc_unexec_post. * src/lisp.h (my_heap_start, alloc_unexec_pre, alloc_unexec_post): New decls. diff --git a/src/alloc.c b/src/alloc.c index 03dacc7..d379761 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -92,6 +92,18 @@ static bool valgrind_p; #include "w32heap.h" /* for sbrk */ #endif +#if defined DOUG_LEA_MALLOC || defined GNU_LINUX +/* The address where the heap starts. */ +void * +my_heap_start (void) +{ + static void *start; + if (! start) + start = sbrk (0); + return start; +} +#endif + #ifdef DOUG_LEA_MALLOC #include @@ -101,7 +113,69 @@ static bool valgrind_p; #define MMAP_MAX_AREAS 100000000 -#endif /* not DOUG_LEA_MALLOC */ +/* A pointer to the memory allocated that copies that static data + inside glibc's malloc. */ +static void *malloc_state_ptr; + +/* Get and free this pointer; useful around unexec. */ +void +alloc_unexec_pre (void) +{ + malloc_state_ptr = malloc_get_state (); +} +void +alloc_unexec_post (void) +{ + free (malloc_state_ptr); +} + +/* Restore the dumped malloc state. Because malloc can be invoked + even before main (e.g. by the dynamic linker), the dumped malloc + state must be restored as early as possible using this special hook. */ +static void +malloc_initialize_hook (void) +{ + static bool malloc_using_checking; + + if (! initialized) + { + my_heap_start (); + malloc_using_checking = getenv ("MALLOC_CHECK_") != NULL; + } + else + { + if (!malloc_using_checking) + { + /* Work around a bug in glibc's malloc. MALLOC_CHECK_ must be + ignored if the heap to be restored was constructed without + malloc checking. Can't use unsetenv, since that calls malloc. */ + char **p = environ; + if (p) + for (; *p; p++) + if (strncmp (*p, "MALLOC_CHECK_=", 14) == 0) + { + do + *p = p[1]; + while (*++p); + + break; + } + } + + malloc_set_state (malloc_state_ptr); +# ifndef XMALLOC_OVERRUN_CHECK + alloc_unexec_post (); +# endif + } +} + +# ifndef __MALLOC_HOOK_VOLATILE +# define __MALLOC_HOOK_VOLATILE +# endif +voidfuncptr __MALLOC_HOOK_VOLATILE __malloc_initialize_hook + = malloc_initialize_hook; + +#endif /* Mark, unmark, query mark bit of a Lisp string. S must be a pointer to a struct Lisp_String. */ diff --git a/src/emacs.c b/src/emacs.c index 89d8ca7..e3cfad0 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -133,20 +133,7 @@ bool might_dump; extern void unexec_init_emacs_zone (void); #endif -#ifdef DOUG_LEA_MALLOC -/* Preserves a pointer to the memory allocated that copies that - static data inside glibc's malloc. */ -static void *malloc_state_ptr; -/* From glibc, a routine that returns a copy of the malloc internal state. */ -extern void *malloc_get_state (void); -/* From glibc, a routine that overwrites the malloc internal state. */ -extern int malloc_set_state (void *); -/* True if the MALLOC_CHECK_ environment variable was set while - dumping. Used to work around a bug in glibc's malloc. */ -static bool malloc_using_checking; -#elif defined HAVE_PTHREAD && !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC extern void malloc_enable_thread (void); -#endif /* If true, Emacs should not attempt to use a window-specific code, but instead should use the virtual terminal under which it was started. */ @@ -165,11 +152,6 @@ bool display_arg; Tells GC how to save a copy of the stack. */ char *stack_bottom; -#if defined (DOUG_LEA_MALLOC) || defined (GNU_LINUX) -/* The address where the heap starts (from the first sbrk (0) call). */ -static void *my_heap_start; -#endif - #ifdef GNU_LINUX /* The gap between BSS end and heap start as far as we can tell. */ static uprintmax_t heap_bss_diff; @@ -651,51 +633,6 @@ argmatch (char **argv, int argc, const char *sstr, const char *lstr, } } -#ifdef DOUG_LEA_MALLOC - -/* malloc can be invoked even before main (e.g. by the dynamic - linker), so the dumped malloc state must be restored as early as - possible using this special hook. */ - -static void -malloc_initialize_hook (void) -{ - if (initialized) - { - if (!malloc_using_checking) - /* Work around a bug in glibc's malloc. MALLOC_CHECK_ must be - ignored if the heap to be restored was constructed without - malloc checking. Can't use unsetenv, since that calls malloc. */ - { - char **p; - - for (p = environ; p && *p; p++) - if (strncmp (*p, "MALLOC_CHECK_=", 14) == 0) - { - do - *p = p[1]; - while (*++p); - break; - } - } - - malloc_set_state (malloc_state_ptr); -#ifndef XMALLOC_OVERRUN_CHECK - free (malloc_state_ptr); -#endif - } - else - { - if (my_heap_start == 0) - my_heap_start = sbrk (0); - malloc_using_checking = getenv ("MALLOC_CHECK_") != NULL; - } -} - -void (*__malloc_initialize_hook) (void) EXTERNALLY_VISIBLE = malloc_initialize_hook; - -#endif /* DOUG_LEA_MALLOC */ - /* Close standard output and standard error, reporting any write errors as best we can. This is intended for use with atexit. */ static void @@ -743,10 +680,8 @@ main (int argc, char **argv) #ifdef GNU_LINUX if (!initialized) { - if (my_heap_start == 0) - my_heap_start = sbrk (0); - - heap_bss_diff = (char *)my_heap_start - max (my_endbss, my_endbss_static); + char *heap_start = my_heap_start (); + heap_bss_diff = heap_start - max (my_endbss, my_endbss_static); } #endif @@ -2145,15 +2080,12 @@ You must run Emacs in batch mode in order to dump it. */) memory_warnings (my_edata, malloc_warning); #endif /* not WINDOWSNT */ #endif /* not SYSTEM_MALLOC and not HYBRID_MALLOC */ -#ifdef DOUG_LEA_MALLOC - malloc_state_ptr = malloc_get_state (); -#endif + + alloc_unexec_pre (); unexec (SSDATA (filename), !NILP (symfile) ? SSDATA (symfile) : 0); -#ifdef DOUG_LEA_MALLOC - free (malloc_state_ptr); -#endif + alloc_unexec_post (); #ifdef WINDOWSNT Vlibrary_cache = Qnil; diff --git a/src/lisp.h b/src/lisp.h index 6be2104..82cbca8 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3590,6 +3590,7 @@ extern void parse_str_as_multibyte (const unsigned char *, ptrdiff_t, ptrdiff_t *, ptrdiff_t *); /* Defined in alloc.c. */ +extern void *my_heap_start (void); extern void check_pure_size (void); extern void free_misc (Lisp_Object); extern void allocate_string_data (struct Lisp_String *, EMACS_INT, EMACS_INT); @@ -3601,6 +3602,13 @@ extern void mark_object (Lisp_Object); #if defined REL_ALLOC && !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC extern void refill_memory_reserve (void); #endif +#ifdef DOUG_LEA_MALLOC +extern void alloc_unexec_pre (void); +extern void alloc_unexec_post (void); +#else +INLINE void alloc_unexec_pre (void) {} +INLINE void alloc_unexec_post (void) {} +#endif extern const char *pending_malloc_warning; extern Lisp_Object zero_vector; extern Lisp_Object *stack_base; commit cf17002326ba29d78f20118e0016dbd32fc3527e Author: Eli Zaretskii Date: Tue Jan 26 20:31:10 2016 +0200 ; Fix a typo in the user manual * doc/emacs/anti.texi (Antinews): Fix typo. Reported by Lele Gaifax . diff --git a/doc/emacs/anti.texi b/doc/emacs/anti.texi index ece4d94..aadc85a 100644 --- a/doc/emacs/anti.texi +++ b/doc/emacs/anti.texi @@ -20,7 +20,7 @@ No need to procrastinate on the dilemma whether you do or don't want the new shiny Cairo thing. Hail, simplicity! @item -Emacs still works on SGI IRIX systems. if you live backwards in time, +Emacs still works on SGI IRIX systems. If you live backwards in time, this is actually a bonus, as IRIX systems will become more and more popular as you move farther back in time. commit a523045864d5f6a57bc3faa7482c94503c7f0e24 Author: Eli Zaretskii Date: Tue Jan 26 20:26:54 2016 +0200 * doc/emacs/mark.texi (Using Region): Clarify wording. (Bug#22467) diff --git a/doc/emacs/mark.texi b/doc/emacs/mark.texi index 98980d5..dd47532 100644 --- a/doc/emacs/mark.texi +++ b/doc/emacs/mark.texi @@ -286,12 +286,13 @@ instead signal an error if the mark is inactive. @findex delete-selection-mode By default, text insertion occurs normally even if the mark is active---for example, typing @kbd{a} inserts the character @samp{a}, -then deactivates the mark. If you enable Delete Selection mode, a -minor mode, then inserting text while the mark is active causes the -text in the region to be deleted first. Also, commands that normally -delete just one character, such as @kbd{C-d} or @kbd{@key{DEL}}, will -delete the entire region instead. To toggle Delete Selection -mode on or off, type @kbd{M-x delete-selection-mode}. +then deactivates the mark. Delete Selection mode, a minor mode, +modifies this behavior: if you enable that mode, then inserting text +while the mark is active causes the text in the region to be deleted +first. Also, commands that normally delete just one character, such +as @kbd{C-d} or @kbd{@key{DEL}}, will delete the entire region +instead. To toggle Delete Selection mode on or off, type @kbd{M-x +delete-selection-mode}. @node Mark Ring @section The Mark Ring commit b4c7b510ae46a65fa6a13fa397209c0241386c1f Author: Paul Eggert Date: Tue Jan 26 07:41:41 2016 -0800 Remove never-set var handle_user_signal_hook * src/keyboard.c, src/keyboard.h (handle_user_signal_hook): Remove never-set var. All uses removed. diff --git a/src/keyboard.c b/src/keyboard.c index 3cddd41..20aa2db 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -7142,9 +7142,6 @@ struct user_signal_info /* List of user signals. */ static struct user_signal_info *user_signals = NULL; -/* Function called when handling user signals. */ -void (*handle_user_signal_hook) (int); - void add_user_signal (int sig, const char *name) { @@ -7193,8 +7190,6 @@ handle_user_signal (int sig) } p->npending++; - if (handle_user_signal_hook) - (*handle_user_signal_hook) (sig); #ifdef USABLE_SIGIO if (interrupt_input) handle_input_available_signal (sig); diff --git a/src/keyboard.h b/src/keyboard.h index 55667bf..7f95f11 100644 --- a/src/keyboard.h +++ b/src/keyboard.h @@ -415,8 +415,6 @@ extern void unuse_menu_items (void); #define EVENT_HEAD_KIND(event_head) \ (Fget ((event_head), Qevent_kind)) -extern void (*handle_user_signal_hook) (int); - /* True while doing kbd input. */ extern bool waiting_for_input; commit ad879b7f7e049160c45361fe8a12580801ba035b Author: K. Handa Date: Thu Jan 14 21:48:44 2016 +0900 Backport:fix previous change of src/ftfont.c (ftfont_shape_by_flt) * src/ftfont.c (ftfont_shape_by_flt): Fix previous change. Access the second glyph only when there are enough glyphs. (cherry picked from commit 9835757013569673854b692ccbb58bfb3c3ed1f7) diff --git a/src/ftfont.c b/src/ftfont.c index bb8af96..505d508 100644 --- a/src/ftfont.c +++ b/src/ftfont.c @@ -2590,7 +2590,7 @@ ftfont_shape_by_flt (Lisp_Object lgstring, struct font *font, flt_font_ft.otf = otf; flt_font_ft.matrix = matrix->xx != 0 ? matrix : 0; - if (1 < len || ! otf) + if (1 < len) { /* A little bit ad hoc. Perhaps, shaper must get script and language information, and select a proper flt for them @@ -2598,9 +2598,11 @@ ftfont_shape_by_flt (Lisp_Object lgstring, struct font *font, int c1 = LGLYPH_CHAR (LGSTRING_GLYPH (lgstring, 1)); if (CHAR_HAS_CATEGORY (c1, '^')) flt = mflt_get (msymbol ("combining")); - else if (! otf) - flt = mflt_find (LGLYPH_CHAR (LGSTRING_GLYPH (lgstring, 0)), - &flt_font_ft.flt_font); + } + if (! flt && ! otf) + { + flt = mflt_find (LGLYPH_CHAR (LGSTRING_GLYPH (lgstring, 0)), + &flt_font_ft.flt_font); if (! flt) return make_number (0); } commit 4a3db0f72955815c41114129129424c3b31ea3eb Author: K. Handa Date: Sat Jan 2 16:36:21 2016 +0900 support rendering of wider range of combinging characters by ftfont backend * lisp/language/hebrew.el (hebrew-shape-gstring): If the font backend supports rendering of combining characters, call font-shape-gstring. * src/font.c (Ffont_get): Handle `combining-capability' property. (syms_of_font): New symbol ":combining-capability'. * src/font.h (struct font_driver): New member combining_capability. * src/ftfont.c: Include "category.h". (ftfont_driver): Initialize combining_capability to ftfont_combining_capability. (ftfont_shape_by_flt): If OTF is null, try to find a suitable FLT in advance. (ftfont_combining_capability): New function. (cherry picked from commit 536f48e9a2251b9e654ea974bd90ff2f40218753) diff --git a/lisp/language/hebrew.el b/lisp/language/hebrew.el index 498f01d..ae8cc95 100644 --- a/lisp/language/hebrew.el +++ b/lisp/language/hebrew.el @@ -216,24 +216,26 @@ Bidirectional editing is supported."))) (setq idx 1 nglyphs nchars)) ;; Now IDX is an index to the first non-precomposed glyph. ;; Adjust positions of the remaining glyphs artificially. - (setq base-width (lglyph-width (lgstring-glyph gstring 0))) - (while (< idx nglyphs) - (setq glyph (lgstring-glyph gstring idx)) - (lglyph-set-from-to glyph 0 (1- nchars)) - (if (>= (lglyph-lbearing glyph) (lglyph-width glyph)) - ;; It seems that this glyph is designed to be rendered - ;; before the base glyph. - (lglyph-set-adjustment glyph (- base-width) 0 0) - (if (>= (lglyph-lbearing glyph) 0) - ;; Align the horizontal center of this glyph to the - ;; horizontal center of the base glyph. - (let ((width (- (lglyph-rbearing glyph) - (lglyph-lbearing glyph)))) - (lglyph-set-adjustment glyph - (- (/ (- base-width width) 2) - (lglyph-lbearing glyph) - base-width) 0 0)))) - (setq idx (1+ idx)))))) + (if (font-get font :combining-capability) + (font-shape-gstring gstring) + (setq base-width (lglyph-width (lgstring-glyph gstring 0))) + (while (< idx nglyphs) + (setq glyph (lgstring-glyph gstring idx)) + (lglyph-set-from-to glyph 0 (1- nchars)) + (if (>= (lglyph-lbearing glyph) (lglyph-width glyph)) + ;; It seems that this glyph is designed to be rendered + ;; before the base glyph. + (lglyph-set-adjustment glyph (- base-width) 0 0) + (if (>= (lglyph-lbearing glyph) 0) + ;; Align the horizontal center of this glyph to the + ;; horizontal center of the base glyph. + (let ((width (- (lglyph-rbearing glyph) + (lglyph-lbearing glyph)))) + (lglyph-set-adjustment glyph + (- (/ (- base-width width) 2) + (lglyph-lbearing glyph) + base-width) 0 0)))) + (setq idx (1+ idx))))))) gstring)) (let* ((base "[\u05D0-\u05F2]") diff --git a/src/font.c b/src/font.c index 6af9e7c..039493b 100644 --- a/src/font.c +++ b/src/font.c @@ -4036,7 +4036,13 @@ The value of :otf is a cons (GSUB . GPOS) where GSUB and GPOS are lists representing the OpenType features supported by the font by this form: ((SCRIPT (LANGSYS FEATURE ...) ...) ...) SCRIPT, LANGSYS, and FEATURE are all symbols representing OpenType -Layout tags. */) +Layout tags. + +In addition to the keys listed abobe, the following keys are reserved +for the specific meanings as below: + +The value of :combining-capability is non-nil if the font-backend of +FONT supports rendering of combining characters for non-OTF fonts. */) (Lisp_Object font, Lisp_Object key) { int idx; @@ -4051,14 +4057,22 @@ Layout tags. */) if (idx >= 0 && idx < FONT_EXTRA_INDEX) return AREF (font, idx); val = Fassq (key, AREF (font, FONT_EXTRA_INDEX)); - if (NILP (val) && EQ (key, QCotf) && FONT_OBJECT_P (font)) + if (NILP (val) && FONT_OBJECT_P (font)) { struct font *fontp = XFONT_OBJECT (font); - if (fontp->driver->otf_capability) - val = fontp->driver->otf_capability (fontp); - else - val = Fcons (Qnil, Qnil); + if (EQ (key, QCotf)) + { + if (fontp->driver->otf_capability) + val = fontp->driver->otf_capability (fontp); + else + val = Fcons (Qnil, Qnil); + } + else if (EQ (key, QCcombining_capability)) + { + if (fontp->driver->combining_capability) + val = fontp->driver->combining_capability (fontp); + } } else val = Fcdr (val); @@ -5290,6 +5304,7 @@ syms_of_font (void) DEFSYM (QCscalable, ":scalable"); DEFSYM (QCavgwidth, ":avgwidth"); DEFSYM (QCfont_entity, ":font-entity"); + DEFSYM (QCcombining_capability, ":combining-capability"); /* Symbols representing values of font spacing property. */ DEFSYM (Qc, "c"); diff --git a/src/font.h b/src/font.h index ba208e3..36fe51a 100644 --- a/src/font.h +++ b/src/font.h @@ -757,6 +757,12 @@ struct font_driver bool (*cached_font_ok) (struct frame *f, Lisp_Object font_object, Lisp_Object entity); + + /* Optional + + Return non-nil if the driver support rendering of combining + characters for FONT according to Unicode combining class. */ + Lisp_Object (*combining_capability) (struct font *font); }; diff --git a/src/ftfont.c b/src/ftfont.c index 8412dd0..bb8af96 100644 --- a/src/ftfont.c +++ b/src/ftfont.c @@ -30,6 +30,7 @@ along with GNU Emacs. If not, see . */ #include "dispextern.h" #include "character.h" #include "charset.h" +#include "category.h" #include "composite.h" #include "font.h" #include "ftfont.h" @@ -81,6 +82,8 @@ static Lisp_Object ftfont_lookup_cache (Lisp_Object, static void ftfont_filter_properties (Lisp_Object font, Lisp_Object alist); +static Lisp_Object ftfont_combining_capability (struct font *); + #define SYMBOL_FcChar8(SYM) (FcChar8 *) SDATA (SYMBOL_NAME (SYM)) static struct @@ -547,6 +550,10 @@ struct font_driver ftfont_driver = #endif ftfont_filter_properties, /* filter_properties */ + + NULL, /* cached_font_ok */ + + ftfont_combining_capability, }; static Lisp_Object @@ -2533,7 +2540,7 @@ ftfont_shape_by_flt (Lisp_Object lgstring, struct font *font, len = i; - if (with_variation_selector) + if (otf && with_variation_selector) { setup_otf_gstring (len); for (i = 0; i < len; i++) @@ -2583,14 +2590,19 @@ ftfont_shape_by_flt (Lisp_Object lgstring, struct font *font, flt_font_ft.otf = otf; flt_font_ft.matrix = matrix->xx != 0 ? matrix : 0; - if (1 < len) + if (1 < len || ! otf) { /* A little bit ad hoc. Perhaps, shaper must get script and language information, and select a proper flt for them here. */ int c1 = LGLYPH_CHAR (LGSTRING_GLYPH (lgstring, 1)); - if (0x300 <= c1 && c1 <= 0x36F) + if (CHAR_HAS_CATEGORY (c1, '^')) flt = mflt_get (msymbol ("combining")); + else if (! otf) + flt = mflt_find (LGLYPH_CHAR (LGSTRING_GLYPH (lgstring, 0)), + &flt_font_ft.flt_font); + if (! flt) + return make_number (0); } MFLTGlyphFT *glyphs = (MFLTGlyphFT *) gstring.glyphs; @@ -2675,8 +2687,6 @@ ftfont_shape (Lisp_Object lgstring) struct ftfont_info *ftfont_info = (struct ftfont_info *) font; OTF *otf = ftfont_get_otf (ftfont_info); - if (! otf) - return make_number (0); return ftfont_shape_by_flt (lgstring, font, ftfont_info->ft_size->face, otf, &ftfont_info->matrix); } @@ -2750,6 +2760,16 @@ ftfont_filter_properties (Lisp_Object font, Lisp_Object alist) } +static Lisp_Object +ftfont_combining_capability (struct font *font) +{ +#ifdef HAVE_M17N_FLT + return Qt; +#else + return Qnil; +#endif +} + void syms_of_ftfont (void) { commit 60902756b0d794b16b9c1c67c4c40a3ac04d1c1b Author: Anders Lindgren Date: Tue Jan 26 13:51:59 2016 +0100 Fixed NextStep fullscreen issue (bug#22468) When in fullscreen mode, `[screen visibleFrame]' sometimes includes, sometimes excludes the menu bar. This could cause a frame to be placed too low when in fullscreen mode. * src/nsterm.m (ns_menu_bar_should_be_hidden): Trace. (constrain_frame_rect): New parameter, isFullscreen, when true don't query the height of the menu bar. (ns_constrain_all_frames): Pass `false' (isFullscreen) to `constrain_frame_rect'. ([EmacsView initFrameFromEmacs:]): Trace. ([EmacsView isFullscreen]): Trace. ([EmacsWindow constrainFrameRect:toScreen:]): Pass fullscreen state to `constrain_frame_rect'. diff --git a/src/nsterm.m b/src/nsterm.m index 19083ef..f77aadb 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -637,10 +637,11 @@ ns_menu_bar_should_be_hidden (void) static CGFloat ns_menu_bar_height (NSScreen *screen) -/* The height of the menu bar, if visible. */ -{ - // NSTRACE ("ns_menu_bar_height"); +/* The height of the menu bar, if visible. + Note: Don't use this when fullscreen is enabled -- the screen + sometimes includes, sometimes excludes the menu bar area. */ +{ CGFloat res; if (ns_menu_bar_should_be_hidden()) @@ -660,7 +661,7 @@ ns_menu_bar_height (NSScreen *screen) } - // NSTRACE_MSG (NSTRACE_FMT_RETURN "%.0f", res); + NSTRACE ("ns_menu_bar_height " NSTRACE_FMT_RETURN " %.0f", res); return res; } @@ -714,7 +715,7 @@ ns_menu_bar_height (NSScreen *screen) // Result: Menu bar visible, frame placed immediately below the menu. // -static NSRect constrain_frame_rect(NSRect frameRect) +static NSRect constrain_frame_rect(NSRect frameRect, bool isFullscreen) { NSTRACE ("constrain_frame_rect(" NSTRACE_FMT_RECT ")", NSTRACE_ARG_RECT (frameRect)); @@ -746,7 +747,11 @@ static NSRect constrain_frame_rect(NSRect frameRect) { multiscreenRect = NSUnionRect (multiscreenRect, scrRect); - menu_bar_height = max(menu_bar_height, ns_menu_bar_height (s)); + if (!isFullscreen) + { + CGFloat screen_menu_bar_height = ns_menu_bar_height (s); + menu_bar_height = max(menu_bar_height, screen_menu_bar_height); + } } } @@ -840,7 +845,7 @@ ns_constrain_all_frames (void) if (![view isFullscreen]) { [[view window] - setFrame:constrain_frame_rect([[view window] frame]) + setFrame:constrain_frame_rect([[view window] frame], false) display:NO]; } } @@ -6650,7 +6655,7 @@ not_in_argv (NSString *arg) NSString *name; NSTRACE ("[EmacsView initFrameFromEmacs:]"); - NSTRACE_MSG ("cols:%d lines:%d\n", f->text_cols, f->text_lines); + NSTRACE_MSG ("cols:%d lines:%d", f->text_cols, f->text_lines); windowClosing = NO; processingCompose = NO; @@ -7099,14 +7104,25 @@ not_in_argv (NSString *arg) - (BOOL)isFullscreen { - NSTRACE ("[EmacsView isFullscreen]"); + BOOL res; - if (! fs_is_native) return nonfs_window != nil; + if (! fs_is_native) + { + res = (nonfs_window != nil); + } + else + { #ifdef HAVE_NATIVE_FS - return ([[self window] styleMask] & NSFullScreenWindowMask) != 0; + res = (([[self window] styleMask] & NSFullScreenWindowMask) != 0); #else - return NO; + res = NO; #endif + } + + NSTRACE ("[EmacsView isFullscreen] " NSTRACE_FMT_RETURN " %d", + (int) res); + + return res; } #ifdef HAVE_NATIVE_FS @@ -7772,7 +7788,8 @@ not_in_argv (NSString *arg) #endif #endif - return constrain_frame_rect(frameRect); + return constrain_frame_rect(frameRect, + [(EmacsView *)[self delegate] isFullscreen]); } commit da976cff352bdea6adc2667582a56eb4061bb5f6 Author: Artur Malabarba Date: Mon Jan 25 22:42:50 2016 +0000 * lisp/files.el: Use a fixed file name for the second dir-locals file (dir-locals-file): Revert to its original fixed value. (dir-locals-file-2): New const. (dir-locals--all-files): Don't use `file-name-all-completions'. Instead, just check for the 2 dir-locals files and return a list of the ones that exit (if any). * etc/NEWS: Document the change. * doc/emacs/custom.texi (Directory Variables): Document the change. * doc/lispref/variables.texi (Directory Local Variables): Update accordingly. diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index 670848c..7be660c 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -1299,8 +1299,8 @@ named @file{.dir-locals.el}@footnote{ On MS-DOS, the name of this file should be @file{_dir-locals.el}, due to limitations of the DOS filesystems. If the filesystem is limited to 8+3 file names, the name of the file will be truncated by the OS to @file{_dir-loc.el}. -}@footnote{ You can also use files like @file{.dir-locals2.el}, which -are loaded in addition. This is useful when @file{.dir-locals.el} is +}@footnote{ You can also use @file{.dir-locals-2.el}, which +is loaded in addition. This is useful when @file{.dir-locals.el} is under version control in a shared repository and can't be used for personal customizations. } in a directory. Whenever Emacs visits any file in that directory or any of diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index 4270161..6c53e9b 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi @@ -1765,33 +1765,20 @@ variables: by putting them in a special file, or by defining a @dfn{project class} for that directory. @defvr Constant dir-locals-file -This constant is a wildcard pattern matching the name of files where -Emacs expects to find directory-local variables. Its value is -@file{.dir-locals*.el}@footnote{ -The MS-DOS version of Emacs uses @file{_dir-locals*.el} instead, due to +This constant is the name of the file where Emacs expects to find the +directory-local variables. The name of the file is +@file{.dir-locals.el}@footnote{ +The MS-DOS version of Emacs uses @file{_dir-locals.el} instead, due to limitations of the DOS filesystems. -}, and the most common file name to use is @file{.dir-locals.el}. - -Any file matching this name pattern in a directory causes Emacs to -apply its settings when visiting files in that directory or any of its -subdirectories (optionally, you can exclude subdirectories; see -below). -If some of the subdirectories have their own file matching -@file{.dir-locals*.el}, Emacs uses the settings from the deepest file -it finds starting from the file's directory and moving up the -directory tree. The file specifies local variables as a specially -formatted list; see @ref{Directory Variables, , Per-directory Local -Variables, emacs, The GNU Emacs Manual}, for more details. - -If the same directory contains multiple such files (for instance, -@file{.dir-locals.el} and @file{.dir-locals2.el}), then all of them -are used in @code{string<} order. This means that, if two files -specify different values for the same variable, the file sorted after -will override the value of the previous file (for instance, values in -@file{.dir-locals2.el} override those in @file{.dir-locals.el}). Note -that, because of how lexicographic order works, values in -@file{.dir-locals10.el} are overridden by values in @file{.dir-locals2.el}. -This can be avoided by using @file{.dir-locals02.el} instead. +}. A file by that name in a directory causes Emacs to apply its +settings to any file in that directory or any of its subdirectories +(optionally, you can exclude subdirectories; see below). +If some of the subdirectories have their own @file{.dir-locals.el} +files, Emacs uses the settings from the deepest file it finds starting +from the file's directory and moving up the directory tree. The file +specifies local variables as a specially formatted list; see +@ref{Directory Variables, , Per-directory Local Variables, emacs, The +GNU Emacs Manual}, for more details. @end defvr @defun hack-dir-local-variables diff --git a/etc/NEWS b/etc/NEWS index 7c4824c..09bced4 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -179,9 +179,8 @@ by default, and must be enabled by using the `--with-modules' option at configure time. +++ -** Any file of the form .dir-locals*.el is now considered a dir-local -file, and multiple such files can be used in the same directory. See -the variable `dir-locals-file' for more information. +** A second dir-local file (.dir-locals-2.el) is now accepted. +See the variable `dir-locals-file-2' for more information. +++ ** Network security (TLS/SSL certificate validity and the like) is diff --git a/lisp/files.el b/lisp/files.el index 91558aa..92ae434 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -3713,37 +3713,43 @@ VARIABLES list of the class. The list is processed in order. applied by recursively following these rules." (setf (alist-get class dir-locals-class-alist) variables)) -(defconst dir-locals-file ".dir-locals" - "Pattern for files that contain directory-local variables. +(defconst dir-locals-file ".dir-locals.el" + "File that contains directory-local variables. It has to be constant to enforce uniform values across different environments and users. +See also `dir-locals-file-2', whose values override this one's. +See Info node `(elisp)Directory Local Variables' for details.") -Multiple dir-locals files in the same directory are loaded in -`string<' order. +(defconst dir-locals-file-2 ".dir-locals-2.el" + "File that contains directory-local variables. +This essentially a second file that can be used like +`dir-locals-file', so that users can have specify their personal +dir-local variables even if the current directory already has a +`dir-locals-file' that is shared with other users (such as in a +git repository). See Info node `(elisp)Directory Local Variables' for details.") -(defun dir-locals--all-files (file-or-dir) - "Return a list of all readable dir-locals files matching FILE-OR-DIR. -If FILE-OR-DIR is a file pattern, expand wildcards in it and -return a sorted list of the results. If it is a directory name, -return a sorted list of all files matching `dir-locals-file' in -this directory. -The returned list is sorted by `string<' order." - (require 'seq) - (let ((dir (if (file-directory-p file-or-dir) - file-or-dir - (or (file-name-directory file-or-dir) - default-directory))) - (file (cond ((not (file-directory-p file-or-dir)) (file-name-nondirectory file-or-dir)) - ((eq system-type 'ms-dos) (dosified-file-name dir-locals-file)) - (t dir-locals-file)))) - (seq-filter (lambda (f) (and (file-readable-p f) - (file-regular-p f) - (not (file-directory-p f)))) - (mapcar (lambda (f) (expand-file-name f dir)) - (nreverse - (let ((completion-regexp-list '("\\.el\\'"))) - (file-name-all-completions file dir))))))) +(defun dir-locals--all-files (directory) + "Return a list of all readable dir-locals files in DIRECTORY. +The returned list is sorted by increasing priority. That is, +values specified in the last file should take precedence over +those in the first." + (when (file-readable-p directory) + (let* ((file-1 (expand-file-name (if (eq system-type 'ms-dos) + (dosified-file-name dir-locals-file) + dir-locals-file) + directory)) + (file-2 (when (string-match "\\.el\\'" file-1) + (replace-match "-2.el" t nil file-1))) + (out nil)) + ;; The order here is important. + (dolist (f (list file-2 file-1)) + (when (and f + (file-readable-p f) + (file-regular-p f) + (not (file-directory-p f))) + (push f out))) + out))) (defun dir-locals-find-file (file) "Find the directory-local variables for FILE. commit 914fb99d38f8a9db7fbf926d0cf34b808d581afe Author: Artur Malabarba Date: Mon Jan 25 16:56:08 2016 +0000 * lisp/files-x.el (modify-dir-local-variable): Small rewrite Change a variable name to be more meaningful, and reorder some of the code with no change in behaviour. diff --git a/lisp/files-x.el b/lisp/files-x.el index 2e1a728..05ad7f5 100644 --- a/lisp/files-x.el +++ b/lisp/files-x.el @@ -429,23 +429,24 @@ from the MODE alist ignoring the input argument VALUE." (catch 'exit (unless enable-local-variables (throw 'exit (message "Directory-local variables are disabled"))) - (let ((variables-file (and (buffer-file-name) - (not (file-remote-p (buffer-file-name))) - (dir-locals-find-file (buffer-file-name)))) - variables) - (setq variables-file + (let* ((dir-or-cache (and (buffer-file-name) + (not (file-remote-p (buffer-file-name))) + (dir-locals-find-file (buffer-file-name)))) + (variables-file ;; If there are several .dir-locals, the user probably ;; wants to edit the last one (the highest priority). - (cond ((stringp variables-file) - (car (last (dir-locals--all-files variables-file)))) - ((consp variables-file) ; result from cache - ;; If cache element has an mtime, assume it came from a file. - ;; Otherwise, assume it was set directly. - (if (nth 2 variables-file) - (car (last (dir-locals--all-files (car variables-file)))) - (cadr variables-file))) + (cond ((stringp dir-or-cache) + (car (last (dir-locals--all-files dir-or-cache)))) + ((consp dir-or-cache) ; result from cache + ;; If cache element has an mtime, assume it came + ;; from a file. Otherwise, assume it was set + ;; directly. + (if (nth 2 dir-or-cache) + (car (last (dir-locals--all-files (car dir-or-cache)))) + (cadr dir-or-cache))) ;; Try to make a proper file-name. - (t (concat dir-locals-file ".el")))) + (t (expand-file-name dir-locals-file)))) + variables) ;; I can't be bothered to handle this case right now. ;; Dir locals were set directly from a class. You need to ;; directly modify the class in dir-locals-class-alist. commit 777c712c9c419d20de2602e53308fca2eb8442b3 Author: Artur Malabarba Date: Mon Jan 25 16:54:08 2016 +0000 * lisp/files.el (dir-locals-find-file): Refactor return values Returning a cache remains unchanged, but the case of returning a file (or pattern) is now changed to return the contaning directory. (dir-locals-read-from-file): Rename to `dir-locals-read-from-dir' and make obsolete. (dir-locals-read-from-dir): Simplify accordingly. (hack-dir-local-variables): Simplify accordingly and rename a variable. diff --git a/lisp/files.el b/lisp/files.el index 5a15c71..91558aa 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -3758,24 +3758,19 @@ A cache entry based on a `dir-locals-file' is valid if the modification time stored in the cache matches the current file modification time. If not, the cache entry is cleared so that the file will be re-read. -This function returns either nil (no directory local variables found), -or the matching entry from `dir-locals-directory-cache' (a list), -or the full path to the `dir-locals-file' (a string) in the case -of no valid cache entry. If `dir-locals-file' contains -wildcards, then the return value is not a proper filename, it is -an absolute version of `dir-locals-file' which is guaranteed to -expand to at least one file." +This function returns either: + - nil (no directory local variables found), + - the matching entry from `dir-locals-directory-cache' (a list), + - or the full path to the directory (a string) containing at + least one `dir-locals-file' in the case of no valid cache + entry." (setq file (expand-file-name file)) (let* ((locals-dir (locate-dominating-file (file-name-directory file) #'dir-locals--all-files)) - locals-file dir-elt) + dir-elt) ;; `locate-dominating-file' may have abbreviated the name. (when locals-dir - (setq locals-dir (expand-file-name locals-dir)) - (setq locals-file (expand-file-name (if (eq system-type 'ms-dos) - (dosified-file-name dir-locals-file) - dir-locals-file) - locals-dir))) + (setq locals-dir (expand-file-name locals-dir))) ;; Find the best cached value in `dir-locals-directory-cache'. (dolist (elt dir-locals-directory-cache) (when (and (string-prefix-p (car elt) file @@ -3808,20 +3803,19 @@ expand to at least one file." (delq dir-elt dir-locals-directory-cache)) ;; Return the first existing dir-locals file. Might be the same ;; as dir-elt's, might not (eg latter might have been deleted). - locals-file) + locals-dir) ;; No cache entry. - locals-file))) - -(defun dir-locals-read-from-file (file) - "Load a variables FILE and register a new class and instance. -FILE is the absolute name of the file holding the variables to -apply. It may contain wildcards. -The new class name is the same as the directory in which FILE -is found. Returns the new class name." + locals-dir))) + +(defun dir-locals-read-from-dir (dir) + "Load all variables files in DIR and register a new class and instance. +DIR is the absolute name of a directory which must contain at +least one dir-local file (which is a file holding variables to +apply). +Return the new class name, which is a symbol named DIR." (require 'map) - (let* ((dir-name (file-name-directory file)) - (class-name (intern dir-name)) - (files (dir-locals--all-files file)) + (let* ((class-name (intern dir)) + (files (dir-locals--all-files dir)) (read-circle nil) (success nil) (variables)) @@ -3838,7 +3832,7 @@ is found. Returns the new class name." (setq success t)) (dir-locals-set-class-variables class-name variables) (dir-locals-set-directory-class - dir-name class-name + dir class-name (seconds-to-time (if success (apply #'max (mapcar (lambda (file) @@ -3849,6 +3843,9 @@ is found. Returns the new class name." 0))) class-name)) +(define-obsolete-function-alias 'dir-locals-read-from-file + 'dir-locals-read-from-dir "25.1") + (defcustom enable-remote-dir-locals nil "Non-nil means dir-local variables will be applied to remote files." :version "24.3" @@ -3870,17 +3867,17 @@ This does nothing if either `enable-local-variables' or (not (file-remote-p (or (buffer-file-name) default-directory))))) ;; Find the variables file. - (let ((file-pattern-or-cache (dir-locals-find-file - (or (buffer-file-name) default-directory))) + (let ((dir-or-cache (dir-locals-find-file + (or (buffer-file-name) default-directory))) (class nil) (dir-name nil)) (cond - ((stringp file-pattern-or-cache) - (setq dir-name (file-name-directory file-pattern-or-cache) - class (dir-locals-read-from-file file-pattern-or-cache))) - ((consp file-pattern-or-cache) - (setq dir-name (nth 0 file-pattern-or-cache)) - (setq class (nth 1 file-pattern-or-cache)))) + ((stringp dir-or-cache) + (setq dir-name dir-or-cache + class (dir-locals-read-from-dir dir-or-cache))) + ((consp dir-or-cache) + (setq dir-name (nth 0 dir-or-cache)) + (setq class (nth 1 dir-or-cache)))) (when class (let ((variables (dir-locals-collect-variables commit 6efc59264d02902f9ea52ef6cb0400518fb798d8 Author: Glenn Morris Date: Mon Jan 25 18:31:04 2016 -0500 * lisp/textmodes/flyspell.el (flyspell--prev-meta-tab-binding): Declare. diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index 2031679..3b1a805 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el @@ -393,6 +393,9 @@ like \"Some." (let ((f (get-text-property (- (point) 1) 'face))) (memq f flyspell-prog-text-faces))) +;; Records the binding of M-TAB in effect before flyspell was activated. +(defvar flyspell--prev-meta-tab-binding) + ;;;###autoload (defun flyspell-prog-mode () "Turn on `flyspell-mode' for comments and strings." commit af4bd9720d5fbdfaeac0b2ccf6d78a242416afe8 Author: Glenn Morris Date: Mon Jan 25 18:29:53 2016 -0500 * configure.ac (USE_CAIRO): Rename to more standard HAVE_CAIRO. diff --git a/configure.ac b/configure.ac index 1f72433..fad556f 100644 --- a/configure.ac +++ b/configure.ac @@ -3141,13 +3141,13 @@ AC_SUBST(LIBOTF_LIBS) AC_SUBST(M17N_FLT_CFLAGS) AC_SUBST(M17N_FLT_LIBS) -USE_CAIRO=no +HAVE_CAIRO=no if test "${HAVE_X11}" = "yes"; then if test "${with_cairo}" != "no"; then CAIRO_REQUIRED=1.12.0 CAIRO_MODULE="cairo >= $CAIRO_REQUIRED" - EMACS_CHECK_MODULES(CAIRO, $CAIRO_MODULE, USE_CAIRO=yes, :) - if test $USE_CAIRO = yes; then + EMACS_CHECK_MODULES(CAIRO, $CAIRO_MODULE) + if test $HAVE_CAIRO = yes; then AC_DEFINE(USE_CAIRO, 1, [Define to 1 if using cairo.]) else AC_MSG_ERROR([cairo requested but not found.]) @@ -4920,7 +4920,7 @@ if test "${HAVE_X_WINDOWS}" = "yes" ; then XMENU_OBJ=xmenu.o XOBJ="xterm.o xfns.o xselect.o xrdb.o xsmfns.o xsettings.o" FONT_OBJ=xfont.o - if test "$USE_CAIRO" = "yes"; then + if test "$HAVE_CAIRO" = "yes"; then FONT_OBJ="ftfont.o ftcrfont.o" elif test "$HAVE_XFT" = "yes"; then FONT_OBJ="$FONT_OBJ ftfont.o xftfont.o ftxfont.o" @@ -5268,7 +5268,7 @@ for opt in XAW3D XPM JPEG TIFF GIF PNG RSVG CAIRO IMAGEMAGICK SOUND GPM DBUS \ case $opt in NOTIFY|ACL) eval val=\${${opt}_SUMMARY} ;; - CAIRO|TOOLKIT_SCROLL_BARS|X_TOOLKIT) eval val=\${USE_$opt} ;; + TOOLKIT_SCROLL_BARS|X_TOOLKIT) eval val=\${USE_$opt} ;; *) eval val=\${HAVE_$opt} ;; esac case x$val in @@ -5295,7 +5295,7 @@ AS_ECHO([" Does Emacs use -lXaw3d? ${HAVE_XAW3D Does Emacs use a gif library? ${HAVE_GIF} $LIBGIF Does Emacs use a png library? ${HAVE_PNG} $LIBPNG Does Emacs use -lrsvg-2? ${HAVE_RSVG} - Does Emacs use cairo? ${USE_CAIRO} + Does Emacs use cairo? ${HAVE_CAIRO} Does Emacs use imagemagick? ${HAVE_IMAGEMAGICK} Does Emacs support sound? ${HAVE_SOUND} Does Emacs use -lgpm? ${HAVE_GPM} commit 60c9e6829e379fb8d9acc1d2bc71333872f8c7f7 Author: Glenn Morris Date: Mon Jan 25 18:28:30 2016 -0500 * configure.ac (--with-cairo): Say it's experimental. diff --git a/configure.ac b/configure.ac index 7a3d4d9..1f72433 100644 --- a/configure.ac +++ b/configure.ac @@ -330,7 +330,7 @@ OPTION_DEFAULT_ON([tiff],[don't compile with TIFF image support]) OPTION_DEFAULT_ON([gif],[don't compile with GIF image support]) OPTION_DEFAULT_ON([png],[don't compile with PNG image support]) OPTION_DEFAULT_ON([rsvg],[don't compile with SVG image support]) -OPTION_DEFAULT_OFF([cairo],[compile with Cairo drawing]) +OPTION_DEFAULT_OFF([cairo],[compile with Cairo drawing (experimental)]) OPTION_DEFAULT_ON([xml2],[don't compile with XML parsing support]) OPTION_DEFAULT_ON([imagemagick],[don't compile with ImageMagick image support]) commit 55af3497d12048dd6e28167d6680472401674a8b Author: Glenn Morris Date: Mon Jan 25 18:26:42 2016 -0500 ; Spelling fix (American spelling) diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 271033b..a2a0df2 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -2100,7 +2100,7 @@ for \\[find-tag] (which see)." (etags--xref-find-definitions symbol t)) (defun etags--xref-find-definitions (pattern &optional regexp?) - ;; This emulates the behaviour of `find-tag-in-order' but instead of + ;; This emulates the behavior of `find-tag-in-order' but instead of ;; returning one match at a time all matches are returned as list. ;; NOTE: find-tag-tag-order is typically a buffer-local variable. (let* ((xrefs '()) commit 9dec01d2912f84373c16fa8cc9da8992f37e6de6 Author: Glenn Morris Date: Mon Jan 25 18:24:09 2016 -0500 ; Spelling fixes (American spelling) diff --git a/lisp/ChangeLog.17 b/lisp/ChangeLog.17 index ee812bd..1785a33 100644 --- a/lisp/ChangeLog.17 +++ b/lisp/ChangeLog.17 @@ -4437,7 +4437,7 @@ 2014-12-07 Lars Magne Ingebrigtsen - * net/eww.el (eww-follow-link): Revert prefix behaviour to + * net/eww.el (eww-follow-link): Revert prefix behavior to previous behavior. (eww-copy-page-url): Add doc string. @@ -9140,7 +9140,7 @@ 2014-06-30 Grégoire Jadi * net/rcirc.el (rcirc-buffer-process): Restore previous - behaviour. (Bug#17772) + behavior. (Bug#17772) 2014-06-29 Alan Mackenzie diff --git a/lisp/simple.el b/lisp/simple.el index ed4ca91..72e87a4 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -2894,7 +2894,7 @@ removes the previous `undo-boundary' if a series of such calls have been made. By default `self-insert-command' and `delete-char' are the only amalgamating commands, although this function could be called by any command wishing to have this -behaviour." +behavior." (let ((last-amalgamating-count (undo-auto--last-boundary-amalgamating-number))) (setq undo-auto--this-command-amalgamating t) diff --git a/src/xwidget.c b/src/xwidget.c index 9450bdf..8745416 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -530,7 +530,7 @@ xwidget_init_view (struct xwidget *xww, container later. Drawing should crop container window if necessary to handle case where xwidget is partially obscured by other Emacs windows. Other containers than gtk_fixed where explored, but - gtk_fixed had the most predictable behaviour so far. */ + gtk_fixed had the most predictable behavior so far. */ xv->emacswindow = FRAME_GTK_WIDGET (s->f); xv->widgetwindow = gtk_fixed_new (); diff --git a/test/ChangeLog.1 b/test/ChangeLog.1 index 01cb97e..3520f13 100644 --- a/test/ChangeLog.1 +++ b/test/ChangeLog.1 @@ -343,10 +343,10 @@ * automated/tildify-tests.el (tildify-space-undo-test--test): A new helper function for testing `tildify-double-space-undos' - behaviour in the `tildify-space' function. + behavior in the `tildify-space' function. (tildify-space-undo-test-html, tildify-space-undo-test-html-nbsp) (tildify-space-undo-test-xml, tildify-space-undo-test-tex): - New tests for `tildify-doule-space-undos' behaviour. + New tests for `tildify-doule-space-undos' behavior. * automated/tildify-tests.el (tildify-space-test--test): A new helper function for testing `tildify-space' function. diff --git a/test/etags/el-src/emacs/lisp/progmodes/etags.el b/test/etags/el-src/emacs/lisp/progmodes/etags.el index 6c28ba3..5d28657 100644 --- a/test/etags/el-src/emacs/lisp/progmodes/etags.el +++ b/test/etags/el-src/emacs/lisp/progmodes/etags.el @@ -2094,7 +2094,7 @@ for \\[find-tag] (which see)." (`apropos (etags--xref-find-definitions id t)))) (defun etags--xref-find-definitions (pattern &optional regexp?) - ;; This emulates the behaviour of `find-tag-in-order' but instead of + ;; This emulates the behavior of `find-tag-in-order' but instead of ;; returning one match at a time all matches are returned as list. ;; NOTE: find-tag-tag-order is typically a buffer-local variable. (let* ((xrefs '()) commit 60f6bd85a61ab0e46a51ed6adc7e13f05d43338a Author: Glenn Morris Date: Mon Jan 25 18:19:34 2016 -0500 * lisp/xwidget.el (xwidget-webkit-scroll-behavior): Rename using American spelling. Update all uses. diff --git a/lisp/xwidget.el b/lisp/xwidget.el index ec611fe..9f257ba 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -34,7 +34,7 @@ (require 'cl-lib) (require 'bookmark) -(defcustom xwidget-webkit-scroll-behaviour 'native +(defcustom xwidget-webkit-scroll-behavior 'native "Scrolling behavior of the webkit instance. The possible values are: `native' or `image'." :version "25.1" @@ -140,37 +140,37 @@ Interactively, URL defaults to the string looking like a url around point." (defun xwidget-webkit-scroll-up () "Scroll webkit up. -Depending on the value of `xwidget-webkit-scroll-behaviour', +Depending on the value of `xwidget-webkit-scroll-behavior', this scrolls in 'native' fashion, or like `image-mode' would." (interactive) - (if (eq xwidget-webkit-scroll-behaviour 'native) + (if (eq xwidget-webkit-scroll-behavior 'native) (xwidget-set-adjustment (xwidget-webkit-last-session) 'vertical t 50) (image-scroll-up))) (defun xwidget-webkit-scroll-down () "Scroll webkit down. -Depending on the value of `xwidget-webkit-scroll-behaviour', +Depending on the value of `xwidget-webkit-scroll-behavior', this scrolls in 'native' fashion, or like `image-mode' would." (interactive) - (if (eq xwidget-webkit-scroll-behaviour 'native) + (if (eq xwidget-webkit-scroll-behavior 'native) (xwidget-set-adjustment (xwidget-webkit-last-session) 'vertical t -50) (image-scroll-down))) (defun xwidget-webkit-scroll-forward () "Scroll webkit forwards. -Depending on the value of `xwidget-webkit-scroll-behaviour', +Depending on the value of `xwidget-webkit-scroll-behavior', this scrolls in 'native' fashion, or like `image-mode' would." (interactive) - (if (eq xwidget-webkit-scroll-behaviour 'native) + (if (eq xwidget-webkit-scroll-behavior 'native) (xwidget-set-adjustment (xwidget-webkit-last-session) 'horizontal t 50) (xwidget-webkit-scroll-forward))) ; FIXME infloop! (defun xwidget-webkit-scroll-backward () "Scroll webkit backwards. -Depending on the value of `xwidget-webkit-scroll-behaviour', +Depending on the value of `xwidget-webkit-scroll-behavior', this scrolls in 'native' fashion, or like `image-mode' would." (interactive) - (if (eq xwidget-webkit-scroll-behaviour 'native) + (if (eq xwidget-webkit-scroll-behavior 'native) (xwidget-set-adjustment (xwidget-webkit-last-session) 'horizontal t -50) (xwidget-webkit-scroll-backward))) ; FIXME infloop! @@ -415,7 +415,7 @@ For example, use this to display an anchor." (defun xwidget-webkit-adjust-size-dispatch () "Adjust size according to mode." (interactive) - (if (eq xwidget-webkit-scroll-behaviour 'native) + (if (eq xwidget-webkit-scroll-behavior 'native) (xwidget-webkit-adjust-size-to-window) (xwidget-webkit-adjust-size-to-content)) ;; The recenter is intended to correct a visual glitch. commit cea07fdf422bd4dc2d7ea2a62393134815dccd46 Author: Glenn Morris Date: Mon Jan 25 18:17:33 2016 -0500 Yet more xwidget doc fixes. * lisp/xwidget.el (xwidget-webkit-scroll-behaviour) (xwidget-insert, xwidget-webkit-browse-url) (xwidget-webkit-scroll-up, xwidget-webkit-scroll-down) (xwidget-webkit-scroll-forward, xwidget-webkit-scroll-backward) (xwidget-webkit-insert-string, xwidget-webkit-show-named-element) (xwidget-webkit-show-id-element) (xwidget-webkit-show-id-or-named-element) (xwidget-webkit-adjust-size, xwidget-webkit-current-url) (xwidget-webkit-execute-script-rv) (xwidget-webkit-copy-selection-as-kill, xwidget-get) (xwidget-put): Doc fixes. (xwidget-webkit-insert-string, xwidget-webkit-show-named-element) (xwidget-webkit-show-id-element) (xwidget-webkit-show-id-or-named-element): Prompt fixes. diff --git a/lisp/xwidget.el b/lisp/xwidget.el index ebd79f2..ec611fe 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -25,7 +25,8 @@ ;; ;; See xwidget.c for more api functions. -;; TODO this breaks compilation when we don't have xwidgets. +;; This breaks compilation when we don't have xwidgets. +;; And is pointless when we do, since it's in C and so preloaded. ;;(require 'xwidget-internal) ;;; Code: @@ -34,8 +35,8 @@ (require 'bookmark) (defcustom xwidget-webkit-scroll-behaviour 'native - "Scroll behaviour of the webkit instance. -'native or 'image." + "Scrolling behavior of the webkit instance. +The possible values are: `native' or `image'." :version "25.1" :group 'frames ; TODO add xwidgets group if more options are added :type '(choice (const native) (const image))) @@ -58,14 +59,11 @@ (declare-function get-buffer-xwidgets "xwidget.c" (buffer)) (defun xwidget-insert (pos type title width height &optional args) - "Insert an xwidget at POS. -given ID, TYPE, TITLE WIDTH and -HEIGHT in the current buffer. - -Return ID - -see `make-xwidget' for types suitable for TYPE. -Optional argument ARGS usage depends on the xwidget." + "Insert an xwidget at position POS. +Supply the xwidget's TYPE, TITLE, WIDTH, and HEIGHT. +See `make-xwidget' for the possible TYPE values. +The usage of optional argument ARGS depends on the xwidget. +This returns the result of `make-xwidget'." (goto-char pos) (let ((id (make-xwidget (point) (point) type title width height args))) @@ -92,8 +90,8 @@ Optional argument ARGS usage depends on the xwidget." ;;;###autoload (defun xwidget-webkit-browse-url (url &optional new-session) "Ask xwidget-webkit to browse URL. -NEW-SESSION specifies whether to create a new xwidget-webkit session. URL -defaults to the string looking like a url around the cursor position." +NEW-SESSION specifies whether to create a new xwidget-webkit session. +Interactively, URL defaults to the string looking like a url around point." (interactive (progn (require 'browse-url) (browse-url-interactive-arg "xwidget-webkit URL: " @@ -141,32 +139,40 @@ defaults to the string looking like a url around the cursor position." "Keymap for `xwidget-webkit-mode'.") (defun xwidget-webkit-scroll-up () - "Scroll webkit up,either native or like image mode." + "Scroll webkit up. +Depending on the value of `xwidget-webkit-scroll-behaviour', +this scrolls in 'native' fashion, or like `image-mode' would." (interactive) (if (eq xwidget-webkit-scroll-behaviour 'native) (xwidget-set-adjustment (xwidget-webkit-last-session) 'vertical t 50) (image-scroll-up))) (defun xwidget-webkit-scroll-down () - "Scroll webkit down,either native or like image mode." + "Scroll webkit down. +Depending on the value of `xwidget-webkit-scroll-behaviour', +this scrolls in 'native' fashion, or like `image-mode' would." (interactive) (if (eq xwidget-webkit-scroll-behaviour 'native) (xwidget-set-adjustment (xwidget-webkit-last-session) 'vertical t -50) (image-scroll-down))) (defun xwidget-webkit-scroll-forward () - "Scroll webkit forward,either native or like image mode." + "Scroll webkit forwards. +Depending on the value of `xwidget-webkit-scroll-behaviour', +this scrolls in 'native' fashion, or like `image-mode' would." (interactive) (if (eq xwidget-webkit-scroll-behaviour 'native) (xwidget-set-adjustment (xwidget-webkit-last-session) 'horizontal t 50) - (xwidget-webkit-scroll-forward))) + (xwidget-webkit-scroll-forward))) ; FIXME infloop! (defun xwidget-webkit-scroll-backward () - "Scroll webkit backward,either native or like image mode." + "Scroll webkit backwards. +Depending on the value of `xwidget-webkit-scroll-behaviour', +this scrolls in 'native' fashion, or like `image-mode' would." (interactive) (if (eq xwidget-webkit-scroll-behaviour 'native) (xwidget-set-adjustment (xwidget-webkit-last-session) 'horizontal t -50) - (xwidget-webkit-scroll-backward))) + (xwidget-webkit-scroll-backward))) ; FIXME infloop! ;; The xwidget event needs to go into a higher level handler @@ -292,9 +298,7 @@ function findactiveelement(doc){ ) (defun xwidget-webkit-insert-string (xw str) - "Insert string in the active field in the webkit. -Argument XW webkit. -Argument STR string." + "Insert string STR in the active field in the webkit XW." ;; Read out the string in the field first and provide for edit. (interactive (let* ((xww (xwidget-webkit-current-session)) @@ -310,9 +314,9 @@ Argument STR string." "findactiveelement(document).type;"))) (list xww (cond ((equal "text" field-type) - (read-string "text:" field-value)) + (read-string "Text: " field-value)) ((equal "password" field-type) - (read-passwd "password:" nil field-value)) + (read-passwd "Password: " nil field-value)) ((equal "textarea" field-type) (xwidget-webkit-begin-edit-textarea xww field-value)))))) (xwidget-webkit-execute-script @@ -325,7 +329,6 @@ Argument STR string." XW is the xwidget identifier, TEXT is retrieved from the webkit." (switch-to-buffer (generate-new-buffer "textarea")) - (set (make-local-variable 'xwidget-xwbl) xw) (insert text)) @@ -343,11 +346,10 @@ XW is the xwidget identifier, TEXT is retrieved from the webkit." ) (defun xwidget-webkit-show-named-element (xw element-name) - "Make named-element show. for instance an anchor. -Argument XW is the xwidget. -Argument ELEMENT-NAME is the element name to display in the webkit xwidget." + "Make webkit xwidget XW show a named element ELEMENT-NAME. +For example, use this to display an anchor." (interactive (list (xwidget-webkit-current-session) - (read-string "element name:"))) + (read-string "Element name: "))) ;;TODO since an xwidget is an Emacs object, it is not trivial to do ;; some things that are taken for granted in a normal browser. ;; scrolling an anchor/named-element into view is one such thing. @@ -371,11 +373,10 @@ Argument ELEMENT-NAME is the element name to display in the webkit xwidget." (set-window-vscroll (selected-window) y t))) (defun xwidget-webkit-show-id-element (xw element-id) - "Make id-element show. for instance an anchor. -Argument XW is the webkit xwidget. -Argument ELEMENT-ID is the id of the element to show." + "Make webkit xwidget XW show an id-element ELEMENT-ID. +For example, use this to display an anchor." (interactive (list (xwidget-webkit-current-session) - (read-string "element id:"))) + (read-string "Element id: "))) (let ((y (string-to-number (xwidget-webkit-execute-script-rv xw @@ -387,11 +388,10 @@ Argument ELEMENT-ID is the id of the element to show." (set-window-vscroll (selected-window) y t))) (defun xwidget-webkit-show-id-or-named-element (xw element-id) - "Make id-element show. for instance an anchor. -Argument XW is the webkit xwidget. -Argument ELEMENT-ID is either a name or an element id." + "Make webkit xwidget XW show a name or element id ELEMENT-ID. +For example, use this to display an anchor." (interactive (list (xwidget-webkit-current-session) - (read-string "element id:"))) + (read-string "Name or element id: "))) (let* ((y1 (string-to-number (xwidget-webkit-execute-script-rv xw @@ -422,8 +422,7 @@ Argument ELEMENT-ID is either a name or an element id." ;; It errors out if the buffer isn't visible, but then we don't get ;; the glitch, so silence errors. (ignore-errors - (recenter-top-bottom)) - ) + (recenter-top-bottom))) (defun xwidget-webkit-adjust-size-to-window () "Adjust webkit to window." @@ -432,9 +431,7 @@ Argument ELEMENT-ID is either a name or an element id." (window-pixel-height))) (defun xwidget-webkit-adjust-size (w h) - "Manually set webkit size. -Argument W width. -Argument H height." + "Manually set webkit size to width W, height H." ;; TODO shouldn't be tied to the webkit xwidget (interactive "nWidth:\nnHeight:\n") (xwidget-resize (xwidget-webkit-current-session) w h)) @@ -468,7 +465,7 @@ Argument H height." (xwidget-webkit-new-session url))) (defun xwidget-webkit-back () - "Back in history." + "Go back in history." (interactive) (xwidget-webkit-execute-script (xwidget-webkit-current-session) "history.go(-1);")) @@ -480,7 +477,7 @@ Argument H height." "history.go(0);")) (defun xwidget-webkit-current-url () - "Get the webkit url. place it on kill ring." + "Get the webkit url and place it on the kill-ring." (interactive) (let* ((rv (xwidget-webkit-execute-script-rv (xwidget-webkit-current-session) "document.URL")) @@ -489,7 +486,7 @@ Argument H height." url)) (defun xwidget-webkit-execute-script-rv (xw script &optional default) - "Same as 'xwidget-webkit-execute-script' but but with return value. + "Same as `xwidget-webkit-execute-script' but with return value. XW is the webkit instance. SCRIPT is the script to execute. DEFAULT is the default return value." ;; Notice the ugly "title" hack. It is needed because the Webkit @@ -518,7 +515,7 @@ DEFAULT is the default return value." "window.getSelection().toString();")) (defun xwidget-webkit-copy-selection-as-kill () - "Get the webkit selection and put it on the kill ring." + "Get the webkit selection and put it on the kill-ring." (interactive) (kill-new (xwidget-webkit-get-selection))) @@ -527,13 +524,15 @@ DEFAULT is the default return value." ;; Xwidget plist management (similar to the process plist functions) (defun xwidget-get (xwidget propname) - "Return the value of XWIDGET' PROPNAME property. -This is the last value stored with `(xwidget-put XWIDGET PROPNAME VALUE)'." + "Get an xwidget's property value. +XWIDGET is an xwidget, PROPNAME a property. +Returns the last value stored with `xwidget-put'." (plist-get (xwidget-plist xwidget) propname)) (defun xwidget-put (xwidget propname value) - "Change XWIDGET' PROPNAME property to VALUE. -It can be retrieved with `(xwidget-get XWIDGET PROPNAME)'." + "Set an xwidget's property value. +XWIDGET is an xwidget, PROPNAME a property to be set to specified VALUE. +You can retrieve the value with `xwidget-get'." (set-xwidget-plist xwidget (plist-put (xwidget-plist xwidget) propname value))) commit 3214a8b8d7d6efc15add4f80e4e2a0fdd6b71268 Author: Mark Oteiza Date: Mon Jan 25 17:45:27 2016 -0500 ; * lisp/net/nsm.el: Fix typo. diff --git a/lisp/net/nsm.el b/lisp/net/nsm.el index ebdeecc..ee8b55b 100644 --- a/lisp/net/nsm.el +++ b/lisp/net/nsm.el @@ -87,7 +87,7 @@ against previous connections. If the function determines that there is something odd about the connection, the user will be queried about what to do about it. -The process it returned if everything is OK, and otherwise, the +The process is returned if everything is OK, and otherwise, the process will be deleted and nil is returned. If SAVE-FINGERPRINT, always save the fingerprint of the commit b579f36be21606c1ace8b10a4ef25144addc3dbd Author: Ted Zlatanov Date: Mon Jan 25 22:07:40 2016 +0000 * lisp/gnus/gnus-art.el (gnus-blocked-images): Add explicit nil choice and tags. diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 11ce04f..54bbfd8 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -1659,7 +1659,9 @@ called with the group name as the parameter, and should return a regexp." :version "24.1" :group 'gnus-art - :type '(choice regexp function)) + :type '(choice (const :tag "Allow all" nil) + (regexp :tag "Regular expression") + (function :tag "Use a function"))) ;;; Internal variables commit 5b0bab034902d0fdabbc02b9d644e37082bc4632 Author: Glenn Morris Date: Mon Jan 25 08:49:09 2016 -0800 ; * lisp/net/browse-url.el: Fix obvious typos in recent. diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index edf91ab..1a666e0 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -148,7 +148,7 @@ regexp should probably be \".\" to specify a default browser." (function-item :tag "eww" :value eww-browse-url) (function-item :tag "Mozilla" :value browse-url-mozilla) (function-item :tag "Firefox" :value browse-url-firefox) - (function-item :tag "Google Chrome" :value browse-url-chrome) + (function-item :tag "Google Chrome" :value browse-url-chrome) (function-item :tag "Chromium" :value browse-url-chromium) (function-item :tag "Epiphany" :value browse-url-epiphany) (function-item :tag "Conkeror" :value browse-url-conkeror) @@ -266,15 +266,15 @@ Defaults to the value of `browse-url-firefox-arguments' at the time (while (and candidates (not (executable-find (car candidates)))) (setq candidates (cdr candidates))) (or (car candidates) "chromium")) - "The name by which to invoke Chromium." + "The name by which to invoke the Chrome browser." :type 'string - :version "24.1" + :version "25.1" :group 'browse-url) (defcustom browse-url-chrome-arguments nil "A list of strings to pass to Google Chrome as arguments." :type '(repeat (string :tag "Argument")) - :version "24.1" + :version "25.1" :group 'browse-url) (defcustom browse-url-chromium-program commit a528a60f48f6b939c5014c96d3445de13d2ed243 Author: Paul Eggert Date: Mon Jan 25 08:08:24 2016 -0800 Spelling fixes diff --git a/doc/emacs/anti.texi b/doc/emacs/anti.texi index ae13ae0..ece4d94 100644 --- a/doc/emacs/anti.texi +++ b/doc/emacs/anti.texi @@ -197,7 +197,7 @@ for removing the whole bidi support when downgrading to Emacs 23. @item Horizontal scroll bars are no longer supported. Enlarge your windows and frames instead, or use @code{truncate-lines} and the automatic -horizontal scrolling of text that Emacs had since time immemoriam. +horizontal scrolling of text that Emacs had since time immemorial. @item Emacs is again counting the height of a frame's menu and its tool bar diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index fee4b0c..ca756e3 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -1579,7 +1579,7 @@ combination limit of @var{W4} (the parent window of @var{W6} and Alternatively, the problems sketched above can be avoided by always resizing all windows in the same combination whenever one of its windows -is split or deleted. This also permits spliting windows that would be +is split or deleted. This also permits splitting windows that would be otherwise too small for such an operation. @defopt window-combination-resize diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el index 549ee96..7be997e 100644 --- a/lisp/emacs-lisp/pcase.el +++ b/lisp/emacs-lisp/pcase.el @@ -117,7 +117,7 @@ two element list, binding its elements to symbols named `foo' and A significant difference from `cl-destructuring-bind' is that, if a pattern match fails, the next case is tried until either a -succesful match is found or there are no more cases. +successful match is found or there are no more cases. Another difference is that pattern elements may be backquoted, meaning they must match exactly: The pattern \\='(foo bar) diff --git a/lisp/org/ChangeLog.1 b/lisp/org/ChangeLog.1 index d81e44d..8c118ec 100644 --- a/lisp/org/ChangeLog.1 +++ b/lisp/org/ChangeLog.1 @@ -32528,7 +32528,7 @@ (org-export-normalize-links) (org-export-concatenate-multiline-links) (org-export-concatenate-multiline-emphasis): New functions, - obtained from spliting the export preprocessor. + obtained from splitting the export preprocessor. * org-table.el (org-table-recalculate): Improve error message if the row number is invalid. diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el index f33609c..ee81add 100644 --- a/lisp/progmodes/antlr-mode.el +++ b/lisp/progmodes/antlr-mode.el @@ -537,7 +537,7 @@ corresponding kind, i.e., looks like \(OPTION-DEF...). Each OPTION-DEF looks like \(OPTION-NAME EXTRA-FN VALUE-SPEC...) which defines a file/grammar/rule/subrule option with name OPTION-NAME. The OPTION-NAMEs are used for the creation of the \"Insert XXX Option\" -submenus, see `antlr-options-use-submenus', and to allow the insersion +submenus, see `antlr-options-use-submenus', and to allow the insertion of the option name with completion when using \\[antlr-insert-option]. If EXTRA-FN is a function, it is called at different phases of the diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 815bd72..b75d667 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -8284,8 +8284,8 @@ comment at the start of cc-engine.el for more info." before-lparen after-rparen (here (point)) (pp-count-out 20) ; Max number of paren/brace constructs before - ; we give up - ids ; List of identifiers in the parenthesised list. + ; we give up. + ids ; List of identifiers in the parenthesized list. id-start after-prec-token decl-or-cast decl-res c-last-identifier-range identifier-ok) (narrow-to-region low-lim (or macro-end (point-max))) @@ -8310,7 +8310,7 @@ comment at the start of cc-engine.el for more info." ;; { ;; ;; Additionally, for a knr list to be recognized: - ;; o - The identifier of each deeclarator up to and including the + ;; o - The identifier of each declarator up to and including the ;; one "near" point must be contained in the arg list. (catch 'knr diff --git a/lisp/xwidget.el b/lisp/xwidget.el index f184eb3..ebd79f2 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -491,7 +491,7 @@ Argument H height." (defun xwidget-webkit-execute-script-rv (xw script &optional default) "Same as 'xwidget-webkit-execute-script' but but with return value. XW is the webkit instance. SCRIPT is the script to execute. -DEFAULT is the defaultreturn value." +DEFAULT is the default return value." ;; Notice the ugly "title" hack. It is needed because the Webkit ;; API at the time of writing didn't support returning values. This ;; is a wrapper for the title hack so it's easy to remove should diff --git a/src/nsterm.m b/src/nsterm.m index 860c55d..19083ef 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -1170,7 +1170,7 @@ ns_clip_to_row (struct window *w, struct glyph_row *row, // GNUstep doesn't provide named images. This was reported in // 2011, see https://savannah.gnu.org/bugs/?33396 // - // As a drop in replacment, a semi tranparent gray square is used. + // As a drop in replacement, a semitransparent gray square is used. self.image = [[NSImage alloc] initWithSize:NSMakeSize(32, 32)]; [self.image lockFocus]; [[NSColor colorForEmacsRed:0.5 green:0.5 blue:0.5 alpha:0.5] set]; diff --git a/src/xwidget.c b/src/xwidget.c index 91a92c0..9450bdf 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -393,7 +393,7 @@ webkit_mime_type_policy_typedecision_requested_cb { /* This function makes webkit send a download signal for all unknown mime types. TODO: Defer the decision to Lisp, so that it's - possible to make Emacs handle teext mime for instance.xs. */ + possible to make Emacs handle mime text for instance. */ if (!webkit_web_view_can_show_mime_type (webView, mimetype)) { webkit_web_policy_decision_download (policy_decision); @@ -594,7 +594,7 @@ x_draw_xwidget_glyph_string (struct glyph_string *s) WINDOW_BOTTOM_EDGE_Y (s->w) - WINDOW_MODE_LINE_HEIGHT (s->w) - y); clip_top = max (0, WINDOW_TOP_EDGE_Y (s->w) - y); - /* We are conserned with movement of the onscreen area. The area + /* We are concerned with movement of the onscreen area. The area might sit still when the widget actually moves. This happens when an Emacs window border moves across a widget window. So, if any corner of the outer widget clipping window moves, that counts @@ -615,7 +615,7 @@ x_draw_xwidget_glyph_string (struct glyph_string *s) /* Clip the widget window if some parts happen to be outside drawable area. An Emacs window is not a gtk window. A gtk window covers the entire frame. Clipping might have changed even if we - havent actualy moved, we try figure out when we need to reclip + haven't actually moved; try to figure out when we need to reclip for real. */ if (xv->clip_right != clip_right || xv->clip_bottom != clip_bottom @@ -1132,7 +1132,7 @@ xwidget_end_redisplay (struct window *w, struct glyph_matrix *matrix) not in the desired matrix. This only takes care of xwidgets in active windows. If a window - goes away from screen xwidget views wust be deleted. + goes away from the screen, xwidget views must be deleted. dump_glyph_matrix (matrix, 2); */ for (i = 0; i < matrix->nrows; ++i) commit 21beb19d80b6aba2c2b736b3e1d031f1ef0e743d Author: Stefan Monnier Date: Mon Jan 25 09:28:37 2016 -0500 (font-lock-ensure-function): Fix bug#22399 * lisp/font-lock.el (font-lock-ensure-function): Fix handling when font-lock-mode is not enabled (bug#22399). diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 3c1f01d..6f94f35 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1074,7 +1074,13 @@ accessible portion of the current buffer." (defvar font-lock-ensure-function (lambda (_beg _end) - (unless font-lock-fontified (font-lock-default-fontify-buffer))) + (unless font-lock-fontified + (font-lock-default-fontify-buffer) + (unless font-lock-mode + ;; If font-lock is not enabled, we don't have the hooks in place to + ;; track modifications, so a subsequent call to font-lock-ensure can't + ;; assume that the fontification is still valid. + (setq font-lock-fontified nil)))) "Function to make sure a region has been fontified. Called with two arguments BEG and END.") commit ec90220ac1bd81437654d07b769819e1dcd24de5 Author: Alan Mackenzie Date: Mon Jan 25 12:35:15 2016 +0000 Expunge "allow" + infinitive from source and doc, part 2. Do the same for "permit", "enable", "prevent", and (where appropriate) "require". doc/misc/reftex.texi: doc/misc/url.texi: lib/get-permissions.c: lib/strftime.c: lisp/org/org-element.el: lisp/org/org-mobile.el: lisp/textmodes/reftex-vars.el: src/bidi.c: src/emacs.c: src/xdisp.c: test/etags/c-src/emacs/src/lisp.h: Expunge the likes of "This allows to do something" from the above files. diff --git a/doc/misc/reftex.texi b/doc/misc/reftex.texi index dccb2f2..ff7011c 100644 --- a/doc/misc/reftex.texi +++ b/doc/misc/reftex.texi @@ -5213,7 +5213,7 @@ mouse @r{Highlighting is mouse driven.} both @r{Both cursor and mouse trigger highlighting.} @end example -Changing this variable requires to rebuild the selection and *toc* +Changing this variable requires rebuilding the selection and *toc* buffers to become effective (keys @kbd{g} or @kbd{r}). @end defopt diff --git a/doc/misc/url.texi b/doc/misc/url.texi index acdad6b..c468599 100644 --- a/doc/misc/url.texi +++ b/doc/misc/url.texi @@ -423,7 +423,7 @@ the directory specified by @code{url-configuration-directory}. @end defopt @defopt url-cookie-confirmation -Specifies whether confirmation is require to accept cookies. +Specifies whether confirmation is required to accept cookies. @end defopt @defopt url-cookie-multiple-line diff --git a/lib/get-permissions.c b/lib/get-permissions.c index 8c70df1..bf40dad 100644 --- a/lib/get-permissions.c +++ b/lib/get-permissions.c @@ -102,7 +102,7 @@ get_permissions (const char *name, int desc, mode_t mode, There is an API pathconf (name, _PC_ACL_ENABLED) fpathconf (desc, _PC_ACL_ENABLED) - that allows to determine which of the two kinds of ACLs is supported + that allows us to determine which of the two kinds of ACLs is supported for the given file. But some file systems may implement this call incorrectly, so better not use it. When fetching the source ACL, we simply fetch both ACL types. diff --git a/lib/strftime.c b/lib/strftime.c index 10d3eb4..4e65190 100644 --- a/lib/strftime.c +++ b/lib/strftime.c @@ -641,7 +641,7 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s, break; } - /* As a GNU extension we allow to specify the field width. */ + /* As a GNU extension we allow the field width to be specified. */ if (ISDIGIT (*f)) { width = 0; diff --git a/lisp/org/org-element.el b/lisp/org/org-element.el index 91b1b00..a19f52c 100644 --- a/lisp/org/org-element.el +++ b/lisp/org/org-element.el @@ -487,7 +487,7 @@ Return parent element." ;; cannot contain other greater elements of their own type. ;; ;; Beside implementing a parser and an interpreter, adding a new -;; greater element requires to tweak `org-element--current-element'. +;; greater element requires tweaking `org-element--current-element'. ;; Moreover, the newly defined type must be added to both ;; `org-element-all-elements' and `org-element-greater-elements'. diff --git a/lisp/org/org-mobile.el b/lisp/org/org-mobile.el index b11f444..f535390 100644 --- a/lisp/org/org-mobile.el +++ b/lisp/org/org-mobile.el @@ -88,7 +88,7 @@ org-agenda-text-search-extra-files Encryption uses AES-256, with a password given in `org-mobile-encryption-password'. When nil, plain files are kept on the server. -Turning on encryption requires to set the same password in the MobileOrg +Turning on encryption requires setting the same password in the MobileOrg application. Before turning this on, check of MobileOrg does already support it - at the time of this writing it did not yet." :group 'org-mobile diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el index c725d9f..d1a6b87 100644 --- a/lisp/textmodes/reftex-vars.el +++ b/lisp/textmodes/reftex-vars.el @@ -1905,7 +1905,7 @@ instead or as well. The variable may have one of these values: mouse Highlighting is mouse driven. both Both cursor and mouse trigger highlighting. -Changing this variable requires to rebuild the selection and *toc* buffers +Changing this variable requires rebuilding the selection and *toc* buffers to become effective (keys `g' or `r')." :group 'reftex-fontification-configurations :type '(choice diff --git a/src/bidi.c b/src/bidi.c index 7f5d16b..9b71454 100644 --- a/src/bidi.c +++ b/src/bidi.c @@ -3001,7 +3001,7 @@ bidi_resolve_neutral (struct bidi_it *bidi_it) { /* Arrrgh!! The UAX#9 algorithm is too deeply entrenched in the assumption of batch-style processing; see clauses W4, - W5, and especially N1, which require to look far forward + W5, and especially N1, which require looking far forward (as well as back) in the buffer/string. May the fleas of a thousand camels infest the armpits of those who design supposedly general-purpose algorithms by looking at their diff --git a/src/emacs.c b/src/emacs.c index 41113f8..89d8ca7 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -2188,7 +2188,7 @@ synchronize_locale (int category, Lisp_Object *plocale, Lisp_Object desired_loca { *plocale = desired_locale; #ifdef WINDOWSNT - /* Changing categories like LC_TIME usually requires to specify + /* Changing categories like LC_TIME usually requires specifying an encoding suitable for the new locale, but MS-Windows's 'setlocale' will only switch the encoding when LC_ALL is specified. So we ignore CATEGORY, use LC_ALL instead, and diff --git a/src/xdisp.c b/src/xdisp.c index 5185e77..78fddd6 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13139,7 +13139,7 @@ text_outside_line_unchanged_p (struct window *w, beginning of a paragraph, before the first strong directional character, can change the base direction of the paragraph (unless the buffer specifies a fixed paragraph direction), which will - require to redisplay the whole paragraph. It might be worthwhile + require redisplaying the whole paragraph. It might be worthwhile to find the paragraph limits and widen the range of redisplayed lines to that, but for now just give up this optimization. */ if (!NILP (BVAR (XBUFFER (w->contents), bidi_display_reordering)) @@ -18067,7 +18067,7 @@ try_window_id (struct window *w) beginning of a paragraph, before the first strong directional character, can change the base direction of the paragraph (unless the buffer specifies a fixed paragraph direction), which will - require to redisplay the whole paragraph. It might be worthwhile + require redisplaying the whole paragraph. It might be worthwhile to find the paragraph limits and widen the range of redisplayed lines to that, but for now just give up this optimization and redisplay from scratch. */ diff --git a/test/etags/c-src/emacs/src/lisp.h b/test/etags/c-src/emacs/src/lisp.h index 0fb068d..96c52c0 100644 --- a/test/etags/c-src/emacs/src/lisp.h +++ b/test/etags/c-src/emacs/src/lisp.h @@ -2005,7 +2005,7 @@ struct Lisp_Marker /* For markers that point somewhere, this is used to chain of all the markers in a given buffer. */ /* We could remove it and use an array in buffer_text instead. - That would also allow to preserve it ordered. */ + That would also allow us to preserve it ordered. */ struct Lisp_Marker *next; /* This is the char position where the marker points. */ ptrdiff_t charpos; commit ae555b6524c32b8a7d6a450dc24cf546a7533d37 Author: Artur Malabarba Date: Mon Jan 25 09:48:22 2016 +0000 * lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode): Redundant line `special-mode' is already read-only. diff --git a/lisp/emacs-lisp/tabulated-list.el b/lisp/emacs-lisp/tabulated-list.el index 68658d2..00b029d 100644 --- a/lisp/emacs-lisp/tabulated-list.el +++ b/lisp/emacs-lisp/tabulated-list.el @@ -571,7 +571,6 @@ data in an ewoc may instead specify a printer function (e.g., one that calls `ewoc-enter-last'), with `tabulated-list-print-entry' as the ewoc pretty-printer." (setq-local truncate-lines t) - (setq-local buffer-read-only t) (setq-local buffer-undo-list t) (setq-local revert-buffer-function #'tabulated-list-revert) (setq-local glyphless-char-display tabulated-list-glyphless-char-display) commit 3ef1d9aea96521c7aeb5795f09d0550722c450f4 Author: Artur Malabarba Date: Mon Jan 25 08:54:34 2016 +0000 * lisp/emacs-lisp/ert.el (ert--results-move): Change error to user-error diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el index f4be947..7a914da 100644 --- a/lisp/emacs-lisp/ert.el +++ b/lisp/emacs-lisp/ert.el @@ -2128,12 +2128,12 @@ To be used in the ERT results buffer." "Move point from NODE to the previous or next node. EWOC-FN specifies the direction and should be either `ewoc-prev' -or `ewoc-next'. If there are no more nodes in that direction, an -error is signaled with the message ERROR-MESSAGE." +or `ewoc-next'. If there are no more nodes in that direction, a +user-error is signaled with the message ERROR-MESSAGE." (cl-loop (setq node (funcall ewoc-fn ert--results-ewoc node)) (when (null node) - (error "%s" error-message)) + (user-error "%s" error-message)) (unless (ert--ewoc-entry-hidden-p (ewoc-data node)) (goto-char (ewoc-location node)) (cl-return)))) commit 6475f9265ecf21a8d49bc3ac0dc66010c9ec6b05 Author: Paul Eggert Date: Sun Jan 24 17:27:52 2016 -0800 Port "$@" to OpenIndiana ksh93 In http://lists.gnu.org/archive/html/bug-autoconf/2015-12/msg00000.html Pavel Raiskup reports that ${1+"$@"} runs afoul of a bug in /bin/sh (derived from ksh 93t+ 2010-03-05). ${1+"$@"} works around an ancient bug in long-dead shells, so remove the workaround. * admin/check-doc-strings, configure.ac, lib-src/rcs2log: Use plain "$@" rather than ${1+"$@"}. diff --git a/admin/check-doc-strings b/admin/check-doc-strings index 13e8b0c..63856d3 100755 --- a/admin/check-doc-strings +++ b/admin/check-doc-strings @@ -1,5 +1,5 @@ : #-*- Perl -*- -eval 'exec perl -S $0 ${1+"$@"}' # Portability kludge +eval 'exec perl -S $0 "$@"' # Portability kludge if 0; # Author: Martin Buchholz @@ -299,4 +299,3 @@ foreach my $fun (sort keys %texi_funtype) { print "nuke-this-doc: $fun $texi_funtype{$fun}\n"; } } - diff --git a/configure.ac b/configure.ac index 76193fa..7a3d4d9 100644 --- a/configure.ac +++ b/configure.ac @@ -33,7 +33,7 @@ emacs_config_options= optsep= dnl This is the documented way to record the args passed to configure, dnl rather than $ac_configure_args. -for opt in ${1+"$@"} CFLAGS CPPFLAGS LDFLAGS; do +for opt in "$@" CFLAGS CPPFLAGS LDFLAGS; do case $opt in -n | --no-create | --no-recursion) continue ;; diff --git a/lib-src/rcs2log b/lib-src/rcs2log index 73213c5..ff4d470 100755 --- a/lib-src/rcs2log +++ b/lib-src/rcs2log @@ -403,8 +403,8 @@ case $rlogfile in esac case $datearg in - ?*) $rlog $rlog_options "$datearg" ${1+"$@"} >$rlogfile;; - '') $rlog $rlog_options ${1+"$@"} >$rlogfile;; + ?*) $rlog $rlog_options "$datearg" "$@" >$rlogfile;; + '') $rlog $rlog_options "$@" >$rlogfile;; esac || exit;; esac commit 2f505ff7928a513ad7f30b9b7074e0d6d1436378 Author: Paul Eggert Date: Sun Jan 24 17:24:51 2016 -0800 * src/xwidget.c (Fxwidget_set_adjustment): Fix doc string quoting typo. diff --git a/src/xwidget.c b/src/xwidget.c index be3e4ca..91a92c0 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -753,7 +753,7 @@ DEFUN ("xwidget-resize", Fxwidget_resize, Sxwidget_resize, 3, 3, 0, DEFUN ("xwidget-set-adjustment", Fxwidget_set_adjustment, Sxwidget_set_adjustment, 4, 4, 0, doc: /* Set native scrolling for XWIDGET. -AXIS can be 'vertical or 'horizontal. +AXIS can be `vertical' or `horizontal'. If RELATIVE is t, scroll relative, otherwise absolutely. VALUE is the amount to scroll, either relatively or absolutely. */) (Lisp_Object xwidget, Lisp_Object axis, Lisp_Object relative, commit 075a747478724c19e72c42742affda1a3349b5db Author: Paul Eggert Date: Sun Jan 24 16:09:15 2016 -0800 Improve wording for SMB support * doc/misc/tramp.texi (External methods): Improve and modernize wording for discussion of smbclient. There is no longer any need to mention the laundry list of old MS Windows implementations of SMB and CIFS, nor to mention CIFS. Also, give a URL for Samba. diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 14cd7fc..7bf2e53 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -851,11 +851,9 @@ This method works only for unified file names, see @ref{Issues}. @cindex method smb @cindex smb method -This is another non-native @value{tramp} method. @command{smbclient} -connects to any server supporting the SMB/CIFS protocol, such as MS Windows and -Samba running on GNU/Linux. Tests show this @value{tramp} method -works with MS Windows NT, MS Windows 2000, MS Windows XP, MS Windows -Vista, and MS Windows 7. +This non-native @value{tramp} method connects via the Server Message +Block (SMB) networking protocol to hosts running file servers that are +typically based on @url{https://www.samba.org/,,Samba} or MS Windows. Using @command{smbclient} requires a few tweaks when working with @value{tramp}: @@ -863,7 +861,7 @@ Using @command{smbclient} requires a few tweaks when working with The first directory in the localname must be a share name on the remote host. -Since smb shares end in the @code{$} character, @value{tramp} must use +Since SMB shares end in the @code{$} character, @value{tramp} must use @code{$$} when specifying those shares to avoid environment variable substitutions. @@ -907,7 +905,7 @@ uses the anonymous user (without prompting for password). This behavior is unlike other @value{tramp} methods, where local user name is substituted. -@option{smb} method is unavailable if @value{emacsname} is run under a +The @option{smb} method is unavailable if @value{emacsname} is run under a local user authentication context in MS Windows. However such users can still access remote files using UNC file names instead of @value{tramp}: commit 1698036a43d9e2c55ead6216ea7156df8615da47 Author: Paul Eggert Date: Sun Jan 24 14:50:47 2016 -0800 Merge from gnulib This incorporates: 2016-01-24 openat_proc_name: fix last '/' overwritten on OS/2 kLIBC 2016-01-24 closedir, dirfd, opendir: port to OpenSolaris 5.10 2016-01-15 detect utimes() correctly on OS/2 kLIBC 2016-01-15 openat_proc_name: port to OS/2 kLIBC 2016-01-14 stdint: check _INTPTR_T_DECLARED for intptr_t etc. 2016-01-14 opendir, closedir, dirfd, fdopendir: port to OS/2 kLIBC 2016-01-14 dup, dup2, fcntl: support a directory fd on OS/2 kLIBC 2016-01-14 binary-io: don't put fd in binary mode if a console on EMX 2016-01-14 sig2str: list all signals on FreeBSD >= 7 2016-01-13 acl-permissions: port to USE_ACL==0 platforms 2016-01-12 mktime: rename macro to avoid glibc clash 2016-01-12 Port "$@" to OpenIndiana ksh93 2016-01-12 Port Universal Time settings to strict POSIX * build-aux/gitlog-to-changelog, build-aux/update-copyright: * doc/misc/texinfo.tex, lib/acl-internal.c, lib/acl-internal.h: * lib/binary-io.h, lib/dirent.in.h, lib/dirfd.c, lib/dup2.c: * lib/fcntl.c, lib/fdopendir.c, lib/mktime.c, lib/openat-proc.c: * lib/sig2str.h, lib/stdint.in.h, m4/dirfd.m4, m4/dup2.m4: * m4/fcntl.m4, m4/utimes.m4: Copy from gnulib. * m4/gnulib-comp.m4: Regenerate. diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog index a426504..a2513d0 100755 --- a/build-aux/gitlog-to-changelog +++ b/build-aux/gitlog-to-changelog @@ -1,9 +1,9 @@ -eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}' +eval '(exit $?0)' && eval 'exec perl -wS "$0" "$@"' & eval 'exec perl -wS "$0" $argv:q' if 0; # Convert git log output to ChangeLog format. -my $VERSION = '2016-01-11 22:04'; # UTC +my $VERSION = '2016-01-12 23:09'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook diff --git a/build-aux/update-copyright b/build-aux/update-copyright index 8c6ee1f..17ee6b1 100755 --- a/build-aux/update-copyright +++ b/build-aux/update-copyright @@ -1,9 +1,9 @@ -eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" ${1+"$@"}' +eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" "$@"' & eval 'exec perl -wS -0777 -pi "$0" $argv:q' if 0; # Update an FSF copyright year list to include the current year. -my $VERSION = '2016-01-11.22:04'; # UTC +my $VERSION = '2016-01-12.23:13'; # UTC # Copyright (C) 2009-2016 Free Software Foundation, Inc. # diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex index 936c32d..8b3c949 100644 --- a/doc/misc/texinfo.tex +++ b/doc/misc/texinfo.tex @@ -3,7 +3,7 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2016-01-11.19} +\def\texinfoversion{2016-01-20.20} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, @@ -4737,11 +4737,10 @@ end \def\_{\normalunderscore}% \def\-{}% @- shouldn't affect sorting % - \def\lbracechar{{\indexlbrace}}% - \def\rbracechar{{\indexrbrace}}% - \let\{=\lbracechar - \let\}=\rbracechar - % + \uccode`\1=`\{ \uppercase{\def\{{1}}% + \uccode`\1=`\} \uppercase{\def\}{1}}% + \let\lbracechar\{ + \let\rbracechar\} % % Non-English letters. \def\AA{AA}% @@ -4901,9 +4900,15 @@ end \indexdummies % Must do this here, since \bf, etc expand at this stage \useindexbackslash % \indexbackslash isn't defined now so it will be output % as is; and it will print as backslash. + % The braces around \indexbrace are recognized by texindex. + % % Get the string to sort by, by processing the index entry with all % font commands turned off. {\indexnofonts + \def\lbracechar{{\indexlbrace}}% + \def\rbracechar{{\indexrbrace}}% + \let\{=\lbracechar + \let\}=\rbracechar \indexnonalnumdisappear \xdef\indexsortkey{}% \let\sortas=\indexwritesortas @@ -8526,10 +8531,6 @@ end }% \setcolor{\linkcolor}% \fi - % - % Float references are printed completely differently: "Figure 1.2" - % instead of "[somenode], p.3". We distinguish them by the - % LABEL-title being set to a magic string. {% % Have to otherify everything special to allow the \csname to % include an _ in the xref name, etc. @@ -8538,6 +8539,10 @@ end \expandafter\global\expandafter\let\expandafter\Xthisreftitle \csname XR#1-title\endcsname }% + % + % Float references are printed completely differently: "Figure 1.2" + % instead of "[somenode], p.3". \iffloat distinguishes them by + % \Xthisreftitle being set to a magic string. \iffloat\Xthisreftitle % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". diff --git a/lib/acl-internal.c b/lib/acl-internal.c index 569e2f9..4de60c3 100644 --- a/lib/acl-internal.c +++ b/lib/acl-internal.c @@ -478,7 +478,7 @@ acl_nontrivial (int count, struct acl *entries) void free_permission_context (struct permission_context *ctx) { -#ifdef USE_ACL +#if USE_ACL # if HAVE_ACL_GET_FILE /* Linux, FreeBSD, Mac OS X, IRIX, Tru64 */ if (ctx->acl) acl_free (ctx->acl); diff --git a/lib/acl-internal.h b/lib/acl-internal.h index 526e9f0..636273e 100644 --- a/lib/acl-internal.h +++ b/lib/acl-internal.h @@ -255,7 +255,7 @@ extern int acl_nontrivial (int count, struct acl *entries); struct permission_context { mode_t mode; -#ifdef USE_ACL +#if USE_ACL # if HAVE_ACL_GET_FILE /* Linux, FreeBSD, Mac OS X, IRIX, Tru64 */ acl_t acl; # if !HAVE_ACL_TYPE_EXTENDED diff --git a/lib/binary-io.h b/lib/binary-io.h index d5c8233..9f17c0d 100644 --- a/lib/binary-io.h +++ b/lib/binary-io.h @@ -60,7 +60,7 @@ set_binary_mode (int fd, int mode) /* SET_BINARY (fd); changes the file descriptor fd to perform binary I/O. */ -#ifdef __DJGPP__ +#if defined __DJGPP__ || defined __EMX__ # include /* declares isatty() */ /* Avoid putting stdin/stdout in binary mode if it is connected to the console, because that would make it impossible for the user diff --git a/lib/dirent.in.h b/lib/dirent.in.h index 4c62737..65482d7 100644 --- a/lib/dirent.in.h +++ b/lib/dirent.in.h @@ -158,6 +158,13 @@ _GL_WARN_ON_USE (closedir, "closedir is not portable - " # endif _GL_FUNCDECL_RPL (dirfd, int, (DIR *) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (dirfd, int, (DIR *)); + +# ifdef __KLIBC__ +/* Gnulib internal hooks needed to maintain the dirfd metadata. */ +_GL_EXTERN_C int _gl_register_dirp_fd (int fd, DIR *dirp) + _GL_ARG_NONNULL ((2)); +_GL_EXTERN_C void _gl_unregister_dirp_fd (int fd); +# endif # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined dirfd /* dirfd is defined as a macro and not as a function. diff --git a/lib/dirfd.c b/lib/dirfd.c index 1ea2a63..a325848 100644 --- a/lib/dirfd.c +++ b/lib/dirfd.c @@ -22,11 +22,77 @@ #include #include +#ifdef __KLIBC__ +# include +# include + +static struct dirp_fd_list +{ + DIR *dirp; + int fd; + struct dirp_fd_list *next; +} *dirp_fd_start = NULL; + +/* Register fd associated with dirp to dirp_fd_list. */ +int +_gl_register_dirp_fd (int fd, DIR *dirp) +{ + struct dirp_fd_list *new_dirp_fd = malloc (sizeof *new_dirp_fd); + if (!new_dirp_fd) + return -1; + + new_dirp_fd->dirp = dirp; + new_dirp_fd->fd = fd; + new_dirp_fd->next = dirp_fd_start; + + dirp_fd_start = new_dirp_fd; + + return 0; +} + +/* Unregister fd from dirp_fd_list with closing it */ +void +_gl_unregister_dirp_fd (int fd) +{ + struct dirp_fd_list *dirp_fd; + struct dirp_fd_list *dirp_fd_prev; + + for (dirp_fd_prev = NULL, dirp_fd = dirp_fd_start; dirp_fd; + dirp_fd_prev = dirp_fd, dirp_fd = dirp_fd->next) + { + if (dirp_fd->fd == fd) + { + if (dirp_fd_prev) + dirp_fd_prev->next = dirp_fd->next; + else /* dirp_fd == dirp_fd_start */ + dirp_fd_start = dirp_fd_start->next; + + close (fd); + free (dirp_fd); + break; + } + } +} +#endif + int dirfd (DIR *dir_p) { int fd = DIR_TO_FD (dir_p); if (fd == -1) +#ifndef __KLIBC__ errno = ENOTSUP; +#else + { + struct dirp_fd_list *dirp_fd; + + for (dirp_fd = dirp_fd_start; dirp_fd; dirp_fd = dirp_fd->next) + if (dirp_fd->dirp == dir_p) + return dirp_fd->fd; + + errno = EINVAL; + } +#endif + return fd; } diff --git a/lib/dup2.c b/lib/dup2.c index c913f47..5d026f2 100644 --- a/lib/dup2.c +++ b/lib/dup2.c @@ -85,6 +85,57 @@ ms_windows_dup2 (int fd, int desired_fd) # define dup2 ms_windows_dup2 +# elif defined __KLIBC__ + +# include + +static int +klibc_dup2dirfd (int fd, int desired_fd) +{ + int tempfd; + int dupfd; + + tempfd = open ("NUL", O_RDONLY); + if (tempfd == -1) + return -1; + + if (tempfd == desired_fd) + { + close (tempfd); + + char path[_MAX_PATH]; + if (__libc_Back_ioFHToPath (fd, path, sizeof (path))) + return -1; + + return open(path, O_RDONLY); + } + + dupfd = klibc_dup2dirfd (fd, desired_fd); + + close (tempfd); + + return dupfd; +} + +static int +klibc_dup2 (int fd, int desired_fd) +{ + int dupfd; + struct stat sbuf; + + dupfd = dup2 (fd, desired_fd); + if (dupfd == -1 && errno == ENOTSUP \ + && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) + { + close (desired_fd); + + return klibc_dup2dirfd (fd, desired_fd); + } + + return dupfd; +} + +# define dup2 klibc_dup2 # endif int diff --git a/lib/fcntl.c b/lib/fcntl.c index 1ccc5ac..fd17e96 100644 --- a/lib/fcntl.c +++ b/lib/fcntl.c @@ -162,6 +162,93 @@ dupfd (int oldfd, int newfd, int flags) } #endif /* W32 */ +#ifdef __KLIBC__ + +# define INCL_DOS +# include + +static int +klibc_fcntl (int fd, int action, /* arg */...) +{ + va_list arg_ptr; + int arg; + struct stat sbuf; + int result = -1; + + va_start (arg_ptr, action); + arg = va_arg (arg_ptr, int); + result = fcntl (fd, action, arg); + /* EPERM for F_DUPFD, ENOTSUP for others */ + if (result == -1 && (errno == EPERM || errno == ENOTSUP) + && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) + { + ULONG ulMode; + + switch (action) + { + case F_DUPFD: + /* Find available fd */ + while (fcntl (arg, F_GETFL) != -1 || errno != EBADF) + arg++; + + result = dup2 (fd, arg); + break; + + /* Using underlying APIs is right ? */ + case F_GETFD: + if (DosQueryFHState (fd, &ulMode)) + break; + + result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0; + break; + + case F_SETFD: + if (arg & ~FD_CLOEXEC) + break; + + if (DosQueryFHState (fd, &ulMode)) + break; + + if (arg & FD_CLOEXEC) + ulMode |= OPEN_FLAGS_NOINHERIT; + else + ulMode &= ~OPEN_FLAGS_NOINHERIT; + + /* Filter supported flags. */ + ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR + | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT); + + if (DosSetFHState (fd, ulMode)) + break; + + result = 0; + break; + + case F_GETFL: + result = 0; + break; + + case F_SETFL: + if (arg != 0) + break; + + result = 0; + break; + + default : + errno = EINVAL; + break; + } + } + + va_end (arg_ptr); + + return result; +} + +# define fcntl klibc_fcntl +#endif + /* Perform the specified ACTION on the file descriptor FD, possibly using the argument ARG further described below. This replacement handles the following actions, and forwards all others on to the diff --git a/lib/fdopendir.c b/lib/fdopendir.c index f30ab24..c1f4dcb 100644 --- a/lib/fdopendir.c +++ b/lib/fdopendir.c @@ -62,6 +62,41 @@ static DIR *fd_clone_opendir (int, struct saved_cwd const *); If this function returns successfully, FD is under control of the dirent.h system, and the caller should not close or modify the state of FD other than by the dirent.h functions. */ +# ifdef __KLIBC__ +# include + +DIR * +fdopendir (int fd) +{ + char path[_MAX_PATH]; + DIR *dirp; + + /* Get a path from fd */ + if (__libc_Back_ioFHToPath (fd, path, sizeof (path))) + return NULL; + + dirp = opendir (path); + if (!dirp) + return NULL; + + /* Unregister fd registered by opendir() */ + _gl_unregister_dirp_fd (dirfd (dirp)); + + /* Register our fd */ + if (_gl_register_dirp_fd (fd, dirp)) + { + int saved_errno = errno; + + closedir (dirp); + + errno = saved_errno; + + dirp = NULL; + } + + return dirp; +} +# else DIR * fdopendir (int fd) { @@ -84,6 +119,7 @@ fdopendir (int fd) return dir; } +# endif /* Like fdopendir, except that if OLDER_DUPFD is not -1, it is known to be a dup of FD which is less than FD - 1 and which will be diff --git a/lib/mktime.c b/lib/mktime.c index adbf8d4..c9738d0 100644 --- a/lib/mktime.c +++ b/lib/mktime.c @@ -19,7 +19,7 @@ /* Define this to have a standalone program to test this implementation of mktime. */ -/* #define DEBUG 1 */ +/* #define DEBUG_MKTIME 1 */ #ifndef _LIBC # include @@ -38,13 +38,13 @@ #include /* For the real memcpy prototype. */ -#if defined DEBUG && DEBUG +#if defined DEBUG_MKTIME && DEBUG_MKTIME # include # include /* Make it work even if the system's libc has its own mktime routine. */ # undef mktime # define mktime my_mktime -#endif /* DEBUG */ +#endif /* DEBUG_MKTIME */ /* Some of the code in this file assumes that signed integer overflow silently wraps around. This assumption can't easily be programmed @@ -600,7 +600,7 @@ libc_hidden_def (mktime) libc_hidden_weak (timelocal) #endif -#if defined DEBUG && DEBUG +#if defined DEBUG_MKTIME && DEBUG_MKTIME static int not_equal_tm (const struct tm *a, const struct tm *b) @@ -732,10 +732,10 @@ main (int argc, char **argv) return status; } -#endif /* DEBUG */ +#endif /* DEBUG_MKTIME */ /* Local Variables: -compile-command: "gcc -DDEBUG -I. -Wall -W -O2 -g mktime.c -o mktime" +compile-command: "gcc -DDEBUG_MKTIME -I. -Wall -W -O2 -g mktime.c -o mktime" End: */ diff --git a/lib/openat-proc.c b/lib/openat-proc.c index 15a8c79..1712340 100644 --- a/lib/openat-proc.c +++ b/lib/openat-proc.c @@ -30,24 +30,21 @@ #include #include -#include "intprops.h" - -#define PROC_SELF_FD_FORMAT "/proc/self/fd/%d/%s" - -#define PROC_SELF_FD_NAME_SIZE_BOUND(len) \ - (sizeof PROC_SELF_FD_FORMAT - sizeof "%d%s" \ - + INT_STRLEN_BOUND (int) + (len) + 1) +#ifdef __KLIBC__ +# include +#endif +#include "intprops.h" -/* Set BUF to the expansion of PROC_SELF_FD_FORMAT, using FD and FILE - respectively for %d and %s. If successful, return BUF if the - result fits in BUF, dynamically allocated memory otherwise. But - return NULL if /proc is not reliable, either because the operating - system support is lacking or because memory is low. */ +/* Set BUF to the name of the subfile of the directory identified by + FD, where the subfile is named FILE. If successful, return BUF if + the result fits in BUF, dynamically allocated memory otherwise. + Return NULL (setting errno) on error. */ char * openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file) { - static int proc_status = 0; + char *result = buf; + int dirlen; /* Make sure the caller gets ENOENT when appropriate. */ if (!*file) @@ -56,47 +53,82 @@ openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file) return buf; } - if (! proc_status) - { - /* Set PROC_STATUS to a positive value if /proc/self/fd is - reliable, and a negative value otherwise. Solaris 10 - /proc/self/fd mishandles "..", and any file name might expand - to ".." after symbolic link expansion, so avoid /proc/self/fd - if it mishandles "..". Solaris 10 has openat, but this - problem is exhibited on code that built on Solaris 8 and - running on Solaris 10. */ - - int proc_self_fd = open ("/proc/self/fd", - O_SEARCH | O_DIRECTORY | O_NOCTTY | O_NONBLOCK); - if (proc_self_fd < 0) - proc_status = -1; - else - { - /* Detect whether /proc/self/fd/%i/../fd exists, where %i is the - number of a file descriptor open on /proc/self/fd. On Linux, - that name resolves to /proc/self/fd, which was opened above. - However, on Solaris, it may resolve to /proc/self/fd/fd, which - cannot exist, since all names in /proc/self/fd are numeric. */ - char dotdot_buf[PROC_SELF_FD_NAME_SIZE_BOUND (sizeof "../fd" - 1)]; - sprintf (dotdot_buf, PROC_SELF_FD_FORMAT, proc_self_fd, "../fd"); - proc_status = access (dotdot_buf, F_OK) ? -1 : 1; - close (proc_self_fd); - } - } - - if (proc_status < 0) - return NULL; - else - { - size_t bufsize = PROC_SELF_FD_NAME_SIZE_BOUND (strlen (file)); - char *result = buf; - if (OPENAT_BUFFER_SIZE < bufsize) - { - result = malloc (bufsize); - if (! result) - return NULL; - } - sprintf (result, PROC_SELF_FD_FORMAT, fd, file); - return result; - } +#ifndef __KLIBC__ +# define PROC_SELF_FD_FORMAT "/proc/self/fd/%d/" + { + enum { + PROC_SELF_FD_DIR_SIZE_BOUND + = (sizeof PROC_SELF_FD_FORMAT - (sizeof "%d" - 1) + + INT_STRLEN_BOUND (int)) + }; + + static int proc_status = 0; + if (! proc_status) + { + /* Set PROC_STATUS to a positive value if /proc/self/fd is + reliable, and a negative value otherwise. Solaris 10 + /proc/self/fd mishandles "..", and any file name might expand + to ".." after symbolic link expansion, so avoid /proc/self/fd + if it mishandles "..". Solaris 10 has openat, but this + problem is exhibited on code that built on Solaris 8 and + running on Solaris 10. */ + + int proc_self_fd = open ("/proc/self/fd", + O_SEARCH | O_DIRECTORY | O_NOCTTY | O_NONBLOCK); + if (proc_self_fd < 0) + proc_status = -1; + else + { + /* Detect whether /proc/self/fd/%i/../fd exists, where %i is the + number of a file descriptor open on /proc/self/fd. On Linux, + that name resolves to /proc/self/fd, which was opened above. + However, on Solaris, it may resolve to /proc/self/fd/fd, which + cannot exist, since all names in /proc/self/fd are numeric. */ + char dotdot_buf[PROC_SELF_FD_DIR_SIZE_BOUND + sizeof "../fd" - 1]; + sprintf (dotdot_buf, PROC_SELF_FD_FORMAT "../fd", proc_self_fd); + proc_status = access (dotdot_buf, F_OK) ? -1 : 1; + close (proc_self_fd); + } + } + + if (proc_status < 0) + return NULL; + else + { + size_t bufsize = PROC_SELF_FD_DIR_SIZE_BOUND + strlen (file); + if (OPENAT_BUFFER_SIZE < bufsize) + { + result = malloc (bufsize); + if (! result) + return NULL; + } + + dirlen = sprintf (result, PROC_SELF_FD_FORMAT, fd); + } + } +#else + /* OS/2 kLIBC provides a function to retrieve a path from a fd. */ + { + char dir[_MAX_PATH]; + size_t bufsize; + + if (__libc_Back_ioFHToPath (fd, dir, sizeof dir)) + return NULL; + + dirlen = strlen (dir); + bufsize = dirlen + 1 + strlen (file) + 1; /* 1 for '/', 1 for null */ + if (OPENAT_BUFFER_SIZE < bufsize) + { + result = malloc (bufsize); + if (! result) + return NULL; + } + + strcpy (result, dir); + result[dirlen++] = '/'; + } +#endif + + strcpy (result + dirlen, file); + return result; } diff --git a/lib/sig2str.h b/lib/sig2str.h index f347170..2730774 100644 --- a/lib/sig2str.h +++ b/lib/sig2str.h @@ -44,6 +44,8 @@ int str2sig (char const *, int *); #if defined _sys_nsig # define SIGNUM_BOUND (_sys_nsig - 1) +#elif defined _SIG_MAXSIG +# define SIGNUM_BOUND (_SIG_MAXSIG - 2) /* FreeBSD >= 7. */ #elif defined NSIG # define SIGNUM_BOUND (NSIG - 1) #else diff --git a/lib/stdint.in.h b/lib/stdint.in.h index d241391..0bb9ad4 100644 --- a/lib/stdint.in.h +++ b/lib/stdint.in.h @@ -288,12 +288,17 @@ typedef gl_uint_fast32_t gl_uint_fast16_t; /* 7.18.1.4. Integer types capable of holding object pointers */ +/* kLIBC's stdint.h defines _INTPTR_T_DECLARED and needs its own + definitions of intptr_t and uintptr_t (which use int and unsigned) + to avoid clashes with declarations of system functions like sbrk. */ +#ifndef _INTPTR_T_DECLARED #undef intptr_t #undef uintptr_t typedef long int gl_intptr_t; typedef unsigned long int gl_uintptr_t; #define intptr_t gl_intptr_t #define uintptr_t gl_uintptr_t +#endif /* 7.18.1.5. Greatest-width integer types */ diff --git a/m4/dirfd.m4 b/m4/dirfd.m4 index e9532e6..1d7cb08 100644 --- a/m4/dirfd.m4 +++ b/m4/dirfd.m4 @@ -1,4 +1,4 @@ -# serial 22 -*- Autoconf -*- +# serial 24 -*- Autoconf -*- dnl Find out how to get the file descriptor associated with an open DIR*. @@ -35,13 +35,15 @@ AC_DEFUN([gl_FUNC_DIRFD], gl_cv_func_dirfd_macro=yes, gl_cv_func_dirfd_macro=no)]) - # Use the replacement only if we have no function or macro with that name. - if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then - if test $ac_cv_have_decl_dirfd = yes; then - # If the system declares dirfd already, let's declare rpl_dirfd instead. + # Use the replacement if we have no function or macro with that name, + # or if OS/2 kLIBC whose dirfd() does not work. + # Replace only if the system declares dirfd already. + case $ac_cv_func_dirfd,$gl_cv_func_dirfd_macro,$host_os,$ac_cv_have_decl_dirfd in + no,no,*,yes | *,*,os2*,yes) REPLACE_DIRFD=1 - fi - fi + AC_DEFINE([REPLACE_DIRFD], [1], + [Define to 1 if gnulib's dirfd() replacement is used.]);; + esac ]) dnl Prerequisites of lib/dirfd.c. diff --git a/m4/dup2.m4 b/m4/dup2.m4 index 63d6d8e..5b68312 100644 --- a/m4/dup2.m4 +++ b/m4/dup2.m4 @@ -1,4 +1,4 @@ -#serial 24 +#serial 25 dnl Copyright (C) 2002, 2005, 2007, 2009-2016 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -62,6 +62,16 @@ AC_DEFUN([gl_FUNC_DUP2], result |= 32; dup2 (2, 255); dup2 (2, 256); + /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ + { + int fd = open (".", O_RDONLY); + if (fd == -1) + result |= 64; + else if (dup2 (fd, fd + 1) == -1) + result |= 128; + + close (fd); + } return result;]]) ], [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no], @@ -78,6 +88,8 @@ AC_DEFUN([gl_FUNC_DUP2], gl_cv_func_dup2_works="guessing no" ;; *-android*) # implemented using dup3(), which fails if oldfd == newfd gl_cv_func_dup2_works="guessing no" ;; + os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. + gl_cv_func_dup2_works="guessing no" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac]) ]) diff --git a/m4/fcntl.m4 b/m4/fcntl.m4 index 0037e5f..bb61470 100644 --- a/m4/fcntl.m4 +++ b/m4/fcntl.m4 @@ -1,4 +1,4 @@ -# fcntl.m4 serial 8 +# fcntl.m4 serial 9 dnl Copyright (C) 2009-2016 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -54,6 +54,17 @@ AC_DEFUN([gl_FUNC_FCNTL], if (errno != EINVAL) result |= 2; if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; if (errno != EINVAL) result |= 8; + /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ + { + int fd; + fd = open (".", O_RDONLY); + if (fd == -1) + result |= 16; + else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) + result |= 32; + + close (fd); + } return result;]])], [gl_cv_func_fcntl_f_dupfd_works=yes], [gl_cv_func_fcntl_f_dupfd_works=no], diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4 index 27ca70a..547af66 100644 --- a/m4/gnulib-comp.m4 +++ b/m4/gnulib-comp.m4 @@ -436,7 +436,8 @@ AC_DEFUN([gl_INIT], { if ! $gl_gnulib_enabled_dirfd; then gl_FUNC_DIRFD - if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then + if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no \ + || test $REPLACE_DIRFD = 1; then AC_LIBOBJ([dirfd]) gl_PREREQ_DIRFD fi diff --git a/m4/utimes.m4 b/m4/utimes.m4 index a016723..1876bec 100644 --- a/m4/utimes.m4 +++ b/m4/utimes.m4 @@ -1,5 +1,5 @@ # Detect some bugs in glibc's implementation of utimes. -# serial 3 +# serial 4 dnl Copyright (C) 2003-2005, 2009-2016 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation @@ -33,6 +33,7 @@ AC_DEFUN([gl_FUNC_UTIMES], #include #include #include +#include static int inorder (time_t a, time_t b, time_t c) @@ -45,7 +46,10 @@ main () { int result = 0; char const *file = "conftest.utimes"; - static struct timeval timeval[2] = {{9, 10}, {999999, 999999}}; + /* On OS/2, file timestamps must be on or after 1980 in local time, + with an even number of seconds. */ + static struct timeval timeval[2] = {{315620000 + 10, 10}, + {315620000 + 1000000, 999998}}; /* Test whether utimes() essentially works. */ { @@ -82,9 +86,19 @@ main () result |= 1; else if (fstat (fd, &st0) != 0) result |= 1; - else if (utimes (file, timeval) != 0) + else if (utimes (file, timeval) != 0 + && (errno != EACCES + /* OS/2 kLIBC utimes fails on opened files. */ + || close (fd) != 0 + || utimes (file, timeval) != 0 + || (fd = open (file, O_WRONLY)) < 0)) result |= 2; - else if (utimes (file, NULL) != 0) + else if (utimes (file, NULL) != 0 + && (errno != EACCES + /* OS/2 kLIBC utimes fails on opened files. */ + || close (fd) != 0 + || utimes (file, NULL) != 0 + || (fd = open (file, O_WRONLY)) < 0)) result |= 8; else if (fstat (fd, &st1) != 0) result |= 1; commit fbce4757a874cc43806eb41b8637538b101c3c69 Author: Alan Mackenzie Date: Sun Jan 24 20:30:39 2016 +0000 Expunge "allow" + infinitive without direct object from source and doc. Do the same for "permit", "enable", and "prevent". * doc/emacs/mule.texi: * doc/lispref/control.texi: * doc/lispref/display.texi: * doc/lispref/frames.texi: * doc/lispref/functions.texi: * doc/lispref/nonascii.texi: * doc/lispref/streams.texi: * doc/lispref/windows.texi: * doc/misc/dbus.texi: * doc/misc/eww.texi: * doc/misc/flymake.texi: * doc/misc/octave-mode.texi: * doc/misc/org.texi: * doc/misc/reftex.texi: * doc/misc/tramp.texi: * doc/misc/wisent.texi: * etc/NEWS: * lisp/autorevert.el: * lisp/cedet/mode-local.el: * lisp/cedet/semantic/senator.el: * lisp/cedet/semantic/wisent.el: * lisp/dos-fns.el: * lisp/frameset.el: * lisp/gnus/gnus-agent.el: * lisp/gnus/mm-util.el: * lisp/international/characters.el: * lisp/ldefs-boot.el: * lisp/mail/mailclient.el: * lisp/man.el: * lisp/mh-e/mh-search.el: * lisp/net/tramp-cmds.el: * lisp/net/tramp-gvfs.el: * lisp/org/org-crypt.el: * lisp/org/org-element.el: * lisp/org/org-feed.el: * lisp/org/org.el: * lisp/org/ox-ascii.el: * lisp/org/ox-icalendar.el: * lisp/org/ox-publish.el: * lisp/org/ox.el: * lisp/play/gamegrid.el: * lisp/play/gomoku.el: * lisp/progmodes/antlr-mode.el: * lisp/progmodes/python.el: * lisp/progmodes/vhdl-mode.el: * lisp/strokes.el: * lisp/textmodes/ispell.el: * lisp/tree-widget.el: * lisp/vc/pcvs.el: * lisp/window.el: * src/lisp.h: * src/w32.c: * src/w32heap.c: * src/w32term.c: * src/window.c: * src/xfaces.c: Replace solecisms like "This allow to do something" with a correct alternative, such as "This allow you to do something", "This allows something to be done" or "This allows the doing of something". diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index bcde81b..40206d9 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -1216,7 +1216,7 @@ using the internal Emacs representation. When Emacs runs on MS-Windows versions that are descendants of the NT family (Windows 2000, XP, Vista, Windows 7, and Windows 8), the value of @code{file-name-coding-system} is largely ignored, as Emacs -by default uses APIs that allow to pass Unicode file names directly. +by default uses APIs that allow passing Unicode file names directly. By contrast, on Windows 9X, file names are encoded using @code{file-name-coding-system}, which should be set to the codepage (@pxref{Coding Systems, codepage}) pertinent for the current system diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index df60347..6fa802d 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi @@ -302,8 +302,8 @@ predicate conditions that compare values of expressions against specific values known and written in advance. However, sometimes it is useful to select alternatives based on more general conditions that distinguish between broad classes of values. The @code{pcase} macro -allows to choose between alternatives based on matching the value of -an expression against a series of patterns. A pattern can be a +allows you to choose between alternatives based on matching the value +of an expression against a series of patterns. A pattern can be a literal value (comparison to literal values is what @code{cond} does), or it can be a more general description of the expected structure of the expression's value. @@ -350,7 +350,7 @@ when called with the value being matched as its argument. @var{predfun} can be one of the possible forms described below. @item (guard @var{boolean-expression}) Matches if @var{boolean-expression} evaluates to non-@code{nil}. This -allows to include in a UPattern boolean conditions that refer to +allows you to include in a UPattern boolean conditions that refer to symbols bound to values (including the value being matched) by previous UPatterns. Typically used inside an @code{and} UPattern, see below. For example, @w{@code{(and x (guard (< x 10)))}} is a pattern @@ -358,7 +358,7 @@ which matches any number smaller than 10 and let-binds the variable @code{x} to that number. @item (let @var{upattern} @var{expression}) Matches if the specified @var{expression} matches the specified -@var{upattern}. This allows to match a pattern against the value of +@var{upattern}. This allows matching a pattern against the value of an @emph{arbitrary} expression, not just the expression that is the first argument to @code{pcase}. (It is called @code{let} because @var{upattern} can bind symbols to values using the @var{symbol} @@ -407,7 +407,7 @@ Here's an illustrative example of using UPatterns: (code (message "Unknown return code %S" code))) @end example -The QPatterns are more powerful. They allow to match the value of the +The QPatterns are more powerful. They allow matching the value of the @var{expression} that is the first argument of @code{pcase} against specifications of its @emph{structure}. For example, you can specify that the value must be a list of 2 elements whose first element is a diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index d770599..eaba03d 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -4303,7 +4303,7 @@ divider ends above the bottom divider. Dividers can be dragged with the mouse and are therefore useful for adjusting the sizes of adjacent windows with the mouse. They also serve to visually set apart adjacent windows when no scroll bars or mode lines -are present. The following three faces allow to customize the +are present. The following three faces allow the customization of the appearance of dividers: @table @code diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index 614b7db..55d7242 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -2403,8 +2403,8 @@ The resulting mouse position is not constrained to the native frame of The return value is not significant. @end defun -On a graphical terminal the following two functions allow to retrieve -and set the absolute position of the mouse cursor. +On a graphical terminal the following two functions allow the absolute +position of the mouse cursor to be retrieved and set. @defun mouse-absolute-pixel-position This function returns a cons cell (@var{x} . @var{y}) of the coordinates @@ -2426,7 +2426,7 @@ This predicate function returns non-@code{nil} if the mouse pointer displayed on @var{frame} is visible; otherwise it returns @code{nil}. @var{frame} omitted or @code{nil} means the selected frame. This is useful when @code{make-pointer-invisible} is set to @code{t}: it -allows to know if the pointer has been hidden. +allows you to know if the pointer has been hidden. @xref{Mouse Avoidance,,,emacs, The Emacs Manual}. @end defun diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index c5f5b4c..a2e94c3 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -1248,7 +1248,7 @@ Parent type: @code{array}. @item font-object @end table -The optional @var{qualifier} allows to combine several applicable +The optional @var{qualifier} allows combining several applicable methods. If it is not present, the defined method is a @dfn{primary} method, responsible for providing the primary implementation of the generic function for the specialized arguments. You can also define @@ -1270,8 +1270,8 @@ The most specific of such methods will be run before any other method. Such methods normally use @code{cl-call-next-method}, described below, to invoke the other auxiliary or primary methods. @item :extra @var{string} -This allows to add more methods, distinguished by @var{string}, for -the same specializers and qualifiers. +This allows you to add more methods, distinguished by @var{string}, +for the same specializers and qualifiers. @end table @end defmac diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi index fca4023..9cf3b57 100644 --- a/doc/lispref/nonascii.texi +++ b/doc/lispref/nonascii.texi @@ -1338,9 +1338,9 @@ operates on the contents of @var{string} instead of bytes in the buffer. @cindex null bytes, and decoding text @defvar inhibit-null-byte-detection If this variable has a non-@code{nil} value, null bytes are ignored -when detecting the encoding of a region or a string. This allows to -correctly detect the encoding of text that contains null bytes, such -as Info files with Index nodes. +when detecting the encoding of a region or a string. This allows the +encoding of text that contains null bytes to be correctly detected, +such as Info files with Index nodes. @end defvar @defvar inhibit-iso-escape-detection diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi index 80c194b..41bc71e 100644 --- a/doc/lispref/streams.texi +++ b/doc/lispref/streams.texi @@ -343,10 +343,10 @@ shared structures. @xref{Circular Objects}. Its default value is When reading or writing from the standard input/output streams of the Emacs process in batch mode, it is sometimes required to make sure any arbitrary binary data will be read/written verbatim, and/or that no -translation of newlines to or from CR-LF pairs are performed. This +translation of newlines to or from CR-LF pairs is performed. This issue does not exist on Posix hosts, only on MS-Windows and MS-DOS@. -The following function allows to control the I/O mode of any standard -stream of the Emacs process. +The following function allows you to control the I/O mode of any +standard stream of the Emacs process. @defun set-binary-mode stream mode Switch @var{stream} into binary or text I/O mode. If @var{mode} is diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 7186791..fee4b0c 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -383,8 +383,8 @@ as if @var{mini} were @code{nil}. If it doesn't find a suitable window, this function returns @code{nil}. @end defun -The following function allows to retrieve the entire window tree of a -frame: +The following function allows the entire window tree of a frame to be +retrieved: @defun window-tree &optional frame This function returns a list representing the window tree for frame @@ -1476,7 +1476,7 @@ displaying a buffer only temporarily (@pxref{Temporary Displays}), and you want to continue working with the initial layout. The behavior can be fixed by making a new parent window when splitting -@var{W2}. The variable described next allows to do that. +@var{W2}. The variable described next allows that to be done. @defopt window-combination-limit This variable controls whether splitting a window shall make a new @@ -1579,7 +1579,7 @@ combination limit of @var{W4} (the parent window of @var{W6} and Alternatively, the problems sketched above can be avoided by always resizing all windows in the same combination whenever one of its windows -is split or deleted. This also permits to split windows that would be +is split or deleted. This also permits spliting windows that would be otherwise too small for such an operation. @defopt window-combination-resize @@ -2522,11 +2522,11 @@ windows are dedicated to another buffer (@pxref{Dedicated Windows}). @defun display-buffer-no-window buffer alist If @var{alist} has a non-@code{nil} @code{allow-no-window} entry, then -this function does not display @code{buffer}. This allows to override -the default action and avoid displaying the buffer. It is assumed that -when the caller specifies a non-@code{nil} @code{allow-no-window} value -it can handle a @code{nil} value returned from @code{display-buffer} in -this case. +this function does not display @code{buffer}. This allows you to +override the default action and avoid displaying the buffer. It is +assumed that when the caller specifies a non-@code{nil} +@code{allow-no-window} value it can handle a @code{nil} value returned +from @code{display-buffer} in this case. @end defun To illustrate the use of action functions, consider the following diff --git a/doc/misc/dbus.texi b/doc/misc/dbus.texi index c5901af..f4ebfeb 100644 --- a/doc/misc/dbus.texi +++ b/doc/misc/dbus.texi @@ -138,8 +138,8 @@ name could be @samp{org.gnu.Emacs.TextEditor} or @section D-Bus version. D-Bus has evolved over the years. New features have been added with -new D-Bus versions. There are two variables, which allow to determine -the used D-Bus version. +new D-Bus versions. There are two variables, which allow the determination +of the D-Bus version used. @defvar dbus-compiled-version This variable, a string, determines the version of D-Bus Emacs is diff --git a/doc/misc/eww.texi b/doc/misc/eww.texi index 16511de..9bc80fb 100644 --- a/doc/misc/eww.texi +++ b/doc/misc/eww.texi @@ -162,8 +162,8 @@ You can view stored bookmarks with @kbd{B} @kindex S @cindex Multiple Buffers To get summary of currently opened EWW buffers, press @kbd{S} -(@code{eww-list-buffers}). The @file{*eww buffers*} buffer allows to -quickly kill, flip through and switch to specific EWW buffer. +(@code{eww-list-buffers}). The @file{*eww buffers*} buffer allows you +to quickly kill, flip through and switch to specific EWW buffer. @findex eww-browse-with-external-browser @vindex shr-external-browser diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi index 99633b6..1c4644b 100644 --- a/doc/misc/flymake.texi +++ b/doc/misc/flymake.texi @@ -717,7 +717,7 @@ sort error menu items, which shows error messages first. Flymake is also able to interpret error message patterns missing err-text-idx information. This is done by merely taking the rest of the matched line (@code{(substring line (match-end 0))}) as error text. This trick allows -to make use of a huge collection of error message line patterns from +making use of a huge collection of error message line patterns from @code{compile.el}. All these error patterns are appended to the end of @code{flymake-err-line-patterns}. diff --git a/doc/misc/octave-mode.texi b/doc/misc/octave-mode.texi index 65cc6a4..0307873 100644 --- a/doc/misc/octave-mode.texi +++ b/doc/misc/octave-mode.texi @@ -436,7 +436,7 @@ when Octave is waiting for input, or done sending output. @c You can use either 'plain' Emacs Info or the function @code{octave-help} @c as your Octave info reader (for @samp{help -i}). In the former case, @c use @code{info_program ("info-emacs-info")}. -@c The latter is perhaps more attractive because it allows to look up keys +@c The latter is perhaps more attractive because it allows you to look up keys @c in the indices of @emph{several} info files related to Octave (provided @c that the Emacs variable @code{octave-help-files} is set correctly). In @c this case, use @code{info_program ("info-emacs-octave-help")}. diff --git a/doc/misc/org.texi b/doc/misc/org.texi index ec676fc..a5239ac 100644 --- a/doc/misc/org.texi +++ b/doc/misc/org.texi @@ -12890,9 +12890,9 @@ including DocBook.}. When processing a document, @samp{texinfo} back-end generates a minimal file header along with a title page, a copyright page, and a menu. You control the latter through the structure of the document (@pxref{Headings and -sectioning structure}). Various keywords allow to tweak the other parts. It -is also possible to give directions to install the document in the @samp{Top} -node. +sectioning structure}). Various keywords allow you to tweak the other parts. +It is also possible to give directions to install the document in the +@samp{Top} node. @subsubheading File header diff --git a/doc/misc/reftex.texi b/doc/misc/reftex.texi index 3dc3ed4..dccb2f2 100644 --- a/doc/misc/reftex.texi +++ b/doc/misc/reftex.texi @@ -5421,8 +5421,8 @@ after words. Disabled indexing in comment lines. New command @code{reftex-create-bibtex-file} to create a new database with all entries referenced in the current document. @item -New keys @kbd{e} and @kbd{E} allow to produce a BibTeX database file -from entries marked in a citation selection buffer. +New keys @kbd{e} and @kbd{E} allow you to produce a BibTeX database +file from entries marked in a citation selection buffer. @end itemize @noindent @b{Version 4.21} @@ -5610,8 +5610,8 @@ demand. @item Index support, along with many new options. @item -The selection of keys for @code{\ref} and @code{\cite} now allows to -select multiple items by marking entries with the @kbd{m} key. +The selection of keys for @code{\ref} and @code{\cite} now allows you +to select multiple items by marking entries with the @kbd{m} key. @item Fancyref support. @end itemize diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 1b2b89e..14cd7fc 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -915,8 +915,9 @@ can still access remote files using UNC file names instead of @value{tramp}: //melancholia/daniel$$/.emacs @end example -UNC file name specification does not allow to specify a different user -name for authentication like the @command{smbclient} can. +UNC file name specification does not allow the specification of a +different user name for authentication like the @command{smbclient} +can. @item @option{adb} @@ -2990,7 +2991,7 @@ longer open. That is why @value{tramp} prompts for the password again even if there is an @command{ssh} already open. Some @command{ssh} versions support a @code{ControlPersist} option, -which allows to set the @code{ControlPath} provided the variable +which allows you to set the @code{ControlPath} provided the variable @code{tramp-ssh-controlmaster-options} is customized as follows: @lisp diff --git a/doc/misc/wisent.texi b/doc/misc/wisent.texi index a446293..b4efbda 100644 --- a/doc/misc/wisent.texi +++ b/doc/misc/wisent.texi @@ -1155,8 +1155,8 @@ It defaults to the start symbol defined in the grammar @end table @end defun -The following two normal hooks permit to do some useful processing -respectively before to start parsing, and after the parser terminated. +The following two normal hooks permit doing some useful processing +respectively before starting parsing, and after the parser terminated. @vindex wisent-pre-parse-hook @defvar wisent-pre-parse-hook diff --git a/etc/NEWS b/etc/NEWS index 7518d72..7c4824c 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -87,7 +87,7 @@ and silent rules are now quieter. To get the old behavior where build with 'make V=1'. --- -** The configure option '--with-gameuser' now allows to specify a +** The configure option '--with-gameuser' now allows you to specify a group instead of a user if its argument is prefixed by ':' (a colon). This will cause the game score files in ${localstatedir}/games/emacs to be owned by that group, and the helper program for updating them to @@ -200,9 +200,9 @@ select-enable-primary is ineffective since the system doesn't have the equivalent of a primary selection. +++ -** New option `switch-to-buffer-in-dedicated-window' allows to customize -how `switch-to-buffer' proceeds interactively when the selected window -is strongly dedicated to its buffer. +** New option `switch-to-buffer-in-dedicated-window' allows you to +customize how `switch-to-buffer' proceeds interactively when the +selected window is strongly dedicated to its buffer. +++ ** The option `even-window-heights' has been renamed to @@ -855,11 +855,12 @@ plist will contain a :peer element that has the output of ** Tramp +++ -*** New connection method "afp", which allows to access Mac OS X +*** New connection method "afp", which allows you to access Mac OS X volumes via the Apple Filing Protocol. +++ -*** New connection method "nc", which allows to access dumb busyboxes. +*** New connection method "nc", which allows you to access dumb +busyboxes. +++ *** Method-specific parameters can be overwritten now with variable @@ -1220,7 +1221,7 @@ node "Generic Functions" in the Emacs Lisp manual for more details. let-bind the values stored in an alist. --- -** `tildify-mode' allows to automatically insert hard spaces as one +** `tildify-mode' allows automatic insertion of hard spaces as one types the text. Breaking line after a single-character words is forbidden by Czech and Polish typography (and may be discouraged in other languages), so `auto-tildify-mode' makes it easier to create @@ -1424,7 +1425,7 @@ commands other than the predefined `C-u'. +++ ** New functions `filepos-to-bufferpos' and `bufferpos-to-filepos'. -These allow to convert between buffer positions and the corresponding +These allow conversion between buffer positions and the corresponding file byte offsets, given the file's encoding. +++ @@ -1547,14 +1548,14 @@ called interactively. ** New function `function-put' to use instead of `put' for function properties. +++ -** The new function `bidi-find-overridden-directionality' allows to +** The new function `bidi-find-overridden-directionality' allows you to find characters whose directionality was, perhaps maliciously, overridden by directional override control characters. Lisp programs can use this to detect potential phishing of URLs and other links that exploits bidirectional display reordering. +++ -** The new function `buffer-substring-with-bidi-context' allows to +** The new function `buffer-substring-with-bidi-context' allows you to copy a portion of a buffer into a different location while preserving the visual appearance both of the copied text and the text at destination, even when the copied text includes mixed bidirectional @@ -1677,7 +1678,7 @@ undocumented integer-pair format. Instead, they return a list of two integers. +++ -** New function `set-binary-mode' allows to switch a standard stream +** New function `set-binary-mode' allows switching a standard stream of the Emacs process to binary I/O mode. +++ @@ -1788,8 +1789,8 @@ fullwidth frames, the behavior may depend on the toolkit used. number of columns or lines it displays. +++ -*** New function `window-preserve-size' allows to preserve the size of -windows without "fixing" it. It's supported by `fit-window-to-buffer', +*** New function `window-preserve-size' allows you to preserve the size of +a window without "fixing" it. It's supported by `fit-window-to-buffer', `temp-buffer-resize-mode' and `display-buffer'. +++ diff --git a/lisp/autorevert.el b/lisp/autorevert.el index 5851a89..14e39bd 100644 --- a/lisp/autorevert.el +++ b/lisp/autorevert.el @@ -664,8 +664,8 @@ This is an internal function used by Auto-Revert Mode." (not (eq revert 'fast))) (message "Reverting buffer `%s'." (buffer-name))) ;; If point (or a window point) is at the end of the buffer, we - ;; want to keep it at the end after reverting. This allows to - ;; tail a file. + ;; want to keep it at the end after reverting. This allows one + ;; to tail a file. (when buffer-file-name (setq eob (eobp)) (walk-windows diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el index ce36748..c7e6615 100644 --- a/lisp/cedet/mode-local.el +++ b/lisp/cedet/mode-local.el @@ -189,7 +189,7 @@ BINDINGS is a list of (VARIABLE . VALUE). Optional argument PLIST is a property list each VARIABLE symbol will be set to. The following properties have special meaning: -- `constant-flag' if non-nil, prevent to rebind variables. +- `constant-flag' if non-nil, prevent rebinding variables. - `mode-variable-flag' if non-nil, define mode variables. - `override-flag' if non-nil, define override functions. @@ -544,7 +544,7 @@ default is to call the function `NAME-default' with the appropriate arguments. BODY can also include an override form that specifies which part of -BODY is specifically overridden. This permits to specify common code +BODY is specifically overridden. This permits specifying common code run for both default and overridden implementations. An override form is one of: diff --git a/lisp/cedet/semantic/senator.el b/lisp/cedet/semantic/senator.el index a45077e..38abc9e 100644 --- a/lisp/cedet/semantic/senator.el +++ b/lisp/cedet/semantic/senator.el @@ -803,7 +803,7 @@ if available." (setq isearch-adjusted t) (isearch-update)) -;; Recent versions of GNU Emacs allow to override the isearch search +;; Recent versions of GNU Emacs allow overriding the isearch search ;; function for special needs, and avoid to advice the built-in search ;; function :-) (defun senator-isearch-search-fun () diff --git a/lisp/cedet/semantic/wisent.el b/lisp/cedet/semantic/wisent.el index 2df4b2a..d0632f1 100644 --- a/lisp/cedet/semantic/wisent.el +++ b/lisp/cedet/semantic/wisent.el @@ -149,7 +149,7 @@ and will be collected in `semantic-lex' form: (SYMBOL START . END)." ;; Parser plug-ins ;; -;; The following functions permit to plug the Wisent LALR parser in +;; The following functions permit plugging the Wisent LALR parser in ;; Semantic toolkit. They use the standard API provided by Semantic ;; to plug parsers in. ;; diff --git a/lisp/dos-fns.el b/lisp/dos-fns.el index 0ce2b23..7188ae0 100644 --- a/lisp/dos-fns.el +++ b/lisp/dos-fns.el @@ -98,7 +98,7 @@ sure to obey the 8.3 limitations." string)) (aset string i ?_)) ;; If we don't have a period in the first 8 chars, insert one. - ;; This enables to have 3 more characters from the original + ;; This enables having 3 more characters from the original ;; name in the extension. (if (> (or (string-match "\\." string) (length string)) 8) diff --git a/lisp/frameset.el b/lisp/frameset.el index b8d86c6..2453f57 100644 --- a/lisp/frameset.el +++ b/lisp/frameset.el @@ -354,12 +354,12 @@ Properties can be set with ;; Now, what about the filter alist variables? There are three of them, ;; though only two sets of parameters: ;; -;; - `frameset-session-filter-alist' contains these filters that allow to -;; save and restore framesets in-session, without the need to serialize -;; the frameset or save it to disk (for example, to save a frameset in a -;; register and restore it later). Filters in this list do not remove -;; live objects, except in `minibuffer', which is dealt especially by -;; `frameset-save' / `frameset-restore'. +;; - `frameset-session-filter-alist' contains these filters that allow +;; saving and restoring framesets in-session, without the need to +;; serialize the frameset or save it to disk (for example, to save a +;; frameset in a register and restore it later). Filters in this +;; list do not remove live objects, except in `minibuffer', which is +;; dealt especially by `frameset-save' / `frameset-restore'. ;; ;; - `frameset-persistent-filter-alist' is the whole deal. It does all ;; the filtering described above, and the result is ready to be saved on @@ -1072,7 +1072,7 @@ FORCE-ONSCREEN can be: - a list (LEFT TOP WIDTH HEIGHT), describing the workarea. It must return non-nil to force the frame onscreen, nil otherwise. -CLEANUP-FRAMES allows to \"clean up\" the frame list after restoring a frameset: +CLEANUP-FRAMES allows \"cleaning up\" the frame list after restoring a frameset: t Delete all frames that were not created or restored upon. nil Keep all frames. FUNC A function called with two arguments: diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index 9219ce0..80753c1 100644 --- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el @@ -680,7 +680,7 @@ minor mode in all Gnus buffers." (defun gnus-agent-queue-setup (&optional group-name) "Make sure the queue group exists. -Optional arg GROUP-NAME allows to specify another group." +Optional arg GROUP-NAME allows another group to be specified." (unless (gnus-gethash (format "nndraft:%s" (or group-name "queue")) gnus-newsrc-hashtb) (gnus-request-create-group (or group-name "queue") '(nndraft "")) diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el index fb97479..106d010 100644 --- a/lisp/gnus/mm-util.el +++ b/lisp/gnus/mm-util.el @@ -496,9 +496,9 @@ Unless LIST is given, `mm-codepage-ibm-list' is used." (windows-1257 . (mm-codepage-setup 1257 t)))) "An alist of (CHARSET . FORM) pairs. If an article is encoded in an unknown CHARSET, FORM is -evaluated. This allows to load additional libraries providing -charsets on demand. If supported by your Emacs version, you -could use `autoload-coding-system' here." +evaluated. This allows the loading of additional libraries +providing charsets on demand. If supported by your Emacs +version, you could use `autoload-coding-system' here." :version "22.1" ;; Gnus 5.10.9 :type '(list (set :inline t (const (windows-1250 . (mm-codepage-setup 1250 t))) diff --git a/lisp/international/characters.el b/lisp/international/characters.el index 2e94733..a43c0f6 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -496,7 +496,7 @@ with L, LRE, or LRO Unicode bidi character type.") table))) ;; Load uni-mirrored.el and uni-brackets.el if available, so that they -;; get dumped into Emacs. This allows to start Emacs with +;; get dumped into Emacs. This allows starting Emacs with ;; force-load-messages in ~/.emacs, and avoid infinite recursion in ;; bidi_initialize, which needs to load uni-mirrored.el and ;; uni-brackets.el in order to display the "Loading" messages. diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 311b698..7d7e635 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -11632,7 +11632,7 @@ FORCE-ONSCREEN can be: - a list (LEFT TOP WIDTH HEIGHT), describing the workarea. It must return non-nil to force the frame onscreen, nil otherwise. -CLEANUP-FRAMES allows to \"clean up\" the frame list after restoring a frameset: +CLEANUP-FRAMES allows \"cleaning up\" the frame list after restoring a frameset: t Delete all frames that were not created or restored upon. nil Keep all frames. FUNC A function called with two arguments: @@ -30613,8 +30613,8 @@ Usage: according to option `vhdl-argument-list-indent'. If option `vhdl-indent-tabs-mode' is nil, spaces are used instead of - tabs. `\\[tabify]' and `\\[untabify]' allow to convert spaces to tabs - and vice versa. + tabs. `\\[tabify]' and `\\[untabify]' allow the conversion of spaces to + tabs and vice versa. Syntax-based indentation can be very slow in large files. Option `vhdl-indent-syntax-based' allows you to use faster but simpler indentation. diff --git a/lisp/mail/mailclient.el b/lisp/mail/mailclient.el index bfd6e7d..eb1305a 100644 --- a/lisp/mail/mailclient.el +++ b/lisp/mail/mailclient.el @@ -22,7 +22,7 @@ ;;; Commentary: -;; This package allows to hand over a buffer to be sent off +;; This package allows handing over a buffer to be sent off ;; via the system's designated e-mail client. ;; Note that the e-mail client will display the contents of the buffer ;; again for editing. diff --git a/lisp/man.el b/lisp/man.el index 40b77e6..04a7fc3 100644 --- a/lisp/man.el +++ b/lisp/man.el @@ -75,7 +75,7 @@ ;; ============= TODO =========== ;; - Add a command for printing. ;; - The awk script deletes multiple blank lines. This behavior does -;; not allow to understand if there was indeed a blank line at the +;; not allow one to understand if there was indeed a blank line at the ;; end or beginning of a page (after the header, or before the ;; footer). A different algorithm should be used. It is easy to ;; compute how many blank lines there are before and after the page diff --git a/lisp/mh-e/mh-search.el b/lisp/mh-e/mh-search.el index 30b3891..6e60744 100644 --- a/lisp/mh-e/mh-search.el +++ b/lisp/mh-e/mh-search.el @@ -1262,7 +1262,7 @@ is used to search." (forward-line))) ;; All implementations of pick have special options -cc, -date, -from and -;; -subject that allow to search for corresponding components. Any other +;; -subject that allow searching for corresponding components. Any other ;; component is searched using option --COMPNAME, for example: `pick ;; --x-mailer mh-e'. Mailutils "pick" supports this option using a certain ;; kludge, but it prefers the following syntax for this purpose: diff --git a/lisp/net/tramp-cmds.el b/lisp/net/tramp-cmds.el index e714e4f..e7901bb 100644 --- a/lisp/net/tramp-cmds.el +++ b/lisp/net/tramp-cmds.el @@ -209,7 +209,7 @@ Before reproducing the bug, you might apply M-x tramp-cleanup-all-connections -This allows to investigate from a clean environment. Another +This allows us to investigate from a clean environment. Another useful thing to do is to put (setq tramp-verbose 9) diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index 0379acc..e19ceae 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el @@ -86,7 +86,7 @@ ;; Restrictions: -;; * The current GVFS implementation does not allow to write on the +;; * The current GVFS implementation does not allow writing on the ;; remote bluetooth device via OBEX. ;; ;; * Two shares of the same SMB server cannot be mounted in parallel. diff --git a/lisp/org/org-crypt.el b/lisp/org/org-crypt.el index 22b02c8..8abe32b 100644 --- a/lisp/org/org-crypt.el +++ b/lisp/org/org-crypt.el @@ -225,7 +225,7 @@ See `org-crypt-disable-auto-save'." ;; outline property starts at the \n of the heading. (delete-region (1- (point)) end) ;; Store a checksum of the decrypted and the encrypted - ;; text value. This allow to reuse the same encrypted text + ;; text value. This allow reusing the same encrypted text ;; if the text does not change, and therefore avoid a ;; re-encryption process. (insert "\n" (propertize decrypted-text diff --git a/lisp/org/org-element.el b/lisp/org/org-element.el index e47d65f..91b1b00 100644 --- a/lisp/org/org-element.el +++ b/lisp/org/org-element.el @@ -367,8 +367,8 @@ still has an entry since one of its properties (`:title') does.") ;; Provide four accessors: `org-element-type', `org-element-property' ;; `org-element-contents' and `org-element-restriction'. ;; -;; Setter functions allow to modify elements by side effect. There is -;; `org-element-put-property', `org-element-set-contents', +;; Setter functions allow modification of elements by side effect. +;; There is `org-element-put-property', `org-element-set-contents', ;; `org-element-set-element' and `org-element-adopt-element'. Note ;; that `org-element-set-element' and `org-element-adopt-elements' are ;; higher level functions since also update `:parent' property. @@ -4023,8 +4023,8 @@ position of point and CDR is nil." ;; `org-element-parse-secondary-string', which parses objects within ;; a given string. ;; -;; The (almost) almighty `org-element-map' allows to apply a function -;; on elements or objects matching some type, and accumulate the +;; The (almost) almighty `org-element-map' allows applying a function +;; on elements or objects matching some type, and accumulating the ;; resulting values. In an export situation, it also skips unneeded ;; parts of the parse tree. diff --git a/lisp/org/org-feed.el b/lisp/org/org-feed.el index 2d71c8b..6d6f996 100644 --- a/lisp/org/org-feed.el +++ b/lisp/org/org-feed.el @@ -24,7 +24,7 @@ ;; ;;; Commentary: ;; -;; This module allows to create and change entries in an Org-mode +;; This module allows entries to be created and changed in an Org-mode ;; file triggered by items in an RSS feed. The basic functionality is ;; geared toward simply adding new items found in a feed as outline nodes ;; to an Org file. Using hooks, arbitrary actions can be triggered for diff --git a/lisp/org/org.el b/lisp/org/org.el index 960b874..6e7d54d 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -2254,7 +2254,7 @@ fast, while still showing the whole path to the entry." :type 'boolean) (defcustom org-refile-allow-creating-parent-nodes nil - "Non-nil means allow to create new nodes as refile targets. + "Non-nil means allow the creation of new nodes as refile targets. New nodes are then created by adding \"/new node name\" to the completion of an existing node. When the value of this variable is `confirm', new node creation must be confirmed by the user (recommended). diff --git a/lisp/org/ox-ascii.el b/lisp/org/ox-ascii.el index 1907dc0..dcca608 100644 --- a/lisp/org/ox-ascii.el +++ b/lisp/org/ox-ascii.el @@ -35,10 +35,10 @@ ;;; Define Back-End ;; -;; The following setting won't allow to modify preferred charset +;; The following setting won't allow modifying preferred charset ;; through a buffer keyword or an option item, but, since the property -;; will appear in communication channel nonetheless, it allows to -;; override `org-ascii-charset' variable on the fly by the ext-plist +;; will appear in communication channel nonetheless, it allows +;; overriding `org-ascii-charset' variable on the fly by the ext-plist ;; mechanism. ;; ;; We also install a filter for headlines and sections, in order to diff --git a/lisp/org/ox-icalendar.el b/lisp/org/ox-icalendar.el index 4448067..0d34ba1 100644 --- a/lisp/org/ox-icalendar.el +++ b/lisp/org/ox-icalendar.el @@ -76,7 +76,7 @@ for timed events. If non-zero, alarms are created. (defcustom org-icalendar-exclude-tags nil "Tags that exclude a tree from export. -This variable allows to specify different exclude tags from other +This variable allows specifying different exclude tags from other back-ends. It can also be set with the ICAL_EXCLUDE_TAGS keyword." :group 'org-export-icalendar diff --git a/lisp/org/ox-publish.el b/lisp/org/ox-publish.el index ec33bbd..38fdce1 100644 --- a/lisp/org/ox-publish.el +++ b/lisp/org/ox-publish.el @@ -1078,7 +1078,7 @@ publishing directory." "Return numbering for headline matching FUZZY search in FILE. Return value is a list of numbers, or nil. This function allows -to resolve external fuzzy links like: +the resolution of external fuzzy links like: [[file.org::*fuzzy][description]]" (when org-publish-cache diff --git a/lisp/org/ox.el b/lisp/org/ox.el index cc5a2d2..89d7973 100644 --- a/lisp/org/ox.el +++ b/lisp/org/ox.el @@ -775,7 +775,7 @@ is nil. You can also allow them through local buffer variables." (defcustom org-export-snippet-translation-alist nil "Alist between export snippets back-ends and exporter back-ends. -This variable allows to provide shortcuts for export snippets. +This variable allows providing shortcuts for export snippets. For example, with a value of \((\"h\" . \"html\")), the HTML back-end will recognize the contents of \"@@h:@@\" as @@ -849,7 +849,7 @@ output is restricted to body only, \"s\" when it is restricted to the current subtree, \"v\" when only visible elements are considered for export, \"f\" when publishing functions should be passed the FORCE argument and \"a\" when the export should be -asynchronous). Also, [?] allows to switch back to standard +asynchronous). Also, [?] allows switching back to standard mode." :group 'org-export-general :version "24.4" @@ -3657,9 +3657,9 @@ INFO is the plist used as a communication channel." ;; `org-export-get-relative-level' is a shortcut to get headline ;; level, relatively to the lower headline level in the parsed tree. ;; -;; `org-export-get-headline-number' returns the section number of an -;; headline, while `org-export-number-to-roman' allows to convert it -;; to roman numbers. +;; `org-export-get-headline-number' returns the section number of a +;; headline, while `org-export-number-to-roman' allows it to be +;; converted to roman numbers. ;; ;; `org-export-low-level-p', `org-export-first-sibling-p' and ;; `org-export-last-sibling-p' are three useful predicates when it @@ -4093,8 +4093,8 @@ Otherwise, only provided element's type is considered. Optional argument PREDICATE is a function returning a non-nil value if the current element or object should be counted in. It accepts two arguments: the element or object being considered and -the plist used as a communication channel. This allows to count -only a certain type of objects (i.e. inline images). +the plist used as a communication channel. This allows counting +only a certain type of object (i.e. inline images). Return value is a list of numbers if ELEMENT is a headline or an item. It is nil for keywords. It represents the footnote number @@ -5458,7 +5458,7 @@ to `:default' encoding. If it fails, return S." ;; returned results in the current process. ;; ;; At a higher level, `org-export-to-buffer' and `org-export-to-file' -;; allow to export to a buffer or a file, asynchronously or not. +;; allow exporting to a buffer or a file, asynchronously or not. ;; ;; `org-export-output-file-name' is an auxiliary function meant to be ;; used with `org-export-to-file'. With a given extension, it tries @@ -5985,7 +5985,7 @@ is nil when this menu hasn't been selected yet. EXPERTP, when non-nil, triggers expert UI. In that case, no help buffer is provided, but indications about currently active -options are given in the prompt. Moreover, [?] allows to switch +options are given in the prompt. Moreover, [?] allows switching back to standard interface." (let* ((fontify-key (lambda (key &optional access-key) diff --git a/lisp/play/gamegrid.el b/lisp/play/gamegrid.el index 0a63644..2c557ba 100644 --- a/lisp/play/gamegrid.el +++ b/lisp/play/gamegrid.el @@ -379,7 +379,7 @@ static unsigned char gamegrid_bits[] = { (dotimes (i height) (insert line)) ;; Adjust the height of the default face to the height of the - ;; images. Unlike XEmacs, Emacs doesn't allow to make the default + ;; images. Unlike XEmacs, Emacs doesn't allow making the default ;; face buffer-local; so we do this with an overlay. (when (eq gamegrid-display-mode 'glyph) (overlay-put (make-overlay (point-min) (point-max)) diff --git a/lisp/play/gomoku.el b/lisp/play/gomoku.el index c1372fa..02ac240 100644 --- a/lisp/play/gomoku.el +++ b/lisp/play/gomoku.el @@ -551,7 +551,7 @@ that DVAL has been added on SQUARE." ;;; ;; Several variables are used to monitor a game, including a GAME-HISTORY (the -;; list of all (SQUARE . PREVSCORE) played) that allows to take moves back +;; list of all (SQUARE . PREVSCORE) played) that allows you to take moves back ;; (anti-updating the score table) and to compute the table from scratch in ;; case of an interruption. diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el index 20880a8..f33609c 100644 --- a/lisp/progmodes/antlr-mode.el +++ b/lisp/progmodes/antlr-mode.el @@ -537,8 +537,8 @@ corresponding kind, i.e., looks like \(OPTION-DEF...). Each OPTION-DEF looks like \(OPTION-NAME EXTRA-FN VALUE-SPEC...) which defines a file/grammar/rule/subrule option with name OPTION-NAME. The OPTION-NAMEs are used for the creation of the \"Insert XXX Option\" -submenus, see `antlr-options-use-submenus', and to allow to insert the -option name with completion when using \\[antlr-insert-option]. +submenus, see `antlr-options-use-submenus', and to allow the insersion +of the option name with completion when using \\[antlr-insert-option]. If EXTRA-FN is a function, it is called at different phases of the insertion with arguments \(PHASE OPTION-NAME). PHASE can have the diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index fd70046..5aeefe4 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -2737,7 +2737,7 @@ killed." (process (get-buffer-process buffer)) ;; Users can override the interpreter and args ;; interactively when calling `run-python', let-binding - ;; these allows to have the new right values in all + ;; these allows having the new right values in all ;; setup code that is done in `inferior-python-mode', ;; which is important, especially for prompt detection. (python-shell--interpreter interpreter) @@ -3351,7 +3351,7 @@ def __PYTHON_EL_native_completion_setup(): if not completion: if self.last_completion != '1__dummy_completion__': # When no more completions are available, returning a - # dummy with non-sharing prefix allow to ensure output + # dummy with non-sharing prefix allow ensuring output # while preventing changes to current input. # Coincidentally it's also the end of output. completion = '1__dummy_completion__' diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index d20a6b2..b176e64 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el @@ -4422,8 +4422,8 @@ Usage: according to option `vhdl-argument-list-indent'. If option `vhdl-indent-tabs-mode' is nil, spaces are used instead of - tabs. `\\[tabify]' and `\\[untabify]' allow to convert spaces to tabs - and vice versa. + tabs. `\\[tabify]' and `\\[untabify]' allow the conversion of spaces to + tabs and vice versa. Syntax-based indentation can be very slow in large files. Option `vhdl-indent-syntax-based' allows you to use faster but simpler indentation. diff --git a/lisp/strokes.el b/lisp/strokes.el index 8bdabc9..5a2020d 100644 --- a/lisp/strokes.el +++ b/lisp/strokes.el @@ -858,7 +858,7 @@ The command will be executed provided one exists for that stroke, based on the variable `strokes-minimum-match-score'. If no stroke matches, nothing is done and return value is nil." ;; FIXME: Undocument return value. It is not documented for all cases, - ;; and doesn't allow to difference between no stroke matches and + ;; and doesn't allow differentiating between no stroke matches and ;; command-execute returning nil, anyway. (let* ((match (strokes-match-stroke stroke strokes-global-map)) (command (car match)) diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 97e64c9..db03a32 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -1979,7 +1979,7 @@ and pass it the output of the last Ispell invocation." (defun ispell-send-replacement (misspelled replacement) "Notify Aspell that MISSPELLED should be spelled REPLACEMENT. -This allows to improve the suggestion list based on actual misspellings." +This allows improving the suggestion list based on actual misspellings." (and ispell-really-aspell (ispell-send-string (concat "$$ra " misspelled "," replacement "\n")))) diff --git a/lisp/tree-widget.el b/lisp/tree-widget.el index c1bb2a7..fd502dd 100644 --- a/lisp/tree-widget.el +++ b/lisp/tree-widget.el @@ -664,7 +664,7 @@ This hook should be local in the buffer setup to display widgets.") (flags (widget-get tree :tree-widget--guide-flags)) (indent (widget-get tree :indent)) ;; Setup widget's image support. Looking up for images, and - ;; setting widgets' :tag-glyph is done here, to allow to + ;; setting widgets' :tag-glyph is done here, to allow us to ;; dynamically change the image theme. (widget-image-enable (tree-widget-use-image-p)) ; Emacs (widget-glyph-enable widget-image-enable) ; XEmacs diff --git a/lisp/vc/pcvs.el b/lisp/vc/pcvs.el index 36a1d91..573feed 100644 --- a/lisp/vc/pcvs.el +++ b/lisp/vc/pcvs.el @@ -58,8 +58,8 @@ ;; ******** FIX THE DOCUMENTATION ********* ;; ;; - rework the displaying of error messages. -;; - allow to flush messages only -;; - allow to protect files like ChangeLog from flushing +;; - allow the flushing of messages only +;; - allow the protection of files like ChangeLog from flushing ;; - query the user for cvs-get-marked (for some cmds or if nothing's selected) ;; - don't return the first (resp last) FI if the cursor is before ;; (resp after) it. diff --git a/lisp/window.el b/lisp/window.el index 620f4ed..948e2da 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -2005,7 +2005,7 @@ SIDE can be any of the symbols `left', `top', `right' or ;; Predecessors to the below have been devised by Julian Assange in ;; change-windows-intuitively.el and Hovav Shacham in windmove.el. -;; Neither of these allow to selectively ignore specific windows +;; Neither of these allow one to selectively ignore specific windows ;; (windows whose `no-other-window' parameter is non-nil) as targets of ;; the movement. (defun window-in-direction (direction &optional window ignore sign wrap mini) diff --git a/src/lisp.h b/src/lisp.h index ee055e9..6be2104 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -2090,7 +2090,7 @@ struct Lisp_Marker /* For markers that point somewhere, this is used to chain of all the markers in a given buffer. */ /* We could remove it and use an array in buffer_text instead. - That would also allow to preserve it ordered. */ + That would also allow us to preserve it ordered. */ struct Lisp_Marker *next; /* This is the char position where the marker points. */ ptrdiff_t charpos; diff --git a/src/w32.c b/src/w32.c index 6f1d5fd..067bb3d 100644 --- a/src/w32.c +++ b/src/w32.c @@ -95,7 +95,7 @@ typedef struct _MEMORY_STATUS_EX { } MEMORY_STATUS_EX,*LPMEMORY_STATUS_EX; /* These are here so that GDB would know about these data types. This - allows to attach GDB to Emacs when a fatal exception is triggered + allows attaching GDB to Emacs when a fatal exception is triggered and Windows pops up the "application needs to be closed" dialog. At that point, _gnu_exception_handler, the top-level exception handler installed by the MinGW startup code, is somewhere on the diff --git a/src/w32heap.c b/src/w32heap.c index 3d1c5ff..00da86a 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -100,8 +100,8 @@ typedef struct _RTL_HEAP_PARAMETERS { special segment to the executable. In order to be able to do this without losing too much space, we need to create a Windows heap at the specific address of the static array. The RtlCreateHeap - available inside the NT kernel since XP will do this. It allows to - create a non-growable heap at a specific address. So before + available inside the NT kernel since XP will do this. It allows the + creation of a non-growable heap at a specific address. So before dumping, we create a non-growable heap at the address of the dumped_data[] array. After dumping, we reuse memory allocated there without being able to free it (but most of it is not meant to diff --git a/src/w32term.c b/src/w32term.c index 54fd295..36a5021 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -3616,8 +3616,8 @@ w32_set_horizontal_scroll_bar_thumb (struct scroll_bar *bar, si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE; si.nMin = 0; si.nMax = whole; - /* Allow nPage to be one larger than nPos so we don't allow to scroll - an already fully visible buffer. */ + /* Allow nPage to be one larger than nPos so we don't allow the scrolling + of an already fully visible buffer. */ si.nPage = min (portion, si.nMax) + 1; si.nPos = min (position, si.nMax); SetScrollInfo (w, SB_CTL, &si, TRUE); diff --git a/src/window.c b/src/window.c index 9e065ea..8953d3c 100644 --- a/src/window.c +++ b/src/window.c @@ -7263,7 +7263,7 @@ resizing a window preferably resizes one adjacent window only. If this variable is t, splitting a window tries to get the space proportionally from all windows in the same combination. This also -allows to split a window that is otherwise too small or of fixed size. +allows splitting a window that is otherwise too small or of fixed size. Resizing and deleting a window proportionally resize all windows in the same combination. diff --git a/src/xfaces.c b/src/xfaces.c index 0bf4f0c..2880eed 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -80,7 +80,7 @@ along with GNU Emacs. If not, see . */ specs overwrite the font-spec in the 14th attribute. - Faces are frame-local by nature because Emacs allows to define the + Faces are frame-local by nature because Emacs allows you to define the same named face (face names are symbols) differently for different frames. Each frame has an alist of face definitions for all named faces. The value of a named face in such an alist is a Lisp vector commit fef1b3066ae02ec6dd37b0358905491fabbedfdf Merge: 12eeaa8 76168e1 Author: l3thal Date: Sun Jan 24 15:20:31 2016 -0500 Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 commit 12eeaa877c4396880c926c26b4010a059b6a3325 Author: Kelvin White Date: Sun Jan 24 15:19:08 2016 -0500 Add NEWS entry for asynchronous reconnect in ERC diff --git a/etc/NEWS b/etc/NEWS index 0e2fe5e..7518d72 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -428,6 +428,9 @@ additionally need to add `getSelection' to `xterm-extra-capabilities'. `erc-network-hide-list' and `erc-channel-hide-list' will only hide the specified message types for the respective specified targets. +--- +*** Reconnection is now asynchronous. + ** Midnight-mode --- commit 76168e131315ec4c7de38c4fadca30c76078e8cb Author: l3thal Date: Sun Jan 24 15:19:08 2016 -0500 Add NEWS entry for asynchronous reconnect in ERC diff --git a/etc/NEWS b/etc/NEWS index 0e2fe5e..7518d72 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -428,6 +428,9 @@ additionally need to add `getSelection' to `xterm-extra-capabilities'. `erc-network-hide-list' and `erc-channel-hide-list' will only hide the specified message types for the respective specified targets. +--- +*** Reconnection is now asynchronous. + ** Midnight-mode --- commit 05a630484fd652f67ce06679fb3f890f5fdd65ea Author: Kelvin White Date: Sun Jan 24 14:37:38 2016 -0500 browse-url.el: Add 'google-chrome' to supported browsers. diff --git a/etc/NEWS b/etc/NEWS index e7b827f..0e2fe5e 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1121,6 +1121,9 @@ make the new option `eshell-destroy-buffer-when-process-dies' non-nil. ** Browse-url --- +*** Support for the Google Chrome web browser. + +--- *** Support for the Conkeror web browser. --- diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index 2bda97f..edf91ab 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -36,6 +36,7 @@ ;; Function Browser Earliest version ;; browse-url-mozilla Mozilla Don't know ;; browse-url-firefox Firefox Don't know (tried with 1.0.1) +;; browse-url-chrome Chrome 47.0.2526.111 ;; browse-url-chromium Chromium 3.0 ;; browse-url-epiphany Epiphany Don't know ;; browse-url-conkeror Conkeror Don't know @@ -147,6 +148,7 @@ regexp should probably be \".\" to specify a default browser." (function-item :tag "eww" :value eww-browse-url) (function-item :tag "Mozilla" :value browse-url-mozilla) (function-item :tag "Firefox" :value browse-url-firefox) + (function-item :tag "Google Chrome" :value browse-url-chrome) (function-item :tag "Chromium" :value browse-url-chromium) (function-item :tag "Epiphany" :value browse-url-epiphany) (function-item :tag "Conkeror" :value browse-url-conkeror) @@ -259,6 +261,22 @@ Defaults to the value of `browse-url-firefox-arguments' at the time (make-obsolete-variable 'browse-url-firefox-startup-arguments "it no longer has any effect." "24.5") +(defcustom browse-url-chrome-program + (let ((candidates '("google-chrome-stable" "google-chrome"))) + (while (and candidates (not (executable-find (car candidates)))) + (setq candidates (cdr candidates))) + (or (car candidates) "chromium")) + "The name by which to invoke Chromium." + :type 'string + :version "24.1" + :group 'browse-url) + +(defcustom browse-url-chrome-arguments nil + "A list of strings to pass to Google Chrome as arguments." + :type '(repeat (string :tag "Argument")) + :version "24.1" + :group 'browse-url) + (defcustom browse-url-chromium-program (let ((candidates '("chromium" "chromium-browser"))) (while (and candidates (not (executable-find (car candidates)))) @@ -902,6 +920,7 @@ instead of `browse-url-new-window-flag'." ((browse-url-can-use-xdg-open) 'browse-url-xdg-open) ;;; ((executable-find browse-url-gnome-moz-program) 'browse-url-gnome-moz) ((executable-find browse-url-mozilla-program) 'browse-url-mozilla) + ((executable-find browse-url-chrome-program) 'browse-url-chrome) ((executable-find browse-url-firefox-program) 'browse-url-firefox) ((executable-find browse-url-chromium-program) 'browse-url-chromium) ;;; ((executable-find browse-url-galeon-program) 'browse-url-galeon) @@ -1126,6 +1145,22 @@ The optional argument NEW-WINDOW is not used." browse-url-chromium-arguments (list url))))) +(defun browse-url-chrome (url &optional _new-window) + "Ask the Google Chrome WWW browser to load URL. +Default to the URL around or before point. The strings in +variable `browse-url-chrome-arguments' are also passed to +Google Chrome. +The optional argument NEW-WINDOW is not used." + (interactive (browse-url-interactive-arg "URL: ")) + (setq url (browse-url-encode-url url)) + (let* ((process-environment (browse-url-process-environment))) + (apply 'start-process + (concat "google-chrome " url) nil + browse-url-chrome-program + (append + browse-url-chrome-arguments + (list url))))) + ;;;###autoload (defun browse-url-galeon (url &optional new-window) "Ask the Galeon WWW browser to load URL. commit 3772f444228a07404c5af1fdf67a220025d37645 Author: Paul Eggert Date: Sun Jan 24 11:40:26 2016 -0800 Port Tramp manual to latest Texinfo Otherwise, 'make pdf' did not work (Bug#22416). * doc/misc/tramp.texi (xxx, yyy): Remove macros. (trampfn): Specialize to the case where METHOD is nonempty. The 2nd argument is now user@host, not 2nd user and 3rd host args. All uses changed. (trampf): New macro. diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index eafd238..1b2b89e 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -18,52 +18,21 @@ @include trampver.texi @c Macro for formatting a file name according to the respective syntax. -@c xxx and yyy are auxiliary macros in order to omit leading and +@c Macro arguments should not have any leading or @c trailing whitespace. Not very elegant, but I don't know it better. -@c There are subtle differences between texinfo 4.13 and 5.0. We must -@c declare two versions of the macro. This will be improved, hopefully. - -@c Texinfo 5.0. -@ifset txicommandconditionals -@macro xxx {one} -@set \one\ -@end macro - -@macro yyy {one, two} -@xxx{x\one\}@c -@ifclear x -\one\@w{}\two\@c -@end ifclear -@clear x\one\ -@end macro - -@macro trampfn {method, user, host, localname} +@macro trampfn {method, userhost, localname} @value{prefix}@c -@yyy{\method\,@value{postfixhop}}@c -@yyy{\user\,@@}@c -\host\@value{postfix}\localname\ +\method\@value{postfixhop}@c +\userhost\@value{postfix}\localname\ @end macro -@end ifset -@c Texinfo 4.13. -@ifclear txicommandconditionals -@macro xxx {one}@c -@set \one\@c -@end macro - -@macro yyy {one, two}@c -@xxx{x\one\}@c -@ifclear x@c -\one\@w{}\two\@c -@end ifclear -@clear x\one\@c -@end macro +@c Similar, but without a method prefix. -@macro trampfn {method, user, host, localname}@c -@value{prefix}@yyy{\method\,@value{postfixhop}}@yyy{\user\,@@}\host\@value{postfix}\localname\@c +@macro trampf {userhost, localname} +@value{prefix}@c +\userhost\@value{postfix}\localname\ @end macro -@end ifclear @copying Copyright @copyright{} 1999--2016 Free Software Foundation, Inc. @@ -499,7 +468,7 @@ In December 2001, XEmacs package repository adds @value{tramp}. @value{tramp} is initially configured to use the @command{scp} program to connect to the remote host. Just type @kbd{C-x C-f} and then enter -file name @file{@trampfn{, user, host, /path/to.file}}. For details, +file name @file{@trampf{user@@host,/path/to.file}}. For details, see @xref{Default Method}. For problems related to the behavior of remote shell, see @ref{Remote @@ -913,7 +882,7 @@ authorization, @value{tramp} provides for an extended syntax in percent symbol, and domain is the windows domain name). An example: @example -@trampfn{smb, daniel%BIZARRE, melancholia, /daniel$$/.emacs} +@trampfn{smb,daniel%BIZARRE@@melancholia,/daniel$$/.emacs} @end example where user @code{daniel} connects as a domain user to the SMB host @@ -925,7 +894,7 @@ substitute the domain name with the name of the local host in UPPERCASE as shown here: @example -@trampfn{smb, daniel%MELANCHOLIA, melancholia, /daniel$$/.emacs} +@trampfn{smb,daniel%MELANCHOLIA@@melancholia,/daniel$$/.emacs} @end example where user @code{daniel} connects as local user to the SMB host @@ -969,7 +938,7 @@ the custom option @option{tramp-adb-connect-if-not-connected} is not @value{tramp} does not require a host name part of the remote file name when a single Android device is connected to @command{adb}. -@value{tramp} instead uses @file{@trampfn{adb, , ,}} as the default +@value{tramp} instead uses @file{@trampfn{adb,,}} as the default name. @command{adb devices} shows available host names. @option{adb} method normally does not need user name to authenticate @@ -1011,7 +980,7 @@ active, @pxref{Top, , D-Bus, dbus}. This method is for connecting to remote hosts with the Apple Filing Protocol for accessing files on Mac OS X volumes. @value{tramp} access syntax requires a leading volume (share) name, for example: -@file{@trampfn{afp, user, host, /volume}}. +@file{@trampfn{afp,user@@host,/volume}}. @item @option{dav} @item @option{davs} @@ -1179,7 +1148,7 @@ access and it has the most reasonable security protocols, use @file{/etc/motd} file on the otherhost: @example -@kbd{C-x C-f @trampfn{ssh, root, otherhost,/etc/motd} @key{RET}} +@kbd{C-x C-f @trampfn{ssh,root@@otherhost,/etc/motd} @key{RET}} @end example If @option{ssh} is unavailable for whatever reason, look for other @@ -1190,7 +1159,7 @@ For editing local files as @option{su} or @option{sudo} methods, try the shortened syntax of @samp{root}: @example -@kbd{C-x C-f @trampfn{su, , , /etc/motd} @key{RET}} +@kbd{C-x C-f @trampfn{su,,/etc/motd} @key{RET}} @end example For editing large files, @option{scp} is faster than @option{ssh}. @@ -1263,7 +1232,7 @@ default user and default host can be overridden as follows: tramp-default-host "target") @end lisp -With both defaults set, @samp{@trampfn{ssh, , ,}} will connect +With both defaults set, @samp{@trampfn{ssh,,}} will connect @value{tramp} to John's home directory on target. @ifset emacs @@ -1323,7 +1292,7 @@ user @samp{bird} to reach remote hosts outside the local domain: @lisp (add-to-list 'tramp-default-proxies-alist - '("\\." nil "@trampfn{ssh, bird, bastion.your.domain,}")) + '("\\." nil "@trampfn{ssh,bird@@bastion.your.domain,}")) (add-to-list 'tramp-default-proxies-alist '("\\.your\\.domain\\'" nil nil)) @end lisp @@ -1339,7 +1308,7 @@ connect to @samp{bastion.your.domain}, then: (add-to-list 'tramp-default-proxies-alist '("\\`bastion\\.your\\.domain\\'" "\\`bird\\'" - "@trampfn{ssh, , jump.your.domain,}")) + "@trampfn{ssh,jump.your.domain,}")) @end lisp @var{proxy} can take patterns @code{%h} or @code{%u} for @var{host} or @@ -1351,10 +1320,10 @@ access, then use this alist entry: @lisp (add-to-list 'tramp-default-proxies-alist - '("\\.your\\.domain\\'" "\\`root\\'" "@trampfn{ssh, , %h,}")) + '("\\.your\\.domain\\'" "\\`root\\'" "@trampfn{ssh,%h,}")) @end lisp -Opening @file{@trampfn{sudo, , randomhost.your.domain,}} first +Opening @file{@trampfn{sudo,randomhost.your.domain,}} first connects to @samp{randomhost.your.domain} via @code{ssh} under your account name, and then perform @code{sudo -u root} on that host. @@ -1370,7 +1339,7 @@ local one, first connect via @command{ssh}, and then apply @lisp (add-to-list 'tramp-default-proxies-alist - '(nil "\\`root\\'" "@trampfn{ssh, , %h,}")) + '(nil "\\`root\\'" "@trampfn{ssh,%h,}")) (add-to-list 'tramp-default-proxies-alist '((regexp-quote (system-name)) nil nil)) @end lisp @@ -1395,7 +1364,7 @@ discussion of ethical issues.} Then the configuration is: @lisp (add-to-list 'tramp-default-proxies-alist '("\\`host\\.other\\.domain\\'" nil - "@trampfn{tunnel, , proxy.your.domain#3128,}")) + "@trampfn{tunnel,proxy.your.domain#3128,}")) @end lisp Gateway methods in a multiple hop chain can be declared only as the first hop. @@ -1647,8 +1616,7 @@ cases, two different connections may result in the same persistent information. For example, connecting to a host using @command{ssh} and connecting to the same host through @code{sshd} on port 3001. Both access methods result in nearly identical persistent specifications -@file{@trampfn{ssh, , localhost,}} and @file{@trampfn{ssh, , -localhost#3001,}}. +@file{@trampfn{ssh,localhost,}} and @file{@trampfn{ssh,localhost#3001,}}. Changing host names could avoid duplicates. One way is to add a @option{Host} section in @file{~/.ssh/config} (@pxref{Frequently Asked @@ -1680,10 +1648,10 @@ remote shell: @lisp (add-to-list 'tramp-connection-properties - (list (regexp-quote "@trampfn{ssh, user, randomhost.your.domain,}") + (list (regexp-quote "@trampfn{ssh,user@@randomhost.your.domain,}") "remote-shell" "/bin/ksh")) (add-to-list 'tramp-connection-properties - (list (regexp-quote "@trampfn{ssh, user, randomhost.your.domain,}") + (list (regexp-quote "@trampfn{ssh,user@@randomhost.your.domain,}") "remote-shell-login" '("-"))) @end lisp @@ -1699,7 +1667,7 @@ special property @samp{busybox}. For example: @lisp (add-to-list 'tramp-connection-properties - (list (regexp-quote "@trampfn{ssh, user, randomhost.your.domain,}") + (list (regexp-quote "@trampfn{ssh,user@@randomhost.your.domain,}") "busybox" t)) @end lisp @@ -2002,8 +1970,8 @@ directory for temporary files: @end lisp @noindent -Open a remote connection with the command @kbd{C-x C-f @trampfn{ssh, , -192.168.0.26#2222, }}, where @command{sshd} is listening on port +Open a remote connection with the command @kbd{C-x C-f +@trampfn{ssh,192.168.0.26#2222,}}, where @command{sshd} is listening on port @samp{2222}. To add a corresponding entry to the @file{~/.ssh/config} file @@ -2027,7 +1995,7 @@ the previous example, fix the connection properties as follows: @noindent Open a remote connection with a more concise command @kbd{C-x C-f -@trampfn{ssh, , android, }}. +@trampfn{ssh,android,}}. @node Auto-save and Backup @@ -2056,7 +2024,7 @@ exposed. @value{emacsname} by default writes backup files to the same directory as the original files unless changed to another location, such as @file{~/.emacs.d/backups/}. Such a directory will also be used by default by @value{tramp} when using, say, a restricted file -@file{@trampfn{su, root, localhost, /etc/secretfile}}. The backup file +@file{@trampfn{su,root@@localhost,/etc/secretfile}}. The backup file of the secretfile is now owned by the user logged in from tramp and not root. @@ -2145,15 +2113,13 @@ Example: @end ifset @noindent -The backup file name of @file{@trampfn{su, root, localhost, -/etc/secretfile}} would be +The backup file name of +@file{@trampfn{su,root@@localhost,/etc/secretfile}} would be @ifset emacs -@file{@trampfn{su, root, localhost, -~/.emacs.d/backups/!su:root@@localhost:!etc!secretfile~}} +@file{@trampfn{su,root@@localhost,~/.emacs.d/backups/!su:root@@localhost:!etc!secretfile~}} @end ifset @ifset xemacs -@file{@trampfn{su, root, localhost, -~/.emacs.d/backups/![su!root@@localhost]!etc!secretfile~}} +@file{@trampfn{su,root@@localhost,~/.emacs.d/backups/![su!root@@localhost]!etc!secretfile~}} @end ifset Just as for backup files, similar issues of file naming affect @@ -2263,7 +2229,7 @@ passwords or authentication appear in the minibuffer. Hitting @cindex file name syntax @cindex file name examples -@file{@trampfn{, , host, localfilename}} +@file{@trampf{host,localfilename}} opens file @var{localfilename} on the remote host @var{host}, using the default method. @xref{Default Method}. @@ -2289,9 +2255,9 @@ For the file @file{/etc/squid.conf} on the host @code{melancholia}. @end table -@var{host} can take IPv4 or IPv6 address, as in @file{@trampfn{, , -127.0.0.1, .emacs}} or @file{@trampfn{, , -@value{ipv6prefix}::1@value{ipv6postfix}, .emacs}}. +@var{host} can take IPv4 or IPv6 address, as in +@file{@trampf{127.0.0.1,.emacs}} or +@file{@trampf{@value{ipv6prefix}::1@value{ipv6postfix},.emacs}}. @ifset emacs For syntactical reasons, IPv6 addresses must be embedded in square brackets @file{@value{ipv6prefix}} and @file{@value{ipv6postfix}}. @@ -2302,10 +2268,10 @@ remote user name for log in to the remote host. Specifying a different name using the proper syntax will override this default behavior: @example -@trampfn{, user, host, path/to.file} +@trampf{user@@host,path/to.file} @end example -@file{@trampfn{, daniel, melancholia, .emacs}} is for file +@file{@trampf{daniel@@melancholia,.emacs}} is for file @file{.emacs} in @code{daniel}'s home directory on the host, @code{melancholia}. @@ -2326,15 +2292,14 @@ The syntax specifications for user, host, and file do not change. To connect to the host @code{melancholia} as @code{daniel}, using @option{ssh} method for @file{.emacs} in @code{daniel}'s home -directory, the full specification is: @file{@trampfn{ssh, daniel, -melancholia, .emacs}}. +directory, the full specification is: +@file{@trampfn{ssh,daniel@@melancholia,.emacs}}. A remote file name containing a host name, which is the same string as a method name, is not allowed. For specifying port numbers, affix @file{#} to the host -name. For example: @file{@trampfn{ssh, daniel, melancholia#42, -.emacs}}. +name. For example: @file{@trampfn{ssh,daniel@@melancholia#42,.emacs}}. @node File name completion @@ -2355,7 +2320,7 @@ For example, type @kbd{C-x C-f @value{prefix}t @key{TAB}}, @value{tramp} completion choices show up as @example -@c @multitable {@trampfn{telnet, , melancholia.danann.net,}} {@trampfn{telnet, , 192.168.0.1,}} +@c @multitable {@trampfn{telnet,melancholia.danann.net,}} {@trampfn{telnet,192.168.0.1,}} @multitable @columnfractions .5 .5 @ifset emacs @item @value{prefixhop}telnet@value{postfixhop} @tab tmp/ @@ -2382,10 +2347,11 @@ shows host names @value{tramp} from @file{/etc/hosts} file, for example. @example @multitable @columnfractions .5 .5 -@c @multitable {@trampfn{telnet, , melancholia.danann.net,}} {@trampfn{telnet, , 192.168.0.1,}} -@item @trampfn{telnet, , 127.0.0.1,} @tab @trampfn{telnet, , 192.168.0.1,} -@item @trampfn{telnet, , @value{ipv6prefix}::1@value{ipv6postfix},} @tab @trampfn{telnet, , localhost,} -@item @trampfn{telnet, , melancholia.danann.net,} @tab @trampfn{telnet, , melancholia,} +@c @multitable {@trampfn{telnet,melancholia.danann.net,}} {@trampfn{telnet,192.168.0.1,}} +@item @trampfn{telnet,127.0.0.1,} @tab @trampfn{telnet,192.168.0.1,} +@c @item @trampfn{telnet,@value{ipv6prefix}::1@value{ipv6postfix},} @tab @trampfn{telnet,localhost,} +@item @value{prefix}telnet@value{postfixhop}@value{ipv6prefix}::1@value{ipv6postfix}@value{postfix} @tab @trampfn{telnet,localhost,} +@item @trampfn{telnet,melancholia.danann.net,} @tab @trampfn{telnet,melancholia,} @end multitable @end example @@ -2415,21 +2381,21 @@ Example: @example @ifset emacs -@kbd{C-x C-f @trampfn{telnet, , melancholia, /usr/local/bin//etc} @key{TAB}} - @print{} @trampfn{telnet, , melancholia, /etc} +@kbd{C-x C-f @trampfn{telnet,melancholia,/usr/local/bin//etc} @key{TAB}} + @print{} @trampfn{telnet,melancholia,/etc} -@kbd{C-x C-f @trampfn{telnet, , melancholia, //etc} @key{TAB}} +@kbd{C-x C-f @trampfn{telnet,melancholia,//etc} @key{TAB}} @print{} /etc -@kbd{C-x C-f @trampfn{telnet, , melancholia, /usr/local/bin///etc} @key{TAB}} +@kbd{C-x C-f @trampfn{telnet,melancholia,/usr/local/bin///etc} @key{TAB}} @print{} /etc @end ifset @ifset xemacs -@kbd{C-x C-f @trampfn{telnet, , melancholia, /usr/local/bin//}} - @print{} @trampfn{telnet, , melancholia, /} +@kbd{C-x C-f @trampfn{telnet,melancholia,/usr/local/bin//}} + @print{} @trampfn{telnet,melancholia,/} -@kbd{C-x C-f @trampfn{telnet, , melancholia, //}} +@kbd{C-x C-f @trampfn{telnet,melancholia,//}} @print{} / @end ifset @end example @@ -2464,8 +2430,7 @@ remote host name and file name. For example, hopping over a single proxy @samp{bird@@bastion} to a remote file on @samp{you@@remotehost}: @example -@c @kbd{C-x C-f @trampfn{ssh@value{postfixhop}bird@@bastion|ssh, you, -@c remotehost, /path}} +@c @kbd{C-x C-f @trampfn{ssh@value{postfixhop}bird@@bastion|ssh,you,remotehost,/path}} @kbd{C-x C-f @value{prefix}ssh@value{postfixhop}bird@@bastion|ssh@value{postfixhop}you@@remotehost@value{postfix}/path} @end example @@ -2475,7 +2440,7 @@ Proxies can take patterns @code{%h} or @code{%u}. @code{tramp-default-proxies-alist} and is available for re-use during that @value{emacsname} session. Subsequent @value{tramp} connections to the same remote host can then use the shortcut form: -@samp{@trampfn{ssh, you, remotehost, /path}}. +@samp{@trampfn{ssh,you@@remotehost,/path}}. @defopt tramp-save-ad-hoc-proxies @vindex tramp-save-ad-hoc-proxies @@ -2631,7 +2596,7 @@ on remote hosts and displays output in buffers on the local host. Example: @example -@kbd{C-x C-f @trampfn{sudo, , , } @key{RET}} +@kbd{C-x C-f @trampfn{sudo,,} @key{RET}} @kbd{M-! tail -f /var/log/syslog.log & @key{RET}} @end example @@ -2653,14 +2618,14 @@ You must add the module @code{eshell-tramp} to @kbd{M-x eshell} on a remote host: @example -@b{~ $} cd @trampfn{sudo, , , /etc} @key{RET} -@b{@trampfn{sudo, root, host, /etc} $} hostname @key{RET} +@b{~ $} cd @trampfn{sudo,,/etc} @key{RET} +@b{@trampfn{sudo,root@@host,/etc} $} hostname @key{RET} host -@b{@trampfn{sudo, root, host, /etc} $} id @key{RET} +@b{@trampfn{sudo,root@@host,/etc} $} id @key{RET} uid=0(root) gid=0(root) groups=0(root) -@b{@trampfn{sudo, root, host, /etc} $} find-file shadow @key{RET} +@b{@trampfn{sudo,root@@host,/etc} $} find-file shadow @key{RET} # -@b{@trampfn{sudo, root, host, /etc} $} +@b{@trampfn{sudo,root@@host,/etc} $} @end example @ifset emacs @@ -2671,16 +2636,16 @@ uid=0(root) gid=0(root) groups=0(root) (@pxref{Multi-hops}): @example -@b{~ $} cd @trampfn{ssh, user, remotehost, /etc} @key{RET} -@b{@trampfn{ssh, user, remotehost, /etc} $} find-file shadow @key{RET} -File is not readable: @trampfn{ssh, user, remotehost, /etc/shadow} -@b{@trampfn{ssh, user, remotehost, /etc} $} sudo find-file shadow @key{RET} +@b{~ $} cd @trampfn{ssh,user@@remotehost,/etc} @key{RET} +@b{@trampfn{ssh,user@@remotehost,/etc} $} find-file shadow @key{RET} +File is not readable: @trampfn{ssh,user@@remotehost,/etc/shadow} +@b{@trampfn{ssh,user@@remotehost,/etc} $} sudo find-file shadow @key{RET} # -@b{@trampfn{ssh, user, remotehost, /etc} $} su - @key{RET} -@b{@trampfn{su, root, remotehost, /root} $} id @key{RET} +@b{@trampfn{ssh,user@@remotehost,/etc} $} su - @key{RET} +@b{@trampfn{su,root@@remotehost,/root} $} id @key{RET} uid=0(root) gid=0(root) groups=0(root) -@b{@trampfn{su, root, remotehost, /root} $} +@b{@trampfn{su,root@@remotehost,/root} $} @end example @end ifset @@ -2702,11 +2667,11 @@ with a remote file name: @example @kbd{M-x gdb @key{RET}} -@b{Run gdb (like this):} gdb --annotate=3 @trampfn{ssh, , host, ~/myprog} @key{RET} +@b{Run gdb (like this):} gdb --annotate=3 @trampfn{ssh,host,~/myprog} @key{RET} @end example Relative file names are based on the remote default directory. When -@file{myprog.pl} exists in @file{@trampfn{ssh, , host, /home/user}}, +@file{myprog.pl} exists in @file{@trampfn{ssh,host,/home/user}}, valid calls include: @example @@ -2761,8 +2726,9 @@ To open @command{powershell} as a remote shell, use this: This command flushes all connection related objects. @option{vec} is the internal representation of a remote connection. When called interactively, this command lists active remote connections in the -minibuffer. Each connection is of the format @file{@trampfn{method, -user, host, }}. Flushing remote connections also cleans the password +minibuffer. Each connection is of the format +@file{@trampfn{method,user@@host,}}. Flushing remote connections also +cleans the password cache (@pxref{Password handling}), file cache, connection cache (@pxref{Connection caching}), and connection buffers. @end deffn @@ -3226,7 +3192,7 @@ HISTFILE=/dev/null How to shorten long file names when typing in @value{tramp}? Adapt several of these approaches to reduce typing. If the full name -is @file{@trampfn{ssh, news, news.my.domain, /opt/news/etc}}, then: +is @file{@trampfn{ssh,news@@news.my.domain,/opt/news/etc}}, then: @enumerate @@ -3241,11 +3207,11 @@ You can define default methods and user names for hosts, tramp-default-user "news") @end lisp -The reduced typing: @kbd{C-x C-f @trampfn{, , news.my.domain, /opt/news/etc}}. +The reduced typing: @kbd{C-x C-f @trampf{news.my.domain,/opt/news/etc}}. @strong{Note} that there are some useful shortcuts already. Accessing your local host as @samp{root} user, is possible just by @kbd{C-x C-f -@trampfn{su, , ,}}. +@trampfn{su,,}}. @item Use configuration options of the access method: @@ -3260,7 +3226,7 @@ Host xy User news @end example -The reduced typing: @kbd{C-x C-f @trampfn{ssh, , xy, /opt/news/etc}}. +The reduced typing: @kbd{C-x C-f @trampfn{ssh,xy,/opt/news/etc}}. Depending on the number of files in the directories, host names completion can further reduce key strokes: @kbd{C-x C-f @@ -3274,7 +3240,7 @@ the minibuffer. Environment variables are set either outside @value{emacsname} or inside @value{emacsname} with Lisp: @lisp -(setenv "xy" "@trampfn{ssh, news, news.my.domain, /opt/news/etc/}") +(setenv "xy" "@trampfn{ssh,news@@news.my.domain,/opt/news/etc/}") @end lisp The reduced typing: @kbd{C-x C-f $xy @key{RET}}. @@ -3295,7 +3261,7 @@ Redefine another key sequence in @value{emacsname} for @kbd{C-x C-f}: (find-file (read-file-name "Find Tramp file: " - "@trampfn{ssh, news, news.my.domain, /opt/news/etc/}")))) + "@trampfn{ssh,news@@news.my.domain,/opt/news/etc/}")))) @end lisp Simply typing @kbd{C-x C-y} would prepare minibuffer editing of file @@ -3312,7 +3278,7 @@ Abbreviation list expansion can be used to reduce typing long file names: @lisp (add-to-list 'directory-abbrev-alist - '("^/xy" . "@trampfn{ssh, news, news.my.domain, /opt/news/etc/}")) + '("^/xy" . "@trampfn{ssh,news@@news.my.domain,/opt/news/etc/}")) @end lisp The reduced typing: @kbd{C-x C-f /xy @key{RET}}. @@ -3329,7 +3295,7 @@ minibuffer: @lisp (define-abbrev-table 'my-tramp-abbrev-table - '(("xy" "@trampfn{ssh, news, news.my.domain, /opt/news/etc/}"))) + '(("xy" "@trampfn{ssh,news@@news.my.domain,/opt/news/etc/}"))) (add-hook 'minibuffer-setup-hook @@ -3427,7 +3393,7 @@ directory to the cache: @lisp (eval-after-load "filecache" '(file-cache-add-directory - "@trampfn{ssh, news, news.my.domain, /opt/news/etc/}")) + "@trampfn{ssh,news@@news.my.domain,/opt/news/etc/}")) @end lisp Then use directory completion in the minibuffer with @kbd{C-x C-f @@ -3479,11 +3445,11 @@ multi-hops}) via bookmarks, recent files, filecache, bbdb, @end ifset or another package, use the full ad-hoc file name including all hops, -like @file{@trampfn{ssh, bird, -bastion|ssh@value{postfixhop}news.my.domain, /opt/news/etc}}. +like +@file{@trampfn{ssh,bird@@bastion|ssh@value{postfixhop}news.my.domain,/opt/news/etc}}. Alternatively, when saving abbreviated multi-hop file names -@file{@trampfn{ssh, news, news.my.domain, /opt/news/etc}}, the custom +@file{@trampfn{ssh,news@@news.my.domain,/opt/news/etc}}, the custom option @code{tramp-save-ad-hoc-proxies} must be set non-@code{nil} value. @@ -3516,7 +3482,7 @@ location. Then start Emacs Client from the command line: @example -emacsclient @trampfn{ssh, user, host, /file/to/edit} +emacsclient @trampfn{ssh,user@@host,/file/to/edit} @end example @code{user} and @code{host} refer to the local host. @@ -3526,7 +3492,7 @@ script @file{emacsclient.sh}: @example #!/bin/sh -emacsclient @trampfn{ssh, $(whoami), $(hostname --fqdn), $1} +emacsclient @trampfn{ssh,$(whoami)@@$(hostname --fqdn),$1} @end example Then change the environment variable @env{EDITOR} to point to the commit 7faf9193cdc503d1d0c8a1d3ffe12a8bd6bce16b Author: Lars Ingebrigtsen Date: Sun Jan 24 17:50:27 2016 +0100 * eww.el (eww-render): Protect against empty content-types. diff --git a/lisp/net/eww.el b/lisp/net/eww.el index 48bf556..29cde24 100644 --- a/lisp/net/eww.el +++ b/lisp/net/eww.el @@ -315,8 +315,9 @@ Currently this means either text/html or application/xhtml+xml." (let* ((headers (eww-parse-headers)) (content-type (mail-header-parse-content-type - (or (cdr (assoc "content-type" headers)) - "text/plain"))) + (if (zerop (length (cdr (assoc "content-type" headers)))) + "text/plain" + (cdr (assoc "content-type" headers))))) (charset (intern (downcase (or (cdr (assq 'charset (cdr content-type))) commit 6f747a7c570b2f965b6809221465b881eb61adab Author: Nicolas Petton Date: Sun Jan 24 13:30:08 2016 +0100 authors.el updates * admin/authors.el (authors-ignored-files, authors-renamed-files-alist): Additions. diff --git a/admin/authors.el b/admin/authors.el index d579c1f..a303f4b 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -279,6 +279,9 @@ Changes to files matching one of the regexps in this list are not listed.") "ChangeLog.nextstep" "Emacs.clr" "spec.txt" "gfdl.1" "texi/Makefile.in" + "lwlib/autodeps.mk" + "oldXMenu/autodeps.mk" + "src/autodeps.mk" "Imakefile" "icons/sink.ico" "aixcc.lex" "nxml/char-name/unicode" "spec.txt" @@ -294,6 +297,7 @@ Changes to files matching one of the regexps in this list are not listed.") "cedet/tests/test.cpp" "cedet/tests/test.py" "cedet/tests/teststruct.cpp" + "subdirs.el" "*.el" ;; Autogen: "cus-load.el" "finder-inf.el" "ldefs-boot.el" "loaddefs-boot.el" @@ -357,12 +361,37 @@ Changes to files matching one of the regexps in this list are not listed.") "debian/scripts/startup.erc" "debian/scripts/startup.erc-speak" ;; Used to be in admin, not very interesting. - "emacs-pretesters" "make-announcement" "make-changelog-diff" + "emacs-pretesters" "make-announcement" "make-changelog-diff" "admin/FOR-RELEASE" "etc/FOR-RELEASE" "nextstep/FOR-RELEASE" "FOR-RELEASE" ;; Textual comments that are not files. "All" "Version" "Everywhere" "Many" "Various" "files" ;; Directories. "vms" "mac" "url" "tree-widget" "info/dir" + ;; Not in gnulib anymore + "lib/qset-acl.c" "lib/qcopy-acl.c" "lib/file-has-acl.c" + ;; files from old MS Windows build procedures + "makefile.w32-in" + "admin/unidata/makefile.w32-in" + "lib/makefile.w32-in" + "leim/makefile.w32-in" + "src/makefile.w32-in" + "nt/emacs-src.tags" + "doc/emacs/makefile.w32-in" + "doc/lispintro/makefile.w32-in" + "doc/lispref/makefile.w32-in" + "doc/misc/makefile.w32-in" + "nt/paths.h" + "paths.h" + "src/paths.h" + "envadd.bat" + "multi-install-info.bat" + "INSTALL.OLD" + "nt/src/paths.h" + "nmake.defs" + "gmake.defs" + "zipdist.bat" + "nt/makefile.w32-in" + "config.nt" ) "List of files and directories to ignore. Changes to files in this list are not listed.") @@ -762,6 +791,8 @@ in the repository.") ("DIFF" . "OTHER.EMACSES") ("CCADIFF" . "OTHER.EMACSES") ("GOSDIFF" . "OTHER.EMACSES") + ;; Nextstep + ("nextstep/Cocoa/Emacs.base/Contents/Info.plist" . "nextstep/templates/Info.plist.in") ;; Moved from lisp/tpu-doc.el to etc/tpu-edt.doc in Emacs 19.29. ;; Removed in Emacs 19.30, replaced by new file etc/edt-user.doc ;; (no associated ChangeLog entry). @@ -886,6 +917,8 @@ in the repository.") ("nt/README.W32" . "README.W32") ("notes/BRANCH" . "notes/repo") ("notes/bzr" . "notes/repo") + ;; moved from lisp/ to lisp/net/ + ("lisp/pinentry.el" . "lisp/net/pinentry.el") ) "Alist of files which have been renamed during their lifetime. Elements are (OLDNAME . NEWNAME).") commit 5152b211e81f969ac7cf31e7be6564a8be3299c5 Author: Nicolas Petton Date: Sun Jan 24 12:45:29 2016 +0100 ; ChangeLog fixes * ChangeLog.2: * doc/emacs/ChangeLog.1: * lisp/ChangeLog.17: Fix ChangeLog entries diff --git a/ChangeLog.2 b/ChangeLog.2 index 7a63a95..f406916 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -26,7 +26,7 @@ Provide NS notification objects where required to eliminate warnings - * nsterm.m (windowDidResize:, toggleFullScreen:): + * src/nsterm.m (windowDidResize:, toggleFullScreen:): Call notification functions with notification objects as per delegate APIs. @@ -45,7 +45,7 @@ Ignore fullscreen exit notifications on NS when frame is dead - * nsterm.m (windowDidResize:, windowWillExitFullScreen:) + * src/nsterm.m (windowDidResize:, windowWillExitFullScreen:) (windowDidExitFullScreen:): Return if frame is dead. These functions may be called when a fullscreen frame is closed; they are called before, not after. @@ -197,7 +197,7 @@ 2015-11-05 Juanma Barranquero - * test/automated/elisp-mode-test.el: Silence some run-time warnings. + * test/automated/elisp-mode-tests.el: Silence some run-time warnings. (xref-elisp-deftest): Bind `find-file-suppress-same-file-warnings' to t. 2015-11-05 Tassilo Horn @@ -282,7 +282,7 @@ 2015-11-03 Jay Belanger - * lisp/calc/calc (calc-bug-address): Change maintainer address. + * lisp/calc/calc.el (calc-bug-address): Change maintainer address. 2015-11-03 Michael Albinus @@ -380,7 +380,7 @@ Add JSX indentation via js-jsx-mode (Bug#21799) - * progmodes/js.el: Add JSX indentation support. + * lisp/progmodes/js.el: Add JSX indentation support. (js--jsx-end-tag-re) (js--jsx-after-tag-re): New variables. (js--jsx-find-before-tag) @@ -389,7 +389,7 @@ (js--expression-in-sgml-indent-line) (js-jsx-indent-line) (js-jsx-mode): New functions. - * test/indent/js-jsx.el: New file. + * test/indent/js-jsx.js: New file. * etc/NEWS: Add information about js-jsx-mode. 2015-10-31 Michael Albinus @@ -801,8 +801,8 @@ incomplete" error issued when double-clicking on the Emacs application. - * nsterm.m (ns_constrain_all_frames, ns_init_term): Block input. - * nsterm.m (ns_send_appdefined, EmacsApp): Trace output. + * src/nsterm.m (ns_constrain_all_frames, ns_init_term): Block input. + * src/nsterm.m (ns_send_appdefined, EmacsApp): Trace output. 2015-10-28 Artur Malabarba @@ -813,12 +813,12 @@ Fix incorrect NextStep tool-bar-mode -- wrong number of rows in frame. - * nsterm.h (struct ns_output): New flag, in_animation. - * nsfns.m (Fx_create_frame): Initialize in_animation flag. - * nsmenu.m (free_frame_tool_bar, update_frame_tool_bar): Set + * src/nsterm.h (struct ns_output): New flag, in_animation. + * src/nsfns.m (Fx_create_frame): Initialize in_animation flag. + * src/nsmenu.m (free_frame_tool_bar, update_frame_tool_bar): Set in_animation flag around call to "setVisible". Set new tool bar height before call to setVisible. - * nsterm.m (x_set_window_size): Don't call [view setRow: + * src/nsterm.m (x_set_window_size): Don't call [view setRow: andColumns:] as this fools the subsequent call to updateFrameSize from performing the real resize. (windowDidResize): Don't update anything when in_animation is @@ -826,9 +826,9 @@ Trace output. - * nsmenu.m (free_frame_tool_bar, update_frame_tool_bar) + * src/nsmenu.m (free_frame_tool_bar, update_frame_tool_bar) (EmacsToolbar): - * nsterm.m (x_set_window_size, updateFrameSize) + * src/nsterm.m (x_set_window_size, updateFrameSize) ([EmacsView setRows: andColumns:]) 2015-10-28 Nicolas Petton @@ -1507,7 +1507,7 @@ Don't add the xsi:type attribute (Exchange refuses requests which have this attribute). - * lisp/net/soap-client.el, soap-inspect.el: Convert to lexical binding, + * lisp/net/soap-client.el, lisp/net/soap-inspect.el: Convert to lexical binding, correct compiler warnings about unused function arguments and local variables. @@ -1810,7 +1810,7 @@ (NSTRACE_RETURN_what): Macros to print return value for various types. - * nsterm.m: Remove old NSTRACE macro + * src/nsterm.m: Remove old NSTRACE macro * src/nsterm.m (nstrace_num): Trace counter. (nstrace_depth): Current call depth. (nstrace_leave): NSTRACE support function, called when the @@ -1859,16 +1859,16 @@ (resetCursorRects, setPosition, EmacsScroller_mouseDown) (EmacsScroller_mouseDragged, syms_of_nsterm): Use new trace system. - * nsfns.m: Remove old NSTRACE macro + * src/nsfns.m: Remove old NSTRACE macro * src/nsfns.m (x_set_icon_name, ns_set_name, x_explicitly_set_name) (x_implicitly_set_name, x_set_title, ns_set_name_as_filename) (ns_implicitly_set_icon_type, x_set_icon_type): Use new trace system. - * nsimage.m: Remove old NSTRACE macro + * src/nsimage.m: Remove old NSTRACE macro * src/nsimage.m (ns_image_from_XBM, ns_image_for_XPM) (ns_image_from_bitmap_file, ns_load_image): Use new trace system. - * nsmenu.m: Remove old NSTRACE macro + * src/nsmenu.m: Remove old NSTRACE macro * src/nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog): Use new trace system. @@ -2268,8 +2268,8 @@ Unbreak `group' option for `mail-sources' - * nnml.el (nnml-retrieve-groups, nnml-request-scan): - * nnmail.el (nnmail-get-new-mail-per-group) + * lisp/gnus/nnml.el (nnml-retrieve-groups, nnml-request-scan): + * lisp/gnus/nnmail.el (nnmail-get-new-mail-per-group) (nnmail-get-new-mail-1): Unbreak `group' option for `mail-sources'. 2015-10-19 Nicolas Petton @@ -2658,7 +2658,7 @@ Reduce face-related consing during frame creation. - * faces.el (face--attributes-unspecified): Compute the "unspecified" + * lisp/faces.el (face--attributes-unspecified): Compute the "unspecified" attribute list once. (face-spec-reset-face): Use it instead of building the list. @@ -4248,7 +4248,7 @@ Fixes bug#21365. - * dec/lispref/edebug.texi (Edebug Execution Modes): Change the + * doc/lispref/edebug.texi (Edebug Execution Modes): Change the description of `edebug-initial-mode' from that of its implementation to that of its visual effect and use. Move the paragraph higher up. @@ -4873,7 +4873,7 @@ 2015-09-15 Jay Belanger Add new functions for the root mean square of a (Calc) vector - * lisp/calc/calc-stats.el (calcFunc-rms, calc-vector-rms): + * lisp/calc/calc-stat.el (calcFunc-rms, calc-vector-rms): New functions. * lisp/calc/calc-ext.el (calc-init-extensions): Add keybinding for `calc-vector-rms', add autoloads for `calc-vector-rms' and @@ -6683,7 +6683,7 @@ (mac_font_create_available_families, mac_font_shape): Remove macros for renamed functions. (mac_nsctfont_copy_font_descriptor): Remove unused macro. - * src/macterm.m (mac_font_descriptor_supports_languages): + * src/macfont.m (mac_font_descriptor_supports_languages): Rename from mac_ctfont_descriptor_supports_languages. (mac_font_create_preferred_family_for_attributes): Rename from mac_ctfont_create_preferred_family_for_attributes. @@ -8730,7 +8730,7 @@ 2015-08-14 Ronnie Schnell - * doc/emacs/misc.text (Amusements): Fixed typo. + * doc/emacs/misc.texi (Amusements): Fixed typo. 2015-08-14 Eli Zaretskii @@ -9085,7 +9085,7 @@ * test/automated/ert-tests.el (ert-test-deftest): Add FIXME. - * org.el: Fix up some lexical scoping warnings, and use dolist + * lisp/org/org.el: Fix up some lexical scoping warnings, and use dolist * lisp/org/org.el (org-set-regexps-and-options-for-tags, org-goto-map) (org-set-regexps-and-options, org-assign-fast-keys) (org-contextualize-keys, org-contextualize-validate-key) @@ -9151,7 +9151,7 @@ 2015-08-07 Phillip Lord Improve error signalling for seq-subseq - * lisp/seq.el (seq-subseq): The existing behavior is to error + * lisp/emacs-lisp/seq.el (seq-subseq): The existing behavior is to error when indexes are too large, but to silently ignore numbers which are too negative for lists. String and vector handling errors in both cases. This has been regularized. Error signaling behavior @@ -9188,8 +9188,8 @@ Add support for 'inhibit-same-window in 'display-buffer-use-some-frame' * lisp/window.el (display-buffer-use-some-frame): Add support for 'inhibit-same-window in alist. - * doc/windows.texi (display-buffer-use-some-frame): Doc support for - 'inhibit-same-window in alist. + * doc/lispref/windows.texi (display-buffer-use-some-frame): + Doc support for 'inhibit-same-window in alist. 2015-08-07 Eli Zaretskii @@ -9963,7 +9963,7 @@ Check also for hits in `tramp-connection-properties'. Adapt docstring. (tramp-get-remote-tmpdir): Cache only the local name of tmpdir. (all): Adapt `tramp-get-method-parameter' calls. - * lisp/net/trampver.el Update release number. + * lisp/net/trampver.el: Update release number. * test/automated/tramp-tests.el (tramp--instrument-test-case): Add "^make-symbolic-link not supported$" to `debug-ignored-errors'. (tramp-test13-make-directory, tramp--test-adb-p) @@ -11757,7 +11757,7 @@ * lisp/emacs-lisp/package.el (package--with-work-buffer-async): Fix error reporting. - * lisp/let-alist.el: Move to lisp/emacs-lisp/let-alist.el + * lisp/emacs-lisp/let-alist.el: Move to lisp/emacs-lisp/let-alist.el * lisp/emacs-lisp/package.el: Revert buffer after any operation Call `package-menu--post-refresh' after any operation that changes @@ -12223,7 +12223,7 @@ 2015-06-11 Artur Malabarba - * lisp/let-alist.el (let-alist--deep-dot-search): Fix cons. + * lisp/emacs-lisp/let-alist.el (let-alist--deep-dot-search): Fix cons. * test/automated/let-alist.el (let-alist-cons): Test it. 2015-06-11 Nicolas Richard @@ -12964,10 +12964,10 @@ Throw an error when converting a map into an unknown map type * lisp/emacs-lisp/map.el (map-into): Throw an error if type is not valid. - * test/automated/map-test.el: Add a regression test. + * test/automated/map-tests.el: Add a regression test. New library map.el similar to seq.el but for mapping data structures. - * test/automated/map-test.el: New file. + * test/automated/map-tests.el: New file. * lisp/emacs-lisp/map.el: New file. 2015-05-30 Dmitry Gutov @@ -17902,7 +17902,7 @@ 2015-04-07 Alan Mackenzie Always mark "<" and ">" in #include directives with text properties. - * lisp/progmodes/c-fonts.el (c-cpp-matchers): Replace a font-lock + * lisp/progmodes/cc-fonts.el (c-cpp-matchers): Replace a font-lock "anchored matcher" with an invocation of c-make-font-lock-search-function to allow fontification when there's no trailing space on an "#include <..>" line. diff --git a/doc/emacs/ChangeLog.1 b/doc/emacs/ChangeLog.1 index ecb0cb7..3f746eb 100644 --- a/doc/emacs/ChangeLog.1 +++ b/doc/emacs/ChangeLog.1 @@ -246,8 +246,8 @@ * emacs-xtra.texi: ditto. * emacs.texi: ditto. * makefile.w32-in: ditto. - * msdog-xtra.texi: ditto, and rename file. - * msdog.texi: ditto, and rename file. + * msdos-xtra.texi: ditto, and rename file. + * msdos.texi: ditto, and rename file. 2014-07-21 Glenn Morris diff --git a/lisp/ChangeLog.17 b/lisp/ChangeLog.17 index 10a4663..ee812bd 100644 --- a/lisp/ChangeLog.17 +++ b/lisp/ChangeLog.17 @@ -3951,7 +3951,8 @@ 2014-12-22 Artur Malabarba - * let-alist.el (let-alist): Use `make-symbol' instead of `gensym'. + * emacs-lisp/let-alist.el (let-alist): Use `make-symbol' + instead of `gensym'. 2014-12-20 Michael Albinus @@ -3963,7 +3964,7 @@ 2014-12-19 Artur Malabarba - * let-alist.el (let-alist): Enable access to deeper alists by + * emacs-lisp/let-alist.el (let-alist): Enable access to deeper alists by using dots inside the dotted symbols. 2014-12-19 Alan Mackenzie @@ -4005,7 +4006,7 @@ 2014-12-18 Artur Malabarba - * let-alist.el (let-alist): Evaluate the `alist' argument only once. + * emacs-lisp/let-alist.el (let-alist): Evaluate the `alist' argument only once. 2014-12-18 Sam Steingold @@ -4141,7 +4142,7 @@ 2014-12-14 Artur Malabarba - * let-alist.el: Add lexical binding. + * emacs-lisp/let-alist.el: Add lexical binding. 2014-12-14 Steve Purcell (tiny change) @@ -4273,7 +4274,7 @@ 2014-12-10 Artur Malabarba - * let-alist.el: Add new package and macro. + * emacs-lisp/let-alist.el: Add new package and macro. 2014-12-10 Eric S. Raymond commit 2aae081a14b21424b1e2794ae3bbef8444811c3b Author: Glenn Morris Date: Sun Jan 24 07:23:33 2016 -0500 ; Auto-commit of loaddefs files. diff --git a/lisp/dired.el b/lisp/dired.el index 0ca14b3..64f4cee 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -3905,7 +3905,7 @@ Ask means pop up a menu for the user to select one of copy, move or link." ;;; Start of automatically extracted autoloads. -;;;### (autoloads nil "dired-aux" "dired-aux.el" "ab7321f16a90251f12f0031ddd6a710c") +;;;### (autoloads nil "dired-aux" "dired-aux.el" "11abafc4f164a0e7599096a5f8deb455") ;;; Generated autoloads from dired-aux.el (autoload 'dired-diff "dired-aux" "\ commit 3f481ad0072ea4fe300af7f326de9049a8d32d4a Author: Dmitry Gutov Date: Sun Jan 24 05:17:52 2016 +0300 Rename xref-query-replace to xref-query-replace-in-results * lisp/progmodes/xref.el(xref-query-replace): Rename to xref-query-replace-in-results. (http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01240.html) * lisp/progmodes/xref.el (xref--xref-buffer-mode-map): * lisp/dired-aux.el (dired-do-find-regexp-and-replace): * doc/emacs/dired.texi (Operating on Files): * doc/emacs/maintaining.texi (Xref Commands) (Identifier Search, Identifier Search): Update accordingly. diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi index 6961627..8a72805 100644 --- a/doc/emacs/dired.texi +++ b/doc/emacs/dired.texi @@ -797,8 +797,8 @@ Perform @code{query-replace-regexp} on each of the specified files, replacing matches for @var{regexp} with the string @var{to} (@code{dired-do-find-regexp-and-replace}). -This command is a variant of @code{xref-query-replace}. It presents -an @file{*xref*} buffer that lists all the matches of @var{regexp}, +This command is a variant of @code{xref-query-replace-in-results}. It +presents an @file{*xref*} buffer that lists all the matches of @var{regexp}, and you can use the special commands in that buffer (@pxref{Xref Commands}). In particular, if you exit the query replace loop, you can use @kbd{r} in that buffer to replace more matches. diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 90af5c8..471a16b 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -1875,11 +1875,11 @@ Move to the previous reference and display it in the other window @findex xref-show-location-at-point Display the reference on the current line in the other window (@code{xref-show-location-at-point}). -@findex xref-query-replace +@findex xref-query-replace-in-results @item r @var{pattern} @key{RET} @var{replacement} @key{RET} Perform interactive query-replace on references that match -@var{pattern} (@code{xref-query-replace}), replacing the match with -@var{replacement}. @xref{Identifier Search}. +@var{pattern} (@code{xref-query-replace-in-results}), replacing +the match with @var{replacement}. @xref{Identifier Search}. @findex xref-quit @item q Quit the window showing the @file{*xref*} buffer (@code{xref-quit}). @@ -1901,7 +1901,7 @@ them. @table @kbd @item M-? Find all the references for the identifier at point. -@item M-x xref-query-replace @key{RET} @var{regexp} @key{RET} @var{replacement} @key{RET} +@item M-x xref-query-replace-in-results @key{RET} @var{regexp} @key{RET} @var{replacement} @key{RET} Interactively replace @var{regexp} with @var{replacement} in the names of all the identifiers shown in the @file{*xref*} buffer. @item M-x tags-search @key{RET} @var{regexp} @key{RET} @@ -1923,8 +1923,8 @@ identifier, showing the file name and the line where the identifier is referenced. The XREF mode commands are available in this buffer, see @ref{Xref Commands}. -@findex xref-query-replace - @kbd{M-x xref-query-replace} reads a regexp to match identifier +@findex xref-query-replace-in-results + @kbd{M-x xref-query-replace-in-results} reads a regexp to match identifier names and a replacement string, just like ordinary @kbd{M-x query-replace-regexp}. It then performs the specified replacement in the names of the matching identifiers in all the places in all the diff --git a/etc/NEWS b/etc/NEWS index 048523a..e7b827f 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1162,8 +1162,8 @@ compression command is determined from the new +++ *** New user interface for the `A' and `Q' commands. These keys, now bound to `dired-do-find-regexp' and -`dired-do-find-regexp-and-replace', work similarly to -`xref-find-apropos' and `xref-query-replace': they present the matches +`dired-do-find-regexp-and-replace', work similarly to `xref-find-apropos' +and `xref-query-replace-in-results': they present the matches in the `*xref*' buffer and let you move through the matches. No need to use `tags-loop-continue' to resume the search or replace loop. The previous commands, `dired-do-search' and diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index 831278c..ef1f387 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -2714,7 +2714,7 @@ with the command \\[tags-loop-continue]." '(dired-get-marked-files nil nil 'dired-nondirectory-p))) (declare-function xref--show-xrefs "xref") -(declare-function xref-query-replace "xref") +(declare-function xref-query-replace-in-results "xref") ;;;###autoload (defun dired-do-find-regexp (regexp) @@ -2746,7 +2746,7 @@ with the command \\[tags-loop-continue]." "Query replace regexp in marked files" t t))) (list (nth 0 common) (nth 1 common)))) (with-current-buffer (dired-do-find-regexp from) - (xref-query-replace from to))) + (xref-query-replace-in-results from to))) (defun dired-nondirectory-p (file) (not (file-directory-p file))) diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index b7ac9e0..267853d 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -502,7 +502,7 @@ WINDOW controls how the buffer is displayed: (xref-quit) (xref--pop-to-location xref window))) -(defun xref-query-replace (from to) +(defun xref-query-replace-in-results (from to) "Perform interactive replacement of FROM with TO in all displayed xrefs. This command interactively replaces FROM with TO in the names of the @@ -589,7 +589,7 @@ references displayed in the current *xref* buffer." (define-key map [remap quit-window] #'xref-quit) (define-key map (kbd "n") #'xref-next-line) (define-key map (kbd "p") #'xref-prev-line) - (define-key map (kbd "r") #'xref-query-replace) + (define-key map (kbd "r") #'xref-query-replace-in-results) (define-key map (kbd "RET") #'xref-goto-xref) (define-key map (kbd "C-o") #'xref-show-location-at-point) ;; suggested by Johan Claesson "to further reduce finger movement": commit 62f4ed477ebcbe56087bb1df96340530c84b33a9 Author: Dmitry Gutov Date: Sun Jan 24 03:35:39 2016 +0300 Update cl-defgeneric and cl-defmethod docstrings * lisp/emacs-lisp/cl-generic.el: Remove outdated TODO item. (cl-defgeneric): Rename BODY to DEFAULT-BODY. (cl-defmethod): Mention that multiple dispatch arguments are allowed. Document supported types. (Bug#22336) diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el index b0815f5..5413bdb 100644 --- a/lisp/emacs-lisp/cl-generic.el +++ b/lisp/emacs-lisp/cl-generic.el @@ -83,8 +83,6 @@ ;; - A generic "filter" generalizer (e.g. could be used to cleanly add methods ;; to cl-generic-combine-methods with a specializer that says it applies only ;; when some particular qualifier is used). -;; - A way to dispatch on the context (e.g. the major-mode, some global -;; variable, you name it). ;;; Code: @@ -195,9 +193,9 @@ OPTIONS-AND-METHODS currently understands: - (declare DECLARATIONS) - (:argument-precedence-order &rest ARGS) - (:method [QUALIFIERS...] ARGS &rest BODY) -BODY, if present, is used as the body of a default method. +DEFAULT-BODY, if present, is used as the body of a default method. -\(fn NAME ARGS [DOC-STRING] [OPTIONS-AND-METHODS...] &rest BODY)" +\(fn NAME ARGS [DOC-STRING] [OPTIONS-AND-METHODS...] &rest DEFAULT-BODY)" (declare (indent 2) (doc-string 3)) (let* ((doc (if (stringp (car-safe options-and-methods)) (pop options-and-methods))) @@ -360,10 +358,10 @@ the specializer used will be the one returned by BODY." (defmacro cl-defmethod (name args &rest body) "Define a new method for generic function NAME. I.e. it defines the implementation of NAME to use for invocations where the -value of the dispatch argument matches the specified TYPE. -The dispatch argument has to be one of the mandatory arguments, and -all methods of NAME have to use the same argument for dispatch. -The dispatch argument and TYPE are specified in ARGS where the corresponding +values of the dispatch arguments match the specified TYPEs. +The dispatch arguments have to be among the mandatory arguments, and +all methods of NAME have to use the same set of arguments for dispatch. +Each dispatch argument and TYPE are specified in ARGS where the corresponding formal argument appears as (VAR TYPE) rather than just VAR. The optional second argument QUALIFIER is a specifier that @@ -373,8 +371,14 @@ modifies how the method is combined with other methods, including: :around - Method will be called around everything else The absence of QUALIFIER means this is a \"primary\" method. -Other than a type, TYPE can also be of the form `(eql VAL)' in -which case this method will be invoked when the argument is `eql' to VAL. +TYPE can be one of the basic types (see the full list and their +hierarchy in `cl--generic-typeof-types'), CL struct type, or an +EIEIO class. + +Other than that, TYPE can also be of the form `(eql VAL)' in +which case this method will be invoked when the argument is `eql' +to VAL, or `(head VAL)', in which case the argument is required +to be a cons with VAL as its head. \(fn NAME [QUALIFIER] ARGS &rest [DOCSTRING] BODY)" (declare (doc-string 3) (indent 2) commit 2111e0eeb5a10389790e39b9103fa73bcf2b75c0 Author: Dmitry Gutov Date: Sat Jan 23 12:09:55 2016 +0300 Comment out next-error-function integration in xref * lisp/progmodes/xref.el (xref--xref-buffer-mode): Comment out next-error-function integration (http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01286.html). diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index d32da37..b7ac9e0 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -600,8 +600,10 @@ references displayed in the current *xref* buffer." (define-derived-mode xref--xref-buffer-mode special-mode "XREF" "Mode for displaying cross-references." (setq buffer-read-only t) - (setq next-error-function #'xref--next-error-function) - (setq next-error-last-buffer (current-buffer))) + ;; FIXME: http://debbugs.gnu.org/20489 + ;; (setq next-error-function #'xref--next-error-function) + ;; (setq next-error-last-buffer (current-buffer)) + ) (defun xref--next-error-function (n reset?) (when reset? commit 4e11ad37300504c63850bf540b84d7076c1b12ca Author: John Wiegley Date: Sat Jan 23 11:55:31 2016 -0800 Correct a use of "which" in intro.texi diff --git a/doc/lispref/intro.texi b/doc/lispref/intro.texi index 9d4a720..0f42d4d 100644 --- a/doc/lispref/intro.texi +++ b/doc/lispref/intro.texi @@ -191,7 +191,7 @@ in Lisp programs also. In contexts where a truth value is expected, any non-@code{nil} value is considered to be @var{true}. However, @code{t} is the preferred way to represent the truth value @var{true}. When you need to choose a -value which represents @var{true}, and there is no other basis for +value that represents @var{true}, and there is no other basis for choosing, use @code{t}. The symbol @code{t} always has the value @code{t}. commit a1865bcf966eafdce28f50fb8a19c1bfd831079a Author: Alan Mackenzie Date: Sat Jan 23 19:38:49 2016 +0000 Distinguish the two meanings of Java's keyword "default". Fixes bug #22358. * lisp/progmodes/cc-engine.el (c-guess-basic-syntax CASE 14): Check the context of case labels (including "default") more rigorously. (c-guess-basic-syntax CASE 15): Consequential amendment. * lisp/progmodes/cc-langs.el (c-modifier-kwds): Add "default" to Java's value. diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 8113446..815bd72 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -10072,7 +10072,19 @@ comment at the start of cc-engine.el for more info." paren-state))) ;; CASE 14: A case or default label - ((looking-at c-label-kwds-regexp) + ((save-excursion + (and (looking-at c-label-kwds-regexp) + (or (c-major-mode-is 'idl-mode) + (and + containing-sexp + (goto-char containing-sexp) + (eq (char-after) ?{) + (progn (c-backward-syntactic-ws) t) + (eq (char-before) ?\)) + (c-go-list-backward) + (progn (c-backward-syntactic-ws) t) + (c-simple-skip-symbol-backward) + (looking-at c-block-stmt-2-key))))) (if containing-sexp (progn (goto-char containing-sexp) @@ -10088,6 +10100,7 @@ comment at the start of cc-engine.el for more info." ((save-excursion (back-to-indentation) (and (not (looking-at c-syntactic-ws-start)) + (not (looking-at c-label-kwds-regexp)) (c-forward-label))) (cond (containing-decl-open (setq placeholder (c-add-class-syntax 'inclass diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index 48dd996..8a1d43c 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el @@ -1980,8 +1980,8 @@ will be handled." ;; In CORBA CIDL: "bindsTo" "delegatesTo" "implements" "proxy" "storedOn") ;; Note: "const" is not used in Java, but it's still a reserved keyword. - java '("abstract" "const" "final" "native" "private" "protected" "public" - "static" "strictfp" "synchronized" "transient" "volatile") + java '("abstract" "const" "default" "final" "native" "private" "protected" + "public" "static" "strictfp" "synchronized" "transient" "volatile") pike '("final" "inline" "local" "nomask" "optional" "private" "protected" "public" "static" "variant")) commit 76045f7d6f654ea20e09412e5054f9159d1bb142 Author: Oscar Fuentes Date: Sat Jan 23 14:11:29 2016 +0100 Don't operate on menu bar of nonexistent frame * src/xfns.c (Fx_hide_tip) [USE_LUCID]: Check that the current frame is valid before redisplaying its menu. Fixes bug#22438. diff --git a/src/xfns.c b/src/xfns.c index aad9680..9624ac5 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -6084,16 +6084,19 @@ Value is t if tooltip was open, nil otherwise. */) items is unmapped. Redisplay the menu manually... */ { Widget w; - struct frame *f = SELECTED_FRAME (); - w = f->output_data.x->menubar_widget; + struct frame *f = SELECTED_FRAME (); + if (FRAME_X_P (f) && FRAME_LIVE_P (f)) + { + w = f->output_data.x->menubar_widget; - if (!DoesSaveUnders (FRAME_DISPLAY_INFO (f)->screen) - && w != NULL) - { - block_input (); - xlwmenu_redisplay (w); - unblock_input (); - } + if (!DoesSaveUnders (FRAME_DISPLAY_INFO (f)->screen) + && w != NULL) + { + block_input (); + xlwmenu_redisplay (w); + unblock_input (); + } + } } #endif /* USE_LUCID */ } commit c32f3bc4a383280587cf790b89f6c781d78cc42d Author: Anders Lindgren Date: Sat Jan 23 14:13:20 2016 +0100 Unbreak the GNUstep build. * src/nsterm.m ([EmacsBell init]): In GNUstep, don't use the predefined "caution" image. Add trace. (x_set_window_size): Remove unused variables `cols' and `rows'. (ns_draw_fringe_bitmap): Exclude assignment of `fromRect' when GNUstep is used. ([EmacsView updateFrameSize:]): Remove unused variable `win'. ([EmacsWindow zoom:]): Remove unused variable `f'. diff --git a/src/nsterm.m b/src/nsterm.m index b270e0e..860c55d 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -1161,11 +1161,24 @@ ns_clip_to_row (struct window *w, struct glyph_row *row, - (id)init; { + NSTRACE ("[EmacsBell init]"); if ((self = [super init])) { nestCount = 0; isAttached = false; +#ifdef NS_IMPL_GNUSTEP + // GNUstep doesn't provide named images. This was reported in + // 2011, see https://savannah.gnu.org/bugs/?33396 + // + // As a drop in replacment, a semi tranparent gray square is used. + self.image = [[NSImage alloc] initWithSize:NSMakeSize(32, 32)]; + [self.image lockFocus]; + [[NSColor colorForEmacsRed:0.5 green:0.5 blue:0.5 alpha:0.5] set]; + NSRectFill(NSMakeRect(0, 0, 32, 32)); + [self.image unlockFocus]; +#else self.image = [NSImage imageNamed:NSImageNameCaution]; +#endif } return self; } @@ -1572,7 +1585,6 @@ x_set_window_size (struct frame *f, NSRect wr = [window frame]; int tb = FRAME_EXTERNAL_TOOL_BAR (f); int pixelwidth, pixelheight; - int rows, cols; int orig_height = wr.size.height; NSTRACE ("x_set_window_size"); @@ -1590,15 +1602,11 @@ x_set_window_size (struct frame *f, { pixelwidth = FRAME_TEXT_TO_PIXEL_WIDTH (f, width); pixelheight = FRAME_TEXT_TO_PIXEL_HEIGHT (f, height); - cols = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, pixelwidth); - rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, pixelheight); } else { pixelwidth = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, width); pixelheight = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, height); - cols = width; - rows = height; } /* If we have a toolbar, take its height into account. */ @@ -2631,13 +2639,13 @@ ns_draw_fringe_bitmap (struct window *w, struct glyph_row *row, [img setXBMColor: bm_color]; } +#ifdef NS_IMPL_COCOA // Note: For periodic images, the full image height is "h + hd". // By using the height h, a suitable part of the image is used. NSRect fromRect = NSMakeRect(0, 0, p->wd, p->h); NSTRACE_RECT ("fromRect", fromRect); -#ifdef NS_IMPL_COCOA [img drawInRect: r fromRect: fromRect operation: NSCompositeSourceOver @@ -6357,7 +6365,6 @@ not_in_argv (NSString *arg) if (oldr != rows || oldc != cols || neww != oldw || newh != oldh) { NSView *view = FRAME_NS_VIEW (emacsframe); - NSWindow *win = [view window]; change_frame_size (emacsframe, FRAME_PIXEL_TO_TEXT_WIDTH (emacsframe, neww), @@ -7778,8 +7785,6 @@ not_in_argv (NSString *arg) - (void)zoom:(id)sender { - struct frame * f = SELECTED_FRAME (); - NSTRACE ("[EmacsWindow zoom:]"); ns_update_auto_hide_menu_bar(); commit 371154b481b478128030a095b6075a94eb5ffe3e Author: Glenn Morris Date: Sat Jan 23 07:22:26 2016 -0500 ; Auto-commit of loaddefs files. diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el index bfd4290..ae9db7d 100644 --- a/lisp/textmodes/reftex.el +++ b/lisp/textmodes/reftex.el @@ -2951,7 +2951,7 @@ When LEVEL is non-nil, increase section numbers on that level. ;;;*** -;;;### (autoloads nil "reftex-ref" "reftex-ref.el" "166ebc4928231b5b42134783b94557f3") +;;;### (autoloads nil "reftex-ref" "reftex-ref.el" "b2ce366d12050904d89cc38b96b8058a") ;;; Generated autoloads from reftex-ref.el (autoload 'reftex-label-location "reftex-ref" "\ commit 71468e00735a44e19814a73e8f9013c0f272c342 Author: Eli Zaretskii Date: Sat Jan 23 13:46:22 2016 +0200 ; Another minor change in Dired docs * doc/emacs/dired.texi (Operating on Files): Minor tweak in the documentation of 'dired-do-find-regexp'. Suggested by Dmitry Gutov . diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi index 201b555..6961627 100644 --- a/doc/emacs/dired.texi +++ b/doc/emacs/dired.texi @@ -784,7 +784,7 @@ Compilation, elisp, The Emacs Lisp Reference Manual}. Search all the specified files for the regular expression @var{regexp} (@code{dired-do-find-regexp}). -This command is a variant of @code{xref-find-apropos} +This command is a variant of @code{xref-find-references} (@pxref{Identifier Search}), it displays the @file{*xref*} buffer, where you can navigate between matches and display them as needed using the commands described in @ref{Xref Commands}. commit 1d4887a3f35ffaf1f788cf5368e25d2cbf94ee94 Author: Eli Zaretskii Date: Sat Jan 23 12:21:07 2016 +0200 Improve documentation of 'pcase' * doc/lispref/control.texi (Pattern matching case statement): Reorganize, expand, and improve wording. * etc/NEWS: Mention that 'pcase' changes are documented. Co-authored-by: John Wiegley Co-authored-by: Michael Heerdegen diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index 008a991..df60347 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi @@ -297,36 +297,147 @@ For example: @cindex pcase @cindex pattern matching -To compare a particular value against various possible cases, the macro -@code{pcase} can come handy. It takes the following form: +The @code{cond} form lets you choose between alternatives using +predicate conditions that compare values of expressions against +specific values known and written in advance. However, sometimes it +is useful to select alternatives based on more general conditions that +distinguish between broad classes of values. The @code{pcase} macro +allows to choose between alternatives based on matching the value of +an expression against a series of patterns. A pattern can be a +literal value (comparison to literal values is what @code{cond} does), +or it can be a more general description of the expected structure of +the expression's value. + +@defmac pcase expression &rest clauses +Evaluate @var{expression} and choose among an arbitrary number of +alternatives based on the value of @var{expression}. The possible +alternatives are specified by @var{clauses}, each of which must be a +list of the form @code{(@var{pattern} @var{body-forms})}. +@code{pcase} tries to match the value of @var{expression} to the +@var{pattern} of each clause, in textual order. If the value matches, +the clause succeeds; @code{pcase} then evaluates its @var{body-forms}, +and returns the value of the last of @var{body-forms}. Any remaining +@var{clauses} are ignored. + +The @var{pattern} part of a clause can be of one of two types: +@dfn{QPattern}, a pattern quoted with a backquote; or a +@dfn{UPattern}, which is not quoted. UPatterns are simpler, so we +describe them first. + +Note: In the description of the patterns below, we use ``the value +being matched'' to refer to the value of the @var{expression} that is +the first argument of @code{pcase}. + +A UPattern can have one of the following forms: -@example -(pcase @var{exp} @var{branch}1 @var{branch}2 @var{branch}3 @dots{}) -@end example +@table @code -where each @var{branch} takes the form @code{(@var{upattern} -@var{body-forms}@dots{})}. +@item '@var{val} +Matches if the value being matched is @code{equal} to @var{val}. +@item @var{atom} +Matches any @var{atom}, which can be a keyword, a number, or a string. +(These are self-quoting, so this kind of UPattern is actually a +shorthand for @code{'@var{atom}}.) +@item _ +Matches any value. This is known as @dfn{don't care} or @dfn{wildcard}. +@item @var{symbol} +Matches any value, and additionally let-binds @var{symbol} to the +value it matched, so that you can later refer to it, either in the +@var{body-forms} or also later in the pattern. +@item (pred @var{predfun}) +Matches if the predicate function @var{predfun} returns non-@code{nil} +when called with the value being matched as its argument. +@var{predfun} can be one of the possible forms described below. +@item (guard @var{boolean-expression}) +Matches if @var{boolean-expression} evaluates to non-@code{nil}. This +allows to include in a UPattern boolean conditions that refer to +symbols bound to values (including the value being matched) by +previous UPatterns. Typically used inside an @code{and} UPattern, see +below. For example, @w{@code{(and x (guard (< x 10)))}} is a pattern +which matches any number smaller than 10 and let-binds the variable +@code{x} to that number. +@item (let @var{upattern} @var{expression}) +Matches if the specified @var{expression} matches the specified +@var{upattern}. This allows to match a pattern against the value of +an @emph{arbitrary} expression, not just the expression that is the +first argument to @code{pcase}. (It is called @code{let} because +@var{upattern} can bind symbols to values using the @var{symbol} +UPattern.) +@item (app @var{function} @var{upattern}) +Matches if @var{function} applied to the value being matched returns a +value that matches @var{upattern}. This is like the @code{pred} +UPattern, except that it tests the result against @var{UPattern}, +rather than against a boolean truth value. The @var{function} call can +use one of the forms described below. +@item (or @var{upattern1} @var{upattern2}@dots{}) +Matches if one the argument UPatterns matches. As soon as the first +matching UPattern is found, the rest are not tested. For this reason, +if any of the UPatterns let-bind symbols to the matched value, they +should all bind the same symbols. +@item (and @var{upattern1} @var{upattern2}@dots{}) +Matches if all the argument UPatterns match. +@end table + +The function calls used in the @code{pred} and @code{app} UPatterns +can have one of the following forms: + +@table @asis +@item function symbol, like @code{integerp} +In this case, the named function is applied to the value being +matched. +@item lambda-function @code{(lambda (@var{arg}) @var{body})} +In this case, the lambda-function is called with one argument, the +value being matched. +@item @code{(@var{func} @var{args}@dots{})} +This is a function call with @var{n} specified arguments; the function +is called with these @var{n} arguments and an additional @var{n}+1-th +argument that is the value being matched. +@end table -It will first evaluate @var{exp} and then compare the value against each -@var{upattern} to see which @var{branch} to use, after which it will run the -corresponding @var{body-forms}. A common use case is to distinguish -between a few different constant values: +Here's an illustrative example of using UPatterns: +@c FIXME: This example should use every one of the UPatterns described +@c above at least once. @example (pcase (get-return-code x) - (`success (message "Done!")) - (`would-block (message "Sorry, can't do it now")) - (`read-only (message "The shmliblick is read-only")) - (`access-denied (message "You do not have the needed rights")) + ('success (message "Done!")) + ('would-block (message "Sorry, can't do it now")) + ('read-only (message "The shmliblick is read-only")) + ('access-denied (message "You do not have the needed rights")) (code (message "Unknown return code %S" code))) @end example -In the last clause, @code{code} is a variable that gets bound to the value that -was returned by @code{(get-return-code x)}. +The QPatterns are more powerful. They allow to match the value of the +@var{expression} that is the first argument of @code{pcase} against +specifications of its @emph{structure}. For example, you can specify +that the value must be a list of 2 elements whose first element is a +string and the second element is a number. QPatterns can have one of +the following forms: + +@table @code +@item `(@var{qpattern1} . @var{qpattern2}) +Matches if the value being matched is a cons cell whose @code{car} +matches @var{qpattern1} and whose @code{cdr} matches @var{qpattern2}. +@item `[@var{qpattern1} @var{qpattern2} @dots{} @var{qpatternm}] +Matches if the value being matched is a vector of length @var{m} whose +@code{0}..@code{(@var{m}-1)}th elements match @var{qpattern1}, +@var{qpattern2} @dots{} @var{qpatternm}, respectively. +@item `(,@var{upattern1} ,@var{upattern2} @dots{}) +Matches if the value being matched is a list whose elements match the +corresponding @var{upattern1}, @var{upattern2}, etc. +@item @var{atom} +Matches if corresponding element of the value being matched is +@code{equal} to the specified @var{atom}. +@item ,@var{upattern} +Matches if the corresponding element of the value being matched +matches the specified @var{upattern}. +@end table + +@end defmac -To give a more complex example, a simple interpreter for a little -expression language could look like (note that this example requires -lexical binding): +Here is an example of using @code{pcase} to implement a simple +interpreter for a little expression language (note that this example +requires lexical binding, @pxref{Lexical Binding}): @example (defun evaluate (exp env) @@ -340,13 +451,19 @@ lexical binding): (_ (error "Unknown expression %S" exp)))) @end example -Where @code{`(add ,x ,y)} is a pattern that checks that @code{exp} is a three -element list starting with the symbol @code{add}, then extracts the second and -third elements and binds them to the variables @code{x} and @code{y}. -@code{(pred numberp)} is a pattern that simply checks that @code{exp} -is a number, and @code{_} is the catch-all pattern that matches anything. +Here @code{`(add ,x ,y)} is a pattern that checks that @code{exp} is a +three-element list starting with the literal symbol @code{add}, then +extracts the second and third elements and binds them to the variables +@code{x} and @code{y}. Then it evaluates @code{x} and @code{y} and +adds the results. The @code{call} and @code{fn} patterns similarly +implement two flavors of function calls. @code{(pred numberp)} is a +pattern that simply checks that @code{exp} is a number and if so, +evaluates it. @code{(pred symbolp)} matches symbols, and returns +their association. Finally, @code{_} is the catch-all pattern that +matches anything, so it's suitable for reporting syntax errors. -Here are some sample programs including their evaluation results: +Here are some sample programs in this small language, including their +evaluation results: @example (evaluate '(add 1 2) nil) ;=> 3 @@ -355,56 +472,13 @@ Here are some sample programs including their evaluation results: (evaluate '(sub 1 2) nil) ;=> error @end example -There are two kinds of patterns involved in @code{pcase}, called -@emph{U-patterns} and @emph{Q-patterns}. The @var{upattern} mentioned above -are U-patterns and can take the following forms: +Additional UPatterns can be defined using the @code{pcase-defmacro} +macro. -@table @code -@item `@var{qpattern} -This is one of the most common form of patterns. The intention is to mimic the -backquote macro: this pattern matches those values that could have been built -by such a backquote expression. Since we're pattern matching rather than -building a value, the unquote does not indicate where to plug an expression, -but instead it lets one specify a U-pattern that should match the value at -that location. - -More specifically, a Q-pattern can take the following forms: -@table @code -@item (@var{qpattern1} . @var{qpattern2}) -This pattern matches any cons cell whose @code{car} matches @var{qpattern1} and -whose @code{cdr} matches @var{qpattern2}. -@item [@var{qpattern1} @var{qpattern2} @dots{} @var{qpatternm}] -This pattern matches a vector of length @var{M} whose 0..(@var{M}-1)th -elements match @var{qpattern1}, @var{qpattern2} @dots{} @var{qpatternm}, -respectively. -@item @var{atom} -This pattern matches any atom @code{equal} to @var{atom}. -@item ,@var{upattern} -This pattern matches any object that matches the @var{upattern}. -@end table - -@item @var{symbol} -A mere symbol in a U-pattern matches anything, and additionally let-binds this -symbol to the value that it matched, so that you can later refer to it, either -in the @var{body-forms} or also later in the pattern. -@item _ -This so-called @emph{don't care} pattern matches anything, like the previous -one, but unlike symbol patterns it does not bind any variable. -@item (pred @var{pred}) -This pattern matches if the function @var{pred} returns non-@code{nil} when -called with the object being matched. -@item (or @var{upattern1} @var{upattern2}@dots{}) -This pattern matches as soon as one of the argument patterns succeeds. -All argument patterns should let-bind the same variables. -@item (and @var{upattern1} @var{upattern2}@dots{}) -This pattern matches only if all the argument patterns succeed. -@item (guard @var{exp}) -This pattern ignores the object being examined and simply succeeds if @var{exp} -evaluates to non-@code{nil} and fails otherwise. It is typically used inside -an @code{and} pattern. For example, @code{(and x (guard (< x 10)))} -is a pattern which matches any number smaller than 10 and let-binds it to -the variable @code{x}. -@end table +@defmac pcase-defmacro name args &rest body +Define a new UPattern for @code{pcase}. The UPattern will have the +form @code{(@var{name} @var{args})}. +@end defmac @node Combining Conditions @section Constructs for Combining Conditions diff --git a/etc/NEWS b/etc/NEWS index 7a0d2ef..048523a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1400,7 +1400,9 @@ that happen, `unhandled-file-name-directory' now defaults to calling * Lisp Changes in Emacs 25.1 ** pcase ++++ *** New UPatterns `quote', `app'. ++++ *** New UPatterns can be defined with `pcase-defmacro'. +++ *** New vector QPattern. commit f1e74e8672b1fbe81373b3dd1276b3f4b986e055 Author: Paul Eggert Date: Sat Jan 23 01:42:33 2016 -0800 * etc/NEWS: Say that Cairo is experimental. diff --git a/etc/NEWS b/etc/NEWS index a3fd1ed..7a0d2ef 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -35,6 +35,8 @@ otherwise leave it unmarked. ** New configure option --with-cairo. This builds Emacs with Cairo drawing. As a side effect, it provides support for built-in printing, when Emacs was built with GTK+. +Cairo drawing is an experimental feature in Emacs, and subject to +change in future releases. +++ ** New configure option --with-modules. commit 190d365f90d741b09e817d9878afd256505e1944 Author: Paul Eggert Date: Sat Jan 23 01:40:29 2016 -0800 Report error for PNG under Cairo * src/image.c (lookup_rgb_color): Signal a file error instead of dumping core when mishandling an image. diff --git a/src/image.c b/src/image.c index 4681cba..144fe30 100644 --- a/src/image.c +++ b/src/image.c @@ -4615,7 +4615,8 @@ lookup_rgb_color (struct frame *f, int r, int g, int b) #elif defined HAVE_NS return RGB_TO_ULONG (r >> 8, g >> 8, b >> 8); #else - eassume (false); + xsignal1 (Qfile_error, + build_string ("This Emacs mishandles this image file type")); #endif } commit 5c3edcd75356bab9e36f0b183584a9b9302e2f0c Author: Arash Esbati Date: Sun Jan 17 11:28:58 2016 +0100 Delete a spurious backquote (tiny change) * lisp/textmodes/reftex-ref.el (reftex-label): Delete a spurious backquote which raises an error with emacs 25. diff --git a/lisp/textmodes/reftex-ref.el b/lisp/textmodes/reftex-ref.el index 5ac0e28..3270359 100644 --- a/lisp/textmodes/reftex-ref.el +++ b/lisp/textmodes/reftex-ref.el @@ -228,7 +228,7 @@ This function is controlled by the settings of reftex-insert-label-flags." (symbol-value reftex-docstruct-symbol))) (ding) (if (y-or-n-p -` (format-message "Label `%s' exists. Use anyway? " label)) + (format-message "Label `%s' exists. Use anyway? " label)) (setq valid t))) ;; Label is ok commit c07bddd69dab6252ce1e8a283a023d693b7d7ad6 Author: Paul Eggert Date: Sat Jan 23 01:02:00 2016 -0800 Pacify --enable-gcc-warnings --with-cairo Problem reported by Alexander Kuleshov in: http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01289.html * src/gtkutil.c (xg_get_page_setup): Use switch rather than if-then-else. * src/image.c (COLOR_TABLE_SUPPORT): Define directly rather than via #define and optional later #undef. (lookup_rgb_color) [USE_CAIRO && ENABLE_CHECKING]: Crash when the pixel is undefined, as there is a genuine bug here (Bug#22442). * src/image.c (tiff_load, gif_load, svg_load_image) (x_kill_gs_process) [USE_CAIRO]: * src/xterm.c (x_draw_fringe_bitmap) [USE_CAIRO]: Omit unused locals, or move them to where they’re needed. (x_clear_area1): Now ATTRIBUTE_UNUSED. diff --git a/src/gtkutil.c b/src/gtkutil.c index 768df34..14b76ce 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -4084,20 +4084,28 @@ xg_page_setup_dialog (void) Lisp_Object xg_get_page_setup (void) { - GtkPageOrientation orientation; Lisp_Object orientation_symbol; if (page_setup == NULL) page_setup = gtk_page_setup_new (); - orientation = gtk_page_setup_get_orientation (page_setup); - if (orientation == GTK_PAGE_ORIENTATION_PORTRAIT) - orientation_symbol = Qportrait; - else if (orientation == GTK_PAGE_ORIENTATION_LANDSCAPE) - orientation_symbol = Qlandscape; - else if (orientation == GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT) - orientation_symbol = Qreverse_portrait; - else if (orientation == GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE) - orientation_symbol = Qreverse_landscape; + + switch (gtk_page_setup_get_orientation (page_setup)) + { + case GTK_PAGE_ORIENTATION_PORTRAIT: + orientation_symbol = Qportrait; + break; + case GTK_PAGE_ORIENTATION_LANDSCAPE: + orientation_symbol = Qlandscape; + break; + case GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT: + orientation_symbol = Qreverse_portrait; + break; + case GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE: + orientation_symbol = Qreverse_landscape; + break; + default: + eassume (false); + } return listn (CONSTYPE_HEAP, 7, Fcons (Qorientation, orientation_symbol), diff --git a/src/image.c b/src/image.c index 8bb5ff7..4681cba 100644 --- a/src/image.c +++ b/src/image.c @@ -57,8 +57,6 @@ along with GNU Emacs. If not, see . */ #endif /* HAVE_WINDOW_SYSTEM */ #ifdef HAVE_X_WINDOWS -#define COLOR_TABLE_SUPPORT 1 - typedef struct x_bitmap_record Bitmap_Record; #define GET_PIXEL(ximg, x, y) XGetPixel (ximg, x, y) #define NO_PIXMAP None @@ -74,9 +72,6 @@ typedef struct x_bitmap_record Bitmap_Record; # include "w32.h" #endif -/* W32_TODO : Color tables on W32. */ -#undef COLOR_TABLE_SUPPORT - typedef struct w32_bitmap_record Bitmap_Record; #define GET_PIXEL(ximg, x, y) GetPixel (ximg, x, y) #define NO_PIXMAP 0 @@ -89,13 +84,7 @@ typedef struct w32_bitmap_record Bitmap_Record; #endif /* HAVE_NTGUI */ -#ifdef USE_CAIRO -#undef COLOR_TABLE_SUPPORT -#endif - #ifdef HAVE_NS -#undef COLOR_TABLE_SUPPORT - typedef struct ns_bitmap_record Bitmap_Record; #define GET_PIXEL(ximg, x, y) XGetPixel (ximg, x, y) @@ -109,6 +98,12 @@ typedef struct ns_bitmap_record Bitmap_Record; #define DefaultDepthOfScreen(screen) x_display_list->n_planes #endif /* HAVE_NS */ +#if (defined HAVE_X_WINDOWS \ + && ! (defined HAVE_NTGUI || defined USE_CAIRO || defined HAVE_NS)) +/* W32_TODO : Color tables on W32. */ +# define COLOR_TABLE_SUPPORT 1 +#endif + static void x_disable_image (struct frame *, struct image *); static void x_edge_detection (struct frame *, struct image *, Lisp_Object, Lisp_Object); @@ -4615,16 +4610,13 @@ colors_in_color_table (int *n) static unsigned long lookup_rgb_color (struct frame *f, int r, int g, int b) { - unsigned long pixel; - #ifdef HAVE_NTGUI - pixel = PALETTERGB (r >> 8, g >> 8, b >> 8); -#endif /* HAVE_NTGUI */ - -#ifdef HAVE_NS - pixel = RGB_TO_ULONG (r >> 8, g >> 8, b >> 8); -#endif /* HAVE_NS */ - return pixel; + return PALETTERGB (r >> 8, g >> 8, b >> 8); +#elif defined HAVE_NS + return RGB_TO_ULONG (r >> 8, g >> 8, b >> 8); +#else + eassume (false); +#endif } static void @@ -7320,7 +7312,6 @@ tiff_load (struct frame *f, struct image *img) { unsigned char *data = (unsigned char *) xmalloc (width*height*4); uint32_t *dataptr = (uint32_t *) data; - int r, g, b, a; for (y = 0; y < height; ++y) { @@ -7634,19 +7625,19 @@ gif_load (struct frame *f, struct image *img) { int rc, width, height, x, y, i, j; ColorMapObject *gif_color_map; - unsigned long pixel_colors[256]; GifFileType *gif; gif_memory_source memsrc; Lisp_Object specified_bg = image_spec_value (img->spec, QCbackground, NULL); Lisp_Object specified_file = image_spec_value (img->spec, QCfile, NULL); Lisp_Object specified_data = image_spec_value (img->spec, QCdata, NULL); - unsigned long bgcolor = 0; EMACS_INT idx; int gif_err; #ifdef USE_CAIRO unsigned char *data = 0; #else + unsigned long pixel_colors[256]; + unsigned long bgcolor = 0; XImagePtr ximg; #endif @@ -7833,9 +7824,13 @@ gif_load (struct frame *f, struct image *img) gif_load call to construct and save all animation frames. */ init_color_table (); + +#ifndef USE_CAIRO if (STRINGP (specified_bg)) bgcolor = x_alloc_image_color (f, img, specified_bg, FRAME_BACKGROUND_PIXEL (f)); +#endif + for (j = 0; j <= idx; ++j) { /* We use a local variable `raster' here because RasterBits is a @@ -9182,11 +9177,6 @@ svg_load_image (struct frame *f, /* Pointer to emacs frame structure. * int height; const guint8 *pixels; int rowstride; - XImagePtr ximg; - Lisp_Object specified_bg; - XColor background; - int x; - int y; #if ! GLIB_CHECK_VERSION (2, 36, 0) /* g_type_init is a glib function that must be called prior to @@ -9240,16 +9230,14 @@ svg_load_image (struct frame *f, /* Pointer to emacs frame structure. * #ifdef USE_CAIRO { unsigned char *data = (unsigned char *) xmalloc (width*height*4); - int y; uint32_t bgcolor = get_spec_bg_or_alpha_as_argb (img, f); - for (y = 0; y < height; ++y) + for (int y = 0; y < height; ++y) { const guchar *iconptr = pixels + y * rowstride; uint32_t *dataptr = (uint32_t *) (data + y * rowstride); - int x; - for (x = 0; x < width; ++x) + for (int x = 0; x < width; ++x) { if (iconptr[3] == 0) *dataptr = bgcolor; @@ -9269,6 +9257,7 @@ svg_load_image (struct frame *f, /* Pointer to emacs frame structure. * } #else /* Try to create a x pixmap to hold the svg pixmap. */ + XImagePtr ximg; if (!image_create_x_image_and_pixmap (f, img, width, height, 0, &ximg, 0)) { g_object_unref (pixbuf); @@ -9279,7 +9268,8 @@ svg_load_image (struct frame *f, /* Pointer to emacs frame structure. * /* Handle alpha channel by combining the image with a background color. */ - specified_bg = image_spec_value (img->spec, QCbackground, NULL); + XColor background; + Lisp_Object specified_bg = image_spec_value (img->spec, QCbackground, NULL); if (!STRINGP (specified_bg) || !x_defined_color (f, SSDATA (specified_bg), &background, 0)) x_query_frame_background_color (f, &background); @@ -9295,9 +9285,9 @@ svg_load_image (struct frame *f, /* Pointer to emacs frame structure. * non-transparent images. Each pixel must be "flattened" by calculating the resulting color, given the transparency of the pixel, and the image background color. */ - for (y = 0; y < height; ++y) + for (int y = 0; y < height; ++y) { - for (x = 0; x < width; ++x) + for (int x = 0; x < width; ++x) { int red; int green; @@ -9597,8 +9587,6 @@ x_kill_gs_process (Pixmap pixmap, struct frame *f) 0, 0, img->width, img->height, ~0, ZPixmap); if (ximg) { - int x, y; - /* Initialize the color table. */ init_color_table (); @@ -9606,8 +9594,8 @@ x_kill_gs_process (Pixmap pixmap, struct frame *f) color table. After having done so, the color table will contain an entry for each color used by the image. */ #ifdef COLOR_TABLE_SUPPORT - for (y = 0; y < img->height; ++y) - for (x = 0; x < img->width; ++x) + for (int y = 0; y < img->height; ++y) + for (int x = 0; x < img->width; ++x) { unsigned long pixel = XGetPixel (ximg, x, y); diff --git a/src/xterm.c b/src/xterm.c index 6a38d24..1f71afd 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -1313,7 +1313,6 @@ x_draw_fringe_bitmap (struct window *w, struct glyph_row *row, struct draw_fring { struct frame *f = XFRAME (WINDOW_FRAME (w)); Display *display = FRAME_X_DISPLAY (f); - Window window = FRAME_X_WINDOW (f); GC gc = f->output_data.x->normal_gc; struct face *face = p->face; @@ -1356,6 +1355,7 @@ x_draw_fringe_bitmap (struct window *w, struct glyph_row *row, struct draw_fring #else /* not USE_CAIRO */ if (p->which) { + Window window = FRAME_X_WINDOW (f); char *bits; Pixmap pixmap, clipmask = (Pixmap) 0; int depth = DefaultDepthOfScreen (FRAME_X_SCREEN (f)); @@ -3758,7 +3758,7 @@ x_delete_glyphs (struct frame *f, register int n) /* Like XClearArea, but check that WIDTH and HEIGHT are reasonable. If they are <= 0, this is probably an error. */ -static void +static ATTRIBUTE_UNUSED void x_clear_area1 (Display *dpy, Window window, int x, int y, int width, int height, int exposures) { @@ -3766,7 +3766,6 @@ x_clear_area1 (Display *dpy, Window window, XClearArea (dpy, window, x, y, width, height, exposures); } - void x_clear_area (struct frame *f, int x, int y, int width, int height) { commit 035bd8159fe5bcea15eacc8a23ab54f4bc3b6f17 Author: Eli Zaretskii Date: Sat Jan 23 08:53:35 2016 +0200 Update documentation for Dired search and replace * doc/emacs/dired.texi (Operating on Files): Update descriptions of 'A' and 'Q' now bound to 'dired-do-find-regexp' and 'dired-do-find-regexp-and-replace'. * etc/NEWS: Mention xref-related changes in Dired. diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi index 855e653..201b555 100644 --- a/doc/emacs/dired.texi +++ b/doc/emacs/dired.texi @@ -778,27 +778,31 @@ Byte compile the specified Emacs Lisp files Compilation, elisp, The Emacs Lisp Reference Manual}. @kindex A @r{(Dired)} -@findex dired-do-search +@findex dired-do-find-regexp @cindex search multiple files (in Dired) @item A @var{regexp} @key{RET} Search all the specified files for the regular expression @var{regexp} -(@code{dired-do-search}). +(@code{dired-do-find-regexp}). -This command is a variant of @code{tags-search}. The search stops at -the first match it finds; use @kbd{M-x tags-loop-continue} to resume -the search and find the next match. @xref{Identifier Search}. +This command is a variant of @code{xref-find-apropos} +(@pxref{Identifier Search}), it displays the @file{*xref*} buffer, +where you can navigate between matches and display them as needed +using the commands described in @ref{Xref Commands}. @kindex Q @r{(Dired)} -@findex dired-do-query-replace-regexp +@findex dired-do-find-regexp-and-replace @cindex search and replace in multiple files (in Dired) @item Q @var{regexp} @key{RET} @var{to} @key{RET} Perform @code{query-replace-regexp} on each of the specified files, replacing matches for @var{regexp} with the string -@var{to} (@code{dired-do-query-replace-regexp}). - -This command is a variant of @code{tags-query-replace}. If you exit the -query replace loop, you can use @kbd{M-x tags-loop-continue} to resume -the scan and replace more matches. @xref{Identifier Search}. +@var{to} (@code{dired-do-find-regexp-and-replace}). + +This command is a variant of @code{xref-query-replace}. It presents +an @file{*xref*} buffer that lists all the matches of @var{regexp}, +and you can use the special commands in that buffer (@pxref{Xref +Commands}). In particular, if you exit the query replace loop, you +can use @kbd{r} in that buffer to replace more matches. +@xref{Identifier Search}. @end table @node Shell Commands in Dired diff --git a/etc/NEWS b/etc/NEWS index 786a391..a3fd1ed 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1014,6 +1014,10 @@ As a result of this, the following commands are now obsolete: replacements yet. +++ +*** Variants of `tags-search' and `tags-query-replace' in Dired were also +replaced by xref-style commands, see the "Dired" section below. + ++++ *** New variables `find-tag-marker-ring-length' is now an obsolete alias for @@ -1153,6 +1157,18 @@ compress many marked files into a single named archive. The compression command is determined from the new `dired-compress-files-alist' variable. ++++ +*** New user interface for the `A' and `Q' commands. +These keys, now bound to `dired-do-find-regexp' and +`dired-do-find-regexp-and-replace', work similarly to +`xref-find-apropos' and `xref-query-replace': they present the matches +in the `*xref*' buffer and let you move through the matches. No need +to use `tags-loop-continue' to resume the search or replace loop. The +previous commands, `dired-do-search' and +`dired-do-query-replace-regexp', are still available, but not bound to +keys; rebind `A' and `Q' to invoke them if you want the old behavior +back. We intend to obsolete the old commands in a future release. + ** Tabulated List Mode +++ commit 0275e7ba6ee76f56ab199f006d978e37e3715610 Author: Eli Zaretskii Date: Sat Jan 23 08:27:16 2016 +0200 ; Improve commentary in sysdep.c * src/sysdep.c: Explain in a comment why on Windows we don't load GnuTLS during startup for calling gnutls_rnd. (Bug#22202) diff --git a/src/sysdep.c b/src/sysdep.c index d3e271b..3c3da0d 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -100,6 +100,8 @@ along with GNU Emacs. If not, see . */ #include "cm.h" #include "gnutls.h" +/* MS-Windows loads GnuTLS at run time, if available; we don't want to + do that during startup just to call gnutls_rnd. */ #if 0x020c00 <= GNUTLS_VERSION_NUMBER && !defined WINDOWSNT # include #else commit 27a0919cde7a6dce93aeba63b5ce7d0834f48531 Author: Paul Eggert Date: Fri Jan 22 15:27:55 2016 -0800 Port recent xdisp.c fix to picky C compilers * src/xdisp.c (dump_glyph): Redo the call to fprintf to avoid putting #if inside the arguments to a standard function, which the C standard says has undefined behavior. diff --git a/src/xdisp.c b/src/xdisp.c index 157fa72..5185e77 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -18827,12 +18827,11 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area) } else if (glyph->type == XWIDGET_GLYPH) { +#ifndef HAVE_XWIDGETS + eassume (false); +#else fprintf (stderr, -#ifdef HAVE_XWIDGETS " %5d %4c %6d %c %3d 0x%05x %c %4d %1.1d%1.1d\n", -#else - " %5d %4c %6d %c %3d %c %4d %1.1d%1.1d\n", -#endif glyph - row->glyphs[TEXT_AREA], 'X', glyph->charpos, @@ -18842,14 +18841,12 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area) ? 'S' : '-')), glyph->pixel_width, -#ifdef HAVE_XWIDGETS glyph->u.xwidget, -#endif '.', glyph->face_id, glyph->left_box_line_p, glyph->right_box_line_p); - +#endif } } commit bbbb038654eab73624a5d51faa52f2d3f5db14b5 Author: Alan Mackenzie Date: Fri Jan 22 22:31:23 2016 +0000 Prevent spurious recognition of K&R argument declarations. Fixes bug #2203 * cc-engine.el (c-forward-declarator): New function. (c-in-knr-argdecl): Before recognizing a K&R argument declaration, check it is contained in the preceding arg list. * cc-fonts.el (c-font-lock-declarators): Use the new function `c-forward-declarator' in place of inline code. diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 63f0182..8113446 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -6808,6 +6808,110 @@ comment at the start of cc-engine.el for more info." ;; This identifier is bound only in the inner let. '(setq start id-start)))) +(defun c-forward-declarator (&optional limit) + ;; Assuming point is at the start of a declarator, move forward over it, + ;; leaving point at the next token after it (e.g. a ) or a ; or a ,). + ;; + ;; Return a list (ID-START ID-END BRACKETS-AFTER-ID GOT-INIT), where ID-START and + ;; ID-END are the bounds of the declarator's identifier, and + ;; BRACKETS-AFTER-ID is non-nil if a [...] pair is present after the id. + ;; GOT-INIT is non-nil when the declarator is followed by "=" or "(". + ;; + ;; If no declarator is found, leave point unmoved and return nil. LIMIT is + ;; an optional limit for forward searching. + ;; + ;; Note that the global variable `c-last-identifier-range' is written to, so + ;; the caller should bind it if necessary. + + ;; Inside the following "condition form", we move forward over the + ;; declarator's identifier up as far as any opening bracket (for array + ;; size) or paren (for parameters of function-type) or brace (for + ;; array/struct initialization) or "=" or terminating delimiter + ;; (e.g. "," or ";" or "}"). + (let ((here (point)) + id-start id-end brackets-after-id paren-depth) + (or limit (setq limit (point-max))) + (if (and + (< (point) limit) + + ;; The following form moves forward over the declarator's + ;; identifier (and what precedes it), returning t. If there + ;; wasn't one, it returns nil. + (let (got-identifier) + (setq paren-depth 0) + ;; Skip over type decl prefix operators, one for each iteration + ;; of the while. These are, e.g. "*" in "int *foo" or "(" and + ;; "*" in "int (*foo) (void)" (Note similar code in + ;; `c-forward-decl-or-cast-1'.) + (while (and (looking-at c-type-decl-prefix-key) + (if (and (c-major-mode-is 'c++-mode) + (match-beginning 3)) + ;; If the third submatch matches in C++ then + ;; we're looking at an identifier that's a + ;; prefix only if it specifies a member pointer. + (progn + (setq id-start (point)) + (c-forward-name) + (if (looking-at "\\(::\\)") + ;; We only check for a trailing "::" and + ;; let the "*" that should follow be + ;; matched in the next round. + t + ;; It turned out to be the real identifier, + ;; so flag that and stop. + (setq got-identifier t) + nil)) + t)) + (if (eq (char-after) ?\() + (progn + (setq paren-depth (1+ paren-depth)) + (forward-char)) + (goto-char (match-end 1))) + (c-forward-syntactic-ws)) + + ;; If we haven't passed the identifier already, do it now. + (unless got-identifier + (setq id-start (point)) + (c-forward-name)) + (prog1 + (/= (point) here) + (save-excursion + (c-backward-syntactic-ws) + (setq id-end (point))))) + + ;; Skip out of the parens surrounding the identifier. If closing + ;; parens are missing, this form returns nil. + (or (= paren-depth 0) + (c-safe (goto-char (scan-lists (point) 1 paren-depth)))) + + (<= (point) limit) + + ;; Skip over any trailing bit, such as "__attribute__". + (progn + (when (looking-at c-decl-hangon-key) + (c-forward-keyword-clause 1)) + (<= (point) limit)) + + ;; Search syntactically to the end of the declarator (";", + ;; ",", a closing paren, eob etc) or to the beginning of an + ;; initializer or function prototype ("=" or "\\s\("). + ;; Note that square brackets are now not also treated as + ;; initializers, since this broke when there were also + ;; initializing brace lists. + (let (found) + (while + (and (setq found (c-syntactic-re-search-forward + "[;,]\\|\\s)\\|\\'\\|\\(=\\|\\s(\\)" limit t t)) + (eq (char-before) ?\[) + (c-go-up-list-forward)) + (setq brackets-after-id t)) + (backward-char) + found)) + (list id-start id-end brackets-after-id (match-beginning 1)) + + (goto-char here) + nil))) + (defun c-forward-decl-or-cast-1 (preceding-token-end context last-cast-end) ;; Move forward over a declaration or a cast if at the start of one. ;; The point is assumed to be at the start of some token. Nil is @@ -8162,14 +8266,14 @@ comment at the start of cc-engine.el for more info." ;; Return the position of the first argument declaration if point is ;; inside a K&R style argument declaration list, nil otherwise. ;; `c-recognize-knr-p' is not checked. If LIM is non-nil, it's a - ;; position that bounds the backward search for the argument list. + ;; position that bounds the backward search for the argument list. This + ;; function doesn't move point. ;; ;; Point must be within a possible K&R region, e.g. just before a top-level ;; "{". It must be outside of parens and brackets. The test can return ;; false positives otherwise. ;; ;; This function might do hidden buffer changes. - (save-excursion (save-restriction ;; If we're in a macro, our search range is restricted to it. Narrow to @@ -8178,8 +8282,12 @@ comment at the start of cc-engine.el for more info." (macro-end (save-excursion (and macro-start (c-end-of-macro) (point)))) (low-lim (max (or lim (point-min)) (or macro-start (point-min)))) before-lparen after-rparen - (pp-count-out 20)) ; Max number of paren/brace constructs before + (here (point)) + (pp-count-out 20) ; Max number of paren/brace constructs before ; we give up + ids ; List of identifiers in the parenthesised list. + id-start after-prec-token decl-or-cast decl-res + c-last-identifier-range identifier-ok) (narrow-to-region low-lim (or macro-end (point-max))) ;; Search backwards for the defun's argument list. We give up if we @@ -8198,8 +8306,12 @@ comment at the start of cc-engine.el for more info." ;; int foo (bar, baz, yuk) ;; int bar [] ; ;; int (*baz) (my_type) ; - ;; int (*) (void) (*yuk) (void) ; + ;; int (*(* yuk) (void)) (void) ; ;; { + ;; + ;; Additionally, for a knr list to be recognized: + ;; o - The identifier of each deeclarator up to and including the + ;; one "near" point must be contained in the arg list. (catch 'knr (while (> pp-count-out 0) ; go back one paren/bracket pair each time. @@ -8245,21 +8357,58 @@ comment at the start of cc-engine.el for more info." (goto-char before-lparen) (c-forward-token-2) ; to first token inside parens (and - (c-on-identifier) - (c-forward-token-2) + (setq id-start (c-on-identifier)) ; Must be at least one. (catch 'id-list - (while (eq (char-after) ?\,) + (while + (progn + (forward-char) + (c-end-of-current-token) + (push (buffer-substring-no-properties id-start + (point)) + ids) + (c-forward-syntactic-ws) + (eq (char-after) ?\,)) (c-forward-token-2) - (unless (c-on-identifier) (throw 'id-list nil)) - (c-forward-token-2)) - (eq (char-after) ?\)))))) + (unless (setq id-start (c-on-identifier)) + (throw 'id-list nil))) + (eq (char-after) ?\))))) + ;; Are all the identifiers in the k&r list up to the + ;; current one also in the argument list? + (progn + (forward-char) ; over the ) + (setq after-prec-token after-rparen) + (c-forward-syntactic-ws) + (while (and + (or (consp (setq decl-or-cast + (c-forward-decl-or-cast-1 + after-prec-token + nil ; Or 'arglist ??? + nil))) + (progn + (goto-char after-prec-token) + (c-forward-syntactic-ws) + (setq identifier-ok (eq (char-after) ?{)) + nil)) + (eq (char-after) ?\;) + (setq after-prec-token (1+ (point))) + (goto-char (car decl-or-cast)) + (setq decl-res (c-forward-declarator)) + (setq identifier-ok + (member (buffer-substring-no-properties + (car decl-res) (cadr decl-res)) + ids)) + (progn + (goto-char after-prec-token) + (prog1 (< (point) here) + (c-forward-syntactic-ws)))) + (setq identifier-ok nil)) + identifier-ok)) ;; ...Yes. We've identified the function's argument list. (throw 'knr (progn (goto-char after-rparen) (c-forward-syntactic-ws) (point))) - ;; ...No. The current parens aren't the function's arg list. (goto-char before-lparen)) diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index 03e67a9..1e101d1 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el @@ -1006,6 +1006,7 @@ casts and declarations are fontified. Used on level 2 and higher." ;;(message "c-font-lock-declarators from %s to %s" (point) limit) (c-fontify-types-and-refs ((pos (point)) next-pos id-start id-end + decl-res paren-depth id-face got-init c-last-identifier-range @@ -1015,93 +1016,15 @@ casts and declarations are fontified. Used on level 2 and higher." ;; The following `while' fontifies a single declarator id each time round. ;; It loops only when LIST is non-nil. (while - ;; Inside the following "condition form", we move forward over the - ;; declarator's identifier up as far as any opening bracket (for array - ;; size) or paren (for parameters of function-type) or brace (for - ;; array/struct initialization) or "=" or terminating delimiter - ;; (e.g. "," or ";" or "}"). - (and - pos - (< (point) limit) - - ;; The following form moves forward over the declarator's - ;; identifier (and what precedes it), returning t. If there - ;; wasn't one, it returns nil, terminating the `while'. - (let (got-identifier) - (setq paren-depth 0) - ;; Skip over type decl prefix operators, one for each iteration - ;; of the while. These are, e.g. "*" in "int *foo" or "(" and - ;; "*" in "int (*foo) (void)" (Note similar code in - ;; `c-forward-decl-or-cast-1'.) - (while (and (looking-at c-type-decl-prefix-key) - (if (and (c-major-mode-is 'c++-mode) - (match-beginning 3)) - ;; If the third submatch matches in C++ then - ;; we're looking at an identifier that's a - ;; prefix only if it specifies a member pointer. - (progn - (setq id-start (point)) - (c-forward-name) - (if (looking-at "\\(::\\)") - ;; We only check for a trailing "::" and - ;; let the "*" that should follow be - ;; matched in the next round. - t - ;; It turned out to be the real identifier, - ;; so flag that and stop. - (setq got-identifier t) - nil)) - t)) - (if (eq (char-after) ?\() - (progn - (setq paren-depth (1+ paren-depth)) - (forward-char)) - (goto-char (match-end 1))) - (c-forward-syntactic-ws)) - - ;; If we haven't passed the identifier already, do it now. - (unless got-identifier - (setq id-start (point)) - (c-forward-name)) - (setq id-end (point)) - - (/= id-end pos)) - - ;; Skip out of the parens surrounding the identifier. If closing - ;; parens are missing, this form returns nil. - (or (= paren-depth 0) - (c-safe (goto-char (scan-lists (point) 1 paren-depth)))) - - (<= (point) limit) - - ;; Skip over any trailing bit, such as "__attribute__". - (progn - (when (looking-at c-decl-hangon-key) - (c-forward-keyword-clause 1)) - (<= (point) limit)) - - ;; Search syntactically to the end of the declarator (";", - ;; ",", a closing paren, eob etc) or to the beginning of an - ;; initializer or function prototype ("=" or "\\s("). - ;; Note that square brackets are now not also treated as - ;; initializers, since this broke when there were also - ;; initializing brace lists. - (let (found) - (while - (and (setq found (c-syntactic-re-search-forward - "[;,]\\|\\s)\\|\\'\\|\\(=\\|\\s(\\)" limit t t)) - (eq (char-before) ?\[) - (c-go-up-list-forward)) - (setq brackets-after-id t)) - found)) - - (setq next-pos (match-beginning 0) - id-face (if (and (eq (char-after next-pos) ?\() - (not brackets-after-id)) + (and pos (setq decl-res (c-forward-declarator limit))) + (setq next-pos (point) + id-start (car decl-res) + id-face (if (and (eq (char-after) ?\() + (not (car (cddr decl-res)))) ; brackets-after-id 'font-lock-function-name-face 'font-lock-variable-name-face) - got-init (and (match-beginning 1) - (char-after (match-beginning 1)))) + got-init (and (cadr (cddr decl-res)) ; got-init + (char-after))) (if types ;; Register and fontify the identifier as a type. commit 6ff8b45f18619c2dc95dfb1d92a5c48b14049973 Author: Eli Zaretskii Date: Fri Jan 22 23:27:13 2016 +0200 ; Minor tweaks in etc/NEWS diff --git a/etc/NEWS b/etc/NEWS index 03e6148..786a391 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -519,10 +519,12 @@ If you need your objects to be named, do it by inheriting from `eieio-named'. *** The variables are declared obsolete. +++ *** The variables are declared obsolete. ++++ *** defgeneric and defmethod are declared obsolete. Use the equivalent facilities from cl-generic.el instead. +++ *** `constructor' is now an obsolete alias for `make-instance'. +--- `pcase' accepts a new UPattern `eieio'. ** ido @@ -710,6 +712,9 @@ prepending it. +++ *** New functions `cl-fresh-line', `cl-digit-char-p', and `cl-parse-integer'. +--- +*** `pcase' accepts the new UPattern `cl-struct'. + ** Calendar and diary +++ @@ -1201,11 +1206,12 @@ a typographically-correct documents. ** The `seq' library adds sequence manipulation functions and macros that complement basic functions provided by subr.el. All functions are prefixed with `seq-' and work on lists, strings and vectors. +`pcase' accepts a new Upattern `seq'. --- ** The `map' library provides map-manipulation functions that work on alists, hash-table and arrays. All functions are prefixed with -`map-'. +`map-'. `pcase' accepts a new UPattern `map'. --- ** The `thunk' library provides functions and macros to control the @@ -1376,7 +1382,7 @@ that happen, `unhandled-file-name-directory' now defaults to calling * Lisp Changes in Emacs 25.1 ** pcase -*** New UPatterns `quote', `app', `cl-struct', `eieio', `seq', and `map'. +*** New UPatterns `quote', `app'. *** New UPatterns can be defined with `pcase-defmacro'. +++ *** New vector QPattern. commit 5221f45047507d7306211b8df064a89b2f1706fa Author: Eli Zaretskii Date: Fri Jan 22 23:14:01 2016 +0200 Fix the build with --enable-checking=glyphs * src/xdisp.c (dump_glyph): Don't refer to glyph->u.xwidget in a build without xwidget support. diff --git a/src/xdisp.c b/src/xdisp.c index bba475f..157fa72 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -18828,7 +18828,11 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area) else if (glyph->type == XWIDGET_GLYPH) { fprintf (stderr, +#ifdef HAVE_XWIDGETS " %5d %4c %6d %c %3d 0x%05x %c %4d %1.1d%1.1d\n", +#else + " %5d %4c %6d %c %3d %c %4d %1.1d%1.1d\n", +#endif glyph - row->glyphs[TEXT_AREA], 'X', glyph->charpos, @@ -18838,7 +18842,9 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area) ? 'S' : '-')), glyph->pixel_width, +#ifdef HAVE_XWIDGETS glyph->u.xwidget, +#endif '.', glyph->face_id, glyph->left_box_line_p, commit 849a314c7a8a179052b524dfb56c8e723c8f6e82 Author: Eli Zaretskii Date: Fri Jan 22 23:06:22 2016 +0200 Document cl-generic.el * doc/lispref/functions.texi (Generic Functions): New section. (Bug#22336) (Functions): Update the chapter menu. * doc/lispref/elisp.texi: Update the master menu. diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index da519f5..4c1541e 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -536,6 +536,7 @@ Functions * Calling Functions:: How to use an existing function. * Mapping Functions:: Applying a function to each element of a list, etc. * Anonymous Functions:: Lambda expressions are functions with no names. +* Generic Functions:: Polymorphism, Emacs-style. * Function Cells:: Accessing or setting the function definition of a symbol. * Closures:: Functions that enclose a lexical environment. diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index 1e8e754..c5f5b4c 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -18,6 +18,7 @@ define them. * Calling Functions:: How to use an existing function. * Mapping Functions:: Applying a function to each element of a list, etc. * Anonymous Functions:: Lambda expressions are functions with no names. +* Generic Functions:: Polymorphism, Emacs-style. * Function Cells:: Accessing or setting the function definition of a symbol. * Closures:: Functions that enclose a lexical environment. @@ -1092,6 +1093,230 @@ the compiled code. The byte-compiler cannot assume this list is a function, even though it looks like one, since it does not know that @code{change-property} intends to use it as a function. +@node Generic Functions +@section Generic Functions +@cindex generic functions +@cindex polymorphism + + Functions defined using @code{defun} have a hard-coded set of +assumptions about the types and expected values of their arguments. +For example, a function that was designed to handle values of its +argument that are either numbers or lists of numbers will fail or +signal an error if called with a value of any other type, such as a +vector or a string. This happens because the implementation of the +function is not prepared to deal with types other than those assumed +during the design. + + By contrast, object-oriented programs use @dfn{polymorphic +functions}: a set of specialized functions having the same name, each +one of which was written for a certain specific set of argument types. +Which of the functions is actually called is decided at run time based +on the types of the actual arguments. + +@cindex CLOS + Emacs provides support for polymorphism. Like other Lisp +environments, notably Common Lisp and its Common Lisp Object System +(@acronym{CLOS}), this support is based on @dfn{generic functions}. +The Emacs generic functions closely follow @acronym{CLOS}, including +use of similar names, so if you have experience with @acronym{CLOS}, +the rest of this section will sound very familiar. + + A generic function specifies an abstract operation, by defining its +name and list of arguments, but (usually) no implementation. The +actual implementation for several specific classes of arguments is +provided by @dfn{methods}, which should be defined separately. Each +method that implements a generic function has the same name as the +generic function, but the method's definition indicates what kinds of +arguments it can handle by @dfn{specializing} the arguments defined by +the generic function. These @dfn{argument specializers} can be more +or less specific; for example, a @code{string} type is more specific +than a more general type, such as @code{sequence}. + + Note that, unlike in message-based OO languages, such as C@t{++} and +Simula, methods that implement generic functions don't belong to a +class, they belong to the generic function they implement. + + When a generic function is invoked, it selects the applicable +methods by comparing the actual arguments passed by the caller with +the argument specializers of each method. A method is applicable if +the actual arguments of the call are compatible with the method's +specializers. If more than one method is applicable, they are +combined using certain rules, described below, and the combination +then handles the call. + +@defmac cl-defgeneric name arguments [documentation] [options-and-methods@dots{}] &rest body +This macro defines a generic function with the specified @var{name} +and @var{arguments}. If @var{body} is present, it provides the +default implementation. If @var{documentation} is present (it should +always be), it specifies the documentation string for the generic +function, in the form @code{(:documentation @var{docstring})}. The +optional @var{options-and-methods} can be one of the following forms: + +@table @code +@item (declare @var{declarations}) +A declare form, as described in @ref{Declare Form}. +@item (:argument-precedence-order &rest @var{args}) +This form affects the sorting order for combining applicable methods. +Normally, when two methods are compared during combination, method +arguments are examined left to right, and the first method whose +argument specializer is more specific will come before the other one. +The order defined by this form overrides that, and the arguments are +examined according to their order in this form, and not left to right. +@item (:method [@var{qualifiers}@dots{}] args &rest body) +This form defines a method like @code{cl-defmethod} does. +@end table +@end defmac + +@defmac cl-defmethod name [qualifier] arguments &rest [docstring] body +This macro defines a particular implementation for the generic +function called @var{name}. The implementation code is given by +@var{body}. If present, @var{docstring} is the documentation string +for the method. The @var{arguments} list, which must be identical in +all the methods that implement a generic function, and must match the +argument list of that function, provides argument specializers of the +form @code{(@var{arg} @var{spec})}, where @var{arg} is the argument +name as specified in the @code{cl-defgeneric} call, and @var{spec} is +one of the following specializer forms: + +@table @code +@item @var{type} +This specializer requires the argument to be of the given @var{type}, +one of the types from the type hierarchy described below. +@item (eql @var{object}) +This specializer requires the argument be @code{eql} to the given +@var{object}. +@item (head @var{object}) +The argument must be a cons cell whose @code{car} is @code{eql} to +@var{object}. +@item @var{struct-tag} +The argument must be an instance of a class named @var{struct-tag} +defined with @code{cl-defstruct} (@pxref{Structures,,, cl, Common Lisp +Extensions for GNU Emacs Lisp}), or of one of its parent classes. +@end table + +Alternatively, the argument specializer can be of the form +@code{&context (@var{expr} @var{spec})}, in which case the value of +@var{expr} must be compatible with the specializer provided by +@var{spec}; @var{spec} can be any of the forms described above. In +other words, this form of specializer uses the value of @var{expr} +instead of arguments for the decision whether the method is +applicable. For example, @code{&context (overwrite-mode (eql t))} +will make the method compatible only when @code{overwrite-mode} is +turned on. + +The type specializer, @code{(@var{arg} @var{type})}, can specify one +of the @dfn{system types} in the following list. When a parent type +is specified, an argument whose type is any of its more specific child +types, as well as grand-children, grand-grand-children, etc. will also +be compatible. + +@table @code +@item integer +Parent type: @code{number}. +@item number +@item null +Parent type: @code{symbol} +@item symbol +@item string +Parent type: @code{array}. +@item array +Parent type: @code{sequence}. +@item cons +Parent type: @code{list}. +@item list +Parent type: @code{sequence}. +@item marker +@item overlay +@item float +Parent type: @code{number}. +@item window-configuration +@item process +@item window +@item subr +@item compiled-function +@item buffer +@item char-table +Parent type: @code{array}. +@item bool-vector +Parent type: @code{array}. +@item vector +Parent type: @code{array}. +@item frame +@item hash-table +@item font-spec +@item font-entity +@item font-object +@end table + +The optional @var{qualifier} allows to combine several applicable +methods. If it is not present, the defined method is a @dfn{primary} +method, responsible for providing the primary implementation of the +generic function for the specialized arguments. You can also define +@dfn{auxiliary methods}, by using one of the following values as +@var{qualifier}: + +@table @code +@item :before +This auxiliary method will run before the primary method. More +accurately, all the @code{:before} methods will run before the +primary, in the most-specific-first order. +@item :after +This auxiliary method will run after the primary method. More +accurately, all such methods will run after the primary, in the +most-specific-last order. +@item :around +This auxiliary method will run @emph{instead} of the primary method. +The most specific of such methods will be run before any other method. +Such methods normally use @code{cl-call-next-method}, described below, +to invoke the other auxiliary or primary methods. +@item :extra @var{string} +This allows to add more methods, distinguished by @var{string}, for +the same specializers and qualifiers. +@end table +@end defmac + +@cindex dispatch of methods for generic function +@cindex multiple-dispatch methods +Each time a generic function is called, it builds the @dfn{effective +method} which will handle this invocation by combining the applicable +methods defined for the function. The process of finding the +applicable methods and producing the effective method is called +@dfn{dispatch}. The applicable methods are those all of whose +specializers are compatible with the actual arguments of the call. +Since all of the arguments must be compatible with the specializers, +they all determine whether a method is applicable. Methods that +explicitly specialize more than one argument are called +@dfn{multiple-dispatch methods}. + +The applicable methods are sorted into the order in which they will be +combined. The method whose left-most argument specializer is the most +specific one will come first in the order. (Specifying +@code{:argument-precedence-order} as part of @code{cl-defmethod} +overrides that, as described above.) If the method body calls +@code{cl-call-next-method}, the next most-specific method will run. +If there are applicable @code{:around} methods, the most-specific of +them will run first; it should call @code{cl-call-next-method} to run +any of the less specific @code{:around} methods. Next, the +@code{:before} methods run in the order of their specificity, followed +by the primary method, and lastly the @code{:after} methods in the +reverse order of their specificity. + +@defun cl-call-next-method &rest args +When invoked from within the lexical body of a primary or an +@code{:around} auxiliary method, call the next applicable method for +the same generic function. Normally, it is called with no arguments, +which means to call the next applicable method with the same arguments +that the calling method was invoked. Otherwise, the specified +arguments are used instead. +@end defun + +@defun cl-next-method-p +This function, when called from within the lexical body of a primary +or an @code{:around} auxiliary method, returns non-@code{nil} if there +is a next method to call. +@end defun + + @node Function Cells @section Accessing Function Cell Contents diff --git a/etc/NEWS b/etc/NEWS index 4e47c58..03e6148 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -520,6 +520,7 @@ If you need your objects to be named, do it by inheriting from `eieio-named'. +++ *** The variables are declared obsolete. *** defgeneric and defmethod are declared obsolete. +Use the equivalent facilities from cl-generic.el instead. +++ *** `constructor' is now an obsolete alias for `make-instance'. @@ -1177,7 +1178,10 @@ command is called from Emacs (i.e., INSIDE_EMACS environment variable is set). This feature requires newer versions of GnuPG (2.1.5 or later) and Pinentry (0.9.5 or later). ++++ ** cl-generic.el provides CLOS-style multiple-dispatch generic functions. +The main entry points are `cl-defgeneric' and `cl-defmethod'. See the +node "Generic Functions" in the Emacs Lisp manual for more details. --- ** scss-mode (a minor variant of css-mode) commit 7c3d742c357dd6480e813f067435b324dba2b325 Author: Paul Eggert Date: Fri Jan 22 11:15:05 2016 -0800 xwidgets style cleanup Adjust the newly-added Xwidgets code so that it uses a more-typical Emacs style. This should not affect behavior, except that in a few places it adds runtime checks that Lisp arguments are of the proper type, and in one place it uses more-precise arithmetic. * src/buffer.c, src/dispnew.c, src/emacs.c, src/emacsgtkfixed.c: * src/emacs.c, src/print.c, src/window.c, src/xdisp.c, src/xterm.c: Include xwidget.h unconditionally. * src/buffer.c (Fkill_buffer): * src/dispnew.c (update_window): * src/emacs.c (main): * src/print.c (print_object): * src/window.c (Fdelete_window_internal): * src/xdisp.c (handle_single_display_spec, push_it, pop_it) (get_next_element, set_iterator_to_next, next_element_from_xwidget) (dump_glyph, calc_pixel_width_or_height, BUILD_GLYPH_STRINGS_XW) (BUILD_GLYPH_STRINGS, x_produce_glyphs, get_window_cursor_type): * src/xterm.c (x_draw_glyph_string, x_draw_bar_cursor): Call xwidget functions and macros without worrying about HAVE_XWIDGETS when the code is a no-op on non-xwidget platforms. * src/dispextern.h (XWIDGET_GLYPH, struct glyph_string.xwidget) (IT_XWIDGET, GET_FROM_XWIDGET, struct it.u.xwidget) (struct it.xwidget): * src/lisp.h (PVEC_XWIDGET, PVEC_XWIDGET_VIEW): Always define. * src/emacsgtkfixed.h: Omit unnecessary comment. * src/keyboard.c: Fix spacing. * src/xdisp.c (BUILD_XWIDGET_GLYPH_STRING, produce_xwidget_glyph): Define to be a no-op if not HAVE_XWIDGETS. * src/xwidget.c: Include xwidget.h first (after config.h) to make sure that it can stand by itself. (Fmake_xwidget, Fxwidget_webkit_execute_script): Fix typo in doc string. (Fmake_xwidget): Check type of args. (Fmake_xwidget, offscreen_damage_event) (webkit_document_load_finished_cb, webkit_download_cb) (webkit_new_window_policy_decision_requested_cb) (webkit_navigation_policy_decision_requested_cb) (xwidget_osr_draw_cb, xwidget_osr_event_forward) (xwidget_osr_event_set_embedder, xwidget_init_view): Omit unnecessary casts. * src/xwidget.c (Fmake_xwidget, xwidget_hidden) (xwidget_show_view, xwidget_hide_view) (x_draw_xwidget_glyph_string, xwidget_start_redisplay, xwidget_touch) (xwidget_touched): * src/xwidget.h (struct xwidget.kill_without_query) (struct xwidget_view.redisplayed, struct xwidget_view.hidden): Use bool for boolean. * src/xwidget.c (store_xwidget_event_string, Fxwidget_size_request): Simplify by using list functions. (WEBKIT_FN_INIT): Omit unnecessary test for nil. (Fxwidget_resize): Check type of integer args before doing any work. Check that they are nonnegative. (Fxwidget_set_adjustment): Check type of integer arg. Avoid redundant call to gtk_scrolled_window_get_vadjustment. Simplify. Use double, not float. (Fxwidget_info, Fxwidget_view_info): Simplify by using CALLN. (valid_xwidget_spec_p): Simplify. (xwidget_spec_value): Omit unused arg FOUND. All callers changed. * src/xwidget.h: Include lisp.h first, so that includers do not need to worry about doing that before including this file. Make this .h file safe to include even on non-HAVE_XWIDGETS configurations, to simplify the includers. (x_draw_xwidget_glyph_string, syms_of_xwidget, valid_xwidget_spec_p) (xwidget_end_redisplay, lookup_xwidget) (xwidget_view_delete_all_in_window, kill_buffer_xwidgets): Now a no-op if !HAVE_XWIDGETS, to simplify callers. (struct glyph_matrix, struct glyph_string, struct xwidget) (struct xwidget_view, struct window): New forward or incomplete decls, so that includers need not assume the corresponding .h files are already included, or that HAVE_XWIDGETS is defined. (struct xwidget_type, xwidget_from_id): Remove; unused. diff --git a/src/buffer.c b/src/buffer.c index a2981c9..74b6fb6 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -42,10 +42,8 @@ along with GNU Emacs. If not, see . */ #include "blockinput.h" #include "keymap.h" #include "frame.h" +#include "xwidget.h" -#ifdef HAVE_XWIDGETS -# include "xwidget.h" -#endif #ifdef WINDOWSNT #include "w32heap.h" /* for mmap_* */ #endif @@ -1749,10 +1747,8 @@ cleaning up all windows currently displaying the buffer to be killed. */) unlock_buffer (b); kill_buffer_processes (buffer); - -#ifdef HAVE_XWIDGETS kill_buffer_xwidgets (buffer); -#endif + /* Killing buffer processes may run sentinels which may have killed our buffer. */ if (!BUFFER_LIVE_P (b)) diff --git a/src/dispextern.h b/src/dispextern.h index fad5bfd..7d7d730 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -347,11 +347,10 @@ enum glyph_type IMAGE_GLYPH, /* Glyph is a space of fractional width and/or height. */ - STRETCH_GLYPH -#ifdef HAVE_XWIDGETS - /* Glyph is an external widget drawn by the GUI toolkit. */ - ,XWIDGET_GLYPH -#endif + STRETCH_GLYPH, + + /* Glyph is an external widget drawn by the GUI toolkit. */ + XWIDGET_GLYPH }; @@ -504,8 +503,10 @@ struct glyph int img_id; #ifdef HAVE_XWIDGETS + /* Xwidget reference (type == XWIDGET_GLYPH). */ struct xwidget *xwidget; #endif + /* Sub-structure for type == STRETCH_GLYPH. */ struct { @@ -1357,9 +1358,9 @@ struct glyph_string /* Image, if any. */ struct image *img; -#ifdef HAVE_XWIDGETS + /* Xwidget. */ struct xwidget *xwidget; -#endif + /* Slice */ struct glyph_slice slice; @@ -2111,11 +2112,10 @@ enum display_element_type IT_TRUNCATION, /* Continuation glyphs. See the comment for IT_TRUNCATION. */ - IT_CONTINUATION + IT_CONTINUATION, -#ifdef HAVE_XWIDGETS - ,IT_XWIDGET -#endif + /* Xwidget. */ + IT_XWIDGET }; @@ -2179,9 +2179,7 @@ enum it_method { GET_FROM_C_STRING, GET_FROM_IMAGE, GET_FROM_STRETCH, -#ifdef HAVE_XWIDGETS GET_FROM_XWIDGET, -#endif NUM_IT_METHODS }; @@ -2399,12 +2397,10 @@ struct it struct { Lisp_Object object; } stretch; -#ifdef HAVE_XWIDGETS /* method == GET_FROM_XWIDGET */ struct { Lisp_Object object; } xwidget; -#endif } u; /* Current text and display positions. */ @@ -2529,10 +2525,8 @@ struct it /* If what == IT_IMAGE, the id of the image to display. */ ptrdiff_t image_id; -#ifdef HAVE_XWIDGETS /* If what == IT_XWIDGET. */ struct xwidget *xwidget; -#endif /* Values from `slice' property. */ struct it_slice slice; diff --git a/src/dispnew.c b/src/dispnew.c index 571ed5f..433a6e9 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -39,15 +39,12 @@ along with GNU Emacs. If not, see . */ #include "syssignal.h" #include "systime.h" #include "tparam.h" +#include "xwidget.h" #ifdef HAVE_WINDOW_SYSTEM #include TERM_HEADER #endif /* HAVE_WINDOW_SYSTEM */ -#ifdef HAVE_XWIDGETS -# include "xwidget.h" -#endif - #include #include @@ -3549,9 +3546,7 @@ update_window (struct window *w, bool force_p) add_window_display_history (w, w->current_matrix->method, paused_p); #endif -#ifdef HAVE_XWIDGETS xwidget_end_redisplay (w, w->current_matrix); -#endif clear_glyph_matrix (desired_matrix); return paused_p; diff --git a/src/emacs.c b/src/emacs.c index ddaa82c..41113f8 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -65,10 +65,7 @@ along with GNU Emacs. If not, see . */ #include "character.h" #include "buffer.h" #include "window.h" - -#ifdef HAVE_XWIDGETS -# include "xwidget.h" -#endif +#include "xwidget.h" #include "atimer.h" #include "blockinput.h" #include "syssignal.h" @@ -1492,9 +1489,7 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem syms_of_xfns (); syms_of_xmenu (); syms_of_fontset (); -#ifdef HAVE_XWIDGETS syms_of_xwidget (); -#endif syms_of_xsettings (); #ifdef HAVE_X_SM syms_of_xsmfns (); diff --git a/src/emacsgtkfixed.c b/src/emacsgtkfixed.c index 08b8403..6795155 100644 --- a/src/emacsgtkfixed.c +++ b/src/emacsgtkfixed.c @@ -23,9 +23,7 @@ along with GNU Emacs. If not, see . */ #include "lisp.h" #include "frame.h" #include "xterm.h" -#ifdef HAVE_XWIDGETS -# include "xwidget.h" -#endif +#include "xwidget.h" #include "emacsgtkfixed.h" /* Silence a bogus diagnostic; see GNOME bug 683906. */ @@ -50,7 +48,6 @@ static void emacs_fixed_get_preferred_width (GtkWidget *widget, static void emacs_fixed_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural); - static GType emacs_fixed_get_type (void); G_DEFINE_TYPE (EmacsFixed, emacs_fixed, GTK_TYPE_FIXED) @@ -75,28 +72,28 @@ struct GtkFixedPrivateL GList *children; }; -static void emacs_fixed_gtk_widget_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) +static void +emacs_fixed_gtk_widget_size_allocate (GtkWidget *widget, + GtkAllocation *allocation) { - // For xwidgets. + /* For xwidgets. - // This basically re-implements the base class method and adds an - // additional case for an xwidget view. + This basically re-implements the base class method and adds an + additional case for an xwidget view. - // It would be nicer if the bse class method could be called first, - // and the the xview modification only would remain here. It wasn't - // possible to solve it that way yet. + It would be nicer if the bse class method could be called first, + and the the xview modification only would remain here. It wasn't + possible to solve it that way yet. */ EmacsFixedClass *klass; GtkWidgetClass *parent_class; - struct GtkFixedPrivateL* priv; + struct GtkFixedPrivateL *priv; klass = EMACS_FIXED_GET_CLASS (widget); parent_class = g_type_class_peek_parent (klass); parent_class->size_allocate (widget, allocation); - priv = G_TYPE_INSTANCE_GET_PRIVATE (widget, - GTK_TYPE_FIXED, - struct GtkFixedPrivateL); + priv = G_TYPE_INSTANCE_GET_PRIVATE (widget, GTK_TYPE_FIXED, + struct GtkFixedPrivateL); gtk_widget_set_allocation (widget, allocation); @@ -154,7 +151,6 @@ emacs_fixed_class_init (EmacsFixedClass *klass) widget_class = (GtkWidgetClass*) klass; - widget_class->get_preferred_width = emacs_fixed_get_preferred_width; widget_class->get_preferred_height = emacs_fixed_get_preferred_height; #ifdef HAVE_XWIDGETS @@ -163,7 +159,6 @@ emacs_fixed_class_init (EmacsFixedClass *klass) g_type_class_add_private (klass, sizeof (EmacsFixedPrivate)); } - static void emacs_fixed_init (EmacsFixed *fixed) { @@ -172,14 +167,7 @@ emacs_fixed_init (EmacsFixed *fixed) fixed->priv->f = 0; } -/** - * emacs_fixed_new: - * - * Creates a new #EmacsFixed. - * - * Returns: a new #EmacsFixed. - */ -GtkWidget* +GtkWidget * emacs_fixed_new (struct frame *f) { EmacsFixed *fixed = g_object_new (emacs_fixed_get_type (), NULL); diff --git a/src/emacsgtkfixed.h b/src/emacsgtkfixed.h index 378bd2b..72652c5 100644 --- a/src/emacsgtkfixed.h +++ b/src/emacsgtkfixed.h @@ -29,7 +29,6 @@ G_BEGIN_DECLS struct frame; -//typedef struct _EmacsFixed EmacsFixed; typedef struct _EmacsFixedPrivate EmacsFixedPrivate; typedef struct _EmacsFixedClass EmacsFixedClass; @@ -41,7 +40,6 @@ struct _EmacsFixed EmacsFixedPrivate *priv; }; - struct _EmacsFixedClass { GtkFixedClass parent_class; diff --git a/src/keyboard.c b/src/keyboard.c index c93876e..3cddd41 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -5960,7 +5960,7 @@ make_lispy_event (struct input_event *event) #ifdef HAVE_XWIDGETS case XWIDGET_EVENT: { - return Fcons (Qxwidget_event,event->arg); + return Fcons (Qxwidget_event, event->arg); } #endif @@ -10972,7 +10972,7 @@ syms_of_keyboard (void) #endif #ifdef HAVE_XWIDGETS - DEFSYM (Qxwidget_event,"xwidget-event"); + DEFSYM (Qxwidget_event, "xwidget-event"); #endif #ifdef USE_FILE_NOTIFY diff --git a/src/lisp.h b/src/lisp.h index 8aa034e9..ee055e9 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -799,11 +799,8 @@ enum pvec_type PVEC_WINDOW_CONFIGURATION, PVEC_SUBR, PVEC_OTHER, - -#ifdef HAVE_XWIDGETS PVEC_XWIDGET, PVEC_XWIDGET_VIEW, -#endif /* These should be last, check internal_equal to see why. */ PVEC_COMPILED, diff --git a/src/print.c b/src/print.c index 4dd4e96..2ecc0f5 100644 --- a/src/print.c +++ b/src/print.c @@ -32,10 +32,7 @@ along with GNU Emacs. If not, see . */ #include "disptab.h" #include "intervals.h" #include "blockinput.h" - -#ifdef HAVE_XWIDGETS -# include "xwidget.h" -#endif +#include "xwidget.h" #include #include @@ -1740,18 +1737,11 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag) print_c_string (XSUBR (obj)->symbol_name, printcharfun); printchar ('>', printcharfun); } -#ifdef HAVE_XWIDGETS - else if (XWIDGETP (obj)) + else if (XWIDGETP (obj) || XWIDGET_VIEW_P (obj)) { print_c_string ("#', printcharfun); } - else if (XWIDGET_VIEW_P (obj)) - { - print_c_string ("#', printcharfun); - } -#endif else if (WINDOWP (obj)) { int len = sprintf (buf, "#. */ #include "dispextern.h" #include "blockinput.h" #include "termhooks.h" /* For FRAME_TERMINAL. */ +#include "xwidget.h" #ifdef HAVE_WINDOW_SYSTEM #include TERM_HEADER #endif /* HAVE_WINDOW_SYSTEM */ #ifdef MSDOS #include "msdos.h" #endif -#ifdef HAVE_XWIDGETS -# include "xwidget.h" -#endif static ptrdiff_t count_windows (struct window *); static ptrdiff_t get_leaf_windows (struct window *, struct window **, @@ -4373,9 +4371,7 @@ Signal an error when WINDOW is the only window on its frame. */) /* Block input. */ block_input (); -#ifdef HAVE_XWIDGETS xwidget_view_delete_all_in_window (w); -#endif window_resize_apply (p, horflag); /* If this window is referred to by the dpyinfo's mouse highlight, invalidate that slot to be safe (Bug#9904). */ diff --git a/src/xdisp.c b/src/xdisp.c index 89385c0..bba475f 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -314,13 +314,11 @@ along with GNU Emacs. If not, see . */ #include "font.h" #include "fontset.h" #include "blockinput.h" +#include "xwidget.h" #ifdef HAVE_WINDOW_SYSTEM #include TERM_HEADER #endif /* HAVE_WINDOW_SYSTEM */ -#ifdef HAVE_XWIDGETS -# include "xwidget.h" -#endif #ifndef FRAME_X_OUTPUT #define FRAME_X_OUTPUT(f) ((f)->output_data.x) #endif @@ -857,9 +855,7 @@ static bool next_element_from_buffer (struct it *); static bool next_element_from_composition (struct it *); static bool next_element_from_image (struct it *); static bool next_element_from_stretch (struct it *); -#ifdef HAVE_XWIDGETS static bool next_element_from_xwidget (struct it *); -#endif static void load_overlay_strings (struct it *, ptrdiff_t); static bool get_next_display_element (struct it *); static enum move_it_result @@ -5147,11 +5143,8 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object, && valid_image_p (value)) #endif /* not HAVE_WINDOW_SYSTEM */ || (CONSP (value) && EQ (XCAR (value), Qspace)) -#ifdef HAVE_XWIDGETS || ((it ? FRAME_WINDOW_P (it->f) : frame_window_p) - && valid_xwidget_spec_p (value)) -#endif - ); + && valid_xwidget_spec_p (value))); if (valid_p && display_replaced == 0) { @@ -5226,17 +5219,15 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object, *position = it->position = start_pos; retval = 1 + (it->area == TEXT_AREA); } -#ifdef HAVE_XWIDGETS - else if (valid_xwidget_spec_p(value)) + else if (valid_xwidget_spec_p (value)) { it->what = IT_XWIDGET; it->method = GET_FROM_XWIDGET; it->position = start_pos; it->object = NILP (object) ? it->w->contents : object; *position = start_pos; - it->xwidget = lookup_xwidget(value); + it->xwidget = lookup_xwidget (value); } -#endif #ifdef HAVE_WINDOW_SYSTEM else { @@ -5989,11 +5980,9 @@ push_it (struct it *it, struct text_pos *position) case GET_FROM_STRETCH: p->u.stretch.object = it->object; break; -#ifdef HAVE_XWIDGETS case GET_FROM_XWIDGET: p->u.xwidget.object = it->object; break; -#endif case GET_FROM_BUFFER: case GET_FROM_DISPLAY_VECTOR: case GET_FROM_STRING: @@ -6095,11 +6084,9 @@ pop_it (struct it *it) it->object = p->u.image.object; it->slice = p->u.image.slice; break; -#ifdef HAVE_XWIDGETS case GET_FROM_XWIDGET: it->object = p->u.xwidget.object; break; -#endif case GET_FROM_STRETCH: it->object = p->u.stretch.object; break; @@ -6775,9 +6762,7 @@ static next_element_function const get_next_element[NUM_IT_METHODS] = next_element_from_c_string, next_element_from_image, next_element_from_stretch, -#ifdef HAVE_XWIDGETS next_element_from_xwidget, -#endif }; #define GET_NEXT_DISPLAY_ELEMENT(it) (*get_next_element[(it)->method]) (it) @@ -7638,9 +7623,7 @@ set_iterator_to_next (struct it *it, bool reseat_p) case GET_FROM_IMAGE: case GET_FROM_STRETCH: -#ifdef HAVE_XWIDGETS case GET_FROM_XWIDGET: -#endif /* The position etc with which we have to proceed are on the stack. The position may be at the end of a string, @@ -8103,14 +8086,12 @@ next_element_from_image (struct it *it) return true; } -#ifdef HAVE_XWIDGETS static bool next_element_from_xwidget (struct it *it) { it->what = IT_XWIDGET; return true; } -#endif /* Fill iterator IT with next display element from a stretch glyph @@ -18844,7 +18825,6 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area) glyph->left_box_line_p, glyph->right_box_line_p); } -#ifdef HAVE_XWIDGETS else if (glyph->type == XWIDGET_GLYPH) { fprintf (stderr, @@ -18865,7 +18845,6 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area) glyph->right_box_line_p); } -#endif } @@ -24364,13 +24343,11 @@ calc_pixel_width_or_height (double *res, struct it *it, Lisp_Object prop, return OK_PIXELS (width_p ? img->width : img->height); } -# ifdef HAVE_XWIDGETS if (FRAME_WINDOW_P (it->f) && valid_xwidget_spec_p (prop)) { // TODO: Don't return dummy size. return OK_PIXELS (100); } -# endif #endif if (EQ (car, Qplus) || EQ (car, Qminus)) { @@ -25273,8 +25250,11 @@ compute_overhangs_and_x (struct glyph_string *s, int x, bool backward_p) } \ while (false) -#ifdef HAVE_XWIDGETS -#define BUILD_XWIDGET_GLYPH_STRING(START, END, HEAD, TAIL, HL, X, LAST_X) \ +#ifndef HAVE_XWIDGETS +# define BUILD_XWIDGET_GLYPH_STRING(START, END, HEAD, TAIL, HL, X, LAST_X) \ + eassume (false) +#else +# define BUILD_XWIDGET_GLYPH_STRING(START, END, HEAD, TAIL, HL, X, LAST_X) \ do \ { \ s = alloca (sizeof *s); \ @@ -25287,7 +25267,6 @@ compute_overhangs_and_x (struct glyph_string *s, int x, bool backward_p) while (false) #endif - /* Add a glyph string for a sequence of character glyphs to the list of strings between HEAD and TAIL. START is the index of the first glyph in row area AREA of glyph row ROW that is part of the new @@ -25441,13 +25420,11 @@ compute_overhangs_and_x (struct glyph_string *s, int x, bool backward_p) HL, X, LAST_X); \ break; -#ifdef HAVE_XWIDGETS -# define BUILD_GLYPH_STRINGS_XW(START, END, HEAD, TAIL, HL, X, LAST_X) \ +#define BUILD_GLYPH_STRINGS_XW(START, END, HEAD, TAIL, HL, X, LAST_X) \ case XWIDGET_GLYPH: \ BUILD_XWIDGET_GLYPH_STRING (START, END, HEAD, TAIL, \ HL, X, LAST_X); \ break; -#endif #define BUILD_GLYPH_STRINGS_2(START, END, HEAD, TAIL, HL, X, LAST_X) \ case GLYPHLESS_GLYPH: \ @@ -25456,7 +25433,7 @@ compute_overhangs_and_x (struct glyph_string *s, int x, bool backward_p) break; \ \ default: \ - emacs_abort (); \ + emacs_abort (); \ } \ \ if (s) \ @@ -25468,16 +25445,10 @@ compute_overhangs_and_x (struct glyph_string *s, int x, bool backward_p) } while (false) -#ifdef HAVE_XWIDGETS -# define BUILD_GLYPH_STRINGS(START, END, HEAD, TAIL, HL, X, LAST_X) \ +#define BUILD_GLYPH_STRINGS(START, END, HEAD, TAIL, HL, X, LAST_X) \ BUILD_GLYPH_STRINGS_1(START, END, HEAD, TAIL, HL, X, LAST_X) \ BUILD_GLYPH_STRINGS_XW(START, END, HEAD, TAIL, HL, X, LAST_X) \ BUILD_GLYPH_STRINGS_2(START, END, HEAD, TAIL, HL, X, LAST_X) -#else -# define BUILD_GLYPH_STRINGS(START, END, HEAD, TAIL, HL, X, LAST_X) \ - BUILD_GLYPH_STRINGS_1(START, END, HEAD, TAIL, HL, X, LAST_X) \ - BUILD_GLYPH_STRINGS_2(START, END, HEAD, TAIL, HL, X, LAST_X) -#endif /* Draw glyphs between START and END in AREA of ROW on window W, @@ -26118,10 +26089,10 @@ produce_image_glyph (struct it *it) } } -#ifdef HAVE_XWIDGETS static void produce_xwidget_glyph (struct it *it) { +#ifdef HAVE_XWIDGETS struct xwidget *xw; int glyph_ascent, crop; eassert (it->what == IT_XWIDGET); @@ -26219,8 +26190,8 @@ produce_xwidget_glyph (struct it *it) else IT_EXPAND_MATRIX_WIDTH (it, area); } -} #endif +} /* Append a stretch glyph to IT->glyph_row. OBJECT is the source of the glyph, WIDTH and HEIGHT are the width and height of the @@ -27631,10 +27602,8 @@ x_produce_glyphs (struct it *it) produce_image_glyph (it); else if (it->what == IT_STRETCH) produce_stretch_glyph (it); -#ifdef HAVE_XWIDGETS else if (it->what == IT_XWIDGET) produce_xwidget_glyph (it); -#endif done: /* Accumulate dimensions. Note: can't assume that it->descent > 0 @@ -28004,10 +27973,8 @@ get_window_cursor_type (struct window *w, struct glyph *glyph, int *width, /* Use normal cursor if not blinked off. */ if (!w->cursor_off_p) { -#ifdef HAVE_XWIDGETS if (glyph != NULL && glyph->type == XWIDGET_GLYPH) return NO_CURSOR; -#endif if (glyph != NULL && glyph->type == IMAGE_GLYPH) { if (cursor_type == FILLED_BOX_CURSOR) diff --git a/src/xterm.c b/src/xterm.c index 44eed22..6a38d24 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -62,9 +62,7 @@ along with GNU Emacs. If not, see . */ #include "composite.h" #include "frame.h" #include "dispextern.h" -#ifdef HAVE_XWIDGETS -# include "xwidget.h" -#endif +#include "xwidget.h" #include "fontset.h" #include "termhooks.h" #include "termopts.h" @@ -3514,11 +3512,9 @@ x_draw_glyph_string (struct glyph_string *s) x_draw_image_glyph_string (s); break; -#ifdef HAVE_XWIDGETS case XWIDGET_GLYPH: x_draw_xwidget_glyph_string (s); break; -#endif case STRETCH_GLYPH: x_draw_stretch_glyph_string (s); @@ -8929,10 +8925,9 @@ x_draw_bar_cursor (struct window *w, struct glyph_row *row, int width, enum text if (cursor_glyph == NULL) return; -#ifdef HAVE_XWIDGETS + /* Experimental avoidance of cursor on xwidget. */ if (cursor_glyph->type == XWIDGET_GLYPH) - return; // Experimental avoidance of cursor on xwidget. -#endif + return; /* If on an image, draw like a normal cursor. That's usually better visible than drawing a bar, esp. if the image is large so that diff --git a/src/xwidget.c b/src/xwidget.c index ea5dea0..be3e4ca 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -19,6 +19,7 @@ along with GNU Emacs. If not, see . */ #include +#include "xwidget.h" #include @@ -105,8 +106,6 @@ along with GNU Emacs. If not, see . */ #include #include -#include "xwidget.h" - static struct xwidget * allocate_xwidget (void) { @@ -120,8 +119,8 @@ allocate_xwidget_view (void) PVEC_XWIDGET_VIEW); } -#define XSETXWIDGET(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_XWIDGET)) -#define XSETXWIDGET_VIEW(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_XWIDGET_VIEW)) +#define XSETXWIDGET(a, b) XSETPSEUDOVECTOR (a, b, PVEC_XWIDGET) +#define XSETXWIDGET_VIEW(a, b) XSETPSEUDOVECTOR (a, b, PVEC_XWIDGET_VIEW) static struct xwidget_view *xwidget_view_lookup (struct xwidget *, struct window *); @@ -163,67 +162,57 @@ If BUFFER is nil, use the current buffer. If BUFFER is a string and no such buffer exists, create it. TYPE is a symbol which can take one of the following values: -- webkit_osr +- webkit-osr Returns the newly constructed xwidget, or nil if construction fails. */) - (Lisp_Object beg, Lisp_Object end, - Lisp_Object type, - Lisp_Object title, - Lisp_Object width, Lisp_Object height, - Lisp_Object arguments, Lisp_Object buffer) + (Lisp_Object beg, Lisp_Object end, Lisp_Object type, + Lisp_Object title, Lisp_Object width, Lisp_Object height, + Lisp_Object arguments, Lisp_Object buffer) { - //should work a bit like "make-button"(make-button BEG END &rest PROPERTIES) - // arg "type" and fwd should be keyword args eventually - //(make-xwidget 3 3 'button "oei" 31 31 nil) - //(xwidget-info (car xwidget-list)) + CHECK_SYMBOL (type); + CHECK_NATNUM (width); + CHECK_NATNUM (height); + /* This should work a bit like "make-button" + (make-button BEG END &rest PROPERTIES) + TYPE etc. should be keyword args eventually. + (make-xwidget 3 3 'button "oei" 31 31 nil) + (xwidget-info (car xwidget-list)) */ struct xwidget *xw = allocate_xwidget (); Lisp_Object val; xw->type = type; xw->title = title; - if (NILP (buffer)) - buffer = Fcurrent_buffer (); // no need to gcpro because - // Fcurrent_buffer doesn't - // call Feval/eval_sub. - else - buffer = Fget_buffer_create (buffer); - xw->buffer = buffer; - + xw->buffer = NILP (buffer) ? Fcurrent_buffer () : Fget_buffer_create (buffer); xw->height = XFASTINT (height); xw->width = XFASTINT (width); - xw->kill_without_query = 0; - XSETXWIDGET (val, xw); // set the vectorlike_header of VAL - // with the correct value + xw->kill_without_query = false; + XSETXWIDGET (val, xw); Vxwidget_list = Fcons (val, Vxwidget_list); xw->widgetwindow_osr = NULL; xw->widget_osr = NULL; xw->plist = Qnil; - if (EQ (xw->type, Qwebkit_osr)) { block_input (); xw->widgetwindow_osr = gtk_offscreen_window_new (); gtk_window_resize (GTK_WINDOW (xw->widgetwindow_osr), xw->width, xw->height); - xw->widgetscrolledwindow_osr = NULL; //webkit osr is the - //only scrolled - //component atm + + /* WebKit OSR is the only scrolled component at the moment. */ + xw->widgetscrolledwindow_osr = NULL; if (EQ (xw->type, Qwebkit_osr)) { xw->widgetscrolledwindow_osr = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW - (xw-> - widgetscrolledwindow_osr), - xw->height); - gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW - (xw-> - widgetscrolledwindow_osr), - xw->width); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW - (xw->widgetscrolledwindow_osr), - GTK_POLICY_ALWAYS, - GTK_POLICY_ALWAYS); + gtk_scrolled_window_set_min_content_height + (GTK_SCROLLED_WINDOW (xw->widgetscrolledwindow_osr), + xw->height); + gtk_scrolled_window_set_min_content_width + (GTK_SCROLLED_WINDOW (xw->widgetscrolledwindow_osr), + xw->width); + gtk_scrolled_window_set_policy + (GTK_SCROLLED_WINDOW (xw->widgetscrolledwindow_osr), + GTK_POLICY_ALWAYS, GTK_POLICY_ALWAYS); xw->widget_osr = webkit_web_view_new (); gtk_container_add (GTK_CONTAINER (xw->widgetscrolledwindow_osr), @@ -248,12 +237,10 @@ Returns the newly constructed xwidget, or nil if construction fails. */) gtk_widget_show (xw->widgetwindow_osr); gtk_widget_show (xw->widgetscrolledwindow_osr); - /* store some xwidget data in the gtk widgets for convenient + /* Store some xwidget data in the gtk widgets for convenient retrieval in the event handlers. */ - g_object_set_data (G_OBJECT (xw->widget_osr), XG_XWIDGET, - (gpointer) (xw)); - g_object_set_data (G_OBJECT (xw->widgetwindow_osr), XG_XWIDGET, - (gpointer) (xw)); + g_object_set_data (G_OBJECT (xw->widget_osr), XG_XWIDGET, xw); + g_object_set_data (G_OBJECT (xw->widgetwindow_osr), XG_XWIDGET, xw); /* signals */ if (EQ (xw->type, Qwebkit_osr)) @@ -286,7 +273,6 @@ Returns the newly constructed xwidget, or nil if construction fails. */) } unblock_input (); - } return val; @@ -317,18 +303,16 @@ BUFFER may be a buffer or the name of one. */) return xw_list; } -static int +static bool xwidget_hidden (struct xwidget_view *xv) { return xv->hidden; } - - static void xwidget_show_view (struct xwidget_view *xv) { - xv->hidden = 0; + xv->hidden = false; gtk_widget_show (xv->widgetwindow); gtk_fixed_move (GTK_FIXED (xv->emacswindow), xv->widgetwindow, @@ -336,33 +320,30 @@ xwidget_show_view (struct xwidget_view *xv) xv->y + xv->clip_top); } - /* Hide an xvidget view. */ static void xwidget_hide_view (struct xwidget_view *xv) { - xv->hidden = 1; + xv->hidden = true; gtk_fixed_move (GTK_FIXED (xv->emacswindow), xv->widgetwindow, 10000, 10000); } - - /* When the off-screen webkit master view changes this signal is called. It copies the bitmap from the off-screen instance. */ static gboolean -offscreen_damage_event (GtkWidget * widget, GdkEvent * event, +offscreen_damage_event (GtkWidget *widget, GdkEvent *event, gpointer xv_widget) { - // Queue a redraw of onscreen widget. - // There is a guard against receiving an invalid widget, - // which should only happen if we failed to remove the - // specific signal handler for the damage event. + /* Queue a redraw of onscreen widget. + There is a guard against receiving an invalid widget, + which should only happen if we failed to remove the + specific signal handler for the damage event. */ if (GTK_IS_WIDGET (xv_widget)) gtk_widget_queue_draw (GTK_WIDGET (xv_widget)); else printf ("Warning, offscreen_damage_event received invalid xv pointer:%p\n", - (void *) xv_widget); + xv_widget); return FALSE; } @@ -377,75 +358,58 @@ store_xwidget_event_string (struct xwidget *xw, const char *eventname, EVENT_INIT (event); event.kind = XWIDGET_EVENT; event.frame_or_window = Qnil; - - event.arg = Qnil; - event.arg = Fcons (build_string (eventstr), event.arg); - event.arg = Fcons (xwl, event.arg); - event.arg = Fcons (intern (eventname), event.arg); + event.arg = list3 (intern (eventname), xwl, build_string (eventstr)); kbd_buffer_store_event (&event); - } -//TODO deprecated, use load-status +/* TODO deprecated, use load-status. */ void -webkit_document_load_finished_cb (WebKitWebView * webkitwebview, - WebKitWebFrame * arg1, +webkit_document_load_finished_cb (WebKitWebView *webkitwebview, + WebKitWebFrame *arg1, gpointer data) { - struct xwidget *xw = - (struct xwidget *) g_object_get_data (G_OBJECT (webkitwebview), + struct xwidget *xw = g_object_get_data (G_OBJECT (webkitwebview), XG_XWIDGET); store_xwidget_event_string (xw, "document-load-finished", ""); } gboolean -webkit_download_cb (WebKitWebView * webkitwebview, - WebKitDownload * arg1, +webkit_download_cb (WebKitWebView *webkitwebview, + WebKitDownload *arg1, gpointer data) { - struct xwidget *xw = - (struct xwidget *) g_object_get_data (G_OBJECT (webkitwebview), + struct xwidget *xw = g_object_get_data (G_OBJECT (webkitwebview), XG_XWIDGET); store_xwidget_event_string (xw, "download-requested", webkit_download_get_uri (arg1)); - return FALSE; } static gboolean -webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *webView, - WebKitWebFrame *frame, - WebKitNetworkRequest * request, - gchar * mimetype, - WebKitWebPolicyDecision *policy_decision, - gpointer user_data) +webkit_mime_type_policy_typedecision_requested_cb +(WebKitWebView *webView, WebKitWebFrame *frame, WebKitNetworkRequest *request, + gchar *mimetype, WebKitWebPolicyDecision *policy_decision, gpointer user_data) { - // This function makes webkit send a download signal for all unknown - // mime types. TODO Defer the decision to lisp, so that its possible - // to make Emacs handle teext mime for instance.xs + /* This function makes webkit send a download signal for all unknown + mime types. TODO: Defer the decision to Lisp, so that it's + possible to make Emacs handle teext mime for instance.xs. */ if (!webkit_web_view_can_show_mime_type (webView, mimetype)) { webkit_web_policy_decision_download (policy_decision); return TRUE; } else - { - return FALSE; - } + return FALSE; } - static gboolean -webkit_new_window_policy_decision_requested_cb (WebKitWebView *webView, - WebKitWebFrame *frame, - WebKitNetworkRequest *request, - WebKitWebNavigationAction *navigation_action, - WebKitWebPolicyDecision *policy_decision, - gpointer user_data) +webkit_new_window_policy_decision_requested_cb +(WebKitWebView *webView, WebKitWebFrame *frame, WebKitNetworkRequest *request, + WebKitWebNavigationAction *navigation_action, + WebKitWebPolicyDecision *policy_decision, gpointer user_data) { - struct xwidget *xw = - (struct xwidget *) g_object_get_data (G_OBJECT (webView), XG_XWIDGET); + struct xwidget *xw = g_object_get_data (G_OBJECT (webView), XG_XWIDGET); webkit_web_navigation_action_get_original_uri (navigation_action); store_xwidget_event_string (xw, "new-window-policy-decision-requested", @@ -455,29 +419,24 @@ webkit_new_window_policy_decision_requested_cb (WebKitWebView *webView, } static gboolean -webkit_navigation_policy_decision_requested_cb (WebKitWebView *webView, - WebKitWebFrame *frame, - WebKitNetworkRequest *request, - WebKitWebNavigationAction *navigation_action, - WebKitWebPolicyDecision * policy_decision, - gpointer user_data) +webkit_navigation_policy_decision_requested_cb +(WebKitWebView *webView, WebKitWebFrame *frame, WebKitNetworkRequest *request, + WebKitWebNavigationAction *navigation_action, + WebKitWebPolicyDecision *policy_decision, gpointer user_data) { - struct xwidget *xw = - (struct xwidget *) g_object_get_data (G_OBJECT (webView), XG_XWIDGET); + struct xwidget *xw = g_object_get_data (G_OBJECT (webView), XG_XWIDGET); store_xwidget_event_string (xw, "navigation-policy-decision-requested", webkit_web_navigation_action_get_original_uri (navigation_action)); return FALSE; } -// For gtk3 offscreen rendered widgets. +/* For gtk3 offscreen rendered widgets. */ static gboolean -xwidget_osr_draw_cb (GtkWidget * widget, cairo_t * cr, gpointer data) +xwidget_osr_draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data) { - struct xwidget *xw = - (struct xwidget *) g_object_get_data (G_OBJECT (widget), XG_XWIDGET); - struct xwidget_view *xv = - (struct xwidget_view *) g_object_get_data (G_OBJECT (widget), + struct xwidget *xw = g_object_get_data (G_OBJECT (widget), XG_XWIDGET); + struct xwidget_view *xv = g_object_get_data (G_OBJECT (widget), XG_XWIDGET_VIEW); cairo_rectangle (cr, 0, 0, xv->clip_right, xv->clip_bottom); @@ -491,31 +450,30 @@ xwidget_osr_draw_cb (GtkWidget * widget, cairo_t * cr, gpointer data) } static gboolean -xwidget_osr_event_forward (GtkWidget * widget, - GdkEvent * event, - gpointer user_data) +xwidget_osr_event_forward (GtkWidget *widget, GdkEvent *event, + gpointer user_data) { /* Copy events that arrive at the outer widget to the offscreen widget. */ - struct xwidget *xw = - (struct xwidget *) g_object_get_data (G_OBJECT (widget), XG_XWIDGET); + struct xwidget *xw = g_object_get_data (G_OBJECT (widget), XG_XWIDGET); GdkEvent *eventcopy = gdk_event_copy (event); eventcopy->any.window = gtk_widget_get_window (xw->widget_osr); - //TODO This might leak events. They should be deallocated later, - //perhaps in xwgir_event_cb + /* TODO: This might leak events. They should be deallocated later, + perhaps in xwgir_event_cb. */ gtk_main_do_event (eventcopy); - return TRUE; //dont propagate this event furter -} + /* Don't propagate this event further. */ + return TRUE; +} static gboolean -xwidget_osr_event_set_embedder (GtkWidget * widget, - GdkEvent * event, gpointer data) +xwidget_osr_event_set_embedder (GtkWidget *widget, GdkEvent *event, + gpointer data) { - struct xwidget_view *xv = (struct xwidget_view *) data; + struct xwidget_view *xv = data; struct xwidget *xww = XXWIDGET (xv->model); gdk_offscreen_window_set_embedder (gtk_widget_get_window - (xww->widgetwindow_osr), + (xww->widgetwindow_osr), gtk_widget_get_window (xv->widget)); return FALSE; } @@ -539,11 +497,11 @@ xwidget_init_view (struct xwidget *xww, if (EQ (xww->type, Qwebkit_osr)) { xv->widget = gtk_drawing_area_new (); - // Expose event handling. + /* Expose event handling. */ gtk_widget_set_app_paintable (xv->widget, TRUE); gtk_widget_add_events (xv->widget, GDK_ALL_EVENTS_MASK); - /* Draw the view on damage-event */ + /* Draw the view on damage-event. */ g_signal_connect (G_OBJECT (xww->widgetwindow_osr), "damage-event", G_CALLBACK (offscreen_damage_event), xv->widget); @@ -558,38 +516,33 @@ xwidget_init_view (struct xwidget *xww, } else { - // xwgir debug , orthogonal to forwarding + /* xwgir debug, orthogonal to forwarding. */ g_signal_connect (G_OBJECT (xv->widget), "enter-notify-event", G_CALLBACK (xwidget_osr_event_set_embedder), xv); } g_signal_connect (G_OBJECT (xv->widget), "draw", G_CALLBACK (xwidget_osr_draw_cb), NULL); } - // Widget realization. - // Make container widget 1st, and put the actual widget inside the - // container later. Drawing should crop container window if necessary - // to handle case where xwidget is partially obscured by other Emacs - // windows. Other containers than gtk_fixed where explored, but - // gtk_fixed had the most predictable behaviour so far. + /* Widget realization. + + Make container widget first, and put the actual widget inside the + container later. Drawing should crop container window if necessary + to handle case where xwidget is partially obscured by other Emacs + windows. Other containers than gtk_fixed where explored, but + gtk_fixed had the most predictable behaviour so far. */ + xv->emacswindow = FRAME_GTK_WIDGET (s->f); xv->widgetwindow = gtk_fixed_new (); gtk_widget_set_has_window (xv->widgetwindow, TRUE); gtk_container_add (GTK_CONTAINER (xv->widgetwindow), xv->widget); - // Store some xwidget data in the gtk widgets. - // The emacs frame. - g_object_set_data (G_OBJECT (xv->widget), XG_FRAME_DATA, (gpointer) (s->f)); - // The xwidget. - g_object_set_data (G_OBJECT (xv->widget), XG_XWIDGET, (gpointer) (xww)); - // The xwidget. - g_object_set_data (G_OBJECT (xv->widget), XG_XWIDGET_VIEW, (gpointer) (xv)); - // The xwidget window. - g_object_set_data (G_OBJECT (xv->widgetwindow), XG_XWIDGET, (gpointer) (xww)); - // the xwidget view. - g_object_set_data (G_OBJECT (xv->widgetwindow), XG_XWIDGET_VIEW, - (gpointer) (xv)); - + /* Store some xwidget data in the gtk widgets. */ + g_object_set_data (G_OBJECT (xv->widget), XG_FRAME_DATA, s->f); + g_object_set_data (G_OBJECT (xv->widget), XG_XWIDGET, xww); + g_object_set_data (G_OBJECT (xv->widget), XG_XWIDGET_VIEW, xv); + g_object_set_data (G_OBJECT (xv->widgetwindow), XG_XWIDGET, xww); + g_object_set_data (G_OBJECT (xv->widgetwindow), XG_XWIDGET_VIEW, xv); gtk_widget_set_size_request (GTK_WIDGET (xv->widget), xww->width, xww->height); @@ -599,18 +552,15 @@ xwidget_init_view (struct xwidget *xww, xv->y = y; gtk_widget_show_all (xv->widgetwindow); - return xv; } - void x_draw_xwidget_glyph_string (struct glyph_string *s) { /* This method is called by the redisplay engine and places the xwidget on screen. Moving and clipping is done here. Also view - initialization. - */ + initialization. */ struct xwidget *xww = s->xwidget; struct xwidget_view *xv = xwidget_view_lookup (xww, s->w); int clip_right; @@ -620,16 +570,14 @@ x_draw_xwidget_glyph_string (struct glyph_string *s) int x = s->x; int y = s->y + (s->height / 2) - (xww->height / 2); - int moved = 0; - /* We do initialization here in the display loop because there is no - other time to know things like window placement etc. - */ + /* Do initialization here in the display loop because there is no + other time to know things like window placement etc. */ xv = xwidget_init_view (xww, s, x, y); - // Calculate clipping, which is used for all manner of onscreen - // xwidget views. Each widget border can get clipped by other emacs - // objects so there are four clipping variables. + /* Calculate clipping, which is used for all manner of onscreen + xwidget views. Each widget border can get clipped by other emacs + objects so there are four clipping variables. */ clip_right = min (xww->width, WINDOW_RIGHT_EDGE_X (s->w) - x - @@ -646,31 +594,32 @@ x_draw_xwidget_glyph_string (struct glyph_string *s) WINDOW_BOTTOM_EDGE_Y (s->w) - WINDOW_MODE_LINE_HEIGHT (s->w) - y); clip_top = max (0, WINDOW_TOP_EDGE_Y (s->w) - y); - // We are conserned with movement of the onscreen area. The area - // might sit still when the widget actually moves. This happens - // when an Emacs window border moves across a widget window. So, if - // any corner of the outer widget clipping window moves, that counts - // as movement here, even if it looks like no movement happens - // because the widget sits still inside the clipping area. The - // widget can also move inside the clipping area, which happens - // later - moved = (xv->x + xv->clip_left != x + clip_left) - || ((xv->y + xv->clip_top) != (y + clip_top)); + /* We are conserned with movement of the onscreen area. The area + might sit still when the widget actually moves. This happens + when an Emacs window border moves across a widget window. So, if + any corner of the outer widget clipping window moves, that counts + as movement here, even if it looks like no movement happens + because the widget sits still inside the clipping area. The + widget can also move inside the clipping area, which happens + later. */ + bool moved = (xv->x + xv->clip_left != x + clip_left + || xv->y + xv->clip_top != y + clip_top); xv->x = x; xv->y = y; - if (moved) // Has it moved? - { - gtk_fixed_move (GTK_FIXED (FRAME_GTK_WIDGET (s->f)), - xv->widgetwindow, x + clip_left, y + clip_top); - } - // Clip the widget window if some parts happen to be outside - // drawable area. An Emacs window is not a gtk window. A gtk window - // covers the entire frame. Clipping might have changed even if we - // havent actualy moved, we try figure out when we need to reclip - // for real. - if ((xv->clip_right != clip_right) - || (xv->clip_bottom != clip_bottom) - || (xv->clip_top != clip_top) || (xv->clip_left != clip_left)) + + /* Has it moved? */ + if (moved) + gtk_fixed_move (GTK_FIXED (FRAME_GTK_WIDGET (s->f)), + xv->widgetwindow, x + clip_left, y + clip_top); + + /* Clip the widget window if some parts happen to be outside + drawable area. An Emacs window is not a gtk window. A gtk window + covers the entire frame. Clipping might have changed even if we + havent actualy moved, we try figure out when we need to reclip + for real. */ + if (xv->clip_right != clip_right + || xv->clip_bottom != clip_bottom + || xv->clip_top != clip_top || xv->clip_left != clip_left) { gtk_widget_set_size_request (xv->widgetwindow, clip_right + clip_left, clip_bottom + clip_top); @@ -682,10 +631,11 @@ x_draw_xwidget_glyph_string (struct glyph_string *s) xv->clip_top = clip_top; xv->clip_left = clip_left; } - // If emacs wants to repaint the area where the widget lives, queue - // a redraw. It seems its possible to get out of sync with emacs - // redraws so emacs background sometimes shows up instead of the - // xwidgets background. It's just a visual glitch though. + + /* If emacs wants to repaint the area where the widget lives, queue + a redraw. It seems its possible to get out of sync with emacs + redraws so emacs background sometimes shows up instead of the + xwidgets background. It's just a visual glitch though. */ if (!xwidget_hidden (xv)) { gtk_widget_queue_draw (xv->widgetwindow); @@ -693,19 +643,15 @@ x_draw_xwidget_glyph_string (struct glyph_string *s) } } - -// Macro that checks WEBKIT_IS_WEB_VIEW(xw->widget_osr) first -#define WEBKIT_FN_INIT() \ - struct xwidget* xw; \ - CHECK_XWIDGET (xwidget); \ - if (NILP (xwidget)) {printf("ERROR xwidget nil\n"); return Qnil;}; \ - xw = XXWIDGET (xwidget); \ - if (NULL == xw) printf("ERROR xw is 0\n"); \ - if ((NULL == xw->widget_osr) || !WEBKIT_IS_WEB_VIEW(xw->widget_osr)){ \ - printf ("ERROR xw->widget_osr does not hold a webkit instance\n");\ - return Qnil;\ - }; - +/* Macro that checks WEBKIT_IS_WEB_VIEW (xw->widget_osr) first. */ +#define WEBKIT_FN_INIT() \ + CHECK_XWIDGET (xwidget); \ + struct xwidget *xw = XXWIDGET (xwidget); \ + if (!xw->widget_osr || !WEBKIT_IS_WEB_VIEW (xw->widget_osr)) \ + { \ + printf ("ERROR xw->widget_osr does not hold a webkit instance\n"); \ + return Qnil; \ + } DEFUN ("xwidget-webkit-goto-uri", Fxwidget_webkit_goto_uri, Sxwidget_webkit_goto_uri, @@ -723,7 +669,7 @@ DEFUN ("xwidget-webkit-goto-uri", DEFUN ("xwidget-webkit-execute-script", Fxwidget_webkit_execute_script, Sxwidget_webkit_execute_script, 2, 2, 0, - doc: /* Make the Webkit XWIDGET execute javascript SCRIPT. */) + doc: /* Make the Webkit XWIDGET execute JavaScript SCRIPT. */) (Lisp_Object xwidget, Lisp_Object script) { WEBKIT_FN_INIT (); @@ -741,14 +687,14 @@ This can be used to work around the lack of a return value from the exec method. */ ) (Lisp_Object xwidget) { - // TODO support multibyte strings + /* TODO support multibyte strings. */ WEBKIT_FN_INIT (); const gchar *str = webkit_web_view_get_title (WEBKIT_WEB_VIEW (xw->widget_osr)); if (str == 0) { - // TODO maybe return Qnil instead. I suppose webkit returns - // nullpointer when doc is not properly loaded or something + /* TODO maybe return Qnil instead. I suppose webkit returns + null pointer when doc is not properly loaded or something. */ return build_string (""); } return build_string (str); @@ -759,32 +705,30 @@ DEFUN ("xwidget-resize", Fxwidget_resize, Sxwidget_resize, 3, 3, 0, (Lisp_Object xwidget, Lisp_Object new_width, Lisp_Object new_height) { CHECK_XWIDGET (xwidget); + CHECK_NATNUM (new_width); + CHECK_NATNUM (new_height); struct xwidget *xw = XXWIDGET (xwidget); - struct xwidget_view *xv; - int w, h; - - CHECK_NUMBER (new_width); - CHECK_NUMBER (new_height); - w = XFASTINT (new_width); - h = XFASTINT (new_height); + int w = XFASTINT (new_width); + int h = XFASTINT (new_height); xw->width = w; xw->height = h; - // If there is a offscreen widget resize it 1st. + + /* If there is an offscreen widget resize it first. */ if (xw->widget_osr) { + /* Use minimum size. */ gtk_widget_set_size_request (GTK_WIDGET (xw->widget_osr), - xw->width, xw->height); //minimum size + xw->width, xw->height); + gtk_window_resize (GTK_WINDOW (xw->widgetwindow_osr), xw->width, xw->height); - gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW - (xw-> - widgetscrolledwindow_osr), - xw->height); - gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW - (xw-> - widgetscrolledwindow_osr), - xw->width); + gtk_scrolled_window_set_min_content_height + (GTK_SCROLLED_WINDOW (xw->widgetscrolledwindow_osr), + xw->height); + gtk_scrolled_window_set_min_content_width + (GTK_SCROLLED_WINDOW (xw->widgetscrolledwindow_osr), + xw->width); gtk_container_resize_children (GTK_CONTAINER (xw->widgetwindow_osr)); @@ -794,7 +738,7 @@ DEFUN ("xwidget-resize", Fxwidget_resize, Sxwidget_resize, 3, 3, 0, { if (XWIDGET_VIEW_P (XCAR (tail))) { - xv = XXWIDGET_VIEW (XCAR (tail)); + struct xwidget_view *xv = XXWIDGET_VIEW (XCAR (tail)); if (XXWIDGET (xv->model) == xw) gtk_widget_set_size_request (GTK_WIDGET (xv->widget), xw->width, xw->height); @@ -816,37 +760,17 @@ VALUE is the amount to scroll, either relatively or absolutely. */) Lisp_Object value) { CHECK_XWIDGET (xwidget); + CHECK_NATNUM (value); struct xwidget *xw = XXWIDGET (xwidget); - GtkAdjustment *adjustment; - float final_value = 0.0; - - adjustment = - gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW - (xw->widgetscrolledwindow_osr)); - if (EQ (Qvertical, axis)) - { - adjustment = - gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW - (xw->widgetscrolledwindow_osr)); - } - if (EQ (Qhorizontal, axis)) - { - adjustment = - gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW - (xw->widgetscrolledwindow_osr)); - } - + GtkAdjustment *adjustment + = ((EQ (Qhorizontal, axis) + ? gtk_scrolled_window_get_hadjustment + : gtk_scrolled_window_get_vadjustment) + (GTK_SCROLLED_WINDOW (xw->widgetscrolledwindow_osr))); + double final_value = XFASTINT (value); if (EQ (Qt, relative)) - { - final_value = gtk_adjustment_get_value (adjustment) + XFASTINT (value); - } - else - { - final_value = 0.0 + XFASTINT (value); - } - + final_value += gtk_adjustment_get_value (adjustment); gtk_adjustment_set_value (adjustment, final_value); - return Qnil; } @@ -861,13 +785,9 @@ Emacs allocated area accordingly. */) { CHECK_XWIDGET (xwidget); GtkRequisition requisition; - Lisp_Object rv; gtk_widget_size_request (XXWIDGET (xwidget)->widget_osr, &requisition); - rv = Qnil; - rv = Fcons (make_number (requisition.height), rv); - rv = Fcons (make_number (requisition.width), rv); - return rv; - + return list2 (make_number (requisition.width), + make_number (requisition.height)); } DEFUN ("xwidgetp", @@ -896,18 +816,9 @@ Currently [TYPE TITLE WIDTH HEIGHT]. */) (Lisp_Object xwidget) { CHECK_XWIDGET (xwidget); - Lisp_Object info, n; struct xwidget *xw = XXWIDGET (xwidget); - - info = Fmake_vector (make_number (4), Qnil); - ASET (info, 0, xw->type); - ASET (info, 1, xw->title); - XSETFASTINT (n, xw->width); - ASET (info, 2, n); - XSETFASTINT (n, xw->height); - ASET (info, 3, n); - - return info; + return CALLN (Fvector, xw->type, xw->title, + make_natnum (xw->width), make_natnum (xw->height)); } DEFUN ("xwidget-view-info", @@ -919,17 +830,9 @@ Currently [X Y CLIP_RIGHT CLIP_BOTTOM CLIP_TOP CLIP_LEFT]. */) { CHECK_XWIDGET_VIEW (xwidget_view); struct xwidget_view *xv = XXWIDGET_VIEW (xwidget_view); - Lisp_Object info; - - info = Fmake_vector (make_number (6), Qnil); - ASET (info, 0, make_number (xv->x)); - ASET (info, 1, make_number (xv->y)); - ASET (info, 2, make_number (xv->clip_right)); - ASET (info, 3, make_number (xv->clip_bottom)); - ASET (info, 4, make_number (xv->clip_top)); - ASET (info, 5, make_number (xv->clip_left)); - - return info; + return CALLN (Fvector, make_number (xv->x), make_number (xv->y), + make_number (xv->clip_right), make_number (xv->clip_bottom), + make_number (xv->clip_top), make_number (xv->clip_left)); } DEFUN ("xwidget-view-model", @@ -963,8 +866,8 @@ DEFUN ("delete-xwidget-view", struct xwidget_view *xv = XXWIDGET_VIEW (xwidget_view); gtk_widget_destroy (xv->widgetwindow); Vxwidget_view_list = Fdelq (xwidget_view, Vxwidget_view_list); - // xv->model still has signals pointing to the view. There can be - // several views. Find the matching signals and delete them all. + /* xv->model still has signals pointing to the view. There can be + several views. Find the matching signals and delete them all. */ g_signal_handlers_disconnect_matched (XXWIDGET (xv->model)->widgetwindow_osr, G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, @@ -1002,7 +905,7 @@ DEFUN ("xwidget-plist", Fxwidget_plist, Sxwidget_plist, 1, 1, 0, doc: /* Return the plist of XWIDGET. */) - (register Lisp_Object xwidget) + (Lisp_Object xwidget) { CHECK_XWIDGET (xwidget); return XXWIDGET (xwidget)->plist; @@ -1012,7 +915,7 @@ DEFUN ("xwidget-buffer", Fxwidget_buffer, Sxwidget_buffer, 1, 1, 0, doc: /* Return the buffer of XWIDGET. */) - (register Lisp_Object xwidget) + (Lisp_Object xwidget) { CHECK_XWIDGET (xwidget); return XXWIDGET (xwidget)->buffer; @@ -1023,7 +926,7 @@ DEFUN ("set-xwidget-plist", 2, 2, 0, doc: /* Replace the plist of XWIDGET with PLIST. Returns PLIST. */) - (register Lisp_Object xwidget, Lisp_Object plist) + (Lisp_Object xwidget, Lisp_Object plist) { CHECK_XWIDGET (xwidget); CHECK_LIST (plist); @@ -1059,7 +962,6 @@ DEFUN ("xwidget-query-on-exit-flag", void syms_of_xwidget (void) { - defsubr (&Smake_xwidget); defsubr (&Sxwidgetp); DEFSYM (Qxwidgetp, "xwidgetp"); @@ -1111,7 +1013,6 @@ syms_of_xwidget (void) Vxwidget_view_list = Qnil; Fprovide (intern ("xwidget-internal"), Qnil); - } @@ -1125,19 +1026,13 @@ syms_of_xwidget (void) bool valid_xwidget_spec_p (Lisp_Object object) { - int valid_p = false; - - if (CONSP (object) && EQ (XCAR (object), Qxwidget)) - valid_p = true; - - return valid_p; + return CONSP (object) && EQ (XCAR (object), Qxwidget); } - /* Find a value associated with key in spec. */ static Lisp_Object -xwidget_spec_value (Lisp_Object spec, Lisp_Object key, int *found) +xwidget_spec_value (Lisp_Object spec, Lisp_Object key) { Lisp_Object tail; @@ -1147,15 +1042,9 @@ xwidget_spec_value (Lisp_Object spec, Lisp_Object key, int *found) CONSP (tail) && CONSP (XCDR (tail)); tail = XCDR (XCDR (tail))) { if (EQ (XCAR (tail), key)) - { - if (found) - *found = 1; - return XCAR (XCDR (tail)); - } + return XCAR (XCDR (tail)); } - if (found) - *found = 0; return Qnil; } @@ -1195,19 +1084,17 @@ lookup_xwidget (Lisp_Object spec) { /* When a xwidget lisp spec is found initialize the C struct that is used in the C code. This is done by redisplay so values change - if the spec changes. So, take special care of one-shot events. - */ - int found = 0; + if the spec changes. So, take special care of one-shot events. */ Lisp_Object value; struct xwidget *xw; - value = xwidget_spec_value (spec, QCxwidget, &found); + value = xwidget_spec_value (spec, QCxwidget); xw = XXWIDGET (value); return xw; } -/* Set up detection of touched xwidget */ +/* Set up detection of touched xwidget. */ static void xwidget_start_redisplay (void) { @@ -1215,7 +1102,7 @@ xwidget_start_redisplay (void) tail = XCDR (tail)) { if (XWIDGET_VIEW_P (XCAR (tail))) - XXWIDGET_VIEW (XCAR (tail))->redisplayed = 0; + XXWIDGET_VIEW (XCAR (tail))->redisplayed = false; } } @@ -1224,57 +1111,48 @@ xwidget_start_redisplay (void) static void xwidget_touch (struct xwidget_view *xv) { - xv->redisplayed = 1; + xv->redisplayed = true; } -static int +static bool xwidget_touched (struct xwidget_view *xv) { return xv->redisplayed; } -/* Redisplay has ended, now we should hide untouched xwidgets -*/ +/* Redisplay has ended, now we should hide untouched xwidgets. */ void xwidget_end_redisplay (struct window *w, struct glyph_matrix *matrix) { - int i; int area; xwidget_start_redisplay (); - // Iterate desired glyph matrix of window here, hide gtk widgets - // not in the desired matrix. + /* Iterate desired glyph matrix of window here, hide gtk widgets + not in the desired matrix. - // This only takes care of xwidgets in active windows. If a window - // goes away from screen xwidget views wust be deleted + This only takes care of xwidgets in active windows. If a window + goes away from screen xwidget views wust be deleted. - // dump_glyph_matrix (matrix, 2); + dump_glyph_matrix (matrix, 2); */ for (i = 0; i < matrix->nrows; ++i) { - // dump_glyph_row (MATRIX_ROW (matrix, i), i, glyphs); + /* dump_glyph_row (MATRIX_ROW (matrix, i), i, glyphs); */ struct glyph_row *row; row = MATRIX_ROW (matrix, i); - if (row->enabled_p != 0) - { - for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area) - { - struct glyph *glyph = row->glyphs[area]; - struct glyph *glyph_end = glyph + row->used[area]; - for (; glyph < glyph_end; ++glyph) - { - if (glyph->type == XWIDGET_GLYPH) - { - /* - The only call to xwidget_end_redisplay is in dispnew - xwidget_end_redisplay (w->current_matrix); - */ - xwidget_touch (xwidget_view_lookup (glyph->u.xwidget, - w)); - } - } - } - } + if (row->enabled_p) + for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area) + { + struct glyph *glyph = row->glyphs[area]; + struct glyph *glyph_end = glyph + row->used[area]; + for (; glyph < glyph_end; ++glyph) + if (glyph->type == XWIDGET_GLYPH) + { + /* The only call to xwidget_end_redisplay is in dispnew. + xwidget_end_redisplay (w->current_matrix); */ + xwidget_touch (xwidget_view_lookup (glyph->u.xwidget, w)); + } + } } for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); @@ -1284,8 +1162,8 @@ xwidget_end_redisplay (struct window *w, struct glyph_matrix *matrix) { struct xwidget_view *xv = XXWIDGET_VIEW (XCAR (tail)); - // "touched" is only meaningful for the current window, so - // disregard other views. + /* "touched" is only meaningful for the current window, so + disregard other views. */ if (XWINDOW (xv->w) == w) { if (xwidget_touched (xv)) @@ -1306,7 +1184,7 @@ kill_buffer_xwidgets (Lisp_Object buffer) { xwidget = XCAR (tail); Vxwidget_list = Fdelq (xwidget, Vxwidget_list); - /* TODO free the GTK things in xw */ + /* TODO free the GTK things in xw. */ { CHECK_XWIDGET (xwidget); struct xwidget *xw = XXWIDGET (xwidget); diff --git a/src/xwidget.h b/src/xwidget.h index fdcf40d..1e11f11 100644 --- a/src/xwidget.h +++ b/src/xwidget.h @@ -20,60 +20,62 @@ along with GNU Emacs. If not, see . */ #ifndef XWIDGET_H_INCLUDED #define XWIDGET_H_INCLUDED -void x_draw_xwidget_glyph_string (struct glyph_string *s); -void syms_of_xwidget (void); - -//extern Lisp_Object Qxwidget; +#include "lisp.h" +struct glyph_matrix; +struct glyph_string; +struct xwidget; +struct xwidget_view; +struct window; -bool valid_xwidget_spec_p (Lisp_Object object); +#ifdef HAVE_XWIDGETS +# include -#include +struct xwidget +{ + struct vectorlike_header header; + /* Auxiliary data. */ + Lisp_Object plist; -/* -each xwidget instance/model is described by this struct. + /* The widget type. */ + Lisp_Object type; -lisp pseudovector. + /* The buffer where the xwidget lives. */ + Lisp_Object buffer; + /* A title used for button labels, for instance. */ + Lisp_Object title; - */ -struct xwidget -{ - struct vectorlike_header header; - Lisp_Object plist; //auxilliary data - Lisp_Object type; //the widget type - Lisp_Object buffer; //buffer where xwidget lives - Lisp_Object title; //a title that is used for button labels for instance + /* Here ends the Lisp part. "height" is the marker field. */ - //here ends the lisp part. - //"height" is the marker field int height; int width; - //for offscreen widgets, unused if not osr + /* For offscreen widgets, unused if not osr. */ GtkWidget *widget_osr; GtkWidget *widgetwindow_osr; - //this is used if the widget (webkit) is to be wrapped in a scrolled window, + + /* Used if the widget (webkit) is to be wrapped in a scrolled window. */ GtkWidget *widgetscrolledwindow_osr; - /* Non-nil means kill silently if Emacs is exited. */ - unsigned int kill_without_query:1; + /* Kill silently if Emacs is exited. */ + bool_bf kill_without_query : 1; }; - -//struct for each xwidget view struct xwidget_view { struct vectorlike_header header; Lisp_Object model; Lisp_Object w; - //here ends the lisp part. - //"redisplayed" is the marker field - int redisplayed; //if touched by redisplay + /* Here ends the lisp part. "redisplayed" is the marker field. */ + + /* If touched by redisplay. */ + bool redisplayed; - int hidden; //if the "live" instance isnt drawn + /* The "live" instance isn't drawn. */ + bool hidden; GtkWidget *widget; GtkWidget *widgetwindow; @@ -85,48 +87,47 @@ struct xwidget_view int clip_top; int clip_left; - long handler_id; }; +#endif -/* Test for xwidget pseudovector*/ +/* Test for xwidget pseudovector. */ #define XWIDGETP(x) PSEUDOVECTORP (x, PVEC_XWIDGET) -#define XXWIDGET(a) (eassert (XWIDGETP(a)), \ - (struct xwidget *) XUNTAG(a, Lisp_Vectorlike)) +#define XXWIDGET(a) (eassert (XWIDGETP (a)), \ + (struct xwidget *) XUNTAG (a, Lisp_Vectorlike)) #define CHECK_XWIDGET(x) \ CHECK_TYPE (XWIDGETP (x), Qxwidgetp, x) -/* Test for xwidget_view pseudovector */ +/* Test for xwidget_view pseudovector. */ #define XWIDGET_VIEW_P(x) PSEUDOVECTORP (x, PVEC_XWIDGET_VIEW) -#define XXWIDGET_VIEW(a) (eassert (XWIDGET_VIEW_P(a)), \ - (struct xwidget_view *) XUNTAG(a, Lisp_Vectorlike)) +#define XXWIDGET_VIEW(a) (eassert (XWIDGET_VIEW_P (a)), \ + (struct xwidget_view *) XUNTAG (a, Lisp_Vectorlike)) #define CHECK_XWIDGET_VIEW(x) \ CHECK_TYPE (XWIDGET_VIEW_P (x), Qxwidget_view_p, x) -struct xwidget_type -{ - /* A symbol uniquely identifying the xwidget type, */ - Lisp_Object *type; - - /* Check that SPEC is a valid image specification for the given - image type. Value is non-zero if SPEC is valid. */ - int (*valid_p) (Lisp_Object spec); - - /* Next in list of all supported image types. */ - struct xwidget_type *next; -}; - - -struct xwidget *xwidget_from_id (int id); - -void xwidget_end_redisplay (struct window *w, struct glyph_matrix *matrix); - -struct xwidget *lookup_xwidget (Lisp_Object spec); #define XG_XWIDGET "emacs_xwidget" #define XG_XWIDGET_VIEW "emacs_xwidget_view" -void xwidget_view_delete_all_in_window (struct window *w); -void kill_buffer_xwidgets (Lisp_Object buffer); +#ifdef HAVE_XWIDGETS +void syms_of_xwidget (void); +bool valid_xwidget_spec_p (Lisp_Object); +void xwidget_view_delete_all_in_window (struct window *); +void x_draw_xwidget_glyph_string (struct glyph_string *); +struct xwidget *lookup_xwidget (Lisp_Object spec); +void xwidget_end_redisplay (struct window *, struct glyph_matrix *); +void kill_buffer_xwidgets (Lisp_Object); +#else +INLINE_HEADER_BEGIN +INLINE void syms_of_xwidget (void) {} +INLINE bool valid_xwidget_spec_p (Lisp_Object obj) { return false; } +INLINE void xwidget_view_delete_all_in_window (struct window *w) {} +INLINE void x_draw_xwidget_glyph_string (struct glyph_string *s) { eassume (0); } +INLINE struct xwidget *lookup_xwidget (Lisp_Object obj) { eassume (0); } +INLINE void xwidget_end_redisplay (struct window *w, struct glyph_matrix *m) {} +INLINE void kill_buffer_xwidgets (Lisp_Object buf) {} +INLINE_HEADER_END +#endif + #endif /* XWIDGET_H_INCLUDED */ commit 7bf54d01159eb09bae3c9cd86f2af0812d9afdf6 Author: Michael Albinus Date: Fri Jan 22 19:56:09 2016 +0100 Backport kqueue integration from master * configure.ac (--with-file-notification): Add kqueue. (top): Remove special test for "${HAVE_NS}" and ${with_file_notification}, this is handled inside gfilenotify tests. Add kqueue tests. Use NOTIFY_CFLAGS and NOTIFY_LIBS instead of library specific variables. Add error message for gfile on Nextstep. * doc/lispref/os.texi (File Notifications): Add kqueue as backend. Fix some glitches in the example. * etc/NEWS: Mention kqueue. * lisp/filenotify.el (file-notify--library) (file-notify-descriptors, file-notify-callback) (file-notify-add-watch, file-notify-rm-watch) (file-notify-valid-p): Add kqueue support. (file-notify--rm-descriptor): Remove WHAT arg. * src/Makefile.in: Use NOTIFY_CFLAGS and NOTIFY_LIBS. * src/emacs.c (main): Call globals_of_kqueue and syms_of_kqueue. * src/inotify.c (inotifyevent_to_event): Extract file name from watch_object if the event doesn't provide it. (Finotify_add_watch): Add file name to watch_object. * src/keyboard.c (make_lispy_event): Check also for HAVE_KQUEUE. * src/kqueue.c: New file. * src/lisp.h: Declare extern globals_of_kqueue and syms_of_kqueue. * test/automated/file-notify-tests.el (file-notify--test-expected-events): Remove. (file-notify--test-cleanup): Do not set that variable. (file-notify--test-timeout) Use different timeouts for different libraries. (file-notify--test-library): New defun. (file-notify--test-event-test): Make stronger checks. (file-notify--test-with-events): EVENTS can also be a list of lists. Flush outstanding events before running the body. Make timeout heuristically depend on the number of events. (file-notify-test01-add-watch, file-notify-test02-events) (file-notify-test04-file-validity, file-notify-test05-dir-validity): Rewrite in order to call file monitors but directory monitors. (file-notify-test02-events, file-notify-test04-file-validity): Do not skip cygwin tests. Add additional test for file creation. Adapt expected result for different backends. (file-notify-test03-autorevert): Some of the tests don't work for w32notify. (file-notify-test06-many-events): New test. diff --git a/configure.ac b/configure.ac index b5e6b77..76193fa 100644 --- a/configure.ac +++ b/configure.ac @@ -356,17 +356,18 @@ OPTION_DEFAULT_ON([zlib],[don't compile with zlib decompression support]) OPTION_DEFAULT_OFF([modules],[compile with dynamic modules support]) AC_ARG_WITH([file-notification],[AS_HELP_STRING([--with-file-notification=LIB], - [use a file notification library (LIB one of: yes, gfile, inotify, w32, no)])], + [use a file notification library (LIB one of: yes, inotify, kqueue, gfile, w32, no)])], [ case "${withval}" in y | ye | yes ) val=yes ;; n | no ) val=no ;; - g | gf | gfi | gfil | gfile ) val=gfile ;; i | in | ino | inot | inoti | inotif | inotify ) val=inotify ;; + k | kq | kqu | kque | kqueu | kqueue ) val=kqueue ;; + g | gf | gfi | gfil | gfile ) val=gfile ;; w | w3 | w32 ) val=w32 ;; * ) AC_MSG_ERROR(['--with-file-notification=$withval' is invalid; -this option's value should be 'yes', 'no', 'gfile', 'inotify' or 'w32'. +this option's value should be 'yes', 'no', 'inotify', 'kqueue', 'gfile' or 'w32'. 'yes' is a synonym for 'w32' on MS-Windows, for 'no' on Nextstep, -otherwise for the first of 'inotify' or 'gfile' that is usable.]) +otherwise for the first of 'inotify', 'kqueue' or 'gfile' that is usable.]) ;; esac with_file_notification=$val @@ -2712,12 +2713,6 @@ AC_SUBST(LIBGNUTLS_CFLAGS) NOTIFY_OBJ= NOTIFY_SUMMARY=no -dnl FIXME? Don't auto-detect on NS, but do allow someone to specify -dnl a particular library. This doesn't make much sense? -if test "${HAVE_NS}" = yes && test ${with_file_notification} = yes; then - with_file_notification=no -fi - dnl MS Windows native file monitor is available for mingw32 only. case $with_file_notification,$opsys in w32,cygwin) @@ -2748,16 +2743,44 @@ case $with_file_notification,$NOTIFY_OBJ in fi ;; esac +dnl kqueue is available on BSD-like systems. +case $with_file_notification,$NOTIFY_OBJ in + kqueue,* | yes,) + EMACS_CHECK_MODULES([KQUEUE], [libkqueue]) + if test "$HAVE_KQUEUE" = "yes"; then + AC_DEFINE(HAVE_KQUEUE, 1, [Define to 1 to use kqueue.]) + CPPFLAGS="$CPPFLAGS -I/usr/include/kqueue" + NOTIFY_CFLAGS=$KQUEUE_CFLAGS + NOTIFY_LIBS=$KQUEUE_LIBS + NOTIFY_OBJ=kqueue.o + NOTIFY_SUMMARY="yes -lkqueue" + else + AC_SEARCH_LIBS(kqueue, []) + if test "$ac_cv_search_kqueue" != no; then + AC_DEFINE(HAVE_KQUEUE, 1, [Define to 1 to use kqueue.]) + NOTIFY_OBJ=kqueue.o + NOTIFY_SUMMARY="yes (kqueue)" + fi + fi ;; +esac + dnl g_file_monitor exists since glib 2.18. G_FILE_MONITOR_EVENT_MOVED dnl has been added in glib 2.24. It has been tested under dnl GNU/Linux only. case $with_file_notification,$NOTIFY_OBJ in gfile,* | yes,) - EMACS_CHECK_MODULES([GFILENOTIFY], [gio-2.0 >= 2.24]) - if test "$HAVE_GFILENOTIFY" = "yes"; then - AC_DEFINE(HAVE_GFILENOTIFY, 1, [Define to 1 if using GFile.]) - NOTIFY_OBJ=gfilenotify.o - NOTIFY_SUMMARY="yes -lgio (gfile)" + if test "${HAVE_NS}" = yes; then + AC_MSG_ERROR(['--with-file-notification=gfile' is not supported in NextStep builds. +Consider kqueue instead.]) + else + EMACS_CHECK_MODULES([GFILENOTIFY], [gio-2.0 >= 2.24]) + if test "$HAVE_GFILENOTIFY" = "yes"; then + AC_DEFINE(HAVE_GFILENOTIFY, 1, [Define to 1 if using GFile.]) + NOTIFY_CFLAGS=$GFILENOTIFY_CFLAGS + NOTIFY_LIBS=$GFILENOTIFY_LIBS + NOTIFY_OBJ=gfilenotify.o + NOTIFY_SUMMARY="yes -lgio (gfile)" + fi fi ;; esac @@ -2769,9 +2792,9 @@ esac if test -n "$NOTIFY_OBJ"; then AC_DEFINE(USE_FILE_NOTIFY, 1, [Define to 1 if using file notifications.]) fi +AC_SUBST(NOTIFY_CFLAGS) +AC_SUBST(NOTIFY_LIBS) AC_SUBST(NOTIFY_OBJ) -AC_SUBST(GFILENOTIFY_CFLAGS) -AC_SUBST(GFILENOTIFY_LIBS) dnl Do not put whitespace before the #include statements below. dnl Older compilers (eg sunos4 cc) choke on it. @@ -4141,8 +4164,8 @@ OLDCFLAGS="$CFLAGS" OLDLIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS $RSVG_CFLAGS $DBUS_CFLAGS $SETTINGS_CFLAGS" LIBS="$LIBS $GTK_LIBS $RSVG_LIBS $DBUS_LIBS $SETTINGS_LIBS" -CFLAGS="$CFLAGS $GFILENOTIFY_CFLAGS $CAIRO_CFLAGS" -LIBS="$LIBS $GFILENOTIFY_LIBS $CAIRO_LIBS" +CFLAGS="$CFLAGS $NOTIFY_CFLAGS $CAIRO_CFLAGS" +LIBS="$LIBS $NOTIFY_LIBS $CAIRO_LIBS" AC_MSG_CHECKING([whether GLib is linked in]) AC_LINK_IFELSE([AC_LANG_PROGRAM( [[#include diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index 7206cd4..8e3720e 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -2653,9 +2653,9 @@ This function removes the tray notification given by its unique Several operating systems support watching of filesystems for changes of files. If configured properly, Emacs links a respective library -like @file{gfilenotify}, @file{inotify}, or @file{w32notify} -statically. These libraries enable watching of filesystems on the -local machine. +like @file{inotify}, @file{kqueue}, @file{gfilenotify}, or +@file{w32notify} statically. These libraries enable watching of +filesystems on the local machine. It is also possible to watch filesystems on remote machines, @pxref{Remote Files,, Remote Files, emacs, The GNU Emacs Manual} @@ -2726,7 +2726,8 @@ watching @var{file} has been stopped Note that the @file{w32notify} library does not report @code{attribute-changed} events. When some file's attribute, like permissions or modification time, has changed, this library reports a -@code{changed} event. +@code{changed} event. Likewise, the @file{kqueue} library does not +report reliably file attribute changes when watching a directory. The @code{stopped} event reports, that watching the file has been stopped. This could be because @code{file-notify-rm-watch} was called @@ -2765,7 +2766,7 @@ being reported. For example: @group (write-region "bla" nil "/tmp/foo") @result{} Event (35025468 created "/tmp/.#foo") - Event (35025468 changed "/tmp/foo") [2 times] + Event (35025468 changed "/tmp/foo") Event (35025468 deleted "/tmp/.#foo") @end group @@ -2811,14 +2812,14 @@ also makes it invalid. @example @group (make-directory "/tmp/foo") - @result{} nil + @result{} Event (35025468 created "/tmp/foo") @end group @group (setq desc (file-notify-add-watch "/tmp/foo" '(change) 'my-notify-callback)) - @result{} 35025468 + @result{} 11359632 @end group @group @@ -2828,32 +2829,34 @@ also makes it invalid. @group (write-region "bla" nil "/tmp/foo/bla") - @result{} Event (35025468 created "/tmp/foo/.#bla") - Event (35025468 created "/tmp/foo/bla") - Event (35025468 changed "/tmp/foo/bla") - Event (35025468 changed "/tmp/foo/.#bla") + @result{} Event (11359632 created "/tmp/foo/.#bla") + Event (11359632 created "/tmp/foo/bla") + Event (11359632 changed "/tmp/foo/bla") + Event (11359632 deleted "/tmp/foo/.#bla") @end group @group ;; Deleting a file in the directory doesn't invalidate the watch. (delete-file "/tmp/foo/bla") - @result{} Event (35025468 deleted "/tmp/foo/bla") + @result{} Event (11359632 deleted "/tmp/foo/bla") @end group @group (write-region "bla" nil "/tmp/foo/bla") - @result{} Event (35025468 created "/tmp/foo/.#bla") - Event (35025468 created "/tmp/foo/bla") - Event (35025468 changed "/tmp/foo/bla") - Event (35025468 changed "/tmp/foo/.#bla") + @result{} Event (11359632 created "/tmp/foo/.#bla") + Event (11359632 created "/tmp/foo/bla") + Event (11359632 changed "/tmp/foo/bla") + Event (11359632 deleted "/tmp/foo/.#bla") @end group @group ;; Deleting the directory invalidates the watch. +;; Events arrive for different watch descriptors. (delete-directory "/tmp/foo" 'recursive) - @result{} Event (35025468 deleted "/tmp/foo/bla") - Event (35025468 deleted "/tmp/foo") - Event (35025468 stopped "/tmp/foo") + @result{} Event (35025468 deleted "/tmp/foo") + Event (11359632 deleted "/tmp/foo/bla") + Event (11359632 deleted "/tmp/foo") + Event (11359632 stopped "/tmp/foo") @end group @group diff --git a/etc/NEWS b/etc/NEWS index 06b32ce..4e47c58 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -64,6 +64,10 @@ If gnustep-config is not available, the old heuristics are used. unless gfile is explicitly requested via --with-file-notification='gfile'. --- +** 'configure' detects the kqueue file notification library on *BSD +and Mac OS X machines. + +--- ** The configure option '--with-pkg-config-prog' has been removed. Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to. @@ -1121,6 +1125,9 @@ notifications, if Emacs is compiled with file notification support. ** File Notifications +++ +*** The kqueue library is integrated for *BSD and Mac OS X machines. + ++++ *** The new event `stopped' signals, that a file notification watch is not active any longer. diff --git a/lisp/filenotify.el b/lisp/filenotify.el index ebf4dd2..faa801e 100644 --- a/lisp/filenotify.el +++ b/lisp/filenotify.el @@ -22,15 +22,16 @@ ;;; Commentary ;; This package is an abstraction layer from the different low-level -;; file notification packages `gfilenotify', `inotify' and +;; file notification packages `inotify', `kqueue', `gfilenotify' and ;; `w32notify'. ;;; Code: (defconst file-notify--library (cond - ((featurep 'gfilenotify) 'gfilenotify) ((featurep 'inotify) 'inotify) + ((featurep 'kqueue) 'kqueue) + ((featurep 'gfilenotify) 'gfilenotify) ((featurep 'w32notify) 'w32notify)) "Non-nil when Emacs has been compiled with file notification support. The value is the name of the low-level file notification package @@ -40,25 +41,24 @@ could use another implementation.") (defvar file-notify-descriptors (make-hash-table :test 'equal) "Hash table for registered file notification descriptors. A key in this hash table is the descriptor as returned from -`gfilenotify', `inotify', `w32notify' or a file name handler. -The value in the hash table is a list +`inotify', `kqueue', `gfilenotify', `w32notify' or a file name +handler. The value in the hash table is a list (DIR (FILE . CALLBACK) (FILE . CALLBACK) ...) Several values for a given DIR happen only for `inotify', when different files from the same directory are watched.") -(defun file-notify--rm-descriptor (descriptor &optional what) +(defun file-notify--rm-descriptor (descriptor) "Remove DESCRIPTOR from `file-notify-descriptors'. DESCRIPTOR should be an object returned by `file-notify-add-watch'. -If it is registered in `file-notify-descriptors', a stopped event is sent. -WHAT is a file or directory name to be removed, needed just for `inotify'." +If it is registered in `file-notify-descriptors', a stopped event is sent." (let* ((desc (if (consp descriptor) (car descriptor) descriptor)) (file (if (consp descriptor) (cdr descriptor))) (registered (gethash desc file-notify-descriptors)) (dir (car registered))) - (when (and (consp registered) (or (null what) (string-equal dir what))) + (when (consp registered) ;; Send `stopped' event. (dolist (entry (cdr registered)) (funcall (cdr entry) @@ -76,7 +76,8 @@ WHAT is a file or directory name to be removed, needed just for `inotify'." (remhash desc file-notify-descriptors) (puthash desc registered file-notify-descriptors)))))) -;; This function is used by `gfilenotify', `inotify' and `w32notify' events. +;; This function is used by `inotify', `kqueue', `gfilenotify' and +;; `w32notify' events. ;;;###autoload (defun file-notify-handle-event (event) "Handle file system monitoring event. @@ -159,7 +160,7 @@ EVENT is the cadr of the event in `file-notify-handle-event' (setq actions nil)) ;; Loop over actions. In fact, more than one action happens only - ;; for `inotify'. + ;; for `inotify' and `kqueue'. (dolist (action actions) ;; Send pending event, if it doesn't match. @@ -184,19 +185,17 @@ EVENT is the cadr of the event in `file-notify-handle-event' ;; Map action. We ignore all events which cannot be mapped. (setq action (cond - ;; gfilenotify. - ((memq action '(attribute-changed changed created deleted)) + ((memq action + '(attribute-changed changed created deleted renamed)) action) - ((eq action 'moved) + ((memq action '(moved rename)) (setq file1 (file-notify--event-file1-name event)) 'renamed) - - ;; inotify, w32notify. ((eq action 'ignored) (setq stopped t actions nil)) - ((eq action 'attrib) 'attribute-changed) + ((memq action '(attrib link)) 'attribute-changed) ((memq action '(create added)) 'created) - ((memq action '(modify modified)) 'changed) + ((memq action '(modify modified write)) 'changed) ((memq action '(delete delete-self move-self removed)) 'deleted) ;; Make the event pending. ((memq action '(moved-from renamed-from)) @@ -236,7 +235,6 @@ EVENT is the cadr of the event in `file-notify-handle-event' (setq pending-event nil)) ;; Check for stopped. - ;;(message "file-notify-callback %S %S" file registered) (setq stopped (or @@ -244,10 +242,13 @@ EVENT is the cadr of the event in `file-notify-handle-event' (and (memq action '(deleted renamed)) (= (length (cdr registered)) 1) - (string-equal - (file-name-nondirectory file) - (or (file-name-nondirectory (car registered)) - (car (cadr registered))))))) + (or + (string-equal + (file-name-nondirectory file) + (file-name-nondirectory (car registered))) + (string-equal + (file-name-nondirectory file) + (car (cadr registered))))))) ;; Apply callback. (when (and action @@ -258,10 +259,17 @@ EVENT is the cadr of the event in `file-notify-handle-event' ;; File matches. (string-equal (nth 0 entry) (file-name-nondirectory file)) + ;; Directory matches. + (string-equal + (file-name-nondirectory file) + (file-name-nondirectory (car registered))) ;; File1 matches. (and (stringp file1) (string-equal (nth 0 entry) (file-name-nondirectory file1))))) + ;;(message + ;;"file-notify-callback %S %S %S %S %S" + ;;(file-notify--descriptor desc file) action file file1 registered) (if file1 (funcall callback @@ -272,11 +280,10 @@ EVENT is the cadr of the event in `file-notify-handle-event' ;; Modify `file-notify-descriptors'. (when stopped - (file-notify--rm-descriptor - (file-notify--descriptor desc file) file))))) + (file-notify-rm-watch (file-notify--descriptor desc file)))))) -;; `gfilenotify' and `w32notify' return a unique descriptor for every -;; `file-notify-add-watch', while `inotify' returns a unique +;; `kqueue', `gfilenotify' and `w32notify' return a unique descriptor +;; for every `file-notify-add-watch', while `inotify' returns a unique ;; descriptor per inode only. (defun file-notify-add-watch (file flags callback) "Add a watch for filesystem events pertaining to FILE. @@ -329,7 +336,7 @@ FILE is the name of the file whose event is being reported." (if (file-directory-p file) file (file-name-directory file)))) - desc func l-flags registered) + desc func l-flags registered entry) (unless (file-directory-p dir) (signal 'file-notify-error `("Directory does not exist" ,dir))) @@ -338,7 +345,12 @@ FILE is the name of the file whose event is being reported." ;; A file name handler could exist even if there is no local ;; file notification support. (setq desc (funcall - handler 'file-notify-add-watch dir flags callback)) + handler 'file-notify-add-watch + ;; kqueue does not report file changes in + ;; directory monitor. So we must watch the file + ;; itself. + (if (eq file-notify--library 'kqueue) file dir) + flags callback)) ;; Check, whether Emacs has been compiled with file notification ;; support. @@ -349,8 +361,9 @@ FILE is the name of the file whose event is being reported." ;; Determine low-level function to be called. (setq func (cond - ((eq file-notify--library 'gfilenotify) 'gfile-add-watch) ((eq file-notify--library 'inotify) 'inotify-add-watch) + ((eq file-notify--library 'kqueue) 'kqueue-add-watch) + ((eq file-notify--library 'gfilenotify) 'gfile-add-watch) ((eq file-notify--library 'w32notify) 'w32notify-add-watch))) ;; Determine respective flags. @@ -362,30 +375,32 @@ FILE is the name of the file whose event is being reported." (cond ((eq file-notify--library 'inotify) '(create delete delete-self modify move-self move)) + ((eq file-notify--library 'kqueue) + '(create delete write extend rename)) ((eq file-notify--library 'w32notify) '(file-name directory-name size last-write-time))))) (when (memq 'attribute-change flags) (push (cond ((eq file-notify--library 'inotify) 'attrib) + ((eq file-notify--library 'kqueue) 'attrib) ((eq file-notify--library 'w32notify) 'attributes)) l-flags))) ;; Call low-level function. - (setq desc (funcall func dir l-flags 'file-notify-callback))) + (setq desc (funcall + func (if (eq file-notify--library 'kqueue) file dir) + l-flags 'file-notify-callback))) ;; Modify `file-notify-descriptors'. - (setq registered (gethash desc file-notify-descriptors)) - (puthash - desc - `(,dir - (,(unless (file-directory-p file) (file-name-nondirectory file)) - . ,callback) - . ,(cdr registered)) - file-notify-descriptors) + (setq file (unless (file-directory-p file) (file-name-nondirectory file)) + desc (if (consp desc) (car desc) desc) + registered (gethash desc file-notify-descriptors) + entry `(,file . ,callback)) + (unless (member entry (cdr registered)) + (puthash desc `(,dir ,entry . ,(cdr registered)) file-notify-descriptors)) ;; Return descriptor. - (file-notify--descriptor - desc (unless (file-directory-p file) (file-name-nondirectory file))))) + (file-notify--descriptor desc file))) (defun file-notify-rm-watch (descriptor) "Remove an existing watch specified by its DESCRIPTOR. @@ -410,8 +425,9 @@ DESCRIPTOR should be an object returned by `file-notify-add-watch'." (funcall (cond - ((eq file-notify--library 'gfilenotify) 'gfile-rm-watch) ((eq file-notify--library 'inotify) 'inotify-rm-watch) + ((eq file-notify--library 'kqueue) 'kqueue-rm-watch) + ((eq file-notify--library 'gfilenotify) 'gfile-rm-watch) ((eq file-notify--library 'w32notify) 'w32notify-rm-watch)) desc)) (file-notify-error nil))) @@ -441,8 +457,9 @@ DESCRIPTOR should be an object returned by `file-notify-add-watch'." (funcall handler 'file-notify-valid-p descriptor) (funcall (cond - ((eq file-notify--library 'gfilenotify) 'gfile-valid-p) ((eq file-notify--library 'inotify) 'inotify-valid-p) + ((eq file-notify--library 'kqueue) 'kqueue-valid-p) + ((eq file-notify--library 'gfilenotify) 'gfile-valid-p) ((eq file-notify--library 'w32notify) 'w32notify-valid-p)) desc)) t)))) diff --git a/src/Makefile.in b/src/Makefile.in index 4a52757..fab10ae 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -163,12 +163,13 @@ SETTINGS_LIBS = @SETTINGS_LIBS@ ## gtkutil.o if USE_GTK, else empty. GTK_OBJ=@GTK_OBJ@ -## gfilenotify.o if HAVE_GFILENOTIFY. ## inotify.o if HAVE_INOTIFY. +## kqueue.o if HAVE_KQUEUE. +## gfilenotify.o if HAVE_GFILENOTIFY. ## w32notify.o if HAVE_W32NOTIFY. NOTIFY_OBJ = @NOTIFY_OBJ@ -GFILENOTIFY_CFLAGS = @GFILENOTIFY_CFLAGS@ -GFILENOTIFY_LIBS = @GFILENOTIFY_LIBS@ +NOTIFY_CFLAGS = @NOTIFY_CFLAGS@ +NOTIFY_LIBS = @NOTIFY_LIBS@ ## -ltermcap, or -lncurses, or -lcurses, or "". LIBS_TERMCAP=@LIBS_TERMCAP@ @@ -367,7 +368,7 @@ ALL_CFLAGS=-Demacs $(MYCPPFLAGS) -I. -I$(srcdir) \ $(WEBKIT_CFLAGS) \ $(SETTINGS_CFLAGS) $(FREETYPE_CFLAGS) $(FONTCONFIG_CFLAGS) \ $(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) $(DEPFLAGS) \ - $(LIBGNUTLS_CFLAGS) $(GFILENOTIFY_CFLAGS) $(CAIRO_CFLAGS) \ + $(LIBGNUTLS_CFLAGS) $(NOTIFY_CFLAGS) $(CAIRO_CFLAGS) \ $(WARN_CFLAGS) $(WERROR_CFLAGS) $(CFLAGS) ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS) @@ -482,7 +483,7 @@ LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUSTEP) $(LIBX_BASE) $(LIBIMAGE) \ $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) $(SETTINGS_LIBS) $(LIBSELINUX_LIBS) \ $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \ $(LIBGNUTLS_LIBS) $(LIB_PTHREAD) \ - $(GFILENOTIFY_LIBS) $(LIB_MATH) $(LIBZ) $(LIBMODULES) + $(NOTIFY_LIBS) $(LIB_MATH) $(LIBZ) $(LIBMODULES) $(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT) $(MAKE) -C ../leim leim-list.el EMACS="$(bootstrap_exe)" diff --git a/src/emacs.c b/src/emacs.c index 6de0fff..ddaa82c 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -1360,6 +1360,10 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem tzset (); #endif /* MSDOS */ +#ifdef HAVE_KQUEUE + globals_of_kqueue (); +#endif + #ifdef HAVE_GFILENOTIFY globals_of_gfilenotify (); #endif @@ -1538,14 +1542,18 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem syms_of_gnutls (); -#ifdef HAVE_GFILENOTIFY - syms_of_gfilenotify (); -#endif /* HAVE_GFILENOTIFY */ - #ifdef HAVE_INOTIFY syms_of_inotify (); #endif /* HAVE_INOTIFY */ +#ifdef HAVE_KQUEUE + syms_of_kqueue (); +#endif /* HAVE_KQUEUE */ + +#ifdef HAVE_GFILENOTIFY + syms_of_gfilenotify (); +#endif /* HAVE_GFILENOTIFY */ + #ifdef HAVE_DBUS syms_of_dbusbind (); #endif /* HAVE_DBUS */ diff --git a/src/inotify.c b/src/inotify.c index 47652ff..e0619e5 100644 --- a/src/inotify.c +++ b/src/inotify.c @@ -46,8 +46,7 @@ along with GNU Emacs. If not, see . */ static int inotifyfd = -1; /* Assoc list of files being watched. - Format: - (watch-descriptor . callback) + Format: (watch-descriptor name callback) */ static Lisp_Object watch_list; @@ -106,12 +105,14 @@ inotifyevent_to_event (Lisp_Object watch_object, struct inotify_event const *ev) name = make_unibyte_string (ev->name, min (len, ev->len)); name = DECODE_FILE (name); } + else + name = XCAR (XCDR (watch_object)); return list2 (list4 (make_watch_descriptor (ev->wd), mask_to_aspects (ev->mask), name, make_number (ev->cookie)), - XCDR (watch_object)); + Fnth (make_number (2), watch_object)); } /* This callback is called when the FD is available for read. The inotify @@ -325,7 +326,7 @@ is managed internally and there is no corresponding inotify_init. Use watch_list = Fdelete (watch_object, watch_list); /* Store watch object in watch list. */ - watch_object = Fcons (watch_descriptor, callback); + watch_object = list3 (watch_descriptor, encoded_file_name, callback); watch_list = Fcons (watch_object, watch_list); return watch_descriptor; diff --git a/src/keyboard.c b/src/keyboard.c index 58831f5..c93876e 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -5965,12 +5965,12 @@ make_lispy_event (struct input_event *event) #endif -#if defined HAVE_GFILENOTIFY || defined HAVE_INOTIFY +#if defined HAVE_INOTIFY || defined HAVE_KQUEUE || defined HAVE_GFILENOTIFY case FILE_NOTIFY_EVENT: { return Fcons (Qfile_notify, event->arg); } -#endif /* defined HAVE_GFILENOTIFY || defined HAVE_INOTIFY */ +#endif /* HAVE_INOTIFY || HAVE_KQUEUE || HAVE_GFILENOTIFY */ case CONFIG_CHANGED_EVENT: return list3 (Qconfig_changed_event, diff --git a/src/kqueue.c b/src/kqueue.c new file mode 100644 index 0000000..a69d06d --- /dev/null +++ b/src/kqueue.c @@ -0,0 +1,521 @@ +/* Filesystem notifications support with kqueue API. + +Copyright (C) 2015-2016 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs. If not, see . */ + +#include + +#ifdef HAVE_KQUEUE +#include +#include +#include +#include +#include +#include "lisp.h" +#include "keyboard.h" +#include "process.h" + + +/* File handle for kqueue. */ +static int kqueuefd = -1; + +/* This is a list, elements are (DESCRIPTOR FILE FLAGS CALLBACK [DIRLIST]). */ +static Lisp_Object watch_list; + +/* Generate a list from the directory_files_internal output. + Items are (INODE FILE-NAME LAST-MOD LAST-STATUS-MOD SIZE). */ +Lisp_Object +kqueue_directory_listing (Lisp_Object directory_files) +{ + Lisp_Object dl, result = Qnil; + + for (dl = directory_files; ! NILP (dl); dl = XCDR (dl)) { + /* We ignore "." and "..". */ + if ((strcmp (".", SSDATA (XCAR (XCAR (dl)))) == 0) || + (strcmp ("..", SSDATA (XCAR (XCAR (dl)))) == 0)) + continue; + + result = Fcons + (list5 (/* inode. */ + Fnth (make_number (11), XCAR (dl)), + /* filename. */ + XCAR (XCAR (dl)), + /* last modification time. */ + Fnth (make_number (6), XCAR (dl)), + /* last status change time. */ + Fnth (make_number (7), XCAR (dl)), + /* size. */ + Fnth (make_number (8), XCAR (dl))), + result); + } + return result; +} + +/* Generate a file notification event. */ +static void +kqueue_generate_event +(Lisp_Object watch_object, Lisp_Object actions, + Lisp_Object file, Lisp_Object file1) +{ + Lisp_Object flags, action, entry; + struct input_event event; + + /* Check, whether all actions shall be monitored. */ + flags = Fnth (make_number (2), watch_object); + action = actions; + do { + if (NILP (action)) + break; + entry = XCAR (action); + if (NILP (Fmember (entry, flags))) { + action = XCDR (action); + actions = Fdelq (entry, actions); + } else + action = XCDR (action); + } while (1); + + /* Store it into the input event queue. */ + if (! NILP (actions)) { + EVENT_INIT (event); + event.kind = FILE_NOTIFY_EVENT; + event.frame_or_window = Qnil; + event.arg = list2 (Fcons (XCAR (watch_object), + Fcons (actions, + NILP (file1) + ? Fcons (file, Qnil) + : list2 (file, file1))), + Fnth (make_number (3), watch_object)); + kbd_buffer_store_event (&event); + } +} + +/* This compares two directory listings in case of a `write' event for + a directory. Generate resulting file notification events. The old + directory listing is retrieved from watch_object, it will be + replaced by the new directory listing at the end of this + function. */ +static void +kqueue_compare_dir_list +(Lisp_Object watch_object) +{ + Lisp_Object dir, pending_dl, deleted_dl; + Lisp_Object old_directory_files, old_dl, new_directory_files, new_dl, dl; + + dir = XCAR (XCDR (watch_object)); + pending_dl = Qnil; + deleted_dl = Qnil; + + old_directory_files = Fnth (make_number (4), watch_object); + old_dl = kqueue_directory_listing (old_directory_files); + + /* When the directory is not accessible anymore, it has been deleted. */ + if (NILP (Ffile_directory_p (dir))) { + kqueue_generate_event (watch_object, Fcons (Qdelete, Qnil), dir, Qnil); + return; + } + new_directory_files = + directory_files_internal (dir, Qnil, Qnil, Qnil, 1, Qnil); + new_dl = kqueue_directory_listing (new_directory_files); + + /* Parse through the old list. */ + dl = old_dl; + while (1) { + Lisp_Object old_entry, new_entry, dl1; + if (NILP (dl)) + break; + + /* Search for an entry with the same inode. */ + old_entry = XCAR (dl); + new_entry = assq_no_quit (XCAR (old_entry), new_dl); + if (! NILP (Fequal (old_entry, new_entry))) { + /* Both entries are identical. Nothing to do. */ + new_dl = Fdelq (new_entry, new_dl); + goto the_end; + } + + /* Both entries have the same inode. */ + if (! NILP (new_entry)) { + /* Both entries have the same file name. */ + if (strcmp (SSDATA (XCAR (XCDR (old_entry))), + SSDATA (XCAR (XCDR (new_entry)))) == 0) { + /* Modification time has been changed, the file has been written. */ + if (NILP (Fequal (Fnth (make_number (2), old_entry), + Fnth (make_number (2), new_entry)))) + kqueue_generate_event + (watch_object, Fcons (Qwrite, Qnil), XCAR (XCDR (old_entry)), Qnil); + /* Status change time has been changed, the file attributes + have changed. */ + if (NILP (Fequal (Fnth (make_number (3), old_entry), + Fnth (make_number (3), new_entry)))) + kqueue_generate_event + (watch_object, Fcons (Qattrib, Qnil), + XCAR (XCDR (old_entry)), Qnil); + + } else { + /* The file has been renamed. */ + kqueue_generate_event + (watch_object, Fcons (Qrename, Qnil), + XCAR (XCDR (old_entry)), XCAR (XCDR (new_entry))); + deleted_dl = Fcons (new_entry, deleted_dl); + } + new_dl = Fdelq (new_entry, new_dl); + goto the_end; + } + + /* Search, whether there is a file with the same name but another + inode. */ + for (dl1 = new_dl; ! NILP (dl1); dl1 = XCDR (dl1)) { + new_entry = XCAR (dl1); + if (strcmp (SSDATA (XCAR (XCDR (old_entry))), + SSDATA (XCAR (XCDR (new_entry)))) == 0) { + pending_dl = Fcons (new_entry, pending_dl); + new_dl = Fdelq (new_entry, new_dl); + goto the_end; + } + } + + /* Check, whether this a pending file. */ + new_entry = assq_no_quit (XCAR (old_entry), pending_dl); + + if (NILP (new_entry)) { + /* Check, whether this is an already deleted file (by rename). */ + for (dl1 = deleted_dl; ! NILP (dl1); dl1 = XCDR (dl1)) { + new_entry = XCAR (dl1); + if (strcmp (SSDATA (XCAR (XCDR (old_entry))), + SSDATA (XCAR (XCDR (new_entry)))) == 0) { + deleted_dl = Fdelq (new_entry, deleted_dl); + goto the_end; + } + } + /* The file has been deleted. */ + kqueue_generate_event + (watch_object, Fcons (Qdelete, Qnil), XCAR (XCDR (old_entry)), Qnil); + + } else { + /* The file has been renamed. */ + kqueue_generate_event + (watch_object, Fcons (Qrename, Qnil), + XCAR (XCDR (old_entry)), XCAR (XCDR (new_entry))); + pending_dl = Fdelq (new_entry, pending_dl); + } + + the_end: + dl = XCDR (dl); + old_dl = Fdelq (old_entry, old_dl); + } + + /* Parse through the resulting new list. */ + dl = new_dl; + while (1) { + Lisp_Object entry; + if (NILP (dl)) + break; + + /* A new file has appeared. */ + entry = XCAR (dl); + kqueue_generate_event + (watch_object, Fcons (Qcreate, Qnil), XCAR (XCDR (entry)), Qnil); + + /* Check size of that file. */ + Lisp_Object size = Fnth (make_number (4), entry); + if (FLOATP (size) || (XINT (size) > 0)) + kqueue_generate_event + (watch_object, Fcons (Qwrite, Qnil), XCAR (XCDR (entry)), Qnil); + + dl = XCDR (dl); + new_dl = Fdelq (entry, new_dl); + } + + /* Parse through the resulting pending_dl list. */ + dl = pending_dl; + while (1) { + Lisp_Object entry; + if (NILP (dl)) + break; + + /* A file is still pending. Assume it was a write. */ + entry = XCAR (dl); + kqueue_generate_event + (watch_object, Fcons (Qwrite, Qnil), XCAR (XCDR (entry)), Qnil); + + dl = XCDR (dl); + pending_dl = Fdelq (entry, pending_dl); + } + + /* At this point, old_dl, new_dl and pending_dl shall be empty. + deleted_dl might not be empty when there was a rename to a + nonexistent file. Let's make a check for this (might be removed + once the code is stable). */ + if (! NILP (old_dl)) + report_file_error ("Old list not empty", old_dl); + if (! NILP (new_dl)) + report_file_error ("New list not empty", new_dl); + if (! NILP (pending_dl)) + report_file_error ("Pending events list not empty", pending_dl); + // if (! NILP (deleted_dl)) + // report_file_error ("Deleted events list not empty", deleted_dl); + + /* Replace old directory listing with the new one. */ + XSETCDR (Fnthcdr (make_number (3), watch_object), + Fcons (new_directory_files, Qnil)); + return; +} + +/* This is the callback function for arriving input on kqueuefd. It + shall create a Lisp event, and put it into the Emacs input queue. */ +static void +kqueue_callback (int fd, void *data) +{ + for (;;) { + struct kevent kev; + static const struct timespec nullts = { 0, 0 }; + Lisp_Object descriptor, watch_object, file, actions; + + /* Read one event. */ + int ret = kevent (kqueuefd, NULL, 0, &kev, 1, &nullts); + if (ret < 1) { + /* All events read. */ + return; + } + + /* Determine descriptor and file name. */ + descriptor = make_number (kev.ident); + watch_object = assq_no_quit (descriptor, watch_list); + if (CONSP (watch_object)) + file = XCAR (XCDR (watch_object)); + else + continue; + + /* Determine event actions. */ + actions = Qnil; + if (kev.fflags & NOTE_DELETE) + actions = Fcons (Qdelete, actions); + if (kev.fflags & NOTE_WRITE) { + /* Check, whether this is a directory event. */ + if (NILP (Fnth (make_number (4), watch_object))) + actions = Fcons (Qwrite, actions); + else + kqueue_compare_dir_list (watch_object); + } + if (kev.fflags & NOTE_EXTEND) + actions = Fcons (Qextend, actions); + if (kev.fflags & NOTE_ATTRIB) + actions = Fcons (Qattrib, actions); + if (kev.fflags & NOTE_LINK) + actions = Fcons (Qlink, actions); + /* It would be useful to know the target of the rename operation. + At this point, it is not possible. Happens only when the upper + directory is monitored. */ + if (kev.fflags & NOTE_RENAME) + actions = Fcons (Qrename, actions); + + /* Create the event. */ + if (! NILP (actions)) + kqueue_generate_event (watch_object, actions, file, Qnil); + + /* Cancel monitor if file or directory is deleted or renamed. */ + if (kev.fflags & (NOTE_DELETE | NOTE_RENAME)) + Fkqueue_rm_watch (descriptor); + } + return; +} + +DEFUN ("kqueue-add-watch", Fkqueue_add_watch, Skqueue_add_watch, 3, 3, 0, + doc: /* Add a watch for filesystem events pertaining to FILE. + +This arranges for filesystem events pertaining to FILE to be reported +to Emacs. Use `kqueue-rm-watch' to cancel the watch. + +Returned value is a descriptor for the added watch. If the file cannot be +watched for some reason, this function signals a `file-notify-error' error. + +FLAGS is a list of events to be watched for. It can include the +following symbols: + + `create' -- FILE was created + `delete' -- FILE was deleted + `write' -- FILE has changed + `extend' -- FILE was extended + `attrib' -- a FILE attribute was changed + `link' -- a FILE's link count was changed + `rename' -- FILE was moved to FILE1 + +When any event happens, Emacs will call the CALLBACK function passing +it a single argument EVENT, which is of the form + + (DESCRIPTOR ACTIONS FILE [FILE1]) + +DESCRIPTOR is the same object as the one returned by this function. +ACTIONS is a list of events. + +FILE is the name of the file whose event is being reported. FILE1 +will be reported only in case of the `rename' event. This is possible +only when the upper directory of the renamed file is watched. */) + (Lisp_Object file, Lisp_Object flags, Lisp_Object callback) +{ + Lisp_Object watch_object, dir_list; + int fd, oflags; + u_short fflags = 0; + struct kevent kev; + + /* Check parameters. */ + CHECK_STRING (file); + file = Fdirectory_file_name (Fexpand_file_name (file, Qnil)); + if (NILP (Ffile_exists_p (file))) + report_file_error ("File does not exist", file); + + CHECK_LIST (flags); + + if (! FUNCTIONP (callback)) + wrong_type_argument (Qinvalid_function, callback); + + if (kqueuefd < 0) + { + /* Create kqueue descriptor. */ + kqueuefd = kqueue (); + if (kqueuefd < 0) + report_file_notify_error ("File watching is not available", Qnil); + + /* Start monitoring for possible I/O. */ + add_read_fd (kqueuefd, kqueue_callback, NULL); + + watch_list = Qnil; + } + + /* Open file. */ + file = ENCODE_FILE (file); + oflags = O_NONBLOCK; +#if O_EVTONLY + oflags |= O_EVTONLY; +#else + oflags |= O_RDONLY; +#endif +#if O_SYMLINK + oflags |= O_SYMLINK; +#else + oflags |= O_NOFOLLOW; +#endif + fd = emacs_open (SSDATA (file), oflags, 0); + if (fd == -1) + report_file_error ("File cannot be opened", file); + + /* Assemble filter flags */ + if (! NILP (Fmember (Qdelete, flags))) fflags |= NOTE_DELETE; + if (! NILP (Fmember (Qwrite, flags))) fflags |= NOTE_WRITE; + if (! NILP (Fmember (Qextend, flags))) fflags |= NOTE_EXTEND; + if (! NILP (Fmember (Qattrib, flags))) fflags |= NOTE_ATTRIB; + if (! NILP (Fmember (Qlink, flags))) fflags |= NOTE_LINK; + if (! NILP (Fmember (Qrename, flags))) fflags |= NOTE_RENAME; + + /* Register event. */ + EV_SET (&kev, fd, EVFILT_VNODE, EV_ADD | EV_ENABLE | EV_CLEAR, + fflags, 0, NULL); + + if (kevent (kqueuefd, &kev, 1, NULL, 0, NULL) < 0) { + emacs_close (fd); + report_file_error ("Cannot watch file", file); + } + + /* Store watch object in watch list. */ + Lisp_Object watch_descriptor = make_number (fd); + if (NILP (Ffile_directory_p (file))) + watch_object = list4 (watch_descriptor, file, flags, callback); + else { + dir_list = directory_files_internal (file, Qnil, Qnil, Qnil, 1, Qnil); + watch_object = list5 (watch_descriptor, file, flags, callback, dir_list); + } + watch_list = Fcons (watch_object, watch_list); + + return watch_descriptor; +} + +DEFUN ("kqueue-rm-watch", Fkqueue_rm_watch, Skqueue_rm_watch, 1, 1, 0, + doc: /* Remove an existing WATCH-DESCRIPTOR. + +WATCH-DESCRIPTOR should be an object returned by `kqueue-add-watch'. */) + (Lisp_Object watch_descriptor) +{ + Lisp_Object watch_object = assq_no_quit (watch_descriptor, watch_list); + + if (! CONSP (watch_object)) + xsignal2 (Qfile_notify_error, build_string ("Not a watch descriptor"), + watch_descriptor); + + eassert (INTEGERP (watch_descriptor)); + int fd = XINT (watch_descriptor); + if ( fd >= 0) + emacs_close (fd); + + /* Remove watch descriptor from watch list. */ + watch_list = Fdelq (watch_object, watch_list); + + if (NILP (watch_list) && (kqueuefd >= 0)) { + delete_read_fd (kqueuefd); + emacs_close (kqueuefd); + kqueuefd = -1; + } + + return Qt; +} + +DEFUN ("kqueue-valid-p", Fkqueue_valid_p, Skqueue_valid_p, 1, 1, 0, + doc: /* "Check a watch specified by its WATCH-DESCRIPTOR. + +WATCH-DESCRIPTOR should be an object returned by `kqueue-add-watch'. + +A watch can become invalid if the file or directory it watches is +deleted, or if the watcher thread exits abnormally for any other +reason. Removing the watch by calling `kqueue-rm-watch' also makes it +invalid. */) + (Lisp_Object watch_descriptor) +{ + return NILP (assq_no_quit (watch_descriptor, watch_list)) ? Qnil : Qt; +} + + +void +globals_of_kqueue (void) +{ + watch_list = Qnil; +} + +void +syms_of_kqueue (void) +{ + defsubr (&Skqueue_add_watch); + defsubr (&Skqueue_rm_watch); + defsubr (&Skqueue_valid_p); + + /* Event types. */ + DEFSYM (Qcreate, "create"); + DEFSYM (Qdelete, "delete"); /* NOTE_DELETE */ + DEFSYM (Qwrite, "write"); /* NOTE_WRITE */ + DEFSYM (Qextend, "extend"); /* NOTE_EXTEND */ + DEFSYM (Qattrib, "attrib"); /* NOTE_ATTRIB */ + DEFSYM (Qlink, "link"); /* NOTE_LINK */ + DEFSYM (Qrename, "rename"); /* NOTE_RENAME */ + + staticpro (&watch_list); + + Fprovide (intern_c_string ("kqueue"), Qnil); +} + +#endif /* HAVE_KQUEUE */ + +/* PROBLEMS + * https://bugs.launchpad.net/ubuntu/+source/libkqueue/+bug/1514837 + prevents tests on Ubuntu. */ diff --git a/src/lisp.h b/src/lisp.h index b0a8d75..8aa034e9 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -4319,17 +4319,23 @@ extern void init_font (void); extern void syms_of_fontset (void); #endif +/* Defined in inotify.c */ +#ifdef HAVE_INOTIFY +extern void syms_of_inotify (void); +#endif + +/* Defined in kqueue.c */ +#ifdef HAVE_KQUEUE +extern void globals_of_kqueue (void); +extern void syms_of_kqueue (void); +#endif + /* Defined in gfilenotify.c */ #ifdef HAVE_GFILENOTIFY extern void globals_of_gfilenotify (void); extern void syms_of_gfilenotify (void); #endif -/* Defined in inotify.c */ -#ifdef HAVE_INOTIFY -extern void syms_of_inotify (void); -#endif - #ifdef HAVE_W32NOTIFY /* Defined on w32notify.c. */ extern void syms_of_w32notify (void); diff --git a/test/automated/file-notify-tests.el b/test/automated/file-notify-tests.el index 7bf7b0b..de64f50 100644 --- a/test/automated/file-notify-tests.el +++ b/test/automated/file-notify-tests.el @@ -61,11 +61,14 @@ (defvar file-notify--test-results nil) (defvar file-notify--test-event nil) (defvar file-notify--test-events nil) -(defvar file-notify--test-expected-events nil) (defun file-notify--test-timeout () "Timeout to wait for arriving events, in seconds." - (if (file-remote-p temporary-file-directory) 6 3)) + (cond + ((file-remote-p temporary-file-directory) 6) + ((string-equal (file-notify--test-library) "w32notify") 20) + ((eq system-type 'cygwin) 10) + (t 3))) (defun file-notify--test-cleanup () "Cleanup after a test." @@ -89,8 +92,7 @@ file-notify--test-tmpfile1 nil file-notify--test-desc nil file-notify--test-results nil - file-notify--test-events nil - file-notify--test-expected-events nil) + file-notify--test-events nil) (when file-notify--test-event (error "file-notify--test-event should not be set but bound dynamically"))) @@ -133,6 +135,18 @@ being the result.") ;; Return result. (cdr file-notify--test-remote-enabled-checked)) +(defun file-notify--test-library () + "The used library for the test, as a string. +In the remote case, it is the process name which runs on the +remote host, or nil." + (if (null (file-remote-p temporary-file-directory)) + (symbol-name file-notify--library) + (and (consp file-notify--test-remote-enabled-checked) + (processp (cdr file-notify--test-remote-enabled-checked)) + (replace-regexp-in-string + "<[[:digit:]]+>\\'" "" + (process-name (cdr file-notify--test-remote-enabled-checked)))))) + (defmacro file-notify--deftest-remote (test docstring) "Define ert `TEST-remote' for remote files." (declare (indent 1)) @@ -151,12 +165,7 @@ being the result.") "Test availability of `file-notify'." (skip-unless (file-notify--test-local-enabled)) ;; Report the native library which has been used. - (if (null (file-remote-p temporary-file-directory)) - (message "Local library: `%s'" file-notify--library) - (message "Remote command: `%s'" - (replace-regexp-in-string - "<[[:digit:]]+>\\'" "" - (process-name (cdr file-notify--test-remote-enabled-checked))))) + (message "Library: `%s'" (file-notify--test-library)) (should (setq file-notify--test-desc (file-notify-add-watch temporary-file-directory '(change) 'ignore))) @@ -190,12 +199,13 @@ being the result.") (file-notify-add-watch temporary-file-directory '(change attribute-change) 'ignore))) (file-notify-rm-watch file-notify--test-desc) - ;; The file does not need to exist, just the upper directory. + (write-region "any text" nil file-notify--test-tmpfile nil 'no-message) (should (setq file-notify--test-desc (file-notify-add-watch file-notify--test-tmpfile '(change attribute-change) 'ignore))) (file-notify-rm-watch file-notify--test-desc) + (delete-file file-notify--test-tmpfile) ;; Check error handling. (should-error (file-notify-add-watch 1 2 3 4) @@ -236,16 +246,17 @@ is bound somewhere." (should (or (string-equal (file-notify--event-file-name file-notify--test-event) file-notify--test-tmpfile) - (string-equal (directory-file-name - (file-name-directory - (file-notify--event-file-name file-notify--test-event))) - file-notify--test-tmpfile))) + (string-equal (file-notify--event-file-name file-notify--test-event) + file-notify--test-tmpfile1) + (string-equal (file-notify--event-file-name file-notify--test-event) + temporary-file-directory))) ;; Check the second file name if exists. (when (eq (nth 1 file-notify--test-event) 'renamed) (should - (string-equal - (file-notify--event-file1-name file-notify--test-event) - file-notify--test-tmpfile1)))) + (or (string-equal (file-notify--event-file1-name file-notify--test-event) + file-notify--test-tmpfile1) + (string-equal (file-notify--event-file1-name file-notify--test-event) + temporary-file-directory))))) (defun file-notify--test-event-handler (event) "Run a test over FILE-NOTIFY--TEST-EVENT. @@ -254,7 +265,7 @@ and the event to `file-notify--test-events'." (let* ((file-notify--test-event event) (result (ert-run-test (make-ert-test :body 'file-notify--test-event-test)))) - ;; Do not add temporary files, this would confuse the checks. + ;; Do not add lock files, this would confuse the checks. (unless (string-match (regexp-quote ".#") (file-notify--event-file-name file-notify--test-event)) @@ -278,137 +289,246 @@ TIMEOUT is the maximum time to wait for, in seconds." (defmacro file-notify--test-with-events (events &rest body) "Run BODY collecting events and then compare with EVENTS. -Don't wait longer than timeout seconds for the events to be delivered." +EVENTS is either a simple list of events, or a list of lists of +events, which represent different possible results. Don't wait +longer than timeout seconds for the events to be delivered." (declare (indent 1)) (let ((outer (make-symbol "outer"))) - `(let ((,outer file-notify--test-events)) - (setq file-notify--test-expected-events - (append file-notify--test-expected-events ,events)) + `(let* ((,outer file-notify--test-events) + (events (if (consp (car ,events)) ,events (list ,events))) + (max-length (apply 'max (mapcar 'length events))) + create-lockfiles result) + ;; Flush pending events. + (file-notify--wait-for-events + (file-notify--test-timeout) + (input-pending-p)) (let (file-notify--test-events) ,@body (file-notify--wait-for-events - (file-notify--test-timeout) - (= (length ,events) (length file-notify--test-events))) - (should (equal ,events (mapcar #'cadr file-notify--test-events))) + ;; More events need more time. Use some fudge factor. + (* (ceiling max-length 100) (file-notify--test-timeout)) + (= max-length (length file-notify--test-events))) + ;; One of the possible results shall match. + (should + (dolist (elt events result) + (setq result + (or result + (equal elt (mapcar #'cadr file-notify--test-events)))))) (setq ,outer (append ,outer file-notify--test-events))) (setq file-notify--test-events ,outer)))) (ert-deftest file-notify-test02-events () "Check file creation/change/removal notifications." (skip-unless (file-notify--test-local-enabled)) - ;; Under cygwin there are so bad timings that it doesn't make sense to test. - (skip-unless (not (eq system-type 'cygwin))) - - (setq file-notify--test-tmpfile (file-notify--test-make-temp-name) - file-notify--test-tmpfile1 (file-notify--test-make-temp-name)) (unwind-protect (progn - ;; Check creation, change and deletion. - (setq file-notify--test-desc - (file-notify-add-watch - file-notify--test-tmpfile - '(change) 'file-notify--test-event-handler)) - (file-notify--test-with-events '(created changed deleted) + ;; Check file creation, change and deletion. It doesn't work + ;; for cygwin and kqueue, because we don't use an implicit + ;; directory monitor (kqueue), or the timings are too bad (cygwin). + (unless (or (eq system-type 'cygwin) + (string-equal (file-notify--test-library) "kqueue")) + (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)) + (should + (setq file-notify--test-desc + (file-notify-add-watch + file-notify--test-tmpfile + '(change) 'file-notify--test-event-handler))) + (file-notify--test-with-events + (cond + ;; cygwin recognizes only `deleted' and `stopped' events. + ((eq system-type 'cygwin) + '(deleted stopped)) + (t '(created changed deleted stopped))) + (write-region + "another text" nil file-notify--test-tmpfile nil 'no-message) + (read-event nil nil 0.1) + (delete-file file-notify--test-tmpfile)) + ;; `file-notify-rm-watch' fires the `stopped' event. Suppress it. + (let (file-notify--test-events) + (file-notify-rm-watch file-notify--test-desc))) + + ;; Check file change and deletion. + (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)) + (write-region "any text" nil file-notify--test-tmpfile nil 'no-message) + (should + (setq file-notify--test-desc + (file-notify-add-watch + file-notify--test-tmpfile + '(change) 'file-notify--test-event-handler))) + (file-notify--test-with-events + (cond + ;; cygwin recognizes only `deleted' and `stopped' events. + ((eq system-type 'cygwin) + '(deleted stopped)) + ;; inotify and kqueue raise just one `changed' event. + ((or (string-equal "inotify" (file-notify--test-library)) + (string-equal "kqueue" (file-notify--test-library))) + '(changed deleted stopped)) + ;; gfilenotify raises one or two `changed' events + ;; randomly, no chance to test. So we accept both cases. + ((string-equal "gfilenotify" (file-notify--test-library)) + '((changed deleted stopped) + (changed changed deleted stopped))) + (t '(changed changed deleted stopped))) + (read-event nil nil 0.1) (write-region - "any text" nil file-notify--test-tmpfile nil 'no-message) + "another text" nil file-notify--test-tmpfile nil 'no-message) + (read-event nil nil 0.1) (delete-file file-notify--test-tmpfile)) ;; `file-notify-rm-watch' fires the `stopped' event. Suppress it. (let (file-notify--test-events) (file-notify-rm-watch file-notify--test-desc)) - ;; Check creation, change and deletion. There must be a - ;; `stopped' event when deleting the directory. It doesn't - ;; work for w32notify. - (unless (eq file-notify--library 'w32notify) - (make-directory file-notify--test-tmpfile) - (setq file-notify--test-desc - (file-notify-add-watch - file-notify--test-tmpfile - '(change) 'file-notify--test-event-handler)) + ;; Check file creation, change and deletion when watching a + ;; directory. There must be a `stopped' event when deleting + ;; the directory. + (let ((temporary-file-directory + (make-temp-file "file-notify-test-parent" t))) + (should + (setq file-notify--test-tmpfile (file-notify--test-make-temp-name) + file-notify--test-desc + (file-notify-add-watch + temporary-file-directory + '(change) 'file-notify--test-event-handler))) (file-notify--test-with-events - ;; There are two `deleted' events, for the file and for - ;; the directory. - '(created changed deleted deleted stopped) + (cond + ;; w32notify does raise a `stopped' event when a + ;; watched directory is deleted. + ((string-equal (file-notify--test-library) "w32notify") + '(created changed deleted)) + ;; cygwin recognizes only `deleted' and `stopped' events. + ((eq system-type 'cygwin) + '(deleted stopped)) + ;; There are two `deleted' events, for the file and for + ;; the directory. Except for kqueue. + ((string-equal (file-notify--test-library) "kqueue") + '(created changed deleted stopped)) + (t '(created changed deleted deleted stopped))) + (read-event nil nil 0.1) (write-region - "any text" nil (expand-file-name "foo" file-notify--test-tmpfile) - nil 'no-message) - (delete-directory file-notify--test-tmpfile 'recursive)) + "any text" nil file-notify--test-tmpfile nil 'no-message) + (read-event nil nil 0.1) + (delete-directory temporary-file-directory 'recursive)) ;; `file-notify-rm-watch' fires the `stopped' event. Suppress it. (let (file-notify--test-events) (file-notify-rm-watch file-notify--test-desc))) - ;; Check copy. - (setq file-notify--test-desc - (file-notify-add-watch - file-notify--test-tmpfile - '(change) 'file-notify--test-event-handler)) - (should file-notify--test-desc) - (file-notify--test-with-events - ;; w32notify does not distinguish between `changed' and - ;; `attribute-changed'. - (if (eq file-notify--library 'w32notify) - '(created changed changed deleted) - '(created changed deleted)) - (write-region - "any text" nil file-notify--test-tmpfile nil 'no-message) - (copy-file file-notify--test-tmpfile file-notify--test-tmpfile1) - ;; The next two events shall not be visible. - (set-file-modes file-notify--test-tmpfile 000) - (read-event nil nil 0.1) ; In order to distinguish the events. - (set-file-times file-notify--test-tmpfile '(0 0)) - (delete-file file-notify--test-tmpfile) - (delete-file file-notify--test-tmpfile1)) - ;; `file-notify-rm-watch' fires the `stopped' event. Suppress it. - (let (file-notify--test-events) - (file-notify-rm-watch file-notify--test-desc)) + ;; Check copy of files inside a directory. + (let ((temporary-file-directory + (make-temp-file "file-notify-test-parent" t))) + (should + (setq file-notify--test-tmpfile (file-notify--test-make-temp-name) + file-notify--test-tmpfile1 (file-notify--test-make-temp-name) + file-notify--test-desc + (file-notify-add-watch + temporary-file-directory + '(change) 'file-notify--test-event-handler))) + (file-notify--test-with-events + (cond + ;; w32notify does not distinguish between `changed' and + ;; `attribute-changed'. + ((string-equal (file-notify--test-library) "w32notify") + '(created changed created changed changed changed changed + deleted deleted)) + ;; cygwin recognizes only `deleted' and `stopped' events. + ((eq system-type 'cygwin) + '(deleted stopped)) + ;; There are three `deleted' events, for two files and + ;; for the directory. Except for kqueue. + ((string-equal (file-notify--test-library) "kqueue") + '(created changed created changed deleted stopped)) + (t '(created changed created changed + deleted deleted deleted stopped))) + (read-event nil nil 0.1) + (write-region + "any text" nil file-notify--test-tmpfile nil 'no-message) + (read-event nil nil 0.1) + (copy-file file-notify--test-tmpfile file-notify--test-tmpfile1) + ;; The next two events shall not be visible. + (read-event nil nil 0.1) + (set-file-modes file-notify--test-tmpfile 000) + (read-event nil nil 0.1) + (set-file-times file-notify--test-tmpfile '(0 0)) + (read-event nil nil 0.1) + (delete-directory temporary-file-directory 'recursive)) + ;; `file-notify-rm-watch' fires the `stopped' event. Suppress it. + (let (file-notify--test-events) + (file-notify-rm-watch file-notify--test-desc))) - ;; Check rename. - (setq file-notify--test-desc - (file-notify-add-watch - file-notify--test-tmpfile - '(change) 'file-notify--test-event-handler)) - (should file-notify--test-desc) - (file-notify--test-with-events '(created changed renamed) - (write-region - "any text" nil file-notify--test-tmpfile nil 'no-message) - (rename-file file-notify--test-tmpfile file-notify--test-tmpfile1) - ;; After the rename, we won't get events anymore. - (delete-file file-notify--test-tmpfile1)) - ;; `file-notify-rm-watch' fires the `stopped' event. Suppress it. - (let (file-notify--test-events) - (file-notify-rm-watch file-notify--test-desc)) + ;; Check rename of files inside a directory. + (let ((temporary-file-directory + (make-temp-file "file-notify-test-parent" t))) + (should + (setq file-notify--test-tmpfile (file-notify--test-make-temp-name) + file-notify--test-tmpfile1 (file-notify--test-make-temp-name) + file-notify--test-desc + (file-notify-add-watch + temporary-file-directory + '(change) 'file-notify--test-event-handler))) + (file-notify--test-with-events + (cond + ;; w32notify does not distinguish between `changed' and + ;; `attribute-changed'. + ((string-equal (file-notify--test-library) "w32notify") + '(created changed renamed deleted)) + ;; cygwin recognizes only `deleted' and `stopped' events. + ((eq system-type 'cygwin) + '(deleted stopped)) + ;; There are two `deleted' events, for the file and for + ;; the directory. Except for kqueue. + ((string-equal (file-notify--test-library) "kqueue") + '(created changed renamed deleted stopped)) + (t '(created changed renamed deleted deleted stopped))) + (read-event nil nil 0.1) + (write-region + "any text" nil file-notify--test-tmpfile nil 'no-message) + (read-event nil nil 0.1) + (rename-file file-notify--test-tmpfile file-notify--test-tmpfile1) + ;; After the rename, we won't get events anymore. + (read-event nil nil 0.1) + (delete-directory temporary-file-directory 'recursive)) + ;; `file-notify-rm-watch' fires the `stopped' event. Suppress it. + (let (file-notify--test-events) + (file-notify-rm-watch file-notify--test-desc))) - ;; Check attribute change. It doesn't work for w32notify. - (unless (eq file-notify--library 'w32notify) - (setq file-notify--test-desc - (file-notify-add-watch - file-notify--test-tmpfile - '(attribute-change) 'file-notify--test-event-handler)) - (file-notify--test-with-events - (if (file-remote-p temporary-file-directory) - ;; In the remote case, `write-region' raises also an - ;; `attribute-changed' event. - '(attribute-changed attribute-changed attribute-changed) - '(attribute-changed attribute-changed)) - ;; We must use short delays between the operations. - ;; Otherwise, not all events arrive us in the remote case. - (write-region - "any text" nil file-notify--test-tmpfile nil 'no-message) - (read-event nil nil 0.1) - (set-file-modes file-notify--test-tmpfile 000) - (read-event nil nil 0.1) - (set-file-times file-notify--test-tmpfile '(0 0)) - (read-event nil nil 0.1) - (delete-file file-notify--test-tmpfile)) + ;; Check attribute change. Does not work for cygwin. + (unless (eq system-type 'cygwin) + (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)) + (write-region + "any text" nil file-notify--test-tmpfile nil 'no-message) + (should + (setq file-notify--test-desc + (file-notify-add-watch + file-notify--test-tmpfile + '(attribute-change) 'file-notify--test-event-handler))) + (file-notify--test-with-events + (cond + ;; w32notify does not distinguish between `changed' and + ;; `attribute-changed'. + ((string-equal (file-notify--test-library) "w32notify") + '(changed changed changed changed)) + ;; For kqueue and in the remote case, `write-region' + ;; raises also an `attribute-changed' event. + ((or (string-equal (file-notify--test-library) "kqueue") + (file-remote-p temporary-file-directory)) + '(attribute-changed attribute-changed attribute-changed)) + (t '(attribute-changed attribute-changed))) + (read-event nil nil 0.1) + (write-region + "any text" nil file-notify--test-tmpfile nil 'no-message) + (read-event nil nil 0.1) + (set-file-modes file-notify--test-tmpfile 000) + (read-event nil nil 0.1) + (set-file-times file-notify--test-tmpfile '(0 0)) + (read-event nil nil 0.1) + (delete-file file-notify--test-tmpfile)) ;; `file-notify-rm-watch' fires the `stopped' event. Suppress it. (let (file-notify--test-events) (file-notify-rm-watch file-notify--test-desc))) ;; Check the global sequence again just to make sure that ;; `file-notify--test-events' has been set correctly. - (should (equal (mapcar #'cadr file-notify--test-events) - file-notify--test-expected-events)) (should file-notify--test-results) (dolist (result file-notify--test-results) (when (ert-test-failed-p result) @@ -476,28 +596,31 @@ Don't wait longer than timeout seconds for the events to be delivered." (should (string-match "another text" (buffer-string))) ;; Stop file notification. Autorevert shall still work via polling. - (file-notify-rm-watch auto-revert-notify-watch-descriptor) - (file-notify--wait-for-events - timeout (null auto-revert-use-notify)) - (should-not auto-revert-use-notify) - (should-not auto-revert-notify-watch-descriptor) - - ;; Modify file. We wait for two seconds, in order to have - ;; another timestamp. One second seems to be too short. - (with-current-buffer (get-buffer-create "*Messages*") - (narrow-to-region (point-max) (point-max))) - (sleep-for 2) - (write-region - "foo bla" nil file-notify--test-tmpfile nil 'no-message) - - ;; Check, that the buffer has been reverted. - (with-current-buffer (get-buffer-create "*Messages*") + ;; It doesn't work for `w32notify'. + (unless (string-equal (file-notify--test-library) "w32notify") + (file-notify-rm-watch auto-revert-notify-watch-descriptor) (file-notify--wait-for-events - timeout - (string-match - (format-message "Reverting buffer `%s'." (buffer-name buf)) - (buffer-string)))) - (should (string-match "foo bla" (buffer-string))))) + timeout (null auto-revert-use-notify)) + (should-not auto-revert-use-notify) + (should-not auto-revert-notify-watch-descriptor) + + ;; Modify file. We wait for two seconds, in order to + ;; have another timestamp. One second seems to be too + ;; short. + (with-current-buffer (get-buffer-create "*Messages*") + (narrow-to-region (point-max) (point-max))) + (sleep-for 2) + (write-region + "foo bla" nil file-notify--test-tmpfile nil 'no-message) + + ;; Check, that the buffer has been reverted. + (with-current-buffer (get-buffer-create "*Messages*") + (file-notify--wait-for-events + timeout + (string-match + (format-message "Reverting buffer `%s'." (buffer-name buf)) + (buffer-string)))) + (should (string-match "foo bla" (buffer-string)))))) ;; Cleanup. (with-current-buffer "*Messages*" (widen)) @@ -510,51 +633,94 @@ Don't wait longer than timeout seconds for the events to be delivered." (ert-deftest file-notify-test04-file-validity () "Check `file-notify-valid-p' for files." (skip-unless (file-notify--test-local-enabled)) - ;; Under cygwin there are so bad timings that it doesn't make sense to test. - (skip-unless (not (eq system-type 'cygwin))) (unwind-protect (progn - (setq file-notify--test-tmpfile (file-notify--test-make-temp-name) - file-notify--test-desc - (file-notify-add-watch - file-notify--test-tmpfile - '(change) #'file-notify--test-event-handler)) - (file-notify--test-with-events '(created changed deleted) + (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)) + (write-region "any text" nil file-notify--test-tmpfile nil 'no-message) + (should + (setq file-notify--test-desc + (file-notify-add-watch + file-notify--test-tmpfile + '(change) #'file-notify--test-event-handler))) + (should (file-notify-valid-p file-notify--test-desc)) + ;; After calling `file-notify-rm-watch', the descriptor is not + ;; valid anymore. + (file-notify-rm-watch file-notify--test-desc) + (should-not (file-notify-valid-p file-notify--test-desc)) + (delete-file file-notify--test-tmpfile)) + + ;; Cleanup. + (file-notify--test-cleanup)) + + (unwind-protect + (progn + (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)) + (write-region "any text" nil file-notify--test-tmpfile nil 'no-message) + (should + (setq file-notify--test-desc + (file-notify-add-watch + file-notify--test-tmpfile + '(change) #'file-notify--test-event-handler))) + (file-notify--test-with-events + (cond + ;; cygwin recognizes only `deleted' and `stopped' events. + ((eq system-type 'cygwin) + '(deleted stopped)) + ;; inotify and kqueue raise just one `changed' event. + ((or (string-equal "inotify" (file-notify--test-library)) + (string-equal "kqueue" (file-notify--test-library))) + '(changed deleted stopped)) + ;; gfilenotify raises one or two `changed' events + ;; randomly, no chance to test. So we accept both cases. + ((string-equal "gfilenotify" (file-notify--test-library)) + '((changed deleted stopped) + (changed changed deleted stopped))) + (t '(changed changed deleted stopped))) (should (file-notify-valid-p file-notify--test-desc)) + (read-event nil nil 0.1) (write-region - "any text" nil file-notify--test-tmpfile nil 'no-message) + "another text" nil file-notify--test-tmpfile nil 'no-message) + (read-event nil nil 0.1) (delete-file file-notify--test-tmpfile)) - ;; After deleting the file, the descriptor is still valid. - (should (file-notify-valid-p file-notify--test-desc)) - ;; After removing the watch, the descriptor must not be valid - ;; anymore. - (file-notify-rm-watch file-notify--test-desc) - (should-not (file-notify-valid-p file-notify--test-desc))) + ;; After deleting the file, the descriptor is not valid anymore. + (should-not (file-notify-valid-p file-notify--test-desc)) + (file-notify-rm-watch file-notify--test-desc)) ;; Cleanup. (file-notify--test-cleanup)) (unwind-protect - ;; The batch-mode operation of w32notify is fragile (there's no - ;; input threads to send the message to). - ;(unless (and noninteractive (eq file-notify--library 'w32notify)) - (unless (eq file-notify--library 'w32notify) - (let ((temporary-file-directory + ;; w32notify does not send a `stopped' event when deleting a + ;; directory. The test does not work, therefore. + (unless (string-equal (file-notify--test-library) "w32notify") + (let ((temporary-file-directory (make-temp-file "file-notify-test-parent" t))) - (setq file-notify--test-tmpfile (file-notify--test-make-temp-name) - file-notify--test-desc - (file-notify-add-watch - file-notify--test-tmpfile - '(change) #'file-notify--test-event-handler)) - (file-notify--test-with-events '(created changed deleted stopped) - (should (file-notify-valid-p file-notify--test-desc)) - (write-region - "any text" nil file-notify--test-tmpfile nil 'no-message) + (should + (setq file-notify--test-tmpfile (file-notify--test-make-temp-name) + file-notify--test-desc + (file-notify-add-watch + temporary-file-directory + '(change) #'file-notify--test-event-handler))) + (file-notify--test-with-events + (cond + ;; cygwin recognizes only `deleted' and `stopped' events. + ((eq system-type 'cygwin) + '(deleted stopped)) + ;; There are two `deleted' events, for the file and for + ;; the directory. Except for kqueue. + ((string-equal (file-notify--test-library) "kqueue") + '(created changed deleted stopped)) + (t '(created changed deleted deleted stopped))) + (should (file-notify-valid-p file-notify--test-desc)) + (read-event nil nil 0.1) + (write-region + "any text" nil file-notify--test-tmpfile nil 'no-message) + (read-event nil nil 0.1) (delete-directory temporary-file-directory t)) - ;; After deleting the parent directory, the descriptor must - ;; not be valid anymore. - (should-not (file-notify-valid-p file-notify--test-desc)))) + ;; After deleting the parent directory, the descriptor must + ;; not be valid anymore. + (should-not (file-notify-valid-p file-notify--test-desc)))) ;; Cleanup. (file-notify--test-cleanup))) @@ -571,10 +737,11 @@ Don't wait longer than timeout seconds for the events to be delivered." (setq file-notify--test-tmpfile (file-name-as-directory (file-notify--test-make-temp-name))) (make-directory file-notify--test-tmpfile) - (setq file-notify--test-desc - (file-notify-add-watch - file-notify--test-tmpfile - '(change) #'file-notify--test-event-handler)) + (should + (setq file-notify--test-desc + (file-notify-add-watch + file-notify--test-tmpfile + '(change) #'file-notify--test-event-handler))) (should (file-notify-valid-p file-notify--test-desc)) ;; After removing the watch, the descriptor must not be valid ;; anymore. @@ -590,20 +757,22 @@ Don't wait longer than timeout seconds for the events to be delivered." (unwind-protect ;; The batch-mode operation of w32notify is fragile (there's no ;; input threads to send the message to). - (unless (and noninteractive (eq file-notify--library 'w32notify)) + (unless (and noninteractive + (string-equal (file-notify--test-library) "w32notify")) (setq file-notify--test-tmpfile (file-name-as-directory (file-notify--test-make-temp-name))) (make-directory file-notify--test-tmpfile) - (setq file-notify--test-desc - (file-notify-add-watch - file-notify--test-tmpfile - '(change) #'file-notify--test-event-handler)) + (should + (setq file-notify--test-desc + (file-notify-add-watch + file-notify--test-tmpfile + '(change) #'file-notify--test-event-handler))) (should (file-notify-valid-p file-notify--test-desc)) ;; After deleting the directory, the descriptor must not be ;; valid anymore. (delete-directory file-notify--test-tmpfile t) (file-notify--wait-for-events - (file-notify--test-timeout) + (file-notify--test-timeout) (not (file-notify-valid-p file-notify--test-desc))) (should-not (file-notify-valid-p file-notify--test-desc))) @@ -613,6 +782,62 @@ Don't wait longer than timeout seconds for the events to be delivered." (file-notify--deftest-remote file-notify-test05-dir-validity "Check `file-notify-valid-p' via file notification for remote directories.") +(ert-deftest file-notify-test06-many-events () + "Check that events are not dropped." + :tags '(:expensive-test) + (skip-unless (file-notify--test-local-enabled)) + ;; Under cygwin events arrive in random order. Impossible to define a test. + (skip-unless (not (eq system-type 'cygwin))) + + (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)) + (make-directory file-notify--test-tmpfile) + (should + (setq file-notify--test-desc + (file-notify-add-watch + file-notify--test-tmpfile + '(change) 'file-notify--test-event-handler))) + (unwind-protect + (let ((n 1000) + source-file-list target-file-list + (default-directory file-notify--test-tmpfile)) + (dotimes (i n) + ;; It matters which direction we rename, at least for + ;; kqueue. This backend parses directories in alphabetic + ;; order (x%d before y%d). So we rename both directions. + (if (zerop (mod i 2)) + (progn + (push (expand-file-name (format "x%d" i)) source-file-list) + (push (expand-file-name (format "y%d" i)) target-file-list)) + (push (expand-file-name (format "y%d" i)) source-file-list) + (push (expand-file-name (format "x%d" i)) target-file-list))) + (file-notify--test-with-events (make-list (+ n n) 'created) + (let ((source-file-list source-file-list) + (target-file-list target-file-list)) + (while (and source-file-list target-file-list) + (read-event nil nil 0.1) + (write-region "" nil (pop source-file-list) nil 'no-message) + (read-event nil nil 0.1) + (write-region "" nil (pop target-file-list) nil 'no-message)))) + (file-notify--test-with-events + (cond + ;; w32notify fires both `deleted' and `renamed' events. + ((string-equal (file-notify--test-library) "w32notify") + (let (r) + (dotimes (_i n r) + (setq r (append '(deleted renamed) r))))) + (t (make-list n 'renamed))) + (let ((source-file-list source-file-list) + (target-file-list target-file-list)) + (while (and source-file-list target-file-list) + (rename-file (pop source-file-list) (pop target-file-list) t)))) + (file-notify--test-with-events (make-list n 'deleted) + (dolist (file target-file-list) + (delete-file file)))) + (file-notify--test-cleanup))) + +(file-notify--deftest-remote file-notify-test06-many-events + "Check that events are not dropped for remote directories.") + (defun file-notify-test-all (&optional interactive) "Run all tests for \\[file-notify]." (interactive "p") @@ -623,7 +848,7 @@ Don't wait longer than timeout seconds for the events to be delivered." ;; TODO: ;; * For w32notify, no stopped events arrive when a directory is removed. -;; * Try to handle arriving events under cygwin reliably. +;; * Check, why cygwin recognizes only `deleted' and `stopped' events. (provide 'file-notify-tests) ;;; file-notify-tests.el ends here commit f7dc6d8b5bb318e02a4016d93f8b34de0716f4dc Author: John Wiegley Date: Fri Jan 22 09:55:52 2016 -0800 Further corrections to the pcase docstring diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el index a2e0524..549ee96 100644 --- a/lisp/emacs-lisp/pcase.el +++ b/lisp/emacs-lisp/pcase.el @@ -111,8 +111,8 @@ CASES is a list of elements of the form (PATTERN CODE...). A structural PATTERN describes a template that identifies a class -of values. For example, the pattern (foo bar) matches any two -element list, binding its elements to symbols named `foo' and +of values. For example, the pattern `(,foo ,bar) matches any +two element list, binding its elements to symbols named `foo' and `bar' -- in much the same way that `cl-destructuring-bind' would. A significant difference from `cl-destructuring-bind' is that, if @@ -120,7 +120,7 @@ a pattern match fails, the next case is tried until either a succesful match is found or there are no more cases. Another difference is that pattern elements may be backquoted, -meaning they must match exactly: The pattern (\\='foo \\='bar) +meaning they must match exactly: The pattern \\='(foo bar) matches only against two element lists containing the symbols `foo' and `bar' in that order. (As a short-hand, atoms always match themselves, such as numbers or strings, and need not be commit 669d30b2173dfbfe9658320baf79e1b504fb89b1 Author: Eli Zaretskii Date: Fri Jan 22 12:20:11 2016 +0200 * doc/emacs/anti.texi (Antinews): Rewrite for Emacs 25. diff --git a/doc/emacs/anti.texi b/doc/emacs/anti.texi index 26e3d2e..ae13ae0 100644 --- a/doc/emacs/anti.texi +++ b/doc/emacs/anti.texi @@ -1,113 +1,218 @@ +@c -*- coding: utf-8 -*- @c This is part of the Emacs manual. @c Copyright (C) 2005-2016 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Antinews -@appendix Emacs 23 Antinews +@appendix Emacs 24 Antinews @c Update the emacs.texi Antinews menu entry with the above version number. For those users who live backwards in time, here is information -about downgrading to Emacs version 23.4. We hope you will enjoy the +about downgrading to Emacs version 24.5. We hope you will enjoy the greater simplicity that results from the absence of many Emacs @value{EMACSVER} features. @itemize @bullet @item -Support for displaying and editing ``bidirectional'' text has been -removed. Text is now always displayed on the screen in a single -consistent direction---left to right---regardless of the underlying -script. Similarly, @kbd{C-f} and @kbd{C-b} always move the text -cursor to the right and left respectively. Also, @key{RIGHT} and -@key{LEFT} are now equivalent to @kbd{C-f} and @kbd{C-b}, as you might -expect, rather than moving forward or backward based on the underlying -``paragraph direction''. +Support for Cairo drawing has been removed. On GNU and Unix systems, +you now have only one drawing engine---the venerable X Window system. +No need to procrastinate on the dilemma whether you do or don't want +the new shiny Cairo thing. Hail, simplicity! -Users of right-to-left languages, like Arabic and Hebrew, may -adapt by reading and/or editing text in left-to-right order. +@item +Emacs still works on SGI IRIX systems. if you live backwards in time, +this is actually a bonus, as IRIX systems will become more and more +popular as you move farther back in time. + +@item +Support for dynamically loaded modules has been removed. You get to +use only the trusted Emacs codebase, with no additions. Those +external modules written by some J.R. Hacker cannot be trusted anyway. +Good riddance! + +@item +We have greatly simplified the Emacs features which access the network +by removing the Network Security Manager. No more annoying prompts +about trusting this or that site or page---you asked for it, you get +it, no questions asked! You, the user, are now in charge of any +security issues related to sites whose certificates expired or didn't +exist in the first place. Giving the user the utmost freedom was and +always will be the most important goal of Emacs development. We keep +that goal even as we develop Emacs back in time. + +@item +We made the output of @kbd{C-h l} much simpler and easier to grasp by +removing the names of commands run by the recorded keystrokes. True +Emacs lovers know their bindings by heart anyway, so why waste +precious screen estate on that which is well known? + +@item +Selection- and clipboard-related commands and variables got their +historical names back. It's now the definitive +@code{x-select-enable-clipboard} again instead of the vague +@code{select-enable-clipboard}, and all those @code{gui-select-text}, +@code{gui-get-primary-selection}, etc.@: got their @code{x-*} names +back. (What's a ``GUI'', anyway?) The only true window system with +selections is the X Window system, so we stopped pretending that other +platforms have anything similar to that. You now know when you invoke +a command that accesses X. + +@item +Passwords are no longer hidden when typed in @code{-batch} mode. It +was a misfeature to have it not shown in the first place: who can type +without seeing what they type? We couldn't convince the users of GUI +sessions to give up hiding the password, so we at least made it +visible in batch mode, which is something every veteran Emacs user +uses all the time. Stay tuned for un-hiding the password in GUI +sessions as well as we downgrade progressively to previous Emacs +versions. @item -The Emacs Lisp package manager has been removed. Instead of using a -user interface (@kbd{M-x list-packages}), additional Lisp packages -must now be installed by hand, which is the most flexible and -``Lispy'' method anyway. Typically, this just involves editing your -init file to add the package installation directory to the load path -and defining some autoloads; see each package's commentary section -and/or README file for details. +The nuisance with Unicode characters popping up all over the place has +been amply dealt with. We've removed @kbd{C-x 8} shorthands for +characters such as ‘, ’, “, ”, €, ≤, and many others; as a nice +benefit, this removes many useless entries at the beginning of the +@kbd{C-h b} output. The @code{electric-quote-mode} has been deleted, +so there's only the one true quoting method now---using the +plain-@acronym{ASCII} quote characters. And if that's not enough, the +doc strings and other messages show text quoted `like this' and "like +this" as they were written, instead of arbitrarily replacing them +with Unicode ``curved quote'' characters. The +@code{text-quoting-style} variable becomes therefore unneeded and was +removed. As result, text produced by Emacs can be sent to those +venerable teletypes again, yeah! + +For the same reasons, the character classes @code{[:alpha:]} and +@code{[:alnum:]} again match any word-constituent character, and +@code{[:graph:]} and @code{[:print:]} match every multibyte character. +Confusing use of Unicode character properties is gone. @item -The option @code{delete-active-region} has been deleted. When the -region is active, typing @key{DEL} or @key{Delete} no longer deletes -the text in the region; it deletes a single character instead. +I-search and query-replace no longer try to confuse you by using the +``character-folding'' magic. They will no longer find any characters +you didn't actually type, like find @kbd{ⓐ} when you actually typed +@kbd{a}. Users who want to find some fancy character will have to +type it explicitly. @item -We have reworked how Emacs handles the clipboard and the X primary -selection. Commands for killing and yanking, like @kbd{C-w} and -@kbd{C-y}, use the primary selection and not the clipboard, so you can -use these commands without interfering with ``cutting'' or ``pasting'' -in other programs. The @samp{Cut}/@samp{Copy}/@samp{Paste} menu items -are bound to separate clipboard commands, not to the same commands as -@kbd{C-w}/@kbd{M-w}/@kbd{C-y}. +The @file{desktop.el} package no longer records window and frame +configuration, and doesn't attempt to restore them. You now have back +your freedom of re-arranging your windows and frames anew each time +you restore a session. This made the new backward-incompatible format +of the @file{.emacs.desktop} file unnecessary, so the format was +reverted back to what it was before Emacs 25. You can now again use +the desktop file with all the previous versions of Emacs. -Selecting text by dragging with the mouse now puts the text in the -kill ring, in addition to the primary selection. But note that -selecting an active region with @kbd{C-@key{SPC}} does @emph{not} -alter the kill ring nor the primary selection, even though the text -highlighting is visually identical. +@item +We have reworked the Prettify Symbols mode to support only the default +@code{prettify-symbols-compose-predicate}. No need to consider +whether your major or minor mode needs its own prettifications; just +use what came with Emacs. We also removed the +@code{prettify-symbols-unprettify-at-point} option: once prettified, +always prettified! These changes make the Prettify Symbols mode quite +a lot simpler and easier to use. + +@item +Support for nifty new features of xterm, such as access to the X +selection and the clipboard, the ``bracketed paste mode'', and other +advanced capabilities has been removed. When you kill text in an +xterm Emacs session, that text is only saved in the Emacs kill ring, +without letting other applications have any way of accessing it. An +xterm is just a text terminal, nothing more, nothing less. There +should be no feature we support on xterm that isn't supported on bare +console terminals. For the same reasons, support for mouse-tracking +on xterm was removed. We will continue this line of simplifications +as we downgrade to previous versions of Emacs; stay tuned. + +@item +Various features in @file{package.el} have been simplified. The +``external'' package status is no longer available. A package present +on multiple archives will now be listed as many times as it is found: +we don't believe in concealing any information from the users. This +and other similar simplifications made +@code{package-menu-toggle-hiding} unnecessary, since there's nothing +to unhide now. + +@item +The @kbd{@key{UP}} and @kbd{@key{DOWN}} keys in the minibuffer have +been simplified to move by history items. No need to wonder whether +you have moved to the next/previous item or to another line within the +same item. Well-written commands shouldn't allow too long history +entries anyway; be sure to report any that do as bugs, so that we +could fix them in past versions of Emacs. + +@item +The VC mode was simplified by removing the support for ``push'' +commands. Moving back in time means you will have less and less need +to use modern version control systems such as Git, Bazaar, and +Mercurial, so the necessity of using ``push'' commands will gradually +disappear. We removed it from Emacs in advance, so that you won't +need to un-learn it when this command disappears, as it should. + +@item +The support for full C/C++ expressions in macros has been removed from +Hide-Ifdef mode. It now supports only the basic literal macros. As +result, the user interface was simplified, and a number of useless +commands have been removed from Hide-Ifdef mode. Further +simplifications were made possible by removing support for some fancy +new preprocessor directives, such as @code{#if defined}, @code{#elif}, +etc. @item -In Isearch, @kbd{C-y} and @kbd{M-y} are no longer bound to -@code{isearch-yank-kill} and @code{isearch-yank-pop} respectively. -Instead, @kbd{C-y} yanks the rest of the current line into the search -string (@code{isearch-yank-line}), whereas @kbd{M-y} does -@code{isearch-yank-kill}. The mismatch with the usual meanings of -@kbd{C-y} and @kbd{M-y} is unintended. +We have reverted to Etags for looking up definitions of functions, +variables, etc. Commands such as @kbd{M-.} use tags tables, as they +always have. This allowed the removal of the entire @file{xref.el} +package and its many metastases in the other Emacs packages and +commands, significantly simplifying those. No more complexities with +the various ``backends'' that provide incoherent behavior that is hard +to explain and remember; either the symbol is in TAGS or it isn't. No +more new user interfaces we never before saw in Emacs, either; if you +want the next definition for the symbol you typed, just invoke +@kbd{C-u M-.}---what could be simpler? As a nice side effect, you get +to use your beloved @code{tags-loop-continue} and @code{pop-tag-mark} +commands and their memorable bindings. The @file{package.el} package +has been removed for similar reasons. @item -Various completion features have been simplified. The option -@code{completion-category-overrides} has been removed, so Emacs uses a -single consistent scheme to generate completions, instead of using a -separate scheme for (say) buffer name completion. Several major -modes, such as Shell mode, now implement their own inline completion -commands instead of using @code{completion-at-point}. +@code{(/ @var{n})} once again yields just @var{n}. Emacs Lisp is not +Common Lisp, so compatibility with CL just complicates Emacs here. @item -We have removed several options for controlling how windows are used, -such as @code{display-buffer-base-action}, -@code{display-buffer-alist}, @code{window-combination-limit}, and -@code{window-combination-resize}. +The functions @code{filepos-to-bufferpos} and +@code{bufferpos-to-filepos} have been removed. Code that needs to +find a file position by a buffer position or vice versa should adapt +by reading the file with no conversions and counting bytes while +comparing text. How hard can that be? @item -The command @kbd{M-x customize-themes} has been removed. Emacs no -longer comes with pre-defined themes (you can write your own). +We saw no need for the @code{make-process} primitive, so we removed +it. The @code{start-process} primitive provides all the functionality +one needs, so adding more APIs just confuses users. @item -Emacs no longer adapts various aspects of its display to GTK+ -settings, opting instead for a uniform toolkit-independent look. GTK+ -scroll bars are placed on the left, the same position as non-GTK+ X -scroll bars. Emacs no longer refers to GTK+ to set the default -@code{region} face, nor for drawing tooltips. +The functions @code{bidi-find-overridden-directionality} and +@code{buffer-substring-with-bidi-context} were removed, in preparation +for removing the whole bidi support when downgrading to Emacs 23. @item -Setting the option @code{delete-by-moving-to-trash} to a -non-@code{nil} value now causes all file deletions to use the system trash, -even temporary files created by Lisp programs; furthermore, the -@kbd{M-x delete-file} and @kbd{M-x delete-directory} commands no -longer accept prefix arguments to force true deletion. +Horizontal scroll bars are no longer supported. Enlarge your windows +and frames instead, or use @code{truncate-lines} and the automatic +horizontal scrolling of text that Emacs had since time immemoriam. @item -On GNU/Linux and Unix, the default method for sending mail (as -specified by @code{send-mail-function}) is to use the -@command{sendmail} program. Emacs no longer asks for a delivery -method the first time you try to send mail, trusting instead that the -system is configured for mail delivery, as it ought to be. +Emacs is again counting the height of a frame's menu and its tool bar +in the frame's text height calculations. This makes Emacs invocation +on different platforms and with different toolkits less predictable +when frame geometry parameters are given on the Emacs command line, +thus making Emacs more adventurous and less boring to use. @item -Several VC features have been removed, including the @kbd{C-x v +} and -@kbd{C-x v m} commands for pulling and merging on distributed version -control systems, and the ability to view inline log entries in the log -buffers made by @kbd{C-x v L}. +The @command{etags} program no longer supports Ruby and Go languages. +You won't need that as you progressively travel back in time towards +the time before these languages were invented. We removed support for +them in anticipation for that time. @item To keep up with decreasing computer memory capacity and disk space, many -other functions and files have been eliminated in Emacs 23.4. +other functions and files have been eliminated in Emacs 24.5. @end itemize diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index 5ef9385..ac8988b 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi @@ -221,7 +221,7 @@ Appendices * GNU Free Documentation License:: The license for this documentation. * Emacs Invocation:: Hairy startup options. * X Resources:: X resources for customizing Emacs. -* Antinews:: Information about Emacs version 23. +* Antinews:: Information about Emacs version 24. * Mac OS / GNUstep:: Using Emacs under Mac OS and GNUstep. * Microsoft Windows:: Using Emacs on Microsoft Windows and MS-DOS. * Manifesto:: What's GNU? Gnu's Not Unix! commit 44c7b49d9a8188e8befc85f7e95d074ad4605c6a Author: Stephen Leake Date: Fri Jan 22 01:53:05 2016 -0600 In xref-collect-references, force backends to respect the 'dir' arg * lisp/progmodes/xref.el (xref-collect-references): Force symref backends to use `default-directory'. diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index 2bccd85..d32da37 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -861,7 +861,13 @@ tools are used, and when." (cl-assert (directory-name-p dir)) (require 'semantic/symref) (defvar semantic-symref-tool) - (let* ((default-directory dir) + + ;; Some symref backends use `ede-project-root-directory' as the root + ;; directory for the search, rather than `default-directory'. Since + ;; the caller has specified `dir', we bind `ede-minor-mode' to nil + ;; to force the backend to use `default-directory'. + (let* ((ede-minor-mode nil) + (default-directory dir) (semantic-symref-tool 'detect) (res (semantic-symref-find-references-by-name symbol 'subdirs)) (hits (and res (oref res hit-lines))) commit fb7c5812fb5e082ac92fb2b50e51a252eea5ef90 Author: John Wiegley Date: Thu Jan 21 23:28:50 2016 -0800 Minor correction to pcase docstring diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el index 9d88e87..a2e0524 100644 --- a/lisp/emacs-lisp/pcase.el +++ b/lisp/emacs-lisp/pcase.el @@ -119,7 +119,7 @@ A significant difference from `cl-destructuring-bind' is that, if a pattern match fails, the next case is tried until either a succesful match is found or there are no more cases. -Another difference is that pattern elements may be quoted, +Another difference is that pattern elements may be backquoted, meaning they must match exactly: The pattern (\\='foo \\='bar) matches only against two element lists containing the symbols `foo' and `bar' in that order. (As a short-hand, atoms always @@ -128,9 +128,8 @@ quoted). Lastly, a pattern can be logical, such as (pred numberp), that matches any number-like element; or the symbol `_', that matches -anything. Patterns may also be backquoted (with \\=`), so that -comma (\\=,) can be used to introduce logical patterns inside -quoted patterns. +anything. Also, when patterns are backquoted, a comma may be +used to introduce logical patterns inside backquoted patterns. The complete list of standard patterns is as follows: @@ -148,7 +147,7 @@ The complete list of standard patterns is as follows: (let PAT EXP) matches if EXP matches PAT. (app FUN PAT) matches if FUN applied to the object matches PAT. -Additional patterns may be defined using `pcase-defmacro'. +Additional patterns can be defined using `pcase-defmacro'. The FUN argument in the `app' pattern may have the following forms: SYMBOL or (lambda ARGS BODY) in which case it's called with one argument. commit 4763c774c31deaab83f65a2499a0e39ca4207eeb Author: John Wiegley Date: Thu Jan 21 22:07:19 2016 -0800 Write a new docstring for the pcase macro * lisp/emacs-lisp/pcase.el (pcase): Write a new docstring. diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el index 3b22481..9d88e87 100644 --- a/lisp/emacs-lisp/pcase.el +++ b/lisp/emacs-lisp/pcase.el @@ -107,12 +107,37 @@ ;;;###autoload (defmacro pcase (exp &rest cases) - "Eval EXP and perform ML-style pattern matching on that value. + "Evaluate EXP and attempt to match it against structural patterns. CASES is a list of elements of the form (PATTERN CODE...). -Patterns can take the following forms: +A structural PATTERN describes a template that identifies a class +of values. For example, the pattern (foo bar) matches any two +element list, binding its elements to symbols named `foo' and +`bar' -- in much the same way that `cl-destructuring-bind' would. + +A significant difference from `cl-destructuring-bind' is that, if +a pattern match fails, the next case is tried until either a +succesful match is found or there are no more cases. + +Another difference is that pattern elements may be quoted, +meaning they must match exactly: The pattern (\\='foo \\='bar) +matches only against two element lists containing the symbols +`foo' and `bar' in that order. (As a short-hand, atoms always +match themselves, such as numbers or strings, and need not be +quoted). + +Lastly, a pattern can be logical, such as (pred numberp), that +matches any number-like element; or the symbol `_', that matches +anything. Patterns may also be backquoted (with \\=`), so that +comma (\\=,) can be used to introduce logical patterns inside +quoted patterns. + +The complete list of standard patterns is as follows: + _ matches anything. SYMBOL matches anything and binds it to SYMBOL. + If a SYMBOL is used twice in the same pattern + the second occurrence becomes an `eq'uality test. (or PAT...) matches if any of the patterns matches. (and PAT...) matches if all the patterns match. \\='VAL matches if the object is `equal' to VAL. @@ -122,23 +147,18 @@ Patterns can take the following forms: (guard BOOLEXP) matches if BOOLEXP evaluates to non-nil. (let PAT EXP) matches if EXP matches PAT. (app FUN PAT) matches if FUN applied to the object matches PAT. -If a SYMBOL is used twice in the same pattern (i.e. the pattern is -\"non-linear\"), then the second occurrence is turned into an `eq'uality test. -FUN can take the form +Additional patterns may be defined using `pcase-defmacro'. + +The FUN argument in the `app' pattern may have the following forms: SYMBOL or (lambda ARGS BODY) in which case it's called with one argument. (F ARG1 .. ARGn) in which case F gets called with an n+1'th argument which is the value being matched. -So a FUN of the form SYMBOL is equivalent to one of the form (FUN). +So a FUN of the form SYMBOL is equivalent to (FUN). FUN can refer to variables bound earlier in the pattern. -E.g. you can match pairs where the cdr is larger than the car with a pattern -like \\=`(,a . ,(pred (< a))) or, with more checks: -\\=`(,(and a (pred numberp)) . ,(and (pred numberp) (pred (< a)))) -FUN is assumed to be pure, i.e. it can be dropped if its result is not used, -and two identical calls can be merged into one. - -Additional patterns can be defined via `pcase-defmacro'. -Currently, the following patterns are provided this way:" + +See Info node `(elisp) Pattern matching case statement' in the +Emacs Lisp manual for more information and examples." (declare (indent 1) (debug (form &rest (pcase-PAT body)))) ;; We want to use a weak hash table as a cache, but the key will unavoidably ;; be based on `exp' and `cases', yet `cases' is a fresh new list each time commit 5293d1bdb3e665a565af032a163004c976328cc2 Author: Stephen Berman Date: Thu Jan 21 12:01:12 2016 +0100 Avoid byte-compiler warning in todo-mode (bug#21953) * todo-mode.el (todo-convert-legacy-files): Add limit argument to looking-back to comply with advertised-calling-convention. diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el index ebf0a82..29d8dfc 100644 --- a/lisp/calendar/todo-mode.el +++ b/lisp/calendar/todo-mode.el @@ -4654,13 +4654,15 @@ name in `todo-directory'. See also the documentation string of (goto-char (match-beginning 0)) (goto-char (point-max))) (backward-char) - (when (looking-back "\\[\\([^][]+\\)\\]") + (when (looking-back "\\[\\([^][]+\\)\\]" + (line-beginning-position)) (setq cat (match-string 1)) (goto-char (match-beginning 0)) (replace-match "")) ;; If the item ends with a non-comment parenthesis not ;; followed by a period, we lose (but we inherit that ;; problem from the legacy code). + ;; FIXME: fails on multiline comment (when (looking-back "(\\(.*\\)) " (line-beginning-position)) (setq comment (match-string 1)) (replace-match "") commit 7bc7fd6058a28cdf7da672dc625c6d3f2e50aa1b Author: Stephen Berman Date: Thu Jan 21 11:19:21 2016 +0100 Fix desktop support in todo-mode and doc-view (bug#22377) * lisp/calendar/todo-mode.el (todo-restore-desktop-buffer): * lisp/doc-view.el (doc-view-restore-desktop-buffer): Return current buffer. * lisp/calendar/todo-mode.el (todo-modes-set-2): * lisp/doc-view.el (doc-view-mode): Set desktop-save-buffer unconditionally. diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el index 353ca69..ebf0a82 100644 --- a/lisp/calendar/todo-mode.el +++ b/lisp/calendar/todo-mode.el @@ -5230,7 +5230,8 @@ Also preserve category display, if applicable." (with-current-buffer buffer (widen) (let ((todo-category-number (cdr (assq 'catnum misc)))) - (todo-category-select)))) + (todo-category-select) + (current-buffer)))) (add-to-list 'desktop-buffer-mode-handlers '(todo-mode . todo-restore-desktop-buffer)) @@ -6579,8 +6580,7 @@ Added to `window-configuration-change-hook' in Todo mode." "Make some settings that apply to multiple Todo modes." (add-to-invisibility-spec 'todo) (setq buffer-read-only t) - (when (and (boundp 'desktop-save-mode) desktop-save-mode) - (setq-local desktop-save-buffer 'todo-desktop-save-buffer)) + (setq-local desktop-save-buffer 'todo-desktop-save-buffer) (when (boundp 'hl-line-range-function) (setq-local hl-line-range-function (lambda() (save-excursion diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 2868113..06cf8dc 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el @@ -1714,7 +1714,8 @@ If BACKWARD is non-nil, jump to the previous match." ;; window-parameters in the window-state(s) and then restoring this ;; window-state should call us back (to interpret/use those parameters). (doc-view-goto-page page) - (when slice (apply 'doc-view-set-slice slice))))) + (when slice (apply 'doc-view-set-slice slice)) + (current-buffer)))) (add-to-list 'desktop-buffer-mode-handlers '(doc-view-mode . doc-view-restore-desktop-buffer)) @@ -1788,9 +1789,7 @@ toggle between displaying the document or editing it as text. nil t) (add-hook 'clone-indirect-buffer-hook 'doc-view-clone-buffer-hook nil t) (add-hook 'kill-buffer-hook 'doc-view-kill-proc nil t) - (when (and (boundp 'desktop-save-mode) - desktop-save-mode) - (setq-local desktop-save-buffer 'doc-view-desktop-save-buffer)) + (setq-local desktop-save-buffer 'doc-view-desktop-save-buffer) (remove-overlays (point-min) (point-max) 'doc-view t) ;Just in case. ;; Keep track of display info ([vh]scroll, page number, overlay, commit 871c8b1b96c1cffb84d30dddd484663a0c94818f Author: Paul Eggert Date: Wed Jan 20 15:28:30 2016 -0800 No need to configure gobject-introspection It wasn’t needed for the recently-installed xwidget_mvp code; see: http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg01154.html * configure.ac (DOES_XWIDGETS_USE_GIR, GIR_REQUIRED, GIR_MODULES): (HAVE_GIR): * src/Makefile.in (GIR_LIBS, GIR_CFLAGS): Remove. All uses removed. * configure.ac (emacs_config_features): Don’t worry about GIR. diff --git a/configure.ac b/configure.ac index aac3cf2..b5e6b77 100644 --- a/configure.ac +++ b/configure.ac @@ -2569,7 +2569,6 @@ fi dnl Enable xwidgets if GTK3 and WebKitGTK+ are available. HAVE_XWIDGETS=no XWIDGETS_OBJ= -DOES_XWIDGETS_USE_GIR= if test "$with_xwidgets" != "no"; then test "$USE_GTK_TOOLKIT" = "GTK3" && test "$window_system" != "none" || AC_MSG_ERROR([xwidgets requested but gtk3 not used.]) @@ -2583,15 +2582,6 @@ if test "$with_xwidgets" != "no"; then XWIDGETS_OBJ=xwidget.o AC_DEFINE([HAVE_XWIDGETS], 1, [Define to 1 if you have xwidgets support.]) - - GIR_REQUIRED=1.32.1 - GIR_MODULES="gobject-introspection-1.0 >= $GIR_REQUIRED" - EMACS_CHECK_MODULES([GIR], [$GIR_MODULES]) - if test $HAVE_GIR = yes; then - AC_DEFINE([HAVE_GIR], 1, [Define to 1 if you have GIR support.]) - fi - DOES_XWIDGETS_USE_GIR="\ - Does Xwidgets use gobject introspection? $HAVE_GIR" fi AC_SUBST(XWIDGETS_OBJ) @@ -5251,7 +5241,7 @@ emacs_config_features= for opt in XAW3D XPM JPEG TIFF GIF PNG RSVG CAIRO IMAGEMAGICK SOUND GPM DBUS \ GCONF GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT \ LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS X_TOOLKIT X11 NS MODULES \ - XWIDGETS GIR; do + XWIDGETS; do case $opt in NOTIFY|ACL) eval val=\${${opt}_SUMMARY} ;; @@ -5302,7 +5292,7 @@ AS_ECHO([" Does Emacs use -lXaw3d? ${HAVE_XAW3D Does Emacs have dynamic modules support? ${HAVE_MODULES} Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS} Does Emacs support Xwidgets (requires gtk3)? ${HAVE_XWIDGETS} -${DOES_XWIDGETS_USE_GIR}"]) +"]) if test -n "${EMACSDATA}"; then AS_ECHO([" Environment variable EMACSDATA set to: $EMACSDATA"]) diff --git a/src/Makefile.in b/src/Makefile.in index 2b5ae30..4a52757 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -225,8 +225,6 @@ RSVG_CFLAGS= @RSVG_CFLAGS@ WEBKIT_LIBS= @WEBKIT_LIBS@ WEBKIT_CFLAGS= @WEBKIT_CFLAGS@ -GIR_LIBS= @GIR_LIBS@ -GIR_CFLAGS= @GIR_CFLAGS@ CAIRO_LIBS= @CAIRO_LIBS@ CAIRO_CFLAGS= @CAIRO_CFLAGS@ @@ -366,7 +364,7 @@ ALL_CFLAGS=-Demacs $(MYCPPFLAGS) -I. -I$(srcdir) \ $(GNUSTEP_CFLAGS) $(CFLAGS_SOUND) $(RSVG_CFLAGS) $(IMAGEMAGICK_CFLAGS) \ $(PNG_CFLAGS) $(LIBXML2_CFLAGS) $(DBUS_CFLAGS) \ $(XRANDR_CFLAGS) $(XINERAMA_CFLAGS) $(XFIXES_CFLAGS) \ - $(WEBKIT_CFLAGS) $(GIR_CFLAGS) \ + $(WEBKIT_CFLAGS) \ $(SETTINGS_CFLAGS) $(FREETYPE_CFLAGS) $(FONTCONFIG_CFLAGS) \ $(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) $(DEPFLAGS) \ $(LIBGNUTLS_CFLAGS) $(GFILENOTIFY_CFLAGS) $(CAIRO_CFLAGS) \ @@ -477,7 +475,7 @@ lisp = $(addprefix ${lispsource}/,${shortlisp}) LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUSTEP) $(LIBX_BASE) $(LIBIMAGE) \ $(LIBX_OTHER) $(LIBSOUND) \ $(RSVG_LIBS) $(IMAGEMAGICK_LIBS) $(LIB_ACL) $(LIB_CLOCK_GETTIME) \ - $(WEBKIT_LIBS) $(GIR_LIBS) \ + $(WEBKIT_LIBS) \ $(LIB_EACCESS) $(LIB_FDATASYNC) $(LIB_TIMER_TIME) $(DBUS_LIBS) \ $(LIB_EXECINFO) $(XRANDR_LIBS) $(XINERAMA_LIBS) $(XFIXES_LIBS) \ $(LIBXML2_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) $(CAIRO_LIBS) \ commit 9d7265ba1a3f93e107a88c3fc4b76557e36192b5 Author: Paul Eggert Date: Wed Jan 20 14:55:09 2016 -0800 Don’t export C symbols not used elsewhere These were recently added, mostly as part of xwidget code. * src/emacsgtkfixed.c (emacs_fixed_get_type): Now static. (EMACS_FIXED, EMACS_FIXED_GET_CLASS): Now static functions here, not macros in emacsgtkfixed.h. * src/emacsgtkfixed.h (EMACS_TYPE_FIXED): Remove. All uses replaced by definiens. (EMACS_FIXED, EMACS_FIXED_GET_CLASS): Remove; these are now static functions in emacsgtkfixed.c. (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS): Remove; unused. (emacs_fixed_get_type): Remove decl; no longer extern. * src/xwidget.c (offscreen_damage_event) (webkit_mime_type_policy_typedecision_requested_cb) (webkit_new_window_policy_decision_requested_cb) (webkit_navigation_policy_decision_requested_cb) (xwidget_spec_value, xwidget_view_lookup) (xwidget_start_redisplay, xwidget_touch): Now static. * src/xwidget.h (xwidget_start_redisplay, xwidget_touch): Remove decls. diff --git a/src/emacsgtkfixed.c b/src/emacsgtkfixed.c index da1017d..08b8403 100644 --- a/src/emacsgtkfixed.c +++ b/src/emacsgtkfixed.c @@ -50,10 +50,26 @@ static void emacs_fixed_get_preferred_width (GtkWidget *widget, static void emacs_fixed_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural); + +static GType emacs_fixed_get_type (void); G_DEFINE_TYPE (EmacsFixed, emacs_fixed, GTK_TYPE_FIXED) +static EmacsFixed * +EMACS_FIXED (GtkWidget *widget) +{ + return G_TYPE_CHECK_INSTANCE_CAST (widget, emacs_fixed_get_type (), + EmacsFixed); +} + #ifdef HAVE_XWIDGETS +static EmacsFixedClass * +EMACS_FIXED_GET_CLASS (GtkWidget *widget) +{ + return G_TYPE_INSTANCE_GET_CLASS (widget, emacs_fixed_get_type (), + EmacsFixedClass); +} + struct GtkFixedPrivateL { GList *children; @@ -151,7 +167,7 @@ emacs_fixed_class_init (EmacsFixedClass *klass) static void emacs_fixed_init (EmacsFixed *fixed) { - fixed->priv = G_TYPE_INSTANCE_GET_PRIVATE (fixed, EMACS_TYPE_FIXED, + fixed->priv = G_TYPE_INSTANCE_GET_PRIVATE (fixed, emacs_fixed_get_type (), EmacsFixedPrivate); fixed->priv->f = 0; } @@ -166,7 +182,7 @@ emacs_fixed_init (EmacsFixed *fixed) GtkWidget* emacs_fixed_new (struct frame *f) { - EmacsFixed *fixed = g_object_new (EMACS_TYPE_FIXED, NULL); + EmacsFixed *fixed = g_object_new (emacs_fixed_get_type (), NULL); EmacsFixedPrivate *priv = fixed->priv; priv->f = f; return GTK_WIDGET (fixed); diff --git a/src/emacsgtkfixed.h b/src/emacsgtkfixed.h index 5b2fa56..378bd2b 100644 --- a/src/emacsgtkfixed.h +++ b/src/emacsgtkfixed.h @@ -29,13 +29,6 @@ G_BEGIN_DECLS struct frame; -#define EMACS_TYPE_FIXED (emacs_fixed_get_type ()) -#define EMACS_FIXED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMACS_TYPE_FIXED, EmacsFixed)) -#define EMACS_FIXED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EMACS_TYPE_FIXED, EmacsFixedClass)) -#define EMACS_IS_FIXED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EMACS_TYPE_FIXED)) -#define EMACS_IS_FIXED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EMACS_TYPE_FIXED)) -#define EMACS_FIXED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EMACS_TYPE_FIXED, EmacsFixedClass)) - //typedef struct _EmacsFixed EmacsFixed; typedef struct _EmacsFixedPrivate EmacsFixedPrivate; typedef struct _EmacsFixedClass EmacsFixedClass; @@ -55,7 +48,6 @@ struct _EmacsFixedClass }; extern GtkWidget *emacs_fixed_new (struct frame *f); -extern GType emacs_fixed_get_type (void); G_END_DECLS diff --git a/src/xwidget.c b/src/xwidget.c index f8e13cd..ea5dea0 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -123,14 +123,13 @@ allocate_xwidget_view (void) #define XSETXWIDGET(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_XWIDGET)) #define XSETXWIDGET_VIEW(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_XWIDGET_VIEW)) -struct xwidget_view *xwidget_view_lookup (struct xwidget *, struct window *); -Lisp_Object xwidget_spec_value (Lisp_Object , Lisp_Object , int *); -gboolean offscreen_damage_event (GtkWidget * , GdkEvent * , gpointer ); -void webkit_document_load_finished_cb (WebKitWebView *, WebKitWebFrame *, - gpointer ); -gboolean webkit_download_cb (WebKitWebView *, WebKitDownload *, gpointer); +static struct xwidget_view *xwidget_view_lookup (struct xwidget *, + struct window *); +static void webkit_document_load_finished_cb (WebKitWebView *, WebKitWebFrame *, + gpointer); +static gboolean webkit_download_cb (WebKitWebView *, WebKitDownload *, gpointer); -gboolean +static gboolean webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *, WebKitWebFrame *, WebKitNetworkRequest *, @@ -138,7 +137,7 @@ webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *, WebKitWebPolicyDecision *, gpointer); -gboolean +static gboolean webkit_new_window_policy_decision_requested_cb (WebKitWebView *, WebKitWebFrame *, WebKitNetworkRequest *, @@ -146,7 +145,7 @@ webkit_new_window_policy_decision_requested_cb (WebKitWebView *, WebKitWebPolicyDecision *, gpointer); -gboolean +static gboolean webkit_navigation_policy_decision_requested_cb (WebKitWebView *, WebKitWebFrame *, WebKitNetworkRequest *, @@ -261,8 +260,7 @@ Returns the newly constructed xwidget, or nil if construction fails. */) { g_signal_connect (G_OBJECT (xw->widget_osr), "document-load-finished", - G_CALLBACK - (webkit_document_load_finished_cb), xw); + G_CALLBACK (webkit_document_load_finished_cb), xw); g_signal_connect (G_OBJECT (xw->widget_osr), "download-requested", @@ -352,7 +350,7 @@ xwidget_hide_view (struct xwidget_view *xv) /* When the off-screen webkit master view changes this signal is called. It copies the bitmap from the off-screen instance. */ -gboolean +static gboolean offscreen_damage_event (GtkWidget * widget, GdkEvent * event, gpointer xv_widget) { @@ -415,7 +413,7 @@ webkit_download_cb (WebKitWebView * webkitwebview, return FALSE; } -gboolean +static gboolean webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *webView, WebKitWebFrame *frame, WebKitNetworkRequest * request, @@ -438,7 +436,7 @@ webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *webView, } -gboolean +static gboolean webkit_new_window_policy_decision_requested_cb (WebKitWebView *webView, WebKitWebFrame *frame, WebKitNetworkRequest *request, @@ -456,7 +454,7 @@ webkit_new_window_policy_decision_requested_cb (WebKitWebView *webView, return FALSE; } -gboolean +static gboolean webkit_navigation_policy_decision_requested_cb (WebKitWebView *webView, WebKitWebFrame *frame, WebKitNetworkRequest *request, @@ -1138,7 +1136,7 @@ valid_xwidget_spec_p (Lisp_Object object) /* Find a value associated with key in spec. */ -Lisp_Object +static Lisp_Object xwidget_spec_value (Lisp_Object spec, Lisp_Object key, int *found) { Lisp_Object tail; @@ -1180,7 +1178,7 @@ xwidget_view_delete_all_in_window (struct window *w) } } -struct xwidget_view * +static struct xwidget_view * xwidget_view_lookup (struct xwidget *xw, struct window *w) { Lisp_Object xwidget, window, ret; @@ -1210,7 +1208,7 @@ lookup_xwidget (Lisp_Object spec) } /* Set up detection of touched xwidget */ -void +static void xwidget_start_redisplay (void) { for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); @@ -1223,7 +1221,7 @@ xwidget_start_redisplay (void) /* The xwidget was touched during redisplay, so it isn't a candidate for hiding. */ -void +static void xwidget_touch (struct xwidget_view *xv) { xv->redisplayed = 1; diff --git a/src/xwidget.h b/src/xwidget.h index 4dffaa4..fdcf40d 100644 --- a/src/xwidget.h +++ b/src/xwidget.h @@ -121,11 +121,8 @@ struct xwidget_type struct xwidget *xwidget_from_id (int id); -void xwidget_start_redisplay (void); void xwidget_end_redisplay (struct window *w, struct glyph_matrix *matrix); -void xwidget_touch (struct xwidget_view *xw); - struct xwidget *lookup_xwidget (Lisp_Object spec); #define XG_XWIDGET "emacs_xwidget" #define XG_XWIDGET_VIEW "emacs_xwidget_view" commit 6a9399f7fd3ea6f4eaa0c6ceee92308553fadd39 Author: Dmitry Gutov Date: Thu Jan 21 00:26:05 2016 +0300 Support squiggly heredocs in ruby-mode * lisp/progmodes/ruby-mode.el (ruby-here-doc-beg-re): Support squiggly heredocs added in Ruby 2.3. * test/indent/ruby.rb: Add squiggly example. diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 53f8a6b..e3fe315 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -102,7 +102,7 @@ (eval-and-compile (defconst ruby-here-doc-beg-re - "\\(<\\)<\\(-\\)?\\(\\([a-zA-Z0-9_]+\\)\\|[\"]\\([^\"]+\\)[\"]\\|[']\\([^']+\\)[']\\)" + "\\(<\\)<\\([~-]\\)?\\(\\([a-zA-Z0-9_]+\\)\\|[\"]\\([^\"]+\\)[\"]\\|[']\\([^']+\\)[']\\)" "Regexp to match the beginning of a heredoc.") (defconst ruby-expression-expansion-re diff --git a/test/indent/ruby.rb b/test/indent/ruby.rb index dec6de9..dfd1c75 100644 --- a/test/indent/ruby.rb +++ b/test/indent/ruby.rb @@ -4,6 +4,10 @@ if something_wrong? # ruby-move-to-block-skips-heredoc end eowarn foo + + foo(<<~squiggly) + end + squiggly end def foo commit 4db94245d014d12ca2964d4c15c31ec3f8dabb76 Author: Glenn Morris Date: Wed Jan 20 14:50:02 2016 -0500 * configure.ac (emacs_config_features): Remove WEBKIT. diff --git a/configure.ac b/configure.ac index a344b28..aac3cf2 100644 --- a/configure.ac +++ b/configure.ac @@ -5251,7 +5251,7 @@ emacs_config_features= for opt in XAW3D XPM JPEG TIFF GIF PNG RSVG CAIRO IMAGEMAGICK SOUND GPM DBUS \ GCONF GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT \ LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS X_TOOLKIT X11 NS MODULES \ - XWIDGETS WEBKIT GIR; do + XWIDGETS GIR; do case $opt in NOTIFY|ACL) eval val=\${${opt}_SUMMARY} ;; commit 2388fa74982a9146e4bcefc75004ec9d7241c505 Author: Paul Eggert Date: Wed Jan 20 11:06:01 2016 -0800 Port to platforms with gtk3 but not webkitgtk3 I ran into this problem on my Fedora 23 installation; Emacs configured but did not build when --with-xwidgets was specified. * configure.ac (HAVE_WEBKIT, HAVE_GIR): Omit unnecessary initializations. (DOES_XWIDGETS_USE_GIR): New var. If --with-xwidgets is specified, report an error if not doable, to be consistent with the other --with options. Require webkitgtk3 to use Xwidgets, as the Xwidgets code does not work at all without webkitgtk3. Simplify use of EMACS_CHECK_MODULES. Output message about gobject introspection only if xwidgets are used. * etc/NEWS: Users need webkitgtk3, not merely webkit. * src/xwidget.c (syms_of_xwidget): Don’t worry about HAVE_WEBKIT_OSR, since this file is no longer compiled if webkitgtk3 is not available. diff --git a/configure.ac b/configure.ac index 3b87fad..a344b28 100644 --- a/configure.ac +++ b/configure.ac @@ -2566,35 +2566,32 @@ if test "${HAVE_GTK}" = "yes"; then fi +dnl Enable xwidgets if GTK3 and WebKitGTK+ are available. HAVE_XWIDGETS=no -HAVE_WEBKIT=no -HAVE_GIR=no XWIDGETS_OBJ= -if test "$with_xwidgets" != "no" && test "$USE_GTK_TOOLKIT" = "GTK3" && - test "$window_system" != "none" -then - HAVE_XWIDGETS=yes - AC_DEFINE([HAVE_XWIDGETS], 1, [Define to 1 if you have xwidgets support.]) +DOES_XWIDGETS_USE_GIR= +if test "$with_xwidgets" != "no"; then + test "$USE_GTK_TOOLKIT" = "GTK3" && test "$window_system" != "none" || + AC_MSG_ERROR([xwidgets requested but gtk3 not used.]) - dnl xwidgets - dnl - enable only if GTK3 is enabled, and we have a window system - dnl - check for webkit and gobject introspection - dnl webkit version for gtk3. WEBKIT_REQUIRED=1.4.0 WEBKIT_MODULES="webkitgtk-3.0 >= $WEBKIT_REQUIRED" + EMACS_CHECK_MODULES([WEBKIT], [$WEBKIT_MODULES]) + HAVE_XWIDGETS=$HAVE_WEBKIT + test $HAVE_XWIDGETS = yes || + AC_MSG_ERROR([xwidgets requested but WebKitGTK+ not found.]) - EMACS_CHECK_MODULES(WEBKIT, $WEBKIT_MODULES, HAVE_WEBKIT=yes, HAVE_WEBKIT=no) - if test $HAVE_WEBKIT = yes; then - AC_DEFINE([HAVE_WEBKIT_OSR], 1, [Define to 1 if you have webkit_osr support.]) - fi + XWIDGETS_OBJ=xwidget.o + AC_DEFINE([HAVE_XWIDGETS], 1, [Define to 1 if you have xwidgets support.]) GIR_REQUIRED=1.32.1 GIR_MODULES="gobject-introspection-1.0 >= $GIR_REQUIRED" - EMACS_CHECK_MODULES(GIR, $GIR_MODULES, HAVE_GIR=yes, HAVE_GIR=no) + EMACS_CHECK_MODULES([GIR], [$GIR_MODULES]) if test $HAVE_GIR = yes; then AC_DEFINE([HAVE_GIR], 1, [Define to 1 if you have GIR support.]) fi - XWIDGETS_OBJ=xwidget.o + DOES_XWIDGETS_USE_GIR="\ + Does Xwidgets use gobject introspection? $HAVE_GIR" fi AC_SUBST(XWIDGETS_OBJ) @@ -5305,9 +5302,7 @@ AS_ECHO([" Does Emacs use -lXaw3d? ${HAVE_XAW3D Does Emacs have dynamic modules support? ${HAVE_MODULES} Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS} Does Emacs support Xwidgets (requires gtk3)? ${HAVE_XWIDGETS} - Does xwidgets support webkit? ${HAVE_WEBKIT} - Does xwidgets support gobject introspection? ${HAVE_GIR} -"]) +${DOES_XWIDGETS_USE_GIR}"]) if test -n "${EMACSDATA}"; then AS_ECHO([" Environment variable EMACSDATA set to: $EMACSDATA"]) diff --git a/etc/NEWS b/etc/NEWS index 934bc3f..06b32ce 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -121,7 +121,7 @@ and can contain escape sequences for command keys, quotes, and the like. * Changes in Emacs 25.1 ** Xwidgets: a new feature for embedding native widgets inside Emacs buffers. -If you have gtk3 and webkit-devel installed, you can access the +If you have gtk3 and webkitgtk3 installed, you can access the embedded webkit browser with `M-x xwidget-webkit-browse-url'. This opens a new buffer with the embedded browser. The buffer will have a new mode, `xwidget-webkit-mode' (similar to `image-mode'), diff --git a/src/xwidget.c b/src/xwidget.c index 88cdb94..f8e13cd 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -1077,12 +1077,10 @@ syms_of_xwidget (void) defsubr (&Sxwidget_query_on_exit_flag); defsubr (&Sset_xwidget_query_on_exit_flag); -#ifdef HAVE_WEBKIT_OSR defsubr (&Sxwidget_webkit_goto_uri); defsubr (&Sxwidget_webkit_execute_script); defsubr (&Sxwidget_webkit_get_title); DEFSYM (Qwebkit_osr, "webkit-osr"); -#endif defsubr (&Sxwidget_size_request); defsubr (&Sdelete_xwidget_view); commit 65575c24aaad9bedf6b84cc062cc03fbe4dd1315 Author: Eli Zaretskii Date: Wed Jan 20 15:09:09 2016 +0200 Fix doc string of 'isearch-search-fun-function' * lisp/isearch.el (isearch-search-fun-function) (isearch-search-string): Doc fixes. (Bug#22411) diff --git a/lisp/isearch.el b/lisp/isearch.el index e636ccc..c36f463 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -2647,10 +2647,11 @@ the word mode." "Non-default value overrides the behavior of `isearch-search-fun-default'. This variable's value should be a function, which will be called with no arguments, and should return a function that takes three -arguments: STRING, BOUND, and NOERROR. +arguments: STRING, BOUND, and NOERROR. See `re-search-forward' +for the meaning of BOUND and NOERROR arguments. This returned function will be used by `isearch-search-string' to -search for the first occurrence of STRING or its translation.") +search for the first occurrence of STRING.") (defun isearch-search-fun () "Return the function to use for the search. @@ -2695,8 +2696,14 @@ Can be changed via `isearch-search-fun-function' for special needs." (defun isearch-search-string (string bound noerror) "Search for the first occurrence of STRING or its translation. +STRING's characters are translated using `translation-table-for-input' +if that is non-nil. If found, move point to the end of the occurrence, -update the match data, and return point." +update the match data, and return point. +An optional second argument bounds the search; it is a buffer position. +The match found must not extend after that position. +Optional third argument, if t, means if fail just return nil (no error). + If not nil and not t, move to limit of search and return nil." (let* ((func (isearch-search-fun)) (pos1 (save-excursion (funcall func string bound noerror))) pos2) commit c5ee6de21d4bd0562d811129e2ef7c0419a882a1 Author: Stefan Monnier Date: Tue Jan 19 20:53:10 2016 -0500 * lisp/xwidget.el: Nitpicks * lisp/xwidget.el (xwidget-log, xwidget-webkit-callback): Use with-current-buffer rather than save-excursion + set-buffer. diff --git a/lisp/xwidget.el b/lisp/xwidget.el index 0fb90c4..f184eb3 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -79,7 +79,7 @@ Optional argument ARGS usage depends on the xwidget." ;; protected yet and xwidgetp apparently doesn't work yet. (let* ((disp (get-text-property pos 'display)) (xw (car (cdr (cdr disp))))) - ;;(if ( xwidgetp xw) xw nil) + ;;(if (xwidgetp xw) xw nil) (if (equal 'xwidget (car disp)) xw))) @@ -97,7 +97,7 @@ defaults to the string looking like a url around the cursor position." (interactive (progn (require 'browse-url) (browse-url-interactive-arg "xwidget-webkit URL: " - ;;( xwidget-webkit-current-url) + ;;(xwidget-webkit-current-url) ))) (when (stringp url) (if new-session @@ -110,9 +110,9 @@ defaults to the string looking like a url around the cursor position." (let ((map (make-sparse-keymap))) (define-key map "g" 'xwidget-webkit-browse-url) (define-key map "a" 'xwidget-webkit-adjust-size-dispatch) - (define-key map "b" 'xwidget-webkit-back ) - (define-key map "r" 'xwidget-webkit-reload ) - (define-key map "t" (lambda () (interactive) (message "o")) ) + (define-key map "b" 'xwidget-webkit-back) + (define-key map "r" 'xwidget-webkit-reload) + (define-key map "t" (lambda () (interactive) (message "o"))) ;FIXME: ?!? (define-key map "\C-m" 'xwidget-webkit-insert-string) (define-key map "w" 'xwidget-webkit-current-url) @@ -172,14 +172,12 @@ defaults to the string looking like a url around the cursor position." ;; The xwidget event needs to go into a higher level handler ;; since the xwidget can generate an event even if it's offscreen. ;; TODO this needs to use callbacks and consider different xwidget event types. -(define-key (current-global-map) [xwidget-event] 'xwidget-event-handler) -(defun xwidget-log ( &rest msg) +(define-key (current-global-map) [xwidget-event] #'xwidget-event-handler) +(defun xwidget-log (&rest msg) "Log MSG to a buffer." - (let ( (buf (get-buffer-create "*xwidget-log*"))) - (save-excursion - (buffer-disable-undo buf) - (set-buffer buf) - (insert (apply 'format msg)) + (let ((buf (get-buffer-create " *xwidget-log*"))) + (with-current-buffer buf + (insert (apply #'format msg)) (insert "\n")))) (defun xwidget-event-handler () @@ -199,44 +197,43 @@ defaults to the string looking like a url around the cursor position." (defun xwidget-webkit-callback (xwidget xwidget-event-type) "Callback for xwidgets. XWIDGET instance, XWIDGET-EVENT-TYPE depends on the originating xwidget." - (save-excursion - (cond ((buffer-live-p (xwidget-buffer xwidget)) - (set-buffer (xwidget-buffer xwidget)) - (let* ((strarg (nth 3 last-input-event))) - (cond ((eq xwidget-event-type 'document-load-finished) - (xwidget-log "webkit finished loading: '%s'" - (xwidget-webkit-get-title xwidget)) - ;;TODO - check the native/internal scroll - ;;(xwidget-adjust-size-to-content xwidget) - (xwidget-webkit-adjust-size-dispatch) ;;TODO xwidget arg - (rename-buffer (format "*xwidget webkit: %s *" - (xwidget-webkit-get-title xwidget))) - (pop-to-buffer (current-buffer))) - ((eq xwidget-event-type - 'navigation-policy-decision-requested) - (if (string-match ".*#\\(.*\\)" strarg) - (xwidget-webkit-show-id-or-named-element - xwidget - (match-string 1 strarg)))) - (t (xwidget-log "unhandled event:%s" xwidget-event-type))))) - (t (xwidget-log - "error: callback called for xwidget with dead buffer"))))) + (if (not (buffer-live-p (xwidget-buffer xwidget))) + (xwidget-log + "error: callback called for xwidget with dead buffer") + (with-current-buffer (xwidget-buffer xwidget) + (let* ((strarg (nth 3 last-input-event))) + (cond ((eq xwidget-event-type 'document-load-finished) + (xwidget-log "webkit finished loading: '%s'" + (xwidget-webkit-get-title xwidget)) + ;;TODO - check the native/internal scroll + ;;(xwidget-adjust-size-to-content xwidget) + (xwidget-webkit-adjust-size-dispatch) ;;TODO xwidget arg + (rename-buffer (format "*xwidget webkit: %s *" + (xwidget-webkit-get-title xwidget))) + (pop-to-buffer (current-buffer))) + ((eq xwidget-event-type + 'navigation-policy-decision-requested) + (if (string-match ".*#\\(.*\\)" strarg) + (xwidget-webkit-show-id-or-named-element + xwidget + (match-string 1 strarg)))) + (t (xwidget-log "unhandled event:%s" xwidget-event-type))))))) (defvar bookmark-make-record-function) (define-derived-mode xwidget-webkit-mode - special-mode "xwidget-webkit" "xwidget webkit view mode" - (setq buffer-read-only t) - (setq-local bookmark-make-record-function - #'xwidget-webkit-bookmark-make-record) - ;; Keep track of [vh]scroll when switching buffers - (image-mode-setup-winprops)) + special-mode "xwidget-webkit" "Xwidget webkit view mode." + (setq buffer-read-only t) + (setq-local bookmark-make-record-function + #'xwidget-webkit-bookmark-make-record) + ;; Keep track of [vh]scroll when switching buffers + (image-mode-setup-winprops)) (defun xwidget-webkit-bookmark-make-record () -"Integrate Emacs bookmarks with the webkit xwidget." + "Integrate Emacs bookmarks with the webkit xwidget." (nconc (bookmark-make-record-default t t) `((page . ,(xwidget-webkit-current-url)) (handler . (lambda (bmk) (browse-url - (bookmark-prop-get bmk 'page))))))) + (bookmark-prop-get bmk 'page))))))) (defvar xwidget-webkit-last-session-buffer nil) @@ -256,7 +253,7 @@ The latter might be nil." (defun xwidget-adjust-size-to-content (xw) "Resize XW to content." ;; xwidgets doesn't support widgets that have their own opinions about - ;; size well, yet this reads the desired size and resizes the emacs + ;; size well, yet this reads the desired size and resizes the Emacs ;; allocated area accordingly. (let ((size (xwidget-size-request xw))) (xwidget-resize xw (car size) (cadr size)))) @@ -307,10 +304,10 @@ Argument STR string." (xwidget-webkit-execute-script xww xwidget-webkit-activeelement-js) (xwidget-webkit-execute-script-rv xww - "findactiveelement(document).value;" ))) + "findactiveelement(document).value;"))) (field-type (xwidget-webkit-execute-script-rv xww - "findactiveelement(document).type;" ))) + "findactiveelement(document).type;"))) (list xww (cond ((equal "text" field-type) (read-string "text:" field-value)) @@ -333,7 +330,7 @@ XW is the xwidget identifier, TEXT is retrieved from the webkit." (insert text)) (defun xwidget-webkit-end-edit-textarea () - "End editing of a webkit text area." + "End editing of a webkit text area." (interactive) (goto-char (point-min)) (while (search-forward "\n" nil t) @@ -369,7 +366,7 @@ Argument ELEMENT-NAME is the element name to display in the webkit xwidget." "document.getElementsByName('%s')[0].getBoundingClientRect().top" element-name) 0)))) - ;; Now we need to tell emacs to scroll the element into view. + ;; Now we need to tell Emacs to scroll the element into view. (xwidget-log "scroll: %d" y) (set-window-vscroll (selected-window) y t))) @@ -385,7 +382,7 @@ Argument ELEMENT-ID is the id of the element to show." (format "document.getElementById('%s').getBoundingClientRect().top" element-id) 0)))) - ;; Now we need to tell emacs to scroll the element into view. + ;; Now we need to tell Emacs to scroll the element into view. (xwidget-log "scroll: %d" y) (set-window-vscroll (selected-window) y t))) @@ -404,9 +401,9 @@ Argument ELEMENT-ID is either a name or an element id." (xwidget-webkit-execute-script-rv xw (format "document.getElementById('%s').getBoundingClientRect().top" element-id) - "0"))) + "0"))) (y3 (max y1 y2))) - ;; Now we need to tell emacs to scroll the element into view. + ;; Now we need to tell Emacs to scroll the element into view. (xwidget-log "scroll: %d" y3) (set-window-vscroll (selected-window) y3 t))) @@ -431,7 +428,7 @@ Argument ELEMENT-ID is either a name or an element id." (defun xwidget-webkit-adjust-size-to-window () "Adjust webkit to window." (interactive) - (xwidget-resize ( xwidget-webkit-current-session) (window-pixel-width) + (xwidget-resize (xwidget-webkit-current-session) (window-pixel-width) (window-pixel-height))) (defun xwidget-webkit-adjust-size (w h) @@ -440,7 +437,7 @@ Argument W width. Argument H height." ;; TODO shouldn't be tied to the webkit xwidget (interactive "nWidth:\nnHeight:\n") - (xwidget-resize ( xwidget-webkit-current-session) w h)) + (xwidget-resize (xwidget-webkit-current-session) w h)) (defun xwidget-webkit-fit-width () "Adjust width of webkit to window width." @@ -460,7 +457,7 @@ Argument H height." (setq xw (xwidget-insert 1 'webkit-osr bufname 1000 1000)) (xwidget-put xw 'callback 'xwidget-webkit-callback) (xwidget-webkit-mode) - (xwidget-webkit-goto-uri (xwidget-webkit-last-session) url ))) + (xwidget-webkit-goto-uri (xwidget-webkit-last-session) url))) (defun xwidget-webkit-goto-url (url) @@ -488,7 +485,7 @@ Argument H height." (let* ((rv (xwidget-webkit-execute-script-rv (xwidget-webkit-current-session) "document.URL")) (url (kill-new (or rv "")))) - (message "url: %s" url ) + (message "url: %s" url) url)) (defun xwidget-webkit-execute-script-rv (xw script &optional default) @@ -565,23 +562,19 @@ It can be retrieved with `(xwidget-get XWIDGET PROPNAME)'." ;; Redraw display otherwise ghost of zombies will remain to haunt the screen (redraw-display)) -;; This would have felt better in C, but this seems to work well in -;; practice though. -(if (featurep 'xwidget-internal) - (add-hook 'window-configuration-change-hook 'xwidget-delete-zombies)) - (defun xwidget-kill-buffer-query-function () "Ask before killing a buffer that has xwidgets." (let ((xwidgets (get-buffer-xwidgets (current-buffer)))) (or (not xwidgets) - (not (memq t (mapcar 'xwidget-query-on-exit-flag xwidgets))) + (not (memq t (mapcar #'xwidget-query-on-exit-flag xwidgets))) (yes-or-no-p - (format "Buffer %S has xwidgets; kill it? " - (buffer-name (current-buffer))))))) + (format "Buffer %S has xwidgets; kill it? " (buffer-name)))))) -(if (featurep 'xwidget-internal) - (add-hook 'kill-buffer-query-functions 'xwidget-kill-buffer-query-function)) +(when (featurep 'xwidget-internal) + (add-hook 'kill-buffer-query-functions #'xwidget-kill-buffer-query-function) + ;; This would have felt better in C, but this seems to work well in + ;; practice though. + (add-hook 'window-configuration-change-hook #'xwidget-delete-zombies)) (provide 'xwidget) - ;;; xwidget.el ends here commit 96f6cace6bd088c8a49892502354272eb9d1a702 Author: Glenn Morris Date: Tue Jan 19 19:09:45 2016 -0500 Don't hard-code 1 as point-min. * lisp/image-mode.el (image-display-size): * lisp/xwidget.el (xwidget-webkit-last-session) (xwidget-webkit-current-session): Don't hard-code 1 as point-min. diff --git a/lisp/image-mode.el b/lisp/image-mode.el index 38a25d2..e549b49 100644 --- a/lisp/image-mode.el +++ b/lisp/image-mode.el @@ -169,7 +169,7 @@ return the display size taking the slice property into account. If the list contains `image' but not `slice', return the `image-size' of the specified image." (cond ((eq (car spec) 'xwidget) - (let ((xwi (xwidget-info (xwidget-at 1)))) ; FIXME point-min? + (let ((xwi (xwidget-info (xwidget-at (point-min))))) (cons (aref xwi 2) (aref xwi 3)))) ((eq (car spec) 'image) (image-size spec pixels frame)) diff --git a/lisp/xwidget.el b/lisp/xwidget.el index 223f4f2..0fb90c4 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -245,15 +245,13 @@ XWIDGET instance, XWIDGET-EVENT-TYPE depends on the originating xwidget." "Last active webkit, or nil." (if (buffer-live-p xwidget-webkit-last-session-buffer) (with-current-buffer xwidget-webkit-last-session-buffer - (xwidget-at 1)) + (xwidget-at (point-min))) nil)) (defun xwidget-webkit-current-session () "Either the webkit in the current buffer, or the last one used. The latter might be nil." - (if (xwidget-at 1) - (xwidget-at 1) - (xwidget-webkit-last-session))) + (or (xwidget-at (point-min)) (xwidget-webkit-last-session))) (defun xwidget-adjust-size-to-content (xw) "Resize XW to content." commit 833d53b98bb3ea037fb15d2bac855a47fa00639d Author: Glenn Morris Date: Tue Jan 19 19:06:32 2016 -0500 ; * lisp/xwidget.el: Spelling fixes. diff --git a/lisp/xwidget.el b/lisp/xwidget.el index f2c79af..223f4f2 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -23,9 +23,9 @@ ;;; Commentary: ;; -;; See xwidget.c for more api functions +;; See xwidget.c for more api functions. -;;TODO this breaks compilation when we dont have xwidgets +;; TODO this breaks compilation when we don't have xwidgets. ;;(require 'xwidget-internal) ;;; Code: @@ -75,8 +75,8 @@ Optional argument ARGS usage depends on the xwidget." (defun xwidget-at (pos) "Return xwidget at POS." - ;;TODO this function is a bit tedious because the C layer isnt well - ;;protected yet and xwidgetp aparently doesnt work yet + ;; TODO this function is a bit tedious because the C layer isn't well + ;; protected yet and xwidgetp apparently doesn't work yet. (let* ((disp (get-text-property pos 'display)) (xw (car (cdr (cdr disp))))) ;;(if ( xwidgetp xw) xw nil) @@ -169,9 +169,9 @@ defaults to the string looking like a url around the cursor position." (xwidget-webkit-scroll-backward))) -;;the xwidget event needs to go into a higher level handler -;;since the xwidget can generate an event even if its offscreen -;;TODO this needs to use callbacks and consider different xw ev types +;; The xwidget event needs to go into a higher level handler +;; since the xwidget can generate an event even if it's offscreen. +;; TODO this needs to use callbacks and consider different xwidget event types. (define-key (current-global-map) [xwidget-event] 'xwidget-event-handler) (defun xwidget-log ( &rest msg) "Log MSG to a buffer." @@ -241,7 +241,7 @@ XWIDGET instance, XWIDGET-EVENT-TYPE depends on the originating xwidget." (defvar xwidget-webkit-last-session-buffer nil) -(defun xwidget-webkit-last-session () +(defun xwidget-webkit-last-session () "Last active webkit, or nil." (if (buffer-live-p xwidget-webkit-last-session-buffer) (with-current-buffer xwidget-webkit-last-session-buffer @@ -249,17 +249,17 @@ XWIDGET instance, XWIDGET-EVENT-TYPE depends on the originating xwidget." nil)) (defun xwidget-webkit-current-session () - "Either the webkit in the current buffer, or the last one used, -which might be nil." + "Either the webkit in the current buffer, or the last one used. +The latter might be nil." (if (xwidget-at 1) (xwidget-at 1) (xwidget-webkit-last-session))) (defun xwidget-adjust-size-to-content (xw) "Resize XW to content." - ;;xwidgets doesnt support widgets that have their own opinions about - ;;size well yet this reads the desired size and resizes the emacs - ;;allocated area accordingly + ;; xwidgets doesn't support widgets that have their own opinions about + ;; size well, yet this reads the desired size and resizes the emacs + ;; allocated area accordingly. (let ((size (xwidget-size-request xw))) (xwidget-resize xw (car size) (cadr size)))) @@ -288,9 +288,9 @@ function findactiveelement(doc){ " "javascript that finds the active element." - ;;yes its ugly. because: - ;; - there is aparently no way to find the active frame other than recursion - ;; - the js "for each" construct missbehaved on the "frames" collection + ;; Yes it's ugly, because: + ;; - there is apparently no way to find the active frame other than recursion + ;; - the js "for each" construct misbehaved on the "frames" collection ;; - a window with no frameset still has frames.length == 1, but ;; frames[0].document.activeElement != document.activeElement ;;TODO the activeelement type needs to be examined, for iframe, etc. @@ -300,7 +300,7 @@ function findactiveelement(doc){ "Insert string in the active field in the webkit. Argument XW webkit. Argument STR string." - ;;read out the string in the field first and provide for edit + ;; Read out the string in the field first and provide for edit. (interactive (let* ((xww (xwidget-webkit-current-session)) @@ -359,7 +359,7 @@ Argument ELEMENT-NAME is the element name to display in the webkit xwidget." ;; This function implements a proof-of-concept for this. Problems ;; remaining: - The selected window is scrolled but this is not ;; always correct - This needs to be interfaced into browse-url - ;; somehow. the tricky part is that we need to do this in two steps: + ;; somehow. The tricky part is that we need to do this in two steps: ;; A: load the base url, wait for load signal to arrive B: navigate ;; to the anchor when the base url is finished rendering @@ -424,8 +424,8 @@ Argument ELEMENT-ID is either a name or an element id." (xwidget-webkit-adjust-size-to-window) (xwidget-webkit-adjust-size-to-content)) ;; The recenter is intended to correct a visual glitch. - ;; It errors out if the buffer isn't visible, but then we dont get the glitch, - ;; so silence errors + ;; It errors out if the buffer isn't visible, but then we don't get + ;; the glitch, so silence errors. (ignore-errors (recenter-top-bottom)) ) @@ -437,7 +437,7 @@ Argument ELEMENT-ID is either a name or an element id." (window-pixel-height))) (defun xwidget-webkit-adjust-size (w h) - "Manualy set webkit size. + "Manually set webkit size. Argument W width. Argument H height." ;; TODO shouldn't be tied to the webkit xwidget @@ -495,15 +495,15 @@ Argument H height." (defun xwidget-webkit-execute-script-rv (xw script &optional default) "Same as 'xwidget-webkit-execute-script' but but with return value. -XW is the webkit instance. SCRIPT is the script to execut. +XW is the webkit instance. SCRIPT is the script to execute. DEFAULT is the defaultreturn value." ;; Notice the ugly "title" hack. It is needed because the Webkit ;; API at the time of writing didn't support returning values. This - ;; is a wrapper for the title hack so its easy to remove should + ;; is a wrapper for the title hack so it's easy to remove should ;; Webkit someday support JS return values or we find some other way ;; to access the DOM. - ;; Reset webkit title. Not very nice. + ;; Reset webkit title. Not very nice. (let* ((emptytag "titlecantbewhitespaceohthehorror") title) (xwidget-webkit-execute-script xw (format "document.title=\"%s\";" @@ -529,7 +529,7 @@ DEFAULT is the defaultreturn value." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Xwidget plist management(similar to the process plist functions) +;; Xwidget plist management (similar to the process plist functions) (defun xwidget-get (xwidget propname) "Return the value of XWIDGET' PROPNAME property. @@ -562,7 +562,7 @@ It can be retrieved with `(xwidget-get XWIDGET PROPNAME)'." ;; xwidget instances. ;; This function tries to implement a workaround should it occur again. (interactive) - ;; Kill xviews who should have been deleted but stull linger. + ;; Kill xviews that should have been deleted but still linger. (xwidget-delete-zombies) ;; Redraw display otherwise ghost of zombies will remain to haunt the screen (redraw-display)) @@ -573,7 +573,7 @@ It can be retrieved with `(xwidget-get XWIDGET PROPNAME)'." (add-hook 'window-configuration-change-hook 'xwidget-delete-zombies)) (defun xwidget-kill-buffer-query-function () - "Ask beforek illing a buffer that has xwidgets." + "Ask before killing a buffer that has xwidgets." (let ((xwidgets (get-buffer-xwidgets (current-buffer)))) (or (not xwidgets) (not (memq t (mapcar 'xwidget-query-on-exit-flag xwidgets))) commit c9471132c329cffd24db2cedea339e58bea70920 Author: Glenn Morris Date: Tue Jan 19 18:44:29 2016 -0500 * lisp/xwidget.el: Add declarations to silence non-xwidget compilation. diff --git a/lisp/xwidget.el b/lisp/xwidget.el index 41e2c1c..f2c79af 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -40,6 +40,23 @@ :group 'frames ; TODO add xwidgets group if more options are added :type '(choice (const native) (const image))) +(declare-function make-xwidget "xwidget.c" + (beg end type title width height arguments &optional buffer)) +(declare-function xwidget-set-adjustment "xwidget.c" + (xwidget axis relative value)) +(declare-function xwidget-buffer "xwidget.c" (xwidget)) +(declare-function xwidget-webkit-get-title "xwidget.c" (xwidget)) +(declare-function xwidget-size-request "xwidget.c" (xwidget)) +(declare-function xwidget-resize "xwidget.c" (xwidget new-width new-height)) +(declare-function xwidget-webkit-execute-script "xwidget.c" (xwidget script)) +(declare-function xwidget-webkit-goto-uri "xwidget.c" (xwidget uri)) +(declare-function xwidget-plist "xwidget.c" (xwidget)) +(declare-function set-xwidget-plist "xwidget.c" (xwidget plist)) +(declare-function xwidget-view-window "xwidget.c" (xwidget-view)) +(declare-function xwidget-view-model "xwidget.c" (xwidget-view)) +(declare-function delete-xwidget-view "xwidget.c" (xwidget-view)) +(declare-function get-buffer-xwidgets "xwidget.c" (buffer)) + (defun xwidget-insert (pos type title width height &optional args) "Insert an xwidget at POS. given ID, TYPE, TITLE WIDTH and @@ -499,11 +516,6 @@ DEFAULT is the defaultreturn value." (setq title default)) title)) - -;; Use declare here? -;; (declare-function xwidget-resize-internal "xwidget.c" ) -;; check-declare-function? - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun xwidget-webkit-get-selection () "Get the webkit selection." @@ -533,6 +545,9 @@ It can be retrieved with `(xwidget-get XWIDGET PROPNAME)'." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defvar xwidget-view-list) ; xwidget.c +(defvar xwidget-list) ; xwidget.c + (defun xwidget-delete-zombies () "Helper for `xwidget-cleanup'." (dolist (xwidget-view xwidget-view-list) commit ea415382786305179ec9bd2ca88d7caccd09f63a Author: Glenn Morris Date: Tue Jan 19 18:42:47 2016 -0500 Trivial doc copyedits. * src/xwidget.c (Fmake_xwidget, Fget_buffer_xwidgets) (Fxwidget_webkit_get_title, Fxwidget_resize) (Fxwidget_set_adjustment, Fxwidgetp, Fxwidget_view_p) (Fxwidget_info, Fxwidget_view_lookup) (Fset_xwidget_query_on_exit_flag): Trivial doc copyedits. diff --git a/src/xwidget.c b/src/xwidget.c index 1ed7eaa..88cdb94 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -160,18 +160,13 @@ DEFUN ("make-xwidget", Fmake_xwidget, Smake_xwidget, 7, 8, 0, doc: /* Make an xwidget from BEG to END of TYPE. - -If BUFFER is nil it uses the current -buffer. If BUFFER is a string and no such -buffer exists, it is created. - -TYPE is a symbol which can take one of the -following values: +If BUFFER is nil, use the current buffer. +If BUFFER is a string and no such buffer exists, create it. +TYPE is a symbol which can take one of the following values: - webkit_osr -Returns the newly constructed xwidget, or nil if construction -fails. */) +Returns the newly constructed xwidget, or nil if construction fails. */) (Lisp_Object beg, Lisp_Object end, Lisp_Object type, Lisp_Object title, @@ -255,7 +250,7 @@ fails. */) gtk_widget_show (xw->widgetscrolledwindow_osr); /* store some xwidget data in the gtk widgets for convenient - retrieval in the event handlers. */ + retrieval in the event handlers. */ g_object_set_data (G_OBJECT (xw->widget_osr), XG_XWIDGET, (gpointer) (xw)); g_object_set_data (G_OBJECT (xw->widgetwindow_osr), XG_XWIDGET, @@ -302,7 +297,7 @@ fails. */) DEFUN ("get-buffer-xwidgets", Fget_buffer_xwidgets, Sget_buffer_xwidgets, 1, 1, 0, doc: /* Return a list of xwidgets associated with BUFFER. -BUFFER may be a buffer or the name of one. */) +BUFFER may be a buffer or the name of one. */) (Lisp_Object buffer) { Lisp_Object xw, tail, xw_list; @@ -429,7 +424,7 @@ webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *webView, gpointer user_data) { // This function makes webkit send a download signal for all unknown - // mime types. TODO Defer the decision to lisp, so that its possible + // mime types. TODO Defer the decision to lisp, so that its possible // to make Emacs handle teext mime for instance.xs if (!webkit_web_view_can_show_mime_type (webView, mimetype)) { @@ -502,13 +497,13 @@ xwidget_osr_event_forward (GtkWidget * widget, GdkEvent * event, gpointer user_data) { - /* Copy events that arrive at the outer widget to the offscreen widget. */ + /* Copy events that arrive at the outer widget to the offscreen widget. */ struct xwidget *xw = (struct xwidget *) g_object_get_data (G_OBJECT (widget), XG_XWIDGET); GdkEvent *eventcopy = gdk_event_copy (event); eventcopy->any.window = gtk_widget_get_window (xw->widget_osr); - //TODO This might leak events. They should be deallocated later, + //TODO This might leak events. They should be deallocated later, //perhaps in xwgir_event_cb gtk_main_do_event (eventcopy); return TRUE; //dont propagate this event furter @@ -528,7 +523,7 @@ xwidget_osr_event_set_embedder (GtkWidget * widget, } -/* Initializes and does initial placement of an xwidget view on screen. */ +/* Initializes and does initial placement of an xwidget view on screen. */ static struct xwidget_view * xwidget_init_view (struct xwidget *xww, struct glyph_string *s, @@ -653,9 +648,9 @@ x_draw_xwidget_glyph_string (struct glyph_string *s) WINDOW_BOTTOM_EDGE_Y (s->w) - WINDOW_MODE_LINE_HEIGHT (s->w) - y); clip_top = max (0, WINDOW_TOP_EDGE_Y (s->w) - y); - // We are conserned with movement of the onscreen area. The area + // We are conserned with movement of the onscreen area. The area // might sit still when the widget actually moves. This happens - // when an Emacs window border moves across a widget window. So, if + // when an Emacs window border moves across a widget window. So, if // any corner of the outer widget clipping window moves, that counts // as movement here, even if it looks like no movement happens // because the widget sits still inside the clipping area. The @@ -671,8 +666,8 @@ x_draw_xwidget_glyph_string (struct glyph_string *s) xv->widgetwindow, x + clip_left, y + clip_top); } // Clip the widget window if some parts happen to be outside - // drawable area. An Emacs window is not a gtk window. A gtk window - // covers the entire frame. Clipping might have changed even if we + // drawable area. An Emacs window is not a gtk window. A gtk window + // covers the entire frame. Clipping might have changed even if we // havent actualy moved, we try figure out when we need to reclip // for real. if ((xv->clip_right != clip_right) @@ -690,9 +685,9 @@ x_draw_xwidget_glyph_string (struct glyph_string *s) xv->clip_left = clip_left; } // If emacs wants to repaint the area where the widget lives, queue - // a redraw. It seems its possible to get out of sync with emacs + // a redraw. It seems its possible to get out of sync with emacs // redraws so emacs background sometimes shows up instead of the - // xwidgets background. It's just a visual glitch though. + // xwidgets background. It's just a visual glitch though. if (!xwidget_hidden (xv)) { gtk_widget_queue_draw (xv->widgetwindow); @@ -717,8 +712,7 @@ x_draw_xwidget_glyph_string (struct glyph_string *s) DEFUN ("xwidget-webkit-goto-uri", Fxwidget_webkit_goto_uri, Sxwidget_webkit_goto_uri, 2, 2, 0, - doc: /* Make the xwidget webkit instance referenced by XWIDGET -browse URI. */) + doc: /* Make the xwidget webkit instance referenced by XWIDGET browse URI. */) (Lisp_Object xwidget, Lisp_Object uri) { WEBKIT_FN_INIT (); @@ -744,7 +738,7 @@ DEFUN ("xwidget-webkit-execute-script", DEFUN ("xwidget-webkit-get-title", Fxwidget_webkit_get_title, Sxwidget_webkit_get_title, 1, 1, 0, - doc: /* Returns the title from the Webkit instance in XWIDGET. + doc: /* Return the title from the Webkit instance in XWIDGET. This can be used to work around the lack of a return value from the exec method. */ ) (Lisp_Object xwidget) @@ -755,7 +749,7 @@ exec method. */ ) webkit_web_view_get_title (WEBKIT_WEB_VIEW (xw->widget_osr)); if (str == 0) { - // TODO maybe return Qnil instead. I suppose webkit returns + // TODO maybe return Qnil instead. I suppose webkit returns // nullpointer when doc is not properly loaded or something return build_string (""); } @@ -763,8 +757,7 @@ exec method. */ ) } DEFUN ("xwidget-resize", Fxwidget_resize, Sxwidget_resize, 3, 3, 0, - doc: /* Resize XWIDGET. NEW_WIDTH NEW_HEIGHT defines the new -size. */ ) + doc: /* Resize XWIDGET. NEW_WIDTH, NEW_HEIGHT define the new size. */ ) (Lisp_Object xwidget, Lisp_Object new_width, Lisp_Object new_height) { CHECK_XWIDGET (xwidget); @@ -817,8 +810,9 @@ size. */ ) DEFUN ("xwidget-set-adjustment", Fxwidget_set_adjustment, Sxwidget_set_adjustment, 4, 4, 0, - doc: /* Set native scrolling for XWIDGET. AXIS can be 'vertical or -'horizontal. If RELATIVE is t, scroll relative, otherwise absolutely. + doc: /* Set native scrolling for XWIDGET. +AXIS can be 'vertical or 'horizontal. +If RELATIVE is t, scroll relative, otherwise absolutely. VALUE is the amount to scroll, either relatively or absolutely. */) (Lisp_Object xwidget, Lisp_Object axis, Lisp_Object relative, Lisp_Object value) @@ -863,7 +857,6 @@ DEFUN ("xwidget-size-request", Fxwidget_size_request, Sxwidget_size_request, 1, 1, 0, doc: /* Return the desired size of the XWIDGET. - This can be used to read the xwidget desired size, and resizes the Emacs allocated area accordingly. */) (Lisp_Object xwidget) @@ -882,7 +875,7 @@ Emacs allocated area accordingly. */) DEFUN ("xwidgetp", Fxwidgetp, Sxwidgetp, 1, 1, 0, - doc: /* Return t if OBJECT is a xwidget. */) + doc: /* Return t if OBJECT is an xwidget. */) (Lisp_Object object) { return XWIDGETP (object) ? Qt : Qnil; @@ -891,7 +884,7 @@ DEFUN ("xwidgetp", DEFUN ("xwidget-view-p", Fxwidget_view_p, Sxwidget_view_p, 1, 1, 0, - doc: /* Return t if OBJECT is a xwidget-view. */) + doc: /* Return t if OBJECT is an xwidget-view. */) (Lisp_Object object) { return XWIDGET_VIEW_P (object) ? Qt : Qnil; @@ -900,8 +893,8 @@ DEFUN ("xwidget-view-p", DEFUN ("xwidget-info", Fxwidget_info, Sxwidget_info, 1, 1, 0, - doc: /* Return XWIDGET properties in a vector. Currently [TYPE -TITLE WIDTH HEIGHT]. */) + doc: /* Return XWIDGET properties in a vector. +Currently [TYPE TITLE WIDTH HEIGHT]. */) (Lisp_Object xwidget) { CHECK_XWIDGET (xwidget); @@ -923,7 +916,7 @@ DEFUN ("xwidget-view-info", Fxwidget_view_info, Sxwidget_view_info, 1, 1, 0, doc: /* Return properties of XWIDGET-VIEW in a vector. -Currently [X Y CLIP_RIGHT CLIP_BOTTOM CLIP_TOP CLIP_LEFT] */) +Currently [X Y CLIP_RIGHT CLIP_BOTTOM CLIP_TOP CLIP_LEFT]. */) (Lisp_Object xwidget_view) { CHECK_XWIDGET_VIEW (xwidget_view); @@ -944,7 +937,7 @@ Currently [X Y CLIP_RIGHT CLIP_BOTTOM CLIP_TOP CLIP_LEFT] */) DEFUN ("xwidget-view-model", Fxwidget_view_model, Sxwidget_view_model, 1, 1, 0, - doc: /* Return the model associated with XWIDGET-VIEW. */) + doc: /* Return the model associated with XWIDGET-VIEW. */) (Lisp_Object xwidget_view) { CHECK_XWIDGET_VIEW (xwidget_view); @@ -954,7 +947,7 @@ DEFUN ("xwidget-view-model", DEFUN ("xwidget-view-window", Fxwidget_view_window, Sxwidget_view_window, 1, 1, 0, - doc: /* Return the window of XWIDGET-VIEW. */) + doc: /* Return the window of XWIDGET-VIEW. */) (Lisp_Object xwidget_view) { CHECK_XWIDGET_VIEW (xwidget_view); @@ -965,15 +958,15 @@ DEFUN ("xwidget-view-window", DEFUN ("delete-xwidget-view", Fdelete_xwidget_view, Sdelete_xwidget_view, 1, 1, 0, - doc: /* Delete the XWIDGET-VIEW. */) + doc: /* Delete the XWIDGET-VIEW. */) (Lisp_Object xwidget_view) { CHECK_XWIDGET_VIEW (xwidget_view); struct xwidget_view *xv = XXWIDGET_VIEW (xwidget_view); gtk_widget_destroy (xv->widgetwindow); Vxwidget_view_list = Fdelq (xwidget_view, Vxwidget_view_list); - // xv->model still has signals pointing to the view. There can be - // several views. Find the matching signals and delete them all. + // xv->model still has signals pointing to the view. There can be + // several views. Find the matching signals and delete them all. g_signal_handlers_disconnect_matched (XXWIDGET (xv->model)->widgetwindow_osr, G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, @@ -984,9 +977,9 @@ DEFUN ("delete-xwidget-view", DEFUN ("xwidget-view-lookup", Fxwidget_view_lookup, Sxwidget_view_lookup, 1, 2, 0, - doc: /* Return the xwidget-view associated with XWIDGET in -WINDOW if specified, otherwise it uses the selected window. Return nil -if no association is found. */) + doc: /* Return the xwidget-view associated with XWIDGET in WINDOW. +If WINDOW is unspecified or nil, use the selected window. +Return nil if no association is found. */) (Lisp_Object xwidget, Lisp_Object window) { CHECK_XWIDGET (xwidget); @@ -1044,10 +1037,10 @@ Returns PLIST. */) DEFUN ("set-xwidget-query-on-exit-flag", Fset_xwidget_query_on_exit_flag, Sset_xwidget_query_on_exit_flag, 2, 2, 0, - doc: /* Specify if query is needed for XWIDGET when -Emacs is exited. If the second argument FLAG is non-nil, Emacs will -queries the user before exiting or killing a buffer if XWIDGET is -running. This function returns FLAG. */) + doc: /* Specify if query is needed for XWIDGET when Emacs is exited. +If the second argument FLAG is non-nil, Emacs will query the user before +exiting or killing a buffer if XWIDGET is running. +This function returns FLAG. */) (Lisp_Object xwidget, Lisp_Object flag) { CHECK_XWIDGET (xwidget); @@ -1058,8 +1051,7 @@ running. This function returns FLAG. */) DEFUN ("xwidget-query-on-exit-flag", Fxwidget_query_on_exit_flag, Sxwidget_query_on_exit_flag, 1, 1, 0, - doc: /* Return the current value of query-on-exit -flag for XWIDGET. */) + doc: /* Return the current value of the query-on-exit flag for XWIDGET. */) (Lisp_Object xwidget) { CHECK_XWIDGET (xwidget); @@ -1107,7 +1099,7 @@ syms_of_xwidget (void) DEFSYM (QCtitle, ":title"); /* Do not forget to update the docstring of make-xwidget if you add - new types. */ + new types. */ DEFSYM (Qvertical, "vertical"); DEFSYM (Qhorizontal, "horizontal"); @@ -1219,7 +1211,7 @@ lookup_xwidget (Lisp_Object spec) return xw; } -/* Set up detection of touched xwidget*/ +/* Set up detection of touched xwidget */ void xwidget_start_redisplay (void) { @@ -1258,7 +1250,7 @@ xwidget_end_redisplay (struct window *w, struct glyph_matrix *matrix) // Iterate desired glyph matrix of window here, hide gtk widgets // not in the desired matrix. - // This only takes care of xwidgets in active windows. if a window + // This only takes care of xwidgets in active windows. If a window // goes away from screen xwidget views wust be deleted // dump_glyph_matrix (matrix, 2); @@ -1309,7 +1301,7 @@ xwidget_end_redisplay (struct window *w, struct glyph_matrix *matrix) } } -/* Kill all xwidget in BUFFER. */ +/* Kill all xwidget in BUFFER. */ void kill_buffer_xwidgets (Lisp_Object buffer) { commit 0b356a6aeb7c908e778ac20497bc90fee287af66 Author: Glenn Morris Date: Tue Jan 19 18:13:07 2016 -0500 Avoid advising image-display-size for xwidgets. * lisp/xwidget.el (xwidget-image-display-size): Remove. (image-display-size): Remove advice. * lisp/image-mode.el (xwidget-info, xwidget-at): Declare. (image-display-size): Incorporate xwidget code directly. diff --git a/lisp/image-mode.el b/lisp/image-mode.el index e677dd0..38a25d2 100644 --- a/lisp/image-mode.el +++ b/lisp/image-mode.el @@ -153,6 +153,8 @@ otherwise it defaults to t, used for times when the buffer is not displayed." (selected-window)))) (declare-function image-size "image.c" (spec &optional pixels frame)) +(declare-function xwidget-info "xwidget.c" (xwidget)) +(declare-function xwidget-at "xwidget.el" (pos)) (defun image-display-size (spec &optional pixels frame) "Wrapper around `image-size', handling slice display properties. @@ -160,24 +162,29 @@ Like `image-size', the return value is (WIDTH . HEIGHT). WIDTH and HEIGHT are in canonical character units if PIXELS is nil, and in pixel units if PIXELS is non-nil. -If SPEC is an image display property, this function is equivalent -to `image-size'. If SPEC is a list of properties containing -`image' and `slice' properties, return the display size taking -the slice property into account. If the list contains `image' -but not `slice', return the `image-size' of the specified image." - (if (eq (car spec) 'image) - (image-size spec pixels frame) - (let ((image (assoc 'image spec)) - (slice (assoc 'slice spec))) - (cond ((and image slice) - (if pixels - (cons (nth 3 slice) (nth 4 slice)) - (cons (/ (float (nth 3 slice)) (frame-char-width frame)) - (/ (float (nth 4 slice)) (frame-char-height frame))))) - (image - (image-size image pixels frame)) - (t - (error "Invalid image specification: %s" spec)))))) +If SPEC is an image display property, this function is equivalent to +`image-size'. If SPEC represents an xwidget object, defer to `xwidget-info'. +If SPEC is a list of properties containing `image' and `slice' properties, +return the display size taking the slice property into account. If the list +contains `image' but not `slice', return the `image-size' of the specified +image." + (cond ((eq (car spec) 'xwidget) + (let ((xwi (xwidget-info (xwidget-at 1)))) ; FIXME point-min? + (cons (aref xwi 2) (aref xwi 3)))) + ((eq (car spec) 'image) + (image-size spec pixels frame)) + (t (let ((image (assoc 'image spec)) + (slice (assoc 'slice spec))) + (cond ((and image slice) + (if pixels + (cons (nth 3 slice) (nth 4 slice)) + (cons (/ (float (nth 3 slice)) (frame-char-width frame)) + (/ (float (nth 4 slice)) + (frame-char-height frame))))) + (image + (image-size image pixels frame)) + (t + (error "Invalid image specification: %s" spec))))))) (defun image-forward-hscroll (&optional n) "Scroll image in current window to the left by N character widths. diff --git a/lisp/xwidget.el b/lisp/xwidget.el index ff3b977..41e2c1c 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -87,23 +87,6 @@ defaults to the string looking like a url around the cursor position." (xwidget-webkit-new-session url) (xwidget-webkit-goto-url url)))) - -;;shims for adapting image mode code to the webkit browser window -(defun xwidget-image-display-size (spec &optional pixels frame) - "Image code adaptor. SPEC PIXELS FRAME like the corresponding -`image-mode' fn." - (let ((xwi (xwidget-info (xwidget-at 1)))) - (cons (aref xwi 2) - (aref xwi 3)))) - -(defadvice image-display-size (around image-display-size-for-xwidget - (spec &optional pixels frame) - activate) - "Advice for re-using image mode for xwidget." - (if (eq (car spec) 'xwidget) - (setq ad-return-value (xwidget-image-display-size spec pixels frame)) - ad-do-it)) - ;;todo. ;; - check that the webkit support is compiled in (defvar xwidget-webkit-mode-map commit b88f4a2c7624362081aca2bc81cc0c5c72b7245d Author: Glenn Morris Date: Tue Jan 19 18:06:30 2016 -0500 Avoid breaking non-xwidget Emacs that happen to load xwidget.el. * lisp/xwidget.el (window-configuration-change-hook) (kill-buffer-query-functions): Only modify these hooks if compiled with xwidget support. diff --git a/lisp/xwidget.el b/lisp/xwidget.el index 17fcf3d..ff3b977 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -571,7 +571,8 @@ It can be retrieved with `(xwidget-get XWIDGET PROPNAME)'." ;; This would have felt better in C, but this seems to work well in ;; practice though. -(add-hook 'window-configuration-change-hook 'xwidget-delete-zombies) +(if (featurep 'xwidget-internal) + (add-hook 'window-configuration-change-hook 'xwidget-delete-zombies)) (defun xwidget-kill-buffer-query-function () "Ask beforek illing a buffer that has xwidgets." @@ -582,7 +583,8 @@ It can be retrieved with `(xwidget-get XWIDGET PROPNAME)'." (format "Buffer %S has xwidgets; kill it? " (buffer-name (current-buffer))))))) -(add-hook 'kill-buffer-query-functions 'xwidget-kill-buffer-query-function) +(if (featurep 'xwidget-internal) + (add-hook 'kill-buffer-query-functions 'xwidget-kill-buffer-query-function)) (provide 'xwidget) commit 22977b5c51f5c0ffe318fc3cf8a88b7b14983b15 Author: Glenn Morris Date: Tue Jan 19 18:03:37 2016 -0500 * lisp/xwidget.el (xwidget-webkit-scroll-behaviour): Fix custom spec. diff --git a/lisp/xwidget.el b/lisp/xwidget.el index 2472c8d..17fcf3d 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -36,7 +36,9 @@ (defcustom xwidget-webkit-scroll-behaviour 'native "Scroll behaviour of the webkit instance. 'native or 'image." - :group 'xwidgets) + :version "25.1" + :group 'frames ; TODO add xwidgets group if more options are added + :type '(choice (const native) (const image))) (defun xwidget-insert (pos type title width height &optional args) "Insert an xwidget at POS. commit 1e5eb04c83420bece575cab89b028cf828aaa00e Author: Glenn Morris Date: Tue Jan 19 17:51:32 2016 -0500 * configure.ac (WEBKIT, GIR, CAIRO): Use EMACS_CHECK_MODULES, not PKG_. diff --git a/configure.ac b/configure.ac index bf653ad..3b87fad 100644 --- a/configure.ac +++ b/configure.ac @@ -2583,14 +2583,14 @@ then WEBKIT_REQUIRED=1.4.0 WEBKIT_MODULES="webkitgtk-3.0 >= $WEBKIT_REQUIRED" - PKG_CHECK_MODULES(WEBKIT, $WEBKIT_MODULES, HAVE_WEBKIT=yes, HAVE_WEBKIT=no) + EMACS_CHECK_MODULES(WEBKIT, $WEBKIT_MODULES, HAVE_WEBKIT=yes, HAVE_WEBKIT=no) if test $HAVE_WEBKIT = yes; then AC_DEFINE([HAVE_WEBKIT_OSR], 1, [Define to 1 if you have webkit_osr support.]) fi GIR_REQUIRED=1.32.1 GIR_MODULES="gobject-introspection-1.0 >= $GIR_REQUIRED" - PKG_CHECK_MODULES(GIR, $GIR_MODULES, HAVE_GIR=yes, HAVE_GIR=no) + EMACS_CHECK_MODULES(GIR, $GIR_MODULES, HAVE_GIR=yes, HAVE_GIR=no) if test $HAVE_GIR = yes; then AC_DEFINE([HAVE_GIR], 1, [Define to 1 if you have GIR support.]) fi @@ -3136,7 +3136,7 @@ if test "${HAVE_X11}" = "yes"; then if test "${with_cairo}" != "no"; then CAIRO_REQUIRED=1.12.0 CAIRO_MODULE="cairo >= $CAIRO_REQUIRED" - PKG_CHECK_MODULES(CAIRO, $CAIRO_MODULE, USE_CAIRO=yes, :) + EMACS_CHECK_MODULES(CAIRO, $CAIRO_MODULE, USE_CAIRO=yes, :) if test $USE_CAIRO = yes; then AC_DEFINE(USE_CAIRO, 1, [Define to 1 if using cairo.]) else commit 2dbb4deaa97bdd89705d416b0d0cd3d3c444815f Author: Glenn Morris Date: Tue Jan 19 17:49:40 2016 -0500 * configure.ac (emacs_config_features): Add XWIDGETS, WEBKIT, GIR. diff --git a/configure.ac b/configure.ac index d3513ff..bf653ad 100644 --- a/configure.ac +++ b/configure.ac @@ -5253,7 +5253,8 @@ optsep= emacs_config_features= for opt in XAW3D XPM JPEG TIFF GIF PNG RSVG CAIRO IMAGEMAGICK SOUND GPM DBUS \ GCONF GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT \ - LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS X_TOOLKIT X11 NS MODULES; do + LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS X_TOOLKIT X11 NS MODULES \ + XWIDGETS WEBKIT GIR; do case $opt in NOTIFY|ACL) eval val=\${${opt}_SUMMARY} ;; commit 644e2fb73aa3968be573b2b1e0b491618f84d47b Author: Glenn Morris Date: Tue Jan 19 17:48:35 2016 -0500 * configure.ac (HAVE_WEBKIT_OSR): Remove broken, duplicated gtk3 test. diff --git a/configure.ac b/configure.ac index 95f79ab..d3513ff 100644 --- a/configure.ac +++ b/configure.ac @@ -374,7 +374,7 @@ otherwise for the first of 'inotify' or 'gfile' that is usable.]) [with_file_notification=$with_features]) OPTION_DEFAULT_OFF([xwidgets], - [enable use of some gtk widgets in Emacs buffers]) + [enable use of some gtk widgets in Emacs buffers (requires gtk3)]) ## For the times when you want to build Emacs but don't have ## a suitable makeinfo, and can live without the manuals. @@ -2583,12 +2583,9 @@ then WEBKIT_REQUIRED=1.4.0 WEBKIT_MODULES="webkitgtk-3.0 >= $WEBKIT_REQUIRED" - if test "${with_gtk3}" = "yes"; then - PKG_CHECK_MODULES(WEBKIT, $WEBKIT_MODULES, HAVE_WEBKIT=yes, HAVE_WEBKIT=no) - if test $HAVE_WEBKIT = yes; then - AC_DEFINE([HAVE_WEBKIT_OSR], 1, - [Define to 1 if you have webkit_osr support.]) - fi + PKG_CHECK_MODULES(WEBKIT, $WEBKIT_MODULES, HAVE_WEBKIT=yes, HAVE_WEBKIT=no) + if test $HAVE_WEBKIT = yes; then + AC_DEFINE([HAVE_WEBKIT_OSR], 1, [Define to 1 if you have webkit_osr support.]) fi GIR_REQUIRED=1.32.1 @@ -5306,8 +5303,8 @@ AS_ECHO([" Does Emacs use -lXaw3d? ${HAVE_XAW3D Does Emacs directly use zlib? ${HAVE_ZLIB} Does Emacs have dynamic modules support? ${HAVE_MODULES} Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS} - Does Emacs support Xwidgets? ${HAVE_XWIDGETS} - Does xwidgets support webkit(requires gtk3)? ${HAVE_WEBKIT} + Does Emacs support Xwidgets (requires gtk3)? ${HAVE_XWIDGETS} + Does xwidgets support webkit? ${HAVE_WEBKIT} Does xwidgets support gobject introspection? ${HAVE_GIR} "]) commit 11a0300d9f48cd6245fdf3f8576cda58c4bafb8a Author: Glenn Morris Date: Tue Jan 19 17:32:23 2016 -0500 ; * etc/NEWS: xwidgets isn't documented. diff --git a/etc/NEWS b/etc/NEWS index db6e51d..934bc3f 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -120,20 +120,19 @@ and can contain escape sequences for command keys, quotes, and the like. * Changes in Emacs 25.1 -+++ -** Xwidgets : A new feature for embedding native widgets -inside Emacs buffers. If you have gtk3 and webkit-devel installed, you -can access the embedded webkit browser with m-x -xwidget-webkit-browse-url. This will open a new buffer with the -embedded browser. The buffer will have a new mode, xwidget-webkit -mode which is similar to image mode, which supports the webkit widget. +** Xwidgets: a new feature for embedding native widgets inside Emacs buffers. +If you have gtk3 and webkit-devel installed, you can access the +embedded webkit browser with `M-x xwidget-webkit-browse-url'. This +opens a new buffer with the embedded browser. The buffer will +have a new mode, `xwidget-webkit-mode' (similar to `image-mode'), +which supports the webkit widget. *** New functions for xwidget-webkit mode `xwidget-webkit-insert-string', `xwidget-webkit-adjust-size-dispatch', `xwidget-webkit-back', `xwidget-webkit-browse-url', `xwidget-webkit-reload', `xwidget-webkit-current-url', `xwidget-webkit-scroll-backward', `xwidget-webkit-scroll-forward', `xwidget-webkit-scroll-down', -`xwidget-webkit-scroll-up', +`xwidget-webkit-scroll-up'. +++ ** Emacs can now load shared/dynamic libraries (modules). commit 406887f5ef286270a5b5d00523f2eaf449db4ced Author: Katsumi Yamaoka Date: Tue Jan 19 22:10:09 2016 +0000 * lisp/gnus/nnir.el (nnir-request-update-mark): Default to the original mark. cf. and diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el index 183e144..560ba8a 100644 --- a/lisp/gnus/nnir.el +++ b/lisp/gnus/nnir.el @@ -822,8 +822,10 @@ skips all prompting." (deffoo nnir-request-update-mark (group article mark) (let ((artgroup (nnir-article-group article)) (artnumber (nnir-article-number article))) - (when (and artgroup artnumber) - (gnus-request-update-mark artgroup artnumber mark)))) + (or (and artgroup + artnumber + (gnus-request-update-mark artgroup artnumber mark)) + mark))) (deffoo nnir-request-set-mark (group actions &optional server) (nnir-possibly-change-group group server) commit 9d00392520abc4421f0a5992298f3cb8077c78b0 Author: Glenn Morris Date: Tue Jan 19 16:02:18 2016 -0500 * lisp/xwidget.el (report-xwidget-bug): Remove. (top-level): No longer require reporter. diff --git a/lisp/xwidget.el b/lisp/xwidget.el index 9c38c8e..2472c8d 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -31,7 +31,6 @@ ;;; Code: (require 'cl-lib) -(require 'reporter) (require 'bookmark) (defcustom xwidget-webkit-scroll-behaviour 'native @@ -583,26 +582,6 @@ It can be retrieved with `(xwidget-get XWIDGET PROPNAME)'." (add-hook 'kill-buffer-query-functions 'xwidget-kill-buffer-query-function) -(defun report-xwidget-bug () - "Report a bug in GNU Emacs about the XWidget branch. -Prompts for bug subject. Leaves you in a mail buffer." - (interactive) - (let ((reporter-prompt-for-summary-p t)) - (reporter-submit-bug-report "submit@debbugs.gnu.org" nil nil nil nil - (format "Package: emacs-xwidgets - -Please describe exactly what actions triggered the bug, and the -precise symptoms of the bug. If you can, give a recipe starting -from `emacs -Q'. - -If Emacs crashed, and you have the Emacs process in the gdb -deubbger, please include the output from the following gdb -commands: - `bt full' and `xbacktrace'. - -For information about debugging Emacs, please read the file -%s" (expand-file-name "DEBUG" data-directory))))) - (provide 'xwidget) ;;; xwidget.el ends here commit c7441cd7d8befe1f79ed3509c4a2202a01314336 Author: Glenn Morris Date: Tue Jan 19 16:00:34 2016 -0500 ; Add 2016 to copyright years of new files. diff --git a/lisp/xwidget.el b/lisp/xwidget.el index ce6d939..9c38c8e 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -1,6 +1,6 @@ ;;; xwidget.el --- api functions for xwidgets -*- lexical-binding: t -*- ;; -;; Copyright (C) 2011-2015 Free Software Foundation, Inc. +;; Copyright (C) 2011-2016 Free Software Foundation, Inc. ;; ;; Author: Joakim Verona (joakim@verona.se) ;; diff --git a/src/xwidget.c b/src/xwidget.c index 74319e1..1ed7eaa 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -1,6 +1,6 @@ /* Support for embedding graphical components in a buffer. -Copyright (C) 2011-2015 Free Software Foundation, Inc. +Copyright (C) 2011-2016 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/xwidget.h b/src/xwidget.h index 493000c..4dffaa4 100644 --- a/src/xwidget.h +++ b/src/xwidget.h @@ -1,6 +1,6 @@ /* Support for embedding graphical components in a buffer. -Copyright (C) 2011-2015 Free Software Foundation, Inc. +Copyright (C) 2011-2016 Free Software Foundation, Inc. This file is part of GNU Emacs. commit 7c1f66a94bf236a427606ef537b4629a48a1665b Author: Joakim Verona Date: Tue Jan 19 20:27:12 2016 +0100 Support for the new Xwidget feature. * configure.ac: (HAVE_XWIDGETS, WIDGET_OBJ, EMACS_CONFIG_FEATURES): * xterm.c (x_draw_glyph_string, x_draw_bar_cursor): * xdisp.c: (handle_display_spec, handle_single_display_spec, push_it) (pop_it, set_iterator_to_next, dump_glyph) (calc_pixel_width_or_height, fill_xwidget_glyph_string) (BUILD_XWIDGET_GLYPH_STRING, BUILD_GLYPH_STRINGS) (produce_xwidget_glyph, x_produce_glyphs) (get_window_cursor_type): * window.c (Fdelete_window_internal): * termhooks.h (e): * print.c (print_object): * lisp.h (ptrdiff_t): * keyboard.c (kbd_buffer_get_event, make_lispy_event) (syms_of_keyboard): * emacs.c (main): * dispnew.c (update_window, scrolling_window): * dispextern.h (g, i): * Makefile.in (XWIDGETS_OBJ, WEBKIT_CFLAGS, WEBKIT_LIBS) (GIR_LIBS, ALL_CFLAGS, base_obj, LIBES): * keyboard.c (kbd_buffer_get_event): * emacsgtkfixed.c (emacs_fixed_gtk_widget_size_allocate) (emacs_fixed_class_init): Add case for an xwidget view. * xwidget.c, xwidget.h, xwidget.el: New files for xwidgets Co-authored-by: Grégoire Jadi Various improvements to the Xwidget feature. * xwidgets.c: * emacsgtkfixed.c: * xwidget.el: diff --git a/configure.ac b/configure.ac index 3aeba22..95f79ab 100644 --- a/configure.ac +++ b/configure.ac @@ -373,6 +373,9 @@ otherwise for the first of 'inotify' or 'gfile' that is usable.]) ], [with_file_notification=$with_features]) +OPTION_DEFAULT_OFF([xwidgets], + [enable use of some gtk widgets in Emacs buffers]) + ## For the times when you want to build Emacs but don't have ## a suitable makeinfo, and can live without the manuals. dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html @@ -2562,6 +2565,42 @@ if test "${HAVE_GTK}" = "yes"; then term_header=gtkutil.h fi + +HAVE_XWIDGETS=no +HAVE_WEBKIT=no +HAVE_GIR=no +XWIDGETS_OBJ= +if test "$with_xwidgets" != "no" && test "$USE_GTK_TOOLKIT" = "GTK3" && + test "$window_system" != "none" +then + HAVE_XWIDGETS=yes + AC_DEFINE([HAVE_XWIDGETS], 1, [Define to 1 if you have xwidgets support.]) + + dnl xwidgets + dnl - enable only if GTK3 is enabled, and we have a window system + dnl - check for webkit and gobject introspection + dnl webkit version for gtk3. + WEBKIT_REQUIRED=1.4.0 + WEBKIT_MODULES="webkitgtk-3.0 >= $WEBKIT_REQUIRED" + + if test "${with_gtk3}" = "yes"; then + PKG_CHECK_MODULES(WEBKIT, $WEBKIT_MODULES, HAVE_WEBKIT=yes, HAVE_WEBKIT=no) + if test $HAVE_WEBKIT = yes; then + AC_DEFINE([HAVE_WEBKIT_OSR], 1, + [Define to 1 if you have webkit_osr support.]) + fi + fi + + GIR_REQUIRED=1.32.1 + GIR_MODULES="gobject-introspection-1.0 >= $GIR_REQUIRED" + PKG_CHECK_MODULES(GIR, $GIR_MODULES, HAVE_GIR=yes, HAVE_GIR=no) + if test $HAVE_GIR = yes; then + AC_DEFINE([HAVE_GIR], 1, [Define to 1 if you have GIR support.]) + fi + XWIDGETS_OBJ=xwidget.o +fi +AC_SUBST(XWIDGETS_OBJ) + CFLAGS=$OLD_CFLAGS LIBS=$OLD_LIBS @@ -4925,6 +4964,9 @@ case "$USE_X_TOOLKIT" in LUCID) TOOLKIT_LIBW="$LUCID_LIBW" ;; none) test "x$HAVE_GTK" = "xyes" && TOOLKIT_LIBW="$GTK_LIBS" ;; esac +if test "$HAVE_XWIDGETS" = "yes"; then + TOOLKIT_LIBW="$TOOLKIT_LIBW -lXcomposite" +fi AC_SUBST(TOOLKIT_LIBW) if test "${opsys}" != "mingw32"; then @@ -5264,6 +5306,9 @@ AS_ECHO([" Does Emacs use -lXaw3d? ${HAVE_XAW3D Does Emacs directly use zlib? ${HAVE_ZLIB} Does Emacs have dynamic modules support? ${HAVE_MODULES} Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS} + Does Emacs support Xwidgets? ${HAVE_XWIDGETS} + Does xwidgets support webkit(requires gtk3)? ${HAVE_WEBKIT} + Does xwidgets support gobject introspection? ${HAVE_GIR} "]) if test -n "${EMACSDATA}"; then diff --git a/etc/NEWS b/etc/NEWS index 4e415a1..db6e51d 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -121,6 +121,21 @@ and can contain escape sequences for command keys, quotes, and the like. * Changes in Emacs 25.1 +++ +** Xwidgets : A new feature for embedding native widgets +inside Emacs buffers. If you have gtk3 and webkit-devel installed, you +can access the embedded webkit browser with m-x +xwidget-webkit-browse-url. This will open a new buffer with the +embedded browser. The buffer will have a new mode, xwidget-webkit +mode which is similar to image mode, which supports the webkit widget. + +*** New functions for xwidget-webkit mode `xwidget-webkit-insert-string', +`xwidget-webkit-adjust-size-dispatch', `xwidget-webkit-back', +`xwidget-webkit-browse-url', `xwidget-webkit-reload', +`xwidget-webkit-current-url', `xwidget-webkit-scroll-backward', +`xwidget-webkit-scroll-forward', `xwidget-webkit-scroll-down', +`xwidget-webkit-scroll-up', + ++++ ** Emacs can now load shared/dynamic libraries (modules). A dynamic Emacs module is a shared library that provides additional functionality for use in Emacs Lisp programs, just like a package diff --git a/lisp/xwidget.el b/lisp/xwidget.el new file mode 100644 index 0000000..ce6d939 --- /dev/null +++ b/lisp/xwidget.el @@ -0,0 +1,608 @@ +;;; xwidget.el --- api functions for xwidgets -*- lexical-binding: t -*- +;; +;; Copyright (C) 2011-2015 Free Software Foundation, Inc. +;; +;; Author: Joakim Verona (joakim@verona.se) +;; +;; This file is part of GNU Emacs. +;; +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . +;; +;; -------------------------------------------------------------------- + +;;; Commentary: +;; +;; See xwidget.c for more api functions + +;;TODO this breaks compilation when we dont have xwidgets +;;(require 'xwidget-internal) + +;;; Code: + +(require 'cl-lib) +(require 'reporter) +(require 'bookmark) + +(defcustom xwidget-webkit-scroll-behaviour 'native + "Scroll behaviour of the webkit instance. +'native or 'image." + :group 'xwidgets) + +(defun xwidget-insert (pos type title width height &optional args) + "Insert an xwidget at POS. +given ID, TYPE, TITLE WIDTH and +HEIGHT in the current buffer. + +Return ID + +see `make-xwidget' for types suitable for TYPE. +Optional argument ARGS usage depends on the xwidget." + (goto-char pos) + (let ((id (make-xwidget (point) (point) + type title width height args))) + (put-text-property (point) (+ 1 (point)) + 'display (list 'xwidget ':xwidget id)) + id)) + +(defun xwidget-at (pos) + "Return xwidget at POS." + ;;TODO this function is a bit tedious because the C layer isnt well + ;;protected yet and xwidgetp aparently doesnt work yet + (let* ((disp (get-text-property pos 'display)) + (xw (car (cdr (cdr disp))))) + ;;(if ( xwidgetp xw) xw nil) + (if (equal 'xwidget (car disp)) xw))) + + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; webkit support +(require 'browse-url) +(require 'image-mode);;for some image-mode alike functionality + +;;;###autoload +(defun xwidget-webkit-browse-url (url &optional new-session) + "Ask xwidget-webkit to browse URL. +NEW-SESSION specifies whether to create a new xwidget-webkit session. URL +defaults to the string looking like a url around the cursor position." + (interactive (progn + (require 'browse-url) + (browse-url-interactive-arg "xwidget-webkit URL: " + ;;( xwidget-webkit-current-url) + ))) + (when (stringp url) + (if new-session + (xwidget-webkit-new-session url) + (xwidget-webkit-goto-url url)))) + + +;;shims for adapting image mode code to the webkit browser window +(defun xwidget-image-display-size (spec &optional pixels frame) + "Image code adaptor. SPEC PIXELS FRAME like the corresponding +`image-mode' fn." + (let ((xwi (xwidget-info (xwidget-at 1)))) + (cons (aref xwi 2) + (aref xwi 3)))) + +(defadvice image-display-size (around image-display-size-for-xwidget + (spec &optional pixels frame) + activate) + "Advice for re-using image mode for xwidget." + (if (eq (car spec) 'xwidget) + (setq ad-return-value (xwidget-image-display-size spec pixels frame)) + ad-do-it)) + +;;todo. +;; - check that the webkit support is compiled in +(defvar xwidget-webkit-mode-map + (let ((map (make-sparse-keymap))) + (define-key map "g" 'xwidget-webkit-browse-url) + (define-key map "a" 'xwidget-webkit-adjust-size-dispatch) + (define-key map "b" 'xwidget-webkit-back ) + (define-key map "r" 'xwidget-webkit-reload ) + (define-key map "t" (lambda () (interactive) (message "o")) ) + (define-key map "\C-m" 'xwidget-webkit-insert-string) + (define-key map "w" 'xwidget-webkit-current-url) + + ;;similar to image mode bindings + (define-key map (kbd "SPC") 'xwidget-webkit-scroll-up) + (define-key map (kbd "DEL") 'xwidget-webkit-scroll-down) + + (define-key map [remap scroll-up] 'xwidget-webkit-scroll-up) + (define-key map [remap scroll-up-command] 'xwidget-webkit-scroll-up) + + (define-key map [remap scroll-down] 'xwidget-webkit-scroll-down) + (define-key map [remap scroll-down-command] 'xwidget-webkit-scroll-down) + + (define-key map [remap forward-char] 'xwidget-webkit-scroll-forward) + (define-key map [remap backward-char] 'xwidget-webkit-scroll-backward) + (define-key map [remap right-char] 'xwidget-webkit-scroll-forward) + (define-key map [remap left-char] 'xwidget-webkit-scroll-backward) + ;; (define-key map [remap previous-line] 'image-previous-line) + ;; (define-key map [remap next-line] 'image-next-line) + + ;; (define-key map [remap move-beginning-of-line] 'image-bol) + ;; (define-key map [remap move-end-of-line] 'image-eol) + ;; (define-key map [remap beginning-of-buffer] 'image-bob) + ;; (define-key map [remap end-of-buffer] 'image-eob) + map) + "Keymap for `xwidget-webkit-mode'.") + +(defun xwidget-webkit-scroll-up () + "Scroll webkit up,either native or like image mode." + (interactive) + (if (eq xwidget-webkit-scroll-behaviour 'native) + (xwidget-set-adjustment (xwidget-webkit-last-session) 'vertical t 50) + (image-scroll-up))) + +(defun xwidget-webkit-scroll-down () + "Scroll webkit down,either native or like image mode." + (interactive) + (if (eq xwidget-webkit-scroll-behaviour 'native) + (xwidget-set-adjustment (xwidget-webkit-last-session) 'vertical t -50) + (image-scroll-down))) + +(defun xwidget-webkit-scroll-forward () + "Scroll webkit forward,either native or like image mode." + (interactive) + (if (eq xwidget-webkit-scroll-behaviour 'native) + (xwidget-set-adjustment (xwidget-webkit-last-session) 'horizontal t 50) + (xwidget-webkit-scroll-forward))) + +(defun xwidget-webkit-scroll-backward () + "Scroll webkit backward,either native or like image mode." + (interactive) + (if (eq xwidget-webkit-scroll-behaviour 'native) + (xwidget-set-adjustment (xwidget-webkit-last-session) 'horizontal t -50) + (xwidget-webkit-scroll-backward))) + + +;;the xwidget event needs to go into a higher level handler +;;since the xwidget can generate an event even if its offscreen +;;TODO this needs to use callbacks and consider different xw ev types +(define-key (current-global-map) [xwidget-event] 'xwidget-event-handler) +(defun xwidget-log ( &rest msg) + "Log MSG to a buffer." + (let ( (buf (get-buffer-create "*xwidget-log*"))) + (save-excursion + (buffer-disable-undo buf) + (set-buffer buf) + (insert (apply 'format msg)) + (insert "\n")))) + +(defun xwidget-event-handler () + "Receive xwidget event." + (interactive) + (xwidget-log "stuff happened to xwidget %S" last-input-event) + (let* + ((xwidget-event-type (nth 1 last-input-event)) + (xwidget (nth 2 last-input-event)) + ;;(xwidget-callback (xwidget-get xwidget 'callback)) + ;;TODO stopped working for some reason + ) + ;;(funcall xwidget-callback xwidget xwidget-event-type) + (message "xw callback %s" xwidget) + (funcall 'xwidget-webkit-callback xwidget xwidget-event-type))) + +(defun xwidget-webkit-callback (xwidget xwidget-event-type) + "Callback for xwidgets. +XWIDGET instance, XWIDGET-EVENT-TYPE depends on the originating xwidget." + (save-excursion + (cond ((buffer-live-p (xwidget-buffer xwidget)) + (set-buffer (xwidget-buffer xwidget)) + (let* ((strarg (nth 3 last-input-event))) + (cond ((eq xwidget-event-type 'document-load-finished) + (xwidget-log "webkit finished loading: '%s'" + (xwidget-webkit-get-title xwidget)) + ;;TODO - check the native/internal scroll + ;;(xwidget-adjust-size-to-content xwidget) + (xwidget-webkit-adjust-size-dispatch) ;;TODO xwidget arg + (rename-buffer (format "*xwidget webkit: %s *" + (xwidget-webkit-get-title xwidget))) + (pop-to-buffer (current-buffer))) + ((eq xwidget-event-type + 'navigation-policy-decision-requested) + (if (string-match ".*#\\(.*\\)" strarg) + (xwidget-webkit-show-id-or-named-element + xwidget + (match-string 1 strarg)))) + (t (xwidget-log "unhandled event:%s" xwidget-event-type))))) + (t (xwidget-log + "error: callback called for xwidget with dead buffer"))))) + +(defvar bookmark-make-record-function) +(define-derived-mode xwidget-webkit-mode + special-mode "xwidget-webkit" "xwidget webkit view mode" + (setq buffer-read-only t) + (setq-local bookmark-make-record-function + #'xwidget-webkit-bookmark-make-record) + ;; Keep track of [vh]scroll when switching buffers + (image-mode-setup-winprops)) + +(defun xwidget-webkit-bookmark-make-record () +"Integrate Emacs bookmarks with the webkit xwidget." + (nconc (bookmark-make-record-default t t) + `((page . ,(xwidget-webkit-current-url)) + (handler . (lambda (bmk) (browse-url + (bookmark-prop-get bmk 'page))))))) + + +(defvar xwidget-webkit-last-session-buffer nil) + +(defun xwidget-webkit-last-session () + "Last active webkit, or nil." + (if (buffer-live-p xwidget-webkit-last-session-buffer) + (with-current-buffer xwidget-webkit-last-session-buffer + (xwidget-at 1)) + nil)) + +(defun xwidget-webkit-current-session () + "Either the webkit in the current buffer, or the last one used, +which might be nil." + (if (xwidget-at 1) + (xwidget-at 1) + (xwidget-webkit-last-session))) + +(defun xwidget-adjust-size-to-content (xw) + "Resize XW to content." + ;;xwidgets doesnt support widgets that have their own opinions about + ;;size well yet this reads the desired size and resizes the emacs + ;;allocated area accordingly + (let ((size (xwidget-size-request xw))) + (xwidget-resize xw (car size) (cadr size)))) + + +(defvar xwidget-webkit-activeelement-js" +function findactiveelement(doc){ +//alert(doc.activeElement.value); + if(doc.activeElement.value != undefined){ + return doc.activeElement; + }else{ + // recurse over the child documents: + var frames = doc.getElementsByTagName('frame'); + for (var i = 0; i < frames.length; i++) + { + var d = frames[i].contentDocument; + var rv = findactiveelement(d); + if(rv != undefined){ + return rv; + } + } + } + return undefined; +}; + + +" + + "javascript that finds the active element." + ;;yes its ugly. because: + ;; - there is aparently no way to find the active frame other than recursion + ;; - the js "for each" construct missbehaved on the "frames" collection + ;; - a window with no frameset still has frames.length == 1, but + ;; frames[0].document.activeElement != document.activeElement + ;;TODO the activeelement type needs to be examined, for iframe, etc. + ) + +(defun xwidget-webkit-insert-string (xw str) + "Insert string in the active field in the webkit. +Argument XW webkit. +Argument STR string." + ;;read out the string in the field first and provide for edit + (interactive + (let* ((xww (xwidget-webkit-current-session)) + + (field-value + (progn + (xwidget-webkit-execute-script xww xwidget-webkit-activeelement-js) + (xwidget-webkit-execute-script-rv + xww + "findactiveelement(document).value;" ))) + (field-type (xwidget-webkit-execute-script-rv + xww + "findactiveelement(document).type;" ))) + (list xww + (cond ((equal "text" field-type) + (read-string "text:" field-value)) + ((equal "password" field-type) + (read-passwd "password:" nil field-value)) + ((equal "textarea" field-type) + (xwidget-webkit-begin-edit-textarea xww field-value)))))) + (xwidget-webkit-execute-script + xw + (format "findactiveelement(document).value='%s'" str))) + +(defvar xwidget-xwbl) +(defun xwidget-webkit-begin-edit-textarea (xw text) + "Start editing of a webkit text area. +XW is the xwidget identifier, TEXT is retrieved from the webkit." + (switch-to-buffer + (generate-new-buffer "textarea")) + + (set (make-local-variable 'xwidget-xwbl) xw) + (insert text)) + +(defun xwidget-webkit-end-edit-textarea () + "End editing of a webkit text area." + (interactive) + (goto-char (point-min)) + (while (search-forward "\n" nil t) + (replace-match "\\n" nil t)) + (xwidget-webkit-execute-script + xwidget-xwbl + (format "findactiveelement(document).value='%s'" + (buffer-substring (point-min) (point-max)))) + ;;TODO convert linefeed to \n + ) + +(defun xwidget-webkit-show-named-element (xw element-name) + "Make named-element show. for instance an anchor. +Argument XW is the xwidget. +Argument ELEMENT-NAME is the element name to display in the webkit xwidget." + (interactive (list (xwidget-webkit-current-session) + (read-string "element name:"))) + ;;TODO since an xwidget is an Emacs object, it is not trivial to do + ;; some things that are taken for granted in a normal browser. + ;; scrolling an anchor/named-element into view is one such thing. + ;; This function implements a proof-of-concept for this. Problems + ;; remaining: - The selected window is scrolled but this is not + ;; always correct - This needs to be interfaced into browse-url + ;; somehow. the tricky part is that we need to do this in two steps: + ;; A: load the base url, wait for load signal to arrive B: navigate + ;; to the anchor when the base url is finished rendering + + ;; This part figures out the Y coordinate of the element + (let ((y (string-to-number + (xwidget-webkit-execute-script-rv + xw + (format + "document.getElementsByName('%s')[0].getBoundingClientRect().top" + element-name) + 0)))) + ;; Now we need to tell emacs to scroll the element into view. + (xwidget-log "scroll: %d" y) + (set-window-vscroll (selected-window) y t))) + +(defun xwidget-webkit-show-id-element (xw element-id) + "Make id-element show. for instance an anchor. +Argument XW is the webkit xwidget. +Argument ELEMENT-ID is the id of the element to show." + (interactive (list (xwidget-webkit-current-session) + (read-string "element id:"))) + (let ((y (string-to-number + (xwidget-webkit-execute-script-rv + xw + (format "document.getElementById('%s').getBoundingClientRect().top" + element-id) + 0)))) + ;; Now we need to tell emacs to scroll the element into view. + (xwidget-log "scroll: %d" y) + (set-window-vscroll (selected-window) y t))) + +(defun xwidget-webkit-show-id-or-named-element (xw element-id) + "Make id-element show. for instance an anchor. +Argument XW is the webkit xwidget. +Argument ELEMENT-ID is either a name or an element id." + (interactive (list (xwidget-webkit-current-session) + (read-string "element id:"))) + (let* ((y1 (string-to-number + (xwidget-webkit-execute-script-rv + xw + (format "document.getElementsByName('%s')[0].getBoundingClientRect().top" element-id) + "0"))) + (y2 (string-to-number + (xwidget-webkit-execute-script-rv + xw + (format "document.getElementById('%s').getBoundingClientRect().top" element-id) + "0"))) + (y3 (max y1 y2))) + ;; Now we need to tell emacs to scroll the element into view. + (xwidget-log "scroll: %d" y3) + (set-window-vscroll (selected-window) y3 t))) + +(defun xwidget-webkit-adjust-size-to-content () + "Adjust webkit to content size." + (interactive) + (xwidget-adjust-size-to-content (xwidget-webkit-current-session))) + +(defun xwidget-webkit-adjust-size-dispatch () + "Adjust size according to mode." + (interactive) + (if (eq xwidget-webkit-scroll-behaviour 'native) + (xwidget-webkit-adjust-size-to-window) + (xwidget-webkit-adjust-size-to-content)) + ;; The recenter is intended to correct a visual glitch. + ;; It errors out if the buffer isn't visible, but then we dont get the glitch, + ;; so silence errors + (ignore-errors + (recenter-top-bottom)) + ) + +(defun xwidget-webkit-adjust-size-to-window () + "Adjust webkit to window." + (interactive) + (xwidget-resize ( xwidget-webkit-current-session) (window-pixel-width) + (window-pixel-height))) + +(defun xwidget-webkit-adjust-size (w h) + "Manualy set webkit size. +Argument W width. +Argument H height." + ;; TODO shouldn't be tied to the webkit xwidget + (interactive "nWidth:\nnHeight:\n") + (xwidget-resize ( xwidget-webkit-current-session) w h)) + +(defun xwidget-webkit-fit-width () + "Adjust width of webkit to window width." + (interactive) + (xwidget-webkit-adjust-size (- (nth 2 (window-inside-pixel-edges)) + (car (window-inside-pixel-edges))) + 1000)) + +(defun xwidget-webkit-new-session (url) + "Create a new webkit session buffer with URL." + (let* + ((bufname (generate-new-buffer-name "*xwidget-webkit*")) + xw) + (setq xwidget-webkit-last-session-buffer (switch-to-buffer + (get-buffer-create bufname))) + (insert " 'a' adjusts the xwidget size.") + (setq xw (xwidget-insert 1 'webkit-osr bufname 1000 1000)) + (xwidget-put xw 'callback 'xwidget-webkit-callback) + (xwidget-webkit-mode) + (xwidget-webkit-goto-uri (xwidget-webkit-last-session) url ))) + + +(defun xwidget-webkit-goto-url (url) + "Goto URL." + (if (xwidget-webkit-current-session) + (progn + (xwidget-webkit-goto-uri (xwidget-webkit-current-session) url)) + (xwidget-webkit-new-session url))) + +(defun xwidget-webkit-back () + "Back in history." + (interactive) + (xwidget-webkit-execute-script (xwidget-webkit-current-session) + "history.go(-1);")) + +(defun xwidget-webkit-reload () + "Reload current url." + (interactive) + (xwidget-webkit-execute-script (xwidget-webkit-current-session) + "history.go(0);")) + +(defun xwidget-webkit-current-url () + "Get the webkit url. place it on kill ring." + (interactive) + (let* ((rv (xwidget-webkit-execute-script-rv (xwidget-webkit-current-session) + "document.URL")) + (url (kill-new (or rv "")))) + (message "url: %s" url ) + url)) + +(defun xwidget-webkit-execute-script-rv (xw script &optional default) + "Same as 'xwidget-webkit-execute-script' but but with return value. +XW is the webkit instance. SCRIPT is the script to execut. +DEFAULT is the defaultreturn value." + ;; Notice the ugly "title" hack. It is needed because the Webkit + ;; API at the time of writing didn't support returning values. This + ;; is a wrapper for the title hack so its easy to remove should + ;; Webkit someday support JS return values or we find some other way + ;; to access the DOM. + + ;; Reset webkit title. Not very nice. + (let* ((emptytag "titlecantbewhitespaceohthehorror") + title) + (xwidget-webkit-execute-script xw (format "document.title=\"%s\";" + (or default emptytag))) + (xwidget-webkit-execute-script xw (format "document.title=%s;" script)) + (setq title (xwidget-webkit-get-title xw)) + (if (equal emptytag title) + (setq title "")) + (unless title + (setq title default)) + title)) + + +;; Use declare here? +;; (declare-function xwidget-resize-internal "xwidget.c" ) +;; check-declare-function? + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defun xwidget-webkit-get-selection () + "Get the webkit selection." + (xwidget-webkit-execute-script-rv (xwidget-webkit-current-session) + "window.getSelection().toString();")) + +(defun xwidget-webkit-copy-selection-as-kill () + "Get the webkit selection and put it on the kill ring." + (interactive) + (kill-new (xwidget-webkit-get-selection))) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Xwidget plist management(similar to the process plist functions) + +(defun xwidget-get (xwidget propname) + "Return the value of XWIDGET' PROPNAME property. +This is the last value stored with `(xwidget-put XWIDGET PROPNAME VALUE)'." + (plist-get (xwidget-plist xwidget) propname)) + +(defun xwidget-put (xwidget propname value) + "Change XWIDGET' PROPNAME property to VALUE. +It can be retrieved with `(xwidget-get XWIDGET PROPNAME)'." + (set-xwidget-plist xwidget + (plist-put (xwidget-plist xwidget) propname value))) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defun xwidget-delete-zombies () + "Helper for `xwidget-cleanup'." + (dolist (xwidget-view xwidget-view-list) + (when (or (not (window-live-p (xwidget-view-window xwidget-view))) + (not (memq (xwidget-view-model xwidget-view) + xwidget-list))) + (delete-xwidget-view xwidget-view)))) + +(defun xwidget-cleanup () + "Delete zombie xwidgets." + ;; During development it was sometimes easy to wind up with zombie + ;; xwidget instances. + ;; This function tries to implement a workaround should it occur again. + (interactive) + ;; Kill xviews who should have been deleted but stull linger. + (xwidget-delete-zombies) + ;; Redraw display otherwise ghost of zombies will remain to haunt the screen + (redraw-display)) + +;; This would have felt better in C, but this seems to work well in +;; practice though. +(add-hook 'window-configuration-change-hook 'xwidget-delete-zombies) + +(defun xwidget-kill-buffer-query-function () + "Ask beforek illing a buffer that has xwidgets." + (let ((xwidgets (get-buffer-xwidgets (current-buffer)))) + (or (not xwidgets) + (not (memq t (mapcar 'xwidget-query-on-exit-flag xwidgets))) + (yes-or-no-p + (format "Buffer %S has xwidgets; kill it? " + (buffer-name (current-buffer))))))) + +(add-hook 'kill-buffer-query-functions 'xwidget-kill-buffer-query-function) + +(defun report-xwidget-bug () + "Report a bug in GNU Emacs about the XWidget branch. +Prompts for bug subject. Leaves you in a mail buffer." + (interactive) + (let ((reporter-prompt-for-summary-p t)) + (reporter-submit-bug-report "submit@debbugs.gnu.org" nil nil nil nil + (format "Package: emacs-xwidgets + +Please describe exactly what actions triggered the bug, and the +precise symptoms of the bug. If you can, give a recipe starting +from `emacs -Q'. + +If Emacs crashed, and you have the Emacs process in the gdb +deubbger, please include the output from the following gdb +commands: + `bt full' and `xbacktrace'. + +For information about debugging Emacs, please read the file +%s" (expand-file-name "DEBUG" data-directory))))) + +(provide 'xwidget) + +;;; xwidget.el ends here diff --git a/src/Makefile.in b/src/Makefile.in index 74c0e4e..2b5ae30 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -152,6 +152,9 @@ DBUS_LIBS = @DBUS_LIBS@ ## dbusbind.o if HAVE_DBUS, else empty. DBUS_OBJ = @DBUS_OBJ@ +## xwidgets.o if HAVE_XWIDGETS, else empty. +XWIDGETS_OBJ = @XWIDGETS_OBJ@ + LIB_EXECINFO=@LIB_EXECINFO@ SETTINGS_CFLAGS = @SETTINGS_CFLAGS@ @@ -219,6 +222,11 @@ CFLAGS_SOUND= @CFLAGS_SOUND@ RSVG_LIBS= @RSVG_LIBS@ RSVG_CFLAGS= @RSVG_CFLAGS@ +WEBKIT_LIBS= @WEBKIT_LIBS@ +WEBKIT_CFLAGS= @WEBKIT_CFLAGS@ + +GIR_LIBS= @GIR_LIBS@ +GIR_CFLAGS= @GIR_CFLAGS@ CAIRO_LIBS= @CAIRO_LIBS@ CAIRO_CFLAGS= @CAIRO_CFLAGS@ @@ -358,6 +366,7 @@ ALL_CFLAGS=-Demacs $(MYCPPFLAGS) -I. -I$(srcdir) \ $(GNUSTEP_CFLAGS) $(CFLAGS_SOUND) $(RSVG_CFLAGS) $(IMAGEMAGICK_CFLAGS) \ $(PNG_CFLAGS) $(LIBXML2_CFLAGS) $(DBUS_CFLAGS) \ $(XRANDR_CFLAGS) $(XINERAMA_CFLAGS) $(XFIXES_CFLAGS) \ + $(WEBKIT_CFLAGS) $(GIR_CFLAGS) \ $(SETTINGS_CFLAGS) $(FREETYPE_CFLAGS) $(FONTCONFIG_CFLAGS) \ $(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) $(DEPFLAGS) \ $(LIBGNUTLS_CFLAGS) $(GFILENOTIFY_CFLAGS) $(CAIRO_CFLAGS) \ @@ -387,6 +396,7 @@ base_obj = dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ process.o gnutls.o callproc.o \ region-cache.o sound.o atimer.o \ doprnt.o intervals.o textprop.o composite.o xml.o $(NOTIFY_OBJ) \ + $(XWIDGETS_OBJ) \ profiler.o decompress.o \ $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) \ $(W32_OBJ) $(WINDOW_SYSTEM_OBJ) $(XGSELOBJ) @@ -467,6 +477,7 @@ lisp = $(addprefix ${lispsource}/,${shortlisp}) LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUSTEP) $(LIBX_BASE) $(LIBIMAGE) \ $(LIBX_OTHER) $(LIBSOUND) \ $(RSVG_LIBS) $(IMAGEMAGICK_LIBS) $(LIB_ACL) $(LIB_CLOCK_GETTIME) \ + $(WEBKIT_LIBS) $(GIR_LIBS) \ $(LIB_EACCESS) $(LIB_FDATASYNC) $(LIB_TIMER_TIME) $(DBUS_LIBS) \ $(LIB_EXECINFO) $(XRANDR_LIBS) $(XINERAMA_LIBS) $(XFIXES_LIBS) \ $(LIBXML2_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) $(CAIRO_LIBS) \ diff --git a/src/buffer.c b/src/buffer.c index b02135c..a2981c9 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -43,6 +43,9 @@ along with GNU Emacs. If not, see . */ #include "keymap.h" #include "frame.h" +#ifdef HAVE_XWIDGETS +# include "xwidget.h" +#endif #ifdef WINDOWSNT #include "w32heap.h" /* for mmap_* */ #endif @@ -1747,6 +1750,9 @@ cleaning up all windows currently displaying the buffer to be killed. */) kill_buffer_processes (buffer); +#ifdef HAVE_XWIDGETS + kill_buffer_xwidgets (buffer); +#endif /* Killing buffer processes may run sentinels which may have killed our buffer. */ if (!BUFFER_LIVE_P (b)) diff --git a/src/dispextern.h b/src/dispextern.h index bb876f5..fad5bfd 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -348,6 +348,10 @@ enum glyph_type /* Glyph is a space of fractional width and/or height. */ STRETCH_GLYPH +#ifdef HAVE_XWIDGETS + /* Glyph is an external widget drawn by the GUI toolkit. */ + ,XWIDGET_GLYPH +#endif }; @@ -499,6 +503,9 @@ struct glyph /* Image ID for image glyphs (type == IMAGE_GLYPH). */ int img_id; +#ifdef HAVE_XWIDGETS + struct xwidget *xwidget; +#endif /* Sub-structure for type == STRETCH_GLYPH. */ struct { @@ -1350,6 +1357,9 @@ struct glyph_string /* Image, if any. */ struct image *img; +#ifdef HAVE_XWIDGETS + struct xwidget *xwidget; +#endif /* Slice */ struct glyph_slice slice; @@ -2102,6 +2112,10 @@ enum display_element_type /* Continuation glyphs. See the comment for IT_TRUNCATION. */ IT_CONTINUATION + +#ifdef HAVE_XWIDGETS + ,IT_XWIDGET +#endif }; @@ -2165,6 +2179,9 @@ enum it_method { GET_FROM_C_STRING, GET_FROM_IMAGE, GET_FROM_STRETCH, +#ifdef HAVE_XWIDGETS + GET_FROM_XWIDGET, +#endif NUM_IT_METHODS }; @@ -2382,6 +2399,12 @@ struct it struct { Lisp_Object object; } stretch; +#ifdef HAVE_XWIDGETS + /* method == GET_FROM_XWIDGET */ + struct { + Lisp_Object object; + } xwidget; +#endif } u; /* Current text and display positions. */ @@ -2506,6 +2529,11 @@ struct it /* If what == IT_IMAGE, the id of the image to display. */ ptrdiff_t image_id; +#ifdef HAVE_XWIDGETS + /* If what == IT_XWIDGET. */ + struct xwidget *xwidget; +#endif + /* Values from `slice' property. */ struct it_slice slice; diff --git a/src/dispnew.c b/src/dispnew.c index 3e1557f..571ed5f 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -44,6 +44,10 @@ along with GNU Emacs. If not, see . */ #include TERM_HEADER #endif /* HAVE_WINDOW_SYSTEM */ +#ifdef HAVE_XWIDGETS +# include "xwidget.h" +#endif + #include #include @@ -3545,6 +3549,9 @@ update_window (struct window *w, bool force_p) add_window_display_history (w, w->current_matrix->method, paused_p); #endif +#ifdef HAVE_XWIDGETS + xwidget_end_redisplay (w, w->current_matrix); +#endif clear_glyph_matrix (desired_matrix); return paused_p; @@ -4118,6 +4125,11 @@ scrolling_window (struct window *w, bool header_line_p) break; } +#ifdef HAVE_XWIDGETS + /* Currently this seems needed to detect xwidget movement reliably. */ + return 0; +#endif + /* Give up if some rows in the desired matrix are not enabled. */ if (! MATRIX_ROW_ENABLED_P (desired_matrix, i)) return -1; diff --git a/src/emacs.c b/src/emacs.c index b1b2170..6de0fff 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -66,6 +66,9 @@ along with GNU Emacs. If not, see . */ #include "buffer.h" #include "window.h" +#ifdef HAVE_XWIDGETS +# include "xwidget.h" +#endif #include "atimer.h" #include "blockinput.h" #include "syssignal.h" @@ -1485,6 +1488,9 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem syms_of_xfns (); syms_of_xmenu (); syms_of_fontset (); +#ifdef HAVE_XWIDGETS + syms_of_xwidget (); +#endif syms_of_xsettings (); #ifdef HAVE_X_SM syms_of_xsmfns (); diff --git a/src/emacsgtkfixed.c b/src/emacsgtkfixed.c index cdcaf80..da1017d 100644 --- a/src/emacsgtkfixed.c +++ b/src/emacsgtkfixed.c @@ -23,6 +23,9 @@ along with GNU Emacs. If not, see . */ #include "lisp.h" #include "frame.h" #include "xterm.h" +#ifdef HAVE_XWIDGETS +# include "xwidget.h" +#endif #include "emacsgtkfixed.h" /* Silence a bogus diagnostic; see GNOME bug 683906. */ @@ -31,27 +34,10 @@ along with GNU Emacs. If not, see . */ # pragma GCC diagnostic ignored "-Wunused-local-typedefs" #endif -#define EMACS_TYPE_FIXED emacs_fixed_get_type () -#define EMACS_FIXED(obj) \ - G_TYPE_CHECK_INSTANCE_CAST (obj, EMACS_TYPE_FIXED, EmacsFixed) - typedef struct _EmacsFixed EmacsFixed; typedef struct _EmacsFixedPrivate EmacsFixedPrivate; typedef struct _EmacsFixedClass EmacsFixedClass; -struct _EmacsFixed -{ - GtkFixed container; - - /*< private >*/ - EmacsFixedPrivate *priv; -}; - -struct _EmacsFixedClass -{ - GtkFixedClass parent_class; -}; - struct _EmacsFixedPrivate { struct frame *f; @@ -64,9 +50,87 @@ static void emacs_fixed_get_preferred_width (GtkWidget *widget, static void emacs_fixed_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural); -static GType emacs_fixed_get_type (void); G_DEFINE_TYPE (EmacsFixed, emacs_fixed, GTK_TYPE_FIXED) +#ifdef HAVE_XWIDGETS + +struct GtkFixedPrivateL +{ + GList *children; +}; + +static void emacs_fixed_gtk_widget_size_allocate (GtkWidget *widget, + GtkAllocation *allocation) +{ + // For xwidgets. + + // This basically re-implements the base class method and adds an + // additional case for an xwidget view. + + // It would be nicer if the bse class method could be called first, + // and the the xview modification only would remain here. It wasn't + // possible to solve it that way yet. + EmacsFixedClass *klass; + GtkWidgetClass *parent_class; + struct GtkFixedPrivateL* priv; + + klass = EMACS_FIXED_GET_CLASS (widget); + parent_class = g_type_class_peek_parent (klass); + parent_class->size_allocate (widget, allocation); + + priv = G_TYPE_INSTANCE_GET_PRIVATE (widget, + GTK_TYPE_FIXED, + struct GtkFixedPrivateL); + + gtk_widget_set_allocation (widget, allocation); + + if (gtk_widget_get_has_window (widget)) + { + if (gtk_widget_get_realized (widget)) + gdk_window_move_resize (gtk_widget_get_window (widget), + allocation->x, + allocation->y, + allocation->width, + allocation->height); + } + + for (GList *children = priv->children; children; children = children->next) + { + GtkFixedChild *child = children->data; + + if (!gtk_widget_get_visible (child->widget)) + continue; + + GtkRequisition child_requisition; + gtk_widget_get_preferred_size (child->widget, &child_requisition, NULL); + + GtkAllocation child_allocation; + child_allocation.x = child->x; + child_allocation.y = child->y; + + if (!gtk_widget_get_has_window (widget)) + { + child_allocation.x += allocation->x; + child_allocation.y += allocation->y; + } + + child_allocation.width = child_requisition.width; + child_allocation.height = child_requisition.height; + + struct xwidget_view *xv + = g_object_get_data (G_OBJECT (child->widget), XG_XWIDGET_VIEW); + if (xv) + { + child_allocation.width = xv->clip_right; + child_allocation.height = xv->clip_bottom - xv->clip_top; + } + + gtk_widget_size_allocate (child->widget, &child_allocation); + } +} + +#endif /* HAVE_XWIDGETS */ + static void emacs_fixed_class_init (EmacsFixedClass *klass) { @@ -74,11 +138,16 @@ emacs_fixed_class_init (EmacsFixedClass *klass) widget_class = (GtkWidgetClass*) klass; + widget_class->get_preferred_width = emacs_fixed_get_preferred_width; widget_class->get_preferred_height = emacs_fixed_get_preferred_height; +#ifdef HAVE_XWIDGETS + widget_class->size_allocate = emacs_fixed_gtk_widget_size_allocate; +#endif g_type_class_add_private (klass, sizeof (EmacsFixedPrivate)); } + static void emacs_fixed_init (EmacsFixed *fixed) { diff --git a/src/emacsgtkfixed.h b/src/emacsgtkfixed.h index 73280b8..5b2fa56 100644 --- a/src/emacsgtkfixed.h +++ b/src/emacsgtkfixed.h @@ -27,7 +27,35 @@ struct frame; G_BEGIN_DECLS +struct frame; + +#define EMACS_TYPE_FIXED (emacs_fixed_get_type ()) +#define EMACS_FIXED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EMACS_TYPE_FIXED, EmacsFixed)) +#define EMACS_FIXED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EMACS_TYPE_FIXED, EmacsFixedClass)) +#define EMACS_IS_FIXED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EMACS_TYPE_FIXED)) +#define EMACS_IS_FIXED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EMACS_TYPE_FIXED)) +#define EMACS_FIXED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EMACS_TYPE_FIXED, EmacsFixedClass)) + +//typedef struct _EmacsFixed EmacsFixed; +typedef struct _EmacsFixedPrivate EmacsFixedPrivate; +typedef struct _EmacsFixedClass EmacsFixedClass; + +struct _EmacsFixed +{ + GtkFixed container; + + /*< private >*/ + EmacsFixedPrivate *priv; +}; + + +struct _EmacsFixedClass +{ + GtkFixedClass parent_class; +}; + extern GtkWidget *emacs_fixed_new (struct frame *f); +extern GType emacs_fixed_get_type (void); G_END_DECLS diff --git a/src/keyboard.c b/src/keyboard.c index 6bdfc1a..58831f5 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -4014,6 +4014,13 @@ kbd_buffer_get_event (KBOARD **kbp, kbd_fetch_ptr = event + 1; } #endif +#ifdef HAVE_XWIDGETS + else if (event->kind == XWIDGET_EVENT) + { + obj = make_lispy_event (&event->ie); + kbd_fetch_ptr = event + 1; + } +#endif else if (event->kind == CONFIG_CHANGED_EVENT) { obj = make_lispy_event (&event->ie); @@ -5950,6 +5957,14 @@ make_lispy_event (struct input_event *event) } #endif /* HAVE_DBUS */ +#ifdef HAVE_XWIDGETS + case XWIDGET_EVENT: + { + return Fcons (Qxwidget_event,event->arg); + } +#endif + + #if defined HAVE_GFILENOTIFY || defined HAVE_INOTIFY case FILE_NOTIFY_EVENT: { @@ -10956,6 +10971,10 @@ syms_of_keyboard (void) DEFSYM (Qdbus_event, "dbus-event"); #endif +#ifdef HAVE_XWIDGETS + DEFSYM (Qxwidget_event,"xwidget-event"); +#endif + #ifdef USE_FILE_NOTIFY DEFSYM (Qfile_notify, "file-notify"); #endif /* USE_FILE_NOTIFY */ diff --git a/src/lisp.h b/src/lisp.h index f33a8f2..b0a8d75 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -799,6 +799,12 @@ enum pvec_type PVEC_WINDOW_CONFIGURATION, PVEC_SUBR, PVEC_OTHER, + +#ifdef HAVE_XWIDGETS + PVEC_XWIDGET, + PVEC_XWIDGET_VIEW, +#endif + /* These should be last, check internal_equal to see why. */ PVEC_COMPILED, PVEC_CHAR_TABLE, diff --git a/src/print.c b/src/print.c index 269d8f2..4dd4e96 100644 --- a/src/print.c +++ b/src/print.c @@ -33,6 +33,10 @@ along with GNU Emacs. If not, see . */ #include "intervals.h" #include "blockinput.h" +#ifdef HAVE_XWIDGETS +# include "xwidget.h" +#endif + #include #include #include @@ -1736,6 +1740,18 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag) print_c_string (XSUBR (obj)->symbol_name, printcharfun); printchar ('>', printcharfun); } +#ifdef HAVE_XWIDGETS + else if (XWIDGETP (obj)) + { + print_c_string ("#', printcharfun); + } + else if (XWIDGET_VIEW_P (obj)) + { + print_c_string ("#', printcharfun); + } +#endif else if (WINDOWP (obj)) { int len = sprintf (buf, "#. */ #ifdef MSDOS #include "msdos.h" #endif +#ifdef HAVE_XWIDGETS +# include "xwidget.h" +#endif static ptrdiff_t count_windows (struct window *); static ptrdiff_t get_leaf_windows (struct window *, struct window **, @@ -4370,6 +4373,9 @@ Signal an error when WINDOW is the only window on its frame. */) /* Block input. */ block_input (); +#ifdef HAVE_XWIDGETS + xwidget_view_delete_all_in_window (w); +#endif window_resize_apply (p, horflag); /* If this window is referred to by the dpyinfo's mouse highlight, invalidate that slot to be safe (Bug#9904). */ diff --git a/src/xdisp.c b/src/xdisp.c index d730a0b..89385c0 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -318,6 +318,9 @@ along with GNU Emacs. If not, see . */ #include TERM_HEADER #endif /* HAVE_WINDOW_SYSTEM */ +#ifdef HAVE_XWIDGETS +# include "xwidget.h" +#endif #ifndef FRAME_X_OUTPUT #define FRAME_X_OUTPUT(f) ((f)->output_data.x) #endif @@ -854,6 +857,9 @@ static bool next_element_from_buffer (struct it *); static bool next_element_from_composition (struct it *); static bool next_element_from_image (struct it *); static bool next_element_from_stretch (struct it *); +#ifdef HAVE_XWIDGETS +static bool next_element_from_xwidget (struct it *); +#endif static void load_overlay_strings (struct it *, ptrdiff_t); static bool get_next_display_element (struct it *); static enum move_it_result @@ -4690,6 +4696,9 @@ handle_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object, if (CONSP (spec) /* Simple specifications. */ && !EQ (XCAR (spec), Qimage) +#ifdef HAVE_XWIDGETS + && !EQ (XCAR (spec), Qxwidget) +#endif && !EQ (XCAR (spec), Qspace) && !EQ (XCAR (spec), Qwhen) && !EQ (XCAR (spec), Qslice) @@ -5137,7 +5146,12 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object, || ((it ? FRAME_WINDOW_P (it->f) : frame_window_p) && valid_image_p (value)) #endif /* not HAVE_WINDOW_SYSTEM */ - || (CONSP (value) && EQ (XCAR (value), Qspace))); + || (CONSP (value) && EQ (XCAR (value), Qspace)) +#ifdef HAVE_XWIDGETS + || ((it ? FRAME_WINDOW_P (it->f) : frame_window_p) + && valid_xwidget_spec_p (value)) +#endif + ); if (valid_p && display_replaced == 0) { @@ -5212,6 +5226,17 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object, *position = it->position = start_pos; retval = 1 + (it->area == TEXT_AREA); } +#ifdef HAVE_XWIDGETS + else if (valid_xwidget_spec_p(value)) + { + it->what = IT_XWIDGET; + it->method = GET_FROM_XWIDGET; + it->position = start_pos; + it->object = NILP (object) ? it->w->contents : object; + *position = start_pos; + it->xwidget = lookup_xwidget(value); + } +#endif #ifdef HAVE_WINDOW_SYSTEM else { @@ -5964,6 +5989,11 @@ push_it (struct it *it, struct text_pos *position) case GET_FROM_STRETCH: p->u.stretch.object = it->object; break; +#ifdef HAVE_XWIDGETS + case GET_FROM_XWIDGET: + p->u.xwidget.object = it->object; + break; +#endif case GET_FROM_BUFFER: case GET_FROM_DISPLAY_VECTOR: case GET_FROM_STRING: @@ -6065,6 +6095,11 @@ pop_it (struct it *it) it->object = p->u.image.object; it->slice = p->u.image.slice; break; +#ifdef HAVE_XWIDGETS + case GET_FROM_XWIDGET: + it->object = p->u.xwidget.object; + break; +#endif case GET_FROM_STRETCH: it->object = p->u.stretch.object; break; @@ -6739,7 +6774,10 @@ static next_element_function const get_next_element[NUM_IT_METHODS] = next_element_from_string, next_element_from_c_string, next_element_from_image, - next_element_from_stretch + next_element_from_stretch, +#ifdef HAVE_XWIDGETS + next_element_from_xwidget, +#endif }; #define GET_NEXT_DISPLAY_ELEMENT(it) (*get_next_element[(it)->method]) (it) @@ -7600,6 +7638,10 @@ set_iterator_to_next (struct it *it, bool reseat_p) case GET_FROM_IMAGE: case GET_FROM_STRETCH: +#ifdef HAVE_XWIDGETS + case GET_FROM_XWIDGET: +#endif + /* The position etc with which we have to proceed are on the stack. The position may be at the end of a string, if the `display' property takes up the whole string. */ @@ -8061,6 +8103,15 @@ next_element_from_image (struct it *it) return true; } +#ifdef HAVE_XWIDGETS +static bool +next_element_from_xwidget (struct it *it) +{ + it->what = IT_XWIDGET; + return true; +} +#endif + /* Fill iterator IT with next display element from a stretch glyph property. IT->object is the value of the text property. Value is @@ -18793,6 +18844,28 @@ dump_glyph (struct glyph_row *row, struct glyph *glyph, int area) glyph->left_box_line_p, glyph->right_box_line_p); } +#ifdef HAVE_XWIDGETS + else if (glyph->type == XWIDGET_GLYPH) + { + fprintf (stderr, + " %5d %4c %6d %c %3d 0x%05x %c %4d %1.1d%1.1d\n", + glyph - row->glyphs[TEXT_AREA], + 'X', + glyph->charpos, + (BUFFERP (glyph->object) + ? 'B' + : (STRINGP (glyph->object) + ? 'S' + : '-')), + glyph->pixel_width, + glyph->u.xwidget, + '.', + glyph->face_id, + glyph->left_box_line_p, + glyph->right_box_line_p); + + } +#endif } @@ -24291,6 +24364,13 @@ calc_pixel_width_or_height (double *res, struct it *it, Lisp_Object prop, return OK_PIXELS (width_p ? img->width : img->height); } +# ifdef HAVE_XWIDGETS + if (FRAME_WINDOW_P (it->f) && valid_xwidget_spec_p (prop)) + { + // TODO: Don't return dummy size. + return OK_PIXELS (100); + } +# endif #endif if (EQ (car, Qplus) || EQ (car, Qminus)) { @@ -24796,6 +24876,18 @@ fill_image_glyph_string (struct glyph_string *s) } +#ifdef HAVE_XWIDGETS +static void +fill_xwidget_glyph_string (struct glyph_string *s) +{ + eassert (s->first_glyph->type == XWIDGET_GLYPH); + s->face = FACE_FROM_ID (s->f, s->first_glyph->face_id); + s->font = s->face->font; + s->width = s->first_glyph->pixel_width; + s->ybase += s->first_glyph->voffset; + s->xwidget = s->first_glyph->u.xwidget; +} +#endif /* Fill glyph string S from a sequence of stretch glyphs. START is the index of the first glyph to consider, @@ -25181,6 +25273,20 @@ compute_overhangs_and_x (struct glyph_string *s, int x, bool backward_p) } \ while (false) +#ifdef HAVE_XWIDGETS +#define BUILD_XWIDGET_GLYPH_STRING(START, END, HEAD, TAIL, HL, X, LAST_X) \ + do \ + { \ + s = alloca (sizeof *s); \ + INIT_GLYPH_STRING (s, NULL, w, row, area, START, HL); \ + fill_xwidget_glyph_string (s); \ + append_glyph_string (&(HEAD), &(TAIL), s); \ + ++(START); \ + s->x = (X); \ + } \ + while (false) +#endif + /* Add a glyph string for a sequence of character glyphs to the list of strings between HEAD and TAIL. START is the index of the first @@ -25302,7 +25408,7 @@ compute_overhangs_and_x (struct glyph_string *s, int x, bool backward_p) to allocate glyph strings (because draw_glyphs can be called asynchronously). */ -#define BUILD_GLYPH_STRINGS(START, END, HEAD, TAIL, HL, X, LAST_X) \ +#define BUILD_GLYPH_STRINGS_1(START, END, HEAD, TAIL, HL, X, LAST_X) \ do \ { \ HEAD = TAIL = NULL; \ @@ -25333,8 +25439,17 @@ compute_overhangs_and_x (struct glyph_string *s, int x, bool backward_p) case IMAGE_GLYPH: \ BUILD_IMAGE_GLYPH_STRING (START, END, HEAD, TAIL, \ HL, X, LAST_X); \ - break; \ - \ + break; + +#ifdef HAVE_XWIDGETS +# define BUILD_GLYPH_STRINGS_XW(START, END, HEAD, TAIL, HL, X, LAST_X) \ + case XWIDGET_GLYPH: \ + BUILD_XWIDGET_GLYPH_STRING (START, END, HEAD, TAIL, \ + HL, X, LAST_X); \ + break; +#endif + +#define BUILD_GLYPH_STRINGS_2(START, END, HEAD, TAIL, HL, X, LAST_X) \ case GLYPHLESS_GLYPH: \ BUILD_GLYPHLESS_GLYPH_STRING (START, END, HEAD, TAIL, \ HL, X, LAST_X); \ @@ -25353,6 +25468,18 @@ compute_overhangs_and_x (struct glyph_string *s, int x, bool backward_p) } while (false) +#ifdef HAVE_XWIDGETS +# define BUILD_GLYPH_STRINGS(START, END, HEAD, TAIL, HL, X, LAST_X) \ + BUILD_GLYPH_STRINGS_1(START, END, HEAD, TAIL, HL, X, LAST_X) \ + BUILD_GLYPH_STRINGS_XW(START, END, HEAD, TAIL, HL, X, LAST_X) \ + BUILD_GLYPH_STRINGS_2(START, END, HEAD, TAIL, HL, X, LAST_X) +#else +# define BUILD_GLYPH_STRINGS(START, END, HEAD, TAIL, HL, X, LAST_X) \ + BUILD_GLYPH_STRINGS_1(START, END, HEAD, TAIL, HL, X, LAST_X) \ + BUILD_GLYPH_STRINGS_2(START, END, HEAD, TAIL, HL, X, LAST_X) +#endif + + /* Draw glyphs between START and END in AREA of ROW on window W, starting at x-position X. X is relative to AREA in W. HL is a face-override with the following meaning: @@ -25991,6 +26118,109 @@ produce_image_glyph (struct it *it) } } +#ifdef HAVE_XWIDGETS +static void +produce_xwidget_glyph (struct it *it) +{ + struct xwidget *xw; + int glyph_ascent, crop; + eassert (it->what == IT_XWIDGET); + + struct face *face = FACE_FROM_ID (it->f, it->face_id); + eassert (face); + /* Make sure X resources of the face is loaded. */ + prepare_face_for_display (it->f, face); + + xw = it->xwidget; + it->ascent = it->phys_ascent = glyph_ascent = xw->height/2; + it->descent = xw->height/2; + it->phys_descent = it->descent; + it->pixel_width = xw->width; + /* It's quite possible for images to have an ascent greater than + their height, so don't get confused in that case. */ + if (it->descent < 0) + it->descent = 0; + + it->nglyphs = 1; + + if (face->box != FACE_NO_BOX) + { + if (face->box_line_width > 0) + { + it->ascent += face->box_line_width; + it->descent += face->box_line_width; + } + + if (it->start_of_box_run_p) + it->pixel_width += eabs (face->box_line_width); + it->pixel_width += eabs (face->box_line_width); + } + + take_vertical_position_into_account (it); + + /* Automatically crop wide image glyphs at right edge so we can + draw the cursor on same display row. */ + crop = it->pixel_width - (it->last_visible_x - it->current_x); + if (crop > 0 && (it->hpos == 0 || it->pixel_width > it->last_visible_x / 4)) + it->pixel_width -= crop; + + if (it->glyph_row) + { + enum glyph_row_area area = it->area; + struct glyph *glyph + = it->glyph_row->glyphs[area] + it->glyph_row->used[area]; + + if (it->glyph_row->reversed_p) + { + struct glyph *g; + + /* Make room for the new glyph. */ + for (g = glyph - 1; g >= it->glyph_row->glyphs[it->area]; g--) + g[1] = *g; + glyph = it->glyph_row->glyphs[it->area]; + } + if (glyph < it->glyph_row->glyphs[area + 1]) + { + glyph->charpos = CHARPOS (it->position); + glyph->object = it->object; + glyph->pixel_width = it->pixel_width; + glyph->ascent = glyph_ascent; + glyph->descent = it->descent; + glyph->voffset = it->voffset; + glyph->type = XWIDGET_GLYPH; + glyph->avoid_cursor_p = it->avoid_cursor_p; + glyph->multibyte_p = it->multibyte_p; + if (it->glyph_row->reversed_p && area == TEXT_AREA) + { + /* In R2L rows, the left and the right box edges need to be + drawn in reverse direction. */ + glyph->right_box_line_p = it->start_of_box_run_p; + glyph->left_box_line_p = it->end_of_box_run_p; + } + else + { + glyph->left_box_line_p = it->start_of_box_run_p; + glyph->right_box_line_p = it->end_of_box_run_p; + } + glyph->overlaps_vertically_p = 0; + glyph->padding_p = 0; + glyph->glyph_not_available_p = 0; + glyph->face_id = it->face_id; + glyph->u.xwidget = it->xwidget; + glyph->font_type = FONT_TYPE_UNKNOWN; + if (it->bidi_p) + { + glyph->resolved_level = it->bidi_it.resolved_level; + eassert ((it->bidi_it.type & 7) == it->bidi_it.type); + glyph->bidi_type = it->bidi_it.type; + } + ++it->glyph_row->used[area]; + } + else + IT_EXPAND_MATRIX_WIDTH (it, area); + } +} +#endif /* Append a stretch glyph to IT->glyph_row. OBJECT is the source of the glyph, WIDTH and HEIGHT are the width and height of the @@ -27401,6 +27631,10 @@ x_produce_glyphs (struct it *it) produce_image_glyph (it); else if (it->what == IT_STRETCH) produce_stretch_glyph (it); +#ifdef HAVE_XWIDGETS + else if (it->what == IT_XWIDGET) + produce_xwidget_glyph (it); +#endif done: /* Accumulate dimensions. Note: can't assume that it->descent > 0 @@ -27770,6 +28004,10 @@ get_window_cursor_type (struct window *w, struct glyph *glyph, int *width, /* Use normal cursor if not blinked off. */ if (!w->cursor_off_p) { +#ifdef HAVE_XWIDGETS + if (glyph != NULL && glyph->type == XWIDGET_GLYPH) + return NO_CURSOR; +#endif if (glyph != NULL && glyph->type == IMAGE_GLYPH) { if (cursor_type == FILLED_BOX_CURSOR) diff --git a/src/xterm.c b/src/xterm.c index 5a6d643..44eed22 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -62,6 +62,9 @@ along with GNU Emacs. If not, see . */ #include "composite.h" #include "frame.h" #include "dispextern.h" +#ifdef HAVE_XWIDGETS +# include "xwidget.h" +#endif #include "fontset.h" #include "termhooks.h" #include "termopts.h" @@ -3511,6 +3514,12 @@ x_draw_glyph_string (struct glyph_string *s) x_draw_image_glyph_string (s); break; +#ifdef HAVE_XWIDGETS + case XWIDGET_GLYPH: + x_draw_xwidget_glyph_string (s); + break; +#endif + case STRETCH_GLYPH: x_draw_stretch_glyph_string (s); break; @@ -8920,6 +8929,11 @@ x_draw_bar_cursor (struct window *w, struct glyph_row *row, int width, enum text if (cursor_glyph == NULL) return; +#ifdef HAVE_XWIDGETS + if (cursor_glyph->type == XWIDGET_GLYPH) + return; // Experimental avoidance of cursor on xwidget. +#endif + /* If on an image, draw like a normal cursor. That's usually better visible than drawing a bar, esp. if the image is large so that the bar might not be in the window. */ diff --git a/src/xwidget.c b/src/xwidget.c new file mode 100644 index 0000000..74319e1 --- /dev/null +++ b/src/xwidget.c @@ -0,0 +1,1332 @@ +/* Support for embedding graphical components in a buffer. + +Copyright (C) 2011-2015 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs. If not, see . */ + +#include + + +#include + +#include +#include +#ifdef HAVE_X_WINDOWS + +#include "lisp.h" +#include "blockinput.h" +#include "syssignal.h" + +#include "xterm.h" +#include + +#ifndef makedev +# include +#endif + +#ifdef BSD_SYSTEM +# include +#endif + +#include "systime.h" + +#ifndef INCLUDED_FCNTL +# include +#endif +#include +#include +#include +#include + +#include "charset.h" +#include "character.h" +#include "coding.h" +#include "ccl.h" +#include "frame.h" +#include "dispextern.h" +#include "fontset.h" +#include "termhooks.h" +#include "termopts.h" +#include "termchar.h" +#include "disptab.h" +#include "buffer.h" +#include "window.h" +#include "keyboard.h" +#include "intervals.h" +#include "process.h" +#include "atimer.h" +#include "keymap.h" + + +#ifdef USE_X_TOOLKIT +#include +#endif +#include +#include +#include +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +#include "gtkutil.h" +#include "font.h" +#endif /* HAVE_X_WINDOWS */ + +#include +#include + +#include + +#include "emacsgtkfixed.h" + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "xwidget.h" + +static struct xwidget * +allocate_xwidget (void) +{ + return ALLOCATE_PSEUDOVECTOR (struct xwidget, height, PVEC_XWIDGET); +} + +static struct xwidget_view * +allocate_xwidget_view (void) +{ + return ALLOCATE_PSEUDOVECTOR (struct xwidget_view, redisplayed, + PVEC_XWIDGET_VIEW); +} + +#define XSETXWIDGET(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_XWIDGET)) +#define XSETXWIDGET_VIEW(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_XWIDGET_VIEW)) + +struct xwidget_view *xwidget_view_lookup (struct xwidget *, struct window *); +Lisp_Object xwidget_spec_value (Lisp_Object , Lisp_Object , int *); +gboolean offscreen_damage_event (GtkWidget * , GdkEvent * , gpointer ); +void webkit_document_load_finished_cb (WebKitWebView *, WebKitWebFrame *, + gpointer ); +gboolean webkit_download_cb (WebKitWebView *, WebKitDownload *, gpointer); + +gboolean +webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *, + WebKitWebFrame *, + WebKitNetworkRequest *, + gchar *, + WebKitWebPolicyDecision *, + gpointer); + +gboolean +webkit_new_window_policy_decision_requested_cb (WebKitWebView *, + WebKitWebFrame *, + WebKitNetworkRequest *, + WebKitWebNavigationAction *, + WebKitWebPolicyDecision *, + gpointer); + +gboolean +webkit_navigation_policy_decision_requested_cb (WebKitWebView *, + WebKitWebFrame *, + WebKitNetworkRequest *, + WebKitWebNavigationAction *, + WebKitWebPolicyDecision *, + gpointer); + + + +DEFUN ("make-xwidget", + Fmake_xwidget, Smake_xwidget, + 7, 8, 0, + doc: /* Make an xwidget from BEG to END of TYPE. + +If BUFFER is nil it uses the current +buffer. If BUFFER is a string and no such +buffer exists, it is created. + +TYPE is a symbol which can take one of the +following values: + +- webkit_osr + +Returns the newly constructed xwidget, or nil if construction +fails. */) + (Lisp_Object beg, Lisp_Object end, + Lisp_Object type, + Lisp_Object title, + Lisp_Object width, Lisp_Object height, + Lisp_Object arguments, Lisp_Object buffer) +{ + //should work a bit like "make-button"(make-button BEG END &rest PROPERTIES) + // arg "type" and fwd should be keyword args eventually + //(make-xwidget 3 3 'button "oei" 31 31 nil) + //(xwidget-info (car xwidget-list)) + struct xwidget *xw = allocate_xwidget (); + Lisp_Object val; + xw->type = type; + xw->title = title; + if (NILP (buffer)) + buffer = Fcurrent_buffer (); // no need to gcpro because + // Fcurrent_buffer doesn't + // call Feval/eval_sub. + else + buffer = Fget_buffer_create (buffer); + xw->buffer = buffer; + + xw->height = XFASTINT (height); + xw->width = XFASTINT (width); + xw->kill_without_query = 0; + XSETXWIDGET (val, xw); // set the vectorlike_header of VAL + // with the correct value + Vxwidget_list = Fcons (val, Vxwidget_list); + xw->widgetwindow_osr = NULL; + xw->widget_osr = NULL; + xw->plist = Qnil; + + + if (EQ (xw->type, Qwebkit_osr)) + { + block_input (); + xw->widgetwindow_osr = gtk_offscreen_window_new (); + gtk_window_resize (GTK_WINDOW (xw->widgetwindow_osr), xw->width, + xw->height); + xw->widgetscrolledwindow_osr = NULL; //webkit osr is the + //only scrolled + //component atm + + if (EQ (xw->type, Qwebkit_osr)) + { + xw->widgetscrolledwindow_osr = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW + (xw-> + widgetscrolledwindow_osr), + xw->height); + gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW + (xw-> + widgetscrolledwindow_osr), + xw->width); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW + (xw->widgetscrolledwindow_osr), + GTK_POLICY_ALWAYS, + GTK_POLICY_ALWAYS); + + xw->widget_osr = webkit_web_view_new (); + gtk_container_add (GTK_CONTAINER (xw->widgetscrolledwindow_osr), + GTK_WIDGET (WEBKIT_WEB_VIEW (xw->widget_osr))); + } + + gtk_widget_set_size_request (GTK_WIDGET (xw->widget_osr), xw->width, + xw->height); + + if (EQ (xw->type, Qwebkit_osr)) + { + gtk_container_add (GTK_CONTAINER (xw->widgetwindow_osr), + xw->widgetscrolledwindow_osr); + } + else + { + gtk_container_add (GTK_CONTAINER (xw->widgetwindow_osr), + xw->widget_osr); + } + + gtk_widget_show (xw->widget_osr); + gtk_widget_show (xw->widgetwindow_osr); + gtk_widget_show (xw->widgetscrolledwindow_osr); + + /* store some xwidget data in the gtk widgets for convenient + retrieval in the event handlers. */ + g_object_set_data (G_OBJECT (xw->widget_osr), XG_XWIDGET, + (gpointer) (xw)); + g_object_set_data (G_OBJECT (xw->widgetwindow_osr), XG_XWIDGET, + (gpointer) (xw)); + + /* signals */ + if (EQ (xw->type, Qwebkit_osr)) + { + g_signal_connect (G_OBJECT (xw->widget_osr), + "document-load-finished", + G_CALLBACK + (webkit_document_load_finished_cb), xw); + + g_signal_connect (G_OBJECT (xw->widget_osr), + "download-requested", + G_CALLBACK (webkit_download_cb), xw); + + g_signal_connect (G_OBJECT (xw->widget_osr), + "mime-type-policy-decision-requested", + G_CALLBACK + (webkit_mime_type_policy_typedecision_requested_cb), + xw); + + g_signal_connect (G_OBJECT (xw->widget_osr), + "new-window-policy-decision-requested", + G_CALLBACK + (webkit_new_window_policy_decision_requested_cb), + xw); + + g_signal_connect (G_OBJECT (xw->widget_osr), + "navigation-policy-decision-requested", + G_CALLBACK + (webkit_navigation_policy_decision_requested_cb), + xw); + } + + unblock_input (); + + } + + return val; +} + +DEFUN ("get-buffer-xwidgets", Fget_buffer_xwidgets, Sget_buffer_xwidgets, + 1, 1, 0, + doc: /* Return a list of xwidgets associated with BUFFER. +BUFFER may be a buffer or the name of one. */) + (Lisp_Object buffer) +{ + Lisp_Object xw, tail, xw_list; + + if (NILP (buffer)) + return Qnil; + buffer = Fget_buffer (buffer); + if (NILP (buffer)) + return Qnil; + + xw_list = Qnil; + + for (tail = Vxwidget_list; CONSP (tail); tail = XCDR (tail)) + { + xw = XCAR (tail); + if (XWIDGETP (xw) && EQ (Fxwidget_buffer (xw), buffer)) + xw_list = Fcons (xw, xw_list); + } + return xw_list; +} + +static int +xwidget_hidden (struct xwidget_view *xv) +{ + return xv->hidden; +} + + + +static void +xwidget_show_view (struct xwidget_view *xv) +{ + xv->hidden = 0; + gtk_widget_show (xv->widgetwindow); + gtk_fixed_move (GTK_FIXED (xv->emacswindow), + xv->widgetwindow, + xv->x + xv->clip_left, + xv->y + xv->clip_top); +} + + +/* Hide an xvidget view. */ +static void +xwidget_hide_view (struct xwidget_view *xv) +{ + xv->hidden = 1; + gtk_fixed_move (GTK_FIXED (xv->emacswindow), xv->widgetwindow, + 10000, 10000); +} + + + +/* When the off-screen webkit master view changes this signal is called. + It copies the bitmap from the off-screen instance. */ +gboolean +offscreen_damage_event (GtkWidget * widget, GdkEvent * event, + gpointer xv_widget) +{ + // Queue a redraw of onscreen widget. + // There is a guard against receiving an invalid widget, + // which should only happen if we failed to remove the + // specific signal handler for the damage event. + if (GTK_IS_WIDGET (xv_widget)) + gtk_widget_queue_draw (GTK_WIDGET (xv_widget)); + else + printf ("Warning, offscreen_damage_event received invalid xv pointer:%p\n", + (void *) xv_widget); + + return FALSE; +} + +static void +store_xwidget_event_string (struct xwidget *xw, const char *eventname, + const char *eventstr) +{ + struct input_event event; + Lisp_Object xwl; + XSETXWIDGET (xwl, xw); + EVENT_INIT (event); + event.kind = XWIDGET_EVENT; + event.frame_or_window = Qnil; + + event.arg = Qnil; + event.arg = Fcons (build_string (eventstr), event.arg); + event.arg = Fcons (xwl, event.arg); + event.arg = Fcons (intern (eventname), event.arg); + kbd_buffer_store_event (&event); + +} + +//TODO deprecated, use load-status +void +webkit_document_load_finished_cb (WebKitWebView * webkitwebview, + WebKitWebFrame * arg1, + gpointer data) +{ + struct xwidget *xw = + (struct xwidget *) g_object_get_data (G_OBJECT (webkitwebview), + XG_XWIDGET); + + store_xwidget_event_string (xw, "document-load-finished", ""); +} + +gboolean +webkit_download_cb (WebKitWebView * webkitwebview, + WebKitDownload * arg1, + gpointer data) +{ + struct xwidget *xw = + (struct xwidget *) g_object_get_data (G_OBJECT (webkitwebview), + XG_XWIDGET); + store_xwidget_event_string (xw, "download-requested", + webkit_download_get_uri (arg1)); + + return FALSE; +} + +gboolean +webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *webView, + WebKitWebFrame *frame, + WebKitNetworkRequest * request, + gchar * mimetype, + WebKitWebPolicyDecision *policy_decision, + gpointer user_data) +{ + // This function makes webkit send a download signal for all unknown + // mime types. TODO Defer the decision to lisp, so that its possible + // to make Emacs handle teext mime for instance.xs + if (!webkit_web_view_can_show_mime_type (webView, mimetype)) + { + webkit_web_policy_decision_download (policy_decision); + return TRUE; + } + else + { + return FALSE; + } +} + + +gboolean +webkit_new_window_policy_decision_requested_cb (WebKitWebView *webView, + WebKitWebFrame *frame, + WebKitNetworkRequest *request, + WebKitWebNavigationAction *navigation_action, + WebKitWebPolicyDecision *policy_decision, + gpointer user_data) +{ + struct xwidget *xw = + (struct xwidget *) g_object_get_data (G_OBJECT (webView), XG_XWIDGET); + webkit_web_navigation_action_get_original_uri (navigation_action); + + store_xwidget_event_string (xw, "new-window-policy-decision-requested", + webkit_web_navigation_action_get_original_uri + (navigation_action)); + return FALSE; +} + +gboolean +webkit_navigation_policy_decision_requested_cb (WebKitWebView *webView, + WebKitWebFrame *frame, + WebKitNetworkRequest *request, + WebKitWebNavigationAction *navigation_action, + WebKitWebPolicyDecision * policy_decision, + gpointer user_data) +{ + struct xwidget *xw = + (struct xwidget *) g_object_get_data (G_OBJECT (webView), XG_XWIDGET); + store_xwidget_event_string (xw, "navigation-policy-decision-requested", + webkit_web_navigation_action_get_original_uri + (navigation_action)); + return FALSE; +} + +// For gtk3 offscreen rendered widgets. +static gboolean +xwidget_osr_draw_cb (GtkWidget * widget, cairo_t * cr, gpointer data) +{ + struct xwidget *xw = + (struct xwidget *) g_object_get_data (G_OBJECT (widget), XG_XWIDGET); + struct xwidget_view *xv = + (struct xwidget_view *) g_object_get_data (G_OBJECT (widget), + XG_XWIDGET_VIEW); + + cairo_rectangle (cr, 0, 0, xv->clip_right, xv->clip_bottom); + cairo_clip (cr); + + if (xw->widgetscrolledwindow_osr != NULL) + gtk_widget_draw (xw->widgetscrolledwindow_osr, cr); + else + gtk_widget_draw (xw->widget_osr, cr); + return FALSE; +} + +static gboolean +xwidget_osr_event_forward (GtkWidget * widget, + GdkEvent * event, + gpointer user_data) +{ + /* Copy events that arrive at the outer widget to the offscreen widget. */ + struct xwidget *xw = + (struct xwidget *) g_object_get_data (G_OBJECT (widget), XG_XWIDGET); + GdkEvent *eventcopy = gdk_event_copy (event); + eventcopy->any.window = gtk_widget_get_window (xw->widget_osr); + + //TODO This might leak events. They should be deallocated later, + //perhaps in xwgir_event_cb + gtk_main_do_event (eventcopy); + return TRUE; //dont propagate this event furter +} + + +static gboolean +xwidget_osr_event_set_embedder (GtkWidget * widget, + GdkEvent * event, gpointer data) +{ + struct xwidget_view *xv = (struct xwidget_view *) data; + struct xwidget *xww = XXWIDGET (xv->model); + gdk_offscreen_window_set_embedder (gtk_widget_get_window + (xww->widgetwindow_osr), + gtk_widget_get_window (xv->widget)); + return FALSE; +} + + +/* Initializes and does initial placement of an xwidget view on screen. */ +static struct xwidget_view * +xwidget_init_view (struct xwidget *xww, + struct glyph_string *s, + int x, int y) +{ + struct xwidget_view *xv = allocate_xwidget_view (); + Lisp_Object val; + + XSETXWIDGET_VIEW (val, xv); + Vxwidget_view_list = Fcons (val, Vxwidget_view_list); + + XSETWINDOW (xv->w, s->w); + XSETXWIDGET (xv->model, xww); + + if (EQ (xww->type, Qwebkit_osr)) + { + xv->widget = gtk_drawing_area_new (); + // Expose event handling. + gtk_widget_set_app_paintable (xv->widget, TRUE); + gtk_widget_add_events (xv->widget, GDK_ALL_EVENTS_MASK); + + /* Draw the view on damage-event */ + g_signal_connect (G_OBJECT (xww->widgetwindow_osr), "damage-event", + G_CALLBACK (offscreen_damage_event), xv->widget); + + if (EQ (xww->type, Qwebkit_osr)) + { + g_signal_connect (G_OBJECT (xv->widget), "button-press-event", + G_CALLBACK (xwidget_osr_event_forward), NULL); + g_signal_connect (G_OBJECT (xv->widget), "button-release-event", + G_CALLBACK (xwidget_osr_event_forward), NULL); + g_signal_connect (G_OBJECT (xv->widget), "motion-notify-event", + G_CALLBACK (xwidget_osr_event_forward), NULL); + } + else + { + // xwgir debug , orthogonal to forwarding + g_signal_connect (G_OBJECT (xv->widget), "enter-notify-event", + G_CALLBACK (xwidget_osr_event_set_embedder), xv); + } + g_signal_connect (G_OBJECT (xv->widget), "draw", + G_CALLBACK (xwidget_osr_draw_cb), NULL); + } + // Widget realization. + + // Make container widget 1st, and put the actual widget inside the + // container later. Drawing should crop container window if necessary + // to handle case where xwidget is partially obscured by other Emacs + // windows. Other containers than gtk_fixed where explored, but + // gtk_fixed had the most predictable behaviour so far. + xv->emacswindow = FRAME_GTK_WIDGET (s->f); + xv->widgetwindow = gtk_fixed_new (); + gtk_widget_set_has_window (xv->widgetwindow, TRUE); + gtk_container_add (GTK_CONTAINER (xv->widgetwindow), xv->widget); + + // Store some xwidget data in the gtk widgets. + // The emacs frame. + g_object_set_data (G_OBJECT (xv->widget), XG_FRAME_DATA, (gpointer) (s->f)); + // The xwidget. + g_object_set_data (G_OBJECT (xv->widget), XG_XWIDGET, (gpointer) (xww)); + // The xwidget. + g_object_set_data (G_OBJECT (xv->widget), XG_XWIDGET_VIEW, (gpointer) (xv)); + // The xwidget window. + g_object_set_data (G_OBJECT (xv->widgetwindow), XG_XWIDGET, (gpointer) (xww)); + // the xwidget view. + g_object_set_data (G_OBJECT (xv->widgetwindow), XG_XWIDGET_VIEW, + (gpointer) (xv)); + + + gtk_widget_set_size_request (GTK_WIDGET (xv->widget), xww->width, + xww->height); + gtk_widget_set_size_request (xv->widgetwindow, xww->width, xww->height); + gtk_fixed_put (GTK_FIXED (FRAME_GTK_WIDGET (s->f)), xv->widgetwindow, x, y); + xv->x = x; + xv->y = y; + gtk_widget_show_all (xv->widgetwindow); + + + return xv; +} + + +void +x_draw_xwidget_glyph_string (struct glyph_string *s) +{ + /* This method is called by the redisplay engine and places the + xwidget on screen. Moving and clipping is done here. Also view + initialization. + */ + struct xwidget *xww = s->xwidget; + struct xwidget_view *xv = xwidget_view_lookup (xww, s->w); + int clip_right; + int clip_bottom; + int clip_top; + int clip_left; + + int x = s->x; + int y = s->y + (s->height / 2) - (xww->height / 2); + int moved = 0; + + /* We do initialization here in the display loop because there is no + other time to know things like window placement etc. + */ + xv = xwidget_init_view (xww, s, x, y); + + // Calculate clipping, which is used for all manner of onscreen + // xwidget views. Each widget border can get clipped by other emacs + // objects so there are four clipping variables. + clip_right = + min (xww->width, + WINDOW_RIGHT_EDGE_X (s->w) - x - + WINDOW_RIGHT_SCROLL_BAR_AREA_WIDTH (s->w) - + WINDOW_RIGHT_FRINGE_WIDTH (s->w)); + clip_left = + max (0, + WINDOW_LEFT_EDGE_X (s->w) - x + + WINDOW_LEFT_SCROLL_BAR_AREA_WIDTH (s->w) + + WINDOW_LEFT_FRINGE_WIDTH (s->w)); + + clip_bottom = + min (xww->height, + WINDOW_BOTTOM_EDGE_Y (s->w) - WINDOW_MODE_LINE_HEIGHT (s->w) - y); + clip_top = max (0, WINDOW_TOP_EDGE_Y (s->w) - y); + + // We are conserned with movement of the onscreen area. The area + // might sit still when the widget actually moves. This happens + // when an Emacs window border moves across a widget window. So, if + // any corner of the outer widget clipping window moves, that counts + // as movement here, even if it looks like no movement happens + // because the widget sits still inside the clipping area. The + // widget can also move inside the clipping area, which happens + // later + moved = (xv->x + xv->clip_left != x + clip_left) + || ((xv->y + xv->clip_top) != (y + clip_top)); + xv->x = x; + xv->y = y; + if (moved) // Has it moved? + { + gtk_fixed_move (GTK_FIXED (FRAME_GTK_WIDGET (s->f)), + xv->widgetwindow, x + clip_left, y + clip_top); + } + // Clip the widget window if some parts happen to be outside + // drawable area. An Emacs window is not a gtk window. A gtk window + // covers the entire frame. Clipping might have changed even if we + // havent actualy moved, we try figure out when we need to reclip + // for real. + if ((xv->clip_right != clip_right) + || (xv->clip_bottom != clip_bottom) + || (xv->clip_top != clip_top) || (xv->clip_left != clip_left)) + { + gtk_widget_set_size_request (xv->widgetwindow, clip_right + clip_left, + clip_bottom + clip_top); + gtk_fixed_move (GTK_FIXED (xv->widgetwindow), xv->widget, -clip_left, + -clip_top); + + xv->clip_right = clip_right; + xv->clip_bottom = clip_bottom; + xv->clip_top = clip_top; + xv->clip_left = clip_left; + } + // If emacs wants to repaint the area where the widget lives, queue + // a redraw. It seems its possible to get out of sync with emacs + // redraws so emacs background sometimes shows up instead of the + // xwidgets background. It's just a visual glitch though. + if (!xwidget_hidden (xv)) + { + gtk_widget_queue_draw (xv->widgetwindow); + gtk_widget_queue_draw (xv->widget); + } +} + + +// Macro that checks WEBKIT_IS_WEB_VIEW(xw->widget_osr) first +#define WEBKIT_FN_INIT() \ + struct xwidget* xw; \ + CHECK_XWIDGET (xwidget); \ + if (NILP (xwidget)) {printf("ERROR xwidget nil\n"); return Qnil;}; \ + xw = XXWIDGET (xwidget); \ + if (NULL == xw) printf("ERROR xw is 0\n"); \ + if ((NULL == xw->widget_osr) || !WEBKIT_IS_WEB_VIEW(xw->widget_osr)){ \ + printf ("ERROR xw->widget_osr does not hold a webkit instance\n");\ + return Qnil;\ + }; + + +DEFUN ("xwidget-webkit-goto-uri", + Fxwidget_webkit_goto_uri, Sxwidget_webkit_goto_uri, + 2, 2, 0, + doc: /* Make the xwidget webkit instance referenced by XWIDGET +browse URI. */) + (Lisp_Object xwidget, Lisp_Object uri) +{ + WEBKIT_FN_INIT (); + CHECK_STRING (uri); + webkit_web_view_load_uri (WEBKIT_WEB_VIEW (xw->widget_osr), SSDATA (uri)); + return Qnil; +} + + +DEFUN ("xwidget-webkit-execute-script", + Fxwidget_webkit_execute_script, Sxwidget_webkit_execute_script, + 2, 2, 0, + doc: /* Make the Webkit XWIDGET execute javascript SCRIPT. */) + (Lisp_Object xwidget, Lisp_Object script) +{ + WEBKIT_FN_INIT (); + CHECK_STRING (script); + webkit_web_view_execute_script (WEBKIT_WEB_VIEW (xw->widget_osr), + SSDATA (script)); + return Qnil; +} + +DEFUN ("xwidget-webkit-get-title", + Fxwidget_webkit_get_title, Sxwidget_webkit_get_title, + 1, 1, 0, + doc: /* Returns the title from the Webkit instance in XWIDGET. +This can be used to work around the lack of a return value from the +exec method. */ ) + (Lisp_Object xwidget) +{ + // TODO support multibyte strings + WEBKIT_FN_INIT (); + const gchar *str = + webkit_web_view_get_title (WEBKIT_WEB_VIEW (xw->widget_osr)); + if (str == 0) + { + // TODO maybe return Qnil instead. I suppose webkit returns + // nullpointer when doc is not properly loaded or something + return build_string (""); + } + return build_string (str); +} + +DEFUN ("xwidget-resize", Fxwidget_resize, Sxwidget_resize, 3, 3, 0, + doc: /* Resize XWIDGET. NEW_WIDTH NEW_HEIGHT defines the new +size. */ ) + (Lisp_Object xwidget, Lisp_Object new_width, Lisp_Object new_height) +{ + CHECK_XWIDGET (xwidget); + struct xwidget *xw = XXWIDGET (xwidget); + struct xwidget_view *xv; + int w, h; + + CHECK_NUMBER (new_width); + CHECK_NUMBER (new_height); + w = XFASTINT (new_width); + h = XFASTINT (new_height); + + xw->width = w; + xw->height = h; + // If there is a offscreen widget resize it 1st. + if (xw->widget_osr) + { + gtk_widget_set_size_request (GTK_WIDGET (xw->widget_osr), + xw->width, xw->height); //minimum size + gtk_window_resize (GTK_WINDOW (xw->widgetwindow_osr), xw->width, + xw->height); + gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW + (xw-> + widgetscrolledwindow_osr), + xw->height); + gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW + (xw-> + widgetscrolledwindow_osr), + xw->width); + + gtk_container_resize_children (GTK_CONTAINER (xw->widgetwindow_osr)); + + } + + for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); tail = XCDR (tail)) + { + if (XWIDGET_VIEW_P (XCAR (tail))) + { + xv = XXWIDGET_VIEW (XCAR (tail)); + if (XXWIDGET (xv->model) == xw) + gtk_widget_set_size_request (GTK_WIDGET (xv->widget), xw->width, + xw->height); + } + } + + return Qnil; +} + + + +DEFUN ("xwidget-set-adjustment", + Fxwidget_set_adjustment, Sxwidget_set_adjustment, 4, 4, 0, + doc: /* Set native scrolling for XWIDGET. AXIS can be 'vertical or +'horizontal. If RELATIVE is t, scroll relative, otherwise absolutely. +VALUE is the amount to scroll, either relatively or absolutely. */) + (Lisp_Object xwidget, Lisp_Object axis, Lisp_Object relative, + Lisp_Object value) +{ + CHECK_XWIDGET (xwidget); + struct xwidget *xw = XXWIDGET (xwidget); + GtkAdjustment *adjustment; + float final_value = 0.0; + + adjustment = + gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW + (xw->widgetscrolledwindow_osr)); + if (EQ (Qvertical, axis)) + { + adjustment = + gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW + (xw->widgetscrolledwindow_osr)); + } + if (EQ (Qhorizontal, axis)) + { + adjustment = + gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW + (xw->widgetscrolledwindow_osr)); + } + + if (EQ (Qt, relative)) + { + final_value = gtk_adjustment_get_value (adjustment) + XFASTINT (value); + } + else + { + final_value = 0.0 + XFASTINT (value); + } + + gtk_adjustment_set_value (adjustment, final_value); + + return Qnil; +} + + +DEFUN ("xwidget-size-request", + Fxwidget_size_request, Sxwidget_size_request, + 1, 1, 0, + doc: /* Return the desired size of the XWIDGET. + +This can be used to read the xwidget desired size, and resizes the +Emacs allocated area accordingly. */) + (Lisp_Object xwidget) +{ + CHECK_XWIDGET (xwidget); + GtkRequisition requisition; + Lisp_Object rv; + gtk_widget_size_request (XXWIDGET (xwidget)->widget_osr, &requisition); + rv = Qnil; + rv = Fcons (make_number (requisition.height), rv); + rv = Fcons (make_number (requisition.width), rv); + return rv; + +} + +DEFUN ("xwidgetp", + Fxwidgetp, Sxwidgetp, + 1, 1, 0, + doc: /* Return t if OBJECT is a xwidget. */) + (Lisp_Object object) +{ + return XWIDGETP (object) ? Qt : Qnil; +} + +DEFUN ("xwidget-view-p", + Fxwidget_view_p, Sxwidget_view_p, + 1, 1, 0, + doc: /* Return t if OBJECT is a xwidget-view. */) + (Lisp_Object object) +{ + return XWIDGET_VIEW_P (object) ? Qt : Qnil; +} + +DEFUN ("xwidget-info", + Fxwidget_info, Sxwidget_info, + 1, 1, 0, + doc: /* Return XWIDGET properties in a vector. Currently [TYPE +TITLE WIDTH HEIGHT]. */) + (Lisp_Object xwidget) +{ + CHECK_XWIDGET (xwidget); + Lisp_Object info, n; + struct xwidget *xw = XXWIDGET (xwidget); + + info = Fmake_vector (make_number (4), Qnil); + ASET (info, 0, xw->type); + ASET (info, 1, xw->title); + XSETFASTINT (n, xw->width); + ASET (info, 2, n); + XSETFASTINT (n, xw->height); + ASET (info, 3, n); + + return info; +} + +DEFUN ("xwidget-view-info", + Fxwidget_view_info, Sxwidget_view_info, + 1, 1, 0, + doc: /* Return properties of XWIDGET-VIEW in a vector. +Currently [X Y CLIP_RIGHT CLIP_BOTTOM CLIP_TOP CLIP_LEFT] */) + (Lisp_Object xwidget_view) +{ + CHECK_XWIDGET_VIEW (xwidget_view); + struct xwidget_view *xv = XXWIDGET_VIEW (xwidget_view); + Lisp_Object info; + + info = Fmake_vector (make_number (6), Qnil); + ASET (info, 0, make_number (xv->x)); + ASET (info, 1, make_number (xv->y)); + ASET (info, 2, make_number (xv->clip_right)); + ASET (info, 3, make_number (xv->clip_bottom)); + ASET (info, 4, make_number (xv->clip_top)); + ASET (info, 5, make_number (xv->clip_left)); + + return info; +} + +DEFUN ("xwidget-view-model", + Fxwidget_view_model, Sxwidget_view_model, + 1, 1, 0, + doc: /* Return the model associated with XWIDGET-VIEW. */) + (Lisp_Object xwidget_view) +{ + CHECK_XWIDGET_VIEW (xwidget_view); + return XXWIDGET_VIEW (xwidget_view)->model; +} + +DEFUN ("xwidget-view-window", + Fxwidget_view_window, Sxwidget_view_window, + 1, 1, 0, + doc: /* Return the window of XWIDGET-VIEW. */) + (Lisp_Object xwidget_view) +{ + CHECK_XWIDGET_VIEW (xwidget_view); + return XXWIDGET_VIEW (xwidget_view)->w; +} + + +DEFUN ("delete-xwidget-view", + Fdelete_xwidget_view, Sdelete_xwidget_view, + 1, 1, 0, + doc: /* Delete the XWIDGET-VIEW. */) + (Lisp_Object xwidget_view) +{ + CHECK_XWIDGET_VIEW (xwidget_view); + struct xwidget_view *xv = XXWIDGET_VIEW (xwidget_view); + gtk_widget_destroy (xv->widgetwindow); + Vxwidget_view_list = Fdelq (xwidget_view, Vxwidget_view_list); + // xv->model still has signals pointing to the view. There can be + // several views. Find the matching signals and delete them all. + g_signal_handlers_disconnect_matched (XXWIDGET (xv->model)->widgetwindow_osr, + G_SIGNAL_MATCH_DATA, + 0, 0, 0, 0, + xv->widget); + return Qnil; +} + +DEFUN ("xwidget-view-lookup", + Fxwidget_view_lookup, Sxwidget_view_lookup, + 1, 2, 0, + doc: /* Return the xwidget-view associated with XWIDGET in +WINDOW if specified, otherwise it uses the selected window. Return nil +if no association is found. */) + (Lisp_Object xwidget, Lisp_Object window) +{ + CHECK_XWIDGET (xwidget); + + if (NILP (window)) + window = Fselected_window (); + CHECK_WINDOW (window); + + for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); + tail = XCDR (tail)) + { + Lisp_Object xwidget_view = XCAR (tail); + if (EQ (Fxwidget_view_model (xwidget_view), xwidget) + && EQ (Fxwidget_view_window (xwidget_view), window)) + return xwidget_view; + } + + return Qnil; +} + +DEFUN ("xwidget-plist", + Fxwidget_plist, Sxwidget_plist, + 1, 1, 0, + doc: /* Return the plist of XWIDGET. */) + (register Lisp_Object xwidget) +{ + CHECK_XWIDGET (xwidget); + return XXWIDGET (xwidget)->plist; +} + +DEFUN ("xwidget-buffer", + Fxwidget_buffer, Sxwidget_buffer, + 1, 1, 0, + doc: /* Return the buffer of XWIDGET. */) + (register Lisp_Object xwidget) +{ + CHECK_XWIDGET (xwidget); + return XXWIDGET (xwidget)->buffer; +} + +DEFUN ("set-xwidget-plist", + Fset_xwidget_plist, Sset_xwidget_plist, + 2, 2, 0, + doc: /* Replace the plist of XWIDGET with PLIST. +Returns PLIST. */) + (register Lisp_Object xwidget, Lisp_Object plist) +{ + CHECK_XWIDGET (xwidget); + CHECK_LIST (plist); + + XXWIDGET (xwidget)->plist = plist; + return plist; +} + +DEFUN ("set-xwidget-query-on-exit-flag", + Fset_xwidget_query_on_exit_flag, Sset_xwidget_query_on_exit_flag, + 2, 2, 0, + doc: /* Specify if query is needed for XWIDGET when +Emacs is exited. If the second argument FLAG is non-nil, Emacs will +queries the user before exiting or killing a buffer if XWIDGET is +running. This function returns FLAG. */) + (Lisp_Object xwidget, Lisp_Object flag) +{ + CHECK_XWIDGET (xwidget); + XXWIDGET (xwidget)->kill_without_query = NILP (flag); + return flag; +} + +DEFUN ("xwidget-query-on-exit-flag", + Fxwidget_query_on_exit_flag, Sxwidget_query_on_exit_flag, + 1, 1, 0, + doc: /* Return the current value of query-on-exit +flag for XWIDGET. */) + (Lisp_Object xwidget) +{ + CHECK_XWIDGET (xwidget); + return (XXWIDGET (xwidget)->kill_without_query ? Qnil : Qt); +} + +void +syms_of_xwidget (void) +{ + + defsubr (&Smake_xwidget); + defsubr (&Sxwidgetp); + DEFSYM (Qxwidgetp, "xwidgetp"); + defsubr (&Sxwidget_view_p); + DEFSYM (Qxwidget_view_p, "xwidget-view-p"); + defsubr (&Sxwidget_info); + defsubr (&Sxwidget_view_info); + defsubr (&Sxwidget_resize); + defsubr (&Sget_buffer_xwidgets); + defsubr (&Sxwidget_view_model); + defsubr (&Sxwidget_view_window); + defsubr (&Sxwidget_view_lookup); + defsubr (&Sxwidget_query_on_exit_flag); + defsubr (&Sset_xwidget_query_on_exit_flag); + +#ifdef HAVE_WEBKIT_OSR + defsubr (&Sxwidget_webkit_goto_uri); + defsubr (&Sxwidget_webkit_execute_script); + defsubr (&Sxwidget_webkit_get_title); + DEFSYM (Qwebkit_osr, "webkit-osr"); +#endif + + defsubr (&Sxwidget_size_request); + defsubr (&Sdelete_xwidget_view); + + defsubr (&Sxwidget_plist); + defsubr (&Sxwidget_buffer); + defsubr (&Sset_xwidget_plist); + + defsubr (&Sxwidget_set_adjustment); + + DEFSYM (Qxwidget, "xwidget"); + + DEFSYM (QCxwidget, ":xwidget"); + DEFSYM (QCtitle, ":title"); + + /* Do not forget to update the docstring of make-xwidget if you add + new types. */ + + DEFSYM (Qvertical, "vertical"); + DEFSYM (Qhorizontal, "horizontal"); + + DEFSYM (QCplist, ":plist"); + + DEFVAR_LISP ("xwidget-list", Vxwidget_list, + doc: /* xwidgets list. */); + Vxwidget_list = Qnil; + + DEFVAR_LISP ("xwidget-view-list", Vxwidget_view_list, + doc: /* xwidget views list. */); + Vxwidget_view_list = Qnil; + + Fprovide (intern ("xwidget-internal"), Qnil); + +} + + +/* Value is non-zero if OBJECT is a valid Lisp xwidget specification. A + valid xwidget specification is a list whose car is the symbol + `xwidget', and whose rest is a property list. The property list must + contain a value for key `:type'. That value must be the name of a + supported xwidget type. The rest of the property list depends on the + xwidget type. */ + +bool +valid_xwidget_spec_p (Lisp_Object object) +{ + int valid_p = false; + + if (CONSP (object) && EQ (XCAR (object), Qxwidget)) + valid_p = true; + + return valid_p; +} + + + +/* Find a value associated with key in spec. */ +Lisp_Object +xwidget_spec_value (Lisp_Object spec, Lisp_Object key, int *found) +{ + Lisp_Object tail; + + eassert (valid_xwidget_spec_p (spec)); + + for (tail = XCDR (spec); + CONSP (tail) && CONSP (XCDR (tail)); tail = XCDR (XCDR (tail))) + { + if (EQ (XCAR (tail), key)) + { + if (found) + *found = 1; + return XCAR (XCDR (tail)); + } + } + + if (found) + *found = 0; + return Qnil; +} + + +void +xwidget_view_delete_all_in_window (struct window *w) +{ + struct xwidget_view *xv = NULL; + for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); + tail = XCDR (tail)) + { + if (XWIDGET_VIEW_P (XCAR (tail))) + { + xv = XXWIDGET_VIEW (XCAR (tail)); + if (XWINDOW (xv->w) == w) + { + Fdelete_xwidget_view (XCAR (tail)); + } + } + } +} + +struct xwidget_view * +xwidget_view_lookup (struct xwidget *xw, struct window *w) +{ + Lisp_Object xwidget, window, ret; + XSETXWIDGET (xwidget, xw); + XSETWINDOW (window, w); + + ret = Fxwidget_view_lookup (xwidget, window); + + return EQ (ret, Qnil) ? NULL : XXWIDGET_VIEW (ret); +} + +struct xwidget * +lookup_xwidget (Lisp_Object spec) +{ + /* When a xwidget lisp spec is found initialize the C struct that is + used in the C code. This is done by redisplay so values change + if the spec changes. So, take special care of one-shot events. + */ + int found = 0; + Lisp_Object value; + struct xwidget *xw; + + value = xwidget_spec_value (spec, QCxwidget, &found); + xw = XXWIDGET (value); + + return xw; +} + +/* Set up detection of touched xwidget*/ +void +xwidget_start_redisplay (void) +{ + for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); + tail = XCDR (tail)) + { + if (XWIDGET_VIEW_P (XCAR (tail))) + XXWIDGET_VIEW (XCAR (tail))->redisplayed = 0; + } +} + +/* The xwidget was touched during redisplay, so it isn't a candidate + for hiding. */ +void +xwidget_touch (struct xwidget_view *xv) +{ + xv->redisplayed = 1; +} + +static int +xwidget_touched (struct xwidget_view *xv) +{ + return xv->redisplayed; +} + +/* Redisplay has ended, now we should hide untouched xwidgets +*/ +void +xwidget_end_redisplay (struct window *w, struct glyph_matrix *matrix) +{ + + int i; + int area; + + xwidget_start_redisplay (); + // Iterate desired glyph matrix of window here, hide gtk widgets + // not in the desired matrix. + + // This only takes care of xwidgets in active windows. if a window + // goes away from screen xwidget views wust be deleted + + // dump_glyph_matrix (matrix, 2); + for (i = 0; i < matrix->nrows; ++i) + { + // dump_glyph_row (MATRIX_ROW (matrix, i), i, glyphs); + struct glyph_row *row; + row = MATRIX_ROW (matrix, i); + if (row->enabled_p != 0) + { + for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area) + { + struct glyph *glyph = row->glyphs[area]; + struct glyph *glyph_end = glyph + row->used[area]; + for (; glyph < glyph_end; ++glyph) + { + if (glyph->type == XWIDGET_GLYPH) + { + /* + The only call to xwidget_end_redisplay is in dispnew + xwidget_end_redisplay (w->current_matrix); + */ + xwidget_touch (xwidget_view_lookup (glyph->u.xwidget, + w)); + } + } + } + } + } + + for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail); + tail = XCDR (tail)) + { + if (XWIDGET_VIEW_P (XCAR (tail))) + { + struct xwidget_view *xv = XXWIDGET_VIEW (XCAR (tail)); + + // "touched" is only meaningful for the current window, so + // disregard other views. + if (XWINDOW (xv->w) == w) + { + if (xwidget_touched (xv)) + xwidget_show_view (xv); + else + xwidget_hide_view (xv); + } + } + } +} + +/* Kill all xwidget in BUFFER. */ +void +kill_buffer_xwidgets (Lisp_Object buffer) +{ + Lisp_Object tail, xwidget; + for (tail = Fget_buffer_xwidgets (buffer); CONSP (tail); tail = XCDR (tail)) + { + xwidget = XCAR (tail); + Vxwidget_list = Fdelq (xwidget, Vxwidget_list); + /* TODO free the GTK things in xw */ + { + CHECK_XWIDGET (xwidget); + struct xwidget *xw = XXWIDGET (xwidget); + if (xw->widget_osr && xw->widgetwindow_osr) + { + gtk_widget_destroy (xw->widget_osr); + gtk_widget_destroy (xw->widgetwindow_osr); + } + } + } +} diff --git a/src/xwidget.h b/src/xwidget.h new file mode 100644 index 0000000..493000c --- /dev/null +++ b/src/xwidget.h @@ -0,0 +1,135 @@ +/* Support for embedding graphical components in a buffer. + +Copyright (C) 2011-2015 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs. If not, see . */ + +#ifndef XWIDGET_H_INCLUDED +#define XWIDGET_H_INCLUDED + +void x_draw_xwidget_glyph_string (struct glyph_string *s); +void syms_of_xwidget (void); + +//extern Lisp_Object Qxwidget; + + +bool valid_xwidget_spec_p (Lisp_Object object); + +#include + + +/* +each xwidget instance/model is described by this struct. + +lisp pseudovector. + + + */ +struct xwidget +{ + struct vectorlike_header header; + Lisp_Object plist; //auxilliary data + Lisp_Object type; //the widget type + Lisp_Object buffer; //buffer where xwidget lives + Lisp_Object title; //a title that is used for button labels for instance + + //here ends the lisp part. + //"height" is the marker field + int height; + int width; + + //for offscreen widgets, unused if not osr + GtkWidget *widget_osr; + GtkWidget *widgetwindow_osr; + //this is used if the widget (webkit) is to be wrapped in a scrolled window, + GtkWidget *widgetscrolledwindow_osr; + /* Non-nil means kill silently if Emacs is exited. */ + unsigned int kill_without_query:1; + +}; + + +//struct for each xwidget view +struct xwidget_view +{ + struct vectorlike_header header; + Lisp_Object model; + Lisp_Object w; + + //here ends the lisp part. + //"redisplayed" is the marker field + int redisplayed; //if touched by redisplay + + int hidden; //if the "live" instance isnt drawn + + GtkWidget *widget; + GtkWidget *widgetwindow; + GtkWidget *emacswindow; + int x; + int y; + int clip_right; + int clip_bottom; + int clip_top; + int clip_left; + + + long handler_id; +}; + +/* Test for xwidget pseudovector*/ +#define XWIDGETP(x) PSEUDOVECTORP (x, PVEC_XWIDGET) +#define XXWIDGET(a) (eassert (XWIDGETP(a)), \ + (struct xwidget *) XUNTAG(a, Lisp_Vectorlike)) + +#define CHECK_XWIDGET(x) \ + CHECK_TYPE (XWIDGETP (x), Qxwidgetp, x) + +/* Test for xwidget_view pseudovector */ +#define XWIDGET_VIEW_P(x) PSEUDOVECTORP (x, PVEC_XWIDGET_VIEW) +#define XXWIDGET_VIEW(a) (eassert (XWIDGET_VIEW_P(a)), \ + (struct xwidget_view *) XUNTAG(a, Lisp_Vectorlike)) + +#define CHECK_XWIDGET_VIEW(x) \ + CHECK_TYPE (XWIDGET_VIEW_P (x), Qxwidget_view_p, x) + +struct xwidget_type +{ + /* A symbol uniquely identifying the xwidget type, */ + Lisp_Object *type; + + /* Check that SPEC is a valid image specification for the given + image type. Value is non-zero if SPEC is valid. */ + int (*valid_p) (Lisp_Object spec); + + /* Next in list of all supported image types. */ + struct xwidget_type *next; +}; + + +struct xwidget *xwidget_from_id (int id); + +void xwidget_start_redisplay (void); +void xwidget_end_redisplay (struct window *w, struct glyph_matrix *matrix); + +void xwidget_touch (struct xwidget_view *xw); + +struct xwidget *lookup_xwidget (Lisp_Object spec); +#define XG_XWIDGET "emacs_xwidget" +#define XG_XWIDGET_VIEW "emacs_xwidget_view" +void xwidget_view_delete_all_in_window (struct window *w); + +void kill_buffer_xwidgets (Lisp_Object buffer); +#endif /* XWIDGET_H_INCLUDED */ commit 663d379bbc2fde5e9bded157365e9d48ea01c027 Author: Eli Zaretskii Date: Tue Jan 19 21:05:27 2016 +0200 Improve documentation of 'alist-get' * doc/lispref/variables.texi (Setting Generalized Variables): Add 'alist-get' to the list of functions that can appear in PLACE argument of 'setf'. diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index c48af9a..4270161 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi @@ -2068,7 +2068,7 @@ cdar nthcdr A call to any of the following Emacs-specific functions: @smallexample -default-value process-get +alist-get process-get frame-parameter process-sentinel terminal-parameter window-buffer keymap-parent window-display-table @@ -2077,7 +2077,7 @@ overlay-get window-hscroll overlay-start window-parameter overlay-end window-point process-buffer window-start -process-filter +process-filter default-value @end smallexample @end itemize commit 77793f52c51e47e73e08d5c5f7eac204fb4a345c Author: Shakthi Kannan Date: Tue Jan 19 20:36:33 2016 +0200 ; * etc/NEWS: No need to document 'system-name'. diff --git a/etc/NEWS b/etc/NEWS index e9b539a..4e415a1 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1520,6 +1520,7 @@ permissions set to temporary values (e.g., for creating private files). +++ ** Function `sort' can deal with vectors. +--- ** Function `system-name' now returns an updated value if the current system's name has changed or if the Emacs process has changed systems, and to avoid long waits it no longer consults DNS to canonicalize the commit 156270697deb9895f381faf0de1a23cfb9b217d7 Author: Eli Zaretskii Date: Tue Jan 19 19:31:05 2016 +0200 Minor copyedits of doc/emacs/maintaining.texi * doc/emacs/maintaining.texi (List Identifiers): More accurate description of "C-M-i" wrt tags tables. (Tags Tables): Move the definition of "tag" to a footnote. diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 989d8ff..90af5c8 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -1990,8 +1990,8 @@ Searching}. @table @kbd @item C-M-i @itemx M-@key{TAB} -Perform completion on the text around point, using the selected tags -table if one is loaded (@code{completion-at-point}). +Perform completion on the text around point, possibly using the +selected tags table if one is loaded (@code{completion-at-point}). @item M-x xref-find-apropos @key{RET} @var{regexp} @key{RET} Display a list of all known identifiers matching @var{regexp}. @item M-x list-tags @key{RET} @var{file} @key{RET} @@ -2004,9 +2004,10 @@ Visit files recorded in the selected tags table. @cindex completion (symbol names) In most programming language modes, you can type @kbd{C-M-i} or @kbd{M-@key{TAB}} (@code{completion-at-point}) to complete the symbol -at point. If there is a tags table loaded, this command can use it to -generate completion candidates more intelligently. @xref{Symbol -Completion}. +at point. Some modes provide specialized completion for this command +tailored to the mode; for those that don't, if there is a tags table +loaded, this command can use it to generate completion candidates. +@xref{Symbol Completion}. @findex list-tags @kbd{M-x list-tags} reads the name of one of the files covered by @@ -2047,17 +2048,17 @@ file. This command requires a tags table to be selected. @subsection Tags Tables @cindex tags and tag tables -@cindex tag - A @dfn{tag} is a synonym for identifier reference. @xref{Xref}. - - A @dfn{tags table} records the tags extracted by scanning the source -code of a certain program or a certain document. Tags extracted from -generated files reference the original files, rather than the -generated files that were scanned during tag extraction. Examples of -generated files include C files generated from Cweb source files, from -a Yacc parser, or from Lex scanner definitions; @file{.i} preprocessed -C files; and Fortran files produced by preprocessing @file{.fpp} -source files. + A @dfn{tags table} records the tags@footnote{ +A @dfn{tag} is a synonym for identifier reference. Commands and +features based on the @code{etags} package traditionally use ``tag'' +with this meaning, and this subsection follows that tradition. +} extracted by scanning the source code of a certain program or a +certain document. Tags extracted from generated files reference the +original files, rather than the generated files that were scanned +during tag extraction. Examples of generated files include C files +generated from Cweb source files, from a Yacc parser, or from Lex +scanner definitions; @file{.i} preprocessed C files; and Fortran files +produced by preprocessing @file{.fpp} source files. @cindex etags To produce a tags table, you run the @command{etags} shell command commit 32cb203c086163e40ecc040e61e5d304e101b602 Author: Eli Zaretskii Date: Tue Jan 19 18:11:04 2016 +0200 Unbreak the Cygwin-w32 build * src/w32fns.c (globals_of_w32fns): Move the initialization of resetstkoflw into a part that isn't compiled on Cygwin. (Bug#22403) diff --git a/src/w32fns.c b/src/w32fns.c index 01f5d6f..a5018ae 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -9921,6 +9921,7 @@ globals_of_w32fns (void) except_addr = 0; #ifndef CYGWIN prev_exception_handler = SetUnhandledExceptionFilter (my_exception_handler); + resetstkoflw = NULL; #endif DEFVAR_INT ("w32-ansi-code-page", @@ -9935,8 +9936,6 @@ globals_of_w32fns (void) after_deadkey = -1; - resetstkoflw = NULL; - /* MessageBox does not work without this when linked to comctl32.dll 6.0. */ InitCommonControls (); commit 116caedbe0da17999a3636e4def329edab2c56ed Author: Lars Magne Ingebrigtsen Date: Tue Jan 19 14:16:34 2016 +0100 * shr.el (shr-table-body): Allow tables to have text children. diff --git a/lisp/net/shr.el b/lisp/net/shr.el index 88041f7..746cbb6 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -1602,7 +1602,7 @@ The preference is a float determined from `shr-prefer-media-type'." (defun shr-table-body (dom) (let ((tbodies (seq-filter (lambda (child) (eq (dom-tag child) 'tbody)) - (dom-children dom)))) + (dom-non-text-children dom)))) (cond ((null tbodies) dom) commit ef768c790ed83c8fa5c7efb24dc8e94967b5a778 Author: Phillip Lord Date: Sun Jan 17 22:03:10 2016 +0000 Cope with multiple overlapping faces. * lisp/htmlfontify.el (hfy-face-to-style-i): Treat inheritance right to left. (hfy-face-resolve-face): Handle font specification as well as font name. Documentation update. (Bug#21990) diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el index 178f3a0..fc309bd 100644 --- a/lisp/htmlfontify.el +++ b/lisp/htmlfontify.el @@ -999,7 +999,7 @@ merged by the user - `hfy-flatten-style' should do this." (append parent (hfy-face-to-style-i - (hfy-face-attr-for-class v hfy-display-class)) )))) + (hfy-face-attr-for-class v hfy-display-class)))))) (setq this (if val (case key (:family (hfy-family val)) @@ -1018,7 +1018,7 @@ merged by the user - `hfy-flatten-style' should do this." (:italic (hfy-slant 'italic)))))) (setq that (hfy-face-to-style-i next)) ;;(lwarn t :warning "%S => %S" fn (nconc this that parent)) - (nconc this that parent))) ) + (nconc this parent that))) ) (defun hfy-size-to-int (spec) "Convert SPEC, a CSS font-size specifier, to an Emacs :height attribute value. @@ -1056,13 +1056,19 @@ haven't encountered them yet. Returns a `hfy-style-assoc'." (nconc r (hfy-size (if x (round n) (* n 1.0)))) )) (defun hfy-face-resolve-face (fn) + "For FN return a face specification. +FN may be either a face or a face specification. If the latter, +then the specification is returned unchanged." (cond ((facep fn) (hfy-face-attr-for-class fn hfy-display-class)) + ;; FIXME: is this necessary? Faces can be symbols, but + ;; not symbols refering to other symbols? ((and (symbolp fn) (facep (symbol-value fn))) - (hfy-face-attr-for-class (symbol-value fn) hfy-display-class)) - (t nil))) + (hfy-face-attr-for-class + (symbol-value fn) hfy-display-class)) + (t fn))) (defun hfy-face-to-style (fn) commit 66ff8bac8ba389bdabca34e70d08743dae4ecda1 Author: Paul Eggert Date: Mon Jan 18 23:09:15 2016 -0800 Fix spurious escapes in describe-input-method Problem reported by Vincent Belaïche (Bug#22309). * lisp/international/mule-cmds.el (describe-language-environment): * lisp/international/quail.el (quail-help): Apply substitute-command-keys to doc strings before displaying them. diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 79e9c7b..2df847a 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -2119,7 +2119,7 @@ See `set-language-info-alist' for use in programs." (with-current-buffer standard-output (insert language-name " language environment\n\n") (if (stringp doc) - (insert doc "\n\n")) + (insert (substitute-command-keys doc) "\n\n")) (condition-case nil (let ((str (eval (get-language-info language-name 'sample-text)))) (if (stringp str) diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 75cb7f7..f5e3902 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -2516,7 +2516,7 @@ package to describe." ")\n\n") (save-restriction (narrow-to-region (point) (point)) - (insert (quail-docstring)) + (insert (substitute-command-keys (quail-docstring))) (goto-char (point-min)) (with-syntax-table emacs-lisp-mode-syntax-table (while (re-search-forward "\\\\<\\sw\\(\\sw\\|\\s_\\)+>" nil t)