commit e0c7e102cf0f8636af2bff0c0eefdf4bb669ac38 (HEAD, refs/remotes/origin/master) Author: Glenn Morris Date: Fri May 8 21:34:35 2015 -0400 * Makefile.in (ChangeLog): No longer pass "srcprefix"; cd instead. * build-aux/gitlog-to-emacslog: Check called from right directory. (srcprefix): Remove. diff --git a/Makefile.in b/Makefile.in index 8b5d6f7..2fdbf8d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1102,8 +1102,8 @@ CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX) # Convert git commit log to ChangeLog file. make-dist uses this. # I guess this is PHONY so it always updates? ChangeLog: - $(AM_V_GEN)srcprefix=$(srcdir)/ \ - $(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX) + $(AM_V_GEN)cd $(srcdir) && \ + $(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX) # Check that we are in a good state for changing history. master-branch-is-current: diff --git a/build-aux/gitlog-to-emacslog b/build-aux/gitlog-to-emacslog index 4cf2ed6..134acf2 100755 --- a/build-aux/gitlog-to-emacslog +++ b/build-aux/gitlog-to-emacslog @@ -39,19 +39,25 @@ while [ $# -gt 0 ]; do shift done +if [ ! -f ChangeLog.$nmax ]; then + echo "Can't find ChangeLog.$nmax" >&2 + echo "Must be run from the top source directory" >&2 + exit 1 +fi + if [ -f "$output" ]; then - [ ! "$force" ] && echo "$output exists" && exit 1 + [ ! "$force" ] && echo "$output exists" >&2 && exit 1 rm -f "$output" || exit 1 fi # If this is not a Git repository, just generate an empty ChangeLog. -test -d ${srcprefix}.git || { +test -d .git || { >"$output" exit } # Use Gnulib's packaged ChangeLog generator. -${srcprefix}build-aux/gitlog-to-changelog --ignore-matching='^; ' \ +./build-aux/gitlog-to-changelog --ignore-matching='^; ' \ --format='%B' \ "$gen_origin.." >"ChangeLog.tmp" || exit commit 63bee24f74ebd24ed7816c930efb463485b862c7 Author: Glenn Morris Date: Fri May 8 21:15:48 2015 -0400 * build-aux/gitlog-to-emacslog: Get rid of "distprefix". * Makefile.in (ChangeLog): No longer pass "distprefix". * make-dist: Update "make ChangeLog" syntax for the above change. diff --git a/Makefile.in b/Makefile.in index 6f7d229..8b5d6f7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1100,10 +1100,9 @@ CHANGELOG_HISTORY_INDEX_MAX = 2 CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX) # Convert git commit log to ChangeLog file. make-dist uses this. -# I guess this is PHONY because it generates in distprefix (which is -# non-nil when called from make-dist)? +# I guess this is PHONY so it always updates? ChangeLog: - $(AM_V_GEN)distprefix=$(distprefix) srcprefix=$(srcdir)/ \ + $(AM_V_GEN)srcprefix=$(srcdir)/ \ $(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX) # Check that we are in a good state for changing history. diff --git a/build-aux/gitlog-to-emacslog b/build-aux/gitlog-to-emacslog index 28953d7..4cf2ed6 100755 --- a/build-aux/gitlog-to-emacslog +++ b/build-aux/gitlog-to-emacslog @@ -39,36 +39,36 @@ while [ $# -gt 0 ]; do shift done -if [ -f "${distprefix}$output" ]; then - [ ! "$force" ] && echo "${distprefix}$output exists" && exit 1 - rm -f "${distprefix}$output" || exit 1 +if [ -f "$output" ]; then + [ ! "$force" ] && echo "$output exists" && exit 1 + rm -f "$output" || exit 1 fi # If this is not a Git repository, just generate an empty ChangeLog. test -d ${srcprefix}.git || { - >"${distprefix}$output" + >"$output" exit } # Use Gnulib's packaged ChangeLog generator. ${srcprefix}build-aux/gitlog-to-changelog --ignore-matching='^; ' \ --format='%B' \ - "$gen_origin.." >"${distprefix}ChangeLog.tmp" || exit + "$gen_origin.." >"ChangeLog.tmp" || exit -if test -s "${distprefix}ChangeLog.tmp"; then +if test -s "ChangeLog.tmp"; then # Fix up bug references. # This would be better as eg a --transform option to gitlog-to-changelog, # but... effort. FIXME does not handle rare cases like: # Fixes: debbugs:19434 debbugs:19519 sed 's/ Fixes: \(debbugs:\|bug#\)\([0-9][0-9]*\)/ (Bug#\2)/' \ - "${distprefix}ChangeLog.tmp" > "${distprefix}ChangeLog.tmp2" - mv "${distprefix}ChangeLog.tmp2" "${distprefix}ChangeLog.tmp" + "ChangeLog.tmp" > "ChangeLog.tmp2" + mv "ChangeLog.tmp2" "ChangeLog.tmp" # Find the years covered by the generated ChangeLog, so that # a proper copyright notice can be output. years=` - sed -n 's/^\([0-9][0-9]*\).*/\1/p' "${distprefix}ChangeLog.tmp" | + sed -n 's/^\([0-9][0-9]*\).*/\1/p' "ChangeLog.tmp" | sort -nu ` start_year= @@ -93,9 +93,8 @@ if test -s "${distprefix}ChangeLog.tmp"; then s/\(Copyright[ (C)]*\)[0-9]*-[0-9]*/\1'"$year_range"'/ p } - ' >"${distprefix}ChangeLog.tmp" || exit + ' >"ChangeLog.tmp" || exit fi # Install the generated ChangeLog. -test "$output" = "ChangeLog.tmp" || \ - mv -i "${distprefix}ChangeLog.tmp" "${distprefix}$output" +test "$output" = "ChangeLog.tmp" || mv "ChangeLog.tmp" "$output" diff --git a/make-dist b/make-dist index 441070f..1b44f90 100755 --- a/make-dist +++ b/make-dist @@ -279,7 +279,7 @@ mkdir ${tempdir} if test -d .git; then echo "Making top-level ChangeLog" - make distprefix=${tempdir}/ ChangeLog + make ChangeLog CHANGELOG=${tempdir}/ChangeLog else echo "No repository, so omitting top-level ChangeLog" fi commit deb845418b4c5728170f30f7f9b9f930979a562d Author: Glenn Morris Date: Fri May 8 21:02:36 2015 -0400 * build-aux/gitlog-to-emacslog: Don't hard-code "ChangeLog.2". * Makefile.in (ChangeLog): Pass -n to gitlog-to-emacslog. diff --git a/Makefile.in b/Makefile.in index 7ae81b0..6f7d229 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1093,19 +1093,18 @@ bootstrap: bootstrap-clean CHANGELOG = ChangeLog emacslog = $(srcdir)/build-aux/gitlog-to-emacslog +# The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ..., +# ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for +# the newest (highest-numbered) ChangeLog history file. +CHANGELOG_HISTORY_INDEX_MAX = 2 +CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX) # Convert git commit log to ChangeLog file. make-dist uses this. # I guess this is PHONY because it generates in distprefix (which is # non-nil when called from make-dist)? ChangeLog: $(AM_V_GEN)distprefix=$(distprefix) srcprefix=$(srcdir)/ \ - $(emacslog) -o $(CHANGELOG) - -# The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ..., -# ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for -# the newest (highest-numbered) ChangeLog history file. -CHANGELOG_HISTORY_INDEX_MAX = 2 -CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX) + $(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX) # Check that we are in a good state for changing history. master-branch-is-current: diff --git a/build-aux/gitlog-to-emacslog b/build-aux/gitlog-to-emacslog index 0db91d5..28953d7 100755 --- a/build-aux/gitlog-to-emacslog +++ b/build-aux/gitlog-to-emacslog @@ -26,11 +26,13 @@ export LC_ALL gen_origin=2c1b8604946efbcd8ec5dd6c6dda7541ce4fc3c0 force= output=ChangeLog +nmax=2 while [ $# -gt 0 ]; do case "$1" in -g|--gen-origin) gen_origin="$2" ; shift ;; -f|--force) force=1 ;; + -n|--nmax) nmax="$2"; shift ;; -o|--output) output="$2" ; shift ;; *) echo "Unrecognized argument: $1" >&2; exit 1 ;; esac @@ -86,12 +88,12 @@ if test -s "${distprefix}ChangeLog.tmp"; then sed -n ' 1i\ - /^See ChangeLog.1 for earlier/,${ - s/ChangeLog\.1/ChangeLog.2/ + /^See ChangeLog.[0-9]* for earlier/,${ + s/ChangeLog\.[0-9]*/ChangeLog.'$nmax'/ s/\(Copyright[ (C)]*\)[0-9]*-[0-9]*/\1'"$year_range"'/ p } - ' >"${distprefix}ChangeLog.tmp" || exit + ' >"${distprefix}ChangeLog.tmp" || exit fi # Install the generated ChangeLog. commit 22e3ec2b53295ab2dd5f5a70e330f920abbfdeea Author: Glenn Morris Date: Fri May 8 20:55:41 2015 -0400 * build-aux/gitlog-to-emacslog: Add "for earlier changes" to footer. diff --git a/build-aux/gitlog-to-emacslog b/build-aux/gitlog-to-emacslog index 2e5741c..0db91d5 100755 --- a/build-aux/gitlog-to-emacslog +++ b/build-aux/gitlog-to-emacslog @@ -86,7 +86,8 @@ if test -s "${distprefix}ChangeLog.tmp"; then sed -n ' 1i\ - /^;; Local Variables:/,${ + /^See ChangeLog.1 for earlier/,${ + s/ChangeLog\.1/ChangeLog.2/ s/\(Copyright[ (C)]*\)[0-9]*-[0-9]*/\1'"$year_range"'/ p } commit 907606c84fc35387a84a2de2ee37f9bb25bce567 Author: Glenn Morris Date: Fri May 8 20:45:22 2015 -0400 Add command-line option-parsing to gitlog-to-emacslog. * build-aux/gitlog-to-emacslog: Add command-line options. By default, refuse to remove an existing output file. * Makefile.in (CHANGELOG): Update default. (ChangeLog): Do not test for existing file. (change-history-nocommit): Ensure temp file does not exist. diff --git a/Makefile.in b/Makefile.in index e8780c2..7ae81b0 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1091,17 +1091,15 @@ bootstrap: bootstrap-clean .PHONY: ChangeLog change-history change-history-commit change-history-nocommit .PHONY: master-branch-is-current unchanged-history-files -CHANGELOG = +CHANGELOG = ChangeLog emacslog = $(srcdir)/build-aux/gitlog-to-emacslog # Convert git commit log to ChangeLog file. make-dist uses this. # I guess this is PHONY because it generates in distprefix (which is # non-nil when called from make-dist)? -# FIXME: test -f does not respect distprefix. ChangeLog: - @[ -n "${CHANGELOG}" ] || test ! -f ChangeLog $(AM_V_GEN)distprefix=$(distprefix) srcprefix=$(srcdir)/ \ - $(emacslog) . $(CHANGELOG) + $(emacslog) -o $(CHANGELOG) # The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ..., # ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for @@ -1119,6 +1117,7 @@ unchanged-history-files: # 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 + -rm -f ChangeLog.tmp $(MAKE) ChangeLog CHANGELOG=ChangeLog.tmp (sed '/^;; [L]ocal Variables:/,$$d' $(CHANGELOG_N).tmp diff --git a/build-aux/gitlog-to-emacslog b/build-aux/gitlog-to-emacslog index a657cce..2e5741c 100755 --- a/build-aux/gitlog-to-emacslog +++ b/build-aux/gitlog-to-emacslog @@ -24,15 +24,26 @@ export LC_ALL # The newest revision that should not appear in the generated ChangeLog. gen_origin=2c1b8604946efbcd8ec5dd6c6dda7541ce4fc3c0 -test -n "$1" && test "$1" != "." && gen_origin=$1 - -output=$2 -test -n "$output" || output=ChangeLog +force= +output=ChangeLog + +while [ $# -gt 0 ]; do + case "$1" in + -g|--gen-origin) gen_origin="$2" ; shift ;; + -f|--force) force=1 ;; + -o|--output) output="$2" ; shift ;; + *) echo "Unrecognized argument: $1" >&2; exit 1 ;; + esac + shift +done + +if [ -f "${distprefix}$output" ]; then + [ ! "$force" ] && echo "${distprefix}$output exists" && exit 1 + rm -f "${distprefix}$output" || exit 1 +fi # If this is not a Git repository, just generate an empty ChangeLog. test -d ${srcprefix}.git || { - # Remove any old ChangeLog, in case it is a vc-dwim symlink. - rm -f "${distprefix}$output" || exit >"${distprefix}$output" exit } commit 36c6d20bea2f8af4de126d0d503e3904ee7ab484 Author: Glenn Morris Date: Fri May 8 20:24:37 2015 -0400 Quieten --without-x compilation. * lisp/term/common-win.el: Provide a feature. * lisp/term/x-win.el (term/common-win): Require it. diff --git a/lisp/term/common-win.el b/lisp/term/common-win.el index 6445935..98ad5ac 100644 --- a/lisp/term/common-win.el +++ b/lisp/term/common-win.el @@ -419,4 +419,6 @@ the operating system.") (setq defined-colors (cons this-color defined-colors)))) defined-colors))) +(provide 'term/common-win) + ;;; common-win.el ends here diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el index b090294..11fe93f 100644 --- a/lisp/term/x-win.el +++ b/lisp/term/x-win.el @@ -72,6 +72,7 @@ (if (not (fboundp 'x-create-frame)) (error "%s: Loading x-win.el but not compiled for X" (invocation-name))) +(require 'term/common-win) (require 'frame) (require 'mouse) (require 'scroll-bar) commit 30ba66a6ecb4c5b7138d60ea485789517cb8a873 Author: Glenn Morris Date: Fri May 8 20:14:42 2015 -0400 * lisp/dired-aux.el (dired-do-print): Require lpr. diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index f7b2a5c..4dcb519 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -421,6 +421,7 @@ into the minibuffer." Uses the shell command coming from variables `lpr-command' and `lpr-switches' as default." (interactive "P") + (require 'lpr) (let* ((file-list (dired-get-marked-files t arg)) (lpr-switches (if (and (stringp printer-name) commit 5b0af214c81666decaf9cebf191a213d205d8a45 Author: Glenn Morris Date: Fri May 8 20:13:47 2015 -0400 Quieten compilation, eg in --without-x builds. * lisp/dired-aux.el (lpr-printer-switch): * lisp/frame.el (tool-bar-height): * lisp/linum.el (font-info): * lisp/window.el (font-info, overflow-newline-into-fringe) (tool-bar-height): * lisp/emacs-lisp/package-x.el (tar-data-buffer): * lisp/gnus/gnus-util.el (iswitchb-mode): * lisp/mail/rmailmm.el (libxml-parse-html-region): * lisp/net/nsm.el (gnutls-peer-status) (gnutls-peer-status-warning-describe): * lisp/net/shr.el (libxml-parse-xml-region): * lisp/url/url-http.el (gnutls-peer-status): Declare. diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index b4e2dc0..f7b2a5c 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -413,6 +413,8 @@ into the minibuffer." ;; Now the original list FILES has been put back as it was. (nconc past pending)))) +(defvar lpr-printer-switch) + ;;;###autoload (defun dired-do-print (&optional arg) "Print the marked (or next ARG) files. diff --git a/lisp/emacs-lisp/package-x.el b/lisp/emacs-lisp/package-x.el index 6955ce8..81d0b83 100644 --- a/lisp/emacs-lisp/package-x.el +++ b/lisp/emacs-lisp/package-x.el @@ -156,6 +156,7 @@ DESCRIPTION is the text of the news item." archive-url)) (declare-function lm-commentary "lisp-mnt" (&optional file)) +(defvar tar-data-buffer) (defun package-upload-buffer-internal (pkg-desc extension &optional archive-url) "Upload a package whose contents are in the current buffer. diff --git a/lisp/frame.el b/lisp/frame.el index e8a8982..0c1fb38 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -217,6 +217,7 @@ This function runs the hook `focus-out-hook'." "Non-nil means function `frame-notice-user-settings' wasn't run yet.") (declare-function tool-bar-mode "tool-bar" (&optional arg)) +(declare-function tool-bar-height "xdisp.c" (&optional frame pixelwise)) (defalias 'tool-bar-lines-needed 'tool-bar-height) diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index 4b06cc0..b75d9ef 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el @@ -1578,6 +1578,7 @@ SPEC is a predicate specifier that contains stuff like `or', `and', (prompt &optional default require-match _predicate start matches-set)) (defvar iswitchb-temp-buflist) +(defvar iswitchb-mode) (defun gnus-iswitchb-completing-read (prompt collection &optional require-match initial-input history def) diff --git a/lisp/linum.el b/lisp/linum.el index de15274..2aac13a 100644 --- a/lisp/linum.el +++ b/lisp/linum.el @@ -138,6 +138,9 @@ Linum mode is a buffer-local minor mode." (mapc #'delete-overlay linum-available) (setq linum-available nil)))) +;; Behind display-graphic-p test. +(declare-function font-info "font.c" (name &optional frame)) + (defun linum--face-width (face) (let ((info (font-info (face-font face))) width) diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el index 00fc25d..3dd57b9 100644 --- a/lisp/mail/rmailmm.el +++ b/lisp/mail/rmailmm.el @@ -135,9 +135,10 @@ automatically display the image in the buffer." (cond ((fboundp 'libxml-parse-html-region) 'rmail-mime-render-html-shr) ((executable-find "lynx") 'rmail-mime-render-html-lynx) (t nil)) - "Function to convert HTML to text. Called with buffer containing HTML -extracted from message in a temporary buffer. Converts to text in current -buffer. If NIL, display HTML source." + "Function to convert HTML to text. +Called with buffer containing HTML extracted from message in a +temporary buffer. Converts to text in current buffer. If nil, +display HTML source." :group 'rmail :version "25.1" :type '(choice function (const nil))) @@ -705,6 +706,9 @@ HEADER is a header component of a MIME-entity object (see (insert-buffer-substring source-buffer)) (rmail-mime-fix-inserted-faces start))))))) +(declare-function libxml-parse-html-region "xml.c" + (start end &optional base-url discard-comments)) + (defun rmail-mime-render-html-shr (source-buffer) (let ((dom (with-current-buffer source-buffer (libxml-parse-html-region (point-min) (point-max)))) @@ -732,12 +736,12 @@ HEADER is a header component of a MIME-entity object (see (defun rmail-mime-fix-inserted-faces (start) (while (< start (point)) (let ((face (get-text-property start 'face)) - (next (next-single-property-change + (next (next-single-property-change start 'face (current-buffer) (point)))) (if face ; anything to do? (put-text-property start next 'font-lock-face face)) (setq start next)))) - + (defun rmail-mime-toggle-button (button) "Hide or show the body of the MIME-entity associated with BUTTON." (save-excursion diff --git a/lisp/net/nsm.el b/lisp/net/nsm.el index 28253e5..261e5a1 100644 --- a/lisp/net/nsm.el +++ b/lisp/net/nsm.el @@ -76,6 +76,8 @@ stored in plain text." "If non-nil, the connection is opened in a non-interactive context. This means that no queries should be performed.") +(declare-function gnutls-peer-status "gnutls.c" (proc)) + (defun nsm-verify-connection (process host port &optional save-fingerprint warn-unencrypted) "Verify the security status of PROCESS that's connected to HOST:PORT. @@ -122,6 +124,9 @@ unencrypted." (nsm-check-protocol process host port status settings) process))) +(declare-function gnutls-peer-status-warning-describe "gnutls.c" + (status-symbol)) + (defun nsm-check-certificate (process host port status settings) (let ((warnings (plist-get status :warnings))) (cond diff --git a/lisp/net/shr.el b/lisp/net/shr.el index f17ef8e..0ce77b9 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -949,6 +949,9 @@ Return a string with image data." (search-forward "\r\n\r\n" nil t)) (shr-parse-image-data))))) +(declare-function libxml-parse-xml-region "xml.c" + (start end &optional base-url discard-comments)) + (defun shr-parse-image-data () (let ((data (buffer-substring (point) (point-max))) (content-type diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index d766952..6a7d8e2 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -485,6 +485,8 @@ work correctly." ) ) +(declare-function gnutls-peer-status "gnutls.c" (proc)) + (defun url-http-parse-headers () "Parse and handle HTTP specific headers. Return t if and only if the current buffer is still active and diff --git a/lisp/window.el b/lisp/window.el index a6c60e9..49b7e2c 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -1835,6 +1835,8 @@ optional argument PIXELWISE is passed to the functions." (window-body-width window pixelwise) (window-body-height window pixelwise))) +(declare-function font-info "font.c" (name &optional frame)) + (defun window-font-width (&optional window face) "Return average character width for the font of FACE used in WINDOW. WINDOW must be a live window and defaults to the selected one. @@ -1866,6 +1868,8 @@ information for the remapped face." (aref info 3)) (frame-char-height)))) +(defvar overflow-newline-into-fringe) + (defun window-max-chars-per-line (&optional window face) "Return the number of characters that can be displayed on one line in WINDOW. WINDOW must be a live window and defaults to the selected one. @@ -7187,6 +7191,8 @@ See also `fit-frame-to-buffer-margins'." (<= left (- right margin)) (<= margin right)) margin)) +(declare-function tool-bar-height "xdisp.c" (&optional frame pixelwise)) + (defun fit-frame-to-buffer (&optional frame max-height min-height max-width min-width only) "Adjust size of FRAME to display the contents of its buffer exactly. FRAME can be any live frame and defaults to the selected one. commit e13e72a27962acc93e7d86afba1ed15363c5229e Author: Stefan Monnier Date: Fri May 8 13:28:57 2015 -0400 CEDET (srecode-pop, srecode-peek): Don't use `subclass' * lisp/cedet/srecode/insert.el (srecode-pop, srecode-peek): Don't use `subclass' since they're never called with a class. (srecode-insert-method, srecode-insert-subtemplate): Avoid obsolete srecode-dictionary-child-p. diff --git a/lisp/cedet/srecode/insert.el b/lisp/cedet/srecode/insert.el index 0c13ee5..426e078 100644 --- a/lisp/cedet/srecode/insert.el +++ b/lisp/cedet/srecode/insert.el @@ -264,13 +264,12 @@ Optional argument TEMP is the template that is getting its arguments resolved." "Push the srecoder template ST onto the active stack." (oset st active (cons st (oref st active)))) -(cl-defmethod srecode-pop ((st (subclass srecode-template))) - "Pop the srecoder template ST onto the active stack. -ST can be a class, or an object." +(cl-defmethod srecode-pop ((st srecode-template)) + "Pop the srecoder template ST onto the active stack." (oset st active (cdr (oref st active)))) -(cl-defmethod srecode-peek ((st (subclass srecode-template))) - "Fetch the topmost active template record. ST can be a class." +(cl-defmethod srecode-peek ((st srecode-template)) + "Fetch the topmost active template record." (car (oref st active))) (cl-defmethod srecode-insert-method ((st srecode-template) dictionary) @@ -363,7 +362,7 @@ occur in your template.") ((stringp i) (princ i)))))) -(cl-defmethod srecode-dump ((ins srecode-template-inserter-newline) indent) +(cl-defmethod srecode-dump ((ins srecode-template-inserter-newline) _indent) "Dump the state of the SRecode template inserter INS." (cl-call-next-method) (when (oref ins hard) @@ -425,8 +424,8 @@ Specify the :blank argument to enable this inserter.") ) "Allow comments within template coding. This inserts nothing.") -(cl-defmethod srecode-inserter-prin-example ((ins (subclass srecode-template-inserter-comment)) - escape-start escape-end) +(cl-defmethod srecode-inserter-prin-example ((_ins (subclass srecode-template-inserter-comment)) + escape-start escape-end) "Insert an example using inserter INS. Arguments ESCAPE-START and ESCAPE-END are the current escape sequences in use." (princ " ") @@ -436,8 +435,8 @@ Arguments ESCAPE-START and ESCAPE-END are the current escape sequences in use." (terpri) ) -(cl-defmethod srecode-insert-method ((sti srecode-template-inserter-comment) - dictionary) +(cl-defmethod srecode-insert-method ((_sti srecode-template-inserter-comment) + _dictionary) "Don't insert anything for comment macros in STI." nil) @@ -491,7 +490,7 @@ If SECONDNAME is nil, return VALUE." (setq val (srecode-insert-variable-secondname-handler sti dictionary val fcnpart))) ;; Compound data value - ((srecode-dictionary-compound-value-child-p val) + ((cl-typep val 'srecode-dictionary-compound-value) ;; Force FCN to be a symbol (when fcnpart (setq fcnpart (read fcnpart))) ;; Convert compound value to a string with the fcn. @@ -502,7 +501,7 @@ If SECONDNAME is nil, return VALUE." (setq do-princ nil))) ;; Dictionaries... not allowed in this style - ((srecode-dictionary-child-p val) + ((cl-typep val 'srecode-dictionary) (srecode-insert-report-error dictionary "Macro %s cannot insert a dictionary - use section macros instead" @@ -661,7 +660,7 @@ Use DICTIONARY to resolve values." ;; across multiple locations. compound-value)) -(cl-defmethod srecode-dump ((ins srecode-template-inserter-ask) indent) +(cl-defmethod srecode-dump ((ins srecode-template-inserter-ask) _indent) "Dump the state of the SRecode template inserter INS." (cl-call-next-method) (princ " : \"") @@ -682,7 +681,7 @@ to 10 characters, with spaces added to the left. Use `right' for adding spaces to the right.") (cl-defmethod srecode-insert-variable-secondname-handler - ((sti srecode-template-inserter-width) dictionary value width) + ((_sti srecode-template-inserter-width) dictionary value width) "For VALUE handle WIDTH behaviors for this variable inserter. Return the result as a string. By default, treat as a function name." @@ -714,8 +713,8 @@ By default, treat as a function name." (concat padchars value) (concat value padchars)))))) -(cl-defmethod srecode-inserter-prin-example ((ins (subclass srecode-template-inserter-width)) - escape-start escape-end) +(cl-defmethod srecode-inserter-prin-example ((_ins (subclass srecode-template-inserter-width)) + escape-start escape-end) "Insert an example using inserter INS. Arguments ESCAPE-START and ESCAPE-END are the current escape sequences in use." (princ " ") @@ -750,8 +749,8 @@ The cursor is placed at the ^ macro after insertion. Some inserter macros, such as `srecode-template-inserter-include-wrap' will place text at the ^ macro from the included macro.") -(cl-defmethod srecode-inserter-prin-example ((ins (subclass srecode-template-inserter-point)) - escape-start escape-end) +(cl-defmethod srecode-inserter-prin-example ((_ins (subclass srecode-template-inserter-point)) + escape-start escape-end) "Insert an example using inserter INS. Arguments ESCAPE-START and ESCAPE-END are the current escape sequences in use." (princ " ") @@ -787,8 +786,8 @@ generalized marker will do something else. See "Wrap a section of a template under the control of a macro." :abstract t) -(cl-defmethod srecode-inserter-prin-example ((ins (subclass srecode-template-inserter-subtemplate)) - escape-start escape-end) +(cl-defmethod srecode-inserter-prin-example ((_ins (subclass srecode-template-inserter-subtemplate)) + escape-start escape-end) "Insert an example using inserter INS. Arguments ESCAPE-START and ESCAPE-END are the current escape sequences in use." (cl-call-next-method) @@ -805,7 +804,7 @@ Arguments ESCAPE-START and ESCAPE-END are the current escape sequences in use." dict slot) "Insert a subtemplate for the inserter STI with dictionary DICT." ;; Make sure that only dictionaries are used. - (unless (srecode-dictionary-child-p dict) + (unless (cl-typep dict 'srecode-dictionary) (srecode-insert-report-error dict "Only section dictionaries allowed for `%s'" @@ -889,8 +888,8 @@ Return the remains of INPUT." "All template segments between the section-start and section-end are treated specially.") -(cl-defmethod srecode-insert-method ((sti srecode-template-inserter-section-end) - dictionary) +(cl-defmethod srecode-insert-method ((_sti srecode-template-inserter-section-end) + _dictionary) "Insert the STI inserter." ) @@ -912,7 +911,7 @@ are treated specially.") The included template will have additional dictionary entries from the subdictionary stored specified by this macro.") -(cl-defmethod srecode-inserter-prin-example ((ins (subclass srecode-template-inserter-include)) +(cl-defmethod srecode-inserter-prin-example ((_ins (subclass srecode-template-inserter-include)) escape-start escape-end) "Insert an example using inserter INS. Arguments ESCAPE-START and ESCAPE-END are the current escape sequences in use." @@ -1017,7 +1016,7 @@ stored specified by this macro. If the included macro includes a ^ macro, then the text between this macro and the end macro will be inserted at the ^ macro.") -(cl-defmethod srecode-inserter-prin-example ((ins (subclass srecode-template-inserter-include-wrap)) +(cl-defmethod srecode-inserter-prin-example ((_ins (subclass srecode-template-inserter-include-wrap)) escape-start escape-end) "Insert an example using inserter INS. Arguments ESCAPE-START and ESCAPE-END are the current escape sequences in use." commit 91739fe21cd0c17472110b1af07df529d95a8f3b Author: Nicolas Richard Date: Fri May 8 17:26:20 2015 +0200 help--binding-locus: Document argument POSITION. * lisp/help.el (help--binding-locus): Document argument POSITION. (bug#20530) diff --git a/lisp/help.el b/lisp/help.el index fb1719a..2b8f642 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -691,7 +691,8 @@ POSITION is as documented in the function `key-binding'." (defun help--binding-locus (key position) "Describe in which keymap KEY is defined. Return a symbol pointing to that keymap if one exists ; otherwise -return nil." +return nil. The argument POSITION is as documented in the +function `key-binding'." (let ((map (help--key-binding-keymap key t nil position))) (when map (catch 'found commit f0c1327f36dec9c0b0150d23ffbf21604eae295e Author: Paul Eggert Date: Fri May 8 08:05:25 2015 -0700 Merge from gnulib. * doc/misc/texinfo.tex: Get latest version. diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex index dc53be8..152e985 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{2015-04-29.11} +\def\texinfoversion{2015-05-06.11} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, @@ -3022,11 +3022,16 @@ end \TeX } -% Some math mode symbols. -\def\bullet{$\ptexbullet$} -\def\geq{\ifmmode \ge\else $\ge$\fi} -\def\leq{\ifmmode \le\else $\le$\fi} -\def\minus{\ifmmode -\else $-$\fi} +% Some math mode symbols. Define \ensuremath to switch into math mode +% unless we are already there. Expansion tricks may not be needed here, +% but safer, and can't hurt. +\def\ensuremath{\ifmmode \expandafter\asis \else\expandafter\ensuredmath \fi} +\def\ensuredmath#1{$\relax#1$} +% +\def\bullet{\ensuremath\ptexbullet} +\def\geq{\ensuremath\ge} +\def\leq{\ensuremath\le} +\def\minus{\ensuremath-} % @dots{} outputs an ellipsis using the current font. % We do .5em per period so that it has the same spacing in the cm @@ -9038,7 +9043,7 @@ directory should work if nowhere else does.} \gdef^^b4{\'{}} \gdef^^b5{$\mu$} \gdef^^b6{\P} - \gdef^^b7{\ifmmode\cdot\else $\cdot$\fi} + \gdef^^b7{\ensuremath\cdot} \gdef^^b8{\cedilla\ } \gdef^^b9{$^1$} \gdef^^ba{\ordm} @@ -9397,19 +9402,19 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{00A9}{\copyright} \DeclareUnicodeCharacter{00AA}{\ordf} \DeclareUnicodeCharacter{00AB}{\guillemetleft} - \DeclareUnicodeCharacter{00AC}{\ifmmode\lnot\else $\lnot$\fi} + \DeclareUnicodeCharacter{00AC}{\ensuremath\lnot} \DeclareUnicodeCharacter{00AD}{\-} \DeclareUnicodeCharacter{00AE}{\registeredsymbol} \DeclareUnicodeCharacter{00AF}{\={ }} \DeclareUnicodeCharacter{00B0}{\ringaccent{ }} - \DeclareUnicodeCharacter{00B1}{\ifmmode\pm\else $\pm$\fi} + \DeclareUnicodeCharacter{00B1}{\ensuremath\pm} \DeclareUnicodeCharacter{00B2}{$^2$} \DeclareUnicodeCharacter{00B3}{$^3$} \DeclareUnicodeCharacter{00B4}{\'{ }} \DeclareUnicodeCharacter{00B5}{$\mu$} \DeclareUnicodeCharacter{00B6}{\P} - \DeclareUnicodeCharacter{00B7}{\ifmmode\cdot\else $\cdot$\fi} + \DeclareUnicodeCharacter{00B7}{\ensuremath\cdot} \DeclareUnicodeCharacter{00B8}{\cedilla{ }} \DeclareUnicodeCharacter{00B9}{$^1$} \DeclareUnicodeCharacter{00BA}{\ordm} @@ -9443,7 +9448,7 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{00D4}{\^O} \DeclareUnicodeCharacter{00D5}{\~O} \DeclareUnicodeCharacter{00D6}{\"O} - \DeclareUnicodeCharacter{00D7}{\ifmmode\times\else $\times$\fi} + \DeclareUnicodeCharacter{00D7}{\ensuremath\times} \DeclareUnicodeCharacter{00D8}{\O} \DeclareUnicodeCharacter{00D9}{\`U} \DeclareUnicodeCharacter{00DA}{\'U} @@ -9477,7 +9482,7 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{00F4}{\^o} \DeclareUnicodeCharacter{00F5}{\~o} \DeclareUnicodeCharacter{00F6}{\"o} - \DeclareUnicodeCharacter{00F7}{\ifmmode\div\else $\div$\fi} + \DeclareUnicodeCharacter{00F7}{\ensuremath\div} \DeclareUnicodeCharacter{00F8}{\o} \DeclareUnicodeCharacter{00F9}{\`u} \DeclareUnicodeCharacter{00FA}{\'u} @@ -9546,7 +9551,7 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}} \DeclareUnicodeCharacter{0136}{\cedilla{K}} \DeclareUnicodeCharacter{0137}{\cedilla{k}} - \DeclareUnicodeCharacter{0138}{\ifmmode\kappa\else $\kappa$\fi} + \DeclareUnicodeCharacter{0138}{\ensuremath\kappa} \DeclareUnicodeCharacter{0139}{\'L} \DeclareUnicodeCharacter{013A}{\'l} \DeclareUnicodeCharacter{013B}{\cedilla{L}} @@ -9813,6 +9818,8 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{201C}{\quotedblleft} \DeclareUnicodeCharacter{201D}{\quotedblright} \DeclareUnicodeCharacter{201E}{\quotedblbase} + \DeclareUnicodeCharacter{2020}{\ensuremath\dagger} + \DeclareUnicodeCharacter{2021}{\ensuremath\ddagger} \DeclareUnicodeCharacter{2022}{\bullet} \DeclareUnicodeCharacter{2026}{\dots} \DeclareUnicodeCharacter{2039}{\guilsinglleft} @@ -9824,6 +9831,7 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{2212}{\minus} \DeclareUnicodeCharacter{2217}{\point} + \DeclareUnicodeCharacter{2225}{\ensuremath\parallel} \DeclareUnicodeCharacter{2261}{\equiv} }% end of \utfeightchardefs commit 9713747dffe7d34e61ce54584a524818307897b8 Author: Oleh Krehel Date: Fri May 8 16:43:21 2015 +0200 ffap.el (ffap-read-file-or-url): Fix completing-read call * lisp/ffap.el (ffap-read-file-or-url): The HIST argument of `completing-read' should be a symbol. diff --git a/lisp/ffap.el b/lisp/ffap.el index 452275a..d78fd4c 100644 --- a/lisp/ffap.el +++ b/lisp/ffap.el @@ -1288,7 +1288,7 @@ which may actually result in an URL rather than a filename." nil nil (if dir (cons guess (length dir)) guess) - (list 'file-name-history) + 'file-name-history (and buffer-file-name (abbreviate-file-name buffer-file-name))))) ;; Remove the special handler manually. We used to just let-bind commit 5ed5a04963aa5372cd07d72e0330045e99609964 Author: Glenn Morris Date: Fri May 8 06:22:25 2015 -0400 ; Auto-commit of loaddefs files. diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el index 26418e9..f6ffa3d 100644 --- a/lisp/emacs-lisp/eieio.el +++ b/lisp/emacs-lisp/eieio.el @@ -978,7 +978,7 @@ Optional argument GROUP is the sub-group of slots to display. ;;;*** -;;;### (autoloads nil "eieio-opt" "eieio-opt.el" "3005b815c6b30eccbf0642170b3f82a5") +;;;### (autoloads nil "eieio-opt" "eieio-opt.el" "59cee62a4829ace9bb4a6526442d2b3c") ;;; Generated autoloads from eieio-opt.el (autoload 'eieio-browse "eieio-opt" "\ commit 25fde89819f9b782646ee4edd2f32d382ef1b2b1 Author: Eli Zaretskii Date: Fri May 8 12:20:16 2015 +0300 Verify file modifications by other programs * src/filelock.c (lock_file): Check whether the file was modified since it was visited even if 'create-lockfiles' is nil. (Bug#18828) diff --git a/src/filelock.c b/src/filelock.c index 89d3e35..4ee7a01 100644 --- a/src/filelock.c +++ b/src/filelock.c @@ -669,10 +669,6 @@ lock_file (Lisp_Object fn) struct gcpro gcpro1; USE_SAFE_ALLOCA; - /* Don't do locking if the user has opted out. */ - if (! create_lockfiles) - return; - /* Don't do locking while dumping Emacs. Uncompressing wtmp files uses call-process, which does not work in an uninitialized Emacs. */ @@ -690,9 +686,6 @@ lock_file (Lisp_Object fn) #endif encoded_fn = ENCODE_FILE (fn); - /* Create the name of the lock-file for file fn */ - MAKE_LOCK_NAME (lfname, encoded_fn); - /* See if this file is visited and has changed on disk since it was visited. */ { @@ -707,27 +700,35 @@ lock_file (Lisp_Object fn) } - /* Try to lock the lock. */ - if (0 < lock_if_free (&lock_info, lfname)) + /* Don't do locking if the user has opted out. */ + if (create_lockfiles) { - /* Someone else has the lock. Consider breaking it. */ - Lisp_Object attack; - char *dot = lock_info.dot; - ptrdiff_t pidlen = lock_info.colon - (dot + 1); - static char const replacement[] = " (pid "; - int replacementlen = sizeof replacement - 1; - memmove (dot + replacementlen, dot + 1, pidlen); - strcpy (dot + replacementlen + pidlen, ")"); - memcpy (dot, replacement, replacementlen); - attack = call2 (intern ("ask-user-about-lock"), fn, - build_string (lock_info.user)); - /* Take the lock if the user said so. */ - if (!NILP (attack)) - lock_file_1 (lfname, 1); + + /* Create the name of the lock-file for file fn */ + MAKE_LOCK_NAME (lfname, encoded_fn); + + /* Try to lock the lock. */ + if (0 < lock_if_free (&lock_info, lfname)) + { + /* Someone else has the lock. Consider breaking it. */ + Lisp_Object attack; + char *dot = lock_info.dot; + ptrdiff_t pidlen = lock_info.colon - (dot + 1); + static char const replacement[] = " (pid "; + int replacementlen = sizeof replacement - 1; + memmove (dot + replacementlen, dot + 1, pidlen); + strcpy (dot + replacementlen + pidlen, ")"); + memcpy (dot, replacement, replacementlen); + attack = call2 (intern ("ask-user-about-lock"), fn, + build_string (lock_info.user)); + /* Take the lock if the user said so. */ + if (!NILP (attack)) + lock_file_1 (lfname, 1); + } + SAFE_FREE (); } UNGCPRO; - SAFE_FREE (); } void commit 0d0a4d06efff115f35b4813fa7d2d68b2c600297 Author: Eli Zaretskii Date: Fri May 8 12:11:05 2015 +0300 Fix keyboard macros that include function keys * src/keyboard.c (read_char_minibuf_menu_prompt): Record function keys in the macro before returning. (Bug#20454) diff --git a/src/keyboard.c b/src/keyboard.c index c2739df..77f7fb9 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -8707,12 +8707,10 @@ read_char_minibuf_menu_prompt (int commandflag, while (BUFFERP (obj)); kset_defining_kbd_macro (current_kboard, orig_defn_macro); - if (!INTEGERP (obj) || XINT (obj) == -2) - return obj; - - if (! EQ (obj, menu_prompt_more_char) - && (!INTEGERP (menu_prompt_more_char) - || ! EQ (obj, make_number (Ctl (XINT (menu_prompt_more_char)))))) + if (!INTEGERP (obj) || XINT (obj) == -2 + || (! EQ (obj, menu_prompt_more_char) + && (!INTEGERP (menu_prompt_more_char) + || ! EQ (obj, make_number (Ctl (XINT (menu_prompt_more_char))))))) { if (!NILP (KVAR (current_kboard, defining_kbd_macro))) store_kbd_macro_char (obj); commit 1bb36c5cd49978fbc2403c4f170b14f01c6f0886 Author: Glenn Morris Date: Thu May 7 23:10:57 2015 -0700 * build-aux/gitlog-to-changelog: Treat "Tiny-change" like "Copyright-paperwork-exempt". (Bug#20324) diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog index 3f4b06a..ad7c273 100755 --- a/build-aux/gitlog-to-changelog +++ b/build-aux/gitlog-to-changelog @@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}' if 0; # Convert git log output to ChangeLog format. -my $VERSION = '2015-04-09 16:03'; # UTC +my $VERSION = '2015-05-08 06:05'; # 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 @@ -324,7 +324,7 @@ sub git_dir_option($) # Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog # `(tiny change)' annotation. - my $tiny = (grep (/^Copyright-paperwork-exempt:\s+[Yy]es$/, @line) + my $tiny = (grep (/^(?:Copyright-paperwork-exempt|Tiny-change):\s+[Yy]es$/, @line) ? ' (tiny change)' : ''); my $date_line = sprintf "%s %s$tiny\n", @@ -335,6 +335,7 @@ sub git_dir_option($) @line = grep !/^(?:Signed-off-by:[ ].*>$ |Co-authored-by:[ ] |Copyright-paperwork-exempt:[ ] + |Tiny-change:[ ] )/x, @line; # Remove leading and trailing blank lines. commit 31deb8ad1146705079b98466c56f1c05b4af2638 Author: Glenn Morris Date: Thu May 7 23:03:02 2015 -0700 * lisp/vc/log-edit.el: Handle "(tiny change)". (Bug#20324) (log-edit-rewrite-tiny-change): New variable. (log-edit-insert-changelog): Maybe add "Copyright-paperwork-exempt". (log-edit-changelog-ours-p): Set log-edit-author to a cons. * etc/NEWS: Mention this. diff --git a/etc/NEWS b/etc/NEWS index b346af5..844181c 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -563,6 +563,11 @@ allows to customize this. *** Two new faces `compare-windows-removed' and `compare-windows-added' replace the obsolete face `compare-windows'. +--- +*** `log-edit-insert-changelog' converts "(tiny change)" to +"Copyright-paperwork-exempt: yes". Set `log-edit-rewrite-tiny-change' +nil to disable this. + ** VHDL mode supports VHDL'08. ** Calculator: decimal display mode uses "," groups, so it's more diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el index f82c7e9..08ae998 100644 --- a/lisp/vc/log-edit.el +++ b/lisp/vc/log-edit.el @@ -717,6 +717,9 @@ can thus take some time." (defvar log-edit-changelog-use-first nil) +(defvar log-edit-rewrite-tiny-change t + "Non-nil means rewrite (tiny change).") + (defvar log-edit-rewrite-fixes nil "Rule to rewrite bug numbers into Fixes: headers. The value should be of the form (REGEXP . REPLACEMENT) @@ -761,7 +764,7 @@ regardless of user name or time." (log-edit-insert-changelog-entries (log-edit-files))))) (log-edit-set-common-indentation) ;; Add an Author: field if appropriate. - (when author (log-edit-add-field "Author" author)) + (when author (log-edit-add-field "Author" (car author))) ;; Add a Fixes: field if applicable. (when (consp log-edit-rewrite-fixes) (rfc822-goto-eoh) @@ -782,7 +785,13 @@ regardless of user name or time." (goto-char start) (skip-chars-forward "^():") (skip-chars-forward ": ") - (delete-region start (point)))))))) + (delete-region start (point))))) + ;; FIXME also add "Co-authored-by" when appropriate. + ;; Bzr accepts multiple --author arguments, others (?) don't. + (and log-edit-rewrite-tiny-change + (eq 'tiny (cdr author)) + (goto-char (point-max)) + (insert "\nCopyright-paperwork-exempt: yes\n"))))) ;;;; ;;;; functions for getting commit message from ChangeLog a file... @@ -868,19 +877,26 @@ Return non-nil if it is." (if (null log-edit-changelog-use-first) (looking-at (regexp-quote (format "%s %s <%s>" time name mail))) ;; Check the author, to potentially add it as a "Author: " header. + ;; FIXME This accumulates multiple authors, but only when there + ;; are multiple ChangeLog files. It should also check for + ;; multiple authors in each individual entry. (when (looking-at "[^ \t]") (when (and (boundp 'log-edit-author) (not (looking-at (format ".+ .+ <%s>" (regexp-quote mail)))) - (looking-at ".+ \\(.+ <.+>\\)")) + (looking-at ".+ \\(.+ <.+>\\) *\\((tiny change)\\)?")) (let ((author (replace-regexp-in-string " " " " (match-string 1)))) (unless (and log-edit-author - (string-match (regexp-quote author) log-edit-author)) - (setq log-edit-author - (if log-edit-author - (concat log-edit-author ", " author) - author))))) + (string-match (regexp-quote author) + (car log-edit-author))) + (if (not log-edit-author) + (setq log-edit-author + (cons author (if (match-string 2) 'tiny))) + (setcar log-edit-author + (concat (car log-edit-author) ", " author)) + (and (match-string 2) (not (cdr log-edit-author)) + (setcdr log-edit-author 'tiny)))))) t)))) (defun log-edit-changelog-entries (file) commit 2f26ac56580a6e665cec8bcfb4b525af7f7945ea Author: Glenn Morris Date: Thu May 7 22:42:37 2015 -0700 * lisp/calc/calc.el (math-zerop): Declare. diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el index 58bbdb8..1cc11b4 100644 --- a/lisp/calc/calc.el +++ b/lisp/calc/calc.el @@ -154,6 +154,7 @@ (declare-function math-parse-date "calc-forms" (math-pd-str)) (declare-function math-lessp "calc-ext" (a b)) (declare-function math-compare "calc-ext" (a b)) +(declare-function math-zerop "calc-misc" (a)) (declare-function calc-embedded-finish-command "calc-embed" ()) (declare-function calc-embedded-select-buffer "calc-embed" ()) (declare-function calc-embedded-mode-line-change "calc-embed" ()) commit 19f4aca23bd0bd6cf413535436ca0631321d5fd8 Author: Glenn Morris Date: Thu May 7 22:42:12 2015 -0700 * lisp/emacs-lisp/eieio-opt.el (help-fns-short-filename): Declare. diff --git a/lisp/emacs-lisp/eieio-opt.el b/lisp/emacs-lisp/eieio-opt.el index 7f98730..02b89e0 100644 --- a/lisp/emacs-lisp/eieio-opt.el +++ b/lisp/emacs-lisp/eieio-opt.el @@ -74,6 +74,9 @@ Argument CH-PREFIX is another character prefix to display." ;;; CLASS COMPLETION / DOCUMENTATION +;; Called via help-fns-describe-function-functions. +(declare-function help-fns-short-filename "help-fns" (filename)) + ;;;###autoload (defun eieio-help-class (class) "Print help description for CLASS. commit 3a33ac8911e835bf2be3ed34dd1288521ade91a8 Author: Artur Malabarba Date: Thu May 7 21:13:29 2015 +0100 * lisp/emacs-lisp/subr-x.el (if-let): Fix debug spec Support the case when BINDINGS is a single tuple. (Bug#20525) diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el index 78a6dc9..bd178fa 100644 --- a/lisp/emacs-lisp/subr-x.el +++ b/lisp/emacs-lisp/subr-x.el @@ -120,7 +120,8 @@ Argument BINDINGS is a list of tuples whose car is a symbol to be bound and (optionally) used in THEN, and its cadr is a sexp to be evalled to set symbol's value. In the special case you only want to bind a single value, BINDINGS can just be a plain tuple." - (declare (indent 2) (debug ((&rest (symbolp form)) form body))) + (declare (indent 2) + (debug ([&or (&rest (symbolp form)) (symbolp form)] form body))) (when (and (<= (length bindings) 2) (not (listp (car bindings)))) ;; Adjust the single binding case commit ead05a1c2f31296796c9cc7ac2e1e295c988c4eb Author: Artur Malabarba Date: Thu May 7 20:32:24 2015 +0100 * etc/NEWS: Fix typo in commit 14bb519 diff --git a/etc/NEWS b/etc/NEWS index 48c3a2a5..b346af5 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -259,11 +259,11 @@ by default at least in Debian, for security reasons). An external package is any installed package that's not built-in and not from `package-user-dir', which usually means it's from an entry in `package-directory-list'. They are treated much like built-in -packages, in that they cannot be through the Package Menu deleted and +packages, in that they cannot be deleted through the package menu and are not considered for upgrades. The effect, is that a user can manually place a specific version of a -package inside `package-directory-list' and the Package Menu will +package inside `package-directory-list' and the package menu will always respect that. *** If a package is available on multiple archives and one has higher commit 59cfdb4984292921e1ae12f20c6d4c6d19db1f90 Author: Jan D Date: Thu May 7 20:09:16 2015 +0200 Warn for multiple display crash for all Gtk+ versions. * configure.ac: Warn for multiple display crash for all Gtk+ versions. Output URL to Gtk+ bug (Bug#20452). diff --git a/configure.ac b/configure.ac index d2f21ee..90a4055 100644 --- a/configure.ac +++ b/configure.ac @@ -2496,15 +2496,12 @@ if test x"$pkg_check_gtk" = xyes; then GTK_OBJ="gtkutil.o $GTK_OBJ" term_header=$gtk_term_header USE_X_TOOLKIT=none - if "$PKG_CONFIG" --atleast-version=2.10 gtk+-2.0; then - : - else - AC_MSG_WARN([[Your version of Gtk+ will have problems with + AC_MSG_WARN([[Your version of Gtk+ will have problems with closing open displays. This is no problem if you just use one display, but if you use more than one and close one of them - Emacs may crash.]]) - sleep 3 - fi + Emacs may crash. + See http://bugzilla.gnome.org/show_bug.cgi?id=85715]]) + sleep 3 fi fi commit 0ecd391c8042513261ce378c4bd21095ad2975c1 Author: Jan D Date: Thu May 7 19:48:19 2015 +0200 ns-win.el (ns-paste-secondary): Use gui-get-selection. * ns-win.el (ns-paste-secondary): Use gui-get-selection. diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el index a87352e..e642ab5 100644 --- a/lisp/term/ns-win.el +++ b/lisp/term/ns-win.el @@ -728,7 +728,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") (defun ns-paste-secondary () (interactive) - (insert (ns-get-selection-internal 'SECONDARY))) + (insert (gui-get-selection 'SECONDARY))) ;;;; Scrollbar handling. commit 14bb519f1034ddb38ce375cbad7095d9b07f8b26 Author: Artur Malabarba Date: Thu May 7 16:11:50 2015 +0100 * lisp/emacs-lisp/package.el: New "external" package status An external package is any installed package that's not built-in and not from `package-user-dir', which usually means it's from an entry in `package-directory-list'. They are treated much like built-in packages, in that they cannot be through the Package Menu deleted and are not considered for upgrades. (package-desc-status): Identify if a package is installed outside `package-user-dir'. (package-menu--print-info-simple) (package-menu--status-predicate): Add support for it. * etc/NEWS: Document it. diff --git a/etc/NEWS b/etc/NEWS index 3ab1f4b..48c3a2a5 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -255,6 +255,17 @@ by default at least in Debian, for security reasons). ** package.el +*** New "external" package status. +An external package is any installed package that's not built-in and +not from `package-user-dir', which usually means it's from an entry in +`package-directory-list'. They are treated much like built-in +packages, in that they cannot be through the Package Menu deleted and +are not considered for upgrades. + +The effect, is that a user can manually place a specific version of a +package inside `package-directory-list' and the Package Menu will +always respect that. + *** If a package is available on multiple archives and one has higher priority (as per `package-archive-priorities') only that one is listed. This can be configured with `package-menu-hide-low-priority'. diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 7968ecd..6156313 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -2457,7 +2457,9 @@ of these dependencies, similar to the list returned by (t "disabled")))) (dir ;One of the installed packages. (cond - ((not (file-exists-p (package-desc-dir pkg-desc))) "deleted") + ((not (file-exists-p dir)) "deleted") + ;; Not inside `package-user-dir'. + ((not (file-in-directory-p dir package-user-dir)) "external") ((eq pkg-desc (cadr (assq name package-alist))) (if (not signed) "unsigned" (if (package--user-selected-p name) @@ -2662,6 +2664,7 @@ Return (PKG-DESC [NAME VERSION STATUS DOC])." (let* ((status (package-desc-status pkg)) (face (pcase status (`"built-in" 'font-lock-builtin-face) + (`"external" 'font-lock-builtin-face) (`"available" 'default) (`"avail-obso" 'font-lock-comment-face) (`"new" 'bold) @@ -2977,6 +2980,8 @@ Optional argument NOQUERY non-nil means do not ask the user to confirm." ((string= sB "unsigned") nil) ((string= sA "held") t) ((string= sB "held") nil) + ((string= sA "external") t) + ((string= sB "external") nil) ((string= sA "built-in") t) ((string= sB "built-in") nil) ((string= sA "obsolete") t)