Merge branch 'master' into cairo
This commit is contained in:
commit
f92ac2e82e
348 changed files with 21631 additions and 17480 deletions
|
@ -3,12 +3,11 @@
|
|||
(fill-column . 70)))
|
||||
(c-mode . ((c-file-style . "GNU")))
|
||||
(objc-mode . ((c-file-style . "GNU")))
|
||||
(log-edit-mode . ((log-edit-rewrite-fixes
|
||||
"[ \n](bug#\\([0-9]+\\))" . "debbugs:\\1")
|
||||
(log-edit-font-lock-gnu-style . t)
|
||||
(log-edit-mode . ((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")
|
||||
(mode . bug-reference)))
|
||||
(diff-mode . ((mode . whitespace))))
|
||||
(diff-mode . ((mode . whitespace)))
|
||||
(emacs-lisp-mode . ((indent-tabs-mode . nil))))
|
||||
|
|
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -217,6 +217,7 @@ lisp/international/uni-*.el
|
|||
*.ps
|
||||
*.sc
|
||||
*.scs
|
||||
*.t2d/
|
||||
*.tg
|
||||
*.tgs
|
||||
*.toc
|
||||
|
@ -229,7 +230,8 @@ doc/man/emacs.1
|
|||
doc/misc/cc-mode.ss
|
||||
etc/DOC
|
||||
etc/refcards/emacsver.tex
|
||||
info/dir
|
||||
gnustmp*
|
||||
/info/
|
||||
|
||||
# Version control and locks.
|
||||
*.orig
|
||||
|
@ -237,6 +239,7 @@ info/dir
|
|||
*~
|
||||
.#*
|
||||
\#*\#
|
||||
ChangeLog
|
||||
[0-9]*.patch
|
||||
|
||||
# Built by 'make install'.
|
||||
|
|
177
CONTRIBUTE
177
CONTRIBUTE
|
@ -7,19 +7,22 @@ http://www.gnu.org/software/emacs/manual/html_node/emacs/Contributing.html
|
|||
* Information for Emacs Developers.
|
||||
|
||||
An "Emacs Developer" is someone who contributes a lot of code or
|
||||
documentation to the Emacs repository. Generally, they have write
|
||||
documentation to the Emacs repository. Generally, they have write
|
||||
access to the Emacs git repository on Savannah
|
||||
https://savannah.gnu.org/git/?group=emacs.
|
||||
|
||||
** Write access to the Emacs repository.
|
||||
|
||||
Once you become a frequent contributor to Emacs, we can consider
|
||||
giving you write access to the version-control repository. Request
|
||||
access on the emacs-devel@gnu.org mailing list.
|
||||
giving you write access to the version-control repository. Request
|
||||
access on the emacs-devel@gnu.org mailing list. Also, be sure to
|
||||
subscribe to the emacs-devel@gnu.org mailing list and include the
|
||||
"emacs-announce" topic, so that you get the announcements about
|
||||
feature freeze and other important events.
|
||||
|
||||
** Using the Emacs repository
|
||||
|
||||
Emacs uses git for the source code repository.
|
||||
Emacs uses Git for the source code repository.
|
||||
|
||||
See http://www.emacswiki.org/emacs/GitQuickStartForEmacsDevs to get
|
||||
started, and http://www.emacswiki.org/emacs/GitForEmacsDevs for more
|
||||
|
@ -27,50 +30,84 @@ advanced information.
|
|||
|
||||
Alternately, see admin/notes/git-workflow.
|
||||
|
||||
If committing changes written by someone else, make the ChangeLog
|
||||
entry in their name, not yours. git distinguishes between the author
|
||||
If committing changes written by someone else, make the commit in
|
||||
their name, not yours. Git distinguishes between the author
|
||||
and the committer; use the --author option on the commit command to
|
||||
specify the actual author; the committer defaults to you.
|
||||
|
||||
** commit messages
|
||||
** Commit messages
|
||||
|
||||
When using git, commit messages should use ChangeLog format, with the
|
||||
following modifications:
|
||||
Emacs development no longer stores descriptions of new changes in
|
||||
ChangeLog files. Instead, a single ChangeLog file is generated from
|
||||
the commit messages when a release is prepared. So changes you commit
|
||||
should not touch any of the ChangeLog files in the repository, but
|
||||
instead should contain the log entries in the commit message. Here is
|
||||
an example of a commit message (indented):
|
||||
|
||||
- Start with a single unindented summary line explaining the change,
|
||||
then an empty line, then unindented ChangeLog entries.
|
||||
Deactivate shifted region
|
||||
|
||||
You can use various Emacs functions to ease this process; see (info
|
||||
"(emacs)Change Log Commands") or
|
||||
http://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Log-Commands.html.
|
||||
Do not silently extend a region that is not highlighted;
|
||||
this can happen after a shift (Bug#19003).
|
||||
* doc/emacs/mark.texi (Shift Selection): Document the change.
|
||||
* lisp/window.el (handle-select-window):
|
||||
* src/frame.c (Fhandle_switch_frame, Fselected_frame):
|
||||
Deactivate the mark.
|
||||
|
||||
Below are some rules and recommendations for formatting commit
|
||||
messages:
|
||||
|
||||
- Start with a single unindented summary line explaining the change;
|
||||
do not end this line with a period. If that line starts with a
|
||||
semi-colon and a space "; ", the log message will be ignored when
|
||||
generating the ChangeLog file. Use this for minor commits that do
|
||||
not need separate ChangeLog entries, such as changes in etc/NEWS.
|
||||
|
||||
- After the summary line, there should be an empty line, then
|
||||
unindented ChangeLog entries.
|
||||
|
||||
- Limit lines in commit messages to 78 characters, unless they consist
|
||||
of a single word of at most 140 characters. If you have trouble
|
||||
fitting the summary into 78 characters, add a summarizing paragraph
|
||||
below the empty line and before the individual file descriptions.
|
||||
of a single word of at most 140 characters; this is enforced by a
|
||||
commit hook. It's nicer to limit the summary line to 50 characters;
|
||||
this isn't enforced. If the change can't be summarized so briefly,
|
||||
add a paragraph after the empty line and before the individual file
|
||||
descriptions.
|
||||
|
||||
- If only a single file is changed, the summary line can be the normal
|
||||
file first line (starting with the asterisk). Then there is no
|
||||
individual files section.
|
||||
|
||||
- Explaining the rationale for a design choice is best done in comments
|
||||
in the source code. However, sometimes it is useful to describe just
|
||||
the rationale for a change; that can be done in the commit message
|
||||
between the summary line and the file entries.
|
||||
- If the commit has more than one author, the commit message should
|
||||
contain separate lines to mention the other authors, like the
|
||||
following:
|
||||
|
||||
Co-authored-by: Joe Schmoe <j.schmoe@example.org>
|
||||
|
||||
- If the commit is a tiny change that is exempt from copyright paperwork,
|
||||
the commit message should contain a separate line like the following:
|
||||
|
||||
Copyright-paperwork-exempt: yes
|
||||
|
||||
- The commit message should contain "Bug#NNNNN" if it is related to
|
||||
bug number NNNNN in the debbugs database. This string is often
|
||||
parenthesized, as in "(Bug#19003)".
|
||||
|
||||
- Commit messages should contain only printable UTF-8 characters.
|
||||
|
||||
- Commit messages should not contain the "Signed-off-by:" lines that
|
||||
are used in some other projects.
|
||||
|
||||
** ChangeLog notes
|
||||
- Explaining the rationale for a design choice is best done in comments
|
||||
in the source code. However, sometimes it is useful to describe just
|
||||
the rationale for a change; that can be done in the commit message
|
||||
between the summary line and the file entries.
|
||||
|
||||
- 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://www.gnu.org/prep/standards/html_node/Change-Logs.html or
|
||||
"(info (standards)Change Logs"). 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.
|
||||
|
||||
- Some of the rules in the GNU coding standards section 5.2
|
||||
"Commenting Your Work" also apply to ChangeLog entries: they must be
|
||||
|
@ -78,48 +115,58 @@ following modifications:
|
|||
ending with a period (except the summary line should not end in a
|
||||
period).
|
||||
|
||||
It is tempting to relax this rule for commit messages, since they
|
||||
are somewhat transient. However, they are preserved indefinitely,
|
||||
and have a reasonable chance of being read in the future, so it's
|
||||
better that they have good presentation.
|
||||
|
||||
- There are multiple ChangeLogs in the emacs source; roughly one per
|
||||
high-level directory. The ChangeLog entry for a commit belongs in the
|
||||
lowest ChangeLog that is higher than or at the same level as any file
|
||||
changed by the commit.
|
||||
They are preserved indefinitely, and have a reasonable chance of
|
||||
being read in the future, so it's better that they have good
|
||||
presentation.
|
||||
|
||||
- Use the present tense; describe "what the change does", not "what
|
||||
the change did".
|
||||
|
||||
- Preferred form for several entries with the same content:
|
||||
|
||||
* help.el (view-lossage):
|
||||
* kmacro.el (kmacro-edit-lossage):
|
||||
* edmacro.el (edit-kbd-macro): Fix docstring, lossage is now 300 keys.
|
||||
* lisp/help.el (view-lossage):
|
||||
* lisp/kmacro.el (kmacro-edit-lossage):
|
||||
* lisp/edmacro.el (edit-kbd-macro): Fix docstring, lossage is now 300.
|
||||
|
||||
(Rather than anything involving "ditto" and suchlike.)
|
||||
|
||||
- If the commit fixes a bug, add a separate line
|
||||
|
||||
Fixes: bug#NNNN
|
||||
|
||||
where NNNN is the bug number.
|
||||
|
||||
- In ChangeLog entries, there is no standard or recommended way to
|
||||
identify revisions.
|
||||
- There is no standard or recommended way to identify revisions in
|
||||
ChangeLog entries. Using Git SHA1 values limits the usability of
|
||||
the references to Git, and will become much less useful if Emacs
|
||||
switches to a different VCS. So we recommend against that.
|
||||
|
||||
One way to identify revisions 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"
|
||||
"2014-01-16T05:43:35Z!esr@thyrsus.com". Often, "my previous commit"
|
||||
will suffice.
|
||||
|
||||
- There is no need to make separate ChangeLog entries for files such
|
||||
as NEWS, MAINTAINERS, and FOR-RELEASE, or to indicate regeneration
|
||||
of files such as 'configure'. "There is no need" means you don't
|
||||
have to, but you can if you want to.
|
||||
- There is no need to mention files such as NEWS, MAINTAINERS, and
|
||||
FOR-RELEASE, or to indicate regeneration of files such as
|
||||
'configure', in the ChangeLog entry. "There is no need" means you
|
||||
don't have to, but you can if you want to.
|
||||
|
||||
** branches
|
||||
** Generating ChangeLog entries
|
||||
|
||||
- You can use various Emacs functions to ease the process of writing
|
||||
ChangeLog entries; see (info "(emacs)Change Log Commands") or
|
||||
http://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Log-Commands.html.
|
||||
|
||||
- If you use Emacs VC, one way to format ChangeLog entries is to create
|
||||
a top-level ChangeLog file manually, and update it with 'C-x 4 a' as
|
||||
usual. Do not register the ChangeLog file under git; instead, use
|
||||
'C-c C-a' to insert its contents into into your *vc-log* buffer.
|
||||
Or if 'log-edit-hook' includes 'log-edit-insert-changelog' (which it
|
||||
does by default), they will be filled in for you automatically.
|
||||
|
||||
- Alternatively, you can use the vc-dwim command to maintain commit
|
||||
messages. When you create a source directory, run the shell command
|
||||
'git-changelog-symlink-init' to create a symbolic link from
|
||||
ChangeLog to .git/c/ChangeLog. Edit this ChangeLog via its symlink
|
||||
with Emacs commands like 'C-x 4 a', and commit the change using the
|
||||
shell command 'vc-dwim --commit'. Type 'vc-dwim --help' for more.
|
||||
|
||||
** Branches
|
||||
|
||||
Development normally takes places on the trunk.
|
||||
Sometimes specialized features are developed on separate branches
|
||||
|
@ -130,9 +177,9 @@ Development is discussed on the emacs-devel mailing list.
|
|||
Sometime before the release of a new major version of Emacs a "feature
|
||||
freeze" is imposed on the trunk, to prepare for creating a release
|
||||
branch. No new features may be added to the trunk after this point,
|
||||
until the release branch is created. Announcements about the freeze
|
||||
(and other important events) are made on the info-gnu-emacs mailing
|
||||
list, and not anywhere else.
|
||||
until the release branch is created. Announcements about the freeze
|
||||
(and other important events) are made on the emacs-devel mailing
|
||||
list under the "emacs-announce" topic, and not anywhere else.
|
||||
|
||||
The trunk branch is named "master" in git; release branches are named
|
||||
"emacs-nn" where "nn" is the major version.
|
||||
|
@ -151,13 +198,13 @@ then exclude that commit from the merge to trunk.
|
|||
|
||||
** Other process information
|
||||
|
||||
See all the files in admin/notes/* . In particular, see
|
||||
See all the files in admin/notes/* . In particular, see
|
||||
admin/notes/newfile, see admin/notes/repo.
|
||||
|
||||
*** git vs rename
|
||||
|
||||
git does not explicitly represent a file renaming; it uses a percent
|
||||
changed heuristic to deduce that a file was renamed. So if you are
|
||||
Git does not explicitly represent a file renaming; it uses a percent
|
||||
changed heuristic to deduce that a file was renamed. So if you are
|
||||
planning to make extensive changes to a file after renaming it (or
|
||||
moving it to another directory), you should:
|
||||
|
||||
|
@ -168,7 +215,7 @@ moving it to another directory), you should:
|
|||
- make other changes
|
||||
|
||||
- merge the feature branch to trunk, _not_ squashing the commits into
|
||||
one. The commit message on this merge should summarize the renames
|
||||
one. The commit message on this merge should summarize the renames
|
||||
and all the changes.
|
||||
|
||||
** Emacs Mailing lists.
|
||||
|
@ -182,6 +229,10 @@ to the tracker at http://debbugs.gnu.org .
|
|||
You can subscribe to the mailing lists, or see the list archives,
|
||||
by following links from http://savannah.gnu.org/mail/?group=emacs .
|
||||
|
||||
To email a patch you can use a shell command like 'git format-patch -1'
|
||||
to create a file, and then attach the file to your email. This nicely
|
||||
packages the patch's commit message and changes.
|
||||
|
||||
** Document your changes.
|
||||
|
||||
Any change that matters to end-users should have an entry in etc/NEWS.
|
||||
|
@ -191,11 +242,11 @@ Doc-strings should be updated together with the code.
|
|||
Think about whether your change requires updating the manuals. If you
|
||||
know it does not, mark the NEWS entry with "---". If you know
|
||||
that *all* the necessary documentation updates have been made, mark
|
||||
the entry with "+++". Otherwise do not mark it.
|
||||
the entry with "+++". Otherwise do not mark it.
|
||||
|
||||
Please see (info "(elisp)Documentation Tips") or
|
||||
https://www.gnu.org/software/emacs/manual/html_node/elisp/Documentation-Tips.html
|
||||
for more specific tips on Emacs's doc style. Use `checkdoc' to check
|
||||
for more specific tips on Emacs's doc style. Use 'checkdoc' to check
|
||||
for documentation errors before submitting a patch.
|
||||
|
||||
** Test your changes.
|
||||
|
@ -217,7 +268,9 @@ top-level directory. Most tests are in the directory
|
|||
|
||||
The best way to understand Emacs Internals is to read the code,
|
||||
but the nodes "Tips" and "GNU Emacs Internals" in the Appendix
|
||||
of the Emacs Lisp Reference Manual may also help.
|
||||
of the Emacs Lisp Reference Manual may also help. Some source files,
|
||||
such as xdisp.c, have large commentaries describing the design and
|
||||
implementation in more detail.
|
||||
|
||||
The file etc/DEBUG describes how to debug Emacs bugs.
|
||||
|
||||
|
|
|
@ -3,6 +3,12 @@
|
|||
* configure.ac: Allow jpeg with cairo.
|
||||
Allow tiff and gif with cairo.
|
||||
|
||||
2015-04-07 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Merge from gnulib
|
||||
* lib/stddef.in.h: Update from gnulib, incorporating:
|
||||
2015-04-02 stddef: port to pre-C11 GCC on x86
|
||||
|
||||
2015-04-05 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* configure.ac: Allow rsvg with cairo. Move back HAVE_RSVG.
|
||||
|
@ -12,6 +18,16 @@
|
|||
* configure.ac (HAVE_RSVG): Move after cairo.
|
||||
(USE_CAIRO): Disable rsvg, don't disable Xpm.
|
||||
|
||||
2015-04-03 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Port 'configure' to clang 3.5
|
||||
* configure.ac: Add -Wno-unknown-attributes if clang;
|
||||
otherwise clang 3.5.0 (Fedora 21 x86-64) complains
|
||||
"/usr/include/glib-2.0/glib/gmem.h: ... warning: unknown attribute
|
||||
'__alloc_size__' ignored". Use -Werror when checking for -nopie;
|
||||
otherwise clang warns about -nopie instead of failing, and then
|
||||
later it warns everytime the build uses -nopie.
|
||||
|
||||
2015-04-03 Ulrich Müller <ulm@gentoo.org>
|
||||
|
||||
* configure.ac (LD_SWITCH_SYSTEM_TEMACS): Add -nopie option if it
|
||||
|
@ -53,7 +69,7 @@
|
|||
(HAVE_PTHREAD, LIB_PTHREAD): Port better to FreeBSD,
|
||||
by also checking for pthread_create, pthread_self, pthread_sigmask.
|
||||
Tighten the test for pthread_atfork while we're at it.
|
||||
Fixes: bug#20136
|
||||
(Bug#20136)
|
||||
|
||||
Merge from gnulib
|
||||
This incorporates:
|
||||
|
@ -74,7 +90,7 @@
|
|||
Don't require GNU putenv
|
||||
* configure.ac: Use system putenv even if it lacks GNU features, as
|
||||
we don't need them. This works around a bug in FreeBSD 10.1 getenv.
|
||||
Fixes: bug#19874
|
||||
(Bug#19874)
|
||||
|
||||
2015-02-25 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
|
@ -175,7 +191,7 @@
|
|||
If gnustep-config works, use 'gnustep-config --objc-flags' and
|
||||
'gnustep-config --gui-libs' to compute GNUstep configuration
|
||||
variables, instead of attempting to infer them individually.
|
||||
Fixes: bug#19507
|
||||
(Bug#19507)
|
||||
|
||||
2015-01-21 Ulrich Müller <ulm@gentoo.org>
|
||||
|
||||
|
@ -203,7 +219,7 @@
|
|||
* INSTALL: Document this.
|
||||
* configure.ac: Add AM_SILENT_RULES([yes]).
|
||||
(AM_DEFAULT_VERBOSITY): Remove now-unnecessary initialization.
|
||||
Fixes: bug#19501
|
||||
(Bug#19501)
|
||||
|
||||
2015-01-06 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
1684
ChangeLog.2
Normal file
1684
ChangeLog.2
Normal file
File diff suppressed because it is too large
Load diff
298
INSTALL
298
INSTALL
|
@ -13,21 +13,21 @@ msdos/INSTALL. For information about building from a repository checkout
|
|||
|
||||
BASIC INSTALLATION
|
||||
|
||||
On most Unix systems, you build Emacs by first running the `configure'
|
||||
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.
|
||||
'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.
|
||||
|
||||
Building Emacs requires GNU make, <http://www.gnu.org/software/make/>.
|
||||
On most systems that Emacs supports, this is the default `make' program.
|
||||
On most systems that Emacs supports, this is the default 'make' program.
|
||||
|
||||
Here's the procedure to build Emacs using `configure' on systems which
|
||||
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
|
||||
some of the steps manually. The more detailed description in the other
|
||||
|
@ -40,48 +40,48 @@ sections if you need to.
|
|||
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:
|
||||
2a. 'cd' to the directory where you unpacked Emacs and invoke the
|
||||
'configure' script:
|
||||
|
||||
./configure
|
||||
|
||||
2b. Alternatively, create a separate directory, outside the source
|
||||
directory, where you want to build Emacs, and invoke `configure'
|
||||
directory, where you want to build Emacs, and invoke 'configure'
|
||||
from there:
|
||||
|
||||
SOURCE-DIR/configure
|
||||
|
||||
where SOURCE-DIR is the top-level Emacs source directory.
|
||||
|
||||
3. When `configure' finishes, it prints several lines of details
|
||||
3. When 'configure' finishes, it prints several lines of details
|
||||
about the system configuration. Read those details carefully
|
||||
looking for anything suspicious, such as wrong CPU and operating
|
||||
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 may have to pass to `configure'
|
||||
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
|
||||
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
|
||||
If the details printed by 'configure' don't make any sense to
|
||||
you, but there are no obvious errors, assume that 'configure' did
|
||||
its job and proceed.
|
||||
|
||||
4. Invoke the `make' program:
|
||||
4. Invoke the 'make' program:
|
||||
|
||||
make
|
||||
|
||||
5. If `make' succeeds, it will build an executable program `emacs'
|
||||
in the `src' directory. You can try this program, to make sure
|
||||
5. If 'make' succeeds, it will build an executable program 'emacs'
|
||||
in the 'src' directory. You can try this program, to make sure
|
||||
it works:
|
||||
|
||||
src/emacs -Q
|
||||
|
||||
6. Assuming that the program `src/emacs' starts and displays its
|
||||
6. Assuming that the program 'src/emacs' starts and displays its
|
||||
opening screen, you can install the program and its auxiliary
|
||||
files into their installation directories:
|
||||
|
||||
|
@ -101,7 +101,7 @@ sections if you need to.
|
|||
make distclean
|
||||
|
||||
Note that the install automatically saves space by compressing
|
||||
(provided you have the `gzip' program) those installed Lisp source (.el)
|
||||
(provided you have the 'gzip' program) those installed Lisp source (.el)
|
||||
files that have corresponding .elc versions, as well as the Info files.
|
||||
|
||||
|
||||
|
@ -114,7 +114,7 @@ On GNU and Unix systems, Emacs needs the optional libraries "m17n-db",
|
|||
Indic and Khmer, and also for scripts that require Arabic shaping
|
||||
support (Arabic and Farsi). On some systems, particularly GNU/Linux,
|
||||
these libraries may be already present or available as additional
|
||||
packages. Note that if there is a separate `dev' or `devel' package,
|
||||
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,
|
||||
|
@ -148,7 +148,7 @@ 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. If
|
||||
there is a separate `dev' or `devel' package, for use at compilation
|
||||
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
|
||||
|
@ -195,15 +195,15 @@ number of free Unicode fonts.
|
|||
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'
|
||||
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 emacs24'. On Red Hat systems, the
|
||||
corresponding command is `yum-builddep emacs'.
|
||||
like 'apt-get build-dep emacs24'. On Red Hat systems, the
|
||||
corresponding command is 'yum-builddep emacs'.
|
||||
|
||||
|
||||
DETAILED BUILDING AND INSTALLATION:
|
||||
|
@ -214,37 +214,37 @@ the file nt/INSTALL. For MS-DOS and MS Windows 3.X, see msdos/INSTALL.)
|
|||
|
||||
1) See the basic installation summary above for the disk space requirements.
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
3a) To build in the top-level Emacs source directory, go to that
|
||||
directory and run the program `configure' as follows:
|
||||
directory and run the program 'configure' as follows:
|
||||
|
||||
./configure [--OPTION[=VALUE]] ...
|
||||
|
||||
If `configure' cannot determine your system type, try again
|
||||
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
|
||||
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
|
||||
system has X, and arrange to use it if present.
|
||||
|
||||
The `--x-includes=DIR' and `--x-libraries=DIR' options tell the build
|
||||
The '--x-includes=DIR' and '--x-libraries=DIR' options tell the build
|
||||
process where the compiler should look for the include files and
|
||||
object libraries used with the X Window System. Normally, `configure'
|
||||
object libraries used with the X Window System. Normally, 'configure'
|
||||
is able to find them; these options are necessary if you have your X
|
||||
Window System files installed in unusual places. These options also
|
||||
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'). Compiling with Motif causes a
|
||||
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'). 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
|
||||
|
@ -257,12 +257,12 @@ Emacs will autolaunch a D-Bus session bus, when the environment
|
|||
variable DISPLAY is set, but no session bus is running. This might be
|
||||
inconvenient for Emacs when running as daemon or running via a remote
|
||||
ssh connection. In order to completely prevent the use of D-Bus, configure
|
||||
Emacs with the options `--without-dbus --without-gconf --without-gsettings'.
|
||||
Emacs with the options '--without-dbus --without-gconf --without-gsettings'.
|
||||
|
||||
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
|
||||
POP3 are not supported. For Kerberos-authenticated POP add
|
||||
`--with-kerberos', for Hesiod support add `--with-hesiod'. While POP3
|
||||
'--with-kerberos', for Hesiod support add '--with-hesiod'. While POP3
|
||||
is always enabled, whether Emacs actually uses POP is controlled by
|
||||
individual users--see the Rmail chapter of the Emacs manual.
|
||||
|
||||
|
@ -322,28 +322,28 @@ that goes awry. 'make V=1' also enables the extra chatter.
|
|||
|
||||
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
|
||||
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.
|
||||
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'.
|
||||
The '--prefix=PREFIXDIR' option specifies where the installation process
|
||||
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).
|
||||
(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 `23.2').
|
||||
(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
|
||||
i686-pc-linux-gnu), unless the `--exec-prefix' option says otherwise.
|
||||
i686-pc-linux-gnu), unless the '--exec-prefix' option says otherwise.
|
||||
|
||||
The `--exec-prefix=EXECDIR' option allows you to specify a separate
|
||||
The '--exec-prefix=EXECDIR' option allows you to specify a separate
|
||||
portion of the directory tree for installing architecture-specific
|
||||
files, like executables and utility programs. If specified,
|
||||
- Emacs (and the other utilities users run) go in EXECDIR/bin, and
|
||||
|
@ -358,26 +358,26 @@ For example, the command
|
|||
configures Emacs to build for a 32-bit GNU/Linux distribution,
|
||||
without sound support.
|
||||
|
||||
`configure' doesn't do any compilation or installation itself.
|
||||
'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'.
|
||||
'./Makefile' in the top-level directory and several subdirectories;
|
||||
and './src/config.h'.
|
||||
|
||||
When it is done, `configure' prints a description of what it did and
|
||||
creates a shell script `config.status' which, when run, recreates the
|
||||
same configuration. If `configure' exits with an error after
|
||||
disturbing the status quo, it removes `config.status'. `configure'
|
||||
also creates a file `config.cache' that saves the results of its tests
|
||||
to make reconfiguring faster, and a file `config.log' containing compiler
|
||||
output (useful mainly for debugging `configure'). You can give
|
||||
`configure' the option `--cache-file=FILE' to use the results of the
|
||||
tests in FILE instead of `config.cache'. Set FILE to `/dev/null' to
|
||||
disable caching, for debugging `configure'.
|
||||
When it is done, 'configure' prints a description of what it did and
|
||||
creates a shell script 'config.status' which, when run, recreates the
|
||||
same configuration. If 'configure' exits with an error after
|
||||
disturbing the status quo, it removes 'config.status'. 'configure'
|
||||
also creates a file 'config.cache' that saves the results of its tests
|
||||
to make reconfiguring faster, and a file 'config.log' containing compiler
|
||||
output (useful mainly for debugging 'configure'). You can give
|
||||
'configure' the option '--cache-file=FILE' to use the results of the
|
||||
tests in FILE instead of 'config.cache'. Set FILE to '/dev/null' to
|
||||
disable caching, for debugging 'configure'.
|
||||
|
||||
If the description of the system configuration printed by `configure'
|
||||
If the description of the system configuration printed by 'configure'
|
||||
is not right, or if it claims some of the features or libraries are not
|
||||
available when you know they are, look at the `config.log' file for
|
||||
the trace of the failed tests performed by `configure' to check
|
||||
available when you know they are, look at the 'config.log' file for
|
||||
the trace of the failed tests performed by 'configure' to check
|
||||
whether these features are supported. Typically, some test fails
|
||||
because the compiler cannot find some function in the system
|
||||
libraries, or some macro-processor definition in the system headers.
|
||||
|
@ -385,29 +385,29 @@ libraries, or some macro-processor definition in the system headers.
|
|||
Some tests might fail because the compiler should look in special
|
||||
directories for some header files, or link against optional
|
||||
libraries, or use special compilation options. You can force
|
||||
`configure' and the build process which follows it to do that by
|
||||
'configure' and the build process which follows it to do that by
|
||||
setting the variables CPPFLAGS, CFLAGS, LDFLAGS, LIBS, CPP and CC
|
||||
before running `configure'. CPP is the command which invokes the
|
||||
before running 'configure'. CPP is the command which invokes the
|
||||
preprocessor, CPPFLAGS lists the options passed to it, CFLAGS are
|
||||
compilation options, LDFLAGS are options used when linking, LIBS are
|
||||
libraries to link against, and CC is the command which invokes the
|
||||
compiler. By default, gcc is used if available.
|
||||
|
||||
Here's an example of a `configure' invocation, assuming a Bourne-like
|
||||
Here's an example of a 'configure' invocation, assuming a Bourne-like
|
||||
shell such as Bash, which uses these variables:
|
||||
|
||||
./configure \
|
||||
CPPFLAGS='-I/foo/myinclude' LDFLAGS='-L/bar/mylib' \
|
||||
CFLAGS='-O3' LIBS='-lfoo -lbar'
|
||||
|
||||
(this is all one shell command). This tells `configure' to instruct the
|
||||
preprocessor to look in the `/foo/myinclude' directory for header
|
||||
(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
|
||||
to look in '/bar/mylib' for libraries, pass the -O3 optimization
|
||||
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
|
||||
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
|
||||
PKG_CONFIG_PATH to point to the directories where the .pc-files for
|
||||
|
@ -417,27 +417,27 @@ those libraries are. For example:
|
|||
PKG_CONFIG_PATH='/usr/local/alsa/lib/pkgconfig:/opt/gtk+-2.8/lib/pkgconfig'
|
||||
|
||||
3b) To build in a separate directory, go to that directory
|
||||
and run the program `configure' as follows:
|
||||
and run the program 'configure' as follows:
|
||||
|
||||
SOURCE-DIR/configure CONFIGURATION-NAME [--OPTION[=VALUE]] ...
|
||||
|
||||
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.
|
||||
where Emacs's configure script is located. 'configure' looks for the
|
||||
Emacs source code in the directory that 'configure' is in.
|
||||
|
||||
4) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
|
||||
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
|
||||
site-load.el for additional libraries if you arrange for their
|
||||
documentation strings to be in the etc/DOC file (see
|
||||
src/Makefile.in if you wish to figure out how to do that). For all
|
||||
else, use site-init.el. Do not load byte-compiled code which
|
||||
was built with a non-nil value of `byte-compile-dynamic'.
|
||||
was built with a non-nil value of 'byte-compile-dynamic'.
|
||||
|
||||
It is not a good idea to edit the normal .el files that come with Emacs.
|
||||
Instead, use a file like site-init.el to change settings.
|
||||
|
||||
To change the value of a variable that is already defined in Emacs,
|
||||
you should use the Lisp function `setq', not `defvar'. For example,
|
||||
you should use the Lisp function 'setq', not 'defvar'. For example,
|
||||
|
||||
(setq news-inews-program "/usr/bin/inews")
|
||||
|
||||
|
@ -449,46 +449,46 @@ 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.
|
||||
|
||||
The `site-*.el' files are nonexistent in the distribution. You do not
|
||||
The 'site-*.el' files are nonexistent in the distribution. You do not
|
||||
need to create them if you have nothing to put in them.
|
||||
|
||||
5) Refer to the file `./etc/TERMS' for information on fields you may
|
||||
5) Refer to the file './etc/TERMS' for information on fields you may
|
||||
wish to add to various termcap entries. (This is unlikely to be necessary.)
|
||||
|
||||
6) Run `make' in the top directory of the Emacs distribution to finish
|
||||
6) Run 'make' in the top directory of the Emacs distribution to finish
|
||||
building Emacs in the standard way. The final executable file is
|
||||
named `src/emacs'. You can execute this file "in place" without
|
||||
named 'src/emacs'. You can execute this file "in place" without
|
||||
copying it, if you wish; then it automatically uses the sibling
|
||||
directories ../lisp, ../lib-src, ../info.
|
||||
|
||||
Or you can "install" the executable and the other files into their
|
||||
installed locations, with `make install'. By default, Emacs's files
|
||||
installed locations, with 'make install'. By default, Emacs's files
|
||||
are installed in the following directories:
|
||||
|
||||
`/usr/local/bin' holds the executable programs users normally run -
|
||||
`emacs', `etags', `ctags', `emacsclient'.
|
||||
'/usr/local/bin' holds the executable programs users normally run -
|
||||
'emacs', 'etags', 'ctags', 'emacsclient'.
|
||||
|
||||
`/usr/local/share/emacs/VERSION/lisp' holds the Emacs Lisp library;
|
||||
`VERSION' stands for the number of the Emacs version
|
||||
you are installing, like `23.1' or `23.2'. Since the
|
||||
'/usr/local/share/emacs/VERSION/lisp' holds the Emacs Lisp library;
|
||||
'VERSION' stands for the number of the Emacs version
|
||||
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
|
||||
at the same time; in particular, you don't have to
|
||||
make Emacs unavailable while installing a new version.
|
||||
|
||||
`/usr/local/share/emacs/VERSION/etc' holds the Emacs tutorial, the DOC
|
||||
'/usr/local/share/emacs/VERSION/etc' holds the Emacs tutorial, the DOC
|
||||
file, and other architecture-independent files Emacs
|
||||
might need while running.
|
||||
|
||||
`/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME' contains executable
|
||||
'/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 value
|
||||
deduced by the `configure' program to identify the
|
||||
'VERSION' is the number of the Emacs version you are
|
||||
installing, and 'CONFIGURATION-NAME' is the value
|
||||
deduced by the 'configure' program to identify the
|
||||
architecture and operating system of your machine,
|
||||
like `i686-pc-linux-gnu' 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
|
||||
|
@ -497,35 +497,35 @@ are installed in the following directories:
|
|||
useful for sites at which different kinds of machines
|
||||
share the file system Emacs is installed on.
|
||||
|
||||
`/usr/local/share/info' holds the on-line documentation for Emacs,
|
||||
'/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.
|
||||
|
||||
`/usr/local/share/man/man1' holds the man pages for the programs installed
|
||||
in `/usr/local/bin'.
|
||||
'/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
|
||||
files in these directories.
|
||||
|
||||
`/usr/local/share/emacs/VERSION/site-lisp' holds the local Emacs Lisp
|
||||
'/usr/local/share/emacs/VERSION/site-lisp' holds the local Emacs Lisp
|
||||
files installed for Emacs version VERSION only.
|
||||
|
||||
`/usr/local/share/emacs/site-lisp' holds the local Emacs Lisp
|
||||
'/usr/local/share/emacs/site-lisp' holds the local Emacs Lisp
|
||||
files installed for all Emacs versions.
|
||||
|
||||
When Emacs is installed, it searches for its Lisp files
|
||||
in `/usr/local/share/emacs/VERSION/site-lisp', then in
|
||||
`/usr/local/share/emacs/site-lisp', and finally in
|
||||
`/usr/local/share/emacs/VERSION/lisp'.
|
||||
in '/usr/local/share/emacs/VERSION/site-lisp', then in
|
||||
'/usr/local/share/emacs/site-lisp', and finally in
|
||||
'/usr/local/share/emacs/VERSION/lisp'.
|
||||
|
||||
If these directories are not what you want, you can specify where to
|
||||
install Emacs's libraries and data files or where Emacs should search
|
||||
for its Lisp files by giving values for `make' variables as part of
|
||||
the command. See the section below called `MAKE VARIABLES' for more
|
||||
for its Lisp files by giving values for 'make' variables as part of
|
||||
the command. See the section below called 'MAKE VARIABLES' for more
|
||||
information on this.
|
||||
|
||||
7) Check the file `dir' in your site's info directory (usually
|
||||
7) Check the file 'dir' in your site's info directory (usually
|
||||
/usr/local/share/info) to make sure that it has a menu entry for the
|
||||
Emacs info files.
|
||||
|
||||
|
@ -534,51 +534,51 @@ then you might need to make the movemail program setuid or setgid
|
|||
to enable it to write the lock files. We believe this is safe.
|
||||
|
||||
9) You are done! You can remove executables and object files from
|
||||
the build directory by typing `make clean'. To also remove the files
|
||||
that `configure' created (so you can compile Emacs for a different
|
||||
configuration), type `make distclean'.
|
||||
the build directory by typing 'make clean'. To also remove the files
|
||||
that 'configure' created (so you can compile Emacs for a different
|
||||
configuration), type 'make distclean'.
|
||||
|
||||
|
||||
MAKE VARIABLES
|
||||
|
||||
You can change where the build process installs Emacs and its data
|
||||
files by specifying values for `make' variables as part of the `make'
|
||||
files by specifying values for 'make' variables as part of the 'make'
|
||||
command line. For example, if you type
|
||||
|
||||
make install bindir=/usr/local/gnubin
|
||||
|
||||
the `bindir=/usr/local/gnubin' argument indicates that the Emacs
|
||||
executable files should go in `/usr/local/gnubin', not
|
||||
`/usr/local/bin'.
|
||||
the 'bindir=/usr/local/gnubin' argument indicates that the Emacs
|
||||
executable files should go in '/usr/local/gnubin', not
|
||||
'/usr/local/bin'.
|
||||
|
||||
Here is a complete list of the variables you may want to set.
|
||||
|
||||
`bindir' indicates where to put executable programs that users can
|
||||
'bindir' indicates where to put executable programs that users can
|
||||
run. This defaults to /usr/local/bin.
|
||||
|
||||
`datadir' indicates where to put the architecture-independent
|
||||
'datadir' indicates where to put the architecture-independent
|
||||
read-only data files that Emacs refers to while it runs; it
|
||||
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 tutorials, DOC file, etc.
|
||||
`VERSION' is the number of the Emacs version you are installing,
|
||||
like `23.1' or `23.2'. Since these files vary from one version
|
||||
subdirectories under 'datadir':
|
||||
- 'emacs/VERSION/lisp', containing the Emacs Lisp library, and
|
||||
- 'emacs/VERSION/etc', containing the tutorials, DOC file, etc.
|
||||
'VERSION' is the number of the Emacs version you are installing,
|
||||
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
|
||||
unavailable while installing a new version.
|
||||
|
||||
`libexecdir' indicates where to put architecture-specific data files that
|
||||
Emacs refers to as it runs; it defaults to `/usr/local/libexec'.
|
||||
We create the following subdirectories under `libexecdir':
|
||||
- `emacs/VERSION/CONFIGURATION-NAME', containing executable
|
||||
'libexecdir' indicates where to put architecture-specific data files that
|
||||
Emacs refers to as it runs; it defaults to '/usr/local/libexec'.
|
||||
We create the following subdirectories under 'libexecdir':
|
||||
- 'emacs/VERSION/CONFIGURATION-NAME', containing 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 value deduced by the
|
||||
`configure' program to identify the architecture and operating
|
||||
system of your machine, like `i686-pc-linux-gnu' or `sparc-sun-sunos'.
|
||||
'VERSION' is the number of the Emacs version you are installing,
|
||||
and 'CONFIGURATION-NAME' is the value deduced by the
|
||||
'configure' program to identify the architecture and operating
|
||||
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
|
||||
|
@ -587,57 +587,57 @@ Here is a complete list of the variables you may want to set.
|
|||
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'.
|
||||
'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/share/man/man1'.
|
||||
'mandir' indicates where to put the man pages for Emacs and its
|
||||
utilities (like 'etags'); it defaults to
|
||||
'/usr/local/share/man/man1'.
|
||||
|
||||
`prefix' doesn't give a path for any specific part of Emacs; instead,
|
||||
'prefix' doesn't give a path for any specific part of Emacs; instead,
|
||||
its value is used to determine the defaults for all the
|
||||
architecture-independent path variables - `datadir',
|
||||
`sharedstatedir', `infodir', and `mandir'. Its default value is
|
||||
`/usr/local'; the other variables add on `lib' or `man' to it
|
||||
architecture-independent path variables - 'datadir',
|
||||
'sharedstatedir', 'infodir', and 'mandir'. Its default value is
|
||||
'/usr/local'; the other variables add on 'lib' or 'man' to it
|
||||
by default.
|
||||
|
||||
For example, suppose your site generally places GNU software
|
||||
under `/usr/users/software/gnusoft' instead of `/usr/local'.
|
||||
under '/usr/users/software/gnusoft' instead of '/usr/local'.
|
||||
By including
|
||||
`prefix=/usr/users/software/gnusoft'
|
||||
in the arguments to `make', you can instruct the build process
|
||||
'prefix=/usr/users/software/gnusoft'
|
||||
in the arguments to 'make', you can instruct the build process
|
||||
to place all of the Emacs data files in the appropriate
|
||||
directories under that path.
|
||||
|
||||
`exec_prefix' serves the same purpose as `prefix', but instead
|
||||
'exec_prefix' serves the same purpose as 'prefix', but instead
|
||||
determines the default values for the architecture-dependent
|
||||
path variables - `bindir' and `libexecdir'.
|
||||
path variables - 'bindir' and 'libexecdir'.
|
||||
|
||||
The above variables serve analogous purposes in the makefiles for all
|
||||
GNU software; the following variables are specific to Emacs.
|
||||
|
||||
`archlibdir' indicates where Emacs installs and expects the executable
|
||||
'archlibdir' indicates where Emacs installs and expects the executable
|
||||
files and other architecture-dependent data it uses while
|
||||
running. Its default value, based on `libexecdir' (which
|
||||
see), is `/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME'
|
||||
running. Its default value, based on 'libexecdir' (which
|
||||
see), is '/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME'
|
||||
(where VERSION and CONFIGURATION-NAME are as described above).
|
||||
|
||||
`GZIP_PROG' is the name of the executable that compresses installed info,
|
||||
'GZIP_PROG' is the name of the executable that compresses installed info,
|
||||
manual, and .el files. It defaults to gzip. Setting it to
|
||||
the empty string suppresses compression.
|
||||
|
||||
Remember that you must specify any variable values you need each time
|
||||
you run `make' in the top directory. If you run `make' once to build
|
||||
emacs, test it, and then run `make' again to install the files, you
|
||||
you run 'make' in the top directory. If you run 'make' once to build
|
||||
emacs, test it, and then run 'make' again to install the files, you
|
||||
must provide the same variable settings each time. To make the
|
||||
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'.
|
||||
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/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'.
|
||||
before you run 'make'.
|
||||
|
||||
The top-level Makefile stores the variable settings it used in the
|
||||
Makefiles for the subdirectories, so you don't have to specify them
|
||||
|
@ -646,7 +646,7 @@ when running make in the subdirectories.
|
|||
|
||||
PROBLEMS
|
||||
|
||||
See the file `./etc/PROBLEMS' for a list of various problems sometimes
|
||||
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.
|
||||
|
|
106
Makefile.in
106
Makefile.in
|
@ -30,13 +30,13 @@
|
|||
# by building, but normally aren't because the distribution comes
|
||||
# with them.
|
||||
#
|
||||
# Delete `.dvi' files here if they are not part of the distribution.
|
||||
# Delete '.dvi' files here if they are not part of the distribution.
|
||||
#
|
||||
# make distclean
|
||||
# Delete all files from the current directory that are created by
|
||||
# configuring or building the program. If you have unpacked the
|
||||
# source and built the program without creating any other files,
|
||||
# `make distclean' should leave only the files that were in the
|
||||
# 'make distclean' should leave only the files that were in the
|
||||
# distribution.
|
||||
#
|
||||
# make maintainer-clean
|
||||
|
@ -67,7 +67,7 @@ CDPATH=
|
|||
# If Make doesn't predefine MAKE, set it here.
|
||||
@SET_MAKE@
|
||||
|
||||
# ==================== Things `configure' Might Edit ====================
|
||||
# ==================== Things 'configure' Might Edit ====================
|
||||
|
||||
cache_file = @cache_file@
|
||||
CONFIGURE_FLAGS = --cache-file=$(cache_file)
|
||||
|
@ -84,11 +84,11 @@ EXEEXT=@EXEEXT@
|
|||
### to install files in.
|
||||
|
||||
### This should be the number of the Emacs version we're building,
|
||||
### like `18.59' or `19.0'.
|
||||
### like '24.5' or '25.0.50'.
|
||||
version=@version@
|
||||
|
||||
### This should be the name of the configuration we're building Emacs
|
||||
### for, like `mips-dec-ultrix' or `sparc-sun-sunos'.
|
||||
### for, like 'x86_64-unknown-linux-gnu' or 'powerpc-ibm-aix7.1.2.0'.
|
||||
configuration=@configuration@
|
||||
|
||||
### The nt/ subdirectory gets built only for MinGW
|
||||
|
@ -122,7 +122,7 @@ ns_self_contained=@ns_self_contained@
|
|||
# not need to change them. This defaults to /usr/local.
|
||||
prefix=@prefix@
|
||||
|
||||
# Like `prefix', but used for architecture-specific files.
|
||||
# Like 'prefix', but used for architecture-specific files.
|
||||
exec_prefix=@exec_prefix@
|
||||
|
||||
# Where to install Emacs and other binaries that people will want to
|
||||
|
@ -171,7 +171,7 @@ bitmapdir=@bitmapdir@
|
|||
# Where to find the source code. The source code for Emacs's C kernel is
|
||||
# expected to be in ${srcdir}/src, and the source code for Emacs's
|
||||
# utility programs is expected to be in ${srcdir}/lib-src. This is
|
||||
# set by the configure script's `--srcdir' option.
|
||||
# set by the configure script's '--srcdir' option.
|
||||
|
||||
# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
|
||||
srcdir=@srcdir@
|
||||
|
@ -316,7 +316,7 @@ etc-emacsver:
|
|||
|
||||
removenullpaths=sed -e 's/^:*//' -e 's/:*$$//g' -e 's/::*/:/g'
|
||||
|
||||
# Generate epaths.h from epaths.in. This target is invoked by `configure'.
|
||||
# Generate epaths.h from epaths.in. This target is invoked by 'configure'.
|
||||
# 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.
|
||||
|
@ -350,7 +350,7 @@ epaths-force:
|
|||
# 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',
|
||||
# Use the value of ${locallisppath} supplied by 'configure',
|
||||
# to support the --enable-locallisppath argument.
|
||||
#
|
||||
# In this case, the paths written to 'src/epaths.h' must be in native
|
||||
|
@ -377,10 +377,10 @@ lib-src src: $(NTDIR) lib
|
|||
|
||||
src: lib-src
|
||||
|
||||
# We need to build `emacs' in `src' to compile the *.elc files in `lisp'.
|
||||
# We need to build 'emacs' in 'src' to compile the *.elc files in 'lisp'.
|
||||
lisp: src
|
||||
|
||||
# These targets should be "${SUBDIR} without `src'".
|
||||
# These targets should be "${SUBDIR} without 'src'".
|
||||
lib lib-src lisp nt: Makefile
|
||||
$(MAKE) -C $@ all
|
||||
|
||||
|
@ -684,6 +684,7 @@ install-man:
|
|||
thisdir=`/bin/pwd`; \
|
||||
cd ${mansrcdir}; \
|
||||
for page in *.1; do \
|
||||
test "$$page" = ChangeLog.1 && continue; \
|
||||
dest=`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1; \
|
||||
(cd "$${thisdir}"; \
|
||||
${INSTALL_DATA} ${mansrcdir}/$${page} "$(DESTDIR)${man1dir}/$${dest}"); \
|
||||
|
@ -732,8 +733,8 @@ install-etc:
|
|||
install-strip:
|
||||
$(MAKE) INSTALL_STRIP=-s install
|
||||
|
||||
### Delete all the installed files that the `install' target would
|
||||
### create (but not the noninstalled files such as `make all' would create).
|
||||
### Delete all the installed files that the 'install' target would
|
||||
### create (but not the noninstalled files such as 'make all' would create).
|
||||
###
|
||||
### Don't delete the lisp and etc directories if they're in the source tree.
|
||||
uninstall: uninstall-$(NTDIR) uninstall-doc
|
||||
|
@ -802,10 +803,10 @@ $(1)_$(2):
|
|||
$$(MAKE) -C $(1) $(2)
|
||||
endef
|
||||
|
||||
### `mostlyclean'
|
||||
### Like `clean', but may refrain from deleting a few files that people
|
||||
### normally don't want to recompile. For example, the `mostlyclean'
|
||||
### target for GCC does not delete `libgcc.a', because recompiling it
|
||||
### 'mostlyclean'
|
||||
### Like 'clean', but may refrain from deleting a few files that people
|
||||
### 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_dirs = src oldXMenu lwlib lib lib-src nt doc/emacs doc/misc \
|
||||
doc/lispref doc/lispintro
|
||||
|
@ -817,14 +818,14 @@ mostlyclean: $(mostlyclean_dirs:=_mostlyclean)
|
|||
[ ! -d $$dir ] || $(MAKE) -C $$dir mostlyclean; \
|
||||
done
|
||||
|
||||
### `clean'
|
||||
### 'clean'
|
||||
### Delete all files from the current directory that are normally
|
||||
### created by building the program. Don't delete the files that
|
||||
### record the configuration. Also preserve files that could be made
|
||||
### by building, but normally aren't because the distribution comes
|
||||
### with them.
|
||||
###
|
||||
### Delete `.dvi' files here if they are not part of the distribution.
|
||||
### Delete '.dvi' files here if they are not part of the distribution.
|
||||
clean_dirs = $(mostlyclean_dirs) nextstep
|
||||
|
||||
$(foreach dir,$(clean_dirs),$(eval $(call submake_template,$(dir),clean)))
|
||||
|
@ -833,19 +834,19 @@ clean: $(clean_dirs:=_clean)
|
|||
for dir in test/automated; do \
|
||||
[ ! -d $$dir ] || $(MAKE) -C $$dir clean; \
|
||||
done
|
||||
-rm -f etc/emacs.tmpdesktop etc/emacs.tmpappdata
|
||||
-rm -f *.tmp etc/*.tmp*
|
||||
-rm -rf info-dir.*
|
||||
|
||||
### `bootclean'
|
||||
### 'bootclean'
|
||||
### Delete all files that need to be remade for a clean bootstrap.
|
||||
top_bootclean=\
|
||||
rm -f config.cache config.log ${srcdir}/doc/man/emacs.1
|
||||
|
||||
### `distclean'
|
||||
### 'distclean'
|
||||
### Delete all files from the current directory that are created by
|
||||
### configuring or building the program. If you have unpacked the
|
||||
### source and built the program without creating any other files,
|
||||
### `make distclean' should leave only the files that were in the
|
||||
### 'make distclean' should leave only the files that were in the
|
||||
### distribution.
|
||||
top_distclean=\
|
||||
${top_bootclean}; \
|
||||
|
@ -861,8 +862,8 @@ distclean: $(distclean_dirs:=_distclean)
|
|||
done
|
||||
${top_distclean}
|
||||
|
||||
### `bootstrap-clean'
|
||||
### Delete everything that can be reconstructed by `make' and that
|
||||
### '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.
|
||||
$(foreach dir,$(distclean_dirs),$(eval $(call submake_template,$(dir),bootstrap-clean)))
|
||||
|
||||
|
@ -875,16 +876,16 @@ bootstrap-clean: $(distclean_dirs:=_bootstrap-clean)
|
|||
rm -f ${srcdir}/etc/refcards/emacsver.tex
|
||||
${top_bootclean}
|
||||
|
||||
### `maintainer-clean'
|
||||
### 'maintainer-clean'
|
||||
### Delete everything from the current directory that can be
|
||||
### reconstructed with this Makefile. This typically includes
|
||||
### everything deleted by distclean, plus more: C source files
|
||||
### produced by Bison, tags tables, info files, and so on.
|
||||
###
|
||||
### One exception, however: `make maintainer-clean' should not delete
|
||||
### `configure' even if `configure' can be remade using a rule in the
|
||||
### Makefile. More generally, `make maintainer-clean' should not delete
|
||||
### anything that needs to exist in order to run `configure' and then
|
||||
### One exception, however: 'make maintainer-clean' should not delete
|
||||
### 'configure' even if 'configure' can be remade using a rule in the
|
||||
### Makefile. More generally, 'make maintainer-clean' should not delete
|
||||
### anything that needs to exist in order to run 'configure' and then
|
||||
### begin to build the program.
|
||||
top_maintainer_clean=\
|
||||
${top_distclean}; \
|
||||
|
@ -1087,6 +1088,51 @@ bootstrap: bootstrap-clean
|
|||
$(MAKE) MAKEFILE_NAME=force-Makefile force-Makefile
|
||||
$(MAKE) all
|
||||
|
||||
.PHONY: ChangeLog change-history change-history-commit
|
||||
.PHONY: master-branch-is-current no-ChangeLog unchanged-history-files
|
||||
|
||||
# The newest revision that should not appear in the generated ChangeLog.
|
||||
gen_origin = 2c1b8604946efbcd8ec5dd6c6dda7541ce4fc3c0
|
||||
|
||||
# Convert git commit log to ChangeLog file. make-dist uses this.
|
||||
ChangeLog:
|
||||
$(AM_V_GEN)distprefix=$(distprefix) srcprefix=$(srcdir)/ \
|
||||
$(srcdir)/build-aux/gitlog-to-emacslog $(gen_origin)
|
||||
|
||||
# The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ...,
|
||||
# ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for
|
||||
# the newest (highest-numbered) ChangeLog history file.
|
||||
CHANGELOG_HISTORY_INDEX_MAX = 2
|
||||
CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX)
|
||||
|
||||
# Check that we are in a good state for changing history.
|
||||
no-ChangeLog:
|
||||
test ! -f ChangeLog
|
||||
master-branch-is-current:
|
||||
git branch | grep -q '^\* master$$'
|
||||
unchanged-history-files:
|
||||
x=$$(git diff-files --name-only $(CHANGELOG_N) Makefile.in) && \
|
||||
test -z "$$x"
|
||||
|
||||
# Copy newer commit messages to the start of the ChangeLog history file,
|
||||
# and consider them to be older.
|
||||
change-history: no-ChangeLog master-branch-is-current unchanged-history-files \
|
||||
ChangeLog
|
||||
(sed '/^;; [L]ocal Variables:/,$$d' <ChangeLog && cat $(CHANGELOG_N)) \
|
||||
>$(CHANGELOG_N).tmp
|
||||
new_origin=$$(git log --pretty=format:%H HEAD^!) && \
|
||||
sed 's/^\(gen_origin *= *\).*/\1'"$$new_origin/" \
|
||||
<Makefile.in >Makefile.in.tmp
|
||||
mv $(CHANGELOG_N).tmp $(CHANGELOG_N)
|
||||
mv Makefile.in.tmp Makefile.in
|
||||
$(MAKE) $@-commit
|
||||
|
||||
# If 'make change-history' fails because the newest ChangeLog history
|
||||
# file contains invalid text, fix the file by hand and then run
|
||||
# 'make change-history-commit'.
|
||||
change-history-commit:
|
||||
git commit -m'; make $@' $(CHANGELOG_N) Makefile.in
|
||||
|
||||
.PHONY: check-declare
|
||||
|
||||
check-declare:
|
||||
|
|
56
README
56
README
|
@ -22,71 +22,71 @@ in code we don't use often. Please send bug reports to the mailing
|
|||
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
|
||||
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.) 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
|
||||
The 'etc' subdirectory contains several other files, named in capital
|
||||
letters, which you might consider looking at when installing GNU
|
||||
Emacs.
|
||||
|
||||
The file `configure' is a shell script to acclimate Emacs to the
|
||||
The file 'configure' is a shell script to acclimate Emacs to the
|
||||
oddities of your processor and operating system. It creates the file
|
||||
`Makefile' (a script for the `make' program), which automates the
|
||||
'Makefile' (a script for the 'make' program), which automates the
|
||||
process of building and installing Emacs. See INSTALL for more
|
||||
detailed information.
|
||||
|
||||
The file `configure.ac' is the input used by the autoconf program to
|
||||
construct the `configure' script.
|
||||
The file 'configure.ac' is the input used by the autoconf program to
|
||||
construct the 'configure' script.
|
||||
|
||||
The shell script `autogen.sh' generates 'configure' and other files by
|
||||
The shell script 'autogen.sh' generates 'configure' and other files by
|
||||
running the GNU build tools autoconf and automake, which in turn use
|
||||
GNU m4 and Perl. If you want to use it, you will need to install
|
||||
recent versions of these build tools. This should be needed only if
|
||||
you edit files like `configure.ac' that specify Emacs's autobuild
|
||||
you edit files like 'configure.ac' that specify Emacs's autobuild
|
||||
procedure.
|
||||
|
||||
The file `Makefile.in' is a template used by `configure' to create
|
||||
`Makefile'.
|
||||
The file 'Makefile.in' is a template used by 'configure' to create
|
||||
'Makefile'.
|
||||
|
||||
The file `make-dist' is a shell script to build a distribution tar
|
||||
The file 'make-dist' is a shell script to build a distribution tar
|
||||
file from the current Emacs tree, containing only those files
|
||||
appropriate for distribution. If you make extensive changes to Emacs,
|
||||
this script will help you distribute your version to others.
|
||||
|
||||
There are several subdirectories:
|
||||
|
||||
`src' holds the C code for Emacs (the Emacs Lisp interpreter and
|
||||
'src' holds the C code for Emacs (the Emacs Lisp interpreter and
|
||||
its primitives, the redisplay code, and some basic editing
|
||||
functions).
|
||||
`lisp' holds the Emacs Lisp code for Emacs (most everything else).
|
||||
`leim' holds the original source files for the generated files
|
||||
'lisp' holds the Emacs Lisp code for Emacs (most everything else).
|
||||
'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
|
||||
'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.
|
||||
`etc' holds miscellaneous architecture-independent data files Emacs
|
||||
'etc' holds miscellaneous architecture-independent data files Emacs
|
||||
uses, like the tutorial text and tool bar images.
|
||||
The contents of the `lisp', `leim', `info', and `doc'
|
||||
The contents of the 'lisp', 'leim', 'info', and 'doc'
|
||||
subdirectories are architecture-independent too.
|
||||
`info' holds the Info documentation tree for Emacs.
|
||||
`doc/emacs' holds the source code for the Emacs Manual. If you modify the
|
||||
manual sources, you will need the `makeinfo' program to produce
|
||||
an updated manual. `makeinfo' is part of the GNU Texinfo
|
||||
'info' holds the Info documentation tree for Emacs.
|
||||
'doc/emacs' holds the source code for the Emacs Manual. If you modify the
|
||||
manual sources, you will need the 'makeinfo' program to produce
|
||||
an updated manual. 'makeinfo' is part of the GNU Texinfo
|
||||
package; you need a suitably recent version of Texinfo.
|
||||
`doc/lispref' holds the source code for the Emacs Lisp reference manual.
|
||||
`doc/lispintro' holds the source code for the Introduction to Programming
|
||||
'doc/lispref' holds the source code for the Emacs Lisp reference manual.
|
||||
'doc/lispintro' holds the source code for the Introduction to Programming
|
||||
in Emacs Lisp manual.
|
||||
`msdos' holds configuration files for compiling Emacs under MS-DOS.
|
||||
`nextstep' holds instructions and some other files for compiling the
|
||||
'msdos' holds configuration files for compiling Emacs under MS-DOS.
|
||||
'nextstep' holds instructions and some other files for compiling the
|
||||
Nextstep port of Emacs, for GNUstep and Mac OS X Cocoa.
|
||||
`nt' holds various command files and documentation files that pertain
|
||||
'nt' holds various command files and documentation files that pertain
|
||||
to building and running Emacs on Windows 9X/ME/NT/2000/XP.
|
||||
`test' holds tests for various aspects of Emacs's functionality.
|
||||
'test' holds tests for various aspects of Emacs's functionality.
|
||||
|
||||
Building Emacs on non-Posix platforms requires tools that aren't part
|
||||
of the standard distribution of the OS. The platform-specific README
|
||||
|
|
|
@ -28,10 +28,6 @@
|
|||
|
||||
(defvar add-log-time-format) ; in add-log
|
||||
|
||||
;; Does this information need to be in every ChangeLog, as opposed to
|
||||
;; just the top-level one? Only if you allow changes the same
|
||||
;; day as the release.
|
||||
;; http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00161.html
|
||||
(defun add-release-logs (root version &optional date)
|
||||
"Add \"Version VERSION released.\" change log entries in ROOT.
|
||||
Root must be the root of an Emacs source tree.
|
||||
|
@ -203,6 +199,7 @@ Optional argument TYPE is type of output (nil means all)."
|
|||
(ps-dir (expand-file-name "ps" dest))
|
||||
(pdf-dir (expand-file-name "pdf" dest))
|
||||
(emacs (expand-file-name "doc/emacs/emacs.texi" root))
|
||||
(emacs-xtra (expand-file-name "doc/emacs/emacs-xtra.texi" root))
|
||||
(elisp (expand-file-name "doc/lispref/elisp.texi" root))
|
||||
(eintr (expand-file-name "doc/lispintro/emacs-lisp-intro.texi" root))
|
||||
(misc (manual-misc-manuals root)))
|
||||
|
@ -216,10 +213,14 @@ Optional argument TYPE is type of output (nil means all)."
|
|||
(manual-html-node emacs (expand-file-name "emacs" html-node-dir)))
|
||||
(if (member type '(nil "emacs" "emacs-mono"))
|
||||
(manual-html-mono emacs (expand-file-name "emacs.html" html-mono-dir)))
|
||||
(if (member type '(nil "emacs" "emacs-pdf" "pdf"))
|
||||
(manual-pdf emacs (expand-file-name "emacs.pdf" pdf-dir)))
|
||||
(if (member type '(nil "emacs" "emacs-ps" "ps"))
|
||||
(manual-ps emacs (expand-file-name "emacs.ps" ps-dir)))
|
||||
(when (member type '(nil "emacs" "emacs-pdf" "pdf"))
|
||||
(manual-pdf emacs (expand-file-name "emacs.pdf" pdf-dir))
|
||||
;; emacs-xtra exists only in pdf/ps format.
|
||||
;; In other formats it is included in the Emacs manual.
|
||||
(manual-pdf emacs-xtra (expand-file-name "emacs-xtra.pdf" pdf-dir)))
|
||||
(when (member type '(nil "emacs" "emacs-ps" "ps"))
|
||||
(manual-ps emacs (expand-file-name "emacs.ps" ps-dir))
|
||||
(manual-ps emacs-xtra (expand-file-name "emacs-xtra.ps" ps-dir)))
|
||||
(if (member type '(nil "elisp" "elisp-node"))
|
||||
(manual-html-node elisp (expand-file-name "elisp" html-node-dir)))
|
||||
(if (member type '(nil "elisp" "elisp-mono"))
|
||||
|
@ -601,7 +602,7 @@ style=\"text-align:left\">")
|
|||
(copy-file "../doc/misc/texinfo.tex" stem)
|
||||
(or (equal type "emacs") (copy-file "../doc/emacs/emacsver.texi" stem))
|
||||
(dolist (file (directory-files (format "../doc/%s" type) t))
|
||||
(if (or (string-match-p "\\(\\.texi\\'\\|/ChangeLog\\|/README\\'\\)" file)
|
||||
(if (or (string-match-p "\\(\\.texi\\'\\|/README\\'\\)" file)
|
||||
(and (equal type "lispintro")
|
||||
(string-match-p "\\.\\(eps\\|pdf\\)\\'" file)))
|
||||
(copy-file file stem)))
|
||||
|
|
|
@ -27,6 +27,9 @@
|
|||
;; Use M-x authors RET to create an *Authors* buffer that can used as
|
||||
;; or merged with Emacs's AUTHORS file.
|
||||
|
||||
;; FIXME: This needs to modernized in the light of current practice,
|
||||
;; which generates a single top-level ChangeLog file from commit logs.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defvar authors-coding-system 'utf-8
|
||||
|
@ -76,7 +79,7 @@ files.")
|
|||
("Gerd Möllmann" "Gerd Moellmann")
|
||||
("Hallvard B. Furuseth" "Hallvard B Furuseth" "Hallvard Furuseth")
|
||||
("Hrvoje Nikšić" "Hrvoje Niksic")
|
||||
;; lisp/org/ChangeLog 2010-11-11.
|
||||
;; lisp/org/ChangeLog.1 2010-11-11.
|
||||
(nil "aaa bbb")
|
||||
(nil "Code Extracted") ; lisp/newcomment.el's "Author:" header
|
||||
("Jaeyoun Chung" "Jae-youn Chung" "Jae-you Chung" "Chung Jae-youn")
|
||||
|
@ -650,6 +653,7 @@ Changes to files in this list are not listed.")
|
|||
"calc/calc-maint.el"
|
||||
"emacs-lisp/cl-specs.el"
|
||||
"emacs-lisp/eieio-comp.el"
|
||||
"emacs-lisp/eieio-generic.el"
|
||||
"erc-hecomplete.el"
|
||||
"eshell/esh-maint.el"
|
||||
"language/persian.el"
|
||||
|
@ -800,6 +804,7 @@ in the repository.")
|
|||
("play/yow.el" . "yow.el")
|
||||
("patcomp.el" . "patcomp.el")
|
||||
("emulation/ws-mode.el" . "ws-mode.el")
|
||||
("vc/vc-arch.el" . "vc-arch.el")
|
||||
;; From lisp to etc/forms.
|
||||
("forms-d2.el" . "forms-d2.el")
|
||||
("forms-pass.el" . "forms-pass.el")
|
||||
|
@ -811,6 +816,9 @@ in the repository.")
|
|||
("eshell/esh-test.el" . "automated/eshell.el")
|
||||
("automated/cl-lib.el" . "automated/cl-lib-tests.el")
|
||||
("automated/package-x-test.el" . "automated/package-test.el")
|
||||
("indent/js-indent-first-initialiser-t.js" . "indent/js-indent-init-t.js")
|
||||
("indent/js-indent-first-initialiser-dynamic.js" .
|
||||
"indent/js-indent-init-dynamic.js")
|
||||
;; INSTALL-CVS -> .CVS -> .BZR -> .REPO
|
||||
("INSTALL-CVS" . "INSTALL.REPO")
|
||||
("INSTALL.CVS" . "INSTALL.REPO")
|
||||
|
@ -971,10 +979,8 @@ Elements with LAX non-nil are only used in `authors-lax-changelogs'.")
|
|||
;; Eg the progmodes/ (etc) directories did not exist before 1997.
|
||||
;; Also, lib-src/ did not exist, the files were in etc/.
|
||||
;; And various other things.
|
||||
;; Maybe this should just be any ChangeLog with a . extension,
|
||||
;; assuming we always fix logs fully before rotating them?
|
||||
(defconst authors-lax-changelogs
|
||||
'("erc/ChangeLog\\.0[1-8]\\'"
|
||||
'("erc/ChangeLog\\.1\\'"
|
||||
"gnus/ChangeLog\\.[1-2]\\'"
|
||||
"lisp/ChangeLog\\.\\([1-9]\\|1[0-5]\\)\\'"
|
||||
"mh-e/ChangeLog\\.1\\'"
|
||||
|
|
|
@ -31,30 +31,45 @@ General steps (for each step, check for possible errors):
|
|||
M-x authors RET
|
||||
|
||||
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 there was a ChangeLog typo, run "make change-history" and then
|
||||
fix the newest ChangeLog history file. 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.
|
||||
Check the diff looks reasonable. Maybe add entries to
|
||||
authors-ambiguous-files or authors-aliases, and repeat.
|
||||
Commit any fixes to ChangeLogs or authors.el.
|
||||
Commit any fixes to authors.el.
|
||||
|
||||
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).
|
||||
entries (create a ChangeLog symlink a la vc-dwim, then run M-x
|
||||
add-release-logs RET, then run the shell command 'vc-dwim --commit').
|
||||
|
||||
For a pretest, start at version .90. After .99, use .990 (so that
|
||||
it sorts).
|
||||
|
||||
The final pretest should be a release candidate. Set the version
|
||||
number to that of the actual release. Pick a date about a week
|
||||
from now when you intend to make the release. Use M-x add-release-logs
|
||||
to add the ChangeLog entries for that date to the tar file (but
|
||||
not yet to the repository). Name the tar file as
|
||||
emacs-XX.Y-rc1.tar. If all goes well in the following week, you
|
||||
can simply rename the file and use it for the actual release.
|
||||
from now when you intend to make the release. Use vc-dwim and
|
||||
M-x add-release-logs as described above to add commit messages
|
||||
that will appear in the tarball's automatically-generated ChangeLog
|
||||
file as entries for that date.
|
||||
|
||||
Name the tar file as emacs-XX.Y-rc1.tar. If all goes well in the
|
||||
following week, you can simply rename the file and use it for the
|
||||
actual release. If you need another release candidate, remember
|
||||
to adjust the ChangeLog entries.
|
||||
|
||||
If you need to change only a file(s) that cannot possibly affect
|
||||
the build (README, ChangeLog, NEWS, etc.) then rather than doing
|
||||
an entirely new build, it is better to unpack the existing
|
||||
tarfile, modify the file(s), and tar it back up again.
|
||||
|
||||
Never replace an existing tarfile! If you need to fix something,
|
||||
always upload it with a different name.
|
||||
|
||||
4. autoreconf -i -I m4 --force
|
||||
make bootstrap
|
||||
|
@ -65,8 +80,7 @@ General steps (for each step, check for possible errors):
|
|||
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. For a release, also commit the ChangeLog
|
||||
files in all directories.
|
||||
by M-x set-version.
|
||||
|
||||
If someone else made a commit between step 1 and now,
|
||||
you need to repeat from step 4 onwards. (You can commit the files
|
||||
|
@ -154,8 +168,38 @@ General steps (for each step, check for possible errors):
|
|||
of past announcements. The first pretest announcement, and the
|
||||
release announcement, should have more detail.
|
||||
|
||||
12. For a release, update the Emacs homepage emacs.html in the web repository.
|
||||
Also update history.html, and add the new NEWS file as news/NEWS.xx.y.
|
||||
Regenerate the html manuals (use make-manuals from admin.el).
|
||||
If there are new manuals, add appropriate index pages.
|
||||
Delete any old manual pages that are no longer present.
|
||||
12. After a release, update the Emacs pages as below.
|
||||
|
||||
|
||||
UPDATING THE EMACS WEB PAGES AFTER A RELEASE
|
||||
|
||||
As soon as possible after a release, the Emacs web pages should be updated.
|
||||
Anyone with write access to the Emacs code repository can do this.
|
||||
For instructions, see <http://savannah.gnu.org/cvs/?group=emacs>.
|
||||
Changes go live more or less as soon as they are committed.
|
||||
|
||||
The pages to update are:
|
||||
|
||||
emacs.html (for a new major release, a more thorough update is needed)
|
||||
history.html
|
||||
add the new NEWS file as news/NEWS.xx.y
|
||||
|
||||
Use M-x make-manuals from admin/admin.el to regenerate the html
|
||||
manuals in manual/. If there are new manuals, add appropriate index
|
||||
pages in manual/ and add them to manual/index.html. In the
|
||||
manual/html_node directory, delete any old manual pages that are no
|
||||
longer present.
|
||||
|
||||
Tar up the generated html_node/emacs/ and elisp/ directories and update
|
||||
the files manual/elisp.html_node.tar.gz and emacs.html_node.tar.gz.
|
||||
|
||||
Use M-x make-manuals-dist from from admin/admin.el to update the
|
||||
manual/texi/ tarfiles.
|
||||
|
||||
Add compressed copies of the main info pages from the tarfile to manual/info/.
|
||||
|
||||
Update the refcards/pdf/ and ps/ directories, and also
|
||||
refcards/emacs-refcards.tar.gz (use make -C etc/refcards pdf ps dist).
|
||||
|
||||
Browsing <http://web.cvs.savannah.gnu.org/viewvc/?root=emacs> is one
|
||||
way to check for any files that still need updating.
|
||||
|
|
|
@ -31,7 +31,7 @@ GNULIB_MODULES='
|
|||
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
|
||||
getloadavg getopt-gnu gettime gettimeofday gitlog-to-changelog
|
||||
intprops largefile lstat
|
||||
manywarnings memrchr mkostemp mktime
|
||||
pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat
|
||||
|
|
|
@ -10,10 +10,10 @@ instructions.
|
|||
* 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-24" branch
|
||||
is one) and let them get synced to the master; do not install them by
|
||||
hand on the master 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.
|
||||
install it only on the emacs-24 branch, not on the master as well.
|
||||
|
||||
Installing things manually into more than one branch makes merges more
|
||||
difficult.
|
||||
|
@ -21,10 +21,10 @@ difficult.
|
|||
http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01124.html
|
||||
|
||||
The exception is, if you know that the change will be difficult to
|
||||
merge to the trunk (eg because the trunk code has changed a lot).
|
||||
In that case, it's helpful if you can apply the change to both trunk
|
||||
merge to the master (eg because the master code has changed a lot).
|
||||
In that case, it's helpful if you can apply the change to both master
|
||||
and branch yourself (when committing the branch change, indicate
|
||||
in the commit log that it should not be merged to the trunk, by
|
||||
in the commit log that it should not be merged to the master, by
|
||||
including the phrase "Not to be merged to master", or any other phrase
|
||||
that matches "merge").
|
||||
|
||||
|
@ -32,14 +32,14 @@ that matches "merge").
|
|||
|
||||
If your branch has only a single commit, or many different real
|
||||
commits, it is fine to do a merge. If your branch has only a very
|
||||
small number of "real" commits, but several "merge from trunks", it is
|
||||
preferred that you take your branch's diff, apply it to the trunk, and
|
||||
small number of "real" commits, but several "merge from masters", it is
|
||||
preferred that you take your branch's diff, apply it to the master, and
|
||||
commit directly, not merge. This keeps the history cleaner.
|
||||
|
||||
In general, when working on some feature in a separate branch, it is
|
||||
preferable not to merge from trunk until you are done with the
|
||||
preferable not to merge from master until you are done with the
|
||||
feature. Unless you really need some change that was done on the
|
||||
trunk while you were developing on the branch, you don't really need
|
||||
master while you were developing on the branch, you don't really need
|
||||
those merges; just merge once, when you are done with the feature, and
|
||||
Bazaar will take care of the rest. Bazaar is much better in this than
|
||||
CVS, so interim merges are unnecessary.
|
||||
|
@ -66,22 +66,14 @@ variable in admin/merge-gnulib before running it.
|
|||
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-24 to trunk
|
||||
* How to merge changes from emacs-24 to master
|
||||
|
||||
[The section on git merge procedure has not yet been written]
|
||||
|
||||
Inspect the change log entries (e.g. in case too many entries have been
|
||||
included or whitespace between entries needs fixing). If someone made
|
||||
multiple change log entries on different days in the branch, you may
|
||||
wish to collapse them all to a single entry for that author in the
|
||||
trunk (because in the trunk they all appear under the same date).
|
||||
Obviously, if there are multiple changes to the same file by different
|
||||
authors, don't break the logical ordering in doing this.
|
||||
[The section on git merge procedure has not yet been written.]
|
||||
|
||||
You may see 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
|
||||
conflict by choosing either the master or branch version, then run
|
||||
`make -C lisp autoloads' to update the md5sums to the correct master
|
||||
value before committing.
|
||||
|
||||
* Re-adding a file that has been removed from the repository
|
||||
|
@ -124,3 +116,21 @@ again.
|
|||
|
||||
This is a semi-automated way to find the revision that introduced a bug.
|
||||
Browse `git help bisect' for technical instructions.
|
||||
|
||||
* Maintaining ChangeLog history
|
||||
|
||||
Older ChangeLog entries are kept in history files named ChangeLog.1,
|
||||
ChangeLog.2, etc., and can be edited just as any other source files
|
||||
can. Newer ChangeLog entries are stored in the repository as commit
|
||||
messages, which cannot be edited directly.
|
||||
|
||||
'make ChangeLog' copies newer ChangeLog entries into a file
|
||||
'ChangeLog' that is intended to be put into the distribution tarball.
|
||||
This ChangeLog file is not put into the repository.
|
||||
|
||||
'make change-history' copies all newer ChangeLog entries into the
|
||||
start of the newest ChangeLog history file. These ChangeLog entries
|
||||
are thereafter considered to be old, so later uses of 'make ChangeLog'
|
||||
and/or 'make change-history' will no longer copy the entries. To
|
||||
alter ChangeLog history, run 'make change-history', then edit
|
||||
the ChangeLog history files manually and commit your changes.
|
||||
|
|
|
@ -102,7 +102,8 @@
|
|||
(tail table)
|
||||
(block-names '(("^<CJK Ideograph" . CJK\ IDEOGRAPH)
|
||||
("^<Hangul Syllable" . HANGUL\ SYLLABLE)
|
||||
("^<.*Surrogate" . nil)
|
||||
("^<.*High Surrogate" . HIGH\ SURROGATE)
|
||||
("^<.*Low Surrogate" . LOW\ SURROGATE)
|
||||
("^<.*Private Use" . PRIVATE\ USE)))
|
||||
val char name)
|
||||
(setq unidata-text-file (expand-file-name unidata-text-file unidata-dir))
|
||||
|
@ -137,11 +138,8 @@
|
|||
(if (string-match (caar l) block-name)
|
||||
(setq name (cdar l) l nil)
|
||||
(setq l (cdr l))))
|
||||
(if (not name)
|
||||
;; As this is a surrogate pair range, ignore it.
|
||||
(setq val nil)
|
||||
(setcar val (cons first char))
|
||||
(setcar (cdr val) name))))
|
||||
(setcar val (cons first char))
|
||||
(setcar (cdr val) name)))
|
||||
|
||||
(when val
|
||||
(setcdr tail (list val))
|
||||
|
@ -783,6 +781,10 @@ Property value is a symbol `o' (Open), `c' (Close), or `n' (None)."
|
|||
(format "%s-%04X" sym char))
|
||||
((eq sym 'CJK\ COMPATIBILITY\ IDEOGRAPH)
|
||||
(format "%s-%04X" sym char))
|
||||
((eq sym 'HIGH\ SURROGATE)
|
||||
(format "%s-%04X" sym char))
|
||||
((eq sym 'LOW\ SURROGATE)
|
||||
(format "%s-%04X" sym char))
|
||||
((eq sym 'VARIATION\ SELECTOR)
|
||||
(format "%s-%d" sym (+ (- char #xe0100) 17))))))))
|
||||
|
||||
|
|
|
@ -29,41 +29,55 @@ fi
|
|||
|
||||
# Use a UTF-8 locale if available, so that the UTF-8 check works.
|
||||
# Use U+00A2 CENT SIGN to test whether the locale works.
|
||||
cent_sign_utf8_octal='\302\242'
|
||||
at_sign=`
|
||||
printf "${cent_sign_utf8_octal}@" |
|
||||
$awk '{print substr($0, 2)}' 2>/dev/null
|
||||
`
|
||||
cent_sign_utf8_format='\302\242\n'
|
||||
cent_sign=`printf "$cent_sign_utf8_format"`
|
||||
print_at_sign='BEGIN {print substr("'$cent_sign'@", 2)}'
|
||||
at_sign=`$awk "$print_at_sign" </dev/null 2>/dev/null`
|
||||
if test "$at_sign" != @; then
|
||||
at_sign=`
|
||||
printf "${cent_sign_utf8_octal}@" |
|
||||
LC_ALL=en_US.UTF-8 $awk '{print substr($0, 2)}' 2>/dev/null
|
||||
`
|
||||
at_sign=`LC_ALL=en_US.UTF-8 $awk "$print_at_sign" </dev/null 2>/dev/null`
|
||||
if test "$at_sign" = @; then
|
||||
LC_ALL=en_US.UTF-8; export LC_ALL
|
||||
LC_ALL=en_US.UTF-8
|
||||
else
|
||||
LC_ALL=C
|
||||
fi
|
||||
export LC_ALL
|
||||
fi
|
||||
|
||||
# Check the log entry.
|
||||
exec $awk '
|
||||
exec $awk -v at_sign="$at_sign" -v cent_sign="$cent_sign" '
|
||||
BEGIN {
|
||||
# These regular expressions assume traditional Unix unibyte behavior.
|
||||
# They are needed for old or broken versions of awk, e.g.,
|
||||
# mawk 1.3.3 (1996), or gawk on MSYS (2015), and/or for systems that
|
||||
# cannot use UTF-8 as the codeset for the locale.
|
||||
space = "[ \f\n\r\t\v]"
|
||||
non_space = "[^ \f\n\r\t\v]"
|
||||
# The non_print below rejects control characters and surrogates
|
||||
# UTF-8 for: 0x01-0x1f 0x7f 0x80-0x9f 0xd800-0xdbff 0xdc00-0xdfff
|
||||
non_print = "[\1-\37\177]|\302[\200-\237]|\355[\240-\277][\200-\277]"
|
||||
|
||||
# Prefer POSIX regular expressions if available, as they do a
|
||||
# better job of checking. Similarly, prefer POSIX negated
|
||||
# expressions if UTF-8 also works.
|
||||
if (" " ~ /[[:space:]]/) {
|
||||
space = "[[:space:]]"
|
||||
non_space = "[^[:space:]]"
|
||||
non_print = "[^[:print:]]"
|
||||
} else {
|
||||
# mawk 1.3.3 does not support POSIX bracket expressions.
|
||||
# Approximate them as best we can.
|
||||
space = "[ \f\n\r\t\v]"
|
||||
non_space = "[^ \f\n\r\t\v]"
|
||||
non_print = "[\1-\37\177]"
|
||||
if (at_sign == "@" && cent_sign ~ /^[[:print:]]$/) {
|
||||
non_space = "[^[:space:]]"
|
||||
non_print = "[^[:print:]]"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/^#/ { next }
|
||||
/^#/ {
|
||||
# Ignore every line after a scissors line.
|
||||
if (/^# *---* *(>[8%]|[8%]<) *---* *$/) { exit }
|
||||
|
||||
# Ignore comment lines.
|
||||
next
|
||||
}
|
||||
|
||||
!/^.*$/ {
|
||||
print "Invalid character (not UTF-8) in commit message; see 'CONTRIBUTE'"
|
||||
print "Invalid character (not UTF-8) in commit message"
|
||||
status = 1
|
||||
}
|
||||
|
||||
|
@ -77,13 +91,13 @@ exec $awk '
|
|||
sub(/^squash! /, "")
|
||||
|
||||
if ($0 ~ "^" space) {
|
||||
print "White space at start of commit message'\''s first line; see 'CONTRIBUTE'"
|
||||
print "White space at start of commit message'\''s first line"
|
||||
status = 1
|
||||
}
|
||||
}
|
||||
|
||||
nlines == 2 && $0 ~ non_space {
|
||||
print "Nonempty second line in commit message; see 'CONTRIBUTE'"
|
||||
print "Nonempty second line in commit message"
|
||||
status = 1
|
||||
}
|
||||
|
||||
|
@ -97,30 +111,33 @@ exec $awk '
|
|||
}
|
||||
|
||||
78 < length && $0 ~ space {
|
||||
print "Line longer than 78 characters in commit message; see 'CONTRIBUTE'"
|
||||
print "Line longer than 78 characters in commit message"
|
||||
status = 1
|
||||
}
|
||||
|
||||
140 < length {
|
||||
print "Word longer than 140 characters in commit message; see 'CONTRIBUTE'"
|
||||
print "Word longer than 140 characters in commit message"
|
||||
status = 1
|
||||
}
|
||||
|
||||
/^Signed-off-by: / {
|
||||
print "'\''Signed-off-by:'\'' in commit message; see 'CONTRIBUTE'"
|
||||
print "'\''Signed-off-by:'\'' in commit message"
|
||||
status = 1
|
||||
}
|
||||
|
||||
$0 ~ non_print {
|
||||
print "Unprintable character in commit message; see 'CONTRIBUTE'"
|
||||
print "Unprintable character in commit message"
|
||||
status = 1
|
||||
}
|
||||
|
||||
END {
|
||||
if (nlines == 0) {
|
||||
print "Empty commit message; see 'CONTRIBUTE'"
|
||||
print "Empty commit message"
|
||||
status = 1
|
||||
}
|
||||
if (status != 0) {
|
||||
print "Commit aborted; please see the file 'CONTRIBUTE'"
|
||||
}
|
||||
exit status
|
||||
}
|
||||
' <"$1"
|
||||
|
|
|
@ -34,13 +34,15 @@ if test "$nbadchars" -ne 0; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
new_names=`$git_diff HEAD` || exit
|
||||
case "
|
||||
$new_names" in
|
||||
*/-* | *'
|
||||
'-*)
|
||||
echo "File name component begins with '-'."
|
||||
exit 1;;
|
||||
esac
|
||||
for new_name in `$git_diff HEAD`; do
|
||||
case $new_name in
|
||||
-* | */-*)
|
||||
echo "$new_name: File name component begins with '-'."
|
||||
exit 1;;
|
||||
ChangeLog | */ChangeLog)
|
||||
echo "$new_name: Please use git commit messages, not ChangeLog files."
|
||||
exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
exec git diff-index --check --cached HEAD --
|
||||
|
|
445
build-aux/gitlog-to-changelog
Executable file
445
build-aux/gitlog-to-changelog
Executable file
|
@ -0,0 +1,445 @@
|
|||
eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
|
||||
& eval 'exec perl -wS "$0" $argv:q'
|
||||
if 0;
|
||||
# Convert git log output to ChangeLog format.
|
||||
|
||||
my $VERSION = '2015-04-09 16:03'; # UTC
|
||||
# The definition above must lie within the first 8 lines in order
|
||||
# for the Emacs time-stamp write hook (at end) to update it.
|
||||
# If you change this file with Emacs, please let the write hook
|
||||
# do its job. Otherwise, update this string manually.
|
||||
|
||||
# Copyright (C) 2008-2015 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/>.
|
||||
|
||||
# Written by Jim Meyering
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Getopt::Long;
|
||||
use POSIX qw(strftime);
|
||||
|
||||
(my $ME = $0) =~ s|.*/||;
|
||||
|
||||
# use File::Coda; # http://meyering.net/code/Coda/
|
||||
END {
|
||||
defined fileno STDOUT or return;
|
||||
close STDOUT and return;
|
||||
warn "$ME: failed to close standard output: $!\n";
|
||||
$? ||= 1;
|
||||
}
|
||||
|
||||
sub usage ($)
|
||||
{
|
||||
my ($exit_code) = @_;
|
||||
my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
|
||||
if ($exit_code != 0)
|
||||
{
|
||||
print $STREAM "Try '$ME --help' for more information.\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print $STREAM <<EOF;
|
||||
Usage: $ME [OPTIONS] [ARGS]
|
||||
|
||||
Convert git log output to ChangeLog format. If present, any ARGS
|
||||
are passed to "git log". To avoid ARGS being parsed as options to
|
||||
$ME, they may be preceded by '--'.
|
||||
|
||||
OPTIONS:
|
||||
|
||||
--amend=FILE FILE maps from an SHA1 to perl code (i.e., s/old/new/) that
|
||||
makes a change to SHA1's commit log text or metadata.
|
||||
--append-dot append a dot to the first line of each commit message if
|
||||
there is no other punctuation or blank at the end.
|
||||
--no-cluster never cluster commit messages under the same date/author
|
||||
header; the default is to cluster adjacent commit messages
|
||||
if their headers are the same and neither commit message
|
||||
contains multiple paragraphs.
|
||||
--srcdir=DIR the root of the source tree, from which the .git/
|
||||
directory can be derived.
|
||||
--since=DATE convert only the logs since DATE;
|
||||
the default is to convert all log entries.
|
||||
--until=DATE convert only the logs older than DATE.
|
||||
--ignore-matching=PAT ignore commit messages whose first lines match PAT.
|
||||
--format=FMT set format string for commit subject and body;
|
||||
see 'man git-log' for the list of format metacharacters;
|
||||
the default is '%s%n%b%n'
|
||||
--strip-tab remove one additional leading TAB from commit message lines.
|
||||
--strip-cherry-pick remove data inserted by "git cherry-pick";
|
||||
this includes the "cherry picked from commit ..." line,
|
||||
and the possible final "Conflicts:" paragraph.
|
||||
--help display this help and exit
|
||||
--version output version information and exit
|
||||
|
||||
EXAMPLE:
|
||||
|
||||
$ME --since=2008-01-01 > ChangeLog
|
||||
$ME -- -n 5 foo > last-5-commits-to-branch-foo
|
||||
|
||||
SPECIAL SYNTAX:
|
||||
|
||||
The following types of strings are interpreted specially when they appear
|
||||
at the beginning of a log message line. They are not copied to the output.
|
||||
|
||||
Copyright-paperwork-exempt: Yes
|
||||
Append the "(tiny change)" notation to the usual "date name email"
|
||||
ChangeLog header to mark a change that does not require a copyright
|
||||
assignment.
|
||||
Co-authored-by: Joe User <user\@example.com>
|
||||
List the specified name and email address on a second
|
||||
ChangeLog header, denoting a co-author.
|
||||
Signed-off-by: Joe User <user\@example.com>
|
||||
These lines are simply elided.
|
||||
|
||||
In a FILE specified via --amend, comment lines (starting with "#") are ignored.
|
||||
FILE must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1 (alone on
|
||||
a line) referring to a commit in the current project, and CODE refers to one
|
||||
or more consecutive lines of Perl code. Pairs must be separated by one or
|
||||
more blank line.
|
||||
|
||||
Here is sample input for use with --amend=FILE, from coreutils:
|
||||
|
||||
3a169f4c5d9159283548178668d2fae6fced3030
|
||||
# fix typo in title:
|
||||
s/all tile types/all file types/
|
||||
|
||||
1379ed974f1fa39b12e2ffab18b3f7a607082202
|
||||
# Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself.
|
||||
# Change the author to be Paul. Note the escaped "@":
|
||||
s,Jim .*>,Paul Eggert <eggert\\\@cs.ucla.edu>,
|
||||
|
||||
EOF
|
||||
}
|
||||
exit $exit_code;
|
||||
}
|
||||
|
||||
# If the string $S is a well-behaved file name, simply return it.
|
||||
# If it contains white space, quotes, etc., quote it, and return the new string.
|
||||
sub shell_quote($)
|
||||
{
|
||||
my ($s) = @_;
|
||||
if ($s =~ m![^\w+/.,-]!)
|
||||
{
|
||||
# Convert each single quote to '\''
|
||||
$s =~ s/\'/\'\\\'\'/g;
|
||||
# Then single quote the string.
|
||||
$s = "'$s'";
|
||||
}
|
||||
return $s;
|
||||
}
|
||||
|
||||
sub quoted_cmd(@)
|
||||
{
|
||||
return join (' ', map {shell_quote $_} @_);
|
||||
}
|
||||
|
||||
# Parse file F.
|
||||
# Comment lines (starting with "#") are ignored.
|
||||
# F must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1
|
||||
# (alone on a line) referring to a commit in the current project, and
|
||||
# CODE refers to one or more consecutive lines of Perl code.
|
||||
# Pairs must be separated by one or more blank line.
|
||||
sub parse_amend_file($)
|
||||
{
|
||||
my ($f) = @_;
|
||||
|
||||
open F, '<', $f
|
||||
or die "$ME: $f: failed to open for reading: $!\n";
|
||||
|
||||
my $fail;
|
||||
my $h = {};
|
||||
my $in_code = 0;
|
||||
my $sha;
|
||||
while (defined (my $line = <F>))
|
||||
{
|
||||
$line =~ /^\#/
|
||||
and next;
|
||||
chomp $line;
|
||||
$line eq ''
|
||||
and $in_code = 0, next;
|
||||
|
||||
if (!$in_code)
|
||||
{
|
||||
$line =~ /^([0-9a-fA-F]{40})$/
|
||||
or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"),
|
||||
$fail = 1, next;
|
||||
$sha = lc $1;
|
||||
$in_code = 1;
|
||||
exists $h->{$sha}
|
||||
and (warn "$ME: $f:$.: duplicate SHA1\n"),
|
||||
$fail = 1, next;
|
||||
}
|
||||
else
|
||||
{
|
||||
$h->{$sha} ||= '';
|
||||
$h->{$sha} .= "$line\n";
|
||||
}
|
||||
}
|
||||
close F;
|
||||
|
||||
$fail
|
||||
and exit 1;
|
||||
|
||||
return $h;
|
||||
}
|
||||
|
||||
# git_dir_option $SRCDIR
|
||||
#
|
||||
# From $SRCDIR, the --git-dir option to pass to git (none if $SRCDIR
|
||||
# is undef). Return as a list (0 or 1 element).
|
||||
sub git_dir_option($)
|
||||
{
|
||||
my ($srcdir) = @_;
|
||||
my @res = ();
|
||||
if (defined $srcdir)
|
||||
{
|
||||
my $qdir = shell_quote $srcdir;
|
||||
my $cmd = "cd $qdir && git rev-parse --show-toplevel";
|
||||
my $qcmd = shell_quote $cmd;
|
||||
my $git_dir = qx($cmd);
|
||||
defined $git_dir
|
||||
or die "$ME: cannot run $qcmd: $!\n";
|
||||
$? == 0
|
||||
or die "$ME: $qcmd had unexpected exit code or signal ($?)\n";
|
||||
chomp $git_dir;
|
||||
push @res, "--git-dir=$git_dir/.git";
|
||||
}
|
||||
@res;
|
||||
}
|
||||
|
||||
{
|
||||
my $since_date;
|
||||
my $until_date;
|
||||
my $format_string = '%s%n%b%n';
|
||||
my $amend_file;
|
||||
my $append_dot = 0;
|
||||
my $cluster = 1;
|
||||
my $ignore_matching;
|
||||
my $strip_tab = 0;
|
||||
my $strip_cherry_pick = 0;
|
||||
my $srcdir;
|
||||
GetOptions
|
||||
(
|
||||
help => sub { usage 0 },
|
||||
version => sub { print "$ME version $VERSION\n"; exit },
|
||||
'since=s' => \$since_date,
|
||||
'until=s' => \$until_date,
|
||||
'format=s' => \$format_string,
|
||||
'amend=s' => \$amend_file,
|
||||
'append-dot' => \$append_dot,
|
||||
'cluster!' => \$cluster,
|
||||
'ignore-matching=s' => \$ignore_matching,
|
||||
'strip-tab' => \$strip_tab,
|
||||
'strip-cherry-pick' => \$strip_cherry_pick,
|
||||
'srcdir=s' => \$srcdir,
|
||||
) or usage 1;
|
||||
|
||||
defined $since_date
|
||||
and unshift @ARGV, "--since=$since_date";
|
||||
defined $until_date
|
||||
and unshift @ARGV, "--until=$until_date";
|
||||
|
||||
# This is a hash that maps an SHA1 to perl code (i.e., s/old/new/)
|
||||
# that makes a correction in the log or attribution of that commit.
|
||||
my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {};
|
||||
|
||||
my @cmd = ('git',
|
||||
git_dir_option $srcdir,
|
||||
qw(log --log-size),
|
||||
'--pretty=format:%H:%ct %an <%ae>%n%n'.$format_string, @ARGV);
|
||||
open PIPE, '-|', @cmd
|
||||
or die ("$ME: failed to run '". quoted_cmd (@cmd) ."': $!\n"
|
||||
. "(Is your Git too old? Version 1.5.1 or later is required.)\n");
|
||||
|
||||
my $prev_multi_paragraph;
|
||||
my $prev_date_line = '';
|
||||
my @prev_coauthors = ();
|
||||
while (1)
|
||||
{
|
||||
defined (my $in = <PIPE>)
|
||||
or last;
|
||||
$in =~ /^log size (\d+)$/
|
||||
or die "$ME:$.: Invalid line (expected log size):\n$in";
|
||||
my $log_nbytes = $1;
|
||||
|
||||
my $log;
|
||||
my $n_read = read PIPE, $log, $log_nbytes;
|
||||
$n_read == $log_nbytes
|
||||
or die "$ME:$.: unexpected EOF\n";
|
||||
|
||||
# Extract leading hash.
|
||||
my ($sha, $rest) = split ':', $log, 2;
|
||||
defined $sha
|
||||
or die "$ME:$.: malformed log entry\n";
|
||||
$sha =~ /^[0-9a-fA-F]{40}$/
|
||||
or die "$ME:$.: invalid SHA1: $sha\n";
|
||||
|
||||
# If this commit's log requires any transformation, do it now.
|
||||
my $code = $amend_code->{$sha};
|
||||
if (defined $code)
|
||||
{
|
||||
eval 'use Safe';
|
||||
my $s = new Safe;
|
||||
# Put the unpreprocessed entry into "$_".
|
||||
$_ = $rest;
|
||||
|
||||
# Let $code operate on it, safely.
|
||||
my $r = $s->reval("$code")
|
||||
or die "$ME:$.:$sha: failed to eval \"$code\":\n$@\n";
|
||||
|
||||
# Note that we've used this entry.
|
||||
delete $amend_code->{$sha};
|
||||
|
||||
# Update $rest upon success.
|
||||
$rest = $_;
|
||||
}
|
||||
|
||||
# Remove lines inserted by "git cherry-pick".
|
||||
if ($strip_cherry_pick)
|
||||
{
|
||||
$rest =~ s/^\s*Conflicts:\n.*//sm;
|
||||
$rest =~ s/^\s*\(cherry picked from commit [\da-f]+\)\n//m;
|
||||
}
|
||||
|
||||
my @line = split /\s*\n/, $rest;
|
||||
my $author_line = shift @line;
|
||||
defined $author_line
|
||||
or die "$ME:$.: unexpected EOF\n";
|
||||
$author_line =~ /^(\d+) (.*>)$/
|
||||
or die "$ME:$.: Invalid line "
|
||||
. "(expected date/author/email):\n$author_line\n";
|
||||
|
||||
# Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog
|
||||
# `(tiny change)' annotation.
|
||||
my $tiny = (grep (/^Copyright-paperwork-exempt:\s+[Yy]es$/, @line)
|
||||
? ' (tiny change)' : '');
|
||||
|
||||
my $date_line = sprintf "%s %s$tiny\n",
|
||||
strftime ("%Y-%m-%d", localtime ($1)), $2;
|
||||
|
||||
my @coauthors = grep /^Co-authored-by:.*$/, @line;
|
||||
# Omit meta-data lines we've already interpreted.
|
||||
@line = grep !/^(?:Signed-off-by:[ ].*>$
|
||||
|Co-authored-by:[ ]
|
||||
|Copyright-paperwork-exempt:[ ]
|
||||
)/x, @line;
|
||||
|
||||
# Remove leading and trailing blank lines.
|
||||
if (@line)
|
||||
{
|
||||
while ($line[0] =~ /^\s*$/) { shift @line; }
|
||||
while ($line[$#line] =~ /^\s*$/) { pop @line; }
|
||||
}
|
||||
|
||||
# Ignore commits that match the --ignore-matching pattern, if specified.
|
||||
if (! (defined $ignore_matching
|
||||
&& @line && $line[0] =~ /$ignore_matching/))
|
||||
{
|
||||
# Record whether there are two or more paragraphs.
|
||||
my $multi_paragraph = grep /^\s*$/, @line;
|
||||
|
||||
# Format 'Co-authored-by: A U Thor <email@example.com>' lines in
|
||||
# standard multi-author ChangeLog format.
|
||||
for (@coauthors)
|
||||
{
|
||||
s/^Co-authored-by:\s*/\t /;
|
||||
s/\s*</ </;
|
||||
|
||||
/<.*?@.*\..*>/
|
||||
or warn "$ME: warning: missing email address for "
|
||||
. substr ($_, 5) . "\n";
|
||||
}
|
||||
|
||||
# If clustering of commit messages has been disabled, if this header
|
||||
# would be different from the previous date/name/etc. header,
|
||||
# or if this or the previous entry consists of two or more paragraphs,
|
||||
# then print the header.
|
||||
if ( ! $cluster
|
||||
|| $date_line ne $prev_date_line
|
||||
|| "@coauthors" ne "@prev_coauthors"
|
||||
|| $multi_paragraph
|
||||
|| $prev_multi_paragraph)
|
||||
{
|
||||
$prev_date_line eq ''
|
||||
or print "\n";
|
||||
print $date_line;
|
||||
@coauthors
|
||||
and print join ("\n", @coauthors), "\n";
|
||||
}
|
||||
$prev_date_line = $date_line;
|
||||
@prev_coauthors = @coauthors;
|
||||
$prev_multi_paragraph = $multi_paragraph;
|
||||
|
||||
# If there were any lines
|
||||
if (@line == 0)
|
||||
{
|
||||
warn "$ME: warning: empty commit message:\n $date_line\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($append_dot)
|
||||
{
|
||||
# If the first line of the message has enough room, then
|
||||
if (length $line[0] < 72)
|
||||
{
|
||||
# append a dot if there is no other punctuation or blank
|
||||
# at the end.
|
||||
$line[0] =~ /[[:punct:]\s]$/
|
||||
or $line[0] .= '.';
|
||||
}
|
||||
}
|
||||
|
||||
# Remove one additional leading TAB from each line.
|
||||
$strip_tab
|
||||
and map { s/^\t// } @line;
|
||||
|
||||
# Prefix each non-empty line with a TAB.
|
||||
@line = map { length $_ ? "\t$_" : '' } @line;
|
||||
|
||||
print "\n", join ("\n", @line), "\n";
|
||||
}
|
||||
}
|
||||
|
||||
defined ($in = <PIPE>)
|
||||
or last;
|
||||
$in ne "\n"
|
||||
and die "$ME:$.: unexpected line:\n$in";
|
||||
}
|
||||
|
||||
close PIPE
|
||||
or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n";
|
||||
# FIXME-someday: include $PROCESS_STATUS in the diagnostic
|
||||
|
||||
# Complain about any unused entry in the --amend=F specified file.
|
||||
my $fail = 0;
|
||||
foreach my $sha (keys %$amend_code)
|
||||
{
|
||||
warn "$ME:$amend_file: unused entry: $sha\n";
|
||||
$fail = 1;
|
||||
}
|
||||
|
||||
exit $fail;
|
||||
}
|
||||
|
||||
# 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:
|
81
build-aux/gitlog-to-emacslog
Executable file
81
build-aux/gitlog-to-emacslog
Executable file
|
@ -0,0 +1,81 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Convert git log output to ChangeLog format for GNU Emacs.
|
||||
|
||||
# Copyright (C) 2014-2015 Free Software Foundation, Inc.
|
||||
|
||||
# Author: Paul Eggert
|
||||
|
||||
# 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/>.
|
||||
|
||||
LC_ALL=C
|
||||
export LC_ALL
|
||||
|
||||
gen_origin=${1?}
|
||||
|
||||
# If this is not a Git repository, just generate an empty ChangeLog.
|
||||
test -d ${srcprefix}.git || {
|
||||
# Remove any old ChangeLog, in case it is a vc-dwim symlink.
|
||||
rm -f "${distprefix}ChangeLog" || exit
|
||||
>"${distprefix}ChangeLog"
|
||||
exit
|
||||
}
|
||||
|
||||
# Use Gnulib's packaged ChangeLog generator.
|
||||
${srcprefix}build-aux/gitlog-to-changelog --ignore-matching='^; ' \
|
||||
--format='%B' \
|
||||
"$gen_origin.." >"${distprefix}ChangeLog.tmp" || exit
|
||||
|
||||
if test -s "${distprefix}ChangeLog.tmp"; then
|
||||
|
||||
# Fix up bug references.
|
||||
# This would be better as eg a --transform option to gitlog-to-changelog,
|
||||
# but... effort. FIXME does not handle rare cases like:
|
||||
# Fixes: debbugs:19434 debbugs:19519
|
||||
sed 's/ Fixes: \(debbugs:\|bug#\)\([0-9][0-9]*\)/ (Bug#\2)/' \
|
||||
"${distprefix}ChangeLog.tmp" > "${distprefix}ChangeLog.tmp2"
|
||||
mv "${distprefix}ChangeLog.tmp2" "${distprefix}ChangeLog.tmp"
|
||||
|
||||
# Find the years covered by the generated ChangeLog, so that
|
||||
# a proper copyright notice can be output.
|
||||
years=`
|
||||
sed -n 's/^\([0-9][0-9]*\).*/\1/p' "${distprefix}ChangeLog.tmp" |
|
||||
sort -nu
|
||||
`
|
||||
start_year=
|
||||
end_year=
|
||||
for year in $years; do
|
||||
: ${start_year:=$year}
|
||||
end_year=$year
|
||||
done
|
||||
|
||||
if test "$start_year" = "$end_year"; then
|
||||
year_range=$start_year
|
||||
else
|
||||
year_range=$start_year-$end_year
|
||||
fi
|
||||
|
||||
# Append a proper copyright notice.
|
||||
sed -n '
|
||||
1i\
|
||||
|
||||
/^;; Local Variables:/,${
|
||||
s/\(Copyright[ (C)]*\)[0-9]*-[0-9]*/\1'"$year_range"'/
|
||||
p
|
||||
}
|
||||
' <ChangeLog.2 >>"${distprefix}ChangeLog.tmp" || exit
|
||||
fi
|
||||
|
||||
# Install the generated ChangeLog.
|
||||
mv -i "${distprefix}ChangeLog.tmp" "${distprefix}ChangeLog"
|
261
configure.ac
261
configure.ac
|
@ -1,6 +1,6 @@
|
|||
dnl Autoconf script for GNU Emacs
|
||||
dnl To rebuild the `configure' script from this, execute the command
|
||||
dnl autoconf
|
||||
dnl To rebuild the 'configure' script from this, execute the command
|
||||
dnl autoconf
|
||||
dnl in the directory containing this script.
|
||||
dnl If you changed any AC_DEFINES, also run autoheader.
|
||||
dnl
|
||||
|
@ -269,11 +269,6 @@ if test "$with_hesiod" != no; then
|
|||
AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])
|
||||
fi
|
||||
|
||||
OPTION_DEFAULT_OFF([mmdf],[support MMDF mailboxes])
|
||||
if test "$with_mmdf" != no; then
|
||||
AC_DEFINE(MAIL_USE_MMDF, 1, [Define to support MMDF mailboxes in movemail.])
|
||||
fi
|
||||
|
||||
OPTION_DEFAULT_OFF([mail-unlink],[unlink, rather than empty, mail spool after reading])
|
||||
if test "$with_mail_unlink" != no; then
|
||||
AC_DEFINE(MAIL_UNLINK_SPOOL, 1, [Define to unlink, rather than empty, mail spool after reading.])
|
||||
|
@ -288,8 +283,8 @@ AC_ARG_WITH([sound],[AS_HELP_STRING([--with-sound=VALUE],
|
|||
default yes). Only for GNU/Linux, FreeBSD, NetBSD, MinGW, Cygwin.])],
|
||||
[ case "${withval}" in
|
||||
yes|no|alsa|oss|bsd-ossaudio) val=$withval ;;
|
||||
*) AC_MSG_ERROR([`--with-sound=$withval' is invalid;
|
||||
this option's value should be `yes', `no', `alsa', `oss', or `bsd-ossaudio'.])
|
||||
*) AC_MSG_ERROR(['--with-sound=$withval' is invalid;
|
||||
this option's value should be 'yes', 'no', 'alsa', 'oss', or 'bsd-ossaudio'.])
|
||||
;;
|
||||
esac
|
||||
with_sound=$val
|
||||
|
@ -312,10 +307,10 @@ AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
|
|||
gtk2 ) val=gtk2 ;;
|
||||
gtk3 ) val=gtk3 ;;
|
||||
* )
|
||||
AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid;
|
||||
this option's value should be `yes', `no', `lucid', `athena', `motif', `gtk',
|
||||
`gtk2' or `gtk3'. `yes' and `gtk' are synonyms.
|
||||
`athena' and `lucid' are synonyms.])
|
||||
AC_MSG_ERROR(['--with-x-toolkit=$withval' is invalid;
|
||||
this option's value should be 'yes', 'no', 'lucid', 'athena', 'motif', 'gtk',
|
||||
'gtk2' or 'gtk3'. 'yes' and 'gtk' are synonyms.
|
||||
'athena' and 'lucid' are synonyms.])
|
||||
;;
|
||||
esac
|
||||
with_x_toolkit=$val
|
||||
|
@ -365,10 +360,10 @@ AC_ARG_WITH([file-notification],[AS_HELP_STRING([--with-file-notification=LIB],
|
|||
g | gf | gfi | gfil | gfile ) val=gfile ;;
|
||||
i | in | ino | inot | inoti | inotif | inotify ) val=inotify ;;
|
||||
w | w3 | w32 ) val=w32 ;;
|
||||
* ) AC_MSG_ERROR([`--with-file-notification=$withval' is invalid;
|
||||
this option's value should be `yes', `no', `gfile', `inotify' or `w32'.
|
||||
`yes' is a synonym for `w32' on MS-Windows, for `no' on Nextstep,
|
||||
otherwise for the first of `gfile' or `inotify' that is usable.])
|
||||
* ) AC_MSG_ERROR(['--with-file-notification=$withval' is invalid;
|
||||
this option's value should be 'yes', 'no', 'gfile', 'inotify' or 'w32'.
|
||||
'yes' is a synonym for 'w32' on MS-Windows, for 'no' on Nextstep,
|
||||
otherwise for the first of 'gfile' or 'inotify' that is usable.])
|
||||
;;
|
||||
esac
|
||||
with_file_notification=$val
|
||||
|
@ -464,8 +459,8 @@ do
|
|||
ac_gc_check_cons_list=1 ;
|
||||
ac_glyphs_debug=1 ;;
|
||||
# these enable particular checks
|
||||
stringbytes) ac_gc_check_stringbytes=1 ;;
|
||||
stringoverrun) ac_gc_check_string_overrun=1 ;;
|
||||
stringbytes) ac_gc_check_stringbytes=1 ;;
|
||||
stringoverrun) ac_gc_check_string_overrun=1 ;;
|
||||
stringfreelist) ac_gc_check_string_free_list=1 ;;
|
||||
xmallocoverrun) ac_xmalloc_overrun=1 ;;
|
||||
conslist) ac_gc_check_cons_list=1 ;;
|
||||
|
@ -536,7 +531,7 @@ AC_SUBST(PROFILING_CFLAGS)
|
|||
AC_ARG_ENABLE(autodepend,
|
||||
[AS_HELP_STRING([--enable-autodepend],
|
||||
[automatically generate dependencies to .h-files.
|
||||
Requires gcc, enabled if found.])],
|
||||
Requires gcc, enabled if found.])],
|
||||
[ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
|
||||
|
||||
AC_ARG_ENABLE(gtk-deprecation-warnings,
|
||||
|
@ -544,7 +539,7 @@ AC_ARG_ENABLE(gtk-deprecation-warnings,
|
|||
[Show Gtk+/Gdk deprecation warnings for Gtk+ >= 3.0])],
|
||||
[ac_enable_gtk_deprecation_warnings="${enableval}"],[])
|
||||
|
||||
dnl This used to use changequote, but, apart from `changequote is evil'
|
||||
dnl This used to use changequote, but, apart from 'changequote is evil'
|
||||
dnl per the autoconf manual, we can speed up autoconf somewhat by quoting
|
||||
dnl the great gob of text. Thus it's not processed for possible expansion.
|
||||
dnl Just make sure the brackets remain balanced.
|
||||
|
@ -651,7 +646,7 @@ case "${canonical}" in
|
|||
mips-sgi-irix6.5 )
|
||||
opsys=irix6-5
|
||||
# Without defining _LANGUAGE_C, things get masked out in the headers
|
||||
# so that, for instance, grepping for `free' in stdlib.h fails and
|
||||
# so that, for instance, grepping for 'free' in stdlib.h fails and
|
||||
# AC_HEADER_STD_C fails. (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
|
||||
NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
|
||||
;;
|
||||
|
@ -705,9 +700,9 @@ case "${canonical}" in
|
|||
# MinGW overrides and adds some system headers in nt/inc.
|
||||
GCC_TEST_OPTIONS="-I $srcdir/nt/inc"
|
||||
;;
|
||||
*-sysv4.2uw* ) opsys=unixware ;;
|
||||
*-sysv5uw* ) opsys=unixware ;;
|
||||
*-sysv5OpenUNIX* ) opsys=unixware ;;
|
||||
*-sysv4.2uw* ) opsys=unixware ;;
|
||||
*-sysv5uw* ) opsys=unixware ;;
|
||||
*-sysv5OpenUNIX* ) opsys=unixware ;;
|
||||
## Otherwise, we'll fall through to the generic opsys code at the bottom.
|
||||
esac
|
||||
;;
|
||||
|
@ -748,9 +743,9 @@ fi
|
|||
dnl quotation ends
|
||||
|
||||
if test $unported = yes; then
|
||||
AC_MSG_ERROR([Emacs does not support `${canonical}' systems.
|
||||
AC_MSG_ERROR([Emacs does not support '${canonical}' systems.
|
||||
If you think it should, please send a report to ${PACKAGE_BUGREPORT}.
|
||||
Check `etc/MACHINES' for recognized configuration names.])
|
||||
Check 'etc/MACHINES' for recognized configuration names.])
|
||||
fi
|
||||
|
||||
#### Choose a compiler.
|
||||
|
@ -884,6 +879,7 @@ if test "$gl_gcc_warnings" != yes; then
|
|||
gl_WARN_ADD([-Wno-tautological-constant-out-of-range-compare])
|
||||
gl_WARN_ADD([-Wno-pointer-sign])
|
||||
gl_WARN_ADD([-Wno-string-plus-int])
|
||||
gl_WARN_ADD([-Wno-unknown-attributes])
|
||||
fi
|
||||
else
|
||||
isystem='-isystem '
|
||||
|
@ -1195,9 +1191,9 @@ if test "$MAKEINFO" = "no"; then
|
|||
HAVE_MAKEINFO=no
|
||||
elif test ! -e "$srcdir/info/emacs" && test ! -e "$srcdir/info/emacs.info"; then
|
||||
AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.7, and your
|
||||
source tree does not seem to have pre-built manuals in the `info' directory.
|
||||
source tree does not seem to have pre-built manuals in the 'info' directory.
|
||||
Either install a suitable version of makeinfo, or re-run configure
|
||||
with the `--without-makeinfo' option to build without the manuals.] )
|
||||
with the '--without-makeinfo' option to build without the manuals.] )
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(HAVE_MAKEINFO)
|
||||
|
@ -1221,8 +1217,8 @@ fi
|
|||
|
||||
dnl We need -znocombreloc if we're using a relatively recent GNU ld.
|
||||
dnl If we can link with the flag, it shouldn't do any harm anyhow.
|
||||
dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.)
|
||||
dnl Treat GCC specially since it just gives a non-fatal `unrecognized option'
|
||||
dnl (Don't use '-z nocombreloc' as -z takes no arg on Irix.)
|
||||
dnl Treat GCC specially since it just gives a non-fatal 'unrecognized option'
|
||||
dnl if not built to support GNU ld.
|
||||
|
||||
dnl For a long time, -znocombreloc was added to LDFLAGS rather than
|
||||
|
@ -1318,7 +1314,7 @@ esac
|
|||
LD_SWITCH_SYSTEM=
|
||||
case "$opsys" in
|
||||
freebsd|dragonfly)
|
||||
## Let `ld' find image libs and similar things in /usr/local/lib.
|
||||
## Let 'ld' find image libs and similar things in /usr/local/lib.
|
||||
## The system compiler, GCC, has apparently been modified to not
|
||||
## look there, contrary to what a stock GCC would do.
|
||||
### It's not our place to do this. See bug#10313#17.
|
||||
|
@ -1486,7 +1482,7 @@ esac
|
|||
|
||||
AC_SUBST(LIB_MATH)
|
||||
AC_DEFINE_UNQUOTED(SYSTEM_TYPE, "$SYSTEM_TYPE",
|
||||
[The type of system you are compiling for; sets `system-type'.])
|
||||
[The type of system you are compiling for; sets 'system-type'.])
|
||||
|
||||
|
||||
pre_PKG_CONFIG_CFLAGS=$CFLAGS
|
||||
|
@ -1541,12 +1537,12 @@ if test "${with_sound}" != "no"; then
|
|||
LIBS="$ALSA_LIBS $LIBS"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <asoundlib.h>]], [[snd_lib_error_set_handler (0);]])],
|
||||
emacs_alsa_normal=yes,
|
||||
emacs_alsa_normal=no)
|
||||
emacs_alsa_normal=no)
|
||||
if test "$emacs_alsa_normal" != yes; then
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <alsa/asoundlib.h>]],
|
||||
[[snd_lib_error_set_handler (0);]])],
|
||||
emacs_alsa_subdir=yes,
|
||||
emacs_alsa_subdir=no)
|
||||
emacs_alsa_subdir=no)
|
||||
if test "$emacs_alsa_subdir" != yes; then
|
||||
AC_MSG_ERROR([pkg-config found alsa, but it does not compile. See config.log for error messages.])
|
||||
fi
|
||||
|
@ -1622,7 +1618,7 @@ if test "$ac_cv_header_sys_sysinfo_h" = yes; then
|
|||
fi
|
||||
|
||||
dnl On Solaris 8 there's a compilation warning for term.h because
|
||||
dnl it doesn't define `bool'.
|
||||
dnl it doesn't define 'bool'.
|
||||
AC_CHECK_HEADERS(term.h, , , -)
|
||||
AC_HEADER_TIME
|
||||
AC_CHECK_DECLS([sys_siglist], [], [], [[#include <signal.h>
|
||||
|
@ -1836,7 +1832,7 @@ fail;
|
|||
CFLAGS="$CFLAGS $GNU_OBJC_CFLAGS"
|
||||
|
||||
AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
|
||||
[AC_MSG_ERROR([`--with-ns' was specified, but the include
|
||||
[AC_MSG_ERROR(['--with-ns' was specified, but the include
|
||||
files are missing or cannot be compiled.])])
|
||||
|
||||
macfont_file=""
|
||||
|
@ -1857,7 +1853,7 @@ fail;
|
|||
AC_MSG_RESULT([$ns_osx_have_106])
|
||||
|
||||
if test $ns_osx_have_106 = no; then
|
||||
AC_MSG_ERROR([`OSX 10.6 or newer is required']);
|
||||
AC_MSG_ERROR([OSX 10.6 or newer is required]);
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -1915,7 +1911,7 @@ if test "${with_w32}" != no; then
|
|||
case "${opsys}" in
|
||||
cygwin)
|
||||
AC_CHECK_HEADER([windows.h], [HAVE_W32=yes],
|
||||
[AC_MSG_ERROR([`--with-w32' was specified, but windows.h
|
||||
[AC_MSG_ERROR(['--with-w32' was specified, but windows.h
|
||||
cannot be found.])])
|
||||
;;
|
||||
mingw32)
|
||||
|
@ -2361,7 +2357,7 @@ fail;
|
|||
fi
|
||||
|
||||
|
||||
### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
|
||||
### Use -lrsvg-2 if available, unless '--with-rsvg=no' is specified.
|
||||
HAVE_RSVG=no
|
||||
if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes" || test "${opsys}" = "mingw32"; then
|
||||
if test "${with_rsvg}" != "no"; then
|
||||
|
@ -2377,7 +2373,7 @@ if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes" || test "${opsys}" =
|
|||
CFLAGS="$CFLAGS $RSVG_CFLAGS"
|
||||
# Windows loads librsvg dynamically
|
||||
if test "${opsys}" = "mingw32"; then
|
||||
RSVG_LIBS=
|
||||
RSVG_LIBS=
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -2607,21 +2603,21 @@ if test "${HAVE_X11}" = "yes" && test "${with_gsettings}" = "yes"; then
|
|||
AC_MSG_CHECKING([whether GSettings is in gio])
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[/* Check that gsettings really is present. */
|
||||
#include <glib-object.h>
|
||||
[[/* Check that gsettings really is present. */
|
||||
#include <glib-object.h>
|
||||
#include <gio/gio.h>
|
||||
]],
|
||||
[[
|
||||
]],
|
||||
[[
|
||||
GSettings *settings;
|
||||
GVariant *val = g_settings_get_value (settings, "");
|
||||
]])],
|
||||
[], HAVE_GSETTINGS=no)
|
||||
]])],
|
||||
[], HAVE_GSETTINGS=no)
|
||||
AC_MSG_RESULT([$HAVE_GSETTINGS])
|
||||
|
||||
if test "$HAVE_GSETTINGS" = "yes"; then
|
||||
AC_DEFINE(HAVE_GSETTINGS, 1, [Define to 1 if using GSettings.])
|
||||
SETTINGS_CFLAGS="$GSETTINGS_CFLAGS"
|
||||
SETTINGS_LIBS="$GSETTINGS_LIBS"
|
||||
SETTINGS_CFLAGS="$GSETTINGS_CFLAGS"
|
||||
SETTINGS_LIBS="$GSETTINGS_LIBS"
|
||||
fi
|
||||
CFLAGS=$old_CFLAGS
|
||||
LIBS=$old_LIBS
|
||||
|
@ -2701,7 +2697,7 @@ fi
|
|||
dnl MS Windows native file monitor is available for mingw32 only.
|
||||
case $with_file_notification,$opsys in
|
||||
w32,cygwin)
|
||||
AC_MSG_ERROR([`--with-file-notification=w32' was specified, but
|
||||
AC_MSG_ERROR(['--with-file-notification=w32' was specified, but
|
||||
this is only supported on MS-Windows native and MinGW32 builds.
|
||||
Consider using gfile instead.])
|
||||
;;
|
||||
|
@ -2745,7 +2741,7 @@ esac
|
|||
|
||||
case $with_file_notification,$NOTIFY_OBJ in
|
||||
yes,* | no,* | *,?*) ;;
|
||||
*) AC_MSG_ERROR([File notification `$with_file_notification' requested but requirements not found.]) ;;
|
||||
*) AC_MSG_ERROR([File notification '$with_file_notification' requested but requirements not found.]) ;;
|
||||
esac
|
||||
|
||||
if test -n "$NOTIFY_OBJ"; then
|
||||
|
@ -2947,7 +2943,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|||
AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available])],
|
||||
HAVE_XIM=no)
|
||||
|
||||
dnl `--with-xim' now controls only the initial value of use_xim at run time.
|
||||
dnl '--with-xim' now controls only the initial value of use_xim at run time.
|
||||
|
||||
if test "${with_xim}" != "no"; then
|
||||
AC_DEFINE(USE_XIM, 1,
|
||||
|
@ -2995,7 +2991,7 @@ fi
|
|||
|
||||
### Start of font-backend (under X11) section.
|
||||
if test "${HAVE_X11}" = "yes"; then
|
||||
## Use -lXft if available, unless `--with-xft=no'.
|
||||
## Use -lXft if available, unless '--with-xft=no'.
|
||||
HAVE_XFT=maybe
|
||||
if test "x${with_x}" = "xno"; then
|
||||
with_xft="no";
|
||||
|
@ -3119,7 +3115,7 @@ if test "${HAVE_X11}" = "yes"; then
|
|||
fi
|
||||
fi
|
||||
|
||||
### Use -lXpm if available, unless `--with-xpm=no'.
|
||||
### Use -lXpm if available, unless '--with-xpm=no'.
|
||||
### mingw32 doesn't use -lXpm, since it loads the library dynamically.
|
||||
### In the Cygwin-w32 build, we need to use /usr/include/noX/X11/xpm.h
|
||||
### rather than /usr/include/X11/xpm.h, so we set CPPFLAGS (and
|
||||
|
@ -3210,52 +3206,47 @@ fi
|
|||
|
||||
AC_SUBST(LIBXPM)
|
||||
|
||||
### Use -ljpeg if available, unless `--with-jpeg=no'.
|
||||
### mingw32 doesn't use -ljpeg, since it loads the library dynamically.
|
||||
### Use -ljpeg if available, unless '--with-jpeg=no'.
|
||||
HAVE_JPEG=no
|
||||
LIBJPEG=
|
||||
if test "${opsys}" = "mingw32"; then
|
||||
if test "${with_jpeg}" != "no"; then
|
||||
dnl Checking for jpeglib.h can lose because of a redefinition of
|
||||
dnl HAVE_STDLIB_H.
|
||||
AC_CHECK_HEADER(jerror.h, HAVE_JPEG=yes, HAVE_JPEG=no)
|
||||
fi
|
||||
AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
|
||||
if test "${HAVE_JPEG}" = "yes"; then
|
||||
AC_DEFINE(HAVE_JPEG)
|
||||
AC_EGREP_CPP([version 6b or later],
|
||||
[#include <jpeglib.h>
|
||||
#if JPEG_LIB_VERSION >= 62
|
||||
version 6b or later
|
||||
#endif
|
||||
],
|
||||
[AC_DEFINE(HAVE_JPEG)],
|
||||
[AC_MSG_WARN([libjpeg found, but not version 6b or later])
|
||||
HAVE_JPEG=no])
|
||||
fi
|
||||
elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
|
||||
if test "${with_jpeg}" != "no"; then
|
||||
dnl Checking for jpeglib.h can lose because of a redefinition of
|
||||
dnl HAVE_STDLIB_H.
|
||||
AC_CHECK_HEADER(jerror.h,
|
||||
[AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)])
|
||||
fi
|
||||
|
||||
AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
|
||||
if test "${HAVE_JPEG}" = "yes"; then
|
||||
AC_DEFINE(HAVE_JPEG)
|
||||
AC_EGREP_CPP([version 6b or later],
|
||||
[#include <jpeglib.h>
|
||||
#if JPEG_LIB_VERSION >= 62
|
||||
version 6b or later
|
||||
#endif
|
||||
],
|
||||
[AC_DEFINE(HAVE_JPEG)],
|
||||
[AC_MSG_WARN([libjpeg found, but not version 6b or later])
|
||||
HAVE_JPEG=no])
|
||||
fi
|
||||
if test "${HAVE_JPEG}" = "yes"; then
|
||||
LIBJPEG=-ljpeg
|
||||
if test "${with_jpeg}" != "no"; then
|
||||
AC_CACHE_CHECK([for jpeglib 6b or later],
|
||||
[emacs_cv_jpeglib],
|
||||
[OLD_LIBS=$LIBS
|
||||
for emacs_cv_jpeglib in yes -ljpeg no; do
|
||||
case $emacs_cv_jpeglib in
|
||||
yes) ;;
|
||||
no) break;;
|
||||
*) LIBS="$LIBS $emacs_cv_jpeglib";;
|
||||
esac
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#undef HAVE_STDLIB_H /* Avoid config.h/jpeglib.h collision. */
|
||||
#include <stdio.h> /* jpeglib.h needs FILE and size_t. */
|
||||
#include <jpeglib.h>
|
||||
#include <jerror.h>
|
||||
char verify[JPEG_LIB_VERSION < 62 ? -1 : 1];
|
||||
struct jpeg_decompress_struct cinfo;
|
||||
]],
|
||||
[[
|
||||
jpeg_create_decompress (&cinfo);
|
||||
WARNMS (&cinfo, JWRN_JPEG_EOF);
|
||||
jpeg_destroy_decompress (&cinfo);
|
||||
]])],
|
||||
[emacs_link_ok=yes],
|
||||
[emacs_link_ok=no])
|
||||
LIBS=$OLD_LIBS
|
||||
test $emacs_link_ok = yes && break
|
||||
done])
|
||||
if test "$emacs_cv_jpeglib" != no; then
|
||||
HAVE_JPEG=yes
|
||||
AC_DEFINE([HAVE_JPEG], 1,
|
||||
[Define to 1 if you have the jpeg library (typically -ljpeg).])
|
||||
### mingw32 doesn't use -ljpeg, since it loads the library
|
||||
### dynamically when needed, and doesn't want a run-time
|
||||
### dependency on the jpeglib DLL.
|
||||
test "$emacs_cv_jpeglib" != yes && test "${opsys}" != "mingw32" \
|
||||
&& LIBJPEG=$emacs_cv_jpeglib
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(LIBJPEG)
|
||||
|
@ -3279,7 +3270,7 @@ if test "${HAVE_ZLIB}" = "yes"; then
|
|||
fi
|
||||
AC_SUBST(LIBZ)
|
||||
|
||||
### Use -lpng if available, unless `--with-png=no'.
|
||||
### Use -lpng if available, unless '--with-png=no'.
|
||||
HAVE_PNG=no
|
||||
LIBPNG=
|
||||
PNG_CFLAGS=
|
||||
|
@ -3343,7 +3334,7 @@ fi
|
|||
AC_SUBST(LIBPNG)
|
||||
AC_SUBST(PNG_CFLAGS)
|
||||
|
||||
### Use -ltiff if available, unless `--with-tiff=no'.
|
||||
### Use -ltiff if available, unless '--with-tiff=no'.
|
||||
### mingw32 doesn't use -ltiff, since it loads the library dynamically.
|
||||
HAVE_TIFF=no
|
||||
LIBTIFF=
|
||||
|
@ -3371,7 +3362,7 @@ elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
|
|||
fi
|
||||
AC_SUBST(LIBTIFF)
|
||||
|
||||
### Use -lgif or -lungif if available, unless `--with-gif=no'.
|
||||
### Use -lgif or -lungif if available, unless '--with-gif=no'.
|
||||
### mingw32 doesn't use -lgif/-lungif, since it loads the library dynamically.
|
||||
HAVE_GIF=no
|
||||
LIBGIF=
|
||||
|
@ -3429,7 +3420,7 @@ as options to configure])
|
|||
fi
|
||||
fi
|
||||
|
||||
### Use -lgpm if available, unless `--with-gpm=no'.
|
||||
### Use -lgpm if available, unless '--with-gpm=no'.
|
||||
HAVE_GPM=no
|
||||
LIBGPM=
|
||||
if test "${with_gpm}" != "no"; then
|
||||
|
@ -3567,7 +3558,7 @@ if test "${with_xml2}" != "no"; then
|
|||
CPPFLAGS="$CPPFLAGS -I$xcsdkdir/usr/include/libxml2"
|
||||
AC_CHECK_HEADER(libxml/HTMLparser.h,
|
||||
[AC_CHECK_DECL(HTML_PARSE_RECOVER, HAVE_LIBXML2=yes, ,
|
||||
[#include <libxml/HTMLparser.h>])])
|
||||
[#include <libxml/HTMLparser.h>])])
|
||||
CPPFLAGS="$SAVE_CPPFLAGS"
|
||||
if test "${HAVE_LIBXML2}" = "yes"; then
|
||||
LIBXML2_CFLAGS="-I'$xcsdkdir/usr/include/libxml2'"
|
||||
|
@ -3611,7 +3602,7 @@ fi
|
|||
AC_CHECK_LIB(mail, maillock, have_mail=yes, have_mail=no)
|
||||
if test $have_mail = yes; then
|
||||
LIBS_MAIL=-lmail
|
||||
AC_DEFINE(HAVE_LIBMAIL, 1, [Define to 1 if you have the `mail' library (-lmail).])
|
||||
AC_DEFINE(HAVE_LIBMAIL, 1, [Define to 1 if you have the 'mail' library (-lmail).])
|
||||
|
||||
OLD_LIBS=$LIBS
|
||||
LIBS="$LIBS_MAIL $LIBS"
|
||||
|
@ -3624,7 +3615,7 @@ dnl Debian, at least:
|
|||
AC_CHECK_LIB(lockfile, maillock, have_lockfile=yes, have_lockfile=no)
|
||||
if test $have_lockfile = yes; then
|
||||
LIBS_MAIL=-llockfile
|
||||
AC_DEFINE(HAVE_LIBLOCKFILE, 1, [Define to 1 if you have the `lockfile' library (-llockfile).])
|
||||
AC_DEFINE(HAVE_LIBLOCKFILE, 1, [Define to 1 if you have the 'lockfile' library (-llockfile).])
|
||||
else
|
||||
# If we have the shared liblockfile, assume we must use it for mail
|
||||
# locking (e.g. Debian). If we couldn't link against liblockfile
|
||||
|
@ -3636,7 +3627,7 @@ else
|
|||
if test $ac_cv_prog_liblockfile = yes; then
|
||||
AC_MSG_ERROR([Shared liblockfile found but can't link against it.
|
||||
This probably means that movemail could lose mail.
|
||||
There may be a `development' package to install containing liblockfile.])
|
||||
There may be a 'development' package to install containing liblockfile.])
|
||||
fi
|
||||
fi
|
||||
AC_CHECK_HEADERS_ONCE(maillock.h)
|
||||
|
@ -3654,12 +3645,12 @@ case "$opsys" in
|
|||
## On GNU/Linux systems, both methods are used by various mail programs.
|
||||
## I assume most people are using newer mailers that have heard of flock.
|
||||
## Change this if you need to.
|
||||
## Debian contains a patch which says: ``On Debian/GNU/Linux systems,
|
||||
## Debian contains a patch which says: "On Debian/GNU/Linux systems,
|
||||
## configure gets the right answers, and that means *NOT* using flock.
|
||||
## Using flock is guaranteed to be the wrong thing. See Debian Policy
|
||||
## for details.'' and then uses `#ifdef DEBIAN'. Unfortunately the
|
||||
## for details." and then uses '#ifdef DEBIAN'. Unfortunately the
|
||||
## Debian maintainer hasn't provided a clean fix for Emacs.
|
||||
## movemail.c will use `maillock' when MAILDIR, HAVE_LIBMAIL and
|
||||
## movemail.c will use 'maillock' when MAILDIR, HAVE_LIBMAIL and
|
||||
## HAVE_MAILLOCK_H are defined, so the following appears to be the
|
||||
## correct logic. -- fx
|
||||
## We must check for HAVE_LIBLOCKFILE too, as movemail does.
|
||||
|
@ -3719,7 +3710,7 @@ AC_CACHE_CHECK([for __builtin_unwind_init],
|
|||
emacs_cv_func___builtin_unwind_init=no)])
|
||||
if test $emacs_cv_func___builtin_unwind_init = yes; then
|
||||
AC_DEFINE(HAVE___BUILTIN_UNWIND_INIT, 1,
|
||||
[Define to 1 if you have the `__builtin_unwind_init' function.])
|
||||
[Define to 1 if you have the '__builtin_unwind_init' function.])
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADERS_ONCE(sys/un.h)
|
||||
|
@ -3778,7 +3769,7 @@ else
|
|||
fi
|
||||
AC_MSG_RESULT([$msg])
|
||||
if test "X$msg" = Xno; then
|
||||
AC_MSG_ERROR([The required function `tputs' was not found in any library.
|
||||
AC_MSG_ERROR([The required function 'tputs' was not found in any library.
|
||||
The following libraries were tried (in order):
|
||||
libtinfo, libncurses, libterminfo, libtermcap, libcurses
|
||||
Please try installing whichever of these libraries is most appropriate
|
||||
|
@ -4063,7 +4054,7 @@ LIBS="$LIBS $GFILENOTIFY_LIBS $CAIRO_LIBS"
|
|||
AC_MSG_CHECKING([whether GLib is linked in])
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM(
|
||||
[[#include <glib.h>
|
||||
]],
|
||||
]],
|
||||
[[g_print ("Hello world");]])],
|
||||
[links_glib=yes],
|
||||
[links_glib=no])
|
||||
|
@ -4314,15 +4305,15 @@ case $opsys in
|
|||
esac
|
||||
|
||||
|
||||
dnl If the system's imake configuration file defines `NeedWidePrototypes'
|
||||
dnl as `NO', we must define NARROWPROTO manually. Such a define is
|
||||
dnl generated in the Makefile generated by `xmkmf'. If we don't define
|
||||
dnl If the system's imake configuration file defines 'NeedWidePrototypes'
|
||||
dnl as 'NO', we must define NARROWPROTO manually. Such a define is
|
||||
dnl generated in the Makefile generated by 'xmkmf'. If we don't define
|
||||
dnl NARROWPROTO, we will see the wrong function prototypes for X functions
|
||||
dnl taking float or double parameters.
|
||||
case $opsys in
|
||||
cygwin|gnu|gnu-linux|gnu-kfreebsd|irix6-5|freebsd|netbsd|openbsd)
|
||||
AC_DEFINE(NARROWPROTO, 1, [Define if system's imake configuration
|
||||
file defines `NeedWidePrototypes' as `NO'.])
|
||||
file defines 'NeedWidePrototypes' as 'NO'.])
|
||||
;;
|
||||
esac
|
||||
|
||||
|
@ -4909,8 +4900,8 @@ AC_CACHE_CHECK([for struct alignment],
|
|||
[emacs_cv_struct_alignment],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[#include <stddef.h>
|
||||
struct __attribute__ ((aligned (8))) s { char c; };
|
||||
struct t { char c; struct s s; };
|
||||
struct __attribute__ ((aligned (8))) s { char c; };
|
||||
struct t { char c; struct s s; };
|
||||
char verify[offsetof (struct t, s) == 8 ? 1 : -1];
|
||||
]])],
|
||||
[emacs_cv_struct_alignment=yes],
|
||||
|
@ -5053,16 +5044,24 @@ case "$opsys" in
|
|||
*) LD_SWITCH_SYSTEM_TEMACS= ;;
|
||||
esac
|
||||
|
||||
AC_CACHE_CHECK([whether the linker accepts -nopie],
|
||||
# -nopie fixes a temacs segfault on Gentoo, OpenBSD, and other systems
|
||||
# with "hardened" GCC configurations for some reason (Bug#18784).
|
||||
# We don't know why -nopie works, but not segfaulting is better than
|
||||
# segfaulting. Use ac_c_werror_flag=yes when trying -nopie, otherwise
|
||||
# clang keeps warning that it does not understand -nopie, and pre-4.6
|
||||
# GCC has a similar problem (Bug#20338).
|
||||
AC_CACHE_CHECK([whether $CC accepts -nopie],
|
||||
[emacs_cv_prog_cc_nopie],
|
||||
[emacs_save_LDFLAGS=$LDFLAGS
|
||||
LDFLAGS="$LDFLAGS -nopie"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
|
||||
[emacs_cv_prog_cc_nopie=yes],
|
||||
[emacs_cv_prog_cc_nopie=no])
|
||||
LDFLAGS=$emacs_save_LDFLAGS])
|
||||
[emacs_save_c_werror_flag=$ac_c_werror_flag
|
||||
emacs_save_LDFLAGS=$LDFLAGS
|
||||
ac_c_werror_flag=yes
|
||||
LDFLAGS="$LDFLAGS -nopie"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
|
||||
[emacs_cv_prog_cc_nopie=yes],
|
||||
[emacs_cv_prog_cc_nopie=no])
|
||||
ac_c_werror_flag=$emacs_save_c_werror_flag
|
||||
LDFLAGS=$emacs_save_LDFLAGS])
|
||||
if test "$emacs_cv_prog_cc_nopie" = yes; then
|
||||
# Disable PIE to avoid segfaults in temacs (bug#18784)
|
||||
LD_SWITCH_SYSTEM_TEMACS="$LD_SWITCH_SYSTEM_TEMACS -nopie"
|
||||
fi
|
||||
|
||||
|
@ -5140,7 +5139,7 @@ else
|
|||
fi
|
||||
|
||||
echo "
|
||||
Configured for \`${canonical}'.
|
||||
Configured for '${canonical}'.
|
||||
|
||||
Where should the build process find the source code? ${srcdir}
|
||||
What compiler should emacs be built with? ${CC} ${CFLAGS}
|
||||
|
@ -5266,7 +5265,7 @@ AC_CONFIG_FILES([$srcdir/doc/man/emacs.1])
|
|||
dnl Obviously there is duplication here wrt $SUBDIR_MAKEFILES.
|
||||
dnl You _can_ use that variable in AC_CONFIG_FILES, so long as any directory
|
||||
dnl using automake (ie lib/) is explicitly listed and not "hidden" in a variable
|
||||
dnl (else you get "no `Makefile.am' found for any configure output").
|
||||
dnl (else you get "no 'Makefile.am' found for any configure output").
|
||||
dnl This will work, but you get a config.status that is not quite right
|
||||
dnl (see http://lists.gnu.org/archive/html/bug-autoconf/2008-08/msg00028.html).
|
||||
dnl That doesn't have any obvious consequences for Emacs, but on the whole
|
||||
|
@ -5306,9 +5305,9 @@ dnl rather than just letting configure generate it from epaths.in.
|
|||
dnl One reason is that the various paths are not fully expanded (see above);
|
||||
dnl eg gamedir=${prefix}/var/games/emacs.
|
||||
dnl Secondly, the GNU Coding standards require that one should be able
|
||||
dnl to run `make prefix=/some/where/else' and override the values set
|
||||
dnl by configure. This also explains the `move-if-change' test and
|
||||
dnl the use of force in the `epaths-force' rule in Makefile.in.
|
||||
dnl to run 'make prefix=/some/where/else' and override the values set
|
||||
dnl by configure. This also explains the 'move-if-change' test and
|
||||
dnl the use of force in the 'epaths-force' rule in Makefile.in.
|
||||
AC_CONFIG_COMMANDS([src/epaths.h], [
|
||||
if test "${opsys}" = "mingw32"; then
|
||||
${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force-w32
|
||||
|
|
|
@ -23,7 +23,7 @@ SHELL = @SHELL@
|
|||
# update the sed rules in the dist target below.
|
||||
|
||||
# Where to find the source code. $(srcdir) will be the doc/emacs subdirectory
|
||||
# of the source tree. This is set by configure's `--srcdir' option.
|
||||
# of the source tree. This is set by configure's '--srcdir' option.
|
||||
srcdir=@srcdir@
|
||||
|
||||
top_srcdir = @top_srcdir@
|
||||
|
|
|
@ -1201,7 +1201,7 @@ Ken Stevens wrote @file{ispell.el}, a spell-checker interface.
|
|||
|
||||
@item
|
||||
Kim F. Storm made many improvements to the Emacs display engine,
|
||||
process support, and networking support. He also wrote
|
||||
process support, and networking support. He also wrote
|
||||
@file{bindat.el}, a package for encoding and decoding binary data;
|
||||
CUA mode, which allows Emacs to emulate the standard CUA key
|
||||
bindings; @file{ido.el}, a package for selecting buffers and files
|
||||
|
|
|
@ -947,7 +947,7 @@ of the window. Disabled breakpoints are indicated with @samp{b}.
|
|||
(The margin is only displayed if a breakpoint is present.)
|
||||
|
||||
A solid arrow in the left fringe of a source buffer indicates the
|
||||
line of the innermost frame where the debugged program has stopped. A
|
||||
line of the innermost frame where the debugged program has stopped. A
|
||||
hollow arrow indicates the current execution line of a higher-level
|
||||
frame. If you drag the arrow in the fringe with @kbd{Mouse-1}, that
|
||||
causes execution to advance to the line where you release the button.
|
||||
|
@ -1138,7 +1138,7 @@ size for these data items.
|
|||
|
||||
When @code{gdb-many-windows} is non-@code{nil}, the locals buffer
|
||||
shares its window with the registers buffer, just like breakpoints and
|
||||
threads buffers. To switch from one to the other, click with
|
||||
threads buffers. To switch from one to the other, click with
|
||||
@kbd{Mouse-1} on the relevant button in the header line.
|
||||
|
||||
@node Watch Expressions
|
||||
|
@ -1457,8 +1457,8 @@ Evaluate all the Emacs Lisp expressions in the buffer.
|
|||
@end table
|
||||
|
||||
@ifinfo
|
||||
@c This uses ``colon'' instead of a literal `:' because Info cannot
|
||||
@c cope with a `:' in a menu
|
||||
@c This uses 'colon' instead of a literal ':' because Info cannot
|
||||
@c cope with a ':' in a menu.
|
||||
@kindex M-@key{colon}
|
||||
@end ifinfo
|
||||
@ifnotinfo
|
||||
|
|
|
@ -379,7 +379,7 @@ between years will not work.
|
|||
|
||||
If the variable @code{cal-html-print-day-number-flag} is
|
||||
non-@code{nil}, then the monthly calendars show the day-of-the-year
|
||||
number. The variable @code{cal-html-year-index-cols} specifies the
|
||||
number. The variable @code{cal-html-year-index-cols} specifies the
|
||||
number of columns in the yearly index page.
|
||||
|
||||
@cindex calendar and @LaTeX{}
|
||||
|
@ -827,7 +827,7 @@ Display Mayan date for selected day (@code{calendar-mayan-print-date}).
|
|||
Otherwise, move point to the date you want to convert, then type the
|
||||
appropriate command starting with @kbd{p} from the table above. The
|
||||
prefix @kbd{p} is a mnemonic for ``print'', since Emacs ``prints'' the
|
||||
equivalent date in the echo area. @kbd{p o} displays the
|
||||
equivalent date in the echo area. @kbd{p o} displays the
|
||||
date in all forms known to Emacs. You can also use @kbd{Mouse-3} and
|
||||
then choose @kbd{Other calendars} from the menu that appears. This
|
||||
displays the equivalent forms of the date in all the calendars Emacs
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
@cindex switches (command line)
|
||||
@cindex startup (command line arguments)
|
||||
@cindex invocation (command line arguments)
|
||||
@c FIXME: Document `--smid'? --xfq
|
||||
@c FIXME: Document '--smid'? --xfq
|
||||
|
||||
Emacs supports command line arguments to request various actions
|
||||
when invoking Emacs. These are for compatibility with other editors
|
||||
|
@ -582,7 +582,7 @@ The name of the news server. Used by the mh and Gnus packages.
|
|||
@item ORGANIZATION
|
||||
@vindex ORGANIZATION, environment variable
|
||||
The name of the organization to which you belong. Used for setting the
|
||||
`Organization:' header in your posts from the Gnus package.
|
||||
``Organization:'' header in your posts from the Gnus package.
|
||||
@item PATH
|
||||
@vindex PATH, environment variable
|
||||
A colon-separated list of directories containing executable files.
|
||||
|
|
|
@ -778,7 +778,7 @@ fill-column's value is 70
|
|||
|
||||
Automatically becomes buffer-local when set.
|
||||
This variable is safe as a file local variable if its value
|
||||
satisfies the predicate `integerp'.
|
||||
satisfies the predicate @code{integerp}.
|
||||
|
||||
Documentation:
|
||||
Column beyond which automatic line-wrapping should happen.
|
||||
|
@ -2213,10 +2213,10 @@ require one and some contexts require the other.
|
|||
keys which send non-@acronym{ASCII} characters.
|
||||
|
||||
@item True:
|
||||
@code{t} stands for `true'.
|
||||
@code{t} stands for ``true''.
|
||||
|
||||
@item False:
|
||||
@code{nil} stands for `false'.
|
||||
@code{nil} stands for ``false''.
|
||||
|
||||
@item Other Lisp objects:
|
||||
@cindex Lisp object syntax
|
||||
|
@ -2247,8 +2247,8 @@ line.
|
|||
(setq c-tab-always-indent nil)
|
||||
@end example
|
||||
|
||||
Here we have a variable whose value is normally @code{t} for `true'
|
||||
and the alternative is @code{nil} for `false'.
|
||||
Here we have a variable whose value is normally @code{t} for ``true''
|
||||
and the alternative is @code{nil} for ``false''.
|
||||
|
||||
@item
|
||||
Make searches case sensitive by default (in all buffers that do not
|
||||
|
@ -2440,9 +2440,7 @@ You can also simply disregard the errors that occur if the
|
|||
function is not defined.
|
||||
|
||||
@example
|
||||
(condition case ()
|
||||
(set-face-background 'region "grey75")
|
||||
(error nil))
|
||||
(ignore-errors (set-face-background 'region "grey75"))
|
||||
@end example
|
||||
|
||||
A @code{setq} on a variable which does not exist is generally
|
||||
|
|
|
@ -376,7 +376,7 @@ for @file{..} and typing @kbd{f} there.
|
|||
@end table
|
||||
|
||||
@node Marks vs Flags
|
||||
@section Dired Marks vs. Flags
|
||||
@section Dired Marks vs.@: Flags
|
||||
|
||||
@cindex marking many files (in Dired)
|
||||
Instead of flagging a file with @samp{D}, you can @dfn{mark} the
|
||||
|
|
|
@ -115,7 +115,7 @@ display editor. This manual describes how to edit with Emacs and
|
|||
some of the ways to customize it; it corresponds to GNU Emacs version
|
||||
@value{EMACSVER}.
|
||||
|
||||
@c See `manual-html-mono' and `manual-html-node' in admin/admin.el.
|
||||
@c See 'manual-html-mono' and 'manual-html-node' in admin/admin.el.
|
||||
@ifset WWW_GNU_ORG
|
||||
@html
|
||||
The homepage for GNU Emacs is at
|
||||
|
@ -239,9 +239,9 @@ Indexes (each index contains a large menu)
|
|||
* Concept Index:: An item for each concept.
|
||||
|
||||
@c Do NOT modify the following 3 lines! They must have this form to
|
||||
@c be correctly identified by `texinfo-multiple-files-update'. In
|
||||
@c be correctly identified by 'texinfo-multiple-files-update'. In
|
||||
@c particular, the detailed menu header line MUST be identical to the
|
||||
@c value of `texinfo-master-menu-header'. See texnfo-upd.el.
|
||||
@c value of 'texinfo-master-menu-header'. See texnfo-upd.el.
|
||||
|
||||
@detailmenu
|
||||
--- The Detailed Node Listing ---
|
||||
|
@ -391,7 +391,7 @@ Searching and Replacement
|
|||
* Symbol Search:: Search for a source code symbol.
|
||||
* Regexp Search:: Search for match for a regexp.
|
||||
* Regexps:: Syntax of regular expressions.
|
||||
* Regexp Backslash:: Regular expression constructs starting with `\'.
|
||||
* Regexp Backslash:: Regular expression constructs starting with '\'.
|
||||
* Regexp Example:: A complex regular expression explained.
|
||||
* Search Case:: To ignore case while searching, or not.
|
||||
* Replace:: Search, and replace some or all matches.
|
||||
|
@ -1149,7 +1149,7 @@ The Emacs Initialization File
|
|||
Dealing with Emacs Trouble
|
||||
|
||||
* DEL Does Not Delete:: What to do if @key{DEL} doesn't delete.
|
||||
* Stuck Recursive:: `[...]' in mode line around the parentheses.
|
||||
* Stuck Recursive:: '[...]' in mode line around the parentheses.
|
||||
* Screen Garbled:: Garbage on the screen.
|
||||
* Text Garbled:: Garbage in the text.
|
||||
* Memory Full:: How to cope when you run out of memory.
|
||||
|
|
|
@ -429,7 +429,7 @@ by mistake. One thing you can do is type @kbd{M-~}
|
|||
(@code{not-modified}), which clears out the indication that the buffer
|
||||
is modified. If you do this, none of the save commands will believe
|
||||
that the buffer needs to be saved. (@samp{~} is often used as a
|
||||
mathematical symbol for `not'; thus @kbd{M-~} is `not', metafied.)
|
||||
mathematical symbol for ``not''; thus @kbd{M-~} is ``not'', metafied.)
|
||||
Alternatively, you can cancel all the changes made since the file was
|
||||
visited or saved, by reading the text from the file again. This is
|
||||
called @dfn{reverting}. @xref{Reverting}. (You could also undo all
|
||||
|
@ -1272,7 +1272,7 @@ minibuffer, and displays the differences between the two files in a
|
|||
buffer named @file{*diff*}. This works by running the @command{diff}
|
||||
program, using options taken from the variable @code{diff-switches}.
|
||||
The value of @code{diff-switches} should be a string; the default is
|
||||
@code{"-c"} to specify a context diff.
|
||||
@code{"-u"} to specify a unified context diff.
|
||||
@c Note that the actual name of the info file is diffutils.info,
|
||||
@c but it adds a dir entry for diff too.
|
||||
@c On older systems, only "info diff" works, not "info diffutils".
|
||||
|
|
|
@ -60,7 +60,7 @@ be preserved if the buffer is lost due to a system error or user error.
|
|||
|
||||
@item Autoloading
|
||||
Emacs can automatically load Lisp libraries when a Lisp program requests a
|
||||
function from those libraries. This is called `autoloading'.
|
||||
function from those libraries. This is called ``autoloading''.
|
||||
@xref{Lisp Libraries}.
|
||||
|
||||
@item Backtrace
|
||||
|
@ -100,7 +100,7 @@ A base buffer is a buffer whose text is shared by an indirect buffer
|
|||
Some human languages, such as English, are written from left to right.
|
||||
Others, such as Arabic, are written from right to left. Emacs
|
||||
supports both of these forms, as well as any mixture of them---this
|
||||
is `bidirectional text'. @xref{Bidirectional Editing}.
|
||||
is ``bidirectional text''. @xref{Bidirectional Editing}.
|
||||
|
||||
@item Bind
|
||||
To bind a key sequence means to give it a binding (q.v.).
|
||||
|
@ -135,7 +135,7 @@ X}). Borders are not the same as fringes (q.v.).
|
|||
@item Buffer
|
||||
The buffer is the basic editing unit; one buffer corresponds to one text
|
||||
being edited. You normally have several buffers, but at any time you are
|
||||
editing only one, the `current buffer', though several can be visible
|
||||
editing only one, the ``current buffer'', though several can be visible
|
||||
when you are using multiple windows or frames (q.v.). Most buffers
|
||||
are visiting (q.v.@:) some file. @xref{Buffers}.
|
||||
|
||||
|
@ -265,7 +265,7 @@ normally (but see @ref{Glossary---Truncation}) takes up more than one
|
|||
screen line when displayed. We say that the text line is continued, and all
|
||||
screen lines used for it after the first are called continuation
|
||||
lines. @xref{Continuation Lines}. A related Emacs feature is
|
||||
`filling' (q.v.).
|
||||
``filling'' (q.v.).
|
||||
|
||||
@item Control Character
|
||||
A control character is a character that you type by holding down the
|
||||
|
@ -310,8 +310,8 @@ between defuns, the current defun is the one that follows point.
|
|||
The cursor is the rectangle on the screen which indicates the position
|
||||
(called point; q.v.@:) at which insertion and deletion takes place.
|
||||
The cursor is on or under the character that follows point. Often
|
||||
people speak of `the cursor' when, strictly speaking, they mean
|
||||
`point'. @xref{Point,Cursor}.
|
||||
people speak of ``the cursor'' when, strictly speaking, they mean
|
||||
``point''. @xref{Point,Cursor}.
|
||||
|
||||
@item Customization
|
||||
Customization is making minor changes in the way Emacs works, to
|
||||
|
@ -351,7 +351,7 @@ it is interpreted relative to the current buffer's default directory.
|
|||
|
||||
@item Defun
|
||||
A defun is a major definition at the top level in a program. The name
|
||||
`defun' comes from Lisp, where most such definitions use the construct
|
||||
``defun'' comes from Lisp, where most such definitions use the construct
|
||||
@code{defun}. @xref{Defuns}.
|
||||
|
||||
@item @key{DEL}
|
||||
|
@ -405,7 +405,7 @@ confirmation. The usual reason for disabling a command is that it is
|
|||
confusing for beginning users. @xref{Disabling}.
|
||||
|
||||
@item Down Event
|
||||
Short for `button down event' (q.v.).
|
||||
Short for ``button down event'' (q.v.).
|
||||
|
||||
@item Drag Event
|
||||
A drag event is the kind of input event (q.v.@:) generated when you
|
||||
|
@ -598,7 +598,7 @@ correspond to any character. @xref{Function Keys}.
|
|||
@item Global
|
||||
Global means ``independent of the current environment; in effect
|
||||
throughout Emacs''. It is the opposite of local (q.v.). Particular
|
||||
examples of the use of `global' appear below.
|
||||
examples of the use of ``global'' appear below.
|
||||
|
||||
@item Global Abbrev
|
||||
A global definition of an abbrev (q.v.@:) is effective in all major
|
||||
|
@ -824,8 +824,8 @@ lists. @xref{Moving by Parens}.
|
|||
@item Local
|
||||
Local means ``in effect only in a particular context''; the relevant
|
||||
kind of context is a particular function execution, a particular
|
||||
buffer, or a particular major mode. It is the opposite of `global'
|
||||
(q.v.). Specific uses of `local' in Emacs terminology appear below.
|
||||
buffer, or a particular major mode. It is the opposite of ``global''
|
||||
(q.v.). Specific uses of ``local'' in Emacs terminology appear below.
|
||||
|
||||
@item Local Abbrev
|
||||
A local abbrev definition is effective only if a particular major mode
|
||||
|
@ -848,7 +848,7 @@ one of the modifier keys that can accompany any character.
|
|||
|
||||
@item @kbd{M-C-}
|
||||
@kbd{M-C-} in the name of a character is an abbreviation for
|
||||
Control-Meta; it means the same thing as `@kbd{C-M-}' (q.v.).
|
||||
Control-Meta; it means the same thing as @kbd{C-M-} (q.v.).
|
||||
|
||||
@item @kbd{M-x}
|
||||
@kbd{M-x} is the key sequence that is used to call an Emacs command by
|
||||
|
@ -1121,7 +1121,7 @@ Many commands operate on the text of the region. @xref{Mark,Region}.
|
|||
@item Register
|
||||
Registers are named slots in which text, buffer positions, or
|
||||
rectangles can be saved for later use. @xref{Registers}. A related
|
||||
Emacs feature is `bookmarks' (q.v.).
|
||||
Emacs feature is ``bookmarks'' (q.v.).
|
||||
|
||||
@anchor{Glossary---Regular Expression}
|
||||
@item Regular Expression
|
||||
|
@ -1233,15 +1233,15 @@ Emacs has commands for moving by or killing by sentences.
|
|||
|
||||
@anchor{Glossary---Server}
|
||||
@item Server
|
||||
Within Emacs, you can start a `server' process, which listens for
|
||||
connections from `clients'. This offers a faster alternative to
|
||||
Within Emacs, you can start a ``server'' process, which listens for
|
||||
connections from ``clients''. This offers a faster alternative to
|
||||
starting several Emacs instances. @xref{Emacs Server}, and
|
||||
@ref{Glossary---Daemon}.
|
||||
|
||||
@c This is only covered in the lispref, not the user manual.
|
||||
@ignore
|
||||
@item Session Manager
|
||||
Some window systems (q.v.@:) provide a tool called a `session manager'.
|
||||
Some window systems (q.v.@:) provide a tool called a ``session manager''.
|
||||
This offers the ability to save your windows when you log off,
|
||||
and restore them after you log in again.
|
||||
@end ignore
|
||||
|
@ -1250,7 +1250,7 @@ and restore them after you log in again.
|
|||
A sexp (short for ``s-expression'') is the basic syntactic unit of
|
||||
Lisp in its textual form: either a list, or Lisp atom. Sexps are also
|
||||
the balanced expressions (q.v.@:) of the Lisp language; this is why
|
||||
the commands for editing balanced expressions have `sexp' in their
|
||||
the commands for editing balanced expressions have @samp{sexp} in their
|
||||
name. @xref{Expressions,Sexps}.
|
||||
|
||||
@item Simultaneous Editing
|
||||
|
@ -1327,7 +1327,7 @@ Emacs does not make a termscript file unless you tell it to.
|
|||
@xref{Bugs}.
|
||||
|
||||
@item Text
|
||||
`Text' has two meanings (@pxref{Text}):
|
||||
``Text'' has two meanings (@pxref{Text}):
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
|
@ -1420,7 +1420,7 @@ that you can customize Emacs by setting it to a new value.
|
|||
@item Variable
|
||||
A variable is an object in Lisp that can store an arbitrary value.
|
||||
Emacs uses some variables for internal purposes, and has others (known
|
||||
as `user options'; q.v.@:) just so that you can set their values to
|
||||
as ``user options''; q.v.@:) just so that you can set their values to
|
||||
control the behavior of Emacs. The variables used in Emacs that you
|
||||
are likely to be interested in are listed in the Variables Index in
|
||||
this manual (@pxref{Variable Index}). @xref{Variables}, for
|
||||
|
@ -1448,7 +1448,7 @@ Emacs divides a frame (q.v.@:) into one or more windows, each of which
|
|||
can display the contents of one buffer (q.v.@:) at any time.
|
||||
@xref{Screen}, for basic information on how Emacs uses the screen.
|
||||
@xref{Windows}, for commands to control the use of windows. Some
|
||||
other editors use the term ``window'' for what we call a `frame'
|
||||
other editors use the term ``window'' for what we call a ``frame''
|
||||
(q.v.@:) in Emacs.
|
||||
|
||||
@item Window System
|
||||
|
|
|
@ -83,7 +83,7 @@ memory, because they are the easiest machines to make it run on. The extra
|
|||
effort to make it run on smaller machines will be left to someone who wants
|
||||
to use it on them.
|
||||
|
||||
To avoid horrible confusion, please pronounce the `G' in the word `GNU'
|
||||
To avoid horrible confusion, please pronounce the ``G'' in the word ``GNU''
|
||||
when it is the name of this project.
|
||||
|
||||
@unnumberedsec Why I Must Write GNU
|
||||
|
|
|
@ -198,7 +198,7 @@ are always displayed as empty spaces extending to the next
|
|||
@dfn{display tab stop}. @xref{Text Display}.
|
||||
|
||||
@node Just Spaces
|
||||
@section Tabs vs. Spaces
|
||||
@section Tabs vs.@: Spaces
|
||||
|
||||
@vindex tab-width
|
||||
Normally, indentation commands insert (or remove) an optimal mix of
|
||||
|
|
|
@ -190,7 +190,7 @@ font are stored in the variables @code{ns-input-font} and
|
|||
|
||||
@item ns-power-off
|
||||
This event occurs when the user logs out and Emacs is still running, or when
|
||||
`Quit Emacs' is chosen from the application menu.
|
||||
``Quit Emacs'' is chosen from the application menu.
|
||||
The default behavior is to save all file-visiting buffers.
|
||||
@end table
|
||||
|
||||
|
|
|
@ -188,7 +188,7 @@ basic editing operations under Bazaar.
|
|||
@cindex src
|
||||
@item
|
||||
SRC (src) is RCS, reloaded - a specialized version-control system
|
||||
designed for single-file projects worked on by only one person. It
|
||||
designed for single-file projects worked on by only one person. It
|
||||
allows multiple files with independent version-control histories to
|
||||
exist in one directory, and is thus particularly well suited for
|
||||
maintaining small documents, scripts, and dotfiles. While it uses RCS
|
||||
|
@ -1570,7 +1570,7 @@ dated in May 1993, with two items and one item respectively.
|
|||
@smallexample
|
||||
1993-05-25 Richard Stallman <rms@@gnu.org>
|
||||
|
||||
* man.el: Rename symbols `man-*' to `Man-*'.
|
||||
* man.el: Rename symbols 'man-*' to 'Man-*'.
|
||||
(manual-entry): Make prompt string clearer.
|
||||
|
||||
* simple.el (blink-matching-paren-distance):
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
# Where to find the source code. The source code for Emacs's C kernel is
|
||||
# expected to be in $(srcdir)/src, and the source code for Emacs's
|
||||
# utility programs is expected to be in $(srcdir)/lib-src. This is
|
||||
# set by the configure script's `--srcdir' option.
|
||||
# set by the configure script's '--srcdir' option.
|
||||
srcdir=.
|
||||
|
||||
infodir = $(srcdir)/../../info
|
||||
|
@ -36,7 +36,7 @@ INFO_TARGETS = $(infodir)/emacs$(INFO_EXT)
|
|||
DVI_TARGETS = emacs.dvi
|
||||
INFOSOURCES = info.texi
|
||||
|
||||
# The following rule does not work with all versions of `make'.
|
||||
# The following rule does not work with all versions of 'make'.
|
||||
.SUFFIXES: .texi .dvi
|
||||
.texi.dvi:
|
||||
texi2dvi $<
|
||||
|
|
|
@ -787,15 +787,10 @@ also change the coding system for a running subshell by typing
|
|||
Coding}.
|
||||
|
||||
@cindex @env{INSIDE_EMACS} environment variable
|
||||
@cindex @env{EMACS} environment variable
|
||||
Emacs sets the environment variable @env{INSIDE_EMACS} in the
|
||||
subshell to @samp{@var{version},comint}, where @var{version} is the
|
||||
Emacs version (e.g., @samp{24.1}). Programs can check this variable
|
||||
to determine whether they are running inside an Emacs subshell. (It
|
||||
also sets the @env{EMACS} environment variable to @code{t}, if that
|
||||
environment variable is not already defined. However, this
|
||||
environment variable is deprecated; programs that use it should switch
|
||||
to using @env{INSIDE_EMACS} instead.)
|
||||
to determine whether they are running inside an Emacs subshell.
|
||||
|
||||
@node Shell Mode
|
||||
@subsection Shell Mode
|
||||
|
@ -2124,13 +2119,14 @@ to @code{sort-numeric-base}, but numbers beginning with @samp{0x} or
|
|||
|
||||
@item M-x sort-columns
|
||||
Like @kbd{M-x sort-fields} except that the text within each line
|
||||
used for comparison comes from a fixed range of columns. See below
|
||||
for an explanation.
|
||||
used for comparison comes from a fixed range of columns. With a
|
||||
prefix argument, sort in reverse order. See below for more details
|
||||
on this command.
|
||||
|
||||
@findex reverse-region
|
||||
@item M-x reverse-region
|
||||
Reverse the order of the lines in the region. This is useful for
|
||||
sorting into descending order by fields or columns, since those sort
|
||||
sorting into descending order by fields, since those sort
|
||||
commands do not have a feature for doing that.
|
||||
@end table
|
||||
|
||||
|
|
|
@ -843,9 +843,9 @@ show-paren-mode}.
|
|||
Electric Pair mode, a global minor mode, provides a way to easily
|
||||
insert matching delimiters. Whenever you insert an opening delimiter,
|
||||
the matching closing delimiter is automatically inserted as well,
|
||||
leaving point between the two. Conversely, when you insert a closing
|
||||
leaving point between the two. Conversely, when you insert a closing
|
||||
delimiter over an existing one, no inserting takes places and that
|
||||
position is simply skipped over. These variables control additional
|
||||
position is simply skipped over. These variables control additional
|
||||
features of Electric Pair mode:
|
||||
|
||||
@itemize @bullet
|
||||
|
|
|
@ -1004,10 +1004,10 @@ Here is a list of these commands:
|
|||
|
||||
@table @kbd
|
||||
@item n
|
||||
Move to next line, skipping lines saying `deleted', and select its
|
||||
Move to next line, skipping lines saying ``deleted'', and select its
|
||||
message (@code{rmail-summary-next-msg}).
|
||||
@item p
|
||||
Move to previous line, skipping lines saying `deleted', and select
|
||||
Move to previous line, skipping lines saying ``deleted'', and select
|
||||
its message (@code{rmail-summary-previous-msg}).
|
||||
@item M-n
|
||||
Move to next line and select its message (@code{rmail-summary-next-all}).
|
||||
|
|
|
@ -24,7 +24,7 @@ thing, but search for patterns instead of fixed strings.
|
|||
* Symbol Search:: Search for a source code symbol.
|
||||
* Regexp Search:: Search for match for a regexp.
|
||||
* Regexps:: Syntax of regular expressions.
|
||||
* Regexp Backslash:: Regular expression constructs starting with `\'.
|
||||
* Regexp Backslash:: Regular expression constructs starting with '\'.
|
||||
* Regexp Example:: A complex regular expression explained.
|
||||
* Search Case:: To ignore case while searching, or not.
|
||||
* Replace:: Search, and replace some or all matches.
|
||||
|
|
|
@ -146,7 +146,7 @@ Emacs.
|
|||
|
||||
@menu
|
||||
* DEL Does Not Delete:: What to do if @key{DEL} doesn't delete.
|
||||
* Stuck Recursive:: `[...]' in mode line around the parentheses.
|
||||
* Stuck Recursive:: '[...]' in mode line around the parentheses.
|
||||
* Screen Garbled:: Garbage on the screen.
|
||||
* Text Garbled:: Garbage in the text.
|
||||
* Memory Full:: How to cope when you run out of memory.
|
||||
|
@ -743,7 +743,7 @@ unmodified Emacs. But if you've made modifications and you don't tell
|
|||
us, you are sending us on a wild goose chase.)
|
||||
|
||||
Be precise about these changes. A description in English is not
|
||||
enough---send a context diff for them.
|
||||
enough---send a unified context diff for them.
|
||||
|
||||
Adding files of your own, or porting to another machine, is a
|
||||
modification of the source.
|
||||
|
@ -1131,13 +1131,12 @@ is important.
|
|||
@item
|
||||
The patch itself.
|
||||
|
||||
Use @samp{diff -c} to make your diffs. Diffs without context are hard
|
||||
Use @samp{diff -u} to make your diffs. Diffs without context are hard
|
||||
to install reliably. More than that, they are hard to study; we must
|
||||
always study a patch to decide whether we want to install it. Unidiff
|
||||
format is better than contextless diffs, but not as easy to read as
|
||||
@samp{-c} format.
|
||||
always study a patch to decide whether we want to install it. Context
|
||||
format is better than contextless diffs, but we prefer we unified format.
|
||||
|
||||
If you have GNU diff, use @samp{diff -c -F'^[_a-zA-Z0-9$]+ *('} when
|
||||
If you have GNU diff, use @samp{diff -u -F'^[_a-zA-Z0-9$]\+ *('} when
|
||||
making diffs of C code. This shows the name of the function that each
|
||||
change occurs in.
|
||||
|
||||
|
@ -1171,7 +1170,7 @@ feel that the purpose needs explaining, it probably does---but put the
|
|||
explanation in comments in the code. It will be more useful there.
|
||||
|
||||
Please look at the change log entries of recent commits to see what
|
||||
sorts of information to put in, and to learn the style that we use. Note that,
|
||||
sorts of information to put in, and to learn the style that we use. Note that,
|
||||
unlike some other projects, we do require change logs for
|
||||
documentation, i.e., Texinfo files.
|
||||
@xref{Change Log},
|
||||
|
@ -1280,7 +1279,7 @@ See the Emacs project page
|
|||
It is important to write your patch based on the current working
|
||||
version. If you start from an older version, your patch may be
|
||||
outdated (so that maintainers will have a hard time applying it), or
|
||||
changes in Emacs may have made your patch unnecessary. After you have
|
||||
changes in Emacs may have made your patch unnecessary. After you have
|
||||
downloaded the repository source, you should read the file
|
||||
@file{INSTALL.REPO} for build instructions (they differ to some extent
|
||||
from a normal build).
|
||||
|
|
|
@ -59,7 +59,7 @@ As above, but only find entries for the current buffer's file.
|
|||
For example, suppose the first line of @file{ChangeLog} is dated
|
||||
1999-04-10, and that the only check-in since then was by Nathaniel
|
||||
Bowditch to @file{rcs2log} on 1999-05-22 with log entry @samp{Ignore
|
||||
log messages that start with `#'.}. Then @kbd{C-x v a} inserts this
|
||||
log messages that start with '#'.}. Then @kbd{C-x v a} inserts this
|
||||
@file{ChangeLog} entry:
|
||||
|
||||
@iftex
|
||||
|
@ -69,7 +69,7 @@ log messages that start with `#'.}. Then @kbd{C-x v a} inserts this
|
|||
@group
|
||||
1999-05-22 Nathaniel Bowditch <nat@@apn.org>
|
||||
|
||||
* rcs2log: Ignore log messages that start with `#'.
|
||||
* rcs2log: Ignore log messages that start with '#'.
|
||||
@end group
|
||||
@end smallexample
|
||||
@iftex
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -50,7 +50,7 @@
|
|||
2015-03-02 Daniel Colascione <dancol@dancol.org>
|
||||
|
||||
* control.texi (Generators): New section
|
||||
* elisp.text: Reference new section.
|
||||
* elisp.texi: Reference new section.
|
||||
|
||||
2015-02-28 Eli Zaretskii <eliz@gnu.org>
|
||||
|
|
@ -21,15 +21,15 @@ Buying a manual from the Free Software Foundation helps support our GNU
|
|||
development work. See <http://shop.fsf.org/>.
|
||||
(At time of writing, this manual is out of print.)
|
||||
|
||||
* The master file for formatting this manual for Tex is called `elisp.texi'.
|
||||
* The master file for formatting this manual for Tex is called 'elisp.texi'.
|
||||
It contains @include commands to include all the chapters that make up
|
||||
the manual.
|
||||
|
||||
* This distribution contains a Makefile that you can use with GNU Make.
|
||||
|
||||
** To make an Info file, you need to install Texinfo, then run `make info'.
|
||||
** To make an Info file, you need to install Texinfo, then run 'make info'.
|
||||
|
||||
** Use `make elisp.pdf' or `make elisp.html' to create PDF or HTML versions.
|
||||
** Use 'make elisp.pdf' or 'make elisp.html' to create PDF or HTML versions.
|
||||
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
|
|
@ -844,7 +844,7 @@ names start with a space are not considered at all.
|
|||
|
||||
If @var{buffer} is not supplied (or if it is not a live buffer), then
|
||||
@code{other-buffer} returns the first buffer in the selected frame's
|
||||
local buffer list. (If @var{frame} is non-@code{nil}, it returns the
|
||||
local buffer list. (If @var{frame} is non-@code{nil}, it returns the
|
||||
first buffer in @var{frame}'s local buffer list instead.)
|
||||
|
||||
If @var{frame} has a non-@code{nil} @code{buffer-predicate} parameter,
|
||||
|
|
|
@ -1462,7 +1462,7 @@ the symbols @code{handle} (the scroll bar handle), @code{above-handle}
|
|||
(the area above the handle), @code{below-handle} (the area below the
|
||||
handle), @code{up} (the up arrow at one end of the scroll bar), or
|
||||
@code{down} (the down arrow at one end of the scroll bar).
|
||||
@c The `top', `bottom', and `end-scroll' codes don't seem to be used.
|
||||
@c The 'top', 'bottom', and 'end-scroll' codes don't seem to be used.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -1720,7 +1720,7 @@ occurred.
|
|||
|
||||
@vindex mouse-wheel-up-event
|
||||
@vindex mouse-wheel-down-event
|
||||
This kind of event is generated only on some kinds of systems. On some
|
||||
This kind of event is generated only on some kinds of systems. On some
|
||||
systems, @code{mouse-4} and @code{mouse-5} are used instead. For
|
||||
portable code, use the variables @code{mouse-wheel-up-event} and
|
||||
@code{mouse-wheel-down-event} defined in @file{mwheel.el} to determine
|
||||
|
@ -1856,7 +1856,7 @@ into another window. That produces a pair of events like these:
|
|||
@end smallexample
|
||||
|
||||
The frame with input focus might not take up the entire screen, and
|
||||
the user might move the mouse outside the scope of the frame. Inside
|
||||
the user might move the mouse outside the scope of the frame. Inside
|
||||
the @code{track-mouse} special form, that produces an event like this:
|
||||
|
||||
@smallexample
|
||||
|
|
|
@ -1025,7 +1025,7 @@ the circumstances of the error.
|
|||
|
||||
The argument @var{error-symbol} must be an @dfn{error symbol}---a symbol
|
||||
defined with @code{define-error}. This is how Emacs Lisp classifies different
|
||||
sorts of errors. @xref{Error Symbols}, for a description of error symbols,
|
||||
sorts of errors. @xref{Error Symbols}, for a description of error symbols,
|
||||
error conditions and condition names.
|
||||
|
||||
If the error is not handled, the two arguments are used in printing
|
||||
|
|
|
@ -842,7 +842,7 @@ symbols, and symbols are not treated like other Lisp expressions.
|
|||
|
||||
@item (radio @var{element-types}@dots{})
|
||||
This is similar to @code{choice}, except that the choices are displayed
|
||||
using `radio buttons' rather than a menu. This has the advantage of
|
||||
using ``radio buttons'' rather than a menu. This has the advantage of
|
||||
displaying documentation for the choices when applicable and so is often
|
||||
a good choice for a choice between constant functions
|
||||
(@code{function-item} customization types).
|
||||
|
|
|
@ -257,6 +257,9 @@ text properties (@pxref{Logging Messages}).
|
|||
In batch mode, the message is printed to the standard error stream,
|
||||
followed by a newline.
|
||||
|
||||
When @code{inhibit-message} is non-@code{nil}, no message will be displayed
|
||||
in the echo area, it will only be logged to @samp{*Messages*}.
|
||||
|
||||
If @var{format-string} is @code{nil} or the empty string,
|
||||
@code{message} clears the echo area; if the echo area has been
|
||||
expanded automatically, this brings it back to its normal size. If
|
||||
|
@ -282,6 +285,11 @@ To automatically display a message in the echo area or in a pop-buffer,
|
|||
depending on its size, use @code{display-message-or-buffer} (see below).
|
||||
@end defun
|
||||
|
||||
@defvar inhibit-message
|
||||
When this variable is non-@code{nil}, @code{message} and related functions
|
||||
will not use the Echo Area to display messages.
|
||||
@end defvar
|
||||
|
||||
@defmac with-temp-message message &rest body
|
||||
This construct displays a message in the echo area temporarily, during
|
||||
the execution of @var{body}. It displays @var{message}, executes
|
||||
|
@ -1310,6 +1318,7 @@ beginning and end. It also has properties that you can examine and set;
|
|||
these affect the display of the text within the overlay.
|
||||
|
||||
@cindex scalability of overlays
|
||||
@cindex overlays, scalability
|
||||
The visual effect of an overlay is the same as of the corresponding
|
||||
text property (@pxref{Text Properties}). However, due to a different
|
||||
implementation, overlays generally don't scale well (many operations
|
||||
|
@ -1351,6 +1360,15 @@ and @var{end} must specify buffer positions; they may be integers or
|
|||
markers. If @var{buffer} is omitted, the overlay is created in the
|
||||
current buffer.
|
||||
|
||||
@cindex empty overlay
|
||||
@cindex overlay, empty
|
||||
An overlay whose @var{start} and @var{end} specify the same buffer
|
||||
position is known as @dfn{empty}. A non-empty overlay can become
|
||||
empty if the text between its @var{start} and @var{end} is deleted.
|
||||
When that happens, the overlay is by default not deleted, but you can
|
||||
cause it to be deleted by giving it the @samp{evaporate} property
|
||||
(@pxref{Overlay Properties, evaporate property}).
|
||||
|
||||
The arguments @var{front-advance} and @var{rear-advance} specify the
|
||||
marker insertion type for the start of the overlay and for the end of
|
||||
the overlay, respectively. @xref{Marker Insertion Types}. If they
|
||||
|
@ -1720,8 +1738,11 @@ line at display-time. @xref{Truncation}.
|
|||
@kindex evaporate @r{(overlay property)}
|
||||
If this property is non-@code{nil}, the overlay is deleted automatically
|
||||
if it becomes empty (i.e., if its length becomes zero). If you give
|
||||
an empty overlay a non-@code{nil} @code{evaporate} property, that deletes
|
||||
it immediately.
|
||||
an empty overlay (@pxref{Managing Overlays, empty overlay}) a
|
||||
non-@code{nil} @code{evaporate} property, that deletes it immediately.
|
||||
Note that, unless an overlay has this property, it will not be deleted
|
||||
when the text between its starting and ending positions is deleted
|
||||
from the buffer.
|
||||
|
||||
@item keymap
|
||||
@cindex keymap of character (and overlays)
|
||||
|
@ -1777,10 +1798,10 @@ overlays that specify property @var{prop} for the character at point:
|
|||
This function returns a list of the overlays that overlap the region
|
||||
@var{beg} through @var{end}. ``Overlap'' means that at least one
|
||||
character is contained within the overlay and also contained within the
|
||||
specified region; however, empty overlays are included in the result if
|
||||
they are located at @var{beg}, strictly between @var{beg} and @var{end},
|
||||
or at @var{end} when @var{end} denotes the position at the end of the
|
||||
buffer.
|
||||
specified region; however, empty overlays (@pxref{Managing Overlays,
|
||||
empty overlay}) are included in the result if they are located at
|
||||
@var{beg}, strictly between @var{beg} and @var{end}, or at @var{end}
|
||||
when @var{end} denotes the position at the end of the buffer.
|
||||
@end defun
|
||||
|
||||
@defun next-overlay-change pos
|
||||
|
@ -2790,7 +2811,7 @@ then the new definition of the @code{mode-line} face inherits from the
|
|||
functions instead of setting @code{face-remapping-alist} directly, to
|
||||
avoid trampling on remappings applied elsewhere. These functions are
|
||||
intended for buffer-local remappings, so they all make
|
||||
@code{face-remapping-alist} buffer-local as a side-effect. They manage
|
||||
@code{face-remapping-alist} buffer-local as a side-effect. They manage
|
||||
@code{face-remapping-alist} entries of the form
|
||||
|
||||
@example
|
||||
|
@ -2820,11 +2841,11 @@ pass this object as an argument to @code{face-remap-remove-relative}
|
|||
if you need to remove the remapping later.
|
||||
|
||||
@example
|
||||
;; Remap the `escape-glyph' face into a combination
|
||||
;; of the `highlight' and `italic' faces:
|
||||
;; Remap the 'escape-glyph' face into a combination
|
||||
;; of the 'highlight' and 'italic' faces:
|
||||
(face-remap-add-relative 'escape-glyph 'highlight 'italic)
|
||||
|
||||
;; Increase the size of the `default' face by 50%:
|
||||
;; Increase the size of the 'default' face by 50%:
|
||||
(face-remap-add-relative 'default :height 1.5)
|
||||
@end example
|
||||
@end defun
|
||||
|
@ -4557,7 +4578,7 @@ not affect the amount of raising or lowering, which is based on the
|
|||
faces used for the text.
|
||||
@end table
|
||||
|
||||
@c We put all the `@code{(when ...)}' on one line to encourage
|
||||
@c We put all the '@code{(when ...)}' on one line to encourage
|
||||
@c makeinfo's end-of-sentence heuristics to DTRT. Previously, the dot
|
||||
@c was at eol; the info file ended up w/ two spaces rendered after it.
|
||||
You can make any display specification conditional. To do that,
|
||||
|
@ -5628,7 +5649,7 @@ so that it's easy to define special-purpose types of buttons for
|
|||
specific tasks.
|
||||
|
||||
@defun define-button-type name &rest properties
|
||||
Define a `button type' called @var{name} (a symbol).
|
||||
Define a ``button type'' called @var{name} (a symbol).
|
||||
The remaining arguments
|
||||
form a sequence of @var{property value} pairs, specifying default
|
||||
property values for buttons with this type (a button's type may be set
|
||||
|
@ -5781,7 +5802,7 @@ Return @code{t} if button-type @var{type} is a subtype of @var{supertype}.
|
|||
These are commands and functions for locating and operating on
|
||||
buttons in an Emacs buffer.
|
||||
|
||||
@code{push-button} is the command that a user uses to actually `push'
|
||||
@code{push-button} is the command that a user uses to actually ``push''
|
||||
a button, and is bound by default in the button itself to @key{RET}
|
||||
and to @key{mouse-2} using a local keymap in the button's overlay or
|
||||
text properties. Commands that are useful outside the buttons itself,
|
||||
|
@ -6643,7 +6664,7 @@ Non-@acronym{ASCII}, non-printing characters @code{U+0080} to
|
|||
@samp{\230}).
|
||||
|
||||
@item format-control
|
||||
Characters of Unicode General Category `Cf', such as @samp{U+200E}
|
||||
Characters of Unicode General Category ``Cf'', such as @samp{U+200E}
|
||||
(Left-to-Right Mark), but excluding characters that have graphic
|
||||
images, such as @samp{U+00AD} (Soft Hyphen).
|
||||
|
||||
|
@ -6652,9 +6673,9 @@ Characters for there is no suitable font, or which cannot be encoded
|
|||
by the terminal's coding system.
|
||||
@end table
|
||||
|
||||
@c FIXME: this can also be `acronym', but that's not currently
|
||||
@c FIXME: this can also be 'acronym', but that's not currently
|
||||
@c completely implemented; it applies only to the format-control
|
||||
@c group, and only works if the acronym is in `char-acronym-table'.
|
||||
@c group, and only works if the acronym is in 'char-acronym-table'.
|
||||
The @var{method} symbol should be one of @code{zero-width},
|
||||
@code{thin-space}, @code{empty-box}, or @code{hex-code}. These have
|
||||
the same meanings as in @code{glyphless-char-display}, above.
|
||||
|
|
|
@ -247,9 +247,9 @@ Appendices
|
|||
@end ignore
|
||||
|
||||
@c Do NOT modify the following 3 lines! They must have this form to
|
||||
@c be correctly identified by `texinfo-multiple-files-update'. In
|
||||
@c be correctly identified by 'texinfo-multiple-files-update'. In
|
||||
@c particular, the detailed menu header line MUST be identical to the
|
||||
@c value of `texinfo-master-menu-header'. See texnfo-upd.el.
|
||||
@c value of 'texinfo-master-menu-header'. See texnfo-upd.el.
|
||||
|
||||
@detailmenu
|
||||
--- The Detailed Node Listing ---
|
||||
|
|
|
@ -423,7 +423,7 @@ To do so, execute the following code:
|
|||
You might wish to save the file modes value returned by
|
||||
@code{backup-buffer} and use that (if non-@code{nil}) to set the mode
|
||||
bits of the file that you write. This is what @code{save-buffer}
|
||||
normally does. @xref{Making Backups,, Making Backup Files}.
|
||||
normally does. @xref{Making Backups,, Making Backup Files}.
|
||||
|
||||
The hook functions in @code{write-file-functions} are also responsible
|
||||
for encoding the data (if desired): they must choose a suitable coding
|
||||
|
@ -3352,8 +3352,8 @@ from the buffer is actually written to the file, it intermixes the
|
|||
specified annotations at the corresponding positions. All this takes
|
||||
place without modifying the buffer.
|
||||
|
||||
@c ??? What about ``overriding'' conversions like those allowed
|
||||
@c ??? for `write-region-annotate-functions', below? --ttn
|
||||
@c ??? What about "overriding" conversions like those allowed
|
||||
@c ??? for 'write-region-annotate-functions', below? --ttn
|
||||
|
||||
In contrast, when reading, the annotations intermixed with the text
|
||||
are handled immediately. @code{insert-file-contents} sets point to
|
||||
|
@ -3406,8 +3406,8 @@ with one argument, the number of characters inserted, and with point
|
|||
at the beginning of the inserted text. Each function should leave
|
||||
point unchanged, and return the new character count describing the
|
||||
inserted text as modified by the function.
|
||||
@c ??? The docstring mentions a handler from `file-name-handler-alist'
|
||||
@c "intercepting" `insert-file-contents'. Hmmm. --ttn
|
||||
@c ??? The docstring mentions a handler from 'file-name-handler-alist'
|
||||
@c "intercepting" 'insert-file-contents'. Hmmm. --ttn
|
||||
@end defvar
|
||||
|
||||
We invite users to write Lisp programs to store and retrieve text
|
||||
|
|
|
@ -2693,7 +2693,7 @@ This function returns @code{t} if the screen can display shades of gray.
|
|||
This function returns non-@code{nil} if all the face attributes in
|
||||
@var{attributes} are supported (@pxref{Face Attributes}).
|
||||
|
||||
The definition of `supported' is somewhat heuristic, but basically
|
||||
The definition of ``supported'' is somewhat heuristic, but basically
|
||||
means that a face containing all the attributes in @var{attributes},
|
||||
when merged with the default face for display, can be represented in a
|
||||
way that's
|
||||
|
@ -2703,14 +2703,14 @@ way that's
|
|||
different in appearance than the default face, and
|
||||
|
||||
@item
|
||||
`close in spirit' to what the attributes specify, if not exact.
|
||||
``close in spirit'' to what the attributes specify, if not exact.
|
||||
@end enumerate
|
||||
|
||||
Point (2) implies that a @code{:weight black} attribute will be
|
||||
satisfied by any display that can display bold, as will
|
||||
@code{:foreground "yellow"} as long as some yellowish color can be
|
||||
displayed, but @code{:slant italic} will @emph{not} be satisfied by
|
||||
the tty display code's automatic substitution of a `dim' face for
|
||||
the tty display code's automatic substitution of a ``dim'' face for
|
||||
italic.
|
||||
@end defun
|
||||
|
||||
|
|
|
@ -154,7 +154,7 @@ This is equivalent to @code{make-hash-table}, but with a different style
|
|||
argument list. The argument @var{test} specifies the method
|
||||
of key lookup.
|
||||
|
||||
This function is obsolete. Use @code{make-hash-table} instead.
|
||||
This function is obsolete. Use @code{make-hash-table} instead.
|
||||
@end defun
|
||||
|
||||
You can also create a new hash table using the printed representation
|
||||
|
|
|
@ -171,7 +171,7 @@ several symbols in a @file{*Help*} buffer.
|
|||
(defun describe-symbols (pattern)
|
||||
"Describe the Emacs Lisp symbols matching PATTERN.
|
||||
All symbols that have PATTERN in their name are described
|
||||
in the `*Help*' buffer."
|
||||
in the *Help* buffer."
|
||||
(interactive "sDescribe symbols matching: ")
|
||||
(let ((describe-func
|
||||
(function
|
||||
|
|
|
@ -898,14 +898,14 @@ DEFUN ("coordinates-in-window-p", Fcoordinates_in_window_p,
|
|||
@group
|
||||
switch (coordinates_in_window (w, x, y))
|
||||
@{
|
||||
case ON_NOTHING: /* NOT in window at all. */
|
||||
case ON_NOTHING: /* NOT in window at all. */
|
||||
return Qnil;
|
||||
@end group
|
||||
|
||||
...
|
||||
|
||||
@group
|
||||
case ON_MODE_LINE: /* In mode line of window. */
|
||||
case ON_MODE_LINE: /* In mode line of window. */
|
||||
return Qmode_line;
|
||||
@end group
|
||||
|
||||
|
@ -1317,8 +1317,8 @@ except to shape their child windows. Emacs Lisp programs usually have
|
|||
no access to the parent windows; they operate on the windows at the
|
||||
leaves of the tree, which actually display buffers.
|
||||
|
||||
@c FIXME: These two slots and the `buffer' slot below were replaced
|
||||
@c with a single slot `contents' on 2013-03-28. --xfq
|
||||
@c FIXME: These two slots and the 'buffer' slot below were replaced
|
||||
@c with a single slot 'contents' on 2013-03-28. --xfq
|
||||
@item hchild
|
||||
@itemx vchild
|
||||
These fields contain the window's leftmost child and its topmost child
|
||||
|
|
|
@ -76,7 +76,7 @@ If Auto Compression mode is enabled, as it is by default, then if
|
|||
of the file before trying other file names. It decompresses and loads
|
||||
it if it exists. It looks for compressed versions by appending each
|
||||
of the suffixes in @code{jka-compr-load-suffixes} to the file name.
|
||||
The value of this variable must be a list of strings. Its standard
|
||||
The value of this variable must be a list of strings. Its standard
|
||||
value is @code{(".gz")}.
|
||||
|
||||
If the optional argument @var{nosuffix} is non-@code{nil}, then
|
||||
|
|
|
@ -31,7 +31,7 @@ texinfodir = $(srcdir)/../misc
|
|||
INFO_EXT=.info
|
||||
INFO_OPTS=--no-split
|
||||
|
||||
# Redefine `TEX' if `tex' does not invoke plain TeX. For example:
|
||||
# Redefine 'TEX' if 'tex' does not invoke plain TeX. For example:
|
||||
# TEX=platex
|
||||
TEX=tex
|
||||
INSTALL_INFO = install-info
|
||||
|
@ -102,7 +102,7 @@ srcs = \
|
|||
|
||||
.PHONY: clean
|
||||
|
||||
# The info file is named `elisp'.
|
||||
# The info file is named 'elisp'.
|
||||
|
||||
info: $(infodir)/elisp$(INFO_EXT)
|
||||
|
||||
|
|
|
@ -287,8 +287,8 @@ This function returns the position that @var{marker} points to, or
|
|||
This function returns the buffer that @var{marker} points into, or
|
||||
@code{nil} if it points nowhere.
|
||||
|
||||
@c FIXME: The `buffer' argument of `set-marker' already defaults to
|
||||
@c the current buffer, why use `(current-buffer)' explicitly here?
|
||||
@c FIXME: The 'buffer' argument of 'set-marker' already defaults to
|
||||
@c the current buffer, why use '(current-buffer)' explicitly here?
|
||||
@example
|
||||
@group
|
||||
(setq m (make-marker))
|
||||
|
@ -712,4 +712,3 @@ A region is valid if it has a non-zero size, or if the user option
|
|||
cases, you should not use @code{region-active-p}, since if the region
|
||||
is empty it is often more appropriate to operate on point.
|
||||
@end defun
|
||||
|
||||
|
|
|
@ -749,7 +749,7 @@ The new mode has its own abbrev table, kept in the variable
|
|||
@item
|
||||
The new mode has its own mode hook, @code{@var{variant}-hook}. It
|
||||
runs this hook, after running the hooks of its ancestor modes, with
|
||||
@code{run-mode-hooks}, as the last thing it does. @xref{Mode Hooks}.
|
||||
@code{run-mode-hooks}, as the last thing it does. @xref{Mode Hooks}.
|
||||
@end itemize
|
||||
|
||||
In addition, you can specify how to override other aspects of
|
||||
|
@ -1122,7 +1122,7 @@ the conventions listed above:
|
|||
(let ((st (make-syntax-table)))
|
||||
(modify-syntax-entry ?\" ". " st)
|
||||
(modify-syntax-entry ?\\ ". " st)
|
||||
;; Add `p' so M-c on `hello' leads to `Hello', not `hello'.
|
||||
;; Add 'p' so M-c on 'hello' leads to 'Hello', not 'hello'.
|
||||
(modify-syntax-entry ?' "w p" st)
|
||||
st)
|
||||
"Syntax table used while in `text-mode'.")
|
||||
|
@ -3425,7 +3425,7 @@ provided grammar is precise enough, @code{transpose-sexps} can correctly
|
|||
transpose the two arguments of a @code{+} operator, taking into account
|
||||
the precedence rules of the language.
|
||||
|
||||
Calling `smie-setup' is also sufficient to make TAB indentation work in
|
||||
Calling @code{smie-setup} is also sufficient to make TAB indentation work in
|
||||
the expected way, extends @code{blink-matching-paren} to apply to
|
||||
elements like @code{begin...end}, and provides some commands that you
|
||||
can bind in the major mode keymap.
|
||||
|
@ -3874,7 +3874,7 @@ of instructions (enclosed in a @code{@{...@}} or @code{begin...end}
|
|||
block).
|
||||
|
||||
@var{method} should be the method name that was passed to
|
||||
`smie-rules-function'.
|
||||
@code{smie-rules-function}.
|
||||
@end defun
|
||||
|
||||
@node SMIE Indentation Example
|
||||
|
|
|
@ -248,7 +248,7 @@ unibyte string, it is returned unchanged. Use this function for
|
|||
characters.
|
||||
@end defun
|
||||
|
||||
@c FIXME: Should `@var{character}' be `@var{byte}'?
|
||||
@c FIXME: Should '@var{character}' be '@var{byte}'?
|
||||
@defun byte-to-string byte
|
||||
@cindex byte to string
|
||||
This function returns a unibyte string containing a single byte of
|
||||
|
@ -1375,7 +1375,7 @@ alternatives described above.
|
|||
|
||||
The optional argument @var{accept-default-p}, if non-@code{nil},
|
||||
should be a function to determine whether a coding system selected
|
||||
without user interaction is acceptable. @code{select-safe-coding-system}
|
||||
without user interaction is acceptable. @code{select-safe-coding-system}
|
||||
calls this function with one argument, the base coding system of the
|
||||
selected coding system. If @var{accept-default-p} returns @code{nil},
|
||||
@code{select-safe-coding-system} rejects the silently selected coding
|
||||
|
@ -1437,7 +1437,7 @@ don't change these variables; instead, override them using
|
|||
@cindex file contents, and default coding system
|
||||
@defopt auto-coding-regexp-alist
|
||||
This variable is an alist of text patterns and corresponding coding
|
||||
systems. Each element has the form @code{(@var{regexp}
|
||||
systems. Each element has the form @code{(@var{regexp}
|
||||
. @var{coding-system})}; a file whose first few kilobytes match
|
||||
@var{regexp} is decoded with @var{coding-system} when its contents are
|
||||
read into a buffer. The settings in this alist take priority over
|
||||
|
|
|
@ -595,8 +595,8 @@ FOO ; @r{A symbol named @samp{FOO}, different from @samp{foo}.}
|
|||
|
||||
@cindex @samp{##} read syntax
|
||||
@ifinfo
|
||||
@c This uses ``colon'' instead of a literal `:' because Info cannot
|
||||
@c cope with a `:' in a menu
|
||||
@c This uses "colon" instead of a literal ':' because Info cannot
|
||||
@c cope with a ':' in a menu.
|
||||
@cindex @samp{#@var{colon}} read syntax
|
||||
@end ifinfo
|
||||
@ifnotinfo
|
||||
|
@ -999,7 +999,7 @@ of a string returns the same string.
|
|||
The read syntax for a string is a double-quote, an arbitrary number
|
||||
of characters, and another double-quote, @code{"like this"}. To
|
||||
include a double-quote in a string, precede it with a backslash; thus,
|
||||
@code{"\""} is a string containing just a single double-quote
|
||||
@code{"\""} is a string containing just one double-quote
|
||||
character. Likewise, you can include a backslash by preceding it with
|
||||
another backslash, like this: @code{"this \\ is a single embedded
|
||||
backslash"}.
|
||||
|
|
|
@ -974,7 +974,7 @@ to access the value of @var{variable}. If @var{value} is omitted or
|
|||
removes @var{variable} from the environment. Otherwise, @var{value}
|
||||
should be a string.
|
||||
|
||||
@c FIXME: Document `substitute-env-vars'? --xfq
|
||||
@c FIXME: Document 'substitute-env-vars'? --xfq
|
||||
If the optional argument @var{substitute} is non-@code{nil}, Emacs
|
||||
calls the function @code{substitute-env-vars} to expand any
|
||||
environment variables in @var{value}.
|
||||
|
@ -2384,7 +2384,7 @@ The path to a sound file to play when the notification pops up.
|
|||
@item :sound-name @var{name}
|
||||
A themable named sound from the freedesktop.org sound naming
|
||||
specification from @samp{$XDG_DATA_DIRS/sounds}, to play when the
|
||||
notification pops up. Similar to the icon name, only for sounds. An
|
||||
notification pops up. Similar to the icon name, only for sounds. An
|
||||
example would be @samp{"message-new-instant"}.
|
||||
|
||||
@item :suppress-sound
|
||||
|
@ -2393,9 +2393,9 @@ ability.
|
|||
|
||||
@item :resident
|
||||
When set the server will not automatically remove the notification
|
||||
when an action has been invoked. The notification will remain resident
|
||||
when an action has been invoked. The notification will remain resident
|
||||
in the server until it is explicitly removed by the user or by the
|
||||
sender. This hint is likely only useful when the server has the
|
||||
sender. This hint is likely only useful when the server has the
|
||||
@code{:persistence} capability.
|
||||
|
||||
@item :transient
|
||||
|
|
|
@ -664,7 +664,7 @@ quotes are ignored.)
|
|||
This function moves forward out of @var{arg} (default 1) levels of
|
||||
parentheses. A negative argument means move backward but still to a
|
||||
less deep spot. If @var{escape-strings} is non-@code{nil} (as it is
|
||||
interactively), move out of enclosing strings as well. If
|
||||
interactively), move out of enclosing strings as well. If
|
||||
@var{no-syntax-crossing} is non-@code{nil} (as it is interactively), prefer
|
||||
to break out of any enclosing string instead of moving to the start of
|
||||
a list broken across multiple strings. On error, location of point is
|
||||
|
|
|
@ -196,7 +196,7 @@ Here's an example of using @code{shell-quote-argument} to construct
|
|||
a shell command:
|
||||
|
||||
@example
|
||||
(concat "diff -c "
|
||||
(concat "diff -u "
|
||||
(shell-quote-argument oldfile)
|
||||
" "
|
||||
(shell-quote-argument newfile))
|
||||
|
@ -739,6 +739,58 @@ If @var{stopped} is non-@code{nil}, start the process in the
|
|||
@item :filter @var{filter}
|
||||
Initialize the process filter to @var{filter}.
|
||||
|
||||
@item :sentinel @var{sentinel}
|
||||
Initialize the process sentinel to @var{sentinel}.
|
||||
|
||||
@item :stderr @var{stderr}
|
||||
Associate @var{stderr} with the standard error of the process.
|
||||
@var{stderr} is either a buffer or a pipe process created with
|
||||
@code{make-pipe-process}.
|
||||
@end table
|
||||
|
||||
The original argument list, modified with the actual connection
|
||||
information, is available via the @code{process-contact} function.
|
||||
@end defun
|
||||
|
||||
@defun make-pipe-process &rest args
|
||||
This function creates a bidirectional pipe which can be attached to a
|
||||
child process (currently only useful with the @code{:stderr} keyword
|
||||
of @code{make-process}).
|
||||
|
||||
The arguments @var{args} are a list of keyword/argument pairs.
|
||||
Omitting a keyword is always equivalent to specifying it with value
|
||||
@code{nil}, except for @code{:coding}.
|
||||
Here are the meaningful keywords:
|
||||
|
||||
@table @asis
|
||||
@item :name @var{name}
|
||||
Use the string @var{name} as the process name. It is modified if
|
||||
necessary to make it unique.
|
||||
|
||||
@item :buffer @var{buffer}
|
||||
Use @var{buffer} as the process buffer.
|
||||
|
||||
@item :coding @var{coding}
|
||||
If @var{coding} is a symbol, it specifies the coding system to be
|
||||
used for both reading and writing of data from and to the
|
||||
connection. If @var{coding} is a cons cell
|
||||
@w{@code{(@var{decoding} . @var{encoding})}}, then @var{decoding}
|
||||
will be used for reading and @var{encoding} for writing.
|
||||
|
||||
If @var{coding} is @code{nil}, the default rules for finding the
|
||||
coding system will apply. @xref{Default Coding Systems}.
|
||||
|
||||
@item :noquery @var{query-flag}
|
||||
Initialize the process query flag to @var{query-flag}.
|
||||
@xref{Query Before Exit}.
|
||||
|
||||
@item :stop @var{stopped}
|
||||
If @var{stopped} is non-@code{nil}, start the process in the
|
||||
``stopped'' state.
|
||||
|
||||
@item :filter @var{filter}
|
||||
Initialize the process filter to @var{filter}.
|
||||
|
||||
@item :sentinel @var{sentinel}
|
||||
Initialize the process sentinel to @var{sentinel}.
|
||||
@end table
|
||||
|
|
|
@ -558,8 +558,11 @@ This matches any @acronym{ASCII} control character.
|
|||
This matches @samp{0} through @samp{9}. Thus, @samp{[-+[:digit:]]}
|
||||
matches any digit, as well as @samp{+} and @samp{-}.
|
||||
@item [:graph:]
|
||||
This matches graphic characters---everything except @acronym{ASCII} control
|
||||
characters, space, and the delete character.
|
||||
This matches graphic characters---everything except whitespace,
|
||||
@acronym{ASCII} and non-@acronym{ASCII} control characters,
|
||||
surrogates, and codepoints unassigned by Unicode, as indicated by the
|
||||
Unicode @samp{general-category} property (@pxref{Character
|
||||
Properties}).
|
||||
@item [:lower:]
|
||||
This matches any lower-case letter, as determined by the current case
|
||||
table (@pxref{Case Tables}). If @code{case-fold-search} is
|
||||
|
@ -569,8 +572,8 @@ This matches any multibyte character (@pxref{Text Representations}).
|
|||
@item [:nonascii:]
|
||||
This matches any non-@acronym{ASCII} character.
|
||||
@item [:print:]
|
||||
This matches printing characters---everything except @acronym{ASCII} control
|
||||
characters and the delete character.
|
||||
This matches any printing character---either whitespace, or a graphic
|
||||
character matched by @samp{[:graph:]}.
|
||||
@item [:punct:]
|
||||
This matches any punctuation character. (At present, for multibyte
|
||||
characters, it matches anything that has non-word syntax.)
|
||||
|
|
|
@ -723,6 +723,35 @@ contain less elements than @var{n}. @var{n} must be an integer. If
|
|||
@end example
|
||||
@end defun
|
||||
|
||||
@defun seq-intersection sequence1 sequence2 &optional function
|
||||
This function returns a list of the elements that appear both in
|
||||
@var{sequence1} and @var{sequence2}. If the optional argument
|
||||
@var{function} is non-@code{nil}, it is a function of two arguments to
|
||||
use to compare elements instead of the default @code{equal}.
|
||||
|
||||
@example
|
||||
@group
|
||||
(seq-intersection [2 3 4 5] [1 3 5 6 7])
|
||||
@result{} (3 5)
|
||||
@end group
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
|
||||
@defun seq-difference sequence1 sequence2 &optional function
|
||||
This function returns a list of the elements that appear in
|
||||
@var{sequence1} but not in @var{sequence2}. If the optional argument
|
||||
@var{function} is non-@code{nil}, it is a function of two arguments to
|
||||
use to compare elements instead of the default @code{equal}.
|
||||
|
||||
@example
|
||||
@group
|
||||
(seq-difference '(2 3 4 5) [1 3 5 6 7])
|
||||
@result{} (2 4)
|
||||
@end group
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
@defun seq-group-by function sequence
|
||||
This function separates the elements of @var{sequence} into an alist
|
||||
whose keys are the result of applying @var{function} to each element
|
||||
|
@ -761,8 +790,7 @@ of type @var{type}. @var{type} can be one of the following symbols:
|
|||
@end example
|
||||
@end defun
|
||||
|
||||
|
||||
@defmac seq-doseq (var sequence [result]) body@dots{}
|
||||
@defmac seq-doseq (var sequence) body@dots{}
|
||||
@cindex sequence iteration
|
||||
This macro is like @code{dolist}, except that @var{sequence} can be a list,
|
||||
vector or string (@pxref{Iteration} for more information about the
|
||||
|
|
|
@ -956,12 +956,12 @@ is not truncated.
|
|||
|
||||
@example
|
||||
@group
|
||||
(format "The word `%7s' has %d letters in it."
|
||||
(format "The word '%7s' has %d letters in it."
|
||||
"foo" (length "foo"))
|
||||
@result{} "The word ` foo' has 3 letters in it."
|
||||
(format "The word `%7s' has %d letters in it."
|
||||
@result{} "The word ' foo' has 3 letters in it."
|
||||
(format "The word '%7s' has %d letters in it."
|
||||
"specification" (length "specification"))
|
||||
@result{} "The word `specification' has 13 letters in it."
|
||||
@result{} "The word 'specification' has 13 letters in it."
|
||||
@end group
|
||||
@end example
|
||||
|
||||
|
@ -1003,9 +1003,9 @@ ignored.
|
|||
(format "%-6d is padded on the right" 123)
|
||||
@result{} "123 is padded on the right"
|
||||
|
||||
(format "The word `%-7s' actually has %d letters in it."
|
||||
(format "The word '%-7s' actually has %d letters in it."
|
||||
"foo" (length "foo"))
|
||||
@result{} "The word `foo ' actually has 3 letters in it."
|
||||
@result{} "The word 'foo ' actually has 3 letters in it."
|
||||
@end group
|
||||
@end example
|
||||
|
||||
|
|
|
@ -203,7 +203,7 @@ suppressed.
|
|||
The Lisp modes have two string quote characters: double-quote (@samp{"})
|
||||
and vertical bar (@samp{|}). @samp{|} is not used in Emacs Lisp, but it
|
||||
is used in Common Lisp. C also has two string quote characters:
|
||||
double-quote for strings, and single-quote (@samp{'}) for character
|
||||
double-quote for strings, and apostrophe (@samp{'}) for character
|
||||
constants.
|
||||
|
||||
Human text has no string quote characters. We do not want quotation
|
||||
|
|
|
@ -512,7 +512,7 @@ non-@code{nil} and the character inserted is in the table
|
|||
@c Cross refs reworded to prevent overfull hbox. --rjc 15mar92
|
||||
This command performs abbrev expansion if Abbrev mode is enabled and
|
||||
the inserted character does not have word-constituent
|
||||
syntax. (@xref{Abbrevs}, and @ref{Syntax Class Table}.) It is also
|
||||
syntax. (@xref{Abbrevs}, and @ref{Syntax Class Table}.) It is also
|
||||
responsible for calling @code{blink-paren-function} when the inserted
|
||||
character has close parenthesis syntax (@pxref{Blinking}).
|
||||
|
||||
|
|
|
@ -657,23 +657,18 @@ starting double-quote is not part of the string!
|
|||
|
||||
@anchor{Docstring hyperlinks}
|
||||
@item
|
||||
@iftex
|
||||
When a documentation string refers to a Lisp symbol, write it as it
|
||||
would be printed (which usually means in lower case), with single-quotes
|
||||
around it. For example: @samp{`lambda'}. There are two exceptions:
|
||||
write @code{t} and @code{nil} without single-quotes.
|
||||
@end iftex
|
||||
@ifnottex
|
||||
When a documentation string refers to a Lisp symbol, write it as it
|
||||
would be printed (which usually means in lower case), with single-quotes
|
||||
around it. For example: @samp{lambda}. There are two exceptions: write
|
||||
t and nil without single-quotes. (In this manual, we use a different
|
||||
convention, with single-quotes for all symbols.)
|
||||
@end ifnottex
|
||||
would be printed (which usually means in lower case), with a grave
|
||||
accent @samp{`} before and apostrophe @samp{'} after it. There are
|
||||
two exceptions: write @code{t} and @code{nil} without surrounding
|
||||
punctuation. For example: @samp{CODE can be `lambda', nil, or t.}
|
||||
(In this manual, we use a different convention, with single-quotes
|
||||
around symbols.)
|
||||
|
||||
@cindex hyperlinks in documentation strings
|
||||
Help mode automatically creates a hyperlink when a documentation string
|
||||
uses a symbol name inside single quotes, if the symbol has either a
|
||||
uses a symbol name between grave accent and apostrophe, if the symbol
|
||||
has either a
|
||||
function or a variable definition. You do not need to do anything
|
||||
special to make use of this feature. However, when a symbol has both a
|
||||
function definition and a variable definition, and you want to refer to
|
||||
|
@ -716,16 +711,16 @@ documentation will be shown, even if the symbol is also defined as a
|
|||
variable or as a function.
|
||||
|
||||
To make a hyperlink to Info documentation, write the name of the Info
|
||||
node (or anchor) in single quotes, preceded by @samp{info node},
|
||||
@samp{Info node}, @samp{info anchor} or @samp{Info anchor}. The Info
|
||||
file name defaults to @samp{emacs}. For example,
|
||||
node (or anchor) between grave accent and apostrophe, preceded by
|
||||
@samp{info node}, @samp{Info node}, @samp{info anchor} or @samp{Info
|
||||
anchor}. The Info file name defaults to @samp{emacs}. For example,
|
||||
|
||||
@smallexample
|
||||
See Info node `Font Lock' and Info node `(elisp)Font Lock Basics'.
|
||||
@end smallexample
|
||||
|
||||
Finally, to create a hyperlink to URLs, write the URL in single
|
||||
quotes, preceded by @samp{URL}. For example,
|
||||
Finally, to create a hyperlink to URLs, write the URL between grave
|
||||
accent and apostrophe, preceded by @samp{URL}. For example,
|
||||
|
||||
@smallexample
|
||||
The home page for the GNU project has more information (see URL
|
||||
|
|
|
@ -108,8 +108,8 @@ on elisp2-fn-vol-number-added
|
|||
(volume-index-markup "II")
|
||||
to create elisp2-fn-vol-number-added
|
||||
|
||||
insert elisp2-fn-vol-number-added into vol1.fn: do following `cat'
|
||||
insert elisp1-fn-vol-number-added into vol2.fn: do following `cat'
|
||||
insert elisp2-fn-vol-number-added into vol1.fn: do following 'cat'
|
||||
insert elisp1-fn-vol-number-added into vol2.fn: do following 'cat'
|
||||
|
||||
% cat elisp2-fn-vol-number-added >> vol1.fn
|
||||
% cat elisp1-fn-vol-number-added >> vol2.fn
|
||||
|
@ -126,7 +126,7 @@ Be sure that .fn file has no blank lines.
|
|||
|
||||
### Create merged .toc file with volume number headings.
|
||||
|
||||
append vol2.toc to vol1.toc with following `cat'
|
||||
append vol2.toc to vol1.toc with following 'cat'
|
||||
|
||||
% cat vol1.toc vol2.toc > elisp-toc-2vol.toc
|
||||
|
||||
|
|
|
@ -2412,7 +2412,7 @@ the window split and the values of
|
|||
and @code{split-width-threshold} (@pxref{Choosing Window Options}).
|
||||
|
||||
Now suppose we combine this call with a preexisting setup for
|
||||
`display-buffer-alist' as follows.
|
||||
@code{display-buffer-alist} as follows.
|
||||
|
||||
@example
|
||||
@group
|
||||
|
|
|
@ -16,7 +16,7 @@ is used to create the database used by the class browser in Emacs.
|
|||
.PP
|
||||
.SH OPTIONS
|
||||
The program follows the usual GNU command line syntax, with long
|
||||
options starting with two dashes (`-').
|
||||
options starting with two dashes ("\-").
|
||||
.TP
|
||||
.B \-a, \-\-append
|
||||
append output to existing file
|
||||
|
|
|
@ -251,8 +251,8 @@ Set additional X resources.
|
|||
.BI "\-\-color\fR,\fP \-\-color=" mode
|
||||
Override color mode for character terminals;
|
||||
.I mode
|
||||
defaults to `auto', and can also be `never', `auto', `always',
|
||||
or a mode name like `ansi8'.
|
||||
defaults to "auto", and can also be "never", "auto", "always",
|
||||
or a mode name like "ansi8".
|
||||
.TP
|
||||
.BI \-bw " pixels\fR,\fP " \-\-border\-width " pixels"
|
||||
Set the
|
||||
|
@ -420,8 +420,8 @@ The value can be one of
|
|||
.IR fullwidth ,
|
||||
or
|
||||
.IR fullheight ,
|
||||
which correspond to the command-line options `\-fs', `\-mm', `\-fw',
|
||||
and `\-fh', respectively.
|
||||
which correspond to the command-line options "\-fs", "\-mm", "\-fw",
|
||||
and "\-fh", respectively.
|
||||
Note that this applies to the initial frame only.
|
||||
.TP
|
||||
.BR geometry " (class " Geometry )
|
||||
|
@ -482,11 +482,11 @@ the window will be displayed in reverse video.
|
|||
.TP
|
||||
.BR screenGamma " (class "ScreenGamma )
|
||||
Gamma correction for colors, equivalent to the frame parameter
|
||||
`screen\-gamma'.
|
||||
"screen\-gamma".
|
||||
.TP
|
||||
.BR scrollBarWidth " (class "ScrollBarWidth )
|
||||
The scroll bar width in pixels, equivalent to the frame parameter
|
||||
`scroll\-bar\-width'.
|
||||
"scroll\-bar\-width".
|
||||
.TP
|
||||
.BR selectionFont " (class " SelectionFont )
|
||||
Font name for pop-up menu items, in non-toolkit versions of
|
||||
|
@ -583,7 +583,7 @@ There is a mailing list, @PACKAGE_BUGREPORT@, for reporting Emacs
|
|||
bugs and fixes.
|
||||
But before reporting something as a bug, please try to be sure that
|
||||
it really is a bug, not a misunderstanding or a deliberate feature.
|
||||
We ask you to read the section ``Reporting Bugs'' in the Emacs manual
|
||||
We ask you to read the section "Reporting Bugs" in the Emacs manual
|
||||
for hints on how and when to report bugs.
|
||||
Also, include the version number of the Emacs you are running in
|
||||
\fIevery\fR bug report that you send in.
|
||||
|
|
|
@ -31,28 +31,31 @@ default editor.
|
|||
For
|
||||
.B emacsclient
|
||||
to work, you need an already running Emacs with a server. Within Emacs,
|
||||
call the functions `server-start' or `server-mode'. (Your `.emacs' file
|
||||
can do this automatically if you add either `(server-start)' or
|
||||
`(server-mode 1)' to it.)
|
||||
call the functions "server-start" or "server-mode". (Your ".emacs" file
|
||||
can do this automatically if you add either "(server-start)" or
|
||||
"(server-mode 1)" to it.)
|
||||
|
||||
When you've finished editing the buffer, type `C-x #'
|
||||
(`server-edit'). This saves the file and sends a message back to the
|
||||
`emacsclient' program telling it to exit. The programs that use
|
||||
`EDITOR' wait for the "editor" (actually, `emacsclient') to exit. `C-x
|
||||
#' also checks for other pending external requests to edit various
|
||||
When you've finished editing the buffer, type "C-x #"
|
||||
("server-edit"). This saves the file and sends a message back to the
|
||||
.B emacsclient
|
||||
program telling it to exit. The programs that use
|
||||
EDITOR wait for the "editor" (actually,
|
||||
.BR emacsclient )
|
||||
to exit. "C-x #" also checks for other pending external requests to
|
||||
edit various
|
||||
files, and selects the next such file.
|
||||
|
||||
If you set the variable `server-window' to a window or a frame, `C-x
|
||||
#' displays the server buffer in that window or in that frame.
|
||||
If you set the variable "server-window" to a window or a frame, "C-x
|
||||
#" displays the server buffer in that window or in that frame.
|
||||
|
||||
.SH OPTIONS
|
||||
The programs follow the usual GNU command line syntax, with long
|
||||
options starting with two dashes (`-').
|
||||
options starting with two dashes ("\-").
|
||||
.TP
|
||||
.B \-a, \-\-alternate-editor=EDITOR
|
||||
if the Emacs server is not running, run the specified editor instead.
|
||||
This can also be specified via the `ALTERNATE_EDITOR' environment variable.
|
||||
If the value of EDITOR is the empty string, run `emacs \-\-daemon' to
|
||||
This can also be specified via the ALTERNATE_EDITOR environment variable.
|
||||
If the value of EDITOR is the empty string, run "emacs \-\-daemon" to
|
||||
start Emacs in daemon mode, and try to connect to it.
|
||||
.TP
|
||||
.B -c, \-\-create-frame
|
||||
|
@ -70,7 +73,7 @@ Lisp expressions.
|
|||
.TP
|
||||
.B \-f, \-\-server-file=FILENAME
|
||||
use TCP configuration file FILENAME for communication.
|
||||
This can also be specified via the `EMACS_SERVER_FILE' environment variable.
|
||||
This can also be specified via the EMACS_SERVER_FILE environment variable.
|
||||
.TP
|
||||
.B \-n, \-\-no-wait
|
||||
returns
|
||||
|
@ -99,4 +102,3 @@ This manual page was written by Stephane Bortzmeyer <bortzmeyer@debian.org>,
|
|||
for the Debian GNU/Linux system (but may be used by others).
|
||||
.SH COPYING
|
||||
This manual page is in the public domain.
|
||||
|
||||
|
|
|
@ -80,8 +80,8 @@ Append to existing tag file. (For \fBvi\fP-format tag files, see also
|
|||
.B \-B, \-\-backward\-search
|
||||
Tag files written in the format expected by \fBvi\fP contain regular
|
||||
expression search instructions; the \fB\-B\fP option writes them using
|
||||
the delimiter `\|\fB?\fP\|', to search \fIbackwards\fP through files.
|
||||
The default is to use the delimiter `\|\fB/\fP\|', to search \fIforwards\fP
|
||||
the delimiter "\|\fB?\fP\|", to search \fIbackwards\fP through files.
|
||||
The default is to use the delimiter "\|\fB/\fP\|", to search \fIforwards\fP
|
||||
through files.
|
||||
Only \fBctags\fP accepts this option.
|
||||
.TP
|
||||
|
@ -117,8 +117,8 @@ final brace of a function or structure definition in C and C++.
|
|||
Parse the following files according to the given language. More than
|
||||
one such options may be intermixed with filenames. Use \fB\-\-help\fP
|
||||
to get a list of the available languages and their default filename
|
||||
extensions. The `auto' language can be used to restore automatic
|
||||
detection of language based on the file name. The `none'
|
||||
extensions. The "auto" language can be used to restore automatic
|
||||
detection of language based on the file name. The "none"
|
||||
language may be used to disable language parsing altogether; only
|
||||
regexp matching is done in this case (see the \fB\-\-regex\fP option).
|
||||
.TP
|
||||
|
@ -256,7 +256,7 @@ Print the current version of the program (same as the version of the
|
|||
emacs \fBetags\fP is shipped with).
|
||||
|
||||
.SH "SEE ALSO"
|
||||
`\|\fBemacs\fP\|' entry in \fBinfo\fP; \fIGNU Emacs Manual\fP, Richard
|
||||
"\|\fBemacs\fP\|" entry in \fBinfo\fP; \fIGNU Emacs Manual\fP, Richard
|
||||
Stallman.
|
||||
.br
|
||||
.BR cxref ( 1 ),
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
SHELL = @SHELL@
|
||||
|
||||
# Where to find the source code. $(srcdir) will be the doc/misc subdirectory
|
||||
# of the source tree. This is set by configure's `--srcdir' option.
|
||||
# of the source tree. This is set by configure's '--srcdir' option.
|
||||
srcdir=@srcdir@
|
||||
|
||||
## Where the output files go.
|
||||
|
|
|
@ -110,11 +110,11 @@ The @code{user} is the user name. It's known as @var{:user} in
|
|||
You can use spaces inside a password or other token by surrounding the
|
||||
token with either single or double quotes.
|
||||
|
||||
You can use single quotes inside a password or other token by
|
||||
You can use apostrophes inside a password or other token by
|
||||
surrounding it with double quotes, e.g., @code{"he'llo"}. Similarly you
|
||||
can use double quotes inside a password or other token by surrounding
|
||||
it with single quotes, e.g., @code{'he"llo'}. You can't mix both (so a
|
||||
password or other token can't have both single and double quotes).
|
||||
it with apostrophes, e.g., @code{'he"llo'}. You can't mix both (so a
|
||||
password or other token can't have both apostrophes and double quotes).
|
||||
|
||||
All this is optional. You could just say (but we don't recommend it,
|
||||
we're just showing that it's possible)
|
||||
|
|
|
@ -331,8 +331,9 @@ character is part of a word. If you want pairing to occur even then, set
|
|||
@vindex skeleton-pair-alist
|
||||
Pairing is possible for all visible characters. By default the
|
||||
parenthesis @samp{(}, the square bracket @samp{[}, the brace
|
||||
@samp{@{}, the pointed bracket @samp{<} and the backquote @samp{`} all
|
||||
pair with the symmetrical character. All other characters pair
|
||||
@samp{@{} and the pointed bracket @samp{<} all
|
||||
pair with the symmetrical character, and the grave accent @samp{`}
|
||||
pairs with the apostrophe @samp{'}. All other characters pair
|
||||
themselves. This behavior can be modified by the variable
|
||||
@code{skeleton-pair-alist}. This is in fact an alist of skeletons
|
||||
(@pxref{Skeleton Language}), with the first part of each sublist
|
||||
|
@ -341,8 +342,8 @@ but since pairs don't need the @code{str} element, this is ignored.
|
|||
|
||||
Some modes have bound the command @code{skeleton-pair-insert-maybe}
|
||||
to relevant keys. These modes also configure the pairs as
|
||||
appropriate. For example, when typing english prose, you'd expect the
|
||||
backquote (@samp{`}) to pair with the quote (@samp{'}), while in Shell
|
||||
appropriate. For example, when typing @TeX{} input, you'd expect the
|
||||
grave accent (@samp{`}) to pair with the apostrophe (@samp{'}), while in Shell
|
||||
script mode it must pair to itself. They can also inhibit pairing in
|
||||
certain contexts. For example an escaped character stands for itself.
|
||||
|
||||
|
@ -626,7 +627,7 @@ See the commentary in @file{tempo.el} for more information on using the
|
|||
Tempo package.
|
||||
|
||||
@node Hippie Expand
|
||||
@chapter `Hippie' Expansion
|
||||
@chapter ``Hippie'' Expansion
|
||||
|
||||
@findex hippie-expand
|
||||
@kindex M-/
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
|
||||
@c The following macros are used for conditional output for single lines.
|
||||
@c @texline foo
|
||||
@c `foo' will appear only in TeX output
|
||||
@c 'foo' will appear only in TeX output
|
||||
@c @infoline foo
|
||||
@c `foo' will appear only in non-TeX output
|
||||
@c 'foo' will appear only in non-TeX output
|
||||
|
||||
@c @expr{expr} will typeset an expression;
|
||||
@c $x$ in TeX, @samp{x} otherwise.
|
||||
|
@ -431,7 +431,7 @@ Type @kbd{2 @key{RET} 3 + Q} to compute
|
|||
@noindent
|
||||
Type @kbd{P 2 ^} to compute
|
||||
@texline @math{\pi^2 = 9.86960440109}.
|
||||
@infoline the value of `pi' squared, 9.86960440109.
|
||||
@infoline the value of @cpi{} squared, 9.86960440109.
|
||||
|
||||
@noindent
|
||||
Type @key{TAB} to exchange the order of these two results.
|
||||
|
@ -455,7 +455,7 @@ Type @kbd{' sqrt(2+3) @key{RET}} to compute
|
|||
@noindent
|
||||
Type @kbd{' pi^2 @key{RET}} to enter
|
||||
@texline @math{\pi^2}.
|
||||
@infoline `pi' squared.
|
||||
@infoline @cpi{} squared.
|
||||
To evaluate this symbolic formula as a number, type @kbd{=}.
|
||||
|
||||
@noindent
|
||||
|
@ -1241,7 +1241,7 @@ finished in two weeks.
|
|||
@c [tutorial]
|
||||
|
||||
@ifinfo
|
||||
@c This node is accessed by the `C-x * t' command.
|
||||
@c This node is accessed by the 'C-x * t' command.
|
||||
@node Interactive Tutorial, Tutorial, Getting Started, Top
|
||||
@chapter Tutorial
|
||||
|
||||
|
@ -2164,7 +2164,7 @@ the prefix.
|
|||
|
||||
One more way to correct an error is by editing the stack entries.
|
||||
The actual Stack buffer is marked read-only and must not be edited
|
||||
directly, but you can press @kbd{`} (the backquote or accent grave)
|
||||
directly, but you can press @kbd{`} (grave accent)
|
||||
to edit a stack entry.
|
||||
|
||||
Try entering @samp{3.141439} now. If this is supposed to represent
|
||||
|
@ -2471,7 +2471,7 @@ We don't have enough space here to show all the zeros! They won't
|
|||
fit on a typical screen, either, so you will have to use horizontal
|
||||
scrolling to see them all. Press @kbd{<} and @kbd{>} to scroll the
|
||||
stack window left and right by half its width. Another way to view
|
||||
something large is to press @kbd{`} (back-quote) to edit the top of
|
||||
something large is to press @kbd{`} (grave accent) to edit the top of
|
||||
stack in a separate window. (Press @kbd{C-c C-c} when you are done.)
|
||||
|
||||
You can enter non-decimal numbers using the @kbd{#} symbol, too.
|
||||
|
@ -3658,7 +3658,7 @@ fast! (But of course if you use @kbd{t .} you will lose the ability
|
|||
to get old vectors back using the @kbd{t y} command.)
|
||||
|
||||
An easy way to view a full vector when @kbd{v .} mode is active is
|
||||
to press @kbd{`} (back-quote) to edit the vector; editing always works
|
||||
to press @kbd{`} (grave accent) to edit the vector; editing always works
|
||||
with the full, unabbreviated value.
|
||||
|
||||
@cindex Least-squares for fitting a straight line
|
||||
|
@ -6012,7 +6012,7 @@ fix, though:
|
|||
@end smallexample
|
||||
|
||||
@noindent
|
||||
When we type @kbd{Z `} (that's a back-quote character), Calc saves
|
||||
When we type @kbd{Z `} (that's a grave accent), Calc saves
|
||||
its mode settings and the contents of the ten ``quick variables''
|
||||
for later reference. When we type @kbd{Z '} (that's an apostrophe
|
||||
now), Calc restores those saved values. Thus the @kbd{p 4} and
|
||||
|
@ -9042,7 +9042,7 @@ matrix (or other value) to the power @expr{n} in only
|
|||
@texline @math{\log_2 n}
|
||||
@infoline @expr{log(n,2)}
|
||||
steps. For example, this program can compute the 1000th Fibonacci
|
||||
number (a 209-digit integer!) in about 10 steps; even though the
|
||||
number (a 209-digit integer!)@: in about 10 steps; even though the
|
||||
@kbd{Z < ... Z >} solution had much simpler steps, it would have
|
||||
required so many steps that it would not have been practical.
|
||||
|
||||
|
@ -10029,7 +10029,7 @@ this would be to fix a typo, as the full Emacs cursor motion and editing
|
|||
keys are available during algebraic entry but not during numeric entry.
|
||||
|
||||
In the same vein, during either numeric or algebraic entry you can
|
||||
press @kbd{`} (backquote) to switch to @code{calc-edit} mode, where
|
||||
press @kbd{`} (grave accent) to switch to @code{calc-edit} mode, where
|
||||
you complete your half-finished entry in a separate buffer.
|
||||
@xref{Editing Stack Entries}.
|
||||
|
||||
|
@ -10174,7 +10174,7 @@ an ASCII character.
|
|||
|
||||
For example, the quoted character @samp{"x"} produces the vector
|
||||
result @samp{[120]} (because 120 is the ASCII code of the lower-case
|
||||
`x'; @pxref{Strings}). Since this is a vector, not an integer, it
|
||||
``x''; @pxref{Strings}). Since this is a vector, not an integer, it
|
||||
is displayed only according to the current mode settings. But
|
||||
running Quick Calc again and entering @samp{120} will produce the
|
||||
result @samp{120 (16#78, 8#170, x)} which shows the number in its
|
||||
|
@ -11098,12 +11098,12 @@ noon GMT@.) Julian day numbering is largely used in astronomy.
|
|||
@cindex Unix time format
|
||||
The Unix operating system measures time as an integer number of
|
||||
seconds since midnight, Jan 1, 1970. To convert a Calc date
|
||||
value into a Unix time stamp, first subtract 719164 (the code
|
||||
value into a Unix time stamp, first subtract 719163 (the code
|
||||
for @samp{<Jan 1, 1970>}), then multiply by 86400 (the number of
|
||||
seconds in a day) and press @kbd{R} to round to the nearest
|
||||
integer. If you have a date form, you can simply subtract the
|
||||
day @samp{<Jan 1, 1970>} instead of unpacking and subtracting
|
||||
719164. Likewise, divide by 86400 and add @samp{<Jan 1, 1970>}
|
||||
719163. Likewise, divide by 86400 and add @samp{<Jan 1, 1970>}
|
||||
to convert from Unix time to a Calc date form. (Note that
|
||||
Unix normally maintains the time in the GMT time zone; you may
|
||||
need to subtract five hours to get New York time, or eight hours
|
||||
|
@ -11871,10 +11871,10 @@ the stack objects at the levels determined by the point and the mark.
|
|||
@cindex Editing the stack with Emacs
|
||||
The @kbd{`} (@code{calc-edit}) command creates a temporary buffer
|
||||
(@file{*Calc Edit*}) for editing the top-of-stack value using regular
|
||||
Emacs commands. Note that @kbd{`} is a backquote, not a quote. With a
|
||||
numeric prefix argument, it edits the specified number of stack entries
|
||||
at once. (An argument of zero edits the entire stack; a negative
|
||||
argument edits one specific stack entry.)
|
||||
Emacs commands. Note that @kbd{`} is a grave accent, not an apostrophe.
|
||||
With a numeric prefix argument, it edits the specified number of stack
|
||||
entries at once. (An argument of zero edits the entire stack; a
|
||||
negative argument edits one specific stack entry.)
|
||||
|
||||
When you are done editing, press @kbd{C-c C-c} to finish and return
|
||||
to Calc. The @key{RET} and @key{LFD} keys also work to finish most
|
||||
|
@ -13609,11 +13609,11 @@ Weekday: ``Sunday'' for Sunday.
|
|||
@item Iww
|
||||
Week number: ISO 8601 week number, ``W01'' for week 1.
|
||||
@item d
|
||||
Day of year: ``34'' for Feb. 3.
|
||||
Day of year: ``34'' for Feb.@: 3.
|
||||
@item ddd
|
||||
Day of year: ``034'' for Feb. 3.
|
||||
Day of year: ``034'' for Feb.@: 3.
|
||||
@item bdd
|
||||
Day of year: `` 34'' for Feb. 3.
|
||||
Day of year: `` 34'' for Feb.@: 3.
|
||||
@item T
|
||||
Letter: Literal ``T''.
|
||||
@item h
|
||||
|
@ -19228,7 +19228,7 @@ non-empty sets, respectively.
|
|||
The @kbd{k p} (@code{calc-prime-test}) command checks if the integer on
|
||||
the top of the stack is prime. For integers less than eight million, the
|
||||
answer is always exact and reasonably fast. For larger integers, a
|
||||
probabilistic method is used (see Knuth vol. II, section 4.5.4, algorithm P).
|
||||
probabilistic method is used (see Knuth vol.@: II, section 4.5.4, algorithm P).
|
||||
The number is first checked against small prime factors (up to 13). Then,
|
||||
any number of iterations of the algorithm are performed. Each step either
|
||||
discovers that the number is non-prime, or substantially increases the
|
||||
|
@ -27860,14 +27860,20 @@ while typing @kbd{u c au/yr @key{RET}} produces
|
|||
|
||||
If the units you request are inconsistent with the original units, the
|
||||
number will be converted into your units times whatever ``remainder''
|
||||
units are left over. (This can be disabled; @pxref{Customizing Calc}.)
|
||||
For example, converting @samp{55 mph} into acres
|
||||
produces @samp{6.08e-3 acre / m s}. (Recall that multiplication binds
|
||||
more strongly than division in Calc formulas, so the units here are
|
||||
acres per meter-second.) Remainder units are expressed in terms of
|
||||
units are left over. For example, converting @samp{55 mph} into acres
|
||||
produces @samp{6.08e-3 acre / (m s)}. Remainder units are expressed in terms of
|
||||
``fundamental'' units like @samp{m} and @samp{s}, regardless of the
|
||||
input units.
|
||||
|
||||
@kindex u n
|
||||
@pindex calc-convert-exact-units
|
||||
If you intend that your new units be consistent with the original
|
||||
units, the @kbd{u n} (@code{calc-convert-exact-units}) command will
|
||||
check the units before the conversion. For example, to change
|
||||
@samp{mi/hr} to @samp{km/hr}, you could type @kbd{u c km @key{RET}},
|
||||
but @kbd{u n km @key{RET}} would signal an error.
|
||||
You would need to type @kbd{u n km/hr @key{RET}}.
|
||||
|
||||
One special exception is that if you specify a single unit name, and
|
||||
a compatible unit appears somewhere in the units expression, then
|
||||
that compatible unit will be converted to the new unit and the
|
||||
|
@ -31842,7 +31848,7 @@ local variables inside the macro should not affect any variables
|
|||
outside the macro. The @kbd{Z `} (@code{calc-kbd-push}) and @kbd{Z '}
|
||||
(@code{calc-kbd-pop}) commands give you both of these capabilities.
|
||||
|
||||
When you type @kbd{Z `} (with a backquote or accent grave character),
|
||||
When you type @kbd{Z `} (with a grave accent),
|
||||
the values of various mode settings are saved away. The ten ``quick''
|
||||
variables @code{q0} through @code{q9} are also saved. When
|
||||
you type @w{@kbd{Z '}} (with an apostrophe), these values are restored.
|
||||
|
@ -34278,7 +34284,7 @@ you can call it again with the same @var{n} to get a greater certainty;
|
|||
|
||||
@defun to-simple-fraction f
|
||||
If @var{f} is a floating-point number which can be represented exactly
|
||||
as a small rational number. return that number, else return @var{f}.
|
||||
as a small rational number, return that number, else return @var{f}.
|
||||
For example, 0.75 would be converted to 3:4. This function is very
|
||||
fast.
|
||||
@end defun
|
||||
|
@ -35684,19 +35690,6 @@ as @samp{a/(b*c)}. If @code{calc-multiplication-has-precedence} is
|
|||
of @code{calc-multiplication-has-precedence} is @code{t}.
|
||||
@end defvar
|
||||
|
||||
@defvar calc-ensure-consistent-units
|
||||
When converting units, the variable @code{calc-ensure-consistent-units}
|
||||
determines whether or not the target units need to be consistent with the
|
||||
original units. If @code{calc-ensure-consistent-units} is @code{nil}, then
|
||||
the target units don't need to have the same dimensions as the original units;
|
||||
for example, converting @samp{100 ft/s} to @samp{m} will produce @samp{30.48 m/s}.
|
||||
If @code{calc-ensure-consistent-units} is non-@code{nil}, then the target units
|
||||
need to have the same dimensions as the original units; for example, converting
|
||||
@samp{100 ft/s} to @samp{m} will result in an error, since @samp{ft/s} and @samp{m}
|
||||
have different dimensions. The default value of @code{calc-ensure-consistent-units}
|
||||
is @code{nil}.
|
||||
@end defvar
|
||||
|
||||
@defvar calc-context-sensitive-enter
|
||||
The commands @code{calc-enter} and @code{calc-pop} will typically
|
||||
duplicate the top of the stack. If
|
||||
|
@ -36497,6 +36490,7 @@ keystrokes are not listed in this summary.
|
|||
@r{ defn@: u d @:unit, descr @: @:calc-define-unit@:}
|
||||
@r{ @: u e @: @: @:calc-explain-units@:}
|
||||
@r{ @: u g @:unit @: @:calc-get-unit-definition@:}
|
||||
@r{ @: u n @:units @: 18 @:calc-convert-exact-units@:}
|
||||
@r{ @: u p @: @: @:calc-permanent-units@:}
|
||||
@r{ a@: u r @: @: @:calc-remove-units@:}
|
||||
@r{ a@: u s @: @: @:usimplify@:(a)}
|
||||
|
@ -36661,6 +36655,8 @@ keystrokes are not listed in this summary.
|
|||
|
||||
@end format
|
||||
|
||||
@c Avoid '@:' from here on, as it now means \sumsep in tex mode.
|
||||
|
||||
@noindent
|
||||
NOTES
|
||||
|
||||
|
@ -36799,9 +36795,9 @@ The @expr{op} prompt can be answered with the key sequence for the
|
|||
desired function, or with @kbd{x} or @kbd{z} followed by a function name,
|
||||
or with @kbd{$} to take a formula from the top of the stack, or with
|
||||
@kbd{'} and a typed formula. In the last two cases, the formula may
|
||||
be a nameless function like @samp{<#1+#2>} or @samp{<x, y : x+y>}, or it
|
||||
may include @kbd{$}, @kbd{$$}, etc.@: (where @kbd{$} will correspond to the
|
||||
last argument of the created function), or otherwise you will be
|
||||
be a nameless function like @samp{<#1+#2>} or @samp{<x, y : x+y>}; or it
|
||||
may include @kbd{$}, @kbd{$$}, etc., where @kbd{$} will correspond to the
|
||||
last argument of the created function; or otherwise you will be
|
||||
prompted for an argument list. The number of vectors popped from the
|
||||
stack by @kbd{V M} depends on the number of arguments of the function.
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ the second with them pointing to the XEmacs manuals.
|
|||
|
||||
@c The following four macros generate the filenames and titles of the
|
||||
@c main (X)Emacs manual and the Elisp/Lispref manual. Leave the
|
||||
@c Texinfo variable `XEMACS' unset to generate a GNU Emacs version, set it
|
||||
@c Texinfo variable 'XEMACS' unset to generate a GNU Emacs version, set it
|
||||
@c to generate an XEmacs version, e.g., with
|
||||
@c "makeinfo -DXEMACS cc-mode.texi".
|
||||
@ifset XEMACS
|
||||
|
@ -1156,7 +1156,7 @@ When this is enabled (which it normally is), indentation commands such
|
|||
as @kbd{C-j} indent lines of code according to their syntactic
|
||||
structure. Otherwise, a line is simply indented to the same level as
|
||||
the previous one and @kbd{@key{TAB}} adjusts the indentation in steps
|
||||
of `c-basic-offset'.
|
||||
of @code{c-basic-offset}.
|
||||
@end table
|
||||
|
||||
Full details on how these minor modes work are at @ref{Electric Keys},
|
||||
|
@ -2045,7 +2045,7 @@ conflict).
|
|||
The value may also be an association list to specify different comment
|
||||
styles for different languages. The symbol for the major mode is then
|
||||
looked up in the alist, and the value of that element is interpreted as
|
||||
above if found. If it isn't found then the symbol `other' is looked up
|
||||
above if found. If it isn't found then the symbol @code{other} is looked up
|
||||
and its value is used instead.
|
||||
|
||||
The default value for @code{c-doc-comment-style} is
|
||||
|
@ -3299,7 +3299,7 @@ only the symbol @code{after}, then the brace hangs on the right side
|
|||
of the line, as in:
|
||||
|
||||
@example
|
||||
// here, open braces always `hang'
|
||||
// here, open braces always 'hang'
|
||||
void spam( int i ) @{
|
||||
if( i == 7 ) @{
|
||||
dosomething(i);
|
||||
|
@ -3992,7 +3992,7 @@ Hitting @kbd{C-c C-s} on line 4 gives us:
|
|||
@cindex substatement block
|
||||
@noindent
|
||||
which tells us that this is a brace that @emph{opens} a substatement
|
||||
block. @footnote{A @dfn{substatement} is the line after a
|
||||
block.@footnote{A @dfn{substatement} is the line after a
|
||||
conditional statement, such as @code{if}, @code{else}, @code{while},
|
||||
@code{do}, @code{switch}, etc. A @dfn{substatement
|
||||
block} is a brace block following one of these conditional statements.}
|
||||
|
@ -4765,10 +4765,10 @@ covered are illustrated by this C++ example:
|
|||
2: const
|
||||
3: @{
|
||||
4: /* this line starts a multiline
|
||||
5: * comment. This line should get `c' syntax */
|
||||
5: * comment. This line should get 'c' syntax */
|
||||
6:
|
||||
7: char* a_multiline_string = "This line starts a multiline \
|
||||
8: string. This line should get `string' syntax.";
|
||||
8: string. This line should get 'string' syntax.";
|
||||
9:
|
||||
10: note:
|
||||
11: @{
|
||||
|
@ -7174,7 +7174,7 @@ Emacs Lisp code that triggers the bug and include it in your report.
|
|||
|
||||
@cindex bug report mailing list
|
||||
Bug reports should be sent to @email{bug-cc-mode@@gnu.org}. You can
|
||||
also send other questions and suggestions (kudos? @t{;-)} to that
|
||||
also send other questions and suggestions (kudos?@: @t{;-)} to that
|
||||
address. It's a mailing list which you can join or browse an archive
|
||||
of; see the web site at @uref{http://cc-mode.sourceforge.net/} for
|
||||
further details.
|
||||
|
|
|
@ -570,20 +570,20 @@ When @file{foo.el} is compiled, these variables will be set during
|
|||
the compilation itself:
|
||||
|
||||
@example
|
||||
foo1 foo3 foo5 foo7 ; `compile'
|
||||
foo1 foo3 foo5 foo7 ; 'compile'
|
||||
@end example
|
||||
|
||||
When @file{foo.elc} is loaded, these variables will be set:
|
||||
|
||||
@example
|
||||
foo2 foo3 foo6 foo7 ; `load'
|
||||
foo2 foo3 foo6 foo7 ; 'load'
|
||||
@end example
|
||||
|
||||
And if @file{foo.el} is loaded uncompiled, these variables will
|
||||
be set:
|
||||
|
||||
@example
|
||||
foo4 foo5 foo6 foo7 ; `eval'
|
||||
foo4 foo5 foo6 foo7 ; 'eval'
|
||||
@end example
|
||||
|
||||
If these seven @code{cl-eval-when}s had been, say, inside a @code{defun},
|
||||
|
@ -978,7 +978,7 @@ a
|
|||
The generalized variable @code{buffer-substring}, listed above,
|
||||
also works in this way by replacing a portion of the current buffer.
|
||||
|
||||
@c FIXME? Also `eq'? (see cl-lib.el)
|
||||
@c FIXME? Also 'eq'? (see cl-lib.el)
|
||||
|
||||
@c Currently commented out in cl.el.
|
||||
@ignore
|
||||
|
|
|
@ -973,7 +973,7 @@ displayed in the member buffer.
|
|||
@cindex @code{public} members
|
||||
@item F a u
|
||||
This command toggles the display of @code{public} members. The
|
||||
@samp{a} stands for `access'.
|
||||
@samp{a} stands for ``access''.
|
||||
|
||||
@cindex @code{protected} members
|
||||
@item F a o
|
||||
|
|
|
@ -868,7 +868,7 @@ It would look like this:
|
|||
|
||||
(defun MY-ROOT-FCN ()
|
||||
"Return the root fcn for `default-directory'"
|
||||
;; You might be able to use `ede-cpp-root-project-root'
|
||||
;; You might be able to use 'ede-cpp-root-project-root'
|
||||
;; and not write this at all.
|
||||
)
|
||||
|
||||
|
@ -1856,7 +1856,7 @@ Preprocessor symbols will be used while parsing your files.
|
|||
These macros might be passed in through the command line compiler, or
|
||||
are critical symbols derived from header files. Providing header files
|
||||
macro values through this slot improves accuracy and performance.
|
||||
Use `:spp-files' to use these files directly.
|
||||
Use @code{:spp-files} to use these files directly.
|
||||
|
||||
@item :spp-files
|
||||
Type: @code{list} @*
|
||||
|
@ -2799,7 +2799,7 @@ Default Value: @code{t}
|
|||
|
||||
Non @code{nil} means the rule created is part of the all target.
|
||||
Setting this to @code{nil} creates the rule to build this item, but does not
|
||||
include it in the ALL`all:' rule.
|
||||
include it in the @code{all:} rule.
|
||||
|
||||
@item :configuration-variables
|
||||
Type: @code{list} @*
|
||||
|
@ -3457,7 +3457,7 @@ Return the variable name for @var{THIS}'s sources.
|
|||
|
||||
@deffn Method ede-proj-makefile-insert-dist-dependencies :AFTER this
|
||||
Insert any symbols that the DIST rule should depend on.
|
||||
Texinfo files want to insert generated `.info' files.
|
||||
Texinfo files want to insert generated @file{.info} files.
|
||||
Argument @var{THIS} is the target which needs to insert an info file.
|
||||
@end deffn
|
||||
|
||||
|
@ -3473,7 +3473,7 @@ files in the project.
|
|||
|
||||
@deffn Method ede-proj-makefile-insert-dist-filepatterns :AFTER this
|
||||
Insert any symbols that the DIST rule should depend on.
|
||||
Texinfo files want to insert generated `.info' files.
|
||||
Texinfo files want to insert generated @file{.info} files.
|
||||
Argument @var{THIS} is the target which needs to insert an info file.
|
||||
@end deffn
|
||||
|
||||
|
|
|
@ -556,9 +556,9 @@ Makes the next difference region current.
|
|||
@kindex j
|
||||
Makes the very first difference region current.
|
||||
|
||||
@kbd{-j} makes the last region current. Typing a number, N, and then `j'
|
||||
@kbd{-j} makes the last region current. Typing a number, N, and then @kbd{j}
|
||||
makes the difference region N current. Typing @minus{}N (a negative number) then
|
||||
`j' makes current the region Last @minus{} N.
|
||||
@kbd{j} makes current the region Last @minus{} N.
|
||||
|
||||
@item ga
|
||||
@kindex ga
|
||||
|
@ -615,8 +615,8 @@ no longer current, due to user editing.
|
|||
@item m
|
||||
@kindex m
|
||||
Displays the current Ediff session in a frame as wide as the physical
|
||||
display. This is useful when comparing files side-by-side. Typing `m' again
|
||||
restores the original size of the frame.
|
||||
display. This is useful when comparing files side-by-side.
|
||||
Typing @kbd{m} again restores the original size of the frame.
|
||||
|
||||
@item |
|
||||
@kindex |
|
||||
|
@ -675,7 +675,7 @@ Tell Ediff to skip over regions that disagree among themselves only in the
|
|||
amount of white space and line breaks.
|
||||
|
||||
Even though such regions will be skipped over, you can still jump to any
|
||||
one of them by typing the region number and then `j'. Typing @kbd{##}
|
||||
one of them by typing the region number and then @kbd{j}. Typing @kbd{##}
|
||||
again puts Ediff back in the original state.
|
||||
|
||||
@item #c
|
||||
|
@ -695,7 +695,8 @@ and @code{ediff-ignore-case}, which are explained elsewhere.
|
|||
Ediff works hard to ameliorate the effects of boredom in the workplace...
|
||||
|
||||
Quite often differences are due to identical replacements (e.g., the word
|
||||
`foo' is replaced with the word `bar' everywhere). If the number of regions
|
||||
``foo'' is replaced with the word ``bar'' everywhere). If the number
|
||||
of regions
|
||||
with such boring differences exceeds your tolerance threshold, you may be
|
||||
tempted to tell Ediff to skip these regions altogether (you will still be able
|
||||
to jump to them via the command @kbd{j}). The above commands, @kbd{#h}
|
||||
|
@ -750,7 +751,7 @@ You can then restart any of these sessions by either clicking on a session
|
|||
record or by putting the cursor over it and then typing the return key.
|
||||
|
||||
(Some poor souls leave so many active Ediff sessions around that they lose
|
||||
track of them completely... The `R' command is designed to save these
|
||||
track of them completely... The @kbd{R} command is designed to save these
|
||||
people from the recently discovered Ediff Proficiency Syndrome.)
|
||||
|
||||
Typing @kbd{R} brings up Ediff Registry only if it is typed into an Ediff
|
||||
|
@ -800,8 +801,8 @@ is that this difference region in buffer A is as old as that in the
|
|||
ancestor buffer, so the contents of that region in buffer B represents real
|
||||
change.
|
||||
|
||||
You may want to ignore such `obvious' merges and concentrate on difference
|
||||
regions where both files `clash' with the ancestor, since this means that
|
||||
You may want to ignore such ``obvious'' merges and concentrate on difference
|
||||
regions where both files ``clash'' with the ancestor, since this means that
|
||||
two different people have been changing this region independently and they
|
||||
had different ideas on how to do this.
|
||||
|
||||
|
@ -818,10 +819,10 @@ precisely this.
|
|||
|
||||
To be more precise, this toggles the check for whether the current merge is
|
||||
identical to its default setting, as originally decided by Ediff. For
|
||||
instance, if Ediff is merging according to the `combined' policy, then the
|
||||
instance, if Ediff is merging according to the ``combined'' policy, then the
|
||||
merge region is skipped over if it is different from the combination of the
|
||||
regions in buffers A and B@. (Warning: swapping buffers A and B will confuse
|
||||
things in this respect.) If the merge region is marked as `prefer-A' then
|
||||
things in this respect.) If the merge region is marked as ``prefer-A'' then
|
||||
this region will be skipped if it differs from the current difference
|
||||
region in buffer A, etc.
|
||||
|
||||
|
@ -851,7 +852,7 @@ corresponding region from buffer B.
|
|||
@item s
|
||||
@kindex s
|
||||
Causes the merge window shrink to its minimum size, thereby exposing as much
|
||||
of the variant buffers as possible. Typing `s' again restores
|
||||
of the variant buffers as possible. Typing @kbd{s} again restores
|
||||
the original size of that window.
|
||||
|
||||
With a positive prefix argument, this command enlarges the merge window.
|
||||
|
@ -1164,7 +1165,7 @@ customization and faces) can be done by putting appropriate lines in
|
|||
@file{.Xdefaults}, @file{.xrdb}, or whatever X resource file is in use.
|
||||
|
||||
With respect to the latter, please note that the X resource
|
||||
for Ediff customization is `Ediff', @emph{not} `emacs'.
|
||||
for Ediff customization is ``Ediff'', @emph{not} ``emacs''.
|
||||
@xref{Window and Frame Configuration},
|
||||
@xref{Highlighting Difference Regions}, for further details. Please also
|
||||
refer to Emacs manual for the information on how to set Emacs X resources.
|
||||
|
@ -1510,7 +1511,7 @@ We shall call these regular expressions @var{regexp-A}, @var{regexp-B} and
|
|||
@var{regexp-C}.
|
||||
Ediff will then start stepping through only those difference regions
|
||||
where the region in buffer A matches @var{regexp-A} and/or the region in
|
||||
buffer B matches @var{regexp-B}, etc. Whether `and' or `or' will be used
|
||||
buffer B matches @var{regexp-B}, etc. Whether ``and'' or ``or'' will be used
|
||||
depends on how you respond to a question.
|
||||
|
||||
When scanning difference regions for the aforesaid regular expressions,
|
||||
|
@ -1888,10 +1889,11 @@ Otherwise, you may have to tune the values of the variables
|
|||
@item ediff-patch-options
|
||||
Options to pass to @code{ediff-patch-program}.
|
||||
|
||||
Note: the `-b' and `-z' options should be specified in
|
||||
`ediff-backup-specs', not in @code{ediff-patch-options}.
|
||||
Note: the @option{-b} and @option{-z} options should be specified in
|
||||
@code{ediff-backup-specs}, not in @code{ediff-patch-options}.
|
||||
|
||||
It is recommended to pass the `-f' option to the patch program, so it won't
|
||||
It is recommended to pass the @option{-f} option to the patch program,
|
||||
so it won't
|
||||
ask questions. However, some implementations don't accept this option, in
|
||||
which case the default value of this variable should be changed.
|
||||
|
||||
|
@ -1901,19 +1903,23 @@ Backup extension used by the patch program. Must be specified, even if
|
|||
@item ediff-backup-specs
|
||||
Backup directives to pass to the patch program.
|
||||
Ediff requires that the old version of the file (before applying the patch)
|
||||
is saved in a file named @file{the-patch-file.extension}. Usually
|
||||
`extension' is `.orig', but this can be changed by the user, and may also be
|
||||
is saved in a file named @file{the-patch-file.@var{extension}}.
|
||||
Usually @var{extension} is @file{.orig}, but this can be changed by
|
||||
the user, and may also be
|
||||
system-dependent. Therefore, Ediff needs to know the backup extension used
|
||||
by the patch program.
|
||||
|
||||
Some versions of the patch program let the user specify `-b backup-extension'.
|
||||
Other versions only permit `-b', which (usually) assumes the extension `.orig'.
|
||||
Yet others force you to use `-z<backup-extension>'.
|
||||
Some versions of the patch program let the user specify @option{-b
|
||||
@var{extension}} to specify a backup file name extension. Other
|
||||
versions only permit @option{-b}, which (usually) assumes the
|
||||
extension @file{.orig}. Yet others force you to use
|
||||
@option{-z@var{extension}}.
|
||||
|
||||
Note that both `ediff-backup-extension' and `ediff-backup-specs' must be
|
||||
properly set. If your patch program takes the option `-b', but not
|
||||
`-b extension', the variable `ediff-backup-extension' must still
|
||||
be set so Ediff will know which extension to use.
|
||||
Both @code{ediff-backup-extension} and @var{ediff-backup-specs} must
|
||||
be properly set. If your patch program takes the option @option{-b},
|
||||
but not @option{-b @var{extension}}, the variable
|
||||
@code{ediff-backup-extension} must still be set so Ediff will know
|
||||
which extension to use.
|
||||
|
||||
@item ediff-custom-diff-program
|
||||
@itemx ediff-custom-diff-options
|
||||
|
@ -2105,7 +2111,7 @@ typing @kbd{s}. This change is temporary, until Ediff finds a reason to
|
|||
redraw the screen. Typing @kbd{s} again restores the original window size.
|
||||
|
||||
With a positive prefix argument, the @kbd{s} command will make the merge
|
||||
window slightly taller. This change is persistent. With `@kbd{-}' or
|
||||
window slightly taller. This change is persistent. With ``@kbd{-}'' or
|
||||
with a negative prefix argument, the command @kbd{s} makes the merge
|
||||
window slightly shorter. This change also persistent.
|
||||
|
||||
|
|
|
@ -710,7 +710,7 @@ functions are bound to @key{F7}, @key{F8}, @kbd{GOLD-F8}, @key{F9},
|
|||
|
||||
@item
|
||||
The original EDT emulation package set up many default regular and GOLD
|
||||
bindings. We tried to preserve most (but not all!) of these, so users
|
||||
bindings. We tried to preserve most (but not all!)@: of these, so users
|
||||
of the original emulation package will feel more at home.
|
||||
|
||||
Nevertheless, there are still many GOLD key sequences which are not
|
||||
|
|
|
@ -22,7 +22,7 @@ Copyright @copyright{} 2008, 2010-2015 Free Software Foundation, Inc.
|
|||
@quotation
|
||||
This list of frequently asked questions about GNU Emacs on MS Windows
|
||||
with answers (``FAQ'') may be translated into other languages,
|
||||
transformed into other formats (e.g. Texinfo, Info, WWW), and updated
|
||||
transformed into other formats (e.g., Texinfo, Info, WWW), and updated
|
||||
with new information.
|
||||
|
||||
The same conditions apply to any derivative of the FAQ as apply to the FAQ
|
||||
|
@ -594,7 +594,7 @@ Subject: Re: Re[2]: problem with caps/ctrl swap on NT 4.0
|
|||
@smallexample
|
||||
It's a binary value that lets you map keystrokes in the low-level keyboard
|
||||
drivers in NT. As a result you don't have to worry about applications
|
||||
bypassing mappings that you've done at a higher level (i.e. it just works).
|
||||
bypassing mappings that you've done at a higher level (i.e., it just works).
|
||||
|
||||
Here's the format of the value:
|
||||
|
||||
|
@ -674,7 +674,7 @@ The minor mode @code{transient-mark-mode} changes the behavior of
|
|||
the mark in two ways. First, it distinguishes between an active mark
|
||||
that has just been defined or reactivated, and an inactive mark. When
|
||||
the mark is active, some commands that normally act on lines, words,
|
||||
buffers etc. will instead act on the region. An inactive mark needs
|
||||
buffers, etc., will instead act on the region. An inactive mark needs
|
||||
to be reactivated to operate on it, unless @code{mark-even-if-inactive}
|
||||
is set. Secondly, @code{transient-mark-mode} also highlights the
|
||||
region when it is active, providing the same visual clue that you get
|
||||
|
@ -2029,8 +2029,8 @@ select it. For arguments, use @option{+$(CurLine)}
|
|||
(the quotes around FilePath handle paths with spaces in them). Set the
|
||||
Menu Text to say "Em&acs". The @option{+$(CurLine)} will set point in
|
||||
Emacs to the same line as the cursor position in VC++. The ampersand
|
||||
in the word @code{Em&acs} allows you to select emacs from the keyboard. (E
|
||||
is already used for the OLE control test container.)
|
||||
in the word @code{Em&acs} allows you to select emacs from the keyboard.
|
||||
(E is already used for the OLE control test container.)
|
||||
|
||||
You should now be able to go to any source file in your project. Then,
|
||||
use the pull-down menu @code{Tools->Emacs}. The active file in your
|
||||
|
|
|
@ -3670,7 +3670,7 @@ for deleting the previous character outside of Emacs. On many Unix
|
|||
systems, this command will remap @key{DEL}:
|
||||
|
||||
@example
|
||||
stty erase `^?'
|
||||
stty erase '^?'
|
||||
@end example
|
||||
|
||||
@item
|
||||
|
@ -3766,8 +3766,8 @@ You can swap two keys (or key sequences) by using the
|
|||
into @key{DEL} and @key{DEL} to @kbd{C-h}, use
|
||||
|
||||
@lisp
|
||||
(keyboard-translate ?\C-h ?\C-?) ; translate `C-h' to DEL
|
||||
(keyboard-translate ?\C-? ?\C-h) ; translate DEL to `C-h'.
|
||||
(keyboard-translate ?\C-h ?\C-?) ; translate 'C-h' to DEL
|
||||
(keyboard-translate ?\C-? ?\C-h) ; translate DEL to 'C-h'.
|
||||
@end lisp
|
||||
|
||||
@noindent
|
||||
|
|
|
@ -140,13 +140,13 @@ constructor. The constructor is a function with the same name as your
|
|||
class which returns a new instance of that class. Here is an example:
|
||||
|
||||
@example
|
||||
(setq rec (record "Eric" :name "Eric" :birthday "June" :phone "555-5555"))
|
||||
(setq rec (record :name "Eric" :birthday "June" :phone "555-5555"))
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
The first argument is the name given to this instance. Each instance
|
||||
is given a name, so different instances can be easily distinguished
|
||||
when debugging.
|
||||
For backward compatibility reasons, the first argument can be a string (a name
|
||||
given to this instance). Each instance used to be given a name, so different
|
||||
instances could be easily distinguished when debugging.
|
||||
|
||||
It can be a bit repetitive to also have a :name slot. To avoid doing
|
||||
this, it is sometimes handy to use the base class @code{eieio-named}.
|
||||
|
@ -233,7 +233,7 @@ first argument, and this one must be an @eieio{} type.
|
|||
@item Support for metaclasses
|
||||
There is just one default metaclass, @code{eieio-default-superclass},
|
||||
and you cannot define your own. The @code{:metaclass} tag in
|
||||
@code{defclass} is ignored. Also, functions like `find-class', which
|
||||
@code{defclass} is ignored. Also, functions like @code{find-class}, which
|
||||
should return instances of the metaclass, behave differently in
|
||||
@eieio{} in that they return symbols or plain structures instead.
|
||||
|
||||
|
@ -244,7 +244,7 @@ EIEIO does not support it.
|
|||
This CLOS method tag is non-functional.
|
||||
|
||||
@item :default-initargs in @code{defclass}
|
||||
Each slot has an @code{:initarg} tag, so this is not really necessary.
|
||||
Each slot can have an @code{:initform} tag, so this is not really necessary.
|
||||
|
||||
@item Mock object initializers
|
||||
Each class contains a mock object used for fast initialization of
|
||||
|
@ -266,10 +266,9 @@ To create a new class, use the @code{defclass} macro:
|
|||
@defmac defclass class-name superclass-list slot-list &rest options-and-doc
|
||||
|
||||
Create a new class named @var{class-name}. The class is represented
|
||||
by a self-referential symbol with the name @var{class-name}. @eieio{}
|
||||
stores the structure of the class as a symbol property of
|
||||
@var{class-name} (@pxref{Symbol Components,,,elisp,GNU Emacs Lisp
|
||||
Reference Manual}).
|
||||
by a symbol with the name @var{class-name}. @eieio{} stores the structure of
|
||||
the class as a symbol property of @var{class-name} (@pxref{Symbol
|
||||
Components,,,elisp,GNU Emacs Lisp Reference Manual}).
|
||||
|
||||
The @var{class-name} symbol's variable documentation string is a
|
||||
modified version of the doc string found in @var{options-and-doc}.
|
||||
|
@ -292,17 +291,12 @@ or @code{:protection}.
|
|||
@end defmac
|
||||
|
||||
@noindent
|
||||
Whenever defclass is used to create a new class, two predicates are
|
||||
created for it, named @code{@var{CLASS-NAME}-p} and
|
||||
@code{@var{CLASS-NAME}-child-p}:
|
||||
Whenever defclass is used to create a new class, a predicate is
|
||||
created for it, named @code{@var{CLASS-NAME}-p}:
|
||||
|
||||
@defun CLASS-NAME-p object
|
||||
Return @code{t} if @var{OBJECT} is of the class @var{CLASS-NAME}.
|
||||
@end defun
|
||||
|
||||
@defun CLASS-NAME-child-p object
|
||||
Return @code{t} if @var{OBJECT} is of the class @var{CLASS-NAME},
|
||||
or is of a subclass of @var{CLASS-NAME}.
|
||||
Return non-@code{nil} if and only if @var{OBJECT} is of the class
|
||||
@var{CLASS-NAME}.
|
||||
@end defun
|
||||
|
||||
@defvar eieio-error-unsupported-class-tags
|
||||
|
@ -418,7 +412,7 @@ Valid tags are:
|
|||
@table @code
|
||||
@item :initarg
|
||||
A symbol that can be used in the argument list of the constructor to
|
||||
specify a value for the new instance being created.
|
||||
specify a value for this slot of the new instance being created.
|
||||
|
||||
A good symbol to use for initarg is one that starts with a colon @code{:}.
|
||||
|
||||
|
@ -428,13 +422,13 @@ The slot specified like this:
|
|||
@end example
|
||||
could then be initialized to the number 1 like this:
|
||||
@example
|
||||
(myobject "name" :myslot 1)
|
||||
(myobject :myslot 1)
|
||||
@end example
|
||||
|
||||
@xref{Making New Objects}.
|
||||
|
||||
@item :initform
|
||||
A expression used as the default value for this slot.
|
||||
An expression used as the default value for this slot.
|
||||
|
||||
If @code{:initform} is left out, that slot defaults to being unbound.
|
||||
It is an error to reference an unbound slot, so if you need
|
||||
|
@ -445,19 +439,13 @@ Use @code{slot-boundp} to test if a slot is unbound
|
|||
(@pxref{Predicates}). Use @code{slot-makeunbound} to set a slot to
|
||||
being unbound after giving it a value (@pxref{Accessing Slots}).
|
||||
|
||||
The value passed to initform is automatically quoted. Thus,
|
||||
The value passed to initform used to be automatically quoted. Thus,
|
||||
@example
|
||||
:initform (1 2 3)
|
||||
@end example
|
||||
appears as the specified list in the default object.
|
||||
A symbol that is a function like this:
|
||||
@example
|
||||
:initform +
|
||||
@end example
|
||||
will set the initial value as that symbol.
|
||||
|
||||
After a class has been created with @code{defclass}, you can change
|
||||
that default value with @code{oset-default}. @ref{Accessing Slots}.
|
||||
will use the list as a value. This is incompatible with CLOS (which would
|
||||
signal an error since 1 is not a valid function) and will likely change in the
|
||||
future, so better quote your initforms if they're just values.
|
||||
|
||||
@item :type
|
||||
An unquoted type specifier used to validate data set into this slot.
|
||||
|
@ -669,7 +657,7 @@ can do any valid Lispy thing you want with it, such as
|
|||
Example of creating an object from a class:
|
||||
|
||||
@example
|
||||
(record "test" :value 3 :reference nil)
|
||||
(record :value 3 :reference nil)
|
||||
@end example
|
||||
|
||||
@end defun
|
||||
|
@ -692,15 +680,6 @@ for each slot. For example:
|
|||
(make-instance @code{'foo} @code{:slot1} value1 @code{:slotN} valueN)
|
||||
@end example
|
||||
|
||||
Compatibility note:
|
||||
|
||||
If the first element of @var{initargs} is a string, it is used as the
|
||||
name of the class.
|
||||
|
||||
In @eieio{}, the class' constructor requires a name for use when printing.
|
||||
@dfn{make-instance} in CLOS doesn't use names the way Emacs does, so the
|
||||
class is used as the name slot instead when @var{initargs} doesn't start with
|
||||
a string.
|
||||
@end defun
|
||||
|
||||
@node Accessing Slots
|
||||
|
@ -717,14 +696,9 @@ This macro sets the value behind @var{slot} to @var{value} in
|
|||
@end defmac
|
||||
|
||||
@defmac oset-default class slot value
|
||||
This macro sets the @code{:initform} for @var{slot} in @var{class} to
|
||||
This macro sets the value for the class-allocated @var{slot} in @var{class} to
|
||||
@var{value}.
|
||||
|
||||
This allows the user to set both public and private defaults after the
|
||||
class has been constructed, and provides a way to configure the
|
||||
default behavior of packages built with classes (the same way
|
||||
@code{setq-default} does for buffer-local variables).
|
||||
|
||||
For example, if a user wanted all @code{data-objects} (@pxref{Building
|
||||
Classes}) to inform a special object of his own devising when they
|
||||
changed, this can be arranged by simply executing this bit of code:
|
||||
|
@ -737,16 +711,12 @@ changed, this can be arranged by simply executing this bit of code:
|
|||
@defmac oref obj slot
|
||||
@anchor{oref}
|
||||
Retrieve the value stored in @var{obj} in the slot named by @var{slot}.
|
||||
Slot is the name of the slot when created by @dfn{defclass} or the label
|
||||
created by the @code{:initarg} tag.
|
||||
Slot is the name of the slot when created by @dfn{defclass}.
|
||||
@end defmac
|
||||
|
||||
@defmac oref-default obj slot
|
||||
@defmac oref-default class slot
|
||||
@anchor{oref-default}
|
||||
Gets the default value of @var{obj} (maybe a class) for @var{slot}.
|
||||
The default value is the value installed in a class with the @code{:initform}
|
||||
tag. @var{slot} can be the slot name, or the tag specified by the @code{:initarg}
|
||||
tag in the @dfn{defclass} call.
|
||||
Get the value of the class-allocated @var{slot} from @var{class}.
|
||||
@end defmac
|
||||
|
||||
The following accessors are defined by CLOS to reference or modify
|
||||
|
@ -812,7 +782,7 @@ Where each @var{var} is the local variable given to the associated
|
|||
variable name of the same name as the slot.
|
||||
|
||||
@example
|
||||
(defclass myclass () (x :initarg 1))
|
||||
(defclass myclass () (x :initform 1))
|
||||
(setq mc (make-instance 'myclass))
|
||||
(with-slots (x) mc x) => 1
|
||||
(with-slots ((something x)) mc something) => 1
|
||||
|
@ -986,15 +956,14 @@ allows the first argument to be cast.
|
|||
@section Static Methods
|
||||
|
||||
Static methods do not depend on an object instance, but instead
|
||||
operate on an object's class. You can create a static method by using
|
||||
operate on a class. You can create a static method by using
|
||||
the @code{:static} key with @code{defmethod}.
|
||||
|
||||
Do not treat the first argument of a @code{:static} method as an
|
||||
object unless you test it first. Use the functions
|
||||
@code{oref-default} or @code{oset-default} which will work on a class,
|
||||
or on the class of an object.
|
||||
The first argument of a @code{:static} method will be a class rather than an
|
||||
object. Use the functions @code{oref-default} or @code{oset-default} which
|
||||
will work on a class.
|
||||
|
||||
A Class' @code{constructor} method is defined as a @code{:static}
|
||||
A class's @code{make-instance} method is defined as a @code{:static}
|
||||
method.
|
||||
|
||||
@b{Note:} The @code{:static} keyword is unique to @eieio{}.
|
||||
|
@ -1085,13 +1054,6 @@ For example:
|
|||
Will fetch the documentation string for @code{eieio-default-superclass}.
|
||||
@end defun
|
||||
|
||||
@defun class-constructor class
|
||||
Return a symbol used as a constructor for @var{class}. The
|
||||
constructor is a function used to create new instances of
|
||||
@var{CLASS}. This function provides a way to make an object of a class
|
||||
without knowing what it is. This is not a part of CLOS.
|
||||
@end defun
|
||||
|
||||
@defun eieio-object-name obj
|
||||
Return a string of the form @samp{#<object-class myobjname>} for @var{obj}.
|
||||
This should look like Lisp symbols from other parts of Emacs such as
|
||||
|
@ -1105,11 +1067,6 @@ information into the symbol.
|
|||
Returns the class symbol from @var{obj}.
|
||||
@end defun
|
||||
|
||||
@defun eieio--object-class obj
|
||||
Same as @code{eieio-object-class} except this is a macro, and no
|
||||
type-checking is performed.
|
||||
@end defun
|
||||
|
||||
@defun eieio-object-class-name obj
|
||||
Returns the symbol of @var{obj}'s class.
|
||||
@end defun
|
||||
|
@ -1267,7 +1224,7 @@ Return the list of public slots for @var{obj}.
|
|||
@end defun
|
||||
|
||||
@defun class-slot-initarg class slot
|
||||
For the given @var{class} return the :initarg associated with
|
||||
For the given @var{class} return an :initarg associated with
|
||||
@var{slot}. Not all slots have initargs, so the return value can be
|
||||
@code{nil}.
|
||||
@end defun
|
||||
|
@ -1612,7 +1569,7 @@ is a list of name/value pairs. These are actually just passed to
|
|||
Sets slots of @var{obj} with @var{slots} which is a list of name/value
|
||||
pairs.
|
||||
|
||||
This is called from the default @code{constructor}.
|
||||
This is called from the default constructor.
|
||||
@end defun
|
||||
|
||||
@node Basic Methods
|
||||
|
|
|
@ -266,54 +266,54 @@ This is a summary of keystrokes available in every ERC buffer.
|
|||
|
||||
@table @kbd
|
||||
|
||||
@item C-a or <home> (`erc-bol')
|
||||
@item C-a or <home> (@code{erc-bol})
|
||||
Go to beginning of line or end of prompt.
|
||||
|
||||
@item RET (`erc-send-current-line')
|
||||
@item RET (@code{erc-send-current-line})
|
||||
Send the current line
|
||||
|
||||
@item TAB (`erc-complete-word')
|
||||
@item TAB (@code{erc-complete-word})
|
||||
If at prompt, complete the current word.
|
||||
Otherwise, move to the next link or button.
|
||||
|
||||
@item M-TAB (`ispell-complete-word')
|
||||
@item M-TAB (@code{ispell-complete-word})
|
||||
Complete the given word, using ispell.
|
||||
|
||||
@item C-c C-a (`erc-bol')
|
||||
@item C-c C-a (@code{erc-bol})
|
||||
Go to beginning of line or end of prompt.
|
||||
|
||||
@item C-c C-b (`erc-iswitchb')
|
||||
Use `iswitchb-read-buffer' to prompt for a ERC buffer to switch to.
|
||||
@item C-c C-b (@code{erc-iswitchb})
|
||||
Use @code{iswitchb-read-buffer} to prompt for a ERC buffer to switch to.
|
||||
|
||||
@item C-c C-c (`erc-toggle-interpret-controls')
|
||||
@item C-c C-c (@code{erc-toggle-interpret-controls})
|
||||
Toggle interpretation of control sequences in messages.
|
||||
|
||||
@item C-c C-d (`erc-input-action')
|
||||
@item C-c C-d (@code{erc-input-action})
|
||||
Interactively input a user action and send it to IRC.
|
||||
|
||||
@item C-c C-e (`erc-toggle-ctcp-autoresponse')
|
||||
@item C-c C-e (@code{erc-toggle-ctcp-autoresponse})
|
||||
Toggle automatic CTCP replies (like VERSION and PING).
|
||||
|
||||
@item C-c C-f (`erc-toggle-flood-control')
|
||||
@item C-c C-f (@code{erc-toggle-flood-control})
|
||||
Toggle use of flood control on sent messages.
|
||||
|
||||
@item C-c TAB (`erc-invite-only-mode')
|
||||
@item C-c TAB (@code{erc-invite-only-mode})
|
||||
Turn on the invite only mode (+i) for the current channel.
|
||||
|
||||
@item C-c C-j (`erc-join-channel')
|
||||
@item C-c C-j (@code{erc-join-channel})
|
||||
Join channel. If point is at the beginning of a channel name, use that
|
||||
as default.
|
||||
|
||||
@item C-c C-k (`erc-go-to-log-matches-buffer')
|
||||
@item C-c C-k (@code{erc-go-to-log-matches-buffer})
|
||||
Interactively open an erc-log-matches buffer
|
||||
|
||||
@item C-c C-l (`erc-save-buffer-in-logs')
|
||||
@item C-c C-l (@code{erc-save-buffer-in-logs})
|
||||
Append buffer contents to the log file, if logging is enabled.
|
||||
|
||||
@item C-c C-n (`erc-channel-names')
|
||||
@item C-c C-n (@code{erc-channel-names})
|
||||
Run "/names #channel" in the current channel.
|
||||
|
||||
@item C-c C-o (`erc-get-channel-mode-from-keypress')
|
||||
@item C-c C-o (@code{erc-get-channel-mode-from-keypress})
|
||||
Read a key sequence and call the corresponding channel mode function.
|
||||
After doing @kbd{C-c C-o}, type in a channel mode letter.
|
||||
|
||||
|
@ -321,22 +321,22 @@ After doing @kbd{C-c C-o}, type in a channel mode letter.
|
|||
@kbd{RET} lets you type more than one mode at a time.
|
||||
If @kbd{l} is pressed, @code{erc-set-channel-limit} gets called.
|
||||
If @kbd{k} is pressed, @code{erc-set-channel-key} gets called.
|
||||
Anything else will be sent to `erc-toggle-channel-mode'.
|
||||
Anything else will be sent to @code{erc-toggle-channel-mode}.
|
||||
|
||||
@item C-c C-p (`erc-part-from-channel')
|
||||
@item C-c C-p (@code{erc-part-from-channel})
|
||||
Part from the current channel and prompt for a reason.
|
||||
|
||||
@item C-c C-q (`erc-quit-server')
|
||||
@item C-c C-q (@code{erc-quit-server})
|
||||
Disconnect from current server after prompting for reason.
|
||||
|
||||
@item C-c C-r (`erc-remove-text-properties-region')
|
||||
@item C-c C-r (@code{erc-remove-text-properties-region})
|
||||
Clears the region (start,end) in object from all colors, etc.
|
||||
|
||||
@item C-c C-t (`erc-set-topic')
|
||||
@item C-c C-t (@code{erc-set-topic})
|
||||
Prompt for a topic for the current channel.
|
||||
|
||||
@item C-c C-u (`erc-kill-input')
|
||||
Kill current input line using `erc-bol' followed by `kill-line'.
|
||||
@item C-c C-u (@code{erc-kill-input})
|
||||
Kill current input line using @code{erc-bol} followed by @code{kill-line}.
|
||||
|
||||
@end table
|
||||
|
||||
|
|
|
@ -822,7 +822,7 @@ functions.
|
|||
|
||||
While fixtures are a useful syntactic simplification in other
|
||||
languages, this does not apply to Lisp, where higher-order functions
|
||||
and `unwind-protect' are available. One way to implement and use a
|
||||
and @code{unwind-protect} are available. One way to implement and use a
|
||||
fixture in ERT is
|
||||
|
||||
@lisp
|
||||
|
@ -851,7 +851,7 @@ be added but would provide only a minor simplification.
|
|||
|
||||
(If you are interested in such syntax, note that splitting set-up and
|
||||
tear-down into separate functions, like *Unit tools usually do, makes
|
||||
it impossible to establish dynamic `let' bindings as part of the
|
||||
it impossible to establish dynamic @code{let} bindings as part of the
|
||||
fixture. So, blindly imitating the way fixtures are implemented in
|
||||
other languages would be counter-productive in Lisp.)
|
||||
|
||||
|
|
|
@ -250,7 +250,7 @@ need to use a function that takes some other data type, you will need to
|
|||
call it in an Elisp expression (which can also be used with
|
||||
@ref{Expansion, expansions}). As with other shells, you can
|
||||
escape special characters and spaces with the backslash (@code{\}) and
|
||||
the single (@code{''}) and double (@code{""}) quotes.
|
||||
apostrophes (@code{''}) and double quotes (@code{""}).
|
||||
|
||||
@node Built-ins
|
||||
|
||||
|
@ -298,6 +298,12 @@ with no arguments, prints the current paths in this variable.
|
|||
Define an alias (@pxref{Aliases}). This does not add it to the aliases
|
||||
file.
|
||||
|
||||
@item clear
|
||||
@cmindex clear
|
||||
Scrolls the contents of the eshell window out of sight, leaving a blank window.
|
||||
If provided with an optional non-nil argument, the scrollback contents are
|
||||
cleared instead.
|
||||
|
||||
@item date
|
||||
@cmindex date
|
||||
Similar to, but slightly different from, the GNU Coreutils
|
||||
|
@ -654,6 +660,16 @@ not @samp{git status} -- use @code{eshell-visual-subcommands}; and for
|
|||
commands that are visual only when passed certain options, use
|
||||
@code{eshell-visual-options}.
|
||||
|
||||
Caution: Some tools such as Git use the pager @samp{less} by default
|
||||
to paginate their output but call it with its @samp{-F} option. This
|
||||
option causes @samp{less} to echo the output instead of paginating it
|
||||
if the output is less than one page long. This causes undesirable
|
||||
behavior if, e.g., @samp{git diff}, is defined as a visual subcommand.
|
||||
It'll work if the output is big enough and fail if it is less than one
|
||||
page long. If that occurs to you, search for configuration options
|
||||
for calling @samp{less} without the @samp{-F} option. For Git, you
|
||||
can do that using @samp{git config --global core.pager 'less -+F'}.
|
||||
|
||||
@section Redirection
|
||||
Redirection is mostly the same in Eshell as it is in other command
|
||||
shells. The output redirection operators @code{>} and @code{>>} as
|
||||
|
@ -1136,7 +1152,7 @@ auto-revert mode in that buffer at frequent intervals---and a
|
|||
|
||||
@item Make @command{dgrep} load @code{dired}, mark everything, then invoke @code{dired-do-search}
|
||||
|
||||
@item Write mesh.c
|
||||
@item Write @file{mesh.c}
|
||||
|
||||
This would run Emacs with the appropriate arguments to invoke Eshell
|
||||
only. That way, it could be listed as a login shell.
|
||||
|
@ -1145,7 +1161,8 @@ only. That way, it could be listed as a login shell.
|
|||
|
||||
@item Auto-detect when a command is visual, by checking @code{TERMCAP} usage
|
||||
|
||||
@item The first keypress after @kbd{M-x watson} triggers `eshell-send-input'
|
||||
@item The first keypress after @kbd{M-x watson} triggers
|
||||
@code{eshell-send-input}
|
||||
|
||||
@item Make @kbd{/} electric
|
||||
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
@settitle Emacs Unified Directory Client (EUDC) Manual
|
||||
@afourpaper
|
||||
@documentencoding UTF-8
|
||||
@syncodeindex fn cp
|
||||
@syncodeindex vr cp
|
||||
@c %**end of header
|
||||
|
||||
@copying
|
||||
|
@ -61,8 +63,7 @@ modify this GNU manual.''
|
|||
* Usage:: The various usage possibilities explained
|
||||
* Credits:: Who's done what
|
||||
* GNU Free Documentation License:: The license for this documentation.
|
||||
* Command and Function Index::
|
||||
* Variables Index::
|
||||
* Index::
|
||||
@end menu
|
||||
|
||||
|
||||
|
@ -220,15 +221,36 @@ email composition buffers (@pxref{Inline Query Expansion})
|
|||
@section LDAP Configuration
|
||||
|
||||
LDAP support is added by means of @file{ldap.el}, which is part of
|
||||
Emacs. @file{ldap.el} needs an external command line utility named
|
||||
@file{ldapsearch}, available as part of OpenLDAP
|
||||
Emacs. @file{ldap.el} needs an external program called
|
||||
@command{ldapsearch}, available as part of OpenLDAP
|
||||
(@url{http://www.openldap.org/}). The configurations in this section
|
||||
were tested with OpenLDAP 2.4.23.
|
||||
|
||||
Most servers use LDAP-over-SSL these days; the examples here reflect
|
||||
that. The other possibilities are:
|
||||
|
||||
@vindex ldap-host-parameters-alist
|
||||
@vindex ldap-ldapsearch-args
|
||||
@itemize @bullet
|
||||
|
||||
@item
|
||||
Servers that do not require authentication or that do not encrypt
|
||||
authentication traffic.
|
||||
|
||||
Include @code{auth simple} in @code{ldap-host-parameters-alist}, which
|
||||
causes the @code{-x} option to be passed to @command{ldapsearch}.
|
||||
|
||||
@item
|
||||
Servers that require SASL authentication.
|
||||
|
||||
Pass any required extra options to @command{ldapsearch} using
|
||||
@code{ldap-ldapsearch-args}.
|
||||
@end itemize
|
||||
|
||||
The following examples use a base of
|
||||
@code{ou=people,dc=example,dc=com} and the host name
|
||||
@code{directory.example.com}, a server that supports LDAP-over-SSL
|
||||
(the @code{ldaps} protocol, with default port @code{636}) and which
|
||||
@code{ou=people,dc=gnu,dc=org} and the host name
|
||||
@code{ldap.gnu.org}, a server that supports LDAP-over-SSL (the
|
||||
@code{ldaps} protocol, with default port @code{636}) and which
|
||||
requires authentication by the user @code{emacsuser} with password
|
||||
@code{s3cr3t}.
|
||||
|
||||
|
@ -244,14 +266,22 @@ example, attempting to TAB-complete the following:
|
|||
To: * Smith
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
will return all LDAP entries with surnames that begin with
|
||||
@code{Smith}. In every LDAP query it makes, EUDC implicitly appends
|
||||
the wildcard character to the end of the last word.
|
||||
|
||||
@menu
|
||||
* Emacs-only Configuration:: Configure with @file{.emacs}
|
||||
* External Configuration:: Configure with @file{/etc/openldap/ldap.conf}
|
||||
* Troubleshooting:: Debug @command{ldapsearch} failures
|
||||
@end menu
|
||||
|
||||
@node Emacs-only Configuration
|
||||
@subsection Emacs-only Configuration
|
||||
|
||||
Emacs can pass most required configuration options via the
|
||||
@file{ldapsearch} command-line. One exception is certificate
|
||||
@command{ldapsearch} command-line. One exception is certificate
|
||||
configuration for LDAP-over-SSL, which must be specified in
|
||||
@file{/etc/openldap/ldap.conf}. On systems that provide such
|
||||
certificates as part of the @code{OpenLDAP} installation, this can be
|
||||
|
@ -264,19 +294,28 @@ TLS_CACERTDIR /etc/openldap/certs
|
|||
In @file{.emacs}, these expressions suffice to configure EUDC for
|
||||
LDAP:
|
||||
|
||||
@vindex message-mode-map
|
||||
@findex eudc-expand-inline
|
||||
@vindex eudc-server-hotlist
|
||||
@vindex ldap-host-parameters-alist
|
||||
@lisp
|
||||
(eval-after-load "message"
|
||||
'(define-key message-mode-map (kbd "TAB") 'eudc-expand-inline))
|
||||
(customize-set-variable 'eudc-server-hotlist
|
||||
'(("" . bbdb)
|
||||
("ldaps://directory.example.com" . ldap)))
|
||||
("ldaps://ldap.gnu.org" . ldap)))
|
||||
(customize-set-variable 'ldap-host-parameters-alist
|
||||
'(("ldaps://directory.example.com"
|
||||
base "ou=people,dc=example,dc=com"
|
||||
binddn "example\\emacsuser"
|
||||
'(("ldaps://ldap.gnu.org"
|
||||
base "ou=people,dc=gnu,dc=org"
|
||||
binddn "gnu\\emacsuser"
|
||||
passwd ldap-password-read)))
|
||||
@end lisp
|
||||
|
||||
@findex ldap-password-read
|
||||
@vindex passwd
|
||||
@vindex password-cache
|
||||
@vindex password-cache-expiry
|
||||
@findex password-reset
|
||||
Specifying the function @code{ldap-password-read} for @code{passwd}
|
||||
will cause Emacs to prompt interactively for the password. The
|
||||
password will then be validated and cached, unless
|
||||
|
@ -285,60 +324,91 @@ password will then be validated and cached, unless
|
|||
password is cached. If you want to clear the cache, call
|
||||
@code{password-reset}.
|
||||
|
||||
@node External Configuration
|
||||
@subsection External Configuration
|
||||
|
||||
Your system may already be configured for a default LDAP server. For
|
||||
example, @file{/etc/openldap/ldap.conf} might contain:
|
||||
|
||||
@example
|
||||
BASE ou=people,dc=example,dc=com
|
||||
URI ldaps://directory.example.com
|
||||
BASE ou=people,dc=gnu,dc=org
|
||||
URI ldaps://ldap.gnu.org
|
||||
TLS_CACERTDIR /etc/openldap/certs
|
||||
@end example
|
||||
|
||||
To authenticate, the @dfn{bind distinguished name (binddn)} is
|
||||
required, in this case, @code{example\emacsuser}, along with the
|
||||
password. These can be specified in @file{~/.authinfo.gpg} with the
|
||||
following line:
|
||||
@cindex bind distinguished name
|
||||
@cindex binddn
|
||||
Authentication requires a password, and a @dfn{bind distinguished name
|
||||
(binddn)} representing the user, in this case,
|
||||
@code{gnu\emacsuser}. These can be specified in
|
||||
@file{~/.authinfo.gpg} with the following line:
|
||||
|
||||
@example
|
||||
machine ldaps://directory.example.com binddn example\emacsuser password s3cr3t
|
||||
machine ldaps://ldap.gnu.org binddn gnu\emacsuser password s3cr3t
|
||||
@end example
|
||||
|
||||
Then in the @file{.emacs} init file, these expressions suffice to
|
||||
configure EUDC for LDAP:
|
||||
|
||||
@vindex message-mode-map
|
||||
@findex eudc-expand-inline
|
||||
@vindex eudc-server-hotlist
|
||||
@vindex ldap-host-parameters-alist
|
||||
@lisp
|
||||
(eval-after-load "message"
|
||||
'(define-key message-mode-map (kbd "TAB") 'eudc-expand-inline))
|
||||
(customize-set-variable 'eudc-server-hotlist
|
||||
'(("" . bbdb)
|
||||
("ldaps://directory.example.com" . ldap)))
|
||||
("ldaps://ldap.gnu.org" . ldap)))
|
||||
(customize-set-variable 'ldap-host-parameters-alist
|
||||
'(("ldaps://directory.example.com"
|
||||
'(("ldaps://ldap.gnu.org"
|
||||
auth-source t)))
|
||||
@end lisp
|
||||
|
||||
For this example where we only care about one server, the server name
|
||||
can be omitted in @file{~/.authinfo.gpg} and @file{.emacs}, in which
|
||||
case @file{ldapsearch} defaults to the host name in
|
||||
case @command{ldapsearch} defaults to the host name in
|
||||
@file{/etc/openldap/ldap.conf}.
|
||||
|
||||
The @file{~/.authinfo.gpg} line becomes:
|
||||
|
||||
@example
|
||||
binddn example\emacsuser password s3cr3t
|
||||
binddn gnu\emacsuser password s3cr3t
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
and the @file{.emacs} expressions become:
|
||||
|
||||
@vindex message-mode-map
|
||||
@findex eudc-expand-inline
|
||||
@vindex eudc-server-hotlist
|
||||
@vindex ldap-host-parameters-alist
|
||||
@lisp
|
||||
(eval-after-load "message"
|
||||
'(define-key message-mode-map (kbd "TAB") 'eudc-expand-inline))
|
||||
(customize-set-variable 'eudc-server-hotlist '(("" . bbdb) ("" . ldap)))
|
||||
(customize-set-variable 'ldap-host-parameters-alist '(("" auth-source t)))
|
||||
(customize-set-variable 'eudc-server-hotlist
|
||||
'(("" . bbdb) ("" . ldap)))
|
||||
(customize-set-variable 'ldap-host-parameters-alist
|
||||
'(("" auth-source t)))
|
||||
@end lisp
|
||||
|
||||
@node Troubleshooting
|
||||
@subsection Troubleshooting
|
||||
|
||||
If @command{ldapsearch} exits with an error, you'll see a message like
|
||||
this in the @code{*Messages*} buffer (all on one line):
|
||||
|
||||
@example
|
||||
ldap-search-internal: Failed ldapsearch invocation:
|
||||
ldapsearch "-Hldaps://ldap.gnu.org" "-bou=people,dc=gnu,dc=org"
|
||||
"-Dgnu\emacsuser" "-W" "-LL" "-tt" "(&(mail=name*))"
|
||||
"givenname" "sn" "mail"
|
||||
@end example
|
||||
|
||||
The @command{ldapsearch} command is formatted such that it can be
|
||||
copied and pasted into a terminal. Set the @command{ldapsearch} debug
|
||||
level to 5 by appending @code{-d 5} to the command line.
|
||||
|
||||
@node Usage
|
||||
@chapter Usage
|
||||
|
||||
|
@ -397,7 +467,7 @@ may be specified by appending a colon and a number to the name of the
|
|||
server. You will not need this unless your server runs on a port other
|
||||
than the default (which depends on the protocol).
|
||||
If the directory server resides on your own computer (which is the case
|
||||
if you use the BBDB back end) then `localhost' is a reasonable value but
|
||||
if you use the BBDB back end) then @samp{localhost} is a reasonable value but
|
||||
it will be ignored anyway.
|
||||
@end defvar
|
||||
|
||||
|
@ -810,11 +880,11 @@ trying to perform an inline query. Possible values are:
|
|||
Only the current directory server is tried
|
||||
@item hotlist
|
||||
The servers in the hotlist are tried in order until one finds a match
|
||||
for the query or `eudc-max-servers-to-query' is reached
|
||||
for the query or @code{eudc-max-servers-to-query} is reached
|
||||
@item server-then-hotlist
|
||||
The current server then the servers in the hotlist are tried in the
|
||||
order they appear in the hotlist until one of them finds a match or
|
||||
`eudc-max-servers-to-query' is reached. This is the default.
|
||||
@code{eudc-max-servers-to-query} is reached. This is the default.
|
||||
@end table
|
||||
@end defvar
|
||||
|
||||
|
@ -1043,14 +1113,9 @@ in testing and proofreading the code and docs of @file{ph.el}.
|
|||
@appendix GNU Free Documentation License
|
||||
@include doclicense.texi
|
||||
|
||||
@node Command and Function Index
|
||||
@unnumbered Command and Function Index
|
||||
@node Index
|
||||
@unnumbered Index
|
||||
|
||||
@printindex fn
|
||||
|
||||
@node Variables Index
|
||||
@unnumbered Variables Index
|
||||
|
||||
@printindex vr
|
||||
@printindex cp
|
||||
|
||||
@bye
|
||||
|
|
|
@ -854,7 +854,7 @@ number of records actually present in the data file.
|
|||
@item Problem saving buffers?
|
||||
An error occurred while saving the data file buffer. Most likely, Emacs
|
||||
did ask to confirm deleting the buffer because it had been modified, and
|
||||
you said `no'.
|
||||
you said ``no''.
|
||||
@end table
|
||||
|
||||
@node Long Example
|
||||
|
|
|
@ -1112,7 +1112,7 @@ resulting in:
|
|||
:O \-> ... | 115 |Raymond Scholz | 1:24
|
||||
:O \-> ... | 19 |Lars Magne Ingebrigt |15:33
|
||||
:O Slow mailing list | 13 |Lars Magne Ingebrigt |Sat 23:49
|
||||
:O Re: `@@' mark not documented | 13 |Lars Magne Ingebrigt |Sat 23:50
|
||||
:O Re: '@@' mark not documented | 13 |Lars Magne Ingebrigt |Sat 23:50
|
||||
:R > Re: Gnus still doesn't count messages prope| 23 |Lars Magne Ingebrigt |Sat 23:57
|
||||
:O \-> ... | 18 |Kai Grossjohann | 0:35
|
||||
:O \-> ... | 13 |Lars Magne Ingebrigt | 0:56
|
||||
|
@ -1501,7 +1501,7 @@ entries. Say @samp{c} to create a new
|
|||
entry, @samp{b} to search your BBDB and
|
||||
@samp{C-o} to add a new field to an
|
||||
entry. If you want to add a sender to the BBDB you can
|
||||
also just hit `:' on the posting in the summary buffer and
|
||||
also just hit @kbd{:} on the posting in the summary buffer and
|
||||
you are done. When you now compose a new mail,
|
||||
hit @samp{TAB} to cycle through know
|
||||
recipients.
|
||||
|
|
|
@ -85,7 +85,7 @@ paragraph-separate: \"[ ]*$\"\nend:\n")
|
|||
(infile (concat dir infile))
|
||||
(buffer (find-file-noselect (concat dir outfile))))
|
||||
(with-temp-buffer
|
||||
;; Could be done using `texinfmt' stuff as in `infohack.el'.
|
||||
;; Could be done using 'texinfmt' stuff as in 'infohack.el'.
|
||||
(insert
|
||||
(shell-command-to-string
|
||||
(concat gnus-news-makeinfo-command " "
|
||||
|
@ -102,7 +102,7 @@ paragraph-separate: \"[ ]*$\"\nend:\n")
|
|||
(save-excursion
|
||||
(while (re-search-forward "^ " nil t)
|
||||
(replace-match "")))
|
||||
;; Avoid `*' from @ref at beginning of line:
|
||||
;; Avoid '*' from @ref at beginning of line:
|
||||
(save-excursion
|
||||
(while (re-search-forward "^\\*Note" nil t)
|
||||
(replace-match " \\&")))
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue