unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
@ 2016-03-02 18:08 Paul Eggert
  2016-03-03 12:49 ` Alan Mackenzie
                   ` (2 more replies)
  0 siblings, 3 replies; 34+ messages in thread
From: Paul Eggert @ 2016-03-02 18:08 UTC (permalink / raw)
  To: 22884

[-- Attachment #1: Type: text/plain, Size: 3550 bytes --]

I've been noticing this problem for a bit and figured it'd get fixed but 
it hasn't so here is a bug report.

With the Emacs 25 pretests, it takes waaaaayyy too long to edit some C 
code. To reproduce the problem use the attached file (taken from the 
Emacs source code) and run:

emacs -Q config.h
M-x goto-line RET 1661 RET / /

On my six-year-old desktop the second '/' takes about 10 seconds to 
echo.  This sort of thing makes Emacs effectively unusable for editing 
config.h.


In GNU Emacs 25.0.92.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.18.7)
  of 2016-03-02 built on penguin.cs.ucla.edu
Repository revision: 100346aa226e4eacc56f390c099bb9aab585b5f4
Windowing system distributor 'Fedora Project', version 11.0.11800000
Configured using:
  'configure --enable-gcc-warnings'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11

Important settings:
   value of $LANG: en_US.UTF-8
   value of $XMODIFIERS: @im=ibus
   locale-coding-system: utf-8-unix

Major mode: C/l

Minor modes in effect:
   tooltip-mode: t
   global-eldoc-mode: t
   electric-indent-mode: t
   mouse-wheel-mode: t
   tool-bar-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   blink-cursor-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   line-number-mode: t
   transient-mark-mode: t
   abbrev-mode: t

Recent messages:
config.h has auto save data; consider M-x recover-this-file
Mark set
You can run the command ‘goto-line’ with M-g g
Mark set
Undo!
Mark set
Undo!
Mark set
Mark saved where search started
Auto-saving...done

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message dired format-spec rfc822 mml
mml-sec epg epg-config gnus-util mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util help-fns mail-prsvr mail-utils character-fold
misearch multi-isearch cl-extra help-mode cc-mode cc-fonts easymenu
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
cl-loaddefs pcase cl-lib time-date mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
dbusbind inotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 123955 4665)
  (symbols 48 21742 0)
  (miscs 40 57 290)
  (strings 32 28264 16097)
  (string-bytes 1 748499)
  (vectors 16 14562)
  (vector-slots 8 502379 4556)
  (floats 8 166 20)
  (intervals 56 4059 0)
  (buffers 976 12)
  (heap 1024 29227 2318))


[-- Attachment #2: config.h --]
[-- Type: text/plain, Size: 59321 bytes --]

/* src/config.h.  Generated from config.in by configure.  */
/* src/config.in.  Generated from configure.ac by autoheader.  */

/* GNU Emacs site configuration template file.

Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2016
  Free Software Foundation, Inc.

This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */


/* No code in Emacs #includes config.h twice, but some bits of code
   intended to work with other packages as well (like gmalloc.c)
   think they can include it as many times as they like.  */
#ifndef EMACS_CONFIG_H
#define EMACS_CONFIG_H


/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */

/* Define to use the convention that & in the full name stands for the login
   id. */
#define AMPERSAND_FULL_NAME 1

/* Define to the number of bits in type 'ptrdiff_t'. */
/* #undef BITSIZEOF_PTRDIFF_T */

/* Define to the number of bits in type 'sig_atomic_t'. */
/* #undef BITSIZEOF_SIG_ATOMIC_T */

/* Define to the number of bits in type 'size_t'. */
/* #undef BITSIZEOF_SIZE_T */

/* Define to the number of bits in type 'wchar_t'. */
/* #undef BITSIZEOF_WCHAR_T */

/* Define to the number of bits in type 'wint_t'. */
/* #undef BITSIZEOF_WINT_T */

/* Define if get_current_dir_name should not be used. */
/* #undef BROKEN_GET_CURRENT_DIR_NAME */

/* Define on FreeBSD to work around an issue when reading from a PTY. */
/* #undef BROKEN_PTY_READ_AFTER_EAGAIN */

/* Define if Emacs cannot be dumped on your system. */
/* #undef CANNOT_DUMP */

/* Define this to enable compile time checks for the Lisp_Object data type. */
/* #undef CHECK_LISP_OBJECT_TYPE */

/* Short copyright string for this version of Emacs. */
#define COPYRIGHT "Copyright (C) 2016 Free Software Foundation, Inc."

/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
   systems. This function is required for `alloca.c' support on those systems.
   */
/* #undef CRAY_STACKSEG_END */

/* Define if the system is Cygwin. */
/* #undef CYGWIN */

/* Define to 1 if using `alloca.c'. */
/* #undef C_ALLOCA */

/* Define if the system is Darwin. */
/* #undef DARWIN_OS */

/* Name of the default sound device. */
#define DEFAULT_SOUND_DEVICE "/dev/dsp"

/* Define to 1 for DGUX with <sys/dg_sys_info.h>. */
/* #undef DGUX */

/* Character that separates directories in a file name. */
#define DIRECTORY_SEP '/'

/* the name of the file descriptor member of DIR */
/* #undef DIR_FD_MEMBER_NAME */

#ifdef DIR_FD_MEMBER_NAME
# define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME)
#else
# define DIR_TO_FD(Dir_p) -1
#endif


/* Define if process.c does not need to close a pty to make it a controlling
   terminal (it is already a controlling terminal of the subprocess, because
   we did ioctl TIOCSCTTY). */
/* #undef DONT_REOPEN_PTY */

/* Define if the system is MS DOS or MS Windows. */
/* #undef DOS_NT */

/* Define to 1 if the system memory allocator is Doug Lea style, with malloc
   hooks and malloc_set_state. */
#define DOUG_LEA_MALLOC 1

/* Define to 1 to enable w32 debug facilities. */
/* #undef EMACSDEBUG */

/* Define to the canonical Emacs configuration name. */
#define EMACS_CONFIGURATION "x86_64-unknown-linux-gnu"

/* Summary of some of the main features enabled by configure. */
#define EMACS_CONFIG_FEATURES "XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11"

/* Define to the options passed to configure. */
#define EMACS_CONFIG_OPTIONS "--enable-gcc-warnings"

/* Define to 1 if expensive run-time data type and consistency checks are
   enabled. */
/* #undef ENABLE_CHECKING */

/* Define this to 1 if F_DUPFD behavior does not match POSIX */
/* #undef FCNTL_DUPFD_BUGGY */

/* Letter to use in finding device name of first PTY, if PTYs are supported.
   */
/* #undef FIRST_PTY_LETTER */

/* Without the following workaround, Emacs runs slowly on OS X 10.8.
   The workaround disables some useful run-time checking, so it
   should be conditional to the platforms with the performance bug.
   Perhaps Apple will fix this some day; also see m4/extern-inline.m4.  */
#if defined __APPLE__ && defined __GNUC__
# ifndef _DONT_USE_CTYPE_INLINE_
#  define _DONT_USE_CTYPE_INLINE_
# endif
# ifndef _FORTIFY_SOURCE
#  define _FORTIFY_SOURCE 0
# endif
#endif


/* Define to 1 if futimesat mishandles a NULL file name. */
/* #undef FUTIMESAT_NULL_BUG */

/* Define this to check for errors in cons list. */
/* #undef GC_CHECK_CONS_LIST */

/* Define this temporarily to hunt a bug. If defined, the size of strings is
   redundantly recorded in sdata structures so that it can be compared to the
   sizes recorded in Lisp strings. */
/* #undef GC_CHECK_STRING_BYTES */

/* Define this to check the string free list. */
/* #undef GC_CHECK_STRING_FREE_LIST */

/* Define this to check for short string overrun. */
/* #undef GC_CHECK_STRING_OVERRUN */

/* Mark a secondary stack, like the register stack on the ia64. */
/* #undef GC_MARK_SECONDARY_STACK */

/* Define if setjmp is known to save all registers relevant for conservative
   garbage collection in the jmp_buf. */
#define GC_SETJMP_WORKS 1

/* Define to 1 to disable GTK+/GDK deprecation warnings. */
#define GDK_DISABLE_DEPRECATION_WARNINGS 1

/* Define to the type of elements in the array set by `getgroups'. Usually
   this is either `int' or `gid_t'. */
#define GETGROUPS_T gid_t

/* Define this to 1 if getgroups(0,NULL) does not return the number of groups.
   */
/* #undef GETGROUPS_ZERO_BUG */

/* Define if gettimeofday clobbers the localtime buffer. */
/* #undef GETTIMEOFDAY_CLOBBERS_LOCALTIME */

/* Define this to 'void' or 'struct timezone' to match the system's
   declaration of the second argument to gettimeofday. */
#define GETTIMEOFDAY_TIMEZONE struct timezone

/* Define to 1 to disable Glib deprecation warnings. */
#define GLIB_DISABLE_DEPRECATION_WARNINGS 1

/* Define this to enable glyphs debugging code. */
/* #undef GLYPH_DEBUG */

/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
   whether the gnulib module close-stream shall be considered present. */
#define GNULIB_CLOSE_STREAM 1

/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
   whether the gnulib module faccessat shall be considered present. */
#define GNULIB_FACCESSAT 1

/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
   whether the gnulib module fdopendir shall be considered present. */
#define GNULIB_FDOPENDIR 1

/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
   whether the gnulib module fscanf shall be considered present. */
#define GNULIB_FSCANF 1

/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
   whether the gnulib module mkostemp shall be considered present. */
#define GNULIB_MKOSTEMP 1

/* enable some gnulib portability checks */
#define GNULIB_PORTCHECK 1

/* Enable compile-time and run-time bounds-checking, and some warnings,
      without upsetting glibc 2.15+. */
   #if (defined GNULIB_PORTCHECK && !defined _FORTIFY_SOURCE \
        && defined __OPTIMIZE__ && __OPTIMIZE__)
   # define _FORTIFY_SOURCE 2
   #endif
  

/* Define to 1 if printf and friends should be labeled with attribute
   "__gnu_printf__" instead of "__printf__" */
/* #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU */

/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
   whether the gnulib module scanf shall be considered present. */
#define GNULIB_SCANF 1

/* Define if ths system is compatible with GNU/Linux. */
#define GNU_LINUX /**/

/* Define to 1 if you want to use the GNU memory allocator. */
#define GNU_MALLOC 1

/* Define to 1 if you have the `accept4' function. */
#define HAVE_ACCEPT4 1

/* Define to 1 if you have the `access' function. */
/* #undef HAVE_ACCESS */

/* Define to 1 if you have the `aclsort' function. */
/* #undef HAVE_ACLSORT */

/* Define to 1 if you have the <aclv.h> header file. */
/* #undef HAVE_ACLV_H */

/* Define to 1 if you have the `aclx_get' function. */
/* #undef HAVE_ACLX_GET */

/* Define to 1 if you have the `acl_copy_ext_native' function. */
/* #undef HAVE_ACL_COPY_EXT_NATIVE */

/* Define to 1 if you have the `acl_create_entry_np' function. */
/* #undef HAVE_ACL_CREATE_ENTRY_NP */

/* Define to 1 if you have the `acl_delete_def_file' function. */
#define HAVE_ACL_DELETE_DEF_FILE 1

/* Define to 1 if you have the `acl_delete_fd_np' function. */
/* #undef HAVE_ACL_DELETE_FD_NP */

/* Define to 1 if you have the `acl_delete_file_np' function. */
/* #undef HAVE_ACL_DELETE_FILE_NP */

/* Define to 1 if you have the `acl_entries' function. */
#define HAVE_ACL_ENTRIES 1

/* Define to 1 if you have the `acl_extended_file' function. */
#define HAVE_ACL_EXTENDED_FILE 1

/* Define to 1 if the constant ACL_FIRST_ENTRY exists. */
#define HAVE_ACL_FIRST_ENTRY 1

/* Define to 1 if you have the `acl_free' function. */
#define HAVE_ACL_FREE 1

/* Define to 1 if you have the `acl_free_text' function. */
/* #undef HAVE_ACL_FREE_TEXT */

/* Define to 1 if you have the `acl_from_mode' function. */
#define HAVE_ACL_FROM_MODE 1

/* Define to 1 if you have the `acl_from_text' function. */
#define HAVE_ACL_FROM_TEXT 1

/* Define to 1 if you have the `acl_get_fd' function. */
#define HAVE_ACL_GET_FD 1

/* Define to 1 if you have the `acl_get_file' function. */
#define HAVE_ACL_GET_FILE 1

/* Define to 1 if you have the <acl/libacl.h> header file. */
#define HAVE_ACL_LIBACL_H 1

/* Define to 1 if you have the `acl_set_fd' function. */
#define HAVE_ACL_SET_FD 1

/* Define to 1 if you have the `acl_set_file' function. */
#define HAVE_ACL_SET_FILE 1

/* Define to 1 if you have the `acl_to_short_text' function. */
/* #undef HAVE_ACL_TO_SHORT_TEXT */

/* Define to 1 if you have the `acl_trivial' function. */
/* #undef HAVE_ACL_TRIVIAL */

/* Define to 1 if the ACL type ACL_TYPE_EXTENDED exists. */
/* #undef HAVE_ACL_TYPE_EXTENDED */

/* Define to 1 if you have the `aligned_alloc' function. */
#define HAVE_ALIGNED_ALLOC 1

/* Define to 1 if you have 'alloca' after including <alloca.h>, a header that
   may be supplied by this distribution. */
#define HAVE_ALLOCA 1

/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
   */
#define HAVE_ALLOCA_H 1

/* Define to 1 if ALSA is available. */
#define HAVE_ALSA 1

/* Define to 1 if you have the <byteswap.h> header file. */
#define HAVE_BYTESWAP_H 1

/* Define to 1 if strtold conforms to C99. */
#define HAVE_C99_STRTOLD 1

/* Define to 1 if you have the `cfmakeraw' function. */
#define HAVE_CFMAKERAW 1

/* Define to 1 if you have the `cfsetspeed' function. */
#define HAVE_CFSETSPEED 1

/* Define to 1 if you have the `clock_gettime' function. */
#define HAVE_CLOCK_GETTIME 1

/* Define to 1 if you have the `clock_settime' function. */
#define HAVE_CLOCK_SETTIME 1

/* Define to 1 if you have the <coff.h> header file. */
/* #undef HAVE_COFF_H */

/* Define to 1 if you have the <com_err.h> header file. */
/* #undef HAVE_COM_ERR_H */

/* Define to 1 if you have the `copysign' function. */
#define HAVE_COPYSIGN 1

/* Define to 1 if C supports variable-length arrays. */
#define HAVE_C_VARARRAYS 1

/* Define to 1 if data_start is the address of the start of the main data
   segment. */
#define HAVE_DATA_START 1

/* Define to 1 if using D-Bus. */
#define HAVE_DBUS 1

/* Define to 1 if you have the `dbus_type_is_valid' function. */
#define HAVE_DBUS_TYPE_IS_VALID 1

/* Define to 1 if you have the `dbus_validate_bus_name' function. */
#define HAVE_DBUS_VALIDATE_BUS_NAME 1

/* Define to 1 if you have the `dbus_validate_interface' function. */
#define HAVE_DBUS_VALIDATE_INTERFACE 1

/* Define to 1 if you have the `dbus_validate_member' function. */
#define HAVE_DBUS_VALIDATE_MEMBER 1

/* Define to 1 if you have the `dbus_validate_path' function. */
#define HAVE_DBUS_VALIDATE_PATH 1

/* Define to 1 if you have the `dbus_watch_get_unix_fd' function. */
#define HAVE_DBUS_WATCH_GET_UNIX_FD 1

/* Define to 1 if you have the declaration of `alarm', and to 0 if you don't.
   */
#define HAVE_DECL_ALARM 1

/* Define to 1 if you have the declaration of `dirfd', and to 0 if you don't.
   */
/* #undef HAVE_DECL_DIRFD */

/* Define to 1 if you have the declaration of `fdatasync', and to 0 if you
   don't. */
#define HAVE_DECL_FDATASYNC 1

/* Define to 1 if you have the declaration of `fdopendir', and to 0 if you
   don't. */
#define HAVE_DECL_FDOPENDIR 1

/* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you
   don't. */
#define HAVE_DECL_GETDTABLESIZE 1

/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
   */
#define HAVE_DECL_GETENV 1

/* Define to 1 if you have the declaration of `localtime_r', and to 0 if you
   don't. */
#define HAVE_DECL_LOCALTIME_R 1

/* Define to 1 if you have the declaration of `memrchr', and to 0 if you
   don't. */
#define HAVE_DECL_MEMRCHR 1

/* Define to 1 if you have the declaration of `strmode', and to 0 if you
   don't. */
#define HAVE_DECL_STRMODE 0

/* Define to 1 if you have the declaration of `strtoimax', and to 0 if you
   don't. */
#define HAVE_DECL_STRTOIMAX 1

/* Define to 1 if you have the declaration of `strtoll', and to 0 if you
   don't. */
/* #undef HAVE_DECL_STRTOLL */

/* Define to 1 if you have the declaration of `strtoull', and to 0 if you
   don't. */
/* #undef HAVE_DECL_STRTOULL */

/* Define to 1 if you have the declaration of `strtoumax', and to 0 if you
   don't. */
#define HAVE_DECL_STRTOUMAX 1

/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you
   don't. */
#define HAVE_DECL_SYS_SIGLIST 1

/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
   */
/* #undef HAVE_DECL_TZNAME */

/* Define to 1 if you have the declaration of `_putenv', and to 0 if you
   don't. */
/* #undef HAVE_DECL__PUTENV */

/* Define to 1 if you have the declaration of `__fpending', and to 0 if you
   don't. */
#define HAVE_DECL___FPENDING 1

/* Define to 1 if you have the declaration of `__sys_siglist', and to 0 if you
   don't. */
/* #undef HAVE_DECL___SYS_SIGLIST */

/* Define to 1 if you have the <dirent.h> header file. */
#define HAVE_DIRENT_H 1

/* Define to 1 if you have the `dirfd' function. */
/* #undef HAVE_DIRFD */

/* Define to 1 if you have the `dladdr' function. */
/* #undef HAVE_DLADDR */

/* Define to 1 if you have the `dlfunc' function. */
/* #undef HAVE_DLFUNC */

/* Define to 1 if you have the 'dup2' function. */
#define HAVE_DUP2 1

/* Define to 1 if you have the `eaccess' function. */
/* #undef HAVE_EACCESS */

/* Define to 1 if you have the `endgrent' function. */
#define HAVE_ENDGRENT 1

/* Define to 1 if you have the `endpwent' function. */
#define HAVE_ENDPWENT 1

/* Define if you have the declaration of environ. */
#define HAVE_ENVIRON_DECL 1

/* Define to 1 if you have the `euidaccess' function. */
/* #undef HAVE_EUIDACCESS */

/* Define to 1 if you have the <execinfo.h> header file. */
#define HAVE_EXECINFO_H 1

/* Define to 1 if you have the `faccessat' function. */
#define HAVE_FACCESSAT 1

/* Define to 1 if you have the `facl' function. */
/* #undef HAVE_FACL */

/* Define to 1 if you have the `fchdir' function. */
#define HAVE_FCHDIR 1

/* Define to 1 if you have the `fchmod' function. */
#define HAVE_FCHMOD 1

/* Define to 1 if you have the `fcntl' function. */
#define HAVE_FCNTL 1

/* Define to 1 if you have the `fdatasync' function. */
/* #undef HAVE_FDATASYNC */

/* Define to 1 if you have the `fdopendir' function. */
#define HAVE_FDOPENDIR 1

/* Define to 1 if you have the `fork' function. */
#define HAVE_FORK 1

/* Define to 1 if you have the `freeifaddrs' function. */
#define HAVE_FREEIFADDRS 1

/* Define to 1 if using the freetype and fontconfig libraries. */
#define HAVE_FREETYPE 1

/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
#define HAVE_FSEEKO 1

/* Define to 1 if you have the `fstatat' function. */
#define HAVE_FSTATAT 1

/* Define to 1 if you have the `fsync' function. */
#define HAVE_FSYNC 1

/* Define to 1 if you have the `futimens' function. */
#define HAVE_FUTIMENS 1

/* Define to 1 if you have the `futimes' function. */
#define HAVE_FUTIMES 1

/* Define to 1 if you have the `futimesat' function. */
#define HAVE_FUTIMESAT 1

/* Define to 1 if you have the `gai_strerror' function. */
#define HAVE_GAI_STRERROR 1

/* Define to 1 if using GConf. */
#define HAVE_GCONF 1

/* Define to 1 if you have the `getacl' function. */
/* #undef HAVE_GETACL */

/* Define to 1 if you have the `getaddrinfo' function. */
#define HAVE_GETADDRINFO 1

/* Define to 1 if you have the `getdtablesize' function. */
#define HAVE_GETDTABLESIZE 1

/* Define to 1 if you have the `getgrent' function. */
#define HAVE_GETGRENT 1

/* Define to 1 if your system has a working `getgroups' function. */
/* #undef HAVE_GETGROUPS */

/* Define to 1 if you have the `gethostname' function. */
#define HAVE_GETHOSTNAME 1

/* Define to 1 if you have the `getifaddrs' function. */
#define HAVE_GETIFADDRS 1

/* Define to 1 if you have the <getopt.h> header file. */
#define HAVE_GETOPT_H 1

/* Define to 1 if you have the `getopt_long_only' function. */
#define HAVE_GETOPT_LONG_ONLY 1

/* Define to 1 if you have the `getpagesize' function. */
#define HAVE_GETPAGESIZE 1

/* Define to 1 if you have the `getpeername' function. */
#define HAVE_GETPEERNAME 1

/* Define to 1 if you have the `getpt' function. */
#define HAVE_GETPT 1

/* Define to 1 if you have the `getpwent' function. */
#define HAVE_GETPWENT 1

/* Define to 1 if you have the `getrlimit' function. */
#define HAVE_GETRLIMIT 1

/* Define to 1 if you have the `getrusage' function. */
#define HAVE_GETRUSAGE 1

/* Define to 1 if you have the `getsockname' function. */
#define HAVE_GETSOCKNAME 1

/* Define to 1 if you have the `gettimeofday' function. */
#define HAVE_GETTIMEOFDAY 1

/* Define to 1 if you have the `get_current_dir_name' function. */
#define HAVE_GET_CURRENT_DIR_NAME 1

/* Define to 1 if using GFile. */
/* #undef HAVE_GFILENOTIFY */

/* Define to 1 if you have a gif (or ungif) library. */
#define HAVE_GIF 1

/* Define to 1 if GLib is linked in. */
#define HAVE_GLIB 1

/* Define if using GnuTLS. */
#define HAVE_GNUTLS 1

/* Define if using GnuTLS v3. */
#define HAVE_GNUTLS3 1

/* Define to 1 if you have the gpm library (-lgpm). */
#define HAVE_GPM 1

/* Define to 1 if you have the `grantpt' function. */
#define HAVE_GRANTPT 1

/* Define to 1 if using GSettings. */
#define HAVE_GSETTINGS 1

/* Define to 1 if using GTK 3 or later. */
#define HAVE_GTK3 1

/* Define to 1 if you have the `gtk_adjustment_get_page_size' function. */
#define HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE 1

/* Define to 1 if you have the `gtk_dialog_get_action_area' function. */
#define HAVE_GTK_DIALOG_GET_ACTION_AREA 1

/* Define to 1 if you have the `gtk_file_selection_new' function. */
/* #undef HAVE_GTK_FILE_SELECTION_NEW */

/* Define to 1 if you have the `gtk_handle_box_new' function. */
#define HAVE_GTK_HANDLE_BOX_NEW 1

/* Define to 1 if you have the `gtk_orientable_set_orientation' function. */
#define HAVE_GTK_ORIENTABLE_SET_ORIENTATION 1

/* Define to 1 if you have the `gtk_tearoff_menu_item_new' function. */
#define HAVE_GTK_TEAROFF_MENU_ITEM_NEW 1

/* Define to 1 if you have the `gtk_widget_get_mapped' function. */
#define HAVE_GTK_WIDGET_GET_MAPPED 1

/* Define to 1 if you have the `gtk_widget_get_sensitive' function. */
#define HAVE_GTK_WIDGET_GET_SENSITIVE 1

/* Define to 1 if you have the `gtk_widget_get_window' function. */
#define HAVE_GTK_WIDGET_GET_WINDOW 1

/* Define to 1 if you have the `gtk_widget_set_has_window' function. */
#define HAVE_GTK_WIDGET_SET_HAS_WINDOW 1

/* Define to 1 if you have the `gtk_window_set_has_resize_grip' function. */
#define HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP 1

/* Define to 1 if netdb.h declares h_errno. */
#define HAVE_H_ERRNO 1

/* Define to 1 if you have the <ifaddrs.h> header file. */
#define HAVE_IFADDRS_H 1

/* Define to 1 if using imagemagick. */
#define HAVE_IMAGEMAGICK 1

/* Define to 1 if you have inet sockets. */
#define HAVE_INET_SOCKETS 1

/* Define to 1 to use inotify. */
#define HAVE_INOTIFY 1

/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1

/* Define to 1 if you have the `issetugid' function. */
/* #undef HAVE_ISSETUGID */

/* Define to 1 if you have the jpeg library (typically -ljpeg). */
#define HAVE_JPEG 1

/* Define to 1 if you have the <kerberosIV/krb.h> header file. */
/* #undef HAVE_KERBEROSIV_KRB_H */

/* Define to 1 if you have the <kerberos/krb.h> header file. */
/* #undef HAVE_KERBEROS_KRB_H */

/* Define to 1 to use kqueue. */
/* #undef HAVE_KQUEUE */

/* Define to 1 if `e_text' is a member of `krb5_error'. */
/* #undef HAVE_KRB5_ERROR_E_TEXT */

/* Define to 1 if `text' is a member of `krb5_error'. */
/* #undef HAVE_KRB5_ERROR_TEXT */

/* Define to 1 if you have the <krb5.h> header file. */
/* #undef HAVE_KRB5_H */

/* Define to 1 if you have the <krb.h> header file. */
/* #undef HAVE_KRB_H */

/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
#define HAVE_LANGINFO_CODESET 1

/* Define to 1 if you have the `dgc' library (-ldgc). */
/* #undef HAVE_LIBDGC */

/* Define to 1 if you have the <libgen.h> header file. */
/* #undef HAVE_LIBGEN_H */

/* Define to 1 if you have the `kstat' library (-lkstat). */
/* #undef HAVE_LIBKSTAT */

/* Define to 1 if you have the 'lockfile' library (-llockfile). */
#define HAVE_LIBLOCKFILE 1

/* Define to 1 if you have the 'mail' library (-lmail). */
/* #undef HAVE_LIBMAIL */

/* Define to 1 if using libotf. */
#define HAVE_LIBOTF 1

/* Define to 1 if you have the `perfstat' library (-lperfstat). */
/* #undef HAVE_LIBPERFSTAT */

/* Define to 1 if using SELinux. */
#define HAVE_LIBSELINUX 1

/* Define to 1 if you have the libxml library (-lxml2). */
#define HAVE_LIBXML2 1

/* Define to 1 if you have Linux sysinfo function. */
#define HAVE_LINUX_SYSINFO 1

/* Define to 1 if you have the `localtime_r' function. */
#define HAVE_LOCALTIME_R 1

/* Define to 1 if you have the `log2' function. */
#define HAVE_LOG2 1

/* Define to 1 if you support file names longer than 14 characters. */
#define HAVE_LONG_FILE_NAMES 1

/* Define to 1 if the system has the type 'long long int'. */
#define HAVE_LONG_LONG_INT 1

/* Define to 1 if you have the `lrand48' function. */
#define HAVE_LRAND48 1

/* Define to 1 if you have the `lstat' function. */
#define HAVE_LSTAT 1

/* Define to 1 if you have the `lutimes' function. */
#define HAVE_LUTIMES 1

/* Define to 1 if using libm17n-flt. */
#define HAVE_M17N_FLT 1

/* Define to 1 if you have the <machine/soundcard.h> header file. */
/* #undef HAVE_MACHINE_SOUNDCARD_H */

/* Define to 1 if you have the <mach/mach.h> header file. */
/* #undef HAVE_MACH_MACH_H */

/* Define to 1 if you have the `MagickExportImagePixels' function. */
#define HAVE_MAGICKEXPORTIMAGEPIXELS 1

/* Define to 1 if you have the `MagickMergeImageLayers' function. */
#define HAVE_MAGICKMERGEIMAGELAYERS 1

/* Define to 1 if you have the <maillock.h> header file. */
#define HAVE_MAILLOCK_H 1

/* Define to 1 if you have the <malloc/malloc.h> header file. */
/* #undef HAVE_MALLOC_MALLOC_H */

/* Define to 1 if <wchar.h> declares mbstate_t. */
#define HAVE_MBSTATE_T 1

/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1

/* Define to 1 if you have the `memrchr' function. */
#define HAVE_MEMRCHR 1

/* Define to 1 if you have the `mkostemp' function. */
#define HAVE_MKOSTEMP 1

/* Define to 1 if you have a working `mmap' system call. */
#define HAVE_MMAP 1

/* Define to 1 if you have the <mmsystem.h> header file. */
/* #undef HAVE_MMSYSTEM_H */

/* Define to 1 if dynamic modules are enabled */
/* #undef HAVE_MODULES */

/* Define to 1 if you have the `nanotime' function. */
/* #undef HAVE_NANOTIME */

/* Define to 1 if you have the <net/if_dl.h> header file. */
/* #undef HAVE_NET_IF_DL_H */

/* Define to 1 if you have the <net/if.h> header file. */
#define HAVE_NET_IF_H 1

/* Define to 1 if you have the `newlocale' function. */
#define HAVE_NEWLOCALE 1

/* Define to 1 if you have the <nlist.h> header file. */
/* #undef HAVE_NLIST_H */

/* Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on
   Mac OS X. */
/* #undef HAVE_NS */

/* Define to use native MS Windows GUI. */
/* #undef HAVE_NTGUI */

/* Define to 1 if libotf has OTF_get_variation_glyphs. */
#define HAVE_OTF_GET_VARIATION_GLYPHS 1

/* Define to 1 if personality LINUX32 can be set. */
#define HAVE_PERSONALITY_LINUX32 1

/* Define to 1 if you have the `pipe2' function. */
#define HAVE_PIPE2 1

/* Define to 1 if you have the png library. */
#define HAVE_PNG 1

/* Define to 1 if you have the `posix_memalign' function. */
/* #undef HAVE_POSIX_MEMALIGN */

/* Define to 1 if you have the `posix_openpt' function. */
#define HAVE_POSIX_OPENPT 1

/* Define if you have the /proc filesystem. */
#define HAVE_PROCFS 1

/* Define to 1 if you have the `pselect' function. */
#define HAVE_PSELECT 1

/* Define to 1 if you have the `pstat_getdynamic' function. */
/* #undef HAVE_PSTAT_GETDYNAMIC */

/* Define to 1 if you have POSIX threads. */
#define HAVE_PTHREAD 1

/* Define to 1 if you have the <pthread.h> header file. */
#define HAVE_PTHREAD_H 1

/* Define to 1 if the pthread_sigmask function can be used (despite bugs). */
#define HAVE_PTHREAD_SIGMASK 1

/* Define if the system supports pty devices. */
#define HAVE_PTYS 1

/* Define to 1 if you have the <pty.h> header file. */
#define HAVE_PTY_H 1

/* Define to 1 if you have the `putenv' function. */
#define HAVE_PUTENV 1

/* Define to 1 if you have the <pwd.h> header file. */
#define HAVE_PWD_H 1

/* Define to 1 if you have the `random' function. */
#define HAVE_RANDOM 1

/* Define to 1 if you have the `readlink' function. */
#define HAVE_READLINK 1

/* Define to 1 if you have the `readlinkat' function. */
#define HAVE_READLINKAT 1

/* Define to 1 if you have the `recvfrom' function. */
#define HAVE_RECVFROM 1

/* Define to 1 if res_init is available. */
#define HAVE_RES_INIT 1

/* Define to 1 if you have the `rint' function. */
#define HAVE_RINT 1

/* Define to 1 if using librsvg. */
#define HAVE_RSVG 1

/* Define to 1 if you have the `secure_getenv' function. */
#define HAVE_SECURE_GETENV 1

/* Define to 1 if you have the `select' function. */
#define HAVE_SELECT 1

/* Define to 1 if you have the `sendto' function. */
#define HAVE_SENDTO 1

/* Define to 1 if you have the `setdtablesize' function. */
/* #undef HAVE_SETDTABLESIZE */

/* Define to 1 if you have the `setitimer' function. */
#define HAVE_SETITIMER 1

/* Define to 1 if you have the `setlocale' function. */
#define HAVE_SETLOCALE 1

/* Define to 1 if you have the `setrlimit' function. */
#define HAVE_SETRLIMIT 1

/* Define to 1 if you have the `shutdown' function. */
#define HAVE_SHUTDOWN 1

/* Define to 1 if you have the `sig2str' function. */
/* #undef HAVE_SIG2STR */

/* Define to 1 if 'sig_atomic_t' is a signed integer type. */
/* #undef HAVE_SIGNED_SIG_ATOMIC_T */

/* Define to 1 if 'wchar_t' is a signed integer type. */
/* #undef HAVE_SIGNED_WCHAR_T */

/* Define to 1 if 'wint_t' is a signed integer type. */
/* #undef HAVE_SIGNED_WINT_T */

/* Define to 1 if sigsetjmp and siglongjmp work. */
#define HAVE_SIGSETJMP 1

/* Define to 1 if the system has the type `sigset_t'. */
#define HAVE_SIGSET_T 1

/* Define to 1 if you have the `snprintf' function. */
#define HAVE_SNPRINTF 1

/* Define if the system supports 4.2-compatible sockets. */
#define HAVE_SOCKETS 1

/* Define to 1 if you have sound support. */
#define HAVE_SOUND 1

/* Define to 1 if you have the <soundcard.h> header file. */
/* #undef HAVE_SOUNDCARD_H */

/* Define to 1 if C stack overflow can be handled in some cases. */
#define HAVE_STACK_OVERFLOW_HANDLING 1

/* Define to 1 if you have the `statacl' function. */
/* #undef HAVE_STATACL */

/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1

/* Define to 1 if you have the <stdio_ext.h> header file. */
#define HAVE_STDIO_EXT_H 1

/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1

/* Define to 1 if you have the `stpcpy' function. */
#define HAVE_STPCPY 1

/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1

/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1

/* Define to 1 if you have the `strsignal' function. */
#define HAVE_STRSIGNAL 1

/* Define to 1 if you have the `strtoimax' function. */
#define HAVE_STRTOIMAX 1

/* Define to 1 if you have the `strtoll' function. */
/* #undef HAVE_STRTOLL */

/* Define to 1 if you have the `strtoull' function. */
/* #undef HAVE_STRTOULL */

/* Define to 1 if you have the `strtoumax' function. */
#define HAVE_STRTOUMAX 1

/* Define to 1 if 'struct __attribute__ ((aligned (N)))' aligns the structure
   to an N-byte boundary. */
#define HAVE_STRUCT_ATTRIBUTE_ALIGNED 1

/* Define to 1 if `ifr_addr' is a member of `struct ifreq'. */
#define HAVE_STRUCT_IFREQ_IFR_ADDR 1

/* Define to 1 if `ifr_addr.sa_len' is a member of `struct ifreq'. */
/* #undef HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN */

/* Define to 1 if `ifr_broadaddr' is a member of `struct ifreq'. */
#define HAVE_STRUCT_IFREQ_IFR_BROADADDR 1

/* Define to 1 if `ifr_flags' is a member of `struct ifreq'. */
#define HAVE_STRUCT_IFREQ_IFR_FLAGS 1

/* Define to 1 if `ifr_hwaddr' is a member of `struct ifreq'. */
#define HAVE_STRUCT_IFREQ_IFR_HWADDR 1

/* Define to 1 if `ifr_netmask' is a member of `struct ifreq'. */
#define HAVE_STRUCT_IFREQ_IFR_NETMASK 1

/* Define to 1 if `n_un.n_name' is a member of `struct nlist'. */
/* #undef HAVE_STRUCT_NLIST_N_UN_N_NAME */

/* Define to 1 if `st_atimensec' is a member of `struct stat'. */
/* #undef HAVE_STRUCT_STAT_ST_ATIMENSEC */

/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */
/* #undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC */

/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */
/* #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC */

/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */
#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1

/* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */
/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC */

/* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */
/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC */

/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */
/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC */

/* Define to 1 if `tm_zone' is a member of `struct tm'. */
#define HAVE_STRUCT_TM_TM_ZONE 1

/* Define to 1 if `unicode' is a member of `struct unipair'. */
#define HAVE_STRUCT_UNIPAIR_UNICODE 1

/* Define if struct utimbuf is declared -- usually in <utime.h>. Some systems
   have utime.h but don't declare the struct anywhere. */
#define HAVE_STRUCT_UTIMBUF 1

/* Define if struct stat has an st_dm_mode member. */
/* #undef HAVE_ST_DM_MODE */

/* Define to 1 if you have the `symlink' function. */
#define HAVE_SYMLINK 1

/* Define to 1 if you have the `sync' function. */
#define HAVE_SYNC 1

/* Define to 1 if you have the <sys/acl.h> header file. */
#define HAVE_SYS_ACL_H 1

/* Define to 1 if you have the <sys/bitypes.h> header file. */
/* #undef HAVE_SYS_BITYPES_H */

/* Define to 1 if you have the <sys/inttypes.h> header file. */
/* #undef HAVE_SYS_INTTYPES_H */

/* Define to 1 if you have the <sys/loadavg.h> header file. */
/* #undef HAVE_SYS_LOADAVG_H */

/* Define to 1 if you have the <sys/param.h> header file. */
#define HAVE_SYS_PARAM_H 1

/* Define to 1 if you have the <sys/resource.h> header file. */
#define HAVE_SYS_RESOURCE_H 1

/* Define to 1 if you have the <sys/select.h> header file. */
#define HAVE_SYS_SELECT_H 1

/* Define to 1 if you have the <sys/socket.h> header file. */
#define HAVE_SYS_SOCKET_H 1

/* Define to 1 if you have the <sys/soundcard.h> header file. */
#define HAVE_SYS_SOUNDCARD_H 1

/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1

/* Define to 1 if you have the <sys/sysinfo.h> header file. */
#define HAVE_SYS_SYSINFO_H 1

/* Define to 1 if you have the <sys/systeminfo.h> header file. */
/* #undef HAVE_SYS_SYSTEMINFO_H */

/* Define to 1 if you have the <sys/timeb.h> header file. */
/* #undef HAVE_SYS_TIMEB_H */

/* Define to 1 if you have the <sys/time.h> header file. */
#define HAVE_SYS_TIME_H 1

/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1

/* Define to 1 if you have the <sys/un.h> header file. */
#define HAVE_SYS_UN_H 1

/* Define to 1 if you have the <sys/utsname.h> header file. */
#define HAVE_SYS_UTSNAME_H 1

/* Define to 1 if you have the <sys/vlimit.h> header file. */
#define HAVE_SYS_VLIMIT_H 1

/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
#define HAVE_SYS_WAIT_H 1

/* Define to 1 if you have the <term.h> header file. */
#define HAVE_TERM_H 1

/* Define to 1 if you have the tiff library (-ltiff). */
#define HAVE_TIFF 1

/* Define to 1 if you have the `timegm' function. */
#define HAVE_TIMEGM 1

/* Define to 1 if timerfd functions are supported as in GNU/Linux. */
#define HAVE_TIMERFD 1

/* Define to 1 if you have the `timer_settime' function. */
#define HAVE_TIMER_SETTIME 1

/* Define to 1 if the system has the type `timezone_t'. */
/* #undef HAVE_TIMEZONE_T */

/* Define if struct tm has the tm_gmtoff member. */
#define HAVE_TM_GMTOFF 1

/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
   `HAVE_STRUCT_TM_TM_ZONE' instead. */
#define HAVE_TM_ZONE 1

/* Define to 1 if you have the `touchlock' function. */
/* #undef HAVE_TOUCHLOCK */

/* Define to 1 if you don't have `tm_zone' but do have the external array
   `tzname'. */
/* #undef HAVE_TZNAME */

/* Define to 1 if you have the `tzset' function. */
#define HAVE_TZSET 1

/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1

/* Define to 1 if the system has the type 'unsigned long long int'. */
#define HAVE_UNSIGNED_LONG_LONG_INT 1

/* Define to 1 if you have the <util.h> header file. */
/* #undef HAVE_UTIL_H */

/* Define to 1 if you have the `utimensat' function. */
#define HAVE_UTIMENSAT 1

/* Define to 1 if you have the <utime.h> header file. */
#define HAVE_UTIME_H 1

/* Define to 1 if you have the <utmp.h> header file. */
#define HAVE_UTMP_H 1

/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
#define HAVE_VALGRIND_VALGRIND_H 1

/* Define to 1 if you have the `vfork' function. */
#define HAVE_VFORK 1

/* Define to 1 if you have the <vfork.h> header file. */
/* #undef HAVE_VFORK_H */

/* Define to 1 to use w32notify. */
/* #undef HAVE_W32NOTIFY */

/* Define to 1 if you have the <wchar.h> header file. */
#define HAVE_WCHAR_H 1

/* Define if you have the 'wchar_t' type. */
#define HAVE_WCHAR_T 1

/* Define if you have a window system. */
#define HAVE_WINDOW_SYSTEM 1

/* Define to 1 if you have the <winsock2.h> header file. */
/* #undef HAVE_WINSOCK2_H */

/* Define to 1 if `fork' works. */
#define HAVE_WORKING_FORK 1

/* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX
   7.1. */
/* #undef HAVE_WORKING_FSTATAT_ZERO_FLAG */

/* Define if utimes works properly. */
#define HAVE_WORKING_UTIMES 1

/* Define to 1 if `vfork' works. */
#define HAVE_WORKING_VFORK 1

/* Define to 1 if you have the <ws2tcpip.h> header file. */
/* #undef HAVE_WS2TCPIP_H */

/* Define to 1 if you want to use version 11 of X windows. */
#define HAVE_X11 1

/* Define to 1 if you have the X11R6 or newer version of Xlib. */
#define HAVE_X11R6 1

/* Define if you have usable X11R6-style XIM support. */
#define HAVE_X11R6_XIM 1

/* Define to 1 if you have the X11R6 or newer version of Xt. */
/* #undef HAVE_X11XTR6 */

/* Define to 1 if you have the Xaw3d library (-lXaw3d). */
/* #undef HAVE_XAW3D */

/* Define to 1 if you have the Xfixes extension. */
#define HAVE_XFIXES 1

/* Define to 1 if you have the Xft library. */
#define HAVE_XFT 1

/* Define to 1 if XIM is available */
#define HAVE_XIM 1

/* Define to 1 if you have the Xinerama extension. */
#define HAVE_XINERAMA 1

/* Define to 1 if you have the Xkb extension. */
#define HAVE_XKB 1

/* Define to 1 if you have the Xpm library (-lXpm). */
#define HAVE_XPM 1

/* Define to 1 if you have the XRandr extension. */
#define HAVE_XRANDR 1

/* Define to 1 if you have the `XrmSetDatabase' function. */
#define HAVE_XRMSETDATABASE 1

/* Define to 1 if you have the `XRRGetOutputPrimary' function. */
#define HAVE_XRRGETOUTPUTPRIMARY 1

/* Define to 1 if you have the `XRRGetScreenResourcesCurrent' function. */
#define HAVE_XRRGETSCREENRESOURCESCURRENT 1

/* Define to 1 if you have the `XScreenNumberOfScreen' function. */
#define HAVE_XSCREENNUMBEROFSCREEN 1

/* Define to 1 if you have the `XScreenResourceString' function. */
#define HAVE_XSCREENRESOURCESTRING 1

/* Define to 1 if you have xwidgets support. */
/* #undef HAVE_XWIDGETS */

/* Define if you have usable i18n support. */
#define HAVE_X_I18N 1

/* Define to 1 if you have the SM library (-lSM). */
#define HAVE_X_SM 1

/* Define to 1 if you want to use the X window system. */
#define HAVE_X_WINDOWS 1

/* Define to 1 if you have the zlib library (-lz). */
#define HAVE_ZLIB 1

/* Define to 1 if you have the `_ftime' function. */
/* #undef HAVE__FTIME */

/* Define to 1 if _setjmp and _longjmp work. */
#define HAVE__SETJMP 1

/* Define to 1 if you have the '__builtin_unwind_init' function. */
#define HAVE___BUILTIN_UNWIND_INIT 1

/* Define to 1 if you have the `__executable_start' function. */
#define HAVE___EXECUTABLE_START 1

/* Define to 1 if you have the `__secure_getenv' function. */
/* #undef HAVE___SECURE_GETENV */

/* Define to support using a Hesiod database to find the POP server. */
/* #undef HESIOD */

/* Define if the system is HPUX. */
/* #undef HPUX */

/* Define to use gmalloc before dumping and the system malloc after. */
/* #undef HYBRID_MALLOC */

/* This is substituted when $TERM is "internal". */
/* #undef INTERNAL_TERMINAL */

/* Define to read input using SIGIO. */
#define INTERRUPT_INPUT 1

/* Define if the system is IRIX. */
/* #undef IRIX6_5 */

/* Returns true if character is any form of separator. */
#define IS_ANY_SEP(_c_) (IS_DIRECTORY_SEP (_c_))

/* Returns true if character is a device separator. */
#define IS_DEVICE_SEP(_c_) 0

/* Returns true if character is a directory separator. */
#define IS_DIRECTORY_SEP(_c_) ((_c_) == DIRECTORY_SEP)

/* Define to support Kerberos-authenticated POP mail retrieval. */
/* #undef KERBEROS */

/* Define to use Kerberos 5 instead of Kerberos 4. */
/* #undef KERBEROS5 */

/* Define to 1 if Linux sysinfo sizes are in multiples of mem_unit bytes. */
#define LINUX_SYSINFO_UNIT 1

/* Define to 1 if 'lstat' dereferences a symlink specified with a trailing
   slash. */
#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1

/* String giving fallback POP mail host. */
/* #undef MAILHOST */

/* Define to unlink, rather than empty, mail spool after reading. */
/* #undef MAIL_UNLINK_SPOOL */

/* Define if the mailer uses flock to interlock the mail spool. */
/* #undef MAIL_USE_FLOCK */

/* Define if the mailer uses lockf to interlock the mail spool. */
/* #undef MAIL_USE_LOCKF */

/* Define to support POP mail retrieval. */
#define MAIL_USE_POP 1

/* System extension for dynamic libraries */
/* #undef MODULES_SUFFIX */

/* Define if the system is MS DOS. */
/* #undef MSDOS */

/* Define if system's imake configuration file defines 'NeedWidePrototypes' as
   'NO'. */
#define NARROWPROTO 1

/* Define if XEditRes should not be used. */
/* #undef NO_EDITRES */

/* Minimum value of NSIG. */
/* #undef NSIG_MINIMUM */

/* Define to 1 if you are using NS windowing under MacOS X. */
/* #undef NS_IMPL_COCOA */

/* Define to 1 if you are using NS windowing under GNUstep. */
/* #undef NS_IMPL_GNUSTEP */

/* Name of the file to open to get a null file, or a data sink. */
#define NULL_DEVICE "/dev/null"

/* Define to 1 if the nlist n_name member is a pointer */
/* #undef N_NAME_POINTER */

/* Name of package */
#define PACKAGE "emacs"

/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "bug-gnu-emacs@gnu.org"

/* Define to the full name of this package. */
#define PACKAGE_NAME "GNU Emacs"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING "GNU Emacs 25.0.92"

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "emacs"

/* Define to the home page for this package. */
#define PACKAGE_URL "http://www.gnu.org/software/emacs/"

/* Define to the version of this package. */
#define PACKAGE_VERSION "25.0.92"

/* the number of pending output bytes on stream 'fp' */
/* #undef PENDING_OUTPUT_N_BYTES */

/* Define to empty to suppress deprecation warnings when building with
   --enable-gcc-warnings and with libpng versions before 1.5, which lack
   png_longjmp. */
/* #undef PNG_DEPSTRUCT */

/* Define if you poll periodically to detect C-g. */
#define POLL_FOR_INPUT 1

/* Define if process_send_signal should use VSUSP instead of VSWTCH. */
/* #undef PREFER_VSUSP */

/* Define to 1 if pthread_sigmask(), when it fails, returns -1 and sets errno.
   */
/* #undef PTHREAD_SIGMASK_FAILS_WITH_ERRNO */

/* Define to 1 if pthread_sigmask may return 0 and have no effect. */
/* #undef PTHREAD_SIGMASK_INEFFECTIVE */

/* Define to 1 if pthread_sigmask() unblocks signals incorrectly. */
/* #undef PTHREAD_SIGMASK_UNBLOCK_BUG */

/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
   'ptrdiff_t'. */
/* #undef PTRDIFF_T_SUFFIX */

/* How to iterate over PTYs. */
#define PTY_ITERATION int i; for (i = 0; i < 1; i++)

/* How to get the device name of the control end of a PTY, if non-standard. */
#define PTY_NAME_SPRINTF /**/

/* How to open a PTY, if non-standard. */
#define PTY_OPEN do { fd = posix_openpt (O_RDWR | O_CLOEXEC | O_NOCTTY); if (fd < 0 && errno == EINVAL) fd = posix_openpt (O_RDWR | O_NOCTTY); } while (false)

/* How to get device name of the tty end of a PTY, if non-standard. */
#define PTY_TTY_NAME_SPRINTF { char *ptyname = 0; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); if (grantpt (fd) != -1 && unlockpt (fd) != -1) ptyname = ptsname(fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (!ptyname) { emacs_close (fd); return -1; } snprintf (pty_name, PTY_NAME_SIZE, "%s", ptyname); }

/* Define to 1 if readlink fails to recognize a trailing slash. */
/* #undef READLINK_TRAILING_SLASH_BUG */

/* Define REL_ALLOC if you want to use the relocating allocator for buffer
   space. */
/* #undef REL_ALLOC */

/* Define to 1 if gnulib's dirfd() replacement is used. */
/* #undef REPLACE_DIRFD */

/* Define to 1 if stat needs help when passed a directory name with a trailing
   slash */
/* #undef REPLACE_FUNC_STAT_DIR */

/* Define to 1 if stat needs help when passed a file name with a trailing
   slash */
/* #undef REPLACE_FUNC_STAT_FILE */

/* Define if emacs.c needs to call run_time_remap; for HPUX. */
/* #undef RUN_TIME_REMAP */

/* Character that separates PATH elements. */
#define SEPCHAR ':'

/* How to set up a slave PTY, if needed. */
/* #undef SETUP_SLAVE_PTY */

/* Make process_send_signal work by "typing" a signal character on the pty. */
#define SIGNALS_VIA_CHARACTERS 1

/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
   'sig_atomic_t'. */
/* #undef SIG_ATOMIC_T_SUFFIX */

/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
   'size_t'. */
/* #undef SIZE_T_SUFFIX */

/* Define if the system is Solaris. */
/* #undef SOLARIS2 */

/* If using the C implementation of alloca, define if you know the
   direction of stack growth for your system; otherwise it will be
   automatically deduced at runtime.
	STACK_DIRECTION > 0 => grows toward higher addresses
	STACK_DIRECTION < 0 => grows toward lower addresses
	STACK_DIRECTION = 0 => direction of growth unknown */
/* #undef STACK_DIRECTION */

/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
/* #undef STAT_MACROS_BROKEN */

/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1

/* Define to 1 on System V Release 4. */
/* #undef SVR4 */

/* Define to 1 to use the system memory allocator, even if it is not Doug Lea
   style. */
/* #undef SYSTEM_MALLOC */

/* The type of system you are compiling for; sets 'system-type'. */
#define SYSTEM_TYPE "gnu/linux"

/* Undocumented. */
/* #undef TAB3 */

/* Undocumented. */
/* #undef TABDLY */

/* Define to 1 if you use terminfo instead of termcap. */
#define TERMINFO 1

/* Define to the header for the built-in window system. */
#define TERM_HEADER "gtkutil.h"

/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#define TIME_WITH_SYS_TIME 1

/* Some platforms redefine this. */
/* #undef TIOCSIGSEND */

/* Define to 1 if your <sys/time.h> declares `struct tm'. */
/* #undef TM_IN_SYS_TIME */

/* Define to 1 if the type of the st_atim member of a struct stat is struct
   timespec. */
#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1

/* Define to 1 for Encore UMAX. */
/* #undef UMAX */

/* Define to 1 for Encore UMAX 4.3 that has <inq_status/cpustats.h> instead of
   <sys/cpustats.h>. */
/* #undef UMAX4_3 */

/* Define if the system has Unix98 PTYs. */
#define UNIX98_PTYS 1

/* Define to 1 if FIONREAD is usable. */
#define USABLE_FIONREAD 1

/* Define to 1 if SIGIO is usable. */
#define USABLE_SIGIO 1

/* How to get a user's full name. */
#define USER_FULL_NAME pw->pw_gecos

/* Define to nonzero if you want access control list support. */
#define USE_ACL 1

/* Define to 1 if using cairo. */
/* #undef USE_CAIRO */

/* Define to 1 if using file notifications. */
#define USE_FILE_NOTIFY 1

/* Define to 1 if using GTK. */
#define USE_GTK 1

/* Define to 1 if using the Lucid X toolkit. */
/* #undef USE_LUCID */

/* Define to use mmap to allocate buffer text. */
/* #undef USE_MMAP_FOR_BUFFERS */

/* Define to 1 if using the Motif X toolkit. */
/* #undef USE_MOTIF */

/* Define to 1 if you use ncurses. */
/* #undef USE_NCURSES */

/* Enable extensions on AIX 3, Interix.  */
#ifndef _ALL_SOURCE
# define _ALL_SOURCE 1
#endif
/* Enable general extensions on OS X.  */
#ifndef _DARWIN_C_SOURCE
# define _DARWIN_C_SOURCE 1
#endif
/* Enable GNU extensions on systems that have them.  */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
/* Use GNU style printf and scanf.  */
#ifndef __USE_MINGW_ANSI_STDIO
# define __USE_MINGW_ANSI_STDIO 1
#endif
/* Enable threading extensions on Solaris.  */
#ifndef _POSIX_PTHREAD_SEMANTICS
# define _POSIX_PTHREAD_SEMANTICS 1
#endif
/* Enable extensions on HP NonStop.  */
#ifndef _TANDEM_SOURCE
# define _TANDEM_SOURCE 1
#endif
/* Enable X/Open extensions if necessary.  HP-UX 11.11 defines
   mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of
   whether compiling with -Ae or -D_HPUX_SOURCE=1.  */
#ifndef _XOPEN_SOURCE
/* # undef _XOPEN_SOURCE */
#endif
/* Enable general extensions on Solaris.  */
#ifndef __EXTENSIONS__
# define __EXTENSIONS__ 1
#endif


/* Define to 1 if we should use toolkit scroll bars. */
#define USE_TOOLKIT_SCROLL_BARS 1

/* Define to 1 if you have the XCB library and X11-XCB library for mixed
   X11/XCB programming. */
#define USE_XCB 1

/* Define to 1 if we should use XIM, if it is available. */
#define USE_XIM 1

/* Define to 1 if using an X toolkit. */
/* #undef USE_X_TOOLKIT */

/* Define if the system is compatible with System III. */
#define USG /**/

/* Define if the system is compatible with System V Release 4. */
/* #undef USG5_4 */

/* Define for USG systems where it works to open a pty's tty in the parent
   process, then close and reopen it in the child. */
/* #undef USG_SUBTTY_WORKS */

/* Version number of package */
#define VERSION "25.0.92"

/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
   'wchar_t'. */
/* #undef WCHAR_T_SUFFIX */

/* Use long long for EMACS_INT if available. */
/* #undef WIDE_EMACS_INT */

/* Define if compiling for native MS Windows. */
/* #undef WINDOWSNT */

/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
   'wint_t'. */
/* #undef WINT_T_SUFFIX */

/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
   significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
#  define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
/* #  undef WORDS_BIGENDIAN */
# endif
#endif

/* Define this to check for malloc buffer overrun. */
/* #undef XMALLOC_OVERRUN_CHECK */

/* Compensate for a bug in Xos.h on some systems, where it requires time.h. */
/* #undef XOS_NEEDS_TIME_H */

/* Define to the type of the 6th arg of XRegisterIMInstantiateCallback, either
   XPointer or XPointer*. */
#define XRegisterIMInstantiateCallback_arg6 XPointer

/* Define if the system is AIX. */
/* #undef _AIX */

/* Enable large inode numbers on Mac OS X 10.5. */
#define _DARWIN_USE_64_BIT_INODE 1

/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */

/* Define to 1 if Gnulib overrides 'struct stat' on Windows so that struct
   stat.st_size becomes 64-bit. */
/* #undef _GL_WINDOWS_64_BIT_ST_SIZE */

/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
/* #undef _LARGEFILE_SOURCE */

/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */

/* Define to 1 if on MINIX. */
/* #undef _MINIX */

/* Define if GNUstep uses ObjC exceptions. */
/* #undef _NATIVE_OBJC_EXCEPTIONS */

/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */
/* #undef _NETBSD_SOURCE */

/* The _Noreturn keyword of C11.  */
#if ! (defined _Noreturn \
       || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
      || 0x5110 <= __SUNPRO_C)
#  define _Noreturn __attribute__ ((__noreturn__))
# elif defined _MSC_VER && 1200 <= _MSC_VER
#  define _Noreturn __declspec (noreturn)
# else
#  define _Noreturn
# endif
#endif


/* Define to 2 if the system does not provide POSIX.1 features except with
   this defined. */
/* #undef _POSIX_1_SOURCE */

/* Define to 1 if you need to in order for 'stat' and other things to work. */
/* #undef _POSIX_SOURCE */

/* Define to 1 if your system requires this in multithreaded code. */
/* #undef _REENTRANT */

/* Needed for system_process_attributes on Solaris. */
/* #undef _STRUCTURED_PROC */

/* Define to 1 if your system requires this in multithreaded code. */
/* #undef _THREAD_SAFE */

/* Define to rpl_ if the getopt replacement functions and variables should be
   used. */
/* #undef __GETOPT_PREFIX */

/* Define to 1 if C does not support variable-length arrays, and if the
   compiler does not already define this. */
/* #undef __STDC_NO_VLA__ */

/* Some platforms that do not use configure define this to include extra
   configuration information. */
/* #undef config_opsysfile */

/* Please see the Gnulib manual for how to use these macros.

   Suppress extern inline with HP-UX cc, as it appears to be broken; see
   <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.

   Suppress extern inline with Sun C in standards-conformance mode, as it
   mishandles inline functions that call each other.  E.g., for 'inline void f
   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
   'reference to static identifier "f" in extern inline function'.
   This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.

   Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
   on configurations that mistakenly use 'static inline' to implement
   functions or macros in standard C headers like <ctype.h>.  For example,
   if isdigit is mistakenly implemented via a static inline function,
   a program containing an extern inline function that calls isdigit
   may not work since the C standard prohibits extern inline functions
   from calling static functions.  This bug is known to occur on:

     OS X 10.8 and earlier; see:
     http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html

     DragonFly; see
     http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log

     FreeBSD; see:
     http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html

   OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
   for clang but remains for g++; see <http://trac.macports.org/ticket/41033>.
   Assume DragonFly and FreeBSD will be similar.  */
#if (((defined __APPLE__ && defined __MACH__) \
      || defined __DragonFly__ || defined __FreeBSD__) \
     && (defined __header_inline \
         ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
            && ! defined __clang__) \
         : ((! defined _DONT_USE_CTYPE_INLINE_ \
             && (defined __GNUC__ || defined __cplusplus)) \
            || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
                && defined __GNUC__ && ! defined __cplusplus))))
# define _GL_EXTERN_INLINE_STDHEADER_BUG
#endif
#if ((__GNUC__ \
      ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
      : (199901L <= __STDC_VERSION__ \
         && !defined __HP_cc \
         && !(defined __SUNPRO_C && __STDC__))) \
     && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
# define _GL_INLINE inline
# define _GL_EXTERN_INLINE extern inline
# define _GL_EXTERN_INLINE_IN_USE
#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
       && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
   /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
#  define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
# else
#  define _GL_INLINE extern inline
# endif
# define _GL_EXTERN_INLINE extern
# define _GL_EXTERN_INLINE_IN_USE
#else
# define _GL_INLINE static _GL_UNUSED
# define _GL_EXTERN_INLINE static _GL_UNUSED
#endif

/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
   suppress bogus "no previous prototype for 'FOO'"
   and "no previous declaration for 'FOO'" diagnostics,
   when FOO is an inline function in the header; see
   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>.  */
#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
#  define _GL_INLINE_HEADER_CONST_PRAGMA
# else
#  define _GL_INLINE_HEADER_CONST_PRAGMA \
     _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
# endif
# define _GL_INLINE_HEADER_BEGIN \
    _Pragma ("GCC diagnostic push") \
    _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
    _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
    _GL_INLINE_HEADER_CONST_PRAGMA
# define _GL_INLINE_HEADER_END \
    _Pragma ("GCC diagnostic pop")
#else
# define _GL_INLINE_HEADER_BEGIN
# define _GL_INLINE_HEADER_END
#endif

/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
   the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
   earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
   __APPLE__ && __MACH__ test for Mac OS X.
   __APPLE_CC__ tests for the Apple compiler and its version.
   __STDC_VERSION__ tests for the C99 mode.  */
#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
# define __GNUC_STDC_INLINE__ 1
#endif

/* Define to 1 if the compiler is checking for lint. */
#define lint 1

/* Define to a type if <wchar.h> does not define. */
/* #undef mbstate_t */

/* Define to the real name of the mktime_internal function. */
/* #undef mktime_internal */

/* Define to `int' if <sys/types.h> does not define. */
/* #undef mode_t */

/* Define to the name of the strftime replacement function. */
#define my_strftime nstrftime

/* Define to the type of st_nlink in struct stat, or a supertype. */
/* #undef nlink_t */

/* Define to `int' if <sys/types.h> does not define. */
/* #undef pid_t */

/* Define to the equivalent of the C99 'restrict' keyword, or to
   nothing if this is not supported.  Do not define if restrict is
   supported directly.  */
#define restrict __restrict
/* Work around a bug in Sun C++: it does not support _Restrict or
   __restrict__, even though the corresponding Sun C compiler ends up with
   "#define restrict _Restrict" or "#define restrict __restrict__" in the
   previous line.  Perhaps some future version of Sun C++ will work with
   restrict; if so, hopefully it defines __RESTRICT like Sun C does.  */
#if defined __SUNPRO_CC && !defined __RESTRICT
# define _Restrict
# define __restrict__
#endif

/* type to use in place of socklen_t if not defined */
/* #undef socklen_t */

/* Define as a signed type of the same size as size_t. */
/* #undef ssize_t */

/* Define to enable asynchronous subprocesses. */
#define subprocesses 1

/* Define as a marker that can be attached to declarations that might not
    be used.  This helps to reduce warnings, such as from
    GCC -Wunused-parameter.  */
#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
# define _GL_UNUSED __attribute__ ((__unused__))
#else
# define _GL_UNUSED
#endif
/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name
   is a misnomer outside of parameter lists.  */
#define _UNUSED_PARAMETER_ _GL_UNUSED

/* gcc supports the "unused" attribute on possibly unused labels, and
   g++ has since version 4.5.  Note to support C++ as well as C,
   _GL_UNUSED_LABEL should be used with a trailing ;  */
#if !defined __cplusplus || __GNUC__ > 4 \
    || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
# define _GL_UNUSED_LABEL _GL_UNUSED
#else
# define _GL_UNUSED_LABEL
#endif

/* The __pure__ attribute was added in gcc 2.96.  */
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
#else
# define _GL_ATTRIBUTE_PURE /* empty */
#endif

/* The __const__ attribute was added in gcc 2.95.  */
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
#else
# define _GL_ATTRIBUTE_CONST /* empty */
#endif


/* Define as `fork' if `vfork' does not work. */
/* #undef vfork */

#include <conf_post.h>

#endif /* EMACS_CONFIG_H */

/*
Local Variables:
mode: c
End:
*/


^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-02 18:08 bug#22884: 25.0.92; C/l mode editing takes waaaayy too long Paul Eggert
@ 2016-03-03 12:49 ` Alan Mackenzie
  2016-03-03 17:54   ` Paul Eggert
  2016-03-03 20:40   ` Eli Zaretskii
  2016-03-15  3:07 ` Stefan Monnier
  2016-05-13 19:35 ` Paul Eggert
  2 siblings, 2 replies; 34+ messages in thread
From: Alan Mackenzie @ 2016-03-03 12:49 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 22884

Hello, Paul.

On Wed, Mar 02, 2016 at 10:08:53AM -0800, Paul Eggert wrote:
> I've been noticing this problem for a bit and figured it'd get fixed but 
> it hasn't so here is a bug report.

> With the Emacs 25 pretests, it takes waaaaayyy too long to edit some C 
> code. To reproduce the problem use the attached file (taken from the 
> Emacs source code) and run:

> emacs -Q config.h
> M-x goto-line RET 1661 RET / /

> On my six-year-old desktop the second '/' takes about 10 seconds to 
> echo.  This sort of thing makes Emacs effectively unusable for editing 
> config.h.

The problem is in config.h.  At line 14, inside a comment, appears the
following string:
    "(at your option) any later version."
.  The open paren is at column zero, so the fancy code in syntax.c then
fails to recognise the comment as a comment.  CC Mode is then
effectively communicating across the continent between L1661 and L14 by
carrier pigeon in the belief that there is non-syntactic-ws code at L14.
(Syntactic whitespace includes comments and preprocessor constructs.)

Inserting a backslash at the beginning of L14 solves the problem, as
does setting open-paren-in-column-0-is-defun-start to nil.

The next problem is that there are around 324 occurrences of "(" at
column zero in the src directory, and quite a few in lib and lib-src.
Most of them are in comments, some of them are parameter lists, and some
of them (e.g. in lisp.h) are wierd constructs of some sort.  These
contravene GNU coding standards and really need sorting out.

> In GNU Emacs 25.0.92.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.18.7)
>   of 2016-03-02 built on penguin.cs.ucla.edu
> Repository revision: 100346aa226e4eacc56f390c099bb9aab585b5f4
> Windowing system distributor 'Fedora Project', version 11.0.11800000
> Configured using:
>   'configure --enable-gcc-warnings'

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-03 12:49 ` Alan Mackenzie
@ 2016-03-03 17:54   ` Paul Eggert
  2016-03-03 19:23     ` Alan Mackenzie
  2016-03-03 20:51     ` Eli Zaretskii
  2016-03-03 20:40   ` Eli Zaretskii
  1 sibling, 2 replies; 34+ messages in thread
From: Paul Eggert @ 2016-03-03 17:54 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: 22884

[-- Attachment #1: Type: text/plain, Size: 1458 bytes --]

On 03/03/2016 04:49 AM, Alan Mackenzie wrote:
> Inserting a backslash at the beginning of L14 solves the problem, as 
> does setting open-paren-in-column-0-is-defun-start to nil.

I presume the latter is not really on the table. We can't put a 
backslash there, as it's license text and shouldn't be fiddled with in 
that way. We could fold it differently (as in the attached proposed 
patch, which does this only for config.h and friends).

> The next problem is that there are around 324 occurrences of "(" at 
> column zero in the src directory, and quite a few in lib and lib-src. 
> Most of them are in comments, some of them are parameter lists, and 
> some of them (e.g. in lisp.h) are wierd constructs of some sort. These 
> contravene GNU coding standards and really need sorting out.

The lisp.h constructs are weird, but they don't violate the GNU coding 
standards as the parens at the start of a line do indeed mark the start 
of a function definition. Do these parens break cc-mode somehow? If so, 
what's the breakage? and how would you suggest reformatting lisp.h 
(and/or fixing cc-mode)?

The attached proposed patch fixes all the problems I found, except (1) 
it leaves license wording alone for the most part (config.h excepted, 
since the performance disaster is there), and (2) it leaves the weird 
lisp.h constructs alone as per the above paragraph. Is this the sort of 
thing you had in mind (except I guess we need to fix (1) too?).

[-- Attachment #2: emacs.diff --]
[-- Type: text/x-patch, Size: 62105 bytes --]

diff --git a/configure.ac b/configure.ac
index d42b42e..370cb54 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5194,8 +5194,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 182cb4c..a15c950 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -680,8 +680,8 @@ static const char *Objc_suffixes [] =
 static const char Objc_help [] =
 "In Objective C code, tags include Objective C definitions for classes,\n\
 class categories, methods and protocols.  Tags for variables and\n\
-functions in classes are named 'CLASS::VARIABLE' and 'CLASS::FUNCTION'.\n\
-(Use --help --lang=c --lang=objc --lang=java for full help.)";
+functions in classes are named 'CLASS::VARIABLE' and 'CLASS::FUNCTION'.\
+\n(Use --help --lang=c --lang=objc --lang=java for full help.)";
 
 static const char *Pascal_suffixes [] =
   { "p", "pas", NULL };
diff --git a/lib-src/hexl.c b/lib-src/hexl.c
index 833ea50..d727726 100644
--- a/lib-src/hexl.c
+++ b/lib-src/hexl.c
@@ -1,8 +1,7 @@
 /* Convert files for Emacs Hexl mode.
    Copyright (C) 1989, 2001-2016 Free Software Foundation, Inc.
 
-Author: Keith Gabryelski
-(according to authors.el)
+Author: Keith Gabryelski (according to authors.el)
 
 This file is not considered part of GNU Emacs.
 
diff --git a/nt/preprep.c b/nt/preprep.c
index 303e2ef..a74c31c 100644
--- a/nt/preprep.c
+++ b/nt/preprep.c
@@ -34,11 +34,10 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 /* Include relevant definitions from IMAGEHLP.H, which can be found
    in \\win32sdk\mstools\samples\image\include\imagehlp.h. */
 
-PIMAGE_NT_HEADERS
-(__stdcall * pfnCheckSumMappedFile) (LPVOID BaseAddress,
-				     DWORD_PTR FileLength,
-				     PDWORD_PTR HeaderSum,
-				     PDWORD_PTR CheckSum);
+PIMAGE_NT_HEADERS (__stdcall * pfnCheckSumMappedFile) (LPVOID BaseAddress,
+						       DWORD_PTR FileLength,
+						       PDWORD_PTR HeaderSum,
+						       PDWORD_PTR CheckSum);
 
 #undef min
 #undef max
diff --git a/src/buffer.c b/src/buffer.c
index 653e3fe..dba5b3d 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1044,7 +1044,7 @@ DEFUN ("generate-new-buffer-name", Fgenerate_new_buffer_name,
        doc: /* Return a string that is the name of no existing buffer based on NAME.
 If there is no live buffer named NAME, then return NAME.
 Otherwise modify name by appending `<NUMBER>', incrementing NUMBER
-(starting at 2) until an unused name is found, and then return that name.
+\(starting at 2) until an unused name is found, and then return that name.
 Optional second argument IGNORE specifies a name that is okay to use (if
 it is in the sequence to be tried) even if a buffer with that name exists.
 
@@ -3793,10 +3793,10 @@ If omitted, BUFFER defaults to the current buffer.
 BEG and END may be integers or markers.
 The fourth arg FRONT-ADVANCE, if non-nil, makes the marker
 for the front of the overlay advance when text is inserted there
-(which means the text *is not* included in the overlay).
+\(which means the text *is not* included in the overlay).
 The fifth arg REAR-ADVANCE, if non-nil, makes the marker
 for the rear of the overlay advance when text is inserted there
-(which means the text *is* included in the overlay).  */)
+\(which means the text *is* included in the overlay).  */)
   (Lisp_Object beg, Lisp_Object end, Lisp_Object buffer,
    Lisp_Object front_advance, Lisp_Object rear_advance)
 {
@@ -6028,7 +6028,7 @@ between 0.0 and 1.0, inclusive.  */);
 	       doc: /* List of functions to call before each text change.
 Two arguments are passed to each function: the positions of
 the beginning and end of the range of old text to be changed.
-(For an insertion, the beginning and end are at the same place.)
+\(For an insertion, the beginning and end are at the same place.)
 No information is given about the length of the text after the change.
 
 Buffer changes made while executing the `before-change-functions'
@@ -6045,7 +6045,7 @@ from happening repeatedly and making Emacs nonfunctional.  */);
 Three arguments are passed to each function: the positions of
 the beginning and end of the range of changed text,
 and the length in chars of the pre-change text replaced by that range.
-(For an insertion, the pre-change length is zero;
+\(For an insertion, the pre-change length is zero;
 for a deletion, that length is the number of chars deleted,
 and the post-change beginning and end are at the same place.)
 
@@ -6090,7 +6090,7 @@ was modified between BEG and END.  PROPERTY is the property name,
 and VALUE is the old value.
 
 An entry (apply FUN-NAME . ARGS) means undo the change with
-(apply FUN-NAME ARGS).
+\(apply FUN-NAME ARGS).
 
 An entry (apply DELTA BEG END FUN-NAME . ARGS) supports selective undo
 in the active region.  BEG and END is the range affected by this entry
@@ -6250,7 +6250,7 @@ to the default frame line height.  A value of nil means add no extra space.  */)
 		     doc: /* Non-nil means show a cursor in non-selected windows.
 If nil, only shows a cursor in the selected window.
 If t, displays a cursor related to the usual cursor type
-(a solid box becomes hollow, a bar becomes a narrower bar).
+\(a solid box becomes hollow, a bar becomes a narrower bar).
 You can also specify the cursor type as in the `cursor-type' variable.
 Use Custom to set this variable and update the display.  */);
 
diff --git a/src/buffer.h b/src/buffer.h
index 5783bfb..daeff24 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -352,9 +352,9 @@ extern void enlarge_buffer_text (struct buffer *, ptrdiff_t);
 /* Convert PTR, the address of a byte in the buffer, into a byte position.  */
 
 #define PTR_BYTE_POS(ptr) \
-((ptr) - (current_buffer)->text->beg					    \
- - (ptr - (current_buffer)->text->beg <= GPT_BYTE - BEG_BYTE ? 0 : GAP_SIZE) \
- + BEG_BYTE)
+  ((ptr) - (current_buffer)->text->beg					    \
+   - (ptr - (current_buffer)->text->beg <= GPT_BYTE - BEG_BYTE ? 0 : GAP_SIZE) \
+   + BEG_BYTE)
 
 /* Return character at byte position POS.  See the caveat WARNING for
    FETCH_MULTIBYTE_CHAR below.  */
@@ -386,24 +386,24 @@ extern void enlarge_buffer_text (struct buffer *, ptrdiff_t);
    Note that both arguments can be computed more than once.  */
 
 #define BUF_BYTE_ADDRESS(buf, pos) \
-((buf)->text->beg + (pos) - BEG_BYTE		\
- + ((pos) >= (buf)->text->gpt_byte ? (buf)->text->gap_size : 0))
+  ((buf)->text->beg + (pos) - BEG_BYTE \
+   + ((pos) >= (buf)->text->gpt_byte ? (buf)->text->gap_size : 0))
 
 /* Return the address of character at char position POS in buffer BUF.
    Note that both arguments can be computed more than once.  */
 
 #define BUF_CHAR_ADDRESS(buf, pos) \
-((buf)->text->beg + buf_charpos_to_bytepos ((buf), (pos)) - BEG_BYTE	\
- + ((pos) >= (buf)->text->gpt ? (buf)->text->gap_size : 0))
+  ((buf)->text->beg + buf_charpos_to_bytepos ((buf), (pos)) - BEG_BYTE	\
+   + ((pos) >= (buf)->text->gpt ? (buf)->text->gap_size : 0))
 
 /* Convert PTR, the address of a char in buffer BUF,
    into a character position.  */
 
 #define BUF_PTR_BYTE_POS(buf, ptr)				\
-((ptr) - (buf)->text->beg					\
- - (ptr - (buf)->text->beg <= BUF_GPT_BYTE (buf) - BEG_BYTE	\
-    ? 0 : BUF_GAP_SIZE ((buf)))					\
- + BEG_BYTE)
+  ((ptr) - (buf)->text->beg					\
+   - (ptr - (buf)->text->beg <= BUF_GPT_BYTE (buf) - BEG_BYTE	\
+      ? 0 : BUF_GAP_SIZE ((buf)))				\
+   + BEG_BYTE)
 
 /* Return the character at byte position POS in buffer BUF.   */
 
diff --git a/src/bytecode.c b/src/bytecode.c
index 0befe65..b111ac1 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -1996,9 +1996,9 @@ syms_of_bytecode (void)
 
   DEFVAR_LISP ("byte-code-meter", Vbyte_code_meter,
 	       doc: /* A vector of vectors which holds a histogram of byte-code usage.
-(aref (aref byte-code-meter 0) CODE) indicates how many times the byte
+\(aref (aref byte-code-meter 0) CODE) indicates how many times the byte
 opcode CODE has been executed.
-(aref (aref byte-code-meter CODE1) CODE2), where CODE1 is not 0,
+\(aref (aref byte-code-meter CODE1) CODE2), where CODE1 is not 0,
 indicates how many times the byte opcodes CODE1 and CODE2 have been
 executed in succession.  */);
 
diff --git a/src/callproc.c b/src/callproc.c
index 9ad7ef2..34ec3c7 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -1457,7 +1457,7 @@ This function searches `process-environment' for VARIABLE.
 
 If optional parameter ENV is a list, then search this list instead of
 `process-environment', and return t when encountering a negative entry
-(an entry for a variable with no value).  */)
+\(an entry for a variable with no value).  */)
   (Lisp_Object variable, Lisp_Object env)
 {
   char *value;
@@ -1668,7 +1668,7 @@ Each element is a string (directory name) or nil (try default directory).
 
 By default the last element of this list is `exec-directory'. The
 last element is not always used, for example in shell completion
-(`shell-dynamic-complete-command').  */);
+\(`shell-dynamic-complete-command').  */);
 
   DEFVAR_LISP ("exec-suffixes", Vexec_suffixes,
 	       doc: /* List of suffixes to try to find executable file names.
diff --git a/src/category.c b/src/category.c
index 61502f8..39e4f93 100644
--- a/src/category.c
+++ b/src/category.c
@@ -462,7 +462,7 @@ Emacs treats a sequence of word constituent characters as a single
 word (i.e. finds no word boundary between them) only if they belong to
 the same script.  But, exceptions are allowed in the following cases.
 
-(1) The case that characters are in different scripts is controlled
+\(1) The case that characters are in different scripts is controlled
 by the variable `word-combining-categories'.
 
 Emacs finds no word boundary between characters of different scripts
@@ -476,7 +476,7 @@ For instance, to tell that Han characters followed by Hiragana
 characters can form a single word, the element `(?C . ?H)' should be
 in this list.
 
-(2) The case that character are in the same script is controlled by
+\(2) The case that character are in the same script is controlled by
 the variable `word-separating-categories'.
 
 Emacs finds a word boundary between characters of the same script
diff --git a/src/chartab.c b/src/chartab.c
index ec618f3..e6926a9 100644
--- a/src/chartab.c
+++ b/src/chartab.c
@@ -533,7 +533,7 @@ DEFUN ("char-table-parent", Fchar_table_parent, Schar_table_parent,
 The value is either nil or another char-table.
 If CHAR-TABLE holds nil for a given character,
 then the actual applicable value is inherited from the parent char-table
-(or from its parents, if necessary).  */)
+\(or from its parents, if necessary).  */)
   (Lisp_Object char_table)
 {
   CHECK_CHAR_TABLE (char_table);
diff --git a/src/cmds.c b/src/cmds.c
index 3450003..70f8e5b 100644
--- a/src/cmds.c
+++ b/src/cmds.c
@@ -106,7 +106,7 @@ right or to the left on the screen.  This is in contrast with
 DEFUN ("forward-line", Fforward_line, Sforward_line, 0, 1, "^p",
        doc: /* Move N lines forward (backward if N is negative).
 Precisely, if point is on line I, move to the start of line I + N
-("start of line" in the logical order).
+\("start of line" in the logical order).
 If there isn't room, go as far as possible (no error).
 
 Returns the count of lines left to move.  If moving forward,
diff --git a/src/coding.c b/src/coding.c
index e591bed..7c8be8e 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -9800,7 +9800,7 @@ DEFUN ("find-operation-coding-system", Ffind_operation_coding_system,
        doc: /* Choose a coding system for an operation based on the target name.
 The value names a pair of coding systems: (DECODING-SYSTEM . ENCODING-SYSTEM).
 DECODING-SYSTEM is the coding system to use for decoding
-(in case OPERATION does decoding), and ENCODING-SYSTEM is the coding system
+\(in case OPERATION does decoding), and ENCODING-SYSTEM is the coding system
 for encoding (in case OPERATION does encoding).
 
 The first argument OPERATION specifies an I/O primitive:
@@ -11175,7 +11175,7 @@ the cdr part is used for encoding a text to be sent to a process.  */);
 Table of extra Latin codes in the range 128..159 (inclusive).
 This is a vector of length 256.
 If Nth element is non-nil, the existence of code N in a file
-(or output of subprocess) doesn't prevent it to be detected as
+\(or output of subprocess) doesn't prevent it to be detected as
 a coding system of ISO 2022 variant which has a flag
 `accept-latin-extra-code' t (e.g. iso-latin-1) on reading a file
 or reading output of a subprocess.
diff --git a/src/data.c b/src/data.c
index 07f8724..333effd 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1673,7 +1673,7 @@ DEFUN ("make-local-variable", Fmake_local_variable, Smake_local_variable,
        1, 1, "vMake Local Variable: ",
        doc: /* Make VARIABLE have a separate value in the current buffer.
 Other buffers will continue to share a common default value.
-(The buffer-local value of VARIABLE starts out as the same value
+\(The buffer-local value of VARIABLE starts out as the same value
 VARIABLE previously had.  If VARIABLE was void, it remains void.)
 Return VARIABLE.
 
diff --git a/src/dispnew.c b/src/dispnew.c
index f834f35..4f33569 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -5671,7 +5671,7 @@ DEFUN ("sleep-for", Fsleep_for, Ssleep_for, 1, 2, 0,
 SECONDS may be a floating-point value, meaning that you can wait for a
 fraction of a second.  Optional second arg MILLISECONDS specifies an
 additional wait period, in milliseconds; this is for backwards compatibility.
-(Not all operating systems support waiting for a fraction of a second.)  */)
+\(Not all operating systems support waiting for a fraction of a second.)  */)
   (Lisp_Object seconds, Lisp_Object milliseconds)
 {
   double duration = extract_float (seconds);
diff --git a/src/doc.c b/src/doc.c
index a9273f0..a5ce326 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -716,7 +716,7 @@ is not on any keys.
 Each substring of the form \\=\\{MAPVAR} is replaced by a summary of
 the value of MAPVAR as a keymap.  This summary is similar to the one
 produced by `describe-bindings'.  The summary ends in two newlines
-(used by the helper function `help-make-xrefs' to find the end of the
+\(used by the helper function `help-make-xrefs' to find the end of the
 summary).
 
 Each substring of the form \\=\\<MAPVAR> specifies the use of MAPVAR
diff --git a/src/editfns.c b/src/editfns.c
index bd70f0a..7c26d24 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1895,7 +1895,7 @@ DEFUN ("float-time", Ffloat_time, Sfloat_time, 0, 1, 0,
        doc: /* Return the current time, as a float number of seconds since the epoch.
 If SPECIFIED-TIME is given, it is the time to convert to float
 instead of the current time.  The argument should have the form
-(HIGH LOW) or (HIGH LOW USEC) or (HIGH LOW USEC PSEC).  Thus,
+\(HIGH LOW) or (HIGH LOW USEC) or (HIGH LOW USEC PSEC).  Thus,
 you can use times from `current-time' and from `file-attributes'.
 SPECIFIED-TIME can also have the form (HIGH . LOW), but this is
 considered obsolete.
@@ -2284,7 +2284,7 @@ OFFSET is an integer number of seconds ahead of UTC (east of Greenwich).
 NAME is a string giving the name of the time zone.
 If SPECIFIED-TIME is given, the time zone offset is determined from it
 instead of using the current time.  The argument should have the form
-(HIGH LOW . IGNORED).  Thus, you can use times obtained from
+\(HIGH LOW . IGNORED).  Thus, you can use times obtained from
 `current-time' and from `file-attributes'.  SPECIFIED-TIME can also
 have the form (HIGH . LOW), but this is considered obsolete.
 Optional second arg ZONE is omitted or nil for the local time zone, or
@@ -3627,7 +3627,7 @@ save_restriction_restore (Lisp_Object data)
 DEFUN ("save-restriction", Fsave_restriction, Ssave_restriction, 0, UNEVALLED, 0,
        doc: /* Execute BODY, saving and restoring current buffer's restrictions.
 The buffer's restrictions make parts of the beginning and end invisible.
-(They are set up with `narrow-to-region' and eliminated with `widen'.)
+\(They are set up with `narrow-to-region' and eliminated with `widen'.)
 This special form, `save-restriction', saves the current buffer's restrictions
 when it is entered, and restores them when it is exited.
 So any `narrow-to-region' within BODY lasts only until the end of the form.
diff --git a/src/eval.c b/src/eval.c
index 26104a5..ba1ce74 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1191,7 +1191,7 @@ suppresses the debugger).
 When a handler handles an error, control returns to the `condition-case'
 and it executes the handler's BODY...
 with VAR bound to (ERROR-SYMBOL . SIGNAL-DATA) from the error.
-(If VAR is nil, the handler can't access that information.)
+\(If VAR is nil, the handler can't access that information.)
 Then the value of the last BODY form is returned from the `condition-case'
 expression.
 
@@ -2409,7 +2409,7 @@ may be nil, a function, or a list of functions.  Call each
 function in order with arguments ARGS, stopping at the first
 one that returns nil, and return nil.  Otherwise (if all functions
 return non-nil, or if there are no functions to call), return non-nil
-(do not rely on the precise return value in this case).
+\(do not rely on the precise return value in this case).
 
 Do not use `make-local-variable' to make a hook variable buffer-local.
 Instead, use `add-hook' and specify t for the LOCAL argument.
diff --git a/src/fileio.c b/src/fileio.c
index 0372f46..c18524c 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -450,7 +450,7 @@ DEFUN ("unhandled-file-name-directory", Funhandled_file_name_directory,
 A `directly usable' directory name is one that may be used without the
 intervention of any file handler.
 If FILENAME is a directly usable file itself, return
-(file-name-as-directory FILENAME).
+\(file-name-as-directory FILENAME).
 If FILENAME refers to a file which is not accessible from a local process,
 then this should return nil.
 The `call-process' and `start-process' functions use this function to
@@ -741,7 +741,7 @@ DEFUN ("make-temp-name", Fmake_temp_name, Smake_temp_name, 1, 1, 0,
        doc: /* Generate temporary file name (string) starting with PREFIX (a string).
 The Emacs process number forms part of the result, so there is no
 danger of generating a name being used by another Emacs process
-(so long as only a single host can access the containing directory...).
+\(so long as only a single host can access the containing directory...).
 
 This function tries to choose a name that has no existing file.
 For this to work, PREFIX should be an absolute file name.
@@ -757,7 +757,7 @@ normally use `make-temp-file' instead.  */)
 DEFUN ("expand-file-name", Fexpand_file_name, Sexpand_file_name, 1, 2, 0,
        doc: /* Convert filename NAME to absolute, and canonicalize it.
 Second arg DEFAULT-DIRECTORY is directory to start with if NAME is relative
-(does not start with slash or tilde); both the directory name and
+\(does not start with slash or tilde); both the directory name and
 a directory's file name are accepted.  If DEFAULT-DIRECTORY is nil or
 missing, the current buffer's value of `default-directory' is used.
 NAME should be a string that is a valid file name for the underlying
@@ -775,8 +775,8 @@ See also the function `substitute-in-file-name'.
 
 For technical reasons, this function can return correct but
 non-intuitive results for the root directory; for instance,
-(expand-file-name ".." "/") returns "/..".  For this reason, use
-(directory-file-name (file-name-directory dirname)) to traverse a
+\(expand-file-name ".." "/") returns "/..".  For this reason, use
+\(directory-file-name (file-name-directory dirname)) to traverse a
 filesystem tree, not (expand-file-name ".."  dirname).  */)
   (Lisp_Object name, Lisp_Object default_directory)
 {
@@ -1459,7 +1459,7 @@ filesystem tree, not (expand-file-name ".."  dirname).  */)
 DEAFUN ("expand-file-name", Fexpand_file_name, Sexpand_file_name, 1, 2, 0,
   "Convert FILENAME to absolute, and canonicalize it.\n\
 Second arg DEFAULT is directory to start with if FILENAME is relative\n\
-(does not start with slash); if DEFAULT is nil or missing,\n\
+\(does not start with slash); if DEFAULT is nil or missing,\n\
 the current buffer's value of default-directory is used.\n\
 Filenames containing `.' or `..' as components are simplified;\n\
 initial `~/' expands to your home directory.\n\
@@ -2468,7 +2468,7 @@ Use `file-symlink-p' to test for such links.  */)
 DEFUN ("file-executable-p", Ffile_executable_p, Sfile_executable_p, 1, 1, 0,
        doc: /* Return t if FILENAME can be executed by you.
 For a directory, this means you can access files in that directory.
-(It is generally better to use `file-accessible-directory-p' for that
+\(It is generally better to use `file-accessible-directory-p' for that
 purpose, though.)  */)
   (Lisp_Object filename)
 {
@@ -5329,8 +5329,8 @@ DEFUN ("set-visited-file-modtime", Fset_visited_file_modtime,
 Useful if the buffer was not read from the file normally
 or if the file itself has been changed for some known benign reason.
 An argument specifies the modification time value to use
-(instead of that of the visited file), in the form of a list
-(HIGH LOW USEC PSEC) or an integer flag as returned by
+\(instead of that of the visited file), in the form of a list
+\(HIGH LOW USEC PSEC) or an integer flag as returned by
 `visited-file-modtime'.  */)
   (Lisp_Object time_flag)
 {
diff --git a/src/floatfns.c b/src/floatfns.c
index cf485b6..cf1dee3 100644
--- a/src/floatfns.c
+++ b/src/floatfns.c
@@ -170,7 +170,7 @@ Cause an error if X1 or X2 is not a float.  */)
 DEFUN ("frexp", Ffrexp, Sfrexp, 1, 1, 0,
        doc: /* Get significand and exponent of a floating point number.
 Breaks the floating point number X into its binary significand SGNFCAND
-(a floating point value between 0.5 (included) and 1.0 (excluded))
+\(a floating point value between 0.5 (included) and 1.0 (excluded))
 and an integral exponent EXP for 2, such that:
 
   X = SGNFCAND * 2^EXP
@@ -491,7 +491,7 @@ fmod_float (Lisp_Object x, Lisp_Object y)
 \f
 DEFUN ("fceiling", Ffceiling, Sfceiling, 1, 1, 0,
        doc: /* Return the smallest integer no less than ARG, as a float.
-(Round toward +inf.)  */)
+\(Round toward +inf.)  */)
   (Lisp_Object arg)
 {
   double d = extract_float (arg);
@@ -501,7 +501,7 @@ DEFUN ("fceiling", Ffceiling, Sfceiling, 1, 1, 0,
 
 DEFUN ("ffloor", Fffloor, Sffloor, 1, 1, 0,
        doc: /* Return the largest integer no greater than ARG, as a float.
-(Round towards -inf.)  */)
+\(Round towards -inf.)  */)
   (Lisp_Object arg)
 {
   double d = extract_float (arg);
diff --git a/src/fns.c b/src/fns.c
index 86ad333..571bfbe 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -216,7 +216,7 @@ DEFUN ("compare-strings", Fcompare_strings, Scompare_strings, 6, 7, 0,
 The arguments START1, END1, START2, and END2, if non-nil, are
 positions specifying which parts of STR1 or STR2 to compare.  In
 string STR1, compare the part between START1 (inclusive) and END1
-(exclusive).  If START1 is nil, it defaults to 0, the beginning of
+\(exclusive).  If START1 is nil, it defaults to 0, the beginning of
 the string; if END1 is nil, it defaults to the length of the string.
 Likewise, in string STR2, compare the part between START2 and END2.
 Like in `substring', negative values are counted from the end.
@@ -339,7 +339,7 @@ This function obeys the conventions for collation order in your
 locale settings.  For example, punctuation and whitespace characters
 might be considered less significant for sorting:
 
-(sort \\='("11" "12" "1 1" "1 2" "1.1" "1.2") \\='string-collate-lessp)
+\(sort \\='("11" "12" "1 1" "1 2" "1.1" "1.2") \\='string-collate-lessp)
   => ("11" "1 1" "1.1" "12" "1 2" "1.2")
 
 The optional argument LOCALE, a string, overrides the setting of your
@@ -385,7 +385,7 @@ settings.  For example, characters with different coding points but
 the same meaning might be considered as equal, like different grave
 accent Unicode characters:
 
-(string-collate-equalp (string ?\\uFF40) (string ?\\u1FEF))
+\(string-collate-equalp (string ?\\uFF40) (string ?\\u1FEF))
   => t
 
 The optional argument LOCALE, a string, overrides the setting of your
@@ -1018,7 +1018,7 @@ to a multibyte character.  In this case, the returned string is a
 newly created string with no text properties.  If STRING is multibyte
 or entirely ASCII, it is returned unchanged.  In particular, when
 STRING is unibyte and entirely ASCII, the returned string is unibyte.
-(When the characters are all ASCII, Emacs primitives will treat the
+\(When the characters are all ASCII, Emacs primitives will treat the
 string the same way whether it is unibyte or multibyte.)  */)
   (Lisp_Object string)
 {
@@ -1217,14 +1217,14 @@ validate_subarray (Lisp_Object array, Lisp_Object from, Lisp_Object to,
 DEFUN ("substring", Fsubstring, Ssubstring, 1, 3, 0,
        doc: /* Return a new string whose contents are a substring of STRING.
 The returned string consists of the characters between index FROM
-(inclusive) and index TO (exclusive) of STRING.  FROM and TO are
+\(inclusive) and index TO (exclusive) of STRING.  FROM and TO are
 zero-indexed: 0 means the first character of STRING.  Negative values
 are counted from the end of STRING.  If TO is nil, the substring runs
 to the end of STRING.
 
 The STRING argument may also be a vector.  In that case, the return
 value is a new vector that contains the elements between index FROM
-(inclusive) and index TO (exclusive) of that vector argument.
+\(inclusive) and index TO (exclusive) of that vector argument.
 
 With one argument, just copy STRING (with properties, if any).  */)
   (Lisp_Object string, Lisp_Object from, Lisp_Object to)
@@ -2044,7 +2044,7 @@ merge (Lisp_Object org_l1, Lisp_Object org_l2, Lisp_Object pred)
 DEFUN ("plist-get", Fplist_get, Splist_get, 2, 2, 0,
        doc: /* Extract a value from a property list.
 PLIST is a property list, which is a list of the form
-(PROP1 VALUE1 PROP2 VALUE2...).  This function returns the value
+\(PROP1 VALUE1 PROP2 VALUE2...).  This function returns the value
 corresponding to the given PROP, or nil if PROP is not one of the
 properties on the list.  This function never signals an error.  */)
   (Lisp_Object plist, Lisp_Object prop)
@@ -2079,7 +2079,7 @@ This is the last value stored with `(put SYMBOL PROPNAME VALUE)'.  */)
 DEFUN ("plist-put", Fplist_put, Splist_put, 3, 3, 0,
        doc: /* Change value in PLIST of PROP to VAL.
 PLIST is a property list, which is a list of the form
-(PROP1 VALUE1 PROP2 VALUE2 ...).  PROP is a symbol and VAL is any object.
+\(PROP1 VALUE1 PROP2 VALUE2 ...).  PROP is a symbol and VAL is any object.
 If PROP is already a property on the list, its value is set to VAL,
 otherwise the new PROP VAL pair is added.  The new plist is returned;
 use `(setq x (plist-put x prop val))' to be sure to use the new value.
@@ -2123,7 +2123,7 @@ It can be retrieved with `(get SYMBOL PROPNAME)'.  */)
 DEFUN ("lax-plist-get", Flax_plist_get, Slax_plist_get, 2, 2, 0,
        doc: /* Extract a value from a property list, comparing with `equal'.
 PLIST is a property list, which is a list of the form
-(PROP1 VALUE1 PROP2 VALUE2...).  This function returns the value
+\(PROP1 VALUE1 PROP2 VALUE2...).  This function returns the value
 corresponding to the given PROP, or nil if PROP is not
 one of the properties on the list.  */)
   (Lisp_Object plist, Lisp_Object prop)
@@ -2148,7 +2148,7 @@ one of the properties on the list.  */)
 DEFUN ("lax-plist-put", Flax_plist_put, Slax_plist_put, 3, 3, 0,
        doc: /* Change value in PLIST of PROP to VAL, comparing with `equal'.
 PLIST is a property list, which is a list of the form
-(PROP1 VALUE1 PROP2 VALUE2 ...).  PROP and VAL are any objects.
+\(PROP1 VALUE1 PROP2 VALUE2 ...).  PROP and VAL are any objects.
 If PROP is already a property on the list, its value is set to VAL,
 otherwise the new PROP VAL pair is added.  The new plist is returned;
 use `(setq x (lax-plist-put x prop val))' to be sure to use the new value.
@@ -2861,7 +2861,7 @@ The normal messages at start and end of loading FILENAME are suppressed.  */)
 DEFUN ("plist-member", Fplist_member, Splist_member, 2, 2, 0,
        doc: /* Return non-nil if PLIST has the property PROP.
 PLIST is a property list, which is a list of the form
-(PROP1 VALUE1 PROP2 VALUE2 ...).  PROP is a symbol.
+\(PROP1 VALUE1 PROP2 VALUE2 ...).  PROP is a symbol.
 Unlike `plist-get', this allows you to distinguish between a missing
 property and a property with the value nil.
 The value is actually the tail of PLIST whose car is PROP.  */)
diff --git a/src/font.c b/src/font.c
index 039493b..55f0a03 100644
--- a/src/font.c
+++ b/src/font.c
@@ -4086,7 +4086,7 @@ DEFUN ("font-face-attributes", Ffont_face_attributes, Sfont_face_attributes, 1,
 FONT is a font name, a font-spec, a font-entity, or a font-object.
 The return value is a list of the form
 
-(:family FAMILY :height HEIGHT :weight WEIGHT :slant SLANT :width WIDTH)
+\(:family FAMILY :height HEIGHT :weight WEIGHT :slant SLANT :width WIDTH)
 
 where FAMILY, HEIGHT, WEIGHT, SLANT, and WIDTH are face attribute values
 compatible with `set-face-attribute'.  Some of these key-attribute pairs
@@ -5378,7 +5378,7 @@ where ENCODING is a charset or a char-table,
 and REPERTORY is a charset, a char-table, or nil.
 
 If ENCODING and REPERTORY are the same, the element can have the form
-(REGEXP . ENCODING).
+\(REGEXP . ENCODING).
 
 ENCODING is for converting a character to a glyph code of the font.
 If ENCODING is a charset, encoding a character by the charset gives
diff --git a/src/frame.c b/src/frame.c
index 4f61332..e013314 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -5228,7 +5228,7 @@ keep it unchanged if this option is either t or a list containing
 `vertical-scroll-bars'.
 
 The default value is \\='(tool-bar-lines) on Lucid, Motif and Windows
-(which means that adding/removing a tool bar does not change the frame
+\(which means that adding/removing a tool bar does not change the frame
 height), nil on all other window systems including GTK+ (which means
 that changing any of the parameters listed above may change the size of
 the frame), and t otherwise (which means the frame size never changes
diff --git a/src/fringe.c b/src/fringe.c
index 597c666..25cc142 100644
--- a/src/fringe.c
+++ b/src/fringe.c
@@ -1701,7 +1701,7 @@ syms_of_fringe (void)
   DEFVAR_LISP ("overflow-newline-into-fringe", Voverflow_newline_into_fringe,
     doc: /* Non-nil means that newline may flow into the right fringe.
 This means that display lines which are exactly as wide as the window
-(not counting the final newline) will only occupy one screen line, by
+\(not counting the final newline) will only occupy one screen line, by
 showing (or hiding) the final newline in the right fringe; when point
 is at the final newline, the cursor is shown in the right fringe.
 If nil, also continue lines which are exactly as wide as the window.  */);
diff --git a/src/inotify.c b/src/inotify.c
index e0619e5..34d2aeb 100644
--- a/src/inotify.c
+++ b/src/inotify.c
@@ -272,7 +272,7 @@ onlydir
 Watching a directory is not recursive.  CALLBACK is passed a single argument
 EVENT which contains an event structure of the format
 
-(WATCH-DESCRIPTOR ASPECTS NAME COOKIE)
+\(WATCH-DESCRIPTOR ASPECTS NAME COOKIE)
 
 WATCH-DESCRIPTOR is the same object that was returned by this function.  It can
 be tested for equality using `equal'.  ASPECTS describes the event.  It is a
diff --git a/src/keyboard.c b/src/keyboard.c
index 298ab64..2d225c8 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -11381,7 +11381,7 @@ See Info node `(elisp)Multiple Terminals'.  */);
 
   DEFVAR_BOOL ("cannot-suspend", cannot_suspend,
 	       doc: /* Non-nil means to always spawn a subshell instead of suspending.
-(Even if the operating system has support for stopping a process.)  */);
+\(Even if the operating system has support for stopping a process.)  */);
   cannot_suspend = false;
 
   DEFVAR_BOOL ("menu-prompting", menu_prompting,
@@ -11595,7 +11595,7 @@ immediately after running `post-command-hook'.  */);
   DEFVAR_LISP ("input-method-function", Vinput_method_function,
 	       doc: /* If non-nil, the function that implements the current input method.
 It's called with one argument, a printing character that was just read.
-(That means a character with code 040...0176.)
+\(That means a character with code 040...0176.)
 Typically this function uses `read-event' to read additional events.
 When it does so, it should first bind `input-method-function' to nil
 so it will not be called recursively.
diff --git a/src/keymap.c b/src/keymap.c
index 7928e62..3044cfa 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1687,7 +1687,7 @@ DEFUN ("global-key-binding", Fglobal_key_binding, Sglobal_key_binding, 1, 2, 0,
 KEYS is a string or vector, a sequence of keystrokes.
 The binding is probably a symbol with a function definition.
 This function's return values are the same as those of `lookup-key'
-(which see).
+\(which see).
 
 If optional argument ACCEPT-DEFAULT is non-nil, recognize default
 bindings; see the description of `lookup-key' for more details about this.  */)
@@ -2493,7 +2493,7 @@ If FIRSTONLY is the symbol `non-ascii', return the first binding found,
 no matter what it is.
 If FIRSTONLY has another non-nil value, prefer bindings
 that use the modifier key specified in `where-is-preferred-modifier'
-(or their meta variants) and entirely reject menu bindings.
+\(or their meta variants) and entirely reject menu bindings.
 
 If optional 4th arg NOINDIRECT is non-nil, don't extract the commands inside
 menu-items.  This makes it possible to search for a menu-item itself.
@@ -2724,7 +2724,7 @@ looked up in BUFFER.
 The optional argument PREFIX, if non-nil, should be a key sequence;
 then we display only bindings that start with that prefix.
 The optional argument MENUS, if non-nil, says to mention menu bindings.
-(Ordinarily these are omitted from the output.)  */)
+\(Ordinarily these are omitted from the output.)  */)
   (Lisp_Object buffer, Lisp_Object prefix, Lisp_Object menus)
 {
   Lisp_Object outbuf, shadow;
diff --git a/src/kqueue.c b/src/kqueue.c
index a69d06d..5131aa0 100644
--- a/src/kqueue.c
+++ b/src/kqueue.c
@@ -67,9 +67,8 @@ kqueue_directory_listing (Lisp_Object directory_files)
 
 /* Generate a file notification event.  */
 static void
-kqueue_generate_event
-(Lisp_Object watch_object, Lisp_Object actions,
- Lisp_Object file, Lisp_Object file1)
+kqueue_generate_event (Lisp_Object watch_object, Lisp_Object actions,
+		       Lisp_Object file, Lisp_Object file1)
 {
   Lisp_Object flags, action, entry;
   struct input_event event;
@@ -109,8 +108,7 @@ kqueue_generate_event
    replaced by the new directory listing at the end of this
    function.  */
 static void
-kqueue_compare_dir_list
-(Lisp_Object watch_object)
+kqueue_compare_dir_list (Lisp_Object watch_object)
 {
   Lisp_Object dir, pending_dl, deleted_dl;
   Lisp_Object old_directory_files, old_dl, new_directory_files, new_dl, dl;
diff --git a/src/lread.c b/src/lread.c
index 25e3ff0..5a36537 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -2059,7 +2059,7 @@ Returns a cons: (OBJECT-READ . FINAL-STRING-INDEX).
 FINAL-STRING-INDEX is an integer giving the position of the next
 remaining character in STRING.  START and END optionally delimit
 a substring of STRING from which to read;  they default to 0 and
-(length STRING) respectively.  Negative values are counted from
+\(length STRING) respectively.  Negative values are counted from
 the end of STRING.  */)
   (Lisp_Object string, Lisp_Object start, Lisp_Object end)
 {
diff --git a/src/menu.c b/src/menu.c
index cbddef3..8e5bf4d 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -1130,7 +1130,7 @@ If POSITION is t, it means to use the current mouse position.
 MENU is a specifier for a menu.  For the simplest case, MENU is a keymap.
 The menu items come from key bindings that have a menu string as well as
 a definition; actually, the "definition" in such a key binding looks like
-(STRING . REAL-DEFINITION).  To give the menu a title, put a string into
+\(STRING . REAL-DEFINITION).  To give the menu a title, put a string into
 the keymap as a top-level element.
 
 If REAL-DEFINITION is nil, that puts a nonselectable string in the menu.
@@ -1495,7 +1495,7 @@ The return value is VALUE from the chosen item.
 An ITEM may also be just a string--that makes a nonselectable item.
 An ITEM may also be nil--that means to put all preceding items
 on the left of the dialog box and all following items on the right.
-(By default, approximately half appear on each side.)
+\(By default, approximately half appear on each side.)
 
 If HEADER is non-nil, the frame title for the box is "Information",
 otherwise it is "Question".
diff --git a/src/minibuf.c b/src/minibuf.c
index 180668f..06e5f82 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -986,7 +986,7 @@ DEFUN ("read-no-blanks-input", Fread_no_blanks_input, Sread_no_blanks_input, 1,
 Prompt with PROMPT.  Whitespace terminates the input.  If INITIAL is
 non-nil, it should be a string, which is used as initial input, with
 point positioned at the end, so that SPACE will accept the input.
-(Actually, INITIAL can also be a cons of a string and an integer.
+\(Actually, INITIAL can also be a cons of a string and an integer.
 Such values are treated as in `read-from-minibuffer', but are normally
 not useful in this function.)
 Third arg INHERIT-INPUT-METHOD, if non-nil, means the minibuffer inherits
diff --git a/src/nsfns.m b/src/nsfns.m
index eda94c4..b98b510 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -1684,7 +1684,7 @@ DEFUN ("x-server-max-request-size", Fx_server_max_request_size,
 
 DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
        doc: /* Return the "vendor ID" string of Nextstep display server TERMINAL.
-(Labeling every distributor as a "vendor" embodies the false assumption
+\(Labeling every distributor as a "vendor" embodies the false assumption
 that operating systems cannot be developed and distributed noncommercially.)
 The optional argument TERMINAL specifies which display to ask about.
 TERMINAL should be a terminal object, a frame or a display name (a string).
@@ -1730,7 +1730,7 @@ If omitted or nil, that stands for the selected frame's display.
 
 Note: "screen" here is not in Nextstep terminology but in X11's.  For
 the number of physical monitors, use `(length
-(display-monitor-attributes-list TERMINAL))' instead.  */)
+\(display-monitor-attributes-list TERMINAL))' instead.  */)
   (Lisp_Object terminal)
 {
   check_ns_display_info (terminal);
@@ -1861,7 +1861,7 @@ DISPLAY is the name of the display to connect to.
 Optional second arg XRM-STRING is a string of resources in xrdb format.
 If the optional third arg MUST-SUCCEED is non-nil,
 terminate Emacs if we can't open the connection.
-(In the Nextstep version, the last two arguments are currently ignored.)  */)
+\(In the Nextstep version, the last two arguments are currently ignored.)  */)
      (Lisp_Object display, Lisp_Object resource_string, Lisp_Object must_succeed)
 {
   struct ns_display_info *dpyinfo;
@@ -2301,7 +2301,7 @@ x_get_focus_frame (struct frame *frame)
 
 DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
        doc: /* Internal function called by `color-defined-p', which see.
-(Note that the Nextstep version of this function ignores FRAME.)  */)
+\(Note that the Nextstep version of this function ignores FRAME.)  */)
      (Lisp_Object color, Lisp_Object frame)
 {
   NSColor * col;
diff --git a/src/nsselect.m b/src/nsselect.m
index 463f02b..b7629d5 100644
--- a/src/nsselect.m
+++ b/src/nsselect.m
@@ -316,7 +316,7 @@ DEFUN ("ns-own-selection-internal", Fns_own_selection_internal,
        Sns_own_selection_internal, 2, 2, 0,
        doc: /* Assert an X selection of type SELECTION and value VALUE.
 SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
-(Those are literal upper-case symbol names, since that's what X expects.)
+\(Those are literal upper-case symbol names, since that's what X expects.)
 VALUE is typically a string, or a cons of two markers, but may be
 anything that the functions on `selection-converter-alist' know about.  */)
      (Lisp_Object selection, Lisp_Object value)
@@ -414,7 +414,7 @@ DEFUN ("ns-selection-owner-p", Fns_selection_owner_p, Sns_selection_owner_p,
        doc: /* Whether the current Emacs process owns the given X Selection.
 The arg should be the name of the selection in question, typically one of
 the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'.
-(Those are literal upper-case symbol names, since that's what X expects.)
+\(Those are literal upper-case symbol names, since that's what X expects.)
 For convenience, the symbol nil is the same as `PRIMARY',
 and t is the same as `SECONDARY'.  */)
      (Lisp_Object selection)
@@ -433,7 +433,7 @@ DEFUN ("ns-get-selection", Fns_get_selection,
        Sns_get_selection, 2, 2, 0,
        doc: /* Return text selected from some X window.
 SELECTION-SYMBOL is typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
-(Those are literal upper-case symbol names, since that's what X expects.)
+\(Those are literal upper-case symbol names, since that's what X expects.)
 TARGET-TYPE is the type of data desired, typically `STRING'.  */)
      (Lisp_Object selection_name, Lisp_Object target_type)
 {
diff --git a/src/nsterm.h b/src/nsterm.h
index fa5399c..8292c07 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -1044,10 +1044,10 @@ struct x_output
 
 /* Difference btwn char-column-calculated and actual SB widths.
    This is only a concern for rendering when SB on left. */
-#define NS_SCROLL_BAR_ADJUST(w, f)		\
-(WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w) ?	\
-    (FRAME_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f)	\
-        - NS_SCROLL_BAR_WIDTH (f)) : 0)
+#define NS_SCROLL_BAR_ADJUST(w, f)				\
+  (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w) ?			\
+   (FRAME_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f)		\
+    - NS_SCROLL_BAR_WIDTH (f)) : 0)
 
 /* Difference btwn char-line-calculated and actual SB heights.
    This is only a concern for rendering when SB on top. */
diff --git a/src/print.c b/src/print.c
index 2ecc0f5..478842c 100644
--- a/src/print.c
+++ b/src/print.c
@@ -2224,7 +2224,7 @@ Also print formfeeds as `\\f'.  */);
 
   DEFVAR_BOOL ("print-escape-nonascii", print_escape_nonascii,
 	       doc: /* Non-nil means print unibyte non-ASCII chars in strings as \\OOO.
-(OOO is the octal representation of the character code.)
+\(OOO is the octal representation of the character code.)
 Only single-byte characters are affected, and only in `prin1'.
 When the output goes in a multibyte buffer, this feature is
 enabled regardless of the value of the variable.  */);
@@ -2232,7 +2232,7 @@ enabled regardless of the value of the variable.  */);
 
   DEFVAR_BOOL ("print-escape-multibyte", print_escape_multibyte,
 	       doc: /* Non-nil means print multibyte characters in strings as \\xXXXX.
-(XXXX is the hex representation of the character code.)
+\(XXXX is the hex representation of the character code.)
 This affects only `prin1'.  */);
   print_escape_multibyte = 0;
 
diff --git a/src/process.c b/src/process.c
index 1eac5e1..f9a99d4 100644
--- a/src/process.c
+++ b/src/process.c
@@ -953,7 +953,7 @@ DEFUN ("process-command", Fprocess_command, Sprocess_command, 1, 1, 0,
 This is a list of strings, the first string being the program executed
 and the rest of the strings being the arguments given to it.
 For a network or serial process, this is nil (process is running) or t
-(process is stopped).  */)
+\(process is stopped).  */)
   (register Lisp_Object process)
 {
   CHECK_PROCESS (process);
@@ -2670,7 +2670,7 @@ is not given or nil, 1 stopbit is used.
 :flowcontrol FLOWCONTROL -- FLOWCONTROL determines the type of
 flowcontrol to be used, which is either nil (don't use flowcontrol),
 the symbol `hw' (use RTS/CTS hardware flowcontrol), or the symbol `sw'
-(use XON/XOFF software flowcontrol).  If FLOWCONTROL is not given, no
+\(use XON/XOFF software flowcontrol).  If FLOWCONTROL is not given, no
 flowcontrol is used.
 
 `serial-process-configure' is called by `make-serial-process' for the
@@ -2678,12 +2678,12 @@ initial configuration of the serial port.
 
 Examples:
 
-(serial-process-configure :process "/dev/ttyS0" :speed 1200)
+\(serial-process-configure :process "/dev/ttyS0" :speed 1200)
 
-(serial-process-configure
+\(serial-process-configure
     :buffer "COM1" :stopbits 1 :parity \\='odd :flowcontrol \\='hw)
 
-(serial-process-configure :port "\\\\.\\COM13" :bytesize 7)
+\(serial-process-configure :port "\\\\.\\COM13" :bytesize 7)
 
 usage: (serial-process-configure &rest ARGS)  */)
   (ptrdiff_t nargs, Lisp_Object *args)
@@ -2777,13 +2777,13 @@ is available via the function `process-contact'.
 
 Examples:
 
-(make-serial-process :port "/dev/ttyS0" :speed 9600)
+\(make-serial-process :port "/dev/ttyS0" :speed 9600)
 
-(make-serial-process :port "COM1" :speed 115200 :stopbits 2)
+\(make-serial-process :port "COM1" :speed 115200 :stopbits 2)
 
-(make-serial-process :port "\\\\.\\COM13" :speed 1200 :bytesize 7 :parity \\='odd)
+\(make-serial-process :port "\\\\.\\COM13" :speed 1200 :bytesize 7 :parity \\='odd)
 
-(make-serial-process :port "/dev/tty.BlueConsole-SPP-1" :speed nil)
+\(make-serial-process :port "/dev/tty.BlueConsole-SPP-1" :speed nil)
 
 usage:  (make-serial-process &rest ARGS)  */)
   (ptrdiff_t nargs, Lisp_Object *args)
diff --git a/src/textprop.c b/src/textprop.c
index 70091b9..104d89b 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -1493,7 +1493,7 @@ DEFUN ("remove-text-properties", Fremove_text_properties,
        doc: /* Remove some properties from text from START to END.
 The third argument PROPERTIES is a property list
 whose property names specify the properties to remove.
-(The values stored in PROPERTIES are ignored.)
+\(The values stored in PROPERTIES are ignored.)
 If the optional fourth argument OBJECT is a buffer (or nil, which means
 the current buffer), START and END are buffer positions (integers or
 markers).  If OBJECT is a string, START and END are 0-based indices into it.
diff --git a/src/unexw32.c b/src/unexw32.c
index 460a39e..0a7292a 100644
--- a/src/unexw32.c
+++ b/src/unexw32.c
@@ -34,11 +34,10 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Include relevant definitions from IMAGEHLP.H, which can be found
    in \\win32sdk\mstools\samples\image\include\imagehlp.h. */
 
-PIMAGE_NT_HEADERS
-(__stdcall * pfnCheckSumMappedFile) (LPVOID BaseAddress,
-				    DWORD FileLength,
-				    LPDWORD HeaderSum,
-				    LPDWORD CheckSum);
+PIMAGE_NT_HEADERS (__stdcall * pfnCheckSumMappedFile) (LPVOID BaseAddress,
+						       DWORD FileLength,
+						       LPDWORD HeaderSum,
+						       LPDWORD CheckSum);
 
 extern BOOL ctrl_c_handler (unsigned long type);
 
diff --git a/src/w16select.c b/src/w16select.c
index 48bb813..0cd1b23 100644
--- a/src/w16select.c
+++ b/src/w16select.c
@@ -686,7 +686,7 @@ For MS-Windows and MS-DOS:
 When sending or receiving text via selection and clipboard, the text
 is encoded or decoded by this coding system.  The default value is
 the current system default encoding on 9x/Me, `utf-16le-dos'
-(Unicode) on NT/W2K/XP, and `iso-latin-1-dos' on MS-DOS.
+\(Unicode) on NT/W2K/XP, and `iso-latin-1-dos' on MS-DOS.
 
 For X Windows:
 When sending text via selection and clipboard, if the target
diff --git a/src/w32fns.c b/src/w32fns.c
index a5018ae..f4526e4 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -5207,7 +5207,7 @@ x_get_focus_frame (struct frame *frame)
 
 DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
        doc: /* Internal function called by `color-defined-p', which see.
-(Note that the Nextstep version of this function ignores FRAME.)  */)
+\(Note that the Nextstep version of this function ignores FRAME.)  */)
   (Lisp_Object color, Lisp_Object frame)
 {
   XColor foo;
@@ -5349,7 +5349,7 @@ If omitted or nil, that stands for the selected frame's display.  */)
 DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
        doc: /* Return the "vendor ID" string of the GUI software on TERMINAL.
 
-(Labeling every distributor as a "vendor" embodies the false assumption
+\(Labeling every distributor as a "vendor" embodies the false assumption
 that operating systems cannot be developed and distributed noncommercially.)
 
 For GNU and Unix systems, this queries the X server software; for
@@ -5751,7 +5751,7 @@ DISPLAY is the name of the display to connect to.
 Optional second arg XRM-STRING is a string of resources in xrdb format.
 If the optional third arg MUST-SUCCEED is non-nil,
 terminate Emacs if we can't open the connection.
-(In the Nextstep version, the last two arguments are currently ignored.)  */)
+\(In the Nextstep version, the last two arguments are currently ignored.)  */)
   (Lisp_Object display, Lisp_Object xrm_string, Lisp_Object must_succeed)
 {
   char *xrm_option;
@@ -8090,7 +8090,7 @@ DEFUN ("w32-set-mouse-absolute-pixel-position", Fw32_set_mouse_absolute_pixel_po
        Sw32_set_mouse_absolute_pixel_position, 2, 2, 0,
        doc: /* Move mouse pointer to absolute pixel position (X, Y).
 The coordinates X and Y are interpreted in pixels relative to a position
-(0, 0) of the selected frame's display.  */)
+\(0, 0) of the selected frame's display.  */)
   (Lisp_Object x, Lisp_Object y)
 {
   UINT trail_num = 0;
diff --git a/src/w32heap.c b/src/w32heap.c
index b908169..df2fe0a 100644
--- a/src/w32heap.c
+++ b/src/w32heap.c
@@ -73,12 +73,11 @@ typedef PVOID (WINAPI * RtlCreateHeap_Proc) (
 
 typedef LONG NTSTATUS;
 
-typedef NTSTATUS
-(NTAPI * PRTL_HEAP_COMMIT_ROUTINE)(
-                                   IN PVOID Base,
-                                   IN OUT PVOID *CommitAddress,
-                                   IN OUT PSIZE_T CommitSize
-                                   );
+typedef NTSTATUS (NTAPI *PRTL_HEAP_COMMIT_ROUTINE) (
+						    IN PVOID Base,
+						    IN OUT PVOID *CommitAddress,
+						    IN OUT PSIZE_T CommitSize
+						    );
 
 typedef struct _RTL_HEAP_PARAMETERS {
   ULONG Length;
diff --git a/src/window.c b/src/window.c
index 8953d3c..a15eb2f 100644
--- a/src/window.c
+++ b/src/window.c
@@ -670,7 +670,7 @@ DEFUN ("set-window-combination-limit", Fset_window_combination_limit, Sset_windo
 WINDOW must be a valid window used in horizontal or vertical combination.
 If LIMIT is nil, child windows of WINDOW can be recombined with WINDOW's
 siblings.  LIMIT t means that child windows of WINDOW are never
-(re-)combined with WINDOW's siblings.  Other values are reserved for
+\(re-)combined with WINDOW's siblings.  Other values are reserved for
 future use.  */)
   (Lisp_Object window, Lisp_Object limit)
 {
@@ -1324,7 +1324,7 @@ DEFUN ("coordinates-in-window-p", Fcoordinates_in_window_p,
 WINDOW must be a live window and defaults to the selected one.
 COORDINATES is a cons of the form (X . Y), X and Y being distances
 measured in characters from the upper-left corner of the frame.
-(0 . 0) denotes the character in the upper left corner of the
+\(0 . 0) denotes the character in the upper left corner of the
 frame.
 If COORDINATES are in the text portion of WINDOW,
    the coordinates relative to the window are returned.
@@ -1710,7 +1710,7 @@ of the window.  The remaining elements are omitted if the character after
 POS is fully visible; otherwise, RTOP and RBOT are the number of pixels
 off-window at the top and bottom of the screen line ("row") containing
 POS, ROWH is the visible height of that row, and VPOS is the row number
-(zero-based).  */)
+\(zero-based).  */)
   (Lisp_Object pos, Lisp_Object window, Lisp_Object partially)
 {
   struct window *w;
diff --git a/src/xdisp.c b/src/xdisp.c
index dec9947..217203b 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -31425,7 +31425,7 @@ This variable is not guaranteed to be accurate except while processing
 
   DEFVAR_LISP ("frame-title-format", Vframe_title_format,
     doc: /* Template for displaying the title bar of visible frames.
-(Assuming the window manager supports this feature.)
+\(Assuming the window manager supports this feature.)
 
 This variable has the same structure as `mode-line-format', except that
 the %c and %l constructs are ignored.  It is used only on frames for
@@ -31433,10 +31433,10 @@ which no explicit name has been set (see `modify-frame-parameters').  */);
 
   DEFVAR_LISP ("icon-title-format", Vicon_title_format,
     doc: /* Template for displaying the title bar of an iconified frame.
-(Assuming the window manager supports this feature.)
+\(Assuming the window manager supports this feature.)
 This variable has the same structure as `mode-line-format' (which see),
 and is used only on frames for which no explicit name has been set
-(see `modify-frame-parameters').  */);
+\(see `modify-frame-parameters').  */);
   Vicon_title_format
     = Vframe_title_format
     = listn (CONSTYPE_PURE, 3,
diff --git a/src/xfaces.c b/src/xfaces.c
index 7762e0f..0104857 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -701,10 +701,10 @@ Optional THOROUGHLY non-nil means try to free unused fonts, too.  */)
 DEFUN ("bitmap-spec-p", Fbitmap_spec_p, Sbitmap_spec_p, 1, 1, 0,
        doc: /* Value is non-nil if OBJECT is a valid bitmap specification.
 A bitmap specification is either a string, a file name, or a list
-(WIDTH HEIGHT DATA) where WIDTH is the pixel width of the bitmap,
+\(WIDTH HEIGHT DATA) where WIDTH is the pixel width of the bitmap,
 HEIGHT is its height, and DATA is a string containing the bits of
 the pixmap.  Bits are stored row by row, each row occupies
-(WIDTH + 7)/8 bytes.  */)
+\(WIDTH + 7)/8 bytes.  */)
   (Lisp_Object object)
 {
   bool pixmap_p = false;
@@ -6536,7 +6536,7 @@ changing this variable for it to take effect.  */);
 Each element is a cons (FONT-PATTERN . RESCALE-RATIO), where
 FONT-PATTERN is a font-spec or a regular expression matching a font name, and
 RESCALE-RATIO is a floating point number to specify how much larger
-(or smaller) font we should use.  For instance, if a face requests
+\(or smaller) font we should use.  For instance, if a face requests
 a font of 10 point, we actually use a font of 10 * RESCALE-RATIO point.  */);
   Vface_font_rescale_alist = Qnil;
 
diff --git a/src/xfns.c b/src/xfns.c
index 20ac627..dced887 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -3670,7 +3670,7 @@ x_focus_frame (struct frame *f)
 \f
 DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
        doc: /* Internal function called by `color-defined-p', which see.
-(Note that the Nextstep version of this function ignores FRAME.)  */)
+\(Note that the Nextstep version of this function ignores FRAME.)  */)
   (Lisp_Object color, Lisp_Object frame)
 {
   XColor foo;
@@ -3837,7 +3837,7 @@ If omitted or nil, that stands for the selected frame's display.  */)
 DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
        doc: /* Return the "vendor ID" string of the GUI software on TERMINAL.
 
-(Labeling every distributor as a "vendor" embodies the false assumption
+\(Labeling every distributor as a "vendor" embodies the false assumption
 that operating systems cannot be developed and distributed noncommercially.)
 The optional argument TERMINAL specifies which display to ask about.
 
@@ -4759,7 +4759,7 @@ DEFUN ("x-set-mouse-absolute-pixel-position", Fx_set_mouse_absolute_pixel_positi
        Sx_set_mouse_absolute_pixel_position, 2, 2, 0,
        doc: /* Move mouse pointer to absolute pixel position (X, Y).
 The coordinates X and Y are interpreted in pixels relative to a position
-(0, 0) of the selected frame's display.  */)
+\(0, 0) of the selected frame's display.  */)
   (Lisp_Object x, Lisp_Object y)
   {
   struct frame *f = SELECTED_FRAME ();
@@ -4935,7 +4935,7 @@ DISPLAY is the name of the display to connect to.
 Optional second arg XRM-STRING is a string of resources in xrdb format.
 If the optional third arg MUST-SUCCEED is non-nil,
 terminate Emacs if we can't open the connection.
-(In the Nextstep version, the last two arguments are currently ignored.)  */)
+\(In the Nextstep version, the last two arguments are currently ignored.)  */)
   (Lisp_Object display, Lisp_Object xrm_string, Lisp_Object must_succeed)
 {
   char *xrm_option;
diff --git a/src/xselect.c b/src/xselect.c
index 23b735e..cbc44a1 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -1911,7 +1911,7 @@ DEFUN ("x-own-selection-internal", Fx_own_selection_internal,
        Sx_own_selection_internal, 2, 3, 0,
        doc: /* Assert an X selection of type SELECTION and value VALUE.
 SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
-(Those are literal upper-case symbol names, since that's what X expects.)
+\(Those are literal upper-case symbol names, since that's what X expects.)
 VALUE is typically a string, or a cons of two markers, but may be
 anything that the functions on `selection-converter-alist' know about.
 
@@ -1940,7 +1940,7 @@ DEFUN ("x-get-selection-internal", Fx_get_selection_internal,
        Sx_get_selection_internal, 2, 4, 0,
        doc: /* Return text selected from some X window.
 SELECTION-SYMBOL is typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
-(Those are literal upper-case symbol names, since that's what X expects.)
+\(Those are literal upper-case symbol names, since that's what X expects.)
 TARGET-TYPE is the type of data desired, typically `STRING'.
 
 TIME-STAMP is the time to use in the XConvertSelection call for foreign
@@ -2044,7 +2044,7 @@ DEFUN ("x-selection-owner-p", Fx_selection_owner_p, Sx_selection_owner_p,
        doc: /* Whether the current Emacs process owns the given X Selection.
 The arg should be the name of the selection in question, typically one of
 the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'.
-(Those are literal upper-case symbol names, since that's what X expects.)
+\(Those are literal upper-case symbol names, since that's what X expects.)
 For convenience, the symbol nil is the same as `PRIMARY',
 and t is the same as `SECONDARY'.
 
@@ -2620,7 +2620,7 @@ and the local selection value (whatever was given to
 `x-own-selection-internal').
 
 The function should return the value to send to the X server
-(typically a string).  A return value of nil
+\(typically a string).  A return value of nil
 means that the conversion could not be done.
 A return value which is the symbol `NULL'
 means that a side-effect was executed,
@@ -2629,10 +2629,10 @@ and there is no meaningful selection value.  */);
 
   DEFVAR_LISP ("x-lost-selection-functions", Vx_lost_selection_functions,
 	       doc: /* A list of functions to be called when Emacs loses an X selection.
-(This happens when some other X client makes its own selection
+\(This happens when some other X client makes its own selection
 or when a Lisp program explicitly clears the selection.)
 The functions are called with one argument, the selection type
-(a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD').  */);
+\(a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD').  */);
   Vx_lost_selection_functions = Qnil;
 
   DEFVAR_LISP ("x-sent-selection-functions", Vx_sent_selection_functions,
diff --git a/src/xwidget.c b/src/xwidget.c
index f436e95..e8f3f29 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -387,9 +387,12 @@ webkit_download_cb (WebKitWebView *webkitwebview,
 }
 
 static gboolean
-webkit_mime_type_policy_typedecision_requested_cb
-(WebKitWebView *webView, WebKitWebFrame *frame, WebKitNetworkRequest *request,
- gchar *mimetype, WebKitWebPolicyDecision *policy_decision, gpointer user_data)
+webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *webView,
+						   WebKitWebFrame *frame,
+						   WebKitNetworkRequest *request,
+						   gchar *mimetype,
+						   WebKitWebPolicyDecision *policy_decision,
+						   gpointer user_data)
 {
   /* This function makes webkit send a download signal for all unknown
      mime types.  TODO: Defer the decision to Lisp, so that it's
@@ -404,10 +407,12 @@ webkit_mime_type_policy_typedecision_requested_cb
 }
 
 static gboolean
-webkit_new_window_policy_decision_requested_cb
-(WebKitWebView *webView, WebKitWebFrame *frame, WebKitNetworkRequest *request,
- WebKitWebNavigationAction *navigation_action,
- WebKitWebPolicyDecision *policy_decision, gpointer user_data)
+webkit_new_window_policy_decision_requested_cb (WebKitWebView *webView,
+						WebKitWebFrame *frame,
+						WebKitNetworkRequest *request,
+						WebKitWebNavigationAction *navigation_action,
+						WebKitWebPolicyDecision *policy_decision,
+						gpointer user_data)
 {
   struct xwidget *xw = g_object_get_data (G_OBJECT (webView), XG_XWIDGET);
   webkit_web_navigation_action_get_original_uri (navigation_action);
@@ -419,10 +424,12 @@ webkit_new_window_policy_decision_requested_cb
 }
 
 static gboolean
-webkit_navigation_policy_decision_requested_cb
-(WebKitWebView *webView, WebKitWebFrame *frame, WebKitNetworkRequest *request,
- WebKitWebNavigationAction *navigation_action,
- WebKitWebPolicyDecision *policy_decision, gpointer user_data)
+webkit_navigation_policy_decision_requested_cb (WebKitWebView *webView,
+						WebKitWebFrame *frame,
+						WebKitNetworkRequest *request,
+						WebKitWebNavigationAction *navigation_action,
+						WebKitWebPolicyDecision *policy_decision,
+						gpointer user_data)
 {
   struct xwidget *xw = g_object_get_data (G_OBJECT (webView), XG_XWIDGET);
   store_xwidget_event_string (xw, "navigation-policy-decision-requested",

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-03 17:54   ` Paul Eggert
@ 2016-03-03 19:23     ` Alan Mackenzie
  2016-03-03 20:38       ` Eli Zaretskii
  2016-03-03 21:57       ` Paul Eggert
  2016-03-03 20:51     ` Eli Zaretskii
  1 sibling, 2 replies; 34+ messages in thread
From: Alan Mackenzie @ 2016-03-03 19:23 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 22884

Hello, Paul.

First of all, congratulations on getting such a long patch prepared by
10 o'clock in the morning.  :-)

On Thu, Mar 03, 2016 at 09:54:54AM -0800, Paul Eggert wrote:
> On 03/03/2016 04:49 AM, Alan Mackenzie wrote:
> > Inserting a backslash at the beginning of L14 solves the problem, as 
> > does setting open-paren-in-column-0-is-defun-start to nil.

> I presume the latter is not really on the table.

No, indeed not.

> We can't put a backslash there, as it's license text and shouldn't be
> fiddled with in that way. We could fold it differently (as in the
> attached proposed patch, which does this only for config.h and
> friends).

Why only for the one file?  The performance hit comes from the amount of
contiguous syntactic whitespace following the "failed" comment.  Have
you checked this is the only file with so much SWS?

The effect of of these "failed" comments on CC Mode is as follows:
c-beginning-of-statement-1 uses c-backward-syntactic-ws.  The latter
goes back to just before the ostensible "//" comment marker in the GNU
URL, that is, just after "http:".  c-beginning-of-statement-1 then moves
back over the "label", then moves back one sexp at a time, looking for
statement boundaries, keywords, etc.  It recognises "for" in "for more
details" as a C keyword, assumes that "more" is the parenthetical
expression and that "details" is the beginning of the substatement.

Although this (probably) won't hit the performance in most files, it is
going to throw out the syntactic analysis sometimes.  Is there any
chance you could put in the refolding of the copyright message into all
the files, to avoid this?

By the way, I've tried out your patch.  It applies fine to the emacs-25
branch, it builds OK, and the new Emacs seems to start and run OK.

> > The next problem is that there are around 324 occurrences of "(" at 
> > column zero in the src directory, and quite a few in lib and lib-src. 
> > Most of them are in comments, some of them are parameter lists, and 
> > some of them (e.g. in lisp.h) are wierd constructs of some sort. These 
> > contravene GNU coding standards and really need sorting out.

> The lisp.h constructs are weird, but they don't violate the GNU coding 
> standards as the parens at the start of a line do indeed mark the start 
> of a function definition.

OK.  Could you give me a clue as to what they mean, please?  For
example, in

    INLINE EMACS_INT
    (XLI) (Lisp_Object o)
    {
      return lisp_h_XLI (o);
    }

, what does "(XLI)" do?  It looks like a cast, but it's in the wrong
place to be a cast.  It can't be an expansion of the CPP macro "XLI",
surely, lacking, as it does, an argument.  What is this thing?

> Do these parens break cc-mode somehow? If so, what's the breakage? and
> how would you suggest reformatting lisp.h (and/or fixing cc-mode)?

No, they don't cause breakage.

> The attached proposed patch fixes all the problems I found, except (1) 
> it leaves license wording alone for the most part (config.h excepted, 
> since the performance disaster is there), and (2) it leaves the weird 
> lisp.h constructs alone as per the above paragraph. Is this the sort of 
> thing you had in mind (except I guess we need to fix (1) too?).

Yes.  I was half way through constructing such a patch myself, but you
beat me to it.  :-)  As I said above, I'd be happier if you could fix
the license text in all the files.  It cannot be too much work (a short
sed script, or something similar).

[ .... ]

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-03 19:23     ` Alan Mackenzie
@ 2016-03-03 20:38       ` Eli Zaretskii
  2016-03-03 21:57       ` Paul Eggert
  1 sibling, 0 replies; 34+ messages in thread
From: Eli Zaretskii @ 2016-03-03 20:38 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: eggert, 22884

> Date: Thu, 3 Mar 2016 19:23:30 +0000
> From: Alan Mackenzie <acm@muc.de>
> Cc: 22884@debbugs.gnu.org
> 
> OK.  Could you give me a clue as to what they mean, please?  For
> example, in
> 
>     INLINE EMACS_INT
>     (XLI) (Lisp_Object o)
>     {
>       return lisp_h_XLI (o);
>     }
> 
> , what does "(XLI)" do?

It's an age-old method of calling a function without risking it being
shadowed by a macro, AFAIK.

> It can't be an expansion of the CPP macro "XLI", surely, lacking, as
> it does, an argument.

Exactly.  And that's why it ensures a function will be called instead
of the macro.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-03 12:49 ` Alan Mackenzie
  2016-03-03 17:54   ` Paul Eggert
@ 2016-03-03 20:40   ` Eli Zaretskii
  2016-03-03 22:27     ` Alan Mackenzie
  2016-03-03 23:18     ` Alan Mackenzie
  1 sibling, 2 replies; 34+ messages in thread
From: Eli Zaretskii @ 2016-03-03 20:40 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: eggert, 22884

> Date: Thu, 3 Mar 2016 12:49:10 +0000
> From: Alan Mackenzie <acm@muc.de>
> Cc: 22884@debbugs.gnu.org
> 
> > emacs -Q config.h
> > M-x goto-line RET 1661 RET / /
> 
> > On my six-year-old desktop the second '/' takes about 10 seconds to 
> > echo.  This sort of thing makes Emacs effectively unusable for editing 
> > config.h.
> 
> The problem is in config.h.  At line 14, inside a comment, appears the
> following string:
>     "(at your option) any later version."
> .  The open paren is at column zero, so the fancy code in syntax.c then
> fails to recognise the comment as a comment.

I think we should change syntax.c to fix this.  (Alternatively, CC
mode could stop depending on it, but I doubt this is a viable
alternative.)  We cannot really tell people we don't support such
files, as they are valid C code.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-03 17:54   ` Paul Eggert
  2016-03-03 19:23     ` Alan Mackenzie
@ 2016-03-03 20:51     ` Eli Zaretskii
  2016-03-03 23:44       ` Paul Eggert
  1 sibling, 1 reply; 34+ messages in thread
From: Eli Zaretskii @ 2016-03-03 20:51 UTC (permalink / raw)
  To: Paul Eggert; +Cc: acm, 22884

> From: Paul Eggert <eggert@cs.ucla.edu>
> Date: Thu, 3 Mar 2016 09:54:54 -0800
> Cc: 22884@debbugs.gnu.org
> 
> The attached proposed patch fixes all the problems I found, except (1) 
> it leaves license wording alone for the most part (config.h excepted, 
> since the performance disaster is there), and (2) it leaves the weird 
> lisp.h constructs alone as per the above paragraph. Is this the sort of 
> thing you had in mind (except I guess we need to fix (1) too?).

Thanks.  However, I'd rather we fixed CC Mode instead of "fixing" the
sources it chokes on.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-03 19:23     ` Alan Mackenzie
  2016-03-03 20:38       ` Eli Zaretskii
@ 2016-03-03 21:57       ` Paul Eggert
  2016-03-03 22:59         ` Alan Mackenzie
  1 sibling, 1 reply; 34+ messages in thread
From: Paul Eggert @ 2016-03-03 21:57 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: 22884

On 03/03/2016 11:23 AM, Alan Mackenzie wrote:
> Why only for the one file?

Because I didn't have time to fix all the source files (I was about to 
rush off and teach a class....). It could easily be added, at least for 
files we maintain. Though, as Eli says, it'd be nicer if cc-mode didn't 
think lines beginning with '(' were relevant for function-start in C.

> The performance hit comes from the amount of contiguous syntactic 
> whitespace following the "failed" comment. Have you checked this is 
> the only file with so much SWS?

No. It's easier for me to simply fix all instances of code that have '(' 
at line start. I can propose a more-complete patch along those lines.

>
> OK.  Could you give me a clue as to what they mean, please?  For
> example, in
>
>      INLINE EMACS_INT
>      (XLI) (Lisp_Object o)
>      {
>        return lisp_h_XLI (o);
>      }
>
> , what does "(XLI)" do?

It defines a function named 'XLI' even though there's also a 
function-like macro named 'XLI', without expanding the macro.

> No, they don't cause breakage.

Good, in that case we can leave them alone.






^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-03 20:40   ` Eli Zaretskii
@ 2016-03-03 22:27     ` Alan Mackenzie
  2016-03-03 23:18     ` Alan Mackenzie
  1 sibling, 0 replies; 34+ messages in thread
From: Alan Mackenzie @ 2016-03-03 22:27 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: eggert, 22884

Hello, Eli.

On Thu, Mar 03, 2016 at 10:40:42PM +0200, Eli Zaretskii wrote:
> > Date: Thu, 3 Mar 2016 12:49:10 +0000
> > From: Alan Mackenzie <acm@muc.de>
> > Cc: 22884@debbugs.gnu.org

> > > emacs -Q config.h
> > > M-x goto-line RET 1661 RET / /

> > > On my six-year-old desktop the second '/' takes about 10 seconds to 
> > > echo.  This sort of thing makes Emacs effectively unusable for editing 
> > > config.h.

> > The problem is in config.h.  At line 14, inside a comment, appears the
> > following string:
> >     "(at your option) any later version."
> > .  The open paren is at column zero, so the fancy code in syntax.c then
> > fails to recognise the comment as a comment.

> I think we should change syntax.c to fix this.

In particular, get syntax.c to recognise open parens in column zero as
defun starts _ONLY_ when they're not in strings or comments.  This will
clearly impact performance to some (unknown) degree.

> (Alternatively, CC mode could stop depending on it, but I doubt this is
> a viable alternative.)

This was tried for some time, by internally binding
open-paren-in-column-0-is-defun-start to nil.  It cost too much in
performance on large files (ask Martin!).

> We cannot really tell people we don't support such files, as they are
> valid C code.

I agree.

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-03 21:57       ` Paul Eggert
@ 2016-03-03 22:59         ` Alan Mackenzie
  0 siblings, 0 replies; 34+ messages in thread
From: Alan Mackenzie @ 2016-03-03 22:59 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 22884

Hello, Paul.

On Thu, Mar 03, 2016 at 01:57:11PM -0800, Paul Eggert wrote:
> On 03/03/2016 11:23 AM, Alan Mackenzie wrote:
> > Why only for the one file?

> Because I didn't have time to fix all the source files .... It could
> easily be added, at least for files we maintain. Though, as Eli says,
> it'd be nicer if cc-mode didn't think lines beginning with '(' were
> relevant for function-start in C.

This is an Emacs thing rather than a CC Mode one.  It's all about how
syntax.c goes backwards over a comment.  You've just gone back over a
comment ender, so you start searching for the comment starter, but when
do you stop and give up?  Currently the answer is at a paren in column
zero (unless open-paren-in-column-0-is-defun-start is nil).

It's a difficult problem.  In previous versions of CC Mode,
open-paren-..-start was bound to nil internally, "solving" the problem,
but at an unacceptable cost in performance, particularly when editing
later portions of a large file.

> > The performance hit comes from the amount of contiguous syntactic 
> > whitespace following the "failed" comment. Have you checked this is 
> > the only file with so much SWS?

> No. It's easier for me to simply fix all instances of code that have '(' 
> at line start. I can propose a more-complete patch along those lines.

OK.

> > OK.  Could you give me a clue as to what they mean, please?  For
> > example, in

> >      INLINE EMACS_INT
> >      (XLI) (Lisp_Object o)
> >      {
> >        return lisp_h_XLI (o);
> >      }

> > , what does "(XLI)" do?

> It defines a function named 'XLI' even though there's also a 
> function-like macro named 'XLI', without expanding the macro.

Ah, thank you!  Now you've explained it, it's obvious.

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-03 20:40   ` Eli Zaretskii
  2016-03-03 22:27     ` Alan Mackenzie
@ 2016-03-03 23:18     ` Alan Mackenzie
  2016-03-04  8:32       ` Eli Zaretskii
  1 sibling, 1 reply; 34+ messages in thread
From: Alan Mackenzie @ 2016-03-03 23:18 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: eggert, 22884

Hello, Eli.

On Thu, Mar 03, 2016 at 10:40:42PM +0200, Eli Zaretskii wrote:
> > Date: Thu, 3 Mar 2016 12:49:10 +0000
> > From: Alan Mackenzie <acm@muc.de>
> > Cc: 22884@debbugs.gnu.org

> > > emacs -Q config.h
> > > M-x goto-line RET 1661 RET / /

> > > On my six-year-old desktop the second '/' takes about 10 seconds to 
> > > echo.  This sort of thing makes Emacs effectively unusable for editing 
> > > config.h.

> > The problem is in config.h.  At line 14, inside a comment, appears the
> > following string:
> >     "(at your option) any later version."
> > .  The open paren is at column zero, so the fancy code in syntax.c then
> > fails to recognise the comment as a comment.

> I think we should change syntax.c to fix this.  (Alternatively, CC
> mode could stop depending on it, but I doubt this is a viable
> alternative.)  We cannot really tell people we don't support such
> files, as they are valid C code.

Would it be practicable to mark comments with text properties?  Say, a
property called `comment-depth' which would be either nil (meaning
currently unknown), 0 (definitely not in a comment), 1 (definitely in a
comment), 2 (in a nested comment), 3, ...... ?  That way we could always
scan comments in the forwards direction (which is easy) - if we need to
go backwards over a comment without the property, we can just go back to
a known point and scan forward.

Or would this just overwhelm the text property mechanism?

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-03 20:51     ` Eli Zaretskii
@ 2016-03-03 23:44       ` Paul Eggert
  2016-03-04 14:47         ` Alan Mackenzie
  0 siblings, 1 reply; 34+ messages in thread
From: Paul Eggert @ 2016-03-03 23:44 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: acm, 22884

[-- Attachment #1: Type: text/plain, Size: 649 bytes --]

On 03/03/2016 12:51 PM, Eli Zaretskii wrote:
> I'd rather we fixed CC Mode instead of "fixing" the
> sources it chokes on.

Me too, but I don't see a straightforward cc-mode fix for this.

Even if we come up with a fix, for some time we'll have the problem of 
people using old versions of Emacs to look at the new Emacs source code. 
And until there's a fix Emacs is reeeaally sluggish when editing 
config.h at least. So I'd rather fix at least config.h, and (since I've 
already done the work) I'm also mildly inclined to fix the other files 
to be consistent, as in the attached patch (which also covers licenses 
in the other .c and .h files).

[-- Attachment #2: 0001-Rework-C-source-files-to-avoid.fix --]
[-- Type: text/plain, Size: 217178 bytes --]

From c7c5fa7e01492963aab142d91b00cb872cb49686 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Thu, 3 Mar 2016 15:42:28 -0800
Subject: [PATCH] Rework C source files to avoid ^(
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Work around Bug#22884 by rewording comments and strings to avoid ‘(’
at the start of a line unless it starts a function.  Although this
change is a hack and we should fix cc-mode’s performance for C files
that have ‘(’ at the start of a line in a comment or string, the
change does fix the immediate problem.
---
 admin/alloc-colors.c                  |  4 ++--
 configure.ac                          |  4 ++--
 lib-src/ebrowse.c                     |  4 ++--
 lib-src/emacsclient.c                 |  4 ++--
 lib-src/etags.c                       |  8 ++++----
 lib-src/hexl.c                        |  7 +++----
 lib-src/make-docfile.c                |  4 ++--
 lib-src/movemail.c                    |  4 ++--
 lib-src/ntlib.c                       |  4 ++--
 lib-src/ntlib.h                       |  5 ++---
 lib-src/pop.c                         |  4 ++--
 lib-src/pop.h                         |  4 ++--
 lib-src/profile.c                     |  4 ++--
 lib-src/update-game-score.c           |  4 ++--
 modules/mod-test/mod-test.c           |  4 ++--
 msdos/inttypes.h                      |  4 ++--
 nt/addpm.c                            |  4 ++--
 nt/cmdproxy.c                         |  4 ++--
 nt/ddeclient.c                        |  5 ++---
 nt/inc/grp.h                          |  5 ++---
 nt/inc/inttypes.h                     |  4 ++--
 nt/inc/langinfo.h                     |  5 ++---
 nt/inc/ms-w32.h                       |  4 ++--
 nt/inc/nl_types.h                     |  4 ++--
 nt/inc/stdint.h                       |  4 ++--
 nt/inc/sys/socket.h                   |  4 ++--
 nt/inc/sys/stat.h                     |  4 ++--
 nt/inc/sys/wait.h                     |  4 ++--
 nt/preprep.c                          | 13 ++++++-------
 nt/runemacs.c                         |  4 ++--
 oldXMenu/Activate.c                   |  4 ++--
 oldXMenu/Create.c                     |  4 ++--
 oldXMenu/FindSel.c                    |  4 ++--
 oldXMenu/Internal.c                   |  4 ++--
 oldXMenu/insque.c                     |  4 ++--
 src/alloc.c                           |  4 ++--
 src/atimer.c                          |  4 ++--
 src/atimer.h                          |  4 ++--
 src/bidi.c                            |  4 ++--
 src/blockinput.h                      |  4 ++--
 src/buffer.c                          | 18 +++++++++---------
 src/buffer.h                          | 26 +++++++++++++-------------
 src/bytecode.c                        |  8 ++++----
 src/callint.c                         |  4 ++--
 src/callproc.c                        |  8 ++++----
 src/casefiddle.c                      |  4 ++--
 src/casetab.c                         |  4 ++--
 src/category.c                        |  8 ++++----
 src/category.h                        |  4 ++--
 src/ccl.c                             |  4 ++--
 src/ccl.h                             |  4 ++--
 src/character.c                       |  4 ++--
 src/character.h                       |  4 ++--
 src/charset.c                         |  4 ++--
 src/charset.h                         |  4 ++--
 src/chartab.c                         |  6 +++---
 src/cm.c                              |  4 ++--
 src/cm.h                              |  4 ++--
 src/cmds.c                            |  6 +++---
 src/coding.c                          |  8 ++++----
 src/coding.h                          |  4 ++--
 src/commands.h                        |  4 ++--
 src/composite.c                       |  4 ++--
 src/composite.h                       |  4 ++--
 src/conf_post.h                       |  4 ++--
 src/cygw32.c                          |  4 ++--
 src/cygw32.h                          |  4 ++--
 src/data.c                            |  6 +++---
 src/dbusbind.c                        |  4 ++--
 src/decompress.c                      |  4 ++--
 src/dired.c                           |  4 ++--
 src/dispextern.h                      |  4 ++--
 src/dispnew.c                         |  6 +++---
 src/disptab.h                         |  4 ++--
 src/doc.c                             |  6 +++---
 src/doprnt.c                          |  4 ++--
 src/dosfns.c                          |  4 ++--
 src/dosfns.h                          |  5 ++---
 src/dynlib.c                          |  4 ++--
 src/dynlib.h                          |  4 ++--
 src/editfns.c                         | 10 +++++-----
 src/emacs-icon.h                      |  5 ++---
 src/emacs-module.c                    |  4 ++--
 src/emacs-module.h                    |  4 ++--
 src/emacs.c                           |  4 ++--
 src/emacsgtkfixed.c                   |  4 ++--
 src/emacsgtkfixed.h                   |  4 ++--
 src/eval.c                            |  8 ++++----
 src/fileio.c                          | 22 +++++++++++-----------
 src/filelock.c                        |  4 ++--
 src/firstfile.c                       |  4 ++--
 src/floatfns.c                        | 14 +++++++-------
 src/fns.c                             | 26 +++++++++++++-------------
 src/font.c                            |  8 ++++----
 src/font.h                            |  4 ++--
 src/fontset.c                         |  4 ++--
 src/fontset.h                         |  4 ++--
 src/frame.c                           |  6 +++---
 src/frame.h                           |  4 ++--
 src/fringe.c                          |  6 +++---
 src/ftcrfont.c                        |  4 ++--
 src/ftfont.c                          |  4 ++--
 src/ftfont.h                          |  5 ++---
 src/ftxfont.c                         |  4 ++--
 src/getpagesize.h                     |  5 ++---
 src/gfilenotify.c                     |  4 ++--
 src/gnutls.c                          |  4 ++--
 src/gnutls.h                          |  4 ++--
 src/gtkutil.c                         |  4 ++--
 src/gtkutil.h                         |  4 ++--
 src/image.c                           |  4 ++--
 src/indent.c                          |  4 ++--
 src/indent.h                          |  4 ++--
 src/inotify.c                         |  6 +++---
 src/insdel.c                          |  4 ++--
 src/intervals.c                       |  4 ++--
 src/intervals.h                       |  4 ++--
 src/keyboard.c                        |  8 ++++----
 src/keyboard.h                        |  4 ++--
 src/keymap.c                          | 10 +++++-----
 src/keymap.h                          |  4 ++--
 src/kqueue.c                          | 12 +++++-------
 src/lastfile.c                        |  4 ++--
 src/lisp.h                            |  4 ++--
 src/lread.c                           |  6 +++---
 src/macfont.h                         |  5 ++---
 src/macfont.m                         |  4 ++--
 src/macros.c                          |  4 ++--
 src/macros.h                          |  4 ++--
 src/marker.c                          |  4 ++--
 src/menu.c                            |  8 ++++----
 src/menu.h                            |  4 ++--
 src/minibuf.c                         |  6 +++---
 src/msdos.c                           |  4 ++--
 src/msdos.h                           |  5 ++---
 src/nsfns.m                           | 12 ++++++------
 src/nsfont.m                          |  4 ++--
 src/nsgui.h                           |  4 ++--
 src/nsimage.m                         |  4 ++--
 src/nsmenu.m                          |  4 ++--
 src/nsselect.m                        | 10 +++++-----
 src/nsterm.h                          | 12 ++++++------
 src/nsterm.m                          |  4 ++--
 src/print.c                           |  8 ++++----
 src/process.c                         | 22 +++++++++++-----------
 src/process.h                         |  4 ++--
 src/profiler.c                        |  4 ++--
 src/puresize.h                        |  4 ++--
 src/ralloc.c                          |  4 ++--
 src/region-cache.c                    |  4 ++--
 src/region-cache.h                    |  4 ++--
 src/scroll.c                          |  4 ++--
 src/search.c                          |  4 ++--
 src/sheap.c                           |  4 ++--
 src/sound.c                           |  4 ++--
 src/syntax.c                          |  4 ++--
 src/syntax.h                          |  4 ++--
 src/sysdep.c                          |  4 ++--
 src/sysselect.h                       |  4 ++--
 src/syssignal.h                       |  4 ++--
 src/sysstdio.h                        |  4 ++--
 src/systime.h                         |  4 ++--
 src/systty.h                          |  4 ++--
 src/syswait.h                         |  4 ++--
 src/term.c                            |  4 ++--
 src/termchar.h                        |  4 ++--
 src/termhooks.h                       |  4 ++--
 src/terminal.c                        |  4 ++--
 src/terminfo.c                        |  4 ++--
 src/termopts.h                        |  4 ++--
 src/textprop.c                        |  6 +++---
 src/tparam.h                          |  4 ++--
 src/undo.c                            |  4 ++--
 src/unexaix.c                         |  4 ++--
 src/unexcoff.c                        |  4 ++--
 src/unexcw.c                          |  4 ++--
 src/unexelf.c                         |  4 ++--
 src/unexmacosx.c                      |  4 ++--
 src/unexw32.c                         | 13 ++++++-------
 src/vm-limit.c                        |  4 ++--
 src/w16select.c                       |  6 +++---
 src/w32.c                             |  4 ++--
 src/w32.h                             |  4 ++--
 src/w32common.h                       |  6 +++---
 src/w32console.c                      |  4 ++--
 src/w32fns.c                          | 12 ++++++------
 src/w32font.c                         |  4 ++--
 src/w32font.h                         |  4 ++--
 src/w32gui.h                          |  4 ++--
 src/w32heap.c                         | 11 +++++------
 src/w32heap.h                         |  4 ++--
 src/w32inevt.c                        |  4 ++--
 src/w32inevt.h                        |  4 ++--
 src/w32menu.c                         |  4 ++--
 src/w32notify.c                       |  4 ++--
 src/w32proc.c                         |  4 ++--
 src/w32reg.c                          |  4 ++--
 src/w32select.c                       |  4 ++--
 src/w32select.h                       |  4 ++--
 src/w32term.c                         |  4 ++--
 src/w32term.h                         |  4 ++--
 src/w32uniscribe.c                    |  4 ++--
 src/w32xfns.c                         |  4 ++--
 src/widget.c                          |  4 ++--
 src/widget.h                          |  4 ++--
 src/widgetprv.h                       |  4 ++--
 src/window.c                          | 10 +++++-----
 src/window.h                          |  4 ++--
 src/xdisp.c                           | 10 +++++-----
 src/xfaces.c                          | 10 +++++-----
 src/xfns.c                            | 12 ++++++------
 src/xfont.c                           |  4 ++--
 src/xftfont.c                         |  4 ++--
 src/xgselect.c                        |  4 ++--
 src/xgselect.h                        |  4 ++--
 src/xmenu.c                           |  4 ++--
 src/xml.c                             |  4 ++--
 src/xrdb.c                            |  4 ++--
 src/xselect.c                         | 16 ++++++++--------
 src/xsettings.c                       |  4 ++--
 src/xsettings.h                       |  4 ++--
 src/xsmfns.c                          |  4 ++--
 src/xterm.c                           |  4 ++--
 src/xterm.h                           |  4 ++--
 src/xwidget.c                         | 33 ++++++++++++++++++++-------------
 src/xwidget.h                         |  4 ++--
 test/etags/c-src/emacs/src/keyboard.c |  4 ++--
 test/etags/c-src/emacs/src/lisp.h     |  4 ++--
 test/etags/c-src/etags.c              |  8 ++++----
 229 files changed, 618 insertions(+), 627 deletions(-)

diff --git a/admin/alloc-colors.c b/admin/alloc-colors.c
index 9f6161e..3158cf4 100644
--- a/admin/alloc-colors.c
+++ b/admin/alloc-colors.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/configure.ac b/configure.ac
index d42b42e..370cb54 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5194,8 +5194,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/lib-src/ebrowse.c b/lib-src/ebrowse.c
index cb09ab8..c59181f 100644
--- a/lib-src/ebrowse.c
+++ b/lib-src/ebrowse.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index c7cef8a..dd66d34 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 182cb4c..06760ba 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -35,8 +35,8 @@ This file is not considered part of GNU Emacs.
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -680,8 +680,8 @@ static const char *Objc_suffixes [] =
 static const char Objc_help [] =
 "In Objective C code, tags include Objective C definitions for classes,\n\
 class categories, methods and protocols.  Tags for variables and\n\
-functions in classes are named 'CLASS::VARIABLE' and 'CLASS::FUNCTION'.\n\
-(Use --help --lang=c --lang=objc --lang=java for full help.)";
+functions in classes are named 'CLASS::VARIABLE' and 'CLASS::FUNCTION'.\
+\n(Use --help --lang=c --lang=objc --lang=java for full help.)";
 
 static const char *Pascal_suffixes [] =
   { "p", "pas", NULL };
diff --git a/lib-src/hexl.c b/lib-src/hexl.c
index 833ea50..9a5ca7e 100644
--- a/lib-src/hexl.c
+++ b/lib-src/hexl.c
@@ -1,15 +1,14 @@
 /* Convert files for Emacs Hexl mode.
    Copyright (C) 1989, 2001-2016 Free Software Foundation, Inc.
 
-Author: Keith Gabryelski
-(according to authors.el)
+Author: Keith Gabryelski (according to authors.el)
 
 This file is not considered part of GNU Emacs.
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index e266207..32e3817 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/lib-src/movemail.c b/lib-src/movemail.c
index eb1962a..7f20e25 100644
--- a/lib-src/movemail.c
+++ b/lib-src/movemail.c
@@ -8,8 +8,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/lib-src/ntlib.c b/lib-src/ntlib.c
index 931a3ab..4b25796 100644
--- a/lib-src/ntlib.c
+++ b/lib-src/ntlib.c
@@ -9,8 +9,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/lib-src/ntlib.h b/lib-src/ntlib.h
index a0c0d43..b49da79 100644
--- a/lib-src/ntlib.h
+++ b/lib-src/ntlib.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -102,4 +102,3 @@ int mkostemp (char * template, int flags);
 #undef _WINSOCK_H
 
 /* end of ntlib.h */
-
diff --git a/lib-src/pop.c b/lib-src/pop.c
index 812bd4c..6e3b6a9 100644
--- a/lib-src/pop.c
+++ b/lib-src/pop.c
@@ -9,8 +9,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/lib-src/pop.h b/lib-src/pop.h
index 4c67bdc..b8c21fc 100644
--- a/lib-src/pop.h
+++ b/lib-src/pop.h
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/lib-src/profile.c b/lib-src/profile.c
index da6232a..0e60377 100644
--- a/lib-src/profile.c
+++ b/lib-src/profile.c
@@ -8,8 +8,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/lib-src/update-game-score.c b/lib-src/update-game-score.c
index 3803a31..7675e9b 100644
--- a/lib-src/update-game-score.c
+++ b/lib-src/update-game-score.c
@@ -8,8 +8,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/modules/mod-test/mod-test.c b/modules/mod-test/mod-test.c
index bb9c8a5..3c8ab0f 100644
--- a/modules/mod-test/mod-test.c
+++ b/modules/mod-test/mod-test.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/msdos/inttypes.h b/msdos/inttypes.h
index da61b11..550ef36 100644
--- a/msdos/inttypes.h
+++ b/msdos/inttypes.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/nt/addpm.c b/nt/addpm.c
index ed5014f..2161ea7 100644
--- a/nt/addpm.c
+++ b/nt/addpm.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/nt/cmdproxy.c b/nt/cmdproxy.c
index 4ca533b..411a409 100644
--- a/nt/cmdproxy.c
+++ b/nt/cmdproxy.c
@@ -16,8 +16,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/nt/ddeclient.c b/nt/ddeclient.c
index f15c188..7bbbdb0 100644
--- a/nt/ddeclient.c
+++ b/nt/ddeclient.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -70,4 +70,3 @@ main (int argc, char *argv[])
 
   return (0);
 }
-
diff --git a/nt/inc/grp.h b/nt/inc/grp.h
index c441396..903fda9 100644
--- a/nt/inc/grp.h
+++ b/nt/inc/grp.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -34,4 +34,3 @@ extern unsigned getegid (void);
 extern struct group *getgrgid(gid_t);
 
 #endif /* _GRP_H */
-
diff --git a/nt/inc/inttypes.h b/nt/inc/inttypes.h
index 9abd55d..34d026c 100644
--- a/nt/inc/inttypes.h
+++ b/nt/inc/inttypes.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/nt/inc/langinfo.h b/nt/inc/langinfo.h
index 646c8ca..1532eaa 100644
--- a/nt/inc/langinfo.h
+++ b/nt/inc/langinfo.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -58,4 +58,3 @@ enum {
 extern char *nl_langinfo (nl_item);
 
 #endif /* _LANGINFO_H */
-
diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h
index a37510e..d153433 100644
--- a/nt/inc/ms-w32.h
+++ b/nt/inc/ms-w32.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/nt/inc/nl_types.h b/nt/inc/nl_types.h
index 6b22e76..e4d314c 100644
--- a/nt/inc/nl_types.h
+++ b/nt/inc/nl_types.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/nt/inc/stdint.h b/nt/inc/stdint.h
index adc6a1e..bb067f4 100644
--- a/nt/inc/stdint.h
+++ b/nt/inc/stdint.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/nt/inc/sys/socket.h b/nt/inc/sys/socket.h
index d7ed92d..ad40fc9 100644
--- a/nt/inc/sys/socket.h
+++ b/nt/inc/sys/socket.h
@@ -4,8 +4,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/nt/inc/sys/stat.h b/nt/inc/sys/stat.h
index f21086c..45bc2ea 100644
--- a/nt/inc/sys/stat.h
+++ b/nt/inc/sys/stat.h
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/nt/inc/sys/wait.h b/nt/inc/sys/wait.h
index 8a77e98..46dae49 100644
--- a/nt/inc/sys/wait.h
+++ b/nt/inc/sys/wait.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/nt/preprep.c b/nt/preprep.c
index 303e2ef..491a93b 100644
--- a/nt/preprep.c
+++ b/nt/preprep.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -34,11 +34,10 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 /* Include relevant definitions from IMAGEHLP.H, which can be found
    in \\win32sdk\mstools\samples\image\include\imagehlp.h. */
 
-PIMAGE_NT_HEADERS
-(__stdcall * pfnCheckSumMappedFile) (LPVOID BaseAddress,
-				     DWORD_PTR FileLength,
-				     PDWORD_PTR HeaderSum,
-				     PDWORD_PTR CheckSum);
+PIMAGE_NT_HEADERS (__stdcall * pfnCheckSumMappedFile) (LPVOID BaseAddress,
+						       DWORD_PTR FileLength,
+						       PDWORD_PTR HeaderSum,
+						       PDWORD_PTR CheckSum);
 
 #undef min
 #undef max
diff --git a/nt/runemacs.c b/nt/runemacs.c
index 2685b25..b5e16c0 100644
--- a/nt/runemacs.c
+++ b/nt/runemacs.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/oldXMenu/Activate.c b/oldXMenu/Activate.c
index 1e2b198..0b812c5 100644
--- a/oldXMenu/Activate.c
+++ b/oldXMenu/Activate.c
@@ -7,8 +7,8 @@ Copyright (C) 2001-2016 Free Software Foundation, Inc.
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/oldXMenu/Create.c b/oldXMenu/Create.c
index d0cf8f0..2fd86b2 100644
--- a/oldXMenu/Create.c
+++ b/oldXMenu/Create.c
@@ -7,8 +7,8 @@ Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/oldXMenu/FindSel.c b/oldXMenu/FindSel.c
index 84c8651..991e1ca 100644
--- a/oldXMenu/FindSel.c
+++ b/oldXMenu/FindSel.c
@@ -7,8 +7,8 @@ Copyright (C) 2001-2016 Free Software Foundation, Inc.
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/oldXMenu/Internal.c b/oldXMenu/Internal.c
index f25c963..45cdf4d 100644
--- a/oldXMenu/Internal.c
+++ b/oldXMenu/Internal.c
@@ -7,8 +7,8 @@ Copyright (C) 1993, 1996, 2001-2016 Free Software Foundation, Inc.
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/oldXMenu/insque.c b/oldXMenu/insque.c
index 248eeafc..c044ff0 100644
--- a/oldXMenu/insque.c
+++ b/oldXMenu/insque.c
@@ -3,8 +3,8 @@ Copyright (C) 1993-1998, 2001-2016 Free Software Foundation, Inc.
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/alloc.c b/src/alloc.c
index 6bc1b8a..b5be0f6 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/atimer.c b/src/atimer.c
index 8019560..70d9bf5 100644
--- a/src/atimer.c
+++ b/src/atimer.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/atimer.h b/src/atimer.h
index bebd156..17183c8 100644
--- a/src/atimer.h
+++ b/src/atimer.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/bidi.c b/src/bidi.c
index e778705..ef8cdd2 100644
--- a/src/bidi.c
+++ b/src/bidi.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/blockinput.h b/src/blockinput.h
index 5b8bf64..bf51375 100644
--- a/src/blockinput.h
+++ b/src/blockinput.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/buffer.c b/src/buffer.c
index 653e3fe..f06d7e0 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1044,7 +1044,7 @@ DEFUN ("generate-new-buffer-name", Fgenerate_new_buffer_name,
        doc: /* Return a string that is the name of no existing buffer based on NAME.
 If there is no live buffer named NAME, then return NAME.
 Otherwise modify name by appending `<NUMBER>', incrementing NUMBER
-(starting at 2) until an unused name is found, and then return that name.
+\(starting at 2) until an unused name is found, and then return that name.
 Optional second argument IGNORE specifies a name that is okay to use (if
 it is in the sequence to be tried) even if a buffer with that name exists.
 
@@ -3793,10 +3793,10 @@ If omitted, BUFFER defaults to the current buffer.
 BEG and END may be integers or markers.
 The fourth arg FRONT-ADVANCE, if non-nil, makes the marker
 for the front of the overlay advance when text is inserted there
-(which means the text *is not* included in the overlay).
+\(which means the text *is not* included in the overlay).
 The fifth arg REAR-ADVANCE, if non-nil, makes the marker
 for the rear of the overlay advance when text is inserted there
-(which means the text *is* included in the overlay).  */)
+\(which means the text *is* included in the overlay).  */)
   (Lisp_Object beg, Lisp_Object end, Lisp_Object buffer,
    Lisp_Object front_advance, Lisp_Object rear_advance)
 {
@@ -6028,7 +6028,7 @@ between 0.0 and 1.0, inclusive.  */);
 	       doc: /* List of functions to call before each text change.
 Two arguments are passed to each function: the positions of
 the beginning and end of the range of old text to be changed.
-(For an insertion, the beginning and end are at the same place.)
+\(For an insertion, the beginning and end are at the same place.)
 No information is given about the length of the text after the change.
 
 Buffer changes made while executing the `before-change-functions'
@@ -6045,7 +6045,7 @@ from happening repeatedly and making Emacs nonfunctional.  */);
 Three arguments are passed to each function: the positions of
 the beginning and end of the range of changed text,
 and the length in chars of the pre-change text replaced by that range.
-(For an insertion, the pre-change length is zero;
+\(For an insertion, the pre-change length is zero;
 for a deletion, that length is the number of chars deleted,
 and the post-change beginning and end are at the same place.)
 
@@ -6090,7 +6090,7 @@ was modified between BEG and END.  PROPERTY is the property name,
 and VALUE is the old value.
 
 An entry (apply FUN-NAME . ARGS) means undo the change with
-(apply FUN-NAME ARGS).
+\(apply FUN-NAME ARGS).
 
 An entry (apply DELTA BEG END FUN-NAME . ARGS) supports selective undo
 in the active region.  BEG and END is the range affected by this entry
@@ -6250,7 +6250,7 @@ to the default frame line height.  A value of nil means add no extra space.  */)
 		     doc: /* Non-nil means show a cursor in non-selected windows.
 If nil, only shows a cursor in the selected window.
 If t, displays a cursor related to the usual cursor type
-(a solid box becomes hollow, a bar becomes a narrower bar).
+\(a solid box becomes hollow, a bar becomes a narrower bar).
 You can also specify the cursor type as in the `cursor-type' variable.
 Use Custom to set this variable and update the display.  */);
 
diff --git a/src/buffer.h b/src/buffer.h
index 5783bfb..87b7cee 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -352,9 +352,9 @@ extern void enlarge_buffer_text (struct buffer *, ptrdiff_t);
 /* Convert PTR, the address of a byte in the buffer, into a byte position.  */
 
 #define PTR_BYTE_POS(ptr) \
-((ptr) - (current_buffer)->text->beg					    \
- - (ptr - (current_buffer)->text->beg <= GPT_BYTE - BEG_BYTE ? 0 : GAP_SIZE) \
- + BEG_BYTE)
+  ((ptr) - (current_buffer)->text->beg					    \
+   - (ptr - (current_buffer)->text->beg <= GPT_BYTE - BEG_BYTE ? 0 : GAP_SIZE) \
+   + BEG_BYTE)
 
 /* Return character at byte position POS.  See the caveat WARNING for
    FETCH_MULTIBYTE_CHAR below.  */
@@ -386,24 +386,24 @@ extern void enlarge_buffer_text (struct buffer *, ptrdiff_t);
    Note that both arguments can be computed more than once.  */
 
 #define BUF_BYTE_ADDRESS(buf, pos) \
-((buf)->text->beg + (pos) - BEG_BYTE		\
- + ((pos) >= (buf)->text->gpt_byte ? (buf)->text->gap_size : 0))
+  ((buf)->text->beg + (pos) - BEG_BYTE \
+   + ((pos) >= (buf)->text->gpt_byte ? (buf)->text->gap_size : 0))
 
 /* Return the address of character at char position POS in buffer BUF.
    Note that both arguments can be computed more than once.  */
 
 #define BUF_CHAR_ADDRESS(buf, pos) \
-((buf)->text->beg + buf_charpos_to_bytepos ((buf), (pos)) - BEG_BYTE	\
- + ((pos) >= (buf)->text->gpt ? (buf)->text->gap_size : 0))
+  ((buf)->text->beg + buf_charpos_to_bytepos ((buf), (pos)) - BEG_BYTE	\
+   + ((pos) >= (buf)->text->gpt ? (buf)->text->gap_size : 0))
 
 /* Convert PTR, the address of a char in buffer BUF,
    into a character position.  */
 
 #define BUF_PTR_BYTE_POS(buf, ptr)				\
-((ptr) - (buf)->text->beg					\
- - (ptr - (buf)->text->beg <= BUF_GPT_BYTE (buf) - BEG_BYTE	\
-    ? 0 : BUF_GAP_SIZE ((buf)))					\
- + BEG_BYTE)
+  ((ptr) - (buf)->text->beg					\
+   - (ptr - (buf)->text->beg <= BUF_GPT_BYTE (buf) - BEG_BYTE	\
+      ? 0 : BUF_GAP_SIZE ((buf)))				\
+   + BEG_BYTE)
 
 /* Return the character at byte position POS in buffer BUF.   */
 
diff --git a/src/bytecode.c b/src/bytecode.c
index 0befe65..9ae2e82 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1996,9 +1996,9 @@ syms_of_bytecode (void)
 
   DEFVAR_LISP ("byte-code-meter", Vbyte_code_meter,
 	       doc: /* A vector of vectors which holds a histogram of byte-code usage.
-(aref (aref byte-code-meter 0) CODE) indicates how many times the byte
+\(aref (aref byte-code-meter 0) CODE) indicates how many times the byte
 opcode CODE has been executed.
-(aref (aref byte-code-meter CODE1) CODE2), where CODE1 is not 0,
+\(aref (aref byte-code-meter CODE1) CODE2), where CODE1 is not 0,
 indicates how many times the byte opcodes CODE1 and CODE2 have been
 executed in succession.  */);
 
diff --git a/src/callint.c b/src/callint.c
index 3b23f22..3bcf2c8 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/callproc.c b/src/callproc.c
index 9ad7ef2..db602f5 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1457,7 +1457,7 @@ This function searches `process-environment' for VARIABLE.
 
 If optional parameter ENV is a list, then search this list instead of
 `process-environment', and return t when encountering a negative entry
-(an entry for a variable with no value).  */)
+\(an entry for a variable with no value).  */)
   (Lisp_Object variable, Lisp_Object env)
 {
   char *value;
@@ -1668,7 +1668,7 @@ Each element is a string (directory name) or nil (try default directory).
 
 By default the last element of this list is `exec-directory'. The
 last element is not always used, for example in shell completion
-(`shell-dynamic-complete-command').  */);
+\(`shell-dynamic-complete-command').  */);
 
   DEFVAR_LISP ("exec-suffixes", Vexec_suffixes,
 	       doc: /* List of suffixes to try to find executable file names.
diff --git a/src/casefiddle.c b/src/casefiddle.c
index 348215e..c5bfa36 100644
--- a/src/casefiddle.c
+++ b/src/casefiddle.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/casetab.c b/src/casetab.c
index 8327fbd..2461647 100644
--- a/src/casetab.c
+++ b/src/casetab.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/category.c b/src/category.c
index 61502f8..4397f66 100644
--- a/src/category.c
+++ b/src/category.c
@@ -13,8 +13,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -462,7 +462,7 @@ Emacs treats a sequence of word constituent characters as a single
 word (i.e. finds no word boundary between them) only if they belong to
 the same script.  But, exceptions are allowed in the following cases.
 
-(1) The case that characters are in different scripts is controlled
+\(1) The case that characters are in different scripts is controlled
 by the variable `word-combining-categories'.
 
 Emacs finds no word boundary between characters of different scripts
@@ -476,7 +476,7 @@ For instance, to tell that Han characters followed by Hiragana
 characters can form a single word, the element `(?C . ?H)' should be
 in this list.
 
-(2) The case that character are in the same script is controlled by
+\(2) The case that character are in the same script is controlled by
 the variable `word-separating-categories'.
 
 Emacs finds a word boundary between characters of the same script
diff --git a/src/category.h b/src/category.h
index 02f9a19..247f909 100644
--- a/src/category.h
+++ b/src/category.h
@@ -11,8 +11,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/ccl.c b/src/ccl.c
index 8cfd9b5..d962034 100644
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -12,8 +12,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/ccl.h b/src/ccl.h
index fdce437..10860f5 100644
--- a/src/ccl.h
+++ b/src/ccl.h
@@ -11,8 +11,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/character.c b/src/character.c
index 4818748..9f60aa7 100644
--- a/src/character.c
+++ b/src/character.c
@@ -11,8 +11,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/character.h b/src/character.h
index 440e781..bc3e155 100644
--- a/src/character.h
+++ b/src/character.h
@@ -9,8 +9,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/charset.c b/src/charset.c
index 48e4768..8ff469e 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -15,8 +15,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/charset.h b/src/charset.h
index a5c4532..8e77567 100644
--- a/src/charset.h
+++ b/src/charset.h
@@ -13,8 +13,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/chartab.c b/src/chartab.c
index ec618f3..6cf8fea 100644
--- a/src/chartab.c
+++ b/src/chartab.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -533,7 +533,7 @@ DEFUN ("char-table-parent", Fchar_table_parent, Schar_table_parent,
 The value is either nil or another char-table.
 If CHAR-TABLE holds nil for a given character,
 then the actual applicable value is inherited from the parent char-table
-(or from its parents, if necessary).  */)
+\(or from its parents, if necessary).  */)
   (Lisp_Object char_table)
 {
   CHECK_CHAR_TABLE (char_table);
diff --git a/src/cm.c b/src/cm.c
index ec1545d..4f94c07 100644
--- a/src/cm.c
+++ b/src/cm.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/cm.h b/src/cm.h
index c109c47..126969d 100644
--- a/src/cm.h
+++ b/src/cm.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/cmds.c b/src/cmds.c
index 3450003..1e44ddd 100644
--- a/src/cmds.c
+++ b/src/cmds.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -106,7 +106,7 @@ right or to the left on the screen.  This is in contrast with
 DEFUN ("forward-line", Fforward_line, Sforward_line, 0, 1, "^p",
        doc: /* Move N lines forward (backward if N is negative).
 Precisely, if point is on line I, move to the start of line I + N
-("start of line" in the logical order).
+\("start of line" in the logical order).
 If there isn't room, go as far as possible (no error).
 
 Returns the count of lines left to move.  If moving forward,
diff --git a/src/coding.c b/src/coding.c
index e591bed..9f709be 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -12,8 +12,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -9800,7 +9800,7 @@ DEFUN ("find-operation-coding-system", Ffind_operation_coding_system,
        doc: /* Choose a coding system for an operation based on the target name.
 The value names a pair of coding systems: (DECODING-SYSTEM . ENCODING-SYSTEM).
 DECODING-SYSTEM is the coding system to use for decoding
-(in case OPERATION does decoding), and ENCODING-SYSTEM is the coding system
+\(in case OPERATION does decoding), and ENCODING-SYSTEM is the coding system
 for encoding (in case OPERATION does encoding).
 
 The first argument OPERATION specifies an I/O primitive:
@@ -11175,7 +11175,7 @@ the cdr part is used for encoding a text to be sent to a process.  */);
 Table of extra Latin codes in the range 128..159 (inclusive).
 This is a vector of length 256.
 If Nth element is non-nil, the existence of code N in a file
-(or output of subprocess) doesn't prevent it to be detected as
+\(or output of subprocess) doesn't prevent it to be detected as
 a coding system of ISO 2022 variant which has a flag
 `accept-latin-extra-code' t (e.g. iso-latin-1) on reading a file
 or reading output of a subprocess.
diff --git a/src/coding.h b/src/coding.h
index ea0cdd5..93ddff0 100644
--- a/src/coding.h
+++ b/src/coding.h
@@ -12,8 +12,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/commands.h b/src/commands.h
index 36ac00f..4e69cda 100644
--- a/src/commands.h
+++ b/src/commands.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/composite.c b/src/composite.c
index 43c909f..49b0003 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -11,8 +11,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/composite.h b/src/composite.h
index 1423feb..80e1740 100644
--- a/src/composite.h
+++ b/src/composite.h
@@ -11,8 +11,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/conf_post.h b/src/conf_post.h
index 5c332a0..d0f04b6 100644
--- a/src/conf_post.h
+++ b/src/conf_post.h
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/cygw32.c b/src/cygw32.c
index 422b04d..6822320 100644
--- a/src/cygw32.c
+++ b/src/cygw32.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/cygw32.h b/src/cygw32.h
index 58d8cd4..0f69881 100644
--- a/src/cygw32.h
+++ b/src/cygw32.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/data.c b/src/data.c
index 07f8724..2574cbb 100644
--- a/src/data.c
+++ b/src/data.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1673,7 +1673,7 @@ DEFUN ("make-local-variable", Fmake_local_variable, Smake_local_variable,
        1, 1, "vMake Local Variable: ",
        doc: /* Make VARIABLE have a separate value in the current buffer.
 Other buffers will continue to share a common default value.
-(The buffer-local value of VARIABLE starts out as the same value
+\(The buffer-local value of VARIABLE starts out as the same value
 VARIABLE previously had.  If VARIABLE was void, it remains void.)
 Return VARIABLE.
 
diff --git a/src/dbusbind.c b/src/dbusbind.c
index 5148c32..d3a32c0 100644
--- a/src/dbusbind.c
+++ b/src/dbusbind.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/decompress.c b/src/decompress.c
index 8fb71b0..1213f48 100644
--- a/src/decompress.c
+++ b/src/decompress.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/dired.c b/src/dired.c
index 97fefae..e21b227 100644
--- a/src/dired.c
+++ b/src/dired.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/dispextern.h b/src/dispextern.h
index 00667c5..7035872 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/dispnew.c b/src/dispnew.c
index f834f35..3a0532a 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -5671,7 +5671,7 @@ DEFUN ("sleep-for", Fsleep_for, Ssleep_for, 1, 2, 0,
 SECONDS may be a floating-point value, meaning that you can wait for a
 fraction of a second.  Optional second arg MILLISECONDS specifies an
 additional wait period, in milliseconds; this is for backwards compatibility.
-(Not all operating systems support waiting for a fraction of a second.)  */)
+\(Not all operating systems support waiting for a fraction of a second.)  */)
   (Lisp_Object seconds, Lisp_Object milliseconds)
 {
   double duration = extract_float (seconds);
diff --git a/src/disptab.h b/src/disptab.h
index 211b649..964162f 100644
--- a/src/disptab.h
+++ b/src/disptab.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/doc.c b/src/doc.c
index a9273f0..0d94d10 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -716,7 +716,7 @@ is not on any keys.
 Each substring of the form \\=\\{MAPVAR} is replaced by a summary of
 the value of MAPVAR as a keymap.  This summary is similar to the one
 produced by `describe-bindings'.  The summary ends in two newlines
-(used by the helper function `help-make-xrefs' to find the end of the
+\(used by the helper function `help-make-xrefs' to find the end of the
 summary).
 
 Each substring of the form \\=\\<MAPVAR> specifies the use of MAPVAR
diff --git a/src/doprnt.c b/src/doprnt.c
index b0b92bf..506bbc3 100644
--- a/src/doprnt.c
+++ b/src/doprnt.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/dosfns.c b/src/dosfns.c
index f507f41..880fee9 100644
--- a/src/dosfns.c
+++ b/src/dosfns.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/dosfns.h b/src/dosfns.h
index fa45d71..9fbf7ed 100644
--- a/src/dosfns.h
+++ b/src/dosfns.h
@@ -9,8 +9,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -29,4 +29,3 @@ extern int         msdos_stdcolor_idx  (const char *);
 extern Lisp_Object msdos_stdcolor_name (int);
 extern void        x_set_title (struct frame *, Lisp_Object);
 #endif
-
diff --git a/src/dynlib.c b/src/dynlib.c
index c4647e6..64f688c 100644
--- a/src/dynlib.c
+++ b/src/dynlib.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/dynlib.h b/src/dynlib.h
index 33b6d60..a9da985 100644
--- a/src/dynlib.h
+++ b/src/dynlib.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/editfns.c b/src/editfns.c
index bd70f0a..df98223 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1895,7 +1895,7 @@ DEFUN ("float-time", Ffloat_time, Sfloat_time, 0, 1, 0,
        doc: /* Return the current time, as a float number of seconds since the epoch.
 If SPECIFIED-TIME is given, it is the time to convert to float
 instead of the current time.  The argument should have the form
-(HIGH LOW) or (HIGH LOW USEC) or (HIGH LOW USEC PSEC).  Thus,
+\(HIGH LOW) or (HIGH LOW USEC) or (HIGH LOW USEC PSEC).  Thus,
 you can use times from `current-time' and from `file-attributes'.
 SPECIFIED-TIME can also have the form (HIGH . LOW), but this is
 considered obsolete.
@@ -2284,7 +2284,7 @@ OFFSET is an integer number of seconds ahead of UTC (east of Greenwich).
 NAME is a string giving the name of the time zone.
 If SPECIFIED-TIME is given, the time zone offset is determined from it
 instead of using the current time.  The argument should have the form
-(HIGH LOW . IGNORED).  Thus, you can use times obtained from
+\(HIGH LOW . IGNORED).  Thus, you can use times obtained from
 `current-time' and from `file-attributes'.  SPECIFIED-TIME can also
 have the form (HIGH . LOW), but this is considered obsolete.
 Optional second arg ZONE is omitted or nil for the local time zone, or
@@ -3627,7 +3627,7 @@ save_restriction_restore (Lisp_Object data)
 DEFUN ("save-restriction", Fsave_restriction, Ssave_restriction, 0, UNEVALLED, 0,
        doc: /* Execute BODY, saving and restoring current buffer's restrictions.
 The buffer's restrictions make parts of the beginning and end invisible.
-(They are set up with `narrow-to-region' and eliminated with `widen'.)
+\(They are set up with `narrow-to-region' and eliminated with `widen'.)
 This special form, `save-restriction', saves the current buffer's restrictions
 when it is entered, and restores them when it is exited.
 So any `narrow-to-region' within BODY lasts only until the end of the form.
diff --git a/src/emacs-icon.h b/src/emacs-icon.h
index 2f0806c..970135f 100644
--- a/src/emacs-icon.h
+++ b/src/emacs-icon.h
@@ -9,8 +9,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -350,4 +350,3 @@ static unsigned char gnu_xbm_bits[] = {
    0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00};
-
diff --git a/src/emacs-module.c b/src/emacs-module.c
index 79a077b..eca5af7 100644
--- a/src/emacs-module.c
+++ b/src/emacs-module.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/emacs-module.h b/src/emacs-module.h
index 575966e..b4ae5ea 100644
--- a/src/emacs-module.h
+++ b/src/emacs-module.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/emacs.c b/src/emacs.c
index 9bf996a..d1d649d 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/emacsgtkfixed.c b/src/emacsgtkfixed.c
index 6795155..cebd7b6 100644
--- a/src/emacsgtkfixed.c
+++ b/src/emacsgtkfixed.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/emacsgtkfixed.h b/src/emacsgtkfixed.h
index 72652c5..3d6a76a 100644
--- a/src/emacsgtkfixed.h
+++ b/src/emacsgtkfixed.h
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/eval.c b/src/eval.c
index 26104a5..fe6460d 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1191,7 +1191,7 @@ suppresses the debugger).
 When a handler handles an error, control returns to the `condition-case'
 and it executes the handler's BODY...
 with VAR bound to (ERROR-SYMBOL . SIGNAL-DATA) from the error.
-(If VAR is nil, the handler can't access that information.)
+\(If VAR is nil, the handler can't access that information.)
 Then the value of the last BODY form is returned from the `condition-case'
 expression.
 
@@ -2409,7 +2409,7 @@ may be nil, a function, or a list of functions.  Call each
 function in order with arguments ARGS, stopping at the first
 one that returns nil, and return nil.  Otherwise (if all functions
 return non-nil, or if there are no functions to call), return non-nil
-(do not rely on the precise return value in this case).
+\(do not rely on the precise return value in this case).
 
 Do not use `make-local-variable' to make a hook variable buffer-local.
 Instead, use `add-hook' and specify t for the LOCAL argument.
diff --git a/src/fileio.c b/src/fileio.c
index 0372f46..dfab3de 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -450,7 +450,7 @@ DEFUN ("unhandled-file-name-directory", Funhandled_file_name_directory,
 A `directly usable' directory name is one that may be used without the
 intervention of any file handler.
 If FILENAME is a directly usable file itself, return
-(file-name-as-directory FILENAME).
+\(file-name-as-directory FILENAME).
 If FILENAME refers to a file which is not accessible from a local process,
 then this should return nil.
 The `call-process' and `start-process' functions use this function to
@@ -741,7 +741,7 @@ DEFUN ("make-temp-name", Fmake_temp_name, Smake_temp_name, 1, 1, 0,
        doc: /* Generate temporary file name (string) starting with PREFIX (a string).
 The Emacs process number forms part of the result, so there is no
 danger of generating a name being used by another Emacs process
-(so long as only a single host can access the containing directory...).
+\(so long as only a single host can access the containing directory...).
 
 This function tries to choose a name that has no existing file.
 For this to work, PREFIX should be an absolute file name.
@@ -757,7 +757,7 @@ normally use `make-temp-file' instead.  */)
 DEFUN ("expand-file-name", Fexpand_file_name, Sexpand_file_name, 1, 2, 0,
        doc: /* Convert filename NAME to absolute, and canonicalize it.
 Second arg DEFAULT-DIRECTORY is directory to start with if NAME is relative
-(does not start with slash or tilde); both the directory name and
+\(does not start with slash or tilde); both the directory name and
 a directory's file name are accepted.  If DEFAULT-DIRECTORY is nil or
 missing, the current buffer's value of `default-directory' is used.
 NAME should be a string that is a valid file name for the underlying
@@ -775,8 +775,8 @@ See also the function `substitute-in-file-name'.
 
 For technical reasons, this function can return correct but
 non-intuitive results for the root directory; for instance,
-(expand-file-name ".." "/") returns "/..".  For this reason, use
-(directory-file-name (file-name-directory dirname)) to traverse a
+\(expand-file-name ".." "/") returns "/..".  For this reason, use
+\(directory-file-name (file-name-directory dirname)) to traverse a
 filesystem tree, not (expand-file-name ".."  dirname).  */)
   (Lisp_Object name, Lisp_Object default_directory)
 {
@@ -1459,7 +1459,7 @@ filesystem tree, not (expand-file-name ".."  dirname).  */)
 DEAFUN ("expand-file-name", Fexpand_file_name, Sexpand_file_name, 1, 2, 0,
   "Convert FILENAME to absolute, and canonicalize it.\n\
 Second arg DEFAULT is directory to start with if FILENAME is relative\n\
-(does not start with slash); if DEFAULT is nil or missing,\n\
+\(does not start with slash); if DEFAULT is nil or missing,\n\
 the current buffer's value of default-directory is used.\n\
 Filenames containing `.' or `..' as components are simplified;\n\
 initial `~/' expands to your home directory.\n\
@@ -2468,7 +2468,7 @@ Use `file-symlink-p' to test for such links.  */)
 DEFUN ("file-executable-p", Ffile_executable_p, Sfile_executable_p, 1, 1, 0,
        doc: /* Return t if FILENAME can be executed by you.
 For a directory, this means you can access files in that directory.
-(It is generally better to use `file-accessible-directory-p' for that
+\(It is generally better to use `file-accessible-directory-p' for that
 purpose, though.)  */)
   (Lisp_Object filename)
 {
@@ -5329,8 +5329,8 @@ DEFUN ("set-visited-file-modtime", Fset_visited_file_modtime,
 Useful if the buffer was not read from the file normally
 or if the file itself has been changed for some known benign reason.
 An argument specifies the modification time value to use
-(instead of that of the visited file), in the form of a list
-(HIGH LOW USEC PSEC) or an integer flag as returned by
+\(instead of that of the visited file), in the form of a list
+\(HIGH LOW USEC PSEC) or an integer flag as returned by
 `visited-file-modtime'.  */)
   (Lisp_Object time_flag)
 {
diff --git a/src/filelock.c b/src/filelock.c
index 1b32b93..bc3a620 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -10,8 +10,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/firstfile.c b/src/firstfile.c
index 68effeb..188d4f8 100644
--- a/src/firstfile.c
+++ b/src/firstfile.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/floatfns.c b/src/floatfns.c
index cf485b6..b9af03b 100644
--- a/src/floatfns.c
+++ b/src/floatfns.c
@@ -3,15 +3,15 @@
 Copyright (C) 1988, 1993-1994, 1999, 2001-2016 Free Software Foundation,
 Inc.
 
-Author: Wolfgang Rupprecht
-(according to ack.texi)
+Author: Wolfgang Rupprecht (ac
+ording to ack.texi)
 
 This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -170,7 +170,7 @@ Cause an error if X1 or X2 is not a float.  */)
 DEFUN ("frexp", Ffrexp, Sfrexp, 1, 1, 0,
        doc: /* Get significand and exponent of a floating point number.
 Breaks the floating point number X into its binary significand SGNFCAND
-(a floating point value between 0.5 (included) and 1.0 (excluded))
+\(a floating point value between 0.5 (included) and 1.0 (excluded))
 and an integral exponent EXP for 2, such that:
 
   X = SGNFCAND * 2^EXP
@@ -491,7 +491,7 @@ fmod_float (Lisp_Object x, Lisp_Object y)
 \f
 DEFUN ("fceiling", Ffceiling, Sfceiling, 1, 1, 0,
        doc: /* Return the smallest integer no less than ARG, as a float.
-(Round toward +inf.)  */)
+\(Round toward +inf.)  */)
   (Lisp_Object arg)
 {
   double d = extract_float (arg);
@@ -501,7 +501,7 @@ DEFUN ("fceiling", Ffceiling, Sfceiling, 1, 1, 0,
 
 DEFUN ("ffloor", Fffloor, Sffloor, 1, 1, 0,
        doc: /* Return the largest integer no greater than ARG, as a float.
-(Round towards -inf.)  */)
+\(Round towards -inf.)  */)
   (Lisp_Object arg)
 {
   double d = extract_float (arg);
diff --git a/src/fns.c b/src/fns.c
index 86ad333..47ed2d8 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -216,7 +216,7 @@ DEFUN ("compare-strings", Fcompare_strings, Scompare_strings, 6, 7, 0,
 The arguments START1, END1, START2, and END2, if non-nil, are
 positions specifying which parts of STR1 or STR2 to compare.  In
 string STR1, compare the part between START1 (inclusive) and END1
-(exclusive).  If START1 is nil, it defaults to 0, the beginning of
+\(exclusive).  If START1 is nil, it defaults to 0, the beginning of
 the string; if END1 is nil, it defaults to the length of the string.
 Likewise, in string STR2, compare the part between START2 and END2.
 Like in `substring', negative values are counted from the end.
@@ -339,7 +339,7 @@ This function obeys the conventions for collation order in your
 locale settings.  For example, punctuation and whitespace characters
 might be considered less significant for sorting:
 
-(sort \\='("11" "12" "1 1" "1 2" "1.1" "1.2") \\='string-collate-lessp)
+\(sort \\='("11" "12" "1 1" "1 2" "1.1" "1.2") \\='string-collate-lessp)
   => ("11" "1 1" "1.1" "12" "1 2" "1.2")
 
 The optional argument LOCALE, a string, overrides the setting of your
@@ -385,7 +385,7 @@ settings.  For example, characters with different coding points but
 the same meaning might be considered as equal, like different grave
 accent Unicode characters:
 
-(string-collate-equalp (string ?\\uFF40) (string ?\\u1FEF))
+\(string-collate-equalp (string ?\\uFF40) (string ?\\u1FEF))
   => t
 
 The optional argument LOCALE, a string, overrides the setting of your
@@ -1018,7 +1018,7 @@ to a multibyte character.  In this case, the returned string is a
 newly created string with no text properties.  If STRING is multibyte
 or entirely ASCII, it is returned unchanged.  In particular, when
 STRING is unibyte and entirely ASCII, the returned string is unibyte.
-(When the characters are all ASCII, Emacs primitives will treat the
+\(When the characters are all ASCII, Emacs primitives will treat the
 string the same way whether it is unibyte or multibyte.)  */)
   (Lisp_Object string)
 {
@@ -1217,14 +1217,14 @@ validate_subarray (Lisp_Object array, Lisp_Object from, Lisp_Object to,
 DEFUN ("substring", Fsubstring, Ssubstring, 1, 3, 0,
        doc: /* Return a new string whose contents are a substring of STRING.
 The returned string consists of the characters between index FROM
-(inclusive) and index TO (exclusive) of STRING.  FROM and TO are
+\(inclusive) and index TO (exclusive) of STRING.  FROM and TO are
 zero-indexed: 0 means the first character of STRING.  Negative values
 are counted from the end of STRING.  If TO is nil, the substring runs
 to the end of STRING.
 
 The STRING argument may also be a vector.  In that case, the return
 value is a new vector that contains the elements between index FROM
-(inclusive) and index TO (exclusive) of that vector argument.
+\(inclusive) and index TO (exclusive) of that vector argument.
 
 With one argument, just copy STRING (with properties, if any).  */)
   (Lisp_Object string, Lisp_Object from, Lisp_Object to)
@@ -2044,7 +2044,7 @@ merge (Lisp_Object org_l1, Lisp_Object org_l2, Lisp_Object pred)
 DEFUN ("plist-get", Fplist_get, Splist_get, 2, 2, 0,
        doc: /* Extract a value from a property list.
 PLIST is a property list, which is a list of the form
-(PROP1 VALUE1 PROP2 VALUE2...).  This function returns the value
+\(PROP1 VALUE1 PROP2 VALUE2...).  This function returns the value
 corresponding to the given PROP, or nil if PROP is not one of the
 properties on the list.  This function never signals an error.  */)
   (Lisp_Object plist, Lisp_Object prop)
@@ -2079,7 +2079,7 @@ This is the last value stored with `(put SYMBOL PROPNAME VALUE)'.  */)
 DEFUN ("plist-put", Fplist_put, Splist_put, 3, 3, 0,
        doc: /* Change value in PLIST of PROP to VAL.
 PLIST is a property list, which is a list of the form
-(PROP1 VALUE1 PROP2 VALUE2 ...).  PROP is a symbol and VAL is any object.
+\(PROP1 VALUE1 PROP2 VALUE2 ...).  PROP is a symbol and VAL is any object.
 If PROP is already a property on the list, its value is set to VAL,
 otherwise the new PROP VAL pair is added.  The new plist is returned;
 use `(setq x (plist-put x prop val))' to be sure to use the new value.
@@ -2123,7 +2123,7 @@ It can be retrieved with `(get SYMBOL PROPNAME)'.  */)
 DEFUN ("lax-plist-get", Flax_plist_get, Slax_plist_get, 2, 2, 0,
        doc: /* Extract a value from a property list, comparing with `equal'.
 PLIST is a property list, which is a list of the form
-(PROP1 VALUE1 PROP2 VALUE2...).  This function returns the value
+\(PROP1 VALUE1 PROP2 VALUE2...).  This function returns the value
 corresponding to the given PROP, or nil if PROP is not
 one of the properties on the list.  */)
   (Lisp_Object plist, Lisp_Object prop)
@@ -2148,7 +2148,7 @@ one of the properties on the list.  */)
 DEFUN ("lax-plist-put", Flax_plist_put, Slax_plist_put, 3, 3, 0,
        doc: /* Change value in PLIST of PROP to VAL, comparing with `equal'.
 PLIST is a property list, which is a list of the form
-(PROP1 VALUE1 PROP2 VALUE2 ...).  PROP and VAL are any objects.
+\(PROP1 VALUE1 PROP2 VALUE2 ...).  PROP and VAL are any objects.
 If PROP is already a property on the list, its value is set to VAL,
 otherwise the new PROP VAL pair is added.  The new plist is returned;
 use `(setq x (lax-plist-put x prop val))' to be sure to use the new value.
@@ -2861,7 +2861,7 @@ The normal messages at start and end of loading FILENAME are suppressed.  */)
 DEFUN ("plist-member", Fplist_member, Splist_member, 2, 2, 0,
        doc: /* Return non-nil if PLIST has the property PROP.
 PLIST is a property list, which is a list of the form
-(PROP1 VALUE1 PROP2 VALUE2 ...).  PROP is a symbol.
+\(PROP1 VALUE1 PROP2 VALUE2 ...).  PROP is a symbol.
 Unlike `plist-get', this allows you to distinguish between a missing
 property and a property with the value nil.
 The value is actually the tail of PLIST whose car is PROP.  */)
diff --git a/src/font.c b/src/font.c
index 039493b..5ab3b3e 100644
--- a/src/font.c
+++ b/src/font.c
@@ -9,8 +9,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -4086,7 +4086,7 @@ DEFUN ("font-face-attributes", Ffont_face_attributes, Sfont_face_attributes, 1,
 FONT is a font name, a font-spec, a font-entity, or a font-object.
 The return value is a list of the form
 
-(:family FAMILY :height HEIGHT :weight WEIGHT :slant SLANT :width WIDTH)
+\(:family FAMILY :height HEIGHT :weight WEIGHT :slant SLANT :width WIDTH)
 
 where FAMILY, HEIGHT, WEIGHT, SLANT, and WIDTH are face attribute values
 compatible with `set-face-attribute'.  Some of these key-attribute pairs
@@ -5378,7 +5378,7 @@ where ENCODING is a charset or a char-table,
 and REPERTORY is a charset, a char-table, or nil.
 
 If ENCODING and REPERTORY are the same, the element can have the form
-(REGEXP . ENCODING).
+\(REGEXP . ENCODING).
 
 ENCODING is for converting a character to a glyph code of the font.
 If ENCODING is a charset, encoding a character by the charset gives
diff --git a/src/font.h b/src/font.h
index 36fe51a..cf47729 100644
--- a/src/font.h
+++ b/src/font.h
@@ -8,8 +8,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/fontset.c b/src/fontset.c
index 084a9b3..dc037a8 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -13,8 +13,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/fontset.h b/src/fontset.h
index 048a7d4..91d690a 100644
--- a/src/fontset.h
+++ b/src/fontset.h
@@ -12,8 +12,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/frame.c b/src/frame.c
index 4f61332..7511d53 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -5228,7 +5228,7 @@ keep it unchanged if this option is either t or a list containing
 `vertical-scroll-bars'.
 
 The default value is \\='(tool-bar-lines) on Lucid, Motif and Windows
-(which means that adding/removing a tool bar does not change the frame
+\(which means that adding/removing a tool bar does not change the frame
 height), nil on all other window systems including GTK+ (which means
 that changing any of the parameters listed above may change the size of
 the frame), and t otherwise (which means the frame size never changes
diff --git a/src/frame.h b/src/frame.h
index 71dab4b..f0cdcd4 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/fringe.c b/src/fringe.c
index 597c666..061f786 100644
--- a/src/fringe.c
+++ b/src/fringe.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1701,7 +1701,7 @@ syms_of_fringe (void)
   DEFVAR_LISP ("overflow-newline-into-fringe", Voverflow_newline_into_fringe,
     doc: /* Non-nil means that newline may flow into the right fringe.
 This means that display lines which are exactly as wide as the window
-(not counting the final newline) will only occupy one screen line, by
+\(not counting the final newline) will only occupy one screen line, by
 showing (or hiding) the final newline in the right fringe; when point
 is at the final newline, the cursor is shown in the right fringe.
 If nil, also continue lines which are exactly as wide as the window.  */);
diff --git a/src/ftcrfont.c b/src/ftcrfont.c
index f7b1e7d..2676502 100644
--- a/src/ftcrfont.c
+++ b/src/ftcrfont.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/ftfont.c b/src/ftfont.c
index 505d508..a402245 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -8,8 +8,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/ftfont.h b/src/ftfont.h
index 0cfa0ae..90abb45 100644
--- a/src/ftfont.h
+++ b/src/ftfont.h
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -44,4 +44,3 @@ extern Lisp_Object ftfont_open2 (struct frame *f,
 extern size_t ftfont_info_size;
 
 #endif	/* EMACS_FTFONT_H */
-
diff --git a/src/ftxfont.c b/src/ftxfont.c
index adf0d29..f49d44f 100644
--- a/src/ftxfont.c
+++ b/src/ftxfont.c
@@ -8,8 +8,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/getpagesize.h b/src/getpagesize.h
index e464153..fe83ae8 100644
--- a/src/getpagesize.h
+++ b/src/getpagesize.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -46,4 +46,3 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 # endif /* no _SC_PAGESIZE */
 
 #endif /* no HAVE_GETPAGESIZE */
-
diff --git a/src/gfilenotify.c b/src/gfilenotify.c
index 62b4efb..3b1f2fc 100644
--- a/src/gfilenotify.c
+++ b/src/gfilenotify.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/gnutls.c b/src/gnutls.c
index 01a5983..f0354d7 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/gnutls.h b/src/gnutls.h
index 8e879c1..e9348e7 100644
--- a/src/gnutls.h
+++ b/src/gnutls.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 14b76ce..7dca585 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/gtkutil.h b/src/gtkutil.h
index ff22e3c..8840fe7 100644
--- a/src/gtkutil.h
+++ b/src/gtkutil.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/image.c b/src/image.c
index 144fe30..a44b90b 100644
--- a/src/image.c
+++ b/src/image.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/indent.c b/src/indent.c
index ee2e9c6..d5162e3 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/indent.h b/src/indent.h
index 804c47d..f2a4c90 100644
--- a/src/indent.h
+++ b/src/indent.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/inotify.c b/src/inotify.c
index e0619e5..38c8df5 100644
--- a/src/inotify.c
+++ b/src/inotify.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -272,7 +272,7 @@ onlydir
 Watching a directory is not recursive.  CALLBACK is passed a single argument
 EVENT which contains an event structure of the format
 
-(WATCH-DESCRIPTOR ASPECTS NAME COOKIE)
+\(WATCH-DESCRIPTOR ASPECTS NAME COOKIE)
 
 WATCH-DESCRIPTOR is the same object that was returned by this function.  It can
 be tested for equality using `equal'.  ASPECTS describes the event.  It is a
diff --git a/src/insdel.c b/src/insdel.c
index 05f37d6..4ad1074 100644
--- a/src/insdel.c
+++ b/src/insdel.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/intervals.c b/src/intervals.c
index 29cc403..8451069 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/intervals.h b/src/intervals.h
index 2b68d4e..b8cdcfd 100644
--- a/src/intervals.h
+++ b/src/intervals.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/keyboard.c b/src/keyboard.c
index 298ab64..29d6d67 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -11381,7 +11381,7 @@ See Info node `(elisp)Multiple Terminals'.  */);
 
   DEFVAR_BOOL ("cannot-suspend", cannot_suspend,
 	       doc: /* Non-nil means to always spawn a subshell instead of suspending.
-(Even if the operating system has support for stopping a process.)  */);
+\(Even if the operating system has support for stopping a process.)  */);
   cannot_suspend = false;
 
   DEFVAR_BOOL ("menu-prompting", menu_prompting,
@@ -11595,7 +11595,7 @@ immediately after running `post-command-hook'.  */);
   DEFVAR_LISP ("input-method-function", Vinput_method_function,
 	       doc: /* If non-nil, the function that implements the current input method.
 It's called with one argument, a printing character that was just read.
-(That means a character with code 040...0176.)
+\(That means a character with code 040...0176.)
 Typically this function uses `read-event' to read additional events.
 When it does so, it should first bind `input-method-function' to nil
 so it will not be called recursively.
diff --git a/src/keyboard.h b/src/keyboard.h
index 7f95f11..3873787 100644
--- a/src/keyboard.h
+++ b/src/keyboard.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/keymap.c b/src/keymap.c
index 7928e62..8ab4c6c 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1687,7 +1687,7 @@ DEFUN ("global-key-binding", Fglobal_key_binding, Sglobal_key_binding, 1, 2, 0,
 KEYS is a string or vector, a sequence of keystrokes.
 The binding is probably a symbol with a function definition.
 This function's return values are the same as those of `lookup-key'
-(which see).
+\(which see).
 
 If optional argument ACCEPT-DEFAULT is non-nil, recognize default
 bindings; see the description of `lookup-key' for more details about this.  */)
@@ -2493,7 +2493,7 @@ If FIRSTONLY is the symbol `non-ascii', return the first binding found,
 no matter what it is.
 If FIRSTONLY has another non-nil value, prefer bindings
 that use the modifier key specified in `where-is-preferred-modifier'
-(or their meta variants) and entirely reject menu bindings.
+\(or their meta variants) and entirely reject menu bindings.
 
 If optional 4th arg NOINDIRECT is non-nil, don't extract the commands inside
 menu-items.  This makes it possible to search for a menu-item itself.
@@ -2724,7 +2724,7 @@ looked up in BUFFER.
 The optional argument PREFIX, if non-nil, should be a key sequence;
 then we display only bindings that start with that prefix.
 The optional argument MENUS, if non-nil, says to mention menu bindings.
-(Ordinarily these are omitted from the output.)  */)
+\(Ordinarily these are omitted from the output.)  */)
   (Lisp_Object buffer, Lisp_Object prefix, Lisp_Object menus)
 {
   Lisp_Object outbuf, shadow;
diff --git a/src/keymap.h b/src/keymap.h
index 009aa01..37f866c 100644
--- a/src/keymap.h
+++ b/src/keymap.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/kqueue.c b/src/kqueue.c
index a69d06d..c848b7f 100644
--- a/src/kqueue.c
+++ b/src/kqueue.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -67,9 +67,8 @@ kqueue_directory_listing (Lisp_Object directory_files)
 
 /* Generate a file notification event.  */
 static void
-kqueue_generate_event
-(Lisp_Object watch_object, Lisp_Object actions,
- Lisp_Object file, Lisp_Object file1)
+kqueue_generate_event (Lisp_Object watch_object, Lisp_Object actions,
+		       Lisp_Object file, Lisp_Object file1)
 {
   Lisp_Object flags, action, entry;
   struct input_event event;
@@ -109,8 +108,7 @@ kqueue_generate_event
    replaced by the new directory listing at the end of this
    function.  */
 static void
-kqueue_compare_dir_list
-(Lisp_Object watch_object)
+kqueue_compare_dir_list (Lisp_Object watch_object)
 {
   Lisp_Object dir, pending_dl, deleted_dl;
   Lisp_Object old_directory_files, old_dl, new_directory_files, new_dl, dl;
diff --git a/src/lastfile.c b/src/lastfile.c
index 2d0bcc7..d516093 100644
--- a/src/lastfile.c
+++ b/src/lastfile.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/lisp.h b/src/lisp.h
index 8eab38b..2758884 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/lread.c b/src/lread.c
index 25e3ff0..6fcb6f5 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -2059,7 +2059,7 @@ Returns a cons: (OBJECT-READ . FINAL-STRING-INDEX).
 FINAL-STRING-INDEX is an integer giving the position of the next
 remaining character in STRING.  START and END optionally delimit
 a substring of STRING from which to read;  they default to 0 and
-(length STRING) respectively.  Negative values are counted from
+\(length STRING) respectively.  Negative values are counted from
 the end of STRING.  */)
   (Lisp_Object string, Lisp_Object start, Lisp_Object end)
 {
diff --git a/src/macfont.h b/src/macfont.h
index 587f10a..6630fb5 100644
--- a/src/macfont.h
+++ b/src/macfont.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -82,4 +82,3 @@ typedef const struct _EmacsScreenFont *ScreenFontRef; /* opaque */
 extern void mac_register_font_driver (struct frame *f);
 extern void *macfont_get_nsctfont (struct font *font);
 extern void macfont_update_antialias_threshold (void);
-
diff --git a/src/macfont.m b/src/macfont.m
index 45830e0..c9082a5 100644
--- a/src/macfont.m
+++ b/src/macfont.m
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/macros.c b/src/macros.c
index 289f22b..0c703ba 100644
--- a/src/macros.c
+++ b/src/macros.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/macros.h b/src/macros.h
index 3a0c57e..6c66c4a 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/marker.c b/src/marker.c
index 9f53e9a..0300830 100644
--- a/src/marker.c
+++ b/src/marker.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/menu.c b/src/menu.c
index cbddef3..9504cee 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1130,7 +1130,7 @@ If POSITION is t, it means to use the current mouse position.
 MENU is a specifier for a menu.  For the simplest case, MENU is a keymap.
 The menu items come from key bindings that have a menu string as well as
 a definition; actually, the "definition" in such a key binding looks like
-(STRING . REAL-DEFINITION).  To give the menu a title, put a string into
+\(STRING . REAL-DEFINITION).  To give the menu a title, put a string into
 the keymap as a top-level element.
 
 If REAL-DEFINITION is nil, that puts a nonselectable string in the menu.
@@ -1495,7 +1495,7 @@ The return value is VALUE from the chosen item.
 An ITEM may also be just a string--that makes a nonselectable item.
 An ITEM may also be nil--that means to put all preceding items
 on the left of the dialog box and all following items on the right.
-(By default, approximately half appear on each side.)
+\(By default, approximately half appear on each side.)
 
 If HEADER is non-nil, the frame title for the box is "Information",
 otherwise it is "Question".
diff --git a/src/menu.h b/src/menu.h
index 95d2fe5..4c50efb 100644
--- a/src/menu.h
+++ b/src/menu.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/minibuf.c b/src/minibuf.c
index 180668f..238a04a 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -986,7 +986,7 @@ DEFUN ("read-no-blanks-input", Fread_no_blanks_input, Sread_no_blanks_input, 1,
 Prompt with PROMPT.  Whitespace terminates the input.  If INITIAL is
 non-nil, it should be a string, which is used as initial input, with
 point positioned at the end, so that SPACE will accept the input.
-(Actually, INITIAL can also be a cons of a string and an integer.
+\(Actually, INITIAL can also be a cons of a string and an integer.
 Such values are treated as in `read-from-minibuffer', but are normally
 not useful in this function.)
 Third arg INHERIT-INPUT-METHOD, if non-nil, means the minibuffer inherits
diff --git a/src/msdos.c b/src/msdos.c
index b378cc2..84e8c39 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/msdos.h b/src/msdos.h
index 691822f..863ca48 100644
--- a/src/msdos.h
+++ b/src/msdos.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -129,4 +129,3 @@ void XMenuDestroy (Display *, XMenu *);
 #endif /* not HAVE_X_WINDOWS */
 
 #endif /* not EMACS_MSDOS_H */
-
diff --git a/src/nsfns.m b/src/nsfns.m
index eda94c4..ea09908 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1684,7 +1684,7 @@ DEFUN ("x-server-max-request-size", Fx_server_max_request_size,
 
 DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
        doc: /* Return the "vendor ID" string of Nextstep display server TERMINAL.
-(Labeling every distributor as a "vendor" embodies the false assumption
+\(Labeling every distributor as a "vendor" embodies the false assumption
 that operating systems cannot be developed and distributed noncommercially.)
 The optional argument TERMINAL specifies which display to ask about.
 TERMINAL should be a terminal object, a frame or a display name (a string).
@@ -1730,7 +1730,7 @@ If omitted or nil, that stands for the selected frame's display.
 
 Note: "screen" here is not in Nextstep terminology but in X11's.  For
 the number of physical monitors, use `(length
-(display-monitor-attributes-list TERMINAL))' instead.  */)
+\(display-monitor-attributes-list TERMINAL))' instead.  */)
   (Lisp_Object terminal)
 {
   check_ns_display_info (terminal);
@@ -1861,7 +1861,7 @@ DISPLAY is the name of the display to connect to.
 Optional second arg XRM-STRING is a string of resources in xrdb format.
 If the optional third arg MUST-SUCCEED is non-nil,
 terminate Emacs if we can't open the connection.
-(In the Nextstep version, the last two arguments are currently ignored.)  */)
+\(In the Nextstep version, the last two arguments are currently ignored.)  */)
      (Lisp_Object display, Lisp_Object resource_string, Lisp_Object must_succeed)
 {
   struct ns_display_info *dpyinfo;
@@ -2301,7 +2301,7 @@ x_get_focus_frame (struct frame *frame)
 
 DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
        doc: /* Internal function called by `color-defined-p', which see.
-(Note that the Nextstep version of this function ignores FRAME.)  */)
+\(Note that the Nextstep version of this function ignores FRAME.)  */)
      (Lisp_Object color, Lisp_Object frame)
 {
   NSColor * col;
diff --git a/src/nsfont.m b/src/nsfont.m
index b46680b..92e7d11 100644
--- a/src/nsfont.m
+++ b/src/nsfont.m
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/nsgui.h b/src/nsgui.h
index cc2e45e..8dac1bd 100644
--- a/src/nsgui.h
+++ b/src/nsgui.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/nsimage.m b/src/nsimage.m
index b871448..5b2534b 100644
--- a/src/nsimage.m
+++ b/src/nsimage.m
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/nsmenu.m b/src/nsmenu.m
index c6d6835..7d340e8 100644
--- a/src/nsmenu.m
+++ b/src/nsmenu.m
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/nsselect.m b/src/nsselect.m
index 463f02b..eba2393 100644
--- a/src/nsselect.m
+++ b/src/nsselect.m
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -316,7 +316,7 @@ DEFUN ("ns-own-selection-internal", Fns_own_selection_internal,
        Sns_own_selection_internal, 2, 2, 0,
        doc: /* Assert an X selection of type SELECTION and value VALUE.
 SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
-(Those are literal upper-case symbol names, since that's what X expects.)
+\(Those are literal upper-case symbol names, since that's what X expects.)
 VALUE is typically a string, or a cons of two markers, but may be
 anything that the functions on `selection-converter-alist' know about.  */)
      (Lisp_Object selection, Lisp_Object value)
@@ -414,7 +414,7 @@ DEFUN ("ns-selection-owner-p", Fns_selection_owner_p, Sns_selection_owner_p,
        doc: /* Whether the current Emacs process owns the given X Selection.
 The arg should be the name of the selection in question, typically one of
 the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'.
-(Those are literal upper-case symbol names, since that's what X expects.)
+\(Those are literal upper-case symbol names, since that's what X expects.)
 For convenience, the symbol nil is the same as `PRIMARY',
 and t is the same as `SECONDARY'.  */)
      (Lisp_Object selection)
@@ -433,7 +433,7 @@ DEFUN ("ns-get-selection", Fns_get_selection,
        Sns_get_selection, 2, 2, 0,
        doc: /* Return text selected from some X window.
 SELECTION-SYMBOL is typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
-(Those are literal upper-case symbol names, since that's what X expects.)
+\(Those are literal upper-case symbol names, since that's what X expects.)
 TARGET-TYPE is the type of data desired, typically `STRING'.  */)
      (Lisp_Object selection_name, Lisp_Object target_type)
 {
diff --git a/src/nsterm.h b/src/nsterm.h
index fa5399c..0aea9cc 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1044,10 +1044,10 @@ struct x_output
 
 /* Difference btwn char-column-calculated and actual SB widths.
    This is only a concern for rendering when SB on left. */
-#define NS_SCROLL_BAR_ADJUST(w, f)		\
-(WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w) ?	\
-    (FRAME_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f)	\
-        - NS_SCROLL_BAR_WIDTH (f)) : 0)
+#define NS_SCROLL_BAR_ADJUST(w, f)				\
+  (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w) ?			\
+   (FRAME_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f)		\
+    - NS_SCROLL_BAR_WIDTH (f)) : 0)
 
 /* Difference btwn char-line-calculated and actual SB heights.
    This is only a concern for rendering when SB on top. */
diff --git a/src/nsterm.m b/src/nsterm.m
index 185753d..38aa4a3 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/print.c b/src/print.c
index 2ecc0f5..2b53d75 100644
--- a/src/print.c
+++ b/src/print.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -2224,7 +2224,7 @@ Also print formfeeds as `\\f'.  */);
 
   DEFVAR_BOOL ("print-escape-nonascii", print_escape_nonascii,
 	       doc: /* Non-nil means print unibyte non-ASCII chars in strings as \\OOO.
-(OOO is the octal representation of the character code.)
+\(OOO is the octal representation of the character code.)
 Only single-byte characters are affected, and only in `prin1'.
 When the output goes in a multibyte buffer, this feature is
 enabled regardless of the value of the variable.  */);
@@ -2232,7 +2232,7 @@ enabled regardless of the value of the variable.  */);
 
   DEFVAR_BOOL ("print-escape-multibyte", print_escape_multibyte,
 	       doc: /* Non-nil means print multibyte characters in strings as \\xXXXX.
-(XXXX is the hex representation of the character code.)
+\(XXXX is the hex representation of the character code.)
 This affects only `prin1'.  */);
   print_escape_multibyte = 0;
 
diff --git a/src/process.c b/src/process.c
index 1eac5e1..dd50883 100644
--- a/src/process.c
+++ b/src/process.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -953,7 +953,7 @@ DEFUN ("process-command", Fprocess_command, Sprocess_command, 1, 1, 0,
 This is a list of strings, the first string being the program executed
 and the rest of the strings being the arguments given to it.
 For a network or serial process, this is nil (process is running) or t
-(process is stopped).  */)
+\(process is stopped).  */)
   (register Lisp_Object process)
 {
   CHECK_PROCESS (process);
@@ -2670,7 +2670,7 @@ is not given or nil, 1 stopbit is used.
 :flowcontrol FLOWCONTROL -- FLOWCONTROL determines the type of
 flowcontrol to be used, which is either nil (don't use flowcontrol),
 the symbol `hw' (use RTS/CTS hardware flowcontrol), or the symbol `sw'
-(use XON/XOFF software flowcontrol).  If FLOWCONTROL is not given, no
+\(use XON/XOFF software flowcontrol).  If FLOWCONTROL is not given, no
 flowcontrol is used.
 
 `serial-process-configure' is called by `make-serial-process' for the
@@ -2678,12 +2678,12 @@ initial configuration of the serial port.
 
 Examples:
 
-(serial-process-configure :process "/dev/ttyS0" :speed 1200)
+\(serial-process-configure :process "/dev/ttyS0" :speed 1200)
 
-(serial-process-configure
+\(serial-process-configure
     :buffer "COM1" :stopbits 1 :parity \\='odd :flowcontrol \\='hw)
 
-(serial-process-configure :port "\\\\.\\COM13" :bytesize 7)
+\(serial-process-configure :port "\\\\.\\COM13" :bytesize 7)
 
 usage: (serial-process-configure &rest ARGS)  */)
   (ptrdiff_t nargs, Lisp_Object *args)
@@ -2777,13 +2777,13 @@ is available via the function `process-contact'.
 
 Examples:
 
-(make-serial-process :port "/dev/ttyS0" :speed 9600)
+\(make-serial-process :port "/dev/ttyS0" :speed 9600)
 
-(make-serial-process :port "COM1" :speed 115200 :stopbits 2)
+\(make-serial-process :port "COM1" :speed 115200 :stopbits 2)
 
-(make-serial-process :port "\\\\.\\COM13" :speed 1200 :bytesize 7 :parity \\='odd)
+\(make-serial-process :port "\\\\.\\COM13" :speed 1200 :bytesize 7 :parity \\='odd)
 
-(make-serial-process :port "/dev/tty.BlueConsole-SPP-1" :speed nil)
+\(make-serial-process :port "/dev/tty.BlueConsole-SPP-1" :speed nil)
 
 usage:  (make-serial-process &rest ARGS)  */)
   (ptrdiff_t nargs, Lisp_Object *args)
diff --git a/src/process.h b/src/process.h
index 8d9f8f4..2e743a3 100644
--- a/src/process.h
+++ b/src/process.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/profiler.c b/src/profiler.c
index 95f84fd..31bd77f 100644
--- a/src/profiler.c
+++ b/src/profiler.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/puresize.h b/src/puresize.h
index bcb5a9c..fb9d934 100644
--- a/src/puresize.h
+++ b/src/puresize.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/ralloc.c b/src/ralloc.c
index 12d2fa9..a94f81b 100644
--- a/src/ralloc.c
+++ b/src/ralloc.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/region-cache.c b/src/region-cache.c
index 4ce7de8..4584956 100644
--- a/src/region-cache.c
+++ b/src/region-cache.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/region-cache.h b/src/region-cache.h
index 0c8861f..270531e 100644
--- a/src/region-cache.h
+++ b/src/region-cache.h
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/scroll.c b/src/scroll.c
index 517cc68..b886108 100644
--- a/src/scroll.c
+++ b/src/scroll.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/search.c b/src/search.c
index 68b0121..f39df67 100644
--- a/src/search.c
+++ b/src/search.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/sheap.c b/src/sheap.c
index 1451eca..fc53c58 100644
--- a/src/sheap.c
+++ b/src/sheap.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/sound.c b/src/sound.c
index 42f1fca..b9a794b 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/syntax.c b/src/syntax.c
index 7e98854..8e14bf3 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/syntax.h b/src/syntax.h
index c3575d4..96e938a 100644
--- a/src/syntax.h
+++ b/src/syntax.h
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/sysdep.c b/src/sysdep.c
index 3c3da0d..460166d 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/sysselect.h b/src/sysselect.h
index b625a65..0bf9b40 100644
--- a/src/sysselect.h
+++ b/src/sysselect.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/syssignal.h b/src/syssignal.h
index df4b140..3de83c7 100644
--- a/src/syssignal.h
+++ b/src/syssignal.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/sysstdio.h b/src/sysstdio.h
index e1416b6..f1f923e 100644
--- a/src/sysstdio.h
+++ b/src/sysstdio.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/systime.h b/src/systime.h
index 04c83ff..355a3c2 100644
--- a/src/systime.h
+++ b/src/systime.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/systty.h b/src/systty.h
index 116af97..fbdc6b1 100644
--- a/src/systty.h
+++ b/src/systty.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/syswait.h b/src/syswait.h
index ca672d1..800d572 100644
--- a/src/syswait.h
+++ b/src/syswait.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/term.c b/src/term.c
index 993928e..17f3679 100644
--- a/src/term.c
+++ b/src/term.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/termchar.h b/src/termchar.h
index d816da2..35b30fb 100644
--- a/src/termchar.h
+++ b/src/termchar.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/termhooks.h b/src/termhooks.h
index c183528..d21d6ce 100644
--- a/src/termhooks.h
+++ b/src/termhooks.h
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/terminal.c b/src/terminal.c
index a557967..5dd9975 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/terminfo.c b/src/terminfo.c
index b8b5f97..04da30b 100644
--- a/src/terminfo.c
+++ b/src/terminfo.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/termopts.h b/src/termopts.h
index 7cffa16..c64bd1b 100644
--- a/src/termopts.h
+++ b/src/termopts.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/textprop.c b/src/textprop.c
index 70091b9..c4e49d9 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1493,7 +1493,7 @@ DEFUN ("remove-text-properties", Fremove_text_properties,
        doc: /* Remove some properties from text from START to END.
 The third argument PROPERTIES is a property list
 whose property names specify the properties to remove.
-(The values stored in PROPERTIES are ignored.)
+\(The values stored in PROPERTIES are ignored.)
 If the optional fourth argument OBJECT is a buffer (or nil, which means
 the current buffer), START and END are buffer positions (integers or
 markers).  If OBJECT is a string, START and END are 0-based indices into it.
diff --git a/src/tparam.h b/src/tparam.h
index ab82e5b..cc53bb9 100644
--- a/src/tparam.h
+++ b/src/tparam.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/undo.c b/src/undo.c
index 1cc9c98..be5b270 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/unexaix.c b/src/unexaix.c
index eb51d28..c2012f7 100644
--- a/src/unexaix.c
+++ b/src/unexaix.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/unexcoff.c b/src/unexcoff.c
index cc0df30..6a08380 100644
--- a/src/unexcoff.c
+++ b/src/unexcoff.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/unexcw.c b/src/unexcw.c
index febe939..afd5413 100644
--- a/src/unexcw.c
+++ b/src/unexcw.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/unexelf.c b/src/unexelf.c
index e901994..068d268 100644
--- a/src/unexelf.c
+++ b/src/unexelf.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/unexmacosx.c b/src/unexmacosx.c
index bfb8bd4..827eda5 100644
--- a/src/unexmacosx.c
+++ b/src/unexmacosx.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/unexw32.c b/src/unexw32.c
index 460a39e..15aa726 100644
--- a/src/unexw32.c
+++ b/src/unexw32.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -34,11 +34,10 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Include relevant definitions from IMAGEHLP.H, which can be found
    in \\win32sdk\mstools\samples\image\include\imagehlp.h. */
 
-PIMAGE_NT_HEADERS
-(__stdcall * pfnCheckSumMappedFile) (LPVOID BaseAddress,
-				    DWORD FileLength,
-				    LPDWORD HeaderSum,
-				    LPDWORD CheckSum);
+PIMAGE_NT_HEADERS (__stdcall * pfnCheckSumMappedFile) (LPVOID BaseAddress,
+						       DWORD FileLength,
+						       LPDWORD HeaderSum,
+						       LPDWORD CheckSum);
 
 extern BOOL ctrl_c_handler (unsigned long type);
 
diff --git a/src/vm-limit.c b/src/vm-limit.c
index 0c6dbdd..d32050f 100644
--- a/src/vm-limit.c
+++ b/src/vm-limit.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w16select.c b/src/w16select.c
index 48bb813..434a598 100644
--- a/src/w16select.c
+++ b/src/w16select.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -686,7 +686,7 @@ For MS-Windows and MS-DOS:
 When sending or receiving text via selection and clipboard, the text
 is encoded or decoded by this coding system.  The default value is
 the current system default encoding on 9x/Me, `utf-16le-dos'
-(Unicode) on NT/W2K/XP, and `iso-latin-1-dos' on MS-DOS.
+\(Unicode) on NT/W2K/XP, and `iso-latin-1-dos' on MS-DOS.
 
 For X Windows:
 When sending text via selection and clipboard, if the target
diff --git a/src/w32.c b/src/w32.c
index fbcfb97..c26f145 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32.h b/src/w32.h
index fde3803..42a1c42 100644
--- a/src/w32.h
+++ b/src/w32.h
@@ -8,8 +8,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32common.h b/src/w32common.h
index 4fbeab5..f30c0ce 100644
--- a/src/w32common.h
+++ b/src/w32common.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,7 +15,7 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-   
+
 */
 
 #ifndef W32COMMON_H
diff --git a/src/w32console.c b/src/w32console.c
index 6277f13..512d20d 100644
--- a/src/w32console.c
+++ b/src/w32console.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32fns.c b/src/w32fns.c
index a5018ae..b9002ba 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -5207,7 +5207,7 @@ x_get_focus_frame (struct frame *frame)
 
 DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
        doc: /* Internal function called by `color-defined-p', which see.
-(Note that the Nextstep version of this function ignores FRAME.)  */)
+\(Note that the Nextstep version of this function ignores FRAME.)  */)
   (Lisp_Object color, Lisp_Object frame)
 {
   XColor foo;
@@ -5349,7 +5349,7 @@ If omitted or nil, that stands for the selected frame's display.  */)
 DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
        doc: /* Return the "vendor ID" string of the GUI software on TERMINAL.
 
-(Labeling every distributor as a "vendor" embodies the false assumption
+\(Labeling every distributor as a "vendor" embodies the false assumption
 that operating systems cannot be developed and distributed noncommercially.)
 
 For GNU and Unix systems, this queries the X server software; for
@@ -5751,7 +5751,7 @@ DISPLAY is the name of the display to connect to.
 Optional second arg XRM-STRING is a string of resources in xrdb format.
 If the optional third arg MUST-SUCCEED is non-nil,
 terminate Emacs if we can't open the connection.
-(In the Nextstep version, the last two arguments are currently ignored.)  */)
+\(In the Nextstep version, the last two arguments are currently ignored.)  */)
   (Lisp_Object display, Lisp_Object xrm_string, Lisp_Object must_succeed)
 {
   char *xrm_option;
@@ -8090,7 +8090,7 @@ DEFUN ("w32-set-mouse-absolute-pixel-position", Fw32_set_mouse_absolute_pixel_po
        Sw32_set_mouse_absolute_pixel_position, 2, 2, 0,
        doc: /* Move mouse pointer to absolute pixel position (X, Y).
 The coordinates X and Y are interpreted in pixels relative to a position
-(0, 0) of the selected frame's display.  */)
+\(0, 0) of the selected frame's display.  */)
   (Lisp_Object x, Lisp_Object y)
 {
   UINT trail_num = 0;
diff --git a/src/w32font.c b/src/w32font.c
index 0c3efe2..a1878ad 100644
--- a/src/w32font.c
+++ b/src/w32font.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32font.h b/src/w32font.h
index a3fd357..728ad8b 100644
--- a/src/w32font.h
+++ b/src/w32font.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32gui.h b/src/w32gui.h
index ff7af87..8e995cf 100644
--- a/src/w32gui.h
+++ b/src/w32gui.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32heap.c b/src/w32heap.c
index b908169..df2fe0a 100644
--- a/src/w32heap.c
+++ b/src/w32heap.c
@@ -73,12 +73,11 @@ typedef PVOID (WINAPI * RtlCreateHeap_Proc) (
 
 typedef LONG NTSTATUS;
 
-typedef NTSTATUS
-(NTAPI * PRTL_HEAP_COMMIT_ROUTINE)(
-                                   IN PVOID Base,
-                                   IN OUT PVOID *CommitAddress,
-                                   IN OUT PSIZE_T CommitSize
-                                   );
+typedef NTSTATUS (NTAPI *PRTL_HEAP_COMMIT_ROUTINE) (
+						    IN PVOID Base,
+						    IN OUT PVOID *CommitAddress,
+						    IN OUT PSIZE_T CommitSize
+						    );
 
 typedef struct _RTL_HEAP_PARAMETERS {
   ULONG Length;
diff --git a/src/w32heap.h b/src/w32heap.h
index c569033..523bceb 100644
--- a/src/w32heap.h
+++ b/src/w32heap.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32inevt.c b/src/w32inevt.c
index e714e27..867425f 100644
--- a/src/w32inevt.c
+++ b/src/w32inevt.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32inevt.h b/src/w32inevt.h
index b23c787..c317196 100644
--- a/src/w32inevt.h
+++ b/src/w32inevt.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32menu.c b/src/w32menu.c
index d8c3dc1..d9ab8f5 100644
--- a/src/w32menu.c
+++ b/src/w32menu.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32notify.c b/src/w32notify.c
index 71787c4..586c206 100644
--- a/src/w32notify.c
+++ b/src/w32notify.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32proc.c b/src/w32proc.c
index 85ddbfd..4a6f786 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32reg.c b/src/w32reg.c
index 7d1ccf8..a873818 100644
--- a/src/w32reg.c
+++ b/src/w32reg.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32select.c b/src/w32select.c
index ce4ed69..138fe85 100644
--- a/src/w32select.c
+++ b/src/w32select.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32select.h b/src/w32select.h
index 8216380..54022f7 100644
--- a/src/w32select.h
+++ b/src/w32select.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32term.c b/src/w32term.c
index 36a5021..62ad4eb 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32term.h b/src/w32term.h
index 5090624..2fed56e 100644
--- a/src/w32term.h
+++ b/src/w32term.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c
index c5ba87b..ddca5f5 100644
--- a/src/w32uniscribe.c
+++ b/src/w32uniscribe.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/w32xfns.c b/src/w32xfns.c
index 29636d1..04bf5ce 100644
--- a/src/w32xfns.c
+++ b/src/w32xfns.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/widget.c b/src/widget.c
index a71de90..28bb475 100644
--- a/src/widget.c
+++ b/src/widget.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/widget.h b/src/widget.h
index 13eb9e7..ceeec38 100644
--- a/src/widget.h
+++ b/src/widget.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/widgetprv.h b/src/widgetprv.h
index 24e8378..9d9aa21 100644
--- a/src/widgetprv.h
+++ b/src/widgetprv.h
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/window.c b/src/window.c
index 8953d3c..733cf75 100644
--- a/src/window.c
+++ b/src/window.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -670,7 +670,7 @@ DEFUN ("set-window-combination-limit", Fset_window_combination_limit, Sset_windo
 WINDOW must be a valid window used in horizontal or vertical combination.
 If LIMIT is nil, child windows of WINDOW can be recombined with WINDOW's
 siblings.  LIMIT t means that child windows of WINDOW are never
-(re-)combined with WINDOW's siblings.  Other values are reserved for
+\(re-)combined with WINDOW's siblings.  Other values are reserved for
 future use.  */)
   (Lisp_Object window, Lisp_Object limit)
 {
@@ -1324,7 +1324,7 @@ DEFUN ("coordinates-in-window-p", Fcoordinates_in_window_p,
 WINDOW must be a live window and defaults to the selected one.
 COORDINATES is a cons of the form (X . Y), X and Y being distances
 measured in characters from the upper-left corner of the frame.
-(0 . 0) denotes the character in the upper left corner of the
+\(0 . 0) denotes the character in the upper left corner of the
 frame.
 If COORDINATES are in the text portion of WINDOW,
    the coordinates relative to the window are returned.
@@ -1710,7 +1710,7 @@ of the window.  The remaining elements are omitted if the character after
 POS is fully visible; otherwise, RTOP and RBOT are the number of pixels
 off-window at the top and bottom of the screen line ("row") containing
 POS, ROWH is the visible height of that row, and VPOS is the row number
-(zero-based).  */)
+\(zero-based).  */)
   (Lisp_Object pos, Lisp_Object window, Lisp_Object partially)
 {
   struct window *w;
diff --git a/src/window.h b/src/window.h
index c29207d..0cfff88 100644
--- a/src/window.h
+++ b/src/window.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/xdisp.c b/src/xdisp.c
index dec9947..e5ac650 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31425,7 +31425,7 @@ This variable is not guaranteed to be accurate except while processing
 
   DEFVAR_LISP ("frame-title-format", Vframe_title_format,
     doc: /* Template for displaying the title bar of visible frames.
-(Assuming the window manager supports this feature.)
+\(Assuming the window manager supports this feature.)
 
 This variable has the same structure as `mode-line-format', except that
 the %c and %l constructs are ignored.  It is used only on frames for
@@ -31433,10 +31433,10 @@ which no explicit name has been set (see `modify-frame-parameters').  */);
 
   DEFVAR_LISP ("icon-title-format", Vicon_title_format,
     doc: /* Template for displaying the title bar of an iconified frame.
-(Assuming the window manager supports this feature.)
+\(Assuming the window manager supports this feature.)
 This variable has the same structure as `mode-line-format' (which see),
 and is used only on frames for which no explicit name has been set
-(see `modify-frame-parameters').  */);
+\(see `modify-frame-parameters').  */);
   Vicon_title_format
     = Vframe_title_format
     = listn (CONSTYPE_PURE, 3,
diff --git a/src/xfaces.c b/src/xfaces.c
index 7762e0f..ac13700 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -701,10 +701,10 @@ Optional THOROUGHLY non-nil means try to free unused fonts, too.  */)
 DEFUN ("bitmap-spec-p", Fbitmap_spec_p, Sbitmap_spec_p, 1, 1, 0,
        doc: /* Value is non-nil if OBJECT is a valid bitmap specification.
 A bitmap specification is either a string, a file name, or a list
-(WIDTH HEIGHT DATA) where WIDTH is the pixel width of the bitmap,
+\(WIDTH HEIGHT DATA) where WIDTH is the pixel width of the bitmap,
 HEIGHT is its height, and DATA is a string containing the bits of
 the pixmap.  Bits are stored row by row, each row occupies
-(WIDTH + 7)/8 bytes.  */)
+\(WIDTH + 7)/8 bytes.  */)
   (Lisp_Object object)
 {
   bool pixmap_p = false;
@@ -6536,7 +6536,7 @@ changing this variable for it to take effect.  */);
 Each element is a cons (FONT-PATTERN . RESCALE-RATIO), where
 FONT-PATTERN is a font-spec or a regular expression matching a font name, and
 RESCALE-RATIO is a floating point number to specify how much larger
-(or smaller) font we should use.  For instance, if a face requests
+\(or smaller) font we should use.  For instance, if a face requests
 a font of 10 point, we actually use a font of 10 * RESCALE-RATIO point.  */);
   Vface_font_rescale_alist = Qnil;
 
diff --git a/src/xfns.c b/src/xfns.c
index 20ac627..9ef7cb9 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -3670,7 +3670,7 @@ x_focus_frame (struct frame *f)
 \f
 DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
        doc: /* Internal function called by `color-defined-p', which see.
-(Note that the Nextstep version of this function ignores FRAME.)  */)
+\(Note that the Nextstep version of this function ignores FRAME.)  */)
   (Lisp_Object color, Lisp_Object frame)
 {
   XColor foo;
@@ -3837,7 +3837,7 @@ If omitted or nil, that stands for the selected frame's display.  */)
 DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
        doc: /* Return the "vendor ID" string of the GUI software on TERMINAL.
 
-(Labeling every distributor as a "vendor" embodies the false assumption
+\(Labeling every distributor as a "vendor" embodies the false assumption
 that operating systems cannot be developed and distributed noncommercially.)
 The optional argument TERMINAL specifies which display to ask about.
 
@@ -4759,7 +4759,7 @@ DEFUN ("x-set-mouse-absolute-pixel-position", Fx_set_mouse_absolute_pixel_positi
        Sx_set_mouse_absolute_pixel_position, 2, 2, 0,
        doc: /* Move mouse pointer to absolute pixel position (X, Y).
 The coordinates X and Y are interpreted in pixels relative to a position
-(0, 0) of the selected frame's display.  */)
+\(0, 0) of the selected frame's display.  */)
   (Lisp_Object x, Lisp_Object y)
   {
   struct frame *f = SELECTED_FRAME ();
@@ -4935,7 +4935,7 @@ DISPLAY is the name of the display to connect to.
 Optional second arg XRM-STRING is a string of resources in xrdb format.
 If the optional third arg MUST-SUCCEED is non-nil,
 terminate Emacs if we can't open the connection.
-(In the Nextstep version, the last two arguments are currently ignored.)  */)
+\(In the Nextstep version, the last two arguments are currently ignored.)  */)
   (Lisp_Object display, Lisp_Object xrm_string, Lisp_Object must_succeed)
 {
   char *xrm_option;
diff --git a/src/xfont.c b/src/xfont.c
index 15a4b74..0ef64be 100644
--- a/src/xfont.c
+++ b/src/xfont.c
@@ -8,8 +8,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/xftfont.c b/src/xftfont.c
index d94955f..7926325 100644
--- a/src/xftfont.c
+++ b/src/xftfont.c
@@ -8,8 +8,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/xgselect.c b/src/xgselect.c
index a61d46b..ac88afd 100644
--- a/src/xgselect.c
+++ b/src/xgselect.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/xgselect.h b/src/xgselect.h
index fc976ca..4c56633 100644
--- a/src/xgselect.h
+++ b/src/xgselect.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/xmenu.c b/src/xmenu.c
index 1047b19..9e1a817 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/xml.c b/src/xml.c
index 6c47a9d..b1175d1 100644
--- a/src/xml.c
+++ b/src/xml.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/xrdb.c b/src/xrdb.c
index 865acc9..b4bc118 100644
--- a/src/xrdb.c
+++ b/src/xrdb.c
@@ -9,8 +9,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/xselect.c b/src/xselect.c
index 23b735e..123e463 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -5,8 +5,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1911,7 +1911,7 @@ DEFUN ("x-own-selection-internal", Fx_own_selection_internal,
        Sx_own_selection_internal, 2, 3, 0,
        doc: /* Assert an X selection of type SELECTION and value VALUE.
 SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
-(Those are literal upper-case symbol names, since that's what X expects.)
+\(Those are literal upper-case symbol names, since that's what X expects.)
 VALUE is typically a string, or a cons of two markers, but may be
 anything that the functions on `selection-converter-alist' know about.
 
@@ -1940,7 +1940,7 @@ DEFUN ("x-get-selection-internal", Fx_get_selection_internal,
        Sx_get_selection_internal, 2, 4, 0,
        doc: /* Return text selected from some X window.
 SELECTION-SYMBOL is typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
-(Those are literal upper-case symbol names, since that's what X expects.)
+\(Those are literal upper-case symbol names, since that's what X expects.)
 TARGET-TYPE is the type of data desired, typically `STRING'.
 
 TIME-STAMP is the time to use in the XConvertSelection call for foreign
@@ -2044,7 +2044,7 @@ DEFUN ("x-selection-owner-p", Fx_selection_owner_p, Sx_selection_owner_p,
        doc: /* Whether the current Emacs process owns the given X Selection.
 The arg should be the name of the selection in question, typically one of
 the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'.
-(Those are literal upper-case symbol names, since that's what X expects.)
+\(Those are literal upper-case symbol names, since that's what X expects.)
 For convenience, the symbol nil is the same as `PRIMARY',
 and t is the same as `SECONDARY'.
 
@@ -2620,7 +2620,7 @@ and the local selection value (whatever was given to
 `x-own-selection-internal').
 
 The function should return the value to send to the X server
-(typically a string).  A return value of nil
+\(typically a string).  A return value of nil
 means that the conversion could not be done.
 A return value which is the symbol `NULL'
 means that a side-effect was executed,
@@ -2629,10 +2629,10 @@ and there is no meaningful selection value.  */);
 
   DEFVAR_LISP ("x-lost-selection-functions", Vx_lost_selection_functions,
 	       doc: /* A list of functions to be called when Emacs loses an X selection.
-(This happens when some other X client makes its own selection
+\(This happens when some other X client makes its own selection
 or when a Lisp program explicitly clears the selection.)
 The functions are called with one argument, the selection type
-(a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD').  */);
+\(a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD').  */);
   Vx_lost_selection_functions = Qnil;
 
   DEFVAR_LISP ("x-sent-selection-functions", Vx_sent_selection_functions,
diff --git a/src/xsettings.c b/src/xsettings.c
index 28075b5..d7af68f 100644
--- a/src/xsettings.c
+++ b/src/xsettings.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/xsettings.h b/src/xsettings.h
index 74e28b4..fa2b5c5 100644
--- a/src/xsettings.h
+++ b/src/xsettings.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/xsmfns.c b/src/xsmfns.c
index 7641449..0819e87 100644
--- a/src/xsmfns.c
+++ b/src/xsmfns.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/xterm.c b/src/xterm.c
index 1f71afd..ba9bf50 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/xterm.h b/src/xterm.h
index 3a78292..06cd2e7 100644
--- a/src/xterm.h
+++ b/src/xterm.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/src/xwidget.c b/src/xwidget.c
index f436e95..d438d87 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -387,9 +387,12 @@ webkit_download_cb (WebKitWebView *webkitwebview,
 }
 
 static gboolean
-webkit_mime_type_policy_typedecision_requested_cb
-(WebKitWebView *webView, WebKitWebFrame *frame, WebKitNetworkRequest *request,
- gchar *mimetype, WebKitWebPolicyDecision *policy_decision, gpointer user_data)
+webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *webView,
+						   WebKitWebFrame *frame,
+						   WebKitNetworkRequest *request,
+						   gchar *mimetype,
+						   WebKitWebPolicyDecision *policy_decision,
+						   gpointer user_data)
 {
   /* This function makes webkit send a download signal for all unknown
      mime types.  TODO: Defer the decision to Lisp, so that it's
@@ -404,10 +407,12 @@ webkit_mime_type_policy_typedecision_requested_cb
 }
 
 static gboolean
-webkit_new_window_policy_decision_requested_cb
-(WebKitWebView *webView, WebKitWebFrame *frame, WebKitNetworkRequest *request,
- WebKitWebNavigationAction *navigation_action,
- WebKitWebPolicyDecision *policy_decision, gpointer user_data)
+webkit_new_window_policy_decision_requested_cb (WebKitWebView *webView,
+						WebKitWebFrame *frame,
+						WebKitNetworkRequest *request,
+						WebKitWebNavigationAction *navigation_action,
+						WebKitWebPolicyDecision *policy_decision,
+						gpointer user_data)
 {
   struct xwidget *xw = g_object_get_data (G_OBJECT (webView), XG_XWIDGET);
   webkit_web_navigation_action_get_original_uri (navigation_action);
@@ -419,10 +424,12 @@ webkit_new_window_policy_decision_requested_cb
 }
 
 static gboolean
-webkit_navigation_policy_decision_requested_cb
-(WebKitWebView *webView, WebKitWebFrame *frame, WebKitNetworkRequest *request,
- WebKitWebNavigationAction *navigation_action,
- WebKitWebPolicyDecision *policy_decision, gpointer user_data)
+webkit_navigation_policy_decision_requested_cb (WebKitWebView *webView,
+						WebKitWebFrame *frame,
+						WebKitNetworkRequest *request,
+						WebKitWebNavigationAction *navigation_action,
+						WebKitWebPolicyDecision *policy_decision,
+						gpointer user_data)
 {
   struct xwidget *xw = g_object_get_data (G_OBJECT (webView), XG_XWIDGET);
   store_xwidget_event_string (xw, "navigation-policy-decision-requested",
diff --git a/src/xwidget.h b/src/xwidget.h
index 1e11f11..8fc3821 100644
--- a/src/xwidget.h
+++ b/src/xwidget.h
@@ -6,8 +6,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/test/etags/c-src/emacs/src/keyboard.c b/test/etags/c-src/emacs/src/keyboard.c
index 077b147..68584ee 100644
--- a/test/etags/c-src/emacs/src/keyboard.c
+++ b/test/etags/c-src/emacs/src/keyboard.c
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/test/etags/c-src/emacs/src/lisp.h b/test/etags/c-src/emacs/src/lisp.h
index 96c52c0..db87229 100644
--- a/test/etags/c-src/emacs/src/lisp.h
+++ b/test/etags/c-src/emacs/src/lisp.h
@@ -7,8 +7,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/test/etags/c-src/etags.c b/test/etags/c-src/etags.c
index 4465b83..4534198 100644
--- a/test/etags/c-src/etags.c
+++ b/test/etags/c-src/etags.c
@@ -35,8 +35,8 @@ This file is not considered part of GNU Emacs.
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -613,8 +613,8 @@ static const char *Objc_suffixes [] =
 static const char Objc_help [] =
 "In Objective C code, tags include Objective C definitions for classes,\n\
 class categories, methods and protocols.  Tags for variables and\n\
-functions in classes are named `CLASS::VARIABLE' and `CLASS::FUNCTION'.\n\
-(Use --help --lang=c --lang=objc --lang=java for full help.)";
+functions in classes are named `CLASS::VARIABLE' and `CLASS::FUNCTION'.\
+\n(Use --help --lang=c --lang=objc --lang=java for full help.)";
 
 static const char *Pascal_suffixes [] =
   { "p", "pas", NULL };
-- 
2.5.0


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-03 23:18     ` Alan Mackenzie
@ 2016-03-04  8:32       ` Eli Zaretskii
  2016-03-04  9:37         ` Alan Mackenzie
  0 siblings, 1 reply; 34+ messages in thread
From: Eli Zaretskii @ 2016-03-04  8:32 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: eggert, 22884

> Date: Thu, 3 Mar 2016 23:18:23 +0000
> Cc: eggert@cs.ucla.edu, 22884@debbugs.gnu.org
> From: Alan Mackenzie <acm@muc.de>
> 
> Would it be practicable to mark comments with text properties?  Say, a
> property called `comment-depth' which would be either nil (meaning
> currently unknown), 0 (definitely not in a comment), 1 (definitely in a
> comment), 2 (in a nested comment), 3, ...... ?  That way we could always
> scan comments in the forwards direction (which is easy) - if we need to
> go backwards over a comment without the property, we can just go back to
> a known point and scan forward.

I don't see any immediate problems with this.  But doesn't creating
these properties require to solve the same problem with the specific
cases we are discussing now?

> Or would this just overwhelm the text property mechanism?

No, I don't think it should.  Text properties scale reasonably well.
And we already have the same with faces (since comments have a
specific face), don't we?





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-04  8:32       ` Eli Zaretskii
@ 2016-03-04  9:37         ` Alan Mackenzie
  0 siblings, 0 replies; 34+ messages in thread
From: Alan Mackenzie @ 2016-03-04  9:37 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: eggert, 22884

Hello, Eli.

On Fri, Mar 04, 2016 at 10:32:56AM +0200, Eli Zaretskii wrote:
> > Date: Thu, 3 Mar 2016 23:18:23 +0000
> > Cc: eggert@cs.ucla.edu, 22884@debbugs.gnu.org
> > From: Alan Mackenzie <acm@muc.de>

> > Would it be practicable to mark comments with text properties?  Say, a
> > property called `comment-depth' which would be either nil (meaning
> > currently unknown), 0 (definitely not in a comment), 1 (definitely in a
> > comment), 2 (in a nested comment), 3, ...... ?  That way we could always
> > scan comments in the forwards direction (which is easy) - if we need to
> > go backwards over a comment without the property, we can just go back to
> > a known point and scan forward.

> I don't see any immediate problems with this.  But doesn't creating
> these properties require to solve the same problem with the specific
> cases we are discussing now?

No, it doesn't.  The difficulties with scanning comments only happen when
scanning backwards.  For example, on scanning backwards for a putative
line comment, we're only guessing that there's going to be a "//" earlier
in the line.  And that token might easily be inside a string, so we've
got to keep track of string delimiters, too.  Etc.
open-paren-in-column-0-is-defun-start is only tested twice in syntax.c,
the "most important" time being in `back-comment', where we break off the
scanning when it is non-nil and we've found an open paren at column zero.

By contrast, scanning comments going forward is trivial.  We see the
opening comment delimiter, and scan forward for the closing one, ignoring
strings, possibly nested openers (/*.../*..*/), and so on.

So a (forward-comment -1) would just involve going back over the closing
delimiter and searching back for the `comment-depth' property being zero.
If the property was unset at that point, we go back to the last place it
is set and scan comments forward till we get back to our starting place.

Additionally, we'd need to zap the property between point and EOB on each
buffer change.  Not difficult.

> > Or would this just overwhelm the text property mechanism?

> No, I don't think it should.  Text properties scale reasonably well.
> And we already have the same with faces (since comments have a
> specific face), don't we?

Then we have a project!

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-03 23:44       ` Paul Eggert
@ 2016-03-04 14:47         ` Alan Mackenzie
  2016-03-04 20:32           ` Paul Eggert
  0 siblings, 1 reply; 34+ messages in thread
From: Alan Mackenzie @ 2016-03-04 14:47 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 22884

Hello, Paul.

On Thu, Mar 03, 2016 at 03:44:05PM -0800, Paul Eggert wrote:
> On 03/03/2016 12:51 PM, Eli Zaretskii wrote:
> > I'd rather we fixed CC Mode instead of "fixing" the
> > sources it chokes on.

> Me too, but I don't see a straightforward cc-mode fix for this.

> Even if we come up with a fix, for some time we'll have the problem of 
> people using old versions of Emacs to look at the new Emacs source code. 
> And until there's a fix Emacs is reeeaally sluggish when editing 
> config.h at least. So I'd rather fix at least config.h, and (since I've 
> already done the work) I'm also mildly inclined to fix the other files 
> to be consistent, as in the attached patch (which also covers licenses 
> in the other .c and .h files).

Thanks for the (new) patch.  I've tried it out, and it appears to build
and run just fine.

I have had an idea for fixing Emacs so that we don't have this problem
with parens in column 0.  That is only to scan comments in the forward
direction, and to mark them with text properties.  `back_comment' will
then be little more than checking these text properties are up to date,
and then doing a backward text property search.

> From c7c5fa7e01492963aab142d91b00cb872cb49686 Mon Sep 17 00:00:00 2001
> From: Paul Eggert <eggert@cs.ucla.edu>
> Date: Thu, 3 Mar 2016 15:42:28 -0800
> Subject: [PATCH] Rework C source files to avoid ^(
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit

> Work around Bug#22884 by rewording comments and strings to avoid ‘(’
> at the start of a line unless it starts a function.  Although this
> change is a hack and we should fix cc-mode’s performance for C files
> that have ‘(’ at the start of a line in a comment or string, the
> change does fix the immediate problem.
> ---

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-04 14:47         ` Alan Mackenzie
@ 2016-03-04 20:32           ` Paul Eggert
  2016-03-04 21:08             ` Alan Mackenzie
  2016-03-08 14:02             ` Alan Mackenzie
  0 siblings, 2 replies; 34+ messages in thread
From: Paul Eggert @ 2016-03-04 20:32 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: 22884

Alan Mackenzie wrote:
> I have had an idea for fixing Emacs so that we don't have this problem
> with parens in column 0.  That is only to scan comments in the forward
> direction, and to mark them with text properties.  `back_comment' will
> then be little more than checking these text properties are up to date,
> and then doing a backward text property search.

Would this mean we no longer need to put \( into Elisp doc strings too? It has 
always been annoying that we have to do that.

If it's practical to fold your idea into the emacs-25 branch it sounds like 
it'll solve the problem. If it's safer to put such a change into the master 
branch, I can install the patch I already wrote into the emacs-25 branch, as a 
stopgap. What do you think?





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-04 20:32           ` Paul Eggert
@ 2016-03-04 21:08             ` Alan Mackenzie
  2016-03-13 10:03               ` Alan Mackenzie
  2016-03-08 14:02             ` Alan Mackenzie
  1 sibling, 1 reply; 34+ messages in thread
From: Alan Mackenzie @ 2016-03-04 21:08 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 22884

Hello, Paul.

On Fri, Mar 04, 2016 at 12:32:06PM -0800, Paul Eggert wrote:
> Alan Mackenzie wrote:
> > I have had an idea for fixing Emacs so that we don't have this problem
> > with parens in column 0.  That is only to scan comments in the forward
> > direction, and to mark them with text properties.  `back_comment' will
> > then be little more than checking these text properties are up to date,
> > and then doing a backward text property search.

> Would this mean we no longer need to put \( into Elisp doc strings too? It has 
> always been annoying that we have to do that.

It would mean this, yes.  open-paren-in-column-0-is-defun-start would
become obsolete.

> If it's practical to fold your idea into the emacs-25 branch it sounds like 
> it'll solve the problem. If it's safer to put such a change into the master 
> branch, I can install the patch I already wrote into the emacs-25 branch, as a 
> stopgap. What do you think?

Definitely the master branch.  The change is far too involved to slip
into emacs-25 at this late stage.  So I think you should install your
patch.

The new scheme would come with some restrictions: the use of category
properties to effect instantaeous global changes to syntax-table text
properties throughout a buffer would have to be deprecated (i.e.
forbidden).  CC Mode currently does this.  Setting
`inhibit-modification-hooks' non-nil and making substantive buffer
changes would likewise be taboo.  There may be other minor restrictions.
Because of this, it might be an idea to make the new comment handling
optional (default on).

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-04 20:32           ` Paul Eggert
  2016-03-04 21:08             ` Alan Mackenzie
@ 2016-03-08 14:02             ` Alan Mackenzie
  2016-03-09  8:25               ` Paul Eggert
  1 sibling, 1 reply; 34+ messages in thread
From: Alan Mackenzie @ 2016-03-08 14:02 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 22884

Hello, Paul.

On Fri, Mar 04, 2016 at 12:32:06PM -0800, Paul Eggert wrote:
> Alan Mackenzie wrote:
> > I have had an idea for fixing Emacs so that we don't have this problem
> > with parens in column 0.  That is only to scan comments in the forward
> > direction, and to mark them with text properties.  `back_comment' will
> > then be little more than checking these text properties are up to date,
> > and then doing a backward text property search.

> Would this mean we no longer need to put \( into Elisp doc strings too? It has 
> always been annoying that we have to do that.

> If it's practical to fold your idea into the emacs-25 branch it sounds like 
> it'll solve the problem. If it's safer to put such a change into the master 
> branch, I can install the patch I already wrote into the emacs-25 branch, as a 
> stopgap. What do you think?

OK, I've hacked this out and committed it to the new branch
"comment-cache", branched off of master.

To use it, (setq comment-cacheing-flag t), and enjoy!  The old
`back_comment' is still in syntax.c, renamed to `old_back_comment', and
it is used when that flag is left at nil.

There should no longer be any restrictions about open parentheses in
column 0, neither in comments nor in strings.
open-paren-in-column-0-is-defun-start should now be a relic (although it
still appears in some lisp files).

At the moment, the code only uses the cached information (on the
`comment-depth' text property) for moving backwards over comments.  It
could be enhanced also to use this information for moving back over
strings, or moving forward over comments and strings, but this is more
of an optimisation than new functionality, and I'm not convinced the
saving would be all that much.  (At the end of any such move, the
variables `from' and `from_byte' are out of synch, and a CHAR_TO_BYTE
invocation is necessary.  I don't know how slow or fast this is.)

As I've said already, the new scheme comes with one or two minor
restrictions: any Lisp code which chnages the syntax table in a way
which affects how literals are handled needs also to call
`trim-comment-cache' to invalidate the cache.  The same applies to
anybody tweaking the `syntax-table' property of a symbol which is the
value of a `category' text property.  CC Mode does the latter
extensively, and I'll need to prepare a version which doesn't do this.

At the moment, the code hasn't yet been tested with nestable comments,
or `category' text properties.  Can you recommend me a major mode with
nestable comments?  I haven't really tested it for narrowing, either, or
anything like indirect buffers.  

I'm not convinced by the names I've chosen for all the new functions and
variables, and I think I ought to rename "comment-cache" to
"literal-cache", and likewise for all the rest.

Some amendment of the Elisp manual will be needed to document the new
minor restrictions.

I look forward to your comments!

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-08 14:02             ` Alan Mackenzie
@ 2016-03-09  8:25               ` Paul Eggert
  2016-03-09  9:28                 ` John Wiegley
  0 siblings, 1 reply; 34+ messages in thread
From: Paul Eggert @ 2016-03-09  8:25 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: John Wiegley, 22884

Alan Mackenzie wrote:
> Can you recommend me a major mode with
> nestable comments?

How about Coq?  I think John Wiegley is a Coq user and can advise.

I'm afraid I know little about major modes and wouldn't be of much help as a 
reviewer for your patch (though it sounds good).





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-09  8:25               ` Paul Eggert
@ 2016-03-09  9:28                 ` John Wiegley
  2016-03-09  9:37                   ` Paul Eggert
  2016-03-09 10:56                   ` Alan Mackenzie
  0 siblings, 2 replies; 34+ messages in thread
From: John Wiegley @ 2016-03-09  9:28 UTC (permalink / raw)
  To: Paul Eggert; +Cc: Alan Mackenzie, 22884

>>>>> Paul Eggert <eggert@cs.ucla.edu> writes:

> Alan Mackenzie wrote:
>> Can you recommend me a major mode with nestable comments?

> How about Coq? I think John Wiegley is a Coq user and can advise.

Coq supports (* foo (* bar *) *), in the same way that C does with /* */.  Was
there something more you wanted to know?

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-09  9:28                 ` John Wiegley
@ 2016-03-09  9:37                   ` Paul Eggert
  2016-03-09 21:30                     ` John Wiegley
  2016-03-09 10:56                   ` Alan Mackenzie
  1 sibling, 1 reply; 34+ messages in thread
From: Paul Eggert @ 2016-03-09  9:37 UTC (permalink / raw)
  To: John Wiegley; +Cc: Alan Mackenzie, 22884

John Wiegley wrote:
> Coq supports (* foo (* bar *) *), in the same way that C does with /* */.

It's not the same way as C, since C comments do not nest.

> Was there something more you wanted to know?

It's up to Alan, but I suppose Alan may want simple directions to try out nested 
comments in Coq, for someone who does not know Coq at all.  E.g., what should 
the file name and contents be, and what emacs -Q keystrokes should one type to 
illustrate how nested comments work.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-09  9:28                 ` John Wiegley
  2016-03-09  9:37                   ` Paul Eggert
@ 2016-03-09 10:56                   ` Alan Mackenzie
  2016-03-09 14:44                     ` Drew Adams
  1 sibling, 1 reply; 34+ messages in thread
From: Alan Mackenzie @ 2016-03-09 10:56 UTC (permalink / raw)
  To: John Wiegley; +Cc: Paul Eggert, 22884

Hello, John.

On Wed, Mar 09, 2016 at 01:28:58AM -0800, John Wiegley wrote:
> >>>>> Paul Eggert <eggert@cs.ucla.edu> writes:

> > Alan Mackenzie wrote:
> >> Can you recommend me a major mode with nestable comments?

> > How about Coq? I think John Wiegley is a Coq user and can advise.

> Coq supports (* foo (* bar *) *), in the same way that C does with /* */.  Was
> there something more you wanted to know?

Well, C doesn't do nested comments, but it looks like Coq does.  I need
a mode and some code to test nested comments with.

Can you give me a URL for coq-mode.el, and possibly a sample Coq file
(doesn't need to be anything fancy or long).

Thanks!

> -- 
> John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
> http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-09 10:56                   ` Alan Mackenzie
@ 2016-03-09 14:44                     ` Drew Adams
  2016-03-09 17:04                       ` Alan Mackenzie
  0 siblings, 1 reply; 34+ messages in thread
From: Drew Adams @ 2016-03-09 14:44 UTC (permalink / raw)
  To: Alan Mackenzie, John Wiegley; +Cc: Paul Eggert, 22884

I'm not following this thread, but Common Lisp has nested
block comments, and they are very well specified in the
spec/standard.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-09 14:44                     ` Drew Adams
@ 2016-03-09 17:04                       ` Alan Mackenzie
  2016-03-09 17:14                         ` Drew Adams
  0 siblings, 1 reply; 34+ messages in thread
From: Alan Mackenzie @ 2016-03-09 17:04 UTC (permalink / raw)
  To: Drew Adams; +Cc: Paul Eggert, John Wiegley, 22884

Hello, Drew.

On Wed, Mar 09, 2016 at 06:44:31AM -0800, Drew Adams wrote:
> I'm not following this thread, but Common Lisp has nested
> block comments, and they are very well specified in the
> spec/standard.

Thank you, thank you!  Those nested comments in Lisp were just what I
needed.  And yes, I found a problem in my code.

So, if you're still listening, John, I don't need the Coq URL and files
any more.

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-09 17:04                       ` Alan Mackenzie
@ 2016-03-09 17:14                         ` Drew Adams
  0 siblings, 0 replies; 34+ messages in thread
From: Drew Adams @ 2016-03-09 17:14 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: Paul Eggert, John Wiegley, 22884

> Hello, Drew.
> 
> > I'm not following this thread, but Common Lisp has nested
> > block comments, and they are very well specified in the
> > spec/standard.
> 
> Thank you, thank you!  Those nested comments in Lisp were
> just what I needed.  And yes, I found a problem in my code.

Glad it helped.  In general, I think it would be good if more
Emacs Dev hackers were a bit more familiar with Common Lisp.

"Common Lisp The Language" is very readable, and it explicitly
presents the _reasons_ for many of the design decisions etc.

You can read it from front to back.  It is truly a pleasure to
dig into, and Guy Steele is a good writer.  Consider curling up
with it on one of these cold or rainy nights.  You won't regret it.

https://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html

I still have and use the first edition.  The 2nd is longer and
includes `loop', CLOS, etc. but the meat is essentially the same.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-09  9:37                   ` Paul Eggert
@ 2016-03-09 21:30                     ` John Wiegley
  0 siblings, 0 replies; 34+ messages in thread
From: John Wiegley @ 2016-03-09 21:30 UTC (permalink / raw)
  To: Paul Eggert; +Cc: Alan Mackenzie, 22884

>>>>> Paul Eggert <eggert@cs.ucla.edu> writes:

> John Wiegley wrote:
>> Coq supports (* foo (* bar *) *), in the same way that C does with /* */.

> It's not the same way as C, since C comments do not nest.

Ah, there are some C compilers (Borland I think?) that allowed nested comments
in C as an extension. But you're right, standard C does not.

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-04 21:08             ` Alan Mackenzie
@ 2016-03-13 10:03               ` Alan Mackenzie
  0 siblings, 0 replies; 34+ messages in thread
From: Alan Mackenzie @ 2016-03-13 10:03 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 22884

Hello, Paul.

On Fri, Mar 04, 2016 at 09:08:18PM +0000, Alan Mackenzie wrote:
> On Fri, Mar 04, 2016 at 12:32:06PM -0800, Paul Eggert wrote:
> > Alan Mackenzie wrote:
> > > I have had an idea for fixing Emacs so that we don't have this problem
> > > with parens in column 0.  That is only to scan comments in the forward
> > > direction, and to mark them with text properties.  `back_comment' will
> > > then be little more than checking these text properties are up to date,
> > > and then doing a backward text property search.

> > Would this mean we no longer need to put \( into Elisp doc strings too? It has 
> > always been annoying that we have to do that.

> It would mean this, yes.  open-paren-in-column-0-is-defun-start would
> become obsolete.

Apologies, but I was mistaken on this point.  Being able to put "(" at
column 0 in Elisp strings would entail some further work, though that
work would not be difficult or disruptive.

-- 
Alan Mackenzie (Nuremberg, Germany).





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-02 18:08 bug#22884: 25.0.92; C/l mode editing takes waaaayy too long Paul Eggert
  2016-03-03 12:49 ` Alan Mackenzie
@ 2016-03-15  3:07 ` Stefan Monnier
  2016-05-08 23:10   ` Dmitry Gutov
  2016-05-13 19:35 ` Paul Eggert
  2 siblings, 1 reply; 34+ messages in thread
From: Stefan Monnier @ 2016-03-15  3:07 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 22884

[ Just to clarify and keep it in the corresponding bug, rather than in
  some side-thread in emacs-devel.  ]

> emacs -Q config.h
> M-x goto-line RET 1661 RET / /

The patch below seems to fix this pathological case, making the "/ /"
instantaneous again.


        Stefan


diff --git a/src/syntax.c b/src/syntax.c
index 8e14bf3..b712e45 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -597,6 +597,26 @@ find_defun_start (ptrdiff_t pos, ptrdiff_t pos_byte)
       && MODIFF == find_start_modiff)
     return find_start_value;
 
+  if (!NILP (Vcomment_use_syntax_ppss))
+    {
+      EMACS_INT modiffs = CHARS_MODIFF;
+      Lisp_Object ppss = call1 (Qsyntax_ppss, make_number (pos));
+      if (modiffs != CHARS_MODIFF)
+	error ("syntax-ppss modified the buffer!");
+      TEMP_SET_PT_BOTH (opoint, opoint_byte);
+      Lisp_Object boc = Fnth (make_number (8), ppss);
+      if (NUMBERP (boc))
+        {
+          find_start_value = XINT (boc);
+          find_start_value_byte = CHAR_TO_BYTE (find_start_value);
+        }
+      else
+        {
+          find_start_value = pos;
+          find_start_value_byte = pos_byte;
+        }
+      goto found;
+    }
   if (!open_paren_in_column_0_is_defun_start)
     {
       find_start_value = BEGV;
@@ -864,6 +884,7 @@ back_comment (ptrdiff_t from, ptrdiff_t from_byte, ptrdiff_t stop,
 	case Sopen:
 	  /* Assume a defun-start point is outside of strings.  */
 	  if (open_paren_in_column_0_is_defun_start
+              && NILP (Vcomment_use_syntax_ppss)
 	      && (from == stop
 		  || (temp_byte = dec_bytepos (from_byte),
 		      FETCH_CHAR (temp_byte) == '\n')))
@@ -3647,6 +3668,11 @@ void
 syms_of_syntax (void)
 {
   DEFSYM (Qsyntax_table_p, "syntax-table-p");
+  DEFSYM (Qsyntax_ppss, "syntax-ppss");
+  DEFVAR_LISP ("comment-use-syntax-ppss",
+	       Vcomment_use_syntax_ppss,
+	       doc: /* Non-nil means `forward-comment' can use `syntax-ppss' internally.  */);
+  Vcomment_use_syntax_ppss = Qt;
 
   staticpro (&Vsyntax_code_object);
 





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-15  3:07 ` Stefan Monnier
@ 2016-05-08 23:10   ` Dmitry Gutov
  0 siblings, 0 replies; 34+ messages in thread
From: Dmitry Gutov @ 2016-05-08 23:10 UTC (permalink / raw)
  Cc: 22884

I think this bug should be made a non-blocker for 25.1: we have a 
workaround in the Emacs sources, and both proposed solutions are better 
suited for master.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-03-02 18:08 bug#22884: 25.0.92; C/l mode editing takes waaaayy too long Paul Eggert
  2016-03-03 12:49 ` Alan Mackenzie
  2016-03-15  3:07 ` Stefan Monnier
@ 2016-05-13 19:35 ` Paul Eggert
  2016-05-13 20:37   ` Glenn Morris
  2022-04-28 11:22   ` Lars Ingebrigtsen
  2 siblings, 2 replies; 34+ messages in thread
From: Paul Eggert @ 2016-05-13 19:35 UTC (permalink / raw)
  To: 22884

Yes, the workaround already installed in the emacs-25 branch (namely, 
mutate the sources so they don't run afoul of the problem) is good 
enough to solve the immediate problem, so I changed the status of 
Bug#22884 so that it is no longer a blocker for emacs-25.






^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-05-13 19:35 ` Paul Eggert
@ 2016-05-13 20:37   ` Glenn Morris
  2016-05-13 21:09     ` Paul Eggert
  2022-04-28 11:22   ` Lars Ingebrigtsen
  1 sibling, 1 reply; 34+ messages in thread
From: Glenn Morris @ 2016-05-13 20:37 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 22884

Paul Eggert wrote:

> Yes, the workaround already installed in the emacs-25 branch (namely,
> mutate the sources so they don't run afoul of the problem) is good
> enough to solve the immediate problem, so I changed the status of
> Bug#22884 so that it is no longer a blocker for emacs-25.

What about other C code, besides the Emacs sources?
What if anyone ever wants to edit an older version of the Emacs sources?

Your initial report said: "This sort of thing makes Emacs effectively
unusable for editing [some C code]", which is, y'know, a pretty bad state.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-05-13 20:37   ` Glenn Morris
@ 2016-05-13 21:09     ` Paul Eggert
  0 siblings, 0 replies; 34+ messages in thread
From: Paul Eggert @ 2016-05-13 21:09 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 22884

On 05/13/2016 01:37 PM, Glenn Morris wrote:
> What about other C code, besides the Emacs sources?
> What if anyone ever wants to edit an older version of the Emacs sources?

Older versions of Emacs have smaller config.h files, which makes the 
problem significantly smaller. I just now visited a config.h file for 
Emacs 23.4, and the same “type ‘/ /’” benchmark took about two seconds 
on my six-year-old desktop (Fedora 23 x86-64, AMD Phenom II X4 910e). 
Although two seconds is pretty annoying, it's considerably better than 
the ten seconds I was seeing with emacs-25 before we worked around the 
problem there.

Although Non-Emacs sources may have the problem, I imagine it's 
reasonably rare.

> Your initial report said: "This sort of thing makes Emacs effectively
> unusable for editing [some C code]", which is, y'know, a pretty bad state.

Yes, it is indeed a bad state. However, the problematic situations are 
rare and cause slowdowns rather than crashes, so the case for making it 
a blocker is not as strong as it could be.






^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2016-05-13 19:35 ` Paul Eggert
  2016-05-13 20:37   ` Glenn Morris
@ 2022-04-28 11:22   ` Lars Ingebrigtsen
  2022-04-28 19:35     ` Paul Eggert
  1 sibling, 1 reply; 34+ messages in thread
From: Lars Ingebrigtsen @ 2022-04-28 11:22 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 22884

Paul Eggert <eggert@cs.ucla.edu> writes:

> Yes, the workaround already installed in the emacs-25 branch (namely,
> mutate the sources so they don't run afoul of the problem) is good
> enough to solve the immediate problem, so I changed the status of
> Bug#22884 so that it is no longer a blocker for emacs-25.

(I'm going through old bug reports that unfortunately weren't resolved
at the time.)

Skimming this bug report, it's not quite clear to me what the remaining
problems were.  I can confirm that the test case (going to config.h when
there's "(something in a parenthesis in a comment earlier)" and editing)
is still fast on the trunk, so is there anything more to do in this bug
report?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 34+ messages in thread

* bug#22884: 25.0.92; C/l mode editing takes waaaayy too long
  2022-04-28 11:22   ` Lars Ingebrigtsen
@ 2022-04-28 19:35     ` Paul Eggert
  0 siblings, 0 replies; 34+ messages in thread
From: Paul Eggert @ 2022-04-28 19:35 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 22884-done

On 4/28/22 04:22, Lars Ingebrigtsen wrote:

> I can confirm that the test case (going to config.h when
> there's "(something in a parenthesis in a comment earlier)" and editing)
> is still fast on the trunk, so is there anything more to do in this bug
> report?

No, I think this was fixed in CC mode a while ago. Thanks for checking. 
I'll close the bug report.





^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2022-04-28 19:35 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-02 18:08 bug#22884: 25.0.92; C/l mode editing takes waaaayy too long Paul Eggert
2016-03-03 12:49 ` Alan Mackenzie
2016-03-03 17:54   ` Paul Eggert
2016-03-03 19:23     ` Alan Mackenzie
2016-03-03 20:38       ` Eli Zaretskii
2016-03-03 21:57       ` Paul Eggert
2016-03-03 22:59         ` Alan Mackenzie
2016-03-03 20:51     ` Eli Zaretskii
2016-03-03 23:44       ` Paul Eggert
2016-03-04 14:47         ` Alan Mackenzie
2016-03-04 20:32           ` Paul Eggert
2016-03-04 21:08             ` Alan Mackenzie
2016-03-13 10:03               ` Alan Mackenzie
2016-03-08 14:02             ` Alan Mackenzie
2016-03-09  8:25               ` Paul Eggert
2016-03-09  9:28                 ` John Wiegley
2016-03-09  9:37                   ` Paul Eggert
2016-03-09 21:30                     ` John Wiegley
2016-03-09 10:56                   ` Alan Mackenzie
2016-03-09 14:44                     ` Drew Adams
2016-03-09 17:04                       ` Alan Mackenzie
2016-03-09 17:14                         ` Drew Adams
2016-03-03 20:40   ` Eli Zaretskii
2016-03-03 22:27     ` Alan Mackenzie
2016-03-03 23:18     ` Alan Mackenzie
2016-03-04  8:32       ` Eli Zaretskii
2016-03-04  9:37         ` Alan Mackenzie
2016-03-15  3:07 ` Stefan Monnier
2016-05-08 23:10   ` Dmitry Gutov
2016-05-13 19:35 ` Paul Eggert
2016-05-13 20:37   ` Glenn Morris
2016-05-13 21:09     ` Paul Eggert
2022-04-28 11:22   ` Lars Ingebrigtsen
2022-04-28 19:35     ` Paul Eggert

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).