Commit e7dbdb6d authored by Eli Zaretskii's avatar Eli Zaretskii

Merge from mainline.

parents 34689d3c 22ef1944
2010-03-27 Nick Roberts <nickrob@snap.net.nz>
* Restore GDB/MI fuctionality removed by 2009-12-29T07:15:34Z!nickrob@snap.net.nz.
2010-03-27 Eli Zaretskii <eliz@gnu.org>
* config.bat <lib-src>: Edit out lines that begin with several #
characters.
2010-03-20 Dan Nicolaescu <dann@ics.uci.edu>
* configure.in: Remove support for old UNIX System V systems and
......
......@@ -75,9 +75,6 @@ NO_REMAP
VIRT_ADDR_VARIES
WORDS_BIG_ENDIAN
** Not used anymore by any port, can be cleaned up
NO_SOCK_SIGIO
** Misc macros
USER_FULL_NAME If defined, overrides the default pw->pw_gecos for getting at the full user name. Only MSDOS overrides the default.
......
......@@ -140,7 +140,7 @@ Remember to fix FOO, as discussed on emacs-devel at http://... .
** Not interested in tracker control messages (tags being set, etc)?
Discard mails matching:
^X-Emacs-PR-Message: (transcript|closed)
^X-GNU-PR-Message: (transcript|closed)
** How to avoid multiple copies of mails.
If you reply to reports in the normal way, this should work fine.
......@@ -166,18 +166,18 @@ Sending a mail to 123-done does the following:
2) Send a mail to the original submitter telling them that their bug
has been closed. This mail has a header:
X-Emacs-PR-Message: they-closed 123
X-GNU-PR-Message: they-closed 123
3) Send a mail to you and to the emacs-bug-tracker list confirming
that the bug has been closed. This mail has a header:
X-Emacs-PR-Message: closed 123
X-GNU-PR-Message: closed 123
4) Send a copy of your mail to the bug-gnu-emacs list in exactly the
same way as if you had sent mail to "123" (sans -done). This mail has
headers:
X-Emacs-PR-Message: cc-closed 123
X-GNU-PR-Message: cc-closed 123
Mail-Followup-To: 123@debbugs.gnu.org, person-who-closed
(This is Emacs-specific. Normally the bug list gets the same mail as in 3).
......
......@@ -221,6 +221,11 @@ lib-src/etags.c
lib-src/getopt1.c, getopt_int.h
- these are from the GNU C library. Leave the copyrights alone.
lisp/cedet/semantic/imenu.el
- See http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg00410.html
in which Eric Ludlam established that the remaining contributions
from authors other than himself were negligible.
lisp/play/tetris.el
- no special rules about the copyright. We note here that we believe
(2007/1) there is no problem with our use of the name "tetris" or
......
......@@ -222,7 +222,7 @@ rem ----------------------------------------------------------------------
Echo Configuring the library source directory...
cd lib-src
rem Create "makefile" from "makefile.in".
sed -e "1,/== start of cpp stuff ==/s@^#[ ].*$@@" <Makefile.in >junk.c
sed -e "1,/== start of cpp stuff ==/s@^##*[ ].*$@@" <Makefile.in >junk.c
gcc -E -traditional -I. -I../src junk.c | sed -e "s/^ / /" -e "/^#/d" -e "/^[ ]*$/d" >makefile.new
If "%DJGPP_VER%" == "2" goto libsrc-v2
sed -f ../msdos/sed3.inp <makefile.new >Makefile
......
2010-03-28 Nick Roberts <nickrob@snap.net.nz>
* emacs.texi (Top): Update node names to those in building.texi.
2010-03-24 Glenn Morris <rgm@gnu.org>
* ack.texi (Acknowledgments):
* emacs.texi (Acknowledgments): Fix ispell attribution. (Bug#5759)
2010-03-20 Jan Djärv <jan.h.d@swipnet.se>
* xresources.texi (Table of Resources): Clarify toolBar number
for Gtk+.
* frames.texi (Menu Bars): menuBarLines => menuBar (bug#5736).
2010-03-21 Chong Yidong <cyd@stupidchicken.com>
* dired.texi (Dired Updating): Document dired-auto-revert-buffer.
* search.texi (Other Repeating Search): Document multi-isearch-buffers
and multi-isearch-buffers-regexp.
* indent.texi (Indentation): Clarify description of
indent-for-tab-command. Document tab-always-indent.
2010-03-20 Chong Yidong <cyd@stupidchicken.com>
* cmdargs.texi (Font X): Move most content to Fonts.
* frames.texi (Fonts): New node. Document font-use-system-font.
* emacs.texi (Top):
* xresources.texi (Table of Resources):
* mule.texi (Defining Fontsets, Charsets): Update xrefs.
2010-03-10 Chong Yidong <cyd@stupidchicken.com>
* Branch for 23.2.
......
@c This is part of the Emacs manual.
@c Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003,
@c 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
@c 2004, 2005, 2006, 2007, 2008, 2009, 2010
@c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@c
@node Acknowledgments, Screen, Concept Index, Top
......@@ -600,8 +601,7 @@ R.@: Dodd. He also wrote @file{ls-lisp.el}, a Lisp emulation of the
program.
@item
Geoff Kuenning and Ken Stevens wrote @file{ispell.el}, a spell-checker
interface.
Ken Stevens wrote @file{ispell.el}, a spell-checker interface.
@item
David K@ringaccent{a}gedal wrote @file{tempo.el}, providing support for
......
......@@ -853,18 +853,19 @@ use @kbd{M-x gud-gdb}. You need to use text command mode to debug
multiple programs within one Emacs session.
@menu
* GDB-UI Layout:: Control the number of displayed buffers.
* GDB User Interface Layout:: Control the number of displayed buffers.
* Source Buffers:: Use the mouse in the fringe/margin to
control your program.
* Breakpoints Buffer:: A breakpoint control panel.
* Threads Buffer:: Displays your threads.
* Stack Buffer:: Select a frame from the call stack.
* Other GDB-UI Buffers:: Input/output, locals, registers,
* Other GDB Buffers:: Input/output, locals, registers,
assembler, threads and memory buffers.
* Watch Expressions:: Monitor variable values in the speedbar.
* Reverse Debugging:: Execute and reverse debug your program.
* Multithreaded Debugging:: Debugging programs with several threads.
@end menu
@node GDB-UI Layout
@node GDB User Interface Layout
@subsubsection GDB User Interface Layout
@cindex GDB User Interface layout
......@@ -1014,10 +1015,92 @@ Visit the source line for the current breakpoint
Visit the source line for the breakpoint you click on.
@end table
@vindex gdb-show-threads-by-default
When @code{gdb-many-windows} is non-@code{nil}, the breakpoints buffer
shares its window with the threads buffer. To switch from one to the
other click with @kbd{Mouse-1} on the relevant button in the header
line.
line. If @code{gdb-show-threads-by-default} is non-@code{nil}, the
threads buffer, rather than the breakpoints buffer, is shown at start
up.
@node Threads Buffer
@subsubsection Threads Buffer
@findex gdb-select-thread
The threads buffer displays a summary of all threads currently in your
program (@pxref{Threads, Threads, Debugging programs with multiple
threads, gdb, The GNU debugger}). Move point to any thread in the list
and press @key{RET} to select it (@code{gdb-select-thread}) and
display the associated source in the primary source buffer.
Alternatively, click @kbd{Mouse-2} on a thread to select it. Contents
of all GDB buffers are updated whenever you select a thread.
You can customize variables under @code{gdb-buffers} group to select
fields included in threads buffer.
@table @code
@item gdb-thread-buffer-verbose-names
@vindex gdb-thread-buffer-verbose-names
Show long thread names like @samp{Thread 0x4e2ab70 (LWP 1983)} in
threads buffer.
@item gdb-thread-buffer-arguments
@vindex gdb-thread-buffer-arguments
Show arguments of thread top frames in threads buffer.
@item gdb-thread-buffer-locations
@vindex gdb-thread-buffer-locations
Show file information or library names in threads buffer.
@item gdb-thread-buffer-addresses
@vindex gdb-thread-buffer-addresses
Show addresses for thread frames in threads buffer.
@end table
It’s possible to observe information for several threads
simultaneously (in addition to buffers which show information for
currently selected thread) using the following keys from the threads
buffer.
@table @kbd
@item d
@kindex d @r{(GDB threads buffer)}
@findex gdb-display-disassembly-for-thread
Display disassembly buffer for the thread at current line.
(@code{gdb-display-disassembly-for-thread})
@item f
@kindex f @r{(GDB threads buffer)}
@findex gdb-display-stack-for-thread
Display stack buffer for the thread at current line.
(@code{gdb-display-stack-for-thread}).
@item l
@kindex l @r{(GDB threads buffer)}
@findex gdb-display-locals-for-thread
Display locals buffer for the thread at current line.
(@code{gdb-display-locals-for-thread}).
@item r
@kindex r @r{(GDB threads buffer)}
@findex gdb-display-registers-for-thread
Display registers buffer for the thread at current line.
(@code{gdb-display-registers-for-thread}).
@end table
Pressing their upper-case counterparts, @kbd{D}, @kbd{F} ,@kbd{L} and
@kbd{R} displays the corresponding buffer in a new frame.
When you create a buffer showing information about some specific
thread, it becomes bound to that thread and keeps showing actual
information while you debug your program. Every GDB buffer contains a
number of thread it shows information for in its mode name. Thread
number is also included in the buffer name of bound buffers to prevent
buffer names clashing.
Further commands are available in the threads buffer which depend on the
mode of GDB that is used for controlling execution of your program.
(@pxref{Multithreaded Debugging, Stopping and Starting Multi-threaded Programs}).
@node Stack Buffer
@subsubsection Stack Buffer
......@@ -1035,7 +1118,7 @@ that stack frame and type @key{RET} (@code{gdb-frames-select}), or click
selecting a stack frame updates it to display the local variables of the
new frame.
@node Other GDB-UI Buffers
@node Other GDB Buffers
@subsubsection Other Buffers
@table @asis
......@@ -1079,21 +1162,6 @@ arrow points to the current instruction, and you can set and remove
breakpoints as in a source buffer. Breakpoint icons also appear in
the fringe or margin.
@item Threads Buffer
@findex gdb-threads-select
The threads buffer displays a summary of all threads currently in your
program (@pxref{Threads, Threads, Debugging programs with multiple
threads, gdb, The GNU debugger}). Move point to any thread in the
list and press @key{RET} to select it (@code{gdb-threads-select}) and
display the associated source in the primary source buffer.
Alternatively, click @kbd{Mouse-2} on a thread to select it. If the
locals buffer is visible, its contents update to display the variables
that are local in the new thread.
When there is more than one main thread and the threads buffer is
present, Emacs displays the selected thread number in the mode line of
many of the GDB-UI Buffers.
@item Memory Buffer
The memory buffer lets you examine sections of program memory
(@pxref{Memory, Memory, Examining memory, gdb, The GNU debugger}).
......@@ -1104,9 +1172,9 @@ displays. Alternatively, use @kbd{S} or @kbd{N} respectively. Click
size for these data items.
@end table
When @code{gdb-many-windows} is non-@code{nil}, the threads buffer
shares its window with the breakpoints buffer, and the locals buffer
with the registers buffer. To switch from one to the other click with
When @code{gdb-many-windows} is non-@code{nil}, the locals buffer
shares its window with the registers buffer, just like breakpoints
and threads buffers. To switch from one to the other click with
@kbd{Mouse-1} on the relevant button in the header line.
@node Watch Expressions
......@@ -1175,26 +1243,96 @@ expressions updates, set @code{gdb-speedbar-auto-raise} to
non-@code{nil}. This can be useful if you are debugging with a full
screen Emacs frame.
@node Reverse Debugging
@subsubsection Reverse Debugging
The GDB tool bar shares many buttons with the other GUD debuggers
for tasks like stepping and printing expressions. It also has a
further set of buttons that allow reverse debugging (@pxref{Process
Record and Replay, , ,gdb, The GNU debugger}). This is useful when it
takes a long time to reproduce the conditions where your program fails
or for transient problems, like race conditions in multi-threaded
programs, where a failure might otherwise be hard to reproduce.
To use reverse debugging, set a breakpoint slightly before the
location of interest and run your program to that point. Enable
process recording by clicking on the record button. At this point, a
new set of buttons appear. These buttons allow program execution in
the reverse direction. Run your program over the code where the
problem occurs, and then use the new set of buttons to retrace your
steps, examine values, and analyze the problem. When analysis is
complete, turn off process recording by clicking on the record button
again.
@node Multithreaded Debugging
@subsubsection Stopping and Starting Multi-threaded Programs
@cindex Multithreaded debugging in GDB
@subsubheading All-stop Debugging
In all-stop mode, whenever your program stops, @emph{all} threads of
execution stop. Likewise, whenever you restart the program, all
threads start executing. @xref{All-Stop Mode, , All-Stop Mode, gdb,
The GNU debugger}. You can enable this behaviour in Emacs by setting
@code{gdb-non-stop-setting} to @code{nil} before starting a debugging
session.
@subsubheading Non-stop Debugging
@cindex Non-stop debugging in GDB
For some multi-threaded targets, GDB supports a further mode of
operation in which you can examine stopped program threads in the
debugger while other threads continue to execute freely.
@xref{Non-Stop Mode, , Non-Stop Mode, gdb, The GNU debugger}.
This is referred to as @dfn{non-stop} mode.
Versions of GDB prior to 7.0 do not support non-stop mode and it does
not work on all targets. In such cases, Emacs uses all-stop mode
regardless of the value of @code{gdb-non-stop-setting}.
@vindex gdb-non-stop-setting
If the variable @code{gdb-non-stop-setting} is non-@code{nil} (the
default value), Emacs tries to start GDB in non-stop mode. Note that
GDB debugging session needs to be restarted for change of this setting
to take effect.
@vindex gdb-switch-when-another-stopped
When a thread stops in non-stop mode, Emacs automatically switches to
that thread. It may be undesirable to allow switching of current
thread when some other stopped thread is already selected. Set
@code{gdb-switch-when-another-stopped} to @code{nil} to prevent this.
@vindex gdb-switch-reasons
Emacs can decide whether or not to switch to the stopped thread
depending on the reason which caused the stop. Customize
@code{gdb-switch-reasons} to select stop reasons which make Emacs
switch thread.
@vindex gdb-stopped-hooks
The variable @code{gdb-stopped-hooks} allows you to execute your
functions whenever some thread stops.
In non-stop mode, you can switch between different modes for GUD
execution control commands.
@vindex gdb-gud-control-all-threads
@table @dfn
@item Non-stop/A
When @code{gdb-gud-control-all-threads} is @code{t} (the default
value), interruption and continuation commands apply to all threads,
so you can halt or continue all your threads with one command using
@code{gud-stop-subjob} and @code{gud-cont}, respectively. The
@samp{Go} button is shown on the toolbar when at least one thread is
stopped, whereas @samp{Stop} button is shown when at least one thread
is running.
@item Non-stop/T
When @code{gdb-gud-control-all-threads} is @code{nil}, only the
current thread is stopped/continued. @samp{Go} and @samp{Stop}
buttons on the GUD toolbar are shown depending on the state of current
thread.
@end table
You can change the current value of @code{gdb-gud-control-all-threads}
from the tool bar or from @samp{GUD->GDB-MI} menu.
Stepping commands always apply to the current thread.
@subsubheading Fine Thread Control
In non-stop mode, you can interrupt/continue your threads without
selecting them. Hitting @kbd{i} in threads buffer interrupts thread
under point, @kbd{c} continues it, @kbd{s} steps through. More such
commands may be added in the future.
Combined with creating bound buffers for any thread, this allows you
to change and track state of many threads in the same time.
Note that when you interrupt a thread, it stops with @samp{signal
received} reason. If that reason is included in your
@code{gdb-switch-reasons} (it is by default), Emacs will switch to
that thread.
@node Executing Lisp
@section Executing Lisp Expressions
......
......@@ -755,10 +755,9 @@ remote machine.
@appendixsec Font Specification Options
@cindex font name (X Window System)
By default, Emacs displays text in X using a twelve point monospace
font. You can specify a different font using the command line option
@samp{-fn @var{font}} (or @samp{--font}, which is an alias for
@samp{-fn}).
You can use the command line option @samp{-fn @var{font}} (or
@samp{--font}, which is an alias for @samp{-fn}) to specify a default
font:
@table @samp
@item -fn @var{font}
......@@ -772,252 +771,14 @@ Use @var{font} as the default font.
When passing a font specification to Emacs on the command line, you
may need to ``quote'' it, by enclosing it in quotation marks, if it
contains characters that the shell treats specially (e.g. spaces).
Here is an example:
For example:
@smallexample
emacs -fn "DejaVu Sans Mono-12"
@end smallexample
@cindex X defaults file
@cindex X resources file
You can also specify the font using your X resources file (usually a
file named @file{.Xdefaults} or @file{.Xresources} in your home
directory), by adding a line like this:
@smallexample
emacs.font: @var{font}
@end smallexample
@noindent
You must restart X, or use the @command{xrdb} command, for the X
resources file to take effect. @xref{Resources}. When specifying a
font in your X resources file, you should not quote it.
@cindex fontconfig
Emacs recognizes two types of fonts: @dfn{client-side} fonts, which
are provided by the Xft and Fontconfig libraries, and
@dfn{server-side} fonts, which are provided by the X server itself.
Most client-side fonts support advanced font features such as
antialiasing and subpixel hinting, while server-side fonts do not.
There are four different ways to express a ``font name''. The first
format consists of @dfn{Fontconfig patterns}. Fontconfig patterns
match only client-side fonts provided by Xft and Fontconfig, and have
the following form:
@smallexample
@var{fontname}[-@var{fontsize}][:@var{name1}=@var{values1}][:@var{name2}=@var{values2}]...
@end smallexample
@noindent
Within this format, any of the elements in braces may be omitted.
Here, @var{fontname} is the ``family name'' of the font, such as
@samp{Monospace} or @samp{DejaVu Serif}; @var{fontsize} is the ``point
size'' of the font (one ``printer's point'' is about 1/72 of an inch);
and the @samp{@var{name}=@var{values}} entries specify settings such
as the slant and weight of the font. Each @var{values} may be a
single value, or a list of values separated by commas. In addition,
some property values are valid with only one kind of property name, in
which case the @samp{@var{name}=} part may be omitted.
Here is a list of common font properties:
@table @samp
@item slant
One of @samp{italic}, @samp{oblique} or @samp{roman}.
@item weight
One of @samp{light}, @samp{medium}, @samp{demibold}, @samp{bold} or
@samp{black}.
@item style
Some fonts define special styles which are a combination of slant and
weight. For instance, the font @samp{Dejavu Sans} defines the style
@samp{book}. This property, if specified, overrides the slant and
weight properties.
@item width
One of @samp{condensed}, @samp{normal}, or @samp{expanded}.
@item spacing
One of @samp{monospace}, @samp{proportional}, @samp{dual-width}, or
@samp{charcell}.
@end table
@noindent
Here are some examples of Fontconfig patterns:
@smallexample
Monospace
Monospace-12
Monospace-12:bold
DejaVu Sans Mono:bold:italic
Monospace-12:weight=bold:slant=italic
@end smallexample
See the Fontconfig manual for a more detailed description of
Fontconfig patterns. This manual is located in the file
@file{fontconfig-user.html}, which is distributed with Fontconfig. It
is also available online at
@url{http://fontconfig.org/fontconfig-user.html}. In particular, the
manual describes additional font properties that influence how the
font is hinted, antialiased, or scaled.
The second way to specify a font is to use a @dfn{GTK font
description}. Like Fontconfig patterns, GTK font descriptions match
only client-side fonts provided by Xft and Fontconfig. They have the
syntax
@smallexample
@var{fontname} [@var{properties}] [@var{fontsize}]
@end smallexample
@noindent
where @var{fontname} is the family name, @var{properties} is a list of
property values separated by spaces, and @var{fontsize} is the point
size. The properties that you may specify are as follows:
@table @samp
@item style
One of @samp{roman}, @samp{italic} or @samp{oblique}. If omitted, the
@samp{roman} style is used.
@item weight
One of @samp{medium}, @samp{ultra-light}, @samp{light},
@samp{semi-bold}, or @samp{bold}. If omitted, @samp{medium} weight is
used.
@end table
@noindent
Here are some examples of GTK font descriptions:
@smallexample
Monospace 12
Monospace Bold Italic 12
@end smallexample
@cindex XLFD
@cindex X Logical Font Description
The third way to specify a font is to use an @dfn{XLFD} (@dfn{X
Logical Font Description}), which is the traditional method for
specifying fonts under X. Each XLFD consists of fourteen words or
numbers, separated by dashes, like this:
@smallexample
-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
@end smallexample
@noindent
A wildcard character (@samp{*}) in an XLFD matches any sequence of
characters (including none), and @samp{?} matches any single
character. However, matching is implementation-dependent, and can be
inaccurate when wildcards match dashes in a long name. For reliable
results, supply all 14 dashes and use wildcards only within a field.
Case is insignificant in an XLFD. The syntax for an XLFD is as
follows:
@smallexample
-@var{maker}-@var{family}-@var{weight}-@var{slant}-@var{widthtype}-@var{style}@dots{}
@dots{}-@var{pixels}-@var{height}-@var{horiz}-@var{vert}-@var{spacing}-@var{width}-@var{registry}-@var{encoding}
@end smallexample
@noindent
The entries have the following meanings:
@table @var
@item maker
The name of the font manufacturer.
@item family
The name of the font family (e.g. @samp{courier}).
@item weight
The font weight---normally either @samp{bold}, @samp{medium} or
@samp{light}. Some font names support other values.
@item slant
The font slant---normally @samp{r} (roman), @samp{i} (italic),
@samp{o} (oblique), @samp{ri} (reverse italic), or @samp{ot} (other).
Some font names support other values.
@item widthtype
The font width---normally @samp{condensed}, @samp{extended},
@samp{semicondensed} or @samp{normal} (some font names support other
values).
@item style
An optional additional style name. Usually it is empty---most long
font names have two hyphens in a row at this point.
@item pixels
The font height, in pixels.
@item height
The font height on the screen, measured in tenths of a printer's
point. This is the point size of the font, times ten. For a given
vertical resolution, @var{height} and @var{pixels} are proportional;
therefore, it is common to specify just one of them and use @samp{*}
for the other.
@item horiz
The horizontal resolution, in pixels per inch, of the screen for which
the font is intended.
@item vert
The vertical resolution, in pixels per inch, of the screen for which
the font is intended. Normally the resolution of the fonts on your
system is the right value for your screen; therefore, you normally
specify @samp{*} for this and @var{horiz}.
@item spacing