commit 0648edf3e05e224ee8410ab244df7364f919dc58 (HEAD, refs/remotes/origin/master) Author: Noam Postavsky Date: Fri Apr 21 23:37:05 2017 -0400 Split variable macro env from function env * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand): Remove. (cl-symbol-macrolet): Instead of adding each binding directly into the main environment with a special key format, put all symbol macro bindings into a single entry in the main environment under `:cl-symbol-macros'. (cl--sm-macroexpand): Look up symbol bindings in the `:cl-symbol-macros' entry of the environment. diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index db1518ce61..b1ada00f4a 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2047,28 +2047,22 @@ This is like `cl-flet', but for macros instead of functions. cl--old-macroexpand (symbol-function 'macroexpand))) -(defun cl--symbol-macro-key (sym) - "Return the key used in `macroexpand-all-environment' for symbol macro SYM." - ;; In the past we've used `symbol-name' instead, but that doesn't - ;; preserve the `eq'uality between different symbols of the same name. - `(:cl-symbol-macro . ,sym)) - (defun cl--sm-macroexpand (exp &optional env) "Special macro expander used inside `cl-symbol-macrolet'. This function replaces `macroexpand' during macro expansion of `cl-symbol-macrolet', and does the same thing as `macroexpand' except that it additionally expands symbol macros." - (let ((macroexpand-all-environment env)) + (let ((macroexpand-all-environment env) + (venv (alist-get :cl-symbol-macros env))) (while (progn (setq exp (funcall cl--old-macroexpand exp env)) (pcase exp ((pred symbolp) ;; Perform symbol-macro expansion. - ;; FIXME: Calling `cl--symbol-macro-key' for every var reference - ;; is a bit more costly than I'd like. - (when (cdr (assoc (cl--symbol-macro-key exp) env)) - (setq exp (cadr (assoc (cl--symbol-macro-key exp) env))))) + (let ((symval (assq exp venv))) + (when symval + (setq exp (cadr symval))))) (`(setq . ,_) ;; Convert setq to setf if required by symbol-macro expansion. (let* ((args (mapcar (lambda (f) (cl--sm-macroexpand f env)) @@ -2086,7 +2080,7 @@ except that it additionally expands symbol macros." (let ((letf nil) (found nil) (nbs ())) (dolist (binding bindings) (let* ((var (if (symbolp binding) binding (car binding))) - (sm (assoc (cl--symbol-macro-key var) env))) + (sm (assq var venv))) (push (if (not (cdr sm)) binding (let ((nexp (cadr sm))) @@ -2144,30 +2138,28 @@ by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...). \(fn ((NAME EXPANSION) ...) FORM...)" (declare (indent 1) (debug ((&rest (symbolp sexp)) cl-declarations body))) - (cond - ((cdr bindings) - `(cl-symbol-macrolet (,(car bindings)) - (cl-symbol-macrolet ,(cdr bindings) ,@body))) - ((null bindings) (macroexp-progn body)) - (t - (let ((previous-macroexpand (symbol-function 'macroexpand))) - (unwind-protect - (progn - (fset 'macroexpand #'cl--sm-macroexpand) - (let ((expansion - ;; FIXME: For N bindings, this will traverse `body' N times! - (macroexpand-all (macroexp-progn body) - (cons (list (cl--symbol-macro-key - (caar bindings)) - (cl-cadar bindings)) - macroexpand-all-environment)))) - (if (or (null (cdar bindings)) (cl-cddar bindings)) - (macroexp--warn-and-return - (format-message "Malformed `cl-symbol-macrolet' binding: %S" - (car bindings)) - expansion) - expansion))) - (fset 'macroexpand previous-macroexpand)))))) + (let ((previous-macroexpand (symbol-function 'macroexpand)) + (malformed-bindings nil)) + (dolist (binding bindings) + (unless (and (consp binding) (symbolp (car binding)) + (consp (cdr binding)) (null (cddr binding))) + (push binding malformed-bindings))) + (unwind-protect + (progn + (fset 'macroexpand #'cl--sm-macroexpand) + (let* ((venv (cdr (assq :cl-symbol-macros macroexpand-all-environment))) + (expansion + (macroexpand-all (macroexp-progn body) + (cons (cons :cl-symbol-macros + (append bindings venv)) + macroexpand-all-environment)))) + (if malformed-bindings + (macroexp--warn-and-return + (format-message "Malformed `cl-symbol-macrolet' binding(s): %S" + (nreverse malformed-bindings)) + expansion) + expansion))) + (fset 'macroexpand previous-macroexpand)))) ;;; Multiple values. commit b52e40d756af935a4f6dc46842d306b5493a7b73 Author: Glenn Morris Date: Wed Jun 7 15:55:33 2017 -0400 ; ChangeLog fixes diff --git a/doc/misc/ChangeLog.1 b/doc/misc/ChangeLog.1 index b6c6c29444..2b1571c0ab 100644 --- a/doc/misc/ChangeLog.1 +++ b/doc/misc/ChangeLog.1 @@ -2811,7 +2811,7 @@ * org.texi (Agenda dispatcher): Document sticky agenda views and the new key for them. -2012-09-30 Charles (tiny change) +2012-09-30 Charles Millar (tiny change) * org.texi (Advanced features): Fix error in table. diff --git a/lisp/org/ChangeLog.1 b/lisp/org/ChangeLog.1 index 9d2c666391..366a3ee9fc 100644 --- a/lisp/org/ChangeLog.1 +++ b/lisp/org/ChangeLog.1 @@ -6998,7 +6998,7 @@ * org-agenda.el (org-search-view): Fix checking `org-agenda-show-inherited-tags'. -2013-02-07 racin (tiny change) +2013-02-07 Matthieu Lemerre (tiny change) * org-bibtex.el (org-bibtex-search): Don't throw an error when `org-bibtex-prefix' is nil. commit 622306b3fdf1b3b8f76108a3adf5a1a05437ed34 Author: Glenn Morris Date: Wed Jun 7 14:39:59 2017 -0400 * make-dist: Directory modules/mod-test no longer exists. diff --git a/make-dist b/make-dist index 1b4eae3e7d..bfd6fcbafb 100755 --- a/make-dist +++ b/make-dist @@ -392,7 +392,7 @@ for subdir in site-lisp \ nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \ `find etc lisp admin test -type d` \ doc doc/emacs doc/misc doc/man doc/lispref doc/lispintro \ - info m4 modules modules/mod-test msdos \ + info m4 modules msdos \ nextstep nextstep/templates \ nextstep/Cocoa nextstep/Cocoa/Emacs.base \ nextstep/Cocoa/Emacs.base/Contents \ @@ -404,7 +404,7 @@ do if [ "$with_tests" != "yes" ]; then case $subdir in - test*|*/mod-test*) continue ;; + test*) continue ;; esac fi @@ -483,14 +483,6 @@ echo "Making links to 'm4'" echo "Making links to 'modules'" (cd modules ln *.py ../${tempdir}/modules - if [ "$with_tests" = "yes" ]; then - for f in `find mod-test -type f`; do - case $f in - *.log|*.o|*.so) continue ;; - esac - ln $f ../$tempdir/modules/$f - done - fi ) echo "Making links to 'nt'" commit 9d63c87e91ab3ddf50f009e736640d1dfc1c56c5 Author: Glenn Morris Date: Wed Jun 7 14:27:21 2017 -0400 More authors.el updates * admin/authors.el (authors-ignored-files, authors-valid-file-names) (authors-renamed-files-alist): Additions. ; ChangeLog fixes diff --git a/ChangeLog.2 b/ChangeLog.2 index 3610aadba5..ab15b277ce 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -23860,7 +23860,7 @@ * lisp/thingatpt.el (thing-at-point): Only call 'length' on sequences. (Bug#21391) -2015-09-05 Philip (tiny change) +2015-09-05 Pip Cet (tiny change) Fix segfaults due to using a stale face ID * src/xdisp.c (forget_escape_and_glyphless_faces): New function. diff --git a/admin/authors.el b/admin/authors.el index 692c7b7b6c..86d42be8dc 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -323,6 +323,7 @@ Changes to files matching one of the regexps in this list are not listed.") "*.el" ;; Autogen: "cus-load.el" "finder-inf.el" "ldefs-boot.el" "loaddefs-boot.el" + "lisp/ldefs-boot-manual.el" "lisp/ldefs-boot-auto.el" "compile" "config.guess" "config.sub" "depcomp" "autogen/compile" "autogen/config.guess" "autogen/config.in" "autogen/config.sub" "autogen/depcomp" "autogen/install-sh" @@ -392,6 +393,7 @@ Changes to files matching one of the regexps in this list are not listed.") ;; Not in gnulib anymore "lib/qset-acl.c" "lib/qcopy-acl.c" "lib/file-has-acl.c" ;; files from old MS Windows build procedures + "nt/gnulib-modules-to-delete.cfg" "makefile.w32-in" "admin/unidata/makefile.w32-in" "unidata/makefile.w32-in" @@ -666,7 +668,7 @@ Changes to files in this list are not listed.") "ebuild.bat" "envadd.bat" "fast-install.bat" "install.bat" "multi-install-info.bat" "zipdist.bat" "debug.bat.in" "emacs.bat.in" "addsection.c" - "inc/sys/dir.h" "inc/gettext.h" + "inc/sys/dir.h" "inc/gettext.h" "nt/inc/socket.h" "time.h" ".gdbinit-union" "alloca.s" @@ -705,6 +707,7 @@ Changes to files in this list are not listed.") "images/gnus/reverse-smile.xpm" "notes/commits" "notes/changelogs" "revdiff" ; admin/ + "admin/ldefs-clean.el" "vcdiff" "rcs-checkin" "tindex.pl" "mainmake" "sed1.inp" "sed2.inp" "sed3.inp" ; msdos/ "mac-fix-env.m" @@ -762,7 +765,11 @@ Changes to files in this list are not listed.") ;; lib/ "lib/stdio.c" "lib/gl_openssl.h" "lib/sigprocmask.c" "lib/pthread_sigprocmask.c" "lib/ldtoastr.c" "lib/dummy.c" - "lib/ignore-value.h" + "lib/ignore-value.h" "lib/Makefile.am" + "lib/pathmax.h" "lib/stat.c" "lib/strtoul.c" "lib/strtoull.c" + "lib/strtoumax.c" "lib/unsetenv.c" + "lib/getopt_cdefs.in.h" "lib/getopt_core.h" "lib/getopt_ext.h" + "lib/getopt_pfx_core.h" "lib/getopt_pfx_ext.h" ;; lib-src/ "cvtmail.c" "digest-doc.c" "emacsserver.c" "emacstool.c" "env.c" "etags-vmslib.c" "fakemail.c" "getdate.c" "getopt.h" "getopt1.c" @@ -778,6 +785,7 @@ Changes to files in this list are not listed.") "emacsclient.c" "etags.c" "hexl.c" "make-docfile.c" "movemail.c" "test-distrib.c" "testfile" "tpu-edt.doc" ; see below + "iso-swed.el" "lisp/obsolete/vc-mcvs.el" "obsolete/vc-mcvs.el" "nnwarchive.el" @@ -792,7 +800,7 @@ Changes to files in this list are not listed.") "redisplay-testsuite.el" "cedet-utests.el" "ede-tests.el" "semantic-ia-utest.el" "semantic-tests.el" "semantic-utest-c.el" "semantic-utest.el" - "srecode-tests.el" + "srecode-tests.el" "make-test-deps.emacs-lisp" ) "File names which are valid, but no longer exist (or cannot be found) in the repository.") @@ -962,6 +970,18 @@ in the repository.") ("lisp/character-fold.el" . "lisp/char-fold.el") ("test/automated/character-fold-tests.el" . "char-fold-tests.el") ("test/automated/char-fold-tests.el" . "char-fold-tests.el") + ("test/lisp/character-fold-tests.el" . "char-fold-tests.el") + ("test/manual/cycle-tests.el" . "fns-tests.el") + ("test/manual/cyclic-tests.el" . "fns-tests.el") + ("test/lisp/dns-mode-tests.el" . "dns-mode-tests.el") + ("test/lisp/legacy/core-elisp-tests.el" . "lisp-tests.el") + ("test/lisp/legacy/decoder-test.el" . "coding-tests.el") + ("test/lisp/legacy/files-tests.el" . "files-tests.el") + ("test/lisp/legacy/font-parse-tests.el" . "font-tests.el") + ("test/lisp/legacy/lexbind-tests.el" . "bytecomp-test.el") + ("test/lisp/legacy/occur-tests.el" . "replace-tests.el") + ("test/lisp/legacy/syntax-tests.el" . "syntax-tests.el") + ("test/file-organisation.org" . "file-organization.org") ("images/gnus/mail_send.xpm" . "mail-send.xpm") ; still in images/gnus ("schema/xhtml-basic-form.rnc" . "xhtml-bform.rnc" ) ("schema/xhtml-basic-table.rnc" . "xhtml-btable.rnc") @@ -981,6 +1001,7 @@ in the repository.") ("icons/emacs21.ico" . "emacs21.ico") ("ja-dic" . "leim/ja-dic") ("quail" . "leim/quail") + ("admin/notes/triage" . "bug-triage") ;; Moved from autogen/ to admin/. ("autogen/update_autogen" . "update_autogen") ;; Moved from etc/ to admin/. diff --git a/doc/lispref/ChangeLog.1 b/doc/lispref/ChangeLog.1 index c5b168b8a2..1044ad7370 100644 --- a/doc/lispref/ChangeLog.1 +++ b/doc/lispref/ChangeLog.1 @@ -4843,7 +4843,7 @@ * lists.texi (Sets And Lists): Mention cl provides union etc. -2011-05-19 Nix +2011-05-19 Nick Alcock * windows.texi (Displaying Buffers): pop-to-buffer is not a command. diff --git a/lisp/ChangeLog.15 b/lisp/ChangeLog.15 index 118c15979f..2512d35564 100644 --- a/lisp/ChangeLog.15 +++ b/lisp/ChangeLog.15 @@ -16417,7 +16417,7 @@ * net/tramp.el (tramp-advice-file-expand-wildcards): Don't rely on `ad-do-it'. -2009-11-08 Andr (tiny change) +2009-11-08 Andrey Kotlarski (tiny change) * net/tramp.el (tramp-handle-write-region): Copy but rename temp file, in order to keep context in SELinux. diff --git a/lisp/ChangeLog.16 b/lisp/ChangeLog.16 index 059a07996b..691b7945bf 100644 --- a/lisp/ChangeLog.16 +++ b/lisp/ChangeLog.16 @@ -22485,7 +22485,7 @@ * nxml/nxml-mode.el (nxml-electric-slash): Reindent when completion is enabled. Suggested by James Ahlborn (bug#8704). -2011-05-20 Nix +2011-05-20 Nick Alcock * files.el (basic-save-buffer-2): Fix handling of break-hardlink-on-save with non-existent files. commit b1103a2c4f36038cbb30caba6a199744acc9e0d9 Author: Glenn Morris Date: Wed Jun 7 13:41:46 2017 -0400 * make-dist: Check a release has a ChangeLog with a release notice. diff --git a/make-dist b/make-dist index 0e01207164..1b4eae3e7d 100755 --- a/make-dist +++ b/make-dist @@ -297,6 +297,21 @@ if [ $check = yes ]; then make --question info || error=yes fi + ## Is this a release? + case $version in + [1-9][0-9].[0-9]) + if [ -e ChangeLog ]; then + if ! grep -q "Version $version released" ChangeLog; then + echo "No release notice in ChangeLog" + error=yes + fi + else + echo "A release must have a ChangeLog" + error=yes + fi + ;; + esac + if [ $error = yes ]; then echo "Failed checks" >&2 exit 1 commit ed226a5b34602bc476d5039fbc2e815b377d420f Author: Glenn Morris Date: Wed Jun 7 13:26:25 2017 -0400 * make-dist: Use existing ChangeLog if present. diff --git a/make-dist b/make-dist index 7e1f0dfb96..0e01207164 100755 --- a/make-dist +++ b/make-dist @@ -345,9 +345,15 @@ mkdir ${tempdir} if [ "$changelog" = yes ]; then if test -e .git; then - echo "Making top-level ChangeLog" - make ChangeLog CHANGELOG=${tempdir}/ChangeLog || \ - { x=$?; echo "make ChangeLog FAILED (try --no-changelog?)" >&2; exit $x; } + ## When making a release or pretest the ChangeLog should already + ## have been created and edited as needed. Don't ignore it. + if test -e ChangeLog; then + echo "Using existing top-level ChangeLog" + else + echo "Making top-level ChangeLog" + make ChangeLog CHANGELOG=${tempdir}/ChangeLog || \ + { x=$?; echo "make ChangeLog FAILED (try --no-changelog?)" >&2; exit $x; } + fi else echo "No repository, so omitting top-level ChangeLog" fi @@ -361,7 +367,7 @@ echo "Making links to top-level files" ln INSTALL README BUGS ${tempdir} ln ChangeLog.*[0-9] Makefile.in autogen.sh configure configure.ac ${tempdir} ln config.bat make-dist .dir-locals.el ${tempdir} -ln aclocal.m4 CONTRIBUTE ${tempdir} +ln aclocal.m4 CONTRIBUTE ChangeLog ${tempdir} echo "Creating subdirectories" for subdir in site-lisp \ commit a9327a0afc23d00636b2c3b0ef767de34882bc87 Author: Michael Albinus Date: Wed Jun 7 16:24:31 2017 +0200 * lisp/net/tramp-sh.el (tramp-maybe-open-connection): Fix port handling. diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 70481ab13b..b2d70fe11c 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -4720,7 +4720,7 @@ connection if a previous connection has died for some reason." (l-method (tramp-file-name-method hop)) (l-user (tramp-file-name-user hop)) (l-host (tramp-file-name-host hop)) - (l-port nil) + (l-port (tramp-file-name-port hop)) (login-program (tramp-get-method-parameter hop 'tramp-login-program)) (login-args @@ -4755,12 +4755,6 @@ connection if a previous connection has died for some reason." (when (and process-name async-args) (setq login-args (append async-args login-args))) - ;; Check for port number. Until now, there's no - ;; need for handling like method, user, host. - (when (string-match tramp-host-with-port-regexp l-host) - (setq l-port (match-string 2 l-host) - l-host (match-string 1 l-host))) - ;; Check, whether there is a restricted shell. (dolist (elt tramp-restricted-shell-hosts-alist) (when (string-match elt tramp-current-host) commit 62523863780d3894c92f84dd474278eeddc4a0e0 Author: Lars Ingebrigtsen Date: Wed Jun 7 16:17:47 2017 +0200 (url-cookie-host-can-set-p): Protect against zero-length domains * lisp/url/url-cookie.el (url-cookie-host-can-set-p): Protect against zero-length domains. Backtrace of a real-world site that triggers a bug: Debugger entered--Lisp error: (args-out-of-range "" 0) url-cookie-host-can-set-p("www.washingtonpost.com" "") url-cookie-handle-set-cookie("utm_term=0;Expires=Thursday, 01-January-1970 00:00:00 GMT; path=/; domain=") url-http-handle-cookies() diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el index ac4ac592e7..4912db6c53 100644 --- a/lisp/url/url-cookie.el +++ b/lisp/url/url-cookie.el @@ -229,16 +229,19 @@ telling Microsoft that." (defun url-cookie-host-can-set-p (host domain) (let ((last nil) (case-fold-search t)) - (if (string= host domain) ; Apparently netscape lets you do this - t + (cond + ((string= host domain) ; Apparently netscape lets you do this + t) + ((zerop (length domain)) + nil) + (t ;; Remove the dot from wildcard domains before matching. (when (eq ?. (aref domain 0)) (setq domain (substring domain 1))) (and (url-domsuf-cookie-allowed-p domain) ;; Need to check and make sure the host is actually _in_ the ;; domain it wants to set a cookie for though. - (string-match (concat (regexp-quote domain) - "$") host))))) + (string-match (concat (regexp-quote domain) "$") host)))))) (defun url-cookie-handle-set-cookie (str) (setq url-cookies-changed-since-last-save t)