Commit 41ec903a authored by Paul Eggert's avatar Paul Eggert
Browse files

Merge from trunk.

parents eb106a49 84e8e185
......@@ -158,7 +158,7 @@ building.texi
calendar.texi
cal-xtra.texi
cmdargs.texi
commands.texi
commands.texi cyd
custom.texi
dired.texi
dired-xtra.texi
......@@ -166,7 +166,7 @@ display.texi
emacs.texi
emacs-xtra.texi
emerge-xtra.texi
entering.texi
entering.texi cyd
files.texi
fixit.texi
fortran-xtra.texi
......@@ -190,7 +190,7 @@ picture-xtra.texi
programs.texi
regs.texi
rmail.texi
screen.texi
screen.texi cyd
search.texi
sending.texi
text.texi
......
......@@ -1473,9 +1473,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* GC_SETJMP_WORKS is nearly always appropriate for GCC. */
# define GC_SETJMP_WORKS 1
# endif
# ifndef GC_LISP_OBJECT_ALIGNMENT
# define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object))
# endif
#endif
#endif /* EMACS_CONFIG_H */
......
2011-10-07 Chong Yidong <cyd@stupidchicken.com>
* basic.texi (Inserting Text): Add xref to Completion. Add
ucs-insert example, and document prefix argument.
(Moving Point): Fix introduction; C-f/C-b are no longer equivalent
to left/right. Tweak left-char and right-char descriptions.
M-left and M-right are now bound to left-word/right-word.
(Erasing): Document delete-forward-char.
* screen.texi (Screen, Menu Bar): Copyedits.
(Point): Remove duplicate paragraph on cursors, also in Screen.
(Mode Line): Trailing dashes no longer shown on X displays.
* frames.texi (Non-Window Terminals): Index just "text-only
terminal", which is used throughout the manual now.
* entering.texi (Entering Emacs): Define "startup screen".
Document window-splitting behavior with command-line inputs.
(Exiting): Remove obsolete paragraph about shells without suspend
functionality.
* commands.texi (User Input): Define "input event" more clearly.
(Keys): Add xref to Echo Area.
(Commands): Clarify relation between commands and functions.
2011-10-06 Chong Yidong <cyd@stupidchicken.com>
* misc.texi (emacsclient Options): Document how emacsclient runs
......
This diff is collapsed.
......@@ -23,25 +23,21 @@ input.
@cindex @acronym{ASCII}
@cindex C-
@cindex Control
@cindex control characters
GNU Emacs is primarily designed for use with the keyboard. While it
is possible to use the mouse to issue editing commands through the
menu bar and tool bar, that is not as efficient as using the keyboard.
Therefore, this manual mainly documents how to edit with the keyboard.
@cindex control character
Keyboard input into Emacs is based on a heavily-extended version of
@acronym{ASCII}. The simplest characters that you can input into
Emacs correspond to graphic symbols such as @samp{a}, @samp{B},
@samp{3}, @samp{=}, the space character (conventionally denoted as
@key{SPC}), and so on. Entering these using the keyboard is
straightforward. Certain characters found on non-English keyboards
also fall into this category (@pxref{International}).
In addition to these simple characters, Emacs recognizes
@dfn{control characters} such as @key{RET}, @key{TAB}, @key{DEL},
@key{ESC}, @key{F1}, @key{Home}, @key{left}, etc. Most keyboards have
special keys for entering these.
@acronym{ASCII}. Simple characters, like @samp{a}, @samp{B},
@samp{3}, @samp{=}, and the space character (denoted as @key{SPC}),
are entered by typing the corresponding key. @dfn{Control
characters}, such as @key{RET}, @key{TAB}, @key{DEL}, @key{ESC},
@key{F1}, @key{Home}, and @key{left}, are also entered this way, as
are certain characters found on non-English keyboards
(@pxref{International}).
@cindex modifier keys
@cindex Control
......@@ -50,13 +46,14 @@ special keys for entering these.
@cindex M-
Emacs also recognizes control characters that are entered using
@dfn{modifier keys}. Two commonly-used modifier keys are
@key{Control} (which is usually labelled as @key{Ctrl}), and
@key{Meta} (which is usually labeled as @key{Alt})@footnote{We refer
to @key{Alt} as @key{Meta} for historical reasons.}. For example,
@kbd{Control-a} is entered by holding down the @key{Ctrl} key while
pressing @kbd{a}; we will refer to this as @kbd{C-a} for short.
Similarly @kbd{Meta-a}, or @kbd{M-a} for short, is entered by holding
down the @key{Alt} key and pressing @kbd{a}.
@key{Control} (usually labelled @key{Ctrl}), and @key{Meta} (usually
labeled @key{Alt})@footnote{We refer to @key{Alt} as @key{Meta} for
historical reasons.}. For example, @kbd{Control-a} is entered by
holding down the @key{Ctrl} key while pressing @kbd{a}; we will refer
to this as @kbd{C-a} for short. Similarly @kbd{Meta-a}, or @kbd{M-a}
for short, is entered by holding down the @key{Alt} key and pressing
@kbd{a}. Modifier keys can also be applied to non-alphanumerical
characters, e.g. @kbd{C-@key{F1}} or @kbd{M-@key{left}}.
@cindex @key{ESC} replacing @key{Meta} key
You can also type Meta characters using two-character sequences
......@@ -68,33 +65,28 @@ character; instead, press @key{ESC} and release it, then enter the
next character. This feature is useful on certain text-only terminals
where the @key{Meta} key does not function reliably.
Modifier keys can apply not only to alphanumerical characters, but
also to special input characters, such as the arrow keys and mouse
buttons.
@cindex input event
@xref{Input Events,,, elisp, The Emacs Lisp Reference Manual}, for
the full Lisp-level details about keyboard and mouse input, which are
collectively referred to as @dfn{input events}. If you are not doing
Lisp programming, but simply want to redefine the meaning of some
characters or non-character events, see @ref{Customization}.
@cindex keys stolen by window manager
@cindex window manager, keys stolen by
On graphical displays, the window manager is likely to block the
character @kbd{M-@key{TAB}} before Emacs can see it. It may also
block @kbd{M-@key{SPC}}, @kbd{C-M-d} and @kbd{C-M-l}. If you have
these problems, we recommend that you customize your window manager to
turn off those commands, or put them on key combinations that Emacs
does not use.
On graphical displays, the window manager might block some keyboard
inputs, including @kbd{M-@key{TAB}}, @kbd{M-@key{SPC}}, @kbd{C-M-d}
and @kbd{C-M-l}. If you have this problem, you can either customize
your window manager to not block those keys, or ``rebind'' the
affected Emacs commands (@pxref{Customization}).
@cindex input event
Simple characters and control characters, as well as certain
non-keyboard inputs such as mouse clicks, are collectively referred to
as @dfn{input events}. For details about how Emacs internally handles
input events, see @ref{Input Events,,, elisp, The Emacs Lisp Reference
Manual}.
@node Keys, Commands, User Input, Top
@section Keys
Some Emacs commands are invoked by just one input event; for
example, @kbd{C-f} moves forward one character in the buffer. But
Emacs also has commands that take two or more input events to invoke,
such as @kbd{C-x C-f} and @kbd{C-x 4 C-f}.
example, @kbd{C-f} moves forward one character in the buffer. Other
commands take two or more input events to invoke, such as @kbd{C-x
C-f} and @kbd{C-x 4 C-f}.
@cindex key
@cindex key sequence
......@@ -106,23 +98,23 @@ invokes a command, we call it a @dfn{complete key}; for example,
@kbd{C-f}, @kbd{C-x C-f} and @kbd{C-x 4 C-f} are all complete keys.
If a key sequence isn't long enough to invoke a command, we call it a
@dfn{prefix key}; from the preceding example, we see that @kbd{C-x}
and @kbd{C-x 4} are prefix keys. Every key is either a complete key
or a prefix key.
and @kbd{C-x 4} are prefix keys. Every key sequence is either a
complete key or a prefix key.
A prefix key combines with the following input event to make a
longer key sequence, which may itself be complete or a prefix. For
example, @kbd{C-x} is a prefix key, so @kbd{C-x} and the next input
event combine to make a two-event key sequence. This two-event key
sequence could itself be a prefix key (such as @kbd{C-x 4}), or a
complete key (such as @kbd{C-x C-f}). There is no limit to the length
of a key sequence, but in practice people rarely use sequences longer
than three or four input events.
You can't add input events onto a complete key. For example, the
two-event sequence @kbd{C-f C-k} is not a key, because the @kbd{C-f}
is a complete key in itself, so @kbd{C-f C-k} cannot have an
independent meaning as a command. @kbd{C-f C-k} is two key sequences,
not one.@refill
longer key sequence. For example, @kbd{C-x} is a prefix key, so
typing @kbd{C-x} alone does not invoke a command; instead, Emacs waits
for further input (if you pause for longer than a second, it echoes
the @kbd{C-x} key to prompt for that input; @pxref{Echo Area}).
@kbd{C-x} combines with the next input event to make a two-event key
sequence, which could itself be a prefix key (such as @kbd{C-x 4}), or
a complete key (such as @kbd{C-x C-f}). There is no limit to the
length of key sequences, but in practice they are seldom longer than
three or four input events.
You can't add input events onto a complete key. For example,
because @kbd{C-f} is a complete key, the two-event sequence @kbd{C-f
C-k} is two key sequences, not one.
By default, the prefix keys in Emacs are @kbd{C-c}, @kbd{C-h},
@kbd{C-x}, @kbd{C-x @key{RET}}, @kbd{C-x @@}, @kbd{C-x a}, @kbd{C-x
......@@ -132,22 +124,20 @@ aliases for @kbd{C-h} and @kbd{C-x 6}.) This list is not cast in
stone; if you customize Emacs, you can make new prefix keys. You
could even eliminate some of the standard ones, though this is not
recommended for most users; for example, if you remove the prefix
definition of @kbd{C-x 4}, then @kbd{C-x 4 @var{anything}} would
become an invalid key sequence. @xref{Key Bindings}.
definition of @kbd{C-x 4}, then @kbd{C-x 4 C-f} becomes an invalid key
sequence. @xref{Key Bindings}.
Typing the help character (@kbd{C-h} or @key{F1}) after a prefix key
displays a list of the commands starting with that prefix. The sole
exception to this rule is @key{ESC}: @kbd{@key{ESC} C-h} is equivalent
to @kbd{C-M-h}, which does something else entirely. You can, however,
use @key{F1} to displays a list of the commands starting with
@key{ESC}.
use @key{F1} to display a list of commands starting with @key{ESC}.
@node Commands, Entering Emacs, Keys, Top
@section Keys and Commands
@cindex binding
@cindex command
@cindex function definition
This manual is full of passages that tell you what particular keys
do. But Emacs does not assign meanings to keys directly. Instead,
Emacs assigns meanings to named @dfn{commands}, and then gives keys
......@@ -155,11 +145,9 @@ their meanings by @dfn{binding} them to commands.
Every command has a name chosen by a programmer. The name is
usually made of a few English words separated by dashes; for example,
@code{next-line} or @code{forward-word}. A command also has a
@dfn{function definition} which is a Lisp program; this is how the
command does its work. In Emacs Lisp, a command is a Lisp function
with special properties that make it suitable for interactive use.
For more information on commands and functions, see @ref{What Is a
@code{next-line} or @code{forward-word}. Internally, each command is
a special type of Lisp @dfn{function}, and the actions associated with
the command are performed by running the function. @xref{What Is a
Function,, What Is a Function, elisp, The Emacs Lisp Reference
Manual}.
......
......@@ -19,49 +19,45 @@
The usual way to invoke Emacs is with the shell command
@command{emacs}. From a terminal window running in the X Window
System, you can also run Emacs in the background with
@command{emacs&}; this way, Emacs won't tie up the terminal window, so
you can use it to run other shell commands.
System, you can run Emacs in the background with @command{emacs &};
this way, Emacs won't tie up the terminal window, so you can use it to
run other shell commands.
@cindex startup screen
When Emacs starts up, the initial frame displays a special buffer
named @samp{*GNU Emacs*}. This buffer contains some information about
Emacs, and includes @dfn{links} to common tasks that might be useful
to beginning users. For instance, activating the @samp{Emacs
named @samp{*GNU Emacs*}. This @dfn{startup screen} contains
information about Emacs and @dfn{links} to common tasks that are
useful for beginning users. For instance, activating the @samp{Emacs
Tutorial} link opens the Emacs tutorial; this does the same thing as
the command @kbd{C-h t} (@code{help-with-tutorial}). To activate a
link, either move point onto it and type @kbd{@key{RET}}, or click on
it with @kbd{mouse-1} (the left mouse button).
Using a command line argument, you can tell Emacs to visit one or
more specific files as soon as it starts up. For example,
@command{emacs foo.txt} starts Emacs with a buffer displaying the
contents of the file @samp{foo.txt}. This feature exists mainly for
compatibility with other editors, which are designed to edit one file
at a time: once you are done with that file, you exit the editor, and
start it again the next time you need it.
Using Emacs in this way---starting it afresh each time you want to
edit a file---is unnecessary and wasteful. Emacs can visit more than
one file in a single editing session, and exiting the Emacs session
loses valuable accumulated context, such as the kill ring, registers,
undo history, and mark ring. These features, described later in the
manual, are useful for performing edits across multiple files, or
continuing edits to a single file.
The recommended way to use Emacs is to start it only once, just
after you log in, and do all your editing in the same Emacs session.
Each time you edit a file, visit it with the existing Emacs, which
eventually has many files in it ready for editing. @xref{Files}, for
more information on visiting more than one file.
more files as soon as it starts up. For example, @command{emacs
foo.txt} starts Emacs with a buffer displaying the contents of the
file @samp{foo.txt}. This feature exists mainly for compatibility
with other editors, which are designed to be launched from the shell
for short editing sessions. If you call Emacs this way, the initial
frame is split into two windows---one showing the specified file, and
the other showing the startup screen. @xref{Windows}.
Generally, it is unnecessary and wasteful to start Emacs afresh each
time you want to edit a file. The recommended way to use Emacs is to
start it just once, just after you log in, and do all your editing in
the same Emacs session. @xref{Files}, for information on visiting
more than one file. If you use Emacs this way, the Emacs session
accumulates valuable context, such as the kill ring, registers, undo
history, and mark ring data, which together make editing more
convenient. These features are described later in the manual.
To edit a file from another program while Emacs is running, you can
use the @command{emacsclient} helper program to open a file in the
already running Emacs. @xref{Emacs Server}.
existing Emacs session. @xref{Emacs Server}.
Emacs accepts other command line arguments that tell it to load
certain Lisp files, call certain functions, and so forth. These
features exist mainly for advanced users. @xref{Emacs Invocation}.
certain Lisp files, where to put the initial frame, and so forth.
@xref{Emacs Invocation}.
@vindex inhibit-startup-screen
If the variable @code{inhibit-startup-screen} is non-@code{nil},
......@@ -72,11 +68,10 @@ which can be used to evaluate Emacs Lisp expressions interactively.
@xref{Lisp Interaction}. You can set the variable
@code{inhibit-startup-screen} using the Customize facility
(@pxref{Easy Customization}), or by editing your initialization file
(@pxref{Init File}).@footnote{Note that setting
@code{inhibit-startup-screen} in @file{site-start.el} doesn't work,
because the startup screen is set up before reading
@file{site-start.el}. @xref{Init File}, for information about
@file{site-start.el}.}
(@pxref{Init File}).@footnote{Setting @code{inhibit-startup-screen} in
@file{site-start.el} doesn't work, because the startup screen is set
up before reading @file{site-start.el}. @xref{Init File}, for
information about @file{site-start.el}.}
You can also force Emacs to display a file or directory at startup
by setting the variable @code{initial-buffer-choice} to a
......@@ -105,13 +100,13 @@ On a text terminal, suspend Emacs; on a graphical display,
@findex save-buffers-kill-terminal
@dfn{Killing} Emacs means terminating the Emacs program. To do
this, type @kbd{C-x C-c} (@code{save-buffers-kill-terminal}). A
two-character key is used to make it harder to type by accident. If
there are any modified file-visiting buffers when you type @kbd{C-x
C-c}, Emacs first offers to save these buffers. If you do not save
them all, it asks for confirmation again, since the unsaved changes
will be lost. Emacs also asks for confirmation if any subprocesses
are still running, since killing Emacs will also kill the subprocesses
(@pxref{Shell}).
two-character key sequence is used to make it harder to type by
accident. If there are any modified file-visiting buffers when you
type @kbd{C-x C-c}, Emacs first offers to save these buffers. If you
do not save them all, it asks for confirmation again, since the
unsaved changes will be lost. Emacs also asks for confirmation if any
subprocesses are still running, since killing Emacs will also kill the
subprocesses (@pxref{Shell}).
@kbd{C-x C-c} behaves specially if you are using Emacs as a server.
If you type it from a ``client frame'', it closes the client
......@@ -135,39 +130,19 @@ default value of @code{confirm-kill-emacs} is @code{nil}.
To kill Emacs without being prompted about saving, type @kbd{M-x
kill-emacs}.
@cindex minimizing a frame
@cindex iconifying
@cindex suspending
You can ``exit'' Emacs in two other ways. On a graphical display,
you can @dfn{minimize} (or @dfn{iconify}) an Emacs frame; depending on
the window system, this either replaces the Emacs frame with a tiny
``icon'' or conceals the frame entirely (@pxref{Frames}). On a
text-only terminal, you can @dfn{suspend} Emacs; this means stopping
the Emacs program temporarily, returning control to its parent process
(usually a shell).
@kindex C-z
@findex suspend-frame
@cindex minimizing
@cindex iconifying
@cindex suspending
@kbd{C-z} runs the command @code{suspend-frame}. On a graphical
display, this ``minimizes'' (or ``iconifies'') the selected Emacs
frame. On a text terminal, this suspends the Emacs process.
After minimizing or suspending Emacs, you can return to it and
continue editing wherever you left off. The way to do this depends on
the window system or shell. In most common shells, you can resume
Emacs after suspending it with the shell command @command{%emacs}.
@vindex cannot-suspend
On very old systems that don't support suspending programs,
@kbd{C-z} starts an inferior shell that communicates directly with the
terminal, and Emacs waits until you exit the subshell. (The way to
exit the subshell is usually @kbd{C-d} or @command{exit}.) On these
systems, you can only get back to the shell from which Emacs was run
(to log out, for example) when you kill Emacs. Suspending can also
fail if you run Emacs under a shell that doesn't support suspending
jobs, even if the system itself does support it. In this case, you
can set the variable @code{cannot-suspend} to a non-@code{nil} value
to force @kbd{C-z} to start an inferior shell.
display, this command @dfn{minimizes} (or @dfn{iconifies}) the
selected Emacs frame, hiding it in a way that lets you bring it back
later (exactly how this hiding occurs depends on the window system).
On a text terminal, the @kbd{C-z} command @dfn{suspends} Emacs,
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.
......
......@@ -1229,8 +1229,7 @@ raises the frame.
@node Non-Window Terminals
@section Non-Window Terminals
@cindex non-window terminals
@cindex single-frame terminals
@cindex text-only terminal
On a text-only terminal, Emacs can display only one Emacs frame at a
time. However, you can still create multiple Emacs frames, and switch
......
This diff is collapsed.
......@@ -96,8 +96,10 @@ and also when HOME is set to C:\ by default.
*** shell-mode uses pcomplete rules, with the standard completion UI.
*** Many packages have been changed to use completion-at-point rather than
their own completion code.
*** Many packages have been changed to use `completion-at-point'
rather than their own completion code.
*** `completion-at-point' now handles tags and semantic completion.
*** Completion in a non-minibuffer now tries to detect the end of completion
and pops down the *Completions* buffer accordingly.
......@@ -455,8 +457,6 @@ isearch-yank-kill.
+++
** New command `count-words-region'. This does what you expect.
** completion-at-point now handles tags and semantic completion.
** The default value of `backup-by-copying-when-mismatch' is now t.
** The command `just-one-space' (M-SPC), if given a negative argument,
......@@ -724,6 +724,8 @@ in the Rmail incoming message.
** Shell mode
*** Shell mode uses pcomplete rules, with the standard completion UI.
*** The `shell' command prompts for the shell path name if the default
directory is a remote file name and neither the environment variable
$ESHELL nor the variable `explicit-shell-file-name' is set.
......
2011-10-07 Chong Yidong <cyd@stupidchicken.com>
* bindings.el ([M-left],[M-right]): Bind to left-word and
right-word respectively.
2011-10-07 Glenn Morris <rgm@gnu.org>
* cus-start.el (debug-on-quit): Fix custom type.
......
......@@ -1103,9 +1103,9 @@ if `inhibit-field-text-motion' is non-nil."
"Keymap for characters following C-c.")
(define-key global-map "\C-c" 'mode-specific-command-prefix)
(global-set-key [M-right] 'forward-word)
(global-set-key [M-right] 'right-word)
(define-key esc-map [right] 'forward-word)
(global-set-key [M-left] 'backward-word)
(global-set-key [M-left] 'left-word)
(define-key esc-map [left] 'backward-word)
;; ilya@math.ohio-state.edu says these bindings are standard on PC editors.
(global-set-key [C-right] 'right-word)
......
......@@ -781,6 +781,11 @@
rather than rolling our own approximation.
(SCROLL_BAR_VEC_SIZE): Remove; not used.
2011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
* buffer.c (syms_of_buffer) <enable-multibyte-characters>: Don't
advertise functionality which we discourage or doesn't work.
2011-10-07 Paul Eggert <eggert@cs.ucla.edu>
* alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
......@@ -925,8 +930,8 @@
2011-09-24 Eli Zaretskii <eliz@gnu.org>
* dispnew.c (syms_of_display) <redisplay-dont-pause>: Default
value is now t. Doc fix.
* dispnew.c (syms_of_display) <redisplay-dont-pause>:
Default value is now t. Doc fix.
* indent.c (Fvertical_motion): Compute and apply the overshoot
logic when moving up, not only when moving down. Fix the
......@@ -942,8 +947,8 @@
* dbusbind.c (Fdbus_register_signal): Add match rule to
Vdbus_registered_objects_table. (Bug#9581)
(Fdbus_register_method, Vdbus_registered_objects_table): Fix
docstring.
(Fdbus_register_method, Vdbus_registered_objects_table):
Fix docstring.
2011-09-24 Jim Meyering <meyering@redhat.com>
......@@ -1423,15 +1428,15 @@
* term.c (tty_append_glyph): New function.
(produce_stretch_glyph): Static function and its prototype deleted.
* dispextern.h (produce_stretch_glyph, tty_append_glyph): Add
prototypes.
* dispextern.h (produce_stretch_glyph, tty_append_glyph):
Add prototypes.
2011-08-29 Paul Eggert <eggert@cs.ucla.edu>
* image.c (parse_image_spec): Check for nonnegative, not for positive,
when checking :margin (Bug#9390).
(IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
Renamed from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
so that the name doesn't mislead. All uses changed.
2011-08-28 Johan Bockgård <bojohan@gnu.org>
......@@ -1633,8 +1638,8 @@
(read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
Use ptrdiff_t, not int, to count maps.
(read_char_minibuf_menu_prompt): Check for overflow in size
calculations. Don't update size until allocation succeeds. Redo
calculations to avoid overflow.
calculations. Don't update size until allocation succeeds.
Redo calculations to avoid overflow.
* keyboard.h: Change prototypes to match the above.
* keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
......@@ -1803,7 +1808,7 @@
* indent.c (MULTIBYTE_BYTES_WIDTH):
Use sanitize_char_width to avoid undefined and/or bad behavior
with outlandish widths.
* character.h (sanitize_tab_width): Renamed from sanitize_width,
* character.h (sanitize_tab_width): Rename from sanitize_width,
now that we have two such functions. All uses changed.
(sanitize_char_width): New inline function.
......@@ -1869,8 +1874,8 @@
(png_load, gif_load, svg_load_image):
Prefer int to unsigned where either will do.
(tiff_handler): New function, combining the cores of the
old tiff_error_handler and tiff_warning_handler. This
function is rewritten to use vsnprintf and thereby avoid
old tiff_error_handler and tiff_warning_handler.
This function is rewritten to use vsnprintf and thereby avoid
stack buffer overflows. It uses only the features of vsnprintf
that are common to both POSIX and native Microsoft.
(tiff_error_handler, tiff_warning_handler): Use it.
......@@ -1899,8 +1904,8 @@
`(space ...)', and specifies display in the text area, return 2
rather than 1.
(try_cursor_movement): Check for the need to scroll more
accurately, and prefer exact match for point under bidi. Don't
advance `row' beyond the last row of the window.
accurately, and prefer exact match for point under bidi.
Don't advance `row' beyond the last row of the window.
* dispextern.h (struct bidi_it): Rename the disp_prop_p member
into disp_prop; all users changed.
......
......@@ -4236,6 +4236,11 @@ mark_maybe_pointer (void *p)
}
/* Alignment of Lisp_Object and pointer values. Use offsetof, as it
sometimes returns a smaller alignment than GCC's __alignof__ and
mark_memory might miss objects if __alignof__ were used. For
example, on x86 with WIDE_EMACS_INT, __alignof__ (Lisp_Object) is 8
but GC_LISP_OBJECT_ALIGNMENT should be 4. */
#ifndef GC_LISP_OBJECT_ALIGNMENT
# define GC_LISP_OBJECT_ALIGNMENT offsetof (struct {char a; Lisp_Object b;}, b)
#endif
......
......@@ -5447,9 +5447,7 @@ file I/O and the behavior of various editing commands.
This variable is buffer-local but you cannot set it directly;
use the function `set-buffer-multibyte' to change a buffer's representation.
Changing its default value with `setq-default' is supported.
See also variable `default-enable-multibyte-characters' and Info node
`(elisp)Text Representations'. */);
See also Info node `(elisp)Text Representations'. */);
XSYMBOL (intern_c_string ("enable-multibyte-characters"))->constant = 1;
DEFVAR_PER_BUFFER ("buffer-file-coding-system",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment