mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
Merge from trunk; up to 2014-02-23T23:41:17Z!lekktu@gmail.com.
This commit is contained in:
commit
3e93bafb95
2625 changed files with 315027 additions and 317624 deletions
|
|
@ -7,7 +7,8 @@
|
|||
;; See admin/notes/bugtracker.
|
||||
(log-edit-mode . ((log-edit-rewrite-fixes
|
||||
"[ \n](bug#\\([0-9]+\\))" . "debbugs:\\1")
|
||||
(log-edit-font-lock-gnu-style . t)))
|
||||
(log-edit-font-lock-gnu-style . t)
|
||||
(log-edit-setup-add-author . t)))
|
||||
(change-log-mode . ((add-log-time-zone-rule . t)
|
||||
(fill-column . 74)
|
||||
(bug-reference-url-format . "http://debbugs.gnu.org/%s")
|
||||
|
|
|
|||
6
.gitignore
vendored
6
.gitignore
vendored
|
|
@ -10,8 +10,14 @@ lib/Makefile.in
|
|||
src/config.in
|
||||
autom4te.cache
|
||||
makefile
|
||||
TAGS
|
||||
*~
|
||||
/README.W32
|
||||
|
||||
/bin/
|
||||
/site-lisp/
|
||||
/leim/ja-dic/
|
||||
etc/refcards/*.aux
|
||||
etc/refcards/*.log
|
||||
info/dir
|
||||
info/*.info
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Build Emacs from a fresh tarball or version-control checkout.
|
||||
|
||||
# Copyright (C) 2011-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2011-2014 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GNU Emacs.
|
||||
#
|
||||
|
|
@ -32,7 +32,6 @@
|
|||
# run "configure" by hand. But run autogen.sh first, if the source
|
||||
# was checked out directly from the repository.
|
||||
|
||||
|
||||
# If a Makefile already exists, just use it.
|
||||
|
||||
ifeq ($(wildcard Makefile),Makefile)
|
||||
|
|
@ -63,8 +62,8 @@ default $(filter-out configure Makefile,$(MAKECMDGOALS)): Makefile
|
|||
|
||||
configure:
|
||||
@echo >&2 'There seems to be no "configure" file in this directory.'
|
||||
@echo >&2 'Running ./autogen.sh || autogen/copy_autogen ...'
|
||||
./autogen.sh || autogen/copy_autogen
|
||||
@echo >&2 'Running ./autogen.sh ...'
|
||||
./autogen.sh
|
||||
@echo >&2 '"configure" file built.'
|
||||
|
||||
Makefile: configure
|
||||
|
|
|
|||
138
INSTALL
138
INSTALL
|
|
@ -1,14 +1,14 @@
|
|||
GNU Emacs Installation Guide
|
||||
Copyright (C) 1992, 1994, 1996-1997, 2000-2013
|
||||
Free Software Foundation, Inc.
|
||||
Copyright (C) 1992, 1994, 1996-1997, 2000-2014 Free Software Foundation,
|
||||
Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
This file contains general information on building GNU Emacs.
|
||||
For more information specific to the MS-Windows, GNUstep/Mac OS X, and
|
||||
MS-DOS ports, also read the files nt/INSTALL, nextstep/INSTALL, and
|
||||
msdos/INSTALL. For information about building from a Bazaar checkout
|
||||
(rather than a release), also read the file INSTALL.BZR.
|
||||
msdos/INSTALL. For information about building from a repository checkout
|
||||
(rather than a release), also read the file INSTALL.REPO.
|
||||
|
||||
|
||||
BASIC INSTALLATION
|
||||
|
|
@ -62,32 +62,24 @@ sections if you need to.
|
|||
name, where to find various headers and libraries, etc.
|
||||
Refer to the section DETAILED BUILDING AND INSTALLATION below.
|
||||
|
||||
If `configure' didn't find some (optional) image support libraries,
|
||||
such as Xpm, jpeg, etc., and you want to use them, refer to the
|
||||
subsection "Image support libraries" below.
|
||||
If `configure' didn't find some image support libraries, such as
|
||||
Xpm and jpeg, refer to "Image support libraries" below.
|
||||
|
||||
If the details printed by `configure' don't make any sense to
|
||||
you, but there are no obvious errors, assume that `configure' did
|
||||
its job and proceed.
|
||||
|
||||
4. If you need to run the `configure' script more than once (e.g.,
|
||||
with some non-default options), always clean the source
|
||||
directories before running `configure' again:
|
||||
|
||||
make distclean
|
||||
./configure
|
||||
|
||||
5. Invoke the `make' program:
|
||||
4. Invoke the `make' program:
|
||||
|
||||
make
|
||||
|
||||
6. If `make' succeeds, it will build an executable program `emacs'
|
||||
5. If `make' succeeds, it will build an executable program `emacs'
|
||||
in the `src' directory. You can try this program, to make sure
|
||||
it works:
|
||||
|
||||
src/emacs -Q
|
||||
|
||||
7. Assuming that the program `src/emacs' starts and displays its
|
||||
6. Assuming that the program `src/emacs' starts and displays its
|
||||
opening screen, you can install the program and its auxiliary
|
||||
files into their installation directories:
|
||||
|
||||
|
|
@ -101,6 +93,10 @@ sections if you need to.
|
|||
|
||||
You can delete the entire build directory if you do not plan to
|
||||
build Emacs again, but it can be useful to keep for debugging.
|
||||
If you want to build Emacs again with different configure options,
|
||||
first clean the source directories:
|
||||
|
||||
make distclean
|
||||
|
||||
Note that the install automatically saves space by compressing
|
||||
(provided you have the `gzip' program) those installed Lisp source (.el)
|
||||
|
|
@ -120,19 +116,7 @@ packages. Note that if there is a separate `dev' or `devel' package,
|
|||
for use at compilation time rather than run time, you will need that
|
||||
as well as the corresponding run time package; typically the dev
|
||||
package will contain header files and a library archive. Otherwise,
|
||||
you can download and build libraries from sources.
|
||||
|
||||
The sources of these libraries are available by anonymous CVS from
|
||||
cvs.m17n.org.
|
||||
|
||||
% cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n login
|
||||
% cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co m17n-db
|
||||
% cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co m17n-lib
|
||||
% cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co libotf
|
||||
|
||||
For m17n-lib, if you have problems with making the whole package
|
||||
because you lack some other packages on which m17n-lib depends, try to
|
||||
configure it with the option "--without-gui".
|
||||
you can download the libraries from <http://www.nongnu.org/m17n/>.
|
||||
|
||||
Note that Emacs cannot support complex scripts on a TTY, unless the
|
||||
terminal includes such a support.
|
||||
|
|
@ -157,37 +141,40 @@ in the intlfonts/README file.
|
|||
|
||||
* Image support libraries
|
||||
|
||||
Emacs needs optional libraries to be able to display images (with the
|
||||
exception of PBM and XBM images whose support is built-in).
|
||||
Emacs needs libraries to display images, with the exception of PBM and
|
||||
XBM images whose support is built-in.
|
||||
|
||||
On some systems, particularly on GNU/Linux, these libraries may
|
||||
already be present or available as additional packages. Note that if
|
||||
already be present or available as additional packages. If
|
||||
there is a separate `dev' or `devel' package, for use at compilation
|
||||
time rather than run time, you will need that as well as the
|
||||
corresponding run time package; typically the dev package will
|
||||
contain header files and a library archive. Otherwise, you can
|
||||
download and build libraries from sources. None of them are vital for
|
||||
running Emacs; however, note that Emacs will not be able to use
|
||||
colored icons in the toolbar if XPM support is not compiled in.
|
||||
download and build libraries from sources. Although none of them are
|
||||
essential for running Emacs, some are important enough that
|
||||
'configure' will report an error if they are absent from a system that
|
||||
has X11 support, unless 'configure' is specifically told to omit them.
|
||||
|
||||
Here's the list of some of these optional libraries, and the URLs
|
||||
where they can be found (in the unlikely event that your distribution
|
||||
does not provide them):
|
||||
Here's a list of some of these libraries, and the URLs where they
|
||||
can be found (in the unlikely event that your distribution does not
|
||||
provide them). By default, libraries marked with an X are required if
|
||||
X11 is being used.
|
||||
|
||||
. libXaw3d http://directory.fsf.org/project/xaw3d/
|
||||
. libxpm for XPM: http://www.x.org/releases/current/src/lib/
|
||||
. libpng for PNG: http://www.libpng.org/
|
||||
. libz (for PNG): http://www.zlib.net/
|
||||
. libjpeg for JPEG: http://www.ijg.org/
|
||||
. libtiff for TIFF: http://www.libtiff.org/
|
||||
. libgif for GIF: http://sourceforge.net/projects/giflib/
|
||||
libXaw3d http://directory.fsf.org/project/xaw3d/
|
||||
X libxpm for XPM: http://www.x.org/releases/current/src/lib/
|
||||
X libpng for PNG: http://www.libpng.org/
|
||||
libz (for PNG): http://www.zlib.net/
|
||||
X libjpeg for JPEG: http://www.ijg.org/
|
||||
X libtiff for TIFF: http://www.remotesensing.org/libtiff/
|
||||
X libgif for GIF: http://sourceforge.net/projects/giflib/
|
||||
|
||||
Emacs will configure itself to build with these libraries if the
|
||||
`configure' script finds them on your system, unless you supply the
|
||||
appropriate --without-LIB option. In some cases, older versions of
|
||||
these libraries won't work because some routines are missing, and
|
||||
configure should avoid such old versions. If that happens, use the
|
||||
--without-LIB options to `configure', if you need to.
|
||||
If you supply the appropriate --without-LIB option, 'configure' will
|
||||
omit the corresponding library from Emacs, even if that makes for a
|
||||
less-pleasant user interface. Otherwise, Emacs will configure itself
|
||||
to build with these libraries if 'configure' finds them on your
|
||||
system, and 'configure' will complain and exit if a library marked 'X'
|
||||
is not found on a system that uses X11. Use --without-LIB if your
|
||||
version of a library won't work because some routines are missing.
|
||||
|
||||
* Extra fonts
|
||||
|
||||
|
|
@ -212,7 +199,7 @@ The names of the packages that you need varies according to the
|
|||
GNU/Linux distribution that you use, and the options that you want to
|
||||
configure Emacs with. On Debian-based systems, you can install all the
|
||||
packages needed to build the installed version of Emacs with a command
|
||||
like `apt-get build-dep emacs23'. On Red Hat systems, the
|
||||
like `apt-get build-dep emacs24'. On Red Hat systems, the
|
||||
corresponding command is `yum-builddep emacs'.
|
||||
|
||||
|
||||
|
|
@ -267,14 +254,11 @@ accept a list of directories, separated with colons.
|
|||
To get more attractive menus, you can specify an X toolkit when you
|
||||
configure Emacs; use the option `--with-x-toolkit=TOOLKIT', where
|
||||
TOOLKIT is `gtk' (the default), `athena', or `motif' (`yes' and
|
||||
`lucid' are synonyms for `athena'). On some systems, it does not work
|
||||
to use a toolkit with shared libraries. A free implementation of
|
||||
Motif, called LessTif, is available from <http://www.lesstif.org>.
|
||||
Compiling with LessTif or Motif causes a standard File Selection
|
||||
Dialog to pop up when you invoke file commands with the mouse. You
|
||||
can get fancy 3D-style scroll bars, even without Gtk or LessTif/Motif,
|
||||
if you have the Xaw3d library installed (see "Image support libraries"
|
||||
above for Xaw3d availability).
|
||||
`lucid' are synonyms for `athena'). Compiling with Motif causes a
|
||||
standard File Selection Dialog to pop up when you invoke file commands
|
||||
with the mouse. You can get fancy 3D-style scroll bars, even without
|
||||
Gtk or Motif, if you have the Xaw3d library installed (see
|
||||
"Image support libraries" above for Xaw3d availability).
|
||||
|
||||
You can tell configure where to search for GTK by specifying
|
||||
`--with-pkg-config-prog=PATH' where PATH is the pathname to
|
||||
|
|
@ -295,7 +279,7 @@ individual users--see the Rmail chapter of the Emacs manual.
|
|||
|
||||
For image support you may have to download, build, and install the
|
||||
appropriate image support libraries for image types other than XBM and
|
||||
PBM, see the list of URLs in "ADDITIONAL DISTRIBUTION FILES" above.
|
||||
PBM, see the list of URLs in "Image support libraries" above.
|
||||
(Note that PNG support requires libz in addition to libpng.)
|
||||
|
||||
To disable individual types of image support in Emacs for some reason,
|
||||
|
|
@ -308,8 +292,7 @@ or more of these options:
|
|||
--without-gif for GIF image support
|
||||
--without-png for PNG image support
|
||||
|
||||
Use --without-toolkit-scroll-bars to disable LessTif/Motif or Xaw3d
|
||||
scroll bars.
|
||||
Use --without-toolkit-scroll-bars to disable Motif or Xaw3d scroll bars.
|
||||
|
||||
Use --without-xim to inhibit the default use of X Input Methods.
|
||||
In this case, the X resource useXIM can be used to turn on use of XIM.
|
||||
|
|
@ -326,14 +309,15 @@ equivalent to --without-sound --without-dbus --without-libotf
|
|||
--without-selinux --without-xft --without-gsettings --without-gnutls
|
||||
--without-rsvg --without-xml2 --without-gconf --without-imagemagick
|
||||
--without-m17n-flt --without-jpeg --without-tiff --without-gif
|
||||
--without-png --without-gpm. Note that --without-all leaves X support
|
||||
enabled, and using the GTK2 or GTK3 toolkit creates a lot of library
|
||||
dependencies. So if you want to build a small executable with very basic
|
||||
X support, use --without-all --with-x-toolkit=no. For the smallest possible
|
||||
executable without X, use --without-all --without-x. If you want to build
|
||||
with just a few features enabled, you can combine --without-all with
|
||||
--with-FEATURE. For example, you can use --without-all --with-dbus
|
||||
to build with DBus support and nothing more.
|
||||
--without-png --without-gpm --without-file-notification. Note that
|
||||
--without-all leaves X support enabled, and using the GTK2 or GTK3
|
||||
toolkit creates a lot of library dependencies. So if you want to
|
||||
build a small executable with very basic X support, use --without-all
|
||||
--with-x-toolkit=no. For the smallest possible executable without X,
|
||||
use --without-all --without-x. If you want to build with just a few
|
||||
features enabled, you can combine --without-all with --with-FEATURE.
|
||||
For example, you can use --without-all --with-dbus to build with DBus
|
||||
support and nothing more.
|
||||
|
||||
Use --with-wide-int to implement Emacs values with the type 'long long',
|
||||
even on hosts where a narrower type would do. With this option, on a
|
||||
|
|
@ -482,10 +466,6 @@ variable gets by default! Make sure you know what kind of value the
|
|||
variable should have. If you don't pay attention to what you are
|
||||
doing, you'll make a mistake.
|
||||
|
||||
If you set load-path to a different value in site-init.el or
|
||||
site-load.el, Emacs will use *precisely* that value when it starts up
|
||||
again. If you do this, you are on your own!
|
||||
|
||||
The `site-*.el' files are nonexistent in the distribution. You do not
|
||||
need to create them if you have nothing to put in them.
|
||||
|
||||
|
|
@ -656,7 +636,7 @@ Here is a complete list of the variables you may want to set.
|
|||
path variables - `bindir' and `libexecdir'.
|
||||
|
||||
The above variables serve analogous purposes in the makefiles for all
|
||||
GNU software; the following variable is specific to Emacs.
|
||||
GNU software; the following variables are specific to Emacs.
|
||||
|
||||
`archlibdir' indicates where Emacs installs and expects the executable
|
||||
files and other architecture-dependent data it uses while
|
||||
|
|
@ -664,6 +644,10 @@ GNU software; the following variable is specific to Emacs.
|
|||
see), is `/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME'
|
||||
(where VERSION and CONFIGURATION-NAME are as described above).
|
||||
|
||||
`GZIP_PROG' is the name of the executable that compresses installed info,
|
||||
manual, and .el files. It defaults to gzip. Setting it to
|
||||
the empty string suppresses compression.
|
||||
|
||||
Remember that you must specify any variable values you need each time
|
||||
you run `make' in the top directory. If you run `make' once to build
|
||||
emacs, test it, and then run `make' again to install the files, you
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
Copyright (C) 2002-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
Building and Installing Emacs from Bazaar
|
||||
Building and Installing Emacs from the Repository
|
||||
|
||||
Building Emacs from Bazaar requires some tools that are not needed
|
||||
when building from a release. You will need:
|
||||
Building Emacs from the source-code repository requires some tools
|
||||
that are not needed when building from a release. You will need:
|
||||
|
||||
autoconf - at least the version specified near the start of
|
||||
configure.ac (in the AC_PREREQ command).
|
||||
|
|
@ -34,14 +34,14 @@ doing the wrong thing if you update the build procedure, you can
|
|||
invoke "./configure -C" instead.
|
||||
|
||||
Some of the files that are included in the Emacs tarball, such as
|
||||
byte-compiled Lisp files, are not stored in Bazaar. Therefore, to
|
||||
build from Bazaar you must run "make bootstrap" instead of just "make":
|
||||
byte-compiled Lisp files, are not stored in the repository. Therefore, to
|
||||
build from the repository you must run "make bootstrap" instead of
|
||||
just "make":
|
||||
|
||||
$ bzr pull
|
||||
$ make bootstrap
|
||||
|
||||
Normally, it is not necessary to use "make bootstrap" after every
|
||||
update from Bazaar. "make" should work in 90% of the cases and be
|
||||
update from the repository. "make" should work in 90% of the cases and be
|
||||
much quicker.
|
||||
|
||||
$ make
|
||||
|
|
@ -72,7 +72,7 @@ platform-specific configuration scripts (nt/configure.bat, config.bat,
|
|||
etc.) before "make bootstrap" or "make"; the rest of the procedure is
|
||||
applicable to those systems as well.
|
||||
|
||||
Because the Bazaar version of Emacs is a work in progress, it will
|
||||
Because the repository version of Emacs is a work in progress, it will
|
||||
sometimes fail to build. Please wait a day or so (and check the
|
||||
archives of the emacs-buildstatus, emacs-devel, and bug-gnu-emacs
|
||||
mailing lists) before reporting such problems. In most cases, the
|
||||
672
Makefile.in
672
Makefile.in
File diff suppressed because it is too large
Load diff
14
README
14
README
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
|
|
@ -24,8 +24,9 @@ list bug-gnu-emacs@gnu.org. If possible, use M-x report-emacs-bug.
|
|||
See the "Bugs" section of the Emacs manual for more information on how
|
||||
to report bugs. (The file `BUGS' in this directory explains how you
|
||||
can find and read that section using the Info files that come with
|
||||
Emacs.) See `etc/MAILINGLISTS' for more information on mailing lists
|
||||
relating to GNU packages.
|
||||
Emacs.) For a list of mailing lists related to Emacs, see
|
||||
<http://savannah.gnu.org/mail/?group=emacs>. For the complete
|
||||
list of GNU mailing lists, see <http://lists.gnu.org/>.
|
||||
|
||||
The `etc' subdirectory contains several other files, named in capital
|
||||
letters, which you might consider looking at when installing GNU
|
||||
|
|
@ -64,9 +65,10 @@ There are several subdirectories:
|
|||
its primitives, the redisplay code, and some basic editing
|
||||
functions).
|
||||
`lisp' holds the Emacs Lisp code for Emacs (most everything else).
|
||||
`leim' holds the library of Emacs input methods, Lisp code and
|
||||
auxiliary data files required to type international characters
|
||||
which can't be directly produced by your keyboard.
|
||||
`leim' holds the original source files for the generated files
|
||||
in lisp/leim. These form the library of Emacs input methods,
|
||||
required to type international characters that can't be
|
||||
directly produced by your keyboard.
|
||||
`lib' holds source code for libraries used by Emacs and its utilities
|
||||
`lib-src' holds the source code for some utility programs for use by or
|
||||
with Emacs, like movemail and etags.
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ documented in config.in, and this file would not be necessary.
|
|||
|
||||
AIX
|
||||
_AIX
|
||||
BSD_SYSTEM
|
||||
CYGWIN Compiling the Cygwin port.
|
||||
__CYGWIN__ Ditto
|
||||
GNU_LINUX
|
||||
|
|
@ -25,7 +24,6 @@ _MSC_VER Compiling the W32 port with the Microsoft C compiler.
|
|||
DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
|
||||
SOLARIS2
|
||||
USG
|
||||
USG5
|
||||
USG5_4
|
||||
|
||||
** Distinguishing GUIs **
|
||||
|
|
@ -136,8 +134,6 @@ HAVE_DECL_STRTOUMAX
|
|||
HAVE_DECL_SYS_SIGLIST
|
||||
HAVE_DECL_TZNAME
|
||||
HAVE_DECL___SYS_SIGLIST
|
||||
HAVE_DES_H
|
||||
HAVE_DEV_PTMX
|
||||
HAVE_DIALOGS
|
||||
HAVE_DIFFTIME
|
||||
HAVE_DUP2
|
||||
|
|
@ -149,7 +145,6 @@ HAVE_FORK
|
|||
HAVE_FREEIFADDRS
|
||||
HAVE_FREETYPE
|
||||
HAVE_FSEEKO
|
||||
HAVE_FSYNC
|
||||
HAVE_FUTIMENS
|
||||
HAVE_FUTIMES
|
||||
HAVE_FUTIMESAT
|
||||
|
|
@ -176,8 +171,6 @@ HAVE_GET_CURRENT_DIR_NAME
|
|||
HAVE_GHOSTSCRIPT
|
||||
HAVE_GIF
|
||||
HAVE_GNUTLS
|
||||
HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY
|
||||
HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
|
||||
HAVE_GPM
|
||||
HAVE_GRANTPT
|
||||
HAVE_GSETTINGS
|
||||
|
|
@ -200,26 +193,15 @@ HAVE_IMAGEMAGICK
|
|||
HAVE_INET_SOCKETS
|
||||
HAVE_INTTYPES_H
|
||||
HAVE_JPEG
|
||||
HAVE_KERBEROSIV_DES_H
|
||||
HAVE_KERBEROSIV_KRB_H
|
||||
HAVE_KERBEROS_DES_H
|
||||
HAVE_KERBEROS_KRB_H
|
||||
HAVE_KRB5_ERROR_E_TEXT
|
||||
HAVE_KRB5_ERROR_TEXT
|
||||
HAVE_KRB5_H
|
||||
HAVE_KRB_H
|
||||
HAVE_LANGINFO_CODESET
|
||||
HAVE_LIBCOM_ERR
|
||||
HAVE_LIBCRYPTO
|
||||
HAVE_LIBDES
|
||||
HAVE_LIBDES425
|
||||
HAVE_LIBDGC
|
||||
HAVE_LIBDNET
|
||||
HAVE_LIBHESIOD
|
||||
HAVE_LIBK5CRYPTO
|
||||
HAVE_LIBKRB
|
||||
HAVE_LIBKRB4
|
||||
HAVE_LIBKRB5
|
||||
HAVE_LIBKSTAT
|
||||
HAVE_LIBLOCKFILE
|
||||
HAVE_LIBM
|
||||
|
|
@ -228,12 +210,10 @@ HAVE_LIBOTF
|
|||
HAVE_LIBPERFSTAT
|
||||
HAVE_LIBPNG_PNG_H
|
||||
HAVE_LIBPTHREADS
|
||||
HAVE_LIBRESOLV
|
||||
HAVE_LIBSELINUX
|
||||
HAVE_LIBXEXT
|
||||
HAVE_LIBXML2
|
||||
HAVE_LIBXMU
|
||||
HAVE_LINUX_VERSION_H
|
||||
HAVE_LOCALTIME_R
|
||||
HAVE_LOCAL_SOCKETS
|
||||
HAVE_LONG_FILE_NAMES
|
||||
|
|
@ -300,7 +280,6 @@ HAVE_SNPRINTF
|
|||
HAVE_SOCKETS
|
||||
HAVE_SOUND
|
||||
HAVE_SOUNDCARD_H
|
||||
HAVE_SPEED_T
|
||||
HAVE_STDINT_H
|
||||
HAVE_STDIO_EXT_H
|
||||
HAVE_STDLIB_H
|
||||
|
|
@ -379,7 +358,6 @@ HAVE_WS2TCPIP_H
|
|||
HAVE_XAW3D
|
||||
HAVE_XFT
|
||||
HAVE_XIM
|
||||
HAVE_XKBGETKEYBOARD
|
||||
HAVE_XPM
|
||||
HAVE_XRMSETDATABASE
|
||||
HAVE_XSCREENNUMBEROFSCREEN
|
||||
|
|
|
|||
458
admin/ChangeLog
458
admin/ChangeLog
|
|
@ -1,3 +1,440 @@
|
|||
2014-02-06 David Engster <deng@randomsample.de>
|
||||
|
||||
* grammars/c.by (function-pointer): Correctly deal with anonymous
|
||||
function pointers.
|
||||
(opt-brackets-after-symbol): New.
|
||||
(multi-stage-dereference): Use it. Add rules for explicit
|
||||
matching the last dereference.
|
||||
|
||||
2014-01-16 Eric S. Raymond <esr@thyrsus.com>
|
||||
|
||||
* notes/commits: Add a 'graph on VCS-independent ways of
|
||||
identifying commits and the desirability thereof.
|
||||
|
||||
2014-01-15 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Fix copyright license notices for Adobe Unicode mapping files.
|
||||
* charsets/mapfiles/README: The copied files are not compressed.
|
||||
Check for copies as of today.
|
||||
* charsets/mapfiles/stdenc.txt, charsets/mapfiles/symbol.txt:
|
||||
Update from table version 0.2 (1999-03-30) to 1.0 (2011-07-12).
|
||||
This doesn't change the table data, just copyright license notice.
|
||||
The new notices are compatible with the GPL, the old ones were not.
|
||||
|
||||
2014-01-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* update_autogen (status): New function. Use throughout.
|
||||
|
||||
2014-01-10 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* update_autogen: Fix sed bug that was losing the last AUTOGEN_VCS.
|
||||
|
||||
2014-01-04 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (manual-html-fix-node-div): Handle Texinfo 5's movable <hr>.
|
||||
(manual-html-fix-index-2): Tweak Texinfo 5 table format.
|
||||
Fix minor Texinfo 4 issue with start of detailed menu.
|
||||
|
||||
2014-01-03 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el: More Texinfo 5 updates.
|
||||
(manual-html-fix-headers): Tweak Texinfo 5 body.
|
||||
(manual-html-fix-node-div): Treat "header" like "node".
|
||||
(manual-html-fix-index-1): Handle Texinfo 5 top heading.
|
||||
(manual-html-fix-index-2): Tweak Texinfo 5 listing tables.
|
||||
|
||||
2014-01-02 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* check-doc-strings: Replace `perl -w' with `use warnings;'.
|
||||
|
||||
2013-12-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (manual-html-fix-headers, manual-html-fix-index-1):
|
||||
Some updates for changes in Texinfo 5 output.
|
||||
|
||||
2013-12-29 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* make-emacs:
|
||||
* build-configs: Add the "use strict;" and "use warnings;" pragmas.
|
||||
|
||||
2013-12-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (cusver-scan): Warn about missing :types.
|
||||
(cusver-check): Interactively, require existing directories.
|
||||
|
||||
2013-12-27 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* admin.el (manual-misc-manuals, make-manuals):
|
||||
(manual-pdf, cusver-find-files):
|
||||
(cusver-new-version, cusver-scan, cusver-goto-xref):
|
||||
(cusver-check): Doc fix.
|
||||
(manual-html-node, cusver-check): Use `user-error'.
|
||||
|
||||
2013-12-24 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Automate the procedure for updating copyright year.
|
||||
* merge-gnulib (GNULIB_MODULES): Add update-copyright.
|
||||
* notes/years: Mention admin/update-copyright.
|
||||
* update-copyright: New file.
|
||||
|
||||
2013-12-24 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* admin.el (add-release-logs):
|
||||
(set-version-in-file, set-version, set-copyright):
|
||||
Use `user-error'.
|
||||
|
||||
2013-12-22 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* unidata/unidata-gen.el (unidata-split-name): Don't give any NAME
|
||||
to <control> characters: the Unicode Standard says they have no
|
||||
name. (Bug#16216)
|
||||
(unidata-describe-bidi-class): Add new "isolate" classes
|
||||
introduced by Unicode 6.3.
|
||||
|
||||
2013-12-12 David Engster <deng@randomsample.de>
|
||||
|
||||
* grammars/c.by (expr-binop): Add MOD.
|
||||
(variablearg): Add 'opt-assign'.
|
||||
(variablearg, varnamelist): Add default values so that it can be
|
||||
later expanded into the tag.
|
||||
(opt-stuff-after-symbol): Rename to 'brackets-after-symbol' and
|
||||
remove empty match.
|
||||
(multi-stage-dereference): Adapt to above rename.
|
||||
(unaryexpression): Use 'symbol' instead of 'namespace-symbol',
|
||||
since the latter also leads to an empty match at the end which
|
||||
would make this too greedy.
|
||||
(variablearg-opt-name): Support parsing of function pointers
|
||||
inside an argument list.
|
||||
|
||||
2013-12-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* update_autogen (info_dir):
|
||||
Use dir_top from build-aux/ rather than admin/.
|
||||
|
||||
* update_autogen: Add option to generate info/dir.
|
||||
(Usage): Add -I.
|
||||
(info_flag): New variable.
|
||||
(-I): New option.
|
||||
(doc): Maybe check its status.
|
||||
(info_dir): New function.
|
||||
* dir_top: New file.
|
||||
|
||||
2013-12-11 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Remove the option of using libcrypto.
|
||||
* merge-gnulib: Remove lib/gl_openssh.h and m4/gl-openssl.m4.
|
||||
|
||||
2013-12-04 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* unidata/unidata-gen.el (unidata-prop-alist): Update bidi-class
|
||||
to include the new isolate-related classes introduced with Unicode
|
||||
v6.3.
|
||||
(unidata-encode-val): Accept an additional optional argument, a
|
||||
warning message to emit when UnicodeData.txt defines bidi-class
|
||||
values that are not in unidata-prop-alist. Add a comment
|
||||
explaining what should maintainers do if/when such a warning ever
|
||||
appears.
|
||||
(unidata-gen-table): Call unidata-encode-val with 3rd arg non-nil
|
||||
when generating uni-bidi.el.
|
||||
|
||||
2013-12-01 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* unidata/Makefile.in (${DSTDIR}/charprop.el):
|
||||
Ensure output files are writable.
|
||||
|
||||
2013-11-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* grammars/Makefile.in: Ensure output files are writable.
|
||||
|
||||
2013-11-30 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* charsets/mule-charsets.el: Rewritten to work in Emacs 23 and
|
||||
later. (Bug#16007)
|
||||
|
||||
2013-11-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
Stop keeping (most) generated cedet grammar files in the repository.
|
||||
* grammars/README: Remove.
|
||||
* grammars/Makefile.in: New file.
|
||||
* grammars/c.by, grammars/java-tags.wy, grammars/js.wy:
|
||||
* grammars/python.wy: Update declarations to match generated outputs.
|
||||
|
||||
2013-11-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* unidata/unidata-gen.el (unidata-gen-files):
|
||||
Disable autoloads in generated files.
|
||||
|
||||
2013-11-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* unidata/Makefile.in (all, install, clean, bootstrap-clean)
|
||||
(distclean, maintainer-clean): Declare as PHONY.
|
||||
(compile, extraclean): New.
|
||||
(${DSTDIR}/charprop.el): Depend on source files rather than
|
||||
intermediate products.
|
||||
|
||||
2013-11-11 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* unidata/BidiMirroring.txt, unidata/UnicodeData.txt: Update to 6.3.0.
|
||||
|
||||
* unidata/unidata-gen.el (unidata-gen-files):
|
||||
Tweak whitespace in generated files.
|
||||
|
||||
2013-11-09 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* unidata/unidata-gen.el (unidata-gen-files):
|
||||
Fix deletion of existing output files after 2013-10-30 changes.
|
||||
|
||||
2013-11-07 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* unidata/unidata-gen.el (unidata-gen-files):
|
||||
Disable version-control in generated files.
|
||||
Update Unicode Inc. copyright years.
|
||||
|
||||
2013-11-05 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* update_autogen: Move here from ../autogen.
|
||||
(usage): Update. Remove -l, add -A.
|
||||
(autogendir): New variable.
|
||||
(ldefs_flag): Default to set.
|
||||
(genfiles): Reduce to only ms-dos relevant files.
|
||||
(main): Make checking autogen sources optional.
|
||||
Make copying of autogen files optional.
|
||||
|
||||
2013-10-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* unidata/unidata-gen.el (unidata-gen-files): Use pop.
|
||||
Also take the output directory as an argument.
|
||||
* unidata/Makefile.in: Simplify now that unidata-gen-files takes
|
||||
the output directory as an argument (no need to cd, etc).
|
||||
(abs_srcdir, abs_builddir): Remove.
|
||||
(abs_top_builddir): Replace by top_builddir.
|
||||
(${DSTDIR}/charprop.el): No need to cd. Pass dest as argument.
|
||||
(${DSTDIR}/charprop.el, charprop.el):
|
||||
No need to pass unidata.txt as argument.
|
||||
|
||||
* unidata/unidata-gen.el (unidata--ensure-compiled): New function.
|
||||
(unidata-gen-table-name, unidata-gen-table-decomposition)
|
||||
(unidata-gen-files): Use unidata--ensure-compiled.
|
||||
|
||||
* unidata/Makefile.in (abs_srcdir): New, set by configure.
|
||||
(${DSTDIR}/charprop.el, charprop.el): Update for srcdir not absolute.
|
||||
(clean): Delete all .elc files.
|
||||
(bootstrap-clean): New rule.
|
||||
|
||||
2013-10-23 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* unidata/Makefile.in (emacs, ${DSTDIR}/charprop.el):
|
||||
Quote entities that might contain whitespace.
|
||||
|
||||
2013-10-07 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Improve support for popcount and counting trailing zeros (Bug#15550).
|
||||
* merge-gnulib (GNULIB_MODULES): Add count-one-bits
|
||||
and count-trailing-zeros.
|
||||
|
||||
2013-10-04 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Use hardware support for byteswapping on glibc x86 etc.
|
||||
* merge-gnulib (GNULIB_MODULES): Add byteswap.
|
||||
|
||||
2013-08-28 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* unidata/Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
|
||||
for portability to hosts where /bin/sh has problems.
|
||||
|
||||
2013-08-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (manual-misc-manuals): Use INFO_COMMON rather than
|
||||
INFO_TARGETS. "faq" does not need special treatment any more.
|
||||
|
||||
2013-08-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* make-tarball.txt: Mention generating pdfs in etc/refcards.
|
||||
|
||||
2013-08-15 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* notes/hydra: More information about Hydra.
|
||||
|
||||
2013-08-10 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* notes/hydra: New file.
|
||||
|
||||
2013-08-04 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Fix some minor races in hosts lacking mkostemp (Bug#15015).
|
||||
* merge-gnulib (GNULIB_MODULES): Add mkostemp.
|
||||
|
||||
2013-07-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (manual-style-string): Use non-abbreviated url.
|
||||
|
||||
2013-07-09 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Port recent close-on-exec changes to Cygwin (Bug#14821).
|
||||
* merge-gnulib (GNULIB_TOOL_FLAGS): Don't avoid binary-io.
|
||||
|
||||
Handle error numbers a bit more reliably.
|
||||
* merge-gnulib (GNULIB_MODULES): Remove ignore-value.
|
||||
|
||||
2013-07-07 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Make file descriptors close-on-exec when possible (Bug#14803).
|
||||
* merge-gnulib (GNULIB_MODULES): Add fcntl, pipe2.
|
||||
(GNULIB_TOOL_FLAGS): Avoid binary-io, close. Do not avoid fcntl.
|
||||
|
||||
2013-07-06 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (manual-misc-manuals): New function.
|
||||
(make-manuals): Avoid hard-coding list of misc manuals.
|
||||
Add the option to only make certain type(s) of output.
|
||||
(manual-misc-html): Special-case ccmode and efaq.
|
||||
(manual-html-mono, manual-html-node, manual-pdf, manual-ps):
|
||||
Move creation of output directory here from make-manuals.
|
||||
(manual-html-fix-index-2): Avoid dynamic reference to `f'.
|
||||
|
||||
2013-07-05 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (make-manuals): Use a standard location for lispintro.
|
||||
Use a pdf/ subdirectory for pdf versions.
|
||||
|
||||
2013-06-29 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (make-manuals): Don't bother with txt or dvi any more.
|
||||
(manual-txt): Remove.
|
||||
(manual-pdf): Doc fix.
|
||||
(manual-ps): Rename from manual-dvi.
|
||||
(manual-pdf, manual-ps): Work in the directory with the texi file,
|
||||
so that TeX intermediate files go there rather than to PWD.
|
||||
|
||||
2013-06-15 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* notes/changelogs: Mention trivial changes in Change Log.
|
||||
|
||||
2013-06-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (manual-style-string): Use new file manual.css.
|
||||
|
||||
2013-06-02 Eric Ludlam <zappo@gnu.org>
|
||||
|
||||
* grammars/srecode-template.wy (variable): Accept a single number
|
||||
as a variable value. Allows the 'priority' to be set to a number.
|
||||
(wisent-srecode-template-lexer): Move number up so it can be created.
|
||||
|
||||
2013-05-16 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cus-test.el (cus-test-cus-load-groups): New function.
|
||||
(cus-test-get-options): Add option to return groups.
|
||||
(cus-test-noloads): Also check custom groups.
|
||||
|
||||
2013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* quick-install-emacs: Don't prune DOC-* files a any more.
|
||||
|
||||
2013-05-14 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cus-test.el (cus-test-get-lisp-files): Ignore obsolete/.
|
||||
(cus-test-libs): Fix let-binding of default-directory.
|
||||
(cus-test-noloads): Load all libs for the comparison.
|
||||
|
||||
2013-05-11 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cus-test.el (cus-test-libs-noloads): Add a few more files.
|
||||
(cus-test-load-libs, cus-test-opts):
|
||||
Add option to load more/all Lisp files.
|
||||
(cus-test-get-lisp-files): Ignore .*.el files.
|
||||
|
||||
2013-05-10 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cus-test.el (cus-test-libs-noloads): Add some files.
|
||||
(cus-test-get-lisp-files): New function.
|
||||
(cus-test-libs): Add option to load more/all Lisp files.
|
||||
|
||||
2013-05-09 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cus-test.el: No need to provide bbdb, bbdb-com any more.
|
||||
(cus-test-libs-noloads): Add dunnet in the defvar.
|
||||
(dunnet): Don't always load it.
|
||||
(viper-mode): Only set if interactive.
|
||||
(cus-test-load-custom-loads): Load dunnet if necessary.
|
||||
(cus-test-load-1): New macro, with common code from cus-test-load-libs
|
||||
and cus-test-libs.
|
||||
(cus-test-load-libs, cus-test-libs): Use cus-test-load-1 macro.
|
||||
Update for cus-test-get-autoload-deps changed result.
|
||||
(cus-test-get-autoload-deps): Simplify. Return file names as they
|
||||
appear in loaddefs.el (directory parts are needed now that not all
|
||||
lisp subdirs are in load-path).
|
||||
(cus-test-deps): Explicitly skip dunnet.
|
||||
|
||||
2013-05-07 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
|
||||
* merge-gnulib (GNULIB_MODULES): Add qacl.
|
||||
(GNULIB_TOOL_FLAGS): Do not avoid errno.
|
||||
|
||||
2013-04-01 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Use UTF-8 for most files with non-ASCII characters (Bug#13936).
|
||||
* notes/unicode (etc/tutorials/TUTORIAL.ko, leim/quail/hanja.el)
|
||||
(leim/quail/hanja3.el, leim/quail/symbol-ksc.el):
|
||||
Now utf-8, not iso-2022-7bit. Also, files that contain non-UTF-8
|
||||
characters are now encoded in utf-8-emacs, not iso-2022-7bit.
|
||||
|
||||
2013-03-18 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* notes/unicode: Mention some more iso-2022-7bit files (Bug#13936).
|
||||
|
||||
Automate the build of ja-dic.el (Bug#13984).
|
||||
* notes/unicode: ja-dic.el is now UTF-8.
|
||||
|
||||
2013-03-16 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (manual-pdf, manual-dvi): Pass -I to texi2pdf, texi2dvi.
|
||||
|
||||
2013-03-16 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (manual-html-mono, manual-html-node): Add -DWWW_GNU_ORG.
|
||||
|
||||
2013-03-13 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
File synchronization fixes (Bug#13944).
|
||||
* CPP-DEFINES (BSD_SYSTEM, HAVE_FSYNC): Remove.
|
||||
* merge-gnulib (GNULIB_MODULES): Add fsync, fdatasync.
|
||||
|
||||
2013-03-11 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* notes/unicode: Improve notes about Emacs source file encoding.
|
||||
|
||||
2013-03-11 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (make-manuals): Add emacs-lisp-intro and some more
|
||||
doc/misc manuals.
|
||||
(manual-html-mono, manual-html-node, manual-txt):
|
||||
Pass -I to makeinfo.
|
||||
|
||||
2013-03-10 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (add-release-logs): Use UTC for release date.
|
||||
|
||||
2013-03-09 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (add-release-logs): Provide interactive defaults.
|
||||
Allow specification of the release date. Don't exclude gnus/.
|
||||
|
||||
2013-03-05 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* notes/unicode: Add notes about Emacs source file encoding.
|
||||
|
||||
2013-03-04 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* grammars/java-tags.wy (CHAR): Remove "('\u0000' to '\uffff')"
|
||||
from summary, as this causes javat-wy.el to contain both a null byte
|
||||
and a byte sequence that is not valid UTF-8, which is inconvenient.
|
||||
|
||||
2013-03-03 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* bzrmerge.el (bzrmerge-apply): Omit Latin-1 char from diagnostic.
|
||||
If there were a real need, it should be UTF-8 anyway.
|
||||
|
||||
2013-02-25 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Simplify data_start configuration (Bug#13783).
|
||||
|
|
@ -29,7 +466,7 @@
|
|||
|
||||
2012-12-14 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Fix permissions bugs with setgid directories etc. (Bug#13125)
|
||||
Fix permissions bugs with setgid directories etc. (Bug#13125)
|
||||
* CPP-DEFINES (BSD4_2): Remove.
|
||||
|
||||
2012-12-08 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
|
@ -145,10 +582,10 @@
|
|||
(cusver-scan): Check if containing group has a :version.
|
||||
(cusver-check): Add VERSION argument.
|
||||
|
||||
2012-10-01 David Engster <deng@randomsample.de>
|
||||
2012-10-06 David Engster <deng@randomsample.de>
|
||||
|
||||
* grammars/bovine-grammar.el:
|
||||
* grammars/wisent-grammar.el: Move to lisp directory.
|
||||
* grammars/wisent-grammar.el: Move to lisp/cedet/semantic directory.
|
||||
|
||||
2012-10-01 David Engster <deng@randomsample.de>
|
||||
|
||||
|
|
@ -161,7 +598,7 @@
|
|||
|
||||
* grammars/grammar.wy (semantic-grammar-lexer): Remove, since it
|
||||
was copied to grammar.el. New %provide token to generate prefix
|
||||
which conforms with Emacs conventions. Remove lexer definition,
|
||||
which conforms with Emacs conventions. Remove lexer definition,
|
||||
which is now in grammar.el.
|
||||
|
||||
2012-09-27 Glenn Morris <rgm@gnu.org>
|
||||
|
|
@ -607,6 +1044,10 @@
|
|||
|
||||
* notes/bugtracker (bugtracker_debbugs_url): Fix typo.
|
||||
|
||||
2011-02-20 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* notes/copyright: Remove src/md5.c and src/md5.h as special cases.
|
||||
|
||||
2011-02-19 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* admin.el (set-version): Add msdos/sed2v2.inp.
|
||||
|
|
@ -616,6 +1057,7 @@
|
|||
Remove no-longer needed getloadavg symbols.
|
||||
* CPP-DEFINES (LOAD_AVE_CVT, LOAD_AVE_TYPE, FSCALE, KERNEL_FILE):
|
||||
(LDAV_SYMBOL): Remove.
|
||||
* notes/copyright: Remove src/getloadavg.c as a special case.
|
||||
|
||||
2011-02-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
|
|
@ -1138,7 +1580,7 @@
|
|||
Sub-directory `unidata' is for codes to generate charprop.el and
|
||||
many other uni-*.el files from `UnicodeData.txt'.
|
||||
|
||||
* Unidata/README: New file.
|
||||
* unidata/README: New file.
|
||||
|
||||
* unidata/Makefile: New file.
|
||||
|
||||
|
|
@ -1564,8 +2006,6 @@
|
|||
emacs.exe before zipping, and including batch file to recreate
|
||||
after unpacking.
|
||||
|
||||
* nt/stitch.bat: New file.
|
||||
|
||||
* nt/README-ftp-server: Update wording and version number etc.
|
||||
Add extra instructions for installing multi-file .zip
|
||||
distribution.
|
||||
|
|
@ -1685,7 +2125,7 @@
|
|||
|
||||
2001-09-04 Andrew Innes <andrewi@gnu.org>
|
||||
|
||||
* admin/nt/makedist.bat: Remove reference to obsolete file
|
||||
* nt/makedist.bat: Remove reference to obsolete file
|
||||
GETTING.GNU.SOFTWARE. Remove outdated comments. Explain about
|
||||
version of tar used.
|
||||
|
||||
|
|
@ -1693,7 +2133,7 @@
|
|||
;; coding: utf-8
|
||||
;; End:
|
||||
|
||||
Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,13 @@ Tasks needed before the next release.
|
|||
|
||||
* TO BE DONE SHORTLY BEFORE RELEASE
|
||||
|
||||
** Either update, test, and support the old w32 build method, or remove it.
|
||||
|
||||
** Manuals
|
||||
Check for node names using problematic characters:
|
||||
find doc -name '*.texi' -exec grep '^@node[^,]*[:.()]' {} +
|
||||
Sadly makeinfo does not warn about such characters.
|
||||
|
||||
Check cross-references between the manuals (eg from emacs to elisp)
|
||||
are correct. You can use something like the following in the info
|
||||
directory in the Emacs build tree:
|
||||
|
|
@ -10,6 +16,28 @@ directory in the Emacs build tree:
|
|||
emacs -Q --eval "(progn (require 'info) (setq Info-directory-list '(\".\")))" \
|
||||
-f info-xref-check-all
|
||||
|
||||
Setting Info-directory-list avoids having system info pages confuse
|
||||
things. References to external manuals will be flagged as
|
||||
uncheckable. You should still check these, and also that each
|
||||
external manual has an appropriate redirect in the file manual/.htaccess
|
||||
in the web pages repository. E.g.:
|
||||
Redirect /software/emacs/manual/html_mono/automake.html /software/automake/manual/automake.html
|
||||
Redirect /software/emacs/manual/html_node/automake/ /software/automake/manual/html_node/
|
||||
|
||||
Another tool you can use to check links is gnu.org's linc.py:
|
||||
http://www.gnu.org/server/source/
|
||||
|
||||
You run this something like:
|
||||
|
||||
cd /path/to/cvs/emacs-www
|
||||
linc.py -o /path/to/output-dir --url http://www.gnu.org/software/emacs/ .
|
||||
|
||||
Be warned that it is really, really slow (as in, can take ~ a full day
|
||||
to check the manual/ directory). It is probably best to run it on a
|
||||
single directory at a time from eg manual/html_node. It is very
|
||||
inefficient, but may reveal a few things that info-xref does not.
|
||||
|
||||
|
||||
make emacs.dvi, elisp.dvi, and deal with any errors (undefined
|
||||
references etc) in the output. Break any overfull lines.
|
||||
Underfull hboxes are not serious, but it can be nice to get rid of
|
||||
|
|
@ -42,7 +70,6 @@ I think this is different to what you get if you just use eg `make
|
|||
emacs.pdf' (e.g., enable "smallbook").
|
||||
|
||||
** Check the keybindings in the refcards are correct, and add any new ones.
|
||||
Regenerate the pdf versions in etc/refcards/.
|
||||
What paper size are the English versions supposed to be on?
|
||||
On Debian testing, the packages texlive-lang-czechslovak and
|
||||
texlive-lang-polish will let you generate the cs-* and sk-* pdfs.
|
||||
|
|
@ -112,7 +139,7 @@ SECTION READERS
|
|||
----------------------------------
|
||||
TUTORIAL cyd
|
||||
TUTORIAL.bg ogi
|
||||
TUTORIAL.cn
|
||||
TUTORIAL.cn xfq
|
||||
TUTORIAL.cs
|
||||
TUTORIAL.de wl
|
||||
TUTORIAL.eo
|
||||
|
|
@ -120,7 +147,7 @@ TUTORIAL.es
|
|||
TUTORIAL.fr
|
||||
TUTORIAL.he eliz
|
||||
TUTORIAL.it
|
||||
TUTORIAL.ja
|
||||
TUTORIAL.ja
|
||||
TUTORIAL.ko
|
||||
TUTORIAL.nl Pieter Schoenmakers
|
||||
TUTORIAL.pl
|
||||
|
|
@ -191,7 +218,6 @@ xresources.texi cyd
|
|||
** Check the Lisp manual.
|
||||
|
||||
abbrevs.texi rgm
|
||||
advice.texi cyd
|
||||
anti.texi rgm
|
||||
back.texi rgm
|
||||
backups.texi cyd
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
|
|
|
|||
544
admin/admin.el
544
admin/admin.el
|
|
@ -1,6 +1,6 @@
|
|||
;;; admin.el --- utilities for Emacs administration
|
||||
|
||||
;; Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -21,46 +21,64 @@
|
|||
|
||||
;; add-release-logs Add ``Version X released'' change log entries.
|
||||
;; set-version Change Emacs version number in source tree.
|
||||
;; set-copyright Change emacs short copyright string (eg as
|
||||
;; set-copyright Change Emacs short copyright string (eg as
|
||||
;; printed by --version) in source tree.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defvar add-log-time-format) ; in add-log
|
||||
|
||||
(defun add-release-logs (root version)
|
||||
;; Does this information need to be in every ChangeLog, as opposed to
|
||||
;; just the top-level one? Only if you allow changes the same
|
||||
;; day as the release.
|
||||
;; http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00161.html
|
||||
(defun add-release-logs (root version &optional date)
|
||||
"Add \"Version VERSION released.\" change log entries in ROOT.
|
||||
Root must be the root of an Emacs source tree."
|
||||
(interactive "DEmacs root directory: \nNVersion number: ")
|
||||
Root must be the root of an Emacs source tree.
|
||||
Optional argument DATE is the release date, default today."
|
||||
(interactive (list (read-directory-name "Emacs root directory: ")
|
||||
(read-string "Version number: "
|
||||
(format "%s.%s" emacs-major-version
|
||||
emacs-minor-version))
|
||||
(read-string "Release date: "
|
||||
(progn (require 'add-log)
|
||||
(let ((add-log-time-zone-rule t))
|
||||
(funcall add-log-time-format))))))
|
||||
(setq root (expand-file-name root))
|
||||
(unless (file-exists-p (expand-file-name "src/emacs.c" root))
|
||||
(error "%s doesn't seem to be the root of an Emacs source tree" root))
|
||||
(user-error "%s doesn't seem to be the root of an Emacs source tree" root))
|
||||
(require 'add-log)
|
||||
(or date (setq date (let ((add-log-time-zone-rule t))
|
||||
(funcall add-log-time-format))))
|
||||
(let* ((logs (process-lines "find" root "-name" "ChangeLog"))
|
||||
(entry (format "%s %s <%s>\n\n\t* Version %s released.\n\n"
|
||||
(funcall add-log-time-format)
|
||||
date
|
||||
(or add-log-full-name (user-full-name))
|
||||
(or add-log-mailing-address user-mail-address)
|
||||
version)))
|
||||
(dolist (log logs)
|
||||
(unless (string-match "/gnus/" log)
|
||||
(find-file log)
|
||||
(goto-char (point-min))
|
||||
(insert entry)))))
|
||||
(find-file log)
|
||||
(goto-char (point-min))
|
||||
(insert entry))))
|
||||
|
||||
(defun set-version-in-file (root file version rx)
|
||||
"Subroutine of `set-version' and `set-copyright'."
|
||||
(find-file (expand-file-name file root))
|
||||
(goto-char (point-min))
|
||||
(unless (re-search-forward rx nil t)
|
||||
(error "Version not found in %s" file))
|
||||
(unless (re-search-forward rx nil :noerror)
|
||||
(user-error "Version not found in %s" file))
|
||||
(replace-match (format "%s" version) nil nil nil 1))
|
||||
|
||||
;; TODO report the progress
|
||||
(defun set-version (root version)
|
||||
"Set Emacs version to VERSION in relevant files under ROOT.
|
||||
Root must be the root of an Emacs source tree."
|
||||
(interactive "DEmacs root directory: \nsVersion number: ")
|
||||
(unless (file-exists-p (expand-file-name "src/emacs.c" root))
|
||||
(error "%s doesn't seem to be the root of an Emacs source tree" root))
|
||||
(user-error "%s doesn't seem to be the root of an Emacs source tree" root))
|
||||
;; There's also a "version 3" (standing for GPLv3) at the end of
|
||||
;; `README', but since `set-version-in-file' only replaces the first
|
||||
;; occurrence, it won't be replaced.
|
||||
(set-version-in-file root "README" version
|
||||
(rx (and "version" (1+ space)
|
||||
(submatch (1+ (in "0-9."))))))
|
||||
|
|
@ -91,7 +109,7 @@ Root must be the root of an Emacs source tree."
|
|||
;; in two places those commas are followed by space, in two other
|
||||
;; places they are not.
|
||||
(let* ((version-components (append (split-string version "\\.")
|
||||
'("0" "0")))
|
||||
'("0" "0")))
|
||||
(comma-version
|
||||
(concat (car version-components) ","
|
||||
(cadr version-components) ","
|
||||
|
|
@ -144,6 +162,7 @@ Root must be the root of an Emacs source tree."
|
|||
|
||||
|
||||
;; Note this makes some assumptions about form of short copyright.
|
||||
;; TODO report the progress
|
||||
(defun set-copyright (root copyright)
|
||||
"Set Emacs short copyright to COPYRIGHT in relevant files under ROOT.
|
||||
Root must be the root of an Emacs source tree."
|
||||
|
|
@ -154,7 +173,7 @@ Root must be the root of an Emacs source tree."
|
|||
(format "Copyright (C) %s Free Software Foundation, Inc."
|
||||
(format-time-string "%Y")))))
|
||||
(unless (file-exists-p (expand-file-name "src/emacs.c" root))
|
||||
(error "%s doesn't seem to be the root of an Emacs source tree" root))
|
||||
(user-error "%s doesn't seem to be the root of an Emacs source tree" root))
|
||||
(set-version-in-file root "configure.ac" copyright
|
||||
(rx (and bol "copyright" (0+ (not (in ?\")))
|
||||
?\" (submatch (1+ (not (in ?\")))) ?\")))
|
||||
|
|
@ -180,54 +199,87 @@ Root must be the root of an Emacs source tree."
|
|||
|
||||
;;; Various bits of magic for generating the web manuals
|
||||
|
||||
(defun make-manuals (root)
|
||||
"Generate the web manuals for the Emacs webpage."
|
||||
(interactive "DEmacs root directory: ")
|
||||
(defun manual-misc-manuals (root)
|
||||
"Return doc/misc manuals as list of strings.
|
||||
ROOT should be the root of an Emacs source tree."
|
||||
;; Similar to `make -C doc/misc echo-info', but works if unconfigured,
|
||||
;; and for INFO_TARGETS rather than INFO_INSTALL.
|
||||
(with-temp-buffer
|
||||
(insert-file-contents (expand-file-name "doc/misc/Makefile.in" root))
|
||||
;; Should really use expanded value of INFO_TARGETS.
|
||||
(search-forward "INFO_COMMON = ")
|
||||
(let ((start (point)))
|
||||
(end-of-line)
|
||||
(while (and (looking-back "\\\\")
|
||||
(zerop (forward-line 1)))
|
||||
(end-of-line))
|
||||
(append (split-string (replace-regexp-in-string
|
||||
"\\(\\\\\\|\\.info\\)" ""
|
||||
(buffer-substring start (point))))
|
||||
'("efaq-w32")))))
|
||||
|
||||
;; TODO report the progress
|
||||
(defun make-manuals (root &optional type)
|
||||
"Generate the web manuals for the Emacs webpage.
|
||||
ROOT should be the root of an Emacs source tree.
|
||||
Interactively with a prefix argument, prompt for TYPE.
|
||||
Optional argument TYPE is type of output (nil means all)."
|
||||
(interactive (let ((root (read-directory-name "Emacs root directory: "
|
||||
source-directory nil t)))
|
||||
(list root
|
||||
(if current-prefix-arg
|
||||
(completing-read
|
||||
"Type: "
|
||||
(append
|
||||
'("misc" "pdf" "ps")
|
||||
(let (res)
|
||||
(dolist (i '("emacs" "elisp" "eintr") res)
|
||||
(dolist (j '("" "-mono" "-node" "-ps" "-pdf"))
|
||||
(push (concat i j) res))))
|
||||
(manual-misc-manuals root)))))))
|
||||
(let* ((dest (expand-file-name "manual" root))
|
||||
(html-node-dir (expand-file-name "html_node" dest))
|
||||
(html-mono-dir (expand-file-name "html_mono" dest))
|
||||
(txt-dir (expand-file-name "text" dest))
|
||||
(dvi-dir (expand-file-name "dvi" dest))
|
||||
(ps-dir (expand-file-name "ps" dest)))
|
||||
(ps-dir (expand-file-name "ps" dest))
|
||||
(pdf-dir (expand-file-name "pdf" dest))
|
||||
(emacs (expand-file-name "doc/emacs/emacs.texi" root))
|
||||
(elisp (expand-file-name "doc/lispref/elisp.texi" root))
|
||||
(eintr (expand-file-name "doc/lispintro/emacs-lisp-intro.texi" root))
|
||||
(misc (manual-misc-manuals root)))
|
||||
;; TODO this makes it non-continuable.
|
||||
;; Instead, delete the individual dest directory each time.
|
||||
(when (file-directory-p dest)
|
||||
(if (y-or-n-p (format "Directory %s exists, delete it first?" dest))
|
||||
(if (y-or-n-p (format "Directory %s exists, delete it first? " dest))
|
||||
(delete-directory dest t)
|
||||
(error "Aborted")))
|
||||
(make-directory dest)
|
||||
(make-directory html-node-dir)
|
||||
(make-directory html-mono-dir)
|
||||
(make-directory txt-dir)
|
||||
(make-directory dvi-dir)
|
||||
(make-directory ps-dir)
|
||||
;; Emacs manual
|
||||
(let ((texi (expand-file-name "doc/emacs/emacs.texi" root)))
|
||||
(manual-html-node texi (expand-file-name "emacs" html-node-dir))
|
||||
(manual-html-mono texi (expand-file-name "emacs.html" html-mono-dir))
|
||||
(manual-txt texi (expand-file-name "emacs.txt" txt-dir))
|
||||
(manual-pdf texi (expand-file-name "emacs.pdf" dest))
|
||||
(manual-dvi texi (expand-file-name "emacs.dvi" dvi-dir)
|
||||
(expand-file-name "emacs.ps" ps-dir)))
|
||||
;; Lisp manual
|
||||
(let ((texi (expand-file-name "doc/lispref/elisp.texi" root)))
|
||||
(manual-html-node texi (expand-file-name "elisp" html-node-dir))
|
||||
(manual-html-mono texi (expand-file-name "elisp.html" html-mono-dir))
|
||||
(manual-txt texi (expand-file-name "elisp.txt" txt-dir))
|
||||
(manual-pdf texi (expand-file-name "elisp.pdf" dest))
|
||||
(manual-dvi texi (expand-file-name "elisp.dvi" dvi-dir)
|
||||
(expand-file-name "elisp.ps" ps-dir)))
|
||||
(user-error "Aborted")))
|
||||
(if (member type '(nil "emacs" "emacs-node"))
|
||||
(manual-html-node emacs (expand-file-name "emacs" html-node-dir)))
|
||||
(if (member type '(nil "emacs" "emacs-mono"))
|
||||
(manual-html-mono emacs (expand-file-name "emacs.html" html-mono-dir)))
|
||||
(if (member type '(nil "emacs" "emacs-pdf" "pdf"))
|
||||
(manual-pdf emacs (expand-file-name "emacs.pdf" pdf-dir)))
|
||||
(if (member type '(nil "emacs" "emacs-ps" "ps"))
|
||||
(manual-ps emacs (expand-file-name "emacs.ps" ps-dir)))
|
||||
(if (member type '(nil "elisp" "elisp-node"))
|
||||
(manual-html-node elisp (expand-file-name "elisp" html-node-dir)))
|
||||
(if (member type '(nil "elisp" "elisp-mono"))
|
||||
(manual-html-mono elisp (expand-file-name "elisp.html" html-mono-dir)))
|
||||
(if (member type '(nil "elisp" "elisp-pdf" "pdf"))
|
||||
(manual-pdf elisp (expand-file-name "elisp.pdf" pdf-dir)))
|
||||
(if (member type '(nil "elisp" "elisp-ps" "ps"))
|
||||
(manual-ps elisp (expand-file-name "elisp.ps" ps-dir)))
|
||||
(if (member type '(nil "eintr" "eintr-node"))
|
||||
(manual-html-node eintr (expand-file-name "eintr" html-node-dir)))
|
||||
(if (member type '(nil "eintr" "eintr-node"))
|
||||
(manual-html-mono eintr (expand-file-name "eintr.html" html-mono-dir)))
|
||||
(if (member type '(nil "eintr" "eintr-pdf" "pdf"))
|
||||
(manual-pdf eintr (expand-file-name "eintr.pdf" pdf-dir)))
|
||||
(if (member type '(nil "eintr" "eintr-ps" "ps"))
|
||||
(manual-ps eintr (expand-file-name "eintr.ps" ps-dir)))
|
||||
;; Misc manuals
|
||||
(let ((manuals '("ada-mode" "auth" "autotype" "calc" "cc-mode"
|
||||
"cl" "dbus" "dired-x" "ebrowse" "ede" "ediff"
|
||||
"edt" "eieio" "emacs-mime" "epa" "erc" "ert"
|
||||
"eshell" "eudc" "faq" "flymake" "forms"
|
||||
"gnus" "emacs-gnutls" "idlwave" "info"
|
||||
"mairix-el" "message" "mh-e" "newsticker"
|
||||
"nxml-mode" "org" "pcl-cvs" "pgg" "rcirc"
|
||||
"remember" "reftex" "sasl" "sc" "semantic"
|
||||
"ses" "sieve" "smtpmail" "speedbar" "tramp"
|
||||
"url" "vip" "viper" "widget" "woman")))
|
||||
(dolist (manual manuals)
|
||||
(manual-misc-html manual root html-node-dir html-mono-dir)))
|
||||
(dolist (manual misc)
|
||||
(if (member type `(nil ,manual "misc"))
|
||||
(manual-misc-html manual root html-node-dir html-mono-dir)))
|
||||
(message "Manuals created in %s" dest)))
|
||||
|
||||
(defconst manual-doctype-string
|
||||
|
|
@ -242,10 +294,14 @@ Root must be the root of an Emacs source tree."
|
|||
<meta name=\"DC.title\" content=\"gnu.org\">\n\n")
|
||||
|
||||
(defconst manual-style-string "<style type=\"text/css\">
|
||||
@import url('/style.css');\n</style>\n")
|
||||
@import url('/software/emacs/manual.css');\n</style>\n")
|
||||
|
||||
(defun manual-misc-html (name root html-node-dir html-mono-dir)
|
||||
(let ((texi (expand-file-name (format "doc/misc/%s.texi" name) root)))
|
||||
;; Hack to deal with the cases where .texi creates a different .info.
|
||||
;; Blech. TODO Why not just rename the .texi (or .info) files?
|
||||
(let* ((texiname (cond ((equal name "ccmode") "cc-mode")
|
||||
(t name)))
|
||||
(texi (expand-file-name (format "doc/misc/%s.texi" texiname) root)))
|
||||
(manual-html-node texi (expand-file-name name html-node-dir))
|
||||
(manual-html-mono texi (expand-file-name (concat name ".html")
|
||||
html-mono-dir))))
|
||||
|
|
@ -255,7 +311,13 @@ Root must be the root of an Emacs source tree."
|
|||
This function also edits the HTML files so that they validate as
|
||||
HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using
|
||||
the @import directive."
|
||||
(make-directory (or (file-name-directory dest) ".") t)
|
||||
(call-process "makeinfo" nil nil nil
|
||||
"-D" "WWW_GNU_ORG"
|
||||
"-I" (expand-file-name "../emacs"
|
||||
(file-name-directory texi-file))
|
||||
"-I" (expand-file-name "../misc"
|
||||
(file-name-directory texi-file))
|
||||
"--html" "--no-split" texi-file "-o" dest)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents dest)
|
||||
|
|
@ -266,6 +328,7 @@ the @import directive."
|
|||
(manual-html-fix-node-div)
|
||||
(goto-char (point-max))
|
||||
(re-search-backward "</body>[\n \t]*</html>")
|
||||
;; Close the div id="content" that fix-index-1 added.
|
||||
(insert "</div>\n\n")
|
||||
(save-buffer)))
|
||||
|
||||
|
|
@ -275,8 +338,14 @@ This function also edits the HTML files so that they validate as
|
|||
HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using
|
||||
the @import directive."
|
||||
(unless (file-exists-p texi-file)
|
||||
(error "Manual file %s not found" texi-file))
|
||||
(user-error "Manual file %s not found" texi-file))
|
||||
(make-directory dir t)
|
||||
(call-process "makeinfo" nil nil nil
|
||||
"-D" "WWW_GNU_ORG"
|
||||
"-I" (expand-file-name "../emacs"
|
||||
(file-name-directory texi-file))
|
||||
"-I" (expand-file-name "../misc"
|
||||
(file-name-directory texi-file))
|
||||
"--html" texi-file "-o" dir)
|
||||
;; Loop through the node files, fixing them up.
|
||||
(dolist (f (directory-files dir nil "\\.html\\'"))
|
||||
|
|
@ -300,143 +369,244 @@ the @import directive."
|
|||
(manual-html-fix-index-2)
|
||||
(if copyright-text
|
||||
(insert copyright-text))
|
||||
;; Close the div id="content" that fix-index-1 added.
|
||||
(insert "\n</div>\n"))
|
||||
;; For normal nodes, give the header div a blue bg.
|
||||
(manual-html-fix-node-div))
|
||||
(manual-html-fix-node-div t))
|
||||
(save-buffer))))))
|
||||
|
||||
(defun manual-txt (texi-file dest)
|
||||
"Run Makeinfo on TEXI-FILE, emitting plaintext output to DEST."
|
||||
(call-process "makeinfo" nil nil nil
|
||||
"--plaintext" "--no-split" texi-file "-o" dest)
|
||||
(shell-command (concat "gzip -c " dest " > " (concat dest ".gz"))))
|
||||
|
||||
(defun manual-pdf (texi-file dest)
|
||||
"Run texi2pdf on TEXI-FILE, emitting plaintext output to DEST."
|
||||
(call-process "texi2pdf" nil nil nil texi-file "-o" dest))
|
||||
"Run texi2pdf on TEXI-FILE, emitting PDF output to DEST."
|
||||
(make-directory (or (file-name-directory dest) ".") t)
|
||||
(let ((default-directory (file-name-directory texi-file)))
|
||||
(call-process "texi2pdf" nil nil nil
|
||||
"-I" "../emacs" "-I" "../misc"
|
||||
texi-file "-o" dest)))
|
||||
|
||||
(defun manual-dvi (texi-file dest ps-dest)
|
||||
"Run texi2dvi on TEXI-FILE, emitting dvi output to DEST.
|
||||
Also generate PostScript output in PS-DEST."
|
||||
(call-process "texi2dvi" nil nil nil texi-file "-o" dest)
|
||||
(call-process "dvips" nil nil nil dest "-o" ps-dest)
|
||||
(call-process "gzip" nil nil nil dest)
|
||||
(call-process "gzip" nil nil nil ps-dest))
|
||||
(defun manual-ps (texi-file dest)
|
||||
"Generate a PostScript version of TEXI-FILE as DEST."
|
||||
(make-directory (or (file-name-directory dest) ".") t)
|
||||
(let ((dvi-dest (concat (file-name-sans-extension dest) ".dvi"))
|
||||
(default-directory (file-name-directory texi-file)))
|
||||
;; FIXME: Use `texi2dvi --ps'? --xfq
|
||||
(call-process "texi2dvi" nil nil nil
|
||||
"-I" "../emacs" "-I" "../misc"
|
||||
texi-file "-o" dvi-dest)
|
||||
(call-process "dvips" nil nil nil dvi-dest "-o" dest)
|
||||
(delete-file dvi-dest)
|
||||
(call-process "gzip" nil nil nil dest)))
|
||||
|
||||
(defun manual-html-fix-headers ()
|
||||
"Fix up HTML headers for the Emacs manual in the current buffer."
|
||||
(let (opoint)
|
||||
(insert manual-doctype-string)
|
||||
(let ((texi5 (search-forward "<!DOCTYPE" nil t))
|
||||
opoint)
|
||||
;; Texinfo 5 supplies a DOCTYPE.
|
||||
(or texi5
|
||||
(insert manual-doctype-string))
|
||||
(search-forward "<head>\n")
|
||||
(insert manual-meta-string)
|
||||
(search-forward "<meta")
|
||||
(setq opoint (match-beginning 0))
|
||||
(re-search-forward "<!--")
|
||||
(unless texi5
|
||||
(search-forward "<!--")
|
||||
(goto-char (match-beginning 0))
|
||||
(delete-region opoint (point))
|
||||
(search-forward "<meta http-equiv=\"Content-Style")
|
||||
(setq opoint (match-beginning 0)))
|
||||
(search-forward "</head>")
|
||||
(goto-char (match-beginning 0))
|
||||
(delete-region opoint (point))
|
||||
(insert manual-style-string)
|
||||
(search-forward "<meta http-equiv=\"Content-Style")
|
||||
(setq opoint (match-beginning 0))
|
||||
(search-forward "</head>")
|
||||
(delete-region opoint (match-beginning 0))))
|
||||
|
||||
(defun manual-html-fix-node-div ()
|
||||
"Fix up HTML \"node\" divs in the current buffer."
|
||||
(let (opoint div-end)
|
||||
(while (search-forward "<div class=\"node\">" nil t)
|
||||
(replace-match
|
||||
"<div class=\"node\" style=\"background-color:#DDDDFF\">"
|
||||
t t)
|
||||
;; Remove Texinfo 5 hard-coding bgcolor, text, link, vlink, alink.
|
||||
(when (re-search-forward "<body lang=\"[^\"]+\"" nil t)
|
||||
(setq opoint (point))
|
||||
(re-search-forward "</div>")
|
||||
(setq div-end (match-beginning 0))
|
||||
(goto-char opoint)
|
||||
(if (search-forward "<hr>" div-end 'move)
|
||||
(replace-match "" t t)))))
|
||||
(search-forward ">")
|
||||
(if (> (point) (1+ opoint))
|
||||
(delete-region opoint (1- (point))))
|
||||
(search-backward "</head"))))
|
||||
|
||||
;; Texinfo 5 changed these from class = "node" to "header", yay.
|
||||
(defun manual-html-fix-node-div (&optional split)
|
||||
"Fix up HTML \"node\" divs in the current buffer."
|
||||
(let (opoint div-end type)
|
||||
(while (re-search-forward "<div class=\"\\(node\\|header\\)\"\\(>\\)" nil t)
|
||||
(setq type (match-string 1))
|
||||
;; NB it is this that makes the bg of non-header cells in the
|
||||
;; index tables be blue. Is that intended?
|
||||
;; Also, if you don't remove the <hr>, the color of the first
|
||||
;; row in the table will be wrong.
|
||||
;; This all seems rather odd to me...
|
||||
(replace-match " style=\"background-color:#DDDDFF\">" t t nil 2)
|
||||
(setq opoint (point))
|
||||
(when (or split (equal type "node"))
|
||||
;; In Texinfo 4, the <hr> (and anchor) comes after the <div>.
|
||||
(re-search-forward "</div>")
|
||||
(setq div-end (if (equal type "node")
|
||||
(match-beginning 0)
|
||||
(line-end-position 2)))
|
||||
(goto-char opoint)
|
||||
(if (search-forward "<hr>" div-end 'move)
|
||||
(replace-match "" t t)
|
||||
(if split (forward-line -1))))
|
||||
;; In Texinfo 5, the <hr> (and anchor) comes before the <div> (?).
|
||||
;; Except in split output, where it comes on the line after
|
||||
;; the <div>. But only sometimes. I have no clue what the
|
||||
;; logic of where it goes is.
|
||||
(when (equal type "header")
|
||||
(goto-char opoint)
|
||||
(when (re-search-backward "^<hr>$" (line-beginning-position -3) t)
|
||||
(replace-match "")
|
||||
(goto-char opoint))))))
|
||||
|
||||
|
||||
(defun manual-html-fix-index-1 ()
|
||||
"Remove the h1 header, and the short and long contents lists.
|
||||
Also start a \"content\" div."
|
||||
(let (opoint)
|
||||
(re-search-forward "<body>\n")
|
||||
(re-search-forward "<body.*>\n")
|
||||
(setq opoint (match-end 0))
|
||||
(search-forward "<h2 class=\"")
|
||||
;; FIXME? Fragile if a Texinfo 5 document does not use @top.
|
||||
(or (re-search-forward "<h1 class=\"top\"" nil t) ; Texinfo 5
|
||||
(search-forward "<h2 class=\""))
|
||||
(goto-char (match-beginning 0))
|
||||
(delete-region opoint (point))
|
||||
;; NB caller must close this div.
|
||||
(insert "<div id=\"content\" class=\"inner\">\n\n")))
|
||||
|
||||
(defun manual-html-fix-index-2 (&optional table-workaround)
|
||||
"Replace the index list in the current buffer with a HTML table."
|
||||
(let (done open-td tag desc)
|
||||
;; Convert the list that Makeinfo made into a table.
|
||||
(or (search-forward "<ul class=\"menu\">" nil t)
|
||||
(search-forward "<ul>"))
|
||||
(replace-match "<table style=\"float:left\" width=\"100%\">")
|
||||
(forward-line 1)
|
||||
(while (not done)
|
||||
(cond
|
||||
((or (looking-at "<li>\\(<a.+</a>\\):[ \t]+\\(.*\\)$")
|
||||
(looking-at "<li>\\(<a.+</a>\\)$"))
|
||||
(setq tag (match-string 1))
|
||||
(setq desc (match-string 2))
|
||||
(replace-match "" t t)
|
||||
(when open-td
|
||||
(save-excursion
|
||||
(forward-char -1)
|
||||
(skip-chars-backward " ")
|
||||
(delete-region (point) (line-end-position))
|
||||
(insert "</td>\n </tr>")))
|
||||
(insert " <tr>\n ")
|
||||
(if table-workaround
|
||||
;; This works around a Firefox bug in the mono file.
|
||||
(insert "<td bgcolor=\"white\">")
|
||||
(insert "<td>"))
|
||||
(insert tag "</td>\n <td>" (or desc ""))
|
||||
(setq open-td t))
|
||||
((eq (char-after) ?\n)
|
||||
(delete-char 1)
|
||||
;; Negate the following `forward-line'.
|
||||
(forward-line -1))
|
||||
((looking-at "<!-- ")
|
||||
(search-forward "-->"))
|
||||
((looking-at "<p>[- ]*The Detailed Node Listing[- \n]*")
|
||||
(replace-match " </td></tr></table>\n
|
||||
"Replace the index list in the current buffer with a HTML table.
|
||||
Leave point after the table."
|
||||
(if (re-search-forward "<table class=\"menu\"\\(.*\\)>" nil t)
|
||||
;; Texinfo 5 already uses a table. Tweak it a bit.
|
||||
(let (opoint done)
|
||||
(replace-match " style=\"float:left\" width=\"100%\"" nil t nil 1)
|
||||
(forward-line 1)
|
||||
(while (not done)
|
||||
(cond ((re-search-forward "<tr><td.*• \\(<a.*</a>\\)\
|
||||
:</td><td> </td><td[^>]*>\\(.*\\)" (line-end-position) t)
|
||||
(replace-match (format "<tr><td%s>\\1</td>\n<td>\\2"
|
||||
(if table-workaround
|
||||
" bgcolor=\"white\"" "")))
|
||||
(search-forward "</td></tr>")
|
||||
(forward-line 1))
|
||||
((looking-at "<tr><th.*<pre class=\"menu-comment\">\n")
|
||||
(replace-match "<tr><th colspan=\"2\" align=\"left\" \
|
||||
style=\"text-align:left\">")
|
||||
(search-forward "</pre></th></tr>")
|
||||
(replace-match "</th></tr>\n"))
|
||||
;; Not all manuals have the detailed menu.
|
||||
;; If it is there, split it into a separate table.
|
||||
((re-search-forward "<tr>.*The Detailed Node Listing *"
|
||||
(line-end-position) t)
|
||||
(setq opoint (match-beginning 0))
|
||||
(while (and (looking-at " *—")
|
||||
(zerop (forward-line 1))))
|
||||
(delete-region opoint (point))
|
||||
(insert "</table>\n\n\
|
||||
<h2>Detailed Node Listing</h2>\n\n<p>")
|
||||
;; FIXME Fragile!
|
||||
;; The Emacs and Elisp manual have some text at the
|
||||
;; start of the detailed menu that is not part of the menu.
|
||||
;; Other manuals do not.
|
||||
(if (re-search-forward "in one step:" (line-end-position 3) t)
|
||||
(forward-line 1))
|
||||
(insert "</p>\n")
|
||||
(search-forward "</pre></th></tr>")
|
||||
(delete-region (match-beginning 0) (match-end 0))
|
||||
(forward-line -1)
|
||||
(or (looking-at "^$") (error "Parse error 1"))
|
||||
(forward-line -1)
|
||||
(if (looking-at "^$") (error "Parse error 2"))
|
||||
(forward-line -1)
|
||||
(or (looking-at "^$") (error "Parse error 3"))
|
||||
(forward-line 1)
|
||||
(insert "<table class=\"menu\" style=\"float:left\" width=\"100%\">\n\
|
||||
<tr><th colspan=\"2\" align=\"left\" style=\"text-align:left\">\n")
|
||||
(forward-line 1)
|
||||
(insert "</th></tr>")
|
||||
(forward-line 1))
|
||||
((looking-at ".*</table")
|
||||
(forward-line 1)
|
||||
(setq done t)))))
|
||||
(let (done open-td tag desc)
|
||||
;; Convert the list that Makeinfo made into a table.
|
||||
(or (search-forward "<ul class=\"menu\">" nil t)
|
||||
;; FIXME? The following search seems dangerously lax.
|
||||
(search-forward "<ul>"))
|
||||
(replace-match "<table style=\"float:left\" width=\"100%\">")
|
||||
(forward-line 1)
|
||||
(while (not done)
|
||||
(cond
|
||||
((or (looking-at "<li>\\(<a.+</a>\\):[ \t]+\\(.*\\)$")
|
||||
(looking-at "<li>\\(<a.+</a>\\)$"))
|
||||
(setq tag (match-string 1))
|
||||
(setq desc (match-string 2))
|
||||
(replace-match "" t t)
|
||||
(when open-td
|
||||
(save-excursion
|
||||
(forward-char -1)
|
||||
(skip-chars-backward " ")
|
||||
(delete-region (point) (line-end-position))
|
||||
(insert "</td>\n </tr>")))
|
||||
(insert " <tr>\n ")
|
||||
(if table-workaround
|
||||
;; This works around a Firefox bug in the mono file.
|
||||
(insert "<td bgcolor=\"white\">")
|
||||
(insert "<td>"))
|
||||
(insert tag "</td>\n <td>" (or desc ""))
|
||||
(setq open-td t))
|
||||
((eq (char-after) ?\n)
|
||||
(delete-char 1)
|
||||
;; Negate the following `forward-line'.
|
||||
(forward-line -1))
|
||||
((looking-at "<!-- ")
|
||||
(search-forward "-->"))
|
||||
((looking-at "<p>[- ]*The Detailed Node Listing[- \n]*")
|
||||
(replace-match " </td></tr></table>\n
|
||||
<h3>Detailed Node Listing</h3>\n\n" t t)
|
||||
(search-forward "<p>")
|
||||
(search-forward "<p>" nil t)
|
||||
(goto-char (match-beginning 0))
|
||||
(skip-chars-backward "\n ")
|
||||
(setq open-td nil)
|
||||
(insert "</p>\n\n<table style=\"float:left\" width=\"100%\">"))
|
||||
((looking-at "</li></ul>")
|
||||
(replace-match "" t t))
|
||||
((looking-at "<p>")
|
||||
(replace-match "" t t)
|
||||
(when open-td
|
||||
(insert " </td></tr>")
|
||||
(setq open-td nil))
|
||||
(insert " <tr>
|
||||
(search-forward "<p>")
|
||||
;; FIXME Fragile!
|
||||
;; The Emacs and Elisp manual have some text at the
|
||||
;; start of the detailed menu that is not part of the menu.
|
||||
;; Other manuals do not.
|
||||
(if (looking-at "Here are some other nodes")
|
||||
(search-forward "<p>"))
|
||||
(goto-char (match-beginning 0))
|
||||
(skip-chars-backward "\n ")
|
||||
(setq open-td nil)
|
||||
(insert "</p>\n\n<table style=\"float:left\" width=\"100%\">"))
|
||||
((looking-at "</li></ul>")
|
||||
(replace-match "" t t))
|
||||
((looking-at "<p>")
|
||||
(replace-match "" t t)
|
||||
(when open-td
|
||||
(insert " </td></tr>")
|
||||
(setq open-td nil))
|
||||
(insert " <tr>
|
||||
<th colspan=\"2\" align=\"left\" style=\"text-align:left\">")
|
||||
(if (re-search-forward "</p>[ \t\n]*<ul class=\"menu\">" nil t)
|
||||
(replace-match " </th></tr>")))
|
||||
((looking-at "[ \t]*</ul>[ \t]*$")
|
||||
(replace-match
|
||||
(if open-td
|
||||
" </td></tr>\n</table>"
|
||||
"</table>") t t)
|
||||
(setq done t))
|
||||
(t
|
||||
(if (eobp)
|
||||
(error "Parse error in %s" f)) ; f is bound in manual-html-node
|
||||
(unless open-td
|
||||
(setq done t))))
|
||||
(forward-line 1))))
|
||||
(if (re-search-forward "</p>[ \t\n]*<ul class=\"menu\">" nil t)
|
||||
(replace-match " </th></tr>")))
|
||||
((looking-at "[ \t]*</ul>[ \t]*$")
|
||||
(replace-match
|
||||
(if open-td
|
||||
" </td></tr>\n</table>"
|
||||
"</table>") t t)
|
||||
(setq done t))
|
||||
(t
|
||||
(if (eobp)
|
||||
(error "Parse error in %s"
|
||||
(file-name-nondirectory buffer-file-name)))
|
||||
(unless open-td
|
||||
(setq done t))))
|
||||
(forward-line 1)))))
|
||||
|
||||
|
||||
;; Stuff to check new defcustoms got :version tags.
|
||||
;; Stuff to check new `defcustom's got :version tags.
|
||||
;; Adapted from check-declare.el.
|
||||
|
||||
(defun cusver-find-files (root &optional old)
|
||||
"Find .el files beneath directory ROOT that contain defcustoms.
|
||||
If optional OLD is non-nil, also include defvars."
|
||||
"Find .el files beneath directory ROOT that contain `defcustom's.
|
||||
If optional OLD is non-nil, also include `defvar's."
|
||||
(process-lines find-program root
|
||||
"-name" "*.el"
|
||||
"-exec" grep-program
|
||||
|
|
@ -448,14 +618,14 @@ If optional OLD is non-nil, also include defvars."
|
|||
|
||||
(defvar cusver-new-version (format "%s.%s" emacs-major-version
|
||||
(1+ emacs-minor-version))
|
||||
"Version number that new defcustoms should have.")
|
||||
"Version number that new `defcustom's should have.")
|
||||
|
||||
(defun cusver-scan (file &optional old)
|
||||
"Scan FILE for `defcustom' calls.
|
||||
Return a list with elements of the form (VAR . VER),
|
||||
This means that FILE contains a defcustom for variable VAR, with
|
||||
a :version tag having value VER (may be nil).
|
||||
If optional argument OLD is non-nil, also scan for defvars."
|
||||
If optional argument OLD is non-nil, also scan for `defvar's."
|
||||
(let ((m (format "Scanning %s..." file))
|
||||
(re (format "^[ \t]*\\((def%s\\)[ \t\n]"
|
||||
(if old "\\(custom\\|var\\)" "\\(custom\\|group\\)")))
|
||||
|
|
@ -464,13 +634,19 @@ If optional argument OLD is non-nil, also scan for defvars."
|
|||
(with-temp-buffer
|
||||
(insert-file-contents file)
|
||||
;; FIXME we could theoretically be inside a string.
|
||||
(while (re-search-forward re nil t)
|
||||
(while (re-search-forward re nil :noerror)
|
||||
(goto-char (match-beginning 1))
|
||||
(if (and (setq form (ignore-errors (read (current-buffer))))
|
||||
(setq var (car-safe (cdr-safe form)))
|
||||
;; Exclude macros, eg (defcustom ,varname ...).
|
||||
(symbolp var))
|
||||
(progn
|
||||
;; FIXME It should be cus-test-apropos that does this.
|
||||
(and (not old)
|
||||
(equal "custom" (match-string 2))
|
||||
(not (memq :type form))
|
||||
(display-warning 'custom
|
||||
(format "Missing type in: `%s'" form)))
|
||||
(setq ver (car (cdr-safe (memq :version form))))
|
||||
(if (equal "group" (match-string 2))
|
||||
;; Group :version could be old.
|
||||
|
|
@ -506,7 +682,7 @@ If optional argument OLD is non-nil, also scan for defvars."
|
|||
(define-button-type 'cusver-xref 'action #'cusver-goto-xref)
|
||||
|
||||
(defun cusver-goto-xref (button)
|
||||
"Jump to a lisp file for the BUTTON at point."
|
||||
"Jump to a Lisp file for the BUTTON at point."
|
||||
(let ((file (button-get button 'file))
|
||||
(var (button-get button 'var)))
|
||||
(if (not (file-readable-p file))
|
||||
|
|
@ -522,34 +698,36 @@ If optional argument OLD is non-nil, also scan for defvars."
|
|||
;; TODO Check cus-start if something moved from C to Lisp.
|
||||
;; TODO Handle renamed things with aliases to the old names.
|
||||
(defun cusver-check (newdir olddir version)
|
||||
"Check that defcustoms have :version tags where needed.
|
||||
NEWDIR is the current lisp/ directory, OLDDIR is that from the previous
|
||||
release. A defcustom that is only in NEWDIR should have a :version
|
||||
tag. We exclude cases where a defvar exists in OLDDIR, since
|
||||
just converting a defvar to a defcustom does not require a :version bump.
|
||||
"Check that `defcustom's have :version tags where needed.
|
||||
NEWDIR is the current lisp/ directory, OLDDIR is that from the
|
||||
previous release, VERSION is the new version number. A
|
||||
`defcustom' that is only in NEWDIR should have a :version tag.
|
||||
We exclude cases where a `defvar' exists in OLDDIR, since just
|
||||
converting a `defvar' to a `defcustom' does not require
|
||||
a :version bump.
|
||||
|
||||
Note that a :version tag should also be added if the value of a defcustom
|
||||
changes (in a non-trivial way). This function does not check for that."
|
||||
(interactive (list (read-directory-name "New Lisp directory: ")
|
||||
(read-directory-name "Old Lisp directory: ")
|
||||
(interactive (list (read-directory-name "New Lisp directory: " nil nil t)
|
||||
(read-directory-name "Old Lisp directory: " nil nil t)
|
||||
(number-to-string
|
||||
(read-number "New version number: "
|
||||
(string-to-number cusver-new-version)))))
|
||||
(or (file-directory-p (setq newdir (expand-file-name newdir)))
|
||||
(error "Directory `%s' not found" newdir))
|
||||
(user-error "Directory `%s' not found" newdir))
|
||||
(or (file-directory-p (setq olddir (expand-file-name olddir)))
|
||||
(error "Directory `%s' not found" olddir))
|
||||
(user-error "Directory `%s' not found" olddir))
|
||||
(setq cusver-new-version version)
|
||||
(let* ((newfiles (progn (message "Finding new files with defcustoms...")
|
||||
(let* ((newfiles (progn (message "Finding new files with `defcustom's...")
|
||||
(cusver-find-files newdir)))
|
||||
(oldfiles (progn (message "Finding old files with defcustoms...")
|
||||
(oldfiles (progn (message "Finding old files with `defcustom's...")
|
||||
(cusver-find-files olddir t)))
|
||||
(newcus (progn (message "Reading new defcustoms...")
|
||||
(newcus (progn (message "Reading new `defcustom's...")
|
||||
(mapcar
|
||||
(lambda (file)
|
||||
(cons file (cusver-scan file))) newfiles)))
|
||||
oldcus result thisfile file)
|
||||
(message "Reading old defcustoms...")
|
||||
(message "Reading old `defcustom's...")
|
||||
(dolist (file oldfiles)
|
||||
(setq oldcus (append oldcus (cusver-scan file t))))
|
||||
(setq oldcus (append oldcus (cusver-scan-cus-start
|
||||
|
|
@ -574,7 +752,7 @@ changes (in a non-trivial way). This function does not check for that."
|
|||
(message "No missing :version tags")
|
||||
(pop-to-buffer "*cusver*")
|
||||
(erase-buffer)
|
||||
(insert "These defcustoms might be missing :version tags:\n\n")
|
||||
(insert "These `defcustom's might be missing :version tags:\n\n")
|
||||
(dolist (elem result)
|
||||
(let* ((str (file-relative-name (car elem) newdir))
|
||||
(strlen (length str)))
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/* Allocate X colors. Used for testing with dense colormaps.
|
||||
|
||||
Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#! /usr/bin/perl
|
||||
# Build Emacs in several different configurations.
|
||||
|
||||
# Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -20,6 +20,8 @@
|
|||
|
||||
|
||||
require 5;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Getopt::Long;
|
||||
use File::Basename;
|
||||
use Cwd;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; bzrmerge.el --- help merge one Emacs bzr branch to another
|
||||
|
||||
;; Copyright (C) 2010-2013 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2010-2014 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
;; Keywords: maint
|
||||
|
|
@ -50,7 +50,7 @@ The list returned is sorted by oldest-first."
|
|||
(call-process "bzr" nil t nil "status" "-v")
|
||||
(goto-char (point-min))
|
||||
(when (re-search-forward "^conflicts:\n" nil t)
|
||||
(error "You still have unresolved conflicts"))
|
||||
(user-error "You still have unresolved conflicts"))
|
||||
(let ((merges ())
|
||||
found)
|
||||
(if (not (re-search-forward "^pending merges:\n" nil t))
|
||||
|
|
@ -62,7 +62,7 @@ The list returned is sorted by oldest-first."
|
|||
(setq found
|
||||
(not (equal "unknown" (match-string 1)))))))
|
||||
found)
|
||||
(error "You still have uncommitted changes"))
|
||||
(user-error "You still have uncommitted changes"))
|
||||
;; This is really stupid, but it seems there's no easy way to figure
|
||||
;; out which revisions have been merged already. The only info I can
|
||||
;; find is the "pending merges" from "bzr status -v", which is not
|
||||
|
|
@ -171,7 +171,7 @@ Type `y' to skip this revision,
|
|||
(enable-local-eval nil))
|
||||
(find-file-noselect file))
|
||||
(if (buffer-modified-p)
|
||||
(error "Unsaved changes in %s" (current-buffer)))
|
||||
(user-error "Unsaved changes in %s" (current-buffer)))
|
||||
(save-excursion
|
||||
(cond
|
||||
((derived-mode-p 'change-log-mode)
|
||||
|
|
@ -320,10 +320,10 @@ Does not make other difference."
|
|||
;; bzrmerge-add-metadata does not work when there
|
||||
;; are conflicts.
|
||||
(display-warning 'bzrmerge "Resolve conflicts manually.
|
||||
¡BEWARE! Important metadata is kept in this Emacs session!
|
||||
BEWARE! Important metadata is kept in this Emacs session!
|
||||
Do not commit without re-running `M-x bzrmerge' first!"
|
||||
:warning bzrmerge-warning-buffer))
|
||||
(error "Resolve conflicts manually")))))
|
||||
(user-error "Resolve conflicts manually")))))
|
||||
(cons merge skip)))))
|
||||
|
||||
(defun bzrmerge (from)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (C) 2009-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2009-2014 Free Software Foundation, Inc.
|
||||
Copyright (C) 2009, 2010, 2011
|
||||
National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
Registration Number H13PRO009
|
||||
|
|
@ -6,47 +6,48 @@ See the end of the file for license conditions.
|
|||
|
||||
The charset map files directory
|
||||
|
||||
This directory contains two kinds of charset map files; verbatim copies
|
||||
(or their compressed versions) of files freely available in the
|
||||
Internet, and newly created files based on freely available
|
||||
information.
|
||||
This directory contains two kinds of charset map files; verbatim
|
||||
copies of files freely available in the Internet, and newly created
|
||||
files based on freely available information.
|
||||
|
||||
(1) Copied files (all files are copied on 2009-06-12)
|
||||
(1) Copied files (all files were copied on 2014-01-15):
|
||||
|
||||
* CP932.TXT.gz
|
||||
* CP932.TXT
|
||||
|
||||
The uncompressed version is available at:
|
||||
Available at:
|
||||
<http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT>
|
||||
|
||||
* PTCP154.gz
|
||||
* PTCP154
|
||||
|
||||
The uncompressed version is available at:
|
||||
Available at:
|
||||
<http://www.iana.org/assignments/charset-reg/PTCP154>
|
||||
|
||||
* Uni2JIS.gz
|
||||
* Uni2JIS
|
||||
|
||||
The version compressed by Unix's "compress" command is available at:
|
||||
<http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/ftp/CJKtable/Uni2JIS.Z>
|
||||
This directory's copy has corrected the misspellings of "characters"
|
||||
and of "Byelorussian".
|
||||
|
||||
* bulgarian-mik.txt.gz
|
||||
* bulgarian-mik.txt
|
||||
|
||||
It is available at:
|
||||
<http://czyborra.com/charsets/bulgarian-mik.txt.gz>.
|
||||
The compressed version is available at:
|
||||
<http://czyborra.com/charsets/bulgarian-mik.txt.gz>
|
||||
|
||||
* cns2ucsdkw.txt.gz
|
||||
* cns2ucsdkw.txt
|
||||
|
||||
Uncompressed version is available at:
|
||||
Available at:
|
||||
<http://kanji-database.cvs.sourceforge.net/viewvc/*checkout*/kanji-database/kanji-database/data/cns2ucsdkw.txt?revision=1.4>
|
||||
|
||||
* stdenc.txt.gz and symbol.txt.gz
|
||||
* stdenc.txt and symbol.txt
|
||||
|
||||
The uncompressed versions are available at:
|
||||
Available at:
|
||||
<http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/stdenc.txt>
|
||||
<http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/symbol.txt>
|
||||
|
||||
(2) Newly created files
|
||||
|
||||
* CP720.map.gz and CP858.map.gz
|
||||
* CP720.map and CP858.map
|
||||
|
||||
Created manually by looking at these pages:
|
||||
<http://en.wikipedia.org/wiki/Code_page_720>.
|
||||
|
|
@ -54,13 +55,13 @@ Created manually by looking at these pages:
|
|||
The text in that page is under the terms of the GNU Free Documentation
|
||||
License.
|
||||
|
||||
* JISX213A.map.gz
|
||||
* JISX213A.map
|
||||
|
||||
Created manually based on the description of the section 33 in "JIS X
|
||||
0213:2004 Amendment 1". It lists 10 characters that are newly added
|
||||
to "JIS X 0213:2004".
|
||||
|
||||
* MULE-*.map.gz
|
||||
* MULE-*.map
|
||||
|
||||
Created by using ../mule-charsets.el in Emacs 22 as this:
|
||||
% emacs-22 -batch -l ../mule-charsets.el
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
#
|
||||
# Name: Adobe Standard Encoding to Unicode
|
||||
# Unicode version: 2.0
|
||||
# Table version: 0.2
|
||||
# Date: 30 March 1999
|
||||
# Table version: 1.0
|
||||
# Date: 2011 July 12
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
# Copyright (c) 1991-2011 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No
|
||||
# claims are made as to fitness for any particular purpose. No warranties of
|
||||
|
|
@ -13,12 +13,12 @@
|
|||
# magnetic media by Unicode, Inc., the sole remedy for any claim will be
|
||||
# exchange of defective media within 90 days of receipt.
|
||||
#
|
||||
# Recipient is granted the right to make copies in any form for internal
|
||||
# distribution and to freely use the information supplied in the creation of
|
||||
# products supporting Unicode. Unicode, Inc. specifically excludes the right
|
||||
# to re-distribute this file directly to third parties or other organizations
|
||||
# whether for profit or not.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# Format: 4 tab-delimited fields:
|
||||
#
|
||||
# (1) The Unicode value (in hexadecimal)
|
||||
|
|
@ -36,8 +36,17 @@
|
|||
# Standard Encoding characters, such as "space", are mapped to 2 Unicode
|
||||
# values. Refer to the above document for more details.
|
||||
#
|
||||
# 2011 July 12: The above link is no longer valid. For comparable,
|
||||
# more current information, see the document, "Glyph", at:
|
||||
# <http://www.adobe.com/devnet/opentype/archives/glyph.html>
|
||||
#
|
||||
# Revision History:
|
||||
#
|
||||
# [v1.0, 2011 July 12]
|
||||
# Updated terms of use to current wording.
|
||||
# Updated contact information and document link.
|
||||
# No changes to the mapping data.
|
||||
#
|
||||
# [v0.2, 30 March 1999]
|
||||
# Different algorithm to produce Unicode values (see notes above) results in
|
||||
# some character codes being mapped to 2 Unicode values. Updated Unicode
|
||||
|
|
@ -45,7 +54,8 @@
|
|||
#
|
||||
# [v0.1, 5 May 1995] First release.
|
||||
#
|
||||
# Contact <unicode-inc@unicode.org> with any questions or comments.
|
||||
# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
|
||||
# for any questions or comments or to report errors in the data.
|
||||
#
|
||||
0020 20 # SPACE # space
|
||||
00A0 20 # NO-BREAK SPACE # space
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
#
|
||||
# Name: Adobe Symbol Encoding to Unicode
|
||||
# Unicode version: 2.0
|
||||
# Table version: 0.2
|
||||
# Date: 30 March 1999
|
||||
# Table version: 1.0
|
||||
# Date: 2011 July 12
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
# Copyright (c) 1991-2011 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No
|
||||
# claims are made as to fitness for any particular purpose. No warranties of
|
||||
|
|
@ -13,11 +13,11 @@
|
|||
# magnetic media by Unicode, Inc., the sole remedy for any claim will be
|
||||
# exchange of defective media within 90 days of receipt.
|
||||
#
|
||||
# Recipient is granted the right to make copies in any form for internal
|
||||
# distribution and to freely use the information supplied in the creation of
|
||||
# products supporting Unicode. Unicode, Inc. specifically excludes the right
|
||||
# to re-distribute this file directly to third parties or other organizations
|
||||
# whether for profit or not.
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# Format: 4 tab-delimited fields:
|
||||
#
|
||||
|
|
@ -37,8 +37,17 @@
|
|||
# Corporate Use Subarea; these are indicated by "(CUS)" in field 4. Refer to
|
||||
# the above document for more details.
|
||||
#
|
||||
# 2011 July 12: The above link is no longer valid. For comparable,
|
||||
# more current information, see the document, "Glyph", at:
|
||||
# <http://www.adobe.com/devnet/opentype/archives/glyph.html>
|
||||
#
|
||||
# Revision History:
|
||||
#
|
||||
# [v1.0, 2011 July 12]
|
||||
# Updated terms of use to current wording.
|
||||
# Updated contact information and document link.
|
||||
# No changes to the mapping data.
|
||||
#
|
||||
# [v0.2, 30 March 1999]
|
||||
# Different algorithm to produce Unicode values (see notes above) results in
|
||||
# some character codes being mapped to 2 Unicode values; use of Corporate
|
||||
|
|
@ -48,7 +57,8 @@
|
|||
#
|
||||
# [v0.1, 5 May 1995] First release.
|
||||
#
|
||||
# Contact <unicode-inc@unicode.org> with any questions or comments.
|
||||
# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
|
||||
# for any questions or comments or to report errors in the data.
|
||||
#
|
||||
0020 20 # SPACE # space
|
||||
00A0 20 # NO-BREAK SPACE # space
|
||||
|
|
|
|||
|
|
@ -19,20 +19,32 @@
|
|||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
(if (not (or (and (= emacs-major-version 21) (= emacs-minor-version 4))
|
||||
(= emacs-major-version 22)))
|
||||
(error "Use Emacs of version 21.4 or any of version 22"))
|
||||
;; For the record: the old, pre-v23 code was this:
|
||||
;; (if (not (or (and (= emacs-major-version 21) (= emacs-minor-version 4))
|
||||
;; (= emacs-major-version 22)))
|
||||
;; (error "Use Emacs of version 21.4 or any of version 22"))
|
||||
;;
|
||||
;; (defun func (start end)
|
||||
;; (while (<= start end)
|
||||
;; (let ((split (split-char start))
|
||||
;; (unicode (encode-char start 'ucs)))
|
||||
;; (if unicode
|
||||
;; (if (nth 2 split)
|
||||
;; (insert (format "0x%02X%02X 0x%04X\n"
|
||||
;; (nth 1 split) (nth 2 split) unicode))
|
||||
;; (insert (format "0x%02X 0x%04X\n" (nth 1 split) unicode)))))
|
||||
;; (setq start (1+ start))))
|
||||
|
||||
(defun func (start end)
|
||||
(while (<= start end)
|
||||
(let ((split (split-char start))
|
||||
(unicode (encode-char start 'ucs)))
|
||||
(if unicode
|
||||
(if (nth 2 split)
|
||||
(insert (format "0x%02X%02X 0x%04X\n"
|
||||
(nth 1 split) (nth 2 split) unicode))
|
||||
(insert (format "0x%02X 0x%04X\n" (nth 1 split) unicode)))))
|
||||
(setq start (1+ start))))
|
||||
(defun func (range charset)
|
||||
(let ((start (car range))
|
||||
(end (cdr range)))
|
||||
(while (and (<= start end) (<= start #x10ffff))
|
||||
(let ((ch (encode-char start charset)))
|
||||
(if ch
|
||||
(if (> ch 256)
|
||||
(insert (format "0x%04X 0x%04X\n" ch start))
|
||||
(insert (format "0x%02X 0x%04X\n" ch start)))))
|
||||
(setq start (1+ start)))))
|
||||
|
||||
(defconst charset-alist
|
||||
'(("MULE-ethiopic.map" . ethiopic)
|
||||
|
|
@ -51,6 +63,8 @@
|
|||
(dolist (elt charset-alist)
|
||||
(with-temp-buffer
|
||||
(insert header)
|
||||
(map-charset-chars 'func (cdr elt))
|
||||
(write-file (car elt))))
|
||||
(map-charset-chars 'func (cdr elt) (cdr elt))
|
||||
(sort-lines nil (point-min) (point-max))
|
||||
(let ((coding-system-for-write 'unix))
|
||||
(write-file (car elt)))))
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
: #-*- Perl -*-
|
||||
eval 'exec perl -w -S $0 ${1+"$@"}' # Portability kludge
|
||||
eval 'exec perl -S $0 ${1+"$@"}' # Portability kludge
|
||||
if 0;
|
||||
|
||||
# Author: Martin Buchholz
|
||||
# This program is in the public domain.
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use POSIX;
|
||||
|
||||
(my $myName = $0) =~ s@.*/@@; my $usage="
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; cus-test.el --- tests for custom types and load problems
|
||||
|
||||
;; Copyright (C) 1998, 2000, 2002-2013 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1998, 2000, 2002-2014 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Markus Rost <markus.rost@mathematik.uni-regensburg.de>
|
||||
;; Maintainer: Markus Rost <rost@math.ohio-state.edu>
|
||||
|
|
@ -30,11 +30,11 @@
|
|||
;;
|
||||
;; The basic tests can be run in batch mode. Invoke them with
|
||||
;;
|
||||
;; src/emacs -batch -l admin/cus-test.el -f cus-test-opts
|
||||
;; src/emacs -batch -l admin/cus-test.el -f cus-test-opts [all]
|
||||
;;
|
||||
;; src/emacs -batch -l admin/cus-test.el -f cus-test-deps
|
||||
;;
|
||||
;; src/emacs -batch -l admin/cus-test.el -f cus-test-libs
|
||||
;; src/emacs -batch -l admin/cus-test.el -f cus-test-libs [all]
|
||||
;;
|
||||
;; src/emacs -batch -l admin/cus-test.el -f cus-test-noloads
|
||||
;;
|
||||
|
|
@ -87,43 +87,6 @@
|
|||
;; The command `cus-test-noloads' returns a list of variables which
|
||||
;; are somewhere declared as custom options, but not loaded by
|
||||
;; `custom-load-symbol'.
|
||||
;;
|
||||
;; Some results from October 2002:
|
||||
;;
|
||||
;; 4523 options tested
|
||||
;; The following variables might have problems:
|
||||
;; ps-mule-font-info-database-default
|
||||
;; grep-tree-command
|
||||
;; grep-find-command
|
||||
;;
|
||||
;; 288 features required
|
||||
;; 10 files loaded
|
||||
;; The following load problems appeared:
|
||||
;; (killing x-win (file-error Cannot open load file x-win))
|
||||
;; Symbol faces has loaddefs as custom dependency
|
||||
;; (reftex-index-support reftex-vars (void-function reftex-set-dirty))
|
||||
;; (eshell-script em-script (void-variable eshell-directory-name))
|
||||
;; (pcomplete em-cmpl (void-function eshell-under-windows-p))
|
||||
;; (eshell-ext esh-ext (void-function eshell-under-windows-p))
|
||||
;; ...
|
||||
;;
|
||||
;; 422 libraries had no load errors
|
||||
;; The following load problems appeared:
|
||||
;; (eudc-export error 255)
|
||||
;; (ada-xref error 255)
|
||||
;; (ada-stmt error 255)
|
||||
;;
|
||||
;; The following options were not loaded by custom-load-symbol:
|
||||
;; edt-bottom-scroll-margin
|
||||
;; edt-keep-current-page-delimiter
|
||||
;; edt-top-scroll-margin
|
||||
;; edt-use-EDT-control-key-bindings
|
||||
;; edt-word-entities
|
||||
;; grep-find-use-xargs
|
||||
;; master-mode-hook
|
||||
;; outline-level
|
||||
;; outline-minor-mode-hook
|
||||
;; refill-mode-hook
|
||||
|
||||
|
||||
;;; Code:
|
||||
|
|
@ -136,24 +99,23 @@
|
|||
(defvar cus-test-skip-list nil
|
||||
"List of variables to disregard by `cus-test-apropos'.")
|
||||
|
||||
(defvar cus-test-libs-noloads nil
|
||||
"List of libraries not to load by `cus-test-load-libs'.")
|
||||
|
||||
;; The file eudc-export.el loads libraries "bbdb" and "bbdb-com" which
|
||||
;; are not part of GNU Emacs: (locate-library "bbdb") => nil
|
||||
;; We avoid the resulting errors from loading eudc-export.el:
|
||||
(provide 'bbdb)
|
||||
(provide 'bbdb-com)
|
||||
(defvar cus-test-libs-noloads
|
||||
;; Loading dunnet in batch mode leads to a Dead end.
|
||||
;; blessmail writes a file.
|
||||
;; characters cannot be loaded twice ("Category `a' is already defined").
|
||||
'("play/dunnet.el" "emulation/edt-mapper.el"
|
||||
"loadup.el" "mail/blessmail.el" "international/characters.el"
|
||||
"cedet/ede/loaddefs.el" "cedet/semantic/loaddefs.el"
|
||||
"net/tramp-loaddefs.el")
|
||||
"List of files not to load by `cus-test-load-libs'.
|
||||
Names should be as they appear in loaddefs.el.")
|
||||
|
||||
;; This avoids a hang of `cus-test-apropos' in 21.2.
|
||||
;; (add-to-list 'cus-test-skip-list 'sh-alias-alist)
|
||||
|
||||
;; Loading dunnet in batch mode leads to a Dead end.
|
||||
(let (noninteractive) (load "dunnet"))
|
||||
(add-to-list 'cus-test-libs-noloads "dunnet")
|
||||
|
||||
;; Never Viperize.
|
||||
(setq viper-mode nil)
|
||||
(or noninteractive
|
||||
;; Never Viperize.
|
||||
(setq viper-mode nil))
|
||||
|
||||
;; Don't create a file `save-place-file'.
|
||||
(eval-after-load "saveplace"
|
||||
|
|
@ -225,6 +187,9 @@ The detected problematic options are stored in `cus-test-errors'."
|
|||
(message "Cus Test running...%s %s"
|
||||
(length cus-test-tested-variables) symbol)
|
||||
(condition-case alpha
|
||||
;; FIXME This defaults to 'sexp if no type was specified.
|
||||
;; Always report such instances as a type mismatch.
|
||||
;; Currently abusing cusver-scan to do that.
|
||||
(let* ((type (custom-variable-type symbol))
|
||||
(conv (widget-convert type))
|
||||
(get (or (get symbol 'custom-get) 'default-value))
|
||||
|
|
@ -240,6 +205,8 @@ The detected problematic options are stored in `cus-test-errors'."
|
|||
|
||||
;; Check the values
|
||||
(mapc (lambda (value)
|
||||
;; TODO for booleans, check for values that can be
|
||||
;; evaluated and are not t or nil. Usually a bug.
|
||||
(unless (widget-apply conv :match value)
|
||||
(setq mismatch 'mismatch)))
|
||||
values)
|
||||
|
|
@ -270,17 +237,38 @@ The detected problematic options are stored in `cus-test-errors'."
|
|||
(length cus-test-tested-variables))
|
||||
(cus-test-errors-display))
|
||||
|
||||
(defun cus-test-get-options (regexp)
|
||||
"Return a list of custom options matching REGEXP."
|
||||
(let (found)
|
||||
(defun cus-test-cus-load-groups (&optional cus-load)
|
||||
"Return a list of current custom groups.
|
||||
If CUS-LOAD is non-nil, include groups from cus-load.el."
|
||||
(append (mapcar 'cdr custom-current-group-alist)
|
||||
(if cus-load
|
||||
(with-temp-buffer
|
||||
(insert-file-contents (locate-library "cus-load.el"))
|
||||
(search-forward "(put '")
|
||||
(beginning-of-line)
|
||||
(let (res)
|
||||
(while (and (looking-at "^(put '\\(\\S-+\\)")
|
||||
(zerop (forward-line 1)))
|
||||
(push (intern (match-string 1)) res))
|
||||
res)))))
|
||||
|
||||
(defun cus-test-get-options (regexp &optional group)
|
||||
"Return a list of custom options matching REGEXP.
|
||||
If GROUP is non-nil, return groups rather than options.
|
||||
If GROUP is `cus-load', include groups listed in cus-loads as well as
|
||||
currently defined groups."
|
||||
(let ((groups (if group (cus-test-cus-load-groups (eq group 'cus-load))))
|
||||
found)
|
||||
(mapatoms
|
||||
(lambda (symbol)
|
||||
(and
|
||||
(or
|
||||
;; (user-variable-p symbol)
|
||||
(get symbol 'standard-value)
|
||||
;; (get symbol 'saved-value)
|
||||
(get symbol 'custom-type))
|
||||
(if group
|
||||
(memq symbol groups)
|
||||
(or
|
||||
;; (user-variable-p symbol)
|
||||
(get symbol 'standard-value)
|
||||
;; (get symbol 'saved-value)
|
||||
(get symbol 'custom-type)))
|
||||
(string-match regexp (symbol-name symbol))
|
||||
(not (member symbol cus-test-skip-list))
|
||||
(push symbol found))))
|
||||
|
|
@ -302,49 +290,71 @@ The detected problematic options are stored in `cus-test-errors'."
|
|||
(defun cus-test-load-custom-loads ()
|
||||
"Call `custom-load-symbol' on all atoms."
|
||||
(interactive)
|
||||
(if noninteractive (let (noninteractive) (require 'dunnet)))
|
||||
(mapatoms 'custom-load-symbol)
|
||||
(run-hooks 'cus-test-after-load-libs-hook))
|
||||
|
||||
(defun cus-test-load-libs ()
|
||||
(defmacro cus-test-load-1 (&rest body)
|
||||
`(progn
|
||||
(setq cus-test-libs-errors nil
|
||||
cus-test-libs-loaded nil)
|
||||
,@body
|
||||
(message "%s libraries loaded successfully"
|
||||
(length cus-test-libs-loaded))
|
||||
(if (not cus-test-libs-errors)
|
||||
(message "No load problems encountered")
|
||||
(message "The following load problems appeared:")
|
||||
(cus-test-message cus-test-libs-errors))
|
||||
(run-hooks 'cus-test-after-load-libs-hook)))
|
||||
|
||||
;; This is just cus-test-libs, but loading in the current Emacs process.
|
||||
(defun cus-test-load-libs (&optional more)
|
||||
"Load the libraries with autoloads.
|
||||
Don't load libraries in `cus-test-libs-noloads'."
|
||||
Don't load libraries in `cus-test-libs-noloads'.
|
||||
If optional argument MORE is \"defcustom\", load all files with defcustoms.
|
||||
If it is \"all\", load all Lisp files."
|
||||
(interactive)
|
||||
(setq cus-test-libs-errors nil)
|
||||
(setq cus-test-libs-loaded nil)
|
||||
(mapc
|
||||
(lambda (file)
|
||||
(condition-case alpha
|
||||
(unless (member file cus-test-libs-noloads)
|
||||
(load file)
|
||||
(push file cus-test-libs-loaded))
|
||||
(error
|
||||
(push (cons file alpha) cus-test-libs-errors)
|
||||
(message "Error for %s: %s" file alpha))))
|
||||
(cus-test-get-autoload-deps))
|
||||
(message "%s libraries loaded successfully"
|
||||
(length cus-test-libs-loaded))
|
||||
(if (not cus-test-libs-errors)
|
||||
(message "No load problems encountered")
|
||||
(message "The following load problems appeared:")
|
||||
(cus-test-message cus-test-libs-errors))
|
||||
(run-hooks 'cus-test-after-load-libs-hook))
|
||||
(cus-test-load-1
|
||||
(let ((lispdir (file-name-directory (locate-library "loaddefs"))))
|
||||
(mapc
|
||||
(lambda (file)
|
||||
(condition-case alpha
|
||||
(unless (member file cus-test-libs-noloads)
|
||||
(load (file-name-sans-extension (expand-file-name file lispdir)))
|
||||
(push file cus-test-libs-loaded))
|
||||
(error
|
||||
(push (cons file alpha) cus-test-libs-errors)
|
||||
(message "Error for %s: %s" file alpha))))
|
||||
(if more
|
||||
(cus-test-get-lisp-files (equal more "all"))
|
||||
(cus-test-get-autoload-deps))))))
|
||||
|
||||
(defun cus-test-get-autoload-deps ()
|
||||
"Return the list of libraries with autoloads."
|
||||
"Return the list of files with autoloads."
|
||||
(with-temp-buffer
|
||||
(insert-file-contents (locate-library "loaddefs"))
|
||||
;; This is from `customize-option'.
|
||||
(let (deps file)
|
||||
(while
|
||||
(search-forward "\n;;; Generated autoloads from " nil t)
|
||||
(goto-char (match-end 0))
|
||||
(setq file (buffer-substring (point)
|
||||
(progn (end-of-line) (point))))
|
||||
(setq file (file-name-nondirectory file))
|
||||
(string-match "\\.el\\'" file)
|
||||
(setq file (substring file 0 (match-beginning 0)))
|
||||
(setq deps (nconc deps (list file))))
|
||||
deps)))
|
||||
(let (files)
|
||||
(while (search-forward "\n;;; Generated autoloads from " nil t)
|
||||
(push (buffer-substring (match-end 0) (line-end-position)) files))
|
||||
files)))
|
||||
|
||||
(defun cus-test-get-lisp-files (&optional all)
|
||||
"Return list of all Lisp files with defcustoms.
|
||||
Optional argument ALL non-nil means list all (non-obsolete) Lisp files."
|
||||
(let ((default-directory (expand-file-name "lisp/" source-directory))
|
||||
(msg "Finding files..."))
|
||||
(message "%s" msg)
|
||||
(prog1
|
||||
;; Hack to remove leading "./".
|
||||
(mapcar (lambda (e) (substring e 2))
|
||||
(apply 'process-lines find-program
|
||||
"-name" "obsolete" "-prune" "-o"
|
||||
"-name" "[^.]*.el" ; ignore .dir-locals.el
|
||||
(if all
|
||||
'("-print")
|
||||
(list "-exec" grep-program
|
||||
"-l" "^[ \t]*(defcustom" "{}" "+"))))
|
||||
(message "%sdone" msg))))
|
||||
|
||||
(defun cus-test-message (list)
|
||||
"Print the members of LIST line by line."
|
||||
|
|
@ -353,16 +363,21 @@ Don't load libraries in `cus-test-libs-noloads'."
|
|||
|
||||
;;; The routines for batch mode:
|
||||
|
||||
(defun cus-test-opts ()
|
||||
(defun cus-test-opts (&optional all)
|
||||
"Test custom options.
|
||||
This function is suitable for batch mode. E.g., invoke
|
||||
|
||||
src/emacs -batch -l admin/cus-test.el -f cus-test-opts
|
||||
|
||||
in the Emacs source directory."
|
||||
in the Emacs source directory.
|
||||
Normally only tests options belonging to files in loaddefs.el.
|
||||
If optional argument ALL is non-nil, test all files with defcustoms."
|
||||
(interactive)
|
||||
(and noninteractive
|
||||
command-line-args-left
|
||||
(setq all (pop command-line-args-left)))
|
||||
(message "Running %s" 'cus-test-load-libs)
|
||||
(cus-test-load-libs)
|
||||
(cus-test-load-libs (if all "defcustom"))
|
||||
(message "Running %s" 'cus-test-load-custom-loads)
|
||||
(cus-test-load-custom-loads)
|
||||
(message "Running %s" 'cus-test-apropos)
|
||||
|
|
@ -392,7 +407,8 @@ in the Emacs source directory."
|
|||
((symbolp load)
|
||||
;; (condition-case nil (require load) (error nil))
|
||||
(condition-case alpha
|
||||
(unless (featurep load)
|
||||
(unless (or (featurep load)
|
||||
(and noninteractive (eq load 'dunnet)))
|
||||
(require load)
|
||||
(push (list symbol load) cus-test-deps-required))
|
||||
(error
|
||||
|
|
@ -444,47 +460,54 @@ in the Emacs source directory."
|
|||
(cus-test-message cus-test-deps-errors))
|
||||
(run-hooks 'cus-test-after-load-libs-hook))
|
||||
|
||||
(defun cus-test-libs ()
|
||||
(defun cus-test-libs (&optional more)
|
||||
"Load the libraries with autoloads in separate processes.
|
||||
This function is useful to detect load problems of libraries.
|
||||
It is suitable for batch mode. E.g., invoke
|
||||
|
||||
src/emacs -batch -l admin/cus-test.el -f cus-test-libs
|
||||
./src/emacs -batch -l admin/cus-test.el -f cus-test-libs
|
||||
|
||||
in the Emacs source directory."
|
||||
in the Emacs source directory.
|
||||
|
||||
If optional argument MORE is \"defcustom\", load all files with defcustoms.
|
||||
If it is \"all\", load all Lisp files."
|
||||
(interactive)
|
||||
(with-temp-buffer
|
||||
(setq cus-test-libs-errors nil)
|
||||
(setq cus-test-libs-loaded nil)
|
||||
(cd source-directory)
|
||||
(if (not (file-executable-p "src/emacs"))
|
||||
(error "No Emacs executable in %ssrc" default-directory))
|
||||
(mapc
|
||||
(lambda (file)
|
||||
(condition-case alpha
|
||||
(let (fn cmd status)
|
||||
(setq fn (locate-library file))
|
||||
(if (not fn)
|
||||
(error "Library %s not found" file))
|
||||
(setq cmd (concat "src/emacs -batch -l " fn))
|
||||
(setq status (call-process shell-file-name nil nil nil
|
||||
shell-command-switch cmd))
|
||||
(if (equal status 0)
|
||||
(message "%s" file)
|
||||
(error "%s" status))
|
||||
(push file cus-test-libs-loaded))
|
||||
(error
|
||||
(push (cons file alpha) cus-test-libs-errors)
|
||||
(message "Error for %s: %s" file alpha))))
|
||||
(cus-test-get-autoload-deps))
|
||||
(message "Default Directory: %s" default-directory)
|
||||
(message "%s libraries had no load errors"
|
||||
(length cus-test-libs-loaded))
|
||||
(if (not cus-test-libs-errors)
|
||||
(message "No load problems encountered")
|
||||
(message "The following load problems appeared:")
|
||||
(cus-test-message cus-test-libs-errors))
|
||||
(run-hooks 'cus-test-after-load-libs-hook)))
|
||||
(and noninteractive
|
||||
command-line-args-left
|
||||
(setq more (pop command-line-args-left)))
|
||||
(cus-test-load-1
|
||||
(let* ((default-directory source-directory)
|
||||
(emacs (expand-file-name "src/emacs"))
|
||||
skipped)
|
||||
(or (file-executable-p emacs)
|
||||
(error "No such executable `%s'" emacs))
|
||||
(mapc
|
||||
(lambda (file)
|
||||
(if (member file cus-test-libs-noloads)
|
||||
(push file skipped)
|
||||
(condition-case alpha
|
||||
(let* ((fn (expand-file-name file "lisp/"))
|
||||
(elc (concat fn "c"))
|
||||
status)
|
||||
(if (file-readable-p elc) ; load compiled if present (faster)
|
||||
(setq fn elc)
|
||||
(or (file-readable-p fn)
|
||||
(error "Library %s not found" file)))
|
||||
(if (equal 0 (setq status (call-process emacs nil nil nil
|
||||
"-batch" "-l" fn)))
|
||||
(message "%s" file)
|
||||
(error "%s" status))
|
||||
(push file cus-test-libs-loaded))
|
||||
(error
|
||||
(push (cons file alpha) cus-test-libs-errors)
|
||||
(message "Error for %s: %s" file alpha)))))
|
||||
(if more
|
||||
(cus-test-get-lisp-files (equal more "all"))
|
||||
(cus-test-get-autoload-deps)))
|
||||
(message "Default directory: %s" default-directory)
|
||||
(when skipped
|
||||
(message "The following libraries were skipped:")
|
||||
(cus-test-message skipped)))))
|
||||
|
||||
(defun cus-test-noloads ()
|
||||
"Find custom options not loaded by `custom-load-symbol'.
|
||||
|
|
@ -495,17 +518,17 @@ It is suitable for batch mode. E.g., invoke
|
|||
|
||||
in the Emacs source directory."
|
||||
(interactive)
|
||||
(let (cus-loaded)
|
||||
(let ((groups-loaded (cus-test-get-options "" 'cus-load))
|
||||
cus-loaded groups-not-loaded)
|
||||
|
||||
(message "Running %s" 'cus-test-load-custom-loads)
|
||||
(cus-test-load-custom-loads)
|
||||
(setq cus-loaded
|
||||
(cus-test-get-options ""))
|
||||
(setq cus-loaded (cus-test-get-options ""))
|
||||
|
||||
(message "Running %s" 'cus-test-load-libs)
|
||||
(cus-test-load-libs)
|
||||
(setq cus-test-vars-not-cus-loaded
|
||||
(cus-test-get-options ""))
|
||||
(cus-test-load-libs "all")
|
||||
(setq cus-test-vars-not-cus-loaded (cus-test-get-options "")
|
||||
groups-not-loaded (cus-test-get-options "" t))
|
||||
|
||||
(dolist (o cus-loaded)
|
||||
(setq cus-test-vars-not-cus-loaded
|
||||
|
|
@ -515,12 +538,15 @@ in the Emacs source directory."
|
|||
(message "No options not loaded by custom-load-symbol found")
|
||||
(message "The following options were not loaded by custom-load-symbol:")
|
||||
(cus-test-message
|
||||
(sort cus-test-vars-not-cus-loaded 'string<)))))
|
||||
(sort cus-test-vars-not-cus-loaded 'string<)))
|
||||
|
||||
;; And last but not least a quiz:
|
||||
;;
|
||||
;; Evaluation of the form (customize-option 'debug-on-error) yields a
|
||||
;; *Customize* buffer with a mismatch mess. Why?
|
||||
(dolist (o groups-loaded)
|
||||
(setq groups-not-loaded (delete o groups-not-loaded)))
|
||||
|
||||
(if (not groups-not-loaded)
|
||||
(message "No groups not in cus-load.el found")
|
||||
(message "The following groups are not in cus-load.el:")
|
||||
(cus-test-message (sort groups-not-loaded 'string<)))))
|
||||
|
||||
(provide 'cus-test)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
|
||||
# Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
113
admin/grammars/Makefile.in
Normal file
113
admin/grammars/Makefile.in
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
### @configure_input@
|
||||
|
||||
## Copyright (C) 2013-2014 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/>.
|
||||
|
||||
### Commentary:
|
||||
|
||||
## This directory contains grammar files in Bison and Wisent,
|
||||
## used to generate the parser data in the lisp/cedet directory.
|
||||
|
||||
SHELL = @SHELL@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
|
||||
EMACS = ${top_builddir}/src/emacs
|
||||
emacs = EMACSLOADPATH= "${EMACS}" -batch --no-site-file --no-site-lisp
|
||||
|
||||
make_bovine = ${emacs} -l semantic/bovine/grammar -f bovine-batch-make-parser
|
||||
make_wisent = ${emacs} -l semantic/wisent/grammar -f wisent-batch-make-parser
|
||||
|
||||
cedetdir = ${top_srcdir}/lisp/cedet
|
||||
bovinedir = ${cedetdir}/semantic/bovine
|
||||
wisentdir = ${cedetdir}/semantic/wisent
|
||||
|
||||
BOVINE = \
|
||||
${bovinedir}/c-by.el \
|
||||
${bovinedir}/make-by.el \
|
||||
${bovinedir}/scm-by.el
|
||||
|
||||
## FIXME Should include this one too:
|
||||
## ${cedetdir}/semantic/grammar-wy.el
|
||||
## but semantic/grammar.el (which is what we use to generate grammar-wy.el)
|
||||
## requires it!
|
||||
WISENT = \
|
||||
${wisentdir}/javat-wy.el \
|
||||
${wisentdir}/js-wy.el \
|
||||
${wisentdir}/python-wy.el \
|
||||
${cedetdir}/srecode/srt-wy.el
|
||||
|
||||
ALL = ${BOVINE} ${WISENT}
|
||||
|
||||
.PHONY: all bovine wisent
|
||||
|
||||
all: ${ALL}
|
||||
|
||||
bovine: ${BOVINE}
|
||||
|
||||
wisent: ${WISENT}
|
||||
|
||||
|
||||
${bovinedir}/c-by.el: ${srcdir}/c.by
|
||||
[ ! -f "$@" ] || chmod +w "$@"
|
||||
${make_bovine} -o "$@" ${srcdir}/c.by
|
||||
|
||||
${bovinedir}/make-by.el: ${srcdir}/make.by
|
||||
[ ! -f "$@" ] || chmod +w "$@"
|
||||
${make_bovine} -o "$@" ${srcdir}/make.by
|
||||
|
||||
${bovinedir}/scm-by.el: ${srcdir}/scheme.by
|
||||
[ ! -f "$@" ] || chmod +w "$@"
|
||||
${make_bovine} -o "$@" ${srcdir}/scheme.by
|
||||
|
||||
|
||||
${cedetdir}/semantic/grammar-wy.el: ${srcdir}/grammar.wy
|
||||
[ ! -f "$@" ] || chmod +w "$@"
|
||||
${make_wisent} -o "$@" ${srcdir}/grammar.wy
|
||||
|
||||
${wisentdir}/javat-wy.el: ${srcdir}/java-tags.wy
|
||||
[ ! -f "$@" ] || chmod +w "$@"
|
||||
${make_wisent} -o "$@" ${srcdir}/java-tags.wy
|
||||
|
||||
${wisentdir}/js-wy.el: ${srcdir}/js.wy
|
||||
[ ! -f "$@" ] || chmod +w "$@"
|
||||
${make_wisent} -o "$@" ${srcdir}/js.wy
|
||||
|
||||
${wisentdir}/python-wy.el: ${srcdir}/python.wy
|
||||
[ ! -f "$@" ] || chmod +w "$@"
|
||||
${make_wisent} -o "$@" ${srcdir}/python.wy
|
||||
|
||||
${cedetdir}/srecode/srt-wy.el: ${srcdir}/srecode-template.wy
|
||||
[ ! -f "$@" ] || chmod +w "$@"
|
||||
${make_wisent} -o "$@" ${srcdir}/srecode-template.wy
|
||||
|
||||
|
||||
.PHONY: distclean bootstrap-clean maintainer-clean extraclean
|
||||
|
||||
distclean:
|
||||
rm -f Makefile
|
||||
|
||||
bootstrap-clean maintainer-clean: distclean
|
||||
|
||||
## We do not normally delete the generated files, even in bootstrap.
|
||||
## Creating them does not take long, so we could easily change this.
|
||||
extraclean:
|
||||
rm -f ${ALL}
|
||||
|
||||
# Makefile.in ends here
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
This directory contains grammar files in Bison and Wisent, used to
|
||||
generate the parser data in the lisp/semantic/bovine/ and
|
||||
lisp/semantic/wisent/ directories. You can run the parser generators
|
||||
with
|
||||
|
||||
emacs -batch -Q -l semantic/bovine/grammar -f bovine-make-parsers
|
||||
emacs -batch -Q -l semantic/wisent/grammar -f wisent-make-parsers
|
||||
|
||||
Currently, the parser files in lisp/ are not generated directly from
|
||||
these grammar files when making Emacs. This state of affairs, and the
|
||||
contents of this directory, will change in a future version of Emacs.
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
;;; c.by -- LL grammar for C/C++ language specification
|
||||
;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Author: Eric M. Ludlam <zappo@gnu.org>
|
||||
;; David Ponce <david@dponce.com>
|
||||
|
|
@ -41,9 +41,13 @@
|
|||
%provide semantic/bovine/c-by
|
||||
|
||||
%{
|
||||
(declare-function semantic-c-reconstitute-token "semantic/bovine/c")
|
||||
(declare-function semantic-c-reconstitute-template "semantic/bovine/c")
|
||||
(declare-function semantic-expand-c-tag "semantic/bovine/c")
|
||||
(declare-function semantic-c-reconstitute-token "semantic/bovine/c"
|
||||
(tokenpart declmods typedecl))
|
||||
(declare-function semantic-c-reconstitute-template "semantic/bovine/c"
|
||||
(tag specifier))
|
||||
(declare-function semantic-expand-c-tag "semantic/bovine/c" (tag))
|
||||
(declare-function semantic-parse-region "semantic"
|
||||
(start end &optional nonterminal depth returnonerror))
|
||||
}
|
||||
|
||||
%languagemode c-mode c++-mode
|
||||
|
|
@ -897,8 +901,8 @@ varname
|
|||
;; I should store more in this def, but leave it simple for now.
|
||||
;; Klaus Berndl: const and volatile can be written after the type!
|
||||
variablearg
|
||||
: declmods typeformbase cv-declmods opt-ref variablearg-opt-name
|
||||
( VARIABLE-TAG (list $5) $2 nil
|
||||
: declmods typeformbase cv-declmods opt-ref variablearg-opt-name opt-assign
|
||||
( VARIABLE-TAG (list (append $5 ,$6)) $2 nil
|
||||
:constant-flag (if (member "const" (append $1 $3)) t nil)
|
||||
:typemodifiers (delete "const" (append $1 $3))
|
||||
:reference (car ,$4)
|
||||
|
|
@ -908,6 +912,8 @@ variablearg
|
|||
variablearg-opt-name
|
||||
: varname
|
||||
( ,$1 )
|
||||
| semantic-list arg-list
|
||||
( (car ( EXPAND $1 function-pointer )) $2)
|
||||
;; Klaus Berndl: This allows variableargs without a arg-name being
|
||||
;; parsed correct even if there several pointers (*)
|
||||
| opt-stars
|
||||
|
|
@ -922,9 +928,9 @@ varname-opt-initializer
|
|||
|
||||
varnamelist
|
||||
: opt-ref varname varname-opt-initializer COMA varnamelist
|
||||
( ,(cons $2 $5) )
|
||||
( ,(cons (append $2 $3) $5) )
|
||||
| opt-ref varname varname-opt-initializer
|
||||
( $2 )
|
||||
( (append $2 $3) )
|
||||
;
|
||||
|
||||
;; Klaus Berndl: Is necessary to parse stuff like
|
||||
|
|
@ -1107,8 +1113,8 @@ functionname
|
|||
;
|
||||
|
||||
function-pointer
|
||||
: LPAREN STAR symbol RPAREN
|
||||
( (concat "*" $3) )
|
||||
: LPAREN STAR opt-symbol RPAREN
|
||||
( (concat "*" ,(car $3)) )
|
||||
| LPAREN symbol RPAREN
|
||||
( $2 )
|
||||
;
|
||||
|
|
@ -1148,16 +1154,26 @@ type-cast-list
|
|||
: open-paren typeformbase close-paren
|
||||
;
|
||||
|
||||
opt-stuff-after-symbol
|
||||
: PAREN_BLCK
|
||||
| BRACK_BLCK
|
||||
opt-brackets-after-symbol
|
||||
: brackets-after-symbol
|
||||
| ;; EMPTY
|
||||
;
|
||||
|
||||
brackets-after-symbol
|
||||
: PAREN_BLCK
|
||||
| BRACK_BLCK
|
||||
;
|
||||
|
||||
multi-stage-dereference
|
||||
: namespace-symbol opt-stuff-after-symbol PERIOD multi-stage-dereference ;; method call
|
||||
| namespace-symbol opt-stuff-after-symbol MINUS GREATER multi-stage-dereference ;;method call
|
||||
| namespace-symbol opt-stuff-after-symbol
|
||||
: namespace-symbol opt-brackets-after-symbol
|
||||
PERIOD multi-stage-dereference ;; method call
|
||||
| namespace-symbol opt-brackets-after-symbol
|
||||
MINUS GREATER multi-stage-dereference ;;method call
|
||||
| namespace-symbol opt-brackets-after-symbol
|
||||
PERIOD namespace-symbol opt-brackets-after-symbol
|
||||
| namespace-symbol opt-brackets-after-symbol
|
||||
MINUS GREATER namespace-symbol opt-brackets-after-symbol
|
||||
| namespace-symbol brackets-after-symbol
|
||||
;
|
||||
|
||||
string-seq
|
||||
|
|
@ -1183,6 +1199,7 @@ expr-binop
|
|||
| AMPERSAND
|
||||
| OR OR
|
||||
| OR
|
||||
| MOD
|
||||
;; There are more.
|
||||
;
|
||||
|
||||
|
|
@ -1200,8 +1217,7 @@ unaryexpression
|
|||
| multi-stage-dereference
|
||||
| NEW multi-stage-dereference
|
||||
| NEW builtintype-types semantic-list
|
||||
;; Klaus Berndl: symbol -> namespace-symbol!
|
||||
| namespace-symbol
|
||||
| symbol
|
||||
;; Klaus Berndl: C/C++ allows sequences of strings which are
|
||||
;; concatenated by the precompiler to one string
|
||||
| string-seq
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; semantic-grammar.wy -- LALR grammar of Semantic input grammars
|
||||
;;
|
||||
;; Copyright (C) 2002-2013 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2002-2014 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Author: David Ponce <david@dponce.com>
|
||||
;; Maintainer: David Ponce <david@dponce.com>
|
||||
|
|
@ -94,7 +94,7 @@
|
|||
%token <open-paren> LBRACE "{"
|
||||
%token <close-paren> RBRACE "}"
|
||||
|
||||
;; Punctuations
|
||||
;; Punctuation
|
||||
%type <punctuation>
|
||||
%token <punctuation> COLON ":"
|
||||
%token <punctuation> SEMI ";"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; java-tags.wy -- Semantic LALR grammar for Java
|
||||
|
||||
;; Copyright (C) 2002-2013 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2002-2014 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Author: David Ponce <david@dponce.com>
|
||||
;; Maintainer: David Ponce <david@dponce.com>
|
||||
|
|
@ -25,6 +25,11 @@
|
|||
%package wisent-java-tags-wy
|
||||
%provide semantic/wisent/javat-wy
|
||||
|
||||
%{
|
||||
(declare-function semantic-parse-region "semantic"
|
||||
(start end &optional nonterminal depth returnonerror))
|
||||
}
|
||||
|
||||
%languagemode java-mode
|
||||
|
||||
;; The default start symbol
|
||||
|
|
@ -154,7 +159,7 @@
|
|||
|
||||
%keyword CHAR "char"
|
||||
%put CHAR summary
|
||||
"Integral primitive type ('\u0000' to '\uffff') (0 to 65535)"
|
||||
"Integral primitive type (0 to 65535)"
|
||||
|
||||
%keyword CLASS "class"
|
||||
%put CLASS summary
|
||||
|
|
@ -312,7 +317,7 @@
|
|||
%keyword WHILE "while"
|
||||
%put WHILE summary
|
||||
"while (<expr>) <stmt> | do <stmt> while (<expr>);"
|
||||
|
||||
|
||||
;; --------------------------
|
||||
;; Official javadoc line tags
|
||||
;; --------------------------
|
||||
|
|
@ -340,27 +345,27 @@
|
|||
%keyword _AUTHOR "@author"
|
||||
%put _AUTHOR javadoc (seq 1 usage (type))
|
||||
%keyword _VERSION "@version"
|
||||
%put _VERSION javadoc (seq 2 usage (type))
|
||||
%put _VERSION javadoc (seq 2 usage (type))
|
||||
%keyword _PARAM "@param"
|
||||
%put _PARAM javadoc (seq 3 usage (function) with-name t)
|
||||
%put _PARAM javadoc (seq 3 usage (function) with-name t)
|
||||
%keyword _RETURN "@return"
|
||||
%put _RETURN javadoc (seq 4 usage (function))
|
||||
%put _RETURN javadoc (seq 4 usage (function))
|
||||
%keyword _EXCEPTION "@exception"
|
||||
%put _EXCEPTION javadoc (seq 5 usage (function) with-name t)
|
||||
%put _EXCEPTION javadoc (seq 5 usage (function) with-name t)
|
||||
%keyword _THROWS "@throws"
|
||||
%put _THROWS javadoc (seq 6 usage (function) with-name t)
|
||||
%put _THROWS javadoc (seq 6 usage (function) with-name t)
|
||||
%keyword _SEE "@see"
|
||||
%put _SEE javadoc (seq 7 usage (type function variable) opt t with-ref t)
|
||||
%put _SEE javadoc (seq 7 usage (type function variable) opt t with-ref t)
|
||||
%keyword _SINCE "@since"
|
||||
%put _SINCE javadoc (seq 8 usage (type function variable) opt t)
|
||||
%put _SINCE javadoc (seq 8 usage (type function variable) opt t)
|
||||
%keyword _SERIAL "@serial"
|
||||
%put _SERIAL javadoc (seq 9 usage (variable) opt t)
|
||||
%put _SERIAL javadoc (seq 9 usage (variable) opt t)
|
||||
%keyword _SERIALDATA "@serialData"
|
||||
%put _SERIALDATA javadoc (seq 10 usage (function) opt t)
|
||||
%put _SERIALDATA javadoc (seq 10 usage (function) opt t)
|
||||
%keyword _SERIALFIELD "@serialField"
|
||||
%put _SERIALFIELD javadoc (seq 11 usage (variable) opt t)
|
||||
%put _SERIALFIELD javadoc (seq 11 usage (variable) opt t)
|
||||
%keyword _DEPRECATED "@deprecated"
|
||||
%put _DEPRECATED javadoc (seq 12 usage (type function variable) opt t)
|
||||
%put _DEPRECATED javadoc (seq 12 usage (type function variable) opt t)
|
||||
|
||||
%%
|
||||
|
||||
|
|
@ -387,7 +392,7 @@ package_declaration
|
|||
;
|
||||
|
||||
;;; Include file token
|
||||
;; ("FILE" include SYSTEM "DOCSTRING")
|
||||
;; ("FILE" include SYSTEM "DOCSTRING")
|
||||
import_declaration
|
||||
: IMPORT qualified_name SEMICOLON
|
||||
(INCLUDE-TAG $2 nil)
|
||||
|
|
@ -476,7 +481,7 @@ static_initializer
|
|||
;
|
||||
|
||||
;;; Function token
|
||||
;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING")
|
||||
;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING")
|
||||
constructor_declaration
|
||||
: modifiers_opt constructor_declarator throwsc_opt constructor_body
|
||||
(FUNCTION-TAG (car $2) nil (cdr $2)
|
||||
|
|
@ -491,11 +496,11 @@ constructor_declarator
|
|||
;
|
||||
|
||||
constructor_body
|
||||
: block
|
||||
: block
|
||||
;
|
||||
|
||||
;;; Function token
|
||||
;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING")
|
||||
;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING")
|
||||
method_declaration
|
||||
: modifiers_opt VOID method_declarator throwsc_opt method_body
|
||||
(FUNCTION-TAG (car $3) $2 (cdr $3) :typemodifiers $1 :throws $4)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; javascript-jv.wy -- LALR grammar for Javascript
|
||||
|
||||
;; Copyright (C) 2005-2013 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2005-2014 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1998-2011 Ecma International.
|
||||
|
||||
;; Author: Joakim Verona
|
||||
|
|
@ -59,7 +59,13 @@
|
|||
|
||||
%package wisent-javascript-jv-wy
|
||||
%provide semantic/wisent/js-wy
|
||||
;; JAVE I prefere ecmascript-mode
|
||||
|
||||
%{
|
||||
(declare-function semantic-parse-region "semantic"
|
||||
(start end &optional nonterminal depth returnonerror))
|
||||
}
|
||||
|
||||
;; JAVE I preferred ecmascript-mode.
|
||||
%languagemode ecmascript-mode javascript-mode
|
||||
|
||||
;; The default goal
|
||||
|
|
@ -270,8 +276,8 @@ Statement : Block
|
|||
| BreakStatement
|
||||
| ReturnStatement
|
||||
| WithStatement
|
||||
;
|
||||
|
||||
;
|
||||
|
||||
FunctionDeclaration : FUNCTION VARIABLE FormalParameterListBlock Block
|
||||
(FUNCTION-TAG $2 nil $3)
|
||||
;
|
||||
|
|
@ -347,7 +353,7 @@ IterationExpression : WHILE OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statem
|
|||
ContinueStatement : CONTINUE SEMICOLON
|
||||
;
|
||||
|
||||
;;JAVE break needs labels
|
||||
;;JAVE break needs labels
|
||||
BreakStatement : BREAK SEMICOLON
|
||||
;; | BREAK identifier SEMICOLON
|
||||
;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; make.by -- BY notation for Makefiles.
|
||||
|
||||
;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Author: Eric M. Ludlam <zappo@gnu.org>
|
||||
;; David Ponce <david@dponce.com>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; python.wy -- LALR grammar for Python
|
||||
|
||||
;; Copyright (C) 2002-2013 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2002-2014 Free Software Foundation, Inc.
|
||||
;; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
|
||||
;; 2009, 2010 Python Software Foundation; All Rights Reserved
|
||||
|
||||
|
|
@ -91,8 +91,12 @@
|
|||
%provide semantic/wisent/python-wy
|
||||
|
||||
%{
|
||||
(declare-function wisent-python-reconstitute-function-tag "semantic/wisent/python")
|
||||
(declare-function wisent-python-reconstitute-class-tag "semantic/wisent/python")
|
||||
(declare-function wisent-python-reconstitute-function-tag
|
||||
"semantic/wisent/python" (tag suite))
|
||||
(declare-function wisent-python-reconstitute-class-tag "semantic/wisent/python"
|
||||
(tag))
|
||||
(declare-function semantic-parse-region "semantic"
|
||||
(start end &optional nonterminal depth returnonerror))
|
||||
}
|
||||
|
||||
%languagemode python-mode
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; scheme.by -- Scheme BNF language specification
|
||||
|
||||
;; Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; srecode-template.wy --- Semantic Recoder Template parser
|
||||
|
||||
;; Copyright (C) 2005-2013 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2005-2014 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Eric Ludlam <zappo@gnu.org>
|
||||
;; Keywords: syntax
|
||||
|
|
@ -125,6 +125,10 @@ opt-read-fcn
|
|||
variable
|
||||
: SET symbol insertable-string-list newline
|
||||
(VARIABLE-TAG $2 nil $3)
|
||||
| SET symbol number newline
|
||||
;; This so a common error w/ priority works.
|
||||
;; Note that "number" still has a string value in the lexer.
|
||||
(VARIABLE-TAG $2 nil (list $3))
|
||||
| SHOW symbol newline
|
||||
(VARIABLE-TAG $2 nil t)
|
||||
;
|
||||
|
|
@ -260,8 +264,8 @@ It ignores whitespace, newlines and comments."
|
|||
srecode-template-separator-block
|
||||
srecode-template-wy--<keyword>-keyword-analyzer
|
||||
srecode-template-property-analyzer
|
||||
srecode-template-wy--<symbol>-regexp-analyzer
|
||||
srecode-template-wy--<number>-regexp-analyzer
|
||||
srecode-template-wy--<symbol>-regexp-analyzer
|
||||
srecode-template-wy--<string>-sexp-analyzer
|
||||
srecode-template-wy--<punctuation>-string-analyzer
|
||||
semantic-lex-default-action
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
# Build Emacs with various options for profiling, debugging,
|
||||
# with and without warnings enabled etc.
|
||||
|
||||
# Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
|
||||
require 5;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Getopt::Long;
|
||||
use File::Basename;
|
||||
use Cwd;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
Instructions to create pretest or release tarballs.
|
||||
-- originally written by Gerd Moellmann, amended by Francesco Potortì
|
||||
Instructions to create pretest or release tarballs. -*- coding: utf-8 -*-
|
||||
-- originally written by Gerd Moellmann, amended by Francesco Potortì
|
||||
with the initial help of Eli Zaretskii
|
||||
|
||||
|
||||
|
|
@ -28,14 +28,10 @@ General steps (for each step, check for possible errors):
|
|||
M-: (require 'authors) RET
|
||||
M-x authors RET
|
||||
|
||||
There is almost guaranteed to be an "*Authors Errors*" buffer with
|
||||
problems caused by certain bad ChangeLog entries. You can ignore
|
||||
the very old ones (eg lisp/erc has a lot). If there are errors
|
||||
related to new entries (especially entries that are new since the
|
||||
last pretest), see if you can fix them. If there was a ChangeLog
|
||||
typo, fix it. If a file was deleted or renamed, consider adding
|
||||
an appropriate entry to authors-ignored-files, authors-valid-file-names,
|
||||
or authors-renamed-files-alist.
|
||||
If there is an "*Authors Errors*" buffer, address the issues.
|
||||
If there was a ChangeLog typo, fix it. If a file was deleted or
|
||||
renamed, consider adding an appropriate entry to authors-ignored-files,
|
||||
authors-valid-file-names, or authors-renamed-files-alist.
|
||||
|
||||
If necessary, repeat M-x authors after making those changes.
|
||||
Save the "*Authors*" buffer as etc/AUTHORS.
|
||||
|
|
@ -50,9 +46,20 @@ General steps (for each step, check for possible errors):
|
|||
For a pretest, start at version .90. After .99, use .990 (so that
|
||||
it sorts).
|
||||
|
||||
The final pretest should be a release candidate. Set the version
|
||||
number to that of the actual release. Pick a date about a week
|
||||
from now when you intend to make the release. Use M-x add-release-logs
|
||||
to add the ChangeLog entries for that date to the tar file (but
|
||||
not yet to the repository). Name the tar file as
|
||||
emacs-XX.Y-rc1.tar. If all goes well in the following week, you
|
||||
can simply rename the file and use it for the actual release.
|
||||
|
||||
5. autoreconf -i -I m4 --force
|
||||
make bootstrap
|
||||
|
||||
make -C etc/refcards
|
||||
make -C etc/refcards clean
|
||||
|
||||
6. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
|
||||
|
||||
Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed
|
||||
|
|
@ -77,7 +84,8 @@ General steps (for each step, check for possible errors):
|
|||
compile-NEW.log and compare it against an old one. The easiest way
|
||||
to do that is to visit the old log in Emacs, change the version
|
||||
number of the old Emacs to __, do the same with the new log and do
|
||||
M-x ediff. Especially check that Info files aren't built.
|
||||
M-x ediff. Especially check that Info files aren't built, and that
|
||||
no autotools (autoconf etc) run.
|
||||
|
||||
9. cd EMACS_ROOT_DIR && bzr tag TAG
|
||||
TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release.
|
||||
|
|
@ -135,6 +143,8 @@ General steps (for each step, check for possible errors):
|
|||
Download them and check the signatures. Check they build.
|
||||
|
||||
12. For a pretest, announce it on emacs-devel and info-gnu-emacs@gnu.org.
|
||||
Probably should also include the platform-testers list:
|
||||
https://lists.gnu.org/mailman/listinfo/platform-testers
|
||||
For a release, also announce it on info-gnu@gnu.org. (Probably
|
||||
bcc the info- addresses to make it less likely that people will
|
||||
followup on those lists.)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#
|
||||
# admin/merge-gnulib
|
||||
|
||||
# Copyright 2012-2013 Free Software Foundation, Inc.
|
||||
# Copyright 2012-2014 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -26,22 +26,25 @@
|
|||
GNULIB_URL=git://git.savannah.gnu.org/gnulib.git
|
||||
|
||||
GNULIB_MODULES='
|
||||
alloca-opt c-ctype c-strcase
|
||||
careadlinkat close-stream crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512
|
||||
alloca-opt byteswap c-ctype c-strcase
|
||||
careadlinkat close-stream count-one-bits count-trailing-zeros
|
||||
crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512
|
||||
dtoastr dtotimespec dup2 environ execinfo faccessat
|
||||
fcntl-h fdopendir filemode fstatat getloadavg getopt-gnu gettime gettimeofday
|
||||
ignore-value intprops largefile lstat
|
||||
manywarnings memrchr mktime
|
||||
pselect pthread_sigmask putenv readlink readlinkat
|
||||
fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync
|
||||
getloadavg getopt-gnu gettime gettimeofday
|
||||
intprops largefile lstat
|
||||
manywarnings memrchr mkostemp mktime
|
||||
pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat
|
||||
sig2str socklen stat-time stdalign stdarg stdbool stdio
|
||||
strftime strtoimax strtoumax symlink sys_stat
|
||||
sys_time time timer-time timespec-add timespec-sub unsetenv utimens
|
||||
sys_time time timer-time timespec-add timespec-sub
|
||||
unsetenv update-copyright utimens
|
||||
warnings
|
||||
'
|
||||
|
||||
GNULIB_TOOL_FLAGS='
|
||||
--avoid=dup
|
||||
--avoid=errno --avoid=fchdir --avoid=fcntl --avoid=fstat
|
||||
--avoid=close --avoid=dup
|
||||
--avoid=fchdir --avoid=fstat
|
||||
--avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow
|
||||
--avoid=open --avoid=openat-die --avoid=opendir
|
||||
--avoid=raise
|
||||
|
|
@ -89,7 +92,8 @@ test -x "$gnulib_srcdir"/gnulib-tool || {
|
|||
}
|
||||
|
||||
"$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS $GNULIB_MODULES &&
|
||||
rm -- "$src"m4/fcntl-o.m4 "$src"m4/gnulib-cache.m4 "$src"m4/warn-on-use.m4 &&
|
||||
rm -- "$src"lib/gl_openssl.h "$src"m4/fcntl-o.m4 "$src"m4/gl-openssl.m4 \
|
||||
"$src"m4/gnulib-cache.m4"$src" m4/warn-on-use.m4 &&
|
||||
cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc &&
|
||||
cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux &&
|
||||
autoreconf -i -I m4 -- ${src:+"$src"}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@ This is 95% of all you will ever need to know.
|
|||
|
||||
** How do I report a bug?
|
||||
Use M-x report-emacs-bug, or send mail to bug-gnu-emacs@gnu.org.
|
||||
If you want to Cc someone, use an "X-Debbugs-CC" header instead.
|
||||
If you want to Cc someone, use an "X-Debbugs-CC" header (or
|
||||
pseudo-header, see below) instead.
|
||||
|
||||
** How do I comment on a bug?
|
||||
Reply to a mail on the bug-gnu-emacs list in the normal way.
|
||||
|
|
@ -52,8 +53,8 @@ i) Your report will be assigned a number and generate an automatic reply.
|
|||
ii) Optionally, you can set some database parameters when you first
|
||||
report a bug (see "Setting bug parameters" below).
|
||||
|
||||
iii) If you want to CC: someone, use X-Debbugs-CC: (this is important;
|
||||
see below).
|
||||
iii) If you want to CC: someone, use X-Debbugs-CC: (note this only
|
||||
applies to _new_ reports, not followups).
|
||||
|
||||
Once your report is filed and assigned a number, it is sent out to the
|
||||
bug mailing list. In some cases, it may be appropriate to just file a
|
||||
|
|
@ -92,18 +93,21 @@ but create duplicates and errors. (It is possible, but unlikely, that
|
|||
you might want to have a dialog with the owner address, outside of
|
||||
normal bug reporting.)
|
||||
|
||||
** When reporting a bug, to send a Cc to another address
|
||||
** When reporting a new bug, to send a Cc to another address
|
||||
(e.g. bug-cc-mode@gnu.org), do NOT just use a Cc: header.
|
||||
Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a
|
||||
mail with the bug report number in. If you do not do this, each reply
|
||||
in the subsequent discussion will end up creating a new bug.
|
||||
This is annoying.
|
||||
in the subsequent discussion might end up creating a new bug.
|
||||
This is annoying. (So annoying that a form of message-id tracking has
|
||||
been implemented to hopefully stop this happening, but it is still
|
||||
better to use X-Debbugs-CC.)
|
||||
|
||||
(So annoying that a form of message-id tracking has been implemented
|
||||
to hopefully stop this happening, but it is still better to use X-Debbugs-CC.)
|
||||
Like any X-Debbugs- header, this one can also be specified in the
|
||||
pseudo-header (see below), if your mail client does not let you add
|
||||
"X-" headers.
|
||||
|
||||
If a new report contains X-Debbugs-CC in the input, this is
|
||||
converted to a real Cc header in the output. (See Bug#1720).
|
||||
converted to a real Cc header in the output. (See Bug#1780,5384)
|
||||
It is also merged into the Resent-CC header (see below).
|
||||
|
||||
** How does Debbugs send out mails?
|
||||
|
|
@ -218,8 +222,8 @@ Package: emacs
|
|||
Version: 23.0.60
|
||||
Severity: minor
|
||||
|
||||
This can also include tags. Some things (e.g. submitter) don't seem to
|
||||
work here.
|
||||
This can also include tags, or any X-Debbugs- setting.
|
||||
Some things (e.g. submitter) don't seem to work here.
|
||||
|
||||
Otherwise, send mail to the control server, control@debbugs.gnu.org.
|
||||
At the start of the message body, supply the desired commands, one per
|
||||
|
|
@ -627,7 +631,9 @@ following headers:
|
|||
|
||||
1) The leading envelope From line.
|
||||
2) Message-ID (get it from /var/log/mailman/vette).
|
||||
3) X-Debbugs-Envelope-To: submit
|
||||
3) X-Debbugs-Envelope-To: xxx
|
||||
For a new report, xxx = submit; for a control message, xxx = control;
|
||||
for a reply to bug#123, xxx = 123
|
||||
|
||||
Then pipe it to receive as above.
|
||||
|
||||
|
|
|
|||
|
|
@ -316,3 +316,85 @@ When finished, use
|
|||
bzr bisect reset
|
||||
|
||||
or simply delete the entire branch if you created it just for this.
|
||||
|
||||
* Commit emails
|
||||
|
||||
** Old method: bzr-hookless-email
|
||||
https://launchpad.net/bzr-hookless-email
|
||||
|
||||
Runs hourly via cron. Must ask Savannah admins to enable/disable it
|
||||
for each branch. Stores the last revision that it mailed as
|
||||
last_revision_mailed in branch.conf on the server. Breaks with bzr 2.6:
|
||||
|
||||
http://lists.gnu.org/archive/html/savannah-hackers-public/2013-05/msg00000.html
|
||||
|
||||
Fix from https://bugs.launchpad.net/bzr-hookless-email/+bug/988195
|
||||
only partially works. Breaks again on every merge commit:
|
||||
|
||||
https://lists.ubuntu.com/archives/bazaar/2013q2/075520.html
|
||||
http://lists.gnu.org/archive/html/savannah-hackers-public/2013-05/msg00024.html
|
||||
|
||||
You can force it to skip the merge commit by changing the value for
|
||||
last_revision_mailed, eg:
|
||||
|
||||
bzr config last_revision_mailed=xfq.free@gmail.com-20130603233720-u1aumaxvf3o0rlai -d bzr+ssh://USERNAME@bzr.savannah.gnu.org/emacs/trunk/
|
||||
|
||||
** New method: bzr-email plugin
|
||||
https://launchpad.net/bzr-email
|
||||
http://lists.gnu.org/archive/html/savannah-hackers-public/2013-06/msg00007.html
|
||||
|
||||
Runs on commit. Projects can enable it themselves by using `bzr
|
||||
config' to set post_commit_to option for a branch. See `bzr help email'
|
||||
(if you have the plugin installed) for other options.
|
||||
|
||||
The From: address will be that of your Savannah account, rather than
|
||||
your `bzr whoami' information.
|
||||
|
||||
Note: if you have the bzr-email plugin installed locally, then when
|
||||
you commit to the Emacs repository it will also try to send a commit
|
||||
email from your local machine. If your machine is not configured to
|
||||
send external mail, this will just fail. In any case, you may prefer
|
||||
to either remove the plugin from your machine, or disable it for Emacs
|
||||
branches. You can do this either by editing branch.conf in your Emacs
|
||||
branches, to override the server setting (untested; not sure this
|
||||
works), or by adding an entry to ~/.bazaar/locations.conf:
|
||||
|
||||
[bzr+ssh://USERNAME@bzr.savannah.gnu.org/emacs/*/]
|
||||
post_commit_to = ""
|
||||
|
||||
You have to use locations.conf rather than bazaar.conf because the
|
||||
latter has a lower priority than branch.conf.
|
||||
|
||||
* Using git-bzr
|
||||
|
||||
** initially
|
||||
|
||||
You can use Git locally to talk to the Bazaar repo as a "remote" repo
|
||||
via git-bzr (aka git-remote-bzr). Initial clone:
|
||||
|
||||
git clone bzr::bzr+ssh://USER@bzr.sv.gnu.org/emacs/trunk e
|
||||
|
||||
This creates the working dir e/ (with subdir .git, etc). Disk usage
|
||||
is 13G (as of early 2014), so you will probably want to repack:
|
||||
|
||||
git repack -a -d -f --window=250 --depth=250 --window-memory=N
|
||||
|
||||
where N is chosen to avoid swapping. E.g., given 512MB RAM, N="200m"
|
||||
results in "du -sh .git" => 559M, about double the smallest reported
|
||||
value (obtained with "deprecated" command "git gc --aggressive").
|
||||
|
||||
** steady-state
|
||||
|
||||
Use "fetch", "pull" and other remote-to-local commands as usual.
|
||||
|
||||
For "push", the Emacs Bazaar repo is configured with
|
||||
|
||||
append_revisions_only = True
|
||||
|
||||
so some versions of git-remote-bzr may raise AppendRevisionsOnlyViolation
|
||||
(in func do_export) instead of displaying a "non fast-forward" message
|
||||
and skipping the branch. See:
|
||||
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg00436.html
|
||||
|
||||
which includes a provisional patch to git-remote-bzr to do that.
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ entry in their name, not yours.
|
|||
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00793.html
|
||||
There is no need to make change log entries for files such as NEWS,
|
||||
MAINTAINERS, and FOR-RELEASE.
|
||||
"There is no need" means you don't have to, but you can if you want to.
|
||||
|
||||
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2006-12/msg01135.html
|
||||
There is no need to indicate regeneration of files such as configure
|
||||
|
|
|
|||
|
|
@ -45,6 +45,15 @@ Date: Tue, 31 Mar 2009 12:21:20 +0900
|
|||
for modern source-control systems with a global log, it's better to
|
||||
have something like "Regenerate configure".
|
||||
|
||||
(4) (Added in 2014) In commit comments, and ChangeLog files, it is best
|
||||
to use ways of identifying revisions that are not dependent on a
|
||||
particular version control system. (At time of writing Emacs is
|
||||
about to move to its fourth VCS and another move in the future is
|
||||
not impossible.) An excellent way to identify commits is by
|
||||
quoting their summary line. Another is with an action stamp - an
|
||||
RFC3339 date followed by ! followed by the committer's email - for
|
||||
example, "2014-01-16T05:43:35Z!esr@thyrsus.com". Often, "my
|
||||
previous commit" will suffice.
|
||||
|
||||
Followup discussion:
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2010-01/msg00897.html
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (C) 2007-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2007-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,24 +1,21 @@
|
|||
NOTES ON THE EMACS PACKAGE ARCHIVE
|
||||
|
||||
The GNU Emacs package archive, at elpa.gnu.org, is managed using a Bzr
|
||||
branch named "elpa", hosted on Savannah. To check it out:
|
||||
The GNU Emacs package archive, at elpa.gnu.org, is managed using a Git
|
||||
repository named "elpa", hosted on Savannah. To check it out:
|
||||
|
||||
bzr branch bzr+ssh://USER@bzr.savannah.gnu.org/emacs/elpa elpa
|
||||
git clone git://bzr.sv.gnu.org/emacs/elpa
|
||||
cd elpa
|
||||
echo "public_branch = bzr+ssh://USER@bzr.savannah.gnu.org/emacs/elpa" >> .bzr/branch/branch.conf
|
||||
bzr bind bzr+ssh://USERNAME@bzr.savannah.gnu.org/emacs/elpa
|
||||
git remote set-url --push origin git+ssh://bzr.sv.gnu.org/srv/git/emacs/elpa
|
||||
[create task branch for edits, etc.]
|
||||
|
||||
Changes to this branch propagate to elpa.gnu.org in a semi-manual way.
|
||||
There exists a copy of the elpa branch on that machine. Someone with
|
||||
access logs in, pulls the latest changes from Savannah, and runs a
|
||||
"deployment" script. This script (which is itself kept in the Bzr
|
||||
branch) generates the content visible at http://elpa.gnu.org/packages.
|
||||
Changes to this branch propagate to elpa.gnu.org via a "deployment" script run
|
||||
daily. This script (which is kept in elpa/admin/update-archive.sh) generates
|
||||
the content visible at http://elpa.gnu.org/packages.
|
||||
|
||||
The reason we set things up this way, instead of using the package
|
||||
upload commands in package-x.el, is to let Emacs hackers conveniently
|
||||
edit the contents of the "elpa" branch. (In particular, multi-file
|
||||
packages are stored on the branch in source form, not as tarfiles.)
|
||||
A new package is released as soon as the "version number" of that package is
|
||||
changed. So you can use `elpa' to work on a package without fear of releasing
|
||||
those changes prematurely. And once the code is ready, just bump the
|
||||
version number to make a new release of the package.
|
||||
|
||||
It is easy to use the elpa branch to deploy a "local" copy of the
|
||||
package archive. For details, see the README file in the elpa branch.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (C) 2002-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
|
|
|
|||
66
admin/notes/hydra
Normal file
66
admin/notes/hydra
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
-*- outline -*-
|
||||
|
||||
Copyright (C) 2013-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA
|
||||
|
||||
A continuous build for Emacs can be found at
|
||||
http://hydra.nixos.org/jobset/gnu/emacs-trunk
|
||||
http://hydra.nixos.org/jobset/gnu/emacs-24
|
||||
|
||||
* It builds Emacs on various platforms.
|
||||
Sometimes jobs fail due to hydra problems rather than Emacs problems.
|
||||
Eg it seems like the cygwin build will never work again.
|
||||
http://lists.gnu.org/archive/html/hydra-users/2013-08/msg00000.html
|
||||
|
||||
* Mail notifications
|
||||
In addition to the web interface, Hydra can send notifications by
|
||||
email when the build status of a project changes—e.g., from
|
||||
`SUCCEEDED' to `FAILED'. It sends notifications about build status in
|
||||
Emacs trunk to emacs-buildstatus@gnu.org.
|
||||
|
||||
If you want to receive these notifications, please subscribe at
|
||||
http://lists.gnu.org/mailman/listinfo/emacs-buildstatus
|
||||
|
||||
* The Emacs jobset consists of the following jobs:
|
||||
|
||||
** The `tarball' job
|
||||
which gets a checkout from bzr, and does a bootstrap followed
|
||||
by running make-dist to create a tarball. If this job fails, all the
|
||||
others will too (because they use the tarball as input).
|
||||
|
||||
** The `build' job
|
||||
which starts from the tarball and does a normal build
|
||||
|
||||
** The 'coverage' job
|
||||
does a gcov build and then runs `make check'. Fails if any test fails.
|
||||
|
||||
* Nix expressions
|
||||
The recipe for GNU Emacs are available via Git:
|
||||
http://git.savannah.gnu.org/cgit/hydra-recipes.git/tree/emacs
|
||||
|
||||
To modify the build job, email the patch to hydra-users@gnu.org. The
|
||||
build recipes are written in the Nix language.
|
||||
|
||||
* Other Information
|
||||
For a list of other GNU packages that have a continuous build on
|
||||
Hydra, see http://hydra.nixos.org/project/gnu
|
||||
|
||||
See http://www.gnu.org/software/devel.html#Hydra for more information.
|
||||
|
||||
|
||||
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/>.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
Some lisp/emacs-lisp/ Features and Where They Are Documented
|
||||
|
||||
Copyright (C) 2007-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2007-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
-*- coding: utf-8; mode: text; -*-
|
||||
|
||||
Copyright (C) 2007-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2007-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
From README.multi-tty in the multi-tty branch.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
-*-mode: text; coding: latin-1;-*-
|
||||
-*-mode: text; coding: utf-8;-*-
|
||||
|
||||
Copyright (C) 2002-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
Problems, fixmes and other unicode-related issues
|
||||
|
|
@ -12,9 +12,9 @@ regard to completeness.
|
|||
|
||||
* SINGLE_BYTE_CHAR_P returns true for Latin-1 characters, which has
|
||||
undesirable effects. E.g.:
|
||||
(multibyte-string-p (let ((s "x")) (aset s 0 ?£) s)) => nil
|
||||
(multibyte-string-p (concat [?£])) => nil
|
||||
(text-char-description ?£) => "M-#"
|
||||
(multibyte-string-p (let ((s "x")) (aset s 0 ?£) s)) => nil
|
||||
(multibyte-string-p (concat [?£])) => nil
|
||||
(text-char-description ?£) => "M-#"
|
||||
|
||||
These examples are all fixed by the change of 2002-10-14, but
|
||||
there still exist questionable SINGLE_BYTE_CHAR_P in the
|
||||
|
|
@ -77,7 +77,7 @@ regard to completeness.
|
|||
spelling and calendar, but that's not a Unicode issue.)
|
||||
|
||||
* Handle Unicode combining characters usefully, e.g. diacritics, and
|
||||
handle more scripts specifically (à la Devanagari). There are
|
||||
handle more scripts specifically (à la Devanagari). There are
|
||||
issues with canonicalization.
|
||||
|
||||
* We need tabular input methods, e.g. for maths symbols. (Not
|
||||
|
|
@ -98,6 +98,134 @@ regard to completeness.
|
|||
* Old auto-save files, and similar files, such as Gnus drafts,
|
||||
containing non-ASCII characters probably won't be re-read correctly.
|
||||
|
||||
|
||||
Source file encoding
|
||||
--------------------
|
||||
|
||||
Most Emacs source files are encoded in UTF-8 (or in ASCII, which is a
|
||||
subset), but there are a few exceptions, listed below. Perhaps
|
||||
someday many of these files will be converted to UTF-8, for
|
||||
convenience when using tools like 'grep -r', but this might need
|
||||
nontrivial changes to the build process.
|
||||
|
||||
* chinese-big5
|
||||
|
||||
These are verbatim copies of files taken from external sources.
|
||||
They haven't been converted to UTF-8.
|
||||
|
||||
leim/CXTERM-DIC/4Corner.tit
|
||||
leim/CXTERM-DIC/ARRAY30.tit
|
||||
leim/CXTERM-DIC/ECDICT.tit
|
||||
leim/CXTERM-DIC/ETZY.tit
|
||||
leim/CXTERM-DIC/PY-b5.tit
|
||||
leim/CXTERM-DIC/Punct-b5.tit
|
||||
leim/CXTERM-DIC/QJ-b5.tit
|
||||
leim/CXTERM-DIC/ZOZY.tit
|
||||
leim/MISC-DIC/CTLau-b5.html
|
||||
leim/MISC-DIC/cangjie-table.b5
|
||||
|
||||
* chinese-iso-8bit
|
||||
|
||||
These are verbatim copies of files taken from external sources.
|
||||
They haven't been converted to UTF-8.
|
||||
|
||||
leim/CXTERM-DIC/CCDOSPY.tit
|
||||
leim/CXTERM-DIC/Punct.tit
|
||||
leim/CXTERM-DIC/QJ.tit
|
||||
leim/CXTERM-DIC/SW.tit
|
||||
leim/CXTERM-DIC/TONEPY.tit
|
||||
leim/MISC-DIC/pinyin.map
|
||||
leim/MISC-DIC/CTLau.html
|
||||
leim/MISC-DIC/ziranma.cin
|
||||
|
||||
* cp850
|
||||
|
||||
This file contains non-ASCII characters in unibyte strings. When
|
||||
editing a keyboard layout it's more convenient to see 'é' than
|
||||
'\202', and the MS-DOS compiler requires the single byte if a
|
||||
backslash escape is not being used.
|
||||
|
||||
src/msdos.c
|
||||
|
||||
* iso-2022-cn-ext
|
||||
|
||||
This file is externally generated from leim/MISC-DIC/cangjie-table.b5
|
||||
by Big5->CNS converter. It hasn't been converted to UTF-8.
|
||||
|
||||
leim/MISC-DIC/cangjie-table.cns
|
||||
|
||||
* iso-latin-2
|
||||
|
||||
These files are processed by csplain, a program that requires
|
||||
Latin-2 input. In 2012 the csplain maintainers started
|
||||
recommending UTF-8, but these files haven't been converted yet.
|
||||
|
||||
etc/refcards/cs-dired-ref.tex
|
||||
etc/refcards/cs-refcard.tex
|
||||
etc/refcards/cs-survival.tex
|
||||
etc/refcards/sk-dired-ref.tex
|
||||
etc/refcards/sk-refcard.tex
|
||||
etc/refcards/sk-survival.tex
|
||||
|
||||
* japanese-iso-8bit
|
||||
|
||||
SKK-JISYO.L is a verbatim copy of a file taken from an external source.
|
||||
It hasn't been converted to UTF-8.
|
||||
|
||||
leim/SKK-DIC/SKK-JISYO.L
|
||||
|
||||
* japanese-shift-jis
|
||||
|
||||
This is a verbatim copy of a file taken from an external source.
|
||||
It hasn't been converted to UTF-8.
|
||||
|
||||
admin/charsets/mapfiles/cns2ucsdkw.txt
|
||||
|
||||
* no-conversion
|
||||
|
||||
This file purposely contains arbitrary bytes interspersed within text,
|
||||
to test whether the Emacs distribution is corrupted.
|
||||
|
||||
lib-src/testfile
|
||||
|
||||
* iso-2022-7bit
|
||||
|
||||
This file switches between CJK charsets, which is not encoded in UTF-8.
|
||||
|
||||
etc/HELLO
|
||||
|
||||
Each of these files contains just one CJK charset, but Emacs
|
||||
currently has no easy way to specify set-charset-priority on a
|
||||
per-file basis, so converting any of these files to UTF-8 might
|
||||
change the file's appearance when viewed by an Emacs that is
|
||||
operating in some other language environment.
|
||||
|
||||
etc/tutorials/TUTORIAL.ja
|
||||
leim/quail/cyril-jis.el
|
||||
leim/quail/hanja-jis.el
|
||||
leim/quail/japanese.el
|
||||
leim/quail/py-punct.el
|
||||
leim/quail/pypunct-b5.el
|
||||
lisp/international/ja-dic-cnv.el
|
||||
lisp/international/ja-dic-utl.el
|
||||
lisp/international/kinsoku.el
|
||||
lisp/international/kkc.el
|
||||
lisp/international/titdic-cnv.el
|
||||
lisp/language/japan-util.el
|
||||
lisp/language/japanese.el
|
||||
lisp/term/x-win.el
|
||||
|
||||
* utf-8-emacs
|
||||
|
||||
These files contain characters that cannot be encoded in UTF-8.
|
||||
|
||||
leim/quail/tibetan.el
|
||||
leim/quail/ethiopic.el
|
||||
lisp/international/titdic-cnv.el
|
||||
lisp/language/tibetan.el
|
||||
lisp/language/tibet-util.el
|
||||
lisp/language/ind-util.el
|
||||
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
82
admin/notes/www
Normal file
82
admin/notes/www
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
-*- outline -*-
|
||||
|
||||
Copyright (C) 2013-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
NOTES FOR EMACS WWW PAGES
|
||||
|
||||
* Renaming pages, redirects
|
||||
|
||||
Sometimes you want to move a page to a new location.
|
||||
If the old location might be referenced somewhere else, you should add
|
||||
some form of redirect to the new location. There are several ways to
|
||||
do this:
|
||||
|
||||
** Use a refresh directive in the old file
|
||||
https://www.gnu.org/server/standards/README.webmastering.html#htaccess
|
||||
|
||||
Change the entire contents of the old file to be something like:
|
||||
|
||||
<meta http-equiv="refresh" content="0; url=/software/emacs/manual/elisp.html">
|
||||
|
||||
I can't think of any reason to use this method.
|
||||
|
||||
** Use a .symlinks file
|
||||
https://www.gnu.org/server/standards/README.webmastering.html#symlinks
|
||||
|
||||
This is really an interface to mod_rewrite rules, but it acts like
|
||||
symlinks. Remove old-page.html altogether, and create a ".symlinks"
|
||||
file in the relevant directory, with contents of the form:
|
||||
|
||||
# This is a comment line.
|
||||
old-page.html new-page.html
|
||||
|
||||
Anyone visiting old-page.html will be shown the contents of new-page.html.
|
||||
Note that changes to .symlinks file are only updated periodically on
|
||||
the server via cron (twice an hour?). So there will be a delay (of up
|
||||
to 30 minutes?) before you see your changes take effect.
|
||||
|
||||
This method is ok, but:
|
||||
i) a person visiting old-page.html has no idea that the page has moved.
|
||||
They still see old-page.html in their address bar. (In other words,
|
||||
the mod_rewrite rule does not use the [R] flag.) Sometimes this is
|
||||
what you want, sometimes not.
|
||||
|
||||
ii) it doesn't work right if the new page is in a different directory
|
||||
to the old page: relative links from the visited page will break.
|
||||
|
||||
** Use a .htaccess file
|
||||
|
||||
Remove old-page.html altogether, and create a ".htaccess" file in the
|
||||
relevant directory, with contents of the form:
|
||||
|
||||
# This is a comment line.
|
||||
Redirect 301 /software/emacs/old-page.html /software/emacs/dir/new-page.html
|
||||
|
||||
Use "301" for a permanent redirection, otherwise you can omit the number.
|
||||
Note that paths must (?) be relative to the top-level www.gnu.org.
|
||||
|
||||
I think this is the best method. You can specify temporary or
|
||||
permanent redirects, and changes go live more-or-less straight away.
|
||||
|
||||
This method is useful for making cross-references to non-Emacs manuals
|
||||
work; see manual/.htaccess in the repository. You only have to add a
|
||||
single redirect for every given external manual, you can redirect
|
||||
html_node to hmtl_node and html_mono to html_mono.
|
||||
|
||||
|
||||
|
||||
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/>.
|
||||
|
|
@ -2,6 +2,8 @@ HOW TO MAINTAIN COPYRIGHT YEARS FOR GNU EMACS
|
|||
|
||||
Maintaining copyright years is now very simple: every time a new year
|
||||
rolls around, add that year to every FSF (and AIST) copyright notice.
|
||||
Do this by running the 'admin/update-copyright' script on a fresh bzr
|
||||
checkout. Inspect the results for plausibility, then commit them.
|
||||
|
||||
There's no need to worry about whether an individual file has changed
|
||||
in a given year - it's sufficient that Emacs as a whole has changed.
|
||||
|
|
@ -28,10 +30,10 @@ but should keep the full list in a comment in the source.
|
|||
since Emacs 21 came out in 2001, all the subsequent years[1]. We don't
|
||||
need to check whether *that file* was changed in those years.
|
||||
It's sufficient that *Emacs* was changed in those years (and it was!).
|
||||
|
||||
|
||||
For those files that have been added since then, we should add
|
||||
the year it was added to Emacs, and all subsequent years."
|
||||
|
||||
|
||||
--RMS, 2005-07-13
|
||||
|
||||
[1] Note that this includes 2001 - see
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
Emacs for Windows
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
Precompiled Distributions of
|
||||
Emacs for Windows
|
||||
|
||||
Version 24.1
|
||||
Version 24.3
|
||||
|
||||
January 1, 2011
|
||||
March 18, 2013
|
||||
|
||||
This directory contains precompiled distributions for GNU Emacs on
|
||||
Windows (versions before Windows 95 and NT4 are not supported).
|
||||
|
|
@ -14,21 +14,15 @@ See the end of the file for license conditions.
|
|||
Free Software Foundation; the precompiled distributions are provided
|
||||
here for convenience since the majority of Windows users are not
|
||||
accustomed to compiling programs themselves. Corresponding source
|
||||
can be found in the parent directory in emacs-24.1.tar.gz.
|
||||
|
||||
If you have access to the World Wide Web, I would recommend pointing
|
||||
your favorite web browser to the following document (if you haven't
|
||||
already):
|
||||
|
||||
http://www.gnu.org/software/emacs/windows/ntemacs.html
|
||||
can be found in the parent directory in emacs-24.3.tar.gz.
|
||||
|
||||
* IMPORTANT LEGAL REMINDER
|
||||
|
||||
If you want to redistribute any of the precompiled distributions of
|
||||
Emacs, be careful to check the implications of the GPL. For instance,
|
||||
if you put the emacs-24.1-bin-i386.tar.gz file from this directory on
|
||||
if you put the emacs-24.3-bin-i386.zip file from this directory on
|
||||
an Internet site, you must arrange to distribute the source files of
|
||||
the SAME version (i.e. ../emacs-24.1.tar.gz).
|
||||
the SAME version (i.e. ../emacs-24.3.tar.gz).
|
||||
|
||||
Making a link to our copy of the source is NOT sufficient, since we
|
||||
might upgrade to a new version while you are still distributing the
|
||||
|
|
@ -37,8 +31,8 @@ See the end of the file for license conditions.
|
|||
|
||||
* Files in this directory
|
||||
|
||||
+ emacs-24.1-bin-i386.zip
|
||||
Windows binaries of Emacs-24.1, with all lisp code and documentation
|
||||
+ emacs-24.3-bin-i386.zip
|
||||
Windows binaries of Emacs-24.3, with all lisp code and documentation
|
||||
included.
|
||||
|
||||
Download this file if you want a single installation package, and
|
||||
|
|
@ -49,21 +43,12 @@ See the end of the file for license conditions.
|
|||
If you need the C source code at a later date, it will be safe to
|
||||
unpack the source distribution on top of this installation.
|
||||
|
||||
+ emacs-24.1-barebin-i386.zip
|
||||
Windows binaries of Emacs-24.1, without lisp code or documentation.
|
||||
|
||||
Download this file if you already have the source distribution.
|
||||
|
||||
Unpack this over the top of the source distribution. It contains the
|
||||
bin subdirectory and etc/DOC file.
|
||||
|
||||
+ libxpm-3.5.7-w32-src.zip
|
||||
Source code required to compile libXpm-3.5.7 on Windows. Contains
|
||||
+ libXpm-3.5.8-w32-src.zip
|
||||
Source code required to compile libXpm-3.5.8 on Windows. Contains
|
||||
a basic Makefile for compiling with mingw32 and a .def file for
|
||||
generating a DLL with the appropriate exports in addition to the
|
||||
source code to provide the subset of functionality Emacs uses from
|
||||
libXpm. This corresponds to the libXpm.dll in emacs-24.1-bin-i386.zip
|
||||
and emacs-24.1-barebin-i386.zip.
|
||||
libXpm. This corresponds to the libXpm.dll in emacs-24.3-bin-i386.zip.
|
||||
|
||||
* Prerequisites for running Emacs on Windows 9X
|
||||
|
||||
|
|
@ -73,7 +58,7 @@ See the end of the file for license conditions.
|
|||
|
||||
* Image support
|
||||
|
||||
Emacs 24.1 contains support for images, however for most image
|
||||
Emacs 24.3 contains support for images, however for most image
|
||||
formats supporting libraries are required. This distribution has
|
||||
been tested with the libraries that are distributed with GTK for
|
||||
Windows (http://www.gtk.org/download/win32.php), and the libraries
|
||||
|
|
@ -112,6 +97,16 @@ See the end of the file for license conditions.
|
|||
as well as the base librsvg library. Known to crash Emacs on many
|
||||
sample images.
|
||||
|
||||
* XML support
|
||||
|
||||
In order to support XML via libxml2 at runtime, a libxml2-enabled
|
||||
Emacs must be able to find the relevant DLLs during startup; failure
|
||||
to do so is not an error, but libxml2 features won't be available to
|
||||
the running session.
|
||||
|
||||
You can get pre-built binaries (including any required DLL and the
|
||||
header files) at http://sourceforge.net/projects/ezwinports/files/.
|
||||
|
||||
* Distributions in .tar.gz and .zip format
|
||||
|
||||
Emacs is distributed primarily as source code in a large gzipped tar
|
||||
|
|
@ -229,16 +224,10 @@ See the end of the file for license conditions.
|
|||
|
||||
* Further information
|
||||
|
||||
If you have access to the World Wide Web, I would recommend pointing
|
||||
your favorite web browser to following the document (if you haven't
|
||||
already):
|
||||
The Emacs on MS Windows FAQ is distributed with Emacs (info
|
||||
manual "efaq-w32"), and at
|
||||
|
||||
http://www.gnu.org/software/emacs/windows/ntemacs.html
|
||||
|
||||
This document serves as an FAQ and a source for further information
|
||||
about the Windows port and related software packages. Note that as
|
||||
most of the information in that FAQ is for earlier versions, so some
|
||||
information may not be relevant to Emacs-24.1.
|
||||
http://www.gnu.org/software/emacs/manual/efaq-w32.html
|
||||
|
||||
In addition to the FAQ, there is a mailing list for discussing issues
|
||||
related to the Windows port of Emacs. For information about the
|
||||
|
|
@ -268,11 +257,8 @@ See the end of the file for license conditions.
|
|||
|
||||
Enjoy!
|
||||
|
||||
Jason Rumney
|
||||
(jasonr@gnu.org)
|
||||
|
||||
Most of this README was contributed by former maintainer Andrew Innes
|
||||
(andrewi@gnu.org)
|
||||
Most of this README was contributed by former maintainers Andrew Innes
|
||||
(andrewi@gnu.org) and Jason Rumney (jasonr@gnu.org).
|
||||
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
### quick-install-emacs --- do a halfway-decent job of installing emacs quickly
|
||||
|
||||
## Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
## Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
||||
|
||||
## Author: Miles Bader <miles@gnu.org>
|
||||
|
||||
|
|
@ -105,8 +105,8 @@ and build directories reside.
|
|||
|
||||
Optionally, $me can also remove old versions of
|
||||
automatically generated files that are version-specific (such as the
|
||||
versioned emacs executables in the \`src' directory, and the DOC-* files
|
||||
in the \`etc' directory). The latter action is called \`pruning,' and
|
||||
versioned emacs executables in the \`src' directory).
|
||||
The latter action is called \`pruning,' and
|
||||
can be enabled using the \`-p' or \`--prune' options.
|
||||
EOF
|
||||
exit 0
|
||||
|
|
@ -209,10 +209,6 @@ maybe_mkdir "$DST_INFO"
|
|||
|
||||
PRUNED=""
|
||||
if test x"$PRUNE" != xno; then
|
||||
for D in `ls -1t $BUILD/etc/DOC-* | sed 1d`; do
|
||||
echo $REMOVE_CMD $D
|
||||
PRUNED="$PRUNED $D"
|
||||
done
|
||||
for D in `ls -1t $BUILD/src/emacs-$VERSION.* | sed 1d`; do
|
||||
echo $REMOVE_CMD $D
|
||||
PRUNED="$PRUNED $D"
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
# BidiMirroring-6.2.0.txt
|
||||
# Date: 2012-05-15, 24:19:00 GMT [KW, LI]
|
||||
# BidiMirroring-6.3.0.txt
|
||||
# Date: 2013-02-12, 08:20:00 GMT [KW, LI]
|
||||
#
|
||||
# Bidi_Mirroring_Glyph Property
|
||||
#
|
||||
# This file is an informative contributory data file in the
|
||||
# Unicode Character Database.
|
||||
#
|
||||
# Copyright (c) 1991-2012 Unicode, Inc.
|
||||
# Copyright (c) 1991-2013 Unicode, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# This data file lists characters that have the Bidi_Mirrored=Yes property
|
||||
# value, for which there is another Unicode character that typically has a glyph
|
||||
# that is the mirror image of the original character's glyph.
|
||||
#
|
||||
# The repertoire covered by the file is Unicode 6.2.0.
|
||||
# The repertoire covered by the file is Unicode 6.3.0.
|
||||
#
|
||||
# The file contains a list of lines with mappings from one code point
|
||||
# to another one for character-based mirroring.
|
||||
|
|
@ -42,7 +42,7 @@
|
|||
#
|
||||
# This file was originally created by Markus Scherer.
|
||||
# Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler,
|
||||
# and for Unicode 6.1 and 6.2 by Ken Whistler and Laurentiu Iancu.
|
||||
# and for Unicode 6.1, 6.2, and 6.3 by Ken Whistler and Laurentiu Iancu.
|
||||
#
|
||||
# ############################################################
|
||||
#
|
||||
|
|
@ -204,8 +204,8 @@
|
|||
276F; 276E # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
|
||||
2770; 2771 # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
|
||||
2771; 2770 # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
|
||||
2772; 2773 # LIGHT LEFT TORTOISE SHELL BRACKET
|
||||
2773; 2772 # LIGHT RIGHT TORTOISE SHELL BRACKET
|
||||
2772; 2773 # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
|
||||
2773; 2772 # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
|
||||
2774; 2775 # MEDIUM LEFT CURLY BRACKET ORNAMENT
|
||||
2775; 2774 # MEDIUM RIGHT CURLY BRACKET ORNAMENT
|
||||
27C3; 27C4 # OPEN SUBSET
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Makefile -- Makefile to generate character property tables.
|
||||
### @configure_input@
|
||||
|
||||
# Copyright (C) 2012-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2012-2014 Free Software Foundation, Inc.
|
||||
|
||||
# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
# National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
|
|
@ -21,16 +21,17 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
SHELL = /bin/sh
|
||||
SHELL = @SHELL@
|
||||
|
||||
srcdir = @srcdir@
|
||||
abs_builddir = @abs_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
top_builddir = @top_builddir@
|
||||
|
||||
EMACS = ${abs_top_builddir}/src/emacs
|
||||
EMACS = ${top_builddir}/src/emacs
|
||||
DSTDIR = ${top_srcdir}/lisp/international
|
||||
emacs = ${EMACS} -batch --no-site-file --no-site-lisp
|
||||
emacs = "${EMACS}" -batch --no-site-file --no-site-lisp
|
||||
|
||||
.PHONY: all compile install
|
||||
|
||||
all: ${DSTDIR}/charprop.el
|
||||
|
||||
|
|
@ -40,14 +41,25 @@ all: ${DSTDIR}/charprop.el
|
|||
unidata.txt: ${srcdir}/UnicodeData.txt
|
||||
sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < ${srcdir}/UnicodeData.txt > $@
|
||||
|
||||
${DSTDIR}/charprop.el: ${srcdir}/unidata-gen.elc unidata.txt
|
||||
cd ${DSTDIR} && ${emacs} -l ${srcdir}/unidata-gen \
|
||||
-f unidata-gen-files ${srcdir} ${abs_builddir}/unidata.txt
|
||||
compile: ${srcdir}/unidata-gen.elc
|
||||
|
||||
## Depend on .el rather than .elc so as not to needlessly rebuild
|
||||
## uni-*.el files just because .elc is missing.
|
||||
## Same for UnicodeData.txt v unidata.txt.
|
||||
${DSTDIR}/charprop.el: ${srcdir}/unidata-gen.el ${srcdir}/UnicodeData.txt
|
||||
${MAKE} ${MFLAGS} compile unidata.txt EMACS="${EMACS}"
|
||||
-if [ -f "$@" ]; then \
|
||||
cd ${DSTDIR} && chmod +w charprop.el `sed -n 's/^;; FILE: //p' < charprop.el`; \
|
||||
fi
|
||||
${emacs} -L ${srcdir} -l unidata-gen -f unidata-gen-files \
|
||||
${srcdir} "${DSTDIR}"
|
||||
|
||||
## Like the above, but generate in PWD rather than lisp/international.
|
||||
charprop.el: ${srcdir}/unidata-gen.elc unidata.txt
|
||||
${emacs} -l ${srcdir}/unidata-gen \
|
||||
-f unidata-gen-files ${srcdir} unidata.txt
|
||||
${emacs} -L ${srcdir} -l unidata-gen -f unidata-gen-files \
|
||||
${srcdir}
|
||||
|
||||
.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean
|
||||
|
||||
install: charprop.el
|
||||
cp charprop.el ${DSTDIR}
|
||||
|
|
@ -57,9 +69,20 @@ clean:
|
|||
if test -f charprop.el; then \
|
||||
rm -f `sed -n 's/^;; FILE: //p' < charprop.el`; \
|
||||
fi
|
||||
rm -f charprop.el ${srcdir}/unidata-gen.elc unidata.txt
|
||||
rm -f charprop.el ${srcdir}/*.elc unidata.txt
|
||||
|
||||
bootstrap-clean: clean
|
||||
|
||||
distclean: clean
|
||||
-rm -f ./Makefile
|
||||
rm -f Makefile
|
||||
|
||||
maintainer-clean: distclean
|
||||
|
||||
## Do not remove these files, even in a bootstrap, because they rarely
|
||||
## change and it slows down bootstrap (a tiny bit).
|
||||
## Cf leim/ja-dic (which is much slower).
|
||||
extraclean:
|
||||
if test -f ${DSTDIR}/charprop.el; then \
|
||||
(cd ${DSTDIR} && rm -f `sed -n 's/^;; FILE: //p' < charprop.el`); \
|
||||
rm -f ${DSTDIR}/charprop.el; \
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -1509,6 +1509,7 @@
|
|||
0619;ARABIC SMALL DAMMA;Mn;31;NSM;;;;;N;;;;;
|
||||
061A;ARABIC SMALL KASRA;Mn;32;NSM;;;;;N;;;;;
|
||||
061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;
|
||||
061C;ARABIC LETTER MARK;Cf;0;AL;;;;;N;;;;;
|
||||
061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;;
|
||||
061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;
|
||||
0620;ARABIC LETTER KASHMIRI YEH;Lo;0;AL;;;;;N;;;;;
|
||||
|
|
@ -5296,7 +5297,7 @@
|
|||
180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;;
|
||||
180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;;
|
||||
180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;;
|
||||
180E;MONGOLIAN VOWEL SEPARATOR;Zs;0;WS;;;;;N;;;;;
|
||||
180E;MONGOLIAN VOWEL SEPARATOR;Cf;0;BN;;;;;N;;;;;
|
||||
1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
|
||||
1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
|
||||
1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
|
||||
|
|
@ -5751,7 +5752,7 @@
|
|||
1A18;BUGINESE VOWEL SIGN U;Mn;220;NSM;;;;;N;;;;;
|
||||
1A19;BUGINESE VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
|
||||
1A1A;BUGINESE VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
|
||||
1A1B;BUGINESE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
|
||||
1A1B;BUGINESE VOWEL SIGN AE;Mn;0;NSM;;;;;N;;;;;
|
||||
1A1E;BUGINESE PALLAWA;Po;0;L;;;;;N;;;;;
|
||||
1A1F;BUGINESE END OF SECTION;Po;0;L;;;;;N;;;;;
|
||||
1A20;TAI THAM LETTER HIGH KA;Lo;0;L;;;;;N;;;;;
|
||||
|
|
@ -7116,6 +7117,10 @@
|
|||
2062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;;
|
||||
2063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;;
|
||||
2064;INVISIBLE PLUS;Cf;0;BN;;;;;N;;;;;
|
||||
2066;LEFT-TO-RIGHT ISOLATE;Cf;0;LRI;;;;;N;;;;;
|
||||
2067;RIGHT-TO-LEFT ISOLATE;Cf;0;RLI;;;;;N;;;;;
|
||||
2068;FIRST STRONG ISOLATE;Cf;0;FSI;;;;;N;;;;;
|
||||
2069;POP DIRECTIONAL ISOLATE;Cf;0;PDI;;;;;N;;;;;
|
||||
206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
|
||||
206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
|
||||
206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
|
||||
|
|
@ -7738,10 +7743,10 @@
|
|||
2305;PROJECTIVE;So;0;ON;;;;;N;;;;;
|
||||
2306;PERSPECTIVE;So;0;ON;;;;;N;;;;;
|
||||
2307;WAVY LINE;So;0;ON;;;;;N;;;;;
|
||||
2308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;;
|
||||
2309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;;
|
||||
230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;;
|
||||
230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;;
|
||||
2308;LEFT CEILING;Ps;0;ON;;;;;Y;;;;;
|
||||
2309;RIGHT CEILING;Pe;0;ON;;;;;Y;;;;;
|
||||
230A;LEFT FLOOR;Ps;0;ON;;;;;Y;;;;;
|
||||
230B;RIGHT FLOOR;Pe;0;ON;;;;;Y;;;;;
|
||||
230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;;
|
||||
230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;;
|
||||
230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;;
|
||||
|
|
@ -18740,8 +18745,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
|
|||
12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;;
|
||||
12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;;
|
||||
12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;;
|
||||
12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;-1;N;;;;;
|
||||
12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;-1;N;;;;;
|
||||
12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;2;N;;;;;
|
||||
12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;3;N;;;;;
|
||||
12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;;
|
||||
12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;;
|
||||
1245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
<meta name="VI60_defaultClientScript" content="JavaScript">
|
||||
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
|
||||
|
||||
<meta name="keywords" content="Unicode Standard, copyright">
|
||||
|
||||
|
|
@ -136,7 +136,7 @@ <h1>Unicode Terms of Use</h1>
|
|||
<ol type="A">
|
||||
<li><u><a name="1"></a>Unicode Copyright.</u>
|
||||
<ol>
|
||||
<li>Copyright © 1991-2012 Unicode, Inc. All rights reserved.</li>
|
||||
<li>Copyright © 1991-2013 Unicode, Inc. All rights reserved.</li>
|
||||
<li>Certain documents and files on this website contain a legend
|
||||
indicating that "Modification is permitted." Any person is
|
||||
hereby authorized, without fee, to modify such documents and
|
||||
|
|
@ -268,7 +268,7 @@ <h3 align="center"><a name="Exhibit1">EXHIBIT 1</a><br>
|
|||
<p>NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.</p>
|
||||
<p>COPYRIGHT AND PERMISSION NOTICE</p>
|
||||
|
||||
<p>Copyright © 1991-2012 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in
|
||||
<p>Copyright © 1991-2013 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in
|
||||
<a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a>.</p>
|
||||
|
||||
<p>Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
;; unidata-gen.el -- Create files containing character property data.
|
||||
|
||||
;; Copyright (C) 2008-2014 Free Software Foundation, Inc.
|
||||
|
||||
;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
;; National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
;; Registration Number H13PRO009
|
||||
|
|
@ -23,13 +26,12 @@
|
|||
;; SPECIAL NOTICE
|
||||
;;
|
||||
;; This file must be byte-compilable/loadable by `temacs' and also
|
||||
;; the entry function `unidata-gen-files' must be runnable by
|
||||
;; `temacs'.
|
||||
;; the entry function `unidata-gen-files' must be runnable by `temacs'.
|
||||
|
||||
;; FILES TO BE GENERATED
|
||||
;;
|
||||
;; The entry function `unidata-gen-files' generates these files in
|
||||
;; the current directory.
|
||||
;; in directory specified by its dest-dir argument.
|
||||
;;
|
||||
;; charprop.el
|
||||
;; It contains a series of forms of this format:
|
||||
|
|
@ -88,9 +90,9 @@
|
|||
|
||||
(defvar unidata-list nil)
|
||||
|
||||
;; Name of the directory containing files of Unicode Character
|
||||
;; Database.
|
||||
;; Name of the directory containing files of Unicode Character Database.
|
||||
|
||||
;; Dynamically bound in unidata-gen-files.
|
||||
(defvar unidata-dir nil)
|
||||
|
||||
(defun unidata-setup-list (unidata-text-file)
|
||||
|
|
@ -192,8 +194,8 @@ Property value is an integer."
|
|||
4 unidata-gen-table-symbol "uni-bidi.el"
|
||||
"Unicode bidi class.
|
||||
Property value is one of the following symbols:
|
||||
L, LRE, LRO, R, AL, RLE, RLO, PDF, EN, ES, ET,
|
||||
AN, CS, NSM, BN, B, S, WS, ON"
|
||||
L, LRE, LRO, LRI, R, AL, RLE, RLO, RLI, FSI, PDF, PDI,
|
||||
EN, ES, ET, AN, CS, NSM, BN, B, S, WS, ON"
|
||||
unidata-describe-bidi-class
|
||||
;; The assignment of default values to blocks of code points
|
||||
;; follows the file DerivedBidiClass.txt from the Unicode
|
||||
|
|
@ -203,7 +205,8 @@ Property value is one of the following symbols:
|
|||
(#xFB1D #xFB4F R) (#x10800 #x10FFF R) (#x1E800 #x1EFFF R))
|
||||
;; The order of elements must be in sync with bidi_type_t in
|
||||
;; src/dispextern.h.
|
||||
(L R EN AN BN B AL LRE LRO RLE RLO PDF ES ET CS NSM S WS ON))
|
||||
(L R EN AN BN B AL LRE LRO RLE RLO PDF LRI RLI FSI PDI
|
||||
ES ET CS NSM S WS ON))
|
||||
(decomposition
|
||||
5 unidata-gen-table-decomposition "uni-decomposition.el"
|
||||
"Unicode decomposition mapping.
|
||||
|
|
@ -395,12 +398,17 @@ is the character itself.")))
|
|||
;; If VAL is one of VALn, just return n.
|
||||
;; Otherwise, VAL-LIST is modified to this:
|
||||
;; ((nil . 0) (VAL1 . 1) (VAL2 . 2) ... (VAL . n+1))
|
||||
;;
|
||||
;; WARN is an optional warning to display when the value list is
|
||||
;; extended, for property values that need to be in sync with other
|
||||
;; parts of Emacs; currently only used for bidi-class.
|
||||
|
||||
(defun unidata-encode-val (val-list val)
|
||||
(defun unidata-encode-val (val-list val &optional warn)
|
||||
(let ((slot (assoc val val-list))
|
||||
val-code)
|
||||
(if slot
|
||||
(cdr slot)
|
||||
(if warn (message warn val))
|
||||
(setq val-code (length val-list))
|
||||
(nconc val-list (list (cons val val-code)))
|
||||
val-code)))
|
||||
|
|
@ -411,6 +419,16 @@ is the character itself.")))
|
|||
(let ((table (make-char-table 'char-code-property-table))
|
||||
(prop-idx (unidata-prop-index prop))
|
||||
(vec (make-vector 128 0))
|
||||
;; When this warning is printed, there's a need to make the
|
||||
;; following changes:
|
||||
;; (1) update unidata-prop-alist with the new bidi-class values;
|
||||
;; (2) extend bidi_type_t enumeration on src/dispextern.h to
|
||||
;; include the new classes;
|
||||
;; (3) possibly update the assertion in bidi.c:bidi_check_type; and
|
||||
;; (4) possibly update the switch cases in
|
||||
;; bidi.c:bidi_get_type and bidi.c:bidi_get_category.
|
||||
(bidi-warning "\
|
||||
** Found new bidi-class '%s', please update bidi.c and dispextern.h")
|
||||
tail elt range val val-code idx slot
|
||||
prev-range-data)
|
||||
(setq val-list (cons nil (copy-sequence val-list)))
|
||||
|
|
@ -436,7 +454,9 @@ is the character itself.")))
|
|||
(setq elt (car tail) tail (cdr tail))
|
||||
(setq range (car elt)
|
||||
val (funcall val-func (nth prop-idx elt)))
|
||||
(setq val-code (if val (unidata-encode-val val-list val)))
|
||||
(setq val-code (if val (unidata-encode-val val-list val
|
||||
(and (eq prop 'bidi-class)
|
||||
bidi-warning))))
|
||||
(if (consp range)
|
||||
(when val-code
|
||||
(set-char-table-range table range val-code)
|
||||
|
|
@ -484,7 +504,9 @@ is the character itself.")))
|
|||
(setq new-val (funcall val-func (nth prop-idx elt)))
|
||||
(if (not (eq val new-val))
|
||||
(setq val new-val
|
||||
val-code (if val (unidata-encode-val val-list val))))
|
||||
val-code (if val (unidata-encode-val
|
||||
val-list val (and (eq prop 'bidi-class)
|
||||
bidi-warning)))))
|
||||
(if val-code
|
||||
(aset vec (- range start) val-code))
|
||||
(setq tail (cdr tail)))
|
||||
|
|
@ -962,7 +984,14 @@ is the character itself.")))
|
|||
(l nil)
|
||||
(idx 0)
|
||||
c)
|
||||
(if (= len 0)
|
||||
(if (or (= len 0)
|
||||
;; Unicode Standard, paragraph 4.8: "For all other
|
||||
;; Unicode code points of all other types (Control,
|
||||
;; Private-Use, Surrogate, Noncharacter, and Reserved),
|
||||
;; the value of the Name property is the null string."
|
||||
;; We already handle elsewhere all the characters except
|
||||
;; Cc, Control characters, which are handled here.
|
||||
(string= str "<control>"))
|
||||
nil
|
||||
(dotimes (i len)
|
||||
(setq c (aref str i))
|
||||
|
|
@ -975,11 +1004,15 @@ is the character itself.")))
|
|||
idx (1+ i)))))
|
||||
(nreverse (cons (intern (substring str idx)) l))))))
|
||||
|
||||
(defun unidata--ensure-compiled (&rest funcs)
|
||||
(dolist (fun funcs)
|
||||
(or (byte-code-function-p (symbol-function fun))
|
||||
(byte-compile fun))))
|
||||
|
||||
(defun unidata-gen-table-name (prop &rest ignore)
|
||||
(let* ((table (unidata-gen-table-word-list prop 'unidata-split-name))
|
||||
(word-tables (char-table-extra-slot table 4)))
|
||||
(byte-compile 'unidata-get-name)
|
||||
(byte-compile 'unidata-put-name)
|
||||
(unidata--ensure-compiled 'unidata-get-name 'unidata-put-name)
|
||||
(set-char-table-extra-slot table 1 (symbol-function 'unidata-get-name))
|
||||
(set-char-table-extra-slot table 2 (symbol-function 'unidata-put-name))
|
||||
|
||||
|
|
@ -1017,8 +1050,8 @@ is the character itself.")))
|
|||
(defun unidata-gen-table-decomposition (prop &rest ignore)
|
||||
(let* ((table (unidata-gen-table-word-list prop 'unidata-split-decomposition))
|
||||
(word-tables (char-table-extra-slot table 4)))
|
||||
(byte-compile 'unidata-get-decomposition)
|
||||
(byte-compile 'unidata-put-decomposition)
|
||||
(unidata--ensure-compiled 'unidata-get-decomposition
|
||||
'unidata-put-decomposition)
|
||||
(set-char-table-extra-slot table 1
|
||||
(symbol-function 'unidata-get-decomposition))
|
||||
(set-char-table-extra-slot table 2
|
||||
|
|
@ -1101,6 +1134,10 @@ is the character itself.")))
|
|||
(RLE . "Right-to-Left Embedding")
|
||||
(RLO . "Right-to-Left Override")
|
||||
(PDF . "Pop Directional Format")
|
||||
(LRI . "Left-to-Right Isolate")
|
||||
(RLI . "Right-to-Left Isolate")
|
||||
(FSI . "First Strong Isolate")
|
||||
(PDI . "Pop Directional Isolate")
|
||||
(EN . "European Number")
|
||||
(ES . "European Number Separator")
|
||||
(ET . "European Number Terminator")
|
||||
|
|
@ -1176,18 +1213,21 @@ is the character itself.")))
|
|||
;; The entry function. It generates files described in the header
|
||||
;; comment of this file.
|
||||
|
||||
(defun unidata-gen-files (&optional data-dir unidata-text-file)
|
||||
;; Write files (charprop.el, uni-*.el) to dest-dir (default PWD),
|
||||
;; using as input files from data-dir, and
|
||||
;; unidata-text-file (default "unidata.txt" in PWD).
|
||||
(defun unidata-gen-files (&optional data-dir dest-dir unidata-text-file)
|
||||
(or data-dir
|
||||
(setq data-dir (car command-line-args-left)
|
||||
command-line-args-left (cdr command-line-args-left)
|
||||
unidata-text-file (car command-line-args-left)
|
||||
command-line-args-left (cdr command-line-args-left)))
|
||||
(setq data-dir (pop command-line-args-left)
|
||||
dest-dir (or (pop command-line-args-left) default-directory)
|
||||
unidata-text-file (or (pop command-line-args-left)
|
||||
(expand-file-name "unidata.txt"))))
|
||||
(let ((coding-system-for-write 'utf-8-unix)
|
||||
(charprop-file "charprop.el")
|
||||
(charprop-file (expand-file-name "charprop.el" dest-dir))
|
||||
(unidata-dir data-dir))
|
||||
(dolist (elt unidata-prop-alist)
|
||||
(let* ((prop (car elt))
|
||||
(file (unidata-prop-file prop)))
|
||||
(file (expand-file-name (unidata-prop-file prop) dest-dir)))
|
||||
(if (file-exists-p file)
|
||||
(delete-file file))))
|
||||
(unidata-setup-list unidata-text-file)
|
||||
|
|
@ -1196,7 +1236,8 @@ is the character itself.")))
|
|||
(dolist (elt unidata-prop-alist)
|
||||
(let* ((prop (car elt))
|
||||
(generator (unidata-prop-generator prop))
|
||||
(file (unidata-prop-file prop))
|
||||
(file (expand-file-name (unidata-prop-file prop) dest-dir))
|
||||
(basename (file-name-nondirectory file))
|
||||
(docstring (unidata-prop-docstring prop))
|
||||
(describer (unidata-prop-describer prop))
|
||||
(default-value (unidata-prop-default prop))
|
||||
|
|
@ -1204,9 +1245,9 @@ is the character itself.")))
|
|||
table)
|
||||
;; Filename in this comment line is extracted by sed in
|
||||
;; Makefile.
|
||||
(insert (format ";; FILE: %s\n" file))
|
||||
(insert (format ";; FILE: %s\n" basename))
|
||||
(insert (format "(define-char-code-property '%S %S\n %S)\n"
|
||||
prop file docstring))
|
||||
prop basename docstring))
|
||||
(with-temp-buffer
|
||||
(message "Generating %s..." file)
|
||||
(when (file-exists-p file)
|
||||
|
|
@ -1216,30 +1257,35 @@ is the character itself.")))
|
|||
(setq table (funcall generator prop default-value val-list))
|
||||
(when describer
|
||||
(unless (subrp (symbol-function describer))
|
||||
(byte-compile describer)
|
||||
(unidata--ensure-compiled describer)
|
||||
(setq describer (symbol-function describer)))
|
||||
(set-char-table-extra-slot table 3 describer))
|
||||
(if (bobp)
|
||||
(insert ";; Copyright (C) 1991-2009 Unicode, Inc.
|
||||
(insert ";; Copyright (C) 1991-2013 Unicode, Inc.
|
||||
;; This file was generated from the Unicode data files at
|
||||
;; http://www.unicode.org/Public/UNIDATA/.
|
||||
;; See lisp/international/README for the copyright and permission notice.\n"))
|
||||
(insert (format "(define-char-code-property '%S %S %S)\n"
|
||||
(insert (format "(define-char-code-property '%S\n %S\n %S)\n"
|
||||
prop table docstring))
|
||||
(if (eobp)
|
||||
(insert ";; Local Variables:\n"
|
||||
";; coding: utf-8\n"
|
||||
";; version-control: never\n"
|
||||
";; no-byte-compile: t\n"
|
||||
";; no-update-autoloads: t\n"
|
||||
";; End:\n\n"
|
||||
(format ";; %s ends here\n" file)))
|
||||
(format ";; %s ends here\n" basename)))
|
||||
(write-file file)
|
||||
(message "Generating %s...done" file))))
|
||||
(message "Writing %s..." charprop-file)
|
||||
(insert ";; Local Variables:\n"
|
||||
";; coding: utf-8\n"
|
||||
";; version-control: never\n"
|
||||
";; no-byte-compile: t\n"
|
||||
";; no-update-autoloads: t\n"
|
||||
";; End:\n\n"
|
||||
(format ";; %s ends here\n" charprop-file)))))
|
||||
(format ";; %s ends here\n"
|
||||
(file-name-nondirectory charprop-file))))))
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
75
admin/update-copyright
Executable file
75
admin/update-copyright
Executable file
|
|
@ -0,0 +1,75 @@
|
|||
#! /bin/sh
|
||||
# Update the copyright dates in Emacs sources.
|
||||
# Typical usage:
|
||||
#
|
||||
# admin/update-copyright
|
||||
#
|
||||
# By default, this script uses the local-time calendar year.
|
||||
# Set the UPDATE_COPYRIGHT_YEAR environment variable to override the default.
|
||||
|
||||
# Copyright 2013-2014 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/>.
|
||||
|
||||
# written by Paul Eggert
|
||||
|
||||
# FIXME: The file 'notes/copyright' says that the AIST copyright years
|
||||
# should be updated, but by inspection it appears that some should be
|
||||
# updated and some should not be, due to registration numbers, so
|
||||
# this script leaves these copyright years alone for now.
|
||||
|
||||
: ${UPDATE_COPYRIGHT_USE_INTERVALS=1}
|
||||
export UPDATE_COPYRIGHT_USE_INTERVALS
|
||||
|
||||
: ${UPDATE_COPYRIGHT_YEAR=$(date +%Y)}
|
||||
export UPDATE_COPYRIGHT_YEAR
|
||||
|
||||
emacsver=etc/refcards/emacsver.tex
|
||||
sed 's/\\def\\year[{][0-9]*[}]/\\def\\year{'"$UPDATE_COPYRIGHT_YEAR"'}'/g \
|
||||
$emacsver >$emacsver.aux &&
|
||||
{ cmp -s $emacsver $emacsver.aux ||
|
||||
cp $emacsver.aux $emacsver
|
||||
} &&
|
||||
rm $emacsver.aux &&
|
||||
|
||||
bzr_files=$(bzr ls -RV --kind file) &&
|
||||
|
||||
# Do not update the copyright of files that have one or more of the
|
||||
# following problems:
|
||||
# . They are license files, maintained by the FSF, with their own dates.
|
||||
# . Their format cannot withstand changing the contents of copyright strings.
|
||||
|
||||
updatable_files=$(find $bzr_files \
|
||||
! -name COPYING \
|
||||
! -name doclicense.texi \
|
||||
! -name gpl.texi \
|
||||
! -name '*-gzipped' \
|
||||
! -name '*.ico' \
|
||||
! -name '*.icns' \
|
||||
! -name '*.pbm' \
|
||||
! -name '*.pdf' \
|
||||
! -name '*.png' \
|
||||
! -name '*.sig' \
|
||||
! -name '*.tar' \
|
||||
! -name '*.tiff' \
|
||||
! -name '*.xpm' \
|
||||
! -name eterm-color \
|
||||
! -name hand.cur \
|
||||
! -name key.pub \
|
||||
! -name key.sec \
|
||||
-print) &&
|
||||
|
||||
build-aux/update-copyright $updatable_files
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
### update_autogen - update the generated files in Emacs autogen/ directory
|
||||
### update_autogen - update some auto-generated files in the Emacs tree
|
||||
|
||||
## Copyright (C) 2011-2013 Free Software Foundation, Inc.
|
||||
## Copyright (C) 2011-2014 Free Software Foundation, Inc.
|
||||
|
||||
## Author: Glenn Morris <rgm@gnu.org>
|
||||
|
||||
|
|
@ -22,12 +22,12 @@
|
|||
|
||||
### Commentary:
|
||||
|
||||
## This is a helper script to update the pre-built generated files in
|
||||
## the autogen/ directory. This is suitable for running from cron.
|
||||
## This is a helper script to update some generated files in the Emacs
|
||||
## repository. This is suitable for running from cron.
|
||||
## Only Emacs maintainers need use this, so it uses bash features.
|
||||
##
|
||||
## With the -l option, it also updates the versioned loaddefs-like
|
||||
## files in lisp/. These include ldefs-boot, cl-loaddefs, rmail, etc.
|
||||
## By default, it updates the versioned loaddefs-like files in lisp,
|
||||
## except ldefs-boot.el.
|
||||
|
||||
### Code:
|
||||
|
||||
|
|
@ -42,24 +42,26 @@ PD=${0%/*}
|
|||
|
||||
[ "$PD" = "$0" ] && PD=. # if PATH includes PWD
|
||||
|
||||
## This should be the autogen directory.
|
||||
## This should be the admin directory.
|
||||
cd $PD
|
||||
cd ../
|
||||
[ -d autogen ] || die "Could not locate autogen directory"
|
||||
[ -d admin ] || die "Could not locate admin directory"
|
||||
|
||||
|
||||
usage ()
|
||||
{
|
||||
cat 1>&2 <<EOF
|
||||
Usage: ${PN} [-f] [-c] [-q] [-l [-L]] [-C] [-- make-flags]
|
||||
Update the generated files in the Emacs autogen/ directory.
|
||||
Usage: ${PN} [-f] [-c] [-q] [-A dir] [-I] [-L] [-C] [-- make-flags]
|
||||
Update some auto-generated files in the Emacs tree.
|
||||
By default, only does the versioned loaddefs-like files in lisp/.
|
||||
This requires a build. Passes any non-option args to make (eg -- -j2).
|
||||
Options:
|
||||
-f: force an update even if the source files are locally modified.
|
||||
-c: if the update succeeds and the generated files are modified,
|
||||
commit them (caution).
|
||||
-q: be quiet; only give error messages, not status messages.
|
||||
-l: also update the versioned loaddefs-like files in lisp/.
|
||||
This requires a build. Passes any non-option args to make (eg -- -j2).
|
||||
-A: only update autotools files, copying into specified dir.
|
||||
-I: also update info/dir.
|
||||
-L: also update ldefs-boot.el.
|
||||
-C: start from a clean state. Slower, but more correct.
|
||||
EOF
|
||||
|
|
@ -73,18 +75,24 @@ force=
|
|||
commit=
|
||||
quiet=
|
||||
clean=
|
||||
ldefs_flag=
|
||||
autogendir= # was "autogen"
|
||||
ldefs_flag=1
|
||||
lboot_flag=
|
||||
info_flag=
|
||||
|
||||
## Parameters.
|
||||
ldefs_in=lisp/loaddefs.el
|
||||
ldefs_out=lisp/ldefs-boot.el
|
||||
sources="configure.ac lib/Makefile.am"
|
||||
## Files to copy into autogendir.
|
||||
## Everything:
|
||||
genfiles="
|
||||
configure aclocal.m4 src/config.in lib/Makefile.in
|
||||
build-aux/compile build-aux/config.guess build-aux/config.sub
|
||||
build-aux/depcomp build-aux/install-sh build-aux/missing
|
||||
"
|
||||
## msdos-only:
|
||||
genfiles="src/config.in lib/Makefile.in"
|
||||
|
||||
for g in $genfiles; do
|
||||
basegen="$basegen ${g##*/}"
|
||||
|
|
@ -97,7 +105,7 @@ tempfile=/tmp/$PN.$$
|
|||
trap "rm -f $tempfile 2> /dev/null" EXIT
|
||||
|
||||
|
||||
while getopts ":hcflqCL" option ; do
|
||||
while getopts ":hcfqA:CIL" option ; do
|
||||
case $option in
|
||||
(h) usage ;;
|
||||
|
||||
|
|
@ -105,12 +113,16 @@ while getopts ":hcflqCL" option ; do
|
|||
|
||||
(f) force=1 ;;
|
||||
|
||||
(l) ldefs_flag=1 ;;
|
||||
|
||||
(q) quiet=1 ;;
|
||||
|
||||
(A) autogendir=$OPTARG
|
||||
[ -d "$autogendir" ] || die "No autogen directory: $autogendir"
|
||||
;;
|
||||
|
||||
(C) clean=1 ;;
|
||||
|
||||
(I) info_flag=1 ;;
|
||||
|
||||
(L) lboot_flag=1 ;;
|
||||
|
||||
(\?) die "Bad option -$OPTARG" ;;
|
||||
|
|
@ -128,23 +140,36 @@ OPTIND=1
|
|||
[ "$quiet" ] && exec 1> /dev/null
|
||||
|
||||
|
||||
echo "Running bzr status..."
|
||||
## Run status on inputs, list modified files on stdout.
|
||||
status ()
|
||||
{
|
||||
bzr status -S "$@" >| $tempfile || die "bzr status error for $@"
|
||||
|
||||
bzr status -S $sources ${ldefs_flag:+lisp} >| $tempfile || \
|
||||
die "bzr status error for sources"
|
||||
local stat file modified
|
||||
|
||||
while read stat file; do
|
||||
|
||||
[ "$stat" != "M" ] && \
|
||||
die "Unexpected status ($stat) for generated $file"
|
||||
modified="$modified $file"
|
||||
|
||||
done < $tempfile
|
||||
|
||||
echo "$modified"
|
||||
|
||||
return 0
|
||||
} # function status
|
||||
|
||||
|
||||
echo "Checking input file status..."
|
||||
|
||||
## The lisp portion could be more permissive, eg only care about .el files.
|
||||
while read stat file; do
|
||||
modified=$(status ${autogendir:+$sources} ${ldefs_flag:+lisp} ${info_flag:+doc}) || die
|
||||
|
||||
case $stat in
|
||||
M)
|
||||
echo "Locally modified: $file"
|
||||
[ "$force" ] || die "There are local modifications"
|
||||
;;
|
||||
|
||||
*) die "Unexpected status ($stat) for $file" ;;
|
||||
esac
|
||||
done < $tempfile
|
||||
[ "$modified" ] && {
|
||||
echo "Locally modified: $modified"
|
||||
[ "$force" ] || die "There are local modifications"
|
||||
}
|
||||
|
||||
|
||||
## Probably this is overkill, and there's no need to "bootstrap" just
|
||||
|
|
@ -175,31 +200,6 @@ fi
|
|||
[ $retval -ne 0 ] && die "autoreconf error"
|
||||
|
||||
|
||||
cp $genfiles autogen/
|
||||
|
||||
|
||||
cd autogen
|
||||
|
||||
echo "Checking status of generated files..."
|
||||
|
||||
bzr status -S $basegen >| $tempfile || \
|
||||
die "bzr status error for generated files"
|
||||
|
||||
|
||||
modified=
|
||||
|
||||
while read stat file; do
|
||||
|
||||
[ "$stat" != "M" ] && die "Unexpected status ($stat) for generated $file"
|
||||
|
||||
modified="$modified $file"
|
||||
|
||||
done < $tempfile
|
||||
|
||||
|
||||
cd ../
|
||||
|
||||
|
||||
## Uses global $commit.
|
||||
commit ()
|
||||
{
|
||||
|
|
@ -224,7 +224,82 @@ commit ()
|
|||
} # function commit
|
||||
|
||||
|
||||
commit "generated" $modified || die "bzr commit error"
|
||||
## No longer used since info/dir is now generated at install time if needed,
|
||||
## and is not in the repository any more.
|
||||
info_dir ()
|
||||
{
|
||||
local basefile=build-aux/dir_top outfile=info/dir
|
||||
|
||||
echo "Regenerating info/dir..."
|
||||
|
||||
## Header contains non-printing characters, so this is more
|
||||
## reliable than using echo.
|
||||
rm -f $outfile
|
||||
cp $basefile $outfile
|
||||
|
||||
local topic file dircat dirent
|
||||
|
||||
## FIXME inefficient looping.
|
||||
for topic in "Texinfo documentation system" "Emacs" "GNU Emacs Lisp" \
|
||||
"Emacs editing modes" "Emacs network features" "Emacs misc features" \
|
||||
"Emacs lisp libraries"; do
|
||||
|
||||
cat - <<EOF >> $outfile
|
||||
|
||||
$topic
|
||||
EOF
|
||||
## Bit faster than doc/*/*.texi.
|
||||
for file in doc/emacs/emacs.texi doc/lispintro/*.texi \
|
||||
doc/lispref/elisp.texi doc/misc/*.texi; do
|
||||
|
||||
## FIXME do not ignore w32 if OS is w32.
|
||||
case $file in
|
||||
*-xtra.texi|*efaq-w32.texi) continue ;;
|
||||
esac
|
||||
|
||||
dircat=`sed -n -e 's/@value{emacsname}/Emacs/' -e 's/^@dircategory //p' $file`
|
||||
|
||||
## TODO warn about unknown topics (check-info in top-level
|
||||
## Makefile does this).
|
||||
[ "$dircat" = "$topic" ] || continue
|
||||
|
||||
sed -n -e 's/@value{emacsname}/Emacs/' \
|
||||
-e 's/@acronym{\([A-Z]*\)}/\1/' \
|
||||
-e '/^@direntry/,/^@end direntry/ s/^\([^@]\)/\1/p' \
|
||||
$file >> $outfile
|
||||
|
||||
done
|
||||
done
|
||||
|
||||
local modified
|
||||
|
||||
modified=$(status $outfile) || die
|
||||
|
||||
commit "info/dir" $modified || die "commit error"
|
||||
} # function info_dir
|
||||
|
||||
|
||||
[ "$autogendir" ] && {
|
||||
|
||||
oldpwd=$PWD
|
||||
|
||||
cp $genfiles $autogendir/
|
||||
|
||||
cd $autogendir || die "cd error for $autogendir"
|
||||
|
||||
echo "Checking status of generated files..."
|
||||
|
||||
modified=$(status $basegen) || die
|
||||
|
||||
cd $oldpwd
|
||||
|
||||
commit "generated" $modified || die "commit error"
|
||||
|
||||
exit 0
|
||||
} # $autogendir
|
||||
|
||||
|
||||
[ "$info_flag" ] && info_dir
|
||||
|
||||
|
||||
[ "$ldefs_flag" ] || exit 0
|
||||
|
|
@ -232,8 +307,9 @@ commit "generated" $modified || die "bzr commit error"
|
|||
|
||||
echo "Finding loaddef targets..."
|
||||
|
||||
sed -n -e '/^AUTOGEN_VCS/,/^$/ s/\\//p' lisp/Makefile.in | \
|
||||
sed '/AUTOGEN_VCS/d' >| $tempfile || die "sed error"
|
||||
sed -n -e '/^AUTOGEN_VCS/,/^$/p' lisp/Makefile.in | \
|
||||
sed -e '/AUTOGEN_VCS/d' -e '/^$/d' -e 's/\\//' \
|
||||
>| $tempfile || die "sed error"
|
||||
|
||||
genfiles=
|
||||
|
||||
|
|
@ -285,24 +361,13 @@ echo "Checking status of loaddef files..."
|
|||
## It probably would be fine to just check+commit lisp/, since
|
||||
## making autoloads should not effect any other files. But better
|
||||
## safe than sorry.
|
||||
bzr status -S $genfiles ${ldefs_out#lisp/} >| $tempfile || \
|
||||
die "bzr status error for generated files"
|
||||
|
||||
|
||||
modified=
|
||||
|
||||
while read stat file; do
|
||||
|
||||
[ "$stat" != "M" ] && die "Unexpected status ($stat) for generated $file"
|
||||
modified="$modified $file"
|
||||
|
||||
done < $tempfile
|
||||
modified=$(status $genfiles ${ldefs_out#lisp/}) || die
|
||||
|
||||
|
||||
cd ../
|
||||
|
||||
|
||||
commit "loaddefs" $modified || die "bzr commit error"
|
||||
commit "loaddefs" $modified || die "commit error"
|
||||
|
||||
|
||||
exit 0
|
||||
14
autogen.sh
14
autogen.sh
|
|
@ -1,9 +1,10 @@
|
|||
#!/bin/sh
|
||||
### autogen.sh - tool to help build Emacs from a bzr checkout
|
||||
|
||||
## Copyright (C) 2011-2013 Free Software Foundation, Inc.
|
||||
## Copyright (C) 2011-2014 Free Software Foundation, Inc.
|
||||
|
||||
## Author: Glenn Morris <rgm@gnu.org>
|
||||
## Maintainer: emacs-devel@gnu.org
|
||||
|
||||
## This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -25,7 +26,7 @@
|
|||
## The Emacs bzr repository does not include the configure script
|
||||
## (and associated helpers). The first time you fetch Emacs from bzr,
|
||||
## run this script to generate the necessary files.
|
||||
## For more details, see the file INSTALL.BZR.
|
||||
## For more details, see the file INSTALL.REPO.
|
||||
|
||||
### Code:
|
||||
|
||||
|
|
@ -105,7 +106,7 @@ check_version ()
|
|||
|
||||
cat <<EOF
|
||||
Checking whether you have the necessary tools...
|
||||
(Read INSTALL.BZR for more details on building Emacs)
|
||||
(Read INSTALL.REPO for more details on building Emacs)
|
||||
|
||||
EOF
|
||||
|
||||
|
|
@ -191,13 +192,6 @@ autoreconf -i -I m4
|
|||
|
||||
instead of this script.
|
||||
|
||||
If all else fails, you can try using the pre-built versions of the
|
||||
generated files by doing:
|
||||
|
||||
./autogen/copy_autogen
|
||||
|
||||
This is not recommended - see the comments in \`copy_autogen'.
|
||||
|
||||
Please report any problems with this script to bug-gnu-emacs@gnu.org .
|
||||
EOF
|
||||
|
||||
|
|
|
|||
2250
autogen/Makefile.in
2250
autogen/Makefile.in
File diff suppressed because it is too large
Load diff
|
|
@ -1,20 +0,0 @@
|
|||
This directory contains some pre-built generated files.
|
||||
Most people do not need to use these files - instead you should
|
||||
generate them yourself using eg `autogen.sh'.
|
||||
|
||||
File: Destination: Created by:
|
||||
configure ../ autoconf
|
||||
config.in ../src autoheader * also used by MSDOS bzr build
|
||||
aclocal.m4 ../ aclocal
|
||||
Makefile.in ../lib automake
|
||||
compile ../build-aux automake
|
||||
config.guess ../build-aux automake
|
||||
config.sub ../build-aux automake
|
||||
depcomp ../build-aux automake
|
||||
install-sh ../build-aux automake
|
||||
missing ../build-aux automake
|
||||
|
||||
There are also some scripts:
|
||||
|
||||
copy_autogen - copy pre-built generated files into place
|
||||
update_autogen - regenerate generated files (for maintainers)
|
||||
1070
autogen/aclocal.m4
vendored
1070
autogen/aclocal.m4
vendored
File diff suppressed because it is too large
Load diff
143
autogen/compile
143
autogen/compile
|
|
@ -1,143 +0,0 @@
|
|||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand `-c -o'.
|
||||
|
||||
scriptversion=2009-10-06.20; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
|
||||
# Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# 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 2, 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
|
||||
# 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Wrapper for compilers which do not understand `-c -o'.
|
||||
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||
arguments, and rename the output as expected.
|
||||
|
||||
If you are trying to build a whole package this is not the
|
||||
right script to run: please start by reading the file `INSTALL'.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "compile $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
eat=
|
||||
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as `compile cc -o foo foo.c'.
|
||||
# So we strip `-o arg' only if arg is an object.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.obj)
|
||||
ofile=$2
|
||||
;;
|
||||
*)
|
||||
set x "$@" -o "$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*.c)
|
||||
cfile=$1
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$ofile" || test -z "$cfile"; then
|
||||
# If no `-o' option was seen then we might have been invoked from a
|
||||
# pattern rule where we don't need one. That is ok -- this is a
|
||||
# normal compilation that the losing compiler can handle. If no
|
||||
# `.c' file was seen then we are probably linking. That is also
|
||||
# ok.
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use `[/\\:.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# FIXME: race condition here if user kills between mkdir and trap.
|
||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
|
||||
# Run the compile.
|
||||
"$@"
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
exit $ret
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
1533
autogen/config.guess
vendored
1533
autogen/config.guess
vendored
File diff suppressed because it is too large
Load diff
1693
autogen/config.sub
vendored
1693
autogen/config.sub
vendored
File diff suppressed because it is too large
Load diff
28329
autogen/configure
vendored
28329
autogen/configure
vendored
File diff suppressed because it is too large
Load diff
|
|
@ -1,27 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
## Helper script for those building Emacs from bzr without autoconf etc.
|
||||
## This installs some pre-generated versions of the automatically
|
||||
## generated files. It is highly recommended to install the necessary
|
||||
## tools instead of using this. Note that if eg configure.ac
|
||||
## is updated, the next time you run make it will attempt to
|
||||
## regenerate configure and will fail if you do not have the required
|
||||
## tools. You will have to run this script again.
|
||||
|
||||
test ! -d autogen || cd autogen || exit
|
||||
|
||||
if test ! -e config.in; then
|
||||
echo "Cannot find autogen/ directory."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
## Order implied by top-level Makefile's rules, for time-stamps.
|
||||
cp -f compile config.guess config.sub depcomp install-sh missing \
|
||||
../build-aux &&
|
||||
cp aclocal.m4 ../ &&
|
||||
cp configure ../ &&
|
||||
touch ../src/stamp-h.in &&
|
||||
cp config.in ../src/ &&
|
||||
cp Makefile.in ../lib/ &&
|
||||
|
||||
echo "You can now run configure"
|
||||
630
autogen/depcomp
630
autogen/depcomp
|
|
@ -1,630 +0,0 @@
|
|||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 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 2, 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
|
||||
# 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||
as side-effects.
|
||||
|
||||
Environment variables:
|
||||
depmode Dependency tracking mode.
|
||||
source Source file read by `PROGRAMS ARGS'.
|
||||
object Object file output by `PROGRAMS ARGS'.
|
||||
DEPDIR directory where to store dependencies.
|
||||
depfile Dependency file to output.
|
||||
tmpdepfile Temporary file to use when outputing dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "depcomp $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||
depfile=${depfile-`echo "$object" |
|
||||
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||
|
||||
rm -f "$tmpdepfile"
|
||||
|
||||
# Some modes work just like other modes, but use different flags. We
|
||||
# parameterize here, but still list the modes in the big case below,
|
||||
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||
# here, because this file can only contain one case statement.
|
||||
if test "$depmode" = hp; then
|
||||
# HP compiler uses -M and no extra arg.
|
||||
gccflag=-M
|
||||
depmode=gcc
|
||||
fi
|
||||
|
||||
if test "$depmode" = dashXmstdout; then
|
||||
# This is just like dashmstdout with a different argument.
|
||||
dashmflag=-xM
|
||||
depmode=dashmstdout
|
||||
fi
|
||||
|
||||
cygpath_u="cygpath -u -f -"
|
||||
if test "$depmode" = msvcmsys; then
|
||||
# This is just like msvisualcpp but w/o cygpath translation.
|
||||
# Just convert the backslash-escaped backslashes to single forward
|
||||
# slashes to satisfy depend.m4
|
||||
cygpath_u="sed s,\\\\\\\\,/,g"
|
||||
depmode=msvisualcpp
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||
## the command line argument order; so add the flags where they
|
||||
## appear in depend2.am. Note that the slowdown incurred here
|
||||
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||
*) set fnord "$@" "$arg" ;;
|
||||
esac
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
done
|
||||
"$@"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## There are various ways to get dependency output from gcc. Here's
|
||||
## why we pick this rather obscure method:
|
||||
## - Don't want to use -MD because we'd like the dependencies to end
|
||||
## up in a subdir. Having to rename by hand is ugly.
|
||||
## (We might end up doing this anyway to support other compilers.)
|
||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||
## -MM, not -M (despite what the docs say).
|
||||
## - Using -M directly means running the compiler twice (even worse
|
||||
## than renaming).
|
||||
if test -z "$gccflag"; then
|
||||
gccflag=-MD,
|
||||
fi
|
||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||
## The second -e expression handles DOS-style file names with drive letters.
|
||||
sed -e 's/^[^:]*: / /' \
|
||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||
## This next piece of magic avoids the `deleted header file' problem.
|
||||
## The problem is that when a header file which appears in a .P file
|
||||
## is deleted, the dependency causes make to die (because there is
|
||||
## typically no way to rebuild the header). We avoid this by adding
|
||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||
## this for us directly.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" |
|
||||
## Some versions of gcc put a space before the `:'. On the theory
|
||||
## that the space means something, we add a space to the output as
|
||||
## well.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
sgi)
|
||||
if test "$libtool" = yes; then
|
||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||
else
|
||||
"$@" -MDupdate "$tmpdepfile"
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
|
||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||
echo "$object : \\" > "$depfile"
|
||||
|
||||
# Clip off the initial element (the dependent). Don't try to be
|
||||
# clever and replace this with sed code, as IRIX sed won't handle
|
||||
# lines with more than a fixed number of characters (4096 in
|
||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||
# dependency line.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||
tr '
|
||||
' ' ' >> "$depfile"
|
||||
echo >> "$depfile"
|
||||
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
aix)
|
||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||
# in a .u file. In older versions, this file always lives in the
|
||||
# current directory. Also, the AIX compiler puts `$object:' at the
|
||||
# start of each line; $object doesn't have directory information.
|
||||
# Version 6 uses the directory in both cases.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$base.u
|
||||
tmpdepfile3=$dir.libs/$base.u
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$dir$base.u
|
||||
tmpdepfile3=$dir$base.u
|
||||
"$@" -M
|
||||
fi
|
||||
stat=$?
|
||||
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
# Each line is of the form `foo.o: dependent.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
icc)
|
||||
# Intel's C compiler understands `-MD -MF file'. However on
|
||||
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
||||
# ICC 7.0 will fill foo.d with something like
|
||||
# foo.o: sub/foo.c
|
||||
# foo.o: sub/foo.h
|
||||
# which is wrong. We want:
|
||||
# sub/foo.o: sub/foo.c
|
||||
# sub/foo.o: sub/foo.h
|
||||
# sub/foo.c:
|
||||
# sub/foo.h:
|
||||
# ICC 7.1 will output
|
||||
# foo.o: sub/foo.c sub/foo.h
|
||||
# and will wrap long lines using \ :
|
||||
# foo.o: sub/foo.c ... \
|
||||
# sub/foo.h ... \
|
||||
# ...
|
||||
|
||||
"$@" -MD -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
# Each line is of the form `foo.o: dependent.h',
|
||||
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
|
||||
sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp2)
|
||||
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||
# compilers, which have integrated preprocessors. The correct option
|
||||
# to use with these is +Maked; it writes dependencies to a file named
|
||||
# 'foo.d', which lands next to the object file, wherever that
|
||||
# happens to be.
|
||||
# Much of this is similar to the tru64 case; see comments there.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir.libs/$base.d
|
||||
"$@" -Wc,+Maked
|
||||
else
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
"$@" +Maked
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||
# Add `dependent.h:' lines.
|
||||
sed -ne '2,${
|
||||
s/^ *//
|
||||
s/ \\*$//
|
||||
s/$/:/
|
||||
p
|
||||
}' "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||
;;
|
||||
|
||||
tru64)
|
||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||
# dependencies in `foo.d' instead, so we check for that too.
|
||||
# Subdirectories are respected.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
# With Tru64 cc, shared objects can also be used to make a
|
||||
# static library. This mechanism is used in libtool 1.4 series to
|
||||
# handle both shared and static libraries in a single compilation.
|
||||
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
|
||||
#
|
||||
# With libtool 1.5 this exception was removed, and libtool now
|
||||
# generates 2 separate objects for the 2 libraries. These two
|
||||
# compilations output dependencies in $dir.libs/$base.o.d and
|
||||
# in $dir$base.o.d. We have to check for both files, because
|
||||
# one of the two compilations can be disabled. We should prefer
|
||||
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||
# the former would cause a distcleancheck panic.
|
||||
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
|
||||
tmpdepfile2=$dir$base.o.d # libtool 1.5
|
||||
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
|
||||
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
tmpdepfile1=$dir$base.o.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
tmpdepfile3=$dir$base.d
|
||||
tmpdepfile4=$dir$base.d
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
#nosideeffect)
|
||||
# This comment above is used by automake to tell side-effect
|
||||
# dependency tracking mechanisms from slower ones.
|
||||
|
||||
dashmstdout)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
test -z "$dashmflag" && dashmflag=-M
|
||||
# Require at least two characters before searching for `:'
|
||||
# in the target name. This is to cope with DOS-style filenames:
|
||||
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
|
||||
"$@" $dashmflag |
|
||||
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
dashXmstdout)
|
||||
# This case only exists to satisfy depend.m4. It is never actually
|
||||
# run, as this mode is specially recognized in the preamble.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
makedepend)
|
||||
"$@" || exit $?
|
||||
# Remove any Libtool call
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no eat=no
|
||||
for arg
|
||||
do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
if test $eat = yes; then
|
||||
eat=no
|
||||
continue
|
||||
fi
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
# Strip any option that makedepend may not understand. Remove
|
||||
# the object too, otherwise makedepend will parse it as a source file.
|
||||
-arch)
|
||||
eat=yes ;;
|
||||
-*|$object)
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
esac
|
||||
done
|
||||
obj_suffix=`echo "$object" | sed 's/^.*\././'`
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||
' | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||
;;
|
||||
|
||||
cpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
"$@" -E |
|
||||
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed '$ s: \\$::' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
cat < "$tmpdepfile" >> "$depfile"
|
||||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvisualcpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E 2>/dev/null |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
echo " " >> "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvcmsys)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown depmode $depmode" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
|
@ -1,520 +0,0 @@
|
|||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
# following copyright and license.
|
||||
#
|
||||
# Copyright (C) 1994 X Consortium
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to
|
||||
# deal in the Software without restriction, including without limitation the
|
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
# sell copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# Except as contained in this notice, the name of the X Consortium shall not
|
||||
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||
# ings in this Software without prior written authorization from the X Consor-
|
||||
# tium.
|
||||
#
|
||||
#
|
||||
# FSF changes to this file are in the public domain.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch.
|
||||
|
||||
nl='
|
||||
'
|
||||
IFS=" "" $nl"
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit=${DOITPROG-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
||||
chgrpprog=${CHGRPPROG-chgrp}
|
||||
chmodprog=${CHMODPROG-chmod}
|
||||
chownprog=${CHOWNPROG-chown}
|
||||
cmpprog=${CMPPROG-cmp}
|
||||
cpprog=${CPPROG-cp}
|
||||
mkdirprog=${MKDIRPROG-mkdir}
|
||||
mvprog=${MVPROG-mv}
|
||||
rmprog=${RMPROG-rm}
|
||||
stripprog=${STRIPPROG-strip}
|
||||
|
||||
posix_glob='?'
|
||||
initialize_posix_glob='
|
||||
test "$posix_glob" != "?" || {
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=
|
||||
else
|
||||
posix_glob=:
|
||||
fi
|
||||
}
|
||||
'
|
||||
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
mode=0755
|
||||
|
||||
chgrpcmd=
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
mvcmd=$mvprog
|
||||
rmcmd="$rmprog -f"
|
||||
stripcmd=
|
||||
|
||||
src=
|
||||
dst=
|
||||
dir_arg=
|
||||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||
or: $0 [OPTION]... -d DIRECTORIES...
|
||||
|
||||
In the 1st form, copy SRCFILE to DSTFILE.
|
||||
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||
In the 4th, create DIRECTORIES.
|
||||
|
||||
Options:
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
-c (ignored)
|
||||
-C install only if different (preserve the last data modification time)
|
||||
-d create directories instead of installing files.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-s $stripprog installed files.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||
RMPROG STRIPPROG
|
||||
"
|
||||
|
||||
while test $# -ne 0; do
|
||||
case $1 in
|
||||
-c) ;;
|
||||
|
||||
-C) copy_on_change=true;;
|
||||
|
||||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||
for arg
|
||||
do
|
||||
if test -n "$dst_arg"; then
|
||||
# $@ is not empty: it contains at least $arg.
|
||||
set fnord "$@" "$dst_arg"
|
||||
shift # fnord
|
||||
fi
|
||||
shift # arg
|
||||
dst_arg=$arg
|
||||
done
|
||||
fi
|
||||
|
||||
if test $# -eq 0; then
|
||||
if test -z "$dir_arg"; then
|
||||
echo "$0: no input file specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
# It's OK to call `install-sh -d' without argument.
|
||||
# This can happen when creating conditional directories.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Set umask so as not to create temps with too-generous modes.
|
||||
# However, 'strip' requires both read and write access to temps.
|
||||
case $mode in
|
||||
# Optimize common cases.
|
||||
*644) cp_umask=133;;
|
||||
*755) cp_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
fi
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names starting with `-'.
|
||||
case $src in
|
||||
-*) src=./$src;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
dst=$src
|
||||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
if test ! -f "$src" && test ! -d "$src"; then
|
||||
echo "$0: $src does not exist." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$dst_arg"; then
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dst=$dst_arg
|
||||
# Protect names starting with `-'.
|
||||
case $dst in
|
||||
-*) dst=./$dst;;
|
||||
esac
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
dstdir=`
|
||||
(dirname "$dst") 2>/dev/null ||
|
||||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$dst" : 'X\(//\)[^/]' \| \
|
||||
X"$dst" : 'X\(//\)$' \| \
|
||||
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
echo X"$dst" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)[^/].*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\).*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
s/.*/./; q'
|
||||
`
|
||||
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
obsolete_mkdir_used=false
|
||||
|
||||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writeable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
else
|
||||
|
||||
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||
# or it failed possibly due to a race condition. Create the
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
-*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test -z "$d" && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||
else
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
rmtmp=$dstdir/_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||
|
||||
# Copy the file name to the temp name.
|
||||
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits.
|
||||
#
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||
#
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
|
||||
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
|
||||
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
rm -f "$dsttmp"
|
||||
else
|
||||
# Rename the file to the real destination.
|
||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||
|
||||
# The rename failed, perhaps because mv can't rename something else
|
||||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
trap '' 0
|
||||
fi
|
||||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
376
autogen/missing
376
autogen/missing
|
|
@ -1,376 +0,0 @@
|
|||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
|
||||
# 2008, 2009 Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# 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 2, 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
|
||||
# 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run=:
|
||||
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
|
||||
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
if test -f configure.ac; then
|
||||
configure_ac=configure.ac
|
||||
else
|
||||
configure_ac=configure.in
|
||||
fi
|
||||
|
||||
msg="missing on your system"
|
||||
|
||||
case $1 in
|
||||
--run)
|
||||
# Try to run requested program, and just exit if it succeeds.
|
||||
run=
|
||||
shift
|
||||
"$@" && exit 0
|
||||
# Exit code 63 means version mismatch. This often happens
|
||||
# when the user try to use an ancient version of a tool on
|
||||
# a file that requires a minimum version. In this case we
|
||||
# we should proceed has if the program had been absent, or
|
||||
# if --run hadn't been passed.
|
||||
if test $? = 63; then
|
||||
run=:
|
||||
msg="probably too old"
|
||||
fi
|
||||
;;
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||
error status if there is no known handling for PROGRAM.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
--run try to run the given command, and emulate it if it fails
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
autom4te touch the output file, or create a stub one
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
help2man touch the output file
|
||||
lex create \`lex.yy.c', if possible, from existing .c
|
||||
makeinfo touch the output file
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
|
||||
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
|
||||
\`g' are ignored when checking the name.
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing $scriptversion (GNU Automake)"
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo 1>&2 "$0: Unknown \`$1' option"
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# normalize program name to check for.
|
||||
program=`echo "$1" | sed '
|
||||
s/^gnu-//; t
|
||||
s/^gnu//; t
|
||||
s/^g//; t'`
|
||||
|
||||
# Now exit if we have it, but it failed. Also exit now if we
|
||||
# don't have it and --version was passed (most likely to detect
|
||||
# the program). This is about non-GNU programs, so use $1 not
|
||||
# $program.
|
||||
case $1 in
|
||||
lex*|yacc*)
|
||||
# Not GNU programs, they don't have --version.
|
||||
;;
|
||||
|
||||
tar*)
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
# Could not run --version or --help. This is probably someone
|
||||
# running `$TOOL --version' or `$TOOL --help' to check whether
|
||||
# $TOOL exists and not knowing $TOOL uses missing.
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case $program in
|
||||
aclocal*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||
any GNU archive site."
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||
archive site."
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||
from any GNU archive site."
|
||||
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||
test -z "$files" && files="config.h"
|
||||
touch_files=
|
||||
for f in $files; do
|
||||
case $f in
|
||||
*:*) touch_files="$touch_files "`echo "$f" |
|
||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||
*) touch_files="$touch_files $f.in";;
|
||||
esac
|
||||
done
|
||||
touch $touch_files
|
||||
;;
|
||||
|
||||
automake*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||
You might want to install the \`Automake' and \`Perl' packages.
|
||||
Grab them from any GNU archive site."
|
||||
find . -type f -name Makefile.am -print |
|
||||
sed 's/\.am$/.in/' |
|
||||
while read f; do touch "$f"; done
|
||||
;;
|
||||
|
||||
autom4te*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, but is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them.
|
||||
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||
archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo "#! /bin/sh"
|
||||
echo "# Created by GNU Automake missing as a replacement of"
|
||||
echo "# $ $@"
|
||||
echo "exit 0"
|
||||
chmod +x $file
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
bison*|yacc*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' $msg. You should only need it if
|
||||
you modified a \`.y' file. You may need the \`Bison' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Bison' from any GNU archive site."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f y.tab.h; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if test ! -f y.tab.c; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
|
||||
lex*|flex*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.l' file. You may need the \`Flex' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Flex' from any GNU archive site."
|
||||
rm -f lex.yy.c
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f lex.yy.c; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a dependency of a manual page. You may need the
|
||||
\`Help2man' package in order for those modifications to take
|
||||
effect. You can get \`Help2man' from any GNU archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit $?
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
indirectly affecting the aspect of the manual. The spurious
|
||||
call might also be the consequence of using a buggy \`make' (AIX,
|
||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||
the \`GNU make' package. Grab either from any GNU archive site."
|
||||
# The file to touch is that specified with -o ...
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -z "$file"; then
|
||||
# ... or it is the one specified with @setfilename ...
|
||||
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '
|
||||
/^@setfilename/{
|
||||
s/.* \([^ ]*\) *$/\1/
|
||||
p
|
||||
q
|
||||
}' $infile`
|
||||
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||
fi
|
||||
# If the file does not exist, the user really needs makeinfo;
|
||||
# let's fail without touching anything.
|
||||
test -f $file || exit 1
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar*)
|
||||
shift
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||
# messages.
|
||||
if (gnutar --version > /dev/null 2>&1); then
|
||||
gnutar "$@" && exit 0
|
||||
fi
|
||||
if (gtar --version > /dev/null 2>&1); then
|
||||
gtar "$@" && exit 0
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case $firstarg in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case $firstarg in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||
You may want to install GNU tar or Free paxutils, or check the
|
||||
command line arguments."
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them. Check the \`README' file,
|
||||
it often tells you about the needed prerequisites for installing
|
||||
this package. You may also peek at any GNU archive site, in case
|
||||
some other package would contain this missing \`$1' program."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
20
build-aux/dir_top
Normal file
20
build-aux/dir_top
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
This is the file .../info/dir, which contains the
|
||||
topmost node of the Info hierarchy, called (dir)Top.
|
||||
The first time you invoke Info you start off looking at this node.
|
||||
|
||||
File: dir, Node: Top This is the top of the INFO tree
|
||||
|
||||
The Info Directory
|
||||
******************
|
||||
|
||||
The Info Directory is the top-level menu of major Info topics.
|
||||
Type "d" in Info to return to the Info Directory. Type "q" to exit Info.
|
||||
Type "?" for a list of Info commands, or "h" to visit an Info tutorial.
|
||||
Type "m" to choose a menu item--for instance,
|
||||
"mEmacs<Return>" visits the Emacs manual.
|
||||
In Emacs Info, you can click mouse button 2 on a menu item
|
||||
or cross reference to follow it to its target.
|
||||
Each menu line that starts with a * is a topic you can select with "m".
|
||||
Every third topic has a red * to help pick the right number to type.
|
||||
|
||||
* Menu:
|
||||
106
build-aux/make-info-dir
Executable file
106
build-aux/make-info-dir
Executable file
|
|
@ -0,0 +1,106 @@
|
|||
#!/bin/sh
|
||||
|
||||
### make-info-dir - create info/dir, for systems without install-info
|
||||
|
||||
## Copyright (C) 2013-2014 Free Software Foundation, Inc.
|
||||
|
||||
## Author: Glenn Morris <rgm@gnu.org>
|
||||
## Maintainer: emacs-devel@gnu.org
|
||||
|
||||
## 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/>.
|
||||
|
||||
### Commentary:
|
||||
|
||||
## Generate info/dir, for systems without install-info.
|
||||
## Expects to be called from top-level Emacs source directory.
|
||||
|
||||
## It only handles the case where info/dir is missing from the
|
||||
## installation directory. It does not handle info/dir being present
|
||||
## but missing some entries.
|
||||
|
||||
### Code:
|
||||
|
||||
if test $# -ne 1; then
|
||||
echo "Specify destination file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
outfile=$1
|
||||
|
||||
echo "Creating $outfile..."
|
||||
|
||||
if test -f "$outfile"; then
|
||||
echo "$outfile already present"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
## Header contains non-printing characters, so this is more
|
||||
## reliable than using echo.
|
||||
basefile=build-aux/dir_top
|
||||
|
||||
if test ! -f "$basefile"; then
|
||||
echo "$basefile not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
cp $basefile $outfile
|
||||
|
||||
|
||||
## FIXME inefficient looping.
|
||||
## What we should do is loop once over files, collecting topic and
|
||||
## direntry information for each. Then loop over topics and write
|
||||
## out the results. But that seems to require associative arrays,
|
||||
## and I do not know how to do that with portable sh.
|
||||
## Could use Emacs instead of sh, but till now info generation does
|
||||
## not require Emacs to have been built.
|
||||
for topic in "Texinfo documentation system" "Emacs" "Emacs lisp" \
|
||||
"Emacs editing modes" "Emacs network features" "Emacs misc features" \
|
||||
"Emacs lisp libraries"; do
|
||||
|
||||
cat - <<EOF >> $outfile
|
||||
|
||||
$topic
|
||||
EOF
|
||||
## Bit faster than doc/*/*.texi.
|
||||
for file in doc/emacs/emacs.texi doc/lispintro/emacs-lisp-intro.texi \
|
||||
doc/lispref/elisp.texi doc/misc/*.texi; do
|
||||
|
||||
## FIXME do not ignore w32 if OS is w32.
|
||||
case $file in
|
||||
*-xtra.texi|*efaq-w32.texi|*doclicense.texi) continue ;;
|
||||
esac
|
||||
|
||||
dircat=`sed -n -e 's/@value{emacsname}/Emacs/' -e 's/^@dircategory //p' $file`
|
||||
|
||||
## TODO warn about unknown topics.
|
||||
## (check-info in top-level Makefile does that.)
|
||||
test "$dircat" = "$topic" || continue
|
||||
|
||||
|
||||
sed -n -e 's/@value{emacsname}/Emacs/' \
|
||||
-e 's/@acronym{\([A-Z]*\)}/\1/' \
|
||||
-e '/^@direntry/,/^@end direntry/ s/^\([^@]\)/\1/p' \
|
||||
$file >> $outfile
|
||||
|
||||
done
|
||||
done
|
||||
|
||||
echo "Created $outfile"
|
||||
|
||||
exit 0
|
||||
|
||||
### make-info-dir ends here
|
||||
|
|
@ -8,7 +8,7 @@ VERSION='2012-01-06 07:23'; # UTC
|
|||
# If you change this file with Emacs, please let the write hook
|
||||
# do its job. Otherwise, update this string manually.
|
||||
|
||||
# Copyright (C) 2002-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2002-2014 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
|
||||
|
|
|
|||
170
build-aux/msys-to-w32
Executable file
170
build-aux/msys-to-w32
Executable file
|
|
@ -0,0 +1,170 @@
|
|||
#!/bin/sh
|
||||
# Take a list of MSYS-compatible paths and convert them to native
|
||||
# MS-Windows format.
|
||||
# Status is zero if successful, nonzero otherwise.
|
||||
|
||||
# Copyright (C) 2013-2014 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.
|
||||
|
||||
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Take only the basename from the full pathname
|
||||
me=${0//*\//}
|
||||
|
||||
usage="usage: ${me} PATHLIST [MUSTEXIST] [SEPARATOR [SEPARATOR2]]"
|
||||
|
||||
help="$usage
|
||||
or: ${me} OPTION
|
||||
|
||||
Convert MSYS-compatible paths to MS-Windows native format.
|
||||
|
||||
PATHLIST should be a list of paths separated by SEPARATOR. This list
|
||||
will be written to the standard output after performing the following
|
||||
transformations:
|
||||
1. Discard empty paths.
|
||||
2. Replace backslashes with forward slashes.
|
||||
3. Replace two consecutive slashes with single ones.
|
||||
4. Translate to Windows-native format those paths that are not in such
|
||||
format already. The translated paths will not end with a slash,
|
||||
except for root directories (e.g. 'c:/' or 'c:/foo'). Paths
|
||||
starting with '%emacs_dir%' will not be translated.
|
||||
5. Escape with backslashes every occurrence of SEPARATOR2 within the paths.
|
||||
6. Concatenate the translated paths with SEPARATOR2.
|
||||
|
||||
If MUSTEXIST is 'Y' or not supplied, then each path in PATHLIST must
|
||||
exist. Otherwise, only some part of each path is required to exist
|
||||
(the deepest existing subpath will be translated and the remainder
|
||||
concatenated to the translation).
|
||||
|
||||
If SEPARATOR is not supplied, PATHLIST will be regarded as a single
|
||||
path.
|
||||
|
||||
If SEPARATOR2 is not supplied, it will take the same value as
|
||||
SEPARATOR.
|
||||
|
||||
Options:
|
||||
--help display this help and exit
|
||||
|
||||
Report bugs to <bug-gnu-emacs@gnu.org>."
|
||||
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
--help | --hel | --he | --h)
|
||||
exec echo "$help" ;;
|
||||
--)
|
||||
shift
|
||||
break ;;
|
||||
-*)
|
||||
echo "${me}: invalid option: $arg" >&2
|
||||
exit 1 ;;
|
||||
*)
|
||||
break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
{ test $# -ge 1 && test $# -le 4; } ||
|
||||
{ echo "${me}: $usage" >&2; exit 1; }
|
||||
|
||||
# Arguments
|
||||
pathlist="$1"
|
||||
mustexist="${2:-Y}"
|
||||
separator="$3"
|
||||
separator2="${4:-${separator}}"
|
||||
|
||||
# Split pathlist into its path components
|
||||
if test -n "$separator"
|
||||
then
|
||||
IFS=${separator} patharray=( $pathlist )
|
||||
else
|
||||
patharray=( "$pathlist" )
|
||||
fi
|
||||
|
||||
w32pathlist=""
|
||||
|
||||
for p in "${patharray[@]}"
|
||||
do
|
||||
# Skip empty paths
|
||||
test "$p" = "" && continue
|
||||
|
||||
# Replace '\' with '/' and '//' with '/'
|
||||
p="${p//\\//}"
|
||||
p="${p//\/\///}"
|
||||
|
||||
if test "${p:0:11}" = "%emacs_dir%"
|
||||
then
|
||||
# Paths starting with "%emacs_dir%" will not be translated
|
||||
w32p=$p
|
||||
elif test -d "$p"
|
||||
then
|
||||
# The path exists, so just translate it
|
||||
w32p=`cd "$p" && pwd -W`
|
||||
else
|
||||
# The path does not exist. So, try to guess the
|
||||
# Windows-native translation, by looking for the deepest
|
||||
# existing directory in this path, and then translating the
|
||||
# existing part and concatenating the remainder.
|
||||
|
||||
test "${mustexist}" = "Y" &&
|
||||
{ echo "${me}: invalid path: $p" >&2; exit 1; }
|
||||
|
||||
p1=$p
|
||||
IFS=/ pcomponents=( $p )
|
||||
|
||||
for (( i=${#pcomponents[@]}-1 ; i>=0 ; i-- ))
|
||||
do
|
||||
|
||||
if test "${pcomponents[i]}" = ""
|
||||
then
|
||||
# The path component is empty. This can only mean
|
||||
# that the path starts with "/" and all components
|
||||
# have been stripped out already. So in this case we
|
||||
# want to test with the MSYS root directory
|
||||
p1="/"
|
||||
else
|
||||
p1="${p1%/}"
|
||||
p1="${p1%${pcomponents[i]}}"
|
||||
fi
|
||||
|
||||
if test -d "${p1}"
|
||||
then
|
||||
|
||||
# Existing path found
|
||||
|
||||
# Translate the existing part and concatenate the
|
||||
# remainder (ensuring that only one slash is used in
|
||||
# the join, and no trailing slash is left)
|
||||
w32p1=`cd "${p1}" && pwd -W`
|
||||
remainder="${p#${p1}}"
|
||||
remainder="${remainder#/}"
|
||||
remainder="${remainder%/}"
|
||||
w32p="${w32p1%/}/${remainder}"
|
||||
|
||||
break
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
# If no existing directory was found, error out
|
||||
test -e "${p1}" ||
|
||||
{ echo "${me}: invalid path: ${p}" >&2; exit 1; }
|
||||
fi
|
||||
|
||||
# Concatenate the translated path to the translated pathlist
|
||||
test "${w32pathlist}" = "" || w32pathlist="${w32pathlist}${separator2}"
|
||||
w32pathlist="${w32pathlist}${w32p//${separator2}/\\${separator2}}"
|
||||
|
||||
done
|
||||
|
||||
# Write the translated pathlist to the standard output
|
||||
printf "%s" "${w32pathlist}"
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/* A C macro for declaring that specific arguments must not be NULL.
|
||||
Copyright (C) 2009-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2009-2014 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
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* C++ compatible function declaration macros.
|
||||
Copyright (C) 2010-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2010-2014 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
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* A C macro for emitting warnings if a function is used.
|
||||
Copyright (C) 2010-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2010-2014 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
|
||||
|
|
|
|||
274
build-aux/update-copyright
Executable file
274
build-aux/update-copyright
Executable file
|
|
@ -0,0 +1,274 @@
|
|||
eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" ${1+"$@"}'
|
||||
& eval 'exec perl -wS -0777 -pi "$0" $argv:q'
|
||||
if 0;
|
||||
# Update an FSF copyright year list to include the current year.
|
||||
|
||||
my $VERSION = '2013-01-03.09:41'; # UTC
|
||||
|
||||
# Copyright (C) 2009-2014 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, 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
|
||||
# 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Written by Jim Meyering and Joel E. Denny
|
||||
|
||||
# The arguments to this script should be names of files that contain
|
||||
# copyright statements to be updated. The copyright holder's name
|
||||
# defaults to "Free Software Foundation, Inc." but may be changed to
|
||||
# any other name by using the "UPDATE_COPYRIGHT_HOLDER" environment
|
||||
# variable.
|
||||
#
|
||||
# For example, you might wish to use the update-copyright target rule
|
||||
# in maint.mk from gnulib's maintainer-makefile module.
|
||||
#
|
||||
# Iff a copyright statement is recognized in a file and the final
|
||||
# year is not the current year, then the statement is updated for the
|
||||
# new year and it is reformatted to:
|
||||
#
|
||||
# 1. Fit within 72 columns.
|
||||
# 2. Convert 2-digit years to 4-digit years by prepending "19".
|
||||
# 3. Expand copyright year intervals. (See "Environment variables"
|
||||
# below.)
|
||||
#
|
||||
# A warning is printed for every file for which no copyright
|
||||
# statement is recognized.
|
||||
#
|
||||
# Each file's copyright statement must be formatted correctly in
|
||||
# order to be recognized. For example, each of these is fine:
|
||||
#
|
||||
# Copyright @copyright{} 1990-2005, 2007-2009 Free Software
|
||||
# Foundation, Inc.
|
||||
#
|
||||
# # Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# # Foundation, Inc.
|
||||
#
|
||||
# /*
|
||||
# * Copyright © 90,2005,2007-2009
|
||||
# * Free Software Foundation, Inc.
|
||||
# */
|
||||
#
|
||||
# However, the following format is not recognized because the line
|
||||
# prefix changes after the first line:
|
||||
#
|
||||
# ## Copyright (C) 1990-2005, 2007-2009 Free Software
|
||||
# # Foundation, Inc.
|
||||
#
|
||||
# However, any correctly formatted copyright statement following
|
||||
# a non-matching copyright statements would be recognized.
|
||||
#
|
||||
# The exact conditions that a file's copyright statement must meet
|
||||
# to be recognized are:
|
||||
#
|
||||
# 1. It is the first copyright statement that meets all of the
|
||||
# following conditions. Subsequent copyright statements are
|
||||
# ignored.
|
||||
# 2. Its format is "Copyright (C)", then a list of copyright years,
|
||||
# and then the name of the copyright holder.
|
||||
# 3. The "(C)" takes one of the following forms or is omitted
|
||||
# entirely:
|
||||
#
|
||||
# A. (C)
|
||||
# B. (c)
|
||||
# C. @copyright{}
|
||||
# D. ©
|
||||
#
|
||||
# 4. The "Copyright" appears at the beginning of a line, except that it
|
||||
# may be prefixed by any sequence (e.g., a comment) of no more than
|
||||
# 5 characters -- including white space.
|
||||
# 5. Iff such a prefix is present, the same prefix appears at the
|
||||
# beginning of each remaining line within the FSF copyright
|
||||
# statement. There is one exception in order to support C-style
|
||||
# comments: if the first line's prefix contains nothing but
|
||||
# whitespace surrounding a "/*", then the prefix for all subsequent
|
||||
# lines is the same as the first line's prefix except with each of
|
||||
# "/" and possibly "*" replaced by a " ". The replacement of "*"
|
||||
# by " " is consistent throughout all subsequent lines.
|
||||
# 6. Blank lines, even if preceded by the prefix, do not appear
|
||||
# within the FSF copyright statement.
|
||||
# 7. Each copyright year is 2 or 4 digits, and years are separated by
|
||||
# commas or dashes. Whitespace may appear after commas.
|
||||
#
|
||||
# Environment variables:
|
||||
#
|
||||
# 1. If UPDATE_COPYRIGHT_FORCE=1, a recognized FSF copyright statement
|
||||
# is reformatted even if it does not need updating for the new
|
||||
# year. If unset or set to 0, only updated FSF copyright
|
||||
# statements are reformatted.
|
||||
# 2. If UPDATE_COPYRIGHT_USE_INTERVALS=1, every series of consecutive
|
||||
# copyright years (such as 90, 1991, 1992-2007, 2008) in a
|
||||
# reformatted FSF copyright statement is collapsed to a single
|
||||
# interval (such as 1990-2008). If unset or set to 0, all existing
|
||||
# copyright year intervals in a reformatted FSF copyright statement
|
||||
# are expanded instead.
|
||||
# If UPDATE_COPYRIGHT_USE_INTERVALS=2, convert a sequence with gaps
|
||||
# to the minimal containing range. For example, convert
|
||||
# 2000, 2004-2007, 2009 to 2000-2009.
|
||||
# 3. For testing purposes, you can set the assumed current year in
|
||||
# UPDATE_COPYRIGHT_YEAR.
|
||||
# 4. The default maximum line length for a copyright line is 72.
|
||||
# Set UPDATE_COPYRIGHT_MAX_LINE_LENGTH to use a different length.
|
||||
# 5. Set UPDATE_COPYRIGHT_HOLDER if the copyright holder is other
|
||||
# than "Free Software Foundation, Inc.".
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $copyright_re = 'Copyright';
|
||||
my $circle_c_re = '(?:\([cC]\)|@copyright{}|©)';
|
||||
my $holder = $ENV{UPDATE_COPYRIGHT_HOLDER};
|
||||
$holder ||= 'Free Software Foundation, Inc.';
|
||||
my $prefix_max = 5;
|
||||
my $margin = $ENV{UPDATE_COPYRIGHT_MAX_LINE_LENGTH};
|
||||
!$margin || $margin !~ m/^\d+$/
|
||||
and $margin = 72;
|
||||
|
||||
my $tab_width = 8;
|
||||
|
||||
my $this_year = $ENV{UPDATE_COPYRIGHT_YEAR};
|
||||
if (!$this_year || $this_year !~ m/^\d{4}$/)
|
||||
{
|
||||
my ($sec, $min, $hour, $mday, $month, $year) = localtime (time ());
|
||||
$this_year = $year + 1900;
|
||||
}
|
||||
|
||||
# Unless the file consistently uses "\r\n" as the EOL, use "\n" instead.
|
||||
my $eol = /(?:^|[^\r])\n/ ? "\n" : "\r\n";
|
||||
|
||||
my $leading;
|
||||
my $prefix;
|
||||
my $ws_re;
|
||||
my $stmt_re;
|
||||
while (/(^|\n)(.{0,$prefix_max})$copyright_re/g)
|
||||
{
|
||||
$leading = "$1$2";
|
||||
$prefix = $2;
|
||||
if ($prefix =~ /^(\s*\/)\*(\s*)$/)
|
||||
{
|
||||
$prefix =~ s,/, ,;
|
||||
my $prefix_ws = $prefix;
|
||||
$prefix_ws =~ s/\*/ /; # Only whitespace.
|
||||
if (/\G(?:[^*\n]|\*[^\/\n])*\*?\n$prefix_ws/)
|
||||
{
|
||||
$prefix = $prefix_ws;
|
||||
}
|
||||
}
|
||||
$ws_re = '[ \t\r\f]'; # \s without \n
|
||||
$ws_re =
|
||||
"(?:$ws_re*(?:$ws_re|\\n" . quotemeta($prefix) . ")$ws_re*)";
|
||||
my $holder_re = $holder;
|
||||
$holder_re =~ s/\s/$ws_re/g;
|
||||
my $stmt_remainder_re =
|
||||
"(?:$ws_re$circle_c_re)?"
|
||||
. "$ws_re(?:(?:\\d\\d)?\\d\\d(?:,$ws_re?|-))*"
|
||||
. "((?:\\d\\d)?\\d\\d)$ws_re$holder_re";
|
||||
if (/\G$stmt_remainder_re/)
|
||||
{
|
||||
$stmt_re =
|
||||
quotemeta($leading) . "($copyright_re$stmt_remainder_re)";
|
||||
last;
|
||||
}
|
||||
}
|
||||
if (defined $stmt_re)
|
||||
{
|
||||
/$stmt_re/ or die; # Should never die.
|
||||
my $stmt = $1;
|
||||
my $final_year_orig = $2;
|
||||
|
||||
# Handle two-digit year numbers like "98" and "99".
|
||||
my $final_year = $final_year_orig;
|
||||
$final_year <= 99
|
||||
and $final_year += 1900;
|
||||
|
||||
if ($final_year != $this_year)
|
||||
{
|
||||
# Update the year.
|
||||
$stmt =~ s/\b$final_year_orig\b/$final_year, $this_year/;
|
||||
}
|
||||
if ($final_year != $this_year || $ENV{'UPDATE_COPYRIGHT_FORCE'})
|
||||
{
|
||||
# Normalize all whitespace including newline-prefix sequences.
|
||||
$stmt =~ s/$ws_re/ /g;
|
||||
|
||||
# Put spaces after commas.
|
||||
$stmt =~ s/, ?/, /g;
|
||||
|
||||
# Convert 2-digit to 4-digit years.
|
||||
$stmt =~ s/(\b\d\d\b)/19$1/g;
|
||||
|
||||
# Make the use of intervals consistent.
|
||||
if (!$ENV{UPDATE_COPYRIGHT_USE_INTERVALS})
|
||||
{
|
||||
$stmt =~ s/(\d{4})-(\d{4})/join(', ', $1..$2)/eg;
|
||||
}
|
||||
else
|
||||
{
|
||||
$stmt =~
|
||||
s/
|
||||
(\d{4})
|
||||
(?:
|
||||
(,\ |-)
|
||||
((??{
|
||||
if ($2 eq '-') { '\d{4}'; }
|
||||
elsif (!$3) { $1 + 1; }
|
||||
else { $3 + 1; }
|
||||
}))
|
||||
)+
|
||||
/$1-$3/gx;
|
||||
|
||||
# When it's 2, emit a single range encompassing all year numbers.
|
||||
$ENV{UPDATE_COPYRIGHT_USE_INTERVALS} == 2
|
||||
and $stmt =~ s/\b(\d{4})\b.*\b(\d{4})\b/$1-$2/;
|
||||
}
|
||||
|
||||
# Format within margin.
|
||||
my $stmt_wrapped;
|
||||
my $text_margin = $margin - length($prefix);
|
||||
if ($prefix =~ /^(\t+)/)
|
||||
{
|
||||
$text_margin -= length($1) * ($tab_width - 1);
|
||||
}
|
||||
while (length $stmt)
|
||||
{
|
||||
if (($stmt =~ s/^(.{1,$text_margin})(?: |$)//)
|
||||
|| ($stmt =~ s/^([\S]+)(?: |$)//))
|
||||
{
|
||||
my $line = $1;
|
||||
$stmt_wrapped .= $stmt_wrapped ? "$eol$prefix" : $leading;
|
||||
$stmt_wrapped .= $line;
|
||||
}
|
||||
else
|
||||
{
|
||||
# Should be unreachable, but we don't want an infinite
|
||||
# loop if it can be reached.
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
# Replace the old copyright statement.
|
||||
s/$stmt_re/$stmt_wrapped/;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print STDERR "$ARGV: warning: copyright statement not found\n";
|
||||
}
|
||||
|
||||
# Local variables:
|
||||
# mode: perl
|
||||
# indent-tabs-mode: nil
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "my $VERSION = '"
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H:%02M"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "'; # UTC"
|
||||
# End:
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
# Write into $1/subdirs.el a list of subdirs of directory $1.
|
||||
|
||||
# Copyright (C) 1994-1995, 1997, 1999, 2001-2013 Free Software
|
||||
# Copyright (C) 1994-1995, 1997, 1999, 2001-2014 Free Software
|
||||
# Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
cd $1
|
||||
cd "$1" || exit 1
|
||||
for file in *; do
|
||||
case $file in
|
||||
*.elc | *.el | term | RCS | CVS | Old | . | .. | =* | *~ | *.orig | *.rej)
|
||||
|
|
@ -49,8 +49,8 @@ else
|
|||
;; no-byte-compile: t
|
||||
;; End:" > subdirs.el~
|
||||
if cmp "subdirs.el" "subdirs.el~" >/dev/null 2>&1; then
|
||||
:; # echo "subdirs.el unchanged";
|
||||
rm subdirs.el~
|
||||
else
|
||||
mv subdirs.el~ subdirs.el
|
||||
mv subdirs.el~ subdirs.el
|
||||
fi
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
@echo off
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Configuration script for MSDOS
|
||||
rem Copyright (C) 1994-1999, 2001-2013 Free Software Foundation, Inc.
|
||||
rem Copyright (C) 1994-1999, 2001-2014 Free Software Foundation, Inc.
|
||||
|
||||
rem This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -155,10 +155,10 @@ rm -f epaths.tmp
|
|||
rem Create "config.h"
|
||||
rm -f config.h2 config.tmp
|
||||
if exist config.in sed -e '' config.in > config.tmp
|
||||
if exist ..\autogen\config.in sed -e '' ../autogen/config.in > config.tmp
|
||||
if exist ..\msdos\autogen\config.in sed -e '' ../msdos/autogen/config.in > config.tmp
|
||||
if "%X11%" == "" goto src4
|
||||
if exist config.in sed -f ../msdos/sed2x.inp < config.in > config.tmp
|
||||
if exist ..\autogen\config.in sed -f ../msdos/sed2x.inp < ..\autogen\config.in > config.tmp
|
||||
if exist ..\msdos\autogen\config.in sed -f ../msdos/sed2x.inp < ..\msdos\autogen\config.in > config.tmp
|
||||
:src4
|
||||
sed -f ../msdos/sed2v2.inp <config.tmp >config.h2
|
||||
Rem See if they have libxml2 later than v2.2.0 installed
|
||||
|
|
@ -279,7 +279,7 @@ If Exist sys_types.in.h update sys_types.in.h sys_types.in-h
|
|||
If Exist time.in.h update time.in.h time.in-h
|
||||
If Exist unistd.in.h update unistd.in.h unistd.in-h
|
||||
If Exist Makefile.in sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp
|
||||
If Exist ..\autogen\Makefile.in sed -f ../msdos/sedlibcf.inp < ..\autogen\Makefile.in > makefile.tmp
|
||||
If Exist ..\msdos\autogen\Makefile.in sed -f ../msdos/sedlibcf.inp < ..\msdos\autogen\Makefile.in > makefile.tmp
|
||||
sed -f ../msdos/sedlibmk.inp < makefile.tmp > Makefile
|
||||
rm -f makefile.tmp
|
||||
Rem Create .Po files for new files in lib/
|
||||
|
|
|
|||
1641
configure.ac
1641
configure.ac
File diff suppressed because it is too large
Load diff
|
|
@ -1,3 +1,596 @@
|
|||
2014-02-23 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* rmail.texi (Rmail Inbox): Mention rmail-mbox-format.
|
||||
|
||||
2014-02-20 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* search.texi (Special Isearch): Mention invisible text.
|
||||
* text.texi (Outline Visibility): Mention `M-s i' in isearch.
|
||||
|
||||
2014-02-18 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* trouble.texi (Contributing) [WWW_GNU_ORG]: Link to
|
||||
gnu.org version of etc/CONTRIBUTE in html output.
|
||||
|
||||
* misc.texi (Saving Emacs Sessions): Mention desktop-auto-save-timeout.
|
||||
|
||||
2014-02-17 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* programs.texi (Matching): Fix typo.
|
||||
|
||||
* killing.texi (CUA Bindings): Document the new relationship between
|
||||
cua-mode and delete-selection mode.
|
||||
(CUA Bindings): Mention that rectangle mode can be used on its own.
|
||||
|
||||
2014-02-14 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* regs.texi (Configuration Registers): Update C-x r f binding.
|
||||
|
||||
2014-02-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* mini.texi (Completion Options): No longer mention icomplete,
|
||||
which has its own section now.
|
||||
* modes.texi (Minor Modes): Update Icomplete xref.
|
||||
|
||||
* help.texi (Package Keywords): Mention describe-package buttons.
|
||||
|
||||
* package.texi (Package Menu): Mention package-menu-filter.
|
||||
|
||||
2014-02-11 Lars Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* text.texi (Editing Format Info): Use @samp for menus (bug#13736).
|
||||
|
||||
2014-02-09 Lars Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* dired.texi (Hiding Subdirectories): Mention the node for
|
||||
deleting subdirectories (bug#11743).
|
||||
|
||||
2014-02-09 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* programs.texi (MixedCase Words): Rename node from "Glasses".
|
||||
Move Subword mode here from "Other C Commands" node.
|
||||
(Misc for Programs): Mention Superword mode.
|
||||
* emacs.texi: Update menu.
|
||||
|
||||
2014-02-08 Lars Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* regs.texi (File Registers): Clarify metasyntactical variables
|
||||
(bug#13565).
|
||||
|
||||
* search.texi (Search Case): Rearrange text slightly to make it
|
||||
obvious that `M-c' also toggles sensitivity if `case-fold-search'
|
||||
is nil (bug#14726).
|
||||
|
||||
* frames.texi (Mouse Commands): Clarify `mouse-yank-at-click'
|
||||
(bug#16376).
|
||||
|
||||
2014-02-07 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* display.texi (Highlight Interactively):
|
||||
Mention hi-lock-auto-select-face.
|
||||
|
||||
* anti.texi (Antinews): Fix typo.
|
||||
|
||||
* ack.texi (Acknowledgments): No longer mention obsolete files.
|
||||
|
||||
2014-02-02 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* regs.texi (Registers): Mention previewing.
|
||||
|
||||
2014-01-29 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* killing.texi (Deletion): Mention cycle-spacing.
|
||||
|
||||
2014-01-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* text.texi (Fill Commands): Mention fill-single-char-nobreak-p.
|
||||
|
||||
* indent.texi (Tab Stops): Updates for new tab-stop behavior.
|
||||
|
||||
2014-01-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* dired.texi (Misc Dired Features): Copyedits for hide-details.
|
||||
|
||||
* buffers.texi (List Buffers): Tiny edit.
|
||||
|
||||
* calendar.texi (Time Intervals): Update for files in ~/.emacs.d/.
|
||||
|
||||
2014-01-26 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* ack.texi (Acknowledgments):
|
||||
* programs.texi (Program Modes):
|
||||
Update for delphi.el -> opascal.el renaming.
|
||||
|
||||
* misc.texi (Sorting): Add findex for reverse-region.
|
||||
|
||||
* killing.texi (Deletion): Mention delete-duplicate-lines.
|
||||
|
||||
2014-01-24 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* ack.texi (Acknowledgments): No longer mention obsolete xesam.el,
|
||||
terminal.el.
|
||||
|
||||
* files.texi (Interlocking): Copyedit.
|
||||
|
||||
2014-01-23 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* building.texi (Lisp Eval): Update prefix argument behavior
|
||||
of eval-expression, eval-last-sexp.
|
||||
|
||||
2014-01-17 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* building.texi (Commands of GUD): Fix keybinding for `gud-break'.
|
||||
|
||||
2014-01-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* files.texi (File Conveniences):
|
||||
* misc.texi (EWW): Copyedits.
|
||||
|
||||
2014-01-10 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* emacs.texi (Distrib): Add donate URL. Add anchor.
|
||||
|
||||
2014-01-10 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
|
||||
|
||||
* dired.texi (Misc Dired Features): Document `dired-hide-details-mode',
|
||||
`dired-hide-details-hide-symlink-targets', and
|
||||
`dired-hide-details-hide-information-lines'.
|
||||
|
||||
2014-01-09 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
|
||||
|
||||
* emacs.texi: Add EWW.
|
||||
* misc.texi (EWW): Document EWW.
|
||||
|
||||
2014-01-09 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* trouble.texi (Service): Refer to online service directory
|
||||
rather than etc/SERVICE.
|
||||
|
||||
2014-01-09 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
|
||||
|
||||
* building.texi (Lisp Libraries): Document `load-prefer-newer'.
|
||||
|
||||
* files.texi (File Conveniences): Document `image-next-frame',
|
||||
`image-previous-frame', `image-goto-frame',
|
||||
`image-increase-speed', `image-decrease-speed',
|
||||
`image-reverse-speed', and `image-reset-speed'.
|
||||
|
||||
2014-01-07 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* buffers.texi (Buffers): Fix display of @math content by using
|
||||
nested braces. (Bug#16389)
|
||||
|
||||
2014-01-07 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* search.texi (Special Isearch): Document C-x 8 RET in isearch.
|
||||
(Word Search): Document incremental word search changes.
|
||||
(Isearch Yank): Document M-s C-e with a prefix argument.
|
||||
|
||||
2014-01-07 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cal-xtra.texi (Calendar Customizing):
|
||||
Mention calendar-day-header-array.
|
||||
|
||||
2013-12-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* trouble.texi (Understanding Bug Reporting): Brevity.
|
||||
|
||||
2013-12-27 Jarek Czekalski <jarekczek@poczta.onet.pl>
|
||||
|
||||
* mini.texi (Completion Options): Add a link to Shell Options.
|
||||
* misc.texi (Shell Mode): Move documentation of
|
||||
shell-completion-fignore from Shell Mode to Shell Options.
|
||||
|
||||
2013-12-26 João Távora <joaotavora@gmail.com>
|
||||
|
||||
* emacs.texi (Matching): Describe new features of Electric Pair mode.
|
||||
|
||||
2013-12-25 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* glossary.texi (Glossary): Define MULE in modern terms.
|
||||
|
||||
2013-12-25 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* files.texi (Diff Mode): Add an index.
|
||||
|
||||
2013-12-24 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* trouble.texi (Understanding Bug Reporting): Minor update.
|
||||
(Checklist): Fix a cross-reference.
|
||||
|
||||
2013-12-23 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* regs.texi (Bookmarks): Document `bookmark-default-file'.
|
||||
|
||||
* misc.texi (Shell Mode): Add a cross-reference.
|
||||
|
||||
* building.texi (Lisp Eval): Add an index.
|
||||
|
||||
2013-12-22 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* entering.texi (Entering Emacs): Typo fix.
|
||||
|
||||
* calendar.texi (General Calendar):
|
||||
* rmail.texi (Rmail Scrolling): Use itemx where appropriate.
|
||||
|
||||
2013-12-22 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* regs.texi (Keyboard Macro Registers): Fix last change.
|
||||
|
||||
2013-12-22 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* search.texi (Special Isearch):
|
||||
(Query Replace): Document negative argument of replacement commands.
|
||||
(Symbol Search): Document `isearch-forward-symbol-at-point'.
|
||||
|
||||
* files.texi (File Conveniences): Document `image-next-file' and
|
||||
`image-previous-file'.
|
||||
|
||||
* display.texi (Optional Mode Line): Fix an index.
|
||||
|
||||
* regs.texi (File Registers): Document `kmacro-to-register'.
|
||||
|
||||
* indent.texi (Tab Stops): Mention recent changes about `tab-stop-list'.
|
||||
|
||||
* frames.texi (Scroll Bars): Document
|
||||
`scroll-bar-adjust-thumb-portion'.
|
||||
|
||||
2013-12-21 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* indent.texi (Indentation Commands): Document C-x TAB changes.
|
||||
|
||||
2013-12-20 Tassilo Horn <tsdh@gnu.org>
|
||||
|
||||
* calendar.texi, display.texi, help.texi, rmail.texi:
|
||||
Document `S-SPC' as alternative to scrolling down with `DEL'.
|
||||
|
||||
* frames.texi: Document `toggle-frame-maximized' and
|
||||
`toggle-frame-fullscreen' with their respective keys.
|
||||
|
||||
* buffers.texi: Document buffer name uniquification changes.
|
||||
|
||||
* indent.texi: Document that `electric-indent-mode' is enabled by
|
||||
default.
|
||||
|
||||
* display.texi (Cursor Display): Document `blink-cursor-blinks'.
|
||||
|
||||
* buffers.texi: Update list-buffers "screeshot" to show Messages
|
||||
as major-mode.
|
||||
|
||||
* entering.texi: Document `initial-buffer-choice' changes.
|
||||
|
||||
* misc.texi (emacsclient Options): Document
|
||||
`initial-buffer-choice' changes.
|
||||
|
||||
* help.texi: Document that `?' now also shows subcommands of
|
||||
prefix keys.
|
||||
|
||||
2013-12-17 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* killing.texi (Appending Kills): Note that append-next-kill can
|
||||
prepend the kill.
|
||||
|
||||
2013-12-12 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* mule.texi (File Name Coding): Document file-name encoding
|
||||
peculiarities on MS-Windows.
|
||||
|
||||
2013-12-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* emacs.texi: Sync direntry with info/dir version.
|
||||
|
||||
2013-12-08 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* msdog.texi (Windows Keyboard): Fix typo.
|
||||
|
||||
2013-11-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (distclean): Remove Makefile.
|
||||
|
||||
2013-11-29 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* buffers.texi (Icomplete): Rename from Iswitchb and
|
||||
rewrite accordingly.
|
||||
|
||||
2013-11-23 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cmdargs.texi (General Variables):
|
||||
Empty elements in EMACSLOADPATH now mean the default load-path.
|
||||
|
||||
2013-11-21 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cmdargs.texi (Action Arguments): Use path-separator with -L.
|
||||
|
||||
2013-11-04 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cmdargs.texi (Action Arguments): Mention that `-L :...' appends.
|
||||
|
||||
2013-11-02 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cmdargs.texi (Action Arguments): Clarify `-L' a bit.
|
||||
|
||||
2013-10-23 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* files.texi, glossary.texi, killing.texi, search.texi, sending.texi:
|
||||
Nuke @refill.
|
||||
|
||||
* Makefile.in (install-dvi, install-html, install-pdf)
|
||||
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
|
||||
(uninstall-pdf): Quote entities that might contain whitespace.
|
||||
|
||||
2013-10-20 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* custom.texi (Init Syntax, Terminal Init, Terminal Init):
|
||||
Remove @refill.
|
||||
|
||||
2013-10-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* ack.texi (Acknowledgments): Comment out old alpha stuff.
|
||||
|
||||
2013-10-13 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* calendar.texi (Special Diary Entries): Remove @refill.
|
||||
|
||||
2013-10-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* display.texi (Text Scale): Update text-scale-adjust details.
|
||||
|
||||
* ack.texi (Acknowledgments):
|
||||
* emacs.texi (Acknowledgments): Use accented form of some names.
|
||||
|
||||
2013-10-08 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* ack.texi (Acknowledgments): Fix spelling of Hrvoje Nikšić's
|
||||
name. (Bug#15557)
|
||||
|
||||
Support menus on text-mode terminals.
|
||||
* screen.texi (Menu Bar): Adapt to TTY menus.
|
||||
|
||||
* frames.texi (Frames): Mention menu support on text terminals.
|
||||
|
||||
* files.texi (Visiting): Mention the "File" menu-bar menu.
|
||||
|
||||
* display.texi (Standard Faces): Mention TTY faces for menus.
|
||||
|
||||
2013-10-06 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* cal-xtra.texi (Calendar Customizing, Diary Display): Remove @refill.
|
||||
|
||||
2013-09-29 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* fortran-xtra.texi (Fortran Abbrev): Remove @refill.
|
||||
|
||||
2013-09-26 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* dired.texi (Flagging Many Files): Use @emph instead of @strong.
|
||||
|
||||
* emacs.texi (Intro): Minor cleanup.
|
||||
|
||||
2013-09-22 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* fixit.texi (Transpose):
|
||||
(Fixing Case): Remove @refill.
|
||||
|
||||
2013-09-21 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* maintaining.texi (VC Directory Commands): Add keybinding for
|
||||
vc-log-incoming in vc-dir.
|
||||
(Log Buffer): Use @emph instead of @strong.
|
||||
|
||||
2013-09-12 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* text.texi (Enriched Justification): Explain values of default-justification.
|
||||
|
||||
2013-09-04 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* maintaining.texi (VC Ignore): Mention `vc-ignore' with prefix argument.
|
||||
|
||||
2013-08-31 Ulrich Müller <ulm@gentoo.org>
|
||||
|
||||
* xresources.texi (Motif Resources):
|
||||
Rename from LessTif Resources. Update xrefs. (Bug#15145)
|
||||
* emacs.texi: Update menu.
|
||||
|
||||
2013-08-28 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
|
||||
for portability to hosts where /bin/sh has problems.
|
||||
|
||||
2013-08-17 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* text.texi (Enriched Justification): Minor fixes.
|
||||
|
||||
2013-08-14 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* files.texi (Filesets): Add an index.
|
||||
|
||||
2013-08-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* macos.texi (GNUstep Support):
|
||||
* trouble.texi (Checklist, Contributing, Service):
|
||||
Avoid mailto: in html output.
|
||||
|
||||
* Makefile.in (prefix, datarootdir, datadir, PACKAGE_TARNAME)
|
||||
(docdir, dvidir, htmldir, pdfdir, psdir, GZIP_PROG, INSTALL)
|
||||
(INSTALL_DATA): New, set by configure.
|
||||
(HTML_OPTS, DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS):
|
||||
New variables.
|
||||
(.SUFFIXES): Add .ps and .dvi.
|
||||
(.dvi.ps): New suffix rule.
|
||||
(dvi, html, pdf, ps): Use *_TARGETS variables.
|
||||
(emacs.ps, emacs-xtra.ps): Remove explicit rules.
|
||||
(emacs.html): Use HTML_OPTS.
|
||||
(clean): Use DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS.
|
||||
(.PHONY): install-dvi, install-html, install-pdf, install-ps
|
||||
,install-doc, uninstall-dvi, uninstall-html, uninstall-pdf,
|
||||
uninstall-ps, and uninstall-doc.
|
||||
(install-dvi, install-html, install-pdf, install-ps, install-doc)
|
||||
(uninstall-dvi, uninstall-html, uninstall-ps, uninstall-pdf)
|
||||
(uninstall-doc): New rules.
|
||||
|
||||
2013-07-31 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* emacs.texi (Top): Remove menu item for the removed "Disabling
|
||||
Multibyte" node.
|
||||
|
||||
2013-07-31 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* rmail.texi (Rmail Coding): Move here from mule.texi.
|
||||
|
||||
* custom.texi (Specifying File Variables): Fix cross-references.
|
||||
|
||||
* mule.texi (Unibyte Mode): Fix cross-references.
|
||||
(Disabling Multibyte): Remove.
|
||||
|
||||
* macos.texi (Mac / GNUstep Basics): Mention `ns-alternate-modifier'.
|
||||
|
||||
* cal-xtra.texi (Advanced Calendar/Diary Usage): Update menu.
|
||||
(Mayan Calendar): Move here from calendar.texi.
|
||||
* emacs.texi (Top): Update menu.
|
||||
|
||||
2013-07-30 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* emacs.texi (Top): Add menu entry.
|
||||
|
||||
* maintaining.texi (VC Ignore): New node. Document vc-ignore.
|
||||
(VC Directory Commands): Add vc-dir-ignore.
|
||||
|
||||
2013-07-28 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* glossary.texi (Glossary): Add some entries.
|
||||
|
||||
2013-07-27 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* maintaining.texi (VC Directory Commands): Mention `D' and `L' in
|
||||
vc-dir. (Bug#14948)
|
||||
|
||||
2013-07-26 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* display.texi (Fringes): Document the variable fringe-mode.
|
||||
(Bug#14946)
|
||||
|
||||
2013-07-03 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* maintaining.texi (EDE): Fix cross-reference.
|
||||
|
||||
* programs.texi (Program Modes): Fix emacs-xtra reference.
|
||||
|
||||
* help.texi (Misc Help): Index describe-syntax.
|
||||
|
||||
2013-06-29 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* basic.texi (Moving Point): Document visual-order-cursor-movement
|
||||
and its effect on right-char and left-char.
|
||||
|
||||
2013-06-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* ack.texi (Acknowledgments): Small update.
|
||||
|
||||
2013-06-19 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (dist): Edit more configure variables.
|
||||
Try to check that we do not miss any in future.
|
||||
|
||||
2013-06-12 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* vc1-xtra.texi (Revision Tags): Add a cross reference.
|
||||
(CVS Options): Fix the default value of `vc-cvs-stay-local'.
|
||||
|
||||
2013-06-11 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* maintaining.texi (VC Directory Commands): Copyedit.
|
||||
(Branches): Put back milder version of pre 2013-06-07 text.
|
||||
|
||||
2013-06-07 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* maintaining.texi (Branches): Remove text copied from other sources.
|
||||
|
||||
2013-06-05 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
* search.texi (Isearch Scroll): Rename to "Not Exiting Isearch".
|
||||
(Not Exiting Isearch): Document new user option
|
||||
`isearch-allow-prefix'. (Bug#9706)
|
||||
|
||||
2013-06-03 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* display.texi (Highlight Interactively): Add global keybindings
|
||||
with the key prefix `M-s h'. Document old command `highlight-phrase'.
|
||||
Document new command `highlight-symbol-at-point'.
|
||||
|
||||
2013-06-02 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* maintaining.texi (Branches): Add motivations for branching.
|
||||
(VC Mode Line): Fix typo.
|
||||
(VC Directory Commands): Mention `vc-dir-hide-up-to-date' with
|
||||
prefix argument.
|
||||
|
||||
2013-06-02 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* cmdargs.texi (General Variables): Use "unix:path=/dev/null" as
|
||||
dummy value for $DBUS_SESSION_BUS_ADDRESS. It also suppresses
|
||||
autolaunching of the D-Bus session bus.
|
||||
|
||||
2013-06-01 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* programs.texi (Semantic): Fix typo.
|
||||
|
||||
2013-05-30 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* maintaining.texi (Types of Log File): Supplement some
|
||||
information of change log files.
|
||||
|
||||
2013-05-15 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* search.texi (Repeat Isearch): Mention key `RET' to finish
|
||||
editing the string. (Bug#13348)
|
||||
|
||||
2013-05-14 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* ack.texi (Acknowledgments): Don't mention obsolete sup-mouse.el.
|
||||
|
||||
2013-05-09 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* sending.texi (Mail Sending): Fix typo.
|
||||
|
||||
* windows.texi (Change Window): Fix typo.
|
||||
|
||||
* custom.texi (Changing a Variable): Fix typo.
|
||||
|
||||
* trouble.texi (Contributing): Remove obsolete info re pretesters.
|
||||
|
||||
2013-05-05 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
`write-region-inhibit-fsync' defaults to noninteractive (Bug#14273).
|
||||
* cmdargs.texi (Initial Options):
|
||||
* files.texi (Customize Save): Document this.
|
||||
|
||||
2013-05-04 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* calendar.texi (Importing Diary): Mention diary-from-outlook-function.
|
||||
|
||||
2013-03-17 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
doc: convert some TeX accents to UTF-8
|
||||
* ack.texi (Acknowledgments):
|
||||
* emacs.texi (Acknowledgments):
|
||||
Convert some TeX accents (e.g., '@l{}') to UTF-8 (e.g., 'ł').
|
||||
Apparently the TeX accents cause problems when generating gnu.org
|
||||
web pages, e.g., @l{} is rendered as '/l' on
|
||||
<http://www.gnu.org/software/emacs/manual/html_node/
|
||||
emacs/Acknowledgments.html>.
|
||||
|
||||
2013-03-16 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* emacs.texi (Top): Add some stuff specific to www.gnu.org.
|
||||
|
||||
2013-03-04 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Prefer UTF-8 for documentation.
|
||||
With GNU Texinfo 5.0, this generates nicer-looking info files,
|
||||
since they can use curly quotes. With older Texinfo it doesn't matter.
|
||||
* ack.texi, cal-xtra.texi, calendar.texi, emacs-xtra.texi, emacs.texi:
|
||||
Switch from Latin-1 to UTF-8.
|
||||
|
||||
2013-02-28 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* xresources.texi (GTK resources): Fix broken link.
|
||||
|
|
@ -329,6 +922,11 @@
|
|||
|
||||
* trouble.texi (Crashing): Document addr2line.
|
||||
|
||||
2012-09-19 Tassilo Horn <tsdh@gnu.org>
|
||||
|
||||
* misc.texi (DocView Slicing): Document new slice from
|
||||
BoundingBox feature.
|
||||
|
||||
2012-09-19 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* killing.texi (Yanking): Minor clarification (Bug#12469).
|
||||
|
|
@ -816,7 +1414,7 @@
|
|||
\\`info- no longer handled specially.
|
||||
Update for rmail-enable-mime-composing.
|
||||
Don't mention 'm' for replies.
|
||||
Don't mention rmail-mail-new-frame and cancelling, since it does
|
||||
Don't mention rmail-mail-new-frame and canceling, since it does
|
||||
not work for Message at the moment.
|
||||
|
||||
* cal-xtra.texi: Copyedits.
|
||||
|
|
@ -2686,9 +3284,9 @@
|
|||
|
||||
2010-03-27 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
doc/emacs/building.texi: Describe restored GDB/MI functionality
|
||||
* building.texi: Describe restored GDB/MI functionality
|
||||
removed by 2009-12-29T07:15:34Z!nickrob@snap.net.nz.
|
||||
doc/emacs/emacs.texi: Update node names for building.texi.
|
||||
* emacs.texi: Update node names for building.texi.
|
||||
|
||||
2010-03-24 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
|
|
@ -4505,7 +5103,7 @@
|
|||
|
||||
2008-05-02 Eric S. Raymond <esr@snark.thyrsus.com>
|
||||
|
||||
* emacs/buffers.texi, emacs/files.texi (Version-control):
|
||||
* buffers.texi, files.texi (Version-control):
|
||||
vc-toggle-read-only is no longer a good idea...
|
||||
|
||||
2008-04-29 Glenn Morris <rgm@gnu.org>
|
||||
|
|
@ -4652,10 +5250,6 @@
|
|||
|
||||
* maintaining.texi (Tags): Fix last change.
|
||||
|
||||
2008-02-02 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* tramp.texi: Use new FSF's Back-Cover Text.
|
||||
|
||||
2008-01-31 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* trouble.texi (Checklist): Direct users to emacs-devel@gnu.org.
|
||||
|
|
@ -4698,8 +5292,6 @@
|
|||
* search.texi (Query Replace): Make exp of query-replace more
|
||||
self-contained, and clarify.
|
||||
|
||||
* cc-mode.texi (Getting Started): Change @ref to @pxref.
|
||||
|
||||
2007-12-15 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* files.texi (Auto Save): Clarify definition of auto-saving.
|
||||
|
|
@ -5251,6 +5843,11 @@
|
|||
* frames.texi (Secondary Selection): Window clicked does not matter
|
||||
when mouse-yank-at-point is non-nil.
|
||||
|
||||
2007-01-27 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* msdog.texi (ls in Lisp): Document ls-lisp-format-time-list and
|
||||
ls-lisp-use-localized-time-format.
|
||||
|
||||
2007-01-16 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* abbrevs.texi (Editing Abbrevs): Describe how to disable a
|
||||
|
|
@ -5578,6 +6175,11 @@
|
|||
Change "Library Public License" to "Lesser Public License"
|
||||
throughout. Use "yyyy" to represent year.
|
||||
|
||||
2006-09-12 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* misc.texi (Interactive Shell): EMACS is now set
|
||||
to Emacs's absolute file name, not to "t".
|
||||
|
||||
2006-09-12 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* files.texi (Visiting): Add index entry "open file".
|
||||
|
|
@ -6339,8 +6941,6 @@
|
|||
|
||||
* sending.texi (Mail Sending): pxref to Top needs five args.
|
||||
|
||||
* texinfo.tex: Update to current version (2006-03-21.13).
|
||||
|
||||
2006-03-31 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* emacs.texi (Top): Update subnode menu.
|
||||
|
|
@ -9214,13 +9814,13 @@
|
|||
|
||||
2003-11-02 Jesper Harder <harder@ifa.au.dk> (tiny change)
|
||||
|
||||
* man/ack.texi, man/basic.texi, man/cmdargs.texi:
|
||||
* man/commands.texi, man/custom.texi, man/display.texi:
|
||||
* man/emacs.texi, man/files.texi:
|
||||
* man/frames.texi, man/glossary.texi, man/killing.texi:
|
||||
* man/macos.texi, man/mark.texi, man/misc.texi, man/msdog.texi:
|
||||
* man/mule.texi, man/rmail.texi, man/search.texi:
|
||||
* man/sending.texi, man/text.texi, man/trouble.texi:
|
||||
* ack.texi, basic.texi, cmdargs.texi:
|
||||
* commands.texi, custom.texi, display.texi:
|
||||
* emacs.texi, files.texi:
|
||||
* frames.texi, glossary.texi, killing.texi:
|
||||
* macos.texi, mark.texi, misc.texi, msdog.texi:
|
||||
* mule.texi, rmail.texi, search.texi:
|
||||
* sending.texi, text.texi, trouble.texi:
|
||||
Replace @sc{ascii} and ASCII with @acronym{ASCII}.
|
||||
|
||||
2003-11-01 Alan Mackenzie <acm@muc.de>
|
||||
|
|
@ -9754,7 +10354,7 @@
|
|||
|
||||
1990-05-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
|
||||
|
||||
* texindex.tex: If USG, include sys/types.h and sys/fcntl.h.
|
||||
* texindex.c: If USG, include sys/types.h and sys/fcntl.h.
|
||||
|
||||
1990-03-21 Jim Kingdon (kingdon@pogo.ai.mit.edu)
|
||||
|
||||
|
|
@ -9774,7 +10374,7 @@
|
|||
;; coding: utf-8
|
||||
;; End:
|
||||
|
||||
Copyright (C) 1993-1999, 2001-2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993-1999, 2001-2014 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#### Makefile for the Emacs Manual
|
||||
### @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1996-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1996-2014 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -17,7 +17,10 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
SHELL = /bin/sh
|
||||
SHELL = @SHELL@
|
||||
|
||||
# NB If you add any more configure variables,
|
||||
# update the sed rules in the dist target below.
|
||||
|
||||
# Where to find the source code. $(srcdir) will be the doc/emacs subdirectory
|
||||
# of the source tree. This is set by configure's `--srcdir' option.
|
||||
|
|
@ -35,8 +38,22 @@ buildinfodir = $(srcdir)/../../info
|
|||
# Directory with the (customized) texinfo.tex file.
|
||||
texinfodir = $(srcdir)/../misc
|
||||
|
||||
prefix = @prefix@
|
||||
datarootdir = @datarootdir@
|
||||
datadir = @datadir@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
htmldir = @htmldir@
|
||||
pdfdir = @pdfdir@
|
||||
psdir = @psdir@
|
||||
|
||||
MKDIR_P = @MKDIR_P@
|
||||
|
||||
GZIP_PROG = @GZIP_PROG@
|
||||
|
||||
HTML_OPTS = --no-split --html
|
||||
|
||||
INFO_EXT=@INFO_EXT@
|
||||
# Options used only when making info output.
|
||||
# --no-split is only needed because of MS-DOS.
|
||||
|
|
@ -44,6 +61,9 @@ INFO_EXT=@INFO_EXT@
|
|||
# http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg01182.html
|
||||
INFO_OPTS=@INFO_OPTS@
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
||||
# The makeinfo program is part of the Texinfo distribution.
|
||||
# Use --force so that it generates output even if there are errors.
|
||||
MAKEINFO = @MAKEINFO@
|
||||
|
|
@ -57,6 +77,10 @@ DVIPS = dvips
|
|||
ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \
|
||||
MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
|
||||
|
||||
DVI_TARGETS = emacs.dvi emacs-xtra.dvi
|
||||
HTML_TARGETS = emacs.html
|
||||
PDF_TARGETS = emacs.pdf emacs-xtra.pdf
|
||||
PS_TARGETS = emacs.ps emacs-xtra.ps
|
||||
|
||||
EMACS_XTRA= \
|
||||
${srcdir}/emacs-xtra.texi \
|
||||
|
|
@ -119,17 +143,21 @@ EMACSSOURCES= \
|
|||
${srcdir}/kmacro.texi \
|
||||
$(EMACS_XTRA)
|
||||
|
||||
## This seems pointless. The info/ directory exists in both the
|
||||
## repository and the release tarfiles.
|
||||
## The info/ directory exists in release tarfiles but not the repository.
|
||||
mkinfodir = @${MKDIR_P} ${buildinfodir}
|
||||
|
||||
.PHONY: info dvi html pdf ps
|
||||
|
||||
.SUFFIXES: .ps .dvi
|
||||
|
||||
.dvi.ps:
|
||||
$(DVIPS) -o $@ $<
|
||||
|
||||
info: $(buildinfodir)/emacs$(INFO_EXT)
|
||||
dvi: emacs.dvi
|
||||
html: emacs.html
|
||||
pdf: emacs.pdf
|
||||
ps: emacs.ps
|
||||
dvi: $(DVI_TARGETS)
|
||||
html: $(HTML_TARGETS)
|
||||
pdf: $(PDF_TARGETS)
|
||||
ps: $(PS_TARGETS)
|
||||
|
||||
# Note that all the Info targets build the Info files in srcdir.
|
||||
# There is no provision for Info files to exist in the build directory.
|
||||
|
|
@ -142,21 +170,15 @@ $(buildinfodir)/emacs$(INFO_EXT): ${EMACSSOURCES}
|
|||
emacs.dvi: ${EMACSSOURCES}
|
||||
$(ENVADD) $(TEXI2DVI) ${srcdir}/emacs.texi
|
||||
|
||||
emacs.ps: emacs.dvi
|
||||
$(DVIPS) -o $@ emacs.dvi
|
||||
|
||||
emacs.pdf: ${EMACSSOURCES}
|
||||
$(ENVADD) $(TEXI2PDF) ${srcdir}/emacs.texi
|
||||
|
||||
emacs.html: ${EMACSSOURCES}
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ ${srcdir}/emacs.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/emacs.texi
|
||||
|
||||
emacs-xtra.dvi: $(EMACS_XTRA)
|
||||
$(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-xtra.texi
|
||||
|
||||
emacs-xtra.ps: emacs-xtra.dvi
|
||||
$(DVIPS) -o $@ emacs-xtra.dvi
|
||||
|
||||
emacs-xtra.pdf: $(EMACS_XTRA)
|
||||
$(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-xtra.texi
|
||||
|
||||
|
|
@ -169,12 +191,11 @@ mostlyclean:
|
|||
|
||||
## Products not in the release tarfiles.
|
||||
clean: mostlyclean
|
||||
rm -f emacs.dvi emacs-xtra.dvi emacs.pdf emacs-xtra.pdf \
|
||||
emacs.ps emacs-xtra.ps
|
||||
rm -rf emacs.html/
|
||||
rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS)
|
||||
rm -f emacs-manual-${version}.tar*
|
||||
|
||||
distclean: clean
|
||||
rm -f Makefile
|
||||
|
||||
## In the standalone tarfile, the clean rule runs this.
|
||||
infoclean:
|
||||
|
|
@ -195,8 +216,61 @@ dist:
|
|||
-e 's/^\(buildinfodir *=\).*/\1 ./' \
|
||||
-e 's/^\(clean:.*\)/\1 infoclean/' \
|
||||
-e "s/@ver[s]ion@/${version}/" \
|
||||
-e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \
|
||||
-e 's/@IN[F]O_EXT@/.info/' -e 's/@IN[F]O_OPTS@//' \
|
||||
${srcdir}/Makefile.in > emacs-manual-${version}/Makefile
|
||||
@if grep '@[a-zA-Z_]*@' emacs-manual-${version}/Makefile; then \
|
||||
echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \
|
||||
fi
|
||||
tar -cf emacs-manual-${version}.tar emacs-manual-${version}
|
||||
rm -rf emacs-manual-${version}
|
||||
|
||||
|
||||
.PHONY: install-dvi install-html install-pdf install-ps install-doc
|
||||
|
||||
install-dvi: dvi
|
||||
umask 022; $(MKDIR_P) "$(DESTDIR)$(dvidir)"
|
||||
$(INSTALL_DATA) $(DVI_TARGETS) "$(DESTDIR)$(dvidir)"
|
||||
install-html: html
|
||||
umask 022; $(MKDIR_P) "$(DESTDIR)$(htmldir)"
|
||||
$(INSTALL_DATA) $(HTML_TARGETS) "$(DESTDIR)$(htmldir)"
|
||||
install-pdf: pdf
|
||||
umask 022;$(MKDIR_P) "$(DESTDIR)$(pdfdir)"
|
||||
$(INSTALL_DATA) $(PDF_TARGETS) "$(DESTDIR)$(pdfdir)"
|
||||
install-ps: ps
|
||||
umask 022; $(MKDIR_P) "$(DESTDIR)$(psdir)"
|
||||
for file in $(PS_TARGETS); do \
|
||||
$(INSTALL_DATA) $${file} "$(DESTDIR)$(psdir)"; \
|
||||
[ -n "${GZIP_PROG}" ] || continue; \
|
||||
rm -f "$(DESTDIR)$(psdir)/$${file}.gz"; \
|
||||
${GZIP_PROG} -9n "$(DESTDIR)$(psdir)/$${file}"; \
|
||||
done
|
||||
|
||||
## Top-level Makefile installs the info pages.
|
||||
install-doc: install-dvi install-html install-pdf install-ps
|
||||
|
||||
|
||||
.PHONY: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps uninstall-doc
|
||||
|
||||
uninstall-dvi:
|
||||
for file in $(DVI_TARGETS); do \
|
||||
rm -f "$(DESTDIR)$(dvidir)/$${file}"; \
|
||||
done
|
||||
uninstall-html:
|
||||
for file in $(HTML_TARGETS); do \
|
||||
rm -f "$(DESTDIR)$(htmldir)/$${file}"; \
|
||||
done
|
||||
uninstall-ps:
|
||||
ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \
|
||||
for file in $(PS_TARGETS); do \
|
||||
rm -f "$(DESTDIR)$(psdir)/$${file}$${ext}"; \
|
||||
done
|
||||
uninstall-pdf:
|
||||
for file in $(PDF_TARGETS); do \
|
||||
rm -f "$(DESTDIR)$(pdfdir)/$${file}"; \
|
||||
done
|
||||
|
||||
uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps
|
||||
|
||||
|
||||
### Makefile ends here
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2014 Free Software
|
||||
@c Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@node Abbrevs
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
@c -*- coding: iso-latin-1 -*-
|
||||
@c -*- coding: utf-8 -*-
|
||||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 1994-1997, 1999-2013 Free Software Foundation, Inc.
|
||||
@c Copyright (C) 1994-1997, 1999-2014 Free Software Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@c
|
||||
@node Acknowledgments
|
||||
|
|
@ -51,9 +51,9 @@ files.
|
|||
@item
|
||||
Michael Albinus wrote @file{dbus.el}, a package that implements the
|
||||
D-Bus message bus protocol; @file{zeroconf.el}, a mode for browsing
|
||||
Avahi services; @file{xesam.el}, a Xesam-based search engine
|
||||
interface; and @file{secrets.el}, an interface to keyring daemons for
|
||||
storing confidential data. He and Kai Großjohann wrote the Tramp package, which
|
||||
Avahi services;
|
||||
and @file{secrets.el}, an interface to keyring daemons for
|
||||
storing confidential data. He and Kai Großjohann wrote the Tramp package, which
|
||||
provides transparent remote file editing using rcp, ssh, ftp, and
|
||||
other network protocols. He and Daniel Pittman wrote
|
||||
@file{tramp-cache.el}.
|
||||
|
|
@ -68,7 +68,7 @@ Joe Arceneaux wrote the original text property implementation, and
|
|||
implemented support for X11.
|
||||
|
||||
@item
|
||||
Emil Åström, Milan Zamaza, and Stefan Bruda wrote @file{prolog.el},
|
||||
Emil Åström, Milan Zamaza, and Stefan Bruda wrote @file{prolog.el},
|
||||
a mode for editing Prolog (and Mercury) code.
|
||||
|
||||
@item
|
||||
|
|
@ -104,7 +104,7 @@ footnotes in email messages; and @file{gnus-audio.el} and
|
|||
@item
|
||||
Alexander L. Belikoff, Sergey Berezin, Sacha Chua, David Edmondson,
|
||||
Noah Friedman, Andreas Fuchs, Mario Lang, Ben Mesander, Lawrence
|
||||
Mitchell, Gergely Nagy, Michael Olson, Per Persson, Jorgen Schaefer,
|
||||
Mitchell, Gergely Nagy, Michael Olson, Per Persson, Jorgen Schäfer,
|
||||
Alex Schroeder, and Tom Tromey wrote ERC, an advanced Internet Relay
|
||||
Chat client (for more information, see the file @file{CREDITS} in the
|
||||
ERC distribution).
|
||||
|
|
@ -114,12 +114,16 @@ Scott Bender, Michael Brouwer, Christophe de Dinechin, Carl Edman,
|
|||
Christian Limpach and Adrian Robert developed and maintained the
|
||||
NeXTstep port of Emacs.
|
||||
|
||||
@item
|
||||
Stephen Berman wrote @file{todo-mode.el} (based on the original version
|
||||
by Oliver Seidel), a package for maintaining @file{TODO} list files.
|
||||
|
||||
@item
|
||||
Anna M. Bigatti wrote @file{cal-html.el}, which produces HTML calendars.
|
||||
|
||||
@item
|
||||
Ray Blaak and Simon South wrote @file{delphi.el}, a mode for editing
|
||||
Delphi (Object Pascal) source code.
|
||||
Ray Blaak and Simon South wrote @file{opascal.el}, a mode for editing
|
||||
Object Pascal source code.
|
||||
|
||||
@item
|
||||
Martin Blais, Stefan Merten, and David Goodger wrote @file{rst.el}, a
|
||||
|
|
@ -166,7 +170,7 @@ David M. Brown wrote @file{array.el}, for editing arrays and other
|
|||
tabular data.
|
||||
|
||||
@item
|
||||
W@l{}odek Bzyl and Ryszard Kubiak wrote @file{ogonek.el}, a package for
|
||||
Włodek Bzyl and Ryszard Kubiak wrote @file{ogonek.el}, a package for
|
||||
changing the encoding of Polish characters.
|
||||
|
||||
@item
|
||||
|
|
@ -260,7 +264,7 @@ text replace the current selection.
|
|||
Eric Ding wrote @file{goto-addr.el},
|
||||
|
||||
@item
|
||||
Jan Djärv added support for the GTK+ toolkit and X drag-and-drop.
|
||||
Jan Djärv added support for the GTK+ toolkit and X drag-and-drop.
|
||||
He also wrote @file{dynamic-setting.el}.
|
||||
|
||||
@item
|
||||
|
|
@ -268,11 +272,11 @@ Carsten Dominik wrote Ref@TeX{}, a package for setting up labels and
|
|||
cross-references in @LaTeX{} documents; and co-wrote IDLWAVE mode
|
||||
(q.v.). He was the original author of Org mode, for maintaining notes,
|
||||
todo lists, and project planning. Bastien Guerry subsequently took
|
||||
over maintainership. Benjamin Andresen, Thomas Baumann, Joel Boehland, Jan Böcker, Lennart
|
||||
over maintainership. Benjamin Andresen, Thomas Baumann, Joel Boehland, Jan Böcker, Lennart
|
||||
Borgman, Baoqiu Cui, Dan Davison, Christian Egli, Eric S. Fraga, Daniel German, Chris Gray, Konrad Hinsen, Tassilo Horn, Philip
|
||||
Jackson, Martyn Jago, Thorsten Jolitz, Jambunathan K, Tokuya Kameshima, Sergey Litvinov, David Maus, Ross Patterson, Juan Pechiar, Sebastian Rose, Eric Schulte,
|
||||
Paul Sexton, Ulf Stegemann, Andy Stewart, Christopher Suckling, David O'Toole, John Wiegley, Zhang Weize,
|
||||
Piotr Zielinski, and others also wrote various Org mode components.
|
||||
Piotr Zieliński, and others also wrote various Org mode components.
|
||||
For more information, @pxref{History and Acknowledgments,,, org, The Org Manual}.
|
||||
|
||||
@item
|
||||
|
|
@ -299,11 +303,10 @@ to VC and the calendar.
|
|||
|
||||
@item
|
||||
Stephen Eglen wrote @file{mspools.el}, which tells you which Procmail
|
||||
folders have mail waiting in them; and @file{iswitchb.el}, a feature
|
||||
for incremental reading and completion of buffer names.
|
||||
folders have mail waiting in them.
|
||||
|
||||
@item
|
||||
Torbjörn Einarsson wrote @file{f90.el}, a mode for Fortran 90 files.
|
||||
Torbjörn Einarsson wrote @file{f90.el}, a mode for Fortran 90 files.
|
||||
|
||||
@item
|
||||
Tsugutomo Enami co-wrote the support for international character sets.
|
||||
|
|
@ -365,7 +368,7 @@ Kevin Gallagher rewrote and enhanced the EDT emulation, and wrote
|
|||
flow control.
|
||||
|
||||
@item
|
||||
Fabián E. Gallina rewrote @file{python.el}, the major mode for the
|
||||
Fabián E. Gallina rewrote @file{python.el}, the major mode for the
|
||||
Python programming language used in Emacs 24.3 onwards.
|
||||
|
||||
@item
|
||||
|
|
@ -373,7 +376,7 @@ Kevin Gallo added multiple-frame support for Windows NT and wrote
|
|||
@file{w32-win.el}, support functions for the MS-Windows window system.
|
||||
|
||||
@item
|
||||
Juan León Lahoz García wrote @file{wdired.el}, a package for
|
||||
Juan León Lahoz García wrote @file{wdired.el}, a package for
|
||||
performing file operations by directly editing Dired buffers.
|
||||
|
||||
@item
|
||||
|
|
@ -510,9 +513,9 @@ He also wrote @file{network-stream.el}, for opening network processes;
|
|||
@file{url-queue.el}, for controlling parallel downloads of URLs;
|
||||
and implemented libxml2 support.
|
||||
Components of Gnus have also been written by: Nagy Andras, David
|
||||
Blacka, Scott Byer, Ludovic Courtès, Julien Danjou, Kevin Greiner, Kai
|
||||
Großjohann, Joe Hildebrand, Paul Jarc, Simon Josefsson, Sascha
|
||||
Lüdecke, David Moore, Jim Radford, Benjamin Rutt, Raymond Scholz,
|
||||
Blacka, Scott Byer, Ludovic Courtès, Julien Danjou, Kevin Greiner, Kai
|
||||
Großjohann, Joe Hildebrand, Paul Jarc, Simon Josefsson, Sascha
|
||||
Lüdecke, David Moore, Jim Radford, Benjamin Rutt, Raymond Scholz,
|
||||
Thomas Steffen, Reiner Steib, Didier Verna, Ilja Weis, Katsumi
|
||||
Yamaoka, Teodor Zlatanov, and others (@pxref{Contributors,,,gnus, the
|
||||
Gnus Manual}).
|
||||
|
|
@ -553,7 +556,7 @@ S/MIME and Sieve components; and @file{tls.el} and @file{starttls.el}
|
|||
for the Transport Layer Security protocol.
|
||||
|
||||
@item
|
||||
Arne Jørgensen wrote @file{latexenc.el}, a package to
|
||||
Arne Jørgensen wrote @file{latexenc.el}, a package to
|
||||
automatically guess the correct coding system in @LaTeX{} files.
|
||||
|
||||
@item
|
||||
|
|
@ -605,7 +608,7 @@ files and running a PostScript interpreter interactively from within
|
|||
Emacs.
|
||||
|
||||
@item
|
||||
Karel Klí@v{c} contributed SELinux support, for preserving the
|
||||
Karel Klíč contributed SELinux support, for preserving the
|
||||
Security-Enhanced Linux context of files on backup and copy.
|
||||
|
||||
@item
|
||||
|
|
@ -635,7 +638,7 @@ R. Dodd. He also wrote @file{ls-lisp.el}, a Lisp emulation of the
|
|||
program.
|
||||
|
||||
@item
|
||||
David K@ringaccent{a}gedal wrote @file{tempo.el}, providing support for
|
||||
David Kågedal wrote @file{tempo.el}, providing support for
|
||||
easy insertion of boilerplate text and other common constructions.
|
||||
|
||||
@item
|
||||
|
|
@ -694,7 +697,7 @@ directory-local variables; and the @code{info-finder} feature that
|
|||
creates a virtual Info manual of package keywords.
|
||||
|
||||
@item
|
||||
Károly L@H{o}rentey wrote the ``multi-terminal'' code, which allows
|
||||
Károly Lőrentey wrote the ``multi-terminal'' code, which allows
|
||||
Emacs to run on graphical and text terminals simultaneously.
|
||||
|
||||
@item
|
||||
|
|
@ -810,12 +813,11 @@ command with its arguments.
|
|||
Richard Mlynarik wrote @file{cl-indent.el}, a package for indenting
|
||||
Common Lisp code; @file{ebuff-menu.el}, an ``electric'' browser for
|
||||
buffer listings; @file{ehelp.el}, bindings for browsing help screens;
|
||||
@file{rfc822.el}, a parser for E-mail addresses in the RFC-822 format,
|
||||
used in mail messages and news articles; and @file{terminal.el}, a
|
||||
terminal emulator for Emacs subprocesses.
|
||||
and @file{rfc822.el}, a parser for E-mail addresses in the RFC-822 format,
|
||||
used in mail messages and news articles.
|
||||
|
||||
@item
|
||||
Gerd Moellmann was the Emacs maintainer from the beginning of Emacs 21
|
||||
Gerd Möllmann was the Emacs maintainer from the beginning of Emacs 21
|
||||
development until the release of 21.1. He wrote the new display
|
||||
engine used from Emacs 21 onwards, and the asynchronous timers
|
||||
facility. He also wrote @code{ebrowse}, the C@t{++} browser;
|
||||
|
|
@ -880,7 +882,7 @@ and @code{winterm} terminal emulators; and @file{vc-dir.el}, displaying
|
|||
the status of version-controlled directories.
|
||||
|
||||
@item
|
||||
Hrvoje Niksic wrote @file{savehist.el}, for saving the minibuffer
|
||||
Hrvoje Nikšić wrote @file{savehist.el}, for saving the minibuffer
|
||||
history between Emacs sessions.
|
||||
|
||||
@item
|
||||
|
|
@ -960,7 +962,7 @@ Fred Pierresteguy and Paul Reilly made Emacs work with X Toolkit
|
|||
widgets.
|
||||
|
||||
@item
|
||||
François Pinard, Greg McGary, and Bruno Haible wrote @file{po.el},
|
||||
François Pinard, Greg McGary, and Bruno Haible wrote @file{po.el},
|
||||
support for PO translation files.
|
||||
|
||||
@item
|
||||
|
|
@ -975,7 +977,7 @@ minor mode for displaying a ruler in the header line; and
|
|||
structures.
|
||||
|
||||
@item
|
||||
Francesco A. Potorti wrote @file{cmacexp.el}, providing a command which
|
||||
Francesco A. Potortì wrote @file{cmacexp.el}, providing a command which
|
||||
runs the C preprocessor on a region of a file and displays the results.
|
||||
He also expanded and redesigned the @code{etags} program.
|
||||
|
||||
|
|
@ -1058,8 +1060,7 @@ contributed extensively to the MS-Windows port of Emacs.
|
|||
|
||||
@item
|
||||
Wolfgang Rupprecht wrote Emacs 19's floating-point support (including
|
||||
@file{float-sup.el} and @file{floatfns.c}), and @file{sup-mouse.el},
|
||||
support for the Supdup mouse on lisp machines.
|
||||
@file{float-sup.el} and @file{floatfns.c}).
|
||||
|
||||
@item
|
||||
Kevin Ryde wrote @file{info-xref.el}, a library for checking
|
||||
|
|
@ -1096,9 +1097,6 @@ Ronald S. Schnell wrote @file{dunnet.el}, a text adventure game.
|
|||
Philippe Schnoebelen wrote @file{gomoku.el}, a Go Moku game played
|
||||
against Emacs; and @file{mpuz.el}, a multiplication puzzle.
|
||||
|
||||
@item
|
||||
Rainer Schoepf contributed to Alpha and OSF1 support.
|
||||
|
||||
@item
|
||||
Jan Schormann wrote @file{solitaire.el}, an implementation of the
|
||||
Solitaire game.
|
||||
|
|
@ -1115,10 +1113,6 @@ wrote parts of the IRC client ERC (q.v.).
|
|||
@item
|
||||
Randal Schwartz wrote @file{pp.el}, a pretty-printer for lisp objects.
|
||||
|
||||
@item
|
||||
Oliver Seidel wrote @file{todo-mode.el}, a package for maintaining
|
||||
@file{TODO} list files.
|
||||
|
||||
@item
|
||||
Manuel Serrano wrote the Flyspell package, which does spell checking
|
||||
as you type.
|
||||
|
|
@ -1224,7 +1218,7 @@ Olaf Sylvester wrote @file{bs.el}, a package for manipulating Emacs
|
|||
buffers.
|
||||
|
||||
@item
|
||||
Tibor @v{S}imko and Milan Zamazal wrote @file{slovak.el}, support for
|
||||
Tibor Šimko and Milan Zamazal wrote @file{slovak.el}, support for
|
||||
editing text in Slovak language.
|
||||
|
||||
@item
|
||||
|
|
@ -1345,7 +1339,7 @@ mode for editing VHDL source code.
|
|||
John Wiegley wrote @file{align.el}, a set of commands for aligning text
|
||||
according to regular-expression based rules; @file{isearchb.el} for fast
|
||||
buffer switching; @file{timeclock.el}, a package for keeping track of
|
||||
time spent on projects; the Bahá'í calendar support;
|
||||
time spent on projects; the Bahá'í calendar support;
|
||||
@file{pcomplete.el}, a programmable completion facility;
|
||||
@file{remember.el}, a mode for jotting down things to remember;
|
||||
@file{eudcb-mab.el}, an address book backend for the Emacs Unified
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 2005-2013 Free Software Foundation, Inc.
|
||||
@c Copyright (C) 2005-2014 Free Software Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
|
||||
@node Antinews
|
||||
|
|
@ -89,7 +89,7 @@ scroll bars. Emacs no longer refers to GTK+ to set the default
|
|||
|
||||
@item
|
||||
Setting the option @code{delete-by-moving-to-trash} to a
|
||||
non-@code{nil} now causes all file deletions to use the system trash,
|
||||
non-@code{nil} value now causes all file deletions to use the system trash,
|
||||
even temporary files created by Lisp programs; furthermore, the
|
||||
@kbd{M-x delete-file} and @kbd{M-x delete-directory} commands no
|
||||
longer accept prefix arguments to force true deletion.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 2004-2013 Free Software Foundation, Inc.
|
||||
@c Copyright (C) 2004-2014 Free Software Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@c
|
||||
@c This file is included either in emacs-xtra.texi (when producing the
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2014 Free Software
|
||||
@c Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@node Basic
|
||||
|
|
@ -153,10 +153,17 @@ Move forward one character (@code{forward-char}).
|
|||
@item @key{right}
|
||||
@kindex RIGHT
|
||||
@findex right-char
|
||||
@vindex visual-order-cursor-movement
|
||||
@cindex cursor, visual-order motion
|
||||
This command (@code{right-char}) behaves like @kbd{C-f}, with one
|
||||
exception: when editing right-to-left scripts such as Arabic, it
|
||||
instead moves @emph{backward} if the current paragraph is a
|
||||
right-to-left paragraph. @xref{Bidirectional Editing}.
|
||||
right-to-left paragraph. @xref{Bidirectional Editing}. If
|
||||
@code{visual-order-cursor-movement} is non-@code{nil}, this command
|
||||
moves to the character that is to the right of the current screen
|
||||
position, moving to the next or previous screen line as appropriate.
|
||||
Note that this might potentially move point many buffer positions
|
||||
away, depending on the surrounding bidirectional context.
|
||||
|
||||
@item C-b
|
||||
@kindex C-b
|
||||
|
|
@ -168,7 +175,10 @@ Move backward one character (@code{backward-char}).
|
|||
@findex left-char
|
||||
This command (@code{left-char}) behaves like @kbd{C-b}, except it
|
||||
moves @emph{forward} if the current paragraph is right-to-left.
|
||||
@xref{Bidirectional Editing}.
|
||||
@xref{Bidirectional Editing}. If @code{visual-order-cursor-movement}
|
||||
is non-@code{nil}, this command moves to the character that is to the
|
||||
left of the current screen position, moving to the previous or next
|
||||
screen line as appropriate.
|
||||
|
||||
@item C-n
|
||||
@itemx @key{down}
|
||||
|
|
@ -225,7 +235,7 @@ Move backward one word (@code{backward-word}).
|
|||
@kindex C-LEFT
|
||||
@kindex M-LEFT
|
||||
@findex left-word
|
||||
This command (@code{left-word}) behaves like @kbd{M-f}, except it
|
||||
This command (@code{left-word}) behaves like @kbd{M-b}, except it
|
||||
moves @emph{forward} by one word if the current paragraph is
|
||||
right-to-left. @xref{Bidirectional Editing}.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2014 Free Software
|
||||
@c Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@node Buffers
|
||||
|
|
@ -43,15 +43,15 @@ variables}---variables that can have a different value in each buffer.
|
|||
A buffer's size cannot be larger than some maximum, which is defined
|
||||
by the largest buffer position representable by @dfn{Emacs integers}.
|
||||
This is because Emacs tracks buffer positions using that data type.
|
||||
For typical 64-bit machines, this maximum buffer size is @math{2^61 -
|
||||
2} bytes, or about 2 EiB@. For typical 32-bit machines, the maximum is
|
||||
usually @math{2^29 - 2} bytes, or about 512 MiB@. Buffer sizes are
|
||||
For typical 64-bit machines, this maximum buffer size is @math{2^{61} - 2}
|
||||
bytes, or about 2 EiB@. For typical 32-bit machines, the maximum is
|
||||
usually @math{2^{29} - 2} bytes, or about 512 MiB@. Buffer sizes are
|
||||
also limited by the amount of memory in the system.
|
||||
|
||||
@menu
|
||||
* Select Buffer:: Creating a new buffer or reselecting an old one.
|
||||
* List Buffers:: Getting a list of buffers that exist.
|
||||
* Misc Buffer:: Renaming; changing read-onlyness; copying text.
|
||||
* Misc Buffer:: Renaming; changing read-only status; copying text.
|
||||
* Kill Buffer:: Killing buffers you no longer need.
|
||||
* Several Buffers:: How to go through the list of all buffers
|
||||
and operate variously on several of them.
|
||||
|
|
@ -174,7 +174,7 @@ List the existing buffers (@code{list-buffers}).
|
|||
@kindex C-x C-b
|
||||
@findex list-buffers
|
||||
To display a list of existing buffers, type @kbd{C-x C-b}. Each
|
||||
line in the list shows one buffer's name, major mode and visited file.
|
||||
line in the list shows one buffer's name, size, major mode and visited file.
|
||||
The buffers are listed in the order that they were current; the
|
||||
buffers that were current most recently come first.
|
||||
|
||||
|
|
@ -194,7 +194,7 @@ CRM Buffer Size Mode File
|
|||
% HELLO 1607 Fundamental ~/cvs/emacs/etc/HELLO
|
||||
% NEWS 481184 Outline ~/cvs/emacs/etc/NEWS
|
||||
*scratch* 191 Lisp Interaction
|
||||
* *Messages* 1554 Fundamental
|
||||
* *Messages* 1554 Messages
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
|
|
@ -598,7 +598,7 @@ convenient to switch between buffers.
|
|||
|
||||
@menu
|
||||
* Uniquify:: Making buffer names unique with directory parts.
|
||||
* Iswitchb:: Switching between buffers with substrings.
|
||||
* Icomplete:: Fast minibuffer selection.
|
||||
* Buffer Menus:: Configurable buffer menu.
|
||||
@end menu
|
||||
|
||||
|
|
@ -608,32 +608,37 @@ convenient to switch between buffers.
|
|||
@cindex unique buffer names
|
||||
@cindex directories in buffer names
|
||||
When several buffers visit identically-named files, Emacs must give
|
||||
the buffers distinct names. The usual method for making buffer names
|
||||
unique adds @samp{<2>}, @samp{<3>}, etc. to the end of the buffer
|
||||
names (all but one of them).
|
||||
the buffers distinct names. The default method
|
||||
(@code{uniquify-buffer-name-style} set to
|
||||
@code{post-forward-angle-brackets}) for making buffer names unique
|
||||
adds @samp{<dir1>}, @samp{<dir2>}, etc. to the end of the buffer
|
||||
names.
|
||||
|
||||
@vindex uniquify-buffer-name-style
|
||||
Other methods work by adding parts of each file's directory to the
|
||||
buffer name. To select one, load the library @file{uniquify} (e.g.,
|
||||
using @code{(require 'uniquify)}), and customize the variable
|
||||
@code{uniquify-buffer-name-style} (@pxref{Easy Customization}).
|
||||
There are several styles to make buffer names unique. To select
|
||||
one, customize the variable @code{uniquify-buffer-name-style}
|
||||
(@pxref{Easy Customization}).
|
||||
|
||||
To begin with, the @code{forward} naming method includes part of the
|
||||
file's directory name at the beginning of the buffer name; using this
|
||||
method, buffers visiting the files @file{/u/rms/tmp/Makefile} and
|
||||
The @code{forward} naming method includes part of the file's
|
||||
directory name at the beginning of the buffer name; using this method,
|
||||
buffers visiting the files @file{/u/rms/tmp/Makefile} and
|
||||
@file{/usr/projects/zaphod/Makefile} would be named
|
||||
@samp{tmp/Makefile} and @samp{zaphod/Makefile}, respectively (instead
|
||||
of @samp{Makefile} and @samp{Makefile<2>}).
|
||||
@samp{tmp/Makefile} and @samp{zaphod/Makefile}.
|
||||
|
||||
In contrast, the @code{post-forward} naming method would call the
|
||||
buffers @samp{Makefile|tmp} and @samp{Makefile|zaphod}, and the
|
||||
buffers @samp{Makefile|tmp} and @samp{Makefile|zaphod}. The default
|
||||
method @code{post-forward-angle-brackets} is like @code{post-forward}
|
||||
except that it prepends the unique path in angle brackets. The
|
||||
@code{reverse} naming method would call them @samp{Makefile\tmp} and
|
||||
@samp{Makefile\zaphod}. The nontrivial difference between
|
||||
@code{post-forward} and @code{reverse} occurs when just one directory
|
||||
name is not enough to distinguish two files; then @code{reverse} puts
|
||||
the directory names in reverse order, so that @file{/top/middle/file}
|
||||
becomes @samp{file\middle\top}, while @code{post-forward} puts them in
|
||||
forward order after the file name, as in @samp{file|top/middle}.
|
||||
forward order after the file name, as in @samp{file|top/middle}. If
|
||||
@code{uniquify-buffer-name-style} is set to @code{nil}, the buffer
|
||||
names simply get a @samp{<2>} etc. prepended. This used to be the
|
||||
default behavior in Emacs versions up to 24.4.
|
||||
|
||||
Which rule to follow for putting the directory names in the buffer
|
||||
name is not very important if you are going to @emph{look} at the
|
||||
|
|
@ -641,39 +646,31 @@ buffer names before you type one. But as an experienced user, if you
|
|||
know the rule, you won't have to look. And then you may find that one
|
||||
rule or another is easier for you to remember and apply quickly.
|
||||
|
||||
@node Iswitchb
|
||||
@subsection Switching Between Buffers using Substrings
|
||||
@node Icomplete
|
||||
@subsection Fast minibuffer selection
|
||||
|
||||
@findex iswitchb-mode
|
||||
@cindex Iswitchb mode
|
||||
@cindex mode, Iswitchb
|
||||
@kindex C-x b @r{(Iswitchb mode)}
|
||||
@kindex C-x 4 b @r{(Iswitchb mode)}
|
||||
@kindex C-x 5 b @r{(Iswitchb mode)}
|
||||
@kindex C-x 4 C-o @r{(Iswitchb mode)}
|
||||
@findex icomplete-mode
|
||||
@cindex Icomplete mode
|
||||
|
||||
Iswitchb global minor mode provides convenient switching between
|
||||
buffers using substrings of their names. It replaces the normal
|
||||
definitions of @kbd{C-x b}, @kbd{C-x 4 b}, @kbd{C-x 5 b}, and @kbd{C-x
|
||||
4 C-o} with alternative commands that are somewhat ``smarter''.
|
||||
Icomplete global minor mode provides a convenient way to quickly select an
|
||||
element among the possible completions in a minibuffer. When enabled, typing
|
||||
in the minibuffer continuously displays a list of possible completions that
|
||||
match the string you have typed.
|
||||
|
||||
When one of these commands prompts you for a buffer name, you can
|
||||
type in just a substring of the name you want to choose. As you enter
|
||||
the substring, Iswitchb mode continuously displays a list of buffers
|
||||
that match the substring you have typed.
|
||||
|
||||
At any time, you can type @key{RET} to select the first buffer in
|
||||
the list. So the way to select a particular buffer is to make it the
|
||||
At any time, you can type @key{C-j} to select the first completion in
|
||||
the list. So the way to select a particular completion is to make it the
|
||||
first in the list. There are two ways to do this. You can type more
|
||||
of the buffer name and thus narrow down the list, excluding unwanted
|
||||
buffers above the desired one. Alternatively, you can use @kbd{C-s}
|
||||
and @kbd{C-r} to rotate the list until the desired buffer is first.
|
||||
of the completion name and thus narrow down the list, excluding unwanted
|
||||
completions above the desired one. Alternatively, you can use @kbd{C-.}
|
||||
and @kbd{C-,} to rotate the list until the desired buffer is first.
|
||||
|
||||
@key{TAB} while entering the buffer name performs completion on the
|
||||
string you have entered, based on the displayed list of buffers.
|
||||
@key{M-TAB} will select the first completion in the list, like @key{C-j} but
|
||||
without exiting the minibuffer, so you can edit it further. This is typically
|
||||
used when entering a file name, where @key{M-TAB} can be used a few times to
|
||||
descend in the hierarchy of directories.
|
||||
|
||||
To enable Iswitchb mode, type @kbd{M-x iswitchb-mode}, or customize
|
||||
the variable @code{iswitchb-mode} to @code{t} (@pxref{Easy
|
||||
To enable Icomplete mode, type @kbd{M-x icomplete-mode}, or customize
|
||||
the variable @code{icomplete-mode} to @code{t} (@pxref{Easy
|
||||
Customization}).
|
||||
|
||||
@node Buffer Menus
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2014 Free Software
|
||||
@c Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@node Building
|
||||
|
|
@ -618,12 +618,12 @@ associated with an identifier when the program is not executing.
|
|||
selecting stack frames, and stepping through the program.
|
||||
|
||||
@table @kbd
|
||||
@item C-x @key{SPC}
|
||||
@kindex C-x SPC
|
||||
@item C-x C-a C-b
|
||||
@kindex C-x C-a C-b
|
||||
Set a breakpoint on the source line that point is on.
|
||||
@end table
|
||||
|
||||
@kbd{C-x @key{SPC}} (@code{gud-break}), when called in a source
|
||||
@kbd{C-x C-a C-b} (@code{gud-break}), when called in a source
|
||||
buffer, sets a debugger breakpoint on the current source line. This
|
||||
command is available only after starting GUD@. If you call it in a
|
||||
buffer that is not associated with any debugger subprocess, it signals
|
||||
|
|
@ -1348,6 +1348,7 @@ not from an existing Emacs buffer.
|
|||
|
||||
@findex load
|
||||
@findex load-library
|
||||
@vindex load-prefer-newer
|
||||
@cindex load path for Emacs Lisp
|
||||
If an Emacs Lisp file is installed in the Emacs Lisp @dfn{load path}
|
||||
(defined below), you can load it by typing @kbd{M-x load-library},
|
||||
|
|
@ -1356,15 +1357,18 @@ command prompts for a @dfn{library name} rather than a file name; it
|
|||
searches through each directory in the Emacs Lisp load path, trying to
|
||||
find a file matching that library name. If the library name is
|
||||
@samp{@var{foo}}, it tries looking for files named
|
||||
@file{@var{foo}.elc}, @file{@var{foo}.el}, and lastly just
|
||||
@file{@var{foo}}; the first one found is loaded. This command prefers
|
||||
@file{.elc} files over @file{.el} files because compiled files load
|
||||
and run faster. If it finds that @file{@var{lib}.el} is newer than
|
||||
@file{@var{lib}.elc}, it issues a warning, in case someone made
|
||||
@file{@var{foo}.elc}, @file{@var{foo}.el}, and @file{@var{foo}}. The
|
||||
default behaviour is to load the first file found. This command
|
||||
prefers @file{.elc} files over @file{.el} files because compiled files
|
||||
load and run faster. If it finds that @file{@var{lib}.el} is newer
|
||||
than @file{@var{lib}.elc}, it issues a warning, in case someone made
|
||||
changes to the @file{.el} file and forgot to recompile it, but loads
|
||||
the @file{.elc} file anyway. (Due to this behavior, you can save
|
||||
unfinished edits to Emacs Lisp source files, and not recompile until
|
||||
your changes are ready for use.)
|
||||
your changes are ready for use.) If you set the option
|
||||
@code{load-prefer-newer} to a non-@code{nil} value, however, then
|
||||
rather than the procedure described above, Emacs loads whichever
|
||||
version of the file is newest.
|
||||
|
||||
Emacs Lisp programs usually load Emacs Lisp files using the
|
||||
@code{load} function. This is similar to @code{load-library}, but is
|
||||
|
|
@ -1422,6 +1426,7 @@ Emacs to crash. Set the variable @code{load-dangerous-libraries} to
|
|||
@section Evaluating Emacs Lisp Expressions
|
||||
@cindex Emacs Lisp mode
|
||||
@cindex mode, Emacs Lisp
|
||||
@cindex evaluation, Emacs Lisp
|
||||
|
||||
@findex emacs-lisp-mode
|
||||
Emacs Lisp mode is the major mode for editing Emacs Lisp. Its mode
|
||||
|
|
@ -1471,13 +1476,17 @@ expression.)
|
|||
The command @kbd{C-x C-e} (@code{eval-last-sexp}) evaluates the
|
||||
Emacs Lisp expression preceding point in the buffer, and displays the
|
||||
value in the echo area. When the result of an evaluation is an
|
||||
integer, you can type @kbd{C-x C-e} a second time to display the value
|
||||
of the integer result in additional formats (octal, hexadecimal, and
|
||||
character).
|
||||
integer, it is displayed together with the value in other formats
|
||||
(octal, hexadecimal, and character).
|
||||
|
||||
If @kbd{M-:} or @kbd{C-x C-e} is given a prefix argument, it inserts
|
||||
the value into the current buffer at point, rather than displaying it
|
||||
in the echo area. The argument's value does not matter.
|
||||
in the echo area. If the prefix argument is zero, any integer output
|
||||
is inserted together with its value in other formats (octal,
|
||||
hexadecimal, and character). Such a prefix argument also prevents
|
||||
abbreviation of the output according to the variables
|
||||
@code{eval-expression-print-level} and @code{eval-expression-print-length}
|
||||
(see below).
|
||||
|
||||
@kindex C-M-x @r{(Emacs Lisp mode)}
|
||||
@findex eval-defun
|
||||
|
|
@ -1511,9 +1520,11 @@ eval-buffer} is similar but evaluates the entire buffer.
|
|||
The options @code{eval-expression-print-level} and
|
||||
@code{eval-expression-print-length} control the maximum depth and
|
||||
length of lists to print in the result of the evaluation commands
|
||||
before abbreviating them. @code{eval-expression-debug-on-error}
|
||||
controls whether evaluation errors invoke the debugger when these
|
||||
commands are used; its default is @code{t}.
|
||||
before abbreviating them. Supplying a zero prefix argument to
|
||||
@code{eval-expression} or @code{eval-last-sexp} causes lists to be
|
||||
printed in full. @code{eval-expression-debug-on-error} controls
|
||||
whether evaluation errors invoke the debugger when these commands are
|
||||
used; its default is @code{t}.
|
||||
|
||||
@node Lisp Interaction
|
||||
@section Lisp Interaction Buffers
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual. -*- coding: iso-latin-1 -*-
|
||||
@c Copyright (C) 2004-2013 Free Software Foundation, Inc.
|
||||
@c This is part of the Emacs manual. -*- coding: utf-8 -*-
|
||||
@c Copyright (C) 2004-2014 Free Software Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@c
|
||||
@c This file is included either in emacs-xtra.texi (when producing the
|
||||
|
|
@ -17,6 +17,7 @@ your personal tastes.
|
|||
@menu
|
||||
* Calendar Customizing:: Calendar layout and hooks.
|
||||
* Holiday Customizing:: Defining your own holidays.
|
||||
* Mayan Calendar:: Moving to a date specified in a Mayan calendar.
|
||||
* Date Display Format:: Changing the format.
|
||||
* Time Display Format:: Changing the format.
|
||||
* Diary Customizing:: Defaults you can set.
|
||||
|
|
@ -42,9 +43,12 @@ customize the variables @code{calendar-intermonth-header} and
|
|||
@code{calendar-intermonth-text} as described in their documentation.
|
||||
|
||||
@vindex calendar-month-header
|
||||
@vindex calendar-day-header-array
|
||||
The variable @code{calendar-month-header} controls the text that
|
||||
appears above each month in the calendar. By default, it shows the
|
||||
month and year.
|
||||
month and year. The variable @code{calendar-day-header-array}
|
||||
controls the text that appears above each day's column in every month.
|
||||
By default, it shows the first two letters of each day's name.
|
||||
|
||||
@vindex calendar-holiday-marker
|
||||
@vindex diary-entry-marker
|
||||
|
|
@ -67,7 +71,7 @@ the calendar).
|
|||
Starting the calendar runs the normal hook
|
||||
@code{calendar-initial-window-hook}. Recomputation of the calendar
|
||||
display does not run this hook. But if you leave the calendar with the
|
||||
@kbd{q} command and reenter it, the hook runs again.@refill
|
||||
@kbd{q} command and reenter it, the hook runs again.
|
||||
|
||||
@vindex calendar-today-visible-hook
|
||||
@findex calendar-star-date
|
||||
|
|
@ -203,7 +207,7 @@ the month (1 specifies the first occurrence, 2 the second occurrence,
|
|||
@minus{}1 the last occurrence, @minus{}2 the second-to-last occurrence, and
|
||||
so on).
|
||||
|
||||
You can specify holidays that occur on fixed days of the Bahá'í,
|
||||
You can specify holidays that occur on fixed days of the Bahá'í,
|
||||
Chinese, Hebrew, Islamic, and Julian calendars too. For example,
|
||||
|
||||
@smallexample
|
||||
|
|
@ -260,6 +264,99 @@ visible in the calendar window, with descriptive strings, like this:
|
|||
(((6 4 2012) "Lunar Eclipse") ((11 13 2012) "Solar Eclipse") ... )
|
||||
@end smallexample
|
||||
|
||||
@node Mayan Calendar
|
||||
@subsection Converting from the Mayan Calendar
|
||||
@cindex Mayan calendar
|
||||
|
||||
Here are the commands to select dates based on the Mayan calendar:
|
||||
|
||||
@table @kbd
|
||||
@item g m l
|
||||
Move to a date specified by the long count calendar
|
||||
(@code{calendar-mayan-goto-long-count-date}).
|
||||
@item g m n t
|
||||
Move to the next occurrence of a place in the
|
||||
tzolkin calendar (@code{calendar-mayan-next-tzolkin-date}).
|
||||
@item g m p t
|
||||
Move to the previous occurrence of a place in the
|
||||
tzolkin calendar (@code{calendar-mayan-previous-tzolkin-date}).
|
||||
@item g m n h
|
||||
Move to the next occurrence of a place in the
|
||||
haab calendar (@code{calendar-mayan-next-haab-date}).
|
||||
@item g m p h
|
||||
Move to the previous occurrence of a place in the
|
||||
haab calendar (@code{calendar-mayan-previous-haab-date}).
|
||||
@item g m n c
|
||||
Move to the next occurrence of a place in the
|
||||
calendar round (@code{calendar-mayan-next-calendar-round-date}).
|
||||
@item g m p c
|
||||
Move to the previous occurrence of a place in the
|
||||
calendar round (@code{calendar-mayan-previous-calendar-round-date}).
|
||||
@end table
|
||||
|
||||
@cindex Mayan long count
|
||||
To understand these commands, you need to understand the Mayan calendars.
|
||||
The @dfn{long count} is a counting of days with these units:
|
||||
|
||||
@display
|
||||
1 kin = 1 day@ @ @ 1 uinal = 20 kin@ @ @ 1 tun = 18 uinal
|
||||
1 katun = 20 tun@ @ @ 1 baktun = 20 katun
|
||||
@end display
|
||||
|
||||
@kindex g m @r{(Calendar mode)}
|
||||
@findex calendar-mayan-goto-long-count-date
|
||||
@noindent
|
||||
Thus, the long count date 12.16.11.16.6 means 12 baktun, 16 katun, 11
|
||||
tun, 16 uinal, and 6 kin. The Emacs calendar can handle Mayan long
|
||||
count dates as early as 7.17.18.13.3, but no earlier. When you use the
|
||||
@kbd{g m l} command, type the Mayan long count date with the baktun,
|
||||
katun, tun, uinal, and kin separated by periods.
|
||||
|
||||
@findex calendar-mayan-previous-tzolkin-date
|
||||
@findex calendar-mayan-next-tzolkin-date
|
||||
@cindex Mayan tzolkin calendar
|
||||
The Mayan tzolkin calendar is a cycle of 260 days formed by a pair of
|
||||
independent cycles of 13 and 20 days. Since this cycle repeats
|
||||
endlessly, Emacs provides commands to move backward and forward to the
|
||||
previous or next point in the cycle. Type @kbd{g m p t} to go to the
|
||||
previous tzolkin date; Emacs asks you for a tzolkin date and moves point
|
||||
to the previous occurrence of that date. Similarly, type @kbd{g m n t}
|
||||
to go to the next occurrence of a tzolkin date.
|
||||
|
||||
@findex calendar-mayan-previous-haab-date
|
||||
@findex calendar-mayan-next-haab-date
|
||||
@cindex Mayan haab calendar
|
||||
The Mayan haab calendar is a cycle of 365 days arranged as 18 months
|
||||
of 20 days each, followed by a 5-day monthless period. Like the tzolkin
|
||||
cycle, this cycle repeats endlessly, and there are commands to move
|
||||
backward and forward to the previous or next point in the cycle. Type
|
||||
@kbd{g m p h} to go to the previous haab date; Emacs asks you for a haab
|
||||
date and moves point to the previous occurrence of that date.
|
||||
Similarly, type @kbd{g m n h} to go to the next occurrence of a haab
|
||||
date.
|
||||
|
||||
@c This is omitted because it is too long for smallbook format.
|
||||
@c @findex calendar-mayan-previous-calendar-round-date
|
||||
@findex calendar-mayan-next-calendar-round-date
|
||||
@cindex Mayan calendar round
|
||||
The Maya also used the combination of the tzolkin date and the haab
|
||||
date. This combination is a cycle of about 52 years called a
|
||||
@emph{calendar round}. If you type @kbd{g m p c}, Emacs asks you for
|
||||
both a haab and a tzolkin date and then moves point to the previous
|
||||
occurrence of that combination. Use @kbd{g m n c} to move point to the
|
||||
next occurrence of a combination. These commands signal an error if the
|
||||
haab/tzolkin date combination you have typed is impossible.
|
||||
|
||||
Emacs uses strict completion
|
||||
@iftex
|
||||
(@pxref{Completion Exit,,, emacs, the Emacs Manual})
|
||||
@end iftex
|
||||
@ifnottex
|
||||
(@pxref{Completion Exit})
|
||||
@end ifnottex
|
||||
whenever it asks you to type a Mayan name, so you don't have to worry
|
||||
about spelling.
|
||||
|
||||
@node Date Display Format
|
||||
@subsection Date Display Format
|
||||
@vindex calendar-date-display-form
|
||||
|
|
@ -420,7 +517,7 @@ the fourth pattern.
|
|||
@subsection Diary Entries Using non-Gregorian Calendars
|
||||
|
||||
As well as entries based on the standard Gregorian calendar, your
|
||||
diary can have entries based on Bahá'í, Hebrew, or Islamic dates.
|
||||
diary can have entries based on Bahá'í, Hebrew, or Islamic dates.
|
||||
Recognition of such entries can be time-consuming, however, and since
|
||||
most people don't use them, you must explicitly enable their use. If
|
||||
you want the diary to recognize Hebrew-date diary entries, for example,
|
||||
|
|
@ -440,7 +537,7 @@ you must do this:
|
|||
@end smallexample
|
||||
|
||||
@noindent
|
||||
Similarly, for Islamic and Bahá'í entries, add
|
||||
Similarly, for Islamic and Bahá'í entries, add
|
||||
@code{diary-islamic-list-entries} and @code{diary-islamic-mark-entries}, or
|
||||
@code{diary-bahai-list-entries} and @code{diary-bahai-mark-entries}.
|
||||
|
||||
|
|
@ -449,7 +546,7 @@ Similarly, for Islamic and Bah
|
|||
@vindex diary-islamic-entry-symbol
|
||||
These diary entries have the same formats as Gregorian-date diary
|
||||
entries; except that @code{diary-bahai-entry-symbol} (default @samp{B})
|
||||
must precede a Bahá'í date, @code{diary-hebrew-entry-symbol} (default
|
||||
must precede a Bahá'í date, @code{diary-hebrew-entry-symbol} (default
|
||||
@samp{H}) a Hebrew date, and @code{diary-islamic-entry-symbol} (default
|
||||
@samp{I}) an Islamic date. Moreover, non-Gregorian month names may not
|
||||
be abbreviated (because the first three letters are often not unique).
|
||||
|
|
@ -476,7 +573,7 @@ nonmarking if preceded by @code{diary-nonmarking-symbol} (default
|
|||
|
||||
Here is a table of commands used in the calendar to create diary
|
||||
entries that match the selected date and other dates that are similar in
|
||||
the Bahá'í, Hebrew, or Islamic calendars:
|
||||
the Bahá'í, Hebrew, or Islamic calendars:
|
||||
|
||||
@table @kbd
|
||||
@item i h d
|
||||
|
|
@ -537,7 +634,7 @@ example, to sort the entries by the dates they apply to.
|
|||
Ordinarily, the fancy diary buffer does not show days for which there
|
||||
are no diary entries, even if that day is a holiday. If you want such
|
||||
days to be shown in the fancy diary buffer, set the variable
|
||||
@code{diary-list-include-blanks} to @code{t}.@refill
|
||||
@code{diary-list-include-blanks} to @code{t}.
|
||||
|
||||
The fancy diary buffer enables View mode
|
||||
@iftex
|
||||
|
|
@ -851,7 +948,7 @@ Make a diary entry with today's equivalent Julian calendar date.
|
|||
@item %%(diary-astro-day-number)
|
||||
Make a diary entry with today's equivalent astronomical (Julian) day number.
|
||||
@item %%(diary-bahai-date)
|
||||
Make a diary entry with today's equivalent Bahá'í calendar date.
|
||||
Make a diary entry with today's equivalent Bahá'í calendar date.
|
||||
@item %%(diary-chinese-date)
|
||||
Make a diary entry with today's equivalent Chinese calendar date.
|
||||
@item %%(diary-coptic-date)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual. -*- coding: iso-latin-1 -*-
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software
|
||||
@c This is part of the Emacs manual. -*- coding: utf-8 -*-
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2014 Free Software
|
||||
@c Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@node Calendar/Diary
|
||||
|
|
@ -304,6 +304,7 @@ Regenerate the calendar window (@code{calendar-redraw}).
|
|||
@item SPC
|
||||
Scroll the next window up (@code{scroll-other-window}).
|
||||
@item DEL
|
||||
@itemx S-SPC
|
||||
Scroll the next window down (@code{scroll-other-window-down}).
|
||||
@item q
|
||||
Exit from calendar (@code{calendar-exit}).
|
||||
|
|
@ -522,7 +523,7 @@ holidays centered around a different month, use @kbd{C-u M-x
|
|||
holidays}, which prompts for the month and year.
|
||||
|
||||
The holidays known to Emacs include United States holidays and the
|
||||
major Bahá'í, Chinese, Christian, Islamic, and Jewish holidays; also the
|
||||
major Bahá'í, Chinese, Christian, Islamic, and Jewish holidays; also the
|
||||
solstices and equinoxes.
|
||||
|
||||
@findex list-holidays
|
||||
|
|
@ -678,7 +679,6 @@ and from several other calendars.
|
|||
(aside from Gregorian).
|
||||
* To Other Calendar:: Converting the selected date to various calendars.
|
||||
* From Other Calendar:: Moving to a date specified in another calendar.
|
||||
* Mayan Calendar:: Moving to a date specified in a Mayan calendar.
|
||||
@end menu
|
||||
|
||||
@c FIXME perhaps most of the details should be moved to cal-xtra.
|
||||
|
|
@ -760,8 +760,8 @@ days are named by combining one of ten ``celestial stems'' with one of
|
|||
twelve ``terrestrial branches'' for a total of sixty names that are
|
||||
repeated in a cycle of sixty.
|
||||
|
||||
@cindex Bahá'í calendar
|
||||
The Bahá'í calendar system is based on a solar cycle of 19 months with
|
||||
@cindex Bahá'í calendar
|
||||
The Bahá'í calendar system is based on a solar cycle of 19 months with
|
||||
19 days each. The four remaining ``intercalary'' days are placed
|
||||
between the 18th and 19th months.
|
||||
|
||||
|
|
@ -801,7 +801,7 @@ Display French Revolutionary date for selected day
|
|||
(@code{calendar-french-print-date}).
|
||||
@findex calendar-bahai-print-date
|
||||
@item p b
|
||||
Display Bahá'í date for selected day
|
||||
Display Bahá'í date for selected day
|
||||
(@code{calendar-bahai-print-date}).
|
||||
@findex calendar-chinese-print-date
|
||||
@item p C
|
||||
|
|
@ -869,7 +869,7 @@ Move to a date specified in the Julian calendar
|
|||
Move to a date specified with an astronomical (Julian) day number
|
||||
(@code{calendar-astro-goto-day-number}).
|
||||
@item g b
|
||||
Move to a date specified in the Bahá'í calendar
|
||||
Move to a date specified in the Bahá'í calendar
|
||||
(@code{calendar-bahai-goto-date}).
|
||||
@item g h
|
||||
Move to a date specified in the Hebrew calendar
|
||||
|
|
@ -913,93 +913,6 @@ years for the date given by point. If you are not in the calendar,
|
|||
this command first asks you for the date of death and the range of
|
||||
years, and then displays the list of yahrzeit dates.
|
||||
|
||||
@c FIXME move to emacs-xtra.
|
||||
@node Mayan Calendar
|
||||
@subsection Converting from the Mayan Calendar
|
||||
|
||||
Here are the commands to select dates based on the Mayan calendar:
|
||||
|
||||
@table @kbd
|
||||
@item g m l
|
||||
Move to a date specified by the long count calendar
|
||||
(@code{calendar-mayan-goto-long-count-date}).
|
||||
@item g m n t
|
||||
Move to the next occurrence of a place in the
|
||||
tzolkin calendar (@code{calendar-mayan-next-tzolkin-date}).
|
||||
@item g m p t
|
||||
Move to the previous occurrence of a place in the
|
||||
tzolkin calendar (@code{calendar-mayan-previous-tzolkin-date}).
|
||||
@item g m n h
|
||||
Move to the next occurrence of a place in the
|
||||
haab calendar (@code{calendar-mayan-next-haab-date}).
|
||||
@item g m p h
|
||||
Move to the previous occurrence of a place in the
|
||||
haab calendar (@code{calendar-mayan-previous-haab-date}).
|
||||
@item g m n c
|
||||
Move to the next occurrence of a place in the
|
||||
calendar round (@code{calendar-mayan-next-calendar-round-date}).
|
||||
@item g m p c
|
||||
Move to the previous occurrence of a place in the
|
||||
calendar round (@code{calendar-mayan-previous-calendar-round-date}).
|
||||
@end table
|
||||
|
||||
@cindex Mayan long count
|
||||
To understand these commands, you need to understand the Mayan calendars.
|
||||
The @dfn{long count} is a counting of days with these units:
|
||||
|
||||
@display
|
||||
1 kin = 1 day@ @ @ 1 uinal = 20 kin@ @ @ 1 tun = 18 uinal
|
||||
1 katun = 20 tun@ @ @ 1 baktun = 20 katun
|
||||
@end display
|
||||
|
||||
@kindex g m @r{(Calendar mode)}
|
||||
@findex calendar-mayan-goto-long-count-date
|
||||
@noindent
|
||||
Thus, the long count date 12.16.11.16.6 means 12 baktun, 16 katun, 11
|
||||
tun, 16 uinal, and 6 kin. The Emacs calendar can handle Mayan long
|
||||
count dates as early as 7.17.18.13.3, but no earlier. When you use the
|
||||
@kbd{g m l} command, type the Mayan long count date with the baktun,
|
||||
katun, tun, uinal, and kin separated by periods.
|
||||
|
||||
@findex calendar-mayan-previous-tzolkin-date
|
||||
@findex calendar-mayan-next-tzolkin-date
|
||||
@cindex Mayan tzolkin calendar
|
||||
The Mayan tzolkin calendar is a cycle of 260 days formed by a pair of
|
||||
independent cycles of 13 and 20 days. Since this cycle repeats
|
||||
endlessly, Emacs provides commands to move backward and forward to the
|
||||
previous or next point in the cycle. Type @kbd{g m p t} to go to the
|
||||
previous tzolkin date; Emacs asks you for a tzolkin date and moves point
|
||||
to the previous occurrence of that date. Similarly, type @kbd{g m n t}
|
||||
to go to the next occurrence of a tzolkin date.
|
||||
|
||||
@findex calendar-mayan-previous-haab-date
|
||||
@findex calendar-mayan-next-haab-date
|
||||
@cindex Mayan haab calendar
|
||||
The Mayan haab calendar is a cycle of 365 days arranged as 18 months
|
||||
of 20 days each, followed by a 5-day monthless period. Like the tzolkin
|
||||
cycle, this cycle repeats endlessly, and there are commands to move
|
||||
backward and forward to the previous or next point in the cycle. Type
|
||||
@kbd{g m p h} to go to the previous haab date; Emacs asks you for a haab
|
||||
date and moves point to the previous occurrence of that date.
|
||||
Similarly, type @kbd{g m n h} to go to the next occurrence of a haab
|
||||
date.
|
||||
|
||||
@c This is omitted because it is too long for smallbook format.
|
||||
@c @findex calendar-mayan-previous-calendar-round-date
|
||||
@findex calendar-mayan-next-calendar-round-date
|
||||
@cindex Mayan calendar round
|
||||
The Maya also used the combination of the tzolkin date and the haab
|
||||
date. This combination is a cycle of about 52 years called a
|
||||
@emph{calendar round}. If you type @kbd{g m p c}, Emacs asks you for
|
||||
both a haab and a tzolkin date and then moves point to the previous
|
||||
occurrence of that combination. Use @kbd{g m n c} to move point to the
|
||||
next occurrence of a combination. These commands signal an error if the
|
||||
haab/tzolkin date combination you have typed is impossible.
|
||||
|
||||
Emacs uses strict completion (@pxref{Completion Exit}) whenever it
|
||||
asks you to type a Mayan name, so you don't have to worry about
|
||||
spelling.
|
||||
|
||||
@node Diary
|
||||
@section The Diary
|
||||
@cindex diary
|
||||
|
|
@ -1435,7 +1348,7 @@ mean ``second'', @minus{}2 would mean ``second-to-last'', and so on).
|
|||
The month can be a single month or a list of months. Thus you could change
|
||||
the 11 above to @samp{'(1 2 3)} and have the entry apply to the last
|
||||
Thursday of January, February, and March. If the month is @code{t}, the
|
||||
entry applies to all months of the year.@refill
|
||||
entry applies to all months of the year.
|
||||
|
||||
Each of the standard sexp diary entries takes an optional parameter
|
||||
specifying the name of a face or a single-character string to use when
|
||||
|
|
@ -1542,7 +1455,8 @@ variety of other formats.
|
|||
messages. While viewing such a message in Rmail or Gnus, do @kbd{M-x
|
||||
diary-from-outlook} to import the entry. You can make this command
|
||||
recognize additional appointment message formats by customizing the
|
||||
variable @code{diary-outlook-formats}.
|
||||
variable @code{diary-outlook-formats}. Other mail clients can set
|
||||
@code{diary-from-outlook-function} to an appropriate value.
|
||||
|
||||
@c FIXME the name of the RFC is hardly very relevant.
|
||||
@cindex iCalendar support
|
||||
|
|
@ -1702,11 +1616,11 @@ you. You can, however, customize the value of the variable
|
|||
then, only an explicit @kbd{M-x timeclock-out} or @kbd{M-x
|
||||
timeclock-change} will tell Emacs that the current interval is over.
|
||||
|
||||
@cindex @file{.timelog} file
|
||||
@cindex @file{timelog} file
|
||||
@vindex timeclock-file
|
||||
@findex timeclock-reread-log
|
||||
The timeclock functions work by accumulating the data in a file
|
||||
called @file{.timelog} in your home directory. You can specify a
|
||||
called @file{~/.emacs.d/timelog}. You can specify a
|
||||
different name for this file by customizing the variable
|
||||
@code{timeclock-file}. If you edit the timeclock file manually, or if
|
||||
you change the value of any of timeclock's customizable variables, you
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2014 Free Software
|
||||
@c Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@node Emacs Invocation
|
||||
|
|
@ -10,6 +10,7 @@
|
|||
@cindex switches (command line)
|
||||
@cindex startup (command line arguments)
|
||||
@cindex invocation (command line arguments)
|
||||
@c FIXME: Document `--smid'? --xfq
|
||||
|
||||
Emacs supports command line arguments to request various actions
|
||||
when invoking Emacs. These are for compatibility with other editors
|
||||
|
|
@ -135,7 +136,14 @@ visited.
|
|||
@opindex -L
|
||||
@itemx --directory=@var{dir}
|
||||
@opindex --directory
|
||||
Add directory @var{dir} to the variable @code{load-path}.
|
||||
Prepend directory @var{dir} to the variable @code{load-path}.
|
||||
If you specify multiple @samp{-L} options, Emacs preserves the
|
||||
relative order; i.e., using @samp{-L /foo -L /bar} results in
|
||||
a @code{load-path} of the form @code{("/foo" "/bar" @dots{})}.
|
||||
If @var{dir} begins with @samp{:}, Emacs removes the @samp{:} and
|
||||
appends (rather than prepends) the remainder to @code{load-path}.
|
||||
(On MS Windows, use @samp{;} instead of @samp{:}; i.e., use
|
||||
the value of @code{path-separator}.)
|
||||
|
||||
@item -f @var{function}
|
||||
@opindex -f
|
||||
|
|
@ -251,7 +259,8 @@ terminal's standard input stream (@code{stdin}) instead.
|
|||
but @file{site-start.el} is loaded nonetheless. It also causes Emacs
|
||||
to exit after processing all the command options. In addition, it
|
||||
disables auto-saving except in buffers for which auto-saving is
|
||||
explicitly requested.
|
||||
explicitly requested, and when saving files it omits the @code{fsync}
|
||||
system call unless otherwise requested.
|
||||
|
||||
@item --script @var{file}
|
||||
@opindex --script
|
||||
|
|
@ -437,8 +446,8 @@ when you specify a relative directory name.
|
|||
@item DBUS_SESSION_BUS_ADDRESS
|
||||
Used by D-Bus when Emacs is compiled with it. Usually, there is no
|
||||
need to change it. Setting it to a dummy address, like
|
||||
@samp{unix:path=/tmp/foo}, suppresses connections to the D-Bus session
|
||||
bus.
|
||||
@samp{unix:path=/dev/null}, suppresses connections to the D-Bus session
|
||||
bus as well as autolaunching the D-Bus session bus if not running yet.
|
||||
@item EMACSDATA
|
||||
Directory for the architecture-independent files that come with Emacs.
|
||||
This is used to initialize the variable @code{data-directory}.
|
||||
|
|
@ -446,13 +455,16 @@ This is used to initialize the variable @code{data-directory}.
|
|||
Directory for the documentation string file, which is used to
|
||||
initialize the Lisp variable @code{doc-directory}.
|
||||
@item EMACSLOADPATH
|
||||
A colon-separated list of directories@footnote{ Here and below,
|
||||
A colon-separated list of directories@footnote{Here and below,
|
||||
whenever we say ``colon-separated list of directories'', it pertains
|
||||
to Unix and GNU/Linux systems. On MS-DOS and MS-Windows, the
|
||||
directories are separated by semi-colons instead, since DOS/Windows
|
||||
file names might include a colon after a drive letter.} to search for
|
||||
Emacs Lisp files. If set, it overrides the usual initial value of the
|
||||
@code{load-path} variable (@pxref{Lisp Libraries}).
|
||||
file names might include a colon after a drive letter.} to search for
|
||||
Emacs Lisp files. If set, it modifies the usual initial value of the
|
||||
@code{load-path} variable (@pxref{Lisp Libraries}). An empty element
|
||||
stands for the default value of @code{load-path}; e.g., using
|
||||
@samp{EMACSLOADPATH="/tmp:"} adds @file{/tmp} to the front of
|
||||
the default @code{load-path}.
|
||||
@item EMACSPATH
|
||||
A colon-separated list of directories to search for executable files.
|
||||
If set, Emacs uses this in addition to @env{PATH} (see below) when
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2013 Free Software
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2014 Free Software
|
||||
@c Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@iftex
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2014 Free Software
|
||||
@c Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@node Customization
|
||||
|
|
@ -345,7 +345,7 @@ hidden, nor on subgroups that are hidden or not visible in the buffer.
|
|||
@kindex C-x C-c @r{(customization buffer)}
|
||||
@findex Custom-set
|
||||
@findex Custom-save
|
||||
The command @kbd{C-c C-c} (@code{Custom-set}) is equivalent using to
|
||||
The command @kbd{C-c C-c} (@code{Custom-set}) is equivalent to using
|
||||
the @samp{[Set for Current Session]} button. The command @kbd{C-x
|
||||
C-s} (@code{Custom-save}) is like using the @samp{[Save for Future
|
||||
Sessions]} button.
|
||||
|
|
@ -1166,7 +1166,10 @@ conversion of this file. @xref{Coding Systems}.
|
|||
|
||||
@item
|
||||
@code{unibyte} says to load or compile a file of Emacs Lisp in unibyte
|
||||
mode, if the value is @code{t}. @xref{Disabling Multibyte}.
|
||||
mode, if the value is @code{t}. @xref{Disabling Multibyte, ,
|
||||
Disabling Multibyte Characters, elisp, GNU Emacs Lisp Reference
|
||||
Manual}.
|
||||
|
||||
@end itemize
|
||||
|
||||
@noindent
|
||||
|
|
@ -2185,7 +2188,7 @@ sequences are mandatory.
|
|||
@samp{\C-} can be used as a prefix for a control character, as in
|
||||
@samp{\C-s} for @acronym{ASCII} control-S, and @samp{\M-} can be used as a prefix for
|
||||
a Meta character, as in @samp{\M-a} for @kbd{Meta-A} or @samp{\M-\C-a} for
|
||||
@kbd{Control-Meta-A}.@refill
|
||||
@kbd{Control-Meta-A}.
|
||||
|
||||
@xref{Init Non-ASCII}, for information about including
|
||||
non-@acronym{ASCII} in your init file.
|
||||
|
|
@ -2448,7 +2451,7 @@ it is run on that type of terminal. For a terminal type named
|
|||
found by searching the directories @code{load-path} as usual and trying the
|
||||
suffixes @samp{.elc} and @samp{.el}. Normally it appears in the
|
||||
subdirectory @file{term} of the directory where most Emacs libraries are
|
||||
kept.@refill
|
||||
kept.
|
||||
|
||||
The usual purpose of the terminal-specific library is to map the
|
||||
escape sequences used by the terminal's function keys onto more
|
||||
|
|
@ -2463,7 +2466,7 @@ function keys that Termcap does not specify.
|
|||
before the first hyphen is significant in choosing the library name.
|
||||
Thus, terminal types @samp{aaa-48} and @samp{aaa-30-rv} both use
|
||||
the library @file{term/aaa}. The code in the library can use
|
||||
@code{(getenv "TERM")} to find the full terminal type name.@refill
|
||||
@code{(getenv "TERM")} to find the full terminal type name.
|
||||
|
||||
@vindex term-file-prefix
|
||||
The library's name is constructed by concatenating the value of the
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 2004-2013 Free Software Foundation, Inc.
|
||||
@c Copyright (C) 2004-2014 Free Software Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@c
|
||||
@c This file is included either in emacs-xtra.texi (when producing the
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2014 Free Software
|
||||
@c Foundation, Inc.
|
||||
@c See file emacs.texi for copying conditions.
|
||||
@node Dired
|
||||
|
|
@ -281,9 +281,9 @@ say they are backup files---that is, files whose names end in
|
|||
the backup files for deletion: all but the oldest few and newest few
|
||||
backups of any one file. Normally, the number of newest versions kept
|
||||
for each file is given by the variable @code{dired-kept-versions}
|
||||
(@strong{not} @code{kept-new-versions}; that applies only when
|
||||
saving). The number of oldest versions to keep is given by the
|
||||
variable @code{kept-old-versions}.
|
||||
(@emph{not} @code{kept-new-versions}; that applies only when saving).
|
||||
The number of oldest versions to keep is given by the variable
|
||||
@code{kept-old-versions}.
|
||||
|
||||
Period with a positive numeric argument, as in @kbd{C-u 3 .},
|
||||
specifies the number of newest versions to keep, overriding
|
||||
|
|
@ -1108,7 +1108,8 @@ can use hiding to temporarily exclude subdirectories from operations
|
|||
without having to remove the Dired marks on files in those
|
||||
subdirectories.
|
||||
|
||||
@xref{Dired Updating}, for how to insert or delete a subdirectory listing.
|
||||
@xref{Subdirectories in Dired}, for how to insert a subdirectory
|
||||
listing, and @pxref{Dired Updating} for how delete it.
|
||||
|
||||
@node Dired Updating
|
||||
@section Updating the Dired Buffer
|
||||
|
|
@ -1382,7 +1383,7 @@ file, the search wraps around to the first marked file. The command
|
|||
a regular expression search. @xref{Repeat Isearch}, for information
|
||||
about search repetition.
|
||||
|
||||
@cindex Adding to the kill ring in Dired.
|
||||
@cindex adding to the kill ring in Dired
|
||||
@kindex w @r{(Dired)}
|
||||
@findex dired-copy-filename-as-kill
|
||||
The command @kbd{w} (@code{dired-copy-filename-as-kill}) puts the
|
||||
|
|
@ -1403,6 +1404,19 @@ names into arguments for other Emacs commands. It also displays what
|
|||
it added to the kill ring, so you can use it to display the list of
|
||||
currently marked files in the echo area.
|
||||
|
||||
@kindex ( @r{(Dired)}
|
||||
@findex dired-hide-details-mode
|
||||
@vindex dired-hide-details-hide-symlink-targets
|
||||
@vindex dired-hide-details-hide-information-lines
|
||||
@cindex hiding details in Dired
|
||||
The command @kbd{(} (@code{dired-hide-details-mode}) toggles whether
|
||||
details, such as ownership or file permissions, are visible in the
|
||||
current Dired buffer. By default, it also hides the targets of
|
||||
symbolic links, and all lines other than the header line and
|
||||
file/directory listings. To change this, customize the options
|
||||
@code{dired-hide-details-hide-symlink-targets} and
|
||||
@code{dired-hide-details-hide-information-lines}, respectively.
|
||||
|
||||
@cindex Dired and version control
|
||||
If the directory you are visiting is under version control
|
||||
(@pxref{Version Control}), then the normal VC diff and log commands
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual.
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2013 Free Software
|
||||
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2014 Free Software
|
||||
@c Foundation, Inc.
|
||||
|
||||
@c See file emacs.texi for copying conditions.
|
||||
|
|
@ -428,8 +428,8 @@ it. @xref{Disabling}.
|
|||
screenfuls. It provides commands for scrolling through the buffer
|
||||
conveniently but not for changing it. Apart from the usual Emacs
|
||||
cursor motion commands, you can type @key{SPC} to scroll forward one
|
||||
windowful, @key{DEL} to scroll backward, and @kbd{s} to start an
|
||||
incremental search.
|
||||
windowful, @key{S-SPC} or @key{DEL} to scroll backward, and @kbd{s} to
|
||||
start an incremental search.
|
||||
|
||||
@kindex q @r{(View mode)}
|
||||
@kindex e @r{(View mode)}
|
||||
|
|
@ -710,6 +710,17 @@ This face determines the color of tool bar icons. @xref{Tool Bars}.
|
|||
@cindex customization of @code{menu} face
|
||||
This face determines the colors and font of Emacs's menus. @xref{Menu
|
||||
Bars}.
|
||||
@item tty-menu-enabled-face
|
||||
@cindex faces for text-mode menus
|
||||
@cindex TTY menu faces
|
||||
This face is used to display enabled menu items on text-mode
|
||||
terminals.
|
||||
@item tty-menu-disabled-face
|
||||
This face is used to display disabled menu items on text-mode
|
||||
terminals.
|
||||
@item tty-menu-selected-face
|
||||
This face is used to display on text-mode terminals the menu item that
|
||||
would be selected if you click a mouse or press @key{RET}.
|
||||
@end table
|
||||
|
||||
@node Text Scale
|
||||
|
|
@ -732,9 +743,9 @@ determine which action to take.
|
|||
@kbd{C-x}. For instance, @kbd{C-x C-= C-= C-=} increases the face
|
||||
height by three steps. Each step scales the text height by a factor
|
||||
of 1.2; to change this factor, customize the variable
|
||||
@code{text-scale-mode-step}. As an exception, a numeric argument of 0
|
||||
@code{text-scale-mode-step}. A numeric argument of 0
|
||||
to the @code{text-scale-adjust} command restores the default height,
|
||||
similar to typing @kbd{C-x C-0}.
|
||||
the same as typing @kbd{C-x C-0}.
|
||||
|
||||
@cindex increase buffer face height
|
||||
@findex text-scale-increase
|
||||
|
|
@ -903,22 +914,32 @@ that you specify explicitly the regular expressions to highlight. You
|
|||
control them with these commands:
|
||||
|
||||
@table @kbd
|
||||
@item C-x w h @var{regexp} @key{RET} @var{face} @key{RET}
|
||||
@item M-s h r @var{regexp} @key{RET} @var{face} @key{RET}
|
||||
@itemx C-x w h @var{regexp} @key{RET} @var{face} @key{RET}
|
||||
@kindex M-s h r
|
||||
@kindex C-x w h
|
||||
@findex highlight-regexp
|
||||
Highlight text that matches @var{regexp} using face @var{face}
|
||||
(@code{highlight-regexp}). The highlighting will remain as long as
|
||||
the buffer is loaded. For example, to highlight all occurrences of
|
||||
the word ``whim'' using the default face (a yellow background)
|
||||
@kbd{C-x w h whim @key{RET} @key{RET}}. Any face can be used for
|
||||
@kbd{M-s h r whim @key{RET} @key{RET}}. Any face can be used for
|
||||
highlighting, Hi Lock provides several of its own and these are
|
||||
pre-loaded into a list of default values. While being prompted
|
||||
for a face use @kbd{M-n} and @kbd{M-p} to cycle through them.
|
||||
|
||||
@vindex hi-lock-auto-select-face
|
||||
Setting the option @code{hi-lock-auto-select-face} to a non-@code{nil}
|
||||
value causes this command (and other Hi Lock commands that read faces)
|
||||
to automatically choose the next face from the default list without
|
||||
prompting.
|
||||
|
||||
You can use this command multiple times, specifying various regular
|
||||
expressions to highlight in different ways.
|
||||
|
||||
@item C-x w r @var{regexp} @key{RET}
|
||||
@item M-s h u @var{regexp} @key{RET}
|
||||
@itemx C-x w r @var{regexp} @key{RET}
|
||||
@kindex M-s h u
|
||||
@kindex C-x w r
|
||||
@findex unhighlight-regexp
|
||||
Unhighlight @var{regexp} (@code{unhighlight-regexp}).
|
||||
|
|
@ -926,13 +947,15 @@ Unhighlight @var{regexp} (@code{unhighlight-regexp}).
|
|||
If you invoke this from the menu, you select the expression to
|
||||
unhighlight from a list. If you invoke this from the keyboard, you
|
||||
use the minibuffer. It will show the most recently added regular
|
||||
expression; use @kbd{M-p} to show the next older expression and
|
||||
@kbd{M-n} to select the next newer expression. (You can also type the
|
||||
expression; use @kbd{M-n} to show the next older expression and
|
||||
@kbd{M-p} to select the next newer expression. (You can also type the
|
||||
expression by hand, with completion.) When the expression you want to
|
||||
unhighlight appears in the minibuffer, press @kbd{@key{RET}} to exit
|
||||
the minibuffer and unhighlight it.
|
||||
|
||||
@item C-x w l @var{regexp} @key{RET} @var{face} @key{RET}
|
||||
@item M-s h l @var{regexp} @key{RET} @var{face} @key{RET}
|
||||
@itemx C-x w l @var{regexp} @key{RET} @var{face} @key{RET}
|
||||
@kindex M-s h l
|
||||
@kindex C-x w l
|
||||
@findex highlight-lines-matching-regexp
|
||||
@cindex lines, highlighting
|
||||
|
|
@ -940,7 +963,31 @@ the minibuffer and unhighlight it.
|
|||
Highlight entire lines containing a match for @var{regexp}, using face
|
||||
@var{face} (@code{highlight-lines-matching-regexp}).
|
||||
|
||||
@item C-x w b
|
||||
@item M-s h p @var{phrase} @key{RET} @var{face} @key{RET}
|
||||
@itemx C-x w p @var{phrase} @key{RET} @var{face} @key{RET}
|
||||
@kindex M-s h p
|
||||
@kindex C-x w p
|
||||
@findex highlight-phrase
|
||||
@cindex phrase, highlighting
|
||||
@cindex highlighting phrase
|
||||
Highlight matches of @var{phrase}, using face @var{face}
|
||||
(@code{highlight-phrase}). @var{phrase} can be any regexp,
|
||||
but spaces will be replaced by matches to whitespace and
|
||||
initial lower-case letters will become case insensitive.
|
||||
|
||||
@item M-s h .
|
||||
@itemx C-x w .
|
||||
@kindex M-s h .
|
||||
@kindex C-x w .
|
||||
@findex highlight-symbol-at-point
|
||||
@cindex symbol, highlighting
|
||||
@cindex highlighting symbol at point
|
||||
Highlight the symbol found near point, using the next available face
|
||||
(@code{highlight-symbol-at-point}).
|
||||
|
||||
@item M-s h w
|
||||
@itemx C-x w b
|
||||
@kindex M-s h w
|
||||
@kindex C-x w b
|
||||
@findex hi-lock-write-interactive-patterns
|
||||
Insert all the current highlighting regexp/face pairs into the buffer
|
||||
|
|
@ -952,7 +999,9 @@ These patterns are extracted from the comments, if appropriate, if you
|
|||
invoke @kbd{M-x hi-lock-find-patterns}, or if you visit the file while
|
||||
Hi Lock mode is enabled (since that runs @code{hi-lock-find-patterns}).
|
||||
|
||||
@item C-x w i
|
||||
@item M-s h f
|
||||
@itemx C-x w i
|
||||
@kindex M-s h f
|
||||
@kindex C-x w i
|
||||
@findex hi-lock-find-patterns
|
||||
Extract regexp/face pairs from comments in the current buffer
|
||||
|
|
@ -985,12 +1034,15 @@ mode's symbol is a member of the list @code{hi-lock-exclude-modes}.
|
|||
|
||||
@findex set-fringe-style
|
||||
@findex fringe-mode
|
||||
@vindex fringe-mode @r{(variable)}
|
||||
On graphical displays, each Emacs window normally has narrow
|
||||
@dfn{fringes} on the left and right edges. The fringes are used to
|
||||
display symbols that provide information about the text in the window.
|
||||
You can type @kbd{M-x fringe-mode} to disable the fringes, or modify
|
||||
their width. This command affects fringes in all frames; to modify
|
||||
fringes on the selected frame only, use @kbd{M-x set-fringe-style}.
|
||||
You can make your changes to the fringes permanent by customizing the
|
||||
variable @code{fringe-mode}.
|
||||
|
||||
The most common use of the fringes is to indicate a continuation
|
||||
line (@pxref{Continuation Lines}). When one line of text is split
|
||||
|
|
@ -1279,7 +1331,7 @@ specify the mail file to check, or set
|
|||
for incoming mail (any nonempty regular file in the directory is
|
||||
considered as ``newly arrived mail'').
|
||||
|
||||
@cindex mail (on mode line)
|
||||
@cindex battery status (on mode line)
|
||||
@findex display-battery-mode
|
||||
@vindex display-battery-mode
|
||||
@vindex battery-mode-line-format
|
||||
|
|
@ -1427,8 +1479,12 @@ pixels tall), or @code{nil} (no cursor at all).
|
|||
@findex blink-cursor-mode
|
||||
@cindex cursor, blinking
|
||||
@cindex blinking cursor
|
||||
@vindex blink-cursor-mode
|
||||
@vindex blink-cursor-blinks
|
||||
@vindex blink-cursor-alist
|
||||
To disable cursor blinking, change the variable
|
||||
By default, the cursor stops blinking after 10 blinks. This can be
|
||||
changed by customizing the variable @code{blink-cursor-blinks}. To
|
||||
disable cursor blinking altogether, change the variable
|
||||
@code{blink-cursor-mode} to @code{nil} (@pxref{Easy Customization}),
|
||||
or add the line @code{(blink-cursor-mode 0)} to your init file.
|
||||
Alternatively, you can change how the cursor looks when it ``blinks
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
@copying
|
||||
This manual describes specialized features of Emacs.
|
||||
|
||||
Copyright @copyright{} 2004--2013 Free Software Foundation, Inc.
|
||||
Copyright @copyright{} 2004--2014 Free Software Foundation, Inc.
|
||||
|
||||
@quotation
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
|
|
@ -26,7 +26,7 @@ modify this GNU manual.''
|
|||
@end quotation
|
||||
@end copying
|
||||
|
||||
@documentencoding ISO-8859-1
|
||||
@documentencoding UTF-8
|
||||
|
||||
@dircategory Emacs
|
||||
@direntry
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue