emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master aa75424 5/6: Merge from origin/emacs-26


From: Paul Eggert
Subject: [Emacs-diffs] master aa75424 5/6: Merge from origin/emacs-26
Date: Fri, 3 Nov 2017 00:09:13 -0400 (EDT)

branch: master
commit aa7542467238b06ed056054965ba444595b85453
Merge: 5fcfdf4 a87ce5c
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Merge from origin/emacs-26
    
    a87ce5c4b4 * src/lisp.h (GCALIGNED): Clarify comment (Bug#29040).
    8a31e9993f ; etc/NEWS: Add cpp-message-min-time-interval.  (Bug#28961)
    ac0bb9a192 Improve the doc of eshell-cmpl-* custom variables (Bug#25069)
    36400c7dc9 Fix mouse-scrollbar offset on GNUstep and old macOS (bug#2...
    04bc1410c2 Merge from Gnulib
    6b08ad5263 Fix alignment portability problems
    a9f8706fa8 Fix completion of colon after CSS property (Bug#29056)
    9031dec527 ; * src/alloc.c (sweep_symbols): Fix last change.
    fdd3dcfa4e * src/alloc.c (sweep_symbols): Tweak last change
    27964af438 In frame parameters documentation mention desktop saving/r...
    1bd4e7c243 ; Fix typo in ChangeLog.3
    4182a60d31 Don't have frameset save the 'client' parameter (Bug#29067)
    9d31a97092 ; Spelling fixes
    460a25f212 Handle generic variables in cl-defgeneric Edebug spec
    dc0a25c2f9 Give a more sensible message if file-attributes fails (Bug...
    8453423c7c Avoid wrong value from file-attributes on Linux kernel bef...
    70621e2571 Fix customization of debugger-print-function (Bug#29077)
    
    # Conflicts:
    #   etc/NEWS
---
 ChangeLog.2                              |  6 ++--
 ChangeLog.3                              | 50 ++++++++++++++---------------
 admin/nt/dist-build/README-scripts       |  8 ++---
 admin/nt/dist-build/build-dep-zips.py    |  4 +--
 build-aux/config.guess                   | 20 ++++++------
 build-aux/config.sub                     | 10 +++---
 doc/lispref/frames.texi                  |  7 +++++
 lib-src/make-docfile.c                   |  2 +-
 lib/timespec.h                           | 22 ++++++++-----
 lib/unistd.in.h                          |  5 ++-
 lisp/ChangeLog.17                        |  2 +-
 lisp/ChangeLog.9                         |  2 +-
 lisp/emacs-lisp/cl-generic.el            |  3 +-
 lisp/emacs-lisp/debug.el                 |  5 +--
 lisp/eshell/em-cmpl.el                   | 54 ++++++++++++++------------------
 lisp/frameset.el                         |  4 +++
 lisp/server.el                           |  6 ++--
 lisp/textmodes/css-mode.el               |  1 +
 lisp/url/url-tramp.el                    |  4 +--
 src/ChangeLog.13                         |  4 +--
 src/alloc.c                              | 20 +++++++++---
 src/buffer.c                             |  4 +--
 src/dired.c                              |  9 +++++-
 src/lisp.h                               | 26 ++++++---------
 src/nsterm.m                             | 21 +++++++++++--
 src/thread.c                             |  4 +--
 test/manual/etags/html-src/software.html |  4 +--
 27 files changed, 174 insertions(+), 133 deletions(-)

diff --git a/ChangeLog.2 b/ChangeLog.2
index a412d3b..cab30d8 100644
--- a/ChangeLog.2
+++ b/ChangeLog.2
@@ -7523,11 +7523,11 @@
 
 2016-02-23  Jan Tatarik  <address@hidden>
 
-       Don't bug out on localised dates in gnus-icalendar
+       Don't bug out on localized dates in gnus-icalendar
 
        * lisp/gnus/gnus-icalendar.el
        (gnus-icalendar-event:org-timestamp): Don't bug out on
-       localised dates.
+       localized dates.
 
 2016-02-23  Drew Adams  <address@hidden>
 
@@ -26654,7 +26654,7 @@
        Introduce new macros to cover Emacs's new names in cl-lib.el
        This also eliminates `mapcan' warnings in XEmacs.
        * lisp/progmodes/cc-defs.el (c--mapcan-status): New variable to
-       characterise [X]Emacs versions.
+       characterize [X]Emacs versions.
        (top-level): Require either 'cl or 'cl-lib, depending on
        c--mapcan-status.
        Change this back to cc-external-require from an eval-when-compile
diff --git a/ChangeLog.3 b/ChangeLog.3
index 2d7f3bb..940379c 100644
--- a/ChangeLog.3
+++ b/ChangeLog.3
@@ -4336,8 +4336,8 @@
 
        * lisp/progmodes/cc-mode.el (c-parse-quotes-before-change)
        (c-parse-quotes-after-change): Rewrite the functions, simplifying
-       considerably, and removing unnecessary optimisations.  Invalidate two 
caches
-       after manipulating text properties.
+       considerably, and removing unnecessary optimizations.
+       Invalidate two caches after manipulating text properties.
 
 2017-09-03  Alan Mackenzie  <address@hidden>
 
@@ -7462,7 +7462,7 @@
        The error happened when there was a comma inside template delimiters.
 
        * lisp/progmodes/cc-fonts.el (c-get-fontification-context): In "for"
-       statements, recognise template delimiters containing "," and "&".
+       statements, recognize template delimiters containing "," and "&".
 
 2017-07-27  Michael Albinus  <address@hidden>
 
@@ -17907,7 +17907,7 @@
 
        * src/casefiddle.c (struct casing_context, prepare_casing_context): Add
        titlecase_char_table member.  It’s set to the ‘titlecase’ Unicode
-       property table if capitalisation has been requested.
+       property table if capitalization has been requested.
        (case_character): Make use of the titlecase_char_table to title-case
        initial characters when capitalising.
 
@@ -17923,7 +17923,7 @@
        the logic easier.  This commit introduces no functionality changes.
 
        * src/casefiddle.c (struct casing_context, prepare_casing_context): New
-       sturcture for saving casing context and function to initialise it.
+       structure for saving casing context and function to initialize it.
        (case_character): New function which cases character base on provided
        context.
        (do_casify_integer, do_casify_multibyte_string,
@@ -21210,7 +21210,7 @@
 
 2017-02-24  Stefan Monnier  <address@hidden>
 
-       Minor redisplay optimisations
+       Minor redisplay optimizations
 
        * src/frame.c (Ficonify_frame): No need to redisplay everything.
 
@@ -24018,9 +24018,9 @@
 
 2017-01-26  Lars Ingebrigtsen  <address@hidden>
 
-       (message-do-fcc): Modernise the code slightly.
+       (message-do-fcc): Modernize the code slightly.
 
-       * lisp/gnus/message.el (message-do-fcc): Modernise the code slightly.
+       * lisp/gnus/message.el (message-do-fcc): Modernize the code slightly.
 
 2017-01-26  Lars Ingebrigtsen  <address@hidden>
 
@@ -26014,7 +26014,7 @@
 
 2016-12-30  Alan Mackenzie  <address@hidden>
 
-       CC Mode: Fix the fontification of a spuriously recognised enum member.
+       CC Mode: Fix the fontification of a spuriously recognized enum member.
 
        The "enum" was in an argument list, but triggered the fontification of a
        following identifier in the function block as though it were in an enum
@@ -26130,7 +26130,7 @@
        Partially correct fontification of "(b*3)", and the like, in C++ Mode
 
        This problem is caused by the fundamental ambiguity in C++ between
-       argument declarations and initialisation clauses.
+       argument declarations and initialization clauses.
 
        * lisp/progmodes/cc-fonts.el (c-font-lock-declarations): If we have an 
open
        paren preceded by an arithmetic operator, we give this the context nil, 
not
@@ -27358,7 +27358,7 @@
 
 2016-12-13  Reuben Thomas  <address@hidden>
 
-       Generalise over-specific documentation
+       Generalize over-specific documentation
 
        * lisp/textmodes/ispell.el (ispell-personal-dictionary): Rather than
        document precise personal wordlist filenames for only two supported
@@ -32608,7 +32608,7 @@
 
        Fix compatibility with macOS 10.12 pmset (bug#24537)
 
-       * lisp/battery.el (battery-pmset): Recognise and ignore battery id if
+       * lisp/battery.el (battery-pmset): Recognize and ignore battery id if
        present in output.
 
 2016-09-30  Paul Eggert  <address@hidden>
@@ -33284,7 +33284,7 @@
 
 2016-09-12  Michal Nazarewicz  <address@hidden>
 
-       Fix compiler thinking width and height may be unitialised in frame.c
+       Fix compiler thinking width and height may be unitialized in frame.c
 
        This fixes the following warning:
 
@@ -33300,7 +33300,7 @@
 
 2016-09-12  Michal Nazarewicz  <address@hidden>
 
-       Fix compiler thinking tmpdir may be unitialised in emacsclient
+       Fix compiler thinking tmpdir may be unitialized in emacsclient
 
        This fixes the following warning:
 
@@ -34473,7 +34473,7 @@
        template declaration.
        (c-inside-bracelist-p): Call c-looking-at-or-maybe-in-bracelist in 
place of
        much inline code.
-       (c-looking-at-inexpr-block): Amend so that it won't wrongly recognise an
+       (c-looking-at-inexpr-block): Amend so that it won't wrongly recognize an
        initialization starting "({" as an in-expression block, by checking for
        semicolons, as opposed to commas, separating elements inside it.
        (c-guess-continued-construct): (CASE B-2): Recognize a brace-list-open 
by
@@ -35939,7 +35939,7 @@
 
        * doc/misc/ses.texi (Printer functions): Split the node into 5
        sub-nodes + add some extra documentation.
-       (Various kinds of printer functions): Make an itemisation to
+       (Various kinds of printer functions): Make an itemization to
        disintguish better the 3 types of printers, give an example of
        lambda printer definition.
        (Standard printer functions): Add documentation for ses-prin1
@@ -36049,7 +36049,7 @@
 
        Fix ‘[[:cc:]]*literal’ regex failing to match ‘literal’ (bug#24020)
 
-       The regex engine tries to optimise Kleene star by avoiding backtracking
+       The regex engine tries to optimize Kleene star by avoiding backtracking
        when it can detect that star’s operand cannot match what follows it in
        the pattern.
 
@@ -36063,7 +36063,7 @@
        engine knows whatever would be put back into the string cannot possibly
        match literal digit one so no backtracking will be attempted.
 
-       In the regexes of the form ‘[[:CC:]]*X’, the optimisation can be applied
+       In the regexes of the form ‘[[:CC:]]*X’, the optimization can be applied
        if the character class CC does not match character X.  In the above
        example, this holds because digit one is not in alpha character class.
 
@@ -36072,7 +36072,7 @@
        that character classes do not match multibyte characters.  For example,
        it would incorrectly conclude that [[:alpha:]] doesn’t match ‘ż’.
 
-       This, in turn, led to the aforementioned Kleene star optimisation being
+       This, in turn, led to the aforementioned Kleene star optimization being
        incorrectly applied in patterns such as ‘[[:graph:]]*☠’ (which should
        match ‘☠’ but doesn’t as can be tested by executing
            (string-match-p "[[:graph:]]*☠" "☠")
@@ -44436,7 +44436,7 @@
        bd58c13 Improve documentation of focus-related hooks
        00a4720 Further improve doc string of 'disable-point-adjustment'
        c582def Further adaptions in file-notify-tests.el for w32notify
-       a1585e1 Don't bug out on localised dates in gnus-icalendar
+       a1585e1 Don't bug out on localized dates in gnus-icalendar
 
 2016-03-03  John Wiegley  <address@hidden>
 
@@ -44957,10 +44957,10 @@
 
 2016-02-25  Jan Tatarik  <address@hidden>
 
-       Don't use (localised) week days in dates
+       Don't use (localized) week days in dates
 
        * lisp/gnus/gnus-icalendar.el
-       (gnus-icalendar-event:org-timestamp): Don't use (localised)
+       (gnus-icalendar-event:org-timestamp): Don't use (localized)
        week days in the dates, because that messes up things later.
 
 2016-02-25  Thierry Volpiatto  <address@hidden>
@@ -47224,7 +47224,7 @@
 
 2016-02-08  Michal Nazarewicz  <address@hidden>
 
-       Optimise ‘point in message header’ check
+       Optimize ‘point in message header’ check
 
        * lisp/gnus/message.el (message-point-in-header-p): Replace two unbound
        regular expression matches with a single bound string match thus
@@ -48169,7 +48169,7 @@
        * src/gnutls.c (Fgnutls_mark_process): New function.
 
        * src/process.c (send_process): Don't write to GnuTLS sockets that
-       haven't been initialised yed.
+       haven't been initialized yed.
 
        * src/process.h: New slot gnutls_wait_p.
 
@@ -48668,7 +48668,7 @@
        that as the same name can be used for different locations in different
        SES sheets ; 2) use `local-variable-if-set-p' rather than `boundp' and
        `local-variable-p' to check if cell name is already in use in this
-       sheet or needs initialisation.
+       sheet or needs initialization.
        (ses-relocate-all): Cell value relocation : 1) like for name
        relocation use the `ses-cell' property rather than comparing actual
        name to corresponding standard name. 2) Correct bug introduced in
diff --git a/admin/nt/dist-build/README-scripts 
b/admin/nt/dist-build/README-scripts
index a20099e..1c62a86 100644
--- a/admin/nt/dist-build/README-scripts
+++ b/admin/nt/dist-build/README-scripts
@@ -3,19 +3,19 @@ Distribution Build Scripts for Windows
 
 The scripts are used to build the binary distribution zip files for windows.
 
-File System Organisation
+File System Organization
 ------------------------
 
 
-They are relatively strict about the file system organisation. In
+They are relatively strict about the file system organization. In
 general, they should work across several more than just the version of
 Emacs they come with, as the dependencies of Emacs change relatively slowly.
 
-The file system needs to be organised like so:
+The file system needs to be organized like so:
 
 ~/emacs-build/git
 
-Contains a checkout of the Emacs git repository, organised according
+Contains a checkout of the Emacs git repository, organized according
 to branches, with git worktree
 
 ~/emacs-build/git/emacs-$branch
diff --git a/admin/nt/dist-build/build-dep-zips.py 
b/admin/nt/dist-build/build-dep-zips.py
index 33bc4b5..9573bf3 100755
--- a/admin/nt/dist-build/build-dep-zips.py
+++ b/admin/nt/dist-build/build-dep-zips.py
@@ -61,7 +61,7 @@ mingw-w64-x86_64-xpm-nox
 mingw-w64-x86_64-lcms2'''.split()
 
     # Get a list of all dependencies needed for packages mentioned above.
-    # Run `pactree -lu' for each elment of $PKG_REQ
+    # Run `pactree -lu' for each element of $PKG_REQ.
     pkgs = set()
     for x in PKG_REQ:
         pkgs.update(
@@ -125,7 +125,7 @@ def gather_source(deps):
     ## mpc, termcap, xpm -- has x86_64, and i686 versions
 
     ## This needs to have been run first at the same time as the
-    ## system was udpated.
+    ## system was updated.
     os.mkdir("emacs-src")
     os.chdir("emacs-src")
 
diff --git a/build-aux/config.guess b/build-aux/config.guess
index ba1c143..2773ac4 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2017-09-26'
+timestamp='2017-11-01'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -479,13 +479,13 @@ case 
"${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 #endif
        #if defined (host_mips) && defined (MIPSEB)
        #if defined (SYSTYPE_SYSV)
-         printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+         printf ("mips-mips-risco0s%ssysv\\n", argv[1]); exit (0);
        #endif
        #if defined (SYSTYPE_SVR4)
-         printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+         printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
        #endif
        #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-         printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+         printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
        #endif
        #endif
          exit (-1);
@@ -608,7 +608,7 @@ EOF
     *:AIX:*:*)
        echo rs6000-ibm-aix
        exit ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
        echo romp-ibm-bsd4.4
        exit ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
@@ -629,8 +629,8 @@ EOF
     9000/[34678]??:HP-UX:*:*)
        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        case "${UNAME_MACHINE}" in
-           9000/31? )            HP_ARCH=m68000 ;;
-           9000/[34]?? )         HP_ARCH=m68k ;;
+           9000/31?)            HP_ARCH=m68000 ;;
+           9000/[34]??)         HP_ARCH=m68k ;;
            9000/[678][0-9][0-9])
                if [ -x /usr/bin/getconf ]; then
                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
@@ -743,7 +743,7 @@ EOF
                { echo "$SYSTEM_NAME"; exit; }
        echo unknown-hitachi-hiuxwe2
        exit ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
        echo hppa1.1-hp-bsd
        exit ;;
     9000/8??:4.3bsd:*:*)
@@ -752,7 +752,7 @@ EOF
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
        echo hppa1.0-hp-mpeix
        exit ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
        echo hppa1.1-hp-osf
        exit ;;
     hp8??:OSF1:*:*)
@@ -1072,7 +1072,7 @@ EOF
     i*86:*DOS:*:*)
        echo ${UNAME_MACHINE}-pc-msdosdjgpp
        exit ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+    i*86:*:4.*:*)
        UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
                echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
diff --git a/build-aux/config.sub b/build-aux/config.sub
index c6950fd..bbad4c4 100755
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -2,7 +2,7 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2017-09-26'
+timestamp='2017-11-01'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -640,7 +640,7 @@ case $basic_machine in
                basic_machine=rs6000-bull
                os=-bosx
                ;;
-       dpx2* | dpx2*-bull)
+       dpx2*)
                basic_machine=m68k-bull
                os=-sysv3
                ;;
@@ -902,7 +902,7 @@ case $basic_machine in
                basic_machine=v70-nec
                os=-sysv
                ;;
-       next | m*-next )
+       next | m*-next)
                basic_machine=m68k-next
                case $os in
                    -nextstep* )
@@ -1492,7 +1492,7 @@ case $os in
        -nova*)
                os=-rtmk-nova
                ;;
-       -ns2 )
+       -ns2)
                os=-nextstep2
                ;;
        -nsk*)
@@ -1694,7 +1694,7 @@ case $basic_machine in
        m88k-omron*)
                os=-luna
                ;;
-       *-next )
+       *-next)
                os=-nextstep
                ;;
        *-sequent)
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 5ea7125..a146061 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -1210,6 +1210,13 @@ terminal supports colors, the parameters 
@code{foreground-color},
 @code{display-type} are also meaningful.  If the terminal supports
 frame transparency, the parameter @code{alpha} is also meaningful.
 
+  By default, frame parameters are saved and restored by the desktop
+library functions (@pxref{Desktop Save Mode}) when the variable
address@hidden is address@hidden  It's the
+responsibility of applications that their parameters are included in
address@hidden to avoid that they get
+meaningless or even harmful values in restored sessions.
+
 @menu
 * Parameter Access::       How to change a frame's parameters.
 * Initial Parameters::     Specifying frame parameters when you make a frame.
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index 69c7f37..0ea3f7b 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -668,7 +668,7 @@ close_emacs_globals (ptrdiff_t num_symbols)
           "extern\n"
           "#endif\n"
           "struct {\n"
-          "  struct Lisp_Symbol alignas (GCALIGNMENT) s;\n"
+          "  struct Lisp_Symbol GCALIGNED s;\n"
           "} lispsym[%td];\n"),
          num_symbols);
 }
diff --git a/lib/timespec.h b/lib/timespec.h
index 3831301..cc34067 100644
--- a/lib/timespec.h
+++ b/lib/timespec.h
@@ -33,6 +33,8 @@ _GL_INLINE_HEADER_BEGIN
 extern "C" {
 #endif
 
+#include "verify.h"
+
 /* Resolution of timespec timestamps (in units per second), and log
    base 10 of the resolution.  */
 
@@ -67,23 +69,29 @@ make_timespec (time_t s, long int ns)
    any platform of interest to the GNU project, since all such
    platforms have 32-bit int or wider.
 
-   Replacing "(int) (a.tv_nsec - b.tv_nsec)" with something like
+   Replacing "a.tv_nsec - b.tv_nsec" with something like
    "a.tv_nsec < b.tv_nsec ? -1 : a.tv_nsec > b.tv_nsec" would cause
    this function to work in some cases where the above assumption is
    violated, but not in all cases (e.g., a.tv_sec==1, a.tv_nsec==-2,
    b.tv_sec==0, b.tv_nsec==999999999) and is arguably not worth the
    extra instructions.  Using a subtraction has the advantage of
    detecting some invalid cases on platforms that detect integer
-   overflow.
-
-   The (int) cast avoids a gcc -Wconversion warning.  */
+   overflow.  */
 
 _GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE
 timespec_cmp (struct timespec a, struct timespec b)
 {
-  return (a.tv_sec < b.tv_sec ? -1
-          : a.tv_sec > b.tv_sec ? 1
-          : (int) (a.tv_nsec - b.tv_nsec));
+  if (a.tv_sec < b.tv_sec)
+    return -1;
+  if (a.tv_sec > b.tv_sec)
+    return 1;
+
+  /* Pacify gcc -Wstrict-overflow (bleeding-edge circa 2017-10-02).  See:
+     http://lists.gnu.org/archive/html/bug-gnulib/2017-10/msg00006.html  */
+  assume (-1 <= a.tv_nsec && a.tv_nsec <= 2 * TIMESPEC_RESOLUTION);
+  assume (-1 <= b.tv_nsec && b.tv_nsec <= 2 * TIMESPEC_RESOLUTION);
+
+  return a.tv_nsec - b.tv_nsec;
 }
 
 /* Return -1, 0, 1, depending on the sign of A.  A.tv_nsec must be
diff --git a/lib/unistd.in.h b/lib/unistd.in.h
index c1dd07f..ca8090a 100644
--- a/lib/unistd.in.h
+++ b/lib/unistd.in.h
@@ -134,9 +134,8 @@
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
 
-/* Get getopt(), optarg, optind, opterr, optopt.
-   But avoid namespace pollution on glibc systems.  */
-#if @GNULIB_UNISTD_H_GETOPT@ && !defined __GLIBC__ && !defined 
_GL_SYSTEM_GETOPT
+/* Get getopt(), optarg, optind, opterr, optopt.  */
+#if @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT
 # include <getopt-cdefs.h>
 # include <getopt-pfx-core.h>
 #endif
diff --git a/lisp/ChangeLog.17 b/lisp/ChangeLog.17
index 1bd882f..bb3375b 100644
--- a/lisp/ChangeLog.17
+++ b/lisp/ChangeLog.17
@@ -23666,7 +23666,7 @@
 
 2013-05-28  Alan Mackenzie  <address@hidden>
 
-       Handle "capitalised keywords" correctly.
+       Handle "capitalized keywords" correctly.
        * progmodes/cc-mode.el (c-after-change): Bind case-fold-search to nil.
 
 2013-05-28  Aidan Gauland  <address@hidden>
diff --git a/lisp/ChangeLog.9 b/lisp/ChangeLog.9
index 376589f..16e0a88 100644
--- a/lisp/ChangeLog.9
+++ b/lisp/ChangeLog.9
@@ -2033,7 +2033,7 @@
        (uniquify-get-proposed-name): Arguments changed, callers changed.
        (uniquify-rationalize-conflicting-sublist): Explicitly reset the
        uniquify-possibly-resolvable flag, which is no more bound locally.
-       (uniquify-rename-buffer): Do not set the old unrationalised-buffer
+       (uniquify-rename-buffer): Do not set the old unrationalized-buffer
        flag, which does not exist any more.
 
 2001-07-23  Eli Zaretskii  <address@hidden>
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el
index 62befd4..0027899 100644
--- a/lisp/emacs-lisp/cl-generic.el
+++ b/lisp/emacs-lisp/cl-generic.el
@@ -206,7 +206,8 @@ DEFAULT-BODY, if present, is used as the body of a default 
method.
 \(fn NAME ARGS [DOC-STRING] [OPTIONS-AND-METHODS...] &rest DEFAULT-BODY)"
   (declare (indent 2) (doc-string 3)
            (debug
-            (&define name cl-lambda-list lambda-doc
+            (&define [&or name ("setf" name :name setf)] listp
+                     lambda-doc
                      [&rest [&or
                              ("declare" &rest sexp)
                              (":argument-precedence-order" &rest sexp)
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el
index 53b8db8..1ebbc0e 100644
--- a/lisp/emacs-lisp/debug.el
+++ b/lisp/emacs-lisp/debug.el
@@ -51,8 +51,9 @@ the middle is discarded, and just the beginning and end are 
displayed."
 
 (defcustom debugger-print-function #'cl-prin1
   "Function used to print values in the debugger backtraces."
-  :type 'function
-  :options '(cl-prin1 prin1)
+  :type '(choice (const cl-prin1)
+                 (const prin1)
+                 function)
   :version "26.1")
 
 (defcustom debugger-bury-or-kill 'bury
diff --git a/lisp/eshell/em-cmpl.el b/lisp/eshell/em-cmpl.el
index c64c2df..89826be 100644
--- a/lisp/eshell/em-cmpl.el
+++ b/lisp/eshell/em-cmpl.el
@@ -136,75 +136,70 @@ to writing a completion function."
   :type '(repeat (cons string regexp))
   :group 'eshell-cmpl)
 
+(defun eshell-cmpl--custom-variable-docstring (pcomplete-var)
+  "Generate the docstring of a variable derived from a pcomplete-* variable."
+  (format "%s\n\nIts value is assigned to `%s' locally after eshell starts."
+          (documentation-property pcomplete-var
+                                  'variable-documentation t)
+          (symbol-name pcomplete-var)))
+
 (defcustom eshell-cmpl-file-ignore "~\\'"
-  (documentation-property 'pcomplete-file-ignore
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-file-ignore)
   :type (get 'pcomplete-file-ignore 'custom-type)
   :group 'eshell-cmpl)
 
 (defcustom eshell-cmpl-dir-ignore "\\`\\(\\.\\.?\\|CVS\\)/\\'"
-  (documentation-property 'pcomplete-dir-ignore
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-dir-ignore)
   :type (get 'pcomplete-dir-ignore 'custom-type)
   :group 'eshell-cmpl)
 
 (defcustom eshell-cmpl-ignore-case (eshell-under-windows-p)
-  (documentation-property 'pcomplete-ignore-case
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-ignore-case)
   :type (get 'pcomplete-ignore-case 'custom-type)
   :group 'eshell-cmpl)
 
 (defcustom eshell-cmpl-autolist nil
-  (documentation-property 'pcomplete-autolist
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-autolist)
   :type (get 'pcomplete-autolist 'custom-type)
   :group 'eshell-cmpl)
 
 (defcustom eshell-cmpl-suffix-list (list ?/ ?:)
-  (documentation-property 'pcomplete-suffix-list
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-suffix-list)
   :type (get 'pcomplete-suffix-list 'custom-type)
   :group 'pcomplete)
 
 (defcustom eshell-cmpl-recexact nil
-  (documentation-property 'pcomplete-recexact
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-recexact)
   :type (get 'pcomplete-recexact 'custom-type)
   :group 'eshell-cmpl)
 
 (defcustom eshell-cmpl-man-function 'man
-  (documentation-property 'pcomplete-man-function
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-man-function)
   :type (get 'pcomplete-man-function 'custom-type)
   :group 'eshell-cmpl)
 
 (defcustom eshell-cmpl-compare-entry-function 'file-newer-than-file-p
-  (documentation-property 'pcomplete-compare-entry-function
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-compare-entry-function)
   :type (get 'pcomplete-compare-entry-function 'custom-type)
   :group 'eshell-cmpl)
 
 (defcustom eshell-cmpl-expand-before-complete nil
-  (documentation-property 'pcomplete-expand-before-complete
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-expand-before-complete)
   :type (get 'pcomplete-expand-before-complete 'custom-type)
   :group 'eshell-cmpl)
 
 (defcustom eshell-cmpl-cycle-completions t
-  (documentation-property 'pcomplete-cycle-completions
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-cycle-completions)
   :type (get 'pcomplete-cycle-completions 'custom-type)
   :group 'eshell-cmpl)
 
 (defcustom eshell-cmpl-cycle-cutoff-length 5
-  (documentation-property 'pcomplete-cycle-cutoff-length
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-cycle-cutoff-length)
   :type (get 'pcomplete-cycle-cutoff-length 'custom-type)
   :group 'eshell-cmpl)
 
 (defcustom eshell-cmpl-restore-window-delay 1
-  (documentation-property 'pcomplete-restore-window-delay
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-restore-window-delay)
   :type (get 'pcomplete-restore-window-delay 'custom-type)
   :group 'eshell-cmpl)
 
@@ -212,15 +207,13 @@ to writing a completion function."
   (function
    (lambda ()
      (pcomplete-here (eshell-complete-commands-list))))
-  (documentation-property 'pcomplete-command-completion-function
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 
'pcomplete-command-completion-function)
   :type (get 'pcomplete-command-completion-function 'custom-type)
   :group 'eshell-cmpl)
 
 (defcustom eshell-cmpl-command-name-function
   'eshell-completion-command-name
-  (documentation-property 'pcomplete-command-name-function
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-command-name-function)
   :type (get 'pcomplete-command-name-function 'custom-type)
   :group 'eshell-cmpl)
 
@@ -231,13 +224,12 @@ to writing a completion function."
             (pcomplete-dirs-or-entries
              (cdr (assoc (funcall eshell-cmpl-command-name-function)
                          eshell-command-completions-alist)))))))
-  (documentation-property 'pcomplete-default-completion-function
-                         'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 
'pcomplete-default-completion-function)
   :type (get 'pcomplete-default-completion-function 'custom-type)
   :group 'eshell-cmpl)
 
 (defcustom eshell-cmpl-use-paring t
-  (documentation-property 'pcomplete-use-paring 'variable-documentation)
+  (eshell-cmpl--custom-variable-docstring 'pcomplete-use-paring)
   :type (get 'pcomplete-use-paring 'custom-type)
   :group 'eshell-cmpl)
 
diff --git a/lisp/frameset.el b/lisp/frameset.el
index d826f7f..16940f8 100644
--- a/lisp/frameset.el
+++ b/lisp/frameset.el
@@ -446,6 +446,10 @@ DO NOT MODIFY.  See `frameset-filter-alist' for a full 
description.")
      (buffer-list        . :never)
      (buffer-predicate   . :never)
      (buried-buffer-list . :never)
+     ;; Don't save the 'client' parameter to avoid that a subsequent
+     ;; `save-buffers-kill-terminal' in a non-client session barks at
+     ;; the user (Bug#29067).
+     (client             . :never)
      (delete-before      . :never)
      (font               . frameset-filter-font-param)
      (foreground-color   . frameset-filter-sanitize-color)
diff --git a/lisp/server.el b/lisp/server.el
index 4c591a5..0e225f7 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -527,8 +527,10 @@ Creates the directory if necessary and makes sure:
           (w32 (eq system-type 'windows-nt))
            (unsafe (cond
                     ((not (eq t (car attrs)))
-                     (format "it is a %s" (if (stringp (car attrs))
-                                              "symlink" "file")))
+                     (if (null attrs) "its attributes can't be checked"
+                       (format "it is a %s"
+                               (if (stringp (car attrs))
+                                   "symlink" "file"))))
                     ((and w32 (zerop uid)) ; on FAT32?
                      (display-warning
                       'server
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index e74efdc..93ca36b 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -1375,6 +1375,7 @@ tags, classes and IDs."
               :exit-function
               ,(lambda (string status)
                  (and (eq status 'finished)
+                      (eolp)
                       prop-table
                       (test-completion string prop-table)
                       (not (and sel-table
diff --git a/lisp/url/url-tramp.el b/lisp/url/url-tramp.el
index 0b07bd0..f4149dd 100644
--- a/lisp/url/url-tramp.el
+++ b/lisp/url/url-tramp.el
@@ -39,7 +39,7 @@ They must also be covered by `url-handler-regexp'."
 (defun url-tramp-convert-url-to-tramp (url)
   "Convert URL to a Tramp file name.
 If URL contains a password, it will be added to the `password-data' cache.
-In case URL is not convertable, nil is returned."
+In case URL is not convertible, nil is returned."
   (let* ((obj (url-generic-parse-url (and (stringp url) url)))
          (port
           (and (natnump (url-portspec obj))
@@ -57,7 +57,7 @@ In case URL is not convertable, nil is returned."
 
 (defun url-tramp-convert-tramp-to-url (file)
   "Convert FILE, a Tramp file name, to a URL.
-In case FILE is not convertable, nil is returned."
+In case FILE is not convertible, nil is returned."
   (let* ((obj (ignore-errors (tramp-dissect-file-name file)))
          (port
           (and (stringp (tramp-file-name-port obj))
diff --git a/src/ChangeLog.13 b/src/ChangeLog.13
index e252acf..9f3fdee 100644
--- a/src/ChangeLog.13
+++ b/src/ChangeLog.13
@@ -16581,7 +16581,7 @@
        (characterIndexForPoint:): Adjust return type depending on GNUstep
        version.
        (mouseDown:): delta is CGFloat.
-       (updateFrameSize): Remove unised variable f.
+       (updateFrameSize): Remove unused variable f.
        (initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA.
        Cast float to EmacsCGFloat.
        (windowWillUseStandardFrame:defaultFrame:): Set maximized_height
@@ -16593,7 +16593,7 @@
        (setPosition:portion:whole:): por is CGFloat.
        (getMouseMotionPart:window:x:y:): Add F suffix to float.
        (mouseDown:): Use CGFloat.
-       (mouseDragged:): Remove unised variable edge.
+       (mouseDragged:): Remove unused variable edge.
        (EmacsDocument): Implement for NS_IMPL_GNUSTEP.
 
        * nsterm.h (EmacsCGFloat): Typedef for OSX and GNUstep when the size
diff --git a/src/alloc.c b/src/alloc.c
index 11afdfd..0fc79fe 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -621,6 +621,12 @@ buffer_memory_full (ptrdiff_t nbytes)
 #endif
 }
 
+/* A common multiple of the positive integers A and B.  Ideally this
+   would be the least common multiple, but there's no way to do that
+   as a constant expression in C, so do the best that we can easily do.  */
+#define COMMON_MULTIPLE(a, b) \
+  ((a) % (b) == 0 ? (a) : (b) % (a) == 0 ? (b) : (a) * (b))
+
 #ifndef XMALLOC_OVERRUN_CHECK
 #define XMALLOC_OVERRUN_CHECK_OVERHEAD 0
 #else
@@ -7024,10 +7030,16 @@ sweep_symbols (void)
         {
           if (!sym->s.gcmarkbit)
             {
-              if (sym->s.redirect == SYMBOL_LOCALIZED
-                 /* Already freed?  */
-                 && !EQ (sym->s.function, Vdead))
-                xfree (SYMBOL_BLV (&sym->s));
+              if (sym->s.redirect == SYMBOL_LOCALIZED)
+               {
+                  xfree (SYMBOL_BLV (&sym->s));
+                  /* At every GC we sweep all symbol_blocks and rebuild the
+                     symbol_free_list, so those symbols which stayed unused
+                     between the two will be re-swept.
+                     So we have to make sure we don't re-free this blv next
+                     time we sweep this symbol_block (bug#29066).  */
+                  sym->s.redirect = SYMBOL_PLAINVAL;
+                }
               sym->s.next = symbol_free_list;
               symbol_free_list = &sym->s;
               symbol_free_list->function = Vdead;
diff --git a/src/buffer.c b/src/buffer.c
index 9635733..15735a2 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -61,7 +61,7 @@ struct buffer *all_buffers;
    Setting the default value also goes through the alist of buffers
    and stores into each buffer that does not say it has a local value.  */
 
-struct buffer alignas (GCALIGNMENT) buffer_defaults;
+struct buffer GCALIGNED buffer_defaults;
 
 /* This structure marks which slots in a buffer have corresponding
    default values in buffer_defaults.
@@ -84,7 +84,7 @@ struct buffer buffer_local_flags;
 /* This structure holds the names of symbols whose values may be
    buffer-local.  It is indexed and accessed in the same way as the above.  */
 
-struct buffer alignas (GCALIGNMENT) buffer_local_symbols;
+struct buffer GCALIGNED buffer_local_symbols;
 
 /* Return the symbol of the per-buffer variable at offset OFFSET in
    the buffer structure.  */
diff --git a/src/dired.c b/src/dired.c
index 28d1cff..239b1ac 100644
--- a/src/dired.c
+++ b/src/dired.c
@@ -953,7 +953,14 @@ file_attributes (int fd, char const *name,
     {
       record_unwind_protect_int (close_file_unwind, namefd);
       if (fstat (namefd, &s) != 0)
-       err = errno;
+       {
+         err = errno;
+         /* The Linux kernel before version 3.6 does not support
+            fstat on O_PATH file descriptors.  Handle this error like
+            missing support for O_PATH.  */
+         if (err == EBADF)
+           err = EINVAL;
+       }
       else
        {
          err = 0;
diff --git a/src/lisp.h b/src/lisp.h
index 43b3ec6..a71ba22 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -228,14 +228,12 @@ extern bool suppress_checking EXTERNALLY_VISIBLE;
 
    USE_LSB_TAG not only requires the least 3 bits of pointers returned by
    malloc to be 0 but also needs to be able to impose a mult-of-8 alignment
-   on the few static Lisp_Objects used: lispsym, all the defsubr, and
-   the two special buffers buffer_defaults and buffer_local_symbols.  */
+   on the few static Lisp_Objects used, all of which are aligned via
+   the GCALIGN macro defined below.  */
 
 enum Lisp_Bits
   {
-    /* 2**GCTYPEBITS.  This must be a macro that expands to a literal
-       integer constant, for MSVC.  */
-#define GCALIGNMENT 8
+    GCALIGNMENT = 1 << GCTYPEBITS,
 
     /* Number of bits in a Lisp_Object value, not counting the tag.  */
     VALBITS = EMACS_INT_WIDTH - GCTYPEBITS,
@@ -247,10 +245,6 @@ enum Lisp_Bits
     FIXNUM_BITS = VALBITS + 1
   };
 
-#if GCALIGNMENT != 1 << GCTYPEBITS
-# error "GCALIGNMENT and GCTYPEBITS are inconsistent"
-#endif
-
 /* The maximum value that can be stored in a EMACS_INT, assuming all
    bits other than the type bits contribute to a nonnegative signed value.
    This can be used in #if, e.g., '#if USE_LSB_TAG' below expands to an
@@ -277,18 +271,16 @@ DEFINE_GDB_SYMBOL_END (VALMASK)
 error !;
 #endif
 
+/* Declare an object to have an address that is a multiple of
+   GCALIGNMENT.  This is a no-op if the object's natural alignment is
+   already a multiple of GCALIGNMENT.  alignas is not suitable here,
+   as it fails if the object's natural alignment exceeds GCALIGNMENT.  */
 #ifdef HAVE_STRUCT_ATTRIBUTE_ALIGNED
 # define GCALIGNED __attribute__ ((aligned (GCALIGNMENT)))
 #else
 # define GCALIGNED /* empty */
 #endif
 
-/* A common multiple of the positive integers A and B.  Ideally this
-   would be the least common multiple, but there's no way to do that
-   as a constant expression in C, so do the best that we can easily do.  */
-#define COMMON_MULTIPLE(a, b) \
-  ((a) % (b) == 0 ? (a) : (b) % (a) == 0 ? (b) : (a) * (b))
-
 /* Some operations are so commonly executed that they are implemented
    as macros, not functions, because otherwise runtime performance would
    suffer too much when compiling with GCC without optimization.
@@ -2946,7 +2938,7 @@ CHECK_NUMBER_CDR (Lisp_Object x)
 #ifdef _MSC_VER
 #define DEFUN(lname, fnname, sname, minargs, maxargs, intspec, doc)    \
    Lisp_Object fnname DEFUN_ARGS_ ## maxargs ;                         \
-   static struct Lisp_Subr alignas (GCALIGNMENT) sname =               \
+   static struct Lisp_Subr GCALIGNED sname =                           \
    { { (PVEC_SUBR << PSEUDOVECTOR_AREA_BITS)                           \
        | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)) },           \
       { (Lisp_Object (__cdecl *)(void))fnname },                        \
@@ -2954,7 +2946,7 @@ CHECK_NUMBER_CDR (Lisp_Object x)
    Lisp_Object fnname
 #else  /* not _MSC_VER */
 #define DEFUN(lname, fnname, sname, minargs, maxargs, intspec, doc)    \
-   static struct Lisp_Subr alignas (GCALIGNMENT) sname =               \
+   static struct Lisp_Subr GCALIGNED sname =                           \
      { { PVEC_SUBR << PSEUDOVECTOR_AREA_BITS },                                
\
        { .a ## maxargs = fnname },                                     \
        minargs, maxargs, lname, intspec, 0};                           \
diff --git a/src/nsterm.m b/src/nsterm.m
index a382e5f..5c29f03 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -8912,10 +8912,20 @@ not_in_argv (NSString *arg)
         }
       last_mouse_offset = kloc;
 
-      if (part != NSScrollerKnob)
-        /* this is a slot click on GNUstep: go straight there */
+      /* if knob, tell emacs a location offset by knob pos
+         (to indicate top of handle) */
+      if (part == NSScrollerKnob)
+        pos = (loc - last_mouse_offset);
+      else
+        /* else this is a slot click on GNUstep: go straight there */
         pos = loc;
 
+      /* If there are buttons in the scroller area, we need to
+         recalculate pos as emacs expects the scroller slot to take up
+         the entire available length.  */
+      if (length != pixel_length)
+        pos = pos * pixel_length / length;
+
       /* send a fake mouse-up to super to preempt modal -trackKnob: mode */
       fake_event = [NSEvent mouseEventWithType: NSEventTypeLeftMouseUp
                                       location: [e locationInWindow]
@@ -8980,6 +8990,13 @@ not_in_argv (NSString *arg)
         }
 
       pos = (loc - last_mouse_offset);
+
+      /* If there are buttons in the scroller area, we need to
+         recalculate pos as emacs expects the scroller slot to take up
+         the entire available length.  */
+      if (length != pixel_length)
+        pos = pos * pixel_length / length;
+
       [self sendScrollEventAtLoc: pos fromEvent: e];
 }
 
diff --git a/src/thread.c b/src/thread.c
index 7a670ba..03f5b31 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -26,9 +26,7 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
 #include "coding.h"
 #include "syssignal.h"
 
-#define THREAD_ALIGNMENT COMMON_MULTIPLE (alignof (max_align_t), GCALIGNMENT)
-
-static struct thread_state alignas (THREAD_ALIGNMENT) main_thread;
+static struct thread_state GCALIGNED main_thread;
 
 struct thread_state *current_thread = &main_thread;
 
diff --git a/test/manual/etags/html-src/software.html 
b/test/manual/etags/html-src/software.html
index 7a85b9a..9c4f0dd 100644
--- a/test/manual/etags/html-src/software.html
+++ b/test/manual/etags/html-src/software.html
@@ -75,7 +75,7 @@
     protocol studies:
     <UL>
     <LI> <A 
HREF="/curriculum/pot-abstracts.html#R03:FODAIBEAvsDistributed-IJSC96">
-         <i>Comparison between distributed and centralised demand
+         <i>Comparison between distributed and centralized demand
         assignment TDMA satellite access schemes</i></A>
 
     <LI><A HREF="/curriculum/pot-abstracts.html#R07:FODAIBEAvsCFRA-IJSC97">
@@ -225,7 +225,7 @@ if that happens so I can update this page.
   decoding.  I keep a <A HREF="codes.html">mirror</A> of this page.
 
  <DT>Forward error correcting codes by Phil Karn
-  <DD>Phil Karn's optimised really <A HREF="http://www.ka9q.net/code/fec/";>free
+  <DD>Phil Karn's optimized really <A HREF="http://www.ka9q.net/code/fec/";>free
   codes</A>.
 
 </DL>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]