1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-29 19:48:19 +00:00

Merge from trunk

This commit is contained in:
Stefan Monnier 2010-06-18 10:13:59 -04:00
commit 894e369ddf
47 changed files with 40879 additions and 38888 deletions

View File

@ -1,6 +1,15 @@
2010-06-16 Chong Yidong <cyd@stupidchicken.com>
* INSTALL: Update font information (Bug#6389).
2010-06-16 Glenn Morris <rgm@gnu.org>
* INSTALL: General update.
2010-06-12 Glenn Morris <rgm@gnu.org>
* Makefile.in (install-arch-indep): Delete any old info .gz files first.
* Makefile.in (install-arch-indep): Delete any old info .gz files
first.
2010-06-11 Glenn Morris <rgm@gnu.org>

339
INSTALL
View File

@ -5,32 +5,38 @@ Copyright (C) 1992, 1994, 1996, 1997, 2000, 2001, 2002, 2003, 2004,
See the end of the file for license conditions.
This file contains general information. For more specific information
for the Windows, GNUstep/Mac OS X, and MS-DOS ports, also see the files
nt/INSTALL nextstep/INSTALL, and msdos/INSTALL. For information
specific to building from a Bazaar checkout (rather than a release), see
the file INSTALL.BZR.
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.
BASIC INSTALLATION
The simplest way to build Emacs is to use the `configure' shell script
which attempts to guess correct values for various system-dependent
variables and features and find the directories where various system
headers and libraries are kept. It then creates a `Makefile' in each
subdirectory and a `config.h' file containing system-dependent
definitions. Running the `make' utility then builds the package for
your system.
On most Unix systems, you build Emacs by first running the `configure'
shell script. This attempts to deduce the correct values for
various system-dependent variables and features, and find the
directories where certain system headers and libraries are kept.
In a few cases, you may need to explicitly tell configure where to
find some things, or what options to use.
`configure' creates a `Makefile' in several subdirectories, and a
`src/config.h' file containing system-dependent definitions.
Running the `make' utility then builds the package for your system.
Here's the procedure to build Emacs using `configure' on systems which
are supported by it. If this simplified procedure fails, or if you
are using a platform such as MS-Windows, where `configure' script
doesn't work, you might need to use various non-default options, and
maybe perform some of the steps manually. The more detailed
description in the rest of the sections of this guide will help you do
that, so please refer to them if the simple procedure does not work.
are supported by it. In some cases, if the simplified procedure fails,
you might need to use various non-default options, and maybe perform
some of the steps manually. The more detailed description in the other
sections of this guide will help you do that, so please refer to those
sections if you need to.
1. Make sure your system has at least 120 MB of free disk space.
1. Unpacking the Emacs 23.2 release requires about 170 MB of free
disk space. Building Emacs uses about another 60 MB of space.
The final installed Emacs uses about 120 MB of disk space.
This includes the space-saving that comes from automatically
compressing the Lisp source files on installation.
2a. `cd' to the directory where you unpacked Emacs and invoke the
`configure' script:
@ -43,8 +49,8 @@ that, so please refer to them if the simple procedure does not work.
SOURCE-DIR/configure
where SOURCE-DIR is the top-level Emacs source directory. This
may not work unless you use GNU make.
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
@ -52,17 +58,18 @@ that, so please refer to them if the simple procedure does not work.
system names, wrong places for headers or libraries, missing
libraries that you know are installed on your system, etc.
If you find anything wrong, you will have to pass to `configure'
explicit machine configuration name, and one or more options
which tell it where to find various headers and libraries; refer
to DETAILED BUILDING AND INSTALLATION section below.
If you find anything wrong, you may have to pass to `configure'
one or more options specifying the explicit machine configuration
name, where to find various headers and libraries, etc.
Refer to the section DETAILED BUILDING AND INSTALLATION below.
If `configure' didn't find some 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 (optional) image support libraries,
such as Xpm, jpeg, etc., and you want to use them, refer to the
subsection "Image support libraries" below.
If the details printed by `configure' don't make any sense to
you, assume that `configure' did its job and proceed.
you, but there are no obvious errors, assume that `configure' did
its job and proceed.
4. If you need to run the `configure' script more than once (e.g.,
with some non-default options), always clean the source
@ -79,7 +86,7 @@ that, so please refer to them if the simple procedure does not work.
in the `src' directory. You can try this program, to make sure
it works:
src/emacs -q
src/emacs -Q
7. Assuming that the program `src/emacs' starts and displays its
opening screen, you can install the program and its auxiliary
@ -93,9 +100,13 @@ that, so please refer to them if the simple procedure does not work.
make clean
You can also save some space by compressing (with `gzip') Info files
and installed Lisp source (.el) files which have corresponding .elc
versions.
You can delete the entire build directory if you do not plan to
build Emacs again, but it can be useful to keep for debugging.
Note that the install automatically saves space by compressing
(provided you have the `gzip' program) those installed Lisp source (.el)
files that have corresponding .elc versions. You may also wish
to compress the installed Info files.
ADDITIONAL DISTRIBUTION FILES
@ -157,19 +168,15 @@ 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.
Here's the list of these optional libraries, and the URLs where they
can be found:
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):
. libXaw3d for fancy 3D-style
scroll bars: ftp://ftp.x.org/contrib/widgets/Xaw3d/
. libxpm for XPM: ftp://ftp.x.org/contrib/libraries/
Get version 3.4k or later, which lets Emacs
use its own color allocation functions.
. libpng for PNG: ftp://ftp.simplesystems.org/pub/libpng/png/
. 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: ftp://ftp.uu.net/graphics/jpeg/
Get version 6b -- 6a is reported to fail in
Emacs.
. libjpeg for JPEG: http://www.ijg.org/
. libtiff for TIFF: http://www.libtiff.org/
. libgif for GIF: http://sourceforge.net/projects/giflib/
@ -178,61 +185,38 @@ Emacs will configure itself to build with these libraries if 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'. See below for more details.
--without-LIB options to `configure', if you need to.
* Extra fonts
The Emacs distribution does not include fonts and does not install
them. You must do that yourself.
them.
Emacs running on the GNU system supports both X fonts and local fonts
(i.e. the fonts managed by the fontconfig library).
For `Unicode' (ISO 10646) X fonts, see
<URL:http://czyborra.com/unifont/> (packaged in Debian),
<URL:http://openlab.ring.gr.jp/efont/> (packaged in Debian). (In
recent Debian versions, there is an extensive `misc-fixed' iso10646-1
in the default X installation.) Perhaps also see
<URL:http://www.cl.cam.ac.uk/%7Emgk25/ucs-fonts.html>.
<URL:http://czyborra.com/charsets/> has basic fonts for Emacs's
ISO-8859 charsets.
XFree86 release 4 (from <URL:ftp://ftp.xfree86.org/pub/XFree86/> and mirrors)
contains font support for most, if not all, of the charsets that Emacs
currently supports, including iso10646-1 encoded fonts for use with
the mule-unicode charsets. The font files should also be usable with
older X releases. Note that XFree 4 contains many iso10646-1 fonts
with minimal character repertoires, which can cause problems -- see
etc/PROBLEMS.
BDF Unicode fonts etl-unicode.tar.gz are available from
<URL:ftp://ftp.x.org/contrib/fonts/> and
<URL:ftp://ftp.xfree86.org/pub/mirror/X.Org/contrib/fonts/>. These
fonts can also be used by ps-print and ps-mule to print Unicode
characters.
Finally, the Web page <URL:http://www.gnu.org/software/freefont/>
lists a large number of free Unicode fonts.
On the GNU system, Emacs supports both X fonts and local fonts
(i.e. fonts managed by the fontconfig library). If you need more
fonts than your distribution normally provides, you must install them
yourself. See <URL:http://www.gnu.org/software/freefont/> for a large
number of free Unicode fonts.
* GNU/Linux development packages
Many GNU/Linux systems do not come with development packages by
default; they just include the files that you need to run Emacs, but
not those you need to compile it. For example, to compile Emacs with
X11 support, you may need to install the special `X11 development'
package. For example, in April 2003, the package names to install
were `XFree86-devel' and `Xaw3d-devel' on Red Hat. On Debian, the
packages necessary to build the installed version should be
sufficient; they can be installed using `apt-get build-dep emacs21' in
Debian 3 and above.
Many GNU/Linux systems do not come with development packages by default;
they include the files that you need to run Emacs, but not those you
need to compile it. For example, to compile Emacs with support for X
and graphics libraries, you may need to install the `X development'
package(s), and development versions of the jpeg, png, etc. packages.
The names of the packages that you need varies according to the
GNU/Linux distribution that you use, and the options that you want to
configure Emacs with. On Debian-based systems, you can install all the
packages needed to build the installed version of Emacs with a command
like `apt-get build-dep emacs23'.
DETAILED BUILDING AND INSTALLATION:
(This is for a Unix or Unix-like system. For MS-DOS and Windows 3.X,
see msdos/INSTALL. For Windows 9X, Windows ME, Windows NT, Windows
2000, Windows XP/2003, and Windows Vista/2008, see the file
(This is for a Unix or Unix-like system. For MS-DOS and MS Windows 3.X,
see msdos/INSTALL. For later versions of MS Windows, see the file
nt/INSTALL. For GNUstep and Mac OS X, see nextstep/INSTALL.)
1) Make sure your system has enough swapping space allocated to handle
@ -240,21 +224,20 @@ a program whose pure code is 1.5 MB and whose data area is at
least 2.8 MB and can reach 100 MB or more. If the swapping space is
insufficient, you will get an error in the command `temacs -batch -l
loadup dump', found in `./src/Makefile.in', or possibly when
running the final dumped Emacs.
running the final dumped Emacs. (This should not be an issue
on any recent system.)
Building Emacs requires about 140 MB of disk space (including the
Emacs sources) Once installed, Emacs occupies about 77 MB in the file
Building Emacs requires about 230 MB of disk space (including the
Emacs sources). Once installed, Emacs occupies about 120 MB in the file
system where it is installed; this includes the executable files, Lisp
libraries, miscellaneous data files, and on-line documentation. If
the building and installation take place in different directories,
then the installation procedure momentarily requires 140+77 MB.
then the installation procedure momentarily requires 230+120 MB.
2) Consult `./etc/MACHINES' to see what configuration name you should
give to the `configure' program. That file offers hints for
getting around some possible installation problems. The file lists
many different configurations, but only the part for your machine and
operating system is relevant. (The list is arranged in alphabetical
order by the vendor name.)
2) In the unlikely event that `configure' does not detect your system
type correctly, consult `./etc/MACHINES' to see what --host, --build
options you should pass to `configure'. That file also offers hints
for getting around some possible installation problems.
3) You can build Emacs in the top-level Emacs source directory
or in a separate directory.
@ -262,15 +245,10 @@ or in a separate directory.
3a) To build in the top-level Emacs source directory, go to that
directory and run the program `configure' as follows:
./configure [CONFIGURATION-NAME] [--OPTION[=VALUE]] ...
./configure [--OPTION[=VALUE]] ...
The CONFIGURATION-NAME argument should be a configuration name given
in `./etc/MACHINES', with the system version number added at the end.
You should try first omitting CONFIGURATION-NAME. This way,
`configure' will try to guess your system type. If it cannot guess,
or if something goes wrong in building or installing Emacs this way,
try again specifying the proper CONFIGURATION-NAME explicitly.
If `configure' cannot determine your system type, try again
specifying the proper --build, --host options explicitly.
If you don't want X support, specify `--with-x=no'. If you omit this
option, `configure' will try to figure out for itself whether your
@ -285,20 +263,19 @@ 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 `athena', `motif' or `gtk' (`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 LessTif/Motif, if you have the
Xaw3d library installed (see "Image support libraries" above for Xaw3d
availability).
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).
If `--with-x-toolkit=gtk' is specified, 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.4 or
newer is required for Emacs.
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.
The Emacs mail reader RMAIL is configured to be able to read mail from
a POP3 server by default. Versions of the POP protocol older than
@ -325,10 +302,10 @@ or more of these options:
Use --without-toolkit-scroll-bars to disable LessTif/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.
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.
Use --disable-largefile omits support for files larger than 2GB on
Use --disable-largefile to omit support for files larger than 2GB on
systems which support that.
Use --without-sound to disable sound support.
@ -338,11 +315,11 @@ should put emacs and its data files. This defaults to `/usr/local'.
- Emacs (and the other utilities users run) go in PREFIXDIR/bin
(unless the `--exec-prefix' option says otherwise).
- The architecture-independent files go in PREFIXDIR/share/emacs/VERSION
(where VERSION is the version number of Emacs, like `19.27').
(where VERSION is the version number of Emacs, like `23.2').
- The architecture-dependent files go in
PREFIXDIR/libexec/emacs/VERSION/CONFIGURATION
(where CONFIGURATION is the configuration name, like mips-dec-ultrix4.2),
unless the `--exec-prefix' option says otherwise.
(where CONFIGURATION is the configuration name, like
i686-pc-linux-gnu), unless the `--exec-prefix' option says otherwise.
The `--exec-prefix=EXECDIR' option allows you to specify a separate
portion of the directory tree for installing architecture-specific
@ -354,17 +331,16 @@ EXECDIR/bin should be a directory that is normally in users' PATHs.
For example, the command
./configure mips-dec-ultrix --with-x11
./configure --build=i386-linux-gnu --without-sound
configures Emacs to build for a DECstation running Ultrix, with
support for the X11 window system.
configures Emacs to build for a 32-bit GNU/Linux distribution,
without sound support.
`configure' doesn't do any compilation or installation
itself. It just creates the files that influence those things:
`./Makefile', `lib-src/Makefile', `oldXMenu/Makefile',
`lwlib/Makefile', `src/Makefile', and `./src/config.h'. For details
on exactly what it does, see the section called `CONFIGURATION BY
HAND', below.
`configure' doesn't do any compilation or installation itself.
It just creates the files that influence those things:
`./Makefile' in the top-level directory and several subdirectories;
and `./src/config.h'. For details on exactly what it does, see the
section called `CONFIGURATION BY HAND', below.
When it is done, `configure' prints a description of what it did and
creates a shell script `config.status' which, when run, recreates the
@ -406,7 +382,7 @@ shell such as Bash, which uses these variables:
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
switch to the compiler, and link against libfoo.a and libbar.a
switch to the compiler, and link against libfoo and libbar
libraries in addition to the standard ones.
For some libraries, like Gtk+, fontconfig and ALSA, `configure' uses
@ -436,14 +412,9 @@ 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'.
3c) Some people try to build in a separate directory by filling
it full of symlinks to the files in the real source directory.
If you do that, `make all' does work, but `make install' fails:
it copies the symbolic links rather than the actual files.
As far as is known, there is no particular reason to use
a directory full of links rather than use the standard GNU
facilities to build in a separate directory (see 3b above).
(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) Look at `./lisp/paths.el'; if some of those values are not right
for your system, set up the file `./lisp/site-init.el' with Emacs
@ -454,7 +425,7 @@ rather than `defvar', as used by `./lisp/paths.el'. For example,
(setq news-inews-program "/usr/bin/inews")
is how you would override the default value of the variable
news-inews-program (which is "/usr/local/inews").
news-inews-program.
Before you override a variable this way, *look at the value* that the
variable gets by default! Make sure you know what kind of value the
@ -473,18 +444,11 @@ 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!
Note that, on some systems, the code you place in site-init.el must
not use expand-file-name or any other function which may look
something up in the system's password and user information database.
See `./etc/PROBLEMS' for more details on which systems this affects.
The `site-*.el' files are nonexistent in the distribution. You do not
need to create them if you have nothing to put in them.
6) Refer to the file `./etc/TERMS' for information on fields you may
wish to add to various termcap entries. The files `./etc/termcap.ucb'
and `./etc/termcap.dat' may already contain appropriately-modified
entries.
wish to add to various termcap entries. (This is unlikely to be necessary.)
7) Run `make' in the top directory of the Emacs distribution to finish
building Emacs in the standard way. The final executable file is
@ -498,11 +462,11 @@ are installed in the following directories:
`/usr/local/bin' holds the executable programs users normally run -
`emacs', `etags', `ctags', `b2m', `emacsclient',
and `rcs-checkin'.
`grep-changelog', and `rcs-checkin'.
`/usr/local/share/emacs/VERSION/lisp' holds the Emacs Lisp library;
`VERSION' stands for the number of the Emacs version
you are installing, like `18.59' or `19.27'. Since the
you are installing, like `23.1' or `23.2'. Since the
Lisp library changes from one version of Emacs to
another, including the version number in the path
allows you to have several versions of Emacs installed
@ -510,18 +474,17 @@ are installed in the following directories:
make Emacs unavailable while installing a new version.
`/usr/local/share/emacs/VERSION/etc' holds the Emacs tutorial, the DOC
file, the `yow' database, and other
architecture-independent files Emacs might need while
running. VERSION is as specified for `.../lisp'.
file, and other architecture-independent files Emacs
might need while running.
`/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME' contains executable
programs used by Emacs that users are not expected to
run themselves.
`VERSION' is the number of the Emacs version you are
installing, and `CONFIGURATION-NAME' is the argument
you gave to the `configure' program to identify the
installing, and `CONFIGURATION-NAME' is the value
deduced by the `configure' program to identify the
architecture and operating system of your machine,
like `mips-dec-ultrix' or `sparc-sun-sunos'. Since
like `i686-pc-linux-gnu' or `sparc-sun-sunos'. Since
these files are specific to the version of Emacs,
operating system, and architecture in use, including
the configuration name in the path allows you to have
@ -533,10 +496,9 @@ are installed in the following directories:
`/usr/local/share/info' holds the on-line documentation for Emacs,
known as "info files". Many other GNU programs are
documented using info files as well, so this directory
stands apart from the other, Emacs-specific
directories.
stands apart from the other, Emacs-specific directories.
`/usr/local/man/man1' holds the man pages for the programs installed
`/usr/local/share/man/man1' holds the man pages for the programs installed
in `/usr/local/bin'.
Any version of Emacs, whether installed or not, also looks for Lisp
@ -599,10 +561,9 @@ Here is a complete list of the variables you may want to set.
defaults to /usr/local/share. We create the following
subdirectories under `datadir':
- `emacs/VERSION/lisp', containing the Emacs Lisp library, and
- `emacs/VERSION/etc', containing the Emacs tutorial, the DOC
file, and the `yow' database.
- `emacs/VERSION/etc', containing the tutorials, DOC file, etc.
`VERSION' is the number of the Emacs version you are installing,
like `18.59' or `19.0'. Since these files vary from one version
like `23.1' or `23.2'. Since these files vary from one version
of Emacs to another, including the version number in the path
allows you to have several versions of Emacs installed at the
same time; this means that you don't have to make Emacs
@ -615,29 +576,23 @@ Here is a complete list of the variables you may want to set.
programs used by Emacs that users are not expected to run
themselves.
`VERSION' is the number of the Emacs version you are installing,
and `CONFIGURATION-NAME' is the argument you gave to the
and `CONFIGURATION-NAME' is the value deduced by the
`configure' program to identify the architecture and operating
system of your machine, like `mips-dec-ultrix' or
`sparc-sun-sunos'. Since these files are specific to the version
of Emacs, operating system, and architecture in use, including
the configuration name in the path allows you to have several
versions of Emacs for any mix of machines and operating systems
installed at the same time; this is useful for sites at which
different kinds of machines share the file system Emacs is
installed on.
system of your machine, like `i686-pc-linux-gnu' or `sparc-sun-sunos'.
Since these files are specific to the version of Emacs,
operating system, and architecture in use, including the
configuration name in the path allows you to have several
versions of Emacs for any mix of machines and operating
systems installed at the same time; this is useful for sites
at which different kinds of machines share the file system
Emacs is installed on.
`infodir' indicates where to put the info files distributed with
Emacs; it defaults to `/usr/local/share/info'.
`mandir' indicates where to put the man pages for Emacs and its
utilities (like `etags'); it defaults to
`/usr/local/man/man1'.
`manext' gives the extension the man pages should be installed with.
It should contain a period, followed by the appropriate
digit. It defaults to `.1'. For example given the default
values for `mandir' and `manext', the Emacs man page would be
installed as `/usr/local/man/man1/emacs.1'.
`/usr/local/share/man/man1'.
`prefix' doesn't give a path for any specific part of Emacs; instead,
its value is used to determine the defaults for all the
@ -659,7 +614,7 @@ Here is a complete list of the variables you may want to set.
path variables - `bindir' and `libexecdir'.
The above variables serve analogous purposes in the makefiles for all
GNU software; this variable is specific to Emacs.
GNU software; the following variable is specific to Emacs.
`archlibdir' indicates where Emacs installs and expects the executable
files and other architecture-dependent data it uses while
@ -675,7 +630,7 @@ settings persist, you can edit them into the `Makefile' in the top
directory, but be aware that running the `configure' program erases
`Makefile' and rebuilds it from `Makefile.in'.
The path for finding Lisp files is specified in src/paths.h,
The path for finding Lisp files is specified in src/epaths.h,
a file which is generated by running configure. To change the path,
you can edit the definition of PATH_LOADSEARCH in that file
before you run `make'.
@ -717,15 +672,15 @@ BUILDING GNU EMACS BY HAND
Once Emacs is configured, running `make' in the top directory performs
the following steps.
1) Run `make src/paths.h' in the top directory. This produces
`./src/paths.h' from the template file `./src/paths.in', changing
1) Run `make epaths-force' in the top directory. This produces
`./src/epaths.h' from the template file `./src/epaths.in', changing
the paths to the values specified in `./Makefile'.
2) Go to directory `./lib-src' and run `make'. This creates
executables named `ctags' and `etags' and `make-docfile' and
`digest-doc' and `test-distrib'. And others.
3) Go to directory `./src' and Run `make'. This refers to files in
3) Go to directory `./src' and run `make'. This refers to files in
the `./lisp' and `./lib-src' subdirectories using names `../lisp' and
`../lib-src'.
@ -737,8 +692,7 @@ It also creates a file in `./etc' whose name is `DOC' followed by the
current Emacs version. This file contains documentation strings for
all the functions in Emacs. Each time you run make to make a new
emacs, a new DOC file with a new name is made. You must keep the DOC
file for an Emacs version as long as you keep using that Emacs
version.
file for an Emacs version as long as you keep using that Emacs version.
INSTALLATION BY HAND
@ -747,7 +701,7 @@ The steps below are done by running `make install' in the main
directory of the Emacs distribution.
1) Copy `./lisp' and its subdirectories, `./etc', and the executables
in `./lib-src' to their final destinations, as selected in `./src/paths.h'.
in `./lib-src' to their final destinations, as selected in `./src/epaths.h'.
Strictly speaking, not all of the executables in `./lib-src' need be copied.
- The programs `fakemail', `hexl', `movemail', `profile', `rcs2log',
@ -778,8 +732,7 @@ You can delete `./src/temacs'.
`rcs-checkin' from `./lib-src' to `/usr/local/bin'. These programs are
intended for users to run.
5) Copy the man pages in `./etc' for emacs, ctags, and etags into the
appropriate man directories.
5) Copy the man pages in `./doc/man' into the appropriate man directory.
6) The files in the `./src' subdirectory, except for `emacs', are not
used by Emacs once it is built. However, it is very desirable to keep
@ -788,8 +741,8 @@ the source on line for debugging.
PROBLEMS
See the file PROBLEMS in etc subdirectory for a list of various
problems sometimes encountered, and what to do about them.
See the file `./etc/PROBLEMS' for a list of various problems sometimes
encountered, and what to do about them.
This file is part of GNU Emacs.

View File

@ -1,3 +1,9 @@
2010-06-10 Glenn Morris <rgm@gnu.org>
* basic.texi (Inserting Text): Minor clarification. (Bug#6374)
* basic.texi (Inserting Text): Fix typo.
2010-06-10 Glenn Morris <rgm@gnu.org>
* ack.texi (Acknowledgments):

View File

@ -1,6 +1,7 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
@c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Basic, Minibuffer, Exiting, Top
@chapter Basic Editing Commands
@ -92,9 +93,9 @@ of overwriting with it.
@vindex read-quoted-char-radix
@noindent
To use decimal or hexadecimal instead of octal, set the variable
@code{read-quoted-char-radix} to 10 or 16. If the radix is greater
than 10, some letters starting with @kbd{a} serve as part of a
character code, just like digits.
@code{read-quoted-char-radix} to 10 or 16. If the radix is 16,
the letters @kbd{a} to @kbd{f} serve as part of a character code,
just like digits. Case is ignored.
A numeric argument tells @kbd{C-q} how many copies of the quoted
character to insert (@pxref{Arguments}).
@ -104,7 +105,7 @@ character to insert (@pxref{Arguments}).
@cindex Unicode
Instead of @kbd{C-q}, you can use @kbd{C-x 8 @key{RET}}
(@code{ucs-insert}) to insert a character based on its Unicode name or
code-point. This commands prompts for a character to insert, using
code-point. This command prompts for a character to insert, using
the minibuffer; you can specify the character using either (i) the
character's name in the Unicode standard, or (ii) the character's
code-point in the Unicode standard. If you specify the character's

View File

@ -1,3 +1,8 @@
2010-06-10 Glenn Morris <rgm@gnu.org>
* idlwave.texi (Load-Path Shadows):
* org.texi (Handling links): Fix typos.
2010-06-07 Teodor Zlatanov <tzz@lifelogs.com>
* gnus.texi (Interactive): Explain effect of gnus-expert-user better.

View File

@ -3717,7 +3717,7 @@ C-i}. Here are the different routines (also available in the Menu
@table @asis
@item @kbd{M-x idlwave-list-buffer-load-path-shadows}
This commands checks the names of all routines defined in the current
This command checks the names of all routines defined in the current
buffer for shadowing conflicts with other routines accessible to
IDLWAVE. The command also has a key binding: @kbd{C-c C-b}
@item @kbd{M-x idlwave-list-shell-load-path-shadows}.

View File

@ -2978,7 +2978,7 @@ link and description parts of the link.
Open link at point. This will launch a web browser for URLs (using
@command{browse-url-at-point}), run VM/MH-E/Wanderlust/Rmail/Gnus/BBDB for
the corresponding links, and execute the command in a shell link. When the
cursor is on an internal link, this commands runs the corresponding search.
cursor is on an internal link, this command runs the corresponding search.
When the cursor is on a TAG list in a headline, it creates the corresponding
TAGS view. If the cursor is on a timestamp, it compiles the agenda for that
date. Furthermore, it will visit text and remote files in @samp{file:} links

View File

@ -1,3 +1,7 @@
2010-06-12 Glenn Morris <rgm@gnu.org>
* tutorials/TUTORIAL.bg, tutorials/TUTORIAL.es: Fix typos.
2010-06-09 Michael Albinus <michael.albinus@gmx.de>
* NEWS: Add notifications.el.

View File

@ -125,6 +125,19 @@ trashing. This avoids inadvertently trashing temporary files.
*** Calling `delete-file' or `delete-directory' with a prefix argument
now forces true deletion, regardless of `delete-by-moving-to-trash'.
** New option `list-colors-sort' defines the color sort order
for `list-colors-display'.
** An Emacs Lisp package manager is now included.
This is a convenient way to download and install additional packages,
from elpa.gnu.org. `M-x package-list-packages' shows a list of
packages, which can be selected for installation.
*** By default, all installed packages are loaded and activated
automatically when Emacs starts up. To disable this, set
`package-enable-at-startup' to nil. To change which packages are
loaded, customize `package-load-list'.
* Editing Changes in Emacs 24.1
@ -254,7 +267,11 @@ Notifications API. It requires D-Bus for communication.
* Incompatible Lisp Changes in Emacs 24.1
** A backquote not followed by a space is now always treated as new-style.
** Test for special mode-class was moved from view-file to view-buffer.
FIXME: This only says what was changed, but not what are the
programmer-visible consequences.
** Passing a nil argument to a minor mode function now turns the mode
ON unconditionally.

View File

@ -760,7 +760,7 @@ not try to give commands in it when no longer really in the debugger.
* New function `switch-to-buffer-other-window'.
This is the new primitive to select a specified buffer (the
argument) in another window. It is not quite the same as
argument) in another window. It is not quite the same as
`pop-to-buffer', because it is guaranteed to create another
window (assuming there is room on the screen) so that it can
leave the current window's old buffer displayed as well.
@ -971,7 +971,7 @@ once again "unmodified".
This command creates an inferior Lisp process whose input and output
appear in the Emacs buffer named `*lisp*'. That buffer uses a major mode
called inferior-lisp-mode, which has many of the commands of lisp-mode
and those of shell-mode. Calls the value of shell-mode-hook and
and those of shell-mode. Calls the value of shell-mode-hook and
lisp-mode-hook, in that order, if non-nil.
Meanwhile, in lisp-mode, the command C-M-x is defined to
@ -1421,7 +1421,7 @@ Changes in Emacs 15
of the executing emacs, for use in run-time conditionalization.
The function featurep of one argument may be used to test for the
presence of a feature. It is just the same as
presence of a feature. It is just the same as
(not (null (memq FEATURE features))) where FEATURE is its argument.
For example, (if (featurep 'magic-window-hack)
(transmogrify-window 'vertical)
@ -1541,13 +1541,13 @@ Changes in Emacs 15
This function returns a cons cell whose car is the object produced
by reading from the string and whose cdr is a number giving the
index in the string of the first character not read. That index may
index in the string of the first character not read. That index may
be passed as the second argument to a later call to read-from-string
to read the next form represented by the string.
In addition, the function read now accepts a string as its argument.
In this case, it calls read-from-string on the whole string, and
returns the car of the result. (ie the actual object read.)
returns the car of the result (ie the actual object read.)

View File

@ -27,6 +27,10 @@ with a prefix argument or by typing C-u C-h C-n.
* Changes in Specialized Modes and Packages in Emacs 23.3
---
** The appt-add command takes an optional argument for the warning time.
This can be used in place of the default appt-message-warning-time.
* New Modes and Packages in Emacs 23.3

View File

@ -625,7 +625,7 @@ C-f.
Емакс сесията.
>> Въведете C-x b *Messages* <Return>, за да видите буфера със
съобщенията. След това въведете C-x C-b TUTORIAL <Return>, за да
съобщенията. След това въведете C-x b TUTORIAL <Return>, за да
се върнете към това въведение.
Ако направите промени в текста на един файл и тогава намерите друг

View File

@ -630,7 +630,7 @@ contiene los mensajes que han aparecido en la l
su sesión de Emacs.
>> Teclee C-x b *Messages* <Return> para ver el buffer de mensajes.
Luego teclee C-b TUTORIAL <Return> para regresar a este tutorial.
Luego teclee C-x b TUTORIAL <Return> para regresar a este tutorial.
Si hace cambios al texto de un archivo, y luego encuentra otro
archivo, esto no guarda el primer archivo. Sus cambios permanecerán

File diff suppressed because it is too large Load Diff

View File

@ -1,256 +0,0 @@
2006-12-04 Miles Bader <miles@gnu.org>
* Makefile.in (COMPILE_FIRST_STACK_DEPTH): New variable.
(compile, compile-always): Use it.
2005-10-24 Miles Bader <miles@gnu.org>
* subr.el (functionp): Re-remove.
* emacs-lisp/bytecomp.el (byte-compile-closure): Add optional
ADD-LAMBDA argument, which we just pass to `byte-compile-lambda'.
(byte-compile-defun): Use ADD-LAMBDA arg to `byte-compile-closure'
instead of adding lambda ourselves.
2004-08-09 Miles Bader <miles@gnu.org>
Changes from merging the funvec patch:
* emacs-lisp/bytecomp.el (byte-compile-make-closure): Use `curry'
instead of `vector' to create compiled closures.
Merge funvec patch.
2004-04-29 Miles Bader <miles@gnu.org>
* emacs-lisp/bytecomp.el (byte-compile-top-level): Add new entries
to `byte-compile-lexical-environment' at the start, not end.
(byte-compile-delay-out): Correctly default STACK-ADJUST to zero.
* emacs-lisp/byte-opt.el (byte-opt-update-stack-params): Don't
crash on no-op lapcode entries (car is nil).
* emacs-lisp/byte-lexbind.el (byte-compile-make-lambda-lexenv):
Push a lexvar onto lexenv, not a vinfo!
2004-04-11 Miles Bader <miles@gnu.org>
* emacs-lisp/bytecomp.el (byte-compile-top-level): Correctly
analyze lexically-bound arguments.
* emacs-lisp/byte-lexbind.el (byte-compile-lforminfo-analyze):
Use `append' instead of `nconc'.
* emacs-lisp/byte-lexbind.el (byte-compile-make-lvarinfo): Don't
use backquote to make a mutable data-structure.
(byte-compile-lvarinfo-num-refs, byte-compile-lvarinfo-num-sets):
Renamed to use `num-' instead of `num'.
(byte-compile-make-lambda-lexenv): Adjusted accordingly.
2004-04-10 Miles Bader <miles@gnu.org>
* emacs-lisp/byte-lexbind.el (byte-compile-compute-lforminfo):
Look at variable's global specialp state too.
2004-04-09 Miles Bader <miles@gnu.org>
* emacs-lisp/byte-opt.el (byte-optimize-lapcode): Default
initial-stack-depth to 0.
(byte-optimize-lapcode): Discard the right number of values in
the stack-set+discard-->discard optimization.
2004-04-02 Miles Bader <miles@gnu.org>
* emacs-lisp/lisp-mode.el (eval-last-sexp-1): Setup the lexical
environment if lexical-binding is enabled.
2003-10-14 Miles Bader <miles@gnu.org>
* emacs-lisp/macroexp.el (macroexpand-all-1): Special-case
`backquote-list*' to avoid stack overflows.
2003-04-04 Miles Bader <miles@gnu.org>
* help-fns.el (help-function-arglist): Handle interpreted closures.
2002-11-20 Miles Bader <miles@gnu.org>
* emacs-lisp/bytecomp.el (byte-compile-stack-adjustment):
Correctly handle discardN* operators.
* emacs-lisp/byte-opt.el (byte-optimize-lapcode): Fix stack-depth
tracking errors.
2002-08-26 Miles Bader <miles@gnu.org>
* international/mule.el (make-char): Macroexpand call to
charset-id constructed by `byte-compile' hook.
* emacs-lisp/macroexp.el (macroexpand-all-1): Expand defconst value.
* emacs-lisp/byte-opt.el (byte-opt-update-stack-params): New macro.
(byte-optimize-lapcode): Keep track of stack-depth in final pass too.
Add more optimizations for lexical binding.
(byte-compile-inline-expand): Macroexpand result of inlining.
* emacs-lisp/bytecomp.el (byte-compile-lambda): Update call to
byte-compile-closure-initial-lexenv-p.
(byte-discardN-preserve-tos): Alias to byte-discardN.
(byte-compile-push-binding-init): Don't push unused variables on
init-lexenv.
(byte-compile-push-binding-init): Don't use LFORMINFO if it's nil.
(byte-compile-lambda): Don't look at lexical environment unless
we're using lexical binding.
(byte-compile-defmacro): Correctly generate macros.
* emacs-lisp/byte-lexbind.el (byte-compile-unbind): Optimize the
dynamic-bindings-only case.
(byte-compile-bind): Don't special-case unused lexical variables.
* emacs-lisp/disass.el (disassemble-1): Print arg for discardN ops.
2002-08-19 Miles Bader <miles@gnu.org>
* emacs-lisp/byte-opt.el (byte-decompile-bytecode-1): Handle
`byte-discardN-preserve-tos' pseudo-op.
(byte-compile-side-effect-and-error-free-ops): Add `byte-stack-ref'.
(byte-compile-side-effect-free-ops): Add `byte-vec-ref'.
(byte-optimize-lapcode): Add some cases for stack-set/ref ops.
Add tracking of stack-depth. Unfinished code to collapse
lexical-unbinding sequences.
* emacs-lisp/bytecomp.el (byte-compile-lapcode): Handle
`byte-discardN-preserve-tos' pseudo-op.
(byte-compile-top-level): If there are lexical args, output a TAG
op to record the initial stack-depth for the optimizer.
2002-08-17 Miles Bader <miles@gnu.org>
* emacs-lisp/bytecomp.el (byte-discardN): Add byte-defop.
(byte-compile-lapcode): Include byte-discardN.
(byte-compile-lambda): Fixup closure detection.
(byte-compile-top-level): Handle arguments for a lexical lambda.
(byte-compile-lexical-variable-ref, byte-compile-variable-ref)
(byte-compile-variable-set): Use byte-compile-stack-set/ref.
(byte-compile-discard): Add new parameters NUM and PRESERVE-TOS.
(byte-compile-stack-ref, byte-compile-stack-set): New functions.
(byte-compile-push-binding-init): Get the variable list properly
from LFORMINFO.
* emacs-lisp/byte-lexbind.el (byte-compile-lforminfo-analyze):
Ignore setq'd variables we're not interested in.
(byte-compile-make-lambda-lexenv): Add assertion that closed-over
variables be heap allocated.
(byte-compile-closure-initial-lexenv-p): Renamed from
byte-compile-closure-lexenv-p.
(byte-compile-non-stack-bindings-p): Get the variable list
properly from LFORMINFO.
(byte-compile-maybe-push-heap-environment): Handle the
no-closed-over-variables case correctly.
(byte-compile-bind): Use byte-compile-stack-set/ref.
Don't bother modifying INIT-LEXENV as no one will see the changes.
(byte-compile-unbind): Call `byte-compile-discard' to handle
unbinding lexical bindings.
* emacs-lisp/disass.el (disassemble-internal): Handle closures.
(disassemble-1): Handle new bytecodes.
* emacs-lisp/byte-opt.el (disassemble-offset): Handle new bytecodes.
2002-06-16 Miles Bader <miles@gnu.org>
* emacs-lisp/macroexp.el (macroexp-accumulate): New macro.
(macroexpand-all-forms, macroexpand-all-clauses): Use it.
* Makefile.in (compile): Undo previous change.
2002-06-14 Miles Bader <miles@gnu.org>
* Makefile.in (COMPILE_FIRST): Add `emacs-lisp/macroexp.el'.
(compile): Add a special case that compiles `emacs-lisp/macroexp.el'
with an increased max-lisp-eval-depth.
* emacs-lisp/bytecomp.el: Provide `bytecomp-preload', at the
beginning of the file. Require `byte-lexbind' at compile time.
Add a few doc string.
(byte-compile-push-bytecodes)
(byte-compile-push-bytecode-const2): New macros.
(byte-compile-lapcode): Use them. Do general code cleanup.
(byte-compile-initial-macro-environment): Expand macros in
byte-compile-eval before passing to byte-compile-top-level.
(byte-compile): Use the `byte-compile-initial-macro-environment'.
* emacs-lisp/byte-lexbind.el: Require `bytecomp-preload' instead of
`bytecomp'.
(byte-compile-bind): Use `byte-compile-dynamic-variable-bind' to bind
dynamic variables.
(byte-compile-maybe-push-heap-environment): Fix function name typo.
2002-06-13 Miles Bader <miles@gnu.org>
Byte compiler lexical binding support (not finished yet):
* emacs-lisp/bytecomp.el: Require `macroexp'.
(byte-compile-lexical-environment)
(byte-compile-current-heap-environment)
(byte-compile-current-num-closures): New variables.
(0, 178, 179, 180, 181): New byte-opcodes.
(byte-compile-lapcode): Handle stack-ref/set opcodes. Signal an
error if a delay-output placeholder is not filled in yet.
(byte-compile-file-form, byte-compile): Expand all macros with
`macroexpand-all'.
(byte-compile-file-form-defsubst, byte-compile-form): Don't expand
macros here.
(byte-compile-make-lambda-lexenv): Autoload.
(byte-compile-lambda): Initial code for handling lexically-bound
arguments and closures; doesn't work yet.
(byte-compile-closure-code-p, byte-compile-make-closure)
(byte-compile-closure): New functions.
(byte-compile-check-variable, byte-compile-dynamic-variable-op)
(byte-compile-dynamic-variable-bind)
(byte-compile-lexical-variable-ref, byte-compile-variable-set):
New functions.
(byte-compile-variable-ref): Remove second argument. Now only
handles real variable references (not setting or binding).
(byte-compile-push-unknown-constant)
(byte-compile-resolve-unknown-constant): New functions.
(byte-compile-funarg, byte-compile-funarg-2): Functions removed.
(byte-compile-function-form): Use either `byte-compile-constant'
or `byte-compile-closure'.
(byte-compile-setq): Use `byte-compile-variable-set' instead of
`byte-compile-variable-ref'.
(apply, mapcar, mapatoms, mapconcat, mapc, sort):
`byte-defop-compiler-1's removed.
(byte-compile-while): Make sure lexically-bound variables inside
the loop don't get stored in an environment outside the loop.
(byte-compile-compute-lforminfo): Autoload.
(byte-compile-push-binding-init): New function.
(byte-compile-let, byte-compile-let*): Handle lexical binding.
(byte-compile-defun): Use `byte-compile-closure' to do the work.
(byte-compile-defmacro): Use `byte-compile-make-closure'.
(byte-compile-defvar): Expand the generated call to `push' since
we're past macroexpansion already.
(byte-compile-stack-adjustment): New function.
(byte-compile-out): Make second arg optional. Rewrite for clarity.
(byte-compile-delay-out, byte-compile-delayed-out): New functions.
* emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Don't
expand macros here.
* emacs-lisp/macroexp.el (macroexpand-all-1): Expand defmacro forms.
* emacs-lisp/byte-lexbind.el (byte-compile-make-lvarinfo)
(byte-compile-lforminfo-add-var)
(byte-compile-lforminfo-note-closure)
(byte-compile-compute-lforminfo)
(byte-compile-lforminfo-from-lambda)
(byte-compile-lforminfo-analyze)
(byte-compile-heapenv-add-accessible-env)
(byte-compile-heapenv-ensure-access)
(byte-compile-rearrange-let-clauses, byte-compile-bind)
(byte-compile-unbind): Fix a bunch of typos.
2002-06-12 Miles Bader <miles@gnu.org>
* emacs-lisp/byte-lexbind.el, emacs-lisp/macroexp.el: New files.
* subr.el (functionp): Function removed (now a subr).
* help-fns.el (describe-function-1): Handle interpreted closures.
;; arch-tag: bd1b5b8b-fdb2-425d-9ac2-20689fb0ee70

14293
lisp/ChangeLog.trunk Normal file

File diff suppressed because it is too large Load Diff

View File

@ -663,7 +663,7 @@
(cons 'vec (cons (nth 1 facs) (cons (list 'vec fac pow)
(cdr (cdr facs)))))
(cons 'vec (cons (list 'vec fac pow) (cdr facs))))))))
(math-mul (math-pow fac pow) facs)))
(math-mul (math-pow fac pow) (math-factor-protect facs))))
(defun math-factor-poly-coefs (p &optional square-free) ; uses "x"
(let (t1 t2 temp)

View File

@ -183,16 +183,25 @@ Only relevant if reminders are being displayed in a window."
(defconst appt-buffer-name "*appt-buf*"
"Name of the appointments buffer.")
;; TODO Turn this into an alist? It would be easier to add more
;; optional elements.
;; TODO There should be a way to set WARNTIME (and other properties)
;; from the diary-file. Implementing that would be a good reason
;; to change this to an alist.
(defvar appt-time-msg-list nil
"The list of appointments for today.
Use `appt-add' and `appt-delete' to add and delete appointments.
The original list is generated from today's `diary-entries-list', and
can be regenerated using the function `appt-check'.
Each element of the generated list has the form (MINUTES STRING [FLAG]); where
MINUTES is the time in minutes of the appointment after midnight, and
STRING is the description of the appointment.
FLAG, if non-nil, says that the element was made with `appt-add'
so calling `appt-make-list' again should preserve it.")
Each element of the generated list has the form
\(MINUTES STRING [FLAG] [WARNTIME])
where MINUTES is the time in minutes of the appointment after midnight,
and STRING is the description of the appointment.
FLAG and WARNTIME can only be present if the element was made
with `appt-add'. A non-nil FLAG indicates that the element was made
with `appt-add', so calling `appt-make-list' again should preserve it.
If WARNTIME is non-nil, it is an integer to use in place
of `appt-message-warning-time'.")
(defconst appt-max-time (1- (* 24 60))
"11:59pm in minutes - number of minutes in a day minus 1.")
@ -313,7 +322,7 @@ displayed in a window:
(zerop (mod prev-appt-display-count appt-display-interval))))
;; Non-nil means only update the interval displayed in the mode line.
(mode-line-only (unless full-check appt-now-displayed))
now cur-comp-time appt-comp-time)
now cur-comp-time appt-comp-time appt-warn-time)
(when (or full-check mode-line-only)
(save-excursion
;; Convert current time to minutes after midnight (12.01am = 1).
@ -353,6 +362,8 @@ displayed in a window:
;; calculate the number of minutes until the appointment.
(when (and appt-issue-message appt-time-msg-list)
(setq appt-comp-time (caar (car appt-time-msg-list))
appt-warn-time (or (nth 3 (car appt-time-msg-list))
appt-message-warning-time)
min-to-app (- appt-comp-time cur-comp-time))
(while (and appt-time-msg-list
(< appt-comp-time cur-comp-time))
@ -360,21 +371,21 @@ displayed in a window:
(if appt-time-msg-list
(setq appt-comp-time (caar (car appt-time-msg-list)))))
;; If we have an appointment between midnight and
;; `appt-message-warning-time' minutes after midnight, we
;; `appt-warn-time' minutes after midnight, we
;; must begin to issue a message before midnight. Midnight
;; is considered 0 minutes and 11:59pm is 1439
;; minutes. Therefore we must recalculate the minutes to
;; appointment variable. It is equal to the number of
;; minutes before midnight plus the number of minutes after
;; midnight our appointment is.
(if (and (< appt-comp-time appt-message-warning-time)
(> (+ cur-comp-time appt-message-warning-time)
(if (and (< appt-comp-time appt-warn-time)
(> (+ cur-comp-time appt-warn-time)
appt-max-time))
(setq min-to-app (+ (- (1+ appt-max-time) cur-comp-time)
appt-comp-time)))
;; Issue warning if the appointment time is within
;; appt-message-warning time.
(when (and (<= min-to-app appt-message-warning-time)
(when (and (<= min-to-app appt-warn-time)
(>= min-to-app 0))
(setq appt-now-displayed t
appt-display-count (1+ prev-appt-display-count))
@ -470,14 +481,28 @@ Usually just deletes the appointment buffer."
"[0-9]?[0-9]\\(h\\([0-9][0-9]\\)?\\|[:.][0-9][0-9]\\)\\(am\\|pm\\)?")
;;;###autoload
(defun appt-add (new-appt-time new-appt-msg)
"Add an appointment for today at NEW-APPT-TIME with message NEW-APPT-MSG.
The time should be in either 24 hour format or am/pm format."
(interactive "sTime (hh:mm[am/pm]): \nsMessage: ")
(unless (string-match appt-time-regexp new-appt-time)
(defun appt-add (time msg &optional warntime)
"Add an appointment for today at TIME with message MSG.
The time should be in either 24 hour format or am/pm format.
Optional argument WARNTIME is an integer (or string) giving the number
of minutes before the appointment at which to start warning.
The default is `appt-message-warning-time'."
(interactive "sTime (hh:mm[am/pm]): \nsMessage:
sMinutes before the appointment to start warning: ")
(unless (string-match appt-time-regexp time)
(error "Unacceptable time-string"))
(let ((time-msg (list (list (appt-convert-time new-appt-time))
(concat new-appt-time " " new-appt-msg) t)))
(and (stringp warntime)
(setq warntime (unless (string-equal warntime "")
(string-to-number warntime))))
(and warntime
(not (integerp warntime))
(error "Argument WARNTIME must be an integer, or nil"))
(let ((time-msg (list (list (appt-convert-time time))
(concat time " " msg) t)))
;; It is presently non-sensical to have multiple warnings about
;; the same appointment with just different delays, but it might
;; not always be so. TODO
(if warntime (setq time-msg (append time-msg (list warntime))))
(unless (member time-msg appt-time-msg-list)
(setq appt-time-msg-list
(appt-sort-list (nconc appt-time-msg-list (list time-msg)))))))

View File

@ -282,7 +282,7 @@ Not documented
;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist
;;;;;; do* do loop return-from return block etypecase typecase ecase
;;;;;; case load-time-value eval-when destructuring-bind function*
;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "fbeedbf769c72fee9b4e0671957c1077")
;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "36cafd5054969b5bb0b1ce6a21605fed")
;;; Generated autoloads from cl-macs.el
(autoload 'gensym "cl-macs" "\

View File

@ -438,7 +438,7 @@ It is a list of elements of the form either:
;;;###autoload
(defmacro destructuring-bind (args expr &rest body)
(let* ((bind-lets nil) (bind-forms nil) (bind-inits nil)
(bind-defs nil) (bind-block 'cl-none))
(bind-defs nil) (bind-block 'cl-none) (bind-enquote nil))
(cl-do-arglist (or args '(&aux)) expr)
(append '(progn) bind-inits
(list (nconc (list 'let* (nreverse bind-lets))

View File

@ -885,17 +885,12 @@ already is one.)"
(edebug-storing-offsets (1- (point)) 'quote)
(edebug-read-storing-offsets stream)))
(defvar edebug-read-backquote-level 0
"If non-zero, we're in a new-style backquote.
It should never be negative. This controls how we read comma constructs.")
(defun edebug-read-backquote (stream)
;; Turn `thing into (\` thing)
(forward-char 1)
(list
(edebug-storing-offsets (1- (point)) '\`)
(let ((edebug-read-backquote-level (1+ edebug-read-backquote-level)))
(edebug-read-storing-offsets stream))))
(edebug-read-storing-offsets stream)))
(defun edebug-read-comma (stream)
;; Turn ,thing into (\, thing). Handle ,@ and ,. also.
@ -910,12 +905,9 @@ It should never be negative. This controls how we read comma constructs.")
(forward-char 1)))
;; Generate the same structure of offsets we would have
;; if the resulting list appeared verbatim in the input text.
(if (zerop edebug-read-backquote-level)
(edebug-storing-offsets opoint symbol)
(list
(edebug-storing-offsets opoint symbol)
(let ((edebug-read-backquote-level (1- edebug-read-backquote-level)))
(edebug-read-storing-offsets stream)))))))
(list
(edebug-storing-offsets opoint symbol)
(edebug-read-storing-offsets stream)))))
(defun edebug-read-function (stream)
;; Turn #'thing into (function thing)
@ -937,17 +929,7 @@ It should never be negative. This controls how we read comma constructs.")
(prog1
(let ((elements))
(while (not (memq (edebug-next-token-class) '(rparen dot)))
(if (and (eq (edebug-next-token-class) 'backquote)
(null elements)
(zerop edebug-read-backquote-level))
(progn
;; Old style backquote.
(forward-char 1) ; Skip backquote.
;; Call edebug-storing-offsets here so that we
;; produce the same offsets we would have had
;; if the backquote were an ordinary symbol.
(push (edebug-storing-offsets (1- (point)) '\`) elements))
(push (edebug-read-storing-offsets stream) elements)))
(push (edebug-read-storing-offsets stream) elements))
(setq elements (nreverse elements))
(if (eq 'dot (edebug-next-token-class))
(let (dotted-form)
@ -4455,7 +4437,7 @@ With prefix argument, make it a temporary breakpoint."
(add-hook 'cl-load-hook
(function (lambda () (require 'cl-specs)))))
;;; edebug-cl-read and cl-read are available from liberte@cs.uiuc.edu
;; edebug-cl-read and cl-read are available from liberte@cs.uiuc.edu
(if (featurep 'cl-read)
(add-hook 'edebug-setup-hook
(function (lambda () (require 'edebug-cl-read))))
@ -4466,8 +4448,8 @@ With prefix argument, make it a temporary breakpoint."
;;; Finalize Loading
;;; Finally, hook edebug into the rest of Emacs.
;;; There are probably some other things that could go here.
;; Finally, hook edebug into the rest of Emacs.
;; There are probably some other things that could go here.
;; Install edebug read and eval functions.
(edebug-install-read-eval-functions)

View File

@ -134,7 +134,7 @@ Assumes the caller has bound `macroexpand-all-environment'."
(maybe-cons fun
(maybe-cons (macroexpand-all-forms (cadr form) 2)
nil
(cadr form))
(cdr form))
form)
form))
((memq fun '(let let*))
@ -146,7 +146,7 @@ Assumes the caller has bound `macroexpand-all-environment'."
((eq fun 'quote)
form)
((and (consp fun) (eq (car fun) 'lambda))
;; embedded lambda
;; Embedded lambda in function position.
(maybe-cons (macroexpand-all-forms fun 2)
(macroexpand-all-forms (cdr form))
form))

View File

@ -0,0 +1,217 @@
;;; package-x.el --- Package extras
;; Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
;; Author: Tom Tromey <tromey@redhat.com>
;; Created: 10 Mar 2007
;; Version: 0.9
;; Keywords: tools
;; 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, 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; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;; Commentary:
;; This file currently contains parts of the package system most
;; people won't need, such as package uploading.
;;; Code:
;; Note that this only works if you have the password, which you
;; probably don't :-).
(defvar package-archive-upload-base nil
"Base location for uploading to package archive.")
(defun package--encode (string)
"Encode a string by replacing some characters with XML entities."
;; We need a special case for translating "&" to "&amp;".
(let ((index))
(while (setq index (string-match "[&]" string index))
(setq string (replace-match "&amp;" t nil string))
(setq index (1+ index))))
(while (string-match "[<]" string)
(setq string (replace-match "&lt;" t nil string)))
(while (string-match "[>]" string)
(setq string (replace-match "&gt;" t nil string)))
(while (string-match "[']" string)
(setq string (replace-match "&apos;" t nil string)))
(while (string-match "[\"]" string)
(setq string (replace-match "&quot;" t nil string)))
string)
(defun package--make-rss-entry (title text)
(let ((date-string (format-time-string "%a, %d %B %Y %T %z")))
(concat "<item>\n"
"<title>" (package--encode title) "</title>\n"
;; FIXME: should have a link in the web page.
"<link>" package-archive-base "news.html</link>\n"
"<description>" (package--encode text) "</description>\n"
"<pubDate>" date-string "</pubDate>\n"
"</item>\n")))
(defun package--make-html-entry (title text)
(concat "<li> " (format-time-string "%B %e") " - "
title " - " (package--encode text)
" </li>\n"))
(defun package--update-file (file location text)
(save-excursion
(let ((old-buffer (find-buffer-visiting file)))
(with-current-buffer (let ((find-file-visit-truename t))
(or old-buffer (find-file-noselect file)))
(goto-char (point-min))
(search-forward location)
(forward-line)
(insert text)
(let ((file-precious-flag t))
(save-buffer))
(unless old-buffer
(kill-buffer (current-buffer)))))))
(defun package-maint-add-news-item (title description)
"Add a news item to the ELPA web pages.
TITLE is the title of the news item.
DESCRIPTION is the text of the news item.
You need administrative access to ELPA to use this."
(interactive "sTitle: \nsText: ")
(package--update-file (concat package-archive-upload-base "elpa.rss")
"<description>"
(package--make-rss-entry title description))
(package--update-file (concat package-archive-upload-base "news.html")
"New entries go here"
(package--make-html-entry title description)))
(defun package--update-news (package version description)
"Update the ELPA web pages when a package is uploaded."
(package-maint-add-news-item (concat package " version " version)
description))
(defun package-upload-buffer-internal (pkg-info extension)
"Upload a package whose contents are in the current buffer.
PKG-INFO is the package info, see `package-buffer-info'.
EXTENSION is the file extension, a string. It can be either
\"el\" or \"tar\"."
(save-excursion
(save-restriction
(let* ((file-type (cond
((equal extension "el") 'single)
((equal extension "tar") 'tar)
(t (error "Unknown extension `%s'" extension))))
(file-name (aref pkg-info 0))
(pkg-name (intern file-name))
(requires (aref pkg-info 1))
(desc (if (string= (aref pkg-info 2) "")
(read-string "Description of package: ")
(aref pkg-info 2)))
(pkg-version (aref pkg-info 3))
(commentary (aref pkg-info 4))
(split-version (package-version-split pkg-version))
(pkg-buffer (current-buffer))
;; Download latest archive-contents.
(buffer (url-retrieve-synchronously
(concat package-archive-base "archive-contents"))))
;; Parse archive-contents.
(set-buffer buffer)
(package-handle-response)
(re-search-forward "^$" nil 'move)
(forward-char)
(delete-region (point-min) (point))
(let ((contents (package-read-from-string
(buffer-substring-no-properties (point-min)
(point-max))))
(new-desc (vector split-version requires desc file-type)))
(if (> (car contents) package-archive-version)
(error "Unrecognized archive version %d" (car contents)))
(let ((elt (assq pkg-name (cdr contents))))
(if elt
(if (package-version-compare split-version
(package-desc-vers (cdr elt))
'<=)
(error "New package has smaller version: %s" pkg-version)
(setcdr elt new-desc))
(setq contents (cons (car contents)
(cons (cons pkg-name new-desc)
(cdr contents))))))
;; Now CONTENTS is the updated archive contents. Upload
;; this and the package itself. For now we assume ELPA is
;; writable via file primitives.
(let ((print-level nil)
(print-length nil))
(write-region (concat (pp-to-string contents) "\n")
nil
(concat package-archive-upload-base
"archive-contents")))
;; If there is a commentary section, write it.
(when commentary
(write-region commentary nil
(concat package-archive-upload-base
(symbol-name pkg-name) "-readme.txt")))
(set-buffer pkg-buffer)
(kill-buffer buffer)
(write-region (point-min) (point-max)
(concat package-archive-upload-base
file-name "-" pkg-version
"." extension)
nil nil nil 'excl)
;; Write a news entry.
(package--update-news (concat file-name "." extension)
pkg-version desc)
;; special-case "package": write a second copy so that the
;; installer can easily find the latest version.
(if (string= file-name "package")
(write-region (point-min) (point-max)
(concat package-archive-upload-base
file-name "." extension)
nil nil nil 'ask)))))))
(defun package-upload-buffer ()
"Upload a single .el file to ELPA from the current buffer."
(interactive)
(save-excursion
(save-restriction
;; Find the package in this buffer.
(let ((pkg-info (package-buffer-info)))
(package-upload-buffer-internal pkg-info "el")))))
(defun package-upload-file (file)
(interactive "fPackage file name: ")
(with-temp-buffer
(insert-file-contents-literally file)
(let ((info (cond
((string-match "\\.tar$" file) (package-tar-file-info file))
((string-match "\\.el$" file) (package-buffer-info))
(t (error "Unrecognized extension `%s'"
(file-name-extension file))))))
(package-upload-buffer-internal info (file-name-extension file)))))
(defun package-gnus-summary-upload ()
"Upload a package contained in the current *Article* buffer.
This should be invoked from the gnus *Summary* buffer."
(interactive)
(with-current-buffer gnus-article-buffer
(package-upload-buffer)))
(provide 'package-x)
;;; package.el ends here

1453
lisp/emacs-lisp/package.el Normal file

File diff suppressed because it is too large Load Diff

View File

@ -479,6 +479,73 @@ These special properties include `invisible', `intangible' and `read-only'."
nil
col)))
(defun color-rgb-to-hsv (r g b)
"For R, G, B color components return a list of hue, saturation, value.
R, G, B input values should be in [0..65535] range.
Output values for hue are integers in [0..360] range.
Output values for saturation and value are integers in [0..100] range."
(let* ((r (/ r 65535.0))
(g (/ g 65535.0))
(b (/ b 65535.0))
(max (max r g b))
(min (min r g b))
(h (cond ((= max min) 0)
((= max r) (mod (+ (* 60 (/ (- g b) (- max min))) 360) 360))
((= max g) (+ (* 60 (/ (- b r) (- max min))) 120))
((= max b) (+ (* 60 (/ (- r g) (- max min))) 240))))
(s (cond ((= max 0) 0)
(t (- 1 (/ min max)))))
(v max))
(list (round h) (round s 0.01) (round v 0.01))))
(defcustom list-colors-sort nil
"Color sort order for `list-colors-display'.
`nil' means default implementation-dependent order (defined in `x-colors').
`name' sorts by color name.
`rgb' sorts by red, green, blue components.
`(rgb-dist . COLOR)' sorts by the RGB distance to the specified color.
`hsv' sorts by hue, saturation, value.
`(hsv-dist . COLOR)' sorts by the HSV distance to the specified color
and excludes grayscale colors."
:type '(choice (const :tag "Unsorted" nil)
(const :tag "Color Name" name)
(const :tag "Red-Green-Blue" rgb)
(cons :tag "Distance on RGB cube"
(const :tag "Distance from Color" rgb-dist)
(color :tag "Source Color Name"))
(const :tag "Hue-Saturation-Value" hsv)
(cons :tag "Distance on HSV cylinder"
(const :tag "Distance from Color" hsv-dist)
(color :tag "Source Color Name")))
:group 'facemenu
:version "24.1")
(defun list-colors-sort-key (color)
"Return a list of keys for sorting colors depending on `list-colors-sort'.
COLOR is the name of the color. When return value is nil,
filter out the color from the output."
(cond
((null list-colors-sort) color)
((eq list-colors-sort 'name)
(downcase color))
((eq list-colors-sort 'rgb)
(color-values color))
((eq (car-safe list-colors-sort) 'rgb-dist)
(color-distance color (cdr list-colors-sort)))
((eq list-colors-sort 'hsv)
(apply 'color-rgb-to-hsv (color-values color)))
((eq (car-safe list-colors-sort) 'hsv-dist)
(let* ((c-rgb (color-values color))
(c-hsv (apply 'color-rgb-to-hsv c-rgb))
(o-hsv (apply 'color-rgb-to-hsv
(color-values (cdr list-colors-sort)))))
(unless (and (eq (nth 0 c-rgb) (nth 1 c-rgb)) ; exclude grayscale
(eq (nth 1 c-rgb) (nth 2 c-rgb)))
;; 3D Euclidean distance (sqrt is not needed for sorting)
(+ (expt (- 180 (abs (- 180 (abs (- (nth 0 c-hsv) ; wrap hue
(nth 0 o-hsv)))))) 2)
(expt (- (nth 1 c-hsv) (nth 1 o-hsv)) 2)
(expt (- (nth 2 c-hsv) (nth 2 o-hsv)) 2)))))))
(defun list-colors-display (&optional list buffer-name callback)
"Display names of defined colors, and show what they look like.
@ -492,10 +559,38 @@ If the optional argument BUFFER-NAME is nil, it defaults to
If the optional argument CALLBACK is non-nil, it should be a
function to call each time the user types RET or clicks on a
color. The function should accept a single argument, the color
name."
name.
You can change the color sort order by customizing `list-colors-sort'."
(interactive)
(when (and (null list) (> (display-color-cells) 0))
(setq list (list-colors-duplicates (defined-colors)))
(when list-colors-sort
;; Schwartzian transform with `(color key1 key2 key3 ...)'.
(setq list (mapcar
'car
(sort (delq nil (mapcar
(lambda (c)
(let ((key (list-colors-sort-key
(car c))))
(when key
(cons c (if (consp key) key
(list key))))))
list))
(lambda (a b)
(let* ((a-keys (cdr a))
(b-keys (cdr b))
(a-key (car a-keys))
(b-key (car b-keys)))
;; Skip common keys at the beginning of key lists.
(while (and a-key b-key (equal a-key b-key))
(setq a-keys (cdr a-keys) a-key (car a-keys)
b-keys (cdr b-keys) b-key (car b-keys)))
(cond
((and (numberp a-key) (numberp b-key))
(< a-key b-key))
((and (stringp a-key) (stringp b-key))
(string< a-key b-key)))))))))
(when (memq (display-visual-class) '(gray-scale pseudo-color direct-color))
;; Don't show more than what the display can handle.
(let ((lc (nthcdr (1- (display-color-cells)) list)))
@ -505,9 +600,11 @@ name."
(with-current-buffer buf
(erase-buffer)
(setq truncate-lines t)
;; Display buffer before generating content to allow
;; `list-colors-print' to get the right window-width.
(pop-to-buffer buf)
(list-colors-print list callback)
(set-buffer-modified-p nil))
(pop-to-buffer buf))
(set-buffer-modified-p nil)))
(if callback
(message "Click on a color to select it.")))
@ -550,9 +647,16 @@ name."
(point)
'face (list :foreground (car color)))
(indent-to (max (- (window-width) 8) 44))
(insert (apply 'format "#%02x%02x%02x"
(mapcar (lambda (c) (lsh c -8))
color-values)))
(insert (propertize
(apply 'format "#%02x%02x%02x"
(mapcar (lambda (c) (lsh c -8))
color-values))
'mouse-face 'highlight
'help-echo
(let ((hsv (apply 'color-rgb-to-hsv
(color-values (car color)))))
(format "H:%d S:%d V:%d"
(nth 0 hsv) (nth 1 hsv) (nth 2 hsv)))))
(when callback
(make-text-button
opoint (point)

View File

@ -97,7 +97,7 @@ It will be passed one argument, which is the current value of
`font-lock-mode'.")
;; The mode for which font-lock was initialized, or nil if none.
(defvar font-lock-mode-major-mode)
(defvar font-lock-major-mode)
(define-minor-mode font-lock-mode
"Toggle Font Lock mode.
With arg, turn Font Lock mode off if and only if arg is a non-positive
@ -159,9 +159,7 @@ your own function which is called when `font-lock-mode' is toggled via
;; Arrange to unfontify this buffer if we change major mode later.
(if font-lock-mode
(add-hook 'change-major-mode-hook 'font-lock-change-mode nil t)
(remove-hook 'change-major-mode-hook 'font-lock-change-mode t))
(when font-lock-mode
(setq font-lock-mode-major-mode major-mode)))
(remove-hook 'change-major-mode-hook 'font-lock-change-mode t)))
;; Get rid of fontification for the old major mode.
;; We do this when changing major modes.
@ -213,8 +211,8 @@ this function onto `change-major-mode-hook'."
(and mode
(boundp 'font-lock-set-defaults)
font-lock-set-defaults
font-lock-mode-major-mode
(not (eq font-lock-mode-major-mode major-mode))))
font-lock-major-mode
(not (eq font-lock-major-mode major-mode))))
(font-lock-mode-internal mode)))
(defun turn-on-font-lock ()

View File

@ -1783,15 +1783,18 @@ preserve `hi-lock-mode' highlighting patterns."
(kill-local-variable 'font-lock-set-defaults)
(font-lock-mode 1))
(defvar font-lock-mode-major-mode)
(defvar font-lock-major-mode nil
"Major mode for which the font-lock settings have been setup.")
(make-variable-buffer-local 'font-lock-major-mode)
(defun font-lock-set-defaults ()
"Set fontification defaults appropriately for this mode.
Sets various variables using `font-lock-defaults' (or, if nil, using
`font-lock-defaults-alist') and `font-lock-maximum-decoration'."
;; Set fontification defaults if not previously set for correct major mode.
(unless (and font-lock-set-defaults
(eq font-lock-mode-major-mode major-mode))
(setq font-lock-mode-major-mode major-mode)
(eq font-lock-major-mode major-mode))
(setq font-lock-major-mode major-mode)
(set (make-local-variable 'font-lock-set-defaults) t)
(make-local-variable 'font-lock-fontified)
(make-local-variable 'font-lock-multiline)

View File

@ -1,3 +1,8 @@
2010-06-15 Michael Albinus <michael.albinus@gmx.de>
* auth-source.el (auth-source-pick): If choice does not contain a
questioned keyword, set the check to t.
2010-06-12 Romain Francoise <romain@orebokech.com>
* gnus-util.el (gnus-date-get-time): Move up before first use.

View File

@ -229,7 +229,8 @@ matched as a regex."
;; Check keywords.
(dolist (k keys match)
(let* ((v (plist-get spec k))
(choicev (plist-get choice k)))
(choicev (if (plist-member choice k)
(plist-get choice k) t)))
(setq match
(and match
(or

View File

@ -272,6 +272,9 @@ Commands:
(with-current-buffer buffer
(bury-buffer))))
(set (make-local-variable 'revert-buffer-function)
'help-mode-revert-buffer)
(run-mode-hooks 'help-mode-hook))
;;;###autoload
@ -783,6 +786,17 @@ Show all docs for that symbol as either a variable, function or face."
(fboundp sym) (facep sym))
(help-do-xref pos #'help-xref-interned (list sym)))))
(defun help-mode-revert-buffer (ignore-auto noconfirm)
(when (or noconfirm (yes-or-no-p "Revert help buffer? "))
(let ((pos (point))
(item help-xref-stack-item)
;; Pretend there is no current item to add to the history.
(help-xref-stack-item nil)
;; Use the current buffer.
(help-xref-following t))
(apply (car item) (cdr item))
(goto-char pos))))
(defun help-insert-string (string)
"Insert STRING to the help buffer and install xref info for it.
This function can be used to restore the old contents of the help buffer

View File

@ -298,6 +298,8 @@ This variable is used to display the current image type in the mode line.")
(define-key map (kbd "DEL") 'image-scroll-down)
(define-key map [remap forward-char] 'image-forward-hscroll)
(define-key map [remap backward-char] 'image-backward-hscroll)
(define-key map [remap right-char] 'image-forward-hscroll)
(define-key map [remap left-char] 'image-backward-hscroll)
(define-key map [remap previous-line] 'image-previous-line)
(define-key map [remap next-line] 'image-next-line)
(define-key map [remap scroll-up] 'image-scroll-up)

View File

@ -238,7 +238,9 @@ This only has an effect if `Info-hide-note-references' is non-nil."
(defcustom Info-breadcrumbs-depth 4
"Depth of breadcrumbs to display.
0 means do not display breadcrumbs."
:type 'integer)
:version "23.1"
:type 'integer
:group 'info)
(defcustom Info-search-whitespace-regexp "\\s-+"
"If non-nil, regular expression to match a sequence of whitespace chars.
@ -800,17 +802,22 @@ otherwise, that defaults to `Top'."
"Go to an Info node FILENAME and NODENAME, re-reading disk contents.
When *info* is already displaying FILENAME and NODENAME, the window position
is preserved, if possible."
(pop-to-buffer "*info*")
(or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
(let ((old-filename Info-current-file)
(old-nodename Info-current-node)
(old-buffer-name (buffer-name))
(pcolumn (current-column))
(pline (count-lines (point-min) (line-beginning-position)))
(wline (count-lines (point-min) (window-start)))
(old-history-forward Info-history-forward)
(old-history Info-history)
(new-history (and Info-current-file
(list Info-current-file Info-current-node (point)))))
(kill-buffer (current-buffer))
(pop-to-buffer (or old-buffer-name "*info*"))
(Info-mode)
(Info-find-node filename nodename)
(setq Info-history-forward old-history-forward)
(setq Info-history old-history)
(if (and (equal old-filename Info-current-file)
(equal old-nodename Info-current-node))

View File

@ -1055,7 +1055,7 @@ mail status in mode line"))
(define-key menu-bar-options-menu [cua-emulation-mode]
(menu-bar-make-mm-toggle cua-mode
"Shift movement mark region (CUA)"
"Use shifted movement keys to set and extend the region."
"Use shifted movement keys to set and extend the region"
(:visible (and (boundp 'cua-enable-cua-keys)
(not cua-enable-cua-keys)))))

View File

@ -1370,17 +1370,21 @@ of the inserted start-tag or nil if none was inserted."
(defun nxml-indent-line ()
"Indent current line as XML."
(let ((indent (nxml-compute-indent))
(from-end (- (point-max) (point))))
(when (and indent
(/= indent (current-indentation)))
(beginning-of-line)
(let ((bol (point)))
(skip-chars-forward " \t")
(delete-region bol (point)))
(indent-to indent)
(when (> (- (point-max) from-end) (point))
(goto-char (- (point-max) from-end))))))
(let* ((savep (point))
(indent (condition-case nil
(save-excursion
(forward-line 0)
(skip-chars-forward " \t")
(if (>= (point) savep) (setq savep nil))
(or (nxml-compute-indent) 0))
(error 0))))
(if (not (numberp indent))
;; If something funny is used (e.g. `noindent'), return it.
indent
(if (< indent 0) (setq indent 0)) ;Just in case.
(if savep
(save-excursion (indent-line-to indent))
(indent-line-to indent)))))
(defun nxml-compute-indent ()
"Return the indent for the line containing point."

View File

@ -3119,7 +3119,7 @@ The default comes from `process-coding-system-alist' and
(setq params (append (list sql-database) params)))
(if (not (string= "" sql-server))
(setq params (append (list (concat "--host=" sql-server)) params)))
(if (not (and sql-port (numberp sql-port)))
(if (and sql-port (numberp sql-port))
(setq params (append (list (concat "--port=" (number-to-string sql-port))) params)))
(if (not (string= "" sql-password))
(setq params (append (list (concat "--password=" sql-password)) params)))

View File

@ -1166,6 +1166,9 @@ the `--debug-init' option to view a complete error backtrace."
(eq face-ignored-fonts old-face-ignored-fonts))
(clear-face-cache)))
;; Load ELPA packages.
(and user-init-file package-enable-at-startup (package-initialize))
(setq after-init-time (current-time))
(run-hooks 'after-init-hook)

View File

@ -660,8 +660,8 @@ re-start Emacs."
"[^A-Za-z\241\243\246\254\257\261\263\266\274\277\306\312\321\323\346\352\361\363]"
"[.]" nil nil nil iso-8859-2)
("portugues" ; Portuguese mode
"[a-zA-Z\301\302\311\323\340\341\342\351\352\355\363\343\372]"
"[^a-zA-Z\301\302\311\323\340\341\342\351\352\355\363\343\372]"
"[a-zA-Z\301\302\307\311\323\340\341\342\351\352\355\363\343\347\372]"
"[^a-zA-Z\301\302\307\311\323\340\341\342\351\352\355\363\343\347\372]"
"[']" t ("-C") "~latin1" iso-8859-1)
("russian" ; Russian.aff (KOI8-R charset)
"[\341\342\367\347\344\345\263\366\372\351\352\353\354\355\356\357\360\362\363\364\365\346\350\343\376\373\375\370\371\377\374\340\361\301\302\327\307\304\305\243\326\332\311\312\313\314\315\316\317\320\322\323\324\325\306\310\303\336\333\335\330\331\337\334\300\321]"
@ -982,8 +982,8 @@ Assumes that value contains no whitespace."
;; This returns nil if the data file does not exist.
;; Can someone please explain the return value format when the
;; file does exist -- rms?
(let* ((lang ;; Strip out region, variant, etc.
(and (string-match "^[[:alpha:]]+" dict-name)
(let* ((lang ;; Strip out variant, etc.
(and (string-match "^[[:alpha:]_]+" dict-name)
(match-string 0 dict-name)))
(data-file
(concat (or ispell-aspell-data-dir

View File

@ -1,3 +1,7 @@
2010-06-12 Štěpán Němec <stepnem@gmail.com> (tiny change)
* url-vars.el (url-privacy-level): Fix doc typo. (Bug#6406)
2010-05-19 Stefan Monnier <monnier@iro.umontreal.ca>
* url-util.el (url-unhex-string): Don't accidentally decode as latin-1.

View File

@ -128,7 +128,7 @@ email -- the email address
os -- the operating system info
lastloc -- the last location
agent -- do not send the User-Agent string
cookie -- never accept HTTP cookies
cookies -- never accept HTTP cookies
Samples:

View File

@ -4,7 +4,7 @@
;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: convenience files
;; Keywords: convenience files vc
;; This file is part of GNU Emacs.

View File

@ -316,7 +316,7 @@ use; you may override this using the second optional arg MODE."
;;;###autoload
(defun vc-annotate (file rev &optional display-mode buf move-point-to)
"Display the edit history of the current file using colors.
"Display the edit history of the current FILE using colors.
This command creates a buffer that shows, for each line of the current
file, when it was last edited and by whom. Additionally, colors are
@ -326,7 +326,7 @@ default, the time scale stretches back one year into the past;
everything that is older than that is shown in blue.
With a prefix argument, this command asks two questions in the
minibuffer. First, you may enter a revision number; then the buffer
minibuffer. First, you may enter a revision number REV; then the buffer
displays and annotates that revision instead of the working revision
\(type RET in the minibuffer to leave that default unchanged). Then,
you are prompted for the time span in days which the color range
@ -348,9 +348,9 @@ mode-specific menu. `vc-annotate-color-map' and
(list buffer-file-name
(let ((def (vc-working-revision buffer-file-name)))
(if (null current-prefix-arg) def
(read-string
(vc-read-revision
(format "Annotate from revision (default %s): " def)
nil nil def)))
(list buffer-file-name) nil def)))
(if (null current-prefix-arg)
vc-annotate-display-mode
(float (string-to-number

View File

@ -170,7 +170,7 @@ want to force an empty list of arguments, use t."
(?? . unregistered)
;; This is what vc-svn-parse-status does.
(?~ . edited)))
(re (if remote "^\\(.\\)...... \\([ *]\\) +\\(?:[-0-9]+\\)? \\(.*\\)$"
(re (if remote "^\\(.\\)......? \\([ *]\\) +\\(?:[-0-9]+\\)? \\(.*\\)$"
;; Subexp 2 is a dummy in this case, so the numbers match.
"^\\(.\\)....\\(.\\) \\(.*\\)$"))
result)

File diff suppressed because it is too large Load Diff

View File

@ -1,104 +0,0 @@
2008-04-23 Miles Bader <miles@gnu.org>
* eval.c (Ffunctionp): Return nil for special forms.
(Qunevalled): New variable.
(syms_of_eval): Initialize it.
2007-10-18 Miles Bader <miles@gnu.org>
* eval.c (FletX): Test the type of VARLIST rather than just !NILP.
(Flet): Use XCAR instead of Fcar.
2007-10-16 Miles Bader <miles@gnu.org>
* alloc.c (make_funvec, Fpurecopy): Set the pseudo-vector type.
2006-02-10 Miles Bader <miles@gnu.org>
* eval.c (Ffunctionp): Supply new 2nd arg to Findirect_function.
2005-03-04 Miles Bader <miles@gnu.org>
* eval.c (FletX): Update Vinterpreter_lexical_environment for each
variable we bind, instead of all at once like `let'.
2004-08-09 Miles Bader <miles@gnu.org>
Changes from merging the funvec patch:
* eval.c (Feval, Ffuncall): Don't special-case vectors.
(funcall_lambda): Use FUNVEC_SIZE.
(Fcurry): Remove function.
Merge funvec patch.
2004-04-10 Miles Bader <miles@gnu.org>
* eval.c (Fspecialp): New function.
(syms_of_eval): Initialize it.
2004-04-03 Miles Bader <miles@gnu.org>
* eval.c (Feval): If a variable isn't bound lexically, fall back
to looking it up dynamically even if it isn't declared special.
2002-08-26 Miles Bader <miles@gnu.org>
* bytecode.c (Fbyte_code): Fsub1 can GC, so protect it.
2002-06-12 Miles Bader <miles@gnu.org>
Lexical binding changes to the byte-code interpreter:
* bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, Bvec_ref, Bvec_set)
(BdiscardN): New constants.
(exec_byte_code): Renamed from `Fbyte_code'.
Implement above new bytecodes.
Add ARGS-TEMPLATE, NARGS and ARGS parameters, and optionally use
them push initial args on the stack.
(Fbyte_code): New function, just call `exec_byte_code'.
Add additional optional arguments for `exec_byte_code'.
(Qand_optional, Qand_rest): New extern declarations.
* eval.c (Fcurry, Ffunctionp): New functions.
(syms_of_eval): Initialize them.
(funcall_lambda): Call `exec_byte_code' instead of Fbyte_code.
If a compiled-function object has a `push-args' slot, call the
byte-code interpreter without binding any arguments.
(Ffuncall): Add support for curried functions.
* lisp.h (Fbyte_code): Declare max-args as MANY.
(exec_byte_code): New declaration.
Lexical binding changes to the lisp interpreter:
* lisp.h (struct Lisp_Symbol): Add `declared_special' field.
(apply_lambda): Add new 3rd arg to decl.
* alloc.c (Fmake_symbol): Initialize `declared_special' field.
* eval.c (Vinterpreter_lexical_environment): New variable.
(syms_of_eval): Initialize it.
(Fsetq): Modify SYM's lexical binding if appropriate.
(Ffunction): Return a closure if within a lexical environment.
(Flet, FletX): Lexically bind non-defvar'd variables if inside a
lexical environment.
(Feval): Return lexical binding of variables, if they have one.
Pass current lexical environment to embedded lambdas. Handle closures.
(Ffuncall): Pass nil lexical environment to lambdas. Handle closures.
(funcall_lambda): Add new LEXENV argument, and lexically bind
arguments if it's non-nil. Bind `interpreter-lexenv' if it changed.
(apply_lambda): Add new LEXENV argument and pass it to funcall_lambda.
(Fdefvaralias, Fdefvar, Fdefconst): Mark the variable as special.
(Qinternal_interpreter_environment, Qclosure): New constants.
(syms_of_eval): Initialize them.
(Fdefun, Fdefmacro): Use a closure if lexical binding is active.
* lread.c (defvar_bool, defvar_lisp_nopro, defvar_per_buffer)
(defvar_kboard, defvar_int): Mark the variable as special.
(Vlexical_binding, Qlexical_binding): New variables.
(syms_of_lread): Initialize them.
(Fload): Bind `lexically-bound' to nil unless specified otherwise
in the file header.
(lisp_file_lexically_bound_p): New function.
(Qinternal_interpreter_environment): New variable.
* doc.c (Qclosure): New extern declaration.
(Fdocumentation, store_function_docstring): Handle interpreted
closures.
;; arch-tag: 7cf884aa-6b48-40cb-bfca-265a1e99b3c5

24131
src/ChangeLog.trunk Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2819,7 +2819,17 @@ read1 (readcharfun, pch, first_in_list)
}
case '`':
if (first_in_list)
/* Transition from old-style to new-style:
If we see "(`" it used to mean old-style, which usually works
fine because ` should almost never appear in such a position
for new-style. But occasionally we need "(`" to mean new
style, so we try to distinguish the two by the fact that we
can either write "( `foo" or "(` foo", where the first
intends to use new-style whereas the second intends to use
old-style. For Emacs-25, we should completely remove this
first_in_list exception (old-style can still be obtained via
"(\`" anyway). */
if (first_in_list && (c = READCHAR, UNREAD (c), c == ' '))
{
Vold_style_backquotes = Qt;
goto default_label;

View File

@ -341,11 +341,11 @@ $(BLD)/bidi.$(O) : \
$(SRC)/bidi.c \
$(CONFIG_H) \
$(SRC)/lisp.h \
$(SRC)/bidimirror.h \
$(SRC)/biditype.h \
$(SRC)/buffer.h \
$(SRC)/character.h \
$(SRC)/dispextern.h \
$(SRC)/biditype.h \
$(SRC)/bidimirror.h \
$(SRC)/w32gui.h
$(BLD)/buffer.$(O) : \