1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-04 11:40:22 +00:00

Merge from trunk.

This commit is contained in:
Paul Eggert 2012-04-15 16:55:52 -07:00
commit 20a14f94f6
45 changed files with 586 additions and 427 deletions

View File

@ -2325,7 +2325,7 @@
2010-03-12 Eli Zaretskii <eliz@gnu.org>
These changes remove termcap.c from the build on Posix platforms.
These changes remove termcap.c from the build on POSIX platforms.
* configure.in <AC_CHECK_HEADERS>: Remove termcap.h.
* configure: Regenerated.

View File

@ -155,13 +155,8 @@ mini.texi rgm
misc.texi cyd
modes.texi cyd
msdog.texi rgm (can't actually test any of it though)
It was not obvious to me that the following is true (it could well be though):
Emacs on Windows automatically determines your default printer and
sets the variable `printer-name' to that printer's name.
msdog-xtra.texi rgm (can't actually test any of it though)
mule.texi
mule.texi rgm (not 100% sure about "Fontsets")
m-x.texi cyd
package.texi cyd
picture-xtra.texi rgm
@ -182,7 +177,7 @@ xresources.texi cyd
abbrevs.texi rgm
advice.texi cyd
anti.texi
anti.texi rgm
back.texi rgm
backups.texi cyd
buffers.texi cyd

View File

@ -1,3 +1,37 @@
2012-04-15 Chong Yidong <cyd@gnu.org>
* misc.texi (emacsclient Options): More clarifications.
2012-04-15 Glenn Morris <rgm@gnu.org>
* msdog.texi (Windows Printing): It doesn't set printer-name.
* mule.texi (Language Environments): Move font info to "Fontsets".
(Fontsets): Move intlfonts etc here from "Language Environments".
Copyedits.
(Defining Fontsets, Modifying Fontsets, Undisplayable Characters)
(Unibyte Mode, Charsets, Bidirectional Editing): Copyedits.
2012-04-15 Chong Yidong <cyd@gnu.org>
* glossary.texi (Glossary): Standardize on "text terminal"
terminology. All callers changed.
* misc.texi (emacsclient Options): Document "client frame" concept
and its effect on C-x C-c more carefully.
2012-04-15 Glenn Morris <rgm@gnu.org>
* frames.texi (Scroll Bars):
* glossary.texi (Glossary): Use consistent case for "X Window System".
* mule.texi (Select Input Method, Coding Systems):
State command names in kbd tables.
(Recognize Coding): Add cross-ref.
(Output Coding): Don't mention message mode in particular.
(Text Coding, Communication Coding, File Name Coding, Terminal Coding):
Copyedits.
2012-04-14 Glenn Morris <rgm@gnu.org>
* mule.texi (Select Input Method, Coding Systems, Recognize Coding):

View File

@ -690,8 +690,8 @@ directory-local variables; and the @code{info-finder} feature that
creates a virtual Info manual of package keywords.
@item
Károly L@H{o}rentey wrote the ``multi-terminal'' code, which allows Emacs to
run on graphical and text-only terminals simultaneously.
Károly L@H{o}rentey wrote the ``multi-terminal'' code, which allows
Emacs to run on graphical and text terminals simultaneously.
@item
Martin Lorentzon wrote @file{vc-annotate.el}, support for version

View File

@ -372,7 +372,7 @@ the text in the region. @xref{Mark}, for a description of the region.
On most keyboards, @key{DEL} is labeled @key{Backspace}, but we
refer to it as @key{DEL} in this manual. (Do not confuse @key{DEL}
with the @key{Delete} key; we will discuss @key{Delete} momentarily.)
On some text-only terminals, Emacs may not recognize the @key{DEL} key
On some text terminals, Emacs may not recognize the @key{DEL} key
properly. @xref{DEL Does Not Delete}, if you encounter this problem.
The @key{delete} (@code{delete-forward-char}) command deletes in the
@ -530,7 +530,7 @@ too long to fit in the window, and Emacs displays it as two or more
@dfn{continuation}, and the long logical line is called a
@dfn{continued line}. On a graphical display, Emacs indicates line
wrapping with small bent arrows in the left and right window fringes.
On a text-only terminal, Emacs indicates line wrapping by displaying a
On a text terminal, Emacs indicates line wrapping by displaying a
@samp{\} character at the right margin.
Most commands that act on lines act on logical lines, not screen
@ -545,9 +545,9 @@ and up, respectively, by one screen line (@pxref{Moving Point}).
continuing them. This means that every logical line occupies a single
screen line; if it is longer than the width of the window, the rest of
the line is not displayed. On a graphical display, a truncated line
is indicated by a small straight arrow in the right fringe; on a
text-only terminal, it is indicated by a @samp{$} character in the
right margin. @xref{Line Truncation}.
is indicated by a small straight arrow in the right fringe; on a text
terminal, it is indicated by a @samp{$} character in the right margin.
@xref{Line Truncation}.
By default, continued lines are wrapped at the right window edge.
Since the wrapping may occur in the middle of a word, continued lines

View File

@ -227,13 +227,13 @@ is determined by the variable @code{next-error-highlight}.
If the @file{*compilation*} buffer is shown in a window with a left
fringe (@pxref{Fringes}), the locus-visiting commands put an arrow in
the fringe, pointing to the current error message. If the window has
no left fringe, such as on a text-only terminal, these commands scroll
the window so that the current message is at the top of the window.
If you change the variable @code{compilation-context-lines} to an
integer value @var{n}, these commands scroll the window so that the
current error message is @var{n} lines from the top, whether or not
there is a fringe; the default value, @code{nil}, gives the behavior
described above.
no left fringe, such as on a text terminal, these commands scroll the
window so that the current message is at the top of the window. If
you change the variable @code{compilation-context-lines} to an integer
value @var{n}, these commands scroll the window so that the current
error message is @var{n} lines from the top, whether or not there is a
fringe; the default value, @code{nil}, gives the behavior described
above.
@vindex compilation-error-regexp-alist
@vindex grep-regexp-alist
@ -572,12 +572,12 @@ for special commands that can be used in the GUD interaction buffer.
As you debug a program, Emacs displays the relevant source files by
visiting them in Emacs buffers, with an arrow in the left fringe
indicating the current execution line. (On a text-only terminal, the
arrow appears as @samp{=>}, overlaid on the first two text columns.)
Moving point in such a buffer does not move the arrow. You are free
to edit these source files, but note that inserting or deleting lines
will throw off the arrow's positioning, as Emacs has no way to figure
out which edited source line corresponds to the line reported by the
indicating the current execution line. (On a text terminal, the arrow
appears as @samp{=>}, overlaid on the first two text columns.) Moving
point in such a buffer does not move the arrow. You are free to edit
these source files, but note that inserting or deleting lines will
throw off the arrow's positioning, as Emacs has no way to figure out
which edited source line corresponds to the line reported by the
debugger subprocess. To update this information, you typically have
to recompile and restart the program.
@ -936,7 +936,7 @@ already exists there, the click removes it. A @kbd{C-Mouse-1} click
enables or disables an existing breakpoint; a breakpoint that is
disabled, but not unset, is indicated by a gray dot.
On a text-only terminal, or when fringes are disabled, enabled
On a text terminal, or when fringes are disabled, enabled
breakpoints are indicated with a @samp{B} character in the left margin
of the window. Disabled breakpoints are indicated with @samp{b}.
(The margin is only displayed if a breakpoint is present.)
@ -1079,9 +1079,9 @@ debugger}.
@findex gdb-frames-select
On graphical displays, the selected stack frame is indicated by an
arrow in the fringe. On text-only terminals, or when fringes are
disabled, the selected stack frame is displayed in reverse contrast.
To select a stack frame, move point in its line and type @key{RET}
arrow in the fringe. On text terminals, or when fringes are disabled,
the selected stack frame is displayed in reverse contrast. To select
a stack frame, move point in its line and type @key{RET}
(@code{gdb-frames-select}), or click @kbd{Mouse-2} on it. Doing so
also updates the Locals buffer
@ifnottex

View File

@ -849,8 +849,8 @@ emacs -ms coral -cr 'slate blue' &
You can reverse the foreground and background colors through the
@samp{-rv} option or with the X resource @samp{reverseVideo}.
The @samp{-fg}, @samp{-bg}, and @samp{-rv} options function on
text-only terminals as well as on graphical displays.
The @samp{-fg}, @samp{-bg}, and @samp{-rv} options function on text
terminals as well as on graphical displays.
@node Window Size X
@appendixsec Options for Window Size and Position

View File

@ -62,7 +62,7 @@ starting with @key{ESC}. Thus, you can enter @kbd{M-a} by typing
C-a}. Unlike @key{Meta}, @key{ESC} is entered as a separate
character. You don't hold down @key{ESC} while typing the next
character; instead, press @key{ESC} and release it, then enter the
next character. This feature is useful on certain text-only terminals
next character. This feature is useful on certain text terminals
where the @key{Meta} key does not function reliably.
@cindex keys stolen by window manager

View File

@ -286,8 +286,8 @@ scrolling whenever point moves off the left or right edge of the
screen. To disable automatic horizontal scrolling, set the variable
@code{auto-hscroll-mode} to @code{nil}. Note that when the automatic
horizontal scrolling is turned off, if point moves off the edge of the
screen, the cursor disappears to indicate that. (On text-only
terminals, the cursor is left at the edge instead.)
screen, the cursor disappears to indicate that. (On text terminals,
the cursor is left at the edge instead.)
@vindex hscroll-margin
The variable @code{hscroll-margin} controls how close point can get
@ -479,9 +479,9 @@ prompts for a regular expression, and displays only faces with names
matching that regular expression (@pxref{Regexps}).
It's possible for a given face to look different in different
frames. For instance, some text-only terminals do not support all
face attributes, particularly font, height, and width, and some
support a limited range of colors.
frames. For instance, some text terminals do not support all face
attributes, particularly font, height, and width, and some support a
limited range of colors.
@cindex background color
@cindex default face
@ -529,13 +529,13 @@ or an @dfn{RGB triplet}.
@samp{medium sea green}. To view a list of color names, type @kbd{M-x
list-colors-display}. To control the order in which colors are shown,
customize @code{list-colors-sort}. If you run this command on a
graphical display, it shows the full range of color names known to Emacs
(these are the standard X11 color names, defined in X's @file{rgb.txt}
file). If you run the command on a text-only terminal, it shows only a
small subset of colors that can be safely displayed on such terminals.
However, Emacs understands X11 color names even on text-only terminals;
if a face is given a color specified by an X11 color name, it is
displayed using the closest-matching terminal color.
graphical display, it shows the full range of color names known to
Emacs (these are the standard X11 color names, defined in X's
@file{rgb.txt} file). If you run the command on a text terminal, it
shows only a small subset of colors that can be safely displayed on
such terminals. However, Emacs understands X11 color names even on
text terminals; if a face is given a color specified by an X11 color
name, it is displayed using the closest-matching terminal color.
An RGB triplet is a string of the form @samp{#RRGGBB}. Each of the
R, G, and B components is a hexadecimal number specifying the
@ -651,8 +651,8 @@ at the top of a window just as the mode line appears at the bottom.
Most windows do not have a header line---only some special modes, such
Info mode, create one.
@item vertical-border
This face is used for the vertical divider between windows on
text-only terminals.
This face is used for the vertical divider between windows on text
terminals.
@item minibuffer-prompt
@cindex @code{minibuffer-prompt} face
@vindex minibuffer-prompt-properties
@ -679,9 +679,9 @@ This face determines the color of the mouse pointer.
@end table
The following faces likewise control the appearance of parts of the
Emacs frame, but only on text-only terminals, or when Emacs is built
on X with no toolkit support. (For all other cases, the appearance of
the respective frame elements is determined by system-wide settings.)
Emacs frame, but only on text terminals, or when Emacs is built on X
with no toolkit support. (For all other cases, the appearance of the
respective frame elements is determined by system-wide settings.)
@table @code
@item scroll-bar
@ -1453,9 +1453,9 @@ global-hl-line-mode} enables or disables the same mode globally.
Emacs can display long lines by @dfn{truncation}. This means that all
the characters that do not fit in the width of the screen or window do
not appear at all. On graphical displays, a small straight arrow in
the fringe indicates truncation at either end of the line. On
text-only terminals, this is indicated with @samp{$} signs in the
leftmost and/or rightmost columns.
the fringe indicates truncation at either end of the line. On text
terminals, this is indicated with @samp{$} signs in the leftmost
and/or rightmost columns.
@vindex truncate-lines
@findex toggle-truncate-lines
@ -1577,7 +1577,7 @@ of an overline above the text, including the height of the overline
itself, in pixels; the default is 2.
@findex tty-suppress-bold-inverse-default-colors
On some text-only terminals, bold face and inverse video together
result in text that is hard to read. Call the function
On some text terminals, bold face and inverse video together result
in text that is hard to read. Call the function
@code{tty-suppress-bold-inverse-default-colors} with a non-@code{nil}
argument to suppress the effect of bold-face in this case.

View File

@ -511,7 +511,7 @@ Frames and Graphical Displays
* Tooltips:: Displaying information at the current mouse position.
* Mouse Avoidance:: Moving the mouse pointer out of the way.
* Non-Window Terminals:: Multiple frames on terminals that show only one.
* Text-Only Mouse:: Using the mouse in text-only terminals.
* Text-Only Mouse:: Using the mouse in text terminals.
International Character Set Support

View File

@ -148,14 +148,14 @@ stopping the program temporarily and returning control to the parent
process (usually a shell); in most shells, you can resume Emacs after
suspending it with the shell command @command{%emacs}.
Text-only terminals usually listen for certain special characters
whose meaning is to kill or suspend the program you are running.
@b{This terminal feature is turned off while you are in Emacs.} The
meanings of @kbd{C-z} and @kbd{C-x C-c} as keys in Emacs were inspired
by the use of @kbd{C-z} and @kbd{C-c} on several operating systems as
the characters for stopping or killing a program, but that is their
only relationship with the operating system. You can customize these
keys to run any commands of your choice (@pxref{Keymaps}).
Text terminals usually listen for certain special characters whose
meaning is to kill or suspend the program you are running. @b{This
terminal feature is turned off while you are in Emacs.} The meanings
of @kbd{C-z} and @kbd{C-x C-c} as keys in Emacs were inspired by the
use of @kbd{C-z} and @kbd{C-c} on several operating systems as the
characters for stopping or killing a program, but that is their only
relationship with the operating system. You can customize these keys
to run any commands of your choice (@pxref{Keymaps}).
@ifnottex
@lowersections

View File

@ -1853,7 +1853,7 @@ When typing a file name in the minibuffer, @kbd{C-@key{tab}}
(@code{file-cache-minibuffer-complete}) completes it using the file
name cache. If you repeat @kbd{C-@key{tab}}, that cycles through the
possible completions of what you had originally typed. (However, note
that the @kbd{C-@key{tab}} character cannot be typed on most text-only
that the @kbd{C-@key{tab}} character cannot be typed on most text
terminals.)
The file name cache does not fill up automatically. Instead, you

View File

@ -57,9 +57,9 @@ Undo one entry in the current buffer's undo records (@code{undo}).
@kbd{C-x u})@footnote{Aside from @kbd{C-/}, the @code{undo} command is
also bound to @kbd{C-x u} because that is more straightforward for
beginners to remember: @samp{u} stands for ``undo''. It is also bound
to @kbd{C-_} because typing @kbd{C-/} on some text-only terminals
actually enters @kbd{C-_}.}. This undoes the most recent change in
the buffer, and moves point back to where it was before that change.
to @kbd{C-_} because typing @kbd{C-/} on some text terminals actually
enters @kbd{C-_}.}. This undoes the most recent change in the buffer,
and moves point back to where it was before that change.
Consecutive repetitions of @kbd{C-/} (or its aliases) undo earlier
and earlier changes in the current buffer. If all the recorded

View File

@ -27,13 +27,12 @@ displays (@pxref{Exiting}). To close just the selected frame, type
This chapter describes Emacs features specific to graphical displays
(particularly mouse commands), and features for managing multiple
frames. On text-only terminals, many of these features are
unavailable. However, it is still possible to create multiple
``frames'' on text-only terminals; such frames are displayed one at a
time, filling the entire terminal screen (@pxref{Non-Window
Terminals}). It is also possible to use the mouse on some text-only
terminals (@pxref{Text-Only Mouse}, for doing so on GNU and Unix
systems; and
frames. On text terminals, many of these features are unavailable.
However, it is still possible to create multiple ``frames'' on text
terminals; such frames are displayed one at a time, filling the entire
terminal screen (@pxref{Non-Window Terminals}). It is also possible
to use the mouse on some text terminals (@pxref{Text-Only Mouse}, for
doing so on GNU and Unix systems; and
@iftex
@pxref{MS-DOS Mouse,,,emacs-xtra,Specialized Emacs Features},
@end iftex
@ -62,7 +61,7 @@ for doing so on MS-DOS).
* Tooltips:: Displaying information at the current mouse position.
* Mouse Avoidance:: Preventing the mouse pointer from obscuring text.
* Non-Window Terminals:: Multiple frames on terminals that show only one.
* Text-Only Mouse:: Using the mouse in text-only terminals.
* Text-Only Mouse:: Using the mouse in text terminals.
@end menu
@node Mouse Commands
@ -465,9 +464,9 @@ the ordinary, interactive frames are deleted. In this case, @kbd{C-x
The @kbd{C-x 5 1} (@code{delete-other-frames}) command deletes all
other frames on the current terminal (this terminal refers to either a
graphical display, or a text-only terminal; @pxref{Non-Window
Terminals}). If the Emacs session has frames open on other graphical
displays or text terminals, those are not deleted.
graphical display, or a text terminal; @pxref{Non-Window Terminals}).
If the Emacs session has frames open on other graphical displays or
text terminals, those are not deleted.
@vindex focus-follows-mouse
The @kbd{C-x 5 o} (@code{other-frame}) command selects the next
@ -908,7 +907,7 @@ scroll bars on the right side of windows), @code{left} (put them on
the left), or @code{nil} (disable scroll bars). By default, Emacs
puts scroll bars on the right if it was compiled with GTK+ support on
the X Window System, and on MS-Windows or Mac OS; Emacs puts scroll
bars on the left if compiled on the X Window system without GTK+
bars on the left if compiled on the X Window System without GTK+
support (following the old convention for X applications).
@vindex scroll-bar-width
@ -953,7 +952,7 @@ the use of menu bars at startup, customize the variable
@code{menu-bar-mode}.
@kindex C-Mouse-3 @r{(when menu bar is disabled)}
Expert users often turn off the menu bar, especially on text-only
Expert users often turn off the menu bar, especially on text
terminals, where this makes one additional line available for text.
If the menu bar is off, you can still pop up a menu of its contents
with @kbd{C-Mouse-3} on a display which supports pop-up menus.
@ -1112,9 +1111,9 @@ raises the frame.
@node Non-Window Terminals
@section Non-Window Terminals
@cindex text-only terminal
@cindex text terminal
On a text-only terminal, Emacs can display only one Emacs frame at a
On a text terminal, Emacs can display only one Emacs frame at a
time. However, you can still create multiple Emacs frames, and switch
between them. Switching frames on these terminals is much like
switching between different window configurations.
@ -1139,11 +1138,11 @@ to select a frame according to its name. The name you specify appears
in the mode line when the frame is selected.
@node Text-Only Mouse
@section Using a Mouse in Text-only Terminals
@section Using a Mouse in Text Terminals
@cindex mouse support
@cindex terminal emulators, mouse support
Some text-only terminals support mouse clicks in the terminal window.
Some text terminals support mouse clicks in the terminal window.
@cindex xterm
In a terminal emulator which is compatible with @command{xterm}, you

View File

@ -181,7 +181,7 @@ Emacs supports a number of character sets, each of which represents a
particular alphabet or script. @xref{International}.
@item Character Terminal
@xref{Glossary - Text-only Terminal}.
@xref{Glossary - Text Terminal}.
@item Click Event
A click event is the kind of input event (q.v.@:) generated when you
@ -193,7 +193,7 @@ press a mouse button and release it without moving the mouse.
@item Clipboard
A clipboard is a buffer provided by the window system for transferring
text between applications. On the X Window system, the clipboard is
text between applications. On the X Window System, the clipboard is
provided in addition to the primary selection (q.v.@:); on MS-Windows and Mac,
the clipboard is used @emph{instead} of the primary selection.
@xref{Clipboard}.
@ -1329,12 +1329,12 @@ Data consisting of written human language (as opposed to programs),
or following the stylistic conventions of human language.
@end itemize
@anchor{Glossary - Text-only Terminal}
@item Text-only Terminal
A text-only terminal is a display that is limited to displaying text in
character units. Such a terminal cannot control individual pixels it
displays. Emacs supports a subset of display features on text-only
terminals.
@anchor{Glossary - Text Terminal}
@item Text Terminal
A text terminal, or character terminal, is a display that is limited
to displaying text in character units. Such a terminal cannot control
individual pixels it displays. Emacs supports a subset of display
features on text terminals.
@item Text Properties
Text properties are annotations recorded for particular characters in
@ -1384,7 +1384,7 @@ displaying it. @xref{Continuation Lines,Truncation}, and
@ref{Glossary - Continuation Line}.
@item TTY
@xref{Glossary - Text-only Terminal}.
@xref{Glossary - Text Terminal}.
@item Undoing
Undoing means making your previous editing go in reverse, bringing

View File

@ -1405,7 +1405,7 @@ signaled.) Currently, this feature is mainly useful for developers.
the shell command @samp{emacsclient @var{file}}, where @var{file} is a
file name. This connects to an Emacs server, and tells that Emacs
process to visit @var{file} in one of its existing frames---either a
graphical frame, or one in a text-only terminal (@pxref{Frames}). You
graphical frame, or one in a text terminal (@pxref{Frames}). You
can then select that frame to begin editing.
If there is no Emacs server, the @command{emacsclient} program halts
@ -1415,12 +1415,12 @@ Server})---then Emacs opens a frame on the terminal in which you
called @command{emacsclient}.
You can also force @command{emacsclient} to open a new frame on a
graphical display, or on a text-only terminal, using the @samp{-c} and
graphical display, or on a text terminal, using the @samp{-c} and
@samp{-t} options. @xref{emacsclient Options}.
If you are running on a single text-only terminal, you can switch
between @command{emacsclient}'s shell and the Emacs server using one
of two methods: (i) run the Emacs server and @command{emacsclient} on
If you are running on a single text terminal, you can switch between
@command{emacsclient}'s shell and the Emacs server using one of two
methods: (i) run the Emacs server and @command{emacsclient} on
different virtual terminals, and switch to the Emacs server's virtual
terminal after calling @command{emacsclient}; or (ii) call
@command{emacsclient} from within the Emacs server itself, using Shell
@ -1502,16 +1502,24 @@ The environment variable @env{ALTERNATE_EDITOR} has the same effect as
the @samp{-a} option. If both are present, the latter takes
precedence.
@cindex client frame
@item -c
Create a new graphical frame, instead of using an existing Emacs
frame. Emacs can create a graphical frame even if it was started in a
text-only terminal, provided it is able to connect to a graphical
display. If Emacs is unable to connect to a graphical display, and on
systems, such as MS-Windows (@pxref{Windows Startup, emacsclient}),
where it cannot create graphical frames when started from a text-only
terminal, it creates a new text-only terminal frame (@pxref{Frames}).
If you omit a filename argument while supplying the @samp{-c} option,
the new frame displays the @file{*scratch*} buffer (@pxref{Buffers}).
Create a new graphical @dfn{client frame}, instead of using an
existing Emacs frame. If you omit a filename argument while supplying
the @samp{-c} option, the new frame displays the @file{*scratch*}
buffer (@pxref{Buffers}). See below for the special behavior of
@kbd{C-x C-c} in a client frame.
If Emacs is unable to create a new graphical frame (e.g.@: if it is
unable to connect to the X server), it tries to create a text terminal
client frame, as though you had supplied the @samp{-t} option instead
(see below).
On MS-Windows, a single Emacs session cannot display frames on both
graphical and text terminals, nor on multiple text terminals. Thus,
if the Emacs server is running on a text terminal, the @samp{-c}
option, like the @samp{-t} option, creates a new frame in the server's
current text terminal. @xref{Windows Startup}.
@item -F @var{alist}
@itemx --frame-parameters=@var{alist}
@ -1593,28 +1601,46 @@ server it finds. (This option is not supported on MS-Windows.)
@item -t
@itemx --tty
@itemx -nw
Create a new Emacs frame on the current text-only terminal, instead of
using an existing Emacs frame. Emacs can open a text-only terminal
even if it was started in another text-only terminal, or on a
graphical display. On systems, such as MS-Windows, where this is
impossible, Emacs will create a new frame, either GUI or text-only, on
the same terminal where it was started (@pxref{Windows Startup,
emacsclient}). If you omit a filename argument while supplying this
option, the new frame displays the @file{*scratch*} buffer.
@xref{Buffers}.
Create a new client frame on the current text terminal, instead of
using an existing Emacs frame. This is similar to the @samp{-c}
option, above, except that it creates a text terminal frame
(@pxref{Non-Window Terminals}). If you omit a filename argument while
supplying this option, the new frame displays the @file{*scratch*}
buffer (@pxref{Buffers}). See below for the special behavior of
@kbd{C-x C-c} in a client frame.
On MS-Windows, a single Emacs session cannot display frames on both
graphical and text terminals, nor on multiple text terminals. Thus,
if the Emacs server is using the graphical display, @samp{-t} behaves
like @samp{-c} (see above); whereas if the Emacs server is running on
a text terminal, it creates a new frame in its current text terminal.
@xref{Windows Startup}.
@end table
If you type @kbd{C-x C-c} (@code{save-buffers-kill-terminal}) in an
Emacs frame created with @command{emacsclient}, via the @samp{-c} or
@samp{-t} options, Emacs deletes the frame instead of killing the
Emacs process itself. On a text-only terminal frame created with the
@samp{-t} option, this returns control to the terminal. Emacs also
marks all the server buffers for the client as finished, as though you
had typed @kbd{C-x #} in all of them.
The new graphical or text terminal frames created by the @samp{-c}
or @samp{-t} options are considered @dfn{client frames}. Any new
frame that you create from a client frame is also considered a client
frame. If you type @kbd{C-x C-c} (@code{save-buffers-kill-terminal})
in a client frame, that command does not kill the Emacs session as it
normally does (@pxref{Exiting}). Instead, Emacs deletes the client
frame; furthermore, if the client frame has an @command{emacsclient}
waiting to regain control (i.e.@: if you did not supply the @samp{-n}
option), Emacs deletes all other frames of the same client, and marks
the client's server buffers as finished, as though you had typed
@kbd{C-x #} in all of them. If it so happens that there are no
remaining frames after the client frame(s) are deleted, the Emacs
session exits.
When Emacs is started as a daemon, all frames are considered client
frames, so @kbd{C-x C-c} will never kill Emacs. To kill the Emacs
process, type @kbd{M-x kill-emacs}.
As an exception, when Emacs is started as a daemon, all frames are
considered client frames, and @kbd{C-x C-c} never kills Emacs. To
kill a daemon session, type @kbd{M-x kill-emacs}.
Note that the @samp{-t} and @samp{-n} options are contradictory:
@samp{-t} says to take control of the current text terminal to create
a new client frame, while @samp{-n} says not to take control of the
text terminal. If you supply both options, Emacs visits the specified
files(s) in an existing frame rather than a new client frame, negating
the effect of @samp{-t}.
@node Printing, Sorting, Emacs Server, Top
@section Printing Hard Copies

View File

@ -247,7 +247,7 @@ begins at the top of the character cell.
@cindex frames on MS-DOS
The MS-DOS terminal can only display a single frame at a time. The
Emacs frame facilities work on MS-DOS much as they do on text-only
Emacs frame facilities work on MS-DOS much as they do on text
terminals
@iftex
(@pxref{Frames,,,emacs, the Emacs Manual}).

View File

@ -121,8 +121,8 @@ Emacs will always create a new text-mode frame in the same
created only if the server runs in a GUI session. Similarly, if you
invoke @command{emacsclient} with the @option{-t} option, Emacs will
create a GUI frame if the server runs in a GUI session, or a text-mode
frame when the session runs in text-only mode in a @dfn{Command
Prompt} window. @xref{emacsclient Options}.
frame when the session runs in text mode in a @dfn{Command Prompt}
window. @xref{emacsclient Options}.
@node Text and Binary
@section Text Files and Binary Files
@ -729,9 +729,9 @@ Posix-style @code{lpr} program is unavailable. The same Emacs
variables control printing on all systems, but in some cases they have
different default values on MS-DOS and MS-Windows.
Emacs on Windows automatically determines your default printer and
sets the variable @code{printer-name} to that printer's name. But in
some rare cases this can fail, or you may wish to use a different
Emacs on MS Windows attempts to determine your default printer
automatically (using the function @code{default-printer-name}).
But in some rare cases this can fail, or you may wish to use a different
printer from within Emacs. The rest of this section explains how to
tell Emacs which printer to use.

View File

@ -60,7 +60,7 @@ for each command; see @ref{Text Coding}.
@item
You can display non-@acronym{ASCII} characters encoded by the various
scripts. This works by using appropriate fonts on graphics displays
(@pxref{Defining Fontsets}), and by sending special codes to text-only
(@pxref{Defining Fontsets}), and by sending special codes to text
displays (@pxref{Terminal Coding}). If some characters are displayed
incorrectly, refer to @ref{Undisplayable Characters}, which describes
possible problems and explains how to solve them.
@ -210,7 +210,7 @@ What keys to type to input the character in the current input method
@item
If you are running Emacs on a graphical display, the font name and
glyph code for the character. If you are running Emacs on a text-only
glyph code for the character. If you are running Emacs on a text
terminal, the code(s) sent to the terminal.
@item
@ -365,25 +365,8 @@ UTF-8), Ukrainian, Vietnamese, Welsh, and Windows-1255 (for a setup
which prefers Cyrillic characters and files encoded in Windows-1255).
@end quotation
@cindex fonts for various scripts
@cindex Intlfonts package, installation
To display the script(s) used by your language environment on a
graphical display, you need to have a suitable font. If some of the
characters appear as empty boxes or hex codes, you should install
extra fonts. Your operating system may have optional fonts that
you can install; or you can install the
GNU Intlfonts package, which includes fonts for most supported
scripts.@footnote{If you run Emacs on X, you may need to inform the X
server about the location of the newly installed fonts with
commands such as:
@c FIXME? I feel like this may be out of date.
@c Eg the intlfonts tarfile is ~ 10 years old.
@example
xset fp+ /usr/local/share/emacs/fonts
xset fp rehash
@end example
}
graphical display, you need to have suitable fonts.
@xref{Fontsets}, for more details about setting up your fonts.
@findex set-locale-environment
@ -577,10 +560,10 @@ Text}.
@table @kbd
@item C-\
Enable or disable use of the selected input method.
Enable or disable use of the selected input method (@code{toggle-input-method}).
@item C-x @key{RET} C-\ @var{method} @key{RET}
Select a new input method for the current buffer.
Select a new input method for the current buffer (@code{set-input-method}).
@item C-h I @var{method} @key{RET}
@itemx C-h C-\ @var{method} @key{RET}
@ -716,7 +699,7 @@ carriage-return (``mac'').
@table @kbd
@item C-h C @var{coding} @key{RET}
Describe coding system @var{coding}.
Describe coding system @var{coding} (@code{describe-coding-system}).
@item C-h C @key{RET}
Describe the coding systems currently in use.
@ -921,7 +904,7 @@ escape sequence detection.
the strongest way to specify the coding system for certain patterns of
file names, or for files containing certain patterns, respectively.
These variables even override @samp{-*-coding:-*-} tags in the file
itself. For example, Emacs
itself (@pxref{Specify Coding}). For example, Emacs
uses @code{auto-coding-alist} for tar and archive files, to prevent it
from being confused by a @samp{-*-coding:-*-} tag in a member of the
archive and thinking it applies to the archive file as a whole.
@ -1006,6 +989,7 @@ and asks you to choose one of those coding systems.
If you insert the unsuitable characters in a mail message, Emacs
behaves a bit differently. It additionally checks whether the
@c What determines this?
most-preferred coding system is recommended for use in MIME messages;
if not, Emacs tells you that the most-preferred coding system is not
recommended and prompts you for another coding system. This is so you
@ -1014,17 +998,22 @@ recipient's mail software will have difficulty decoding. (You can
still use an unsuitable coding system if you type its name in response
to the question.)
@c It seems that select-message-coding-system does this.
@c Both sendmail.el and smptmail.el call it; i.e. smtpmail.el still
@c obeys sendmail-coding-system.
@vindex sendmail-coding-system
When you send a message with Message mode (@pxref{Sending Mail}),
When you send a mail message (@pxref{Sending Mail}),
Emacs has four different ways to determine the coding system to use
for encoding the message text. It tries the buffer's own value of
@code{buffer-file-coding-system}, if that is non-@code{nil}.
Otherwise, it uses the value of @code{sendmail-coding-system}, if that
is non-@code{nil}. The third way is to use the default coding system
for new files, which is controlled by your choice of language
@c i.e., default-sendmail-coding-system
environment, if that is non-@code{nil}. If all of these three values
are @code{nil}, Emacs encodes outgoing mail using the Latin-1 coding
system.
@c FIXME? Where does the Latin-1 default come in?
@node Text Coding
@section Specifying a Coding System for File Text
@ -1035,8 +1024,8 @@ one:
@table @kbd
@item C-x @key{RET} f @var{coding} @key{RET}
Use coding system @var{coding} to save or revisit the visited file in
the current buffer (@code{set-buffer-file-coding-system})
Use coding system @var{coding} to save or revisit the file in
the current buffer (@code{set-buffer-file-coding-system}).
@item C-x @key{RET} c @var{coding} @key{RET}
Specify coding system @var{coding} for the immediately following
@ -1066,8 +1055,8 @@ buffer.
You can also use this command to specify the end-of-line conversion
(@pxref{Coding Systems, end-of-line conversion}) for encoding the
current buffer. For example, @kbd{C-x @key{RET} f dos @key{RET}} will
cause Emacs to save the current buffer's text with DOS-style CRLF line
endings.
cause Emacs to save the current buffer's text with DOS-style
carriage-return linefeed line endings.
@kindex C-x RET c
@findex universal-coding-system-argument
@ -1155,7 +1144,7 @@ coding system for the next selection made in Emacs or read by Emacs.
The variable @code{x-select-request-type} specifies the data type to
request from the X Window System for receiving text selections from
other applications. If the value is @code{nil} (the default), Emacs
tries @code{COMPOUND_TEXT} and @code{UTF8_STRING}, in this order, and
tries @code{UTF8_STRING} and @code{COMPOUND_TEXT}, in this order, and
uses various heuristics to choose the more appropriate of the two
results; if none of these succeed, Emacs falls back on @code{STRING}.
If the value of @code{x-select-request-type} is one of the symbols
@ -1187,8 +1176,8 @@ current language environment.
The variable @code{locale-coding-system} specifies a coding system
to use when encoding and decoding system strings such as system error
messages and @code{format-time-string} formats and time stamps. That
coding system is also used for decoding non-@acronym{ASCII} keyboard input on X
Window systems. You should choose a coding system that is compatible
coding system is also used for decoding non-@acronym{ASCII} keyboard
input on the X Window System. You should choose a coding system that is compatible
with the underlying system's text representation, which is normally
specified by one of the environment variables @env{LC_ALL},
@env{LC_CTYPE}, and @env{LANG}. (The first one, in the order
@ -1201,27 +1190,29 @@ the text representation.)
@table @kbd
@item C-x @key{RET} F @var{coding} @key{RET}
Use coding system @var{coding} for encoding and decoding file
@emph{names} (@code{set-file-name-coding-system}).
names (@code{set-file-name-coding-system}).
@end table
@vindex file-name-coding-system
@cindex file names with non-@acronym{ASCII} characters
The variable @code{file-name-coding-system} specifies a coding
system to use for encoding file names. It has no effect on reading
and writing the @emph{contents} of files.
@findex set-file-name-coding-system
@kindex C-x @key{RET} F
If you set the variable to a coding system name (as a Lisp symbol or
a string), Emacs encodes file names using that coding system for all
file operations. This makes it possible to use non-@acronym{ASCII}
characters in file names---or, at least, those non-@acronym{ASCII}
characters which the specified coding system can encode. Use @kbd{C-x
@key{RET} F} (@code{set-file-name-coding-system}) to specify this
interactively.
@cindex file names with non-@acronym{ASCII} characters
The command @kbd{C-x @key{RET} F} (@code{set-file-name-coding-system})
specifies a coding system to use for encoding file @emph{names}. It
has no effect on reading and writing the @emph{contents} of files.
@vindex file-name-coding-system
In fact, all this command does is set the value of the variable
@code{file-name-coding-system}. If you set the variable to a coding
system name (as a Lisp symbol or a string), Emacs encodes file names
using that coding system for all file operations. This makes it
possible to use non-@acronym{ASCII} characters in file names---or, at
least, those non-@acronym{ASCII} characters that the specified coding
system can encode.
If @code{file-name-coding-system} is @code{nil}, Emacs uses a
default coding system determined by the selected language environment.
default coding system determined by the selected language environment,
and stored in the @code{default-file-name-coding-system} variable.
@c FIXME? Is this correct? What is the "default language environment"?
In the default language environment, non-@acronym{ASCII} characters in
file names are not encoded specially; they appear in the file system
using the internal Emacs representation.
@ -1232,7 +1223,7 @@ result if you have already visited files whose names were encoded using
the earlier coding system and cannot be encoded (or are encoded
differently) under the new coding system. If you try to save one of
these buffers under the visited file name, saving may use the wrong file
name, or it may get an error. If such a problem happens, use @kbd{C-x
name, or it may encounter an error. If such a problem happens, use @kbd{C-x
C-w} to specify a new file name for that buffer.
@findex recode-file-name
@ -1245,13 +1236,13 @@ system, and the coding system to which you wish to convert.
@section Coding Systems for Terminal I/O
@table @kbd
@item C-x @key{RET} k @var{coding} @key{RET}
Use coding system @var{coding} for keyboard input
(@code{set-keyboard-coding-system}).
@item C-x @key{RET} t @var{coding} @key{RET}
Use coding system @var{coding} for terminal output
(@code{set-terminal-coding-system}).
@item C-x @key{RET} k @var{coding} @key{RET}
Use coding system @var{coding} for keyboard input
(@code{set-keyboard-coding-system}).
@end table
@kindex C-x RET t
@ -1274,8 +1265,8 @@ your locale specification (@pxref{Language Environments}).
@kindex C-x RET k
@findex set-keyboard-coding-system
@vindex keyboard-coding-system
The command @kbd{C-x @key{RET} k} (@code{set-keyboard-coding-system})
or the variable @code{keyboard-coding-system} specifies the coding
The command @kbd{C-x @key{RET} k} (@code{set-keyboard-coding-system}),
or the variable @code{keyboard-coding-system}, specifies the coding
system for keyboard input. Character-code translation of keyboard
input is useful for terminals with keys that send non-@acronym{ASCII}
graphic characters---for example, some terminals designed for ISO
@ -1310,30 +1301,49 @@ non-graphic characters.
A font typically defines shapes for a single alphabet or script.
Therefore, displaying the entire range of scripts that Emacs supports
requires a collection of many fonts. In Emacs, such a collection is
called a @dfn{fontset}. A fontset is defined by a list of font specs,
called a @dfn{fontset}. A fontset is defined by a list of font specifications,
each assigned to handle a range of character codes, and may fall back
on another fontset for characters which are not covered by the fonts
on another fontset for characters that are not covered by the fonts
it specifies.
@cindex fonts for various scripts
@cindex Intlfonts package, installation
Each fontset has a name, like a font. However, while fonts are
stored in the system and the available font names are defined by the
system, fontsets are defined within Emacs itself. Once you have
defined a fontset, you can use it within Emacs by specifying its name,
anywhere that you could use a single font. Of course, Emacs fontsets
can use only the fonts that the system supports; if certain characters
appear on the screen as hollow boxes, this means that the fontset in
use for them has no font for those characters.@footnote{The Emacs
installation instructions have information on additional font
support.}
can use only the fonts that the system supports. If some characters
appear on the screen as empty boxes or hex codes, this means that the
fontset in use for them has no font for those characters. In this
case, or if the characters are shown, but not as well as you would
like, you may need to install extra fonts. Your operating system may
have optional fonts that you can install; or you can install the GNU
Intlfonts package, which includes fonts for most supported
scripts.@footnote{If you run Emacs on X, you may need to inform the X
server about the location of the newly installed fonts with commands
such as:
@c FIXME? I feel like this may be out of date.
@c Eg the intlfonts tarfile is ~ 10 years old.
@example
xset fp+ /usr/local/share/emacs/fonts
xset fp rehash
@end example
}
Emacs creates three fontsets automatically: the @dfn{standard
fontset}, the @dfn{startup fontset} and the @dfn{default fontset}.
@c FIXME? The doc of *standard*-fontset-spec says:
@c "You have the biggest chance to display international characters
@c with correct glyphs by using the *standard* fontset." (my emphasis)
The default fontset is most likely to have fonts for a wide variety of
non-@acronym{ASCII} characters and is the default fallback for the
non-@acronym{ASCII} characters, and is the default fallback for the
other two fontsets, and if you set a default font rather than fontset.
However it does not specify font family names, so results can be
However, it does not specify font family names, so results can be
somewhat random if you use it directly. You can specify use of a
specific fontset with the @samp{-fn} option. For example,
particular fontset by starting Emacs with the @samp{-fn} option.
For example,
@example
emacs -fn fontset-standard
@ -1372,10 +1382,12 @@ of @code{standard-fontset-spec}. This fontset's name is
@noindent
or just @samp{fontset-standard} for short.
On GNUstep and Mac, fontset-standard is created using the value of
@code{ns-standard-fontset-spec}, and on Windows it is
On GNUstep and Mac OS X, the standard fontset is created using the value of
@code{ns-standard-fontset-spec}, and on MS Windows it is
created using the value of @code{w32-standard-fontset-spec}.
@c FIXME? How does one access these, or do anything with them?
@c Does it matter?
Bold, italic, and bold-italic variants of the standard fontset are
created automatically. Their names have @samp{bold} instead of
@samp{medium}, or @samp{i} instead of @samp{r}, or both.
@ -1390,8 +1402,15 @@ started. This is the @dfn{startup fontset} and its name is
@var{charset_encoding} field with @samp{startup}, then using the
resulting string to specify a fontset.
For instance, if you start Emacs this way,
For instance, if you start Emacs with a font of this form,
@c FIXME? I think this is a little misleading, because you cannot (?)
@c actually specify a font with wildcards, it has to be a complete spec.
@c Also, an X font specification of this form hasn't (?) been
@c mentioned before now, and is somewhat obsolete these days.
@c People are more likely to use a form like
@c emacs -fn "DejaVu Sans Mono-12"
@c How does any of this apply in that case?
@example
emacs -fn "*courier-medium-r-normal--14-140-*-iso8859-1"
@end example
@ -1404,8 +1423,8 @@ window frame:
-*-courier-medium-r-normal-*-14-140-*-*-*-*-fontset-startup
@end example
The startup fontset will use the font that you specify or a variant
with a different registry and encoding for all the characters which
The startup fontset will use the font that you specify, or a variant
with a different registry and encoding, for all the characters that
are supported by that font, and fallback on @samp{fontset-default} for
other characters.
@ -1413,7 +1432,8 @@ other characters.
just like an actual font name. But be careful not to specify a fontset
name in a wildcard resource like @samp{Emacs*Font}---that wildcard
specification matches various other resources, such as for menus, and
menus cannot handle fontsets.
@c FIXME is this still true?
menus cannot handle fontsets. @xref{X Resources}.
You can specify additional fontsets using X resources named
@samp{Fontset-@var{n}}, where @var{n} is an integer starting from 0.
@ -1424,7 +1444,8 @@ The resource value should have this form:
@end smallexample
@noindent
@var{fontpattern} should have the form of a standard X font name, except
@var{fontpattern} should have the form of a standard X font name (see
the previous fontset-startup example), except
for the last two fields. They should have the form
@samp{fontset-@var{alias}}.
@ -1446,7 +1467,7 @@ that describe the character set. For the @acronym{ASCII} character font,
In addition, when several consecutive fields are wildcards, Emacs
collapses them into a single wildcard. This is to prevent use of
auto-scaled fonts. Fonts made by scaling larger fonts are not usable
for editing, and scaling a smaller font is not useful because it is
for editing, and scaling a smaller font is not also useful, because it is
better to use the smaller font in its own size, which is what Emacs
does.
@ -1472,8 +1493,8 @@ and the font specification for Chinese GB2312 characters would be this:
You may not have any Chinese font matching the above font
specification. Most X distributions include only Chinese fonts that
have @samp{song ti} or @samp{fangsong ti} in @var{family} field. In
such a case, @samp{Fontset-@var{n}} can be specified as below:
have @samp{song ti} or @samp{fangsong ti} in the @var{family} field. In
such a case, @samp{Fontset-@var{n}} can be specified as:
@smallexample
Emacs.Fontset-0: -*-fixed-medium-r-normal-*-24-*-*-*-*-*-fontset-24,\
@ -1507,8 +1528,8 @@ script.
Fontsets can be modified using the function @code{set-fontset-font},
specifying a character, a charset, a script, or a range of characters
to modify the font for, and a font-spec for the font to be used. Some
examples are:
to modify the font for, and a font specification for the font to be
used. Some examples are:
@example
;; Use Liberation Mono for latin-3 charset.
@ -1535,10 +1556,10 @@ examples are:
@node Undisplayable Characters
@section Undisplayable Characters
There may be a some non-@acronym{ASCII} characters that your terminal cannot
display. Most text-only terminals support just a single character
set (use the variable @code{default-terminal-coding-system}
(@pxref{Terminal Coding}) to tell Emacs which one); characters which
There may be some non-@acronym{ASCII} characters that your
terminal cannot display. Most text terminals support just a single
character set (use the variable @code{default-terminal-coding-system}
to tell Emacs which one, @ref{Terminal Coding}); characters that
can't be encoded in that coding system are displayed as @samp{?} by
default.
@ -1570,17 +1591,15 @@ the range 0240 to 0377 octal (160 to 255 decimal) to handle the
accented letters and punctuation needed by various European languages
(and some non-European ones). Note that Emacs considers bytes with
codes in this range as raw bytes, not as characters, even in a unibyte
session, i.e.@: if you disable multibyte characters. However, Emacs
buffer, i.e.@: if you disable multibyte characters. However, Emacs
can still handle these character codes as if they belonged to
@emph{one} of the single-byte character sets at a time. To specify
@emph{which} of these codes to use, invoke @kbd{M-x
set-language-environment} and specify a suitable language environment
such as @samp{Latin-@var{n}}.
For more information about unibyte operation, see @ref{Disabling
Multibyte}. Note particularly that you probably want to ensure that
your initialization files are read as unibyte if they contain
non-@acronym{ASCII} characters.
For more information about unibyte operation, see
@ref{Disabling Multibyte}.
@vindex unibyte-display-via-language-environment
Emacs can also display bytes in the range 160 to 255 as readable
@ -1599,8 +1618,8 @@ them as raw bytes, not as characters.
set, Emacs can display these characters as @acronym{ASCII} sequences which at
least give you a clear idea of what the characters are. To do this,
load the library @code{iso-ascii}. Similar libraries for other
Latin-@var{n} character sets could be implemented, but we don't have
them yet.
Latin-@var{n} character sets could be implemented, but have not been
so far.
@findex standard-display-8bit
@cindex 8-bit display
@ -1624,9 +1643,9 @@ If your keyboard can generate character codes 128 (decimal) and up,
representing non-@acronym{ASCII} characters, you can type those character codes
directly.
On a graphical display, you should not need to do anything special to use
these keys; they should simply work. On a text-only terminal, you
should use the command @code{M-x set-keyboard-coding-system} or the
On a graphical display, you should not need to do anything special to
use these keys; they should simply work. On a text terminal, you
should use the command @code{M-x set-keyboard-coding-system} or customize the
variable @code{keyboard-coding-system} to specify which coding system
your keyboard uses (@pxref{Terminal Coding}). Enabling this feature
will probably require you to use @kbd{ESC} to type Meta characters;
@ -1694,8 +1713,9 @@ internal representation within Emacs.
@findex list-character-sets
@kbd{M-x list-character-sets} displays a list of all supported
charsets. The list gives the names of charsets and additional
information to identity each charset (see
@url{http://www.itscj.ipsj.or.jp/ISO-IR/} for details). In this list,
information to identity each charset; see the
@url{http://www.itscj.ipsj.or.jp/ISO-IR/, International Register of
Coded Character Sets} for more details. In this list,
charsets are divided into two categories: @dfn{normal charsets} are
listed first, followed by @dfn{supplementary charsets}. A
supplementary charset is one that is used to define another charset
@ -1715,8 +1735,8 @@ Chars}).
Hebrew, whose natural ordering of horizontal text for display is from
right to left. However, digits and Latin text embedded in these
scripts are still displayed left to right. It is also not uncommon to
have small portions of text in Arabic or Hebrew embedded in otherwise
Latin document, e.g., as comments and strings in a program source
have small portions of text in Arabic or Hebrew embedded in an otherwise
Latin document; e.g., as comments and strings in a program source
file. For these reasons, text that uses these scripts is actually
@dfn{bidirectional}: a mixture of runs of left-to-right and
right-to-left characters.
@ -1744,6 +1764,7 @@ directionality when they are displayed. The default value is
Each paragraph of bidirectional text can have its own @dfn{base
direction}, either right-to-left or left-to-right. (Paragraph
@c paragraph-separate etc have no influence on this?
boundaries are empty lines, i.e.@: lines consisting entirely of
whitespace characters.) Text in left-to-right paragraphs begins at
the left margin of the window and is truncated or continued when it
@ -1780,5 +1801,5 @@ commands move point in the logical order, so the cursor will sometimes
jump when point traverses reordered bidirectional text. Similarly, a
highlighted region covering a contiguous range of character positions
may look discontinuous if the region spans reordered text. This is
normal and similar to behavior of other programs that support
normal and similar to the behavior of other programs that support
bidirectional text.

View File

@ -8,12 +8,12 @@
@cindex frame
On a graphical display, such as on GNU/Linux using the X Window
System, Emacs occupies a ``graphical window''. On a text-only
terminal, Emacs occupies the entire terminal screen. We will use the
term @dfn{frame} to mean a graphical window or terminal screen
occupied by Emacs. Emacs behaves very similarly on both kinds of
frames. It normally starts out with just one frame, but you can
create additional frames if you wish (@pxref{Frames}).
System, Emacs occupies a ``graphical window''. On a text terminal,
Emacs occupies the entire terminal screen. We will use the term
@dfn{frame} to mean a graphical window or terminal screen occupied by
Emacs. Emacs behaves very similarly on both kinds of frames. It
normally starts out with just one frame, but you can create additional
frames if you wish (@pxref{Frames}).
Each frame consists of several distinct regions. At the top of the
frame is a @dfn{menu bar}, which allows you to access commands via a
@ -178,7 +178,7 @@ unselected windows, in order to make it stand out.
@end example
@noindent
On a text-only terminal, this text is followed by a series of dashes
On a text terminal, this text is followed by a series of dashes
extending to the right edge of the window. These dashes are omitted
on a graphical display.
@ -195,7 +195,7 @@ means no conversion whatsoever, and is usually used for files
containing non-textual data. Other characters represent various
@dfn{coding systems}---for example, @samp{1} represents ISO Latin-1.
On a text-only terminal, @var{cs} is preceded by two additional
On a text terminal, @var{cs} is preceded by two additional
characters that describe the coding systems for keyboard input and
terminal output. Furthermore, if you are using an input method,
@var{cs} is preceded by a string that identifies the input method
@ -228,7 +228,7 @@ However, if the default-directory for the current buffer is on a
remote machine, @samp{@@} is displayed instead (@pxref{File Names}).
@var{fr} gives the selected frame name (@pxref{Frames}). It appears
only on text-only terminals. The initial frame's name is @samp{F1}.
only on text terminals. The initial frame's name is @samp{F1}.
@var{buf} is the name of the buffer displayed in the window.
Usually, this is the same as the name of a file you are editing.
@ -307,13 +307,12 @@ You can then navigate the menus with the arrow keys. To activate a
selected menu item, press @key{RET}; to cancel menu navigation, press
@key{ESC}.
On a text-only terminal, you can use the menu bar by typing
@kbd{M-`} or @key{F10} (these run the command @code{tmm-menubar}).
This lets you select a menu item with the keyboard. A provisional
choice appears in the echo area. You can use the up and down arrow
keys to move through the menu to different items, and then you can
type @key{RET} to select the item. Each menu item is also designated
by a letter or digit (usually the initial of some word in the item's
name). This letter or digit is separated from the item name by
@samp{=>}. You can type the item's letter or digit to select the
item.
On a text terminal, you can use the menu bar by typing @kbd{M-`} or
@key{F10} (these run the command @code{tmm-menubar}). This lets you
select a menu item with the keyboard. A provisional choice appears in
the echo area. You can use the up and down arrow keys to move through
the menu to different items, and then you can type @key{RET} to select
the item. Each menu item is also designated by a letter or digit
(usually the initial of some word in the item's name). This letter or
digit is separated from the item name by @samp{=>}. You can type the
item's letter or digit to select the item.

View File

@ -172,20 +172,19 @@ used to delete forwards. If this key deletes backward in Emacs, that
too suggests Emacs got the wrong information---but in the opposite
sense.
On a text-only terminal, if you find that @key{Backspace} prompts
for a Help command, like @kbd{Control-h}, instead of deleting a
character, it means that key is actually sending the @key{BS}
character. Emacs ought to be treating @key{BS} as @key{DEL}, but it
isn't.
On a text terminal, if you find that @key{Backspace} prompts for a
Help command, like @kbd{Control-h}, instead of deleting a character,
it means that key is actually sending the @key{BS} character. Emacs
ought to be treating @key{BS} as @key{DEL}, but it isn't.
@findex normal-erase-is-backspace-mode
In all of those cases, the immediate remedy is the same: use the
command @kbd{M-x normal-erase-is-backspace-mode}. This toggles
between the two modes that Emacs supports for handling @key{DEL}, so
if Emacs starts in the wrong mode, this should switch to the right
mode. On a text-only terminal, if you want to ask for help when
@key{BS} is treated as @key{DEL}, use @key{F1}; @kbd{C-?} may also
work, if it sends character code 127.
mode. On a text terminal, if you want to ask for help when @key{BS}
is treated as @key{DEL}, use @key{F1}; @kbd{C-?} may also work, if it
sends character code 127.
To fix the problem in every Emacs session, put one of the following
lines into your initialization file (@pxref{Init File}). For the
@ -327,8 +326,8 @@ not make a backup of its old contents.
@node Emergency Escape
@subsection Emergency Escape
On text-only terminals, the @dfn{emergency escape} feature suspends
Emacs immediately if you type @kbd{C-g} a second time before Emacs can
On text terminals, the @dfn{emergency escape} feature suspends Emacs
immediately if you type @kbd{C-g} a second time before Emacs can
actually respond to the first one by quitting. This is so you can
always get out of GNU Emacs no matter how badly it might be hung.
When things are working properly, Emacs recognizes and handles the

View File

@ -36,8 +36,8 @@ has its own value of point.
At any time, one Emacs window is the @dfn{selected window}; the
buffer this window is displaying is the current buffer. On graphical
displays, the point is indicated by a solid blinking cursor in the
selected window, and by a hollow box in non-selected windows. On
text-only terminals, the cursor is drawn only in the selected window.
selected window, and by a hollow box in non-selected windows. On text
terminals, the cursor is drawn only in the selected window.
@xref{Cursor Display}.
Commands to move point affect the value of point for the selected

View File

@ -1,3 +1,23 @@
2012-04-15 Glenn Morris <rgm@gnu.org>
* processes.texi (Processes, Subprocess Creation, Shell Arguments):
(Synchronous Processes, Asynchronous Processes, Deleting Processes):
Copyedits.
(Subprocess Creation): Discourage modifying exec-path directly.
(Synchronous Processes, Asynchronous Processes):
Update some example output.
(Process Information): Fix typo.
(Bindat Spec): Use Texinfo-recommended form of quote+punctuation.
2012-04-15 Glenn Morris <rgm@gnu.org>
* anti.texi (Antinews): Copyedits. Don't @dfn anything here.
open-network-stream does exist in Emacs 23, but is simpler.
2012-04-15 Chong Yidong <cyd@gnu.org>
* customize.texi (Custom Themes): Also document load-theme etc.
2012-04-14 Chong Yidong <cyd@gnu.org>
* customize.texi (Applying Customizations):

View File

@ -65,9 +65,9 @@ Emacs windows now have most of their internal state hidden from Lisp.
Internal windows are no longer visible to Lisp; functions such as
@code{window-parent}, window parameters related to window arrangement,
and window-local buffer lists have all been removed. Functions for
resizing windows can delete windows if when they become too small.
resizing windows can delete windows if they become too small.
The @dfn{action function} feature for controlling buffer display has
The ``action function'' feature for controlling buffer display has
been removed, including @code{display-buffer-overriding-action} and
related variables, as well as the @var{action} argument to
@code{display-buffer} and other functions. The way to
@ -80,7 +80,7 @@ variables.
The standard completion interface has been simplified, eliminating the
@code{completion-extra-properties} variable, the @code{metadata}
action flag for completion functions, and the concept of
@dfn{completion categories}. Lisp programmers may now find the choice
``completion categories''. Lisp programmers may now find the choice
of methods for tuning completion less bewildering, but if a package
finds the streamlined interface insufficient for its needs, it must
implement its own specialized completion feature.
@ -123,17 +123,19 @@ an additional @var{cache} entry in their definitions, like this:
The @var{cache} entry is used internally by Emacs to record equivalent
keyboard key sequences for invoking the same command; Lisp programs
should never use it.
@c Not really NEWS-worthy then...
@item
The @code{open-network-stream} function has been removed, and so has
the @code{gnutls} library. Lisp programs that want an encrypted
network connection must now call external utilities such as
@command{starttls} or @command{gnutls-cli}.
The @code{gnutls} library has been removed, and the function
@code{open-network-stream} correspondingly simplified.
Lisp programs that want an encrypted network connection must now call
external utilities such as @command{starttls} or @command{gnutls-cli}.
@item
Tool bars can no longer display separators, which frees up several
pixels of space on each graphical frame.
@item
Many other functions and variables have been eliminated.
As part of the ongoing quest for simplicity, many other functions and
variables have been eliminated.
@end itemize

View File

@ -22,7 +22,7 @@ subprocess, the Lisp program waits for the subprocess to terminate
before continuing execution. When you create an asynchronous
subprocess, it can run in parallel with the Lisp program. This kind of
subprocess is represented within Emacs by a Lisp object which is also
called a ``process.'' Lisp programs can use this object to communicate
called a ``process''. Lisp programs can use this object to communicate
with the subprocess or to control it. For example, you can send
signals, obtain status information, receive output from the process, or
send input to it.
@ -69,7 +69,9 @@ a program. One of them, @code{start-process}, creates an asynchronous
process and returns a process object (@pxref{Asynchronous Processes}).
The other two, @code{call-process} and @code{call-process-region},
create a synchronous process and do not return a process object
(@pxref{Synchronous Processes}).
(@pxref{Synchronous Processes}). There are various higher-level
functions that make use of these primitives to run particular types of
process.
Synchronous and asynchronous processes are explained in the following
sections. Since the three functions are all called in a similar
@ -103,16 +105,19 @@ system-dependent.
@strong{Please note:} The argument @var{program} contains only the
name of the program; it may not contain any command-line arguments. You
must use @var{args} to provide those.
must use a separate argument, @var{args}, to provide those, as
described below.
Each of the subprocess-creating functions has a @var{buffer-or-name}
argument which specifies where the standard output from the program will
argument that specifies where the standard output from the program will
go. It should be a buffer or a buffer name; if it is a buffer name,
that will create the buffer if it does not already exist. It can also
be @code{nil}, which says to discard the output unless a filter function
handles it. (@xref{Filter Functions}, and @ref{Read and Print}.)
Normally, you should avoid having multiple processes send output to the
same buffer because their output would be intermixed randomly.
For synchronous processes, you can send the output to a file instead
of a buffer.
@cindex program arguments
All three of the subprocess-creating functions have a @code{&rest}
@ -121,18 +126,16 @@ supplied to @var{program} as separate command line arguments. Wildcard
characters and other shell constructs have no special meanings in these
strings, since the strings are passed directly to the specified program.
The subprocess gets its current directory from the value of
@code{default-directory} (@pxref{File Name Expansion}).
@cindex environment variables, subprocesses
The subprocess inherits its environment from Emacs, but you can
specify overrides for it with @code{process-environment}. @xref{System
Environment}.
Environment}. The subprocess gets its current directory from the
value of @code{default-directory}.
@defvar exec-directory
@pindex movemail
The value of this variable is a string, the name of a directory that
contains programs that come with GNU Emacs, programs intended for Emacs
contains programs that come with GNU Emacs and are intended for Emacs
to invoke. The program @code{movemail} is an example of such a program;
Rmail uses it to fetch new mail from an inbox.
@end defvar
@ -147,6 +150,11 @@ directory (which is the value of @code{default-directory}).
The value of @code{exec-path} is used by @code{call-process} and
@code{start-process} when the @var{program} argument is not an absolute
file name.
Generally, you should not modify @code{exec-path} directly. Instead,
ensure that your @env{PATH} environment variable is set appropriately
before starting Emacs. Trying to modify @code{exec-path}
independently of @env{PATH} can lead to confusing results.
@end defopt
@node Shell Arguments
@ -162,7 +170,7 @@ occur in the file name, they will confuse the shell. To handle these
characters, use the function @code{shell-quote-argument}:
@defun shell-quote-argument argument
This function returns a string which represents, in shell syntax,
This function returns a string that represents, in shell syntax,
an argument whose actual contents are @var{argument}. It should
work reliably to concatenate the return value into a shell command
and then pass it to a shell for execution.
@ -200,10 +208,10 @@ a shell command:
The following two functions are useful for combining a list of
individual command-line argument strings into a single string, and
taking a string apart into a list of individual command-line
arguments. These functions are mainly intended to be used for
arguments. These functions are mainly intended for
converting user input in the minibuffer, a Lisp string, into a list of
string arguments to be passed to @code{call-process} or
@code{start-process}, or for the converting such lists of arguments in
@code{start-process}, or for converting such lists of arguments into
a single Lisp string to be presented in the minibuffer or echo area.
@defun split-string-and-unquote string &optional separators
@ -347,7 +355,7 @@ In the examples below, the buffer @samp{foo} is current.
@result{} 0
---------- Buffer: foo ----------
/usr/user/lewis/manual
/home/lewis/manual
---------- Buffer: foo ----------
@end group
@ -356,18 +364,18 @@ In the examples below, the buffer @samp{foo} is current.
@result{} 0
---------- Buffer: bar ----------
lewis:5LTsHm66CSWKg:398:21:Bil Lewis:/user/lewis:/bin/csh
lewis:x:1001:1001:Bil Lewis,,,,:/home/lewis:/bin/bash
---------- Buffer: bar ----------
@end group
@end smallexample
Here is a good example of the use of @code{call-process}, which used to
be found in the definition of @code{insert-directory}:
Here is an example of the use of @code{call-process}, as used to
be found in the definition of the @code{insert-directory} function:
@smallexample
@group
(call-process insert-directory-program nil t nil @var{switches}
(call-process insert-directory-program nil t nil switches
(if full-directory-p
(concat (file-name-as-directory file) ".")
file))
@ -377,9 +385,9 @@ be found in the definition of @code{insert-directory}:
@defun process-file program &optional infile buffer display &rest args
This function processes files synchronously in a separate process. It
is similar to @code{call-process} but may invoke a file handler based
on the value of the variable @code{default-directory}. The current
working directory of the subprocess is @code{default-directory}.
is similar to @code{call-process}, but may invoke a file handler based
on the value of the variable @code{default-directory}, which specifies
the current working directory of the subprocess.
The arguments are handled in almost the same way as for
@code{call-process}, with the following differences:
@ -392,15 +400,15 @@ file handlers might not support separating standard output and error
output by way of the @var{buffer} argument.
If a file handler is invoked, it determines the program to run based
on the first argument @var{program}. For instance, consider that a
on the first argument @var{program}. For instance, suppose that a
handler for remote files is invoked. Then the path that is used for
searching the program might be different than @code{exec-path}.
searching for the program might be different from @code{exec-path}.
The second argument @var{infile} may invoke a file handler. The file
handler could be different from the handler chosen for the
@code{process-file} function itself. (For example,
@code{default-directory} could be on a remote host, whereas
@var{infile} is on another remote host. Or @code{default-directory}
@code{default-directory} could be on one remote host, and
@var{infile} on a different remote host. Or @code{default-directory}
could be non-special, whereas @var{infile} is on a remote host.)
If @var{buffer} is a list of the form @code{(@var{real-destination}
@ -417,16 +425,16 @@ file names.
@end defun
@defvar process-file-side-effects
This variable indicates, whether a call of @code{process-file} changes
This variable indicates whether a call of @code{process-file} changes
remote files.
Per default, this variable is always set to @code{t}, meaning that a
By default, this variable is always set to @code{t}, meaning that a
call of @code{process-file} could potentially change any file on a
remote host. When set to @code{nil}, a file handler could optimize
its behavior with respect to remote file attributes caching.
its behavior with respect to remote file attribute caching.
This variable should never be changed by @code{setq}. Instead of, it
shall be set only by let-binding.
You should only ever change this variable with a let-binding; never
with @code{setq}.
@end defvar
@defun call-process-region start end program &optional delete destination display &rest args
@ -442,7 +450,7 @@ as it comes in. For details, see the description of
@code{call-process}, above. If @var{destination} is the integer 0,
@code{call-process-region} discards the output and returns @code{nil}
immediately, without waiting for the subprocess to finish (this only
works if asynchronous subprocesses are supported).
works if asynchronous subprocesses are supported; i.e. not on MS-DOS).
The remaining arguments, @var{args}, are strings that specify command
line arguments for the program.
@ -476,20 +484,21 @@ inputinput@point{}
@end group
@end smallexample
The @code{shell-command-on-region} command uses
@code{call-process-region} like this:
For example, the @code{shell-command-on-region} command uses
@code{call-process-region} in a manner similar to this:
@smallexample
@group
(call-process-region
start end
shell-file-name ; @r{Name of program.}
nil ; @r{Do not delete region.}
buffer ; @r{Send output to @code{buffer}.}
nil ; @r{No redisplay during output.}
"-c" command) ; @r{Arguments for the shell.}
shell-file-name ; @r{name of program}
nil ; @r{do not delete region}
buffer ; @r{send output to @code{buffer}}
nil ; @r{no redisplay during output}
"-c" command) ; @r{arguments for the shell}
@end group
@end smallexample
@c It actually uses shell-command-switch, but no need to mention that here.
@end defun
@defun call-process-shell-command command &optional infile destination display &rest args
@ -510,6 +519,9 @@ This function executes @var{command} (a string) as a shell command,
then returns the command's output as a string.
@end defun
@c There is also shell-command-on-region, but that is more of a user
@c command, not something to use in programs.
@defun process-lines program &rest args
This function runs @var{program}, waits for it to finish, and returns
its output as a list of strings. Each string in the list holds a
@ -553,7 +565,8 @@ The remaining arguments, @var{args}, are strings that specify command
line arguments for the program.
In the example below, the first process is started and runs (rather,
sleeps) for 100 seconds. Meanwhile, the second process is started, and
sleeps) for 100 seconds (the output buffer @samp{foo} is created
immediately). Meanwhile, the second process is started, and
given the name @samp{my-process<1>} for the sake of uniqueness. It
inserts the directory listing at the end of the buffer @samp{foo},
before the first process finishes. Then it finishes, and a message to
@ -567,13 +580,15 @@ finishes, and another message is inserted in the buffer for it.
@end group
@group
(start-process "my-process" "foo" "ls" "-l" "/user/lewis/bin")
(start-process "my-process" "foo" "ls" "-l" "/bin")
@result{} #<process my-process<1>>
---------- Buffer: foo ----------
total 2
lrwxrwxrwx 1 lewis 14 Jul 22 10:12 gnuemacs --> /emacs
-rwxrwxrwx 1 lewis 19 Jul 30 21:02 lemon
total 8336
-rwxr-xr-x 1 root root 971384 Mar 30 10:14 bash
-rwxr-xr-x 1 root root 146920 Jul 5 2011 bsd-csh
@dots{}
-rwxr-xr-x 1 root root 696880 Feb 28 15:55 zsh4
Process my-process<1> finished
@ -586,45 +601,49 @@ Process my-process finished
@defun start-file-process name buffer-or-name program &rest args
Like @code{start-process}, this function starts a new asynchronous
subprocess running @var{program} in it, and returns its process
object---when @code{default-directory} is not a magic file name.
object.
If @code{default-directory} is magic, the function invokes its file
handler instead. This handler ought to run @var{program}, perhaps on
the local host, perhaps on a remote host that corresponds to
@code{default-directory}. In the latter case, the local part of
@code{default-directory} becomes the working directory of the process.
The difference from @code{start-process} is that this function may
invoked a file handler based on the value of @code{default-directory}.
This handler ought to run @var{program}, perhaps on the local host,
perhaps on a remote host that corresponds to @code{default-directory}.
In the latter case, the local part of @code{default-directory} becomes
the working directory of the process.
This function does not try to invoke file name handlers for
@var{program} or for the @var{program-args}.
Depending on the implementation of the file handler, it might not be
possible to apply @code{process-filter} or @code{process-sentinel} to
the resulting process object (@pxref{Filter Functions}, @pxref{Sentinels}).
the resulting process object. @xref{Filter Functions}, and @ref{Sentinels}.
@c FIXME Can we find a better example (i.e. a more modern function
@c that is actually documented).
Some file handlers may not support @code{start-file-process} (for
example @code{ange-ftp-hook-function}). In such cases, the function
does nothing and returns @code{nil}.
example the function @code{ange-ftp-hook-function}). In such cases,
this function does nothing and returns @code{nil}.
@end defun
@defun start-process-shell-command name buffer-or-name command
This function is like @code{start-process} except that it uses a shell
This function is like @code{start-process}, except that it uses a shell
to execute the specified command. The argument @var{command} is a shell
command name. The variable @code{shell-file-name} specifies which shell to
use.
The point of running a program through the shell, rather than directly
with @code{start-process}, is so that you can employ shell features such
as wildcards in the arguments. It follows that if you include an
arbitrary user-specified arguments in the command, you should quote it
as wildcards in the arguments. It follows that if you include any
arbitrary user-specified arguments in the command, you should quote them
with @code{shell-quote-argument} first, so that any special shell
characters do @emph{not} have their special shell meanings. @xref{Shell
Arguments}.
Arguments}. Of course, when executing commands based on user input
you should also consider the security implications.
@end defun
@defun start-file-process-shell-command name buffer-or-name command
This function is like @code{start-process-shell-command}, but uses
@code{start-file-process} internally. By this, @var{command} can be
executed also on remote hosts, depending on @code{default-directory}.
@code{start-file-process} internally. Because of this, @var{command}
can also be executed on remote hosts, depending on @code{default-directory}.
@end defun
@defvar process-connection-type
@ -649,7 +668,7 @@ with one subprocess by binding the variable around the call to
@smallexample
@group
(let ((process-connection-type nil)) ; @r{Use a pipe.}
(let ((process-connection-type nil)) ; @r{use a pipe}
(start-process @dots{}))
@end group
@end smallexample
@ -666,9 +685,9 @@ Information}).
@dfn{Deleting a process} disconnects Emacs immediately from the
subprocess. Processes are deleted automatically after they terminate,
but not necessarily right away. You can delete a process explicitly
at any time. If you delete a terminated process explicitly before it
at any time. If you explicitly delete a terminated process before it
is deleted automatically, no harm results. Deleting a running
process sends a signal to terminate it (and its child processes if
process sends a signal to terminate it (and its child processes, if
any), and calls the process sentinel if it has one. @xref{Sentinels}.
When a process is deleted, the process object itself continues to
@ -866,7 +885,7 @@ closed the connection, or Emacs did @code{delete-process}.
@end defun
@defun process-live-p process
This function returns nin-@code{nil} if @var{process} is alive. A
This function returns non-@code{nil} if @var{process} is alive. A
process is considered alive if its status is @code{run}, @code{open},
@code{listen}, @code{connect} or @code{stop}.
@end defun
@ -2664,7 +2683,7 @@ specification}, a special nested list describing named and typed
@dfn{fields}. This specification controls length of each field to be
processed, and how to pack or unpack it. We normally keep bindat specs
in variables whose names end in @samp{-bindat-spec}; that kind of name
is automatically recognized as ``risky.''
is automatically recognized as ``risky''.
@cindex endianness
@cindex big endian
@ -2674,7 +2693,7 @@ is automatically recognized as ``risky.''
that the field represents and, in the case of multibyte fields, how
the bytes are ordered within the field. The two possible orderings
are ``big endian'' (also known as ``network byte ordering'') and
``little endian.'' For instance, the number @code{#x23cd} (decimal
``little endian''. For instance, the number @code{#x23cd} (decimal
9165) in big endian would be the two bytes @code{#x23} @code{#xcd};
and in little endian, @code{#xcd} @code{#x23}. Here are the possible
type values:

View File

@ -54,6 +54,8 @@ prompts for a column number.
** `C-M-f' and `C-M-b' will now move to the path name separator
character when doing minibuffer filename prompts.
** `goto-char' is now bound to `M-g c'.
* Changes in Specialized Modes and Packages in Emacs 24.2

View File

@ -73,7 +73,7 @@
* makefile.w32-in (LOCAL_FLAGS): Add $(EMACS_EXTRA_C_FLAGS).
* emacsclient.c (main) <environ>: Remove declaration, already
pulled in by unistd.h on Posix hosts and stdlib.h on MS-Windows.
pulled in by unistd.h on POSIX hosts and stdlib.h on MS-Windows.
2011-11-24 Glenn Morris <rgm@gnu.org>
@ -6657,7 +6657,7 @@
1993-08-25 Paul Eggert (eggert@twinsun.com)
* rcs2log: Change /{/ to /\{/ for Posix ERE compatibility;
* rcs2log: Change /{/ to /\{/ for POSIX ERE compatibility;
otherwise, HP awk complains.
* vcdiff: Append /usr/ccs/bin and /usr/sccs to PATH, since these
@ -7004,7 +7004,7 @@
* rcs2log: mawk, SunOS 4.1.3 nawk, and Ultrix/MKS nawk all barf on
/[/]/, so change it to /[\/]/. This should work on all
Posix-compliant awks. It's slightly wrong with traditional awk,
POSIX-compliant awks. It's slightly wrong with traditional awk,
since it matches \ too, but that's a minor problem compared to awk
syntax errors.

View File

@ -1,3 +1,26 @@
2012-04-15 Chong Yidong <cyd@gnu.org>
* frame.el (scrolling): Remove nearly unused customization group.
* scroll-all.el (scroll-all-mode): Move to windows group.
2012-04-15 Chong Yidong <cyd@gnu.org>
* bindings.el (goto-map): Bind goto-char to M-g c (Bug#11240).
2012-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
Avoid the use of ((lambda ...) ...) in lexical-binding code.
* emacs-lisp/easy-mmode.el (define-minor-mode):Use funcall (bug#11241).
2012-04-15 Glenn Morris <rgm@gnu.org>
* simple.el (process-file-side-effects): Doc fix.
2012-04-15 Glenn Morris <rgm@gnu.org>
* international/mule-cmds.el (set-language-environment): Doc fix.
2012-04-14 Juanma Barranquero <lekktu@gmail.com>
* server.el (server-auth-key, server-generate-key): Doc fixes.
@ -12,8 +35,7 @@
2012-04-14 Michal Nazarewicz <mina86@mina86.com>
* server.el (server-auth-key): New variable.
(server-generate-key): New function.
(server-get-auth-key): New function.
(server-generate-key, server-get-auth-key): New function.
(server-start): Use the new variable and functions to allow
setting a permanent server key (bug#9423).
@ -156,11 +178,10 @@
* hexl.el (hexl-bits): New variable.
(hexl-options): Mention the variable in the doc string.
(hexl-rulerise): New function.
(hexl-line-displen): New function
(hexl-rulerise, hexl-line-displen): New functions.
(hexl-mode): Mention the new variable.
(hexl-mode, hexl-current-address, hexl-current-address): Use the
displen.
(hexl-mode, hexl-current-address, hexl-current-address):
Use the displen.
(hexl-ascii-start-column): New function.
(hexl-address-to-marker, hexl-beginning-of-line, hexl-options)
(hexl-insert-char, hexl-mode-ruler): Use the displen (bug#4941).
@ -223,7 +244,7 @@
* emacs-lisp/lisp.el (narrow-to-defun): `beginning-of-defun' goes
to previous function when point is on the first character of a
function. Take care of that in `narrow-to-defun' (bug#6157).
function. Take care of that in `narrow-to-defun' (bug#6157).
2012-04-11 Glenn Morris <rgm@gnu.org>
@ -285,8 +306,8 @@
2012-04-10 Laimonas Vėbra <laimonas.vebra@gmail.com> (tiny change)
* language/european.el (cp775): Add oem/legacy (en)coding on
DOS/MS Windows for the Baltic languages. There are still plenty of
texts written in this encoding/codepage (bug#6519).
DOS/MS Windows for the Baltic languages. There are still plenty
of texts written in this encoding/codepage (bug#6519).
2012-04-10 Glenn Morris <rgm@gnu.org>
@ -476,8 +497,8 @@
2012-03-30 Agustín Martín Domingo <agustin.martin@hispalinux.es>
* ispell.el (ispell-get-extended-character-mode): Disable
extended-char-mode for hunspell. hunspell does not support it and
treats ~word as ordinary words in pipe mode.
extended-char-mode for hunspell. hunspell does not support it
and treats ~word as ordinary words in pipe mode.
2012-03-30 Glenn Morris <rgm@gnu.org>
@ -707,7 +728,7 @@
(hfy-face-to-css-default): Same as the earlier `hfy-face-to-css'.
(hfy-face-to-css): Re-defined to be a variable.
(hfy-compile-stylesheet): Modify. Allow stylesheet to be built
over multiple runs. This is made possible by having the caller let
over multiple runs. This is made possible by having the caller let
bind a special variable `hfy-user-sheet-assoc'.
(htmlfontify-string): New defun.
(hfy-compile-face-map): Make sure that the last char in the
@ -940,7 +961,7 @@
2012-03-09 Michael Albinus <michael.albinus@gmx.de>
* net/dbus.el: (dbus-property-handler): Return empty array if
* net/dbus.el (dbus-property-handler): Return empty array if
there are no properties.
2012-03-09 Leo Liu <sdl.web@gmail.com>

View File

@ -10889,7 +10889,7 @@
2004-01-29 Jari Aalto <jari.aalto@poboxes.com>
* progmodes/executable.el (executable-command-find-posix-p):
New. Check if find handles arguments Posix-style.
New. Check if find handles arguments POSIX-style.
* progmodes/grep.el (grep-compute-defaults):
Use executable-command-find-posix-p.

View File

@ -12449,7 +12449,7 @@
* calendar/appt.el (diary-selective-display): Add defvar.
* sort.el (sort-columns): Use Posix arg syntax for `sort'.
* sort.el (sort-columns): Use POSIX arg syntax for `sort'.
* isearch.el (search-whitespace-regexp): Fix custom type.

View File

@ -715,7 +715,7 @@
* ediff-diff.el (ediff-setup-fine-diff-regions):
Allow diff options to be passed to the diff program.
(ediff-make-diff2-buffer): Don't run Posix diff on remote files.
(ediff-make-diff2-buffer): Don't run POSIX diff on remote files.
(ediff-make-diff2-buffer): Refuses to diff remote files.
(ediff-make-diff2-buffer, ediff-setup-diff-regions): Changed functions.
(ediff-make-diff2-buffer): New function.

View File

@ -868,6 +868,7 @@ if `inhibit-field-text-motion' is non-nil."
"Keymap for navigation commands.")
(define-key esc-map "g" goto-map)
(define-key goto-map "c" 'goto-char)
(define-key goto-map "g" 'goto-line)
(define-key goto-map "\M-g" 'goto-line)
(define-key goto-map "n" 'next-error)

View File

@ -260,7 +260,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'.
;; repeat-command still does the toggling correctly.
(interactive (list (or current-prefix-arg 'toggle)))
(let ((,last-message (current-message)))
(,@(if setter (list setter)
(,@(if setter `(funcall #',setter)
(list (if (symbolp mode) 'setq 'setf) mode))
(if (eq arg 'toggle)
(not ,mode)

View File

@ -1556,21 +1556,6 @@ left untouched. FRAME nil or omitted means use the selected frame."
(define-obsolete-variable-alias 'delete-frame-hook
'delete-frame-functions "22.1")
;; Highlighting trailing whitespace.
(make-variable-buffer-local 'show-trailing-whitespace)
;; Scrolling
(defgroup scrolling nil
"Scrolling windows."
:version "21.1"
:group 'frames)
(defvaralias 'automatic-hscrolling 'auto-hscroll-mode)
;; Blinking cursor
@ -1663,6 +1648,13 @@ terminals, cursor blinking is controlled by the terminal."
(define-key ctl-x-5-map "0" 'delete-frame)
(define-key ctl-x-5-map "o" 'other-frame)
;; Misc.
(defvaralias 'automatic-hscrolling 'auto-hscroll-mode)
(make-variable-buffer-local 'show-trailing-whitespace)
(provide 'frame)
;;; frame.el ends here

View File

@ -1834,7 +1834,11 @@ The default status is as follows:
This sets the coding system priority and the default input method
and sometimes other things. LANGUAGE-NAME should be a string
which is the name of a language environment. For example, \"Latin-1\"
specifies the character set for the major languages of Western Europe."
specifies the character set for the major languages of Western Europe.
If there is a prior value for `current-language-environment', this
runs the hook `exit-language-environment-hook'. After setting up
the new language environment, it runs `set-language-environment-hook'."
(interactive (list (read-language-name
nil
"Set language environment (default English): ")))

View File

@ -111,7 +111,6 @@ one window apply to all visible windows in the same frame."
nil " *SL*" nil
:global t
:group 'windows
:group 'scrolling
(if scroll-all-mode
(add-hook 'post-command-hook 'scroll-all-check-to-scroll)
(remove-hook 'post-command-hook 'scroll-all-check-to-scroll)))

View File

@ -1,6 +1,6 @@
;;; simple.el --- basic editing commands for Emacs
;; Copyright (C) 1985-1987, 1993-2012 Free Software Foundation, Inc.
;; Copyright (C) 1985-1987, 1993-2012 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
@ -2677,13 +2677,13 @@ value passed."
(defvar process-file-side-effects t
"Whether a call of `process-file' changes remote files.
Per default, this variable is always set to `t', meaning that a
By default, this variable is always set to `t', meaning that a
call of `process-file' could potentially change any file on a
remote host. When set to `nil', a file handler could optimize
its behavior with respect to remote file attributes caching.
its behavior with respect to remote file attribute caching.
This variable should never be changed by `setq'. Instead of, it
shall be set only by let-binding.")
You should only ever change this variable with a let-binding;
never with `setq'.")
(defun start-file-process (name buffer program &rest program-args)
"Start a program in a subprocess. Return the process object for it.

View File

@ -5443,7 +5443,7 @@ A value of t means point moves to the beginning or the end of the buffer
\(depending on scrolling direction) when no more scrolling possible.
When point is already on that position, then signal an error."
:type 'boolean
:group 'scrolling
:group 'windows
:version "24.1")
(defun scroll-up-command (&optional arg)

View File

@ -1195,7 +1195,7 @@
2005-06-05 Eli Zaretskii <eliz@gnu.org>
* inc/sys/socket.h: Change arg 4 of sys_setsockopt to
`const void *', for consistency with Posix.
`const void *', for consistency with POSIX.
2005-06-04 Eli Zaretskii <eliz@gnu.org>

View File

@ -1,3 +1,16 @@
2012-04-15 Andreas Schwab <schwab@linux-m68k.org>
* lisp.h (struct Lisp_Symbol): Remove explicit padding.
(struct Lisp_Misc_Any): Likewise.
(struct Lisp_Free): Likewise.
* alloc.c (union aligned_Lisp_Symbol): Define.
(SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
aligned_Lisp_Symbol instead of struct Lisp_Symbol.
(union aligned_Lisp_Misc): Define.
(MARKER_BLOCK_SIZE, struct marker_block): Use union
aligned_Lisp_Misc instead of union Lisp_Misc.
(Fmake_symbol, allocate_misc, gc_sweep): Adjust
2012-04-14 Paul Eggert <eggert@cs.ucla.edu>
configure: new option --enable-gcc-warnings (Bug#11207)
@ -64,7 +77,7 @@
* alloc.c (lisp_align_malloc): Remove unneeded prototype.
2012-04-10 "Jason S. Cornez" <jcornez@ravenpack.com> (tiny change)
2012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
* keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
(force_quit_count): New var.
@ -1563,7 +1576,7 @@
* xfns.c (unwind_create_frame): Fix comment.
(Fx_create_frame, x_create_tip_frame):
Move terminal->reference_count++ just before making the frame
official. Move initialization of image_cache_refcount and
official. Move initialization of image_cache_refcount and
dpyinfo_refcount before calling init_frame_faces (Bug#9943).
2011-11-05 Eli Zaretskii <eliz@gnu.org>
@ -7336,7 +7349,7 @@
* xfaces.c <Qunspecified>: Make extern again.
* syntax.c: Include sys/types.h before including regex.h, as
required by Posix.
required by POSIX.
* doc.c (get_doc_string): Improve the format passed to `error'.

View File

@ -23215,7 +23215,7 @@
* macterm.c (do_ae_open_documents) [MAC_OSX]: Call FSpMakeFSRef
and FSRefMakePath to convert FSSpec returned with Apple Event to
Posix pathname.
POSIX pathname.
(mac_initialize) [TARGET_API_MAC_CARBON]:
Call init_required_apple_events and disable the `Quit' menu item
provided automatically by the Carbon Toolbox.

View File

@ -9641,7 +9641,7 @@
2010-03-12 Eli Zaretskii <eliz@gnu.org>
These changes remove termcap.c from the build on Posix platforms.
These changes remove termcap.c from the build on POSIX platforms.
* Makefile.in (termcapobj): Move termcap.o from here...
(MSDOS_OBJ): ...to here.
(termcapobj) [!LIBS_TERMCAP]: Remove specialized value, as it is

View File

@ -3236,7 +3236,7 @@
1995-12-12 Paul Eggert <eggert@twinsun.com>
* process.c (create_process): Use Posix signal handling to
* process.c (create_process): Use POSIX signal handling to
block signals, if available. If HAVE_VFORK, save and restore
signal handlers that the child might change, since in many
systems (e.g. Solaris 2.4) if the child changes the signal

View File

@ -3136,17 +3136,29 @@ usage: (make-byte-code ARGLIST BYTE-CODE CONSTANTS DEPTH &optional DOCSTRING INT
Symbol Allocation
***********************************************************************/
/* Like struct Lisp_Symbol, but padded so that the size is a multiple
of the required alignment if LSB tags are used. */
union aligned_Lisp_Symbol
{
struct Lisp_Symbol s;
#ifdef USE_LSB_TAG
unsigned char c[(sizeof (struct Lisp_Symbol) + (1 << GCTYPEBITS) - 1)
& -(1 << GCTYPEBITS)];
#endif
};
/* Each symbol_block is just under 1020 bytes long, since malloc
really allocates in units of powers of two and uses 4 bytes for its
own overhead. */
#define SYMBOL_BLOCK_SIZE \
((1020 - sizeof (struct symbol_block *)) / sizeof (struct Lisp_Symbol))
((1020 - sizeof (struct symbol_block *)) / sizeof (union aligned_Lisp_Symbol))
struct symbol_block
{
/* Place `symbols' first, to preserve alignment. */
struct Lisp_Symbol symbols[SYMBOL_BLOCK_SIZE];
union aligned_Lisp_Symbol symbols[SYMBOL_BLOCK_SIZE];
struct symbol_block *next;
};
@ -3202,7 +3214,7 @@ Its value and function definition are void, and its property list is nil. */)
symbol_block = new;
symbol_block_index = 0;
}
XSETSYMBOL (val, &symbol_block->symbols[symbol_block_index]);
XSETSYMBOL (val, &symbol_block->symbols[symbol_block_index].s);
symbol_block_index++;
}
@ -3230,16 +3242,28 @@ Its value and function definition are void, and its property list is nil. */)
Marker (Misc) Allocation
***********************************************************************/
/* Like union Lisp_Misc, but padded so that its size is a multiple of
the required alignment when LSB tags are used. */
union aligned_Lisp_Misc
{
union Lisp_Misc m;
#ifdef USE_LSB_TAG
unsigned char c[(sizeof (union Lisp_Misc) + (1 << GCTYPEBITS) - 1)
& -(1 << GCTYPEBITS)];
#endif
};
/* Allocation of markers and other objects that share that structure.
Works like allocation of conses. */
#define MARKER_BLOCK_SIZE \
((1020 - sizeof (struct marker_block *)) / sizeof (union Lisp_Misc))
((1020 - sizeof (struct marker_block *)) / sizeof (union aligned_Lisp_Misc))
struct marker_block
{
/* Place `markers' first, to preserve alignment. */
union Lisp_Misc markers[MARKER_BLOCK_SIZE];
union aligned_Lisp_Misc markers[MARKER_BLOCK_SIZE];
struct marker_block *next;
};
@ -3284,7 +3308,7 @@ allocate_misc (void)
marker_block_index = 0;
total_free_markers += MARKER_BLOCK_SIZE;
}
XSETMISC (val, &marker_block->markers[marker_block_index]);
XSETMISC (val, &marker_block->markers[marker_block_index].m);
marker_block_index++;
}
@ -6070,22 +6094,22 @@ gc_sweep (void)
for (sblk = symbol_block; sblk; sblk = *sprev)
{
int this_free = 0;
struct Lisp_Symbol *sym = sblk->symbols;
struct Lisp_Symbol *end = sym + lim;
union aligned_Lisp_Symbol *sym = sblk->symbols;
union aligned_Lisp_Symbol *end = sym + lim;
for (; sym < end; ++sym)
{
/* Check if the symbol was created during loadup. In such a case
it might be pointed to by pure bytecode which we don't trace,
so we conservatively assume that it is live. */
int pure_p = PURE_POINTER_P (XSTRING (sym->xname));
int pure_p = PURE_POINTER_P (XSTRING (sym->s.xname));
if (!sym->gcmarkbit && !pure_p)
if (!sym->s.gcmarkbit && !pure_p)
{
if (sym->redirect == SYMBOL_LOCALIZED)
xfree (SYMBOL_BLV (sym));
sym->next = symbol_free_list;
symbol_free_list = sym;
if (sym->s.redirect == SYMBOL_LOCALIZED)
xfree (SYMBOL_BLV (&sym->s));
sym->s.next = symbol_free_list;
symbol_free_list = &sym->s;
#if GC_MARK_STACK
symbol_free_list->function = Vdead;
#endif
@ -6095,8 +6119,8 @@ gc_sweep (void)
{
++num_used;
if (!pure_p)
UNMARK_STRING (XSTRING (sym->xname));
sym->gcmarkbit = 0;
UNMARK_STRING (XSTRING (sym->s.xname));
sym->s.gcmarkbit = 0;
}
}
@ -6108,7 +6132,7 @@ gc_sweep (void)
{
*sprev = sblk->next;
/* Unhook from the free list. */
symbol_free_list = sblk->symbols[0].next;
symbol_free_list = sblk->symbols[0].s.next;
lisp_free (sblk);
}
else
@ -6138,22 +6162,22 @@ gc_sweep (void)
for (i = 0; i < lim; i++)
{
if (!mblk->markers[i].u_any.gcmarkbit)
if (!mblk->markers[i].m.u_any.gcmarkbit)
{
if (mblk->markers[i].u_any.type == Lisp_Misc_Marker)
unchain_marker (&mblk->markers[i].u_marker);
if (mblk->markers[i].m.u_any.type == Lisp_Misc_Marker)
unchain_marker (&mblk->markers[i].m.u_marker);
/* Set the type of the freed object to Lisp_Misc_Free.
We could leave the type alone, since nobody checks it,
but this might catch bugs faster. */
mblk->markers[i].u_marker.type = Lisp_Misc_Free;
mblk->markers[i].u_free.chain = marker_free_list;
marker_free_list = &mblk->markers[i];
mblk->markers[i].m.u_marker.type = Lisp_Misc_Free;
mblk->markers[i].m.u_free.chain = marker_free_list;
marker_free_list = &mblk->markers[i].m;
this_free++;
}
else
{
num_used++;
mblk->markers[i].u_any.gcmarkbit = 0;
mblk->markers[i].m.u_any.gcmarkbit = 0;
}
}
lim = MARKER_BLOCK_SIZE;
@ -6164,7 +6188,7 @@ gc_sweep (void)
{
*mprev = mblk->next;
/* Unhook from the free list. */
marker_free_list = mblk->markers[0].u_free.chain;
marker_free_list = mblk->markers[0].m.u_free.chain;
lisp_free (mblk);
}
else

View File

@ -1134,8 +1134,6 @@ struct Lisp_Symbol
special (with `defvar' etc), and shouldn't be lexically bound. */
unsigned declared_special : 1;
unsigned spacer : 23;
/* The symbol's name, as a Lisp string.
The name "xname" is used to intentionally break code referring to
the old field "name" of type pointer to struct Lisp_String. */
@ -1337,8 +1335,6 @@ struct Lisp_Misc_Any /* Supertype of all Misc types. */
ENUM_BF (Lisp_Misc_Type) type : 16; /* = Lisp_Misc_??? */
unsigned gcmarkbit : 1;
int spacer : 15;
/* Make it as long as "Lisp_Free without padding". */
void *fill;
};
struct Lisp_Marker
@ -1530,13 +1526,6 @@ struct Lisp_Free
unsigned gcmarkbit : 1;
int spacer : 15;
union Lisp_Misc *chain;
#ifdef USE_LSB_TAG
/* Try to make sure that sizeof(Lisp_Misc) preserves TYPEBITS-alignment.
This assumes that Lisp_Marker is the largest of the alternatives and
that Lisp_Misc_Any has the same size as "Lisp_Free w/o padding". */
char padding[((((sizeof (struct Lisp_Marker) - 1) >> GCTYPEBITS) + 1)
<< GCTYPEBITS) - sizeof (struct Lisp_Misc_Any)];
#endif
};
/* To get the type field of a union Lisp_Misc, use XMISCTYPE.
@ -1545,19 +1534,19 @@ struct Lisp_Free
union Lisp_Misc
{
struct Lisp_Misc_Any u_any; /* Supertype of all Misc types. */
struct Lisp_Free u_free; /* Includes padding to force alignment. */
struct Lisp_Marker u_marker; /* 5 */
struct Lisp_Overlay u_overlay; /* 5 */
struct Lisp_Save_Value u_save_value; /* 3 */
struct Lisp_Free u_free;
struct Lisp_Marker u_marker;
struct Lisp_Overlay u_overlay;
struct Lisp_Save_Value u_save_value;
};
union Lisp_Fwd
{
struct Lisp_Intfwd u_intfwd; /* 2 */
struct Lisp_Boolfwd u_boolfwd; /* 2 */
struct Lisp_Objfwd u_objfwd; /* 2 */
struct Lisp_Buffer_Objfwd u_buffer_objfwd; /* 2 */
struct Lisp_Kboard_Objfwd u_kboard_objfwd; /* 2 */
struct Lisp_Intfwd u_intfwd;
struct Lisp_Boolfwd u_boolfwd;
struct Lisp_Objfwd u_objfwd;
struct Lisp_Buffer_Objfwd u_buffer_objfwd;
struct Lisp_Kboard_Objfwd u_kboard_objfwd;
};
/* Lisp floating point type */