From 58a622d473112f8ff5b4bdb3e49bc6573dfd3404 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 12 Jan 2016 18:41:58 +0200 Subject: [PATCH 01/30] Make piping to subprocesses more robust on MS-Windows * src/w32.c (sys_write): Don't write to a pipe more stuff than its buffer can hold. Don't return -1 if something has been written to the pipe. Zero out 'errno' before calling '_write', to avoid returning a stale value. (Bug#22344) * src/w32proc.c (syms_of_ntproc) : New variable. * src/w32.c (pipe2): Use it to request a user-defined size for the pipe being created. * etc/NEWS: Mention 'w32-pipe-buffer-size'. * doc/emacs/msdos.texi (Windows Processes): Document 'w32-pipe-buffer-size'. --- doc/emacs/msdos.texi | 14 ++++++++++++-- etc/NEWS | 6 ++++++ src/w32.c | 39 +++++++++++++++++++++++++++++++-------- src/w32proc.c | 7 +++++++ 4 files changed, 56 insertions(+), 10 deletions(-) diff --git a/doc/emacs/msdos.texi b/doc/emacs/msdos.texi index ea8a24d1cf7..6ad12d646a1 100644 --- a/doc/emacs/msdos.texi +++ b/doc/emacs/msdos.texi @@ -655,7 +655,7 @@ and the right button generates @kbd{mouse-3} events. If this variable is non-@code{nil}, the roles of these two buttons are reversed. @node Windows Processes -@section Subprocesses on Windows 9X/ME and Windows NT/2K/XP +@section Subprocesses on Windows 9X/ME and Windows NT/2K/XP/Vista/7/8/10 @cindex subprocesses on MS-Windows @cindex DOS applications, running from Emacs @@ -663,7 +663,8 @@ is non-@code{nil}, the roles of these two buttons are reversed. version) includes full support for asynchronous subprocesses. In the Windows version, synchronous and asynchronous subprocesses work fine on both -Windows 9X/ME and Windows NT/2K/XP as long as you run only 32-bit Windows +Windows 9X/ME and Windows NT/2K/XP/Vista/7/8/10 as long as you run +only 32-bit or 64-bit Windows applications. However, when you run a DOS application in a subprocess, you may encounter problems or be unable to run the application at all; and if you run two DOS applications at the same time in two @@ -713,6 +714,15 @@ character. If the value is a character, Emacs uses that character to escape any quote characters that appear; otherwise it chooses a suitable escape character based on the type of the program. +@vindex w32-pipe-buffer-size + The variable @code{w32-pipe-buffer-size} controls the size of the +buffer Emacs requests from the system when it creates pipes for +communications with subprocesses. The default value is zero, which +lets the OS choose the size. Any valid positive value will request a +buffer of that size in bytes. This can be used to tailor +communications with subprocesses to programs that exhibit unusual +behavior with respect to buffering pipe I/O. + @ifnottex @findex w32-shell-execute The function @code{w32-shell-execute} can be useful for writing diff --git a/etc/NEWS b/etc/NEWS index 85ec30ac033..10fcb7e3fd4 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1762,6 +1762,12 @@ this has no effect. ** The new function 'w32-application-type' returns the type of an MS-Windows application given the name of its executable program file. +** New variable `w32-pipe-buffer-size'. +It can be used to tune the size of the buffer of pipes created for +communicating with subprocesses, when the program run by a subprocess +exhibits unusual buffering behavior. Default is zero, which lets the +OS use its default size. + ---------------------------------------------------------------------- This file is part of GNU Emacs. diff --git a/src/w32.c b/src/w32.c index 4770718f5e3..ea3a9dafad5 100644 --- a/src/w32.c +++ b/src/w32.c @@ -8043,14 +8043,19 @@ pipe2 (int * phandles, int pipe2_flags) { int rc; unsigned flags; + unsigned pipe_size = 0; eassert (pipe2_flags == (O_BINARY | O_CLOEXEC)); + /* Allow Lisp to override the default buffer size of the pipe. */ + if (w32_pipe_buffer_size > 0 && w32_pipe_buffer_size < UINT_MAX) + pipe_size = w32_pipe_buffer_size; + /* make pipe handles non-inheritable; when we spawn a child, we replace the relevant handle with an inheritable one. Also put pipes into binary mode; we will do text mode translation ourselves if required. */ - rc = _pipe (phandles, 0, _O_NOINHERIT | _O_BINARY); + rc = _pipe (phandles, pipe_size, _O_NOINHERIT | _O_BINARY); if (rc == 0) { @@ -8632,15 +8637,35 @@ sys_write (int fd, const void * buffer, unsigned int count) http://thread.gmane.org/gmane.comp.version-control.git/145294 in the git mailing list. */ const unsigned char *p = buffer; - const unsigned chunk = 30 * 1024 * 1024; + const bool is_pipe = (fd < MAXDESC + && ((fd_info[fd].flags & (FILE_PIPE | FILE_NDELAY)) + == (FILE_PIPE | FILE_NDELAY))); + /* Some programs, notably Node.js's node.exe, seem to never + completely empty the pipe, so writing more than the size of + the pipe's buffer always returns ENOSPC, and we loop forever + between send_process and here. As a workaround, write no + more than the pipe's buffer can hold. */ + DWORD pipe_buffer_size; + if (is_pipe) + { + if (!GetNamedPipeInfo ((HANDLE)_get_osfhandle (fd), + NULL, &pipe_buffer_size, NULL, NULL)) + { + DebPrint (("GetNamedPipeInfo: error %u\n", GetLastError ())); + pipe_buffer_size = 4096; + } + } + const unsigned chunk = is_pipe ? pipe_buffer_size : 30 * 1024 * 1024; nchars = 0; + errno = 0; while (count > 0) { unsigned this_chunk = count < chunk ? count : chunk; int n = _write (fd, p, this_chunk); - nchars += n; + if (n > 0) + nchars += n; if (n < 0) { /* When there's no buffer space in a pipe that is in the @@ -8654,12 +8679,10 @@ sys_write (int fd, const void * buffer, unsigned int count) avoiding deadlock whereby each side of the pipe is blocked on write, waiting for the other party to read its end of the pipe. */ - if (errno == ENOSPC - && fd < MAXDESC - && ((fd_info[fd].flags & (FILE_PIPE | FILE_NDELAY)) - == (FILE_PIPE | FILE_NDELAY))) + if (errno == ENOSPC && is_pipe) errno = EAGAIN; - nchars = n; + if (nchars == 0) + nchars = -1; break; } else if (n < this_chunk) diff --git a/src/w32proc.c b/src/w32proc.c index a65f085fb3d..a89a9850466 100644 --- a/src/w32proc.c +++ b/src/w32proc.c @@ -3702,6 +3702,13 @@ of time slices to wait (effectively boosting the priority of the child process temporarily). A value of zero disables waiting entirely. */); w32_pipe_read_delay = 50; + DEFVAR_INT ("w32-pipe-buffer-size", w32_pipe_buffer_size, + doc: /* Size of buffer for pipes created to communicate with subprocesses. +The size is in bytes, and must be non-negative. The default is zero, +which lets the OS use its default size, usually 4KB (4096 bytes). +Any negative value means to use the default value of zero. */); + w32_pipe_buffer_size = 0; + DEFVAR_LISP ("w32-downcase-file-names", Vw32_downcase_file_names, doc: /* Non-nil means convert all-upper case file names to lower case. This applies when performing completions and file name expansion. From fe6efddcc1f4dd2e18737f98c45ead8bbbc7a969 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 12 Jan 2016 09:09:27 -0800 Subject: [PATCH 02/30] Fix time-stamp-time-zone bugs introduced in July This fixes a bug introduced when the July changes to format-time-string installed, as the changes were not correctly handled in this module (Bug#22302). Also, document time stamp time zones. * lisp/time-stamp.el (time-stamp-time-zone): Document values better. (time-stamp--format): New private function. (time-stamp-string, time-stamp-string-preprocess) (time-stamp-do-number): Use it. * doc/emacs/files.texi (Time Stamps): Mention time zones. * doc/misc/autotype.texi (Timestamps): Document time-stamp-time-zone. --- doc/emacs/files.texi | 7 +++--- doc/misc/autotype.texi | 8 ++++--- lisp/time-stamp.el | 48 +++++++++++++++++++++++------------------- 3 files changed, 35 insertions(+), 28 deletions(-) diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index bfa55d38701..3d5562dcc47 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi @@ -881,9 +881,10 @@ Time-stamp: " " @code{before-save-hook} (@pxref{Hooks}). When you save the file, this function then automatically updates the time stamp with the current date and time. You can also use the command @kbd{M-x time-stamp} to -update the time stamp manually. For other customizations, see the -Custom group @code{time-stamp}. Note that the time stamp is formatted -according to your locale setting (@pxref{Environment}). +update the time stamp manually. By default the time stamp is +formatted according to your locale setting (@pxref{Environment}) and +time zone (@pxref{Time of Day,,, elisp, The Emacs Lisp Reference +Manual}). For customizations, see the Custom group @code{time-stamp}. @node Reverting @section Reverting a Buffer diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi index 839782a3b51..6bdbd344c7a 100644 --- a/doc/misc/autotype.texi +++ b/doc/misc/autotype.texi @@ -531,15 +531,17 @@ then @code{time-stamp} is conveniently listed as an option in the customization buffer. @vindex time-stamp-active +@findex time-stamp-toggle-active @vindex time-stamp-format -@vindex time-stamp-start +@vindex time-stamp-time-zone The time stamp is updated only if the customizable variable @code{time-stamp-active} is on, which it is by default; the command @code{time-stamp-toggle-active} can be used to toggle it. The format of -the time stamp is set by the customizable variable -@code{time-stamp-format}. +the time stamp is set by the customizable variables +@code{time-stamp-format} and @code{time-stamp-time-zone}. @vindex time-stamp-line-limit +@vindex time-stamp-start @vindex time-stamp-end @vindex time-stamp-count @vindex time-stamp-inserts-lines diff --git a/lisp/time-stamp.el b/lisp/time-stamp.el index 46c993e1f5f..dffd59010db 100644 --- a/lisp/time-stamp.el +++ b/lisp/time-stamp.el @@ -121,9 +121,12 @@ If nil, no notification is given." :group 'time-stamp) (defcustom time-stamp-time-zone nil - "If non-nil, a string naming the timezone to be used by \\[time-stamp]. -Format is the same as that used by the environment variable TZ on your system." - :type '(choice (const nil) string) + "The time zone to be used by \\[time-stamp]. +Its format is that of the ZONE argument of the `format-time-string' function," + :type '(choice (const :tag "Emacs local time" nil) + (const :tag "Universal Time" t) + (const :tag "system wall clock time" wall) + (string :tag "TZ environment variable value")) :group 'time-stamp :version "20.1") ;;;###autoload(put 'time-stamp-time-zone 'safe-local-variable 'string-or-null-p) @@ -412,6 +415,8 @@ With ARG, turn time stamping on if and only if arg is positive." (> (prefix-numeric-value arg) 0))) (message "time-stamp is now %s." (if time-stamp-active "active" "off"))) +(defun time-stamp--format (format time) + (format-time-string format time time-stamp-time-zone)) (defun time-stamp-string (&optional ts-format) "Generate the new string to be inserted by \\[time-stamp]. @@ -420,8 +425,7 @@ format the string." (or ts-format (setq ts-format time-stamp-format)) (if (stringp ts-format) - (format-time-string (time-stamp-string-preprocess ts-format) - nil time-stamp-time-zone) + (time-stamp--format (time-stamp-string-preprocess ts-format) nil) ;; handle version 1 compatibility (cond ((or (eq time-stamp-old-format-warn 'error) (and (eq time-stamp-old-format-warn 'ask) @@ -515,32 +519,32 @@ and all `time-stamp-format' compatibility." "%%") ((eq cur-char ?a) ;day of week (if change-case - (format-time-string "%#a" time) + (time-stamp--format "%#a" time) (or alt-form (not (string-equal field-width "")) (time-stamp-conv-warn "%a" "%:a")) (if (and alt-form (not (string-equal field-width ""))) "" ;discourage "%:3a" - (format-time-string "%A" time)))) + (time-stamp--format "%A" time)))) ((eq cur-char ?A) (if alt-form - (format-time-string "%A" time) + (time-stamp--format "%A" time) (or change-case (not (string-equal field-width "")) (time-stamp-conv-warn "%A" "%#A")) - (format-time-string "%#A" time))) + (time-stamp--format "%#A" time))) ((eq cur-char ?b) ;month name (if change-case - (format-time-string "%#b" time) + (time-stamp--format "%#b" time) (or alt-form (not (string-equal field-width "")) (time-stamp-conv-warn "%b" "%:b")) (if (and alt-form (not (string-equal field-width ""))) "" ;discourage "%:3b" - (format-time-string "%B" time)))) + (time-stamp--format "%B" time)))) ((eq cur-char ?B) (if alt-form - (format-time-string "%B" time) + (time-stamp--format "%B" time) (or change-case (not (string-equal field-width "")) (time-stamp-conv-warn "%B" "%#B")) - (format-time-string "%#B" time))) + (time-stamp--format "%#B" time))) ((eq cur-char ?d) ;day of month, 1-31 (time-stamp-do-number cur-char alt-form field-width time)) ((eq cur-char ?H) ;hour, 0-23 @@ -554,27 +558,27 @@ and all `time-stamp-format' compatibility." ((eq cur-char ?p) ;am or pm (or change-case (time-stamp-conv-warn "%p" "%#p")) - (format-time-string "%#p" time)) + (time-stamp--format "%#p" time)) ((eq cur-char ?P) ;AM or PM - (format-time-string "%p" time)) + (time-stamp--format "%p" time)) ((eq cur-char ?S) ;seconds, 00-60 (time-stamp-do-number cur-char alt-form field-width time)) ((eq cur-char ?w) ;weekday number, Sunday is 0 - (format-time-string "%w" time)) + (time-stamp--format "%w" time)) ((eq cur-char ?y) ;year (or alt-form (not (string-equal field-width "")) (time-stamp-conv-warn "%y" "%:y")) - (string-to-number (format-time-string "%Y" time))) + (string-to-number (time-stamp--format "%Y" time))) ((eq cur-char ?Y) ;4-digit year, new style - (string-to-number (format-time-string "%Y" time))) + (string-to-number (time-stamp--format "%Y" time))) ((eq cur-char ?z) ;time zone lower case (if change-case "" ;discourage %z variations - (format-time-string "%#Z" time))) + (time-stamp--format "%#Z" time))) ((eq cur-char ?Z) (if change-case - (format-time-string "%#Z" time) - (format-time-string "%Z" time))) + (time-stamp--format "%#Z" time) + (time-stamp--format "%Z" time))) ((eq cur-char ?f) ;buffer-file-name, base name only (if buffer-file-name (file-name-nondirectory buffer-file-name) @@ -634,7 +638,7 @@ width specification or \"\". TIME is the time to convert." (format "%%:%c" format-char))) (if (and alt-form (not (string-equal field-width ""))) "" ;discourage "%:2d" and the like - (string-to-number (format-time-string format-string time))))) + (string-to-number (time-stamp--format format-string time))))) (defvar time-stamp-conversion-warn t "Warn about soon-to-be-unsupported forms in `time-stamp-format'. From 792d469d698966e99435d60b4c2136302a171ded Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 12 Jan 2016 20:46:56 +0200 Subject: [PATCH 03/30] ; * etc/NEWS: Mark a couple of entries that are already documented. --- etc/NEWS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index 10fcb7e3fd4..9c416ae7070 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1213,10 +1213,13 @@ symbol-function was changed not to signal `void-function' any more. +++ *** As a consequence, the second arg of `indirect-function' is now obsolete. ++++ ** Comint, term, and compile do not set the EMACS env var any more. Use the INSIDE_EMACS environment variable instead. ++++ ** `save-excursion' does not save&restore the mark any more. +Use `save-mark-and-excursion' if you want the old behavior. ** read-buffer-function can now be called with a 4th argument (`predicate'). From e879070d8c329e4e7ccbd6687ef577589faedcf1 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 12 Jan 2016 21:00:19 +0200 Subject: [PATCH 04/30] Document changes in 'read-buffer' and 'read-buffer-function' * doc/lispref/minibuf.texi (High-Level Completion): Document the 4th argument to 'read-buffer' and 'read-buffer-function'. --- doc/lispref/minibuf.texi | 22 ++++++++++++++-------- etc/NEWS | 4 +++- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi index bf9564627d6..ead4fe982dc 100644 --- a/doc/lispref/minibuf.texi +++ b/doc/lispref/minibuf.texi @@ -1236,14 +1236,14 @@ Lisp function. When possible, do all minibuffer input as part of reading the arguments for a command, in the @code{interactive} specification. @xref{Defining Commands}. -@defun read-buffer prompt &optional default require-match +@defun read-buffer prompt &optional default require-match predicate This function reads the name of a buffer and returns it as a string. -The argument @var{default} is the default name to use, the value to -return if the user exits with an empty minibuffer. If non-@code{nil}, -it should be a string, a list of strings, or a buffer. If it is -a list, the default value is the first element of this list. It is -mentioned in the prompt, but is not inserted in the minibuffer as -initial input. +It prompts with @var{prompt}. The argument @var{default} is the +default name to use, the value to return if the user exits with an +empty minibuffer. If non-@code{nil}, it should be a string, a list of +strings, or a buffer. If it is a list, the default value is the first +element of this list. It is mentioned in the prompt, but is not +inserted in the minibuffer as initial input. The argument @var{prompt} should be a string ending with a colon and a space. If @var{default} is non-@code{nil}, the function inserts it in @@ -1253,6 +1253,12 @@ the minibuffer with a default value (@pxref{Programming Tips}). The optional argument @var{require-match} has the same meaning as in @code{completing-read}. @xref{Minibuffer Completion}. +The optional argument @var{predicate}, if non-@code{nil}, specifies a +function to filter the buffers that should be considered: the function +will be called with every potential candidate as its argument, and +should return @code{nil} to reject the candidate, non-@code{nil} to +accept it. + In the following example, the user enters @samp{minibuffer.t}, and then types @key{RET}. The argument @var{require-match} is @code{t}, and the only buffer name starting with the given input is @@ -1287,7 +1293,7 @@ its usual work, with the same arguments passed to @code{read-buffer}. @defopt read-buffer-completion-ignore-case If this variable is non-@code{nil}, @code{read-buffer} ignores case -when performing completion. +when performing completion while reading the buffer name. @end defopt @defun read-command prompt &optional default diff --git a/etc/NEWS b/etc/NEWS index 9c416ae7070..029e9d8392f 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1221,7 +1221,9 @@ Use the INSIDE_EMACS environment variable instead. ** `save-excursion' does not save&restore the mark any more. Use `save-mark-and-excursion' if you want the old behavior. -** read-buffer-function can now be called with a 4th argument (`predicate'). ++++ +** `read-buffer' and `read-buffer-function' can now be called with a 4th +argument (`predicate'). ** completion-table-dynamic stays in the minibuffer. If you want the old behavior of calling the function in the buffer From bba8c532fa025a3efffdcccd40bfe66a4e9effd2 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 12 Jan 2016 21:10:09 +0200 Subject: [PATCH 05/30] Update documentation of 'completion-table-dynamic' * doc/lispref/minibuf.texi (Programmed Completion): Document the new optional argument to 'completion-table-dynamic'. --- doc/lispref/minibuf.texi | 10 ++++++++-- etc/NEWS | 8 +++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi index ead4fe982dc..e24d2cd643a 100644 --- a/doc/lispref/minibuf.texi +++ b/doc/lispref/minibuf.texi @@ -1818,13 +1818,19 @@ emacs, The GNU Emacs Manual}. Its argument list and return value are the same as for @code{display-sort-function}. @end table -@defun completion-table-dynamic function +@defun completion-table-dynamic function &optional switch-buffer This function is a convenient way to write a function that can act as a programmed completion function. The argument @var{function} should be a function that takes one argument, a string, and returns an alist of -possible completions of it. You can think of +possible completions of it. It is allowed to ignore the argument and +return a full list of all possible completions. You can think of @code{completion-table-dynamic} as a transducer between that interface and the interface for programmed completion functions. + +If the optional argument @var{switch-buffer} is non-@code{nil}, and +completion is performed in the minibuffer, @var{function} will be +called with current buffer set to the buffer from which the minibuffer +was entered. @end defun @defun completion-table-with-cache function &optional ignore-case diff --git a/etc/NEWS b/etc/NEWS index 029e9d8392f..34c489a1a3c 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1225,10 +1225,12 @@ Use `save-mark-and-excursion' if you want the old behavior. ** `read-buffer' and `read-buffer-function' can now be called with a 4th argument (`predicate'). -** completion-table-dynamic stays in the minibuffer. ++++ +** `completion-table-dynamic' by default stays in the minibuffer. +The minibuffer will be the current buffer when the function is called. If you want the old behavior of calling the function in the buffer -from which the minibuffer was entered, call it with the new argument -`switch-buffer'. +from which the minibuffer was entered, use the new argument +`switch-buffer' to `completion-table-dynamic'. ** window-configurations no longer record the buffers' marks. From a71783bd6c63b5d6a169ce28902da5185e294f30 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 12 Jan 2016 21:21:12 +0200 Subject: [PATCH 06/30] Update documentation of 'deactivate-mark'. * doc/lispref/markers.texi (The Mark): Document that 'deactivate-mark' is now buffer-local when set. --- doc/lispref/markers.texi | 2 +- etc/NEWS | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/doc/lispref/markers.texi b/doc/lispref/markers.texi index bf185431384..1c904666cb4 100644 --- a/doc/lispref/markers.texi +++ b/doc/lispref/markers.texi @@ -576,7 +576,7 @@ If an editor command sets this variable non-@code{nil}, then the editor command loop deactivates the mark after the command returns (if Transient Mark mode is enabled). All the primitives that change the buffer set @code{deactivate-mark}, to deactivate the mark when the -command is finished. +command is finished. Setting this variable makes it buffer-local. To write Lisp code that modifies the buffer without causing deactivation of the mark at the end of the command, bind diff --git a/etc/NEWS b/etc/NEWS index 34c489a1a3c..6d474437de0 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1232,11 +1232,14 @@ If you want the old behavior of calling the function in the buffer from which the minibuffer was entered, use the new argument `switch-buffer' to `completion-table-dynamic'. +--- ** window-configurations no longer record the buffers' marks. +--- ** inhibit-modification-hooks now also inhibits lock-file checks, as well as active region handling. ++++ ** deactivate-mark is now buffer-local. ** `cl-the' now asserts that its argument is of the given type. From c3528f1e20db17b66eed5127905222a4a26a05fd Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 12 Jan 2016 21:29:28 +0200 Subject: [PATCH 07/30] Update documentation of 'process-running-child-p' * doc/lispref/processes.texi (Input to Processes): Document the changes in return value of 'process-running-child-p'. --- doc/lispref/processes.texi | 10 ++++++---- etc/NEWS | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index 2a4bd8a067d..f660b159386 100644 --- a/doc/lispref/processes.texi +++ b/doc/lispref/processes.texi @@ -1138,10 +1138,12 @@ The function returns @var{process}. @end defun @defun process-running-child-p &optional process -This function will tell you whether a @var{process} has given control of -its terminal to its own child process. The value is @code{t} if this is -true, or if Emacs cannot tell; it is @code{nil} if Emacs can be certain -that this is not so. +This function will tell you whether a @var{process} has given control +of its terminal to its own child process. If this is true, the +function returns the numeric ID of the foreground process group of +@var{process}; it returns @code{nil} if Emacs can be certain that this +is not so. The value is @code{t} if Emacs cannot tell whether this is +true. @end defun @node Signals to Processes diff --git a/etc/NEWS b/etc/NEWS index 6d474437de0..6323b24dae3 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1242,9 +1242,11 @@ active region handling. +++ ** deactivate-mark is now buffer-local. ++++ ** `cl-the' now asserts that its argument is of the given type. -** `process-running-child-p` may now return a numeric process ++++ +** `process-running-child-p' may now return a numeric process group ID instead of `t'. +++ From 0ed0a9b7f09495394dc9b60a9f7c937679c49afe Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 12 Jan 2016 13:04:17 -0800 Subject: [PATCH 08/30] Merge from gnulib This mostly just changes "UTC" to "UTC0" for POSIX conformance. It also updates to the latest version of texinfo.tex. * build-aux/gitlog-to-changelog, build-aux/move-if-change: * build-aux/update-copyright, doc/misc/texinfo.tex: Update from gnulib. --- build-aux/gitlog-to-changelog | 4 +-- build-aux/move-if-change | 4 +-- build-aux/update-copyright | 4 +-- doc/misc/texinfo.tex | 62 +++++++++++++++++++++++++++++++++-- 4 files changed, 66 insertions(+), 8 deletions(-) diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog index e25d48ec3a2..a42650478a2 100755 --- a/build-aux/gitlog-to-changelog +++ b/build-aux/gitlog-to-changelog @@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}' if 0; # Convert git log output to ChangeLog format. -my $VERSION = '2015-06-11 01:03'; # UTC +my $VERSION = '2016-01-11 22:04'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook @@ -487,6 +487,6 @@ sub git_dir_option($) # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "my $VERSION = '" # time-stamp-format: "%:y-%02m-%02d %02H:%02M" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "'; # UTC" # End: diff --git a/build-aux/move-if-change b/build-aux/move-if-change index cd744a92f36..e3fe71d18f5 100755 --- a/build-aux/move-if-change +++ b/build-aux/move-if-change @@ -2,7 +2,7 @@ # Like mv $1 $2, but if the files are the same, just delete $1. # Status is zero if successful, nonzero otherwise. -VERSION='2012-01-06 07:23'; # UTC +VERSION='2016-01-11 22:04'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook @@ -78,6 +78,6 @@ fi ## eval: (add-hook 'write-file-hooks 'time-stamp) ## time-stamp-start: "VERSION='" ## time-stamp-format: "%:y-%02m-%02d %02H:%02M" -## time-stamp-time-zone: "UTC" +## time-stamp-time-zone: "UTC0" ## time-stamp-end: "'; # UTC" ## End: diff --git a/build-aux/update-copyright b/build-aux/update-copyright index 40f7b9817bc..8c6ee1fdd3c 100755 --- a/build-aux/update-copyright +++ b/build-aux/update-copyright @@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" ${1+"$@"}' if 0; # Update an FSF copyright year list to include the current year. -my $VERSION = '2015-01-15.20:53'; # UTC +my $VERSION = '2016-01-11.22:04'; # UTC # Copyright (C) 2009-2016 Free Software Foundation, Inc. # @@ -269,6 +269,6 @@ else # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "my $VERSION = '" # time-stamp-format: "%:y-%02m-%02d.%02H:%02M" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "'; # UTC" # End: diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex index f140bba94b8..936c32dc5f4 100644 --- a/doc/misc/texinfo.tex +++ b/doc/misc/texinfo.tex @@ -3,11 +3,11 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2015-12-20.12} +\def\texinfoversion{2016-01-11.19} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, -% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 +% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 % Free Software Foundation, Inc. % % This texinfo.tex file is free software: you can redistribute it and/or @@ -9428,6 +9428,45 @@ directory should work if nowhere else does.} \global\righthyphenmin = #3\relax } +% Get input by bytes instead of by UTF-8 codepoints for XeTeX and LuaTeX, +% otherwise the encoding support is completely broken. +\ifx\XeTeXrevision\thisisundefined +\else +\XeTeXdefaultencoding "bytes" % For subsequent files to be read +\XeTeXinputencoding "bytes" % Effective in texinfo.tex only +% Unfortunately, there seems to be no corresponding XeTeX command for +% output encoding. This is a problem for auxiliary index and TOC files. +% The only solution would be perhaps to write out @U{...} sequences in +% place of UTF-8 characters. +\fi + +\ifx\luatexversion\thisisundefined +\else +\directlua{ +local utf8_char, byte, gsub = unicode.utf8.char, string.byte, string.gsub +local function convert_char (char) + return utf8_char(byte(char)) +end + +local function convert_line (line) + return gsub(line, ".", convert_char) +end + +callback.register("process_input_buffer", convert_line) + +local function convert_line_out (line) + local line_out = "" + for c in string.utfvalues(line) do + line_out = line_out .. string.char(c) + end + return line_out +end + +callback.register("process_output_buffer", convert_line_out) +} +\fi + + % Helpers for encodings. % Set the catcode of characters 128 through 255 to the specified number. % @@ -9452,6 +9491,14 @@ directory should work if nowhere else does.} % \def\documentencoding{\parseargusing\filenamecatcodes\documentencodingzzz} \def\documentencodingzzz#1{% + % Get input by bytes instead of by UTF-8 codepoints for XeTeX, + % otherwise the encoding support is completely broken. + % This settings is for the document root file. + \ifx\XeTeXrevision\thisisundefined + \else + \XeTeXinputencoding "bytes" + \fi + % % Encoding being declared for the document. \def\declaredencoding{\csname #1.enc\endcsname}% % @@ -11004,9 +11051,20 @@ directory should work if nowhere else does.} {@catcode`@^=7 @catcode`@^^M=13% @gdef@eatinput input texinfo#1^^M{@fixbackslash}} +% Emergency active definition of newline, in case an active newline token +% appears by mistake. +{@catcode`@^=7 @catcode13=13% +@gdef@enableemergencynewline{% + @gdef^^M{% + @par% + %@par% +}}} + + @gdef@fixbackslash{% @ifx\@eatinput @let\ = @ttbackslash @fi @catcode13=5 % regular end of line + @enableemergencynewline @let@c=@texinfoc % Also turn back on active characters that might appear in the input % file name, in case not using a pre-dumped format. From 2fac775a402b859b1d0bcc7683129ba7c6c13673 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 12 Jan 2016 19:01:12 -0500 Subject: [PATCH 09/30] * src/buffer.c (syms_of_buffer) : Doc fix. Remove comments that do not apply since 2005-08-09. (Bug#22349) --- src/buffer.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/buffer.c b/src/buffer.c index 3f9371652e7..b02135cef87 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -5630,13 +5630,7 @@ Decimal digits after the % specify field width to which to pad. */); doc: /* Symbol for current buffer's major mode. The default value (normally `fundamental-mode') affects new buffers. A value of nil means to use the current buffer's major mode, provided -it is not marked as "special". - -When a mode is used by default, `find-file' switches to it before it -reads the contents into the buffer and before it finishes setting up -the buffer. Thus, the mode and its hooks should not expect certain -variables such as `buffer-read-only' and `buffer-file-coding-system' -to be set up. */); +it is not marked as "special". */); DEFVAR_PER_BUFFER ("mode-name", &BVAR (current_buffer, mode_name), Qnil, From 0d7bdee57737ea4e51c45cd0ae68656f03010b4a Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 12 Jan 2016 20:03:02 -0500 Subject: [PATCH 10/30] ; ChangeLog fix --- ChangeLog.2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog.2 b/ChangeLog.2 index 6988f9603b3..7a63a9538d1 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -13903,10 +13903,10 @@ 2015-05-21 kwhite * lisp/erc/erc.el: Hide network/channel messages. - (erc-network-hide-list, etc-channel-hide-list): New lists to define + (erc-network-hide-list, erc-channel-hide-list): New lists to define message types per network/channel. (erc-add-targets): New function to parse list of targets. - (erc-hide-current-message-p): Modified to check for new targets. + (erc-hide-current-message-p): Modify to check for new targets. 2015-05-21 Paul Eggert From 0ae1a144a83cbfe8bba1abb295ece69c4dcff5f7 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 12 Jan 2016 20:04:49 -0500 Subject: [PATCH 11/30] * test/automated/core-elisp-tests.el (core-elisp-tests-1-defvar-in-let): Add a custom type. --- test/automated/core-elisp-tests.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/automated/core-elisp-tests.el b/test/automated/core-elisp-tests.el index 76985331566..b44bb37cc4f 100644 --- a/test/automated/core-elisp-tests.el +++ b/test/automated/core-elisp-tests.el @@ -32,7 +32,7 @@ (should (equal (list (let ((c-e-x 1)) (defvar c-e-x 2) c-e-x) c-e-x) '(1 2))) (should (equal (list (let ((c-e-x 1)) - (defcustom c-e-x 2 "doc" :group 'blah) c-e-x) + (defcustom c-e-x 2 "doc" :group 'blah :type 'integer) c-e-x) c-e-x) '(1 2))))) From e85e0d5951bd4e6e69beec1301113f5f9b48f81d Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 12 Jan 2016 20:06:49 -0500 Subject: [PATCH 12/30] Add some missing version tags. * lisp/electric.el (electric-quote-comment) (electric-quote-string, electric-quote-paragraph): * lisp/epg-config.el (epg-gpgconf-program): * lisp/rect.el (rectangle-preview): * lisp/emacs-lisp/check-declare.el (check-declare-ext-errors): * lisp/emacs-lisp/package.el (package-selected-packages) (package-hidden-regexps): * lisp/erc/erc.el (erc-network-hide-list, erc-channel-hide-list): * lisp/eshell/em-term.el (eshell-destroy-buffer-when-process-dies): * lisp/gnus/mml-sec.el (mml1991-signers, mml2015-signers) (mml-smime-signers, mml1991-encrypt-to-self, mml2015-encrypt-to-self) (mml-smime-encrypt-to-self, mml2015-sign-with-sender) (mml-smime-sign-with-sender, mml2015-always-trust) (mml-secure-fail-when-key-problem, mml-secure-key-preferences): * lisp/net/browse-url.el (browse-url-conkeror-new-window-is-buffer) (browse-url-conkeror-arguments): * lisp/net/newst-reader.el (newsticker-download-logos): * lisp/progmodes/gud.el (gud-guiler-command-name): * lisp/progmodes/prog-mode.el (prettify-symbols-unprettify-at-point): * lisp/progmodes/project.el (project-vc): * lisp/progmodes/python.el (python-indent-guess-indent-offset-verbose) (python-shell-remote-exec-path, python-shell-first-prompt-hook) (python-shell-completion-native-disabled-interpreters) (python-shell-completion-native-enable) (python-shell-completion-native-output-timeout) (python-shell-completion-native-try-output-timeout): * lisp/progmodes/xref.el (xref): * lisp/term/screen.el (xterm-screen-extra-capabilities): * lisp/term/xterm.el (xterm-max-cut-length): Add missing version tags. --- lisp/electric.el | 3 +++ lisp/emacs-lisp/check-declare.el | 1 + lisp/emacs-lisp/package.el | 2 ++ lisp/epg-config.el | 1 + lisp/erc/erc.el | 6 ++++-- lisp/eshell/em-term.el | 1 + lisp/gnus/mml-sec.el | 23 ++++++++++++++--------- lisp/net/browse-url.el | 2 ++ lisp/net/newst-reader.el | 1 + lisp/progmodes/gud.el | 1 + lisp/progmodes/prog-mode.el | 1 + lisp/progmodes/project.el | 3 ++- lisp/progmodes/python.el | 7 +++++++ lisp/progmodes/xref.el | 1 + lisp/rect.el | 1 + lisp/term/screen.el | 1 + lisp/term/xterm.el | 1 + 17 files changed, 44 insertions(+), 12 deletions(-) diff --git a/lisp/electric.el b/lisp/electric.el index abddd986ef8..ab79943c9dd 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -417,14 +417,17 @@ The variable `electric-layout-rules' says when and how to insert newlines." (defcustom electric-quote-comment t "Non-nil means to use electric quoting in program comments." + :version "25.1" :type 'boolean :safe 'booleanp :group 'electricity) (defcustom electric-quote-string nil "Non-nil means to use electric quoting in program strings." + :version "25.1" :type 'boolean :safe 'booleanp :group 'electricity) (defcustom electric-quote-paragraph t "Non-nil means to use electric quoting in text paragraphs." + :version "25.1" :type 'boolean :safe 'booleanp :group 'electricity) (defun electric--insertable-p (string) diff --git a/lisp/emacs-lisp/check-declare.el b/lisp/emacs-lisp/check-declare.el index 513aa319798..b6fa0546088 100644 --- a/lisp/emacs-lisp/check-declare.el +++ b/lisp/emacs-lisp/check-declare.el @@ -131,6 +131,7 @@ With optional argument FULL, sums the number of elements in each element." (defcustom check-declare-ext-errors nil "When non-nil, warn about functions not found in :ext." + :version "25.1" :type 'boolean) (defun check-declare-verify (fnfile fnlist) diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index a06b7ef012e..fbc8be482a2 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -328,6 +328,7 @@ by running `package-install-selected-packages'. To check if a package is contained in this list here, use `package--user-selected-p', as it may populate the variable with a sane initial value." + :version "25.1" :type '(repeat symbol)) (defcustom package-menu-async t @@ -2653,6 +2654,7 @@ omitted from the package menu. To toggle this, type \\[package-menu-toggle-hidi Values can be interactively added to this list by typing \\[package-menu-hide-package] on a package" + :version "25.1" :type '(repeat (regexp :tag "Hide packages with name matching"))) (defun package-menu--refresh (&optional packages keywords) diff --git a/lisp/epg-config.el b/lisp/epg-config.el index 5fac079d3c0..e92bcd62a66 100644 --- a/lisp/epg-config.el +++ b/lisp/epg-config.el @@ -53,6 +53,7 @@ (defcustom epg-gpgconf-program "gpgconf" "The `gpgconf' executable." + :version "25.1" :group 'epg :type 'string) diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index aa3677c2111..3e96bb279e8 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -265,14 +265,16 @@ A typical value would be \(\"JOIN\" \"PART\" \"QUIT\")." (defcustom erc-network-hide-list nil "A list of IRC networks to hide message types from. A typical value would be \((\"freenode\" \"MODE\") -(\"OFTC\" \"JOIN\" \"QUIT\"))." + \(\"OFTC\" \"JOIN\" \"QUIT\"))." + :version "25.1" :group 'erc-ignore :type 'erc-message-type) (defcustom erc-channel-hide-list nil "A list of IRC channels to hide message types from. A typical value would be \((\"#emacs\" \"QUIT\" \"JOIN\") -(\"#erc\" \"NICK\")." + \(\"#erc\" \"NICK\")." + :version "25.1" :group 'erc-ignore :type 'erc-message-type) diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el index aabc5fdb1a2..3e5de0c0097 100644 --- a/lisp/eshell/em-term.el +++ b/lisp/eshell/em-term.el @@ -136,6 +136,7 @@ character to the invoked process." "If non-nil, term buffers are destroyed after their processes die. WARNING: Setting this to non-nil may result in unexpected behavior for short-lived processes, see bug#18108." + :version "25.1" :type 'boolean :group 'eshell-term) diff --git a/lisp/gnus/mml-sec.el b/lisp/gnus/mml-sec.el index 0a5f472079d..48e6384497e 100644 --- a/lisp/gnus/mml-sec.el +++ b/lisp/gnus/mml-sec.el @@ -432,15 +432,18 @@ If called with a prefix argument, only encrypt (do NOT sign)." ;;; Common functionality for mml1991.el, mml2015.el, mml-smime.el -(define-obsolete-variable-alias 'mml1991-signers 'mml-secure-openpgp-signers) -(define-obsolete-variable-alias 'mml2015-signers 'mml-secure-openpgp-signers) +(define-obsolete-variable-alias 'mml1991-signers 'mml-secure-openpgp-signers + "25.1") +(define-obsolete-variable-alias 'mml2015-signers 'mml-secure-openpgp-signers + "25.1") (defcustom mml-secure-openpgp-signers nil "A list of your own key ID(s) which will be used to sign OpenPGP messages. If set, it is added to the setting of `mml-secure-openpgp-sign-with-sender'." :group 'mime-security :type '(repeat (string :tag "Key ID"))) -(define-obsolete-variable-alias 'mml-smime-signers 'mml-secure-smime-signers) +(define-obsolete-variable-alias 'mml-smime-signers 'mml-secure-smime-signers + "25.1") (defcustom mml-secure-smime-signers nil "A list of your own key ID(s) which will be used to sign S/MIME messages. If set, it is added to the setting of `mml-secure-smime-sign-with-sender'." @@ -448,9 +451,9 @@ If set, it is added to the setting of `mml-secure-smime-sign-with-sender'." :type '(repeat (string :tag "Key ID"))) (define-obsolete-variable-alias - 'mml1991-encrypt-to-self 'mml-secure-openpgp-encrypt-to-self) + 'mml1991-encrypt-to-self 'mml-secure-openpgp-encrypt-to-self "25.1") (define-obsolete-variable-alias - 'mml2015-encrypt-to-self 'mml-secure-openpgp-encrypt-to-self) + 'mml2015-encrypt-to-self 'mml-secure-openpgp-encrypt-to-self "25.1") (defcustom mml-secure-openpgp-encrypt-to-self nil "List of own key ID(s) or t; determines additional recipients with OpenPGP. If t, also encrypt to key for message sender; if list, encrypt to those keys. @@ -469,7 +472,7 @@ https://debbugs.gnu.org/cgi/bugreport.cgi?bug=18718" (repeat (string :tag "Key ID")))) (define-obsolete-variable-alias - 'mml-smime-encrypt-to-self 'mml-secure-smime-encrypt-to-self) + 'mml-smime-encrypt-to-self 'mml-secure-smime-encrypt-to-self "25.1") (defcustom mml-secure-smime-encrypt-to-self nil "List of own key ID(s) or t; determines additional recipients with S/MIME. If t, also encrypt to key for message sender; if list, encrypt to those keys. @@ -488,7 +491,7 @@ https://debbugs.gnu.org/cgi/bugreport.cgi?bug=18718" (repeat (string :tag "Key ID")))) (define-obsolete-variable-alias - 'mml2015-sign-with-sender 'mml-secure-openpgp-sign-with-sender) + 'mml2015-sign-with-sender 'mml-secure-openpgp-sign-with-sender "25.1") ;mml1991-sign-with-sender did never exist. (defcustom mml-secure-openpgp-sign-with-sender nil "If t, use message sender to find an OpenPGP key to sign with." @@ -496,14 +499,14 @@ https://debbugs.gnu.org/cgi/bugreport.cgi?bug=18718" :type 'boolean) (define-obsolete-variable-alias - 'mml-smime-sign-with-sender 'mml-secure-smime-sign-with-sender) + 'mml-smime-sign-with-sender 'mml-secure-smime-sign-with-sender "25.1") (defcustom mml-secure-smime-sign-with-sender nil "If t, use message sender to find an S/MIME key to sign with." :group 'mime-security :type 'boolean) (define-obsolete-variable-alias - 'mml2015-always-trust 'mml-secure-openpgp-always-trust) + 'mml2015-always-trust 'mml-secure-openpgp-always-trust "25.1") ;mml1991-always-trust did never exist. (defcustom mml-secure-openpgp-always-trust t "If t, skip key validation of GnuPG on encryption." @@ -513,6 +516,7 @@ https://debbugs.gnu.org/cgi/bugreport.cgi?bug=18718" (defcustom mml-secure-fail-when-key-problem nil "If t, raise an error if some key is missing or several keys exist. Otherwise, ask the user." + :version "25.1" :group 'mime-security :type 'boolean) @@ -523,6 +527,7 @@ This variable is only relevant if a recipient owns multiple key pairs (for encryption) or you own multiple key pairs (for signing). In such cases, you will be asked which key(s) should be used, and your choice can be customized in this variable." + :version "25.1" :group 'mime-security :type '(alist :key-type (symbol :tag "Protocol") :value-type (alist :key-type (symbol :tag "Usage") :value-type diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index 26fa0d94b88..2bda97f95d0 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -349,6 +349,7 @@ functionality is not available there." "Whether to open up new windows in a buffer or a new window. If non-nil, then open the URL in a new buffer rather than a new window if `browse-url-conkeror' is asked to open it in a new window." + :version "25.1" :type 'boolean :group 'browse-url) @@ -415,6 +416,7 @@ commands reverses the effect of this variable." (defcustom browse-url-conkeror-arguments nil "A list of strings to pass to Conkeror as arguments." + :version "25.1" :type '(repeat (string :tag "Argument")) :group 'browse-url) diff --git a/lisp/net/newst-reader.el b/lisp/net/newst-reader.el index 1647ef85364..9c29216ccaf 100644 --- a/lisp/net/newst-reader.el +++ b/lisp/net/newst-reader.el @@ -69,6 +69,7 @@ This must be one of the functions `newsticker-plainview' or (defcustom newsticker-download-logos t "If non-nil newsticker downloads logo images of subscribed feeds." + :version "25.1" :type 'boolean :group 'newsticker-reader) diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index c22de2f77ac..1a0385e167e 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -1742,6 +1742,7 @@ and source-file directory for your debugger." (defcustom gud-guiler-command-name "guile" "File name for executing the Guile debugger. This should be an executable on your path, or an absolute file name." + :version "25.1" :type 'string :group 'gud) diff --git a/lisp/progmodes/prog-mode.el b/lisp/progmodes/prog-mode.el index 2f12df47723..718b33932ed 100644 --- a/lisp/progmodes/prog-mode.el +++ b/lisp/progmodes/prog-mode.el @@ -202,6 +202,7 @@ is immediately after the symbol. The prettification will be reapplied as soon as point moves away from the symbol. If set to nil, the prettification persists even when point is on the symbol." + :version "25.1" :type '(choice (const :tag "Never unprettify" nil) (const :tag "Unprettify when point is inside" t) (const :tag "Unprettify when point is inside or at right edge" right-edge)) diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index fe28ed776b2..a972def24b0 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -156,10 +156,11 @@ end it with `/'. DIR must be one of `project-roots' or (defgroup project-vc nil "Project implementation using the VC package." + :version "25.1" :group 'tools) (defcustom project-vc-ignores nil - "List ot patterns to include in `project-ignores'." + "List of patterns to include in `project-ignores'." :type '(repeat string) :safe 'listp) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 4984c9908bf..fd700463acb 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -715,6 +715,7 @@ It makes underscores and dots word constituent chars.") (defcustom python-indent-guess-indent-offset-verbose t "Non-nil means to emit a warning when indentation guessing fails." + :version "25.1" :type 'boolean :group 'python :safe' booleanp) @@ -1999,6 +2000,7 @@ hosts PATH before starting processes. Values defined in here. Normally you wont use this variable directly unless you plan to ensure a particular set of paths to all Python shell executed through tramp connections." + :version "25.1" :type '(repeat string) :group 'python) @@ -2621,6 +2623,7 @@ current process to not hang waiting for output by safeguarding interactive actions can be performed. This is useful to safely attach setup code for long-running processes that eventually provide a shell." + :version "25.1" :type 'hook :group 'python) @@ -3258,18 +3261,22 @@ the full statement in the case of imports." (list "pypy") "List of disabled interpreters. When a match is found, native completion is disabled." + :version "25.1" :type '(repeat string)) (defcustom python-shell-completion-native-enable t "Enable readline based native completion." + :version "25.1" :type 'boolean) (defcustom python-shell-completion-native-output-timeout 5.0 "Time in seconds to wait for completion output before giving up." + :version "25.1" :type 'float) (defcustom python-shell-completion-native-try-output-timeout 1.0 "Time in seconds to wait for *trying* native completion output." + :version "25.1" :type 'float) (defvar python-shell-completion-native-redirect-buffer diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index fe39122d24f..6220b4cdc92 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -76,6 +76,7 @@ (require 'semantic/symref)) ;; for hit-lines slot (defgroup xref nil "Cross-referencing commands" + :version "25.1" :group 'tools) diff --git a/lisp/rect.el b/lisp/rect.el index 789d0e9082d..73790f2f92a 100644 --- a/lisp/rect.el +++ b/lisp/rect.el @@ -403,6 +403,7 @@ With a prefix (or a FILL) argument, also fill too short lines." (defcustom rectangle-preview t "If non-nil, `string-rectangle' will show an-the-fly preview." + :version "25.1" :type 'boolean) (defun rectangle--string-preview () diff --git a/lisp/term/screen.el b/lisp/term/screen.el index 704fbefb0ad..7f681154d6e 100644 --- a/lisp/term/screen.el +++ b/lisp/term/screen.el @@ -7,6 +7,7 @@ "Extra capabilities supported under \"screen\". Some features of screen depend on the terminal emulator in which it runs, which can change when the screen session is moved to another tty." + :version "25.1" :type xterm--extra-capabilities-type :group 'xterm) diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el index 104f98311a8..e06423ccfdd 100644 --- a/lisp/term/xterm.el +++ b/lisp/term/xterm.el @@ -65,6 +65,7 @@ using the OSC 52 sequence. If you select a region larger than this size, it won't be copied to your system clipboard. Since clipboard data is base 64 encoded, the actual number of string bytes that can be copied is 3/4 of this value." + :version "25.1" :type 'integer) (defconst xterm-paste-ending-sequence "\e[201~" From 30d465b0601fabf5400646a057cdc077d4866759 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 12 Jan 2016 20:32:20 -0500 Subject: [PATCH 13/30] Fix some custom types. * lisp/gnus/gnus-fun.el (gnus-x-face-omit-files, gnus-face-omit-files): * lisp/gnus/gnus.el (gnus-valid-select-methods): * lisp/mail/rmail.el (rmail-get-coding-function): * lisp/net/newst-treeview.el (newsticker-groups-filename): * lisp/progmodes/hideif.el (hide-ifdef-exclude-define-regexp): * lisp/textmodes/tildify.el (tildify-space-predicates): * lisp/url/url-tramp.el (url-tramp-protocols): Fix custom types. --- lisp/gnus/gnus-fun.el | 4 ++-- lisp/gnus/gnus.el | 1 + lisp/mail/rmail.el | 5 +++-- lisp/net/newst-treeview.el | 4 ++-- lisp/progmodes/hideif.el | 2 +- lisp/textmodes/tildify.el | 2 +- lisp/url/url-tramp.el | 4 ++-- 7 files changed, 12 insertions(+), 10 deletions(-) diff --git a/lisp/gnus/gnus-fun.el b/lisp/gnus/gnus-fun.el index fa78b5c6e15..a6b27300233 100644 --- a/lisp/gnus/gnus-fun.el +++ b/lisp/gnus/gnus-fun.el @@ -44,7 +44,7 @@ "Regexp to match faces in `gnus-x-face-directory' to be omitted." :version "25.1" :group 'gnus-fun - :type 'string) + :type '(choice (const nil) string)) (defcustom gnus-face-directory (expand-file-name "faces" gnus-directory) "*Directory where Face PNG files are stored." @@ -56,7 +56,7 @@ "Regexp to match faces in `gnus-face-directory' to be omitted." :version "25.1" :group 'gnus-fun - :type 'string) + :type '(choice (const nil) string)) (defcustom gnus-convert-pbm-to-x-face-command "pbmtoxbm %s | compface" "Command for converting a PBM to an X-Face." diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index 1196ea9dfec..5d2ce7ee19f 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el @@ -1637,6 +1637,7 @@ this variable. I think." (const post-mail)) (checklist :inline t :greedy t (const :format "%v " address) + (const cloud) (const global) (const :format "%v " prompt-address) (const :format "%v " physical-address) diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 9a03b0516df..390ca3fad52 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -692,8 +692,9 @@ Element N specifies the summary line for message N+1.") This is set to nil by default.") (defcustom rmail-get-coding-function nil - "Function of no args to try to determine coding system for a message." - :type 'function + "Function of no args to try to determine coding system for a message. +If nil, just search for `rmail-mime-charset-pattern'." + :type '(choice (const nil) function) :group 'rmail :version "24.4") diff --git a/lisp/net/newst-treeview.el b/lisp/net/newst-treeview.el index 0e75236154b..4de3d1d1125 100644 --- a/lisp/net/newst-treeview.el +++ b/lisp/net/newst-treeview.el @@ -132,9 +132,9 @@ Example: (\"Topmost group\" \"feed1\" (\"subgroup1\" \"feed 2\") (defcustom newsticker-groups-filename nil - "Name of the newsticker groups settings file. This variable is obsolete." + "Name of the newsticker groups settings file." :version "25.1" ; changed default value to nil - :type 'string + :type '(choice (const nil) string) :group 'newsticker-treeview) (make-obsolete-variable 'newsticker-groups-filename 'newsticker-dir "23.1") diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el index 43cf42c048b..cc7d1c368c5 100644 --- a/lisp/progmodes/hideif.el +++ b/lisp/progmodes/hideif.el @@ -138,7 +138,7 @@ (defcustom hide-ifdef-exclude-define-regexp nil "Ignore #define names if those names match this exclusion pattern." - :type 'string + :type '(choice (const nil) string) :version "25.1") (defcustom hide-ifdef-expand-reinclusion-protection t diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el index eb799c09510..598060e9ec8 100644 --- a/lisp/textmodes/tildify.el +++ b/lisp/textmodes/tildify.el @@ -417,7 +417,7 @@ current `case-fold-search' setting." "A list of predicate functions for `tildify-space' function." :version "25.1" :group 'tildify - :type '(repeat 'function)) + :type '(repeat function)) (defcustom tildify-double-space-undos t "Weather `tildify-space' should undo hard space when space is typed again." diff --git a/lisp/url/url-tramp.el b/lisp/url/url-tramp.el index 9e191579d47..192a0459f33 100644 --- a/lisp/url/url-tramp.el +++ b/lisp/url/url-tramp.el @@ -30,11 +30,11 @@ ;;;###autoload (defcustom url-tramp-protocols '("ftp" "ssh" "scp" "rsync" "telnet") - "List of URL protocols the work is handled by Tramp. + "List of URL protocols for which the work is handled by Tramp. They must also be covered by `url-handler-regexp'." :group 'url :version "25.1" - :type '(list string)) + :type '(repeat string)) (defun url-tramp-convert-url-to-tramp (url) "Convert URL to a Tramp file name." From 1b7e681292c39649663759ad3d30965c2130794c Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 12 Jan 2016 20:49:34 -0500 Subject: [PATCH 14/30] Fix some declarations. * lisp/descr-text.el (internal-char-font): * lisp/cedet/mode-local.el (xref-item-location): * lisp/gnus/mml-smime.el (epg-key-sub-key-list) (epg-sub-key-capability, epg-sub-key-validity): * lisp/international/mule-util.el (internal-char-font): Fix declarations. --- lisp/cedet/mode-local.el | 2 +- lisp/descr-text.el | 2 +- lisp/gnus/mml-smime.el | 6 +++--- lisp/international/mule-util.el | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el index 30320b00946..ce367485c16 100644 --- a/lisp/cedet/mode-local.el +++ b/lisp/cedet/mode-local.el @@ -670,7 +670,7 @@ SYMBOL is a function that can be overridden." (add-hook 'help-fns-describe-function-functions 'describe-mode-local-overload) -(declare-function xref-item-location "xref" (xref)) +(declare-function xref-item-location "xref" (xref) t) (defun xref-mode-local--override-present (sym xrefs) "Return non-nil if SYM is in XREFS." diff --git a/lisp/descr-text.el b/lisp/descr-text.el index dcc697e1b9a..a352ed0849c 100644 --- a/lisp/descr-text.el +++ b/lisp/descr-text.el @@ -322,7 +322,7 @@ This function is semi-obsolete. Use `get-char-code-property'." (nth 13 fields) 16))))))))))) ;; Not defined on builds without X, but behind display-graphic-p. -(declare-function internal-char-font "fontset.c" (position &optional ch)) +(declare-function internal-char-font "font.c" (position &optional ch)) ;; Return information about how CHAR is displayed at the buffer ;; position POS. If the selected frame is on a graphic display, diff --git a/lisp/gnus/mml-smime.el b/lisp/gnus/mml-smime.el index a40595ecbd5..2d8f25c5003 100644 --- a/lisp/gnus/mml-smime.el +++ b/lisp/gnus/mml-smime.el @@ -350,9 +350,9 @@ Whether the passphrase is cached at all is controlled by (autoload 'epg-expand-group "epg-config") (autoload 'epa-select-keys "epa")) -(declare-function epg-key-sub-key-list "ext:epg" (key)) -(declare-function epg-sub-key-capability "ext:epg" (sub-key)) -(declare-function epg-sub-key-validity "ext:epg" (sub-key)) +(declare-function epg-key-sub-key-list "epg" (key) t) +(declare-function epg-sub-key-capability "epg" (sub-key) t) +(declare-function epg-sub-key-validity "epg" (sub-key) t) (autoload 'mml-compute-boundary "mml") diff --git a/lisp/international/mule-util.el b/lisp/international/mule-util.el index 24ad342d4e0..ae58f1ec7e1 100644 --- a/lisp/international/mule-util.el +++ b/lisp/international/mule-util.el @@ -259,7 +259,7 @@ language environment LANG-ENV." (with-coding-priority coding-priority (detect-coding-region from to))))) -(declare-function internal-char-font "fontset.c" (position &optional ch)) +(declare-function internal-char-font "font.c" (position &optional ch)) ;;;###autoload (defun char-displayable-p (char) From 281344e606ca46542063dca4687371ea7dcc23c1 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 12 Jan 2016 19:34:24 -0800 Subject: [PATCH 15/30] Update publicsuffix.txt from upstream * etc/publicsuffix.txt: Update from https://publicsuffix.org/list/effective_tld_names.dat dated 2016-01-12 11:52:01 UTC. --- etc/publicsuffix.txt | 225 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 200 insertions(+), 25 deletions(-) diff --git a/etc/publicsuffix.txt b/etc/publicsuffix.txt index 98929de3684..a6f596ad43b 100644 --- a/etc/publicsuffix.txt +++ b/etc/publicsuffix.txt @@ -89,7 +89,6 @@ leasing.aero logistics.aero magazine.aero maintenance.aero -marketplace.aero media.aero microlight.aero modelling.aero @@ -112,7 +111,6 @@ show.aero skydiving.aero software.aero student.aero -taxi.aero trader.aero trading.aero trainer.aero @@ -155,13 +153,6 @@ org.al // am : http://en.wikipedia.org/wiki/.am am -// an : http://www.una.an/an_domreg/default.asp -an -com.an -net.an -org.an -edu.an - // ao : http://en.wikipedia.org/wiki/.ao // http://www.dns.ao/REGISTR.DOC ao @@ -1012,7 +1003,10 @@ gw gy co.gy com.gy +edu.gy +gov.gy net.gy +org.gy // hk : https://www.hkdnr.hk // Submitted by registry 2008-06-11 @@ -1131,8 +1125,16 @@ web.id ie gov.ie -// il : http://en.wikipedia.org/wiki/.il -*.il +// il : http://www.isoc.org.il/domains/ +il +ac.il +co.il +gov.il +idf.il +k12.il +muni.il +net.il +org.il // im : https://www.nic.im/ // Submitted by registry 2013-11-15 @@ -1149,7 +1151,7 @@ tv.im // in : http://en.wikipedia.org/wiki/.in // see also: https://registry.in/Policies -// Please note, that nic.in is not an offical eTLD, but used by most +// Please note, that nic.in is not an official eTLD, but used by most // government institutions. in co.in @@ -4429,8 +4431,21 @@ gov.ng mil.ng mobi.ng -// ni : http://www.nic.ni/dominios.htm -*.ni +// ni : http://www.nic.ni/ +com.ni +gob.ni +edu.ni +org.ni +nom.ni +net.ni +mil.ni +co.ni +biz.ni +web.ni +int.ni +ac.ni +in.ni +info.ni // nl : http://en.wikipedia.org/wiki/.nl // https://www.sidn.nl/ @@ -5775,7 +5790,6 @@ kms.ru k-uralsk.ru kustanai.ru kuzbass.ru -magnitka.ru mytis.ru nakhodka.ru nkz.ru @@ -6125,10 +6139,6 @@ org.to edu.to mil.to -// tp : No registrations at this time. -// Submitted by Ryan Sleevi 2014-01-03 -tp - // subTLDs: https://www.nic.tr/forms/eng/policies.pdf // and: https://www.nic.tr/forms/politikalar.pdf // Submitted by 2014-07-19 @@ -6564,8 +6574,8 @@ lib.wi.us // lib.wv.us Bug 941670 - Removed at request of Larry W Arnold lib.wy.us // k12.ma.us contains school districts in Massachusetts. The 4LDs are -// managed indepedently except for private (PVT), charter (CHTR) and -// parochial (PAROCH) schools. Those are delegated dorectly to the +// managed independently except for private (PVT), charter (CHTR) and +// parochial (PAROCH) schools. Those are delegated directly to the // 5LD operators. pvt.k12.ma.us chtr.k12.ma.us @@ -6919,7 +6929,7 @@ web.za *.zw -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2015-08-26T23:57:22Z +// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-01-04T22:39:54Z // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7077,6 +7087,9 @@ anquan // anz : 2015-07-31 Australia and New Zealand Banking Group Limited anz +// aol : 2015-09-17 AOL Inc. +aol + // apartments : 2014-12-11 June Maple, LLC apartments @@ -7089,6 +7102,9 @@ apple // aquarelle : 2014-07-24 Aquarelle.com aquarelle +// arab : 2015-11-12 League of Arab States +arab + // aramco : 2014-11-20 Aramco Services Company aramco @@ -7185,6 +7201,9 @@ barefoot // bargains : 2013-11-14 Half Hallow, LLC bargains +// baseball : 2015-10-29 MLB Advanced Media DH, LLC +baseball + // basketball : 2015-08-20 Fédération Internationale de Basketball (FIBA) basketball @@ -7212,6 +7231,9 @@ bcn // beats : 2015-05-14 Beats Electronics, LLC beats +// beauty : 2015-12-03 L'Oréal +beauty + // beer : 2014-01-09 Top Level Domain Holdings Limited beer @@ -7302,6 +7324,9 @@ bond // boo : 2014-01-30 Charleston Road Registry Inc. boo +// book : 2015-08-27 Amazon EU S.à r.l. +book + // booking : 2015-07-16 Booking.com B.V. booking @@ -7314,12 +7339,18 @@ bosch // bostik : 2015-05-28 Bostik SA bostik +// boston : 2015-12-10 Boston Globe Media Partners, LLC +boston + // bot : 2014-12-18 Amazon EU S.à r.l. bot // boutique : 2013-11-14 Over Galley, LLC boutique +// box : 2015-11-12 NS1 Limited +box + // bradesco : 2014-12-18 Banco Bradesco S.A. bradesco @@ -7425,6 +7456,12 @@ cartier // casa : 2013-11-21 Top Level Domain Holdings Limited casa +// case : 2015-09-03 CNH Industrial N.V. +case + +// caseih : 2015-09-03 CNH Industrial N.V. +caseih + // cash : 2014-03-06 Delta Lake, LLC cash @@ -7434,6 +7471,9 @@ casino // catering : 2013-12-05 New Falls. LLC catering +// catholic : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +catholic + // cba : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA cba @@ -7533,6 +7573,9 @@ click // clinic : 2014-03-20 Goose Park, LLC clinic +// clinique : 2015-10-01 The Estée Lauder Companies Inc. +clinique + // clothing : 2013-08-27 Steel Lake, LLC clothing @@ -7572,6 +7615,9 @@ community // company : 2013-11-07 Silver Avenue, LLC company +// compare : 2015-10-08 iSelect Ltd +compare + // computer : 2013-10-24 Pine Mill, LLC computer @@ -7635,6 +7681,9 @@ crown // crs : 2014-04-03 Federated Co-operatives Limited crs +// cruise : 2015-12-10 Viking River Cruises (Bermuda) Ltd. +cruise + // cruises : 2013-12-05 Spring Way, LLC cruises @@ -7746,6 +7795,9 @@ discover // dish : 2015-07-30 Dish DBS Corporation dish +// diy : 2015-11-05 Lifestyle Domain Holdings, Inc. +diy + // dnp : 2013-12-13 Dai Nippon Printing Co., Ltd. dnp @@ -7863,6 +7915,9 @@ estate // esurance : 2015-07-23 Esurance Insurance Company esurance +// etisalat : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat) +etisalat + // eurovision : 2014-04-24 European Broadcasting Union (EBU) eurovision @@ -8022,6 +8077,12 @@ forum // foundation : 2013-12-05 John Dale, LLC foundation +// fox : 2015-09-11 FOX Registry, LLC +fox + +// free : 2015-12-10 Amazon EU S.à r.l. +free + // fresenius : 2015-07-30 Fresenius Immobilien-Verwaltungs-GmbH fresenius @@ -8211,6 +8272,9 @@ guitars // guru : 2013-08-27 Pioneer Cypress, LLC guru +// hair : 2015-12-03 L'Oréal +hair + // hamburg : 2014-02-20 Hamburg Top-Level-Domain GmbH hamburg @@ -8259,7 +8323,7 @@ hisamitsu // hitachi : 2014-10-31 Hitachi, Ltd. hitachi -// hiv : 2014-03-13 dotHIV gemeinnuetziger e.V. +// hiv : 2014-03-13 hiv // hkt : 2015-05-14 PCCW-HKT DataCom Services Limited @@ -8301,6 +8365,9 @@ host // hosting : 2014-05-29 Uniregistry, Corp. hosting +// hot : 2015-08-27 Amazon EU S.à r.l. +hot + // hoteles : 2015-03-05 Travel Reservations SRL hoteles @@ -8421,6 +8488,9 @@ itau // itv : 2015-07-09 ITV Services Limited itv +// iveco : 2015-09-03 CNH Industrial N.V. +iveco + // iwc : 2014-06-23 Richemont DNS Inc. iwc @@ -8556,6 +8626,9 @@ ladbrokes // lamborghini : 2015-06-04 Automobili Lamborghini S.p.A. lamborghini +// lamer : 2015-10-01 The Estée Lauder Companies Inc. +lamer + // lancaster : 2015-02-12 LANCASTER lancaster @@ -8859,6 +8932,9 @@ monash // money : 2014-10-16 Outer McCook, LLC money +// monster : 2015-09-11 Monster Worldwide, Inc. +monster + // montblanc : 2014-06-23 Richemont DNS Inc. montblanc @@ -8955,6 +9031,9 @@ neustar // new : 2014-01-30 Charleston Road Registry Inc. new +// newholland : 2015-09-03 CNH Industrial N.V. +newholland + // news : 2014-12-18 news @@ -8991,6 +9070,9 @@ ninja // nissan : 2014-03-27 NISSAN MOTOR CO., LTD. nissan +// nissay : 2015-10-29 Nippon Life Insurance Company +nissay + // nokia : 2015-01-08 Nokia Corporation nokia @@ -9084,6 +9166,9 @@ organic // orientexpress : 2015-02-05 Belmond Ltd. orientexpress +// origins : 2015-10-01 The Estée Lauder Companies Inc. +origins + // osaka : 2014-09-04 Interlink Co., Ltd. osaka @@ -9126,6 +9211,9 @@ party // passagens : 2015-03-05 Travel Reservations SRL passagens +// pay : 2015-08-27 Amazon EU S.à r.l. +pay + // payu : 2015-02-12 MIH PayU B.V. payu @@ -9135,6 +9223,9 @@ pccw // pet : 2015-05-07 Afilias plc pet +// pfizer : 2015-09-11 Pfizer Inc. +pfizer + // pharmacy : 2014-06-19 National Association of Boards of Pharmacy pharmacy @@ -9237,7 +9328,7 @@ prof // progressive : 2015-07-23 Progressive Casualty Insurance Company progressive -// promo : 2014-12-18 Play.PROMO Oy +// promo : 2014-12-18 promo // properties : 2013-12-05 Big Pass, LLC @@ -9258,6 +9349,9 @@ prudential // pub : 2013-12-12 United TLD Holdco Ltd. pub +// pwc : 2015-10-29 PricewaterhouseCoopers LLP +pwc + // qpon : 2013-11-14 dotCOOL, Inc. qpon @@ -9279,6 +9373,9 @@ raid // read : 2014-12-18 Amazon EU S.à r.l. read +// realestate : 2015-09-11 dotRealEstate LLC +realestate + // realtor : 2014-05-29 Real Estate Domains LLC realtor @@ -9366,6 +9463,9 @@ rio // rip : 2014-07-10 United TLD Holdco Ltd. rip +// rmit : 2015-11-19 Royal Melbourne Institute of Technology +rmit + // rocher : 2014-12-18 Ferrero Trading Lux S.A. rocher @@ -9492,12 +9592,18 @@ scot // seat : 2014-05-22 SEAT, S.A. (Sociedad Unipersonal) seat +// secure : 2015-08-27 Amazon EU S.à r.l. +secure + // security : 2015-05-14 security // seek : 2014-12-04 Seek Limited seek +// select : 2015-10-08 iSelect Ltd +select + // sener : 2014-10-24 Sener Ingeniería y Sistemas, S.A. sener @@ -9522,6 +9628,9 @@ sexy // sfr : 2015-08-13 Societe Francaise du Radiotelephone - SFR sfr +// shangrila : 2015-09-03 Shangri‐La International Hotel Management Limited +shangrila + // sharp : 2014-05-01 Sharp Corporation sharp @@ -9645,7 +9754,7 @@ staples // star : 2015-01-08 Star India Private Limited star -// starhub : 2015-02-05 StarHub Limited +// starhub : 2015-02-05 StarHub Ltd starhub // statebank : 2015-03-12 STATE BANK OF INDIA @@ -9909,6 +10018,9 @@ ubs // uconnect : 2015-07-30 FCA US LLC. uconnect +// unicom : 2015-10-15 China United Network Communications Corporation Limited +unicom + // university : 2014-03-06 Little Station, LLC university @@ -9927,6 +10039,9 @@ vacations // vana : 2014-12-11 Lifestyle Domain Holdings, Inc. vana +// vanguard : 2015-09-03 The Vanguard Group, Inc. +vanguard + // vegas : 2014-01-16 Dot Vegas, Inc. vegas @@ -9993,6 +10108,9 @@ vodka // volkswagen : 2015-05-14 Volkswagen Group of America Inc. volkswagen +// volvo : 2015-11-12 Volvo Holding Sverige Aktiebolag +volvo + // vote : 2013-11-21 Monolith Registry LLC vote @@ -10101,6 +10219,9 @@ works // world : 2014-06-12 Bitter Fields, LLC world +// wow : 2015-10-08 Amazon EU S.à r.l. +wow + // wtc : 2013-12-19 World Trade Centers Association, Inc. wtc @@ -10164,6 +10285,9 @@ xin // xn--55qx5d : 2013-11-14 Computer Network Information Center of Chinese Academy of Sciences (China Internet Network Information Center) 公司 +// xn--5su34j936bgsg : 2015-09-03 Shangri‐La International Hotel Management Limited +香格里拉 + // xn--5tzm5g : 2014-12-22 Global Website TLD Asia Limited 网站 @@ -10176,6 +10300,9 @@ xin // xn--80adxhks : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) москва +// xn--80aqecdr1a : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +католик + // xn--80asehdb : 2013-07-14 CORE Association онлайн @@ -10260,6 +10387,9 @@ xin // xn--gckr3f0f : 2015-02-26 Amazon EU S.à r.l. クラウド +// xn--gk3at1e : 2015-10-08 Amazon EU S.à r.l. +通販 + // xn--hxt814e : 2014-05-15 Zodiac Libra Limited 网店 @@ -10296,6 +10426,9 @@ xin // xn--mgba7c0bbn0a : 2015-05-14 Crescent Holding GmbH العليان +// xn--mgbaakc7dvf : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat) +اتصالات + // xn--mgbab2bd : 2013-10-31 CORE Association بازار @@ -10305,6 +10438,9 @@ xin // xn--mgbca7dzdo : 2015-07-30 Abu Dhabi Systems and Information Centre ابوظبي +// xn--mgbi4ecexp : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +كاثوليك + // xn--mgbt3dhd : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. همراه @@ -10320,6 +10456,9 @@ xin // xn--ngbe9e0a : 2014-12-04 Kuwait Finance House بيتك +// xn--ngbrx : 2015-11-12 League of Arab States +عرب + // xn--nqv7f : 2013-11-14 Public Interest Registry 机构 @@ -10359,6 +10498,9 @@ xin // xn--tckwe : 2015-01-15 VeriSign Sarl コム +// xn--tiq49xqyj : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +天主教 + // xn--unup4y : 2013-07-14 Spring Fields, LLC 游戏 @@ -11038,6 +11180,7 @@ blogspot.td blogspot.tw blogspot.ug blogspot.vn +cloudfunctions.net codespot.com googleapis.com googlecode.com @@ -11045,6 +11188,9 @@ pagespeedmobilizer.com withgoogle.com withyoutube.com +// Hashbang : https://hashbang.sh +hashbang.sh + // Heroku : https://www.heroku.com/ // Submitted by Tom Maher 2013-05-02 herokuapp.com @@ -11075,6 +11221,10 @@ bmoattachments.org // Submitted by Trung Tran 2015-04-23 4u.com +// ngrok : https://ngrok.com/ +// Submitted by Alan Shreve 2015-11-10 +ngrok.io + // NFSN, Inc. : https://www.NearlyFreeSpeech.NET/ // Submitted by Jeff Wheelhouse 2014-02-02 nfshost.com @@ -11095,6 +11245,10 @@ operaunite.com // Submitted by Duarte Santos 2014-03-11 outsystemscloud.com +// Pagefront : https://www.pagefronthq.com/ +// Submitted by Jason Kriss 2015-12-02 +pagefrontapp.com + // .pl domains (grandfathered) art.pl gliwice.pl @@ -11116,6 +11270,11 @@ priv.at // Submitted by Daniel Dent (https://www.danieldent.com/) 2015-07-16 qa2.com +// Rackmaze LLC : https://www.rackmaze.com +// Submitted by Kirill Pertsev 2015-12-02 +rackmaze.com +rackmaze.net + // Red Hat, Inc. OpenShift : https://openshift.redhat.com/ // Submitted by Tim Kramer 2012-10-24 rhcloud.com @@ -11136,6 +11295,22 @@ sinaapp.com vipsinaapp.com 1kapp.com +// Synology, Inc. : https://www.synology.com/ +// Submitted by Rony Weng 2015-12-02 +diskstation.me +dscloud.biz +dscloud.me +dscloud.mobi +dsmynas.com +dsmynas.net +dsmynas.org +familyds.com +familyds.net +familyds.org +i234.me +myds.me +synology.me + // TASK geographical domains (www.task.gda.pl/uslugi/dns) gda.pl gdansk.pl From ed1b2de50ae87d8b2f9882be7576fbe5097df65b Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 13 Jan 2016 08:29:12 -0800 Subject: [PATCH 16/30] Fix NNTP NEWGROUPS off-by-a-few-hours bug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * lisp/gnus/nntp.el (nntp-request-newgroups): Format string in Universal Time, since we’re telling the server “GMT”. --- lisp/gnus/nntp.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el index 0e10dfdb8be..0006ef9f5cf 100644 --- a/lisp/gnus/nntp.el +++ b/lisp/gnus/nntp.el @@ -1130,7 +1130,7 @@ command whose response triggered the error." (prog1 (nntp-send-command "^\\.\r?\n" "NEWGROUPS" - (format-time-string "%y%m%d %H%M%S" time) + (format-time-string "%y%m%d %H%M%S" time t) "GMT") (nntp-decode-text)))))) From d022b707d654c24171a3baf951ca8e5e13a0b77a Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 13 Jan 2016 08:30:46 -0800 Subject: [PATCH 17/30] Fix one more misuse of time-stamp-time-zone * test/etags/html-src/softwarelibero.html: Use "UTC0" rather than the unportable "GMT" for time zone. --- test/etags/html-src/softwarelibero.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/etags/html-src/softwarelibero.html b/test/etags/html-src/softwarelibero.html index 159432908d2..b374273c969 100644 --- a/test/etags/html-src/softwarelibero.html +++ b/test/etags/html-src/softwarelibero.html @@ -302,7 +302,7 @@ Local variables: fill-column: 72 time-stamp-active: t -time-stamp-time-zone: "GMT" +time-stamp-time-zone: "UTC0" time-stamp-format: "%:y-%02m-%02d" time-stamp-line-limit: 30 time-stamp-start: "ultima\\s-+modifica\\s-+è\\s-+del\\s-+" From d3776e9f7c9e6ae3ac4c5afff0c33bff73665759 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 13 Jan 2016 19:38:06 +0200 Subject: [PATCH 18/30] Document the new prefix-command hooks * doc/lispref/hooks.texi (Standard Hooks): Document `prefix-command-echo-keystrokes-functions' and `prefix-command-preserve-state-hook'. --- doc/lispref/hooks.texi | 16 ++++++++++++++++ etc/NEWS | 7 ++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/doc/lispref/hooks.texi b/doc/lispref/hooks.texi index cbbaa8e5ea0..b8f761de30e 100644 --- a/doc/lispref/hooks.texi +++ b/doc/lispref/hooks.texi @@ -190,6 +190,22 @@ Hook run when about to switch windows with a mouse command. @item post-self-insert-hook @xref{Keymaps and Minor Modes}. +@item prefix-command-echo-keystrokes-functions +@vindex prefix-command-echo-keystrokes-functions +An abnormal hook run by prefix commands (such as @kbd{C-u}) which +should return a string describing the current prefix state. For +example, @kbd{C-u} produces @samp{C-u-} and @samp{C-u 1 2 3-}. Each +hook function is called with no arguments and should return a string +describing the current prefix state, or @code{nil} if there's no +prefix state. @xref{Prefix Command Arguments}. + +@item prefix-command-preserve-state-hook +@vindex prefix-command-preserve-state-hook +Hook run when a prefix command needs to preserve the prefix by passing +the current prefix command state to the next command. For example, +@kbd{C-u} needs to pass the state to the next command when the user +types @kbd{C-u -} or follows @kbd{C-u} with a digit. + @ignore @item prog-mode-hook @itemx special-mode-hook diff --git a/etc/NEWS b/etc/NEWS index 6323b24dae3..5a1adff0920 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1335,9 +1335,10 @@ that happen, `unhandled-file-name-directory' now defaults to calling ** syntax-propertize is now automatically called on-demand during forward parsing functions like `forward-sexp'. -** New hooks prefix-command-echo-keystrokes-functions and -prefix-command-preserve-state-hook, to allow the definition of prefix -commands other than the predefined C-u. ++++ +** New hooks `prefix-command-echo-keystrokes-functions' and +`prefix-command-preserve-state-hook' allow the definition of prefix +commands other than the predefined `C-u'. ** New functions `filepos-to-bufferpos' and `bufferpos-to-filepos'. From c8eb45da88e05453e78440fedf09a143c832d5a0 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 13 Jan 2016 20:11:52 +0200 Subject: [PATCH 19/30] Document 'bufferpos-to-filepos' and 'filepos-to-bufferpos' * doc/lispref/nonascii.texi (Text Representations): Document 'bufferpos-to-filepos' and 'filepos-to-bufferpos'. --- doc/lispref/nonascii.texi | 39 +++++++++++++++++++++++++++++++++++++++ etc/NEWS | 3 +++ 2 files changed, 42 insertions(+) diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi index 744351e384e..fca40238805 100644 --- a/doc/lispref/nonascii.texi +++ b/doc/lispref/nonascii.texi @@ -123,6 +123,45 @@ In other words, the value does not change for all byte positions that belong to the same character. @end defun +@cindex convert file byte to buffer position +@cindex convert buffer position to file byte + The following two functions are useful when a Lisp program needs to +map buffer positions to byte offsets in a file visited by the buffer. + +@defun bufferpos-to-filepos position &optional quality coding-system +This function is similar to @code{position-bytes}, but instead of byte +position in the current buffer it returns the offset from the +beginning of the current buffer's file of the byte that corresponds to +the given character @var{position} in the buffer. The conversion +requires to know how the text is encoded in the buffer's file; this is +what the @var{coding-system} argument is for, defaulting to the value +of @code{buffer-file-coding-system}. The optional argument +@var{quality} specifies how accurate the result should be; it should +be one of the following: + +@table @code +@item exact +The result must be accurate. The function may need to encode and +decode a large part of the buffer. +@item approximate +The value can be an approximation. The function may avoid expensive +processing and return an inexact result. +@item nil +If the exact result needs expensive processing, the function will +return @code{nil} rather than an approximation. This is the default +if the argument is omitted. +@end table +@end defun + +@defun filepos-to-bufferpos byte &optional quality coding-system +This function returns the buffer position corresponding to a file +position specified by @var{byte}, a zero-base byte offset from the +file's beginning. The function performs the conversion opposite to +what @code{bufferpos-to-filepos} does. Optional arguments +@var{quality} and @var{coding-system} have the same meaning and values +as for @code{bufferpos-to-filepos}. +@end defun + @defun multibyte-string-p string Return @code{t} if @var{string} is a multibyte string, @code{nil} otherwise. This function also returns @code{nil} if @var{string} is diff --git a/etc/NEWS b/etc/NEWS index 5a1adff0920..88d0604cedf 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1340,7 +1340,10 @@ parsing functions like `forward-sexp'. `prefix-command-preserve-state-hook' allow the definition of prefix commands other than the predefined `C-u'. ++++ ** New functions `filepos-to-bufferpos' and `bufferpos-to-filepos'. +These allow to convert between buffer positions and the corresponding +file byte offsets, given the file's encoding. ** The default value of `load-read-function' is now `read'. From 2e12e8d74855b953e07252c7b173f34f79808296 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 13 Jan 2016 20:19:00 +0200 Subject: [PATCH 20/30] Document the new deafault value of 'load-read-function' * doc/lispref/loading.texi (How Programs Do Loading): Document the change in the default value of 'load-read-function'. --- doc/lispref/loading.texi | 4 ++-- etc/NEWS | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi index cb5c7012c16..18e67f1abfe 100644 --- a/doc/lispref/loading.texi +++ b/doc/lispref/loading.texi @@ -202,8 +202,8 @@ This variable specifies an alternate expression-reading function for @code{load} and @code{eval-region} to use instead of @code{read}. The function should accept one argument, just as @code{read} does. -Normally, the variable's value is @code{nil}, which means those -functions should use @code{read}. +By default, this variable's value is @code{read}. @xref{Input +Functions}. Instead of using this variable, it is cleaner to use another, newer feature: to pass the function as the @var{read-function} argument to diff --git a/etc/NEWS b/etc/NEWS index 88d0604cedf..076835c3d20 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1345,7 +1345,9 @@ commands other than the predefined `C-u'. These allow to convert between buffer positions and the corresponding file byte offsets, given the file's encoding. ++++ ** The default value of `load-read-function' is now `read'. +Previously, the default value of `nil' implied using `read'. ** New hook `pre-redisplay-functions', a bit easier to use than pre-redisplay-function. From 3db8ce4fbd75b978d658df58810adf1deca04708 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 13 Jan 2016 20:29:36 +0200 Subject: [PATCH 21/30] Document 'pre-redisplay-functions' * doc/lispref/hooks.texi (Standard Hooks): * doc/lispref/display.texi (Forcing Redisplay): Document 'pre-redisplay-functions'. --- doc/lispref/display.texi | 18 +++++++++++++----- doc/lispref/hooks.texi | 24 ++++++++++++++---------- etc/NEWS | 4 +++- 3 files changed, 30 insertions(+), 16 deletions(-) diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 93b00e17dac..1ac0f05c7d4 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -95,11 +95,6 @@ redisplay proceeded to completion; it could have been preempted by newly arriving input. @end defun -@defvar pre-redisplay-function -A function run just before redisplay. It is called with one argument, -the set of windows to redisplay. -@end defvar - Although @code{redisplay} tries immediately to redisplay, it does not change how Emacs decides which parts of its frame(s) to redisplay. By contrast, the following function adds certain windows to the @@ -117,6 +112,19 @@ This function does not do a redisplay immediately; Emacs does that as it waits for input, or when the function @code{redisplay} is called. @end defun +@defvar pre-redisplay-function +A function run just before redisplay. It is called with one argument, +the set of windows to be redisplayed. The set can be @code{nil}, +meaning only the selected window, or @code{t}, meaning all the +windows. +@end defvar + +@defvar pre-redisplay-functions +This hook is run just before redisplay. It is called once in each +window that is about to be redisplayed, with @code{current-buffer} set +to the buffer displayed in that window. +@end defvar + @node Truncation @section Truncation @cindex line wrapping diff --git a/doc/lispref/hooks.texi b/doc/lispref/hooks.texi index b8f761de30e..1027aa0343f 100644 --- a/doc/lispref/hooks.texi +++ b/doc/lispref/hooks.texi @@ -180,16 +180,6 @@ Hook run when about to switch windows with a mouse command. @item mouse-position-function @xref{Mouse Position}. -@item post-command-hook -@itemx pre-command-hook -@xref{Command Overview}. - -@item post-gc-hook -@xref{Garbage Collection}. - -@item post-self-insert-hook -@xref{Keymaps and Minor Modes}. - @item prefix-command-echo-keystrokes-functions @vindex prefix-command-echo-keystrokes-functions An abnormal hook run by prefix commands (such as @kbd{C-u}) which @@ -206,6 +196,20 @@ the current prefix command state to the next command. For example, @kbd{C-u} needs to pass the state to the next command when the user types @kbd{C-u -} or follows @kbd{C-u} with a digit. +@item pre-redisplay-functions +Hook run in each window just before redisplaying it. @xref{Forcing +Redisplay}. + +@item post-command-hook +@itemx pre-command-hook +@xref{Command Overview}. + +@item post-gc-hook +@xref{Garbage Collection}. + +@item post-self-insert-hook +@xref{Keymaps and Minor Modes}. + @ignore @item prog-mode-hook @itemx special-mode-hook diff --git a/etc/NEWS b/etc/NEWS index 076835c3d20..c51136faf63 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1349,7 +1349,9 @@ file byte offsets, given the file's encoding. ** The default value of `load-read-function' is now `read'. Previously, the default value of `nil' implied using `read'. -** New hook `pre-redisplay-functions', a bit easier to use than pre-redisplay-function. ++++ +** New hook `pre-redisplay-functions'. +It is a bit easier to use than `pre-redisplay-function'. ** The second arg of `looking-back' should always be provided explicitly. From 53fb7e6e5da541e0b5f6b203f567cb5900185e21 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 13 Jan 2016 20:36:11 +0200 Subject: [PATCH 22/30] Updater documentation of 'looking-back' * doc/lispref/searching.texi (Regexp Search): Update documentation of 'looking-back'. Fix markup. --- doc/lispref/searching.texi | 15 ++++++++------- etc/NEWS | 2 ++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi index 5ff7ef1cf66..1243d720bc3 100644 --- a/doc/lispref/searching.texi +++ b/doc/lispref/searching.texi @@ -1151,16 +1151,17 @@ comes back" twice. @end example @end defun -@defun looking-back regexp &optional limit greedy +@defun looking-back regexp limit &optional greedy This function returns @code{t} if @var{regexp} matches the text immediately before point (i.e., ending at point), and @code{nil} otherwise. Because regular expression matching works only going forward, this is implemented by searching backwards from point for a match that ends at point. That can be quite slow if it has to search a long distance. -You can bound the time required by specifying @var{limit}, which says -not to search before @var{limit}. In this case, the match that is -found must begin at or after @var{limit}. Here's an example: +You can bound the time required by specifying a non-@code{nil} value +for @var{limit}, which says not to search before @var{limit}. In this +case, the match that is found must begin at or after @var{limit}. +Here's an example: @example @group @@ -1178,9 +1179,9 @@ comes back" twice. If @var{greedy} is non-@code{nil}, this function extends the match backwards as far as possible, stopping when a single additional -previous character cannot be part of a match for regexp. When the -match is extended, its starting position is allowed to occur before -@var{limit}. +previous character cannot be part of a match for @var{regexp}. When +the match is extended, its starting position is allowed to occur +before @var{limit}. @c http://debbugs.gnu.org/5689 As a general recommendation, try to avoid using @code{looking-back} diff --git a/etc/NEWS b/etc/NEWS index c51136faf63..7cea0c88da1 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1353,7 +1353,9 @@ Previously, the default value of `nil' implied using `read'. ** New hook `pre-redisplay-functions'. It is a bit easier to use than `pre-redisplay-function'. ++++ ** The second arg of `looking-back' should always be provided explicitly. +Previously, it was an optional argument, now it's mandatory. ** Obsolete text properties `intangible', `point-entered', and `point-left'. Replaced by properties `cursor-intangible' and `cursor-sensor-functions', From 30c24e49cb82a817a123405df92210cbab12c459 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 13 Jan 2016 21:14:22 +0200 Subject: [PATCH 23/30] Document obsoletion of 'intangible' and 'point-entered/left' * doc/lispref/text.texi (Special Properties): Document the new properties 'cursor-intangible' and 'cursor-sensor-functions'. Document the obsolete status of 'intangible', 'pointer-left', and 'point-entered' properties, and of 'inhibit-point-motion-hooks'. * doc/lispref/display.texi (Overlay Properties): Document that 'intangible' overlay property is obsolete. * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor-mode): Doc fix. --- doc/lispref/display.texi | 3 ++- doc/lispref/text.texi | 40 +++++++++++++++++++++++++------- etc/NEWS | 8 +++++-- lisp/emacs-lisp/cursor-sensor.el | 4 ++-- 4 files changed, 42 insertions(+), 13 deletions(-) diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 1ac0f05c7d4..d77059916fc 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -1721,7 +1721,8 @@ invisible, which means that it does not appear on the screen. @item intangible @kindex intangible @r{(overlay property)} The @code{intangible} property on an overlay works just like the -@code{intangible} text property. @xref{Special Properties}, for details. +@code{intangible} text property. It is obsolete. @xref{Special +Properties}, for details. @item isearch-open-invisible This property tells incremental search how to make an invisible overlay diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 5d9f192b111..41991c9482c 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -3380,14 +3380,22 @@ If consecutive characters have unequal non-@code{nil} @code{intangible} properties, they belong to separate groups; each group is separately treated as described above. -When the variable @code{inhibit-point-motion-hooks} is non-@code{nil}, -the @code{intangible} property is ignored. +When the variable @code{inhibit-point-motion-hooks} is non-@code{nil} +(as it is by default), the @code{intangible} property is ignored. Beware: this property operates at a very low level, and affects a lot of code in unexpected ways. So use it with extreme caution. A common misuse is to put an intangible property on invisible text, which is actually unnecessary since the command loop will move point outside of the invisible text at the end of -each command anyway. @xref{Adjusting Point}. +each command anyway. @xref{Adjusting Point}. For these reasons, this +property is obsolete; use the @code{cursor-intangible} property instead. + +@item cursor-intangible +@kindex cursor-intangible @r{(text property)} +@findex cursor-intangible-mode +When the minor mode @code{cursor-intangible-mode} is turned on, point +is moved away of any position that has a non-@code{nil} +@code{cursor-intangible} property, just before redisplay happens. @item field @kindex field @r{(text property)} @@ -3550,9 +3558,23 @@ It is possible to use @code{char-after} to examine characters at various buffer positions without moving point to those positions. Only an actual change in the value of point runs these hook functions. -The variable @code{inhibit-point-motion-hooks} can inhibit running the -@code{point-left} and @code{point-entered} hooks, see @ref{Inhibit -point motion hooks}. +The variable @code{inhibit-point-motion-hooks} by default inhibits +running the @code{point-left} and @code{point-entered} hooks, see +@ref{Inhibit point motion hooks}. + +These properties are obsolete; please use +@code{cursor-sensor-functions} instead. + +@item cursor-sensor-functions +@kindex cursor-sensor-functions @r{(text property)} +@findex cursor-sensor-mode +This special property records a list of functions that react to cursor +motion. Each function in the list is called, just before redisplay, +with 3 arguments: the affected window, the previous known position of +the cursor, and one of the symbols @code{entered} or @code{left}, +depending on whether the cursor is entering the text that has this +property or leaving it. The functions are called only when the minor +mode @code{cursor-sensor-mode} is turned on. @item composition @kindex composition @r{(text property)} @@ -3564,10 +3586,12 @@ directly by, for instance, @code{put-text-property}. @end table @defvar inhibit-point-motion-hooks -@anchor{Inhibit point motion hooks} When this variable is +@anchor{Inhibit point motion hooks} When this obsolete variable is non-@code{nil}, @code{point-left} and @code{point-entered} hooks are not run, and the @code{intangible} property has no effect. Do not set -this variable globally; bind it with @code{let}. +this variable globally; bind it with @code{let}. Since the affected +properties are obsolete, this variable's default value is @code{t}, to +effectively disable them. @end defvar @defvar show-help-function diff --git a/etc/NEWS b/etc/NEWS index 7cea0c88da1..525fa5e4cd4 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1357,12 +1357,16 @@ It is a bit easier to use than `pre-redisplay-function'. ** The second arg of `looking-back' should always be provided explicitly. Previously, it was an optional argument, now it's mandatory. -** Obsolete text properties `intangible', `point-entered', and `point-left'. ++++ +** Text properties `intangible', `point-entered', and `point-left' are obsolete. Replaced by properties `cursor-intangible' and `cursor-sensor-functions', implemented by the new `cursor-intangible-mode' and `cursor-sensor-mode' minor modes. -** `inhibit-point-motion-hooks' now defaults to t and is obsolete. ++++ +** `inhibit-point-motion-hooks' now defaults to `t' and is obsolete. +Use the new minor modes `cursor-intangible-mode' and +`cursor-sensor-mode' instead. +++ ** New process type `pipe', which can be used in combination with the diff --git a/lisp/emacs-lisp/cursor-sensor.el b/lisp/emacs-lisp/cursor-sensor.el index 70c4458d300..ac063d4896a 100644 --- a/lisp/emacs-lisp/cursor-sensor.el +++ b/lisp/emacs-lisp/cursor-sensor.el @@ -167,8 +167,8 @@ This property should hold a list of functions which react to the motion of the cursor. They're called with three arguments (WINDOW OLDPOS DIR) where WINDOW is the affected window, OLDPOS is the last known position of -the cursor and DIR can be `left' or `entered' depending on whether the cursor is -entering the area covered by the text-property property or leaving it." +the cursor and DIR can be `entered' or `left' depending on whether the cursor +is entering the area covered by the text-property property or leaving it." nil nil nil (if cursor-sensor-mode (add-hook 'pre-redisplay-functions #'cursor-sensor--detect From 78c8718fd3a7bc08a2307f8751b3920d3fc9b763 Mon Sep 17 00:00:00 2001 From: Dmitry Gutov Date: Thu, 14 Jan 2016 03:38:57 +0300 Subject: [PATCH 24/30] Un-obsolete tags-loop-continue * lisp/progmodes/etags.el (tags-loop-continue): Un-obsolete. http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00682.html --- etc/NEWS | 9 +++++++-- lisp/progmodes/etags.el | 1 - 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 525fa5e4cd4..ef72d457ca7 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -954,7 +954,8 @@ of its back-ends. The command `xref-find-definitions' replaces `find-tag' and provides an interface to pick one definition among several. `tags-loop-continue' is now unbound. `xref-pop-marker-stack' replaces -`pop-tag-mark', but has a keybinding (`M-,'), unlike `pop-tag-mark'. +`pop-tag-mark', but has a keybinding (`M-,') different from the one +`pop-tag-mark' used. `xref-find-definitions-other-window' replaces `find-tag-other-window'. `xref-find-definitions-other-frame' replaces `find-tag-other-frame'. @@ -962,7 +963,11 @@ an interface to pick one definition among several. As a result of this, the following commands are now obsolete: `find-tag-other-window', `find-tag-other-frame', `find-tag-regexp', -`tags-apropos', and `tags-loop-continue'. +`tags-apropos'. + +`tags-loop-continue' is not obsolete because it's still useful in +`tags-search' and `tags-query-replace', for which there are no direct +replacements yet. +++ *** New variables diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 2db7220de5c..271033b15f8 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -1794,7 +1794,6 @@ Two variables control the processing we do on each file: the value of interesting (it returns non-nil if so) and `tags-loop-operate' is a form to evaluate to operate on an interesting file. If the latter evaluates to nil, we exit; otherwise we scan the next file." - (declare (obsolete "use `xref-find-definitions' interface instead." "25.1")) (interactive) (let (new ;; Non-nil means we have finished one file From a70b0642829576e5fba9a1369db99517cf055600 Mon Sep 17 00:00:00 2001 From: Mark Oteiza Date: Wed, 13 Jan 2016 20:08:05 -0500 Subject: [PATCH 25/30] * lisp/thingatpt.el (thing-at-point-uri-schemes): Add "magnet:" --- lisp/thingatpt.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el index 9794d002149..1686c02ada3 100644 --- a/lisp/thingatpt.el +++ b/lisp/thingatpt.el @@ -280,8 +280,8 @@ If nil, construct the regexp from `thing-at-point-uri-schemes'.") "finger://" "fish://" "ftp://" "geo:" "git://" "go:" "gopher://" "h323:" "http://" "https://" "im:" "imap://" "info:" "ipp:" "irc://" "irc6://" "ircs://" "iris.beep:" "jar:" "ldap://" - "ldaps://" "mailto:" "mid:" "mtqp://" "mupdate://" "news:" - "nfs://" "nntp://" "opaquelocktoken:" "pop://" "pres:" + "ldaps://" "magnet:" "mailto:" "mid:" "mtqp://" "mupdate://" + "news:" "nfs://" "nntp://" "opaquelocktoken:" "pop://" "pres:" "resource://" "rmi://" "rsync://" "rtsp://" "rtspu://" "service:" "sftp://" "sip:" "sips:" "smb://" "sms:" "snmp://" "soap.beep://" "soap.beeps://" "ssh://" "svn://" "svn+ssh://" "tag:" "tel:" From 058f8a8d55a6b20c68ee9728c537bb8ce50dfe81 Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Thu, 14 Jan 2016 09:11:14 +0100 Subject: [PATCH 26/30] check-maybe shall run only default tests * test/automated/Makefile.in (check, check-expensive): Depend on mostlyclean. (check-maybe): Re-run only default tests. (check-doit): Use code of check-maybe. (mostlyclean): Move *.log files away. --- test/automated/Makefile.in | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/test/automated/Makefile.in b/test/automated/Makefile.in index 48920efe12e..152e601270e 100644 --- a/test/automated/Makefile.in +++ b/test/automated/Makefile.in @@ -87,9 +87,9 @@ WRITE_LOG = > $@ 2>&1 || { stat=ERROR; cat $@; }; echo $$stat: $@ ## to change this; bug#17848 - if that gets done, this can be simplified). ## ## Beware: it approximates 'no-byte-compile', so watch out for false-positives! -SELECTOR_DEFAULT=(quote (not (tag :expensive-test))) -SELECTOR_EXPENSIVE=nil -SELECTOR= +SELECTOR_DEFAULT = (quote (not (tag :expensive-test))) +SELECTOR_EXPENSIVE = nil +SELECTOR = %.log: ${srcdir}/%.el @if grep '^;.*no-byte-compile: t' $< > /dev/null; then \ loadfile=$<; \ @@ -121,29 +121,31 @@ endef $(foreach test,${TESTS},$(eval $(call test_template,${test}))) -## Rerun default tests. -check: +## Rerun all default tests. +check: mostlyclean @${MAKE} check-doit SELECTOR="${SELECTOR_DEFAULT}" -## Rerun also expensive tests. +## Rerun all default and expensive tests. .PHONY: check-expensive -check-expensive: +check-expensive: mostlyclean @${MAKE} check-doit SELECTOR="${SELECTOR_EXPENSIVE}" -## Re-run all the tests every time. -.PHONY: check-doit -check-doit: - -@for f in *.log; do test ! -f $$f || mv $$f $$f~; done - @${MAKE} check-maybe - -## Only re-run tests whose .log is older than the test. +## Only re-run default tests whose .log is older than the test. .PHONY: check-maybe -check-maybe: ${LOGFILES} +check-maybe: + @${MAKE} check-doit SELECTOR="${SELECTOR_DEFAULT}" + +## Run the tests. +.PHONY: check-doit +check-doit: ${LOGFILES} $(emacs) -l ert -f ert-summarize-tests-batch-and-exit $^ .PHONY: mostlyclean clean bootstrap-clean distclean maintainer-clean -clean mostlyclean: +mostlyclean: + -@for f in *.log; do test ! -f $$f || mv $$f $$f~; done + +clean: -rm -f *.log *.log~ bootstrap-clean: clean From a53fc894808a8244baff4a22047b832dbf5ea311 Mon Sep 17 00:00:00 2001 From: Katsumi Yamaoka Date: Thu, 14 Jan 2016 11:26:13 +0000 Subject: [PATCH 27/30] * lisp/gnus/nntp.el (nntp-request-newgroups): Simplify --- lisp/gnus/nntp.el | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el index 0006ef9f5cf..f56b04568c8 100644 --- a/lisp/gnus/nntp.el +++ b/lisp/gnus/nntp.el @@ -1115,24 +1115,14 @@ command whose response triggered the error." (deffoo nntp-request-newgroups (date &optional server) (nntp-with-open-group - nil server - (with-current-buffer nntp-server-buffer - (let* ((time (date-to-time date)) - (ls (- (cadr time) (nth 8 (decode-time time))))) - (cond ((< ls 0) - (setcar time (1- (car time))) - (setcar (cdr time) (+ ls 65536))) - ((>= ls 65536) - (setcar time (1+ (car time))) - (setcar (cdr time) (- ls 65536))) - (t - (setcar (cdr time) ls))) - (prog1 - (nntp-send-command - "^\\.\r?\n" "NEWGROUPS" - (format-time-string "%y%m%d %H%M%S" time t) - "GMT") - (nntp-decode-text)))))) + nil server + (with-current-buffer nntp-server-buffer + (prog1 + (nntp-send-command + "^\\.\r?\n" "NEWGROUPS" + (format-time-string "%y%m%d %H%M%S" (date-to-time date) t) + "GMT") + (nntp-decode-text))))) (deffoo nntp-request-post (&optional server) (nntp-with-open-group From d5f1db83ecfffbbb52b88b382cf5d480e8a0ef32 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 14 Jan 2016 12:43:22 -0500 Subject: [PATCH 28/30] ; * lisp/time-stamp.el: Remove active time-stamp comment. It was cute, but it's not needed as an example, and causes spurious diffs/conflicts for those with time-stamping enabled. --- lisp/time-stamp.el | 2 -- 1 file changed, 2 deletions(-) diff --git a/lisp/time-stamp.el b/lisp/time-stamp.el index dffd59010db..d58942c3a2b 100644 --- a/lisp/time-stamp.el +++ b/lisp/time-stamp.el @@ -5,7 +5,6 @@ ;; This file is part of GNU Emacs. -;; Maintainer's Time-stamp: <2006-04-12 20:30:56 rms> ;; Maintainer: Stephen Gildea ;; Keywords: tools @@ -27,7 +26,6 @@ ;; A template in a file can be updated with a new time stamp when ;; you save the file. For example: ;; static char *ts = "sdmain.c Time-stamp: <2001-08-13 10:20:51 gildea>"; -;; See the top of `time-stamp.el' for another example. ;; To use time-stamping, add this line to your init file: ;; (add-hook 'before-save-hook 'time-stamp) From dadb841a06aa1ffd6d17c04ef83140dbd1ad7307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simen=20Heggest=C3=B8yl?= Date: Thu, 14 Jan 2016 19:24:03 +0100 Subject: [PATCH 29/30] Disallow parenthesis in non-pseudo CSS selectors * lisp/textmodes/css-mode.el (css--font-lock-keywords): Disallow parenthesis in selectors except for in the function notation that might appear right after a pseudo-class. * test/indent/scss-mode.scss: Add a test for it. --- lisp/textmodes/css-mode.el | 10 +++++----- test/indent/scss-mode.scss | 10 ++++++++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 48c24844a68..d402fb19955 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -257,13 +257,13 @@ (if (not sassy) ;; We don't allow / as first char, so as not to ;; take a comment as the beginning of a selector. - "[^@/:{} \t\n][^:{}]+" + "[^@/:{}() \t\n][^:{}()]+" ;; Same as for non-sassy except we do want to allow { and } ;; chars in selectors in the case of #{$foo} ;; variable interpolation! (concat "\\(?:" scss--hash-re - "\\|[^@/:{} \t\n#]\\)" - "[^:{}#]*\\(?:" scss--hash-re "[^:{}#]*\\)*")) + "\\|[^@/:{}() \t\n#]\\)" + "[^:{}()#]*\\(?:" scss--hash-re "[^:{}()#]*\\)*")) ;; Even though pseudo-elements should be prefixed by ::, a ;; single colon is accepted for backward compatibility. "\\(?:\\(:" (regexp-opt (append css-pseudo-class-ids @@ -271,8 +271,8 @@ "\\|\\::" (regexp-opt css-pseudo-element-ids t) "\\)" "\\(?:([^)]+)\\)?" (if (not sassy) - "[^:{}\n]*" - (concat "[^:{}\n#]*\\(?:" scss--hash-re "[^:{}\n#]*\\)*")) + "[^:{}()\n]*" + (concat "[^:{}()\n#]*\\(?:" scss--hash-re "[^:{}()\n#]*\\)*")) "\\)*" "\\)\\(?:\n[ \t]*\\)*{") (1 'css-selector keep)) diff --git a/test/indent/scss-mode.scss b/test/indent/scss-mode.scss index 7a29929efca..02a4a98a8c5 100644 --- a/test/indent/scss-mode.scss +++ b/test/indent/scss-mode.scss @@ -55,3 +55,13 @@ article[role="main"] { } .box { @include border-radius(10px); } + +// bug:21230 +$list: ( + ('a', #000000, #fff) + ('b', #000000, #fff) + ('c', #000000, #fff) + ('d', #000000, #fff) + ('e', #000000, #fff) + ('f', #000000, #fff) +); From 549a765efeca2748e68a5c6ce6c9238784e82535 Mon Sep 17 00:00:00 2001 From: Phillip Lord Date: Fri, 15 Jan 2016 22:11:39 +0000 Subject: [PATCH 30/30] Enable test selector from command line * test/automated/Makefile.in: Change variable manipulation to avoid over-writing selector. --- CONTRIBUTE | 4 +++- test/automated/Makefile.in | 14 ++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTE b/CONTRIBUTE index 9c53fe2cccc..3ccaff3393f 100644 --- a/CONTRIBUTE +++ b/CONTRIBUTE @@ -263,7 +263,9 @@ top-level directory. Most tests are in the directory Tests which are tagged ":expensive-test" are enabled additionally, if you run "make check-expensive" from the top-level directory. "make " as mentioned above incorporates expensive tests for -.el(c). +.el(c). You can also define any ert selector on the command +line. So "make check SELECTOR=nil" is equivalent to "make +check-expensive". ** Understanding Emacs Internals. diff --git a/test/automated/Makefile.in b/test/automated/Makefile.in index 152e601270e..2534a65a9a3 100644 --- a/test/automated/Makefile.in +++ b/test/automated/Makefile.in @@ -89,7 +89,13 @@ WRITE_LOG = > $@ 2>&1 || { stat=ERROR; cat $@; }; echo $$stat: $@ ## Beware: it approximates 'no-byte-compile', so watch out for false-positives! SELECTOR_DEFAULT = (quote (not (tag :expensive-test))) SELECTOR_EXPENSIVE = nil -SELECTOR = +ifndef SELECTOR +SELECTOR_ACTUAL=$(SELECTOR_DEFAULT) +else +SELECTOR_ACTUAL=$(SELECTOR) +endif + + %.log: ${srcdir}/%.el @if grep '^;.*no-byte-compile: t' $< > /dev/null; then \ loadfile=$<; \ @@ -100,7 +106,7 @@ SELECTOR = echo Testing $$loadfile; \ stat=OK ; \ $(emacs) -l ert -l $$loadfile \ - --eval "(ert-run-tests-batch-and-exit ${SELECTOR})" ${WRITE_LOG} + --eval "(ert-run-tests-batch-and-exit ${SELECTOR_ACTUAL})" ${WRITE_LOG} ELFILES = $(sort $(wildcard ${srcdir}/*.el)) LOGFILES = $(patsubst %.el,%.log,$(notdir ${ELFILES})) @@ -123,7 +129,7 @@ $(foreach test,${TESTS},$(eval $(call test_template,${test}))) ## Rerun all default tests. check: mostlyclean - @${MAKE} check-doit SELECTOR="${SELECTOR_DEFAULT}" + @${MAKE} check-doit SELECTOR="${SELECTOR_ACTUAL}" ## Rerun all default and expensive tests. .PHONY: check-expensive @@ -133,7 +139,7 @@ check-expensive: mostlyclean ## Only re-run default tests whose .log is older than the test. .PHONY: check-maybe check-maybe: - @${MAKE} check-doit SELECTOR="${SELECTOR_DEFAULT}" + @${MAKE} check-doit SELECTOR="${SELECTOR_ACTUAL}" ## Run the tests. .PHONY: check-doit