commit a6894cf0c32c0cc50f1a45cb51117ce01446d666 (HEAD, refs/remotes/origin/master) Author: Juri Linkov Date: Thu Sep 19 23:43:06 2019 +0300 * lisp/window.el (walk-windows): Simplify to use WINDOW arg of window-list-1 instead of calling select-window (bug#35385). diff --git a/lisp/window.el b/lisp/window.el index cf733153b8..620eacdd29 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -2217,6 +2217,10 @@ non-nil values of ALL-FRAMES have special meanings: - A frame means consider all windows on that frame only. +If ALL-FRAMES specifies a frame, the first window walked is the +first window on that frame (the one returned by `frame-first-window'), +not necessarily the selected window. + Anything else means consider all windows on the selected frame and no others. @@ -2226,13 +2230,13 @@ windows nor the buffer list." ;; back to it. (when (window-minibuffer-p) (setq minibuf t)) - ;; Make sure to not mess up the order of recently selected - ;; windows. Use `save-selected-window' and `select-window' - ;; with second argument non-nil for this purpose. + ;; Use `save-selected-window' to prevent FUN from messing up + ;; the order of windows when it changes the selected window. (save-selected-window - (when (framep all-frames) - (select-window (frame-first-window all-frames) 'norecord)) - (dolist (walk-windows-window (window-list-1 nil minibuf all-frames)) + (dolist (walk-windows-window + (window-list-1 (and (framep all-frames) + (frame-first-window all-frames)) + minibuf all-frames)) (funcall fun walk-windows-window)))) (defun window-at-side-p (&optional window side) commit a81223aeaa0d89954a10d9b5912665aedb0b9c74 Author: Eric Abrahamsen Date: Thu Sep 19 10:36:42 2019 -0700 Only use Gnus registry for formatting when registry is loaded See bug #36903 * lisp/gnus/gnus-registry.el (gnus-registry-article-marks-to-chars): (gnus-registry-article-marks-to-names): In some circumstances it's possible for the user's summary line format spec to include registry-specific code, while the registry itself isn't actually loaded. Make sure the database is actually a hashtable before accessing it. diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index e949179b3c..ff0d4bad71 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el @@ -1007,23 +1007,27 @@ Uses `gnus-registry-marks' to find what shortcuts to install." ;; (defalias 'gnus-user-format-function-M 'gnus-registry-article-marks-to-chars) (defun gnus-registry-article-marks-to-chars (headers) "Show the marks for an article by the :char property." - (let* ((id (mail-header-message-id headers)) - (marks (when id (gnus-registry-get-id-key id 'mark)))) - (concat (delq nil - (mapcar - (lambda (m) - (plist-get - (cdr-safe (assoc m gnus-registry-marks)) - :char)) - marks))))) + (if (hash-table-p gnus-registry-db) + (let* ((id (mail-header-message-id headers)) + (marks (when id (gnus-registry-get-id-key id 'mark)))) + (concat (delq nil + (mapcar + (lambda (m) + (plist-get + (cdr-safe (assoc m gnus-registry-marks)) + :char)) + marks)))) + "")) ;; use like this: ;; (defalias 'gnus-user-format-function-M 'gnus-registry-article-marks-to-names) (defun gnus-registry-article-marks-to-names (headers) "Show the marks for an article by name." - (let* ((id (mail-header-message-id headers)) - (marks (when id (gnus-registry-get-id-key id 'mark)))) - (mapconcat (lambda (mark) (symbol-name mark)) marks ","))) + (if (hash-table-p gnus-registry-db) + (let* ((id (mail-header-message-id headers)) + (marks (when id (gnus-registry-get-id-key id 'mark)))) + (mapconcat (lambda (mark) (symbol-name mark)) marks ",")) + "")) (defun gnus-registry-read-mark () "Read a mark name from the user with completion." commit 2b80340bf3585f976d88da94ee9d40eb03230c6b Author: Eli Zaretskii Date: Thu Sep 19 17:10:00 2019 +0300 Fix calls to insert-*-hooks when JIT font lock is active * src/insdel.c (signal_after_change): Save and restore interval_insert_behind_hooks and interval_insert_in_front_hooks across calls to various other hooks, to prevent their clobbering by those other hooks. (Bug#37455) diff --git a/src/buffer.h b/src/buffer.h index 82d9350bfc..280d4e9098 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -1139,6 +1139,12 @@ extern struct buffer buffer_local_flags; that don't have such names. */ extern struct buffer buffer_local_symbols; + +/* verify_interval_modification saves insertion hooks here + to be run later by report_interval_modification. */ +extern Lisp_Object interval_insert_behind_hooks; +extern Lisp_Object interval_insert_in_front_hooks; + extern void delete_all_overlays (struct buffer *); extern void reset_buffer (struct buffer *); diff --git a/src/insdel.c b/src/insdel.c index 1da8d551c7..093b841d6d 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -2201,7 +2201,7 @@ signal_after_change (ptrdiff_t charpos, ptrdiff_t lendel, ptrdiff_t lenins) { ptrdiff_t count = SPECPDL_INDEX (); struct rvoe_arg rvoe_arg; - Lisp_Object tmp; + Lisp_Object tmp, save_insert_behind_hooks, save_insert_in_from_hooks; if (inhibit_modification_hooks) return; @@ -2237,6 +2237,12 @@ signal_after_change (ptrdiff_t charpos, ptrdiff_t lendel, ptrdiff_t lenins) return; } + /* Save and restore the insert-*-hooks, because other hooks like + after-change-functions, called below, could clobber them if they + manipulate text properties. */ + save_insert_behind_hooks = interval_insert_behind_hooks; + save_insert_in_from_hooks = interval_insert_in_front_hooks; + if (!NILP (combine_after_change_list)) Fcombine_after_change_execute (); @@ -2259,6 +2265,9 @@ signal_after_change (ptrdiff_t charpos, ptrdiff_t lendel, ptrdiff_t lenins) rvoe_arg.errorp = 0; } + interval_insert_behind_hooks = save_insert_behind_hooks; + interval_insert_in_front_hooks = save_insert_in_from_hooks; + if (buffer_has_overlays ()) report_overlay_modification (make_fixnum (charpos), make_fixnum (charpos + lenins), diff --git a/src/textprop.c b/src/textprop.c index 44c333256a..d36b9e14a6 100644 --- a/src/textprop.c +++ b/src/textprop.c @@ -58,9 +58,8 @@ enum property_set_type /* verify_interval_modification saves insertion hooks here to be run later by report_interval_modification. */ -static Lisp_Object interval_insert_behind_hooks; -static Lisp_Object interval_insert_in_front_hooks; - +Lisp_Object interval_insert_behind_hooks; +Lisp_Object interval_insert_in_front_hooks; /* Signal a `text-read-only' error. This function makes it easier to capture that error in GDB by putting a breakpoint on it. */ commit 7156b0efc714eaaab5bcf42138752f698e57b5ad Author: Lars Ingebrigtsen Date: Thu Sep 19 16:07:58 2019 +0200 Minor svg wrap tweak * lisp/net/shr.el (svg--wrap-svg): Add the size to the wrapper to avoid having the SVG images shrink (bug#37159). diff --git a/lisp/net/shr.el b/lisp/net/shr.el index d8a01cbbc1..cd5aa3980a 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -1192,7 +1192,7 @@ Return a string with image data." (with-temp-buffer (insert (format - " " + " " (face-foreground 'default) (car size) (cdr size) (base64-encode-string data t))) commit 2d8c8950b921e6fa97c04f72253d4c5349b2d5d4 Author: Lars Ingebrigtsen Date: Thu Sep 19 15:58:34 2019 +0200 Further fix-ups for SVG wrapping in shr * lisp/net/shr.el (svg--wrap-svg): Add the size to the wrapper to avoid having the SVG images shrink (bug#37159). diff --git a/lisp/net/shr.el b/lisp/net/shr.el index e73c7cdee1..d8a01cbbc1 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -1188,15 +1188,15 @@ Return a string with image data." (defun svg--wrap-svg (data) "Add a default foreground colour to SVG images." - (with-temp-buffer - (insert "" - "") - (buffer-string))) + (let ((size (image-size (create-image data nil t :scaling 1) t))) + (with-temp-buffer + (insert + (format + " " + (face-foreground 'default) + (car size) (cdr size) + (base64-encode-string data t))) + (buffer-string)))) (defun shr-image-displayer (content-function) "Return a function to display an image. commit c5e1ed9a94374b93f233c450c5b03edfeb698ab3 Author: Lars Ingebrigtsen Date: Thu Sep 19 14:39:34 2019 +0200 Fix :version in recent commit * lisp/pcmpl-gnu.el (pcmpl-gnu-makefile-includes): Fix :version. diff --git a/lisp/pcmpl-gnu.el b/lisp/pcmpl-gnu.el index 8ec5d93a68..f22632ae27 100644 --- a/lisp/pcmpl-gnu.el +++ b/lisp/pcmpl-gnu.el @@ -37,14 +37,12 @@ (defcustom pcmpl-gnu-makefile-regexps '("\\`GNUmakefile" "\\`[Mm]akefile" "\\.ma?k\\'") "A list of regexps that will match Makefile names." - :type '(repeat regexp) - :group 'pcmpl-gnu) + :type '(repeat regexp)) (defcustom pcmpl-gnu-makefile-includes t "If non-nil, `pcomplete/make' completes on targets in included files." :type 'boolean - :group 'pcmpl-gnu - :version 27.1 + :version "27.1" :safe 'booleanp) ;; Functions: @@ -166,8 +164,7 @@ Return the new list." "\\.t\\(ar\\(\\.\\(gz\\|bz2\\|Z\\|xz\\)\\)?\\|gz\\|a[zZ]\\|z2\\)\\'" "A regexp which matches any tar archive." :version "24.3" ; added xz - :type 'regexp - :group 'pcmpl-gnu) + :type 'regexp) ;; Only used in tar-mode buffers. (defvar tar-parse-info) commit b82f34f996c25deda1b89fc7006833335bb1a6fa Author: Lars Ingebrigtsen Date: Wed Sep 18 16:01:56 2019 +0200 Fix a bug in callback functions in align-areas * lisp/align.el (align-areas): When given a callback function and JUSTIFY, pick out the correct parameters (bug#30139). Suggested by "John Wiegley" . diff --git a/lisp/align.el b/lisp/align.el index 443237b451..cd72d52df4 100644 --- a/lisp/align.el +++ b/lisp/align.el @@ -1216,9 +1216,12 @@ have been aligned. No changes will be made to the buffer." (when area (if func (funcall func - (marker-position (car area)) - (marker-position (cdr area)) - change) + (marker-position (car area)) + (marker-position (if (and justify + (consp (cdr area))) + (cadr area) + (cdr area))) + change) (if (not (and justify (consp (cdr area)))) (goto-char (cdr area)) commit d38110efa75372d4c3be702f157d3a8c6b7f37b5 Author: Paul Eggert Date: Thu Sep 19 00:59:59 2019 -0700 Also prefer .emacs.d if .emacs exists Problem reported by Katsumi Yamaoka (Bug#37456). * lisp/startup.el (startup--xdg-or-homedot): Also prefer .emacs.d if a traditional .emacs file exists. diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index c94e96bde8..ddbc8a8294 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -475,7 +475,8 @@ the value refers to the corresponding source file. @defvar user-emacs-directory This variable holds the name of the Emacs default directory. It defaults to @file{$@{XDG_CONFIG_HOME-'~/.config'@}/emacs/} -if that directory exists and @file{~/.emacs.d/} does not exist, +if that directory exists and @file{~/.emacs.d/} and @file{~/.emacs} do +not exist, otherwise to @file{~/.emacs.d/} on all platforms but MS-DOS@. Here, @file{$@{XDG_CONFIG_HOME-'~/.config'@}} stands for the value of the environment variable @env{XDG_CONFIG_HOME} diff --git a/lisp/startup.el b/lisp/startup.el index ef6234128a..4078f23f3a 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -508,7 +508,14 @@ DIRS are relative." (if (eq system-type 'ms-dos) "/_emacs.d/" "/.emacs.d/")))) - (if (file-exists-p emacs-d-dir) + (if (or (file-exists-p emacs-d-dir) + (if (eq system-type 'windows-nt) + (directory-files (concat "~" user-name) nil + "\\`[._]emacs\\(\\.elc?\\)?\\'") + (file-exists-p (concat "~" init-file-user + (if (eq system-type 'ms-dos) + "/_emacs" + "/.emacs"))))) emacs-d-dir xdg-dir)))) commit 30026cfe666e9647aeef73e26df5ffca2fa2c662 Author: Paul Eggert Date: Thu Sep 19 00:19:11 2019 -0700 Default PICKY_ACCESS to false on non-MS * src/fileio.c (PICKY_EACCES) [!DOS_NT]: Default to false. diff --git a/src/fileio.c b/src/fileio.c index 5337ea5c80..b2896c1fe1 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -257,12 +257,16 @@ file_attribute_errno (Lisp_Object file, int err) be checked further because they may be problems with an ancestor directory instead of with the file itself, which means that we don't have reliable info about the requested file. In practice, - though, such errors are common enough that signaling them can be - annoying even if the errors are real (e.g., Bug#37445). So return - nil for EACCES unless compiling with -DPICKY_EACCES, which is off - by default. */ + though, DOS_NT platforms set errno to EACCES for missing files like + "/var/mail", so signaling EACCES errors would be a mistake there. + So return nil for EACCES unless PICKY_EACCES, which is false by + default on DOS_NT. */ #ifndef PICKY_EACCES +# ifdef DOS_NT enum { PICKY_EACCES = false }; +# else +enum { PICKY_EACCES = true }; +# endif #endif Lisp_Object commit dff4f9c759f5cf19047719716ea5ee8ffdc3006e Author: Paul Eggert Date: Wed Sep 18 23:53:46 2019 -0700 Omit some overenthusiastic file-truename calls Problem reported by Tino Calancha (Bug#37445). * src/emacs.c (init_cmdargs): Call file-truename only if needed, i.e., if invocation-directory ends in "/i386/" on WINDOWSNT. * src/lread.c (readevalloop): If the sourcename is not absolute, make it absolute. There is no need to convert non-absolute files into truenames, since absolute files are not converted into truenames. (init_lread): Do not convert source-directory into a truename at startup. There is no need to do so in a dumped Emacs since an absolute file name suffices. The source directory might not even exist any more, or might have been replaced by an interloper who takes advantage of the truename calculation. (syms_of_lread): Remove Qfile_truename; no longer needed. diff --git a/src/emacs.c b/src/emacs.c index eb732810db..8a8d8b558e 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -479,9 +479,6 @@ init_cmdargs (int argc, char **argv, int skip_args, char const *original_pwd) if (!NILP (Vinvocation_directory)) { - if (NILP (Vpurify_flag) && !NILP (Ffboundp (Qfile_truename))) - Vinvocation_directory = call1 (Qfile_truename, Vinvocation_directory); - dir = Vinvocation_directory; #ifdef WINDOWSNT /* If we are running from the build directory, set DIR to the @@ -490,8 +487,15 @@ init_cmdargs (int argc, char **argv, int skip_args, char const *original_pwd) if (SBYTES (dir) > sizeof ("/i386/") - 1 && 0 == strcmp (SSDATA (dir) + SBYTES (dir) - sizeof ("/i386/") + 1, "/i386/")) - dir = Fexpand_file_name (build_string ("../.."), dir); -#else /* !WINDOWSNT */ + { + if (NILP (Vpurify_flag)) + { + Lisp_Object file_truename = intern ("file-truename"); + if (!NILP (Ffboundp (file_truename))) + dir = call1 (file_truename, dir); + } + dir = Fexpand_file_name (build_string ("../.."), dir); + } #endif name = Fexpand_file_name (Vinvocation_name, dir); while (1) diff --git a/src/lread.c b/src/lread.c index 99e0ce30ba..4f3446b09d 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1999,11 +1999,10 @@ readevalloop (Lisp_Object readcharfun, (NILP (lex_bound) || EQ (lex_bound, Qunbound) ? Qnil : list1 (Qt))); - /* Try to ensure sourcename is a truename, except whilst preloading. */ + /* Ensure sourcename is absolute, except whilst preloading. */ if (!will_dump_p () - && !NILP (sourcename) && !NILP (Ffile_name_absolute_p (sourcename)) - && !NILP (Ffboundp (Qfile_truename))) - sourcename = call1 (Qfile_truename, sourcename) ; + && !NILP (sourcename) && !NILP (Ffile_name_absolute_p (sourcename))) + sourcename = Fexpand_file_name (sourcename, Qnil); LOADHIST_ATTACH (sourcename); @@ -4678,9 +4677,6 @@ load_path_default (void) void init_lread (void) { - if (NILP (Vpurify_flag) && !NILP (Ffboundp (Qfile_truename))) - Vsource_directory = call1 (Qfile_truename, Vsource_directory); - /* First, set Vload_path. */ /* Ignore EMACSLOADPATH when dumping. */ @@ -5100,7 +5096,6 @@ this variable will become obsolete. */); DEFSYM (Qload, "load"); DEFSYM (Qload_file_name, "load-file-name"); DEFSYM (Qeval_buffer_list, "eval-buffer-list"); - DEFSYM (Qfile_truename, "file-truename"); DEFSYM (Qdir_ok, "dir-ok"); DEFSYM (Qdo_after_load_evaluation, "do-after-load-evaluation"); commit 6eb122c8db9d6a445b2002f025e01215ab560843 Author: Matt Bisson Date: Thu Sep 19 08:48:43 2019 +0200 Fix ignored Motif scrollbar resources (Bug#37359) * src/xterm.c (x_create_toolkit_scroll_bar): On Motif scrollbars, "foreground" has no meaning, while "background" means the truck and arrow colors, and "trough" means the background of the entire widget. This fix hooks up the Emacs scrollbar "foreground" color to the XmNbackground resource and the "background" color to XmNtroughColor which is more in line with how Xaw scrollbars behave. Copyright-paperwork-exempt: yes diff --git a/src/xterm.c b/src/xterm.c index b761eaf4d1..27d9800356 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -6087,17 +6087,19 @@ x_create_toolkit_scroll_bar (struct frame *f, struct scroll_bar *bar) XtSetArg (av[ac], XmNincrement, 1); ++ac; XtSetArg (av[ac], XmNpageIncrement, 1); ++ac; + /* Note: "background" is the thumb color, and "trough" is the color behind + everything. */ pixel = f->output_data.x->scroll_bar_foreground_pixel; if (pixel != -1) { - XtSetArg (av[ac], XmNforeground, pixel); + XtSetArg (av[ac], XmNbackground, pixel); ++ac; } pixel = f->output_data.x->scroll_bar_background_pixel; if (pixel != -1) { - XtSetArg (av[ac], XmNbackground, pixel); + XtSetArg (av[ac], XmNtroughColor, pixel); ++ac; } commit 79a01866a01754b9f566af76ef96e80cd90d094b Author: Juanma Barranquero Date: Thu Sep 19 04:32:25 2019 +0200 lisp/*.el, src/*.c: Fix typos in docstrings * lisp/apropos.el (apropos-do-all): * lisp/auth-source-pass.el (auth-source-pass--select-from-entries): * lisp/auth-source.el (auth-source-user-or-password): * lisp/calc/calc-forms.el (math-tzone-names): * lisp/calendar/diary-lib.el (diary-face-attrs) (diary-mark-entries-1): * lisp/cedet/cedet-files.el (cedet-files-list-recursively): * lisp/cedet/ede.el (ede-constructing, ede-deep-rescan): * lisp/cedet/ede/cpp-root.el (ede-cpp-root-header-file-p): * lisp/cedet/ede/proj.el (ede-proj-target-makefile): * lisp/cedet/inversion.el (inversion-check-version) (inversion-test): * lisp/cedet/mode-local.el (mode-local-map-file-buffers): * lisp/cedet/semantic/complete.el (semantic-displayer-ghost): * lisp/cedet/semantic/db-find.el (semanticdb-find-translate-path-default): * lisp/cedet/semantic/db.el (semanticdb-table) (semanticdb-search-system-databases): * lisp/cedet/semantic/imenu.el (semantic-imenu-index-directory): * lisp/cedet/semantic/java.el (semantic-java-doc-keywords-map): * lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-use-headers-flag): * lisp/cedet/semantic/lex.el (semantic-lex-make-keyword-table) (semantic-lex-make-type-table, semantic-lex-debug-analyzers): * lisp/cedet/semantic/tag-ls.el (semantic-tag-abstract-p) (semantic-tag-leaf-p, semantic-tag-static-p) (semantic-tag-prototype-p): * lisp/dnd.el (dnd-open-remote-file-function, dnd-open-local-file): * lisp/emacs-lisp/eieio-opt.el (eieio-build-class-alist) (eieio-read-class, eieio-read-subclass): * lisp/emacs-lisp/generator.el (cps--replace-variable-references) (cps--handle-loop-for): * lisp/erc/erc-dcc.el (erc-dcc-list, erc-dcc-member, erc-dcc-server) (erc-dcc-auto-mask-p, erc-dcc-get-file, erc-dcc-chat-accept): * lisp/eshell/em-pred.el (eshell-pred-file-type): * lisp/faces.el (defined-colors-with-face-attributes): * lisp/font-core.el (font-lock-mode): * lisp/frame.el (frame-restack): * lisp/net/shr.el (shr-image-animate): * lisp/org/org-agenda.el (org-agenda-change-all-lines) (org-agenda-today-p): * lisp/org/org-id.el (org-id-get): * lisp/org/org.el (org-highlight-latex-and-related) (org--valid-property-p): * lisp/org/ox-beamer.el (org-beamer--get-label): * lisp/org/ox-latex.el (org-latex--caption-above-p): * lisp/org/ox-odt.el (org-odt--copy-image-file) (org-odt--copy-formula-file): * lisp/org/ox.el (org-export-with-timestamps): * lisp/progmodes/verilog-mode.el (verilog-indent-declaration-macros): * lisp/ses.el (ses-file-format-extend-parameter-list): * lisp/term.el (ansi-term): * lisp/textmodes/bibtex.el (bibtex-no-opt-remove-re) (bibtex-beginning-of-first-entry, bibtex-autokey-get-title) (bibtex-read-key, bibtex-initialize): * lisp/textmodes/flyspell.el (flyspell-word): * lisp/view.el (view-mode-exit): * src/composite.c: * src/floatfns.c (Fisnan): Fix typos in docstrings. diff --git a/lisp/apropos.el b/lisp/apropos.el index 79e5a1518f..da6cf867b4 100644 --- a/lisp/apropos.el +++ b/lisp/apropos.el @@ -66,7 +66,7 @@ ;; I see a degradation of maybe 10-20% only. (defcustom apropos-do-all nil - "Non nil means apropos commands will search more extensively. + "Non-nil means apropos commands will search more extensively. This may be slower. This option affects the following commands: `apropos-user-option' will search all variables, not just user options. diff --git a/lisp/auth-source-pass.el b/lisp/auth-source-pass.el index f16d910890..c45c782c27 100644 --- a/lisp/auth-source-pass.el +++ b/lisp/auth-source-pass.el @@ -243,7 +243,7 @@ HOSTNAME should not contain any username or port number." (defun auth-source-pass--select-from-entries (entries user) "Return best matching password-store entry data from ENTRIES. -If USER is non nil, give precedence to entries containing a user field +If USER is non-nil, give precedence to entries containing a user field matching USER." (let (fallback) (catch 'auth-source-pass-break diff --git a/lisp/auth-source.el b/lisp/auth-source.el index 74c4491699..7d8657da11 100644 --- a/lisp/auth-source.el +++ b/lisp/auth-source.el @@ -2259,12 +2259,12 @@ items don't have a username. This means that if you search for username \"joe\" and it matches an item but the item doesn't have a :user attribute, the username \"joe\" will be returned. -A non nil DELETE-EXISTING means deleting any matching password +A non-nil DELETE-EXISTING means deleting any matching password entry in the respective sources. This is useful only when -CREATE-MISSING is non nil as well; the intended use case is to +CREATE-MISSING is non-nil as well; the intended use case is to remove wrong password entries. -If no matching entry is found, and CREATE-MISSING is non nil, +If no matching entry is found, and CREATE-MISSING is non-nil, the password will be retrieved interactively, and it will be stored in the password database which matches best (see `auth-sources'). diff --git a/lisp/calc/calc-forms.el b/lisp/calc/calc-forms.el index 7e8a8dcc9d..98dcfab015 100644 --- a/lisp/calc/calc-forms.el +++ b/lisp/calc/calc-forms.el @@ -1462,7 +1462,7 @@ as measured in the integer number of days before December 31, 1 BC (Gregorian)." ( "PGT" 8 "PST" "PDT" ) ( "PST" 8 0 ) ( "PDT" 8 -1 ) ; Pacific ( "YGT" 9 "YST" "YDT" ) ( "YST" 9 0 ) ( "YDT" 9 -1 ) ; Yukon ) - "No doc yet. See calc manual for now. ") + "No doc yet. See calc manual for now.") (defvar var-TimeZone nil) diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index 06f1161b44..5a2374a595 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el @@ -97,7 +97,7 @@ is pre-pended to REGEXP for file-wide specifiers. ATTRIBUTE specifies which face attribute (e.g. `:foreground') to modify, or that this is a face (`:face') to apply. TYPE is the type of attribute being applied. Available TYPES (see `diary-attrtype-convert') -are: `string', `symbol', `int', `tnil', `stringtnil.'" +are: `string', `symbol', `int', `tnil', `stringtnil'." :type '(repeat (list (string :tag "Regular expression") (integer :tag "Sub-expression") (symbol :tag "Attribute (e.g. :foreground)") @@ -1257,7 +1257,7 @@ the regexp with parentheses." MARKFUNC is a function that marks entries of the appropriate type matching a given date pattern. MONTHS is an array of month names. SYMBOL marks diary entries of the type in question. ABSFUNC is a -function that converts absolute dates to dates of the appropriate type. " +function that converts absolute dates to dates of the appropriate type." (calendar-dlet* ((dayname (diary-name-pattern calendar-day-name-array calendar-day-abbrev-array)) diff --git a/lisp/cedet/cedet-files.el b/lisp/cedet/cedet-files.el index d3becd5c84..7329eb37f7 100644 --- a/lisp/cedet/cedet-files.el +++ b/lisp/cedet/cedet-files.el @@ -89,7 +89,7 @@ specific conversions during tests." file)) (defun cedet-files-list-recursively (dir re) - "Returns list of files in directory matching to given regex" + "Return list of files in directory matching to given regex." (when (file-accessible-directory-p dir) (let ((files (directory-files dir t)) matched) diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el index d051510a99..1969df54cd 100644 --- a/lisp/cedet/ede.el +++ b/lisp/cedet/ede.el @@ -162,12 +162,12 @@ This object's class determines how to compile and debug from a buffer.") If `ede-object' is nil, then commands will operate on this object.") (defvar ede-constructing nil - "Non nil when constructing a project hierarchy. + "Non-nil when constructing a project hierarchy. If the project is being constructed from an autoload, then the value is the autoload object being used.") (defvar ede-deep-rescan nil - "Non nil means scan down a tree, otherwise rescans are top level only. + "Non-nil means scan down a tree, otherwise rescans are top level only. Do not set this to non-nil globally. It is used internally.") diff --git a/lisp/cedet/ede/cpp-root.el b/lisp/cedet/ede/cpp-root.el index 0a77692dd7..feff63681a 100644 --- a/lisp/cedet/ede/cpp-root.el +++ b/lisp/cedet/ede/cpp-root.el @@ -389,7 +389,7 @@ This knows details about or source tree." ;; include lists, and Preprocessor symbol tables. (cl-defmethod ede-cpp-root-header-file-p ((proj ede-cpp-root-project) name) - "Non nil if in PROJ the filename NAME is a header." + "Non-nil if in PROJ the filename NAME is a header." (save-match-data (string-match (oref proj header-match-regexp) name))) diff --git a/lisp/cedet/ede/proj.el b/lisp/cedet/ede/proj.el index 59ba3ffcf8..2ce65e91bd 100644 --- a/lisp/cedet/ede/proj.el +++ b/lisp/cedet/ede/proj.el @@ -165,7 +165,7 @@ These are the linkers the user can choose from when setting the :label "Part of all: target" :group make :documentation - "Non nil means the rule created is part of the all: target. + "Non-nil means the rule created is part of the all: target. Setting this to nil creates the rule to build this item, but does not include it in the all: rule.") (configuration-variables diff --git a/lisp/cedet/inversion.el b/lisp/cedet/inversion.el index 3bed9d7053..83561a0dfa 100644 --- a/lisp/cedet/inversion.el +++ b/lisp/cedet/inversion.el @@ -226,7 +226,7 @@ not an indication of new features or bug fixes." "Check that a given version meets the minimum requirement. VERSION, INCOMPATIBLE-VERSION and MINIMUM are of similar format to return entries of `inversion-decode-version', or a classic version -string. INCOMPATIBLE-VERSION can be nil. +string. INCOMPATIBLE-VERSION can be nil. RESERVED arguments are kept for a later use. Return: - nil if everything is ok. @@ -274,7 +274,7 @@ MINIMUM is of similar format to return entries of RESERVED arguments are kept for a later user. This depends on the symbols `PACKAGE-version' and optionally `PACKAGE-incompatible-version' being defined in PACKAGE. -Return nil if everything is ok. Return an error string otherwise." +Return nil if everything is ok. Return an error string otherwise." (let ((check (inversion-check-version (inversion-package-version package) (inversion-package-incompatibility-version package) @@ -306,7 +306,7 @@ OLDVERSION is of similar format to return entries of RESERVED arguments are kept for a later user. This depends on the symbols `PACKAGE-version' and optionally `PACKAGE-incompatible-version' being defined in PACKAGE. -Return nil if everything is ok. Return an error string otherwise." +Return nil if everything is ok. Return an error string otherwise." (let ((check (inversion-check-version (inversion-package-version package) (inversion-package-incompatibility-version package) diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el index 3d2fe45fcb..50dc3cb793 100644 --- a/lisp/cedet/mode-local.el +++ b/lisp/cedet/mode-local.el @@ -58,7 +58,7 @@ "Run FUNCTION on every file buffer found. FUNCTION does not have arguments; when it is entered `current-buffer' is the currently selected file buffer. -If optional argument PREDICATE is non nil, only select file buffers +If optional argument PREDICATE is non-nil, only select file buffers for which the function PREDICATE returns non-nil. If optional argument BUFFERS is non-nil, it is a list of buffers to walk through. It defaults to `buffer-list'." diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el index b438a1c6e2..8f89d1a51e 100644 --- a/lisp/cedet/semantic/complete.el +++ b/lisp/cedet/semantic/complete.el @@ -1800,7 +1800,7 @@ Return a cons cell (X . Y)" "The overlay the ghost text is displayed in.") (first-show :initform t :documentation - "Non nil if we have not seen our first show request.") + "Non-nil if we have not seen our first show request.") ) "Cycle completions inline with ghost text. Completion displayer using ghost chars after point for focus options. diff --git a/lisp/cedet/semantic/db-find.el b/lisp/cedet/semantic/db-find.el index 54935c3a7c..18c749b098 100644 --- a/lisp/cedet/semantic/db-find.el +++ b/lisp/cedet/semantic/db-find.el @@ -304,7 +304,7 @@ so that it can be called from the idle work handler." (defun semanticdb-find-translate-path-default (path brutish) "Translate PATH into a list of semantic tables. -If BRUTISH is non nil, return all tables associated with PATH. +If BRUTISH is non-nil, return all tables associated with PATH. Default action as described in `semanticdb-find-translate-path'." (if (semanticdb-find-results-p path) ;; nil means perform the search over these results. diff --git a/lisp/cedet/semantic/db.el b/lisp/cedet/semantic/db.el index 33ad470176..5c7f842383 100644 --- a/lisp/cedet/semantic/db.el +++ b/lisp/cedet/semantic/db.el @@ -238,7 +238,7 @@ If nil, the table's buffer is no in Emacs. If it has a value, then it is in Emacs.") (dirty :initform nil :documentation - "Non nil if this table needs to be `Saved'.") + "Non-nil if this table needs to be `Saved'.") (db-refs :initform nil :documentation "List of `semanticdb-table' objects referring to this one. @@ -833,7 +833,7 @@ value.") (make-variable-buffer-local 'semanticdb-project-system-databases) (defvar semanticdb-search-system-databases t - "Non nil if search routines are to include a system database.") + "Non-nil if search routines are to include a system database.") (defun semanticdb-current-database-list (&optional dir) "Return a list of databases associated with the current buffer. diff --git a/lisp/cedet/semantic/imenu.el b/lisp/cedet/semantic/imenu.el index 009d04dbd7..5119eb62f3 100644 --- a/lisp/cedet/semantic/imenu.el +++ b/lisp/cedet/semantic/imenu.el @@ -119,7 +119,7 @@ See `semantic-bucketize' and the FILTER argument for more details on this functi (make-variable-buffer-local 'semantic-imenu-sort-bucket-function) (defcustom semantic-imenu-index-directory nil - "Non nil to index the entire directory for tags. + "Non-nil to index the entire directory for tags. Doesn't actually parse the entire directory, but displays tags for all files currently listed in the current Semantic database. This variable has no meaning if semanticdb is not active." diff --git a/lisp/cedet/semantic/java.el b/lisp/cedet/semantic/java.el index 7f9c93b906..b103c3ce15 100644 --- a/lisp/cedet/semantic/java.el +++ b/lisp/cedet/semantic/java.el @@ -391,7 +391,7 @@ That is TAG `symbol-name' without the leading `@'." (defun semantic-java-doc-keywords-map (fun &optional property) "Run function FUN for each javadoc keyword. -Return the list of FUN results. If optional PROPERTY is non nil only +Return the list of FUN results. If optional PROPERTY is non-nil only call FUN for javadoc keywords which have a value for PROPERTY. FUN receives two arguments: the javadoc keyword and its associated 'javadoc property list. It can return any value. All nil values are diff --git a/lisp/cedet/semantic/lex-spp.el b/lisp/cedet/semantic/lex-spp.el index 6fe33f9311..d07dc806a4 100644 --- a/lisp/cedet/semantic/lex-spp.el +++ b/lisp/cedet/semantic/lex-spp.el @@ -1244,7 +1244,7 @@ For languages that use the Semantic pre-processor, this can improve the accuracy of parsed files where include files can change the state of what's parsed in the current file. -Note: Note implemented yet" +Note: Not implemented yet." :group 'semantic :type 'boolean) diff --git a/lisp/cedet/semantic/lex.el b/lisp/cedet/semantic/lex.el index a6ee869c03..50e09e2359 100644 --- a/lisp/cedet/semantic/lex.el +++ b/lisp/cedet/semantic/lex.el @@ -256,7 +256,7 @@ SPECS must be a list of (NAME . TOKSYM) elements, where: NAME is the name of the keyword symbol to define. TOKSYM is the lexical token symbol of that keyword. -If optional argument PROPSPECS is non nil, then interpret it, and +If optional argument PROPSPECS is non-nil, then interpret it, and apply those properties. PROPSPECS must be a list of (NAME PROPERTY VALUE) elements." ;; Create the symbol hash table @@ -414,7 +414,7 @@ SPECS must be a list of (TYPE . TOKENS) elements, where: MATCHER is a string or regexp a text must match to be a such lexical token. -If optional argument PROPSPECS is non nil, then interpret it, and +If optional argument PROPSPECS is non-nil, then interpret it, and apply those properties. PROPSPECS must be a list of (TYPE PROPERTY VALUE)." ;; Create the symbol hash table @@ -1060,7 +1060,7 @@ The collapsed tokens are saved in `semantic-lex-block-streams'." ;; to create new lexical analyzers. (defcustom semantic-lex-debug-analyzers nil - "Non nil means to debug analyzers with syntax protection. + "Non-nil means to debug analyzers with syntax protection. Only in effect if `debug-on-error' is also non-nil." :group 'semantic :type 'boolean) diff --git a/lisp/cedet/semantic/tag-ls.el b/lisp/cedet/semantic/tag-ls.el index e4627d69eb..ad072a4096 100644 --- a/lisp/cedet/semantic/tag-ls.el +++ b/lisp/cedet/semantic/tag-ls.el @@ -369,7 +369,7 @@ For these PROTECTIONs, true is returned if TAG is: )) (define-overloadable-function semantic-tag-abstract-p (tag &optional parent) - "Return non nil if TAG is abstract. + "Return non-nil if TAG is abstract. Optional PARENT is the parent tag of TAG. In UML, abstract methods and classes have special meaning and behavior in how methods are overridden. In UML, abstract methods are italicized. @@ -393,7 +393,7 @@ See `semantic-tag-abstract-p'." abs)) (define-overloadable-function semantic-tag-leaf-p (tag &optional parent) - "Return non nil if TAG is leaf. + "Return non-nil if TAG is leaf. Optional PARENT is the parent tag of TAG. In UML, leaf methods and classes have special meaning and behavior. @@ -417,7 +417,7 @@ See `semantic-tag-leaf-p'." leaf)) (define-overloadable-function semantic-tag-static-p (tag &optional parent) - "Return non nil if TAG is static. + "Return non-nil if TAG is static. Optional PARENT is the parent tag of TAG. In UML, static methods and attributes mean that they are allocated in the parent class, and are not instance specific. @@ -436,7 +436,7 @@ See `semantic-tag-static-p'." ;;;###autoload (define-overloadable-function semantic-tag-prototype-p (tag) - "Return non nil if TAG is a prototype. + "Return non-nil if TAG is a prototype. For some languages, such as C, a prototype is a declaration of something without an implementation." ) diff --git a/lisp/cedet/semantic/wisent.el b/lisp/cedet/semantic/wisent.el index 122b5d399c..4a759531e4 100644 --- a/lisp/cedet/semantic/wisent.el +++ b/lisp/cedet/semantic/wisent.el @@ -184,7 +184,7 @@ the standard function `semantic-parse-stream'." ;; lookahead tokens and tokens in STREAM can be different the ;; lookahead token is put in the variable `wisent-lex-lookahead' ;; before calling `wisent-parse'. Wisent's lexers always pop the - ;; next lexical token from that variable when non nil, then from + ;; next lexical token from that variable when non-nil, then from ;; the lexical input stream. ;; ;; The first element of STREAM is used to keep lookahead tokens diff --git a/lisp/dnd.el b/lisp/dnd.el index 973af7e518..1599543c3e 100644 --- a/lisp/dnd.el +++ b/lisp/dnd.el @@ -63,12 +63,12 @@ if some action was made, or nil if the URL is ignored." 'dnd-open-local-file 'dnd-open-remote-url) "The function to call when opening a file on a remote machine. -The function will be called with two arguments; URI and ACTION. See -`dnd-open-file' for details. +The function will be called with two arguments, URI and ACTION. +See `dnd-open-file' for details. If nil, then dragging remote files into Emacs will result in an error. Predefined functions are `dnd-open-local-file' and `dnd-open-remote-url'. `dnd-open-local-file' attempts to open a remote file using its UNC name and -is the default on MS-Windows. `dnd-open-remote-url' uses `url-handler-mode' +is the default on MS-Windows. `dnd-open-remote-url' uses `url-handler-mode' and is the default except for MS-Windows." :version "22.1" :type 'function @@ -174,7 +174,7 @@ The last / in file:/// is part of the file name. If the system natively supports unc file names, then remote urls of the form file://server-name/file-name will also be handled by this function. An alternative for systems that do not support unc file names is -`dnd-open-remote-url'. ACTION is ignored." +`dnd-open-remote-url'. ACTION is ignored." (let* ((f (dnd-get-local-file-name uri t))) (if (and f (file-readable-p f)) diff --git a/lisp/emacs-lisp/eieio-opt.el b/lisp/emacs-lisp/eieio-opt.el index f08c1de936..fdbf05b399 100644 --- a/lisp/emacs-lisp/eieio-opt.el +++ b/lisp/emacs-lisp/eieio-opt.el @@ -86,7 +86,7 @@ Argument CH-PREFIX is another character prefix to display." (defun eieio-build-class-alist (&optional class instantiable-only buildlist) "Return an alist of all currently active classes for completion purposes. Optional argument CLASS is the class to start with. -If INSTANTIABLE-ONLY is non nil, only allow names of classes which +If INSTANTIABLE-ONLY is non-nil, only allow names of classes which are not abstract, otherwise allow all classes. Optional argument BUILDLIST is more list to attach and is used internally." (let* ((cc (or class 'eieio-default-superclass)) @@ -107,7 +107,7 @@ Optional argument BUILDLIST is more list to attach and is used internally." (defun eieio-read-class (prompt &optional histvar instantiable-only) "Return a class chosen by the user using PROMPT. Optional argument HISTVAR is a variable to use as history. -If INSTANTIABLE-ONLY is non nil, only allow names of classes which +If INSTANTIABLE-ONLY is non-nil, only allow names of classes which are not abstract." (intern (completing-read prompt (eieio-build-class-alist nil instantiable-only) nil t nil @@ -117,7 +117,7 @@ are not abstract." "Return a class chosen by the user using PROMPT. CLASS is the base class, and completion occurs across all subclasses. Optional argument HISTVAR is a variable to use as history. -If INSTANTIABLE-ONLY is non nil, only allow names of classes which +If INSTANTIABLE-ONLY is non-nil, only allow names of classes which are not abstract." (intern (completing-read prompt (eieio-build-class-alist class instantiable-only) diff --git a/lisp/emacs-lisp/generator.el b/lisp/emacs-lisp/generator.el index caf5fed154..dd709b32b0 100644 --- a/lisp/emacs-lisp/generator.el +++ b/lisp/emacs-lisp/generator.el @@ -541,7 +541,7 @@ don't yield.") (defun cps--replace-variable-references (var new-var form) "Replace all non-shadowed references to VAR with NEW-VAR in FORM. -This routine does not modify FORM. Instead, it returns a +This routine does not modify FORM. Instead, it returns a modified copy." (macroexpand-all `(cl-symbol-macrolet ((,var ,new-var)) ,form) @@ -760,7 +760,7 @@ Return the value with which ITERATOR finished iteration." (cps--advance-for ,cs)))) (defun cps--handle-loop-for (var) - "Support `iter-by' in `loop'. " + "Support `iter-by' in `loop'." ;; N.B. While the cl-loop-for-handler is a documented interface, ;; there's no documented way for cl-loop-for-handler callbacks to do ;; anything useful! Additionally, cl-loop currently lexbinds useful diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el index 526add1a61..f3b2336998 100644 --- a/lisp/erc/erc-dcc.el +++ b/lisp/erc/erc-dcc.el @@ -88,13 +88,13 @@ All values of the list must be uppercase strings.") (:nick \"nick\" :type SEND :peer server-proc :parent parent-proc :file file :sent :confirmed )) - :nick - a user or userhost for the peer. combine with :parent to reach them + :nick - a user or userhost for the peer. Combine with :parent to reach them :type - the type of DCC connection - SEND for outgoing files, GET for - incoming, and CHAT for both directions. To tell which end started + incoming, and CHAT for both directions. To tell which end started the DCC chat, look at :peer - :peer - the other end of the DCC connection. In the case of outgoing DCCs, + :peer - the other end of the DCC connection. In the case of outgoing DCCs, this represents a server process until a connection is established :parent - the server process where the dcc connection was established. @@ -102,7 +102,7 @@ All values of the list must be uppercase strings.") connection is in general independent from a particular server connection after it was established. - :file - for outgoing sends, the full path to the file. for incoming sends, + :file - for outgoing sends, the full path to the file. For incoming sends, the suggested filename or vetted filename :size - size of the file, may be nil on incoming DCCs") @@ -163,11 +163,11 @@ All values of the list must be uppercase strings.") (defun erc-dcc-member (&rest args) "Return the first matching entry in `erc-dcc-list' which satisfies the -constraints given as a plist in ARGS. Returns nil on no match. +constraints given as a plist in ARGS. Returns nil on no match. The property :nick is treated specially, if it contains a `!' character, it is treated as a nick!user@host string, and compared with the :nick property -value of the individual elements using string-equal. Otherwise it is +value of the individual elements using string-equal. Otherwise it is compared with `erc-nick-equal-p' which is IRC case-insensitive." (let ((list erc-dcc-list) result test) @@ -338,8 +338,8 @@ string \".*!.*@.*\" to this list." :type '(repeat regexp)) (defun erc-dcc-server (name filter sentinel) - "Start listening on a port for an incoming DCC connection. Returns the newly -created subprocess, or nil." + "Start listening on a port for an incoming DCC connection. +Returns the newly created subprocess, or nil." (let ((port (or (and erc-dcc-port-range (car erc-dcc-port-range)) t)) (upper (and erc-dcc-port-range (cdr erc-dcc-port-range))) process) @@ -686,7 +686,7 @@ It extracts the information about the dcc request and adds it to (defun erc-dcc-auto-mask-p (spec) "Takes a full SPEC of a user in the form \"nick!login@host\" and -matches against all the regexp's in `erc-dcc-auto-masks'. If any +matches against all the regexp's in `erc-dcc-auto-masks'. If any match, returns that regexp and nil otherwise." (let ((lst erc-dcc-auto-masks)) (while (and lst @@ -908,7 +908,7 @@ other client." (defun erc-dcc-get-file (entry file parent-proc) "This function does the work of setting up a transfer from the remote client -to the local one over a tcp connection. This involves setting up a process +to the local one over a tcp connection. This involves setting up a process filter and a process sentinel, and making the connection." (let* ((buffer (generate-new-buffer (file-name-nondirectory file))) proc) @@ -1156,7 +1156,7 @@ other client." buffer)) (defun erc-dcc-chat-accept (entry parent-proc) - "Accept an incoming DCC connection and open a DCC window" + "Accept an incoming DCC connection and open a DCC window." (let* ((nick (erc-extract-nick (plist-get entry :nick))) buffer proc) (setq proc diff --git a/lisp/eshell/em-pred.el b/lisp/eshell/em-pred.el index cfef59f962..ca5e2fafa9 100644 --- a/lisp/eshell/em-pred.el +++ b/lisp/eshell/em-pred.el @@ -461,7 +461,7 @@ resultant list of strings." (defun eshell-pred-file-type (type) "Return a test which tests that the file is of a certain TYPE. TYPE must be a character, and should be one of the possible options -that `ls -l' will show in the first column of its display. " +that `ls -l' will show in the first column of its display." (when (eq type ?%) (setq type (char-after)) (if (memq type '(?b ?c)) diff --git a/lisp/faces.el b/lisp/faces.el index 5193c216d0..efae101cd8 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -1850,7 +1850,7 @@ If FRAME is nil, that stands for the selected frame." (defun defined-colors-with-face-attributes (&optional frame) "Return a list of colors supported for a particular frame. See `defined-colors' for arguments and return value. In contrast -to `define-colors' the elements of the returned list are color +to `define-colorss' the elements of the returned list are color strings with text properties, that make the color names render with the color they represent as background color." (mapcar diff --git a/lisp/font-core.el b/lisp/font-core.el index 6b26f0cb92..e424506795 100644 --- a/lisp/font-core.el +++ b/lisp/font-core.el @@ -126,7 +126,7 @@ buffer local value for `font-lock-defaults', via its mode hook. The above is the default behavior of `font-lock-mode'; you may specify your own function which is called when `font-lock-mode' -is toggled via `font-lock-function'. " +is toggled via `font-lock-function'." nil nil nil :after-hook (font-lock-initial-fontify) ;; Don't turn on Font Lock mode if we don't have a display (we're running a diff --git a/lisp/frame.el b/lisp/frame.el index fd7e872fb6..e9d4b2ebe4 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -1817,7 +1817,7 @@ below (above if ABOVE is true) that of FRAME2. Hence the position of FRAME2 in its display's Z (stacking) order relative to all other frames excluding FRAME1 remains unaltered. -Some window managers may refuse to restack windows. " +Some window managers may refuse to restack windows." (if (and (frame-live-p frame1) (frame-live-p frame2) (equal (frame-parameter frame1 'display) diff --git a/lisp/international/kkc.el b/lisp/international/kkc.el index 6691ee9eb9..437971742d 100644 --- a/lisp/international/kkc.el +++ b/lisp/international/kkc.el @@ -613,7 +613,7 @@ and change the current conversion to the last one in the group." (message "%s" msg)))) ;; Update the conversion area with the latest conversion selected. -;; ALL if non nil means to update the whole area, else update only +;; ALL if non-nil means to update the whole area, else update only ;; inside quail-overlay-head. (defun kkc-update-conversion (&optional all) diff --git a/lisp/net/shr.el b/lisp/net/shr.el index 1dff129b9d..e73c7cdee1 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -115,7 +115,7 @@ Alternative suggestions are: 'browse-url-secondary-browser-function "27.1") (defcustom shr-image-animate t - "Non nil means that images that can be animated will be." + "Non-nil means that images that can be animated will be." :version "24.4" :type 'boolean) diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el index a6195cfb2a..e50ec3cf08 100644 --- a/lisp/org/org-agenda.el +++ b/lisp/org/org-agenda.el @@ -8908,7 +8908,7 @@ The new content of the line will be NEWHEAD (as modified by If FIXFACE is non-nil, the face of each item is modified according to the new TODO state. If JUST-THIS is non-nil, change just the current line, not all. -If FORCE-TAGS is non nil, the car of it returns the new tags." +If FORCE-TAGS is non-nil, the car of it returns the new tags." (let* ((inhibit-read-only t) (line (org-current-line)) (org-agenda-buffer (current-buffer)) @@ -10205,7 +10205,7 @@ to override `appt-message-warning-time'." (message "Added %d event%s for today" cnt (if (> cnt 1) "s" ""))))) (defun org-agenda-today-p (date) - "Non nil when DATE means today. + "Non-nil when DATE means today. DATE is either a list of the form (month day year) or a number of days as returned by `calendar-absolute-from-gregorian' or `org-today'. This function considers `org-extend-today-until' diff --git a/lisp/org/org-id.el b/lisp/org/org-id.el index 34084bfa10..7f7faaae8e 100644 --- a/lisp/org/org-id.el +++ b/lisp/org/org-id.el @@ -241,7 +241,7 @@ Create an ID if necessary." "Get the ID property of the entry at point-or-marker POM. If POM is nil, refer to the entry at point. If the entry does not have an ID, the function returns nil. -However, when CREATE is non nil, create an ID if none is present already. +However, when CREATE is non-nil, create an ID if none is present already. PREFIX will be passed through to `org-id-new'. In any case, the ID of the entry is returned." (org-with-point-at pom diff --git a/lisp/org/org.el b/lisp/org/org.el index ab29353ae8..1bb46e49c7 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -4280,7 +4280,7 @@ org-level-* faces." (defcustom org-highlight-latex-and-related nil "Non-nil means highlight LaTeX related syntax in the buffer. -When non nil, the value should be a list containing any of the +When non-nil, the value should be a list containing any of the following symbols: `latex' Highlight LaTeX snippets and environments. `script' Highlight subscript and superscript. @@ -15434,7 +15434,7 @@ but in some other way.") Being in this list makes sure that they are offered for completion.") (defun org--valid-property-p (property) - "Non nil when string PROPERTY is a valid property name." + "Non-nil when string PROPERTY is a valid property name." (not (or (equal property "") (string-match-p "\\s-" property)))) diff --git a/lisp/org/ox-beamer.el b/lisp/org/ox-beamer.el index 11574a9716..77c1b33c5d 100644 --- a/lisp/org/ox-beamer.el +++ b/lisp/org/ox-beamer.el @@ -326,7 +326,7 @@ INFO is a plist used as a communication channel. The value is either the label specified in \"BEAMER_opt\" property, the custom ID, if there is one and -`:latex-prefer-user-labels' property has a non nil value, or +`:latex-prefer-user-labels' property has a non-nil value, or a unique internal label. This function assumes HEADLINE will be treated as a frame." (cond diff --git a/lisp/org/ox-latex.el b/lisp/org/ox-latex.el index d711530bf7..b029f828e4 100644 --- a/lisp/org/ox-latex.el +++ b/lisp/org/ox-latex.el @@ -1236,7 +1236,7 @@ calling `org-latex-compile'." ;;; Internal Functions (defun org-latex--caption-above-p (element info) - "Non nil when caption is expected to be located above ELEMENT. + "Non-nil when caption is expected to be located above ELEMENT. INFO is a plist holding contextual information." (let ((above (plist-get info :latex-caption-above))) (if (symbolp above) above diff --git a/lisp/org/ox-odt.el b/lisp/org/ox-odt.el index 8deb6bd51a..999a2b7f5c 100644 --- a/lisp/org/ox-odt.el +++ b/lisp/org/ox-odt.el @@ -2174,7 +2174,7 @@ SHORT-CAPTION are strings." ;;;; Links :: Inline Images (defun org-odt--copy-image-file (path) - "Returns the internal name of the file" + "Return the internal name of the file" (let* ((image-type (file-name-extension path)) (media-type (format "image/%s" image-type)) (target-dir "Images/") @@ -2379,7 +2379,7 @@ used as a communication channel." (concat equation "" label)))))) (defun org-odt--copy-formula-file (src-file) - "Returns the internal name of the file" + "Return the internal name of the file" (let* ((target-dir (format "Formula-%04d/" (cl-incf org-odt-embedded-formulas-count))) (target-file (concat target-dir "content.xml"))) diff --git a/lisp/org/ox.el b/lisp/org/ox.el index 58bc9b0ffb..aa04676db8 100644 --- a/lisp/org/ox.el +++ b/lisp/org/ox.el @@ -804,7 +804,7 @@ also be set with the OPTIONS keyword, e.g. \"timestamp:nil\"." :safe #'booleanp) (defcustom org-export-with-timestamps t - "Non nil means allow timestamps in export. + "Non-nil means allow timestamps in export. It can be set to any of the following values: t export all timestamps. diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index 76f5de212f..631787d73f 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el @@ -1966,7 +1966,7 @@ Note that this is a strict tail, so won't match, e.g. \"0x....\".") ;; these caches from inside them, and we must thus be sure that this ;; has already been executed. ;; - ;; This calls the language variable c-before-font-lock-functions, if non nil. + ;; This calls the language variable c-before-font-lock-functions, if non-nil. ;; This typically sets `syntax-table' properties. ;; We can sometimes get two consecutive calls to `after-change-functions' diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 78f27295f0..a035161000 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -1313,7 +1313,7 @@ buffer-local values of tags table format variables." ;; Find the end of the tag and record the whole tag text. (search-forward "\177") (setq tag-text (buffer-substring (1- (point)) (point-at-bol))) - ;; If use-explicit is non nil and explicit tag is present, use it as part of + ;; If use-explicit is non-nil and explicit tag is present, use it as part of ;; return value. Else just skip it. (setq explicit-start (point)) (when (and (search-forward "\001" (point-at-bol 2) t) diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el index 2939108d47..293d0b2450 100644 --- a/lisp/progmodes/verilog-mode.el +++ b/lisp/progmodes/verilog-mode.el @@ -626,7 +626,7 @@ If nil, indent as: input [31:0] a; input \\=`CP; output c; -If non nil, treat as: +If non-nil, treat as: input [31:0] a; input \\=`CP ; output c;" diff --git a/lisp/ses.el b/lisp/ses.el index 37d0d61503..36c966432c 100644 --- a/lisp/ses.el +++ b/lisp/ses.el @@ -1435,7 +1435,7 @@ ses--default-printer, ses--numrows, or ses--numcols." "Extend the global parameters list when file format is updated from 2 to 3. This happens when local printer function are added to a sheet that was created with SES version 2. This is not -undoable. Return nil when there was no change, and non nil otherwise." +undoable. Return nil when there was no change, and non-nil otherwise." (save-excursion (cond ((and (= ses--file-format 2) (= 3 new-file-format)) diff --git a/lisp/term.el b/lisp/term.el index 77fbb1d091..66ae470239 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -4209,7 +4209,7 @@ the process. Any more args are arguments to PROGRAM." (defun ansi-term (program &optional new-buffer-name) "Start a terminal-emulator in a new buffer. This is almost the same as `term' apart from always creating a new buffer, -and `C-x' being marked as a `term-escape-char'. " +and `C-x' being marked as a `term-escape-char'." (interactive (list (read-from-minibuffer "Run program: " (or explicit-shell-file-name (getenv "ESHELL") diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index a560c2b097..5ae8097891 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el @@ -862,7 +862,7 @@ To interactively change the dialect use the command `bibtex-set-dialect'." (defcustom bibtex-no-opt-remove-re "\\`option" "If a field name matches this regexp, the prefix OPT is not removed. -If nil prefix OPT is always removed" +If nil prefix OPT is always removed." :group 'bibtex :version "24.1" :type '(choice (regexp) (const nil))) @@ -2188,7 +2188,7 @@ If FLAG is nil, a message is echoed if point was incremented at least (defun bibtex-beginning-of-first-entry () "Go to beginning of line of first BibTeX entry in buffer. If `bibtex-sort-ignore-string-entries' is non-nil, @String entries -are ignored. Return point" +are ignored. Return point." (goto-char (point-min)) (bibtex-skip-to-valid-entry) (point)) @@ -2714,7 +2714,7 @@ and `bibtex-autokey-names-stretch'." (defun bibtex-autokey-get-title () "Get title field contents up to a terminator. -Return the result as a string" +Return the result as a string." (let ((case-fold-search t) (titlestring (bibtex-autokey-get-field "title" @@ -2866,7 +2866,7 @@ Concatenate the key: (defun bibtex-read-key (prompt &optional key global) "Read BibTeX key from minibuffer using PROMPT and default KEY. If optional arg GLOBAL is non-nil, completion is based on the keys in -`bibtex-reference-keys' of `bibtex-files'," +`bibtex-reference-keys' of `bibtex-files'." (let (completion-ignore-case) (completing-read prompt (if global (bibtex-global-key-alist) bibtex-reference-keys) @@ -3054,7 +3054,7 @@ already set. If SELECT is non-nil interactively select a BibTeX buffer. When called interactively, FORCE is t, CURRENT is t if current buffer visits a file using `bibtex-mode', and SELECT is t if current buffer -does not use `bibtex-mode'," +does not use `bibtex-mode'." (interactive (list (eq major-mode 'bibtex-mode) t (not (eq major-mode 'bibtex-mode)))) (let ((file-path (split-string (or bibtex-file-path default-directory) ":+")) diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index bfe912308e..bae0283497 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el @@ -1116,7 +1116,7 @@ Mostly we check word delimiters." If the optional argument FOLLOWING, or, when called interactively `ispell-following-word', is non-nil, checks the following (rather than preceding) word when the cursor is not over a word. If -optional argument KNOWN-MISSPELLING is non nil considers word a +optional argument KNOWN-MISSPELLING is non-nil considers word a misspelling and skips redundant spell-checking step. See `flyspell-get-word' for details of how this finds the word to diff --git a/lisp/view.el b/lisp/view.el index deda061cd3..f9aa86617a 100644 --- a/lisp/view.el +++ b/lisp/view.el @@ -581,7 +581,7 @@ the associations of any windows with the current buffer. EXIT-ACTION, if non-nil, must specify a function that is called with the current buffer as argument and is called after disabling `view-mode' and removing any associations of windows with the -current buffer. " +current buffer." (when view-mode (let ((buffer (window-buffer))) (unless view-no-disable-on-exit diff --git a/src/composite.c b/src/composite.c index efbd055cef..2725ab3b99 100644 --- a/src/composite.c +++ b/src/composite.c @@ -77,7 +77,7 @@ along with GNU Emacs. If not, see . */ composition, the elements are characters or encoded composition rules. - MODIFICATION-FUNC -- If non nil, it is a function to call when the + MODIFICATION-FUNC -- If non-nil, it is a function to call when the composition gets invalid after a modification in a buffer. If it is nil, a function in `composition-function-table' of the first character in the sequence is called. diff --git a/src/floatfns.c b/src/floatfns.c index 9049185307..3199d57213 100644 --- a/src/floatfns.c +++ b/src/floatfns.c @@ -141,7 +141,7 @@ DEFUN ("tan", Ftan, Stan, 1, 1, 0, } DEFUN ("isnan", Fisnan, Sisnan, 1, 1, 0, - doc: /* Return non nil if argument X is a NaN. */) + doc: /* Return non-nil if argument X is a NaN. */) (Lisp_Object x) { CHECK_FLOAT (x); commit 34f1035e878a06ad181ff7fc533cd1fa0a565847 Merge: b478444099 107ce3050f Author: Stephen Leake Date: Wed Sep 18 17:43:28 2019 -0700 Merge commit '107ce3050fc37b9a13d8304ae1bb73fac9de5f61' commit b478444099655f36f7b243e21e8f98051299ca8f Author: Stephen Leake Date: Wed Sep 18 17:42:30 2019 -0700 Enhance 'pcomplete/make' to complete on targets in included makefiles * lisp/pcmpl-gnu.el (pcmpl-gnu-makefile-includes): New. (pcmpl-gnu-make-targets): New, factored out of pcmpl-gnu-make-all-targets. (pcmpl-gnu-make-includes): New. (pcmpl-gnu-make-all-targets): Use new functions. diff --git a/etc/NEWS b/etc/NEWS index 87666740df..c1487aa321 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1456,6 +1456,11 @@ available for output of asynchronous shell commands. *** The function 'pcomplete-uniquify-list' has been renamed from 'pcomplete-uniqify-list'. +--- +*** 'pcomplete/make' now completes on targets in included files, recursively. +To recover the previous behavior, set new user option +`pcmpl-gnu-makefile-includes' to nil. + ** Auth-source --- diff --git a/lisp/pcmpl-gnu.el b/lisp/pcmpl-gnu.el index 391441bd79..8ec5d93a68 100644 --- a/lisp/pcmpl-gnu.el +++ b/lisp/pcmpl-gnu.el @@ -40,6 +40,13 @@ :type '(repeat regexp) :group 'pcmpl-gnu) +(defcustom pcmpl-gnu-makefile-includes t + "If non-nil, `pcomplete/make' completes on targets in included files." + :type 'boolean + :group 'pcmpl-gnu + :version 27.1 + :safe 'booleanp) + ;; Functions: ;;;###autoload @@ -108,8 +115,41 @@ "Return a list of possible makefile names." (pcomplete-entries (mapconcat 'identity pcmpl-gnu-makefile-regexps "\\|"))) +(defun pcmpl-gnu-make-targets (targets) + "Add to TARGETS the list of makefile targets in the current buffer. +Return the new list." + (goto-char (point-min)) + (while (re-search-forward + "^\\s-*\\([^\n#%.$][^:=\n]*\\)\\s-*:[^=]" nil t) + (setq targets (nconc (split-string (match-string-no-properties 1)) + targets))) + targets) + +(defun pcmpl-gnu-make-includes () + "Return a list of all included file names in the current buffer." + (let (filenames) + (goto-char (point-min)) + (while (search-forward-regexp "^include +\\(.*\\)$" nil t) + (push (match-string-no-properties 1) filenames)) + filenames)) + +(defun pcmpl-gnu-make-all-targets (makefile targets) + "Add to TARGETS the list of target names in MAKEFILE and files it includes. +Return the new list." + (with-temp-buffer + (with-demoted-errors ;Could be a directory or something. + (insert-file-contents makefile)) + + (let ((filenames (when pcmpl-gnu-makefile-includes (pcmpl-gnu-make-includes)))) + (setq targets (pcmpl-gnu-make-targets targets)) + (dolist (file filenames) + (when (file-readable-p file) + (setq targets (pcmpl-gnu-make-all-targets file targets)))) + )) + targets) + (defun pcmpl-gnu-make-rule-names () - "Return a list of possible make rule names in MAKEFILE." + "Return a list of possible make targets in a makefile in the current directory." (let* ((minus-f (member "-f" pcomplete-args)) (makefile (or (cadr minus-f) (cond @@ -119,12 +159,7 @@ rules) (if (not (file-readable-p makefile)) (unless minus-f (list "-f")) - (with-temp-buffer - (ignore-errors ;Could be a directory or something. - (insert-file-contents makefile)) - (while (re-search-forward - (concat "^\\s-*\\([^\n#%.$][^:=\n]*\\)\\s-*:[^=]") nil t) - (setq rules (append (split-string (match-string 1)) rules)))) + (setq rules (pcmpl-gnu-make-all-targets makefile rules)) (pcomplete-uniquify-list rules)))) (defcustom pcmpl-gnu-tarfile-regexp commit 107ce3050fc37b9a13d8304ae1bb73fac9de5f61 Author: Juri Linkov Date: Thu Sep 19 01:12:36 2019 +0300 * lisp/isearch.el (isearch-lazy-highlight-update): Remember timer object in isearch-lazy-highlight-timer to cancel it in lazy-highlight-cleanup. (isearch-done): No need to set isearch-lazy-highlight-start to nil - it used to reset lazy-highlight loop like isearch-lazy-highlight-window-start, but now other packages set isearch-lazy-highlight-last-string to nil to reset lazy-highlight loop. diff --git a/lisp/isearch.el b/lisp/isearch.el index 9401e8c06d..ec51c2cf4c 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -1370,7 +1370,6 @@ NOPUSH is t and EDIT is t." (remove-hook 'post-command-hook 'isearch-post-command-hook) (remove-hook 'mouse-leave-buffer-hook 'isearch-mouse-leave-buffer) (remove-hook 'kbd-macro-termination-hook 'isearch-done) - (setq isearch-lazy-highlight-start nil) (when (buffer-live-p isearch--current-buffer) (with-current-buffer isearch--current-buffer (setq isearch--current-buffer nil) @@ -3970,8 +3969,9 @@ Attempt to do the search exactly the way the pending Isearch would." (if isearch-lazy-highlight-forward (setq isearch-lazy-highlight-end (point-min)) (setq isearch-lazy-highlight-start (point-max))) - (run-at-time lazy-highlight-interval nil - 'isearch-lazy-highlight-buffer-update)) + (setq isearch-lazy-highlight-timer + (run-at-time lazy-highlight-interval nil + 'isearch-lazy-highlight-buffer-update))) (setq isearch-lazy-highlight-timer (run-at-time lazy-highlight-interval nil 'isearch-lazy-highlight-update))))))))) commit 617f4f31a09f974b0c9cbac903643ee553e5eaa8 Author: Eli Zaretskii Date: Wed Sep 18 21:46:11 2019 +0300 Fix loading .elc files on MS-Windows * src/lread.c (Fload): Don't clobber 'found' if the .el file was not found, as it is used by WINDOWSNT later on. diff --git a/src/lread.c b/src/lread.c index ab0fab47a9..99e0ce30ba 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1343,6 +1343,7 @@ Return t if the file exists and loads successfully. */) /* openp already checked for newness, no point doing it again. FIXME would be nice to get a message when openp ignores suffix order due to load_prefer_newer. */ + Lisp_Object notfound = found; if (!load_prefer_newer && is_elc) { result = stat (SSDATA (efound), &s1); @@ -1354,11 +1355,11 @@ Return t if the file exists and loads successfully. */) err = errno; SSET (efound, SBYTES (efound) - 1, 'c'); if (result != 0) - found = Fsubstring (found, make_fixnum (0), - make_fixnum (-1)); + notfound = Fsubstring (found, make_fixnum (0), + make_fixnum (-1)); } if (result != 0) - file_test_errno (found, err); + file_test_errno (notfound, err); else if (timespec_cmp (get_stat_mtime (&s1), get_stat_mtime (&s2)) < 0) commit 61c2183a440c94ab797696d0f0c76a7dc4007eeb Author: Phillip Lord Date: Tue Jun 4 15:02:33 2019 +0100 Improve logic for dependencies checking * admin/nt/dist-build/build-dep-zips.py: diff --git a/admin/nt/dist-build/build-dep-zips.py b/admin/nt/dist-build/build-dep-zips.py index f0e96f43c8..5698f5179c 100755 --- a/admin/nt/dist-build/build-dep-zips.py +++ b/admin/nt/dist-build/build-dep-zips.py @@ -28,13 +28,33 @@ ## Constants EMACS_MAJOR_VERSION="27" +# This list derives from the features we want Emacs to compile with. +PKG_REQ='''mingw-w64-x86_64-giflib +mingw-w64-x86_64-gnutls +mingw-w64-x86_64-lcms2 +mingw-w64-x86_64-libjpeg-turbo +mingw-w64-x86_64-libpng +mingw-w64-x86_64-librsvg +mingw-w64-x86_64-libtiff +mingw-w64-x86_64-libxml2 +mingw-w64-x86_64-xpm-nox'''.split() + ## Options DRY_RUN=False ## Packages to fiddle with -SKIP_PKGS=["mingw-w64-gcc-libs"] -MUNGE_PKGS ={"mingw-w64-libwinpthread-git":"mingw-w64-winpthreads-git"} +## Source for gcc-libs is part of gcc +SKIP_SRC_PKGS=["mingw-w64-gcc-libs"] +SKIP_DEP_PKGS=["mingw-w64-x86_64-glib2"] +MUNGE_SRC_PKGS={"mingw-w64-libwinpthread-git":"mingw-w64-winpthreads-git"} +MUNGE_DEP_PKGS={ + "mingw-w64-i686-libwinpthread":"mingw-w64-i686-libwinpthread-git", + "mingw-w64-x86_64-libwinpthread":"mingw-w64-x86_64-libwinpthread-git", + + "mingw-w64-x86_64-libtre": "mingw-w64-x86_64-libtre-git", + "mingw-w64-i686-libtre": "mingw-w64-i686-libtre-git" +} ## Currently no packages seem to require this! ARCH_PKGS=[] @@ -47,28 +67,40 @@ def check_output_maybe(*args,**kwargs): else: return check_output(*args,**kwargs) +def immediate_deps(pkg): + package_info = check_output(["pacman", "-Si", pkg]).decode("utf-8").split("\n") + + ## Extract the "Depends On" line + depends_on = [x for x in package_info if x.startswith("Depends On")][0] + ## Remove "Depends On" prefix + dependencies = depends_on.split(":")[1] + + ## Split into dependencies + dependencies = dependencies.strip().split(" ") + + ## Remove > signs TODO can we get any other punctation here? + dependencies = [d.split(">")[0] for d in dependencies if d] + dependencies = [d for d in dependencies if not d == "None"] + + dependencies = [MUNGE_DEP_PKGS.get(d, d) for d in dependencies] + return dependencies + + def extract_deps(): print( "Extracting deps" ) - # This list derives from the features we want Emacs to compile with. - PKG_REQ='''mingw-w64-x86_64-giflib -mingw-w64-x86_64-gnutls -mingw-w64-x86_64-harfbuzz -mingw-w64-x86_64-lcms2 -mingw-w64-x86_64-libjpeg-turbo -mingw-w64-x86_64-libpng -mingw-w64-x86_64-librsvg -mingw-w64-x86_64-libtiff -mingw-w64-x86_64-libxml2 -mingw-w64-x86_64-xpm-nox'''.split() # Get a list of all dependencies needed for packages mentioned above. - # Run `pactree -lu' for each element of $PKG_REQ. - pkgs = set() - for x in PKG_REQ: - pkgs.update( - check_output(["pactree", "-lu", x]).decode("utf-8").split() - ) + pkgs = PKG_REQ[:] + print("Initial pkgs", pkgs) + n = 0 + while n < len(pkgs): + subdeps = immediate_deps(pkgs[n]) + for p in subdeps: + if not (p in pkgs or p in SKIP_DEP_PKGS): + print("adding", p) + pkgs.append(p) + n = n + 1 return sorted(pkgs) @@ -112,13 +144,20 @@ def gather_deps(deps, arch, directory): def download_source(tarball): - print("Downloading {}...".format(tarball)) - check_output_maybe( - "wget -a ../download.log -O {} {}/{}/download" - .format(tarball, SRC_REPO, tarball), - shell=True - ) - print("Downloading {}... done".format(tarball)) + print("Acquiring {}...".format(tarball)) + + if os.path.exists("../emacs-src-cache/{}".format(tarball)): + print("Copying {} from local".format(tarball)) + shutil.copyfile("../emacs-src-cache/{}".format(tarball), + "{}".format(tarball)) + else: + print("Downloading {}...".format(tarball)) + check_output_maybe( + "wget -a ../download.log -O {} {}/{}/download" + .format(tarball, SRC_REPO, tarball), + shell=True + ) + print("Downloading {}... done".format(tarball)) def gather_source(deps): @@ -146,7 +185,7 @@ def gather_source(deps): ## make a simple name to make lookup easier simple_pkg_name = re.sub(r"x86_64-","",pkg_name) - if(simple_pkg_name in SKIP_PKGS): + if(simple_pkg_name in SKIP_SRC_PKGS): continue ## Some packages have different source files for different @@ -159,7 +198,7 @@ def gather_source(deps): for d in downloads: ## Switch names if necessary - d = MUNGE_PKGS.get(d,d) + d = MUNGE_SRC_PKGS.get(d,d) tarball = "{}-{}.src.tar.gz".format(d,pkg_version) @@ -209,6 +248,9 @@ def clean(): parser.add_argument("-d", help="dry run", action="store_true") +parser.add_argument("-l", help="list dependencies only", + action="store_true") + args = parser.parse_args() do_all=not (args.c or args.r or args.f or args.t) @@ -216,6 +258,11 @@ def clean(): DRY_RUN=args.d +if( args.l ): + print("List of dependencies") + print( extract_deps() ) + exit(0) + if args.s: DATE="{}-".format(check_output(["date", "+%Y-%m-%d"]).decode("utf-8").strip()) else: commit 37a4233a366797360c2f4f475591a3406586bcfb Author: Lars Ingebrigtsen Date: Wed Sep 18 15:21:25 2019 +0200 Fix up the previous mh-mime warning suppression * lisp/mh-e/mh-acros.el (mh-dlet*): Suppress warnings about prefix-less bindings. * lisp/mh-e/mh-mime.el (mh-insert-mime-security-button): Remove the warning removal here. (mh-insert-mime-button): And here. diff --git a/lisp/mh-e/mh-acros.el b/lisp/mh-e/mh-acros.el index c017419df2..0f15d3eb71 100644 --- a/lisp/mh-e/mh-acros.el +++ b/lisp/mh-e/mh-acros.el @@ -270,10 +270,16 @@ MH-E functions." (declare (debug let) (indent 1)) ;; Works in both lexical and non-lexical mode. `(progn - ,@(mapcar (lambda (binder) - `(defvar ,(if (consp binder) (car binder) binder))) - binders) - (let* ,binders ,@body))) + (with-suppressed-warnings ((lexical + ,@(mapcar (lambda (binder) + (if (consp binder) + (car binder) + binder)) + binders))) + ,@(mapcar (lambda (binder) + `(defvar ,(if (consp binder) (car binder) binder))) + binders) + (let* ,binders ,@body)))) (provide 'mh-acros) diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el index c6b5aaec34..d74e79f1cb 100644 --- a/lisp/mh-e/mh-mime.el +++ b/lisp/mh-e/mh-mime.el @@ -859,24 +859,23 @@ by commands like \"K v\" which operate on individual MIME parts." (if (string-match ".*/" name) (setq name (substring name (match-end 0)))) ;; These vars are passed by dynamic-scoping to ;; mh-mime-button-line-format-alist via gnus-eval-format. - (with-suppressed-warnings ((lexical index description dots)) - (mh-dlet* ((index index) - (description (mail-decode-encoded-word-string - (or (mm-handle-description handle) ""))) - (dots (if (or displayed (mm-handle-displayed-p handle)) - " " "...")) - (long-type (concat type (and (not (equal name "")) - (concat "; " name))))) - (unless (equal description "") - (setq long-type (concat " --- " long-type))) - (unless (bolp) (insert "\n")) - (setq begin (point)) - (gnus-eval-format - mh-mime-button-line-format mh-mime-button-line-format-alist - `(,@(mh-gnus-local-map-property mh-mime-button-map) - mh-callback mh-mm-display-part - mh-part ,index - mh-data ,handle)))) + (mh-dlet* ((index index) + (description (mail-decode-encoded-word-string + (or (mm-handle-description handle) ""))) + (dots (if (or displayed (mm-handle-displayed-p handle)) + " " "...")) + (long-type (concat type (and (not (equal name "")) + (concat "; " name))))) + (unless (equal description "") + (setq long-type (concat " --- " long-type))) + (unless (bolp) (insert "\n")) + (setq begin (point)) + (gnus-eval-format + mh-mime-button-line-format mh-mime-button-line-format-alist + `(,@(mh-gnus-local-map-property mh-mime-button-map) + mh-callback mh-mm-display-part + mh-part ,index + mh-data ,handle))) (setq end (point)) (widget-convert-button 'link begin end @@ -901,45 +900,44 @@ by commands like \"K v\" which operate on individual MIME parts." begin end face) ;; These vars are passed by dynamic-scoping to ;; mh-mime-security-button-line-format-alist via gnus-eval-format. - (with-suppressed-warnings ((lexical type info details)) - (mh-dlet* ((type (concat crypto-type - (if (equal (car handle) "multipart/signed") - " Signed" " Encrypted") - " Part")) - (info (or (mh-mm-handle-multipart-ctl-parameter - handle 'gnus-info) - "Undecided")) - (details (mh-mm-handle-multipart-ctl-parameter - handle 'gnus-details)) - pressed-details) - (setq details (if details (concat "\n" details) "")) - (setq pressed-details (if mh-mime-security-button-pressed details "")) - (setq face (mh-mime-security-button-face info)) - (unless (bolp) (insert "\n")) - (setq begin (point)) - (gnus-eval-format - mh-mime-security-button-line-format - mh-mime-security-button-line-format-alist - `(,@(mh-gnus-local-map-property mh-mime-security-button-map) - mh-button-pressed ,mh-mime-security-button-pressed - mh-callback mh-mime-security-press-button - mh-line-format ,mh-mime-security-button-line-format - mh-data ,handle)) - (setq end (point)) - (widget-convert-button 'link begin end - :mime-handle handle - :action 'mh-widget-press-button - :button-keymap mh-mime-security-button-map - :button-face face - :help-echo "Mouse-2 click or press RET (in show buffer) to see security details.") - (dolist (ov (mh-funcall-if-exists overlays-in begin end)) - (mh-funcall-if-exists overlay-put ov 'evaporate t)) - (when (equal info "Failed") - (let* ((type (if (equal (car handle) "multipart/signed") - "verification" "decryption")) - (warning (if (equal type "decryption") - "(passphrase may be incorrect)" ""))) - (message "%s %s failed %s" crypto-type type warning))))))) + (mh-dlet* ((type (concat crypto-type + (if (equal (car handle) "multipart/signed") + " Signed" " Encrypted") + " Part")) + (info (or (mh-mm-handle-multipart-ctl-parameter + handle 'gnus-info) + "Undecided")) + (details (mh-mm-handle-multipart-ctl-parameter + handle 'gnus-details)) + pressed-details) + (setq details (if details (concat "\n" details) "")) + (setq pressed-details (if mh-mime-security-button-pressed details "")) + (setq face (mh-mime-security-button-face info)) + (unless (bolp) (insert "\n")) + (setq begin (point)) + (gnus-eval-format + mh-mime-security-button-line-format + mh-mime-security-button-line-format-alist + `(,@(mh-gnus-local-map-property mh-mime-security-button-map) + mh-button-pressed ,mh-mime-security-button-pressed + mh-callback mh-mime-security-press-button + mh-line-format ,mh-mime-security-button-line-format + mh-data ,handle)) + (setq end (point)) + (widget-convert-button 'link begin end + :mime-handle handle + :action 'mh-widget-press-button + :button-keymap mh-mime-security-button-map + :button-face face + :help-echo "Mouse-2 click or press RET (in show buffer) to see security details.") + (dolist (ov (mh-funcall-if-exists overlays-in begin end)) + (mh-funcall-if-exists overlay-put ov 'evaporate t)) + (when (equal info "Failed") + (let* ((type (if (equal (car handle) "multipart/signed") + "verification" "decryption")) + (warning (if (equal type "decryption") + "(passphrase may be incorrect)" ""))) + (message "%s %s failed %s" crypto-type type warning)))))) (defun mh-mime-security-button-face (info) "Return the button face to use for encrypted/signed mail based on INFO." commit a39652b49d93cf1556c0b10378e04bf0634c1ee1 Author: Eli Zaretskii Date: Wed Sep 18 15:55:08 2019 +0300 Improve support of the Tai-Viet script * lisp/language/tai-viet.el ("TaiViet"): Update the doc string. Suggested by Jim Brase . (Bug#5806) * etc/HELLO: Add a Tai Viet entry. diff --git a/etc/HELLO b/etc/HELLO index 39c39651b4..5102c59578 100644 --- a/etc/HELLO +++ b/etc/HELLO @@ -79,7 +79,9 @@ Spanish (espalatin-iso8859-1ñol) ¡Hola! Swedish (svenska) Hej / Goddag / Hallå mule-unicode-0100-24ffTamil (தமிழ்) வணக்கம் Telugu (తెలుగు) నమస్కారం -thai-tis620Thai (ภาษาไทย) สวัสดีครับ / สวัสดีค่ะ +TaiViet (ꪁꪫꪱꪣ ꪼꪕ) ꪅꪰꪙꫂ ꪨꪮꫂ ꪁꪫꪱ / ꪅꪽ ꪨꪷ ꪁꪫꪱ + +thai-tis620Thai (ภาษาไทย) สวัสดีครับ / สวัสดีค่ะ tibetanTibetan (བོད་སྐད་) བཀྲ་ཤིས་བདེ་ལེགས༎ mule-unicode-0100-24ffTigrigna (ትግርኛ) ሰላማት latin-iso8859-9Turkish (Türkçe) Merhaba diff --git a/lisp/language/tai-viet.el b/lisp/language/tai-viet.el index b202abf029..086483da81 100644 --- a/lisp/language/tai-viet.el +++ b/lisp/language/tai-viet.el @@ -39,21 +39,20 @@ (input-method . "tai-sonla") (sample-text . "TaiViet (ꪁꪫꪱꪣ ꪼꪕ)\t\tꪅꪰꪙꫂ ꪨꪮꫂ ꪁꪫꪱ / ꪅꪽ ꪨꪷ ꪁꪫꪱ") (documentation . "\ -TaiViet refers to the Tai language used by Tai people in -Vietnam, and also refers to the script used for this language. -Both the script and language have the same origin as that of Thai +TaiViet refers to the Tai script, which is used to write several +Tai languages of northwestern Vietnam and surrounding areas. These +languages are Tai Dam (also known as Black Tai or Tai Noir), +Tai Dón (also known as White Tai or Tai Blanc), Tày Tac, +Tai Daeng (also known as Red Tai or Tai Rouge), +and Thai Song (also known as Lao Song). However, some people +consider Tai Dam, Tai Dón and Tai Daeng to be dialects of the +same language, and call them collectively \"Tai Viet\". + +Both the script and languages have the same origin as that of Thai language/script used in Thailand, but now they differ from each other in a significant way (especially the scripts are). The language name is spelled as \"ꪁꪫꪱꪣ ꪼꪕ\", and the script name is -spelled as \"ꪎ ꪼꪕ\" in the modern form, \"ꪎꪳ ꪼꪕ\" in the traditional -form. - -As the proposal for TaiViet script to the Unicode is still on -the progress, we use the Private Use Area for TaiViet -characters (U+F000..U+F07E). A TaiViet font encoded accordingly -is available at this web page: - http://www.m17n.org/viettai/ -"))) +spelled as \"ꪎꪳ ꪼꪕ\"."))) (provide 'tai-viet) commit 9597ee68d999d43145d47ff53e1474f1493f8727 Author: Paul Eggert Date: Wed Sep 18 05:17:03 2019 -0700 Out-of-datedness .elc check is merely a file test * src/fileio.c (file_test_errno): Now extern. * src/lread.c (Fload): Use file_test_errno instead, since this is really just a file test (the attributes are not given to the user). diff --git a/etc/NEWS b/etc/NEWS index dce4903384..f8322104d4 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -2009,7 +2009,7 @@ longer defaults to 'buffer-file-name'. ** File metadata primitives now signal an error if I/O, access, or other serious errors prevent them from determining the result. Formerly, these functions often (though not always) returned nil. -For example, if the directory /etc/firewalld is not searchable, +For example, if searching /etc/firewalld results in an I/O error, (file-symlink-p "/etc/firewalld/firewalld.conf") now signals an error instead of returning nil, because file-symlink-p cannot determine whether a symbolic link exists there. These functions still behave as diff --git a/src/fileio.c b/src/fileio.c index 53eecc31aa..5337ea5c80 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -265,7 +265,7 @@ file_attribute_errno (Lisp_Object file, int err) enum { PICKY_EACCES = false }; #endif -static Lisp_Object +Lisp_Object file_test_errno (Lisp_Object file, int err) { if (!PICKY_EACCES && err == EACCES) diff --git a/src/lisp.h b/src/lisp.h index e68d2732e2..b081ae1cee 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -4315,6 +4315,7 @@ extern AVOID report_file_errno (const char *, Lisp_Object, int); extern AVOID report_file_error (const char *, Lisp_Object); extern AVOID report_file_notify_error (const char *, Lisp_Object); extern Lisp_Object file_attribute_errno (Lisp_Object, int); +extern Lisp_Object file_test_errno (Lisp_Object, int); extern bool internal_delete_file (Lisp_Object); extern Lisp_Object check_emacs_readlinkat (int, Lisp_Object, char const *); extern bool file_directory_p (Lisp_Object); diff --git a/src/lread.c b/src/lread.c index d8883db46c..ab0fab47a9 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1358,7 +1358,7 @@ Return t if the file exists and loads successfully. */) make_fixnum (-1)); } if (result != 0) - file_attribute_errno (found, err); + file_test_errno (found, err); else if (timespec_cmp (get_stat_mtime (&s1), get_stat_mtime (&s2)) < 0) commit 98586c2fe62fd26bc9105a06b78d93446bd2a269 Merge: 7ff2eef926 ffcec7cd4b Author: Eli Zaretskii Date: Wed Sep 18 15:15:33 2019 +0300 Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs commit 7ff2eef926f933c79c3913c18f9403a4a987756b Author: Eli Zaretskii Date: Wed Sep 18 15:14:15 2019 +0300 Fix the MS-Windows build broken by recent errno changes * src/fileio.c (file_directory_p): If the file exists, but is not a directory, set errno to ENOTDIR, like the Posix branch does; openp expects that. diff --git a/src/fileio.c b/src/fileio.c index 58bc6b7ee8..53eecc31aa 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -2961,7 +2961,10 @@ file_directory_p (Lisp_Object file) { #ifdef DOS_NT /* This is cheaper than 'stat'. */ - return faccessat (AT_FDCWD, SSDATA (file), D_OK, AT_EACCESS) == 0; + bool retval = faccessat (AT_FDCWD, SSDATA (file), D_OK, AT_EACCESS) == 0; + if (!retval && errno == EACCES) + errno = ENOTDIR; /* like the non-DOS_NT branch below does */ + return retval; #else # ifdef O_PATH /* Use O_PATH if available, as it avoids races and EOVERFLOW issues. */ commit ffcec7cd4be83d03c21e7378efc55911b33696b1 Author: Michael Albinus Date: Wed Sep 18 14:12:54 2019 +0200 Simplify tramp-tests.el check for owncloud/nextcloud * test/lisp/net/tramp-tests.el (tramp-test11-copy-file): Simplify check for owncloud/nextcloud connections. diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el index 1554d3b70b..d7e0a04510 100644 --- a/test/lisp/net/tramp-tests.el +++ b/test/lisp/net/tramp-tests.el @@ -2412,9 +2412,7 @@ This checks also `file-name-as-directory', `file-name-directory', (unwind-protect ;; FIXME: This fails on my QNAP server, see ;; /share/Web/owncloud/data/owncloud.log - (unless (and (tramp--test-nextcloud-p) - (or (not (file-remote-p source)) - (not (file-remote-p target)))) + (unless (tramp--test-nextcloud-p) (make-directory source) (should (file-directory-p source)) (write-region "foo" nil (expand-file-name "foo" source)) @@ -2437,8 +2435,7 @@ This checks also `file-name-as-directory', `file-name-directory', (unwind-protect ;; FIXME: This fails on my QNAP server, see ;; /share/Web/owncloud/data/owncloud.log - (unless - (and (tramp--test-nextcloud-p) (not (file-remote-p source))) + (unless (tramp--test-nextcloud-p) (make-directory source) (should (file-directory-p source)) (write-region "foo" nil (expand-file-name "foo" source)) commit 5ec42d5cb5219a73b5f4e9e17624bd01a138aea4 Author: Michael Albinus Date: Wed Sep 18 14:11:55 2019 +0200 Add extra args for zsh in Tramp * doc/misc/tramp.texi (Remote shell setup): New subsection "Changing the default remote shell". * lisp/net/tramp-sh.el (tramp-sh-extra-args): Add entry for zsh. diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index e6a454be4c..1ed334b6bd 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -1591,6 +1591,7 @@ via the @command{CONNECT} command (conforming to RFC 2616, 2817 specifications). Proxy servers using HTTP 1.1 or later protocol support this command. + @subsection Tunneling with ssh With ssh, you could use the @code{ProxyCommand} entry in @@ -1609,6 +1610,7 @@ Any other program with such a feature could be used as well. In the example, opening @file{@trampfn{ssh,host.your.domain,}} passes the HTTP proxy server @samp{proxy.your.domain} on port 3128. + @subsection Tunneling with PuTTY PuTTY does not need an external program, HTTP tunnel support is @@ -2092,6 +2094,33 @@ be recomputed. To force @value{tramp} to recompute afresh, call @node Remote shell setup @section Remote shell setup hints + + +@subsection Changing the default remote shell +@cindex zsh setup + +Per default, @value{tramp} uses the command @command{/bin/sh} for +strting a shell on the remote host. This can be changed by setting +the connection property @option{remote-shell}, see @xref{Predefined +connection information}. Other properties might be adapted as well, +like @option{remote-shell-login} or @option{remote-shell-args}. If +you want, for example, use @command{/usr/bin/zsh} on a remote host, +you might apply + +@lisp +@group +(add-to-list 'tramp-connection-properties + (list (regexp-quote "@trampfn{ssh,user@@host,}") + "remote-shell" "/usr/bin/zsh")) +@end group +@end lisp + +This approach has also the advantage, that settings in +@code{tramp-sh-extra-args} will be applied. For zsh, the trouble +with the shell prompt due to set zle options will be avoided. + + +@subsection Other remote shell setup hints @cindex remote shell setup @cindex @file{.profile} file @cindex @file{.login} file diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 4bc37f0169..8092f6a5cf 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -525,7 +525,9 @@ based on the Tramp and Emacs versions, and should not be set here." :type '(repeat string)) ;;;###tramp-autoload -(defcustom tramp-sh-extra-args '(("/bash\\'" . "-norc -noprofile")) +(defcustom tramp-sh-extra-args + '(("/bash\\'" . "-norc -noprofile") + ("/zsh\\'" . "-f +Z")) "Alist specifying extra arguments to pass to the remote shell. Entries are (REGEXP . ARGS) where REGEXP is a regular expression matching the shell file name and ARGS is a string specifying the commit 735940f4551a43f3b4381105dc074cd7d494f2f3 Author: Paul Eggert Date: Wed Sep 18 04:21:19 2019 -0700 Be less picky about EACCES in file test predicates Problem reported by Tino Calancha (Bug#37445) and others. * src/fileio.c (PICKY_EACCES): New constant, false by default. (file_test_errno): Ignore EACCES if not picky. (check_file_access): Investigate EACCES problems further if picky. diff --git a/src/fileio.c b/src/fileio.c index 0977516f01..58bc6b7ee8 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -253,9 +253,23 @@ file_attribute_errno (Lisp_Object file, int err) return file_metadata_errno ("Getting attributes", file, err); } +/* In theory, EACCES errors for predicates like file-readable-p should + be checked further because they may be problems with an ancestor + directory instead of with the file itself, which means that we + don't have reliable info about the requested file. In practice, + though, such errors are common enough that signaling them can be + annoying even if the errors are real (e.g., Bug#37445). So return + nil for EACCES unless compiling with -DPICKY_EACCES, which is off + by default. */ +#ifndef PICKY_EACCES +enum { PICKY_EACCES = false }; +#endif + static Lisp_Object file_test_errno (Lisp_Object file, int err) { + if (!PICKY_EACCES && err == EACCES) + return Qnil; return file_metadata_errno ("Testing file", file, err); } @@ -2745,7 +2759,7 @@ check_file_access (Lisp_Object file, Lisp_Object operation, int amode) return Qt; int err = errno; if (err == EROFS || err == ETXTBSY - || (err == EACCES && amode != F_OK + || (PICKY_EACCES && err == EACCES && amode != F_OK && file_access_p (encoded_file, F_OK))) { errno = err; commit 94ca934a5c4ef4908fdb7bcd78950bacf9c4ce88 Author: Paul Eggert Date: Wed Sep 18 03:06:10 2019 -0700 Fix permission-denied issue in MS-Windows startup * src/callproc.c (init_callproc): Use file_access_p rather than Ffile_exists_p during startup (Bug#37445). diff --git a/src/callproc.c b/src/callproc.c index 1ac0bdc710..dbbf15c792 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -1560,20 +1560,19 @@ init_callproc (void) source directory. */ if (data_dir == 0) { - Lisp_Object tem, tem1, srcdir; + Lisp_Object tem, srcdir; Lisp_Object lispdir = Fcar (decode_env_path (0, PATH_DUMPLOADSEARCH, 0)); srcdir = Fexpand_file_name (build_string ("../src/"), lispdir); tem = Fexpand_file_name (build_string ("NEWS"), Vdata_directory); - tem1 = Ffile_exists_p (tem); - if (!NILP (Fequal (srcdir, Vinvocation_directory)) || NILP (tem1)) + if (!NILP (Fequal (srcdir, Vinvocation_directory)) + || !file_access_p (SSDATA (tem), F_OK)) { Lisp_Object newdir; newdir = Fexpand_file_name (build_string ("../etc/"), lispdir); tem = Fexpand_file_name (build_string ("NEWS"), newdir); - tem1 = Ffile_exists_p (tem); - if (!NILP (tem1)) + if (file_access_p (SSDATA (tem), F_OK)) Vdata_directory = newdir; } }