upstream
This commit is contained in:
commit
ce8171797d
2595 changed files with 148821 additions and 132452 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")
|
||||
|
|
10
.gitignore
vendored
10
.gitignore
vendored
|
@ -10,12 +10,14 @@ lib/Makefile.in
|
|||
src/config.in
|
||||
autom4te.cache
|
||||
makefile
|
||||
TAGS
|
||||
*~
|
||||
/README.W32
|
||||
|
||||
/bin/
|
||||
/site-lisp/
|
||||
*.o
|
||||
*.elc
|
||||
.bzr
|
||||
*#
|
||||
/leim/ja-dic/
|
||||
etc/refcards/*.aux
|
||||
etc/refcards/*.log
|
||||
info/dir
|
||||
info/*.info
|
||||
|
|
24
GNUmakefile
24
GNUmakefile
|
@ -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,12 +32,6 @@
|
|||
# run "configure" by hand. But run autogen.sh first, if the source
|
||||
# was checked out directly from the repository.
|
||||
|
||||
ifneq ($(MSYSTEM),)
|
||||
CFG = CONFIG_SITE=$(CURDIR)/nt/mingw-cfg.site
|
||||
else
|
||||
CFG =
|
||||
endif
|
||||
|
||||
# If a Makefile already exists, just use it.
|
||||
|
||||
ifeq ($(wildcard Makefile),Makefile)
|
||||
|
@ -61,22 +55,30 @@ else
|
|||
# Once 'configure' exists, run it.
|
||||
# Finally, run the actual 'make'.
|
||||
|
||||
default $(filter-out configure Makefile,$(MAKECMDGOALS)): Makefile
|
||||
ORDINARY_GOALS = $(filter-out configure Makefile bootstrap,$(MAKECMDGOALS))
|
||||
|
||||
default $(ORDINARY_GOALS): Makefile
|
||||
$(MAKE) -f Makefile $(MAKECMDGOALS)
|
||||
# Execute in sequence, so that multiple user goals don't conflict.
|
||||
.NOTPARALLEL:
|
||||
|
||||
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
|
||||
@echo >&2 'There seems to be no Makefile in this directory.'
|
||||
@echo >&2 'Running ./configure ...'
|
||||
$(CFG) ./configure
|
||||
./configure
|
||||
@echo >&2 'Makefile built.'
|
||||
|
||||
# 'make bootstrap' in a fresh checkout needn't run 'configure' twice.
|
||||
bootstrap: Makefile
|
||||
$(MAKE) -f Makefile all
|
||||
|
||||
.PHONY: bootstrap default $(ORDINARY_GOALS)
|
||||
|
||||
endif
|
||||
endif
|
||||
|
|
151
INSTALL
151
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
|
||||
|
@ -24,6 +24,9 @@ find some things, or what options to use.
|
|||
`src/config.h' file containing system-dependent definitions.
|
||||
Running the `make' utility then builds the package for your system.
|
||||
|
||||
Building Emacs requires GNU make, <http://www.gnu.org/software/make/>.
|
||||
On most systems that Emacs supports, this is the default `make' program.
|
||||
|
||||
Here's the procedure to build Emacs using `configure' on systems which
|
||||
are supported by it. In some cases, if the simplified procedure fails,
|
||||
you might need to use various non-default options, and maybe perform
|
||||
|
@ -49,7 +52,6 @@ sections if you need to.
|
|||
SOURCE-DIR/configure
|
||||
|
||||
where SOURCE-DIR is the top-level Emacs source directory.
|
||||
This may not work unless you use GNU make.
|
||||
|
||||
3. When `configure' finishes, it prints several lines of details
|
||||
about the system configuration. Read those details carefully
|
||||
|
@ -62,9 +64,8 @@ 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
|
||||
|
@ -117,19 +118,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.
|
||||
|
@ -154,37 +143,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
|
||||
|
||||
|
@ -264,18 +256,15 @@ 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
|
||||
pkg-config. Note that GTK version 2.6 or newer is required for Emacs.
|
||||
You can tell configure where to search for GTK by giving it the
|
||||
argument PKG_CONFIG='/full/name/of/pkg-config'. GTK version 2.6 or
|
||||
newer is required for Emacs.
|
||||
|
||||
Emacs will autolaunch a D-Bus session bus, when the environment
|
||||
variable DISPLAY is set, but no session bus is running. This might be
|
||||
|
@ -292,7 +281,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,
|
||||
|
@ -305,8 +294,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.
|
||||
|
@ -343,12 +331,17 @@ and is useful with GNU-compatible compilers. On a recent GNU system
|
|||
there should be no warnings; on older and on non-GNU systems the
|
||||
generated warnings may still be useful.
|
||||
|
||||
Use --enable-link-time-optimization to enable link-time optimizer, which
|
||||
is available in GNU compiler since version 4.5.0. If your compiler is not
|
||||
GNU or older than version 4.5.0, this option does nothing. If `configure'
|
||||
can determine number of online CPUS on your system, final link-time
|
||||
optimization and code generation is executed in parallel using one job
|
||||
per each available online CPU.
|
||||
Use --enable-link-time-optimization to enable link-time optimizer. If
|
||||
you're using GNU compiler, this feature is supported since version 4.5.0.
|
||||
If `configure' can determine number of online CPUS on your system, final
|
||||
link-time optimization and code generation is executed in parallel using
|
||||
one job per each available online CPU.
|
||||
|
||||
This option is also supported for clang. You should have GNU binutils
|
||||
with `gold' linker and plugin support, and clang with LLVMgold.so plugin.
|
||||
Read http://llvm.org/docs/GoldPlugin.html for details. Also note that
|
||||
this feature is still experimental, so prepare to build binutils and
|
||||
clang from the corresponding source code repositories.
|
||||
|
||||
The `--prefix=PREFIXDIR' option specifies where the installation process
|
||||
should put emacs and its data files. This defaults to `/usr/local'.
|
||||
|
@ -415,10 +408,11 @@ compiler. By default, gcc is used if available.
|
|||
Here's an example of a `configure' invocation, assuming a Bourne-like
|
||||
shell such as Bash, which uses these variables:
|
||||
|
||||
CPPFLAGS='-I/foo/myinclude' LDFLAGS='-L/bar/mylib' \
|
||||
CFLAGS='-O3' LIBS='-lfoo -lbar' ./configure
|
||||
./configure \
|
||||
CPPFLAGS='-I/foo/myinclude' LDFLAGS='-L/bar/mylib' \
|
||||
CFLAGS='-O3' LIBS='-lfoo -lbar'
|
||||
|
||||
(this is all one long line). This tells `configure' to instruct the
|
||||
(this is all one shell command). This tells `configure' to instruct the
|
||||
preprocessor to look in the `/foo/myinclude' directory for header
|
||||
files (in addition to the standard directories), instruct the linker
|
||||
to look in `/bar/mylib' for libraries, pass the -O3 optimization
|
||||
|
@ -428,12 +422,11 @@ libraries in addition to the standard ones.
|
|||
For some libraries, like Gtk+, fontconfig and ALSA, `configure' uses
|
||||
pkg-config to find where those libraries are installed.
|
||||
If you want pkg-config to look in special directories, you have to set
|
||||
the environment variable PKG_CONFIG_PATH to point to the directories
|
||||
where the .pc-files for those libraries are.
|
||||
For example:
|
||||
PKG_CONFIG_PATH to point to the directories where the .pc-files for
|
||||
those libraries are. For example:
|
||||
|
||||
PKG_CONFIG_PATH='/usr/local/alsa/lib/pkgconfig:/opt/gtk+-2.8/lib/pkgconfig' \
|
||||
./configure
|
||||
./configure \
|
||||
PKG_CONFIG_PATH='/usr/local/alsa/lib/pkgconfig:/opt/gtk+-2.8/lib/pkgconfig'
|
||||
|
||||
The work of `configure' can be done by editing various files in the
|
||||
distribution, but using `configure' is easier. See the section called
|
||||
|
@ -449,12 +442,8 @@ SOURCE-DIR refers to the top-level Emacs source directory which is
|
|||
where Emacs's configure script is located. `configure' looks for the
|
||||
Emacs source code in the directory that `configure' is in.
|
||||
|
||||
To build in a separate directory, you must use a version of `make'
|
||||
that supports the `VPATH' variable, such as GNU `make'.
|
||||
|
||||
(Do not try to build in a separate directory by creating many links
|
||||
to the real source directory--there is no need, and installation will
|
||||
fail.)
|
||||
(Do not try to build in a separate directory by creating many links to
|
||||
the real source directory--there is no need, and installation will fail.)
|
||||
|
||||
4) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
|
||||
Lisp code you want Emacs to load before it is dumped out. Use
|
||||
|
@ -480,10 +469,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.
|
||||
|
||||
|
@ -744,8 +729,8 @@ Strictly speaking, not all of the executables in `./lib-src' need be copied.
|
|||
are used by Emacs; they do need to be copied.
|
||||
- The programs `etags', `ctags', and `emacsclient' are intended to be
|
||||
run by users; they are handled below.
|
||||
- The programs `make-docfile' and `test-distrib' were
|
||||
used in building Emacs, and are not needed any more.
|
||||
- The program `make-docfile' was used in building Emacs, and is
|
||||
not needed any more.
|
||||
|
||||
2) Copy the files in `./info' to the place specified in
|
||||
`./lisp/site-init.el' or `./lisp/info.el'. Note that if the
|
||||
|
|
98
INSTALL.BZR
98
INSTALL.BZR
|
@ -1,98 +0,0 @@
|
|||
Copyright (C) 2002-2013 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
Building and Installing Emacs from Bazaar
|
||||
|
||||
Building Emacs from Bazaar 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).
|
||||
automake - at least the version specified near the start of
|
||||
configure.ac (in the AM_INIT_AUTOMAKE command).
|
||||
makeinfo - not strictly necessary, but highly recommended, so that
|
||||
you can build the manuals.
|
||||
|
||||
The `autogen.sh' script can help you figure out if you have the
|
||||
necessary tools.
|
||||
|
||||
The first time you build, there are a couple of extra steps.
|
||||
First, generate the `configure' script and some related files:
|
||||
|
||||
$ ./autogen.sh
|
||||
|
||||
(or you can just run `autoreconf -i -I m4').
|
||||
|
||||
You can then configure your build (use `./configure --help' to see
|
||||
options you can set):
|
||||
|
||||
$ ./configure
|
||||
|
||||
If you want later builds to go faster, at the expense of sometimes
|
||||
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":
|
||||
|
||||
$ 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
|
||||
much quicker.
|
||||
|
||||
$ make
|
||||
|
||||
(If you want to install the Emacs binary, type "make install" instead
|
||||
of "make" in the last command.)
|
||||
|
||||
Occasionally the file "lisp/loaddefs.el" (and similar automatically
|
||||
generated files, such as esh-groups.el, and *-loaddefs.el in some
|
||||
subdirectories of lisp/, e.g. mh-e/ and calendar/) will need to be
|
||||
updated to reflect new autoloaded functions. If you see errors (rather
|
||||
than warnings) about undefined lisp functions during compilation, that
|
||||
may be the reason. Finally, sometimes there can be build failures
|
||||
related to *loaddefs.el (e.g. "required feature `esh-groups' was not
|
||||
provided"). In that case, follow the instructions below.
|
||||
|
||||
To update loaddefs.el (and similar files), do:
|
||||
|
||||
$ cd lisp
|
||||
$ make autoloads
|
||||
|
||||
If either of the above partial procedures fails, try "make bootstrap".
|
||||
If CPU time is not an issue, the most thorough way to rebuild, and
|
||||
avoid any spurious problems, is always to use this method.
|
||||
|
||||
Users of non-Posix systems (MS-Windows etc.) should run the
|
||||
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
|
||||
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
|
||||
problem is known about and is just waiting for someone to fix it.
|
||||
This is especially true for Lisp compilation errors, which are almost
|
||||
never platform-specific.
|
||||
|
||||
|
||||
|
||||
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/>.
|
85
INSTALL.REPO
Normal file
85
INSTALL.REPO
Normal file
|
@ -0,0 +1,85 @@
|
|||
Building and Installing Emacs from the Repository
|
||||
|
||||
Simply run 'make'. This should work if your files are freshly checked
|
||||
out from the repository, and if you have the proper tools installed.
|
||||
If it doesn't work, or if you have special build requirements, the
|
||||
following information may be helpful.
|
||||
|
||||
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).
|
||||
automake - at least the version specified near the start of
|
||||
configure.ac (in the AM_INIT_AUTOMAKE command).
|
||||
makeinfo - not strictly necessary, but highly recommended, so that
|
||||
you can build the manuals.
|
||||
|
||||
To use the autotools, run the following shell command to generate the
|
||||
'configure' script and some related files:
|
||||
|
||||
$ ./autogen.sh
|
||||
|
||||
You can then configure your build as follows:
|
||||
|
||||
$ ./configure
|
||||
|
||||
The 'configure' script has many options; run './configure --help' to
|
||||
see them. For example, if you want later builds to go faster, albeit
|
||||
sometimes doing the wrong thing if you update the build procedure, you
|
||||
can invoke './configure -C'. After configuring, build Emacs as follows:
|
||||
|
||||
$ make
|
||||
|
||||
If you want to install Emacs, type 'make install' instead of 'make' in
|
||||
the last command.
|
||||
|
||||
Occasionally the file 'lisp/loaddefs.el' (and similar automatically
|
||||
generated files, such as 'esh-groups.el', and '*-loaddefs.el' in some
|
||||
subdirectories of 'lisp/', e.g., 'mh-e/' and 'calendar/') will need to be
|
||||
updated to reflect new autoloaded functions. If you see errors (rather
|
||||
than warnings) about undefined lisp functions during compilation, that
|
||||
may be the reason. Finally, sometimes there can be build failures
|
||||
related to '*loaddefs.el' (e.g., "required feature `esh-groups' was not
|
||||
provided"). In that case, follow the instructions below.
|
||||
|
||||
To update loaddefs.el (and similar files), do:
|
||||
|
||||
$ cd lisp
|
||||
$ make autoloads
|
||||
|
||||
If either of the above partial procedures fails, try 'make bootstrap'.
|
||||
If CPU time is not an issue, 'make bootstrap' is the most thorough way
|
||||
to rebuild, and avoid any spurious problems.
|
||||
|
||||
Users of non-Posix systems (MS-Windows, etc.) should run the
|
||||
platform-specific configuration scripts ('nt/configure.bat',
|
||||
'config.bat', etc.) before 'make'; the rest of the procedure is
|
||||
applicable to those systems as well.
|
||||
|
||||
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
|
||||
problem is known about and is just waiting for someone to fix it.
|
||||
This is especially true for Lisp compilation errors, which are almost
|
||||
never platform-specific.
|
||||
|
||||
|
||||
|
||||
Copyright (C) 2002-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/>.
|
451
Makefile.in
451
Makefile.in
|
@ -1,6 +1,6 @@
|
|||
### @configure_input@
|
||||
|
||||
# Copyright (C) 1992-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1992-2014 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
@ -48,6 +48,8 @@
|
|||
#
|
||||
# make extraclean
|
||||
# Still more severe - delete backup and autosave files, too.
|
||||
# Also generated files that do not normally change and can be slow
|
||||
# to rebuild (eg leim/ja-dic).
|
||||
#
|
||||
# make bootstrap
|
||||
# Removes all the compiled files to force a new bootstrap from a
|
||||
|
@ -58,8 +60,8 @@
|
|||
|
||||
SHELL = @SHELL@
|
||||
|
||||
# This may not work with certain non-GNU make's. It only matters when
|
||||
# inheriting a CDPATH not starting with the current directory.
|
||||
# This only matters when inheriting a CDPATH not starting with the
|
||||
# current directory.
|
||||
CDPATH=
|
||||
|
||||
# If Make doesn't predefine MAKE, set it here.
|
||||
|
@ -163,6 +165,9 @@ bitmapdir=@bitmapdir@
|
|||
|
||||
# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
|
||||
srcdir=@srcdir@
|
||||
abs_srcdir=@abs_srcdir@
|
||||
# MinGW CPPFLAGS may use this.
|
||||
abs_top_srcdir=@abs_top_srcdir@
|
||||
|
||||
# Where the manpage source files are kept.
|
||||
mansrcdir=$(srcdir)/doc/man
|
||||
|
@ -187,15 +192,13 @@ iconsrcdir=$(srcdir)/etc/images/icons
|
|||
# These variables hold the values Emacs will actually use. They are
|
||||
# based on the values of the standard Make variables above.
|
||||
|
||||
# Where to install the lisp, leim files distributed with
|
||||
# Emacs. This includes the Emacs version, so that the
|
||||
# lisp files for different versions of Emacs will install
|
||||
# themselves in separate directories.
|
||||
# Where to install the lisp files distributed with Emacs.
|
||||
# This includes the Emacs version, so that the lisp files for different
|
||||
# versions of Emacs will install themselves in separate directories.
|
||||
lispdir=@lispdir@
|
||||
leimdir=@leimdir@
|
||||
|
||||
# Directories Emacs should search for standard lisp files.
|
||||
# The default is ${lispdir}:${leimdir}.
|
||||
# The default is ${lispdir}.
|
||||
standardlisppath=@standardlisppath@
|
||||
|
||||
# Directories Emacs should search for lisp files specific to this
|
||||
|
@ -210,13 +213,14 @@ locallisppath=@locallisppath@
|
|||
# The default is ${locallisppath}:${standardlisppath}.
|
||||
lisppath=@lisppath@
|
||||
|
||||
# Where Emacs will search for its lisp files while
|
||||
# building. This is only used during the process of
|
||||
# compiling Emacs, to help Emacs find its lisp files
|
||||
# before they've been installed in their final location.
|
||||
# Where Emacs will search for its lisp files while building.
|
||||
# This is only used during the process of compiling Emacs,
|
||||
# to help Emacs find its lisp files before they've been installed
|
||||
# in their final location.
|
||||
# This should be a colon-separated list of directories.
|
||||
# Normally it points to the lisp/ directory in the sources.
|
||||
buildlisppath=${srcdir}/lisp
|
||||
# NB lread.c relies on lisp/ being first here.
|
||||
buildlisppath=${abs_srcdir}/lisp
|
||||
|
||||
# Where to install the other architecture-independent
|
||||
# data files distributed with Emacs (like the tutorial,
|
||||
|
@ -271,7 +275,7 @@ EMACS = ${EMACS_NAME}${EXEEXT}
|
|||
EMACSFULL = `echo emacs-${version} | sed '$(TRANSFORM)'`${EXEEXT}
|
||||
|
||||
# Subdirectories to make recursively.
|
||||
SUBDIR = $(NTDIR) lib lib-src src lisp leim
|
||||
SUBDIR = $(NTDIR) lib lib-src src lisp
|
||||
|
||||
# The subdir makefiles created by config.status.
|
||||
SUBDIR_MAKEFILES_IN = @SUBDIR_MAKEFILES_IN@
|
||||
|
@ -280,14 +284,13 @@ SUBDIR_MAKEFILES = `echo $(SUBDIR_MAKEFILES_IN:.in=) | sed 's|$(srcdir)/||g'`
|
|||
# Subdirectories to install, and where they'll go. lib-src's and nt's
|
||||
# makefiles know how to install them, so we don't do that here.
|
||||
# Directories that cannot simply be copied, eg info, are treated
|
||||
# separately. quail appears twice because in out-of-tree builds, it
|
||||
# exists twice.
|
||||
COPYDIR = ${srcdir}/etc ${srcdir}/lisp ${srcdir}/leim/ja-dic ${srcdir}/leim/quail leim/quail
|
||||
COPYDESTS = $(DESTDIR)${etcdir} $(DESTDIR)${lispdir} $(DESTDIR)${leimdir}/ja-dic $(DESTDIR)${leimdir}/quail $(DESTDIR)${leimdir}/quail
|
||||
# separately.
|
||||
COPYDIR = ${srcdir}/etc ${srcdir}/lisp
|
||||
COPYDESTS = "$(DESTDIR)${etcdir}" "$(DESTDIR)${lispdir}"
|
||||
|
||||
all: ${SUBDIR}
|
||||
all: ${SUBDIR} info
|
||||
|
||||
.PHONY: all ${SUBDIR} blessmail epaths-force epaths-force-w32 FRC
|
||||
.PHONY: all ${SUBDIR} blessmail epaths-force epaths-force-w32
|
||||
|
||||
removenullpaths=sed -e 's/^:*//' -e 's/:*$$//g' -e 's/::*/:/g'
|
||||
|
||||
|
@ -295,7 +298,7 @@ removenullpaths=sed -e 's/^:*//' -e 's/:*$$//g' -e 's/::*/:/g'
|
|||
# See comments in configure.ac for why it is done this way, as opposed
|
||||
# to just letting configure generate epaths.h from epaths.in in a
|
||||
# similar way to how Makefile is made from Makefile.in.
|
||||
epaths-force: FRC
|
||||
epaths-force:
|
||||
@(standardlisppath=`echo "${standardlisppath}" | ${removenullpaths}` ; \
|
||||
locallisppath=`echo "${locallisppath}" | ${removenullpaths}` ; \
|
||||
buildlisppath=`echo "${buildlisppath}" | ${removenullpaths}` ; \
|
||||
|
@ -314,22 +317,9 @@ epaths-force: FRC
|
|||
-e 's;\(#.*PATH_DOC\).*$$;\1 "${etcdocdir}";') && \
|
||||
${srcdir}/build-aux/move-if-change epaths.h.$$$$ src/epaths.h
|
||||
|
||||
# Convert MSYS-style /x/foo or Windows-style x:\foo file names
|
||||
# into x:/foo that Windows can grok.
|
||||
msys_to_w32=sed -e 's,\\\\,/,g' -e 's,^/\([A-Za-z]\)/,\1:/,'
|
||||
|
||||
# Transform directory search path and its components. Original can
|
||||
# be MSYS or Windows style. Set path separator to ";", directory
|
||||
# separator to "/" and transform MSYS-style "/c/" to "c:/".
|
||||
# Remove empty path components and escape semicolons.
|
||||
msys_lisppath_to_w32=sed -e 's,\\\\,/,g' \
|
||||
-e 's,\(^\|[:;]\)\([A-Za-z]\):/,\1/\2/,g' \
|
||||
-e 's/:/;/g' -e 's,\(^\|;\)/\([A-Za-z]\)/,\1\2:/,g' \
|
||||
-e 's/;\+/;/g' -e 's/^;//' -e 's/;$$//' -e 's/;/\\\\;/g'
|
||||
|
||||
# Replace "${prefix}" with '%emacs_dir%' (which expands to install
|
||||
# Replace "${w32prefix}" with '%emacs_dir%' (which expands to install
|
||||
# directory at runtime).
|
||||
msys_prefix_subst=sed -e 's!\(^\|;\)'"$${prefixpattern}"'\([;/]\|$$\)!\1%emacs_dir%\2!g'
|
||||
msys_w32prefix_subst=sed -e 's!\(^\|;\)'"$${w32prefixpattern}"'\([;/]\|$$\)!\1%emacs_dir%\2!g'
|
||||
|
||||
# Quote Sed special characters (except backslash and newline) with
|
||||
# a double backslash.
|
||||
|
@ -337,14 +327,21 @@ msys_sed_sh_escape=sed -e 's/[];$$*.^[]/\\\\&/g'
|
|||
|
||||
# The w32 build needs a slightly different editing, and it uses
|
||||
# nt/epaths.nt as the template.
|
||||
#
|
||||
# Use the value of ${locallisppath} supplied by `configure',
|
||||
# to support the --enable-locallisppath argument.
|
||||
epaths-force-w32: FRC
|
||||
@(w32srcdir=`echo "${srcdir}" | ${msys_to_w32}` ; \
|
||||
prefixpattern=`echo '${prefix}' | ${msys_to_w32} | ${msys_sed_sh_escape}` ; \
|
||||
locallisppath=`echo '${locallisppath}' | ${msys_lisppath_to_w32} | ${msys_prefix_subst}` ; \
|
||||
#
|
||||
# In this case, the paths written to 'src/epaths.h' must be in native
|
||||
# MS-Windows format (e.g. 'c:/foo/bar'), because temacs is a MinGW
|
||||
# program that doesn't support MSYS-style paths (e.g. '/c/foo/bar' or
|
||||
# '/foo/bar').
|
||||
epaths-force-w32:
|
||||
@(w32srcdir=`${srcdir}/build-aux/msys-to-w32 "${srcdir}"`; \
|
||||
w32prefix=`${srcdir}/build-aux/msys-to-w32 "${prefix}" N`; \
|
||||
w32prefixpattern=`echo "$${w32prefix}" | ${msys_sed_sh_escape}` ; \
|
||||
w32locallisppath=`${srcdir}/build-aux/msys-to-w32 "${locallisppath}" N ":" "\\;" | ${msys_w32prefix_subst}` ; \
|
||||
sed < ${srcdir}/nt/epaths.nt > epaths.h.$$$$ \
|
||||
-e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${locallisppath}"'";' \
|
||||
-e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${w32locallisppath}"'";' \
|
||||
-e '/^.*#/s/@VER@/${version}/g' \
|
||||
-e '/^.*#/s/@CFG@/${configuration}/g' \
|
||||
-e "/^.*#/s|@SRC@|$${w32srcdir}|g") && \
|
||||
|
@ -358,12 +355,11 @@ lib-src src: $(NTDIR) lib
|
|||
|
||||
src: lib-src
|
||||
|
||||
# We need to build `emacs' in `src' to compile the *.elc files in `lisp'
|
||||
# and `leim'.
|
||||
lisp leim: src
|
||||
# We need to build `emacs' in `src' to compile the *.elc files in `lisp'.
|
||||
lisp: src
|
||||
|
||||
# These targets should be "${SUBDIR} without `src'".
|
||||
lib lib-src lisp leim nt: Makefile FRC
|
||||
lib lib-src lisp nt: Makefile
|
||||
cd $@ && $(MAKE) all $(MFLAGS) \
|
||||
CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
|
||||
LDFLAGS='${LDFLAGS}' MAKE='${MAKE}'
|
||||
|
@ -377,7 +373,12 @@ lib lib-src lisp leim nt: Makefile FRC
|
|||
# file src/foo.c forces dumping a new bootstrap-emacs, then re-byte-compiling
|
||||
# all preloaded elisp files, and only then dump the actual src/emacs, which
|
||||
# is not wrong, but is overkill in 99.99% of the cases.
|
||||
src: Makefile FRC
|
||||
#
|
||||
# Note the use of single quotes in the value of vcswitness.
|
||||
# This passes an unexpanded $srcdir to src's Makefile, which then
|
||||
# expands it using its own value of srcdir (which points to the
|
||||
# source directory of src/).
|
||||
src: Makefile
|
||||
dirstate='.bzr/checkout/dirstate'; \
|
||||
vcswitness='$$(srcdir)/../'$$dirstate; \
|
||||
[ -r "$(srcdir)/$$dirstate" ] || vcswitness=''; \
|
||||
|
@ -389,7 +390,7 @@ src: Makefile FRC
|
|||
LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="$$boot" \
|
||||
VCSWITNESS="$$vcswitness"
|
||||
|
||||
blessmail: Makefile src FRC
|
||||
blessmail: Makefile src
|
||||
cd lib-src && $(MAKE) maybe-blessmail $(MFLAGS) \
|
||||
MAKE='${MAKE}' archlibdir='$(archlibdir)'
|
||||
|
||||
|
@ -424,9 +425,10 @@ AUTOCONF_INPUTS = $(srcdir)/configure.ac $(srcdir)/aclocal.m4
|
|||
$(srcdir)/configure: $(AUTOCONF_INPUTS)
|
||||
cd ${srcdir} && autoconf
|
||||
|
||||
ACLOCAL_INPUTS = $(srcdir)/m4/gnulib-comp.m4
|
||||
ACLOCAL_PATH = @ACLOCAL_PATH@
|
||||
ACLOCAL_INPUTS = $(srcdir)/configure.ac $(srcdir)/m4/gnulib-comp.m4
|
||||
$(srcdir)/aclocal.m4: $(ACLOCAL_INPUTS)
|
||||
cd $(srcdir) && aclocal -I m4
|
||||
cd $(srcdir) && ACLOCAL_PATH='$(ACLOCAL_PATH)' aclocal -I m4
|
||||
|
||||
AUTOMAKE_INPUTS = $(srcdir)/aclocal.m4 $(srcdir)/lib/Makefile.am \
|
||||
$(srcdir)/lib/gnulib.mk
|
||||
|
@ -468,32 +470,32 @@ install: all install-arch-indep install-etcdoc install-arch-dep install-$(NTDIR)
|
|||
## world-readable.
|
||||
## TODO it might be good to warn about non-standard permissions of
|
||||
## pre-existing directories, but that does not seem easy.
|
||||
write_subdir=if [ -f $${subdir}/subdirs.el ]; \
|
||||
write_subdir=if [ -f "$${subdir}/subdirs.el" ]; \
|
||||
then true; \
|
||||
else \
|
||||
umask 022; \
|
||||
${MKDIR_P} $${subdir}; \
|
||||
${MKDIR_P} "$${subdir}"; \
|
||||
(echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; \
|
||||
echo " (normal-top-level-add-subdirs-to-load-path))") \
|
||||
> $${subdir}/subdirs.el; \
|
||||
> "$${subdir}/subdirs.el"; \
|
||||
fi
|
||||
|
||||
### Install the executables that were compiled specifically for this machine.
|
||||
### We do install-arch-indep first because the executable needs the
|
||||
### Lisp files and DOC file to work properly.
|
||||
install-arch-dep: src install-arch-indep install-etcdoc install-$(NTDIR)
|
||||
umask 022; ${MKDIR_P} $(DESTDIR)${bindir}
|
||||
umask 022; ${MKDIR_P} "$(DESTDIR)${bindir}"
|
||||
cd lib-src && \
|
||||
$(MAKE) install $(MFLAGS) prefix=${prefix} \
|
||||
exec_prefix=${exec_prefix} bindir=${bindir} \
|
||||
libexecdir=${libexecdir} archlibdir=${archlibdir} \
|
||||
$(MAKE) install $(MFLAGS) prefix="${prefix}" \
|
||||
exec_prefix="${exec_prefix}" bindir="${bindir}" \
|
||||
libexecdir="${libexecdir}" archlibdir="${archlibdir}" \
|
||||
INSTALL_STRIP=${INSTALL_STRIP}
|
||||
if test "${ns_self_contained}" = "no"; then \
|
||||
${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} $(DESTDIR)${bindir}/$(EMACSFULL) || exit 1 ; \
|
||||
chmod 1755 $(DESTDIR)${bindir}/$(EMACSFULL) || true; \
|
||||
${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} "$(DESTDIR)${bindir}/$(EMACSFULL)" || exit 1 ; \
|
||||
chmod 1755 "$(DESTDIR)${bindir}/$(EMACSFULL)" || true; \
|
||||
if test "x${NO_BIN_LINK}" = x; then \
|
||||
rm -f $(DESTDIR)${bindir}/$(EMACS) ; \
|
||||
cd $(DESTDIR)${bindir} && $(LN_S_FILEONLY) $(EMACSFULL) $(EMACS); \
|
||||
rm -f "$(DESTDIR)${bindir}/$(EMACS)" ; \
|
||||
cd "$(DESTDIR)${bindir}" && $(LN_S_FILEONLY) $(EMACSFULL) $(EMACS); \
|
||||
fi; \
|
||||
else \
|
||||
subdir=${ns_appresdir}/site-lisp; \
|
||||
|
@ -506,9 +508,10 @@ install-arch-dep: src install-arch-indep install-etcdoc install-$(NTDIR)
|
|||
install-:
|
||||
install-nt:
|
||||
cd $(NTDIR) && \
|
||||
$(MAKE) install $(MFLAGS) prefix=${prefix} \
|
||||
exec_prefix=${exec_prefix} bindir=${bindir} \
|
||||
libexecdir=${libexecdir} archlibdir=${archlibdir} \
|
||||
$(MAKE) install $(MFLAGS) prefix="${prefix}" \
|
||||
exec_prefix="${exec_prefix}" bindir="${bindir}" \
|
||||
libexecdir="${libexecdir}" archlibdir="${archlibdir}" \
|
||||
datadir="${datadir}" \
|
||||
INSTALL_STRIP=${INSTALL_STRIP}
|
||||
|
||||
## In the share directory, we are deleting:
|
||||
|
@ -550,9 +553,12 @@ set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
|
|||
## Note that the Makefiles in the etc directory are potentially useful
|
||||
## in an installed Emacs, so should not be excluded.
|
||||
|
||||
## We used to create locallisppath, but if it points to non-standard
|
||||
## locations, is not really Emacs's job to create these directories,
|
||||
## so it is no longer done.
|
||||
## We always create the _default_ locallisppath directories, and
|
||||
## ensure that they contain a subdirs.el file (via write_subdir).
|
||||
## This is true even if locallisppath has a non-default value.
|
||||
## In case of non-default value, we used to create the specified directories,
|
||||
## but not add subdirs.el to them. This was a strange halfway house.
|
||||
## Nowadays we do not create non-default directories.
|
||||
|
||||
## Note that we use tar instead of plain old cp -R/-r because the latter
|
||||
## is apparently not portable (even in 2012!).
|
||||
|
@ -561,68 +567,59 @@ set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
|
|||
## work correctly, and therefore no idea when tar can be replaced.
|
||||
## See also these comments from 2004 about cp -r working fine:
|
||||
## http://lists.gnu.org/archive/html/autoconf-patches/2004-11/msg00005.html
|
||||
install-arch-indep: lisp leim install-info install-man ${INSTALL_ARCH_INDEP_EXTRA}
|
||||
install-arch-indep: lisp install-info install-man ${INSTALL_ARCH_INDEP_EXTRA}
|
||||
-set ${COPYDESTS} ; \
|
||||
unset CDPATH; \
|
||||
$(set_installuser); \
|
||||
for dir in ${COPYDIR} ; do \
|
||||
[ -d $${dir} ] || exit 1 ; \
|
||||
dest=$$1 ; shift ; \
|
||||
[ -d $${dest} ] && \
|
||||
[ `cd $${dest} && /bin/pwd` = `cd $${dir} && /bin/pwd` ] && \
|
||||
continue ; \
|
||||
if [ "$${dir}" = "leim/quail" ]; then \
|
||||
[ `cd $${dir} && /bin/pwd` = `cd ${srcdir}/leim/quail && /bin/pwd` ] && \
|
||||
continue ; \
|
||||
else \
|
||||
rm -rf $${dest} ; \
|
||||
umask 022; ${MKDIR_P} $${dest} ; \
|
||||
fi ; \
|
||||
echo "Copying $${dir} to $${dest}..." ; \
|
||||
(cd $${dir}; tar -chf - . ) \
|
||||
| (cd $${dest}; umask 022; \
|
||||
tar -xvf - && cat > /dev/null) || exit 1; \
|
||||
if [ "$${dir}" = "${srcdir}/etc" ]; then \
|
||||
rm -f $${dest}/DOC* ; \
|
||||
rm -f $${dest}/refcards/*.aux $${dest}/refcards/*.dvi; \
|
||||
rm -f $${dest}/refcards/*.log; \
|
||||
dest="$$1" ; shift ; \
|
||||
if [ -d "$${dest}" ]; then \
|
||||
exp_dest=`cd "$${dest}" && /bin/pwd`; \
|
||||
[ "$$exp_dest" = "`cd $${dir} && /bin/pwd`" ] && continue ; \
|
||||
else true; \
|
||||
fi; \
|
||||
for subdir in `find $${dest} -type d -print` ; do \
|
||||
chmod a+rx $${subdir} ; \
|
||||
rm -f $${subdir}/.gitignore ; \
|
||||
rm -f $${subdir}/.arch-inventory ; \
|
||||
rm -f $${subdir}/.DS_Store ; \
|
||||
rm -f $${subdir}/\#* ; \
|
||||
rm -f $${subdir}/.\#* ; \
|
||||
rm -f $${subdir}/*~ ; \
|
||||
rm -f $${subdir}/*.orig ; \
|
||||
rm -f $${subdir}/ChangeLog* ; \
|
||||
[ "$${dir}" != "${srcdir}/etc" ] && \
|
||||
rm -f $${subdir}/[mM]akefile*[.-]in $${subdir}/[mM]akefile ; \
|
||||
done ; \
|
||||
find $${dest} -exec chown $${installuser} {} ';' ;\
|
||||
rm -rf "$${dest}" ; \
|
||||
umask 022; ${MKDIR_P} "$${dest}" ; \
|
||||
echo "Copying $${dir} to $${dest}..." ; \
|
||||
(cd $${dir}; tar -chf - . ) \
|
||||
| (cd "$${dest}"; umask 022; \
|
||||
tar -xvf - && cat > /dev/null) || exit 1; \
|
||||
if [ "$${dir}" = "${srcdir}/etc" ]; then \
|
||||
rm -f "$${dest}/DOC"* ; \
|
||||
rm -f "$${dest}/refcards"/*.aux "$${dest}/refcards"/*.dvi; \
|
||||
rm -f "$${dest}/refcards"/*.log; \
|
||||
else true; \
|
||||
fi; \
|
||||
(cd "$${dest}" || exit 1; \
|
||||
for subdir in `find . -type d -print` ; do \
|
||||
chmod a+rx $${subdir} ; \
|
||||
rm -f $${subdir}/.gitignore ; \
|
||||
rm -f $${subdir}/.arch-inventory ; \
|
||||
rm -f $${subdir}/.DS_Store ; \
|
||||
rm -f $${subdir}/\#* ; \
|
||||
rm -f $${subdir}/.\#* ; \
|
||||
rm -f $${subdir}/*~ ; \
|
||||
rm -f $${subdir}/*.orig ; \
|
||||
rm -f $${subdir}/ChangeLog* ; \
|
||||
[ "$${dir}" != "${srcdir}/etc" ] && \
|
||||
rm -f $${subdir}/[mM]akefile*[.-]in $${subdir}/[mM]akefile ; \
|
||||
done ); \
|
||||
find "$${dest}" -exec chown $${installuser} {} ';' ;\
|
||||
done
|
||||
-rm -f $(DESTDIR)${leimdir}/leim-list.el
|
||||
${INSTALL_DATA} leim/leim-list.el $(DESTDIR)${leimdir}/leim-list.el
|
||||
-rm -f $(DESTDIR)${lispdir}/subdirs.el
|
||||
umask 022; $(srcdir)/build-aux/update-subdirs $(DESTDIR)${lispdir}
|
||||
subdir=$(DESTDIR)${datadir}/emacs/${version}/site-lisp ; \
|
||||
-rm -f "$(DESTDIR)${lispdir}/subdirs.el"
|
||||
umask 022; $(srcdir)/build-aux/update-subdirs "$(DESTDIR)${lispdir}"
|
||||
subdir="$(DESTDIR)${datadir}/emacs/${version}/site-lisp" ; \
|
||||
${write_subdir}
|
||||
subdir=$(DESTDIR)${datadir}/emacs/site-lisp ; \
|
||||
subdir="$(DESTDIR)${datadir}/emacs/site-lisp" ; \
|
||||
${write_subdir} || true
|
||||
[ -z "${GZIP_PROG}" ] || \
|
||||
( echo "Compressing *.el ..." ; \
|
||||
unset CDPATH; \
|
||||
thisdir=`/bin/pwd`; \
|
||||
for dir in $(DESTDIR)${lispdir} $(DESTDIR)${leimdir}; do \
|
||||
cd $${thisdir} ; \
|
||||
cd $${dir} || exit 1 ; \
|
||||
for f in `find . -name "*.elc" -print`; do \
|
||||
${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \
|
||||
done ; \
|
||||
done )
|
||||
-chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS}
|
||||
[ -z "${GZIP_PROG}" ] || { \
|
||||
echo "Compressing *.el ..." && \
|
||||
cd "$(DESTDIR)${lispdir}" && \
|
||||
find . -name '*.elc' -exec $(SHELL) -c \
|
||||
'${GZIP_PROG} -9n `expr "$$1" : "\\(.*\\)c"`' dummy '{}' ';'; \
|
||||
}
|
||||
-chmod -R a+r "$(DESTDIR)${datadir}/emacs/${version}" ${COPYDESTS}
|
||||
|
||||
## The above chmods are needed because "umask 022; tar ..." is not
|
||||
## guaranteed to do the right thing; eg if we are root and tar is
|
||||
|
@ -632,41 +629,50 @@ install-arch-indep: lisp leim install-info install-man ${INSTALL_ARCH_INDEP_EXTR
|
|||
## installed etc/ directory, so we need it to run before this does.
|
||||
install-etcdoc: src install-arch-indep
|
||||
-unset CDPATH; \
|
||||
umask 022; ${MKDIR_P} $(DESTDIR)${etcdocdir} ; \
|
||||
if [ `cd ./etc; /bin/pwd` != `cd $(DESTDIR)${etcdocdir}; /bin/pwd` ]; \
|
||||
umask 022; ${MKDIR_P} "$(DESTDIR)${etcdocdir}" ; \
|
||||
exp_etcdocdir=`cd "$(DESTDIR)${etcdocdir}"; /bin/pwd`; \
|
||||
if [ "`cd ./etc; /bin/pwd`" != "$$exp_etcdocdir" ]; \
|
||||
then \
|
||||
docfile="DOC"; \
|
||||
echo "Copying etc/$${docfile} to $(DESTDIR)${etcdocdir} ..." ; \
|
||||
${INSTALL_DATA} etc/$${docfile} $(DESTDIR)${etcdocdir}/$${docfile}; \
|
||||
${INSTALL_DATA} etc/$${docfile} "$(DESTDIR)${etcdocdir}/$${docfile}"; \
|
||||
$(set_installuser); \
|
||||
chown $${installuser} $(DESTDIR)${etcdocdir}/$${docfile} || true ; \
|
||||
chown $${installuser} "$(DESTDIR)${etcdocdir}/$${docfile}" || true ; \
|
||||
else true; fi
|
||||
|
||||
## FIXME:
|
||||
## If info/dir is missing, but we have install-info, we should let
|
||||
## that handle it. If info/dir is present and we do not have install-info,
|
||||
## we should check for missing entries and add them by hand.
|
||||
##
|
||||
## FIXME:
|
||||
## If HAVE_MAKEINFO = no and there are no info files, do not install info/dir.
|
||||
install-info: info
|
||||
umask 022; ${MKDIR_P} $(DESTDIR)${infodir}
|
||||
umask 022; ${MKDIR_P} "$(DESTDIR)${infodir}"
|
||||
-unset CDPATH; \
|
||||
thisdir=`/bin/pwd`; \
|
||||
[ `cd ${srcdir}/info && /bin/pwd` = `cd $(DESTDIR)${infodir} && /bin/pwd` ] || \
|
||||
(cd $(DESTDIR)${infodir}; \
|
||||
[ -f dir ] || \
|
||||
(cd $${thisdir}; \
|
||||
${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir) ; \
|
||||
info_misc=`cd $${thisdir}/doc/misc && \
|
||||
$(QUIET_SUBMAKE) $(MAKE) -s echo-info \
|
||||
`; \
|
||||
exp_infodir=`cd "$(DESTDIR)${infodir}" && /bin/pwd`; \
|
||||
if [ "`cd ${srcdir}/info && /bin/pwd`" = "$$exp_infodir" ]; then \
|
||||
true; \
|
||||
else \
|
||||
[ -f "$(DESTDIR)${infodir}/dir" ] || \
|
||||
[ ! -f ${srcdir}/info/dir ] || \
|
||||
${INSTALL_DATA} ${srcdir}/info/dir "$(DESTDIR)${infodir}/dir"; \
|
||||
info_misc=`cd doc/misc && $(QUIET_SUBMAKE) $(MAKE) -s echo-info`; \
|
||||
cd ${srcdir}/info ; \
|
||||
for elt in ${INFO_NONMISC} $${info_misc}; do \
|
||||
test "$(HAVE_MAKEINFO)" = "no" && test ! -f $$elt && continue; \
|
||||
for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \
|
||||
(cd $${thisdir}; \
|
||||
${INSTALL_DATA} ${srcdir}/info/$$f $(DESTDIR)${infodir}/$$f); \
|
||||
(cd "$${thisdir}"; \
|
||||
${INSTALL_DATA} ${srcdir}/info/$$f "$(DESTDIR)${infodir}/$$f"); \
|
||||
[ -n "${GZIP_PROG}" ] || continue ; \
|
||||
rm -f $(DESTDIR)${infodir}/$$f.gz; \
|
||||
${GZIP_PROG} -9n $(DESTDIR)${infodir}/$$f; \
|
||||
rm -f "$(DESTDIR)${infodir}/$$f.gz"; \
|
||||
${GZIP_PROG} -9n "$(DESTDIR)${infodir}/$$f"; \
|
||||
done; \
|
||||
(cd $${thisdir}; \
|
||||
${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
|
||||
done)
|
||||
(cd "$${thisdir}"; \
|
||||
${INSTALL_INFO} --info-dir="$(DESTDIR)${infodir}" "$(DESTDIR)${infodir}/$$elt"); \
|
||||
done; \
|
||||
fi
|
||||
|
||||
## "gzip || true" is because some gzips exit with non-zero status
|
||||
## if compression would not reduce the file size. Eg, the gzip in
|
||||
|
@ -675,16 +681,16 @@ install-info: info
|
|||
## ctags.1 is compressed or not. "gzip -f" is another option here,
|
||||
## but not sure if portable.
|
||||
install-man:
|
||||
umask 022; ${MKDIR_P} $(DESTDIR)${man1dir}
|
||||
umask 022; ${MKDIR_P} "$(DESTDIR)${man1dir}"
|
||||
thisdir=`/bin/pwd`; \
|
||||
cd ${mansrcdir}; \
|
||||
for page in *.1; do \
|
||||
dest=`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1; \
|
||||
(cd $${thisdir}; \
|
||||
${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${dest}); \
|
||||
(cd "$${thisdir}"; \
|
||||
${INSTALL_DATA} ${mansrcdir}/$${page} "$(DESTDIR)${man1dir}/$${dest}"); \
|
||||
[ -n "${GZIP_PROG}" ] || continue ; \
|
||||
rm -f $(DESTDIR)${man1dir}/$${dest}.gz; \
|
||||
${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${dest} || true; \
|
||||
rm -f "$(DESTDIR)${man1dir}/$${dest}.gz"; \
|
||||
${GZIP_PROG} -9n "$(DESTDIR)${man1dir}/$${dest}" || true; \
|
||||
done
|
||||
|
||||
## Install those items from etc/ that need to end up elsewhere.
|
||||
|
@ -694,25 +700,25 @@ install-man:
|
|||
EMACS_ICON=emacs
|
||||
|
||||
install-etc:
|
||||
umask 022; ${MKDIR_P} $(DESTDIR)${desktopdir}
|
||||
umask 022; ${MKDIR_P} "$(DESTDIR)${desktopdir}"
|
||||
tmp=etc/emacs.tmpdesktop; rm -f $${tmp}; \
|
||||
emacs_name=`echo emacs | sed '$(TRANSFORM)'`; \
|
||||
sed -e "/^Exec=emacs/ s/emacs/$${emacs_name}/" \
|
||||
-e "/^Icon=emacs/ s/emacs/$${emacs_name}/" \
|
||||
${srcdir}/etc/emacs.desktop > $${tmp}; \
|
||||
${INSTALL_DATA} $${tmp} $(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop; \
|
||||
${INSTALL_DATA} $${tmp} "$(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop"; \
|
||||
rm -f $${tmp}
|
||||
thisdir=`/bin/pwd`; \
|
||||
cd ${iconsrcdir} || exit 1; umask 022 ; \
|
||||
for dir in */*/apps */*/mimetypes; do \
|
||||
[ -d $${dir} ] || continue ; \
|
||||
( cd $${thisdir}; ${MKDIR_P} $(DESTDIR)${icondir}/$${dir} ) ; \
|
||||
( cd "$${thisdir}"; ${MKDIR_P} "$(DESTDIR)${icondir}/$${dir}" ) ; \
|
||||
for icon in $${dir}/${EMACS_ICON}[.-]*; do \
|
||||
[ -r $${icon} ] || continue ; \
|
||||
ext=`echo "$${icon}" | sed -e 's|.*\.||'`; \
|
||||
dest=`echo "$${icon}" | sed -e 's|.*/||' -e "s|\.$${ext}$$||" -e 's/$(EMACS_ICON)/emacs/' -e '$(TRANSFORM)'`.$${ext} ; \
|
||||
( cd $${thisdir}; \
|
||||
${INSTALL_DATA} ${iconsrcdir}/$${icon} $(DESTDIR)${icondir}/$${dir}/$${dest} ) \
|
||||
( cd "$${thisdir}"; \
|
||||
${INSTALL_DATA} ${iconsrcdir}/$${icon} "$(DESTDIR)${icondir}/$${dir}/$${dest}" ) \
|
||||
|| exit 1; \
|
||||
done ; \
|
||||
done
|
||||
|
@ -728,30 +734,31 @@ install-strip:
|
|||
uninstall: uninstall-$(NTDIR) uninstall-doc
|
||||
cd lib-src && \
|
||||
$(MAKE) $(MFLAGS) uninstall \
|
||||
prefix=${prefix} exec_prefix=${exec_prefix} \
|
||||
bindir=${bindir} libexecdir=${libexecdir} archlibdir=${archlibdir}
|
||||
prefix="${prefix}" exec_prefix="${exec_prefix}" \
|
||||
bindir="${bindir}" libexecdir="${libexecdir}" \
|
||||
archlibdir="${archlibdir}"
|
||||
|
||||
-unset CDPATH; \
|
||||
for dir in $(DESTDIR)${lispdir} $(DESTDIR)${etcdir} ; do \
|
||||
if [ -d $${dir} ]; then \
|
||||
case `cd $${dir} ; /bin/pwd` in \
|
||||
`cd ${srcdir} ; /bin/pwd`* ) ;; \
|
||||
* ) rm -rf $${dir} ;; \
|
||||
for dir in "$(DESTDIR)${lispdir}" "$(DESTDIR)${etcdir}" ; do \
|
||||
if [ -d "$${dir}" ]; then \
|
||||
case `cd "$${dir}" ; /bin/pwd` in \
|
||||
"`cd ${srcdir} ; /bin/pwd`"* ) ;; \
|
||||
* ) rm -rf "$${dir}" ;; \
|
||||
esac ; \
|
||||
case $${dir} in \
|
||||
$(DESTDIR)${datadir}/emacs/${version}/* ) \
|
||||
rm -rf $(DESTDIR)${datadir}/emacs/${version} \
|
||||
case "$${dir}" in \
|
||||
"$(DESTDIR)${datadir}/emacs/${version}"/* ) \
|
||||
rm -rf "$(DESTDIR)${datadir}/emacs/${version}" \
|
||||
;; \
|
||||
esac ; \
|
||||
fi ; \
|
||||
done
|
||||
-rm -rf $(DESTDIR)${libexecdir}/emacs/${version}
|
||||
-rm -rf "$(DESTDIR)${libexecdir}/emacs/${version}"
|
||||
thisdir=`/bin/pwd`; \
|
||||
(info_misc=`cd doc/misc && $(QUIET_SUBMAKE) $(MAKE) -s echo-info`; \
|
||||
if cd $(DESTDIR)${infodir}; then \
|
||||
if cd "$(DESTDIR)${infodir}"; then \
|
||||
for elt in ${INFO_NONMISC} $${info_misc}; do \
|
||||
(cd $${thisdir}; \
|
||||
$(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
|
||||
(cd "$${thisdir}"; \
|
||||
$(INSTALL_INFO) --remove --info-dir="$(DESTDIR)${infodir}" "$(DESTDIR)${infodir}/$$elt"); \
|
||||
if [ -n "${GZIP_PROG}" ]; then \
|
||||
ext=.gz; else ext=; fi; \
|
||||
rm -f $$elt$$ext $$elt-[1-9]$$ext $$elt-[1-9][0-9]$$ext; \
|
||||
|
@ -761,18 +768,18 @@ uninstall: uninstall-$(NTDIR) uninstall-doc
|
|||
ext=.gz; else ext=; fi; \
|
||||
if cd ${mansrcdir}; then \
|
||||
for page in *.1; do \
|
||||
rm -f $(DESTDIR)${man1dir}/`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1$$ext; done; \
|
||||
rm -f "$(DESTDIR)${man1dir}"/`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1$$ext; done; \
|
||||
fi)
|
||||
(cd $(DESTDIR)${bindir} && rm -f $(EMACSFULL) $(EMACS) || true)
|
||||
(if cd $(DESTDIR)${icondir}; then \
|
||||
(cd "$(DESTDIR)${bindir}" && rm -f $(EMACSFULL) $(EMACS) || true)
|
||||
(if cd "$(DESTDIR)${icondir}"; then \
|
||||
rm -f hicolor/*x*/apps/${EMACS_NAME}.png \
|
||||
hicolor/scalable/apps/${EMACS_NAME}.svg \
|
||||
hicolor/scalable/mimetypes/`echo emacs-document | sed '$(TRANSFORM)'`.svg; \
|
||||
fi)
|
||||
-rm -f $(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop
|
||||
-rm -f "$(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop"
|
||||
for file in snake-scores tetris-scores; do \
|
||||
file=$(DESTDIR)${gamedir}/$${file}; \
|
||||
[ -s $${file} ] || rm -f $$file; \
|
||||
file="$(DESTDIR)${gamedir}/$${file}"; \
|
||||
[ -s "$${file}" ] || rm -f "$$file"; \
|
||||
done
|
||||
|
||||
### Windows-specific uninstall target for removing programs produced
|
||||
|
@ -781,10 +788,9 @@ uninstall-:
|
|||
uninstall-nt:
|
||||
cd $(NTDIR) && \
|
||||
$(MAKE) $(MFLAGS) uninstall \
|
||||
prefix=${prefix} exec_prefix=${exec_prefix} \
|
||||
bindir=${bindir} libexecdir=${libexecdir} archlibdir=${archlibdir}
|
||||
|
||||
FRC:
|
||||
prefix="${prefix}" exec_prefix="${exec_prefix}" \
|
||||
bindir="${bindir}" libexecdir="${libexecdir}" \
|
||||
archlibdir="${archlibdir}"
|
||||
|
||||
# ==================== Cleaning up and miscellanea ====================
|
||||
|
||||
|
@ -795,7 +801,7 @@ FRC:
|
|||
### normally don't want to recompile. For example, the `mostlyclean'
|
||||
### target for GCC does not delete `libgcc.a', because recompiling it
|
||||
### is rarely necessary and takes a lot of time.
|
||||
mostlyclean: FRC
|
||||
mostlyclean:
|
||||
cd src && $(MAKE) $(MFLAGS) mostlyclean
|
||||
cd oldXMenu && $(MAKE) $(MFLAGS) mostlyclean
|
||||
cd lwlib && $(MAKE) $(MFLAGS) mostlyclean
|
||||
|
@ -806,7 +812,6 @@ mostlyclean: FRC
|
|||
-cd doc/misc && $(MAKE) $(MFLAGS) mostlyclean
|
||||
-cd doc/lispref && $(MAKE) $(MFLAGS) mostlyclean
|
||||
-cd doc/lispintro && $(MAKE) $(MFLAGS) mostlyclean
|
||||
cd leim && $(MAKE) $(MFLAGS) mostlyclean
|
||||
|
||||
### `clean'
|
||||
### Delete all files from the current directory that are normally
|
||||
|
@ -816,7 +821,7 @@ mostlyclean: FRC
|
|||
### with them.
|
||||
###
|
||||
### Delete `.dvi' files here if they are not part of the distribution.
|
||||
clean: FRC
|
||||
clean:
|
||||
-rm -f etc/emacs.tmpdesktop
|
||||
cd src && $(MAKE) $(MFLAGS) clean
|
||||
cd oldXMenu && $(MAKE) $(MFLAGS) clean
|
||||
|
@ -828,7 +833,6 @@ clean: FRC
|
|||
-cd doc/misc && $(MAKE) $(MFLAGS) clean
|
||||
-cd doc/lispref && $(MAKE) $(MFLAGS) clean
|
||||
-cd doc/lispintro && $(MAKE) $(MFLAGS) clean
|
||||
cd leim && $(MAKE) $(MFLAGS) clean
|
||||
cd nextstep && $(MAKE) $(MFLAGS) clean
|
||||
|
||||
### `bootclean'
|
||||
|
@ -844,7 +848,7 @@ top_bootclean=\
|
|||
top_distclean=\
|
||||
${top_bootclean}; \
|
||||
rm -f config.status config.log~ Makefile stamp-h1 ${SUBDIR_MAKEFILES}
|
||||
distclean: FRC
|
||||
distclean:
|
||||
cd src && $(MAKE) $(MFLAGS) distclean
|
||||
cd oldXMenu && $(MAKE) $(MFLAGS) distclean
|
||||
cd lwlib && $(MAKE) $(MFLAGS) distclean
|
||||
|
@ -858,15 +862,15 @@ distclean: FRC
|
|||
cd leim && $(MAKE) $(MFLAGS) distclean
|
||||
cd lisp && $(MAKE) $(MFLAGS) distclean
|
||||
cd nextstep && $(MAKE) $(MFLAGS) distclean
|
||||
[ ! -d test/automated ] || { \
|
||||
cd test/automated && $(MAKE) $(MFLAGS) distclean; \
|
||||
}
|
||||
for dir in test/automated admin/grammars admin/unidata; do \
|
||||
[ ! -d $$dir ] || (cd $$dir && $(MAKE) $(MFLAGS) distclean); \
|
||||
done
|
||||
${top_distclean}
|
||||
|
||||
### `bootstrap-clean'
|
||||
### Delete everything that can be reconstructed by `make' and that
|
||||
### needs to be deleted in order to force a bootstrap from a clean state.
|
||||
bootstrap-clean: FRC
|
||||
bootstrap-clean:
|
||||
cd src && $(MAKE) $(MFLAGS) bootstrap-clean
|
||||
cd oldXMenu && $(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd lwlib && $(MAKE) $(MFLAGS) maintainer-clean
|
||||
|
@ -877,13 +881,14 @@ bootstrap-clean: FRC
|
|||
-cd doc/misc && $(MAKE) $(MFLAGS) maintainer-clean
|
||||
-cd doc/lispref && $(MAKE) $(MFLAGS) maintainer-clean
|
||||
-cd doc/lispintro && $(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd leim && $(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd leim && $(MAKE) $(MFLAGS) bootstrap-clean
|
||||
cd lisp && $(MAKE) $(MFLAGS) bootstrap-clean
|
||||
cd nextstep && $(MAKE) $(MFLAGS) maintainer-clean
|
||||
[ ! -d test/automated ] || { \
|
||||
cd test/automated && $(MAKE) $(MFLAGS) bootstrap-clean; \
|
||||
}
|
||||
for dir in test/automated admin/grammars admin/unidata; do \
|
||||
[ ! -d $$dir ] || (cd $$dir && $(MAKE) $(MFLAGS) bootstrap-clean); \
|
||||
done
|
||||
[ ! -f config.log ] || mv -f config.log config.log~
|
||||
rm -rf ${srcdir}/info
|
||||
${top_bootclean}
|
||||
|
||||
### `maintainer-clean'
|
||||
|
@ -900,12 +905,13 @@ bootstrap-clean: FRC
|
|||
top_maintainer_clean=\
|
||||
${top_distclean}; \
|
||||
rm -fr autom4te.cache
|
||||
maintainer-clean: bootstrap-clean FRC
|
||||
maintainer-clean: bootstrap-clean
|
||||
cd src && $(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd leim && $(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd lisp && $(MAKE) $(MFLAGS) maintainer-clean
|
||||
[ ! -d test/automated ] || { \
|
||||
cd test/automated && $(MAKE) $(MFLAGS) maintainer-clean; \
|
||||
}
|
||||
for dir in test/automated admin/grammars admin/unidata; do \
|
||||
[ ! -d $$dir ] || (cd $$dir && $(MAKE) $(MFLAGS) maintainer-clean); \
|
||||
done
|
||||
${top_maintainer_clean}
|
||||
|
||||
### This doesn't actually appear in the coding standards, but Karl
|
||||
|
@ -924,7 +930,7 @@ extraclean:
|
|||
TAGS tags: lib lib-src src
|
||||
cd src; $(MAKE) $(MFLAGS) tags
|
||||
|
||||
check:
|
||||
check: all
|
||||
@if test ! -d test/automated; then \
|
||||
echo "You do not seem to have the test/ directory."; \
|
||||
echo "Maybe you are using a release tarfile, rather than a repository checkout."; \
|
||||
|
@ -946,7 +952,7 @@ $(DOCS):
|
|||
t=$@; IFS=-; set $$t; IFS=; cd doc/$$1 && $(MAKE) $(MFLAGS) $$2
|
||||
|
||||
.PHONY: $(DOCS) docs pdf ps
|
||||
.PHONY: info dvi dist check html info-real force-info check-info-dir
|
||||
.PHONY: info dvi dist check html info-real info-dir check-info
|
||||
|
||||
## TODO add etc/refcards.
|
||||
docs: $(DOCS)
|
||||
|
@ -956,6 +962,28 @@ info-real: $(INFOS)
|
|||
pdf: $(PDFS)
|
||||
ps: $(PSS)
|
||||
|
||||
info-dir: ${srcdir}/info/dir
|
||||
|
||||
## Not strictly necessary, but speeds things up a bit by stopping
|
||||
## the info-dir rule from running when not needed.
|
||||
## Hopefully doc/misc/*.texi is not too long for some systems?
|
||||
info_dir_deps = ${srcdir}/build-aux/dir_top \
|
||||
${srcdir}/doc/emacs/emacs.texi \
|
||||
${srcdir}/doc/lispintro/emacs-lisp-intro.texi \
|
||||
${srcdir}/doc/lispref/elisp.texi ${srcdir}/doc/misc/*.texi
|
||||
|
||||
## It would be much simpler if info/dir was only created in the
|
||||
## installation location by the install-info rule, but we also
|
||||
## need one in the source directory for people running uninstalled.
|
||||
## FIXME it would be faster to use the install-info program if we have it,
|
||||
## but then we would need to depend on info-real, which would
|
||||
## slow down parallelization.
|
||||
${srcdir}/info/dir: ${info_dir_deps}
|
||||
tempfile=info-dir.$$$$; \
|
||||
rm -f $${tempfile}; \
|
||||
thisdir=`pwd`; \
|
||||
(cd ${srcdir} && ./build-aux/make-info-dir $${thisdir}/$${tempfile}); \
|
||||
${srcdir}/build-aux/move-if-change $${tempfile} ${srcdir}/info/dir
|
||||
|
||||
INSTALL_DVI = install-emacs-dvi install-lispref-dvi \
|
||||
install-lispintro-dvi install-misc-dvi
|
||||
|
@ -1005,7 +1033,6 @@ uninstall-pdf: $(UNINSTALL_PDF)
|
|||
uninstall-ps: $(UNINSTALL_PS)
|
||||
|
||||
|
||||
force-info:
|
||||
# Note that man/Makefile knows how to put the info files in $(srcdir),
|
||||
# so we can do ok running make in the build dir.
|
||||
# This used to have a clause that exited with an error if MAKEINFO = no.
|
||||
|
@ -1017,32 +1044,35 @@ force-info:
|
|||
# would require changing every rule in doc/ that builds an info file,
|
||||
# and it's not worth it. This case is only relevant if you download a
|
||||
# release, then change the .texi files.
|
||||
info: force-info
|
||||
info:
|
||||
@if test "$(HAVE_MAKEINFO)" = "no"; then \
|
||||
echo "Configured --without-makeinfo, not building manuals" ; \
|
||||
else \
|
||||
$(MAKE) $(MFLAGS) info-real ; \
|
||||
$(MAKE) $(MFLAGS) info-real info-dir; \
|
||||
fi
|
||||
|
||||
# The info/dir file must be updated by hand when new manuals are added.
|
||||
# Cannot add an info/dir entry for efaq-w32 since it is not installed
|
||||
# on all platforms.
|
||||
check-info-dir: info
|
||||
## build-aux/make-info-dir expects only certain dircategories.
|
||||
check-info: info
|
||||
cd info ; \
|
||||
missing= ; \
|
||||
bad= ; \
|
||||
for file in *; do \
|
||||
test -f "$${file}" || continue ; \
|
||||
case $${file} in \
|
||||
*-[0-9]*|COPYING|dir|efaq-w32*) continue ;; \
|
||||
*-[0-9]*|COPYING|dir) continue ;; \
|
||||
esac ; \
|
||||
file=`echo $${file} | sed 's/\.info//'` ; \
|
||||
grep -q -F ": ($${file})." dir || missing="$${missing} $${file}" ; \
|
||||
cat=`sed -n 's/^INFO-DIR-SECTION //p' $${file}`; \
|
||||
case $${cat} in \
|
||||
"Texinfo documentation system" | "Emacs"| "Emacs lisp" | \
|
||||
"Emacs editing modes" | "Emacs network features" | \
|
||||
"Emacs misc features" | "Emacs lisp libraries" ) : ;; \
|
||||
*) bad="$${bad} $${file}" ;; \
|
||||
esac; \
|
||||
done ; \
|
||||
if test -n "$${missing}"; then \
|
||||
echo "Missing info/dir entries: $${missing}" ; \
|
||||
if test -n "$${bad}"; then \
|
||||
echo "Unexpected dircategory in: $${bad}" ; \
|
||||
exit 1 ; \
|
||||
fi ; \
|
||||
echo "info/dir is OK"
|
||||
echo "info files are OK"
|
||||
|
||||
#### Bootstrapping.
|
||||
|
||||
|
@ -1053,13 +1083,13 @@ check-info-dir: info
|
|||
|
||||
# Bootstrapping does the following:
|
||||
# * Remove files to start from a bootstrap-clean slate.
|
||||
# * Run autogen.sh, falling back on copy_autogen if autogen.sh fails.
|
||||
# * Run autogen.sh.
|
||||
# * Rebuild Makefile, to update the build procedure itself.
|
||||
# * Do the actual build.
|
||||
bootstrap: bootstrap-clean FRC
|
||||
cd $(srcdir) && { ./autogen.sh || autogen/copy_autogen; }
|
||||
bootstrap: bootstrap-clean
|
||||
cd $(srcdir) && ./autogen.sh
|
||||
$(MAKE) $(MFLAGS) MAKEFILE_NAME=force-Makefile force-Makefile
|
||||
$(MAKE) $(MFLAGS) info all
|
||||
$(MAKE) $(MFLAGS) all
|
||||
|
||||
.PHONY: check-declare
|
||||
|
||||
|
@ -1068,5 +1098,4 @@ check-declare:
|
|||
echo "You must build Emacs to use this command"; \
|
||||
exit 1; \
|
||||
fi
|
||||
cd leim && $(MAKE) $(MFLAGS) $@
|
||||
cd lisp && $(MAKE) $(MFLAGS) $@
|
||||
|
|
16
README
16
README
|
@ -1,8 +1,8 @@
|
|||
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.
|
||||
|
||||
|
||||
This directory tree holds version 24.3.50 of GNU Emacs, the extensible,
|
||||
This directory tree holds version 24.4.50 of GNU Emacs, the extensible,
|
||||
customizable, self-documenting real-time display editor.
|
||||
|
||||
The file INSTALL in this directory says how to build and install GNU
|
||||
|
@ -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.
|
||||
|
|
|
@ -86,8 +86,6 @@ BROKEN_FIONREAD
|
|||
BROKEN_GET_CURRENT_DIR_NAME
|
||||
BROKEN_NON_BLOCKING_CONNECT
|
||||
BROKEN_PTY_READ_AFTER_EAGAIN
|
||||
CLASH_DETECTION
|
||||
DATA_SEG_BITS
|
||||
DEFAULT_SOUND_DEVICE
|
||||
DEVICE_SEP
|
||||
DIRECTORY_SEP
|
||||
|
@ -201,17 +199,13 @@ HAVE_KRB5_H
|
|||
HAVE_KRB_H
|
||||
HAVE_LANGINFO_CODESET
|
||||
HAVE_LIBDGC
|
||||
HAVE_LIBDNET
|
||||
HAVE_LIBKSTAT
|
||||
HAVE_LIBLOCKFILE
|
||||
HAVE_LIBM
|
||||
HAVE_LIBMAIL
|
||||
HAVE_LIBOTF
|
||||
HAVE_LIBPERFSTAT
|
||||
HAVE_LIBPNG_PNG_H
|
||||
HAVE_LIBPTHREADS
|
||||
HAVE_LIBSELINUX
|
||||
HAVE_LIBXEXT
|
||||
HAVE_LIBXML2
|
||||
HAVE_LIBXMU
|
||||
HAVE_LOCALTIME_R
|
||||
|
|
311
admin/ChangeLog
311
admin/ChangeLog
|
@ -1,3 +1,293 @@
|
|||
2014-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* mac/uvs.el: New file from Mac port. Generates src/macuvs.h.
|
||||
|
||||
2014-05-17 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Assume C99 or later (Bug#17487).
|
||||
* merge-gnulib (GNULIB_MODULES): Remove stdarg, stdbool.
|
||||
(GNULIB_TOOL_FLAGS): Avoid stdarg, stdbool.
|
||||
|
||||
2014-05-16 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Don't require pkg-config when building from repository.
|
||||
* merge-pkg-config: New script.
|
||||
* notes/copyright: Update for m4/*.m4, in particular m4/pkg.m4.
|
||||
|
||||
2014-05-13 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* merge-gnulib: Defer to autogen.sh for ACLOCAL_PATH computation.
|
||||
|
||||
2014-05-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* find-gc.el: Move here from ../lisp/emacs-lisp.
|
||||
|
||||
* admin.el (set-version-in-file): Don't set identical version.
|
||||
(set-version): Provide default version number.
|
||||
(set-version, set-copyright): Give start/end messages.
|
||||
|
||||
2014-04-18 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* notes/bzr: Update instructions for merging from gnulib.
|
||||
Remove obsolete note about tramp.el and tramp-sh.el.
|
||||
Change "emacs-23" to "emacs-24".
|
||||
|
||||
2014-04-11 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* grammars/Makefile.in (EMACSDATA, EMACSDOC, EMACSPATH): Unexport.
|
||||
|
||||
2014-03-22 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* quick-install-emacs (AVOID): Remove testfile and test-distrib.
|
||||
|
||||
2014-03-21 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* update_autogen: Auto-detect VCS in use.
|
||||
(vcs): New variable.
|
||||
(status, commit, main): Handle git.
|
||||
|
||||
2014-03-07 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Fix oversight preventing lib/sys/types.h from being generated.
|
||||
* merge-gnulib (GNULIB_TOOL_FLAGS): Don't avoid sys_types.
|
||||
|
||||
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,
|
||||
|
@ -128,7 +418,7 @@
|
|||
|
||||
2013-05-07 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
|
||||
Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
|
||||
* merge-gnulib (GNULIB_MODULES): Add qacl.
|
||||
(GNULIB_TOOL_FLAGS): Do not avoid errno.
|
||||
|
||||
|
@ -343,10 +633,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>
|
||||
|
||||
|
@ -805,6 +1095,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.
|
||||
|
@ -812,8 +1106,9 @@
|
|||
2011-02-16 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Remove no-longer needed getloadavg symbols.
|
||||
* CPP-DEFINES (LOAD_AVE_CVT, LOAD_AVE_TYPE, FSCALE, KERNEL_FILE):
|
||||
* 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>
|
||||
|
||||
|
@ -1336,7 +1631,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.
|
||||
|
||||
|
@ -1762,8 +2057,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.
|
||||
|
@ -1883,7 +2176,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.
|
||||
|
||||
|
@ -1891,7 +2184,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,6 +2,8 @@ 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[^,]*[:.()]' {} +
|
||||
|
@ -68,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.
|
||||
|
@ -138,7 +139,7 @@ SECTION READERS
|
|||
----------------------------------
|
||||
TUTORIAL cyd
|
||||
TUTORIAL.bg ogi
|
||||
TUTORIAL.cn
|
||||
TUTORIAL.cn xfq
|
||||
TUTORIAL.cs
|
||||
TUTORIAL.de wl
|
||||
TUTORIAL.eo
|
||||
|
@ -146,7 +147,7 @@ TUTORIAL.es
|
|||
TUTORIAL.fr
|
||||
TUTORIAL.he eliz
|
||||
TUTORIAL.it
|
||||
TUTORIAL.ja
|
||||
TUTORIAL.ja
|
||||
TUTORIAL.ko
|
||||
TUTORIAL.nl Pieter Schoenmakers
|
||||
TUTORIAL.pl
|
||||
|
@ -161,111 +162,110 @@ TUTORIAL.zh
|
|||
|
||||
** Check the manual.
|
||||
|
||||
abbrevs.texi cyd
|
||||
ack.texi rgm
|
||||
anti.texi cyd
|
||||
arevert-xtra.texi cyd
|
||||
basic.texi cyd
|
||||
buffers.texi cyd
|
||||
building.texi cyd
|
||||
calendar.texi rgm
|
||||
cal-xtra.texi rgm
|
||||
cmdargs.texi cyd
|
||||
commands.texi cyd
|
||||
custom.texi cyd
|
||||
dired.texi cyd
|
||||
dired-xtra.texi rgm
|
||||
display.texi cyd
|
||||
emacs.texi rgm
|
||||
emacs-xtra.texi rgm
|
||||
emerge-xtra.texi rgm
|
||||
entering.texi cyd
|
||||
files.texi cyd
|
||||
fixit.texi cyd
|
||||
fortran-xtra.texi rgm
|
||||
frames.texi cyd
|
||||
glossary.texi rgm
|
||||
help.texi cyd
|
||||
indent.texi cyd
|
||||
killing.texi cyd
|
||||
kmacro.texi cyd
|
||||
macos.texi rgm (can't actually test any of it though)
|
||||
maintaining.texi cyd
|
||||
mark.texi cyd
|
||||
mini.texi rgm
|
||||
misc.texi cyd
|
||||
modes.texi cyd
|
||||
msdog.texi rgm (can't actually test any of it though)
|
||||
msdog-xtra.texi rgm (can't actually test any of it though)
|
||||
mule.texi rgm (not 100% sure about "Fontsets")
|
||||
m-x.texi cyd
|
||||
package.texi cyd
|
||||
picture-xtra.texi rgm
|
||||
programs.texi cyd
|
||||
regs.texi cyd
|
||||
rmail.texi rgm
|
||||
screen.texi cyd
|
||||
search.texi cyd
|
||||
sending.texi cyd
|
||||
text.texi cyd
|
||||
trouble.texi cyd
|
||||
vc-xtra.texi cyd
|
||||
vc1-xtra.texi cyd
|
||||
windows.texi cyd
|
||||
xresources.texi cyd
|
||||
abbrevs.texi
|
||||
ack.texi
|
||||
anti.texi
|
||||
arevert-xtra.texi
|
||||
basic.texi
|
||||
buffers.texi
|
||||
building.texi
|
||||
calendar.texi
|
||||
cal-xtra.texi
|
||||
cmdargs.texi
|
||||
commands.texi
|
||||
custom.texi
|
||||
dired.texi
|
||||
dired-xtra.texi
|
||||
display.texi
|
||||
emacs.texi
|
||||
emacs-xtra.texi
|
||||
emerge-xtra.texi
|
||||
entering.texi
|
||||
files.texi
|
||||
fixit.texi
|
||||
fortran-xtra.texi
|
||||
frames.texi
|
||||
glossary.texi
|
||||
help.texi
|
||||
indent.texi
|
||||
killing.texi
|
||||
kmacro.texi
|
||||
macos.texi
|
||||
maintaining.texi
|
||||
mark.texi
|
||||
mini.texi
|
||||
misc.texi
|
||||
modes.texi
|
||||
msdog.texi
|
||||
msdog-xtra.texi
|
||||
mule.texi
|
||||
m-x.texi
|
||||
package.texi
|
||||
picture-xtra.texi
|
||||
programs.texi
|
||||
regs.texi
|
||||
rmail.texi
|
||||
screen.texi
|
||||
search.texi
|
||||
sending.texi
|
||||
text.texi
|
||||
trouble.texi
|
||||
vc-xtra.texi
|
||||
vc1-xtra.texi
|
||||
windows.texi
|
||||
xresources.texi
|
||||
|
||||
** Check the Lisp manual.
|
||||
|
||||
abbrevs.texi rgm
|
||||
advice.texi cyd
|
||||
anti.texi rgm
|
||||
back.texi rgm
|
||||
backups.texi cyd
|
||||
buffers.texi cyd
|
||||
commands.texi cyd
|
||||
compile.texi cyd
|
||||
control.texi cyd
|
||||
customize.texi cyd
|
||||
debugging.texi cyd
|
||||
display.texi cyd
|
||||
edebug.texi rgm
|
||||
abbrevs.texi
|
||||
anti.texi
|
||||
back.texi
|
||||
backups.texi
|
||||
buffers.texi
|
||||
commands.texi
|
||||
compile.texi
|
||||
control.texi
|
||||
customize.texi
|
||||
debugging.texi
|
||||
display.texi
|
||||
edebug.texi
|
||||
elisp.texi
|
||||
errors.texi rgm
|
||||
eval.texi cyd
|
||||
files.texi cyd
|
||||
frames.texi cyd
|
||||
functions.texi cyd
|
||||
hash.texi cyd
|
||||
help.texi cyd
|
||||
hooks.texi rgm
|
||||
errors.texi
|
||||
eval.texi
|
||||
files.texi
|
||||
frames.texi
|
||||
functions.texi
|
||||
hash.texi
|
||||
help.texi
|
||||
hooks.texi
|
||||
index.texi
|
||||
internals.texi rgm cyd
|
||||
intro.texi cyd
|
||||
keymaps.texi cyd
|
||||
lists.texi cyd
|
||||
loading.texi cyd
|
||||
macros.texi cyd
|
||||
maps.texi rgm
|
||||
markers.texi rgm
|
||||
minibuf.texi rgm
|
||||
modes.texi cyd
|
||||
nonascii.texi cyd
|
||||
numbers.texi cyd
|
||||
objects.texi cyd
|
||||
os.texi cyd
|
||||
package.texi rgm
|
||||
positions.texi cyd
|
||||
processes.texi rgm
|
||||
searching.texi rgm
|
||||
sequences.texi cyd
|
||||
streams.texi cyd
|
||||
strings.texi cyd
|
||||
symbols.texi cyd
|
||||
syntax.texi cyd
|
||||
text.texi cyd
|
||||
tips.texi rgm
|
||||
variables.texi cyd
|
||||
windows.texi rgm (skimmed)
|
||||
internals.texi
|
||||
intro.texi
|
||||
keymaps.texi
|
||||
lists.texi
|
||||
loading.texi
|
||||
macros.texi
|
||||
maps.texi
|
||||
markers.texi
|
||||
minibuf.texi
|
||||
modes.texi
|
||||
nonascii.texi
|
||||
numbers.texi Paul Eggert (24.4)
|
||||
objects.texi
|
||||
os.texi
|
||||
package.texi
|
||||
positions.texi
|
||||
processes.texi
|
||||
searching.texi
|
||||
sequences.texi
|
||||
streams.texi
|
||||
strings.texi
|
||||
symbols.texi
|
||||
syntax.texi
|
||||
text.texi
|
||||
tips.texi
|
||||
variables.texi
|
||||
windows.texi
|
||||
|
||||
|
||||
Local variables:
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
||||
|
|
373
admin/admin.el
373
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,7 +21,7 @@
|
|||
|
||||
;; 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:
|
||||
|
@ -46,7 +46,7 @@ Optional argument DATE is the release date, default today."
|
|||
(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))))
|
||||
|
@ -62,18 +62,31 @@ Optional argument DATE is the release date, default today."
|
|||
(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))
|
||||
(replace-match (format "%s" version) nil nil nil 1))
|
||||
(setq version (format "%s" version))
|
||||
(unless (re-search-forward rx nil :noerror)
|
||||
(user-error "Version not found in %s" file))
|
||||
(if (not (equal version (match-string 1)))
|
||||
(replace-match version nil nil nil 1)
|
||||
(kill-buffer)
|
||||
(message "No need to update `%s'" file)))
|
||||
|
||||
(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: ")
|
||||
(interactive (list
|
||||
(read-directory-name "Emacs root directory: " source-directory)
|
||||
(read-string "Version number: "
|
||||
(replace-regexp-in-string "\\.[0-9]+\\'" ""
|
||||
emacs-version))))
|
||||
(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))
|
||||
(message "Setting version numbers...")
|
||||
;; 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."))))))
|
||||
|
@ -104,7 +117,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) ","
|
||||
|
@ -153,8 +166,8 @@ Root must be the root of an Emacs source tree."
|
|||
{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")
|
||||
(set-version-in-file root "etc/refcards/emacsver.tex" version
|
||||
"\\\\def\\\\versionemacs\
|
||||
{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs"))))
|
||||
|
||||
{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")))
|
||||
(message "Setting version numbers...done"))
|
||||
|
||||
;; Note this makes some assumptions about form of short copyright.
|
||||
(defun set-copyright (root copyright)
|
||||
|
@ -167,7 +180,8 @@ 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))
|
||||
(message "Setting copyrights...")
|
||||
(set-version-in-file root "configure.ac" copyright
|
||||
(rx (and bol "copyright" (0+ (not (in ?\")))
|
||||
?\" (submatch (1+ (not (in ?\")))) ?\")))
|
||||
|
@ -189,12 +203,14 @@ Root must be the root of an Emacs source tree."
|
|||
{\\([0-9]\\{4\\}\\)}.+%.+copyright year")
|
||||
(set-version-in-file root "etc/refcards/emacsver.tex" copyright
|
||||
"\\\\def\\\\year\
|
||||
{\\([0-9]\\{4\\}\\)}.+%.+copyright year")))
|
||||
{\\([0-9]\\{4\\}\\)}.+%.+copyright year"))
|
||||
(message "Setting copyrights...done"))
|
||||
|
||||
;;; Various bits of magic for generating the web manuals
|
||||
|
||||
(defun manual-misc-manuals (root)
|
||||
"Return doc/misc manuals as list of strings."
|
||||
"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
|
||||
|
@ -211,8 +227,10 @@ Root must be the root of an Emacs source tree."
|
|||
(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: "
|
||||
|
@ -319,6 +337,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)))
|
||||
|
||||
|
@ -328,7 +347,7 @@ 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"
|
||||
|
@ -359,13 +378,14 @@ 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-pdf (texi-file dest)
|
||||
"Run texi2pdf on TEXI-FILE, emitting pdf output to 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
|
||||
|
@ -377,6 +397,7 @@ the @import directive."
|
|||
(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)
|
||||
|
@ -386,119 +407,215 @@ the @import directive."
|
|||
|
||||
(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"
|
||||
(file-name-nondirectory buffer-file-name)))
|
||||
(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
|
||||
|
@ -510,14 +627,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\\)")))
|
||||
|
@ -526,13 +643,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.
|
||||
|
@ -568,7 +691,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))
|
||||
|
@ -584,34 +707,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
|
||||
|
@ -636,7 +761,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
|
||||
|
|
|
@ -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>
|
||||
|
@ -187,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))
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
;;; find-gc.el --- detect functions that call the garbage collector
|
||||
|
||||
;; Copyright (C) 1992, 2001-2013 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1992, 2001-2014 Free Software Foundation, Inc.
|
||||
|
||||
;; Maintainer: FSF
|
||||
;; Maintainer: emacs-devel@gnu.org
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
@ -23,14 +23,15 @@
|
|||
|
||||
;; Produce in find-gc-unsafe-list the set of all functions that may invoke GC.
|
||||
;; This expects the Emacs sources to live in find-gc-source-directory.
|
||||
;; It creates a temporary working directory /tmp/esrc.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defvar find-gc-unsafe-list nil
|
||||
"The list of unsafe functions is placed here by `find-gc-unsafe'.")
|
||||
|
||||
(defvar find-gc-source-directory)
|
||||
(defvar find-gc-source-directory
|
||||
(file-name-as-directory (expand-file-name "src" source-directory))
|
||||
"Directory containing Emacs C sources.")
|
||||
|
||||
(defvar find-gc-subrs-callers nil
|
||||
"Alist of users of subrs, from GC testing.
|
||||
|
@ -59,22 +60,21 @@ Each entry has the form (FUNCTION . FUNCTIONS-IT-CALLS).")
|
|||
"indent.c" "search.c" "regex.c" "undo.c"
|
||||
"alloc.c" "data.c" "doc.c" "editfns.c"
|
||||
"callint.c" "eval.c" "fns.c" "print.c" "lread.c"
|
||||
"abbrev.c" "syntax.c" "unexcoff.c"
|
||||
"syntax.c" "unexcoff.c"
|
||||
"bytecode.c" "process.c" "callproc.c" "doprnt.c"
|
||||
"x11term.c" "x11fns.c"))
|
||||
"xterm.c" "xfns.c"))
|
||||
|
||||
|
||||
(defun find-gc-unsafe ()
|
||||
"Return a list of unsafe functions--that is, which can call GC.
|
||||
Also store it in `find-gc-unsafe'."
|
||||
Also store it in `find-gc-unsafe-list'."
|
||||
(trace-call-tree nil)
|
||||
(trace-use-tree)
|
||||
(find-unsafe-funcs 'Fgarbage_collect)
|
||||
(setq find-gc-unsafe-list
|
||||
(sort find-gc-unsafe-list
|
||||
(function (lambda (x y)
|
||||
(string-lessp (car x) (car y))))))
|
||||
)
|
||||
(string-lessp (car x) (car y)))))))
|
||||
|
||||
;;; This does a depth-first search to find all functions that can
|
||||
;;; ultimately call the function "target". The result is an a-list
|
||||
|
@ -84,8 +84,7 @@ Also store it in `find-gc-unsafe'."
|
|||
|
||||
(defun find-unsafe-funcs (target)
|
||||
(setq find-gc-unsafe-list (list (list target)))
|
||||
(trace-unsafe target)
|
||||
)
|
||||
(trace-unsafe target))
|
||||
|
||||
(defun trace-unsafe (func)
|
||||
(let ((used (assq func find-gc-subrs-callers)))
|
||||
|
@ -96,53 +95,43 @@ Also store it in `find-gc-unsafe'."
|
|||
(memq (car used) find-gc-noreturn-list)
|
||||
(progn
|
||||
(push (cons (car used) func) find-gc-unsafe-list)
|
||||
(trace-unsafe (car used))))))
|
||||
)
|
||||
(trace-unsafe (car used)))))))
|
||||
|
||||
|
||||
|
||||
|
||||
(defun trace-call-tree (&optional already-setup)
|
||||
(defun trace-call-tree (&optional ignored)
|
||||
(message "Setting up directories...")
|
||||
(or already-setup
|
||||
(progn
|
||||
;; Gee, wouldn't a built-in "system" function be handy here.
|
||||
(call-process "csh" nil nil nil "-c" "rm -rf /tmp/esrc")
|
||||
(call-process "csh" nil nil nil "-c" "mkdir /tmp/esrc")
|
||||
(call-process "csh" nil nil nil "-c"
|
||||
(format "ln -s %s/*.[ch] /tmp/esrc"
|
||||
find-gc-source-directory))))
|
||||
(with-current-buffer (get-buffer-create "*Trace Call Tree*")
|
||||
(setq find-gc-subrs-called nil)
|
||||
(let ((case-fold-search nil)
|
||||
(files find-gc-source-files)
|
||||
name entry)
|
||||
(while files
|
||||
(message "Compiling %s..." (car files))
|
||||
(call-process "csh" nil nil nil "-c"
|
||||
(format "gcc -dr -c /tmp/esrc/%s -o /dev/null"
|
||||
(car files)))
|
||||
(erase-buffer)
|
||||
(insert-file-contents (concat "/tmp/esrc/" (car files) ".rtl"))
|
||||
(while (re-search-forward ";; Function \\|(call_insn " nil t)
|
||||
(if (= (char-after (- (point) 3)) ?o)
|
||||
(progn
|
||||
(looking-at "[a-zA-Z0-9_]+")
|
||||
(setq name (intern (buffer-substring (match-beginning 0)
|
||||
(match-end 0))))
|
||||
(message "%s : %s" (car files) name)
|
||||
(setq entry (list name)
|
||||
find-gc-subrs-called (cons entry find-gc-subrs-called)))
|
||||
(if (looking-at ".*\n?.*\"\\([A-Za-z0-9_]+\\)\"")
|
||||
(setq find-gc-subrs-called nil)
|
||||
(let ((case-fold-search nil)
|
||||
(default-directory find-gc-source-directory)
|
||||
(files find-gc-source-files)
|
||||
name entry rtlfile)
|
||||
(dolist (file files)
|
||||
(message "Compiling %s..." file)
|
||||
(call-process "gcc" nil nil nil "-I" "." "-I" "../lib"
|
||||
"-fdump-rtl-expand" "-o" null-device "-c" file)
|
||||
(setq rtlfile
|
||||
(file-expand-wildcards (format "%s.*.expand" file) t))
|
||||
(if (/= 1 (length rtlfile))
|
||||
(message "Error compiling `%s'?" file)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents (setq rtlfile (car rtlfile)))
|
||||
(delete-file rtlfile)
|
||||
(while (re-search-forward ";; Function \\|(call_insn " nil t)
|
||||
(if (= (char-after (- (point) 3)) ?o)
|
||||
(progn
|
||||
(setq name (intern (buffer-substring (match-beginning 1)
|
||||
(match-end 1))))
|
||||
(or (memq name (cdr entry))
|
||||
(setcdr entry (cons name (cdr entry))))))))
|
||||
(delete-file (concat "/tmp/esrc/" (car files) ".rtl"))
|
||||
(setq files (cdr files)))))
|
||||
)
|
||||
|
||||
(looking-at "[a-zA-Z0-9_]+")
|
||||
(setq name (intern (match-string 0)))
|
||||
(message "%s : %s" (car files) name)
|
||||
(setq entry (list name)
|
||||
find-gc-subrs-called
|
||||
(cons entry find-gc-subrs-called)))
|
||||
(if (looking-at ".*\n?.*\"\\([A-Za-z0-9_]+\\)\"")
|
||||
(progn
|
||||
(setq name (intern (match-string 1)))
|
||||
(or (memq name (cdr entry))
|
||||
(setcdr entry (cons name (cdr entry)))))))))))))
|
||||
|
||||
(defun trace-use-tree ()
|
||||
(setq find-gc-subrs-callers (mapcar 'list (mapcar 'car find-gc-subrs-called)))
|
||||
|
@ -153,8 +142,7 @@ Also store it in `find-gc-unsafe'."
|
|||
(while (setq p2 (cdr p2))
|
||||
(if (setq found (assq (car p2) find-gc-subrs-callers))
|
||||
(setcdr found (cons (car (car ptr)) (cdr found)))))
|
||||
(setq ptr (cdr ptr))))
|
||||
)
|
||||
(setq ptr (cdr ptr)))))
|
||||
|
||||
(provide 'find-gc)
|
||||
|
116
admin/grammars/Makefile.in
Normal file
116
admin/grammars/Makefile.in
Normal file
|
@ -0,0 +1,116 @@
|
|||
### @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@
|
||||
|
||||
# Prevent any settings in the user environment causing problems.
|
||||
unexport EMACSDATA EMACSDOC EMACSPATH
|
||||
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
|
213
admin/mac/uvs.el
Normal file
213
admin/mac/uvs.el
Normal file
|
@ -0,0 +1,213 @@
|
|||
;;; uvs.el --- utility for UVS (format 14) cmap subtables in OpenType fonts.
|
||||
|
||||
;; Copyright (C) 2014 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
;; 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:
|
||||
|
||||
;; To extract a C array definition of a UVS table for the Adobe-Japan1
|
||||
;; character collection from an IVD Sequences file, execute
|
||||
;; $ emacs -batch -l uvs.el \
|
||||
;; --eval '(uvs-print-table-ivd "IVD_Sequences.txt" "Adobe-Japan1")' \
|
||||
;; > uvs.h
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defun uvs-fields-total-size (fields)
|
||||
(apply '+ (mapcar (lambda (field) (get field 'uvs-field-size)) fields)))
|
||||
|
||||
;;; Fields in Format 14 header.
|
||||
(defconst uvs-format-14-header-fields
|
||||
'(format length num-var-selector-records))
|
||||
(put 'format 'uvs-field-size 2)
|
||||
(put 'length 'uvs-field-size 4)
|
||||
(put 'num-var-selector-records 'uvs-field-size 4)
|
||||
(defconst uvs-format-14-header-size
|
||||
(uvs-fields-total-size uvs-format-14-header-fields))
|
||||
|
||||
;;; Fields in Variation Selector Record.
|
||||
(defconst uvs-variation-selector-record-fields
|
||||
'(var-selector default-uvs-offset non-default-uvs-offset))
|
||||
(put 'var-selector 'uvs-field-size 3)
|
||||
(put 'default-uvs-offset 'uvs-field-size 4)
|
||||
(put 'non-default-uvs-offset 'uvs-field-size 4)
|
||||
(defconst uvs-variation-selector-record-size
|
||||
(uvs-fields-total-size uvs-variation-selector-record-fields))
|
||||
|
||||
;;; Fields in Non-Default UVS Table.
|
||||
(defconst uvs-non-default-uvs-table-header-fields '(num-uvs-mappings))
|
||||
(put 'num-uvs-mappings 'uvs-field-size 4)
|
||||
(defconst uvs-non-default-uvs-table-header-size
|
||||
(uvs-fields-total-size uvs-non-default-uvs-table-header-fields))
|
||||
|
||||
;;; Fields in UVS Mapping.
|
||||
(defconst uvs-uvs-mapping-fields '(unicode-value glyph-id))
|
||||
(put 'unicode-value 'uvs-field-size 3)
|
||||
(put 'glyph-id 'uvs-field-size 2)
|
||||
(defconst uvs-uvs-mapping-size
|
||||
(uvs-fields-total-size uvs-uvs-mapping-fields))
|
||||
|
||||
(defun uvs-alist-from-ivd (collection-id sequence-id-to-glyph-function)
|
||||
"Create UVS alist from IVD Sequences and COLLECTION-ID.
|
||||
The IVD (Ideographic Variation Database) Sequences are obtained
|
||||
from the contents of the current buffer, and should be in the
|
||||
form of IVD_Sequences.txt specified in Unicode Technical Standard
|
||||
#37. COLLECTION-ID is a string specifying the identifier of the
|
||||
collection to extract (e.g., \"Adobe-Japan1\").
|
||||
SEQUENCE-ID-TO-GLYPH-FUNC is a function to convert an identifier
|
||||
string of the sequence to a glyph number. UVS alist is of the
|
||||
following form:
|
||||
((SELECTOR1 . ((BASE11 . GLYPH11) (BASE12 . GLYPH12) ...))
|
||||
(SELECTOR2 . ((BASE21 . GLYPH21) (BASE22 . GLYPH22) ...)) ...),
|
||||
where selectors and bases are sorted in ascending order."
|
||||
(let (uvs-alist)
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward
|
||||
(concat "^[[:blank:]]*"
|
||||
"\\([[:xdigit:]]+\\) \\([[:xdigit:]]+\\)"
|
||||
"[[:blank:]]*;[[:blank:]]*"
|
||||
"\\(?:" (regexp-quote collection-id) "\\)"
|
||||
"[[:blank:]]*;[[:blank:]]*"
|
||||
"\\([^\n[:blank:]]+\\)"
|
||||
"[[:blank:]]*$") nil t)
|
||||
(let* ((base (string-to-number (match-string 1) 16))
|
||||
(selector (string-to-number (match-string 2) 16))
|
||||
(sequence-id (match-string 3))
|
||||
(glyph (funcall sequence-id-to-glyph-function sequence-id)))
|
||||
(let ((selector-bgs (assq selector uvs-alist))
|
||||
(base-glyph (cons base glyph)))
|
||||
(if selector-bgs
|
||||
(setcdr selector-bgs (cons base-glyph (cdr selector-bgs)))
|
||||
(push (cons selector (list base-glyph)) uvs-alist)))))
|
||||
(dolist (selector-bgs uvs-alist)
|
||||
(setcdr selector-bgs
|
||||
(sort (cdr selector-bgs)
|
||||
(lambda (bg1 bg2) (< (car bg1) (car bg2))))))
|
||||
(sort uvs-alist (lambda (sb1 sb2) (< (car sb1) (car sb2))))))
|
||||
|
||||
(defun uvs-int-to-bytes (value size)
|
||||
"Convert integer VALUE to a list of SIZE bytes.
|
||||
The most significant byte comes first."
|
||||
(let (result)
|
||||
(dotimes (i size)
|
||||
(push (logand value #xff) result)
|
||||
(setq value (lsh value -8)))
|
||||
result))
|
||||
|
||||
(defun uvs-insert-fields-as-bytes (fields &rest values)
|
||||
"Insert VALUES for FIELDS as a sequence of bytes to the current buffer.
|
||||
VALUES and FIELDS are lists of integers and field symbols,
|
||||
respectively. Byte length of each value is determined by the
|
||||
'uvs-field-size' property of the corresponding field."
|
||||
(while fields
|
||||
(let ((field (car fields))
|
||||
(value (car values)))
|
||||
(insert (apply 'unibyte-string
|
||||
(uvs-int-to-bytes value (get field 'uvs-field-size))))
|
||||
(setq fields (cdr fields) values (cdr values)))))
|
||||
|
||||
(defun uvs-insert-alist-as-bytes (uvs-alist)
|
||||
"Insert UVS-ALIST as a sequence of bytes to the current buffer."
|
||||
(let* ((nrecords (length uvs-alist)) ; # of selectors
|
||||
(total-nmappings
|
||||
(apply '+ (mapcar
|
||||
(lambda (selector-bgs) (length (cdr selector-bgs)))
|
||||
uvs-alist)))
|
||||
(non-default-offset
|
||||
(+ uvs-format-14-header-size
|
||||
(* uvs-variation-selector-record-size nrecords))))
|
||||
(uvs-insert-fields-as-bytes uvs-format-14-header-fields
|
||||
14
|
||||
(+ uvs-format-14-header-size
|
||||
(* uvs-variation-selector-record-size
|
||||
nrecords)
|
||||
(* uvs-non-default-uvs-table-header-size
|
||||
nrecords)
|
||||
(* uvs-uvs-mapping-size total-nmappings))
|
||||
nrecords)
|
||||
(dolist (selector-bgs uvs-alist)
|
||||
(uvs-insert-fields-as-bytes uvs-variation-selector-record-fields
|
||||
(car selector-bgs)
|
||||
0 ; No Default UVS Tables.
|
||||
non-default-offset)
|
||||
(setq non-default-offset
|
||||
(+ non-default-offset
|
||||
uvs-non-default-uvs-table-header-size
|
||||
(* (length (cdr selector-bgs)) uvs-uvs-mapping-size))))
|
||||
(dolist (selector-bgs uvs-alist)
|
||||
(uvs-insert-fields-as-bytes uvs-non-default-uvs-table-header-fields
|
||||
(length (cdr selector-bgs)))
|
||||
(dolist (base-glyph (cdr selector-bgs))
|
||||
(uvs-insert-fields-as-bytes uvs-uvs-mapping-fields
|
||||
(car base-glyph)
|
||||
(cdr base-glyph))))))
|
||||
|
||||
(defun uvs-dump (&optional bytes-per-line separator separator-eol line-prefix)
|
||||
"Print the current buffer as in representation of C array contents."
|
||||
(or bytes-per-line (setq bytes-per-line 8))
|
||||
(or separator (setq separator ", "))
|
||||
(or separator-eol (setq separator-eol ","))
|
||||
(or line-prefix (setq line-prefix " "))
|
||||
(goto-char (point-min))
|
||||
(while (> (- (point-max) (point)) bytes-per-line)
|
||||
(princ line-prefix)
|
||||
(princ (mapconcat (lambda (byte) (format "0x%02x" byte))
|
||||
(string-to-unibyte
|
||||
(buffer-substring (point) (+ (point) bytes-per-line)))
|
||||
separator))
|
||||
(princ separator-eol)
|
||||
(terpri)
|
||||
(forward-char bytes-per-line))
|
||||
(princ line-prefix)
|
||||
(princ (mapconcat (lambda (byte) (format "0x%02x" byte))
|
||||
(string-to-unibyte
|
||||
(buffer-substring (point) (point-max)))
|
||||
separator))
|
||||
(terpri))
|
||||
|
||||
(defun uvs-print-table-ivd (filename collection-id
|
||||
&optional sequence-id-to-glyph-func)
|
||||
"Print a C array definition of a UVS table for IVD Sequences.
|
||||
FILENAME specifies the IVD Sequences file. COLLECTION-ID is a
|
||||
string specifying the identifier of the collection to
|
||||
extract (e.g., \"Adobe-Japan1\"). SEQUENCE-ID-TO-GLYPH-FUNC is a
|
||||
function to convert an identifier string of the sequence to a
|
||||
glyph number, and nil means to convert \"CID\\+[0-9]+\" to the
|
||||
corresponding number."
|
||||
(or sequence-id-to-glyph-func
|
||||
(setq sequence-id-to-glyph-func
|
||||
(lambda (sequence-id)
|
||||
(string-match "\\`CID\\+\\([[:digit:]]+\\)\\'" sequence-id)
|
||||
(string-to-number (match-string 1 sequence-id)))))
|
||||
(let ((uvs-alist
|
||||
(with-temp-buffer
|
||||
(insert-file-contents filename)
|
||||
(setq uvs-alist (uvs-alist-from-ivd collection-id
|
||||
sequence-id-to-glyph-func)))))
|
||||
(princ
|
||||
(format "static const unsigned char mac_uvs_table_%s_bytes[] =\n {\n"
|
||||
(replace-regexp-in-string "[^_[:alnum:]]" "_"
|
||||
(downcase collection-id))))
|
||||
(with-temp-buffer
|
||||
(set-buffer-multibyte nil)
|
||||
(uvs-insert-alist-as-bytes uvs-alist)
|
||||
(uvs-dump))
|
||||
(princ " };\n")))
|
||||
|
||||
;;; uvs.el ends here
|
|
@ -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;
|
||||
|
|
|
@ -5,6 +5,11 @@ Instructions to create pretest or release tarballs. -*- coding: utf-8 -*-
|
|||
|
||||
Steps to take before starting on the first pretest in any release sequence:
|
||||
|
||||
0. The release branch (e.g. emacs-24) should already have been made
|
||||
and you should use it for all that follows. Diffs from this
|
||||
branch should be going to the emacs-diffs mailing list (see
|
||||
admin/notes/bzr section on bzr-email plugin).
|
||||
|
||||
1. Decide on versions of automake and autoconf, and ensure you will
|
||||
have them available for the duration of the release process.
|
||||
|
||||
|
@ -14,28 +19,22 @@ Steps to take before starting on the first pretest in any release sequence:
|
|||
when preparing the first pretest for a major Emacs release.)
|
||||
Commit cus-edit.el if changed.
|
||||
|
||||
3. Remove any old pretests from ftp://alpha.gnu.org/gnu/emacs/pretest.
|
||||
You can use `gnupload --delete' (see below for more gnupload details).
|
||||
|
||||
General steps (for each step, check for possible errors):
|
||||
|
||||
1. `bzr update' (for a bound branch), or `bzr pull'.
|
||||
bzr status # check for locally modified files
|
||||
|
||||
2. Bootstrap to make 100% sure all elc files are up-to-date, and to
|
||||
make sure that the later tagged version will bootstrap, should it be
|
||||
necessary to check it out.
|
||||
|
||||
3. Regenerate the etc/AUTHORS file:
|
||||
2. Regenerate the etc/AUTHORS file:
|
||||
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.
|
||||
|
@ -43,7 +42,7 @@ General steps (for each step, check for possible errors):
|
|||
authors-ambiguous-files or authors-aliases, and repeat.
|
||||
Commit any fixes to ChangeLogs or authors.el.
|
||||
|
||||
4. Set the version number (M-x load-file RET admin/admin.el RET, then
|
||||
3. Set the version number (M-x load-file RET admin/admin.el RET, then
|
||||
M-x set-version RET). For a release, add released ChangeLog
|
||||
entries (M-x add-release-logs RET).
|
||||
|
||||
|
@ -58,31 +57,37 @@ General steps (for each step, check for possible errors):
|
|||
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
|
||||
4. 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.
|
||||
5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
|
||||
|
||||
Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed
|
||||
by M-x set-version.
|
||||
by M-x set-version. Use a commit log message that bzrmerge.el
|
||||
will ignore (eg "Bump version...").
|
||||
For a release, also commit the ChangeLog files in all directories.
|
||||
|
||||
7. ./make-dist --snapshot --no-compress
|
||||
If someone else made a commit between step 1 and now,
|
||||
you need to repeat from step 4 onwards. (You can commit the files
|
||||
from step 2 and 3 earlier to reduce the chance of this.)
|
||||
|
||||
Check the contents of the new tar with
|
||||
admin/diff-tar-files against an older tar file. Some old pretest
|
||||
tarballs may be found at <ftp://alpha.gnu.org/gnu/emacs/pretest>;
|
||||
old release tarballs are at <ftp://ftp.gnu.org/pub/gnu/emacs/>.
|
||||
6. ./make-dist --snapshot --no-compress
|
||||
|
||||
Check the contents of the new tar with admin/diff-tar-files
|
||||
against the previous release (if this is the first pretest) or the
|
||||
previous pretest. If you did not make the previous pretest
|
||||
yourself, find it at <ftp://alpha.gnu.org/gnu/emacs/pretest>.
|
||||
Releases are of course at <ftp://ftp.gnu.org/pub/gnu/emacs/>.
|
||||
|
||||
If this is the first pretest of a major release, just comparing
|
||||
with the previous release may overlook many new files. You can try
|
||||
something like `find . | sort' in a clean bzr tree, and compare the
|
||||
results against the new tar contents.
|
||||
|
||||
8. tar -xf emacs-NEW.tar; cd emacs-NEW
|
||||
7. tar -xf emacs-NEW.tar; cd emacs-NEW
|
||||
./configure --prefix=/tmp/emacs && make && make install
|
||||
Use `script' or M-x compile to save the compilation log in
|
||||
compile-NEW.log and compare it against an old one. The easiest way
|
||||
|
@ -91,25 +96,21 @@ General steps (for each step, check for possible errors):
|
|||
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
|
||||
8. cd EMACS_ROOT_DIR && bzr tag TAG
|
||||
TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release.
|
||||
|
||||
Shortly before the release, cut the version branch also, and open
|
||||
a Savannah support request asking for commits to the new branch to
|
||||
be sent to the emacs-diffs mailing list (by default, the list
|
||||
normally only gets commits to the trunk).
|
||||
|
||||
10. Decide what compression schemes to offer.
|
||||
9. Decide what compression schemes to offer.
|
||||
For a release, at least gz and xz:
|
||||
gzip --best -c emacs-NEW.tar > emacs-NEW.tar.gz
|
||||
xz -c emacs-NEW.tar > emacs-NEW.tar.xz
|
||||
For pretests, just xz is probably fine (saves bandwidth).
|
||||
|
||||
Now you should upload the files to the GNU ftp server. In order to
|
||||
do that, you must be registered as an Emacs maintainer and have your
|
||||
GPG key acknowledged by the ftp people. For instructions, see
|
||||
http://www.gnu.org/prep/maintain/html_node/Automated-Upload-Registration.html
|
||||
The simplest method is to use the gnulib <http://www.gnu.org/s/gnulib/>
|
||||
script "build-aux/gnupload" to upload each FILE, like this:
|
||||
The simplest method to upload is to use the gnulib
|
||||
<http://www.gnu.org/s/gnulib/> script "build-aux/gnupload":
|
||||
|
||||
For a pretest:
|
||||
gnupload [--user your@gpg.key.email] --to alpha.gnu.org:emacs/pretest \
|
||||
|
@ -140,19 +141,21 @@ General steps (for each step, check for possible errors):
|
|||
For a pretest, place the files in /incoming/alpha instead, so that
|
||||
they appear on ftp://alpha.gnu.org/.
|
||||
|
||||
11. After five minutes, verify that the files are visible at
|
||||
10. After five minutes, verify that the files are visible at
|
||||
ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or
|
||||
ftp://ftp.gnu.org/gnu/emacs/ for a release.
|
||||
|
||||
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.)
|
||||
11. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org.
|
||||
For a pretest, also bcc: platform-testers@gnu.org.
|
||||
(The reason for using bcc: is to make it less likely that people
|
||||
will followup on the wrong list.)
|
||||
See the info-gnu-emacs mailing list archives for the form
|
||||
of past announcements. The first pretest announcement, and the
|
||||
release announcement, should have more detail.
|
||||
|
||||
13. For a release, update the Emacs homepage in the web repository.
|
||||
Also add the new NEWS file as NEWS.xx.y.
|
||||
Maybe regenerate the html manuals, update the FAQ, etc, etc.
|
||||
12. For a release, update the Emacs homepage in the web repository.
|
||||
Also update history.html, and add the new NEWS file as NEWS.xx.y.
|
||||
Regenerate the html manuals (use make-manuals from admin.el).
|
||||
If there are new manuals, add appropriate index pages.
|
||||
|
|
|
@ -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,17 +26,19 @@
|
|||
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 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
|
||||
sig2str socklen stat-time stdalign 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
|
||||
'
|
||||
|
||||
|
@ -46,7 +48,8 @@ GNULIB_TOOL_FLAGS='
|
|||
--avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow
|
||||
--avoid=open --avoid=openat-die --avoid=opendir
|
||||
--avoid=raise
|
||||
--avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types
|
||||
--avoid=save-cwd --avoid=select --avoid=sigprocmask
|
||||
--avoid=stdarg --avoid=stdbool
|
||||
--avoid=threadlib
|
||||
--conditional-dependencies --import --no-changelog --no-vc-files
|
||||
--makefile-name=gnulib.mk
|
||||
|
@ -90,7 +93,9 @@ 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"}
|
||||
{ test -z "$src" || cd "$src"; } &&
|
||||
./autogen.sh
|
||||
|
|
63
admin/merge-pkg-config
Executable file
63
admin/merge-pkg-config
Executable file
|
@ -0,0 +1,63 @@
|
|||
#! /bin/sh
|
||||
# Merge pkg-config macros into Emacs sources.
|
||||
# Typical usage:
|
||||
#
|
||||
# admin/merge-pkg-config
|
||||
|
||||
# Copyright 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
|
||||
|
||||
{
|
||||
# Maybe ACLOCAL_PATH is already set-up.
|
||||
oIFS=$IFS
|
||||
IFS=:
|
||||
for dir in $ACLOCAL_PATH ''; do
|
||||
test -n "$dir" && test -r "$dir/pkg.m4" && break
|
||||
done
|
||||
IFS=$oIFS
|
||||
|
||||
test -n "$dir"
|
||||
} || {
|
||||
# Use the pkg.m4 installed where aclocal knows about it.
|
||||
# Maybe we are running our own aclocal, which doesn't know where
|
||||
# the standard pkg.m4 is installed, so try running all the
|
||||
# aclocal programs in our PATH.
|
||||
oIFS=$IFS
|
||||
IFS=:
|
||||
for dir in $PATH ''; do
|
||||
if test -n "$dir" && test -x "$dir/aclocal"; then
|
||||
dir=$("$dir/aclocal" --print-ac-dir) && test -r "$dir/pkg.m4" && break
|
||||
fi
|
||||
done
|
||||
IFS=$oIFS
|
||||
|
||||
test -n "$dir"
|
||||
} || {
|
||||
echo >&2 "$0: cannot find pkg.m4"
|
||||
exit 1
|
||||
}
|
||||
|
||||
test -d m4 || {
|
||||
echo >&2 "$0: please run this command in the main source directory"
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo >&2 "$0: copying $dir/pkg.m4 to m4/pkg.m4"
|
||||
|
||||
cp $dir/pkg.m4 m4
|
|
@ -3,9 +3,9 @@ NOTES ON COMMITTING TO EMACS'S BAZAAR REPO -*- outline -*-
|
|||
* Install changes only on one branch, let them get merged elsewhere if needed.
|
||||
In particular, install bug-fixes only on the release branch (if there
|
||||
is one) and let them get synced to the trunk; do not install them by
|
||||
hand on the trunk as well. E.g. if there is an active "emacs-23" branch
|
||||
and you have a bug-fix appropriate for the next Emacs-23.x release,
|
||||
install it only on the emacs-23 branch, not on the trunk as well.
|
||||
hand on the trunk as well. E.g. if there is an active "emacs-24" branch
|
||||
and you have a bug-fix appropriate for the next emacs-24.x release,
|
||||
install it only on the emacs-24 branch, not on the trunk as well.
|
||||
|
||||
Installing things manually into more than one branch makes merges more
|
||||
difficult.
|
||||
|
@ -18,7 +18,7 @@ In that case, it's helpful if you can apply the change to both trunk
|
|||
and branch yourself (when committing the branch change, indicate
|
||||
in the commit log that it should not be merged to the trunk; see below).
|
||||
|
||||
* Backporting a bug-fix from the trunk to a branch (e.g. "emacs-23").
|
||||
* Backporting a bug-fix from the trunk to a branch (e.g. "emacs-24").
|
||||
Indicate in the commit log that there is no need to merge the commit
|
||||
to the trunk. Anything that matches `bzrmerge-skip-regexp' will do;
|
||||
eg start the commit message with "Backport:". This is helpful for the
|
||||
|
@ -49,7 +49,7 @@ http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00086.html
|
|||
* Installing changes from gnulib
|
||||
Some of the files in Emacs are copied from gnulib. To synchronize
|
||||
these files from the version of gnulib that you have checked out into
|
||||
a sibling directory of your branch, type "make sync-from-gnulib"; this
|
||||
a sibling directory of your branch, type "admin/merge-gnulib"; this
|
||||
will check out the latest version of gnulib if there is no sibling
|
||||
directory already. It is a good idea to run "bzr status" afterwards,
|
||||
so that if a gnulib module added a file, you can record the new file
|
||||
|
@ -57,17 +57,12 @@ using "bzr add". After synchronizing from gnulib, do a "make" in the
|
|||
usual way.
|
||||
|
||||
To change the set of gnulib modules, change the GNULIB_MODULES
|
||||
variable in the top-level Makefile.in, and then run:
|
||||
variable in admin/merge-gnulib before running it.
|
||||
|
||||
./config.status
|
||||
make sync-from-gnulib
|
||||
bzr status
|
||||
|
||||
The last command will mention files that may need to be added using
|
||||
"bzr add". If you remove a gnulib module, or if a gnulib module
|
||||
If you remove a gnulib module, or if a gnulib module
|
||||
removes a file, then remove the corresponding files by hand.
|
||||
|
||||
* How to merge changes from emacs-23 to trunk
|
||||
* How to merge changes from emacs-24 to trunk
|
||||
|
||||
The following description uses bound branches, presumably it works in
|
||||
a similar way with unbound ones.
|
||||
|
@ -90,7 +85,7 @@ copy in ~/.bazaar if you upgrade bzr.
|
|||
Maybe the default Emacs behavior without this plugin is better,
|
||||
though, it's not clear yet.
|
||||
|
||||
1) Get clean, up-to-date copies of the emacs-23 and trunk branches.
|
||||
1) Get clean, up-to-date copies of the emacs-24 and trunk branches.
|
||||
Check for any uncommitted changes with bzr status.
|
||||
|
||||
2) M-x cd /path/to/trunk
|
||||
|
@ -102,7 +97,7 @@ changelog_merge_files = ChangeLog
|
|||
|
||||
3) load admin/bzrmerge.el
|
||||
|
||||
4) M-x bzrmerge RET /path/to/emacs-23 RET
|
||||
4) M-x bzrmerge RET /path/to/emacs-24 RET
|
||||
|
||||
It will prompt about revisions that should be skipped, based on the
|
||||
regexp in bzrmerge-missing. If there are more revisions that you know
|
||||
|
@ -119,7 +114,7 @@ Do not commit (or exit Emacs) until you have run bzrmerge to completion.
|
|||
|
||||
Before committing, check bzr status and bzr diff output.
|
||||
If you have run bzrmerge enough times, the "pending merge tip" in bzr
|
||||
status should be the last revision from the emacs-23 branch, and
|
||||
status should be the last revision from the emacs-24 branch, and
|
||||
bzr status -v should show all the revisions you expect to merge.
|
||||
|
||||
(Note that it will also show "skipped" revisions. This is expected,
|
||||
|
@ -141,18 +136,13 @@ authors, don't break the logical ordering in doing this.
|
|||
|
||||
Notes:
|
||||
|
||||
1) A lot that was in tramp.el in emacs-23 has moved to tramp-sh.el in
|
||||
the trunk. If you end up with a conflict in tramp.el, the changes may
|
||||
need to go to tramp-sh.el instead. Remember to update the file name in
|
||||
the ChangeLog.
|
||||
|
||||
2) If a file is modified in emacs-23, and deleted in the trunk, you
|
||||
1) If a file is modified in emacs-24, and deleted in the trunk, you
|
||||
get a "contents conflict". Assuming the changes don't need to be in
|
||||
the trunk at all, use `bzr resolve path/to/file --take-this' to keep the
|
||||
trunk version. Prior to bzr 2.2.3, this may fail. You can just
|
||||
delete the .OTHER etc files by hand and use bzr resolve path/to/file.
|
||||
|
||||
3) Conflicts in autoload md5sums in comments. Strictly speaking, the
|
||||
2) Conflicts in autoload md5sums in comments. Strictly speaking, the
|
||||
right thing to do is merge everything else, resolve the conflict by
|
||||
choosing either the trunk or branch version, then run `make -C lisp
|
||||
autoloads' to update the md5sums to the correct trunk value before
|
||||
|
@ -364,3 +354,45 @@ works), or by adding an entry to ~/.bazaar/locations.conf:
|
|||
|
||||
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.
|
||||
|
||||
** remote name
|
||||
|
||||
Although Git itself is agnostic about what names you choose for
|
||||
the remote repo, it seems git-bzr is more likely to get confused.
|
||||
After the clone as described above, the remote name is "origin";
|
||||
changing it is Not Recommended. [Insert 9-hour high-entropy then
|
||||
mysterious bug w/ JSON parsing errors anecdote here. --ttn]
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
Emacs generally follows the GNU coding standards when it comes to ChangeLogs:
|
||||
http://www.gnu.org/prep/standards/html_node/Change-Logs.html
|
||||
|
||||
One exception is that we still sometimes quote `like-this' (as the
|
||||
standards used to recommend) rather than 'like-this' (as they do now),
|
||||
because `...' is so widely used elsewhere in Emacs.
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00514.html
|
||||
|
||||
|
||||
If installing changes written by someone else, make the ChangeLog
|
||||
entry in their name, not yours.
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
||||
|
@ -137,7 +137,10 @@ GNUstep/Emacs.base/Resources/Info-gnustep.plist
|
|||
aclocal.m4
|
||||
configure
|
||||
m4/*.m4
|
||||
- copyright FSF, with unlimited permission to copy, distribute and modify
|
||||
- These files are copyright FSF, with unlimited permission to copy,
|
||||
distribute and modify, so long as the copyright notice is preserved.
|
||||
Exception: m4/pkg.m4 is copyright Scott James Remnant; it is
|
||||
distributed under the same terms as for the rest of Emacs.
|
||||
|
||||
lib/Makefile.in
|
||||
- copyright FSF, with MIT-like license
|
||||
|
@ -161,13 +164,6 @@ etc/letter.pbm,letter.xpm
|
|||
etc/FTP, ORDERS
|
||||
- trivial (at time of writing), no license needed
|
||||
|
||||
etc/GNU, INTERVIEW, LINUX-GNU, MOTIVATION, SERVICE, THE-GNU-PROJECT,
|
||||
WHY-FREE
|
||||
rms: "These are statements of opinion or testimony. Their licenses
|
||||
should permit verbatim copying only. Please don't change the
|
||||
licenses that they have. They are distributed with Emacs but they
|
||||
are not part of Emacs."
|
||||
|
||||
etc/HELLO
|
||||
standard notices. Just a note that although the file itself is not
|
||||
really copyrightable, in the wider context of it being part of
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
-*- outline -*-
|
||||
|
||||
Copyright (C) 2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2013-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA
|
||||
|
|
|
@ -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.
|
||||
|
@ -101,16 +101,6 @@ Known problems:
|
|||
I plan to implement better user notification and support for
|
||||
breaking out of single-kboard mode from locked displays.
|
||||
|
||||
* Mac and DOS support is broken, doesn't even
|
||||
compile. Multiple display support will probably not provide
|
||||
new Emacs features on these systems, but the multi-tty
|
||||
branch changed a few low-level interfaces, and the
|
||||
system-dependent source files need to be adapted
|
||||
accordingly. The changes are mostly trivial, so almost
|
||||
anyone can help, if only by compiling the branch and
|
||||
reporting the compiler errors.
|
||||
|
||||
|
||||
TESTING
|
||||
-------
|
||||
|
||||
|
@ -504,17 +494,6 @@ THINGS TO DO
|
|||
|
||||
(This is likely an error in the CVS trunk.)
|
||||
|
||||
** Dan Nicolaescu suggests that -nw should be added as an alias for -t
|
||||
in emacsclient. Good idea. (Alas, implementing this is not
|
||||
trivial, getopt_long does not seem to support two-letter ``short''
|
||||
options. Patches are welcome.)
|
||||
|
||||
** Mark Plaksin suggests that emacsclient should accept the same
|
||||
X-related command-line arguments as Emacs. Most of the X-related
|
||||
argument-handling is done in Lisp, so this should be quite easy to
|
||||
implement. (For example, Samium Gromoff wants emacsclient to
|
||||
support --geometry; implementing this would add that support.)
|
||||
|
||||
** Gergely Nagy suggests that C-x # should only kill the current
|
||||
frame, not any other emacsclient frame that may have the same file
|
||||
opened for editing. I think I agree with him.
|
||||
|
@ -532,21 +511,9 @@ THINGS TO DO
|
|||
an initial frame. (The user would connect to it and open frames
|
||||
later, with emacsclient.)
|
||||
|
||||
** Fix Mac support (I can't do this entirely myself). Note that the
|
||||
current state of Mac-specific source files in the multi-tty tree
|
||||
are not useful; before starting work on Mac support, revert to
|
||||
pristine, pre-multi-tty versions.
|
||||
|
||||
** Fix DOS support (I can't do this entirely myself). Note that the
|
||||
current state of DOS-specific source files in the multi-tty tree
|
||||
are not useful; before starting work on DOS support, revert to
|
||||
pristine, pre-multi-tty versions.
|
||||
|
||||
** Fix Windows support. Currently bootstrapping works on w32, but Emacs
|
||||
crashes on startup and none of the multi-tty features are
|
||||
implemented. Many XXX comments mark things that probably need
|
||||
updating, ChangeLogs will help in spotting changes to X specific
|
||||
files that may need porting.
|
||||
** Implement Mac/Windows/DOS support. Many XXX comments mark things
|
||||
that probably need updating, ChangeLogs will help in spotting
|
||||
changes to X specific files that may need porting.
|
||||
|
||||
** Do a grep on XXX and ?? for more issues.
|
||||
|
||||
|
@ -1085,18 +1052,6 @@ DIARY OF CHANGES
|
|||
|
||||
(Done.)
|
||||
|
||||
-- Miles Bader suggests that C-x C-c on an emacsclient frame should
|
||||
only close the frame, not exit the entire Emacs session. Update:
|
||||
see above for a function that does this. Maybe this should be the
|
||||
new default?
|
||||
|
||||
(Done. This is the new default. No complaints so far.)
|
||||
|
||||
-- Clean up the frame-local variable system. I think it's ugly and
|
||||
error-prone. But maybe I just haven't yet fully understood it.
|
||||
|
||||
(Nothing to do. It doesn't seem ugly any more. It's rather clever.)
|
||||
|
||||
-- Support multiple character locales. A version of
|
||||
`set-locale-environment' needs to be written for setting up
|
||||
display-local settings on ttys. I think calling
|
||||
|
@ -1114,18 +1069,6 @@ DIARY OF CHANGES
|
|||
(Done, by making `function-key-map' terminal-local (i.e., part of
|
||||
struct kboard). This has probably covered all the remaining problems.)
|
||||
|
||||
-- Make `function-key-map' and `key-translation-map' terminal-local.
|
||||
|
||||
(Done.)
|
||||
|
||||
-- Implement `terminal-local-value' and `set-terminal-local-value' to
|
||||
allow deterministic access to terminal local bindings. The
|
||||
encode-kb package can not set up `key-translation-map' without
|
||||
these. The terminal-local bindings seem to be independent of what
|
||||
frame is selected.
|
||||
|
||||
(Done.)
|
||||
|
||||
-- xt-mouse.el needs to be adapted for multi-tty. It currently
|
||||
signals an error on kill-emacs under X, which prevents the user
|
||||
from exiting Emacs. (Reported by Mnemonikk on freenode.)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
-*-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
|
||||
|
@ -181,13 +181,6 @@ nontrivial changes to the build process.
|
|||
|
||||
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.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
-*- outline -*-
|
||||
|
||||
Copyright (C) 2013 Free Software Foundation, Inc.
|
||||
Copyright (C) 2013-2014 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
NOTES FOR EMACS WWW PAGES
|
||||
|
|
|
@ -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,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.
|
||||
|
||||
Precompiled Distributions of
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
@ -30,7 +30,7 @@
|
|||
PUBLIC_LIBSRC_BINARIES='emacsclient etags ctags ebrowse'
|
||||
PUBLIC_LIBSRC_SCRIPTS='grep-changelog'
|
||||
|
||||
AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$ Makefile.in$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile testfile test-distrib"
|
||||
AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$ Makefile.in$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile"
|
||||
|
||||
# Prune old binaries lying around in the source tree
|
||||
PRUNE=no
|
||||
|
|
|
@ -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 @@
|
|||
### @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)
|
||||
|
@ -24,13 +24,14 @@
|
|||
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,34 @@ 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"
|
||||
|
||||
if [ -d .bzr ]; then
|
||||
vcs=bzr
|
||||
elif [ -d .git ]; then
|
||||
vcs=git
|
||||
else
|
||||
die "Cannot determine vcs"
|
||||
fi
|
||||
|
||||
|
||||
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 +83,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 +113,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 +121,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 +148,39 @@ OPTIND=1
|
|||
[ "$quiet" ] && exec 1> /dev/null
|
||||
|
||||
|
||||
echo "Running bzr status..."
|
||||
## Run status on inputs, list modified files on stdout.
|
||||
status ()
|
||||
{
|
||||
local statflag="-S"
|
||||
[ "$vcs" = "git" ] && statflag="-s"
|
||||
|
||||
bzr status -S $sources ${ldefs_flag:+lisp} >| $tempfile || \
|
||||
die "bzr status error for sources"
|
||||
$vcs status $statflag "$@" >| $tempfile || die "$vcs status error for $@"
|
||||
|
||||
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 +211,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 ()
|
||||
{
|
||||
|
@ -217,14 +228,93 @@ commit ()
|
|||
|
||||
echo "Committing..."
|
||||
|
||||
## bzr status output is always relative to top-level, not PWD.
|
||||
bzr commit -m "Auto-commit of $type files." "$@" || return $?
|
||||
$vcs commit -m "Auto-commit of $type files." "$@" || return $?
|
||||
|
||||
[ "$vcs" = "git" ] && {
|
||||
$vcs push || return $?
|
||||
}
|
||||
|
||||
echo "Committed files: $@"
|
||||
} # 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
|
||||
|
||||
## bzr status output is always relative to top-level, not PWD.
|
||||
[ "$vcs" = "bzr" ] && cd $oldpwd
|
||||
|
||||
commit "generated" $modified || die "commit error"
|
||||
|
||||
exit 0
|
||||
} # $autogendir
|
||||
|
||||
|
||||
[ "$info_flag" ] && info_dir
|
||||
|
||||
|
||||
[ "$ldefs_flag" ] || exit 0
|
||||
|
@ -232,8 +322,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 +376,14 @@ 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=$(status $genfiles ${ldefs_out#lisp/}) || die
|
||||
|
||||
|
||||
modified=
|
||||
|
||||
while read stat file; do
|
||||
|
||||
[ "$stat" != "M" ] && die "Unexpected status ($stat) for generated $file"
|
||||
modified="$modified $file"
|
||||
|
||||
done < $tempfile
|
||||
## bzr status output is always relative to top-level, not PWD.
|
||||
[ "$vcs" = "bzr" ] && cd ../
|
||||
|
||||
|
||||
cd ../
|
||||
|
||||
|
||||
commit "loaddefs" $modified || die "bzr commit error"
|
||||
commit "loaddefs" $modified || die "commit error"
|
||||
|
||||
|
||||
exit 0
|
42
autogen.sh
42
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:
|
||||
|
||||
|
@ -49,7 +50,7 @@ automake_min=`sed -n 's/^ *AM_INIT_AUTOMAKE(\([0-9\.]*\)).*/\1/p' configure.ac`
|
|||
get_version ()
|
||||
{
|
||||
## Remove eg "./autogen.sh: line 50: autoconf: command not found".
|
||||
$1 --version 2>&1 | sed -e '/not found/d' -n -e '1 s/.* \([1-9][0-9\.]*\).*/\1/p'
|
||||
$1 --version 2>&1 | sed -e '/not found/d' -e 's/.* //' -n -e '1 s/\([0-9][0-9\.]*\).*/\1/p'
|
||||
}
|
||||
|
||||
## $1 = version string, eg "2.59"
|
||||
|
@ -75,7 +76,7 @@ minor_version ()
|
|||
check_version ()
|
||||
{
|
||||
## Respect eg $AUTOMAKE if it is set, like autoreconf does.
|
||||
uprog=`echo $1 | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
|
||||
uprog=`echo $1 | sed -e 's/-/_/g' -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
|
||||
|
||||
eval uprog=\$${uprog}
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -113,7 +114,9 @@ missing=
|
|||
|
||||
for prog in $progs; do
|
||||
|
||||
eval min=\$${prog}_min
|
||||
sprog=`echo "$prog" | sed 's/-/_/g'`
|
||||
|
||||
eval min=\$${sprog}_min
|
||||
|
||||
echo "Checking for $prog (need at least version $min)..."
|
||||
|
||||
|
@ -132,7 +135,7 @@ for prog in $progs; do
|
|||
|
||||
if [ $retval -ne 0 ]; then
|
||||
missing="$missing $prog"
|
||||
eval ${prog}_why=\""$stat"\"
|
||||
eval ${sprog}_why=\""$stat"\"
|
||||
fi
|
||||
|
||||
done
|
||||
|
@ -146,7 +149,9 @@ Building Emacs from Bzr requires the following specialized programs:
|
|||
EOF
|
||||
|
||||
for prog in $progs; do
|
||||
eval min=\$${prog}_min
|
||||
sprog=`echo "$prog" | sed 's/-/_/g'`
|
||||
|
||||
eval min=\$${sprog}_min
|
||||
|
||||
echo "$prog (minimum version $min)"
|
||||
done
|
||||
|
@ -158,7 +163,9 @@ Your system seems to be missing the following tool(s):
|
|||
EOF
|
||||
|
||||
for prog in $missing; do
|
||||
eval why=\$${prog}_why
|
||||
sprog=`echo "$prog" | sed 's/-/_/g'`
|
||||
|
||||
eval why=\$${sprog}_why
|
||||
|
||||
echo "$prog ($why)"
|
||||
done
|
||||
|
@ -187,34 +194,29 @@ this script.
|
|||
If you know that the required versions are in your PATH, but this
|
||||
script has made an error, then you can simply run
|
||||
|
||||
autoreconf -i -I m4
|
||||
autoreconf -fi -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
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Your system has the required tools, running autoreconf..."
|
||||
echo 'Your system has the required tools.'
|
||||
echo "Running 'autoreconf -fi -I m4' ..."
|
||||
|
||||
|
||||
## Let autoreconf figure out what, if anything, needs doing.
|
||||
autoreconf -i -I m4 || exit $?
|
||||
## Use autoreconf's -f option in case autoreconf itself has changed.
|
||||
autoreconf -fi -I m4 || exit $?
|
||||
|
||||
## Create a timestamp, so that './autogen.sh; make' doesn't
|
||||
## cause 'make' to needlessly run 'autoheader'.
|
||||
echo timestamp > src/stamp-h.in || exit
|
||||
|
||||
echo "You can now run \`./configure'."
|
||||
echo "You can now run './configure'."
|
||||
|
||||
exit 0
|
||||
|
||||
|
|
|
@ -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)
|
1080
autogen/aclocal.m4
vendored
1080
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
30920
autogen/configure
vendored
30920
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)
|
||||
|
|
26
config.bat
26
config.bat
|
@ -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
|
||||
|
@ -264,8 +264,14 @@ cd lib
|
|||
Rem Rename files like djtar on plain DOS filesystem would.
|
||||
If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h build-aux/snippet/cxxdefs.h
|
||||
If Exist alloca.in.h update alloca.in.h alloca.in-h
|
||||
If Exist byteswap.in.h update byteswap.in.h byteswap.in-h
|
||||
If Exist dirent.in.h update dirent.in.h dirent.in-h
|
||||
If Exist errno.in.h update errno.in.h errno.in-h
|
||||
If Exist execinfo.in.h update execinfo.in.h execinfo.in-h
|
||||
If Exist fcntl.in.h update fcntl.in.h fcntl.in-h
|
||||
If Exist getopt.in.h update getopt.in.h getopt.in-h
|
||||
If Exist inttypes.in.h update inttypes.in.h inttypes.in-h
|
||||
If Exist stdarg.in.h update stdarg.in.h stdarg.in-h
|
||||
If Exist stdalign.in.h update stdalign.in.h stdalign.in-h
|
||||
If Exist stdbool.in.h update stdbool.in.h stdbool.in-h
|
||||
If Exist signal.in.h update signal.in.h signal.in-h
|
||||
|
@ -274,12 +280,15 @@ If Exist stddef.in.h update stddef.in.h stddef.in-h
|
|||
If Exist stdint.in.h update stdint.in.h stdint.in-h
|
||||
If Exist stdio.in.h update stdio.in.h stdio.in-h
|
||||
If Exist stdlib.in.h update stdlib.in.h stdlib.in-h
|
||||
If Exist string.in.h update string.in.h string.in-h
|
||||
If Exist sys_select.in.h update sys_select.in.h sys_select.in-h
|
||||
If Exist sys_stat.in.h update sys_stat.in.h sys_stat.in-h
|
||||
If Exist sys_types.in.h update sys_types.in.h sys_types.in-h
|
||||
If Exist sys_time.in.h update sys_time.in.h sys_time.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/
|
||||
|
@ -294,13 +303,18 @@ If Exist gnus\.dir-locals.el update gnus/.dir-locals.el gnus/_dir-locals.el
|
|||
sed -f ../msdos/sedlisp.inp < Makefile.in > Makefile
|
||||
cd ..
|
||||
rem ----------------------------------------------------------------------
|
||||
If not Exist leim\quail\latin-pre.el goto maindir
|
||||
Echo Configuring the leim directory...
|
||||
cd leim
|
||||
sed -f ../msdos/sedleim.inp < Makefile.in > Makefile
|
||||
cd ..
|
||||
rem ----------------------------------------------------------------------
|
||||
:maindir
|
||||
If Not Exist admin\unidata goto noadmin
|
||||
Echo Configuring the admin/unidata directory...
|
||||
cd admin\unidata
|
||||
sed -f ../../msdos/sedadmin.inp < Makefile.in > Makefile
|
||||
cd ..\..
|
||||
:noadmin
|
||||
rem ----------------------------------------------------------------------
|
||||
Echo Configuring the main directory...
|
||||
If Exist .dir-locals.el update .dir-locals.el _dir-locals.el
|
||||
If Exist src\.dbxinit update src/.dbxinit src/_dbxinit
|
||||
|
|
1186
configure.ac
1186
configure.ac
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,594 @@
|
|||
2014-05-26 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* frames.texi (Fonts): Clarify which frames are affected by
|
||||
setting font from the menu and in default-frame-alist.
|
||||
(Bug#17532)
|
||||
|
||||
2014-05-14 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* mule.texi (Language Environments): Remove unused @anchor. (Bug#17479)
|
||||
|
||||
2014-05-04 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* trouble.texi (Lossage, DEL Does Not Delete, Stuck Recursive)
|
||||
(Screen Garbled, Text Garbled, After a Crash, Emergency Escape)
|
||||
(Bug Criteria, Understanding Bug Reporting, Checklist, Service):
|
||||
Improve indexing.
|
||||
|
||||
2014-05-04 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
* cal-xtra.texi (Non-Gregorian Diary): Document new features for
|
||||
Chinese calendar and diary.
|
||||
|
||||
2014-04-30 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* trouble.texi (Quitting, DEL Does Not Delete, Emergency Escape)
|
||||
(Bug Criteria): Fix usage of @kbd and @key. (Bug#17362)
|
||||
|
||||
* text.texi (Words, Pages, Foldout, HTML Mode): Fix usage of @kbd
|
||||
and @key.
|
||||
|
||||
* search.texi (Special Isearch, Regexp Search): Fix usage of @kbd
|
||||
and @key.
|
||||
|
||||
* screen.texi (Echo Area, Menu Bar): Fix usage of @kbd and @key.
|
||||
|
||||
* rmail.texi (Rmail Scrolling): Fix usage of @kbd and @key.
|
||||
|
||||
* programs.texi (Hungry Delete, Other C Commands): Fix usage of
|
||||
@kbd and @key.
|
||||
|
||||
* picture-xtra.texi (Insert in Picture): Fix usage of @kbd and
|
||||
@key.
|
||||
|
||||
* mule.texi (Unibyte Mode, Bidirectional Editing): Fix usage of
|
||||
@kbd and @key.
|
||||
|
||||
* msdog.texi (Windows Keyboard, Windows Processes): Fix usage of
|
||||
@kbd and @key.
|
||||
|
||||
* msdog-xtra.texi (MS-DOS Keyboard, MS-DOS Printing)
|
||||
(MS-DOS Processes): Fix usage of @kbd and @key.
|
||||
|
||||
* misc.texi (Shell Ring, Printing Package): Fix usage of @kbd and
|
||||
@key.
|
||||
|
||||
* mini.texi (Completion Commands, Minibuffer History): Fix usage
|
||||
of @kbd and @key.
|
||||
|
||||
* kmacro.texi (Keyboard Macro Step-Edit): Fix usage of @kbd and
|
||||
@key.
|
||||
|
||||
* killing.texi (Deletion, Rectangles, CUA Bindings): Fix usage of
|
||||
@kbd and @key.
|
||||
|
||||
* indent.texi (Indentation Commands): Fix usage of @kbd and @key.
|
||||
|
||||
* help.texi (Help Mode, Misc Help): Fix usage of @kbd and @key.
|
||||
|
||||
* glossary.texi (Glossary): Fix usage of @kbd and @key.
|
||||
|
||||
* frames.texi (Speedbar): Fix usage of @kbd and @key.
|
||||
|
||||
* files.texi (Misc File Ops, File Name Cache, File Conveniences)
|
||||
(Filesets): Fix usage of @kbd and @key.
|
||||
|
||||
* display.texi (View Mode): Fix usage of @kbd and @key.
|
||||
|
||||
* dired.texi (Image-Dired): Fix usage of @kbd and @key.
|
||||
|
||||
* custom.texi (Modifier Keys, Function Keys, Named ASCII Chars)
|
||||
(Init Syntax): Fix usage of @kbd and @key.
|
||||
|
||||
* commands.texi (User Input): Fix usage of @kbd and @key.
|
||||
|
||||
* calendar.texi (Counting Days, General Calendar): Fix usage of
|
||||
@kbd and @key.
|
||||
|
||||
* building.texi (Threads Buffer): Fix usage of @kbd and @key.
|
||||
|
||||
* buffers.texi (Select Buffer, Icomplete): Fix usage of @kbd and
|
||||
@key.
|
||||
|
||||
* basic.texi (Inserting Text, Erasing, Arguments): Fix usage of
|
||||
@kbd and @key.
|
||||
|
||||
* anti.texi (Antinews): Fix usage of @kbd and @key.
|
||||
|
||||
* sending.texi (Mail Signature): Document signature variables used
|
||||
by Message mode. (Bug#17308)
|
||||
|
||||
2014-04-22 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* buffers.texi (Uniquify): Clarify the default uniquification.
|
||||
|
||||
* indent.texi (Tab Stops): Improve wording.
|
||||
|
||||
* cmdargs.texi (General Variables): Improve docs of
|
||||
EMACSLOADPATH. Index all the environment variables.
|
||||
(Misc Variables): Index all the environment variables.
|
||||
|
||||
2014-04-17 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* Makefile.in (infoclean): Be consistent about reporting failures.
|
||||
Do not fail merely because the info directory does not exist,
|
||||
but do fail if it exists and can't be cleaned.
|
||||
|
||||
2014-04-16 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* display.texi (Cursor Display): Explain better how to customize
|
||||
'blink-cursor-blinks'.
|
||||
|
||||
2014-04-07 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* trouble.texi (Checklist): Dribble files may contain passwords.
|
||||
|
||||
* files.texi (Backup Names):
|
||||
* arevert-xtra.texi (Supporting additional buffers):
|
||||
Update for default values of some -function vars no longer being nil.
|
||||
(Supporting additional buffers):
|
||||
Update for buffer-stale-function also applying to file-buffers.
|
||||
|
||||
2014-03-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* custom.texi (Terminal Init): Mention term-file-aliases.
|
||||
|
||||
2014-03-26 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* ack.texi (Acknowledgments): Remove reference to obsolete file.
|
||||
|
||||
2014-03-22 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* help.texi (Help Files): Update C-h g description.
|
||||
|
||||
2014-03-16 Dmitry Gutov <dgutov@yandex.ru>
|
||||
|
||||
* programs.texi (Matching): Update the missed spot. (Bug#17008)
|
||||
|
||||
2014-03-15 Dmitry Gutov <dgutov@yandex.ru>
|
||||
|
||||
* programs.texi (Matching): Update WRT to the new
|
||||
`blink-matching-paren' behavior.
|
||||
|
||||
2014-03-13 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* mule.texi (International, Language Environments): Update
|
||||
the list of language environments to what Emacs currently
|
||||
supports. Add the full list to the index. Suggest C-h L for
|
||||
details rather than trying to give very brief details here.
|
||||
|
||||
2014-03-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cmdargs.texi (General Variables): Don't mention INCPATH,
|
||||
from the obsolete complete.el.
|
||||
|
||||
2014-03-12 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* mule.texi (International Chars): Adjust C-u C-x = description.
|
||||
Change it to match Emacs's current behavior. Also, change the
|
||||
example to use ê instead of À, as the isolated grave accent in the
|
||||
latter's decomposition listing was confusingly transliterated to
|
||||
left single quote in the PDF version of the manual.
|
||||
|
||||
2014-03-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* misc.texi (Saving Emacs Sessions): Be briefer about desktop's
|
||||
handling of frames.
|
||||
|
||||
* indent.texi (Indent Convenience): Mention electric-indent-local-mode.
|
||||
|
||||
2014-03-02 Xue Fuqiao <xfq@gnu.org>
|
||||
|
||||
* mark.texi (Mark):
|
||||
* killing.texi (Rectangles): Document `rectangle-mark-mode'.
|
||||
|
||||
2014-03-01 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* search.texi (Query Replace): Mention search-invisible.
|
||||
* text.texi (Outline Visibility): Mention search-invisible
|
||||
also affects query-replace.
|
||||
|
||||
2014-02-28 Xue Fuqiao <xfq@gnu.org>
|
||||
|
||||
* emacs.texi (Top):
|
||||
* programs.texi (Programs, Prettifying Symbols):
|
||||
Document `prettify-symbols-mode' and `global-prettify-symbols-mode'.
|
||||
|
||||
* misc.texi (Saving Emacs Sessions):
|
||||
Document some new desktop user options.
|
||||
|
||||
2014-02-27 Xue Fuqiao <xfq@gnu.org>
|
||||
|
||||
* programs.texi (Basic Indent, Other C Commands):
|
||||
Fix the description of RET and `C-j'.
|
||||
|
||||
* indent.texi (Indentation Commands): Move the description of
|
||||
`C-j' from here...
|
||||
* basic.texi (Inserting Text): ... to here.
|
||||
|
||||
2014-02-25 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* custom.texi (Terminal Init):
|
||||
Replace term-setup-hook with tty-setup-hook.
|
||||
|
||||
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 "screenshot" 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.
|
||||
|
@ -42,8 +633,8 @@
|
|||
(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,
|
||||
(.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)
|
||||
|
@ -543,6 +1134,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).
|
||||
|
@ -1030,7 +1626,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.
|
||||
|
@ -2228,7 +2824,7 @@
|
|||
|
||||
2011-05-22 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* mule.texi (Specify Coding, Text Coding, Communication Coding):
|
||||
* mule.texi (Specify Coding, Text Coding, Communication Coding)
|
||||
(File Name Coding, Terminal Coding): Add command names (Bug#8312).
|
||||
|
||||
2011-05-18 Glenn Morris <rgm@gnu.org>
|
||||
|
@ -2900,9 +3496,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>
|
||||
|
||||
|
@ -4719,7 +5315,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>
|
||||
|
@ -4866,10 +5462,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.
|
||||
|
@ -4912,8 +5504,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.
|
||||
|
@ -5465,6 +6055,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
|
||||
|
@ -5792,6 +6387,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".
|
||||
|
@ -6553,8 +7153,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.
|
||||
|
@ -9428,13 +10026,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>
|
||||
|
@ -9968,7 +10566,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)
|
||||
|
||||
|
@ -9988,7 +10586,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 @@
|
|||
### @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.
|
||||
|
||||
|
@ -143,8 +143,7 @@ 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
|
||||
|
@ -196,10 +195,14 @@ clean: mostlyclean
|
|||
rm -f emacs-manual-${version}.tar*
|
||||
|
||||
distclean: clean
|
||||
rm -f Makefile
|
||||
|
||||
## In the standalone tarfile, the clean rule runs this.
|
||||
infoclean:
|
||||
-cd $(buildinfodir) && rm -f emacs$(INFO_EXT) emacs$(INFO_EXT)-[1-9] emacs$(INFO_EXT)-[1-9][0-9]
|
||||
rm -f \
|
||||
$(buildinfodir)/emacs$(INFO_EXT) \
|
||||
$(buildinfodir)/emacs$(INFO_EXT)-[1-9] \
|
||||
$(buildinfodir)/emacs$(INFO_EXT)-[1-9][0-9]
|
||||
|
||||
maintainer-clean: distclean infoclean
|
||||
|
||||
|
@ -229,21 +232,21 @@ dist:
|
|||
.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)
|
||||
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)
|
||||
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)
|
||||
umask 022;$(MKDIR_P) "$(DESTDIR)$(pdfdir)"
|
||||
$(INSTALL_DATA) $(PDF_TARGETS) "$(DESTDIR)$(pdfdir)"
|
||||
install-ps: ps
|
||||
umask 022; $(MKDIR_P) $(DESTDIR)$(psdir)
|
||||
umask 022; $(MKDIR_P) "$(DESTDIR)$(psdir)"
|
||||
for file in $(PS_TARGETS); do \
|
||||
$(INSTALL_DATA) $${file} $(DESTDIR)$(psdir); \
|
||||
$(INSTALL_DATA) $${file} "$(DESTDIR)$(psdir)"; \
|
||||
[ -n "${GZIP_PROG}" ] || continue; \
|
||||
rm -f $(DESTDIR)$(psdir)/$${file}.gz; \
|
||||
${GZIP_PROG} -9n $(DESTDIR)$(psdir)/$${file}; \
|
||||
rm -f "$(DESTDIR)$(psdir)/$${file}.gz"; \
|
||||
${GZIP_PROG} -9n "$(DESTDIR)$(psdir)/$${file}"; \
|
||||
done
|
||||
|
||||
## Top-level Makefile installs the info pages.
|
||||
|
@ -254,20 +257,20 @@ install-doc: install-dvi install-html install-pdf install-ps
|
|||
|
||||
uninstall-dvi:
|
||||
for file in $(DVI_TARGETS); do \
|
||||
rm -f $(DESTDIR)$(dvidir)/$${file}; \
|
||||
rm -f "$(DESTDIR)$(dvidir)/$${file}"; \
|
||||
done
|
||||
uninstall-html:
|
||||
for file in $(HTML_TARGETS); do \
|
||||
rm -f $(DESTDIR)$(htmldir)/$${file}; \
|
||||
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}; \
|
||||
rm -f "$(DESTDIR)$(psdir)/$${file}$${ext}"; \
|
||||
done
|
||||
uninstall-pdf:
|
||||
for file in $(PDF_TARGETS); do \
|
||||
rm -f $(DESTDIR)$(pdfdir)/$${file}; \
|
||||
rm -f "$(DESTDIR)$(pdfdir)/$${file}"; \
|
||||
done
|
||||
|
||||
uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps
|
||||
|
|
|
@ -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: 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,8 +51,8 @@ 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
|
||||
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
|
||||
|
@ -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).
|
||||
|
@ -122,8 +122,8 @@ by Oliver Seidel), a package for maintaining @file{TODO} list files.
|
|||
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
|
||||
|
@ -276,7 +276,7 @@ over maintainership. Benjamin Andresen, Thomas Baumann, Joel Boehland, Jan Böc
|
|||
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
|
||||
|
@ -303,8 +303,7 @@ 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.
|
||||
|
@ -814,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;
|
||||
|
@ -884,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
|
||||
|
@ -979,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.
|
||||
|
||||
|
@ -1099,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.
|
||||
|
@ -1186,9 +1181,8 @@ written @file{easymenu.el}, a facility for defining Emacs menus;
|
|||
color; and also co-authored portions of CC mode.
|
||||
|
||||
@item
|
||||
Sam Steingold wrote @file{gulp.el}, a facility for asking package
|
||||
maintainers for updated versions of their packages via e-mail, and
|
||||
@file{midnight.el}, a package for running a command every midnight.
|
||||
Sam Steingold wrote @file{midnight.el}, a package for running a
|
||||
command every midnight.
|
||||
|
||||
@item
|
||||
Ake Stenhoff and Lars Lindberg wrote @file{imenu.el}, a framework for
|
||||
|
|
|
@ -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
|
||||
|
@ -17,8 +17,8 @@ Support for displaying and editing ``bidirectional'' text has been
|
|||
removed. Text is now always displayed on the screen in a single
|
||||
consistent direction---left to right---regardless of the underlying
|
||||
script. Similarly, @kbd{C-f} and @kbd{C-b} always move the text
|
||||
cursor to the right and left respectively. Also, @key{right} and
|
||||
@key{left} are now equivalent to @kbd{C-f} and @kbd{C-b}, as you might
|
||||
cursor to the right and left respectively. Also, @key{RIGHT} and
|
||||
@key{LEFT} are now equivalent to @kbd{C-f} and @kbd{C-b}, as you might
|
||||
expect, rather than moving forward or backward based on the underlying
|
||||
``paragraph direction''.
|
||||
|
||||
|
@ -36,7 +36,7 @@ and/or README file for details.
|
|||
|
||||
@item
|
||||
The option @code{delete-active-region} has been deleted. When the
|
||||
region is active, typing @key{DEL} or @key{delete} no longer deletes
|
||||
region is active, typing @key{DEL} or @key{Delete} no longer deletes
|
||||
the text in the region; it deletes a single character instead.
|
||||
|
||||
@item
|
||||
|
@ -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
|
||||
|
@ -103,15 +103,15 @@ arguments to list only some of the files. @file{*Find*} and
|
|||
This section is intended for Elisp programmers who would like to add
|
||||
support for auto-reverting new types of buffers.
|
||||
|
||||
To support auto-reverting the buffer must first of all have a
|
||||
To support auto-reverting the buffer must first of all have a suitable
|
||||
@code{revert-buffer-function}. @xref{Definition of
|
||||
revert-buffer-function,, Reverting, elisp, the Emacs Lisp Reference Manual}.
|
||||
|
||||
In addition, it @emph{must} have a @code{buffer-stale-function}.
|
||||
In addition, it must have a suitable @code{buffer-stale-function}.
|
||||
|
||||
@c FIXME only defvar in all of doc/emacs!
|
||||
@defvar buffer-stale-function
|
||||
The value of this variable is a function to check whether a non-file
|
||||
The value of this variable is a function to check whether a
|
||||
buffer needs reverting. This should be a function with one optional
|
||||
argument @var{noconfirm}. The function should return non-@code{nil}
|
||||
if the buffer should be reverted. The buffer is current when this
|
||||
|
@ -132,7 +132,7 @@ If you just want to automatically auto-revert every
|
|||
@code{auto-revert-interval} seconds (like the Buffer Menu), use:
|
||||
|
||||
@example
|
||||
(set (make-local-variable 'buffer-stale-function)
|
||||
(setq-local buffer-stale-function
|
||||
#'(lambda (&optional noconfirm) 'fast))
|
||||
@end example
|
||||
|
||||
|
@ -149,7 +149,7 @@ also be useful if the function is consulted for purposes other than
|
|||
auto-reverting.
|
||||
@end defvar
|
||||
|
||||
Once the buffer has a @code{revert-buffer-function} and a
|
||||
Once the buffer has a suitable @code{revert-buffer-function} and
|
||||
@code{buffer-stale-function}, several problems usually remain.
|
||||
|
||||
The buffer will only auto-revert if it is marked unmodified. Hence,
|
||||
|
|
|
@ -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
|
||||
|
@ -40,14 +40,20 @@ forward, so that point remains just after the inserted text.
|
|||
@xref{Point}.
|
||||
|
||||
@kindex RET
|
||||
@kindex C-j
|
||||
@cindex newline
|
||||
@c @findex electric-indent-just-newline
|
||||
To end a line and start a new one, type @key{RET} (@code{newline}).
|
||||
(The @key{RET} key may be labeled @key{Return} or @key{Enter} on your
|
||||
keyboard, but we refer to it as @key{RET} in this manual.) This
|
||||
command inserts a newline character into the buffer. If point is at
|
||||
the end of the line, the effect is to create a new blank line after
|
||||
it; if point is in the middle of a line, the line is split at that
|
||||
position.
|
||||
command inserts a newline character into the buffer, then indents
|
||||
(@pxref{Indentation}) according to the major mode. If point is at the end
|
||||
of the line, the effect is to create a new blank line after it and
|
||||
indent the new line; if point is in the middle of a line, the line is
|
||||
split at that position. To turn off the auto-indentation, you can
|
||||
either disable Electric Indent mode (@pxref{Indent Convenience}) or
|
||||
type @kbd{C-j}, which inserts just a newline, without any
|
||||
auto-indentation.
|
||||
|
||||
As we explain later in this manual, you can change the way Emacs
|
||||
handles text insertion by turning on @dfn{minor modes}. For instance,
|
||||
|
@ -61,7 +67,7 @@ instead of shoving it to the right. @xref{Minor Modes}.
|
|||
@findex quoted-insert
|
||||
Only graphic characters can be inserted by typing the associated
|
||||
key; other keys act as editing commands and do not insert themselves.
|
||||
For instance, @kbd{DEL} runs the command @code{delete-backward-char}
|
||||
For instance, @key{DEL} runs the command @code{delete-backward-char}
|
||||
by default (some modes bind it to a different command); it does not
|
||||
insert a literal @samp{DEL} character (@acronym{ASCII} character code
|
||||
127).
|
||||
|
@ -133,8 +139,8 @@ how many copies of the character to insert (@pxref{Arguments}).
|
|||
point (@pxref{Point}). The keyboard commands @kbd{C-f}, @kbd{C-b},
|
||||
@kbd{C-n}, and @kbd{C-p} move point to the right, left, down, and up,
|
||||
respectively. You can also move point using the @dfn{arrow keys}
|
||||
present on most keyboards: @kbd{@key{right}}, @kbd{@key{left}},
|
||||
@kbd{@key{down}}, and @kbd{@key{up}}; however, many Emacs users find
|
||||
present on most keyboards: @key{RIGHT}, @key{LEFT},
|
||||
@key{DOWN}, and @key{UP}; however, many Emacs users find
|
||||
that it is slower to use the arrow keys than the control keys, because
|
||||
you need to move your hand to the area of the keyboard where those
|
||||
keys are located.
|
||||
|
@ -150,7 +156,7 @@ keyboard commands that move point in more sophisticated ways.
|
|||
@findex forward-char
|
||||
Move forward one character (@code{forward-char}).
|
||||
|
||||
@item @key{right}
|
||||
@item @key{RIGHT}
|
||||
@kindex RIGHT
|
||||
@findex right-char
|
||||
@vindex visual-order-cursor-movement
|
||||
|
@ -170,7 +176,7 @@ away, depending on the surrounding bidirectional context.
|
|||
@findex backward-char
|
||||
Move backward one character (@code{backward-char}).
|
||||
|
||||
@item @key{left}
|
||||
@item @key{LEFT}
|
||||
@kindex LEFT
|
||||
@findex left-char
|
||||
This command (@code{left-char}) behaves like @kbd{C-b}, except it
|
||||
|
@ -181,7 +187,7 @@ left of the current screen position, moving to the previous or next
|
|||
screen line as appropriate.
|
||||
|
||||
@item C-n
|
||||
@itemx @key{down}
|
||||
@itemx @key{DOWN}
|
||||
@kindex C-n
|
||||
@kindex DOWN
|
||||
@findex next-line
|
||||
|
@ -190,7 +196,7 @@ to keep the horizontal position unchanged, so if you start in the
|
|||
middle of one line, you move to the middle of the next.
|
||||
|
||||
@item C-p
|
||||
@itemx @key{up}
|
||||
@itemx @key{UP}
|
||||
@kindex C-p
|
||||
@kindex UP
|
||||
@findex previous-line
|
||||
|
@ -216,8 +222,8 @@ Move to the end of the line (@code{move-end-of-line}).
|
|||
@findex forward-word
|
||||
Move forward one word (@code{forward-word}).
|
||||
|
||||
@item C-@key{right}
|
||||
@itemx M-@key{right}
|
||||
@item C-@key{RIGHT}
|
||||
@itemx M-@key{RIGHT}
|
||||
@kindex C-RIGHT
|
||||
@kindex M-RIGHT
|
||||
@findex right-word
|
||||
|
@ -230,12 +236,12 @@ right-to-left. @xref{Bidirectional Editing}.
|
|||
@findex backward-word
|
||||
Move backward one word (@code{backward-word}).
|
||||
|
||||
@item C-@key{left}
|
||||
@itemx M-@key{left}
|
||||
@item C-@key{LEFT}
|
||||
@itemx M-@key{LEFT}
|
||||
@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}.
|
||||
|
||||
|
@ -360,7 +366,7 @@ moves down into it.
|
|||
|
||||
@table @kbd
|
||||
@item @key{DEL}
|
||||
@itemx @key{Backspace}
|
||||
@itemx @key{BACKSPACE}
|
||||
Delete the character before point, or the region if it is active
|
||||
(@code{delete-backward-char}).
|
||||
|
||||
|
@ -388,20 +394,20 @@ the preceding newline, joining this line to the previous one.
|
|||
If, however, the region is active, @kbd{@key{DEL}} instead deletes
|
||||
the text in the region. @xref{Mark}, for a description of the region.
|
||||
|
||||
On most keyboards, @key{DEL} is labeled @key{Backspace}, but we
|
||||
On most keyboards, @key{DEL} is labeled @key{BACKSPACE}, but we
|
||||
refer to it as @key{DEL} in this manual. (Do not confuse @key{DEL}
|
||||
with the @key{Delete} key; we will discuss @key{Delete} momentarily.)
|
||||
On some text terminals, Emacs may not recognize the @key{DEL} key
|
||||
properly. @xref{DEL Does Not Delete}, if you encounter this problem.
|
||||
|
||||
The @key{delete} (@code{delete-forward-char}) command deletes in the
|
||||
The @key{Delete} (@code{delete-forward-char}) command deletes in the
|
||||
``opposite direction'': it deletes the character after point, i.e., the
|
||||
character under the cursor. If point was at the end of a line, this
|
||||
joins the following line onto this one. Like @kbd{@key{DEL}}, it
|
||||
deletes the text in the region if the region is active (@pxref{Mark}).
|
||||
|
||||
@kbd{C-d} (@code{delete-char}) deletes the character after point,
|
||||
similar to @key{delete}, but regardless of whether the region is
|
||||
similar to @key{Delete}, but regardless of whether the region is
|
||||
active.
|
||||
|
||||
@xref{Deletion}, for more detailed information about the above
|
||||
|
@ -717,7 +723,7 @@ M-5 C-n
|
|||
moves down five lines. The keys @kbd{M-1}, @kbd{M-2}, and so on, as
|
||||
well as @kbd{M--}, are bound to commands (@code{digit-argument} and
|
||||
@code{negative-argument}) that set up an argument for the next
|
||||
command. @kbd{Meta--} without digits normally means @minus{}1.
|
||||
command. @kbd{M--} without digits normally means @minus{}1.
|
||||
|
||||
If you enter more than one digit, you need not hold down the
|
||||
@key{META} key for the second and subsequent digits. Thus, to move
|
||||
|
|
|
@ -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,41 @@ 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, where @file{dir1} and @file{dir2} are the minimal parts of the
|
||||
leading directories needed to make the buffer name unique. For
|
||||
example, if you have files @file{/foo/bar/mumble/name} and
|
||||
@file{/baz/quux/mumble/name} visited, their buffers will be named
|
||||
@samp{name<bar/mumble>} and @samp{name<quux/mumble>} correspondingly.
|
||||
|
||||
@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 +650,32 @@ 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 @kbd{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.
|
||||
@kbd{M-@key{TAB}} will select the first completion in the list, like
|
||||
@kbd{C-j} but without exiting the minibuffer, so you can edit it
|
||||
further. This is typically used when entering a file name, where
|
||||
@kbd{M-@key{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
|
||||
|
@ -1005,7 +1005,7 @@ non-@code{nil}, the GDB Threads buffer is the one shown by default.
|
|||
The GDB Threads buffer displays a summary of the threads in the
|
||||
debugged program. @xref{Threads, Threads, Debugging programs with
|
||||
multiple threads, gdb, The GNU debugger}. To select a thread, move
|
||||
point there and type @key{RET} (@code{gdb-select-thread}), or click on
|
||||
point there and press @key{RET} (@code{gdb-select-thread}), or click on
|
||||
it with @kbd{Mouse-2}. This also displays the associated source
|
||||
buffer, and updates the contents of the other GDB buffers.
|
||||
|
||||
|
@ -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: utf-8 -*-
|
||||
@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
|
||||
|
@ -43,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
|
||||
|
@ -68,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
|
||||
|
@ -514,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á'í, Chinese, 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,
|
||||
|
@ -528,22 +531,27 @@ you must do this:
|
|||
@findex diary-islamic-mark-entries
|
||||
@findex diary-bahai-list-entries
|
||||
@findex diary-bahai-mark-entries
|
||||
@findex diary-chinese-list-entries
|
||||
@findex diary-chinese-mark-entries
|
||||
@smallexample
|
||||
(add-hook 'diary-nongregorian-listing-hook 'diary-hebrew-list-entries)
|
||||
(add-hook 'diary-nongregorian-marking-hook 'diary-hebrew-mark-entries)
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
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}.
|
||||
Similarly, for Islamic, Bahá'í and Chinese entries, add
|
||||
@code{diary-islamic-list-entries} and @code{diary-islamic-mark-entries},
|
||||
@code{diary-bahai-list-entries} and @code{diary-bahai-mark-entries},
|
||||
or @code{diary-chinese-list-entries} and @code{diary-chinese-mark-entries}.
|
||||
|
||||
@vindex diary-bahai-entry-symbol
|
||||
@vindex diary-chinese-entry-symbol
|
||||
@vindex diary-hebrew-entry-symbol
|
||||
@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-chinese-entry-symbol} (default
|
||||
@samp{C}) a Chinese 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).
|
||||
|
@ -570,7 +578,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á'í, Chinese, Hebrew, or Islamic calendars:
|
||||
|
||||
@table @kbd
|
||||
@item i h d
|
||||
|
@ -591,6 +599,14 @@ the Bahá'í, Hebrew, or Islamic calendars:
|
|||
@code{diary-bahai-insert-monthly-entry}
|
||||
@item i B y
|
||||
@code{diary-bahai-insert-yearly-entry}
|
||||
@item i C d
|
||||
@code{diary-chinese-insert-entry}
|
||||
@item i C m
|
||||
@code{diary-chinese-insert-monthly-entry}
|
||||
@item i C y
|
||||
@code{diary-chinese-insert-yearly-entry}
|
||||
@item i C a
|
||||
@code{diary-chinese-insert-anniversary-entry}
|
||||
@end table
|
||||
|
||||
@findex diary-hebrew-insert-entry
|
||||
|
@ -602,6 +618,11 @@ the Bahá'í, Hebrew, or Islamic calendars:
|
|||
@findex diary-bahai-insert-entry
|
||||
@findex diary-bahai-insert-monthly-entry
|
||||
@findex diary-bahai-insert-yearly-entry
|
||||
@findex diary-chinese-insert-entry
|
||||
@findex diary-chinese-insert-monthly-entry
|
||||
@findex diary-chinese-insert-yearly-entry
|
||||
@findex diary-chinese-insert-anniversary-entry
|
||||
|
||||
These commands work much like the corresponding commands for ordinary
|
||||
diary entries: they apply to the date that point is on in the calendar
|
||||
window, and what they do is insert just the date portion of a diary
|
||||
|
@ -631,7 +652,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
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@c This is part of the Emacs manual. -*- coding: utf-8 -*-
|
||||
@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 Calendar/Diary
|
||||
|
@ -288,7 +288,7 @@ Display the number of days in the current region
|
|||
@kindex M-= @r{(Calendar mode)}
|
||||
@findex calendar-count-days-region
|
||||
To determine the number of days in a range, set the mark on one
|
||||
date using @kbd{C-SPC}, move point to another date, and type @kbd{M-=}
|
||||
date using @kbd{C-@key{SPC}}, move point to another date, and type @kbd{M-=}
|
||||
(@code{calendar-count-days-region}). The numbers of days shown is
|
||||
@emph{inclusive}; that is, it includes the days specified by mark and
|
||||
point.
|
||||
|
@ -301,9 +301,10 @@ point.
|
|||
Display day-in-year (@code{calendar-print-day-of-year}).
|
||||
@item C-c C-l
|
||||
Regenerate the calendar window (@code{calendar-redraw}).
|
||||
@item SPC
|
||||
@item @key{SPC}
|
||||
Scroll the next window up (@code{scroll-other-window}).
|
||||
@item DEL
|
||||
@item @key{DEL}
|
||||
@itemx S-@key{SPC}
|
||||
Scroll the next window down (@code{scroll-other-window-down}).
|
||||
@item q
|
||||
Exit from calendar (@code{calendar-exit}).
|
||||
|
@ -326,8 +327,8 @@ date.
|
|||
non-Calendar-mode editing commands.)
|
||||
|
||||
@kindex SPC @r{(Calendar mode)}
|
||||
In Calendar mode, you can use @kbd{SPC} (@code{scroll-other-window})
|
||||
and @kbd{DEL} (@code{scroll-other-window-down}) to scroll the other
|
||||
In Calendar mode, you can use @key{SPC} (@code{scroll-other-window})
|
||||
and @key{DEL} (@code{scroll-other-window-down}) to scroll the other
|
||||
window (if there is one) up or down, respectively. This is handy when
|
||||
you display a list of holidays or diary entries in another window.
|
||||
|
||||
|
@ -1347,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
|
||||
|
@ -1615,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
|
||||
|
@ -431,7 +439,7 @@ special meanings in Emacs. Most of these variables are also used by
|
|||
some other programs. Emacs does not require any of these environment
|
||||
variables to be set, but it uses their values if they are set.
|
||||
|
||||
@table @env
|
||||
@vtable @env
|
||||
@item CDPATH
|
||||
Used by the @code{cd} command to search for the directory you specify,
|
||||
when you specify a relative directory name.
|
||||
|
@ -447,13 +455,18 @@ 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}. To specify an empty element in the
|
||||
middle of the list, use 2 colons in a row, as in
|
||||
@samp{EMACSLOADPATH="/tmp::/foo"}.
|
||||
@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
|
||||
|
@ -484,9 +497,12 @@ compatibility @file{C:/} will be used instead if a @file{.emacs} file
|
|||
is found there.
|
||||
@item HOSTNAME
|
||||
The name of the machine that Emacs is running on.
|
||||
@c complete.el is obsolete since 24.1.
|
||||
@ignore
|
||||
@item INCPATH
|
||||
A colon-separated list of directories. Used by the @code{complete} package
|
||||
to search for files.
|
||||
@end ignore
|
||||
@item INFOPATH
|
||||
A colon-separated list of directories in which to search for Info files.
|
||||
@item LC_ALL
|
||||
|
@ -584,14 +600,14 @@ defaults to @samp{root}.
|
|||
@item VERSION_CONTROL
|
||||
Used to initialize the @code{version-control} variable (@pxref{Backup
|
||||
Names}).
|
||||
@end table
|
||||
@end vtable
|
||||
|
||||
@node Misc Variables
|
||||
@appendixsubsec Miscellaneous Variables
|
||||
|
||||
These variables are used only on particular configurations:
|
||||
|
||||
@table @env
|
||||
@vtable @env
|
||||
@item COMSPEC
|
||||
On MS-DOS and MS-Windows, the name of the command interpreter to use
|
||||
when invoking batch files and commands internal to the shell. On MS-DOS
|
||||
|
@ -643,7 +659,7 @@ rather than hard-coding an absolute path. This allows multiple
|
|||
versions of Emacs to share the same environment variable settings, and
|
||||
it allows you to move the Emacs installation directory, without
|
||||
changing any environment or registry settings.
|
||||
@end table
|
||||
@end vtable
|
||||
|
||||
@node MS-Windows Registry
|
||||
@appendixsubsec The MS-Windows System Registry
|
||||
|
|
|
@ -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
|
||||
|
@ -35,35 +35,35 @@ Therefore, this manual mainly documents how to edit with the keyboard.
|
|||
@samp{3}, @samp{=}, and the space character (denoted as @key{SPC}),
|
||||
are entered by typing the corresponding key. @dfn{Control
|
||||
characters}, such as @key{RET}, @key{TAB}, @key{DEL}, @key{ESC},
|
||||
@key{F1}, @key{Home}, and @key{left}, are also entered this way, as
|
||||
@key{F1}, @key{Home}, and @key{LEFT}, are also entered this way, as
|
||||
are certain characters found on non-English keyboards
|
||||
(@pxref{International}).
|
||||
|
||||
@cindex modifier keys
|
||||
@cindex Control
|
||||
@cindex C-
|
||||
@cindex Meta
|
||||
@cindex META
|
||||
@cindex M-
|
||||
Emacs also recognizes control characters that are entered using
|
||||
@dfn{modifier keys}. Two commonly-used modifier keys are
|
||||
@key{Control} (usually labeled @key{Ctrl}), and @key{Meta} (usually
|
||||
labeled @key{Alt})@footnote{We refer to @key{Alt} as @key{Meta} for
|
||||
@key{Control} (usually labeled @key{Ctrl}), and @key{META} (usually
|
||||
labeled @key{Alt})@footnote{We refer to @key{Alt} as @key{META} for
|
||||
historical reasons.}. For example, @kbd{Control-a} is entered by
|
||||
holding down the @key{Ctrl} key while pressing @kbd{a}; we will refer
|
||||
to this as @kbd{C-a} for short. Similarly @kbd{Meta-a}, or @kbd{M-a}
|
||||
to this as @kbd{C-a} for short. Similarly @kbd{@key{META}-a}, or @kbd{M-a}
|
||||
for short, is entered by holding down the @key{Alt} key and pressing
|
||||
@kbd{a}. Modifier keys can also be applied to non-alphanumerical
|
||||
characters, e.g., @kbd{C-@key{F1}} or @kbd{M-@key{left}}.
|
||||
characters, e.g., @kbd{C-@key{F1}} or @kbd{M-@key{LEFT}}.
|
||||
|
||||
@cindex @key{ESC} replacing @key{Meta} key
|
||||
@cindex @key{ESC} replacing @key{META} key
|
||||
You can also type Meta characters using two-character sequences
|
||||
starting with @key{ESC}. Thus, you can enter @kbd{M-a} by typing
|
||||
@kbd{@key{ESC} a}. You can enter @kbd{C-M-a} by typing @kbd{@key{ESC}
|
||||
C-a}. Unlike @key{Meta}, @key{ESC} is entered as a separate
|
||||
C-a}. Unlike @key{META}, @key{ESC} is entered as a separate
|
||||
character. You don't hold down @key{ESC} while typing the next
|
||||
character; instead, press @key{ESC} and release it, then enter the
|
||||
next character. This feature is useful on certain text terminals
|
||||
where the @key{Meta} key does not function reliably.
|
||||
where the @key{META} key does not function reliably.
|
||||
|
||||
@cindex keys stolen by window manager
|
||||
@cindex window manager, keys stolen by
|
||||
|
|
|
@ -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
|
||||
|
@ -573,7 +573,7 @@ directory specified by the variable @code{custom-theme-directory}
|
|||
which are distributed with Emacs, which customize Emacs's faces to fit
|
||||
various color schemes. (Note, however, that Custom themes need not be
|
||||
restricted to this purpose; they can be used to customize variables
|
||||
too).
|
||||
too.)
|
||||
|
||||
@vindex custom-theme-load-path
|
||||
If you want Emacs to look for Custom themes in some other directory,
|
||||
|
@ -1766,11 +1766,11 @@ historical.
|
|||
characters case-sensitive when you customize Emacs. For instance, you
|
||||
could make @kbd{M-a} and @kbd{M-A} run different commands.
|
||||
|
||||
Although only the @key{Control} and @key{Meta} modifier keys are
|
||||
Although only the @key{Control} and @key{META} modifier keys are
|
||||
commonly used, Emacs supports three other modifier keys. These are
|
||||
called @key{Super}, @key{Hyper} and @key{Alt}. Few terminals provide
|
||||
ways to use these modifiers; the key labeled @key{Alt} on most
|
||||
keyboards usually issues the @key{Meta} modifier, not @key{Alt}. The
|
||||
keyboards usually issues the @key{META} modifier, not @key{Alt}. The
|
||||
standard key bindings in Emacs do not include any characters with
|
||||
these modifiers. However, you can customize Emacs to assign meanings
|
||||
to them. The modifier bits are labeled as @samp{s-}, @samp{H-} and
|
||||
|
@ -1795,10 +1795,10 @@ the corresponding Lisp symbol. Here are the conventional Lisp names for
|
|||
common function keys:
|
||||
|
||||
@table @asis
|
||||
@item @code{left}, @code{up}, @code{right}, @code{down}
|
||||
@item @code{LEFT}, @code{UP}, @code{RIGHT}, @code{DOWN}
|
||||
Cursor arrow keys.
|
||||
|
||||
@item @code{begin}, @code{end}, @code{home}, @code{next}, @code{prior}
|
||||
@item @code{Begin}, @code{End}, @code{Home}, @code{next}, @code{prior}
|
||||
Other cursor repositioning keys.
|
||||
|
||||
@item @code{select}, @code{print}, @code{execute}, @code{backtab}
|
||||
|
@ -1860,7 +1860,7 @@ started out as names for certain @acronym{ASCII} control characters,
|
|||
used so often that they have special keys of their own. For instance,
|
||||
@key{TAB} was another name for @kbd{C-i}. Later, users found it
|
||||
convenient to distinguish in Emacs between these keys and the ``same''
|
||||
control characters typed with the @key{CTRL} key. Therefore, on most
|
||||
control characters typed with the @key{Ctrl} key. Therefore, on most
|
||||
modern terminals, they are no longer the same: @key{TAB} is different
|
||||
from @kbd{C-i}.
|
||||
|
||||
|
@ -2187,8 +2187,8 @@ 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
|
||||
a Meta character, as in @samp{\M-a} for @kbd{@key{META}-A} or
|
||||
@samp{\M-\C-a} for @kbd{@key{Ctrl}-@key{META}-A}.
|
||||
|
||||
@xref{Init Non-ASCII}, for information about including
|
||||
non-@acronym{ASCII} in your init file.
|
||||
|
@ -2445,13 +2445,17 @@ harmless, so those do not need a conditional.
|
|||
@node Terminal Init
|
||||
@subsection Terminal-specific Initialization
|
||||
|
||||
@vindex term-file-aliases
|
||||
Each terminal type can have a Lisp library to be loaded into Emacs when
|
||||
it is run on that type of terminal. For a terminal type named
|
||||
@var{termtype}, the library is called @file{term/@var{termtype}} and it is
|
||||
@var{termtype}, the library is called @file{term/@var{termtype}}.
|
||||
(If there is an entry of the form @code{(@var{termtype} . @var{alias})}
|
||||
in the @code{term-file-aliases} association list, Emacs uses
|
||||
@var{alias} in place of @var{termtype}.) The library is
|
||||
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
|
||||
|
@ -2466,7 +2470,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
|
||||
|
@ -2474,8 +2478,8 @@ variable @code{term-file-prefix} and the terminal type. Your @file{.emacs}
|
|||
file can prevent the loading of the terminal-specific library by setting
|
||||
@code{term-file-prefix} to @code{nil}.
|
||||
|
||||
@vindex term-setup-hook
|
||||
Emacs runs the hook @code{term-setup-hook} at the end of
|
||||
@vindex tty-setup-hook
|
||||
Emacs runs the hook @code{tty-setup-hook} at the end of
|
||||
initialization, after both your @file{.emacs} file and any
|
||||
terminal-specific library have been read in. Add hook functions to this
|
||||
hook if you wish to override part of any of the terminal-specific
|
||||
|
|
|
@ -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
|
||||
|
@ -1311,19 +1312,19 @@ takes a long time if the directory contains many image files, and it
|
|||
asks for confirmation if the number of image files exceeds
|
||||
@code{image-dired-show-all-from-dir-max-files}.
|
||||
|
||||
With point in the thumbnail buffer, you can type @kbd{RET}
|
||||
With point in the thumbnail buffer, you can type @key{RET}
|
||||
(@code{image-dired-display-thumbnail-original-image}) to display a
|
||||
sized version of it in another window. This sizes the image to fit
|
||||
the window. Use the arrow keys to move around in the buffer. For
|
||||
easy browsing, use @kbd{SPC}
|
||||
easy browsing, use @key{SPC}
|
||||
(@code{image-dired-display-next-thumbnail-original}) to advance and
|
||||
display the next image. Typing @kbd{DEL}
|
||||
display the next image. Typing @key{DEL}
|
||||
(@code{image-dired-display-previous-thumbnail-original}) backs up to
|
||||
the previous thumbnail and displays that instead.
|
||||
|
||||
@vindex image-dired-external-viewer
|
||||
To view and the image in its original size, either provide a prefix
|
||||
argument (@kbd{C-u}) before pressing @kbd{RET}, or type
|
||||
argument (@kbd{C-u}) before pressing @key{RET}, or type
|
||||
@kbd{C-@key{RET}} (@code{image-dired-thumbnail-display-external}) to
|
||||
display the image in an external viewer. You must first configure
|
||||
@code{image-dired-external-viewer}.
|
||||
|
@ -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-@key{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
|
||||
|
@ -917,6 +928,12 @@ 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.
|
||||
|
||||
|
@ -965,8 +982,8 @@ initial lower-case letters will become case insensitive.
|
|||
@findex highlight-symbol-at-point
|
||||
@cindex symbol, highlighting
|
||||
@cindex highlighting symbol at point
|
||||
Highlight the symbol found near point without prompting, using the next
|
||||
available face automatically (@code{highlight-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
|
||||
|
@ -1314,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
|
||||
|
@ -1462,17 +1479,30 @@ 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
|
||||
@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
|
||||
off'' by customizing the list variable @code{blink-cursor-alist}.
|
||||
Each element in the list should have the form @code{(@var{on-type}
|
||||
. @var{off-type})}; this means that if the cursor is displayed as
|
||||
@var{on-type} when it blinks on (where @var{on-type} is one of the
|
||||
cursor types described above), then it is displayed as @var{off-type}
|
||||
when it blinks off.
|
||||
By default, the cursor stops blinking after 10 blinks, if Emacs does
|
||||
not get any input during that time; any input event restarts the
|
||||
count. You can customize the variable @code{blink-cursor-blinks} to
|
||||
control that: its value says how many times to blink without input
|
||||
before stopping. Setting that variable to a zero or negative value
|
||||
will make the cursor blink forever. To disable cursor blinking
|
||||
altogether, change the variable @code{blink-cursor-mode} to @code{nil}
|
||||
(@pxref{Easy Customization}), or add the line
|
||||
|
||||
@lisp
|
||||
(blink-cursor-mode 0)
|
||||
@end lisp
|
||||
|
||||
@noindent
|
||||
to your init file. Alternatively, you can change how the cursor
|
||||
looks when it ``blinks off'' by customizing the list variable
|
||||
@code{blink-cursor-alist}. Each element in the list should have the
|
||||
form @code{(@var{on-type} . @var{off-type})}; this means that if the
|
||||
cursor is displayed as @var{on-type} when it blinks on (where
|
||||
@var{on-type} is one of the cursor types described above), then it is
|
||||
displayed as @var{off-type} when it blinks off.
|
||||
|
||||
@vindex x-stretch-cursor
|
||||
@cindex wide block cursor
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue