Merge from origin/emacs-27

75723ec212 (origin/emacs-27) ; * lisp/emacs-lisp/benchmark.el (benchm...
53e2a612ad ; * lib-src/make-fingerprint.c: Update commentary.
286c632772 Reformat argument commentary in etags.c
4ec740866a Make the invocation of combine-change-calls in comment-reg...
66bcec8838 * lisp/progmodes/cc-langs.el (c-<>-notable-chars-re): Fix ...
03eeab469e ; Update the expected result files in test/manual/etags.
d875a22bc6 Update the various INSTALL files

# Conflicts:
#	INSTALL
This commit is contained in:
Glenn Morris 2020-11-16 09:05:31 -08:00
commit 4a8c1120f5
15 changed files with 120 additions and 87 deletions

28
INSTALL
View file

@ -117,19 +117,25 @@ ADDITIONAL DISTRIBUTION FILES
* Complex Text Layout support libraries
On GNU and Unix systems, Emacs needs the optional libraries "m17n-db",
"libm17n-flt", "libotf" to correctly display such complex scripts as
Indic and Khmer, and also for scripts that require Arabic shaping
support (Arabic and Farsi). On some systems, particularly GNU/Linux,
these libraries may be already present or available as additional
packages. Note that if there is a separate 'dev' or 'devel' package,
for use at compilation time rather than run time, you will need that
as well as the corresponding run time package; typically the dev
package will contain header files and a library archive. Otherwise,
you can download the libraries from <https://www.nongnu.org/m17n/>.
On GNU and Unix systems, Emacs needs optional libraries to correctly
display such complex scripts as Indic and Khmer, and also for scripts
that require Arabic shaping support (Arabic and Farsi). If the
HarfBuzz library is installed, Emacs will build with it and use it for
this purpose. HarfBuzz is the preferred shaping engine, both on Posix
hosts and on MS-Windows, so we recommend installing it before building
Emacs. The alternative for GNU/Linux and Posix systems is to use the
"m17n-db", "libm17n-flt", and "libotf" libraries. (On some systems,
particularly GNU/Linux, these libraries may be already present or
available as additional packages.) Note that if there is a separate
'dev' or 'devel' package, for use at compilation time rather than run
time, you will need that as well as the corresponding run time
package; typically the dev package will contain header files and a
library archive. On MS-Windows, if HarfBuzz is not available, Emacs
will use the Uniscribe shaping engine that is part of the OS.
Note that Emacs cannot support complex scripts on a TTY, unless the
terminal includes such a support.
terminal includes such a support. However, most modern terminal
emulators, such as xterm, do support such scripts.
* intlfonts-VERSION.tar.gz

View file

@ -352,11 +352,11 @@ is the current directory.
*** Set find-function-C-source-directory accordingly.
Once you have installed the source package, for example at
/home/myself/deb-src/emacs-26.3, add the following line to your
/home/myself/deb-src/emacs-27.1, add the following line to your
startup file:
(setq find-function-C-source-directory
"/home/myself/deb-src/emacs-26.3/src/")
"/home/myself/deb-src/emacs-27.1/src/")
The installation directory of the Emacs source package will contain
the exact package name and version number of Emacs that is installed
@ -386,7 +386,7 @@ To get describe-function and similar commands to work, you can then
add something like the following to your startup file:
(setq find-function-C-source-directory
"/usr/src/debug/emacs-26.3-1.fc31.x86_64/src/")
"/usr/src/debug/emacs-27.1-1.fc31.x86_64/src/")
However, the exact directory name will depend on the system, and you
will need to both upgrade source and debug info when your system

View file

@ -1974,14 +1974,13 @@ make_tag (const char *name, /* tag name, or NULL if unnamed */
/* Record a tag. */
static void
pfnote (char *name, bool is_func, char *linestart, ptrdiff_t linelen,
intmax_t lno, intmax_t cno)
/* tag name, or NULL if unnamed */
/* tag is a function */
/* start of the line where tag is */
/* length of the line where tag is */
/* line number */
/* character number */
pfnote (char *name, /* tag name, or NULL if unnamed */
bool is_func, /* tag is a function */
char *linestart, /* start of the line where tag is */
ptrdiff_t linelen, /* length of the line where tag is */
intmax_t lno, /* line number */
intmax_t cno) /* character number */
{
register node *np;
@ -2905,15 +2904,13 @@ static void make_C_tag (bool);
*/
static bool
consider_token (char *str, ptrdiff_t len, int c, int *c_extp,
ptrdiff_t bracelev, ptrdiff_t parlev, bool *is_func_or_var)
/* IN: token pointer */
/* IN: token length */
/* IN: first char after the token */
/* IN, OUT: C extensions mask */
/* IN: brace level */
/* IN: parenthesis level */
/* OUT: function or variable found */
consider_token (char *str, /* IN: token pointer */
ptrdiff_t len, /* IN: token length */
int c, /* IN: first char after the token */
int *c_extp, /* IN, OUT: C extensions mask */
ptrdiff_t bracelev, /* IN: brace level */
ptrdiff_t parlev, /* IN: parenthesis level */
bool *is_func_or_var) /* OUT: function or variable found */
{
/* When structdef is stagseen, scolonseen, or snone with bracelev > 0,
structtype is the type of the preceding struct-like keyword, and
@ -3312,9 +3309,8 @@ perhaps_more_input (FILE *inf)
* C syntax and adds them to the list.
*/
static void
C_entries (int c_ext, FILE *inf)
/* extension of C */
/* input file */
C_entries (int c_ext, /* extension of C */
FILE *inf) /* input file */
{
char c; /* latest char read; '\0' for end of line */
char *lp; /* pointer one beyond the character `c' */

View file

@ -19,9 +19,12 @@ You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
/* The arguments given to this program are all the object files that
go into building GNU Emacs. There is no special search logic to find
the files. */
/* The argument given to this program is the initial version of the
temacs executable file used when building GNU Emacs. This program computes
a digest fingerprint for the executable, and modifies the binary in
place, replacing all instances of the existing fingerprint (normally
the default fingerprint from libgnu's lib/fingerprint.c) with the
new value. With option -r, it just prints the digest. */
#include <config.h>

View file

@ -43,7 +43,7 @@
;;;###autoload
(defmacro benchmark-run (&optional repetitions &rest forms)
"Time execution of FORMS.
If REPETITIONS is supplied as a number, run forms that many times,
If REPETITIONS is supplied as a number, run FORMS that many times,
accounting for the overhead of the resulting loop. Otherwise run
FORMS once.
Return a list of the total elapsed time for execution, the number of

View file

@ -1292,7 +1292,15 @@ changed with `comment-style'."
(defun comment-region-default (beg end &optional arg)
(if comment-combine-change-calls
(combine-change-calls beg end (comment-region-default-1 beg end arg))
(combine-change-calls beg
;; A new line might get inserted and whitespace deleted
;; after END for line comments. Ensure the next argument is
;; after any and all changes.
(save-excursion
(goto-char end)
(forward-line)
(point))
(comment-region-default-1 beg end arg))
(comment-region-default-1 beg end arg)))
;;;###autoload

View file

@ -3683,7 +3683,7 @@ When \"(\" is present, that defun will attempt to parse a
parenthesized expression inside the template. When \")\" is
present it will treat an unbalanced closing paren as a sign of
the invalidity of the putative template construct."
t "[<;{},|+&->)]"
t "[<;{},|+&>)-]"
c++ "[<;{},>()]")
(c-lang-defvar c-<>-notable-chars-re (c-lang-const c-<>-notable-chars-re))

View file

@ -502,11 +502,21 @@ build will run on Windows 9X and newer systems).
Does Emacs use -lgnutls? yes
Does Emacs use -lxml2? yes
Does Emacs use -lfreetype? no
Does Emacs use HarfBuzz? yes
Does Emacs use -lm17n-flt? no
Does Emacs use -lotf? no
Does Emacs use -lxft? no
Does Emacs use -lsystemd? no
Does Emacs use -ljansson? yes
Does Emacs use the GMP library? yes
Does Emacs directly use zlib? yes
Does Emacs have dynamic modules support? yes
Does Emacs use toolkit scroll bars? yes
Does Emacs support Xwidgets? no
Does Emacs have threading support in lisp? yes
Does Emacs support the portable dumper? yes
Does Emacs support the legacy unexec dumping? no
Which dumping strategy does Emacs use? pdumper
You are almost there, hang on.
@ -815,6 +825,14 @@ build will run on Windows 9X and newer systems).
the libjansson DLL (for 32-bit builds of Emacs) are available from
the ezwinports site and from the MSYS2 project.
* Optional support for HarfBuzzz shaping library
Emacs supports display of complex scripts and Arabic shaping. The
preferred library for that is HarfBuzz; prebuilt binaries are
available from the ezwinports site (for 32-bit builds of Emacs) and
from the MSYS2 project. If HarfBuzz is not available, Emacs will
use the Uniscribe shaping engine that is part of MS-Windows.
This file is part of GNU Emacs.

View file

@ -55,14 +55,16 @@ packages (you can copy and paste it into the shell with Shift + Insert):
mingw-w64-x86_64-jansson \
mingw-w64-x86_64-libxml2 \
mingw-w64-x86_64-gnutls \
mingw-w64-x86_64-zlib
mingw-w64-x86_64-zlib \
mingw-w64-x86_64-harfbuzz
The packages include the base developer tools (autoconf, grep, make, etc.),
the compiler toolchain (gcc, gdb, etc.), several image libraries, an XML
library, the GnuTLS (transport layer security) library, and zlib for
decompressing text. Only the first three packages are required (base-devel,
toolchain, xpm-nox); the rest are optional. You can select only part of the
libraries if you don't need them all.
library, the GnuTLS (transport layer security) library, zlib for
decompressing text, and HarfBuzz for use as the shaping engine. Only the
first three packages are required (base-devel, toolchain, xpm-nox); the
rest are optional. You can select only part of the libraries if you don't
need them all.
You now have a complete build environment for Emacs.

View file

@ -3153,13 +3153,13 @@ tex-src/gzip.texi,303
@node Top,62,2139
@node Copying,80,2652
@node Overview,83,2705
@node Sample,166,7272
@node Invoking gzip,Invoking gzip210,8828
@node Advanced usage,Advanced usage357,13496
@node Environment,420,15208
@node Tapes,437,15769
@node Problems,460,16768
@node Concept Index,Concept Index473,17288
@node Sample,166,7273
@node Invoking gzip,Invoking gzip210,8829
@node Advanced usage,Advanced usage357,13497
@node Environment,420,15209
@node Tapes,437,15770
@node Problems,460,16769
@node Concept Index,Concept Index473,17289
tex-src/texinfo.tex,30627
\def\texinfoversion{\texinfoversion26,1035

View file

@ -3726,13 +3726,13 @@ tex-src/gzip.texi,303
@node Top,62,2139
@node Copying,80,2652
@node Overview,83,2705
@node Sample,166,7272
@node Invoking gzip,Invoking gzip210,8828
@node Advanced usage,Advanced usage357,13496
@node Environment,420,15208
@node Tapes,437,15769
@node Problems,460,16768
@node Concept Index,Concept Index473,17288
@node Sample,166,7273
@node Invoking gzip,Invoking gzip210,8829
@node Advanced usage,Advanced usage357,13497
@node Environment,420,15209
@node Tapes,437,15770
@node Problems,460,16769
@node Concept Index,Concept Index473,17289
tex-src/texinfo.tex,30627
\def\texinfoversion{\texinfoversion26,1035

View file

@ -3560,13 +3560,13 @@ tex-src/gzip.texi,303
@node Top,62,2139
@node Copying,80,2652
@node Overview,83,2705
@node Sample,166,7272
@node Invoking gzip,Invoking gzip210,8828
@node Advanced usage,Advanced usage357,13496
@node Environment,420,15208
@node Tapes,437,15769
@node Problems,460,16768
@node Concept Index,Concept Index473,17288
@node Sample,166,7273
@node Invoking gzip,Invoking gzip210,8829
@node Advanced usage,Advanced usage357,13497
@node Environment,420,15209
@node Tapes,437,15770
@node Problems,460,16769
@node Concept Index,Concept Index473,17289
tex-src/texinfo.tex,30627
\def\texinfoversion{\texinfoversion26,1035

View file

@ -3317,13 +3317,13 @@ tex-src/gzip.texi,303
@node Top,62,2139
@node Copying,80,2652
@node Overview,83,2705
@node Sample,166,7272
@node Invoking gzip,Invoking gzip210,8828
@node Advanced usage,Advanced usage357,13496
@node Environment,420,15208
@node Tapes,437,15769
@node Problems,460,16768
@node Concept Index,Concept Index473,17288
@node Sample,166,7273
@node Invoking gzip,Invoking gzip210,8829
@node Advanced usage,Advanced usage357,13497
@node Environment,420,15209
@node Tapes,437,15770
@node Problems,460,16769
@node Concept Index,Concept Index473,17289
tex-src/texinfo.tex,30627
\def\texinfoversion{\texinfoversion26,1035

View file

@ -4297,13 +4297,13 @@ tex-src/gzip.texi,303
@node Top,62,2139
@node Copying,80,2652
@node Overview,83,2705
@node Sample,166,7272
@node Invoking gzip,Invoking gzip210,8828
@node Advanced usage,Advanced usage357,13496
@node Environment,420,15208
@node Tapes,437,15769
@node Problems,460,16768
@node Concept Index,Concept Index473,17288
@node Sample,166,7273
@node Invoking gzip,Invoking gzip210,8829
@node Advanced usage,Advanced usage357,13497
@node Environment,420,15209
@node Tapes,437,15770
@node Problems,460,16769
@node Concept Index,Concept Index473,17289
tex-src/texinfo.tex,30627
\def\texinfoversion{\texinfoversion26,1035

View file

@ -4297,13 +4297,13 @@ tex-src/gzip.texi,303
@node Top,62,2139
@node Copying,80,2652
@node Overview,83,2705
@node Sample,166,7272
@node Invoking gzip,Invoking gzip210,8828
@node Advanced usage,Advanced usage357,13496
@node Environment,420,15208
@node Tapes,437,15769
@node Problems,460,16768
@node Concept Index,Concept Index473,17288
@node Sample,166,7273
@node Invoking gzip,Invoking gzip210,8829
@node Advanced usage,Advanced usage357,13497
@node Environment,420,15209
@node Tapes,437,15770
@node Problems,460,16769
@node Concept Index,Concept Index473,17289
tex-src/texinfo.tex,30627
\def\texinfoversion{\texinfoversion26,1035