commit f75f90a5ddb5e282594483dd7b5dae36f94794c3 (HEAD, refs/remotes/origin/master) Author: Peter Oliver Date: Thu Oct 17 04:43:38 2019 +0200 Allow vc-sccs-diff to work with TRAMP * lisp/vc/vc-sccs.el (vc-sccs-diff): If the diff command is to be run remotely, then the temporary files it's acting on must be remote too (bug#37777). Copyright-paperwork-exempt: yes diff --git a/lisp/vc/vc-sccs.el b/lisp/vc/vc-sccs.el index 805e738f7a..b59d8178fe 100644 --- a/lisp/vc/vc-sccs.el +++ b/lisp/vc/vc-sccs.el @@ -347,7 +347,7 @@ Remaining arguments are ignored." (message "Running %s in foreground..." fake-command)) (if oldproc (delete-process oldproc)) (dolist (file files) - (let ((oldfile (make-temp-file "vc-sccs")) + (let ((oldfile (make-nearby-temp-file "vc-sccs")) newfile) (unwind-protect (progn @@ -364,7 +364,7 @@ Remaining arguments are ignored." (this-status (apply 'process-file "diff" nil t nil (append (vc-switches 'SCCS 'diff) - (list oldfile + (list (file-local-name oldfile) (or newfile (file-relative-name file))))))) (or (integerp this-status) (setq status 'error)) commit 1610d67051f5160f3c3e74c8ea396368cfb0bbd7 Author: Andrii Kolomoiets Date: Thu Oct 17 04:25:10 2019 +0200 Add ui.report_untrusted=0 to vc-hg log commands * lisp/vc/vc-hg.el (vc-hg-state-slow, vc-hg-merge-branch) (vc-hg-command): Add "--config" "ui.report_untrusted=0" to the log commands to avoid "Hg-not trusting file " messages in the mode line (bug#31497). Copyright-paperwork-exempt: yes diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el index 61d5ee1d3a..cc737b30b1 100644 --- a/lisp/vc/vc-hg.el +++ b/lisp/vc/vc-hg.el @@ -237,6 +237,7 @@ highlighting the Log View buffer." process-environment))) (process-file vc-hg-program nil t nil + "--config" "ui.report_untrusted=0" "--config" "alias.status=status" "--config" "defaults.status=" "status" "-A" (file-relative-name file))) @@ -1436,7 +1437,7 @@ This runs the command \"hg merge\"." (buffer (format "*vc-hg : %s*" (expand-file-name root))) ;; Disable pager. (process-environment (cons "HGPLAIN=1" process-environment))) - (apply 'vc-do-async-command buffer root vc-hg-program '("merge")) + (apply 'vc-do-async-command buffer root vc-hg-program '("--config" "ui.report_untrusted=0" "merge")) (with-current-buffer buffer (vc-run-delayed (vc-compilation-mode 'hg))) (vc-set-async-update buffer))) @@ -1447,7 +1448,8 @@ This runs the command \"hg merge\"." This function differs from vc-do-command in that it invokes `vc-hg-program', and passes `vc-hg-global-switches' to it before FLAGS." ;; Disable pager. - (let ((process-environment (cons "HGPLAIN=1" process-environment))) + (let ((process-environment (cons "HGPLAIN=1" process-environment)) + (flags (append '("--config" "ui.report_untrusted=0") flags))) (apply 'vc-do-command (or buffer "*vc*") okstatus vc-hg-program file-or-list (if (stringp vc-hg-global-switches) (cons vc-hg-global-switches flags) commit 3ad407005bf6560f4db40cab9dbeeabe554fb457 Author: Juanma Barranquero Date: Thu Oct 17 02:45:06 2019 +0200 lisp/*.el, src/*.c: Doc fixes related to returning t vs non-nil * lisp/progmodes/flymake-proc.el (flymake-proc--find-buffer-for-file): Doc fix; return value is a buffer, not t. * lisp/progmodes/ebrowse.el (ebrowse-member-display-p): Doc fix; return value is the MEMBER argument, not nil. * lisp/files.el (hack-one-local-variable-eval-safep): * lisp/play/doctor.el (doctor-nounp, doctor-pronounp): * lisp/progmodes/flymake-proc.el (flymake-proc--check-include): * lisp/progmodes/js.el (js--broken-arrow-terminates-line-p): Doc fix; a non-nil return value is not always t. * lisp/image.el (image-type-available-p): * lisp/simple.el (region-active-p): * lisp/window.el (frame-root-window-p): * src/buffer.c (Fbuffer_live_p): * src/image.c (Finit_image_library): * src/window.c (Fwindow_minibuffer_p): Doc fix; a non-nil return value is always t. * doc/lispref/minibuf.texi (Minibuffer Windows): Doc fix. diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi index a9d6e83cf8..dd51181db0 100644 --- a/doc/lispref/minibuf.texi +++ b/doc/lispref/minibuf.texi @@ -2364,8 +2364,8 @@ minibuffer window according to the selected frame. @c Emacs 19 feature @defun window-minibuffer-p &optional window -This function returns non-@code{nil} if @var{window} is a minibuffer -window. @var{window} defaults to the selected window. +This function returns @code{t} if @var{window} is a minibuffer window. +@var{window} defaults to the selected window. @end defun The following function returns the window showing the currently active diff --git a/lisp/files.el b/lisp/files.el index 40807617fa..4b364b49d8 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -3853,7 +3853,7 @@ It is dangerous if either of these conditions are met: (hack-one-local-variable-quotep exp))) (defun hack-one-local-variable-eval-safep (exp) - "Return t if it is safe to eval EXP when it is found in a file." + "Return non-nil if it is safe to eval EXP when it is found in a file." (or (not (consp exp)) ;; Detect certain `put' expressions. (and (eq (car exp) 'put) diff --git a/lisp/image.el b/lisp/image.el index e44330fdfa..66fb5fa5fc 100644 --- a/lisp/image.el +++ b/lisp/image.el @@ -408,7 +408,7 @@ Optional DATA-P non-nil means SOURCE is a string containing image data." ;;;###autoload (defun image-type-available-p (type) - "Return non-nil if image type TYPE is available. + "Return t if image type TYPE is available. Image types are symbols like `xbm' or `jpeg'." (and (fboundp 'init-image-library) (init-image-library type))) diff --git a/lisp/play/doctor.el b/lisp/play/doctor.el index b1ab6703a4..fbcdb5ebbe 100644 --- a/lisp/play/doctor.el +++ b/lisp/play/doctor.el @@ -1023,7 +1023,7 @@ the subject noun, and return the portion of the sentence following it." nil)))) (defun doctor-nounp (x) - "Return t if the symbol argument is a noun." + "Return non-nil if the symbol argument is a noun." (or (doctor-pronounp x) (not (or (doctor-verbp x) (equal x 'not) @@ -1031,7 +1031,7 @@ the subject noun, and return the portion of the sentence following it." (doctor-modifierp x) )) )) (defun doctor-pronounp (x) - "Return t if the symbol argument is a pronoun." + "Return non-nil if the symbol argument is a pronoun." (memq x '( i me mine myself we us ours ourselves ourself diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el index 733e373582..eb0ec87a22 100644 --- a/lisp/progmodes/ebrowse.el +++ b/lisp/progmodes/ebrowse.el @@ -2641,7 +2641,8 @@ means the member buffer is standalone. CLASS is its class." (defun ebrowse-member-display-p (member) - "Return t if MEMBER must be displayed under the current filter settings." + "Check if MEMBER must be displayed under the current filter settings. +If so, return MEMBER; otherwise return nil." (if (and (aref ebrowse--filters (ebrowse-ms-visibility member)) (or (null ebrowse--const-display-flag) (ebrowse-const-p member)) diff --git a/lisp/progmodes/flymake-proc.el b/lisp/progmodes/flymake-proc.el index f08ba2f368..571ee170e3 100644 --- a/lisp/progmodes/flymake-proc.el +++ b/lisp/progmodes/flymake-proc.el @@ -444,7 +444,7 @@ instead of reading master file from disk." (defun flymake-proc--check-include (source-file-name inc-name include-dirs) "Check if SOURCE-FILE-NAME can be found in include path. -Return t if it can be found via include path using INC-NAME." +Return non-nil if it can be found via include path using INC-NAME." (if (file-name-absolute-p inc-name) (flymake-proc--same-files source-file-name inc-name) (while (and include-dirs @@ -458,7 +458,7 @@ Return t if it can be found via include path using INC-NAME." (defun flymake-proc--find-buffer-for-file (file-name) "Check if there exists a buffer visiting FILE-NAME. -Return t if so, nil if not." +Return the buffer if it exists, nil if not." (let ((buffer-name (get-file-buffer file-name))) (if buffer-name (get-buffer buffer-name)))) diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index 8d457a28ec..599923dd27 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el @@ -2703,7 +2703,7 @@ Whitespace and comments around the arrow are ignored.") (defun js--broken-arrow-terminates-line-p () "Helper function for `js--proper-indentation'. -Return t if the last non-comment, non-whitespace token of the +Return non-nil if the last non-comment, non-whitespace token of the current line is the \"=>\" token (of an arrow function)." (let ((from (point))) (end-of-line) diff --git a/lisp/simple.el b/lisp/simple.el index b733f76ac7..e44b877931 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -5685,7 +5685,7 @@ For some commands, it may be appropriate to ignore the value of t)) (defun region-active-p () - "Return non-nil if Transient Mark mode is enabled and the mark is active. + "Return t if Transient Mark mode is enabled and the mark is active. Some commands act specially on the region when Transient Mark mode is enabled. Usually, such commands should use diff --git a/lisp/window.el b/lisp/window.el index af35f9abe6..058e89df7c 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -3867,7 +3867,7 @@ POSITION defaults to the value of `window-point' of WINDOW." (+ (nth 1 edges) (nth 1 pos-in-window))))))) (defun frame-root-window-p (window) - "Return non-nil if WINDOW is the root window of its frame." + "Return t if WINDOW is the root window of its frame." (eq window (frame-root-window window))) (defun window--subtree (window &optional next) diff --git a/src/buffer.c b/src/buffer.c index 8cb28d8aa7..80eaa971a3 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -383,7 +383,7 @@ nsberror (Lisp_Object spec) } DEFUN ("buffer-live-p", Fbuffer_live_p, Sbuffer_live_p, 1, 1, 0, - doc: /* Return non-nil if OBJECT is a buffer which has not been killed. + doc: /* Return t if OBJECT is a buffer which has not been killed. Value is nil if OBJECT is not a buffer or if it has been killed. */) (Lisp_Object object) { diff --git a/src/image.c b/src/image.c index 7cf1bc4c36..08e420837a 100644 --- a/src/image.c +++ b/src/image.c @@ -10053,7 +10053,7 @@ The list of capabilities can include one or more of the following: DEFUN ("init-image-library", Finit_image_library, Sinit_image_library, 1, 1, 0, doc: /* Initialize image library implementing image type TYPE. -Return non-nil if TYPE is a supported image type. +Return t if TYPE is a supported image type. If image libraries are loaded dynamically (currently only the case on MS-Windows), load the library for TYPE if it is not yet loaded, using diff --git a/src/window.c b/src/window.c index 1e6e148bf4..e4bb2daeb3 100644 --- a/src/window.c +++ b/src/window.c @@ -384,7 +384,7 @@ If FRAME is omitted or nil, it defaults to the selected frame. */) DEFUN ("window-minibuffer-p", Fwindow_minibuffer_p, Swindow_minibuffer_p, 0, 1, 0, - doc: /* Return non-nil if WINDOW is a minibuffer window. + doc: /* Return t if WINDOW is a minibuffer window. WINDOW must be a valid window and defaults to the selected one. */) (Lisp_Object window) { commit 2bb0703e24ec1b02bb2ab4be67719e2e050cc4d3 Author: Juanma Barranquero Date: Thu Oct 17 02:08:43 2019 +0200 lisp/*.el: Force non-nil result to t, to match docstring * lisp/emacs-lock.el (emacs-lock-live-process-p): * lisp/shadowfile.el (shadow-file-match): * lisp/emacs-lisp/edebug.el (edebug-basic-spec): * lisp/mail/rmail.el (rmail-expunge-confirmed): * lisp/net/soap-client.el (soap-should-encode-value-for-xs-element): * lisp/progmodes/idlwave.el (idlwave-quoted): * lisp/progmodes/idlw-shell.el (idlwave-shell-filename-string): * lisp/textmodes/refbib.el (r2b-isa-proceedings): * lisp/textmodes/texnfo-upd.el (texinfo-find-lower-level-node): Normalize boolean result. diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index cd709c77b3..bfec807b5c 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el @@ -258,7 +258,8 @@ An extant spec symbol is a symbol that is not a function and has a (setq spec (cdr spec))) t)) ((symbolp spec) - (unless (functionp spec) (function-get spec 'edebug-form-spec))))) + (unless (functionp spec) + (and (function-get spec 'edebug-form-spec) t))))) ;;; Utilities diff --git a/lisp/emacs-lock.el b/lisp/emacs-lock.el index 0cded29193..1c1ea59f05 100644 --- a/lisp/emacs-lock.el +++ b/lisp/emacs-lock.el @@ -115,7 +115,7 @@ Internal use only.") (defun emacs-lock-live-process-p (buffer-or-name) "Return t if BUFFER-OR-NAME is associated with a live process." - (process-live-p (get-buffer-process buffer-or-name))) + (and (process-live-p (get-buffer-process buffer-or-name)) t)) (defun emacs-lock--can-auto-unlock (action) "Return t if the current buffer can auto-unlock for ACTION. diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 34f8a46761..0b5f564abf 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -3547,8 +3547,10 @@ If `rmail-confirm-expunge' is non-nil, ask user to confirm." (and (stringp rmail-deleted-vector) (string-match "D" rmail-deleted-vector) (if rmail-confirm-expunge - (funcall rmail-confirm-expunge - "Erase deleted messages from Rmail file? ") + (and (funcall rmail-confirm-expunge + "Erase deleted messages from Rmail file? ") + ;; In case r-c-e's function returns non-nil, non-t + t) t))) (defun rmail-only-expunge (&optional dont-show) diff --git a/lisp/net/soap-client.el b/lisp/net/soap-client.el index 956e2cf4c4..535e46cf6d 100644 --- a/lisp/net/soap-client.el +++ b/lisp/net/soap-client.el @@ -844,7 +844,7 @@ This is a specialization of `soap-encode-attributes' for "Return t if VALUE should be encoded for ELEMENT, nil otherwise." (cond ;; if value is not nil, attempt to encode it - (value) + (value t) ;; value is nil, but the element's type is a boolean, so nil in this case ;; means "false". We need to encode it. diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el index dde51b355e..3367454c1c 100644 --- a/lisp/progmodes/idlw-shell.el +++ b/lisp/progmodes/idlw-shell.el @@ -2155,7 +2155,7 @@ args of an executive .run, .rnew or .compile." ;; Skip backwards over file name chars (skip-chars-backward idlwave-shell-file-name-chars limit) ;; Check of the next char is a string delimiter - (memq (preceding-char) '(?\' ?\"))))) + (and (memq (preceding-char) '(?\' ?\")) t)))) (defun idlwave-shell-batch-command () "Return t if we're in a batch command statement like @foo" diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index 3535a7b4aa..9c46ac84e2 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el @@ -3629,7 +3629,7 @@ Calling from a program, arguments are START END." (defun idlwave-quoted () "Return t if point is in a comment or quoted string. Returns nil otherwise." - (or (idlwave-in-comment) (idlwave-in-quote))) + (and (or (idlwave-in-comment) (idlwave-in-quote)) t)) (defun idlwave-in-quote () "Return location of the opening quote diff --git a/lisp/shadowfile.el b/lisp/shadowfile.el index 6340c9f1d6..8d9b80bd06 100644 --- a/lisp/shadowfile.el +++ b/lisp/shadowfile.el @@ -417,7 +417,8 @@ filename expansion or contraction, you must do that yourself first." (tramp-file-name-localname file-sup)) (string-equal (tramp-file-name-localname pattern-sup) - (tramp-file-name-localname file-sup)))))) + (tramp-file-name-localname file-sup))) + t))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; User-level Commands diff --git a/lisp/textmodes/refbib.el b/lisp/textmodes/refbib.el index 3ba52e61ea..207fcf2f21 100644 --- a/lisp/textmodes/refbib.el +++ b/lisp/textmodes/refbib.el @@ -498,8 +498,9 @@ try to replace the {DATA} with an abbreviation." (assoc name r2b-proceedings-list) (let ((match (assoc name r2b-booktitle-abbrevs))) (and match - (string-match "proceedings\\|conference" (car (cdr match))))) - ))) + (string-match "proceedings\\|conference" (car (cdr match)))))) + t + )) (defun r2b-isa-university (name) "Return t if NAME is a university or similar organization, diff --git a/lisp/textmodes/texnfo-upd.el b/lisp/textmodes/texnfo-upd.el index 134f82b14e..e2a0ed9af6 100644 --- a/lisp/textmodes/texnfo-upd.el +++ b/lisp/textmodes/texnfo-upd.el @@ -410,23 +410,24 @@ and to the end of the menu region for the level. Return t if the node is found, else nil. Leave point at the beginning of the node if one is found; else do not move point." (let ((case-fold-search t)) - (if (and (< (point) region-end) - (re-search-forward - (concat - "\\(^@node\\).*\n" ; match node line - "\\(\\(\\(^@c\\).*\n\\)" ; match comment line, if any - "\\|" ; or - "\\(^@ifinfo[ ]*\n\\)" ; ifinfo line, if any - "\\|" ; or - "\\(^@ifnottex[ ]*\n\\)" ; ifnottex line, if any - "\\)?" ; end of expression - (eval (cdr (assoc level texinfo-update-menu-lower-regexps)))) - ;; the next higher level node marks the end of this - ;; section, and no lower level node will be found beyond - ;; this position even if region-end is farther off - (texinfo-update-menu-region-end level) - t)) - (goto-char (match-beginning 1))))) + (when (and (< (point) region-end) + (re-search-forward + (concat + "\\(^@node\\).*\n" ; match node line + "\\(\\(\\(^@c\\).*\n\\)" ; match comment line, if any + "\\|" ; or + "\\(^@ifinfo[ ]*\n\\)" ; ifinfo line, if any + "\\|" ; or + "\\(^@ifnottex[ ]*\n\\)" ; ifnottex line, if any + "\\)?" ; end of expression + (eval (cdr (assoc level texinfo-update-menu-lower-regexps)))) + ;; the next higher level node marks the end of this + ;; section, and no lower level node will be found beyond + ;; this position even if region-end is farther off + (texinfo-update-menu-region-end level) + t)) + (goto-char (match-beginning 1)) + t))) (defun texinfo-find-higher-level-node (level region-end) "Search forward from point for node at any higher level than argument LEVEL. commit d502f0c4b5bf0d6dbf0a125b01db21fa3b6292df Author: Juanma Barranquero Date: Wed Oct 16 15:42:41 2019 +0200 * lisp/wid-edit.el (widget-default-active): Normalize boolean result. diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 4d1a609809..32e0b3e125 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -1663,7 +1663,8 @@ The value of the :type attribute should be an unconverted widget type." (and (not (widget-get widget :inactive)) (let ((parent (widget-get widget :parent))) (or (null parent) - (widget-apply parent :active)))))) + (widget-apply parent :active))) + t))) (defun widget-default-deactivate (widget) "Make WIDGET inactive for user modifications." commit 4d65821bf016dff6a8b10578913970f854763346 Author: Juanma Barranquero Date: Wed Oct 16 15:39:42 2019 +0200 Add/fix documentation for widget-apply * doc/misc/widget.texi (Widget Properties): Document `widget-apply'. * src/fns.c (Fwidget_apply): Document return value (used in many places). diff --git a/doc/misc/widget.texi b/doc/misc/widget.texi index 6d94768644..c1127a466a 100644 --- a/doc/misc/widget.texi +++ b/doc/misc/widget.texi @@ -1446,6 +1446,12 @@ Non-@code{nil} if @var{widget} has a value (even @code{nil}) for property @var{property}. @end defun +@defun widget-apply widget property &rest args +Apply the value of @var{property} to @var{widget}, passing @var{args} +as additional arguments to the function. Return the result of that +function call. +@end defun + Occasionally it can be useful to know which kind of widget you have, i.e., the name of the widget type you gave when the widget was created. diff --git a/src/fns.c b/src/fns.c index fc1abe8b18..cbb6879223 100644 --- a/src/fns.c +++ b/src/fns.c @@ -3093,6 +3093,7 @@ later with `widget-put'. */) DEFUN ("widget-apply", Fwidget_apply, Swidget_apply, 2, MANY, 0, doc: /* Apply the value of WIDGET's PROPERTY to the widget itself. +Return the result of applying the value of PROPERTY to WIDGET. ARGS are passed as extra arguments to the function. usage: (widget-apply WIDGET PROPERTY &rest ARGS) */) (ptrdiff_t nargs, Lisp_Object *args) commit b70f885d582e9431ced5b1a07b526b720e70b7ba Author: Michael Albinus Date: Wed Oct 16 15:09:46 2019 +0200 Adapt Tramp's sudo method for non-default shells (Bug#31924) * lisp/net/tramp-sh.el (tramp-methods) : Change template. (tramp-maybe-open-connection): Remove `tramp-login-env'. (Bug#31924) * lisp/net/tramp.el (tramp-methods): Remove docstring for `tramp-login-env'. diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index be6d29e768..e92b9d7729 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -279,11 +279,8 @@ The string is used in `tramp-methods'.") ;; it could be interpreted as password prompt if the ;; remote host echoes the command. (tramp-login-args (("-u" "%u") ("-s") ("-H") - ("-p" "P\"\"a\"\"s\"\"s\"\"w\"\"o\"\"r\"\"d\"\":"))) - ;; Local $SHELL could be a nasty one, like zsh or - ;; fish. Let's override it. - (tramp-login-env (("SHELL") - (,tramp-default-remote-shell))) + ("-p" "P\"\"a\"\"s\"\"s\"\"w\"\"o\"\"r\"\"d\"\":") + ("%l"))) (tramp-remote-shell ,tramp-default-remote-shell) (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")) @@ -4912,8 +4909,6 @@ connection if a previous connection has died for some reason." (remote-shell (tramp-get-method-parameter hop 'tramp-remote-shell)) (extra-args (tramp-get-sh-extra-args remote-shell)) - (login-env - (tramp-get-method-parameter hop 'tramp-login-env)) (async-args (tramp-get-method-parameter hop 'tramp-async-args)) (connection-timeout @@ -4963,24 +4958,6 @@ connection if a previous connection has died for some reason." (tramp-get-method-parameter hop 'tramp-session-timeout))) - ;; Add login environment. - (when login-env - (setq - login-env - (mapcar - (lambda (x) - (setq x (mapcar (lambda (y) (format-spec y spec)) x)) - (unless (member "" x) (string-join x " "))) - login-env)) - (while login-env - (setq command - (format - "%s=%s %s" - (pop login-env) - (tramp-shell-quote-argument (pop login-env)) - command))) - (setq command (concat "env " command))) - ;; Replace `login-args' place holders. (setq l-host (or l-host "") diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index e51a1c7f8a..84a6febf24 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -240,10 +240,6 @@ pair of the form (KEY VALUE). The following KEYs are defined: absence of `tramp-copy-args', is an indication that the method is capable of multi-hops. - * `tramp-login-env' - A list of environment variables and their values, which will - be set when calling `tramp-login-program'. - * `tramp-async-args' When an asynchronous process is started, we know already that the connection works. Therefore, we can pass additional commit b6babe9b4459763889d74d455005d6765df8686d Author: Juanma Barranquero Date: Wed Oct 16 14:37:06 2019 +0200 lisp/speedbar.el: Fix computation of boolean return values * lisp/speedbar.el (speedbar-check-vc-this-line): Normalize boolean result. (speedbar-this-file-in-vc): Use `run-hook-with-args-until-success' to check for files under versin control. Doc fix. diff --git a/lisp/speedbar.el b/lisp/speedbar.el index addb2b42bb..df9e932be9 100644 --- a/lisp/speedbar.el +++ b/lisp/speedbar.el @@ -2934,7 +2934,8 @@ the file being checked." (if (<= 2 speedbar-verbosity-level) (dframe-message "Speedbar vc check...%s" fulln)) (and (file-writable-p fulln) - (speedbar-this-file-in-vc f fn)))) + (speedbar-this-file-in-vc f fn) + t))) (defun speedbar-vc-check-dir-p (directory) "Return t if we should bother checking DIRECTORY for version control files. @@ -2948,14 +2949,15 @@ This can be overloaded to add new types of version control systems." )) (defun speedbar-this-file-in-vc (directory name) - "Check to see if the file in DIRECTORY with NAME is in a version control system. + "Return non-nil if the file NAME in DIRECTORY is under version control. Automatically recognizes all VCs supported by VC mode. You can optimize this function by overriding it and only doing those checks that will occur on your system." (or (vc-backend (concat directory "/" name)) ;; User extension - (run-hook-with-args 'speedbar-vc-in-control-hook directory name) + (run-hook-with-args-until-success 'speedbar-vc-in-control-hook + directory name) )) ;; Object File scanning commit 287f5f1fa48ba947c41ad897ba6f5288a166c887 Author: Michael Albinus Date: Wed Oct 16 12:15:29 2019 +0200 * etc/NEWS: Apply "user option" when possible. Fix other oddities. diff --git a/etc/NEWS b/etc/NEWS index d6a7231474..e1eb74f86e 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -139,13 +139,13 @@ builds respectively. +++ ** Emacs now uses the XDG convention for init files. -For example, it looks for init.el in ~/.config/emacs/init.el, and +For example, it looks for init.el in "~/.config/emacs/init.el", and similarly for other init files. -The XDG_CONFIG_HOME environment variable (which defaults to ~/.config) +The XDG_CONFIG_HOME environment variable (which defaults to "~/.config") specifies the parent directory of these and other configuration files, and will override their traditional locations (the home directory, -~/.emacs.d, etc.). +"~/.emacs.d", etc.). Emacs will still look for init files in their traditional locations if XDG_CONFIG_HOME does not exist, so invoking Emacs with @@ -234,16 +234,16 @@ More specifically, lexical-binding is now used for 'M-:', '--eval', as well as in the "*scratch*" and "*ielm*" buffers. --- -** The new option 'tooltip-resize-echo-area' avoids truncating tooltip text -on GUI frames when tooltips are displayed in the echo area. Instead, -it resizes the echo area as needed to accommodate the full tool-tip -text. +** The new user option 'tooltip-resize-echo-area' avoids truncating +tooltip text on GUI frames when tooltips are displayed in the echo +area. Instead, it resizes the echo area as needed to accommodate the +full tool-tip text. --- ** Show mode line tooltips only if the corresponding action applies. -Customize the option 'mode-line-default-help-echo' to restore the old -behavior where the tooltip text is also shown when the corresponding -action does not apply. +Customize the user option 'mode-line-default-help-echo' to restore the +old behavior where the tooltip text is also shown when the +corresponding action does not apply. +++ ** New hook 'server-after-make-frame-hook'. @@ -287,7 +287,7 @@ that match. +++ ** The Network Security Manager now allows more fine-grained control of what checks to run via the 'network-security-protocol-checks' -variable. +user option. +++ ** TLS connections have their security tightened by default. @@ -298,7 +298,7 @@ flag connections using these weak algorithms and ask users whether to allow them. To get the old behavior back (where certificates are checked for validity, but no warnings about weak cryptography are issued), you can either set 'network-security-protocol-checks' to nil, -or adjust the elements in that variable to only happen on the 'high' +or adjust the elements in that user option to only happen on the 'high' security level (assuming you use the 'medium' level). --- @@ -352,7 +352,7 @@ japanese-iso-8bit. +++ ** New function 'exec-path'. This function by default returns the value of the corresponding -variable, but can optionally return the equivalent of 'exec-path' +user option, but can optionally return the equivalent of 'exec-path' from a remote host. +++ @@ -361,7 +361,7 @@ This triggers to search the program on the remote host as indicated by 'default-directory'. +++ -** New variable 'auto-save-no-message'. +** New user option 'auto-save-no-message'. When set to t, no message will be shown when auto-saving (default value: nil). @@ -406,15 +406,15 @@ and directory-local variables. 'with-connection-local-profiles'. No argument PROFILES needed any longer. --- -** New variable 'next-error-verbose' controls when 'next-error' outputs -a message about the error locus. +** New user option 'next-error-verbose' controls when 'next-error' +outputs a message about the error locus. --- -** New variable 'grep-search-path' defines the directories searched for +** New user option 'grep-search-path' defines the directories searched for grep hits (this used to be controlled by 'compilation-search-path'). --- -** New variable 'emacs-lisp-compilation-search-path' defines the +** New user option 'emacs-lisp-compilation-search-path' defines the directories searched for byte-compiler error messages (this used to be controlled by 'compilation-search-path'). @@ -427,7 +427,7 @@ Emacs configured with Cairo drawing and linked with cairo >= 1.16.0. This is similar to what 'fill-column-indicator' package provides, but much faster and compatible with 'show-trailing-whitespace'. -Customize the buffer-local variables 'display-fill-column-indicator' +Customize the buffer-local user options 'display-fill-column-indicator' and 'display-fill-column-indicator-character' to activate the indicator. @@ -441,10 +441,10 @@ mode they are described in the manual "(emacs) Display". ** 'progress-reporter-update' accepts a suffix string to display. --- -** New variable 'xref-file-name-display' controls the display of file -names in xref buffers. +** New user option 'xref-file-name-display' controls the display of +file names in xref buffers. -** New customizable variable 'byte-count-to-string-function'. +** New user option 'byte-count-to-string-function'. It is used for displaying file sizes and disk space in some cases. +++ @@ -567,7 +567,7 @@ current and the previous or the next line, as before. --- ** The 'C' command in 'tar-mode' will now preserve the timestamp of -the extracted file if the new variable 'tar-copy-preserve-time' is +the extracted file if the new user option 'tar-copy-preserve-time' is non-nil. --- @@ -593,16 +593,16 @@ now prompts the user for the directory containing the desktop file. ** display-line-numbers-mode *** New faces 'line-number-major-tick' and 'line-number-minor-tick', -and customizable variables 'display-line-numbers-major-tick' and +and user options 'display-line-numbers-major-tick' and 'display-line-numbers-minor-tick' can be used to highlight the line numbers of lines multiple of certain numbers. -*** New variable `display-line-numbers-offset', when non-zero, adds +*** New variable 'display-line-numbers-offset', when non-zero, adds an offset to absolute line numbers. +++ ** winner -*** A new variable, 'winner-boring-buffers-regexp', has been added. +*** A new user option, 'winner-boring-buffers-regexp', has been added. ** table ** 'table-generate-source' and friends now support outputting wiki and @@ -620,7 +620,7 @@ should be ignored have been added via the +++ ** tex-mode *** 'latex-noindent-commands' controls indentation of certain commands. -You can use this new variable to control indentation of arguments of +You can use this new user option to control indentation of arguments of \emph, \footnote, and similar commands. ** byte compiler @@ -644,9 +644,9 @@ nil, but instead of scrolling the current line to the top of the screen when there is no left fringe, it inserts a visible arrow before column zero. --- -*** The new 'compilation-transform-file-match-alist' variable can be used -to transform file name matches compilation output, and remove known -false positives being recognised as warnings/errors. +*** The new 'compilation-transform-file-match-alist' user option can +be used to transform file name matches compilation output, and remove +known false positives being recognised as warnings/errors. ** cl-lib.el +++ @@ -654,7 +654,7 @@ false positives being recognised as warnings/errors. its functions. +++ -*** 'cl-defstruct' slots accept a ':documentation' property +*** 'cl-defstruct' slots accept a ':documentation' property. --- *** 'cl-values-list' will now signal an error if its argument isn't a list. @@ -663,8 +663,8 @@ its functions. *** New commands 'doc-view-presentation' and 'doc-view-fit-window-to-page'. *** Added support for password-protected PDF files -*** A new variable 'doc-view-pdftotext-program-args' has been added to -allow controlling how the conversion to text is done. +*** A new user option 'doc-view-pdftotext-program-args' has been added +to allow controlling how the conversion to text is done. ** Ido *** New user option 'ido-big-directories' to mark directories whose @@ -674,7 +674,7 @@ list the contents of such directories when completing file names. ** Minibuffer +++ -*** A new variable, 'minibuffer-beginning-of-buffer-movement', has +*** A new user option, 'minibuffer-beginning-of-buffer-movement', has been introduced to allow controlling how the 'M-<' command works in the minibuffer. If non-nil, point will move to the end of the prompt (if point is after the end of the prompt). @@ -748,7 +748,7 @@ The mode is automatically enabled in files that start with the *** New commands 'project-search' and 'project-query-replace-regexp'. -*** New customizable variable 'project-read-file-name-function'. +*** New user option 'project-read-file-name-function'. ** Etags @@ -795,10 +795,10 @@ pipes, block devices and character devices. ** Find-Dired -*** New customizable variable 'find-dired-refine-function'. +*** New user option 'find-dired-refine-function'. The default value is 'find-dired-sort-by-filename'. -*** New sorting options for the variable 'find-ls-option'. +*** New sorting options for the user option 'find-ls-option'. --- *** Zstandard compression is now supported for 'dired-do-compress' and @@ -807,27 +807,26 @@ The default value is 'find-dired-sort-by-filename'. ** Change Logs and VC +++ -*** New command 'log-edit-generate-changelog-from-diff', bound to C-c C-w. +*** New command 'log-edit-generate-changelog-from-diff', bound to 'C-c C-w'. This generates ChangeLog entries from the VC fileset diff. *** Recording ChangeLog entries doesn't require an actual file. -If a ChangeLog file doesn't exist, and if the new variable +If a ChangeLog file doesn't exist, and if the new user option 'add-log-dont-create-changelog-file' is non-nil (which is the default), commands such as 'C-x 4 a' will add log entries to a suitable named temporary buffer. (An existing ChangeLog file will -still be used if it exists.) Set the variable to nil to get the +still be used if it exists.) Set the user option to nil to get the previous behavior of always creating a buffer that visits a ChangeLog file. -*** New customizable variable 'vc-find-revision-no-save'. +*** New user option 'vc-find-revision-no-save'. With non-nil, 'vc-find-revision' doesn't write the created buffer to file. --- -*** 'vc-dir-ignore' now takes a prefix argument to ignore all marked -files. +*** 'vc-dir-ignore' now takes a prefix argument to ignore all marked files. -*** New customizable variable 'vc-git-grep-template'. -This new variable allows customizing the default arguments passed to +*** New user option 'vc-git-grep-template'. +This new user option allows customizing the default arguments passed to 'git-grep' when 'vc-git-grep' is used. *** Command 'vc-git-stash' now respects marks in the "*vc-dir*" buffer. @@ -887,8 +886,8 @@ effect. +++ *** Better syntax highlighting of Diff hunks. Fragments of source in Diff hunks are now by default highlighted -according to the appropriate major mode. Customize the new option -'diff-font-lock-syntax' to nil to disable this. +according to the appropriate major mode. Customize the new user +option 'diff-font-lock-syntax' to nil to disable this. *** File headers can be shortened, mimicking Magit's diff format. To enable it, set the new user option 'diff-font-lock-prettify' to t. @@ -920,7 +919,8 @@ links to most ordinary special-mode buffers that display text that have URLs embedded. 'browse-url-button-regexp' controls what's considered a button. -*** A new variable, 'browse-url-secondary-browser-function', has been added. +*** A new user option, 'browse-url-secondary-browser-function', has been added. + ** Comint +++ @@ -937,7 +937,7 @@ compatibility with these shells. +++ *** 'comint-insert-previous-argument' can now count arguments from the end. By default, invoking 'C-c .' with a numeric argument N would copy the -Nth argument, counting from the first one. But if the new option +Nth argument, counting from the first one. But if the new user option 'comint-insert-previous-argument-from-end' is non-nil, it will copy the Nth argument counting from the last one. Thus 'C-c .' can now better emulate 'M-.' in both Bash and zsh, since the former counts @@ -1003,7 +1003,7 @@ emulator in line mode. You should instead set properties on known diagnostic symbols, like ':error' and ':warning', as demonstrated in the Flymake manual. -*** New customizable variable 'flymake-start-on-save-buffer'. +*** New user option 'flymake-start-on-save-buffer'. Control whether Flymake starts checking the buffer on save. *** Flymake and backend functions may exchange hints about buffer changes. @@ -1077,9 +1077,9 @@ where you can select a node to go back (like in browsers). --- *** Info can now follow 'file://' protocol URLs. The 'file://' URLs in Info documents can now be followed by passing -them to the 'browse-url' function, like the other protocols: ftp, -http, and https. This allows to have references to local HTML files, -for example. +them to the 'browse-url' function, like the other protocols: 'ftp', +'http', and 'https'. This allows to have references to local HTML +files, for example. ** Xref @@ -1100,7 +1100,7 @@ where it was invoked. --- *** New xref faces 'xref-file-header', 'xref-line-number', 'xref-match'. -*** New variable 'xref-show-definitions-function'. +*** New user option 'xref-show-definitions-function'. It encapsulates the logic pertinent to showing the result of 'xref-find-definitions'. The user can change it to customize its behavior and the display of results. @@ -1120,17 +1120,17 @@ A new command 'xref-revert-buffer' is bound to 'g'. ** Ecomplete *** The ecomplete sorting has changed to a decay-based algorithm. -This can be controlled by the new 'ecomplete-sort-predicate' variable. +This can be controlled by the new 'ecomplete-sort-predicate' user option. -*** The 'ecompleterc' file is now placed in '~/.emacs.d/ecompleterc' by default. -Of course it will still find it if you have it in '~/.ecompleterc'. +*** The 'ecompleterc' file is now placed in "~/.emacs.d/ecompleterc" by default. +Of course it will still find it if you have it in "~/.ecompleterc". ** Gnus +++ *** Two new Gnus summary mode navigation commands have been added, -bound to the '[' and ']' keys: `gnus-summary-prev-unseen-article' and -`gnus-summary-next-unseen-article'. These take you (respectively) to +bound to the '[' and ']' keys: 'gnus-summary-prev-unseen-article' and +'gnus-summary-next-unseen-article'. These take you (respectively) to the previous unseen or next unseen article. (These are the ones that are marked with "." in the summary mode lines.) @@ -1145,7 +1145,7 @@ deleted by any IMAP client (rather than just those that have been deleted by Gnus). +++ -*** New option 'gnus-use-atomic-windows' makes Gnus window layouts +*** New user option 'gnus-use-atomic-windows' makes Gnus window layouts atomic. See the "Atomic Windows" section of the Elisp manual for details. @@ -1200,7 +1200,7 @@ buffer with the article(s) attached. offers them to the user to open with 'browse-url'. --- -*** New option 'nnir-notmuch-filter-group-names-function'. +*** New user option 'nnir-notmuch-filter-group-names-function'. This option controls whether and how to use Gnus search groups as 'path:' search terms to 'notmuch'. @@ -1220,7 +1220,7 @@ and its value has been changed to Duck Duck Go. --- *** 'erc-send-pre-hook' and 'erc-send-this' have been obsoleted. -The variable to use instead to alter text to be sent is now +The user option to use instead to alter text to be sent is now 'erc-pre-send-functions'. ** EUDC @@ -1230,9 +1230,9 @@ The variable to use instead to alter text to be sent is now ** eww/shr +++ -*** The new variable 'shr-cookie-policy' can be used to control when -to use cookies when fetching embedded images. The default is to use -them when the images are from the same domain as the main HTML +*** The new user option 'shr-cookie-policy' can be used to control +when to use cookies when fetching embedded images. The default is to +use them when the images are from the same domain as the main HTML document. +++ @@ -1255,7 +1255,7 @@ current page instead of signaling an error. has been executed. +++ -*** New option 'shr-discard-aria-hidden'. +*** New user option 'shr-discard-aria-hidden'. If set, shr will not render tags with attribute 'aria-hidden="true"'. This attribute is meant to tell screen readers to ignore a tag. @@ -1291,18 +1291,18 @@ defining new 'cl-defmethod' of 'smtpmail-try-auth-method'. *** To always force smtpmail to send credentials over on the first attempt when communicating with the SMTP server(s), the -'smtpmail-servers-requiring-authorization' variable can be used. +'smtpmail-servers-requiring-authorization' user option can be used. +++ *** smtpmail will now try resending mail when getting a transient 4xx error message from the SMTP server. The new 'smtpmail-retries' -variable says how many times to retry. +user option says how many times to retry. ** Footnote mode *** Support Hebrew-style footnotes *** Footnote text lines are now aligned. -Can be controlled via the new variable 'footnote-align-to-fn-text'. +Can be controlled via the new user option 'footnote-align-to-fn-text'. ** CSS mode @@ -1355,7 +1355,7 @@ can now be searched via 'C-s'. ** Ibuffer --- -*** New filter 'ibuffer-filter-by-process'; bound to '/E'. +*** New filter 'ibuffer-filter-by-process'; bound to '/ E'. --- *** All mode filters can now accept a list of symbols. @@ -1380,7 +1380,7 @@ counting from the beginning/end of the buffer. This complements with a numeric argument. *** 'isearch-lazy-count' shows the current match number and total number -of matches in the Isearch prompt. Customizable variables +of matches in the Isearch prompt. User options 'lazy-count-prefix-format' and 'lazy-count-suffix-format' define the format of the current and the total number of matches in the prompt's prefix and suffix respectively. @@ -1412,7 +1412,7 @@ to the existing binding 'M-s h r' ('highlight-regexp') that highlights JUST the search string. +++ -*** New variable 'isearch-yank-on-move' provides options 't' and 'shift' +*** New user option 'isearch-yank-on-move' provides options 't' and 'shift' to extend the search string by yanking text that ends at the new position after moving point in the current buffer. 'shift' extends the search string by motion commands while holding down the shift key. @@ -1481,7 +1481,7 @@ been instrumented by Edebug. ** Enhanced xterm support -*** New variable 'xterm-set-window-title' controls whether Emacs sets +*** New user option 'xterm-set-window-title' controls whether Emacs sets the XTerm window title. This feature is experimental and is disabled by default. @@ -1491,7 +1491,7 @@ by default. *** 'rgrep', 'lgrep' and 'zrgrep' now hide part of the command line that contains a list of ignored directories and files. Clicking on the button with ellipsis unhides it. -The abbreviation can be disabled by the new option +The abbreviation can be disabled by the new user option 'grep-find-abbreviate'. The new command 'grep-find-toggle-abbreviation' toggles it interactively. @@ -1524,7 +1524,7 @@ This is useful for games where lower scores are better, like time-based games. --- *** Completing filenames in the minibuffer via 'C-TAB' now uses the -styles as configured by the variable 'completion-styles'. +styles as configured by the user option 'completion-styles'. ** New macros 'thunk-let' and 'thunk-let*'. These macros are analogue to 'let' and 'let*', but create bindings that @@ -1533,7 +1533,7 @@ are evaluated lazily. ** next-error +++ -*** New customizable variable 'next-error-find-buffer-function'. +*** New user option 'next-error-find-buffer-function'. The value should be a function that determines how to find the next buffer to be used by 'next-error' and 'previous-error'. The default is to use the last buffer that navigated to the current @@ -1592,7 +1592,7 @@ followed when Emacs writes the relevant history variables to the disk. *** Program name completion inside remote shells works now as expected. +++ -*** The variable 'shell-file-name' can be set now as connection-local +*** The user option 'shell-file-name' can be set now as connection-local variable for remote shells. It still defaults to "/bin/sh". ** Single shell commands @@ -1603,14 +1603,14 @@ available for output of asynchronous shell commands. +++ *** Prompt for shell commands can now show the current directory. -Customize 'shell-command-prompt-show-cwd' to enable it. +Customize the new user option 'shell-command-prompt-show-cwd' to enable it. ** Pcomplete -*** The 'pcomplete' command is now obsolete -The Pcomplete functionality can be obtained via completion-at-point -instead, by adding pcomplete-completions-at-point to -completion-at-point-functions. +*** The 'pcomplete' command is now obsolete. +The Pcomplete functionality can be obtained via 'completion-at-point' +instead, by adding 'pcomplete-completions-at-point' to +'completion-at-point-functions'. *** The function 'pcomplete-uniquify-list' has been renamed from 'pcomplete-uniqify-list'. @@ -1625,11 +1625,11 @@ To recover the previous behavior, set new user option --- *** The Secret Service backend supports the ':create' key now. -*** .authinfo and .netrc files now use a new mode: 'authinfo-mode'. +*** ".authinfo" and ".netrc" files now use a new mode: 'authinfo-mode'. This is just like 'fundamental-mode', except that it hides passwords under a "****" display property. When the cursor moves to this text, -the real password is revealed (via 'reveal-mode'). The -'authinfo-hidden' variable can be used to control what to hide. +the real password is revealed (via 'reveal-mode'). The new +'authinfo-hidden' user option can be used to control what to hide. ** Tramp @@ -1707,9 +1707,9 @@ GnuTLS manual) is recommended instead. ** Message -*** 'message-mode' now supports highlighting citations of different -depths. This can be customized via 'message-cite-level-function' and -the new 'message-cited-text-*' faces. +*** 'message-mode' now supports highlighting citations of different depths. +This can be customized via the new user option +'message-cite-level-function' and the new 'message-cited-text-*' faces. +++ *** Messages can now be systematically encrypted @@ -1809,7 +1809,7 @@ A symbol 'uuid' can be passed to 'thing-at-point' and it returns the UUID at point. --- -*** 'number-at-point' will now recognize hex number like 0xAb09 and #xAb09 +*** 'number-at-point' will now recognize hex numbers like 0xAb09 and #xAb09 and return them as numbers. --- @@ -1875,7 +1875,7 @@ symbols (e.g., '[return]', '[tab]', '[backspace]') as keys respectively. +++ *** New user options for tabulated list sort indicators. You can now customize which sorting indicator character to display -near the current column in Tabulated Lists (see variables +near the current column in Tabulated Lists (see user options 'tabulated-list-gui-sort-indicator-asc', 'tabulated-list-gui-sort-indicator-desc', 'tabulated-list-tty-sort-indicator-asc', and @@ -1981,7 +1981,7 @@ name, too. ** Autorevert -*** New variable 'auto-revert-avoid-polling' for saving power. +*** New user option 'auto-revert-avoid-polling' for saving power. When set to a non-nil value, buffers in Auto Revert mode are no longer polled for changes periodically. This reduces the power consumption of an idle Emacs, but may fail on some network file systems; set @@ -2003,12 +2003,12 @@ buffers to auto-revert. ** auth-source-pass +++ -*** New customizable variable 'auth-source-pass-filename'. +*** New user option 'auth-source-pass-filename'. Allows setting the path to the password-store, defaults to "~/.password-store". +++ -*** New customizable variable 'auth-source-pass-port-separator'. +*** New user option 'auth-source-pass-port-separator'. Specifies separator between host and port, defaults to colon ":". --- @@ -2102,13 +2102,13 @@ Unqualified host name: (was none), now %q Login name: was %u, now %l User's full name: was %U, now %L -Merely having (add-hook 'before-save-hook 'time-stamp) in your +Merely having '(add-hook 'before-save-hook 'time-stamp)' in your Emacs init file does not expose you to this change. However, if you set 'time-stamp-format' or 'time-stamp-pattern' with a file-local variable, you may need to update the value. ** mode-local -*** define-overload is declared obsolete +*** 'define-overload' is declared obsolete. * New Modes and Packages in Emacs 27.1 @@ -2128,13 +2128,13 @@ edit file in another tab; and 'C-TAB' and 'S-C-TAB' switch to the next or previous tab. You can also switch between tabs and create/delete tabs with a mouse. -Tab-related commands are available even when the tab-bar-mode is -disabled: by default, they enable tab-bar-mode in that case. +Tab-related commands are available even when 'tab-bar-mode' is +disabled: by default, they enable 'tab-bar-mode' in that case. The X resource "tabBar", class "TabBar" enables the tab bar when its value is "on", "yes" or "1". -The variable 'tab-bar-position' specifies where to show the tab bar. +The user option 'tab-bar-position' specifies where to show the tab bar. Read the new Info node "(emacs) Tab Bars" for full description of all related features. @@ -2143,8 +2143,8 @@ of all related features. The new command 'global-tab-line-mode' enables the tab line above each window, which you can use to switch buffers in the window. Selecting the previous window-local tab is the same as typing 'C-x ' -(previous-buffer), selecting the next tab is the same as 'C-x ' -(next-buffer). Both commands support a numeric prefix argument as +('previous-buffer'), selecting the next tab is the same as 'C-x ' +('next-buffer'). Both commands support a numeric prefix argument as a repeat count. Clicking on the plus icon adds a new buffer to the window-local tab line of buffers. Using the mouse wheel on the tab line scrolls tabs that display the window buffers. @@ -2186,9 +2186,9 @@ immediately. Type 'M-x so-long-commentary' for full documentation. * Incompatible Lisp Changes in Emacs 27.1 --- -** Two-column mode provides its C-x 6 prefix map only after loading -two-column.el. Its prefix key F2 is still available globally -along with C-x 6 used by the tab commands globally. +** Two-column mode provides its 'C-x 6' prefix map only after loading +two-column.el. Its prefix key 'F2' is still available globally +along with 'C-x 6' used by the tab commands globally. --- ** Incomplete destructive splicing support has been removed. @@ -2260,12 +2260,12 @@ other serious errors prevent them from determining the result. Formerly, these functions often (though not always) returned nil. For example, if there is an access error, I/O error or low-level integer overflow when getting the attributes of a file F, -(file-attributes F) now signals an error instead of returning nil. +'(file-attributes F)' now signals an error instead of returning nil. These functions still behave as before if the only problem is that the file does not exist. The affected primitives are -directory-files-and-attributes, file-acl, file-attributes, file-modes, -file-newer-than-file-p, file-selinux-context, file-system-info, and -set-visited-file-modtime. +'directory-files-and-attributes', 'file-acl', 'file-attributes', +'file-modes', 'file-newer-than-file-p', 'file-selinux-context', +'file-system-info', and 'set-visited-file-modtime'. --- ** The function 'eldoc-message' now accepts a single argument. @@ -2387,14 +2387,14 @@ Previously, the control key modifier was used to scroll up or down by an amount which was close to near a full screen. This is now instead available by scrolling with the meta modifier key. -To get the old behaviour back, customize the variable +To get the old behaviour back, customize the user option 'mouse-wheel-scroll-amount', or add the following to your init file: (customize-set-variable 'mouse-wheel-scroll-amount '(5 ((shift) . 1) ((control) . nil))) By default, the font size will be changed in the window that the mouse -pointer is over. To change this behaviour, you can customize the +pointer is over. To change this behaviour, you can customize the user option 'mouse-wheel-follow-mouse'. Note that this will also affect scrolling. @@ -2420,18 +2420,18 @@ overlays. This is only done on 'display' properties that have the 'reveal-toggle-invisible' property set. +++ -** 'process-contact' now takes an optional NO-BLOCK parameter to allow +** 'process-contact' now takes an optional NO-BLOCK argument to allow not waiting for a process to be set up. +++ -** The new 'quit-window-hook' is now run first when executing the -'quit-window' command. +** The new user option 'quit-window-hook' is now run first when +executing the 'quit-window' command. -** The variables 'help-enable-completion-auto-load', +** The user options 'help-enable-completion-auto-load', 'help-enable-auto-load' and 'vhdl-project-auto-load', as well as the -'vhdl-auto-load-project' have been renamed to have "autoload" without -the hyphen in their names. Obsolete aliases from the old names have -been added. +function 'vhdl-auto-load-project' have been renamed to have "autoload" +without the hyphen in their names. Obsolete aliases from the old +names have been added. +++ ** Buttons (created with 'make-button' and related functions) can @@ -2514,10 +2514,10 @@ functions like 'process-id' that compute process IDs, and functions like ** Time values +++ -*** New function time 'time-convert' converts Lisp time values -to Lisp timestamps of various forms, including a new timestamp form -(TICKS . HZ) where TICKS is an integer and HZ a positive integer -denoting a clock frequency. +*** New function 'time-convert' converts Lisp time values to Lisp +timestamps of various forms, including a new timestamp form '(TICKS +. HZ)' where TICKS is an integer and HZ a positive integer denoting a +clock frequency. +++ *** Although the default timestamp format is still '(HI LO US PS)', @@ -2530,19 +2530,20 @@ by hand. +++ *** Decoded (calendrical) timestamps now have subsecond resolution. -This affects decode-time, which generates these timestamps, as well as -functions like encode-time that accept them. The subsecond info is -present as a (TICKS . HZ) value in the seconds element of a decoded -timestamp, and decode-time has a new optional FORM argument specifying -the form of the seconds member. For example, if X is the timestamp -(1566009571321878186 . 1000000000), which represents 2019-08-17 -02:39:31.321878186 UTC, (decode-time X t t) returns ((31321878186 -. 1000000000) 39 2 17 8 2019 6 nil 0) instead of the traditional (31 -39 2 17 8 2019 6 nil 0) returned by plain (decode-time X t). Although -the default FORM is currently 'integer', which truncates the seconds -to an integer and is the traditional behavior, this default may change -in future Emacs versions, so callers requiring an integer should -specify FORM explicitly. +This affects 'decode-time', which generates these timestamps, as well +as functions like 'encode-time' that accept them. The subsecond info +is present as a '(TICKS . HZ)' value in the seconds element of a +decoded timestamp, and 'decode-time' has a new optional FORM argument +specifying the form of the seconds member. For example, if X is the +timestamp '(1566009571321878186 . 1000000000)', which represents +"2019-08-17 02:39:31.321878186 UTC", '(decode-time X t t)' returns +'((31321878186 . 1000000000) 39 2 17 8 2019 6 nil 0)' instead of the +traditional '(31 39 2 17 8 2019 6 nil 0)' returned by plain +'(decode-time X t)'. Although the default FORM is currently +'integer', which truncates the seconds to an integer and is the +traditional behavior, this default may change in future Emacs +versions, so callers requiring an integer should specify FORM +explicitly. +++ *** 'encode-time' supports a new API '(encode-time TIME)'. @@ -2582,7 +2583,7 @@ accessors can be used. *** The new functions 'date-days-in-month' (which will say how many days there are in a month in a specific year), 'date-ordinal-to-time' -(that computes the date of an ordinal day), 'decoded-time-add' for +(that computes the date of an ordinal day), 'decoded-time-add' (for doing computations on a decoded time structure), 'make-decoded-time' (for making a decoded time structure with only the given keywords filled out), and 'encoded-time-set-defaults' (which fills in nil @@ -2669,7 +2670,7 @@ have a new optional argument that makes the settings they produce reliably survive subsequent invocations of 'set-window-buffer'. +++ -** New option 'resize-mini-frames'. +** New user option 'resize-mini-frames'. This option allows to automatically resize minibuffer-only frames similarly to how minibuffer windows are resized on "normal" frames. @@ -2759,7 +2760,7 @@ remote systems, which support this check. +++ ** When interpreting 'gc-cons-percentage', Emacs now estimates the heap size more often and (we hope) more accurately. E.g., formerly -(progn (let ((gc-cons-percentage 0.8)) BODY1) BODY2) continued to use +'(progn (let ((gc-cons-percentage 0.8)) BODY1) BODY2)' continued to use the 0.8 value during BODY2 until the next garbage collection, but that is no longer true. Applications may need to re-tune their GC tricks. @@ -2859,10 +2860,10 @@ functions. *** New library image-converter. If you need to view exotic image formats for which Emacs doesn't have -native support, customize the new variable 'convert-images-externally' -to t. If your system has GraphicsMagick, ImageMagick or 'ffmpeg' -installed, they will then be used to convert images automatically -before displaying them. +native support, customize the new user option +'image-use-external-converter' to t. If your system has +GraphicsMagick, ImageMagick or 'ffmpeg' installed, they will then be +used to convert images automatically before displaying them. *** 'image-mode' now uses this library to automatically rotate images according to the orientation in the Exif data, if any. commit d68e8495e032890fbfd31935b9f660400641f1d9 Author: Martin Rudalics Date: Wed Oct 16 11:02:56 2019 +0200 Handle top margin change in adjust_frame_size * src/frame.c (adjust_frame_size): Handle case where only pseudo windows changed height so the top margin has to be adjusted. * src/window.c (Fset_window_configuration): Call adjust_frame_size with inhibit 4. diff --git a/src/frame.c b/src/frame.c index cc76cf4f69..8ca5106cb2 100644 --- a/src/frame.c +++ b/src/frame.c @@ -704,18 +704,17 @@ adjust_frame_size (struct frame *f, int new_width, int new_height, int inhibit, inhibit_vertical ? Qt : Qnil)); if (FRAME_TERMINAL (f)->set_window_size_hook) - FRAME_TERMINAL (f)->set_window_size_hook (f, - 0, - new_text_width, - new_text_height, - 1); + FRAME_TERMINAL (f)->set_window_size_hook + (f, 0, new_text_width, new_text_height, 1); f->resized_p = true; return; } #endif - if (new_text_width == old_text_width + if ((XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_top + == FRAME_TOP_MARGIN_HEIGHT (f)) + && new_text_width == old_text_width && new_text_height == old_text_height && new_windows_width == old_windows_width && new_windows_height == old_windows_height diff --git a/src/window.c b/src/window.c index ba9af3b9b0..1e6e148bf4 100644 --- a/src/window.c +++ b/src/window.c @@ -7129,10 +7129,11 @@ the return value is nil. Otherwise the value is t. */) if (NILP (leaf_windows[i]->contents)) free_window_matrices (leaf_windows[i]); - /* Allow set_window_size_hook again and apply frame size changes - if needed. */ + /* Allow set_window_size_hook again and resize frame's windows + if necessary. But change frame size only to preserve window + minimum sizes. */ f->can_set_window_size = true; - adjust_frame_size (f, -1, -1, 1, false, Qset_window_configuration); + adjust_frame_size (f, -1, -1, 4, false, Qset_window_configuration); adjust_frame_glyphs (f); unblock_input ();