Now on revision 113005. ------------------------------------------------------------ revno: 113005 fixes bug: http://debbugs.gnu.org/14612 committer: Paul Eggert branch nick: trunk timestamp: Sat 2013-06-15 22:33:12 -0700 message: * configure.ac: Report ACL usage at the end. diff: === modified file 'ChangeLog' --- ChangeLog 2013-06-11 18:05:05 +0000 +++ ChangeLog 2013-06-16 05:33:12 +0000 @@ -1,3 +1,7 @@ +2013-06-16 Paul Eggert + + * configure.ac: Report ACL usage at the end (Bug#14612). + 2013-06-11 Paul Eggert --without-all should imply --with-file-notification=no. (Bug#14569) === modified file 'configure.ac' --- configure.ac 2013-06-13 06:28:05 +0000 +++ configure.ac 2013-06-16 05:33:12 +0000 @@ -4725,6 +4725,12 @@ USE_X_TOOLKIT="$USE_GTK_TOOLKIT" fi +if test $USE_ACL -ne 0; then + acl_summary="yes $LIB_ACL" +else + acl_summary=no +fi + echo " Configured for \`${canonical}'. @@ -4761,6 +4767,7 @@ echo " Does Emacs use -lgconf? ${HAVE_GCONF}" echo " Does Emacs use GSettings? ${HAVE_GSETTINGS}" echo " Does Emacs use a file notification library? ${NOTIFY_SUMMARY}" +echo " Does Emacs use access control lists? ${acl_summary}" echo " Does Emacs use -lselinux? ${HAVE_LIBSELINUX}" echo " Does Emacs use -lgnutls? ${HAVE_GNUTLS}" echo " Does Emacs use -lxml2? ${HAVE_LIBXML2}" ------------------------------------------------------------ revno: 113004 fixes bug: http://debbugs.gnu.org/14595 committer: Juanma Barranquero branch nick: trunk timestamp: Sun 2013-06-16 03:26:42 +0200 message: * lisp/progmodes/prog-mode.el: Fix bug#14595. (prog--prettify-font-lock-compose-symbol): Save relevant match data before calling `syntax-ppss'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-06-15 22:44:38 +0000 +++ lisp/ChangeLog 2013-06-16 01:26:42 +0000 @@ -1,3 +1,8 @@ +2013-06-16 Juanma Barranquero + + * progmodes/prog-mode.el (prog--prettify-font-lock-compose-symbol): + Save relevant match data before calling `syntax-ppss' (bug#14595). + 2013-06-15 Juri Linkov * files-x.el (modify-file-local-variable-prop-line): Add local === modified file 'lisp/progmodes/prog-mode.el' --- lisp/progmodes/prog-mode.el 2013-06-06 21:32:13 +0000 +++ lisp/progmodes/prog-mode.el 2013-06-16 01:26:42 +0000 @@ -74,15 +74,17 @@ (let* ((start (match-beginning 0)) (end (match-end 0)) (syntaxes (if (eq (char-syntax (char-after start)) ?w) - '(?w) '(?. ?\\)))) + '(?w) '(?. ?\\))) + match) (if (or (memq (char-syntax (or (char-before start) ?\ )) syntaxes) (memq (char-syntax (or (char-after end) ?\ )) syntaxes) - (nth 8 (syntax-ppss))) + ;; syntax-ppss could modify the match data (bug#14595) + (progn (setq match (match-string 0)) (nth 8 (syntax-ppss)))) ;; No composition for you. Let's actually remove any composition ;; we may have added earlier and which is now incorrect. (remove-text-properties start end '(composition)) ;; That's a symbol alright, so add the composition. - (compose-region start end (cdr (assoc (match-string 0) alist))))) + (compose-region start end (cdr (assoc match alist))))) ;; Return nil because we're not adding any face property. nil) ------------------------------------------------------------ revno: 113003 committer: Juanma Barranquero branch nick: trunk timestamp: Sun 2013-06-16 03:16:41 +0200 message: etc/NEWS: Fix typos. diff: === modified file 'etc/NEWS' --- etc/NEWS 2013-06-15 07:45:06 +0000 +++ etc/NEWS 2013-06-16 01:16:41 +0000 @@ -30,7 +30,7 @@ ** Emacs can be compiled with file notification support. The configure option `--with-file-notification=LIB' enables file -notification support in Emacs. This option's value should be `yes', +notification support in Emacs. This option's value should be `yes', `no', `gfile', `inotify' or `w32'. `yes' is a synonym for `w32' on MS-Windows, and for `gfile' otherwise. The default value is `yes'. @@ -177,8 +177,8 @@ ** Delphi mode is now called OPascal mode. *** All delphi-* variables and functions have been renamed to opascal-*. -*** `delphi-newline-always-indents' is not supported any more -use `electric-indent-mode' instead. +*** `delphi-newline-always-indents' is not supported any more. +Use `electric-indent-mode' instead. *** `delphi-tab' is gone, replaced by `indent-for-tab-command'. ** Eldoc Mode works properly in the minibuffer. @@ -239,7 +239,7 @@ --- ** New F90 mode option `f90-smart-end-names'. -** Icomplete is a bit more like IDO. +** Icomplete is a bit more like Ido. *** key bindings to navigate through and select the completions. *** The icomplete-separator is customizable, and its default has changed. *** Removed icomplete-show-key-bindings. @@ -335,8 +335,8 @@ When its arg ADJACENT is non-nil (when called interactively with C-u C-u) it works like the utility `uniq'. Otherwise by default it deletes duplicate lines everywhere in the region without regard to adjacency. -When it arg KEEP-BLANKS is non-nil (when called interactively with C-u C-u C-u), -duplicate blank lines are preserved. +When its arg KEEP-BLANKS is non-nil (when called interactively with +C-u C-u C-u), duplicate blank lines are preserved. ** New `cycle-spacing' command allows cycling between having just one space, no spaces, or reverting to the original spacing. Like @@ -399,6 +399,7 @@ * New Modes and Packages in Emacs 24.4 + ** New `superword-mode' in subword.el `superword-mode' overrides the default word motion commands to treat symbol_words as a single word, similar to what `subword-mode' does and @@ -502,7 +503,7 @@ ** Face changes -*** The `face-spec-set' is now analogous to `setq' for face specs. +*** The function `face-spec-set' is now analogous to `setq' for face specs. Its third arg now accepts values specifying exactly which face spec to set (defface, custom, or user spec), and it directly sets the relevant property using the supplied face spec. @@ -2868,7 +2869,7 @@ **** New option, `prog-prettify-symbols' lets the user control symbol prettify (replacing a string like "lambda" with the Greek lambda -character. The mode derived from `prog-mode' must call +character). The mode derived from `prog-mode' must call `prog-prettify-install' with its own custom alist, which can be empty. *** New hook `change-major-mode-after-body-hook', run by ------------------------------------------------------------ revno: 113002 committer: Juri Linkov branch nick: trunk timestamp: Sun 2013-06-16 01:44:38 +0300 message: * lisp/files-x.el (modify-file-local-variable-prop-line): Add local variables to the end of the existing comment on the first line. Use `file-auto-mode-skip' to skip interpreter magic line, and also skip XML declaration. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-06-15 15:36:11 +0000 +++ lisp/ChangeLog 2013-06-15 22:44:38 +0000 @@ -1,3 +1,10 @@ +2013-06-15 Juri Linkov + + * files-x.el (modify-file-local-variable-prop-line): Add local + variables to the end of the existing comment on the first line. + Use `file-auto-mode-skip' to skip interpreter magic line, + and also skip XML declaration. + 2013-06-15 Stefan Monnier * startup.el (package--builtin-versions): New var. === modified file 'lisp/files-x.el' --- lisp/files-x.el 2013-01-01 09:11:05 +0000 +++ lisp/files-x.el 2013-06-15 22:44:38 +0000 @@ -256,19 +256,40 @@ (goto-char (point-min)) - ;; Skip interpreter magic line "#!" - (when (looking-at "^\\(#!\\|'\\\\\"\\)") + ;; Skip interpreter magic line "#!" or XML declaration. + (when (or (looking-at file-auto-mode-skip) + (looking-at "<\\?xml[^>\n]*>$")) (forward-line 1)) + (comment-normalize-vars) (let ((comment-style 'plain) - (comment-start (or comment-start ";;; "))) - (comment-region - (prog1 (point) - (insert "-*-") - (setq beg (point-marker)) - (setq end (point-marker)) - (insert "-*-\n")) - (point)))) + (comment-start (or comment-start ";;; ")) + (line-beg (line-beginning-position)) + (ce nil)) + ;; If the first line contains a comment. + (if (save-excursion + (and (looking-at comment-start-skip) + (goto-char (match-end 0)) + (re-search-forward comment-end-skip) + (goto-char (match-beginning 0)) + ;; Still on the same line? + (equal line-beg (line-beginning-position)) + (setq ce (point)))) + ;; Add local variables to the end of the existing comment. + (progn + (goto-char ce) + (insert " -*-") + (setq beg (point-marker)) + (setq end (point-marker)) + (insert "-*-")) + ;; Otherwise, add a new comment before the first line. + (comment-region + (prog1 (point) + (insert "-*-") + (setq beg (point-marker)) + (setq end (point-marker)) + (insert "-*-\n")) + (point))))) (cond ((looking-at "[ \t]*\\([^ \t\n\r:;]+\\)\\([ \t]*-\\*-\\)") ------------------------------------------------------------ revno: 113001 author: Ted Zlatanov committer: Katsumi Yamaoka branch nick: trunk timestamp: Sat 2013-06-15 21:59:59 +0000 message: lisp/gnus/auth-source.el (netrc backend): Support single-quoted strings, multiline entries diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-06-14 11:16:26 +0000 +++ lisp/gnus/ChangeLog 2013-06-15 21:59:59 +0000 @@ -1,3 +1,12 @@ +2013-06-15 Teodor Zlatanov + + * auth-source.el (auth-source-search-collection): Fix docstring. + (auth-source-netrc-parse): Refactor and improve netrc parser to support + single-quoted strings and multiline entries. + (auth-source-netrc-parse-next-interesting) + (auth-source-netrc-parse-one, auth-source-netrc-parse-entries): New + functions to support parser. + 2013-06-14 Lars Magne Ingebrigtsen * eww.el (eww-submit): Get submit button logic right when hitting RET === modified file 'lisp/gnus/auth-source.el' --- lisp/gnus/auth-source.el 2013-02-07 06:23:54 +0000 +++ lisp/gnus/auth-source.el 2013-06-15 21:59:59 +0000 @@ -801,7 +801,7 @@ (auth-source-search (plist-put spec :delete t))) (defun auth-source-search-collection (collection value) - "Returns t is VALUE is t or COLLECTION is t or contains VALUE." + "Returns t is VALUE is t or COLLECTION is t or COLLECTION contains VALUE." (when (and (atom collection) (not (eq t collection))) (setq collection (list collection))) @@ -942,7 +942,7 @@ (defun auth-source--aget (alist key) (cdr (assoc key alist))) -;; (auth-source-netrc-parse "~/.authinfo.gpg") +;; (auth-source-netrc-parse :file "~/.authinfo.gpg") (defun* auth-source-netrc-parse (&rest spec &key file max host user port delete require @@ -955,15 +955,41 @@ (when (file-exists-p file) (setq port (auth-source-ensure-strings port)) (with-temp-buffer - (let* ((tokens '("machine" "host" "default" "login" "user" - "password" "account" "macdef" "force" - "port" "protocol")) - (max (or max 5000)) ; sanity check: default to stop at 5K + (let* ((max (or max 5000)) ; sanity check: default to stop at 5K (modified 0) (cached (cdr-safe (assoc file auth-source-netrc-cache))) (cached-mtime (plist-get cached :mtime)) (cached-secrets (plist-get cached :secret)) - alist elem result pair) + (check (lambda(alist) + (and alist + (auth-source-search-collection + host + (or + (auth-source--aget alist "machine") + (auth-source--aget alist "host") + t)) + (auth-source-search-collection + user + (or + (auth-source--aget alist "login") + (auth-source--aget alist "account") + (auth-source--aget alist "user") + t)) + (auth-source-search-collection + port + (or + (auth-source--aget alist "port") + (auth-source--aget alist "protocol") + t)) + (or + ;; the required list of keys is nil, or + (null require) + ;; every element of require is in n(ormalized) + (let ((n (nth 0 (auth-source-netrc-normalize + (list alist) file)))) + (loop for req in require + always (plist-get n req))))))) + result) (if (and (functionp cached-secrets) (equal cached-mtime @@ -983,85 +1009,10 @@ :secret (lexical-let ((v (mapcar '1+ (buffer-string)))) (lambda () (apply 'string (mapcar '1- v))))))) (goto-char (point-min)) - ;; Go through the file, line by line. - (while (and (not (eobp)) - (> max 0)) - - (narrow-to-region (point) (point-at-eol)) - ;; For each line, get the tokens and values. - (while (not (eobp)) - (skip-chars-forward "\t ") - ;; Skip lines that begin with a "#". - (if (eq (char-after) ?#) - (goto-char (point-max)) - (unless (eobp) - (setq elem - (if (= (following-char) ?\") - (read (current-buffer)) - (buffer-substring - (point) (progn (skip-chars-forward "^\t ") - (point))))) - (cond - ((equal elem "macdef") - ;; We skip past the macro definition. - (widen) - (while (and (zerop (forward-line 1)) - (looking-at "$"))) - (narrow-to-region (point) (point))) - ((and (member elem tokens) (null pair)) - ;; Tokens that don't have a following value are ignored, - ;; except "default". - (when (and pair (or (cdr pair) - (equal (car pair) "default"))) - (push pair alist)) - (setq pair (list elem))) - (t - ;; Values that haven't got a preceding token are ignored. - (when pair - (setcdr pair elem) - (push pair alist) - (setq pair nil))))))) - - (when (and alist - (> max 0) - (auth-source-search-collection - host - (or - (auth-source--aget alist "machine") - (auth-source--aget alist "host") - t)) - (auth-source-search-collection - user - (or - (auth-source--aget alist "login") - (auth-source--aget alist "account") - (auth-source--aget alist "user") - t)) - (auth-source-search-collection - port - (or - (auth-source--aget alist "port") - (auth-source--aget alist "protocol") - t)) - (or - ;; the required list of keys is nil, or - (null require) - ;; every element of require is in the normalized list - (let ((normalized (nth 0 (auth-source-netrc-normalize - (list alist) file)))) - (loop for req in require - always (plist-get normalized req))))) - (decf max) - (push (nreverse alist) result) - ;; to delete a line, we just comment it out - (when delete - (goto-char (point-min)) - (insert "#") - (incf modified))) - (setq alist nil - pair nil) - (widen) - (forward-line 1)) + (let ((entries (auth-source-netrc-parse-entries check max)) + alist) + (while (setq alist (pop entries)) + (push (nreverse alist) result))) (when (< 0 modified) (when auth-source-gpg-encrypt-to @@ -1084,6 +1035,57 @@ (nreverse result)))))) +(defun auth-source-netrc-parse-next-interesting () + "Advance to the next interesting position in the current buffer." + ;; If we're looking at a comment or are at the end of the line, move forward + (while (or (looking-at "#") + (and (eolp) + (not (eobp)))) + (forward-line 1)) + (skip-chars-forward "\t ")) + +(defun auth-source-netrc-parse-one () + "Read one thing from the current buffer." + (auth-source-netrc-parse-next-interesting) + + (when (or (looking-at "'\\([^']+\\)'") + (looking-at "\"\\([^\"]+\\)\"") + (looking-at "\\([^ \t\n]+\\)")) + (forward-char (length (match-string 0))) + (auth-source-netrc-parse-next-interesting) + (match-string-no-properties 1))) + +(defun auth-source-netrc-parse-entries(check max) + "Parse up to MAX netrc entries, passed by CHECK, from the current buffer." + (let ((adder (lambda(check alist all) + (when (and + alist + (> max (length all)) + (funcall check alist)) + (push alist all)) + all)) + item item2 all alist default) + (while (setq item (auth-source-netrc-parse-one)) + (setq default (equal item "default")) + ;; We're starting a new machine. Save the old one. + (when (and alist + (or default + (equal item "machine"))) + (setq all (funcall adder check alist all) + alist nil)) + ;; In default entries, we don't have a next token. + ;; We store them as ("machine" . t) + (if default + (push (cons "machine" t) alist) + ;; Not a default entry. Grab the next item. + (when (setq item2 (auth-source-netrc-parse-one)) + (push (cons item item2) alist)))) + + ;; Clean up: if there's an entry left over, use it. + (when alist + (setq all (funcall adder check alist all))) + (nreverse all))) + (defvar auth-source-passphrase-alist nil) (defun auth-source-token-passphrase-callback-function (context key-id file) ------------------------------------------------------------ revno: 113000 committer: Stefan Monnier branch nick: trunk timestamp: Sat 2013-06-15 11:36:11 -0400 message: * lisp/emacs-lisp/package.el: Don't activate packages older than builtin. (package-obsolete-list): Rename from package-obsolete-alist, and make it into a simple list of package-desc. (package-strip-version): Remove. (package-built-in-p): Use package--builtin-versions. (package-mark-obsolete): Simplify. (package-process-define-package): Mark it obsolete if older than the builtin version. (package-handle-response): Use line-end-position. (package-read-archive-contents, package--download-one-archive): Simplify. (package--add-to-archive-contents): Skip if older than the builtin or installed version. (package-menu-describe-package): Fix last change. (package-list-unversioned): New var. (package-menu--generate): Use it. * lisp/Makefile.in (autoloads): Set autoload-builtin-package-versions. * lisp/startup.el (package--builtin-versions): New var. (package-subdirectory-regexp): Remove. (package--description-file): Hard code its value instead. * lisp/emacs-lisp/autoload.el: Manage package--builtin-versions. (autoload--insert-text, autoload--insert-cookie-text): New functions. (autoload-builtin-package-versions): New variable. (autoload-generate-file-autoloads): Use them. Remove the list of autoloaded functions/macros from the (autoload...) comments. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-06-15 09:34:20 +0000 +++ lisp/ChangeLog 2013-06-15 15:36:11 +0000 @@ -1,3 +1,35 @@ +2013-06-15 Stefan Monnier + + * startup.el (package--builtin-versions): New var. + (package-subdirectory-regexp): Remove. + (package--description-file): Hard code its value instead. + + * emacs-lisp/package.el: Don't activate packages older than builtin. + (package-obsolete-list): Rename from package-obsolete-alist, and make + it into a simple list of package-desc. + (package-strip-version): Remove. + (package-built-in-p): Use package--builtin-versions. + (package-mark-obsolete): Simplify. + (package-process-define-package): Mark it obsolete if older than the + builtin version. + (package-handle-response): Use line-end-position. + (package-read-archive-contents, package--download-one-archive): + Simplify. + (package--add-to-archive-contents): Skip if older than the builtin or + installed version. + (package-menu-describe-package): Fix last change. + (package-list-unversioned): New var. + (package-menu--generate): Use it. + + * emacs-lisp/autoload.el: Manage package--builtin-versions. + (autoload--insert-text, autoload--insert-cookie-text): New functions. + (autoload-builtin-package-versions): New variable. + (autoload-generate-file-autoloads): Use them. + Remove the list of autoloaded functions/macros from the + (autoload...) comments. + + * Makefile.in (autoloads): Set autoload-builtin-package-versions. + 2013-06-15 Eli Zaretskii * simple.el (line-move-partial): Don't jump to the next screen === modified file 'lisp/Makefile.in' --- lisp/Makefile.in 2013-06-07 09:26:02 +0000 +++ lisp/Makefile.in 2013-06-15 15:36:11 +0000 @@ -178,7 +178,10 @@ cd $(lisp) && chmod +w $(AUTOGEN_VCS) cd $(lisp); $(setwins_almost); \ echo Directories: $$wins; \ - $(emacs) -l autoload --eval '(setq generated-autoload-file (unmsys--file-name "$(lisp)/loaddefs.el"))' -f batch-update-autoloads $$wins + $(emacs) -l autoload \ + --eval '(setq autoload-builtin-package-versions t)' \ + --eval '(setq generated-autoload-file (unmsys--file-name "$(lisp)/loaddefs.el"))' \ + -f batch-update-autoloads $$wins # This is required by the bootstrap-emacs target in ../src/Makefile, so # we know that if we have an emacs executable, we also have a subdirs.el. === modified file 'lisp/emacs-lisp/autoload.el' --- lisp/emacs-lisp/autoload.el 2013-05-15 16:15:07 +0000 +++ lisp/emacs-lisp/autoload.el 2013-06-15 15:36:11 +0000 @@ -31,6 +31,7 @@ ;;; Code: (require 'lisp-mode) ;for `doc-string-elt' properties. +(require 'lisp-mnt) (require 'help-fns) ;for help-add-fundoc-usage. (eval-when-compile (require 'cl-lib)) @@ -435,6 +436,64 @@ (defvar print-readably) +(defun autoload--insert-text (output-start otherbuf outbuf absfile + load-name printfun) + ;; If not done yet, figure out where to insert this text. + (unless (marker-buffer output-start) + (let ((outbuf + (or (if otherbuf + ;; A file-local setting of + ;; autoload-generated-file says we + ;; should ignore OUTBUF. + nil + outbuf) + (autoload-find-destination absfile load-name) + ;; The file has autoload cookies, but they're + ;; already up-to-date. If OUTFILE is nil, the + ;; entries are in the expected OUTBUF, + ;; otherwise they're elsewhere. + (throw 'done otherbuf)))) + (with-current-buffer outbuf + (move-marker output-start (point) outbuf)))) + (let ((standard-output (marker-buffer output-start))) + (funcall printfun))) + +(defun autoload--insert-cookie-text (output-start otherbuf outbuf absfile + load-name file) + (autoload--insert-text + output-start otherbuf outbuf absfile load-name + (lambda () + (search-forward generate-autoload-cookie) + (skip-chars-forward " \t") + (if (eolp) + (condition-case-unless-debug err + ;; Read the next form and make an autoload. + (let* ((form (prog1 (read (current-buffer)) + (or (bolp) (forward-line 1)))) + (autoload (make-autoload form load-name))) + (if autoload + nil + (setq autoload form)) + (let ((autoload-print-form-outbuf + standard-output)) + (autoload-print-form autoload))) + (error + (message "Autoload cookie error in %s:%s %S" + file (count-lines (point-min) (point)) err))) + + ;; Copy the rest of the line to the output. + (princ (buffer-substring + (progn + ;; Back up over whitespace, to preserve it. + (skip-chars-backward " \f\t") + (if (= (char-after (1+ (point))) ? ) + ;; Eat one space. + (forward-char 1)) + (point)) + (progn (forward-line 1) (point)))))))) + +(defvar autoload-builtin-package-versions nil) + ;; When called from `generate-file-autoloads' we should ignore ;; `generated-autoload-file' altogether. When called from ;; `update-file-autoloads' we don't know `outbuf'. And when called from @@ -456,8 +515,7 @@ Return non-nil if and only if FILE adds no autoloads to OUTFILE \(or OUTBUF if OUTFILE is nil)." (catch 'done - (let ((autoloads-done '()) - load-name + (let (load-name (print-length nil) (print-level nil) (print-readably t) ; This does something in Lucid Emacs. @@ -466,7 +524,7 @@ (otherbuf nil) (absfile (expand-file-name file)) ;; nil until we found a cookie. - output-start ostart) + output-start) (with-current-buffer (or visited ;; It is faster to avoid visiting the file. (autoload-find-file file)) @@ -487,58 +545,31 @@ (save-excursion (save-restriction (widen) + (when autoload-builtin-package-versions + (let ((version (lm-header "version")) + package) + (and version + (setq version (ignore-errors (version-to-list version))) + (setq package (or (lm-header "package") + (file-name-sans-extension + (file-name-nondirectory file)))) + (setq output-start (make-marker)) + (autoload--insert-text + output-start otherbuf outbuf absfile load-name + (lambda () + (princ `(push (purecopy + ',(cons (intern package) version)) + package--builtin-versions)) + (newline)))))) + (goto-char (point-min)) (while (not (eobp)) (skip-chars-forward " \t\n\f") (cond ((looking-at (regexp-quote generate-autoload-cookie)) - ;; If not done yet, figure out where to insert this text. - (unless output-start - (let ((outbuf - (or (if otherbuf - ;; A file-local setting of - ;; autoload-generated-file says we - ;; should ignore OUTBUF. - nil - outbuf) - (autoload-find-destination absfile load-name) - ;; The file has autoload cookies, but they're - ;; already up-to-date. If OUTFILE is nil, the - ;; entries are in the expected OUTBUF, - ;; otherwise they're elsewhere. - (throw 'done otherbuf)))) - (with-current-buffer outbuf - (setq output-start (point-marker) - ostart (point))))) - (search-forward generate-autoload-cookie) - (skip-chars-forward " \t") - (if (eolp) - (condition-case-unless-debug err - ;; Read the next form and make an autoload. - (let* ((form (prog1 (read (current-buffer)) - (or (bolp) (forward-line 1)))) - (autoload (make-autoload form load-name))) - (if autoload - (push (nth 1 form) autoloads-done) - (setq autoload form)) - (let ((autoload-print-form-outbuf - (marker-buffer output-start))) - (autoload-print-form autoload))) - (error - (message "Autoload cookie error in %s:%s %S" - file (count-lines (point-min) (point)) err))) - - ;; Copy the rest of the line to the output. - (princ (buffer-substring - (progn - ;; Back up over whitespace, to preserve it. - (skip-chars-backward " \f\t") - (if (= (char-after (1+ (point))) ? ) - ;; Eat one space. - (forward-char 1)) - (point)) - (progn (forward-line 1) (point))) - (marker-buffer output-start)))) + (unless output-start (setq output-start (make-marker))) + (autoload--insert-cookie-text + output-start otherbuf outbuf absfile load-name file)) ((looking-at ";") ;; Don't read the comment. (forward-line 1)) @@ -553,12 +584,11 @@ (save-excursion ;; Insert the section-header line which lists the file name ;; and which functions are in it, etc. - (cl-assert (= ostart output-start)) (goto-char output-start) (let ((relfile (file-relative-name absfile))) (autoload-insert-section-header (marker-buffer output-start) - autoloads-done load-name relfile + () load-name relfile (if secondary-autoloads-file-buf ;; MD5 checksums are much better because they do not ;; change unless the file changes (so they'll be === modified file 'lisp/emacs-lisp/cl-lib.el' --- lisp/emacs-lisp/cl-lib.el 2013-06-05 02:35:40 +0000 +++ lisp/emacs-lisp/cl-lib.el 2013-06-15 15:36:11 +0000 @@ -36,13 +36,6 @@ ;; package which should always be present. -;;; Future notes: - -;; Once Emacs 19 becomes standard, many things in this package which are -;; messy for reasons of compatibility can be greatly simplified. For now, -;; I prefer to maintain one unified version. - - ;;; Change Log: ;; Version 2.02 (30 Jul 93): === modified file 'lisp/emacs-lisp/package.el' --- lisp/emacs-lisp/package.el 2013-06-14 03:20:18 +0000 +++ lisp/emacs-lisp/package.el 2013-06-15 15:36:11 +0000 @@ -140,7 +140,6 @@ ;; installing it ;; - Interface with desktop.el so that restarting after an install ;; works properly -;; - Implement M-x package-upgrade, to upgrade any/all existing packages ;; - Use hierarchical layout. PKG/etc PKG/lisp PKG/info ;; ... except maybe lisp? ;; - It may be nice to have a macro that expands to the package's @@ -159,14 +158,7 @@ ;; - Allow optional package dependencies ;; then if we require 'bbdb', bbdb-specific lisp in lisp/bbdb ;; and just don't compile to add to load path ...? -;; - Have a list of archive URLs? [ maybe there's no point ] -;; - David Kastrup pointed out on the xemacs list that for GPL it -;; is friendlier to ship the source tree. We could "support" that -;; by just having a "src" subdir in the package. This isn't ideal -;; but it probably is not worth trying to support random source -;; tree layouts, build schemes, etc. ;; - Our treatment of the info path is somewhat bogus -;; - perhaps have an "unstable" tree in ELPA as well as a stable one ;;; Code: @@ -201,7 +193,7 @@ For an element (NAME VERSION), NAME is a package name (a symbol). VERSION should be t, a string, or nil. If VERSION is t, all versions are loaded, though obsolete ones - will be put in `package-obsolete-alist' and not activated. + will be put in `package-obsolete-list' and not activated. 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. @@ -265,7 +257,7 @@ (defvar package-archive-contents nil "Cache of the contents of the Emacs Lisp Package Archive. This is an alist mapping package names (symbols) to -`package--desc' structures.") +`package-desc' structures.") (put 'package-archive-contents 'risky-local-variable t) (defcustom package-user-dir (locate-user-emacs-file "elpa") @@ -361,8 +353,6 @@ reqs summary) -;; The value is precomputed in finder-inf.el, but don't load that -;; until it's needed (i.e. when `package-initialize' is called). (defvar package--builtins nil "Alist of built-in packages. The actual value is initialized by loading the library @@ -384,17 +374,14 @@ (put 'package-alist 'risky-local-variable t) (defvar package-activated-list nil + ;; FIXME: This should implicitly include all builtin packages. "List of the names of currently activated packages.") (put 'package-activated-list 'risky-local-variable t) -(defvar package-obsolete-alist nil - "Representation of obsolete packages. -Like `package-alist', but maps package name to a second alist. -The inner alist is keyed by version. - -Each element of the list is (NAME . VERSION-ALIST), where each -entry in VERSION-ALIST is (VERSION-LIST . PACKAGE-DESC).") -(put 'package-obsolete-alist 'risky-local-variable t) +(defvar package-obsolete-list nil + "List of obsolete packages. +Each element of the list is a `package-desc'.") +(put 'package-obsolete-list 'risky-local-variable t) (defun package-version-join (vlist) "Return the version string corresponding to the list VLIST. @@ -425,12 +412,6 @@ (pop str-list)) (apply 'concat (nreverse str-list))))) -(defun package-strip-version (dirname) - "Strip the version from a combined package name and version. -E.g., if given \"quux-23.0\", will return \"quux\"" - (if (string-match (concat "\\`" package-subdirectory-regexp "\\'") dirname) - (match-string 1 dirname))) - (defun package-load-descriptor (pkg-dir) "Load the description file in directory PKG-DIR." (let ((pkg-file (expand-file-name (package--description-file pkg-dir) @@ -452,7 +433,7 @@ In each valid package subdirectory, this function loads the description file containing a call to `define-package', which -updates `package-alist' and `package-obsolete-alist'." +updates `package-alist' and `package-obsolete-list'." (dolist (dir (cons package-user-dir package-directory-list)) (when (file-directory-p dir) (dolist (subdir (directory-files dir)) @@ -498,12 +479,13 @@ "Return true if PACKAGE is built-in to Emacs. Optional arg MIN-VERSION, if non-nil, should be a version list specifying the minimum acceptable version." - (require 'finder-inf nil t) ; For `package--builtins'. - (if (eq package 'emacs) - (version-list-<= min-version (version-to-list emacs-version)) - (let ((elt (assq package package--builtins))) - (and elt (version-list-<= min-version - (package--bi-desc-version (cdr elt))))))) + (let ((bi (assq package package--builtin-versions))) + (cond + (bi (version-list-<= min-version (cdr bi))) + (min-version nil) + (t + (require 'finder-inf nil t) ; For `package--builtins'. + (assq package package--builtins))))) (defun package--from-builtin (bi-desc) (package-desc-create :name (pop bi-desc) @@ -550,17 +532,7 @@ (defun package-mark-obsolete (package pkg-vec) "Put package on the obsolete list, if not already there." - (let ((elt (assq package package-obsolete-alist))) - (if elt - ;; If this obsolete version does not exist in the list, update - ;; it the list. - (unless (assoc (package-desc-version pkg-vec) (cdr elt)) - (setcdr elt (cons (cons (package-desc-version pkg-vec) pkg-vec) - (cdr elt)))) - ;; Make a new association. - (push (cons package (list (cons (package-desc-version pkg-vec) - pkg-vec))) - package-obsolete-alist)))) + (push pkg-vec package-obsolete-list)) (defun define-package (name-string version-string &optional docstring requirements @@ -585,6 +557,10 @@ (version (package-desc-version new-pkg-desc)) (old-pkg (assq name package-alist))) (cond + ;; If it's not newer than a builtin version, mark it obsolete. + ((let ((bi (assq name package--builtin-versions))) + (and bi (version-list-<= version (cdr bi)))) + (package-mark-obsolete name new-pkg-desc)) ;; If there's no old package, just add this to `package-alist'. ((null old-pkg) (push (cons name new-pkg-desc) package-alist)) @@ -762,9 +738,7 @@ (let ((response (url-http-parse-response))) (when (or (< response 200) (>= response 300)) (error "Error during download request:%s" - (buffer-substring-no-properties (point) (progn - (end-of-line) - (point))))))) + (buffer-substring-no-properties (point) (line-end-position)))))) (defun package-download-single (name version desc requires) "Download and install a single-file package." @@ -813,6 +787,7 @@ ;; A package is required, but not installed. It might also be ;; blocked via `package-load-list'. (let ((pkg-desc (cdr (assq next-pkg package-archive-contents))) + ;; FIXME: package-disabled-p needs to use a <= test! (disabled (package-disabled-p next-pkg next-version))) (when disabled (if (stringp disabled) @@ -882,10 +857,9 @@ If the archive version is too new, signal an error." ;; Version 1 of 'archive-contents' is identical to our internal ;; representation. - (let* ((dir (concat "archives/" archive)) - (contents-file (concat dir "/archive-contents")) - contents) - (when (setq contents (package--read-archive-file contents-file)) + (let* ((contents-file (format "archives/%s/archive-contents" archive)) + (contents (package--read-archive-file contents-file))) + (when contents (dolist (package contents) (package--add-to-archive-contents package archive))))) @@ -903,10 +877,11 @@ PACKAGE should have the form (NAME . PACKAGE--AC-DESC). Also, add the originating archive to the `package-desc' structure." (let* ((name (car package)) + (version (package--ac-desc-version (cdr package))) (pkg-desc (package-desc-create :name name - :version (package--ac-desc-version (cdr package)) + :version version :reqs (package--ac-desc-reqs (cdr package)) :summary (package--ac-desc-summary (cdr package)) :kind (package--ac-desc-kind (cdr package)) @@ -914,19 +889,25 @@ (entry (cons name pkg-desc)) (existing-package (assq name package-archive-contents)) (pinned-to-archive (assoc name package-pinned-packages))) - (cond ((and pinned-to-archive - ;; If pinned to another archive, skip entirely. - (not (equal (cdr pinned-to-archive) archive))) - nil) - ((not existing-package) - (push entry package-archive-contents)) - ((version-list-< (package-desc-version (cdr existing-package)) - (package-desc-version pkg-desc)) - ;; Replace the entry with this one. - (setq package-archive-contents - (cons entry - (delq existing-package - package-archive-contents))))))) + (cond + ;; Skip entirely if pinned to another archive or if no more recent + ;; than what we already have installed. + ((or (and pinned-to-archive + (not (equal (cdr pinned-to-archive) archive))) + (let ((bi (assq name package--builtin-versions))) + (and bi (version-list-<= version (cdr bi)))) + (let ((ins (cdr (assq name package-alist)))) + (and ins (version-list-<= version (package-desc-version ins))))) + nil) + ((not existing-package) + (push entry package-archive-contents)) + ((version-list-< (package-desc-version (cdr existing-package)) + version) + ;; Replace the entry with this one. + (setq package-archive-contents + (cons entry + (delq existing-package + package-archive-contents))))))) (defun package-download-transaction (package-list) "Download and install all the packages in PACKAGE-LIST. @@ -1123,8 +1104,8 @@ ARCHIVE should be a cons cell of the form (NAME . LOCATION), similar to an entry in `package-alist'. Save the cached copy to \"archives/NAME/archive-contents\" in `package-user-dir'." - (let* ((dir (expand-file-name "archives" package-user-dir)) - (dir (expand-file-name (car archive) dir))) + (let* ((dir (expand-file-name (format "archives/%s" (car archive)) + package-user-dir))) (package--with-work-buffer (cdr archive) file ;; Read the retrieved buffer to make sure it is valid (e.g. it ;; may fetch a URL redirect page). @@ -1156,7 +1137,7 @@ If optional arg NO-ACTIVATE is non-nil, don't activate packages." (interactive) (setq package-alist nil - package-obsolete-alist nil) + package-obsolete-list nil) (package-load-all-descriptors) (package-read-all-archive-contents) (unless no-activate @@ -1421,6 +1402,9 @@ ;; FIXME: Should we move status into pkg-desc? (push (cons ,pkg-desc ,status) ,listname))) +(defvar package-list-unversioned nil + "If non-nil include packages that don't have a version in `list-package'.") + (defun package-menu--generate (remember-pos packages) "Populate the Package Menu. If REMEMBER-POS is non-nil, keep point on the same entry. @@ -1441,6 +1425,8 @@ (dolist (elt package--builtins) (setq name (car elt)) (when (and (not (eq name 'emacs)) ; Hide the `emacs' package. + (or package-list-unversioned + (package--bi-desc-version (cdr elt))) (or (eq packages t) (memq name packages))) (package--push (package--from-builtin elt) "built-in" info-list))) @@ -1457,10 +1443,9 @@ info-list)))) ;; Obsolete packages: - (dolist (elt package-obsolete-alist) - (dolist (inner-elt (cdr elt)) - (when (or (eq packages t) (memq (car elt) packages)) - (package--push (cdr inner-elt) "obsolete" info-list)))) + (dolist (elt package-obsolete-list) + (when (or (eq packages t) (memq (package-desc-full-name elt) packages)) + (package--push elt "obsolete" info-list))) ;; Print the result. (setq tabulated-list-entries (mapcar 'package-menu--print-info info-list)) @@ -1508,7 +1493,7 @@ If optional arg BUTTON is non-nil, describe its associated package." (interactive) (let ((pkg-desc (if button (button-get button 'package-desc) - (car (tabulated-list-get-id))))) + (tabulated-list-get-id)))) (if pkg-desc ;; FIXME: We could actually describe this particular pkg-desc. (describe-package (package-desc-name pkg-desc))))) === modified file 'lisp/finder.el' --- lisp/finder.el 2013-06-12 00:49:33 +0000 +++ lisp/finder.el 2013-06-15 15:36:11 +0000 @@ -232,6 +232,9 @@ (insert (autoload-rubric generated-finder-keywords-file "keyword-to-package mapping" t)) (search-backward " ") + ;; FIXME: Now that we have package--builtin-versions, package--builtins is + ;; only needed to get the list of unversioned packages and to get the + ;; summary description of each package. (insert "(setq package--builtins '(\n") (dolist (package package--builtins) (insert " ") === modified file 'lisp/startup.el' --- lisp/startup.el 2013-06-14 03:20:18 +0000 +++ lisp/startup.el 2013-06-15 15:36:11 +0000 @@ -413,19 +413,18 @@ :type 'directory :initialize 'custom-initialize-delay) -(defconst package-subdirectory-regexp - "\\([^.].*?\\)-\\([0-9]+\\(?:[.][0-9]+\\|\\(?:pre\\|beta\\|alpha\\)[0-9]+\\)*\\)" - "Regular expression matching the name of a package subdirectory. -The first subexpression is the package name. -The second subexpression is the version string. - -The regexp should not contain a starting \"\\`\" or a trailing - \"\\'\"; those are added automatically by callers.") +(defvar package--builtin-versions + ;; Mostly populated by loaddefs.el via autoload-builtin-package-versions. + (purecopy `((emacs . ,(version-to-list emacs-version)))) + "Alist giving the version of each versioned builtin package. +I.e. each element of the list is of the form (NAME . VERSION) where +NAME is the package name as a symbol, and VERSION is its version +as a list.") (defun package--description-file (dir) (concat (let ((subdir (file-name-nondirectory (directory-file-name dir)))) - (if (string-match package-subdirectory-regexp subdir) + (if (string-match "\\([^.].*?\\)-\\([0-9]+\\(?:[.][0-9]+\\|\\(?:pre\\|beta\\|alpha\\)[0-9]+\\)*\\)" subdir) (match-string 1 subdir) subdir)) "-pkg.el")) ------------------------------------------------------------ revno: 112999 committer: Xue Fuqiao branch nick: trunk timestamp: Sat 2013-06-15 21:21:17 +0800 message: * admin/notes/changelogs: Mention trivial changes in Change Log. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2013-06-13 06:18:57 +0000 +++ admin/ChangeLog 2013-06-15 13:21:17 +0000 @@ -1,3 +1,7 @@ +2013-06-15 Xue Fuqiao + + * notes/changelogs: Mention trivial changes in Change Log. + 2013-06-13 Glenn Morris * admin.el (manual-style-string): Use new file manual.css. === modified file 'admin/notes/changelogs' --- admin/notes/changelogs 2011-10-18 06:24:57 +0000 +++ admin/notes/changelogs 2013-06-15 13:21:17 +0000 @@ -3,8 +3,9 @@ http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00793.html - There is no need to make change log entries for files such as NEWS, - MAINTAINERS, and FOR-RELEASE. +http://lists.gnu.org/archive/html/emacs-devel/2013-06/msg00485.html + There is no need to make trivial change log entries for files such + as NEWS, MAINTAINERS, and FOR-RELEASE. http://lists.gnu.org/archive/html/emacs-devel/2006-12/msg01135.html There is no need to indicate regeneration of files such as configure ------------------------------------------------------------ revno: 112998 fixes bug: http://debbugs.gnu.org/14567 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2013-06-15 12:34:20 +0300 message: Fix bug #14567 with jumpy scrolling of tall images. src/xdisp.c (Fline_pixel_height): New function, required for solving bug #14567. lisp/simple.el (line-move-partial): Don't jump to the next screen line as soon as it becomes visible. Instead, continue enlarging the vscroll until the portion of a tall screen line that's left on display is about the height of the frame's default font. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-06-15 02:50:47 +0000 +++ lisp/ChangeLog 2013-06-15 09:34:20 +0000 @@ -1,3 +1,11 @@ +2013-06-15 Eli Zaretskii + + * simple.el (line-move-partial): Don't jump to the next screen + line as soon as it becomes visible. Instead, continue enlarging + the vscroll until the portion of a tall screen line that's left on + display is about the height of the frame's default font. + (Bug#14567) + 2013-06-15 Glenn Morris * vc/vc-dispatcher.el (vc-compilation-mode): Avoid making === modified file 'lisp/simple.el' --- lisp/simple.el 2013-06-13 22:24:52 +0000 +++ lisp/simple.el 2013-06-15 09:34:20 +0000 @@ -4738,42 +4738,62 @@ (vpos (nth 1 lh)) (ypos (nth 2 lh)) (rbot (nth 3 lh)) + (this-lh (window-line-height)) + (this-height (nth 0 this-lh)) + (this-ypos (nth 2 this-lh)) + (fch (frame-char-height)) py vs) (when (or (null lh) - (>= rbot (frame-char-height)) - (<= ypos (- (frame-char-height)))) + (>= rbot fch) + (<= ypos (- fch)) + (null this-lh) + (<= this-ypos (- fch))) (unless lh (let ((wend (pos-visible-in-window-p t nil t))) (setq rbot (nth 3 wend) vpos (nth 5 wend)))) + (unless this-lh + (let ((wstart (pos-visible-in-window-p nil nil t))) + (setq this-ypos (nth 2 wstart) + this-height (nth 4 wstart)))) + (setq py + (or (nth 1 this-lh) + (let ((ppos (posn-at-point))) + (cdr (or (posn-actual-col-row ppos) + (posn-col-row ppos)))))) (cond - ;; If last line of window is fully visible, move forward. - ((or (null rbot) (= rbot 0)) + ;; If last line of window is fully visible, and vscrolling + ;; more would make this line invisible, move forward. + ((and (or (< (setq vs (window-vscroll nil t)) fch) + (null this-height) + (<= this-height fch)) + (or (null rbot) (= rbot 0))) nil) - ;; If cursor is not in the bottom scroll margin, move forward. - ((and (> vpos 0) - (< (setq py - (or (nth 1 (window-line-height)) - (let ((ppos (posn-at-point))) - (cdr (or (posn-actual-col-row ppos) - (posn-col-row ppos)))))) + ;; If cursor is not in the bottom scroll margin, and the + ;; current line is is not too tall, move forward. + ((and (or (null this-height) (<= this-height fch)) + vpos + (> vpos 0) + (< py (min (- (window-text-height) scroll-margin 1) (1- vpos)))) nil) ;; When already vscrolled, we vscroll some more if we can, ;; or clear vscroll and move forward at end of tall image. - ((> (setq vs (window-vscroll nil t)) 0) - (when (> rbot 0) - (set-window-vscroll nil (+ vs (min rbot (frame-char-height))) t))) + ((> vs 0) + (when (or (and rbot (> rbot 0)) + (and this-height (> this-height fch))) + (set-window-vscroll nil (+ vs fch) t))) ;; If cursor just entered the bottom scroll margin, move forward, ;; but also vscroll one line so redisplay won't recenter. - ((and (> vpos 0) + ((and vpos + (> vpos 0) (= py (min (- (window-text-height) scroll-margin 1) (1- vpos)))) (set-window-vscroll nil (frame-char-height) t) (line-move-1 arg noerror to-end) t) ;; If there are lines above the last line, scroll-up one line. - ((> vpos 0) + ((and vpos (> vpos 0)) (scroll-up 1) t) ;; Finally, start vscroll. @@ -4808,7 +4828,14 @@ ;; display-based motion doesn't make sense (because each ;; logical line occupies exactly one screen line). (not (> (window-hscroll) 0))) - (line-move-visual arg noerror) + (prog1 (line-move-visual arg noerror) + ;; If we moved into a tall line, set vscroll to make + ;; scrolling through tall images more smooth. + (let ((lh (line-pixel-height))) + (if (and (< arg 0) + (< (point) (window-start)) + (> lh (frame-char-height))) + (set-window-vscroll nil (- lh (frame-char-height)) t)))) (line-move-1 arg noerror to-end))))) ;; Display-based alternative to line-move-1. === modified file 'src/ChangeLog' --- src/ChangeLog 2013-06-15 07:41:42 +0000 +++ src/ChangeLog 2013-06-15 09:34:20 +0000 @@ -1,3 +1,8 @@ +2013-06-15 Eli Zaretskii + + * xdisp.c (Fline_pixel_height): New function, required for solving + bug #14567. + 2013-06-15 Paul Eggert * fns.c (Fcopy_sequence): Simplify XTYPE calculation. === modified file 'src/xdisp.c' --- src/xdisp.c 2013-06-10 04:36:06 +0000 +++ src/xdisp.c 2013-06-15 09:34:20 +0000 @@ -1217,6 +1217,24 @@ return line_top_y + line_height; } +DEFUN ("line-pixel-height", Fline_pixel_height, + Sline_pixel_height, 0, 0, 0, + doc: /* Return height in pixels of text line in the selected window. + +Value is the height in pixels of the line at point. */) + (void) +{ + struct it it; + struct text_pos pt; + struct window *w = XWINDOW (selected_window); + + SET_TEXT_POS (pt, PT, PT_BYTE); + start_display (&it, w, pt); + it.vpos = it.current_y = 0; + last_height = 0; + return make_number (line_bottom_y (&it)); +} + /* Subroutine of pos_visible_p below. Extracts a display string, if any, from the display spec given as its argument. */ static Lisp_Object @@ -28691,6 +28709,7 @@ defsubr (&Stool_bar_lines_needed); defsubr (&Slookup_image_map); #endif + defsubr (&Sline_pixel_height); defsubr (&Sformat_mode_line); defsubr (&Sinvisible_p); defsubr (&Scurrent_bidi_paragraph_direction); ------------------------------------------------------------ revno: 112997 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2013-06-15 12:16:49 +0300 message: Add coding cookie to lisp/emacs-lisp/lisp-mode.el. diff: === modified file 'lisp/emacs-lisp/lisp-mode.el' --- lisp/emacs-lisp/lisp-mode.el 2013-06-11 18:00:27 +0000 +++ lisp/emacs-lisp/lisp-mode.el 2013-06-15 09:16:49 +0000 @@ -1,4 +1,4 @@ -;;; lisp-mode.el --- Lisp mode, and its idiosyncratic commands +;;; lisp-mode.el --- Lisp mode, and its idiosyncratic commands -*- coding: utf-8 -*- ;; Copyright (C) 1985-1986, 1999-2013 Free Software Foundation, Inc. ------------------------------------------------------------ revno: 112996 committer: Xue Fuqiao branch nick: trunk timestamp: Sat 2013-06-15 15:45:06 +0800 message: NEWS fix. diff: === modified file 'etc/NEWS' --- etc/NEWS 2013-06-14 02:31:28 +0000 +++ etc/NEWS 2013-06-15 07:45:06 +0000 @@ -418,7 +418,7 @@ (See file-coding-system-alist.) In most cases, this change is transparent, but files that contain unusual characters without specifying an explicit coding system may fail to load with obscure errors. -You should either convert them to utf-8 or add an explicit coding: cookie. +You should either convert them to utf-8 or add an explicit `coding:' cookie. ** overriding-terminal-local-map does not replace the local keymaps any more. It used to disable the minor mode, major mode, and text-property keymaps, ------------------------------------------------------------ revno: 112995 committer: Paul Eggert branch nick: trunk timestamp: Sat 2013-06-15 00:41:42 -0700 message: * fns.c (Fcopy_sequence): Simplify XTYPE calculation. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-06-13 22:24:52 +0000 +++ src/ChangeLog 2013-06-15 07:41:42 +0000 @@ -1,3 +1,7 @@ +2013-06-15 Paul Eggert + + * fns.c (Fcopy_sequence): Simplify XTYPE calculation. + 2013-06-13 Stefan Monnier * lread.c (syms_of_lread): === modified file 'src/fns.c' --- src/fns.c 2013-06-13 22:24:52 +0000 +++ src/fns.c 2013-06-15 07:41:42 +0000 @@ -445,7 +445,7 @@ if (!CONSP (arg) && !VECTORP (arg) && !STRINGP (arg)) wrong_type_argument (Qsequencep, arg); - return concat (1, &arg, CONSP (arg) ? Lisp_Cons : XTYPE (arg), 0); + return concat (1, &arg, XTYPE (arg), 0); } /* This structure holds information of an argument of `concat' that is ------------------------------------------------------------ revno: 112994 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-06-14 19:50:47 -0700 message: vc-compilation-mode fixes * lisp/vc/vc-dispatcher.el (vc-compilation-mode): Avoid making compilation-error-regexp-alist void, or local while let-bound. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-06-15 02:25:00 +0000 +++ lisp/ChangeLog 2013-06-15 02:50:47 +0000 @@ -1,5 +1,8 @@ 2013-06-15 Glenn Morris + * vc/vc-dispatcher.el (vc-compilation-mode): Avoid making + compilation-error-regexp-alist void, or local while let-bound. + * progmodes/make-mode.el (makefile-mode-syntax-table): Treat "=" as punctuation. (Bug#14614) === modified file 'lisp/vc/vc-dispatcher.el' --- lisp/vc/vc-dispatcher.el 2013-04-20 16:24:04 +0000 +++ lisp/vc/vc-dispatcher.el 2013-06-15 02:50:47 +0000 @@ -385,14 +385,15 @@ (defun vc-compilation-mode (backend) "Setup `compilation-mode' after with the appropriate `compilation-error-regexp-alist'." + (require 'compile) (let* ((error-regexp-alist (vc-make-backend-sym backend 'error-regexp-alist)) - (compilation-error-regexp-alist - (and (boundp error-regexp-alist) - (symbol-value error-regexp-alist)))) - (compilation-mode) + (error-regexp-alist (and (boundp error-regexp-alist) + (symbol-value error-regexp-alist)))) + (let ((compilation-error-regexp-alist error-regexp-alist)) + (compilation-mode)) (set (make-local-variable 'compilation-error-regexp-alist) - compilation-error-regexp-alist))) + error-regexp-alist))) (defun vc-set-async-update (process-buffer) "Set a `vc-exec-after' action appropriate to the current buffer.