1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-08 15:35:02 +00:00

Merge from emacs-24; up to 2012-12-17T11:17:34Z!rgm@gnu.org

This commit is contained in:
Glenn Morris 2013-02-12 20:31:09 -08:00
commit 01fcc3a532
63 changed files with 242 additions and 180 deletions

View File

@ -726,7 +726,7 @@ the display of the Emacs tool bar. With Riccardo Murri he wrote
Eric Ludlam wrote the Speedbar package; @file{checkdoc.el}, for checking
doc strings in Emacs Lisp programs; @file{dframe.el}, providing
dedicated frame support modes; @file{ezimage.el}, a generalized way to
place images over text; @file{chart.el} for drawing bar charts etc; and
place images over text; @file{chart.el} for drawing bar charts etc.; and
the EIEIO (Enhanced Implementation of Emacs Interpreted Objects)
package. He was also the main author of the CEDET (Collection of Emacs
Development Environment Tools) package. Portions were also written by

View File

@ -131,7 +131,7 @@ detailed description of these mouse commands.
@cindex shift-selection
Finally, you can set the mark by holding down the shift key while
typing certain cursor motion commands (such as @kbd{S-@key{right}},
@kbd{S-C-f}, @kbd{S-C-n}, etc.) This is called @dfn{shift-selection}.
@kbd{S-C-f}, @kbd{S-C-n}, etc.). This is called @dfn{shift-selection}.
It sets the mark at point before moving point, but only if there is no
active mark set via shift-selection. The mark set by mouse commands
and by shift-selection behaves slightly differently from the usual

View File

@ -1,3 +1,16 @@
2013-02-13 Glenn Morris <rgm@gnu.org>
* objects.texi (Char-Table Type): Add footnote about #^^.
* modes.texi (Minor Mode Conventions): Fix typo.
* keymaps.texi (Scanning Keymaps): Remove obsolete sentence about
meta characters; this changed in 22.1. (Bug#13684)
* objects.texi (Char-Table Type): Add cindex.
* keymaps.texi (Key Binding Commands): Trivial rephrasing.
2013-02-10 Glenn Morris <rgm@gnu.org>
* keymaps.texi (Creating Keymaps): Update make-keymap result.

View File

@ -1784,7 +1784,7 @@ that uses @var{key} as a prefix---which would not be allowed if
@end group
@end smallexample
This function is implemented simply using @code{define-key}:
This function is equivalent to using @code{define-key} as follows:
@smallexample
@group
@ -1975,9 +1975,6 @@ modes---minor modes first, then the major mode, then global bindings.
If @var{prefix} is non-@code{nil}, it should be a prefix key; then the
listing includes only keys that start with @var{prefix}.
The listing describes meta characters as @key{ESC} followed by the
corresponding non-meta character.
When several characters with consecutive @acronym{ASCII} codes have the
same definition, they are shown together, as
@samp{@var{firstchar}..@var{lastchar}}. In this instance, you need to

View File

@ -1361,7 +1361,7 @@ follow them is to use the macro @code{define-minor-mode}.
@cindex mode variable
Define a variable whose name ends in @samp{-mode}. We call this the
@dfn{mode variable}. The minor mode command should set this variable.
The value will be @code{nil} is the mode is disabled, and non-@code{nil}
The value will be @code{nil} if the mode is disabled, and non-@code{nil}
if the mode is enabled. The variable should be buffer-local if the
minor mode is buffer-local.

View File

@ -1177,8 +1177,10 @@ inherit from, a default value, and a small number of extra slots to use for
special purposes. A char-table can also specify a single value for
a whole character set.
@cindex @samp{#^} read syntax
The printed representation of a char-table is like a vector
except that there is an extra @samp{#^} at the beginning.
except that there is an extra @samp{#^} at the beginning.@footnote{You
may also encounter @samp{#^^}, used for ``sub-char-tables''.}
@xref{Char-Tables}, for special functions to operate on char-tables.
Uses of char-tables include:

View File

@ -88,7 +88,7 @@ initializes @code{exec-path} when it starts up, based on the value of
the environment variable @env{PATH}. The standard file name
constructs, @samp{~}, @samp{.}, and @samp{..}, are interpreted as
usual in @code{exec-path}, but environment variable substitutions
(@samp{$HOME}, etc.) are not recognized; use
(@samp{$HOME}, etc.)@: are not recognized; use
@code{substitute-in-file-name} to perform them (@pxref{File Name
Expansion}). @code{nil} in this list refers to
@code{default-directory}.
@ -557,7 +557,7 @@ from the process only while waiting for input or for a time delay.
when creating the process, based on the value of the variable
@code{process-connection-type} (see below). Ptys are usually
preferable for processes visible to the user, as in Shell mode,
because they allow for job control (@kbd{C-c}, @kbd{C-z}, etc.)
because they allow for job control (@kbd{C-c}, @kbd{C-z}, etc.)@:
between the process and its children, whereas pipes do not. For
subprocesses used for internal purposes by programs, it is often
better to use a pipe, because they are more efficient, and because
@ -571,7 +571,7 @@ program @var{program} running in it. It returns a process object that
stands for the new subprocess in Lisp. The argument @var{name}
specifies the name for the process object; if a process with this name
already exists, then @var{name} is modified (by appending @samp{<1>},
etc.) to be unique. The buffer @var{buffer-or-name} is the buffer to
etc.)@: to be unique. The buffer @var{buffer-or-name} is the buffer to
associate with the process.
If @var{program} is @code{nil}, Emacs opens a new pseudoterminal (pty)

View File

@ -147,7 +147,7 @@ of \- means standard output; overrides default \fBTAGS\fP or \fBtags\fP.
Make tags based on regexp matching for the files following this option,
in addition to the tags made with the standard parsing based on
language. May be freely intermixed with filenames and the \fB\-R\fP
option. The regexps are cumulative, i.e. each such option will add to
option. The regexps are cumulative, i.e., each such option will add to
the previous ones. The regexps are of one of the forms:
.br
[\fB{\fP\fIlanguage\fP\fB}\fP]\fB/\fP\fItagregexp/\fP[\fInameregexp\fP\fB/\fP]\fImodifiers\fP
@ -283,4 +283,3 @@ Permission is granted to copy and distribute translations of this
document into another language, under the above conditions for
modified versions, except that this permission notice may be stated
in a translation approved by the Free Software Foundation.

View File

@ -72,7 +72,7 @@ existing code and facilitates writing new code.
When the Gnu Ada compiler GNAT is used, the cross-reference
information output by the compiler is used to provide powerful code
navigation (jump to definition, find all uses, etc).
navigation (jump to definition, find all uses, etc.).
When you open a file with a file extension of @file{.ads} or
@file{.adb}, Emacs will automatically load and activate Ada mode.
@ -1267,7 +1267,7 @@ Non-@code{nil} means that the current line will also be re-indented
before inserting a newline, when you press @key{RET}.
@end table
Most of the time, the indentation will be automatic, i.e when you
Most of the time, the indentation will be automatic, i.e., when you
press @key{RET}, the cursor will move to the correct column on the
next line.

View File

@ -314,7 +314,7 @@ The first object spliced into the list (assuming it is a list from a
non-terminal).
@item '$1
The first object matched, placed in a list. i.e. @code{( $1 )}.
The first object matched, placed in a list. I.e., @code{( $1 )}.
@item foo
The symbol @code{foo} (exactly as displayed).

View File

@ -14122,7 +14122,7 @@ conventions. Like C mode, Pascal mode interprets array brackets and uses
a different table of operators. Hexadecimal numbers are entered and
displayed with a preceding dollar sign. (Thus the regular meaning of
@kbd{$2} during algebraic entry does not work in Pascal mode, though
@kbd{$} (and @kbd{$$}, etc.) not followed by digits works the same as
@kbd{$} (and @kbd{$$}, etc.)@: not followed by digits works the same as
always.) No special provisions are made for other non-decimal numbers,
vectors, and so on, since there is no universally accepted standard way
of handling these in Pascal.

View File

@ -4959,7 +4959,7 @@ the declaration is an annotation.
There are a few occasions where a statement block might be used inside
an expression. One is in C or C++ code using the gcc extension for
this, e.g:
this, e.g.:
@example
1: int res = (@{
@ -5552,7 +5552,7 @@ parentheses and statements within brace blocks.
@findex lineup-close-paren (c-)
Line up the closing paren under its corresponding open paren if the
open paren is followed by code. If the open paren ends its line, no
indentation is added. E.g:
indentation is added. E.g.:
@example
@group
@ -5606,7 +5606,7 @@ discussion of this ``DWIM'' measure.
@defun c-indent-one-line-block
@findex indent-one-line-block (c-)
Indent a one line block @code{c-basic-offset} extra. E.g:
Indent a one line block @code{c-basic-offset} extra. E.g.:
@example
@group
@ -5640,7 +5640,7 @@ which makes the function usable in list expressions.
@defun c-indent-multi-line-block
@findex indent-multi-line-block (c-)
Indent a multiline block @code{c-basic-offset} extra. E.g:
Indent a multiline block @code{c-basic-offset} extra. E.g.:
@example
@group
@ -5679,7 +5679,7 @@ block, which makes the function usable in list expressions.
Line up statements for coding standards which place the first statement
in a block on the same line as the block opening brace@footnote{Run-in
style doesn't really work too well. You might need to write your own
custom line-up functions to better support this style.}. E.g:
custom line-up functions to better support this style.}. E.g.:
@example
@group
@ -5762,7 +5762,7 @@ indents relative to the surrounding block just like
@defun c-lineup-whitesmith-in-block
@findex lineup-whitesmith-in-block (c-)
Line up lines inside a block in Whitesmith style. It's done in a way
that works both when the opening brace hangs and when it doesn't. E.g:
that works both when the opening brace hangs and when it doesn't. E.g.:
@example
@group
@ -5816,7 +5816,7 @@ Line up the current argument line under the first argument.
As a special case, if an argument on the same line as the open
parenthesis starts with a brace block opener, the indentation is
@code{c-basic-offset} only. This is intended as a ``DWIM'' measure in
cases like macros that contain statement blocks, e.g:
cases like macros that contain statement blocks, e.g.:
@example
@group
@ -5852,7 +5852,7 @@ brace block.
@defun c-lineup-multi-inher
@findex lineup-multi-inher (c-)
Line up the classes in C++ multiple inheritance clauses and member
initializers under each other. E.g:
initializers under each other. E.g.:
@example
@group
@ -5895,7 +5895,7 @@ Line up Java implements and extends declarations. If class names
follow on the same line as the @samp{implements}/@samp{extends}
keyword, they are lined up under each other. Otherwise, they are
indented by adding @code{c-basic-offset} to the column of the keyword.
E.g:
E.g.:
@example
@group
@ -5929,7 +5929,7 @@ same line as the throws keyword, they are lined up under each other.
Otherwise, they are indented by adding @code{c-basic-offset} to the
column of the @samp{throws} keyword. The @samp{throws} keyword itself
is also indented by @code{c-basic-offset} from the function declaration
start if it doesn't hang. E.g:
start if it doesn't hang. E.g.:
@example
@group
@ -6014,7 +6014,7 @@ line.
@defun c-lineup-argcont
@findex lineup-argcont (c-)
Line up a continued argument. E.g:
Line up a continued argument. E.g.:
@example
@group
@ -6101,7 +6101,7 @@ function is the same as specifying a list @code{(c-lineup-assignments
Line up ``cascaded calls'' under each other. If the line begins with
@code{->} or @code{.} and the preceding line ends with one or more
function calls preceded by the same token, then the arrow is lined up
with the first of those tokens. E.g:
with the first of those tokens. E.g.:
@example
@group
@ -6133,7 +6133,7 @@ Line up C++ stream operators (i.e., @samp{<<} and @samp{>>}).
@findex lineup-string-cont (c-)
Line up a continued string under the one it continues. A continued
string in this sense is where a string literal follows directly after
another one. E.g:
another one. E.g.:
@example
@group
@ -6242,7 +6242,7 @@ is equivalent to @code{(@r{@var{value}} . -1000)}.
@findex lineup-knr-region-comment (c-)
Line up a comment in the ``K&R region'' with the declaration. That is
the region between the function or class header and the beginning of the
block. E.g:
block. E.g.:
@example
@group
@ -6282,7 +6282,7 @@ already has; think of it as an identity function for lineups.
@defun c-lineup-cpp-define
@findex lineup-cpp-define (c-)
Line up macro continuation lines according to the indentation of the
construct preceding the macro. E.g:
construct preceding the macro. E.g.:
@example
@group
@ -6409,7 +6409,7 @@ that those lines could be analyzed as either topmost-intro-cont or
statement-cont. It's used for @code{topmost-intro-cont} by default, but
you might consider using @code{+} instead.}. For lines preceding a
definition, zero is used. For other lines, @code{c-basic-offset} is
added to the indentation. E.g:
added to the indentation. E.g.:
@example
@group
@ -6507,7 +6507,7 @@ earlier. Line-up functions are still passed this cons cell, so as to
preserve compatibility with older configurations. In the future, we
may decide to convert to using the full list format---you can prepare
your setup for this by using the access functions
(@code{c-langelem-sym}, etc.) described below.
(@code{c-langelem-sym}, etc.)@: described below.
@vindex c-syntactic-element
@vindex syntactic-element (c-)

View File

@ -748,7 +748,7 @@ This function attempts to convert @var{object} to the specified
@var{type}. If @var{object} is already of that type as determined by
@code{cl-typep}, it is simply returned. Otherwise, certain types of
conversions will be made: If @var{type} is any sequence type
(@code{string}, @code{list}, etc.) then @var{object} will be
(@code{string}, @code{list}, etc.)@: then @var{object} will be
converted to that type if possible. If @var{type} is
@code{character}, then strings of length one and symbols with
one-character names can be coerced. If @var{type} is @code{float},

View File

@ -882,7 +882,7 @@ Dired buffers, is like @code{shell-command}, but it runs with
@file{dired-x} provides a method of visiting or editing a file mentioned in
the buffer you are viewing (e.g., a mail buffer, a news article, a
@file{README} file, etc.) or to test if that file exists. You can then modify
@file{README} file, etc.)@: or to test if that file exists. You can then modify
this in the minibuffer after snatching the file name.
When installed @file{dired-x} will substitute @code{dired-x-find-file} for

View File

@ -1050,7 +1050,7 @@ other options for that project. The configuration is saved in
Generic projects are disabled by default because they have the
potential to interfere with other projects. To use the generic
project sytem to start detecting projects, you need to enable it.
project system to start detecting projects, you need to enable it.
@deffn Command ede-enable-generic-projects
Enable generic project loaders.
@ -1956,7 +1956,7 @@ Type: @code{list} @*
Default Value: @code{(quote ("/include" "../include/"))}
The default locate function expands filenames within a project.
If a header file (.h, .hh, etc) name is expanded, and
If a header file (.h, .hh, etc.)@: name is expanded, and
the @code{:locate-fcn} slot is @code{nil}, then the include path is checked
first, and other directories are ignored. For very large
projects, this optimization can save a lot of time.

View File

@ -1148,7 +1148,7 @@ packages also use this method).
Regular files are treated by the @code{patch} utility in the usual manner,
i.e., the original is renamed into @file{source-name.orig} and the result
of the patch is placed into the file source-name (@file{_orig} is used
on systems like DOS, etc.)
on systems like DOS, etc.).
@node Customization
@chapter Customization

View File

@ -993,7 +993,7 @@ Customization}).
The charset to be used can be overridden by setting the @code{charset}
@acronym{MML} tag (@pxref{MML Definition}) when composing the message.
The encoding of characters (quoted-printable, 8bit etc) is orthogonal
The encoding of characters (quoted-printable, 8bit, etc.)@: is orthogonal
to the discussion here, and is controlled by the variables
@code{mm-body-charset-encoding-alist} and
@code{mm-content-transfer-encoding-defaults} (@pxref{Encoding

View File

@ -625,7 +625,7 @@ string-manipulation expansions because the Elisp library already
provides many functions for this.} For example, @code{$var} on a line
expands to the value of the variable @code{var} when the line is
executed. Expansions are usually passed as arguments, but may also be
used as commands.@footnote{e.g. Entering just @samp{$var} at the prompt
used as commands.@footnote{E.g., entering just @samp{$var} at the prompt
is equivalent to entering the value of @code{var} at the prompt.}
@menu
@ -1158,7 +1158,7 @@ it).
@item Make the shell spawning commands be visual
That is, make (@command{su}, @command{bash}, @command{telnet},
@command{rlogin}, @command{rsh}, etc.) be part of
@command{rlogin}, @command{rsh}, etc.)@: be part of
@code{eshell-visual-commands}. The only exception is if the shell is
being used to invoke a single command. Then, the behavior should be
based on what that command is.

View File

@ -1909,7 +1909,7 @@ following line to your @file{.emacs}:
where @var{syntactic-symbol} is the name Emacs shows in the minibuffer
when you type @kbd{C-c C-o} at the beginning of the line, and
@var{offset} is one of the indentation symbols listed above (@code{+},
@code{/}, @code{0}, etc.) that you've chosen during the interactive
@code{/}, @code{0}, etc.)@: that you've chosen during the interactive
procedure.
@item

View File

@ -64,7 +64,7 @@ modify this GNU manual.''
Flymake is a universal on-the-fly syntax checker implemented as an
Emacs minor mode. Flymake runs the pre-configured syntax check tool
(compiler for C++ files, @code{perl} for perl files, etc.) in the
(compiler for C++ files, @code{perl} for perl files, etc.)@: in the
background, passing it a temporary copy of the current buffer, and
parses the output for known error/warning message patterns. Flymake
then highlights erroneous lines (i.e., lines for which at least one
@ -569,7 +569,7 @@ These modes are handled inside init/cleanup/getfname functions, see
Flymake contains implementations of all functionality required to
support different syntax check modes described above (making temporary
copies, finding master files, etc.), as well as some tool-specific
(routines for Make, Ant, etc.) code.
(routines for Make, Ant, etc.)@: code.
@node Making a temporary copy

View File

@ -117,7 +117,7 @@ they make up a forms.
The contents of the forms consist of the contents of the fields of the
record (e.g., @samp{root}, @samp{0}, @samp{1}, @samp{Super User})
interspersed with normal text (e.g @samp{User : }, @samp{Uid: }).
interspersed with normal text (e.g., @samp{User : }, @samp{Uid: }).
If you modify the contents of the fields, Forms mode will analyze your
changes and update the file appropriately. You cannot modify the

View File

@ -1218,7 +1218,7 @@ from using them):
messages?
* FAQ 5-3:: How to set stuff like From, Organization, Reply-To,
signature...?
* FAQ 5-4:: Can I set things like From, Signature etc group based on
* FAQ 5-4:: Can I set things like From, Signature etc. group based on
the group I post too?
* FAQ 5-5:: Is there a spell-checker? Perhaps even on-the-fly
spell-checking?

View File

@ -2348,8 +2348,8 @@ Gnus considers groups from levels 1 to
unsubscribed, @code{gnus-level-zombie} to be zombies (walking dead)
(default 8) and @code{gnus-level-killed} to be killed (completely dead)
(default 9). Gnus treats subscribed and unsubscribed groups exactly the
same, but zombie and killed groups have no information on what articles
you have read, etc, stored. This distinction between dead and living
same, but zombie and killed groups store no information on what articles
you have read, etc. This distinction between dead and living
groups isn't done because it is nice or clever, it is done purely for
reasons of efficiency.
@ -11140,7 +11140,7 @@ There will never be more than one dead summary buffer at any one time.
@vindex gnus-use-cross-reference
The data on the current group will be updated (which articles you have
read, which articles you have replied to, etc.) when you exit the
read, which articles you have replied to, etc.)@: when you exit the
summary buffer. If the @code{gnus-use-cross-reference} variable is
@code{t} (which is the default), articles that are cross-referenced to
this group and are marked as read, will also be marked as read in the
@ -14022,7 +14022,7 @@ The address of the @acronym{NNTP} server.
Port number to connect to the @acronym{NNTP} server. The default is
@samp{nntp}. If you use @acronym{NNTP} over
@acronym{TLS}/@acronym{SSL}, you may want to use integer ports rather
than named ports (i.e, use @samp{563} instead of @samp{snews} or
than named ports (i.e., use @samp{563} instead of @samp{snews} or
@samp{nntps}), because external @acronym{TLS}/@acronym{SSL} tools may
not work with named ports.
@ -19019,7 +19019,7 @@ agent as unread.
@subsection Agent and flags
The Agent works with any Gnus back end including those, such as
nnimap, that store flags (read, ticked, etc) on the server. Sadly,
nnimap, that store flags (read, ticked, etc.)@: on the server. Sadly,
the Agent does not actually know which backends keep their flags in
the backend server rather than in @file{.newsrc}. This means that the
Agent, while unplugged or disconnected, will always record all changes
@ -19995,7 +19995,7 @@ the article was posted from. Time zones are such wholesome fun for the
whole family, eh?)
@item Head, Body, All
These three match keys use the same match types as the @code{From} (etc)
These three match keys use the same match types as the @code{From} (etc.)@:
header uses.
@item Followup
@ -23816,7 +23816,7 @@ from Bulgarian IPs.
This, unfortunately, is a great way to discard legitimate e-mail. The
risks of blocking a whole country (Bulgaria, Norway, Nigeria, China,
etc.) or even a continent (Asia, Africa, Europe, etc.) from contacting
etc.)@: or even a continent (Asia, Africa, Europe, etc.)@: from contacting
you should be obvious, so don't do it if you have the choice.
In another instance, the very informative and useful RISKS digest has
@ -25869,7 +25869,7 @@ Fortunately, setting up the Gnus registry is pretty easy:
This adds registry saves to Gnus newsrc saves (which happen on exit
and when you press @kbd{s} from the @code{*Group*} buffer. It also
adds registry calls to article actions in Gnus (copy, move, etc.) so
adds registry calls to article actions in Gnus (copy, move, etc.)@: so
it's not easy to undo the initialization. See
@code{gnus-registry-initialize} for the gory details.
@ -27946,7 +27946,7 @@ consist of a little new content at the top with a long, untrimmed
message cited below.
@item
Smileys (@samp{:-)}, @samp{;-)} etc) are now displayed graphically in
Smileys (@samp{:-)}, @samp{;-)} etc.)@: are now displayed graphically in
Emacs too.
Put @code{(setq gnus-treat-display-smileys nil)} in @file{~/.gnus.el} to
@ -28552,7 +28552,7 @@ A mail message or news article
@item head
@cindex head
The top part of a message, where administrative information (etc.) is
The top part of a message, where administrative information (etc.)@: is
put.
@item body
@ -29501,7 +29501,7 @@ There should be no result data from this function.
@item (nnchoke-request-set-mark GROUP ACTION &optional SERVER)
Set/remove/add marks on articles. Normally Gnus handles the article
marks (such as read, ticked, expired etc) internally, and store them in
marks (such as read, ticked, expired etc.)@: internally, and store them in
@file{~/.newsrc.eld}. Some back ends (such as @acronym{IMAP}) however carry
all information about the articles on the server, so Gnus need to
propagate the mark information to the server.

View File

@ -2182,8 +2182,8 @@ operators (outside of strings and comments, of course), try this in
@end lisp
Note that the modified assignment operators which begin with a word
(@samp{AND=}, @samp{OR=}, @samp{NOT=}, etc.) require a leading space to
be recognized (e.g @code{vAND=4} would be interpreted as a variable
(@samp{AND=}, @samp{OR=}, @samp{NOT=}, etc.)@: require a leading space to
be recognized (e.g., @code{vAND=4} would be interpreted as a variable
@code{vAND}). Also note that since, e.g., @code{>} and @code{>=} are
both valid operators, it is impossible to surround both by blanks while
they are being typed. Similarly with @code{&} and @code{&&}. For
@ -2195,7 +2195,7 @@ repad everything if @code{idlwave-do-actions} is on).
@defopt idlwave-surround-by-blank (@code{nil})
Non-@code{nil} means enable @code{idlwave-surround}. If non-@code{nil},
@samp{=}, @samp{<}, @samp{>}, @samp{&}, @samp{,}, @samp{->}, and the
modified assignment operators (@samp{AND=}, @samp{OR=}, etc.) are
modified assignment operators (@samp{AND=}, @samp{OR=}, etc.)@: are
surrounded with spaces by @code{idlwave-surround}.
@end defopt

View File

@ -2344,7 +2344,7 @@ Valid values include:
@table @code
@item nil
Generate the buffer name in the Message way (e.g., *mail*, *news*, *mail
to whom*, *news on group*, etc.) and continue editing in the existing
to whom*, *news on group*, etc.)@: and continue editing in the existing
buffer of that name. If there is no such buffer, it will be newly
created.

View File

@ -1426,7 +1426,7 @@ level).
Move subtree down (swap with next subtree of same level).
@orgcmd{M-h,org-mark-element}
Mark the element at point. Hitting repeatedly will mark subsequent elements
of the one just marked. E.g. hitting @key{M-h} on a paragraph will mark it,
of the one just marked. E.g., hitting @key{M-h} on a paragraph will mark it,
hitting @key{M-h} immediately again will mark the next one.
@orgcmd{C-c @@,org-mark-subtree}
Mark the subtree at point. Hitting repeatedly will mark subsequent subtrees
@ -2439,7 +2439,7 @@ You may reference a rectangular range of fields by specifying two field
references connected by two dots @samp{..}. If both fields are in the
current row, you may simply use @samp{$2..$7}, but if at least one field
is in a different row, you need to use the general @code{@@row$column}
format at least for the first field (i.e the reference must start with
format at least for the first field (i.e., the reference must start with
@samp{@@} in order to be interpreted correctly). Examples:
@example
@ -11990,7 +11990,7 @@ resource or resource node which is known to TaskJuggler, such as
@samp{efficiency}, @samp{journalentry}, @samp{rate} for resources or
@samp{account}, @samp{start}, @samp{note}, @samp{duration}, @samp{end},
@samp{journalentry}, @samp{milestone}, @samp{reference}, @samp{responsible},
@samp{scheduling}, etc for tasks.
@samp{scheduling}, etc.@: for tasks.
@subsection Dependencies

View File

@ -647,7 +647,7 @@ buffer.
@vindex reftex-toc-max-level
Change the maximum level of toc entries displayed in the @file{*toc*}
buffer. Without prefix arg, all levels will be included. With prefix
arg (e.g @kbd{3 t}), ignore all toc entries with level greater than
arg (e.g., @kbd{3 t}), ignore all toc entries with level greater than
@var{arg} (3 in this case). Chapters are level 1, sections are level 2.
The mode line @samp{T<>} indicator shows the current value. The default
depth can be configured with the variable
@ -3501,7 +3501,7 @@ make use of this feature, try
@item
@b{@LaTeX{} commands}@*
@cindex LaTeX commands, not found
@code{\input}, @code{\include}, and @code{\section} (etc.) statements
@code{\input}, @code{\include}, and @code{\section} (etc.)@: statements
have to be first on a line (except for white space).
@item

View File

@ -169,7 +169,7 @@ typing it into a buffer, or using the contents of the selected region,
it will store that data---unindexed, uninterpreted---in a data pool.
It will also try to remember as much context information as possible
(any text properties that were set, where you copied it from, when,
how, etc). Later, you can walk through your accumulated set of data
how, etc.). Later, you can walk through your accumulated set of data
(both organized, and unorganized) and easily begin moving things
around, and making annotations that will express the full meaning of
that data, as far as you know it.

View File

@ -901,7 +901,7 @@ Begins with an 014 character, followed by sets of cell-definition
macros for each row, followed by column-widths, column-printers,
default-printer, and header-row. Then there's the global parameters
(file-format ID, numrows, numcols) and the local variables (specifying
@acronym{SES} mode for the buffer, etc.)
@acronym{SES} mode for the buffer, etc.).
When a @acronym{SES} file is loaded, first the numrows and numcols values are
loaded, then the entire data area is @code{eval}ed, and finally the local

View File

@ -159,7 +159,7 @@ press RET on <new script> to create a new script.
@end example
One of the scripts are highlighted, and standard point navigation
commands (@kbd{<up>}, @kbd{<down>} etc) can be used to navigate the
commands (@kbd{<up>}, @kbd{<down>} etc.)@: can be used to navigate the
list.
The following commands are available in the Manage Sieve buffer:

View File

@ -1158,7 +1158,7 @@ the next line.
Create a tag line with @var{exp-button-type} for the small expansion
button. This is the button that expands or contracts a node (if
applicable), and @var{exp-button-char} the character in it (@samp{+},
@samp{-}, @samp{?}, etc). @var{exp-button-function} is the function
@samp{-}, @samp{?}, etc.). @var{exp-button-function} is the function
to call if it's clicked on. Button types are @code{bracket},
@code{angle}, @code{curly}, @code{expandtag}, @code{statictag}, and
@code{nil}. @var{exp-button-data} is extra data attached to the text
@ -1167,7 +1167,7 @@ forming the expansion button.
Next, @var{tag-button} is the text of the tag.
@var{tag-button-function} is the function to call if clicked on, and
@var{tag-button-data} is the data to attach to the text field (such a
tag positioning, etc). @var{tag-button-face} is a face used for this
tag positioning, etc.). @var{tag-button-face} is a face used for this
type of tag.
Lastly, @var{depth} shows the depth of expansion.

View File

@ -890,7 +890,7 @@ containing the data cached for that URL.
@c With a large cache of documents on the local disk, it can be very handy
@c when traveling, or any other time the network connection is not active
@c (a laptop with a dial-on-demand PPP connection, etc). Emacs/W3 can rely
@c (a laptop with a dial-on-demand PPP connection, etc.). Emacs/W3 can rely
@c solely on its cache, and avoid checking to see if the page has changed
@c on the remote server. In the case of a dial-on-demand PPP connection,
@c this will keep the phone line free as long as possible, only bringing up

View File

@ -356,7 +356,7 @@ you can abort a partially formed command by typing @kbd{C-g}.@refill
As in Vi, searching is done by @kbd{/} and @kbd{?}. The string will be
searched literally by default. To invoke a regular expression search,
first execute the search command @kbd{/} (or @kbd{?}) with empty search
string. (I.e, type @kbd{/} followed by @key{RET}.)
string. (I.e., type @kbd{/} followed by @key{RET}.)
A search for empty string will toggle the search mode between vanilla
search and regular expression search. You cannot give an offset to the
search string. (It is a limitation.) By default, search will wrap around

View File

@ -3204,7 +3204,7 @@ and they don't look into the value of variable
syntax tables in order to not thwart the various major modes that set these
tables.
The usual Emacs convention is used to indicate Control Characters, i.e
The usual Emacs convention is used to indicate Control Characters, i.e.,
C-h for Control-h. @emph{Do not confuse this with a sequence of separate
characters
C, -, h!!!} The @kbd{^} is itself, never used to indicate a

View File

@ -904,7 +904,7 @@ for a man configuration file. The default is
@noindent
[for GNU/Linux and Cygwin respectively.] A trailing separator (@file{/}
for UNIX etc.) on directories is optional and the filename matched if a
for UNIX etc.)@: on directories is optional and the filename matched if a
directory is specified is the first to match the regexp
@code{man.*\.conf}. If the environment variable @code{MANPATH} is not
set but a configuration file is found then it is parsed instead (or as

View File

@ -996,7 +996,7 @@ are deprecated and will be removed eventually.
*** `vc-checkout-carefully'
* Lisp changes in Emacs 24.3
* Lisp Changes in Emacs 24.3
** CL-style generalized variables are now in core Elisp.
`setf' is autoloaded; `push' and `pop' accept generalized variables.
@ -1169,7 +1169,7 @@ takes precedence over most other maps for a short while (normally one key).
*** `font-list-limit' (has had no effect since Emacs < 23)
* Changes in Emacs 24.3 on non-free operating systems
* Changes in Emacs 24.3 on Non-Free Operating Systems
** Cygwin builds can use the native MS Windows user interface.
Pass `--with-w32' to configure. The default remains the X11 interface.
@ -2241,7 +2241,7 @@ assumes every inspected file is in your `load-path'. It instead
generates relative names according to the current `load-path'.
* Lisp changes in Emacs 24.1
* Lisp Changes in Emacs 24.1
** Code can now use lexical scoping by default instead of dynamic scoping.
The `lexical-binding' variable enables lexical scoping for local
@ -2628,7 +2628,7 @@ Use `post-command-hook' instead.
*** `font-lock-maximum-size' is obsolete.
* Changes in Emacs 24.1 on non-free operating systems
* Changes in Emacs 24.1 on Non-Free Operating Systems
** On MS Windows, Emacs warns when using the obsolete init file _emacs,
and also when HOME is set to C:\ by default.

View File

@ -1,3 +1,8 @@
2013-02-13 Michael Albinus <michael.albinus@gmx.de>
* net/ange-ftp.el (ange-ftp-make-directory): Don't raise an error,
if DIR exists and PARENTS is non-nil.
2013-02-13 Juanma Barranquero <lekktu@gmail.com>
* progmodes/js.el (js--multi-line-declaration-indentation):

View File

@ -4377,7 +4377,7 @@ The hook `gnus-exit-gnus-hook' is called before actually exiting."
(defun gnus-group-browse-foreign-server (method)
"Browse a foreign news server.
If called interactively, this function will ask for a select method
(nntp, nnspool, etc.) and a server address (eg. nntp.some.where).
(nntp, nnspool, etc.) and a server address (e.g., nntp.some.where).
If not, METHOD should be a list where the first element is the method
and the second element is the address."
(interactive

View File

@ -121,7 +121,7 @@ This variable can be a list of select methods which Gnus will query with
the `ask-server' method in addition to the primary, secondary, and archive
servers.
Eg.
E.g.:
(setq gnus-check-new-newsgroups
'((nntp \"some.server\") (nntp \"other.server\")))

View File

@ -179,7 +179,7 @@ is to be performed in, and it should return an integer that says how
many days an article can be stored before it is considered \"old\".
It can also return the values `never' and `immediate'.
Eg.:
E.g.:
\(setq nnmail-expiry-wait-function
(lambda (newsgroup)
@ -291,7 +291,7 @@ directory. This hook is called after the incoming mail box has been
emptied, and can be used to call any mail box programs you have
running (\"xwatch\", etc.)
Eg.
E.g.:
\(add-hook 'nnmail-read-incoming-hook
(lambda ()

View File

@ -214,7 +214,7 @@ Enabling this will have OpenSSL check the signers certificate
against a certificate revocation list (CRL).
For this to work the CRL must be up-to-date and since they are
normally updated quite often (ie. several times a day) you
normally updated quite often (i.e., several times a day) you
probably need some tool to keep them up-to-date. Unfortunately
Gnus cannot do this for you.

View File

@ -311,8 +311,8 @@ A sample format:
000000c0: 7265 6769 6f6e 2e0a region..
Movement is as simple as movement in a normal Emacs text buffer. Most
cursor movement bindings are the same (ie. Use \\[hexl-backward-char], \\[hexl-forward-char], \\[hexl-next-line], and \\[hexl-previous-line]
to move the cursor left, right, down, and up).
cursor movement bindings are the same: use \\[hexl-backward-char], \\[hexl-forward-char], \\[hexl-next-line], and \\[hexl-previous-line]
to move the cursor left, right, down, and up.
Advanced cursor movement commands (ala \\[hexl-beginning-of-line], \\[hexl-end-of-line], \\[hexl-beginning-of-buffer], and \\[hexl-end-of-buffer]) are
also supported.

View File

@ -4084,7 +4084,8 @@ directory, so that Emacs will know its current contents."
(or (file-exists-p parent)
(ange-ftp-make-directory parent parents))))
(if (file-exists-p dir)
(error "Cannot make directory %s: file already exists" dir)
(unless parents
(error "Cannot make directory %s: file already exists" dir))
(let ((parsed (ange-ftp-ftp-name dir)))
(if parsed
(let* ((host (nth 0 parsed))

View File

@ -159,12 +159,12 @@ This is not used directly, but only via inheritance by other faces."
(defface nxml-comment-delimiter
'((t (:inherit font-lock-comment-delimiter-face)))
"Face used for the delimiters of comments, i.e <!-- and -->."
"Face used for the delimiters of comments, i.e., <!-- and -->."
:group 'nxml-faces)
(defface nxml-processing-instruction-delimiter
'((t (:inherit nxml-delimiter)))
"Face used for the delimiters of processing instructions, i.e <? and ?>."
"Face used for the delimiters of processing instructions, i.e., <? and ?>."
:group 'nxml-faces)
(defface nxml-processing-instruction-target
@ -179,7 +179,7 @@ This is not used directly, but only via inheritance by other faces."
(defface nxml-cdata-section-delimiter
'((t (:inherit nxml-delimiter)))
"Face used for the delimiters of CDATA sections, i.e <![, [, and ]]>."
"Face used for the delimiters of CDATA sections, i.e., <![, [, and ]]>."
:group 'nxml-faces)
(defface nxml-cdata-section-CDATA
@ -200,7 +200,7 @@ This includes ths `x' in hex references."
(defface nxml-char-ref-delimiter
'((t (:inherit nxml-ref)))
"Face used for the delimiters of character references, i.e &# and ;."
"Face used for the delimiters of character references, i.e., &# and ;."
:group 'nxml-faces)
(defface nxml-entity-ref-name
@ -210,7 +210,7 @@ This includes ths `x' in hex references."
(defface nxml-entity-ref-delimiter
'((t (:inherit nxml-ref)))
"Face used for the delimiters of entity references, i.e & and ;."
"Face used for the delimiters of entity references, i.e., & and ;."
:group 'nxml-faces)
(defface nxml-tag-delimiter

View File

@ -3668,7 +3668,7 @@ containing the secondary string. It is used to set correctly
(defun org-element-map (data types fun &optional info first-match no-recursion)
"Map a function on selected elements or objects.
DATA is an Org buffer parse tree, as returned by, i.e,
DATA is an Org buffer parse tree, as returned by, i.e.,
`org-element-parse-buffer'. TYPES is a symbol or list of symbols
of elements or objects types (see `org-element-all-elements' and
`org-element-all-objects' for a complete list of types). FUN is

View File

@ -928,7 +928,7 @@ nil, don't do anything special at the beginning of the buffer."
(defcustom org-cycle-level-after-item/entry-creation t
"Non-nil means cycle entry level or item indentation in new empty entries.
When the cursor is at the end of an empty headline, i.e with only stars
When the cursor is at the end of an empty headline, i.e., with only stars
and maybe a TODO keyword, TAB will then switch the entry to become a child,
and then all possible ancestor states, before returning to the original state.
This makes data entry extremely fast: M-RET to create a new headline,

View File

@ -53,7 +53,7 @@
(defun c-lineup-topmost-intro-cont (langelem)
"Line up declaration continuation lines zero or one indentation step.
For lines in the \"header\" of a definition, zero is used. For other
lines, `c-basic-offset' is added to the indentation. E.g:
lines, `c-basic-offset' is added to the indentation. E.g.:
int
neg (int i) <- c-lineup-topmost-intro-cont
@ -165,7 +165,7 @@ Works with: topmost-intro-cont."
As a special case, if the indented line is inside a brace block
construct, the indentation is `c-basic-offset' only. This is intended
as a \"DWIM\" measure in cases like macros that contains statement
blocks, e.g:
blocks, e.g.:
A_VERY_LONG_MACRO_NAME ({
some (code, with + long, lines * in[it]);
@ -340,7 +340,7 @@ Works with: arglist-cont, arglist-cont-nonempty."
(defun c-lineup-close-paren (langelem)
"Line up the closing paren under its corresponding open paren if the
open paren is followed by code. If the open paren ends its line, no
indentation is added. E.g:
indentation is added. E.g.:
main (int, main (
char ** int, char **
@ -394,7 +394,7 @@ Works with: stream-op."
(defun c-lineup-multi-inher (langelem)
"Line up the classes in C++ multiple inheritance clauses and member
initializers under each other. E.g:
initializers under each other. E.g.:
class Foo: Foo::Foo (int a, int b):
public Cyphr, Cyphr (a),
@ -439,7 +439,7 @@ Works with: inher-cont, member-init-cont."
If class names follow on the same line as the implements/extends
keyword, they are lined up under each other. Otherwise, they are
indented by adding `c-basic-offset' to the column of the keyword.
E.g:
E.g.:
class Foo class Foo
extends extends Cyphr,
@ -461,7 +461,7 @@ If exception names follow on the same line as the throws keyword,
they are lined up under each other. Otherwise, they are indented by
adding `c-basic-offset' to the column of the throws keyword. The
throws keyword itself is also indented by `c-basic-offset' from the
function declaration start if it doesn't hang. E.g:
function declaration start if it doesn't hang. E.g.:
int foo() int foo() throws Cyphr,
throws <-> Bar, <- c-lineup-java-throws
@ -485,7 +485,7 @@ Works with: func-decl-cont."
(defun c-indent-one-line-block (langelem)
"Indent a one line block `c-basic-offset' extra.
E.g:
E.g.:
if (n > 0) if (n > 0)
{m+=n; n=0;} <-> { <- c-indent-one-line-block
@ -508,7 +508,7 @@ Work with: Almost all syntactic symbols, but most useful on *-open."
(defun c-indent-multi-line-block (langelem)
"Indent a multi line block `c-basic-offset' extra.
E.g:
E.g.:
int *foo[] = { int *foo[] = {
NULL, NULL,
@ -670,7 +670,7 @@ Works with: comment-intro."
(defun c-lineup-knr-region-comment (langelem)
"Line up a comment in the \"K&R region\" with the declaration.
That is the region between the function or class header and the
beginning of the block. E.g:
beginning of the block. E.g.:
int main()
/* This is the main function. */ <- c-lineup-knr-region-comment
@ -693,7 +693,7 @@ Works with: comment-intro."
(defun c-lineup-runin-statements (langelem)
"Line up statements when the first statement is on the same line as
the block opening brace. E.g:
the block opening brace. E.g.:
int main()
{ puts (\"Hello world!\");
@ -794,7 +794,7 @@ arglist-cont-nonempty."
"Line up \"cascaded calls\" under each other.
If the line begins with \"->\" or \".\" and the preceding line ends
with one or more function calls preceded by the same token, then the
arrow is lined up with the first of those tokens. E.g:
arrow is lined up with the first of those tokens. E.g.:
result = proc->add(17)->add(18)
->add(19) + <- c-lineup-cascaded-calls
@ -839,7 +839,7 @@ arglist-cont-nonempty."
(defun c-lineup-string-cont (langelem)
"Line up a continued string under the one it continues.
A continued string in this sense is where a string literal follows
directly after another one. E.g:
directly after another one. E.g.:
result = prefix + \"A message \"
\"string.\"; <- c-lineup-string-cont
@ -921,7 +921,7 @@ Works with: objc-method-call-cont."
; no complete argument to indent yet
(throw 'no-idea nil))))
(extra (save-excursion
(extra (save-excursion
; indent parameter to argument if needed
(back-to-indentation)
(c-backward-syntactic-ws (c-langelem-pos langelem))
@ -1023,7 +1023,7 @@ Works with: inlambda, inexpr-statement, inexpr-class."
(defun c-lineup-whitesmith-in-block (langelem)
"Line up lines inside a block in Whitesmith style.
It's done in a way that works both when the opening brace hangs and
when it doesn't. E.g:
when it doesn't. E.g.:
something
{ something {
@ -1085,7 +1085,7 @@ arglist-cont."
(defun c-lineup-cpp-define (langelem)
"Line up macro continuation lines according to the indentation of
the construct preceding the macro. E.g:
the construct preceding the macro. E.g.:
v beg of preceding constr v beg of preceding constr
int dribble() {

View File

@ -2819,7 +2819,7 @@ undefined whether identifier syntax (see `c-identifier-syntax-table')
is in effect or not.
Note that it's used in cases like after \"foo (bar)\" so it should
only match when it's certain that it's a declaration, e.g \"{\" but
only match when it's certain that it's a declaration, e.g., \"{\" but
not \",\" or \";\"."
t "{"
;; If K&R style declarations should be recognized then one could

View File

@ -1949,7 +1949,7 @@ Runs `compilation-mode-hook' with `run-mode-hooks' (which see).
"This is like `define-derived-mode' without the PARENT argument.
The parent is always `compilation-mode' and the customizable `compilation-...'
variables are also set from the name of the mode you have chosen,
by replacing the first word, e.g `compilation-scroll-output' from
by replacing the first word, e.g., `compilation-scroll-output' from
`grep-scroll-output' if that variable exists."
(let ((mode-name (replace-regexp-in-string "-mode\\'" "" (symbol-name mode))))
`(define-derived-mode ,mode compilation-mode ,name

View File

@ -1551,7 +1551,7 @@ and POD directives (Disabled by default, see `cperl-electric-keywords'.)
The user types the keyword immediately followed by a space, which
causes the construct to be expanded, and the point is positioned where
she is most likely to want to be. eg. when the user types a space
she is most likely to want to be. E.g., when the user types a space
following \"if\" the following appears in the buffer: if () { or if ()
} { } and the cursor is between the parentheses. The user can then
type some boolean expression within the parens. Having done that,

View File

@ -168,8 +168,8 @@ nil to get the default indentation.
INDENT-TYPE is a symbol indicating what kind of indentation should be done.
It can have the following values:
indent the lines indentation should be increased, e.g. after THEN.
outdent the lines indentation should be decreased, e.g a line with ENDIF.
indent the indentation should be increased, e.g., after THEN.
outdent the indentation should be decreased, e.g., a line with ENDIF.
first-line indentation for the first line in a buffer or SUBROUTINE.
CUR-INDENT is the indentation of the preceding command line.
EXTRA-INDENT is the default change in indentation for this line

View File

@ -4777,7 +4777,7 @@ primitive or interface named NAME."
))))))))))
(defun verilog-get-expr()
"Grab expression at point, e.g, case ( a | b & (c ^d))."
"Grab expression at point, e.g., case ( a | b & (c ^d))."
(let* ((b (progn
(verilog-forward-syntactic-ws)
(skip-chars-forward " \t")

View File

@ -154,7 +154,7 @@ long-lived shared key will decrease security (especially since
the key is transmitted as plain-text).
In some situations however, it can be difficult to share randomly
generated passwords with remote hosts (eg. no shared directory),
generated passwords with remote hosts (e.g., no shared directory),
so you can set the key with this variable and then copy the
server file to the remote host (with possible changes to IP
address and/or port if that applies).

View File

@ -36,7 +36,7 @@ If `check', try to check if it does.
If a list, assume that the listed features are supported, without checking.
The relevant features are:
modifyOtherKeys -- if supported, more key bindings work (e.g, \"\\C-,\")
modifyOtherKeys -- if supported, more key bindings work (e.g., \"\\C-,\")
reportBackground -- if supported, Xterm reports its background color
"
:version "24.1"

View File

@ -259,9 +259,9 @@ if that value is non-nil.
These buffers can be edited separately, for example with `fill-paragraph'.
If you want to disable parallel scrolling temporarily, use \\[2C-toggle-autoscroll] .
If you include long lines, i.e which will span both columns (eg.
source code), they should be in what will be the first column, with
the associated buffer having empty lines next to them.
If you include long lines that span both columns (e.g., source
code), they should be in what will be the first column, with the
associated buffer having empty lines next to them.
Potential uses are writing bilingual texts, or editing the comments of a
source code. See the file lisp/two-column.el for detailed examples.

View File

@ -1,3 +1,49 @@
2013-02-13 Glenn Morris <rgm@gnu.org>
* keyboard.c (input-decode-map, key-translation-map): Doc fixes.
2013-02-13 Paul Eggert <eggert@cs.ucla.edu>
Improve AIX port some more (Bug#13650).
With this, it should be as good as it was in 23.3, though it's
still pretty bad: the dumped emacs does not run. See Mark Fleishman in
http://lists.gnu.org/archive/html/help-gnu-emacs/2011-04/msg00287.html
* unexaix.c (start_of_text): Remove.
(_data, _text): Declare as char[], not int, as AIX manual suggests.
(bias, lnnoptr, text_scnptr, data_scnptr, load_scnptr)
(orig_load_scnptr, orig_data_scnptr):
Now off_t, not long, since they are file offsets.
(make_hdr): Use _data, not start_of_data ().
This is the key part of the fix.
(make_hdr, unrelocate_symbols): Use off_t for file offsets.
(unrelocate_symbols): Cast pointers to intptr_t, not to ulong.
* pre-crt0.c (data_start): Initialize to 1.
This ports to compilers that optimize the external declaration
'int x = 0;' as if it were 'int x;' to shrink the executable.
Improve AIX port (Bug#13650).
This doesn't fix the bug, but it makes progress: Emacs builds now.
* unexaix.c: Include inttypes.h, stdarg.h.
(report_error, report_error_1): Mark as _Noreturn.
(report_error): Don't report the wrong errno.
(report_error_1): Now varargs. All callers changed.
(make_hdr): Use uintptr_t, not unsigned, when converting pointers
to unsigned. Don't use ADDR_CORRECT, as it no longer exists.
(write_ptr): Use %p to print address rather than %lx and a cast
to unsigned long. Grow buffer a bit, to be safer.
2013-02-13 Eli Zaretskii <eliz@gnu.org>
* bidi.c (bidi_resolve_neutral): After finding the next
non-neutral character, accept NEUTRAL_ON type as well, because
directional control characters, such as LRE and RLE, have their
type converted to that by bidi_resolve_weak. This avoids aborts
when LRE/RLE follows a run of neutrals.
(bidi_move_to_visually_next): Assert that return value of
bidi_peek_at_next_level is non-negative. Negative values will
cause an infloop.
2013-02-13 Paul Eggert <eggert@cs.ucla.edu>
Minor getenv-related fixes.

View File

@ -1973,6 +1973,7 @@ bidi_resolve_neutral (struct bidi_it *bidi_it)
next_type = STRONG_R;
break;
case WEAK_BN:
case NEUTRAL_ON: /* W6/Retaining */
if (!bidi_explicit_dir_char (bidi_it->ch))
emacs_abort (); /* can't happen: BNs are skipped */
/* FALLTHROUGH */
@ -2391,6 +2392,10 @@ bidi_move_to_visually_next (struct bidi_it *bidi_it)
next_level = bidi_peek_at_next_level (bidi_it);
while (next_level != expected_next_level)
{
/* If next_level is -1, it means we have an unresolved level
in the cache, which at this point should not happen. If
it does, we will infloop. */
eassert (next_level >= 0);
expected_next_level += incr;
level_to_search += incr;
bidi_find_other_level_edge (bidi_it, level_to_search, !ascending);

View File

@ -10712,7 +10712,7 @@ reading if you suppress escape sequence detection.
The other way to read escape sequences in a file without decoding is
to explicitly specify some coding system that doesn't use ISO-2022
escape sequence (e.g `latin-1') on reading by \\[universal-coding-system-argument]. */);
escape sequence (e.g., `latin-1') on reading by \\[universal-coding-system-argument]. */);
inhibit_iso_escape_detection = 0;
DEFVAR_BOOL ("inhibit-null-byte-detection",

View File

@ -4831,7 +4831,7 @@ where
OPENED-NAME is the name used for opening the font,
FULL-NAME is the full name of the font,
SIZE is the pixelsize of the font,
HEIGHT is the pixel-height of the font (i.e ascent + descent),
HEIGHT is the pixel-height of the font (i.e., ascent + descent),
BASELINE-OFFSET is the upward offset pixels from ASCII baseline,
RELATIVE-COMPOSE and DEFAULT-ASCENT are the numbers controlling
how to compose characters.

View File

@ -291,7 +291,7 @@ DEFUN ("current-column", Fcurrent_column, Scurrent_column, 0, 0, 0,
doc: /* Return the horizontal position of point. Beginning of line is column 0.
This is calculated by adding together the widths of all the displayed
representations of the character between the start of the previous line
and point (eg. control characters will have a width of 2 or 4, tabs
and point (e.g., control characters will have a width of 2 or 4, tabs
will have a variable width).
Ignores finite width of frame, which means that this function may return
values greater than (frame-width).

View File

@ -11618,9 +11618,7 @@ If the binding is a function, it is called with one argument (the prompt)
and its return value (a key sequence) is used.
The events that come from bindings in `input-decode-map' are not
themselves looked up in `input-decode-map'.
This variable is keyboard-local. */);
themselves looked up in `input-decode-map'. */);
DEFVAR_LISP ("function-key-map", Vfunction_key_map,
doc: /* The parent keymap of all `local-function-key-map' instances.
@ -11633,8 +11631,7 @@ definition will take precedence. */);
DEFVAR_LISP ("key-translation-map", Vkey_translation_map,
doc: /* Keymap of key translations that can override keymaps.
This keymap works like `function-key-map', but comes after that,
and its non-prefix bindings override ordinary bindings.
Another difference is that it is global rather than keyboard-local. */);
and its non-prefix bindings override ordinary bindings. */);
Vkey_translation_map = Fmake_sparse_keymap (Qnil);
DEFVAR_LISP ("deferred-action-list", Vdeferred_action_list,

View File

@ -4,7 +4,7 @@
that make environ an initialized variable. However, we do
need to make sure the label data_start exists anyway. */
/* Create a label to appear at the beginning of data space. */
int data_start = 0;
/* Create a label to appear at the beginning of data space.
Its value is nonzero so that it cannot be put into bss. */
int data_start = 1;

View File

@ -51,6 +51,8 @@ what you give them. Help stamp out software-hoarding! */
#include "getpagesize.h"
#include <sys/types.h>
#include <inttypes.h>
#include <stdarg.h>
#include <stdio.h>
#include <sys/stat.h>
#include <errno.h>
@ -59,10 +61,8 @@ what you give them. Help stamp out software-hoarding! */
#include "mem-limits.h"
char *start_of_text (void); /* Start of text */
extern int _data;
extern int _text;
extern char _data[];
extern char _text[];
#include <filehdr.h>
#include <aouthdr.h>
@ -71,15 +71,15 @@ extern int _text;
static struct filehdr f_hdr; /* File header */
static struct aouthdr f_ohdr; /* Optional file header (a.out) */
static long bias; /* Bias to add for growth */
static long lnnoptr; /* Pointer to line-number info within file */
static off_t bias; /* Bias to add for growth */
static off_t lnnoptr; /* Pointer to line-number info within file */
static long text_scnptr;
static long data_scnptr;
static off_t text_scnptr;
static off_t data_scnptr;
#define ALIGN(val, pwr) (((val) + ((1L<<(pwr))-1)) & ~((1L<<(pwr))-1))
static long load_scnptr;
static long orig_load_scnptr;
static long orig_data_scnptr;
static off_t load_scnptr;
static off_t orig_load_scnptr;
static off_t orig_data_scnptr;
static int unrelocate_symbols (int, int, const char *, const char *);
#ifndef MAX_SECTIONS
@ -92,23 +92,30 @@ static int pagemask;
#include "lisp.h"
static void
static _Noreturn void
report_error (const char *file, int fd)
{
if (fd)
close (fd);
{
int failed_errno = errno;
close (fd);
errno = failed_errno;
}
report_file_error ("Cannot unexec", Fcons (build_string (file), Qnil));
}
#define ERROR0(msg) report_error_1 (new, msg, 0, 0); return -1
#define ERROR1(msg,x) report_error_1 (new, msg, x, 0); return -1
#define ERROR2(msg,x,y) report_error_1 (new, msg, x, y); return -1
#define ERROR0(msg) report_error_1 (new, msg)
#define ERROR1(msg,x) report_error_1 (new, msg, x)
#define ERROR2(msg,x,y) report_error_1 (new, msg, x, y)
static void
report_error_1 (int fd, const char *msg, int a1, int a2)
static _Noreturn void ATTRIBUTE_FORMAT_PRINTF (2, 3)
report_error_1 (int fd, const char *msg, ...)
{
va_list ap;
close (fd);
error (msg, a1, a2);
va_start (ap, msg);
verror (msg, ap);
va_end (ap);
}
static int make_hdr (int, int, const char *, const char *);
@ -163,8 +170,8 @@ make_hdr (int new, int a_out,
const char *a_name, const char *new_name)
{
int scns;
unsigned int bss_start;
unsigned int data_start;
uintptr_t bss_start;
uintptr_t data_start;
struct scnhdr section[MAX_SECTIONS];
struct scnhdr * f_thdr; /* Text section header */
@ -179,17 +186,17 @@ make_hdr (int new, int a_out,
pagemask = getpagesize () - 1;
/* Adjust text/data boundary. */
data_start = (long) start_of_data ();
data_start = ADDR_CORRECT (data_start);
data_start = (uintptr_t) _data;
data_start = data_start & ~pagemask; /* (Down) to page boundary. */
bss_start = ADDR_CORRECT (sbrk (0)) + pagemask;
bss_start = (uintptr_t) sbrk (0) + pagemask;
bss_start &= ~ pagemask;
if (data_start > bss_start) /* Can't have negative data size. */
{
ERROR2 ("unexec: data_start (%u) can't be greater than bss_start (%u)",
ERROR2 (("unexec: data_start (0x%"PRIxPTR
") can't be greater than bss_start (0x%"PRIxPTR")"),
data_start, bss_start);
}
@ -279,7 +286,7 @@ make_hdr (int new, int a_out,
/* fix scnptr's */
{
ulong ptr = section[0].s_scnptr;
off_t ptr = section[0].s_scnptr;
bias = -1;
for (scns = 0; scns < f_hdr.f_nscns; scns++)
@ -375,12 +382,12 @@ copy_text_and_data (int new)
char *end;
char *ptr;
lseek (new, (long) text_scnptr, SEEK_SET);
ptr = start_of_text () + text_scnptr;
lseek (new, text_scnptr, SEEK_SET);
ptr = _text + text_scnptr;
end = ptr + f_ohdr.tsize;
write_segment (new, ptr, end);
lseek (new, (long) data_scnptr, SEEK_SET);
lseek (new, data_scnptr, SEEK_SET);
ptr = (char *) f_ohdr.data_start;
end = ptr + f_ohdr.dsize;
write_segment (new, ptr, end);
@ -393,7 +400,6 @@ static void
write_segment (int new, char *ptr, char *end)
{
int i, nwrite, ret;
char buf[80];
char zeros[UnexBlockSz];
for (i = 0; ptr < end;)
@ -414,9 +420,13 @@ write_segment (int new, char *ptr, char *end)
}
else if (nwrite != ret)
{
int write_errno = errno;
char buf[1000];
void *addr = ptr;
sprintf (buf,
"unexec write failure: addr 0x%lx, fileno %d, size 0x%x, wrote 0x%x, errno %d",
(unsigned long)ptr, new, nwrite, ret, errno);
"unexec write failure: addr %p, fileno %d, size 0x%x, wrote 0x%x, errno %d",
addr, new, nwrite, ret, errno);
errno = write_errno;
PERROR (buf);
}
i += nwrite;
@ -537,13 +547,13 @@ unrelocate_symbols (int new, int a_out,
int i;
LDHDR ldhdr;
LDREL ldrel;
ulong t_reloc = (ulong) &_text - f_ohdr.text_start;
off_t t_reloc = (intptr_t) _text - f_ohdr.text_start;
#ifndef ALIGN_DATA_RELOC
ulong d_reloc = (ulong) &_data - f_ohdr.data_start;
off_t d_reloc = (intptr_t) _data - f_ohdr.data_start;
#else
/* This worked (and was needed) before AIX 4.2.
I have no idea why. -- Mike */
ulong d_reloc = (ulong) &_data - ALIGN (f_ohdr.data_start, 2);
off_t d_reloc = (intptr_t) _data - ALIGN (f_ohdr.data_start, 2);
#endif
int * p;
@ -628,16 +638,3 @@ unrelocate_symbols (int new, int a_out,
}
return 0;
}
/*
* Return the address of the start of the text segment prior to
* doing an unexec. After unexec the return value is undefined.
* See crt0.c for further explanation and _start.
*
*/
char *
start_of_text (void)
{
return ((char *) 0x10000000);
}