aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2010-03-24 14:02:56 -0400
committerStefan Monnier2010-03-24 14:02:56 -0400
commite867cb5d30200dd696b012e1ad0964d25c2a7ecc (patch)
tree3340026420f168909eaa734232e4890e15bc1626
parentb2b8574b8d03673f5673e2154d17c2cb80f59a0b (diff)
parentefee6a6d9cec2af824b8355c93d8f47b72a685a8 (diff)
downloademacs-e867cb5d30200dd696b012e1ad0964d25c2a7ecc.tar.gz
emacs-e867cb5d30200dd696b012e1ad0964d25c2a7ecc.zip
Merge from `emacs-23'.
-rw-r--r--admin/notes/bugtracker8
-rw-r--r--admin/notes/copyright5
-rw-r--r--doc/emacs/ChangeLog32
-rw-r--r--doc/emacs/ack.texi6
-rw-r--r--doc/emacs/cmdargs.texi251
-rw-r--r--doc/emacs/dired.texi9
-rw-r--r--doc/emacs/emacs.texi9
-rw-r--r--doc/emacs/frames.texi291
-rw-r--r--doc/emacs/indent.texi75
-rw-r--r--doc/emacs/mule.texi4
-rw-r--r--doc/emacs/search.texi85
-rw-r--r--doc/emacs/xresources.texi10
-rw-r--r--doc/lispref/ChangeLog8
-rw-r--r--doc/lispref/frames.texi2
-rw-r--r--doc/lispref/processes.texi3
-rw-r--r--doc/misc/ChangeLog4
-rw-r--r--doc/misc/trampver.texi2
-rw-r--r--etc/ChangeLog5
-rw-r--r--etc/MORE.STUFF4
-rw-r--r--etc/NEWS.23128
-rw-r--r--etc/PROBLEMS15
-rw-r--r--lisp/ChangeLog98
-rw-r--r--lisp/calendar/cal-tex.el8
-rw-r--r--lisp/cedet/semantic/imenu.el537
-rw-r--r--lisp/cedet/srecode/table.el2
-rw-r--r--lisp/emacs-lisp/cl-loaddefs.el14
-rw-r--r--lisp/emacs-lisp/cl-macs.el5
-rw-r--r--lisp/emacs-lisp/trace.el2
-rw-r--r--lisp/eshell/em-basic.el2
-rw-r--r--lisp/eshell/em-dirs.el8
-rw-r--r--lisp/faces.el8
-rw-r--r--lisp/gnus/ChangeLog8
-rw-r--r--lisp/gnus/message.el8
-rw-r--r--lisp/gnus/smiley.el4
-rw-r--r--lisp/image-dired.el5
-rw-r--r--lisp/indent.el6
-rw-r--r--lisp/json.el12
-rw-r--r--lisp/language/indian.el2
-rw-r--r--lisp/mail/rmail.el25
-rw-r--r--lisp/mh-e/ChangeLog12
-rw-r--r--lisp/mh-e/mh-scan.el62
-rw-r--r--lisp/minibuffer.el6
-rw-r--r--lisp/net/tramp.el27
-rw-r--r--lisp/net/trampver.el2
-rw-r--r--lisp/obsolete/levents.el24
-rw-r--r--lisp/progmodes/cc-engine.el2
-rw-r--r--lisp/progmodes/make-mode.el5
-rw-r--r--lisp/textmodes/flyspell.el2
-rw-r--r--lisp/textmodes/reftex-vars.el80
-rw-r--r--lisp/woman.el12
-rw-r--r--nextstep/Cocoa/Emacs.base/Contents/Info.plist2
-rw-r--r--src/ChangeLog26
-rw-r--r--src/ChangeLog.74
-rw-r--r--src/coding.c52
-rw-r--r--src/config.in65
-rw-r--r--src/dispextern.h3
-rw-r--r--src/frame.c7
-rw-r--r--src/xfns.c4
-rw-r--r--test/cedet/tests/testjavacomp.java28
-rw-r--r--test/cedet/tests/testpolymorph.cpp24
60 files changed, 1512 insertions, 647 deletions
diff --git a/admin/notes/bugtracker b/admin/notes/bugtracker
index 3870113489e..19a383dff5b 100644
--- a/admin/notes/bugtracker
+++ b/admin/notes/bugtracker
@@ -140,7 +140,7 @@ Remember to fix FOO, as discussed on emacs-devel at http://... .
140** Not interested in tracker control messages (tags being set, etc)? 140** Not interested in tracker control messages (tags being set, etc)?
141Discard mails matching: 141Discard mails matching:
142 142
143^X-Emacs-PR-Message: (transcript|closed) 143^X-GNU-PR-Message: (transcript|closed)
144 144
145** How to avoid multiple copies of mails. 145** How to avoid multiple copies of mails.
146If you reply to reports in the normal way, this should work fine. 146If 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:
1662) Send a mail to the original submitter telling them that their bug 1662) Send a mail to the original submitter telling them that their bug
167has been closed. This mail has a header: 167has been closed. This mail has a header:
168 168
169X-Emacs-PR-Message: they-closed 123 169X-GNU-PR-Message: they-closed 123
170 170
1713) Send a mail to you and to the emacs-bug-tracker list confirming 1713) Send a mail to you and to the emacs-bug-tracker list confirming
172that the bug has been closed. This mail has a header: 172that the bug has been closed. This mail has a header:
173 173
174X-Emacs-PR-Message: closed 123 174X-GNU-PR-Message: closed 123
175 175
1764) Send a copy of your mail to the bug-gnu-emacs list in exactly the 1764) Send a copy of your mail to the bug-gnu-emacs list in exactly the
177same way as if you had sent mail to "123" (sans -done). This mail has 177same way as if you had sent mail to "123" (sans -done). This mail has
178headers: 178headers:
179 179
180X-Emacs-PR-Message: cc-closed 123 180X-GNU-PR-Message: cc-closed 123
181Mail-Followup-To: 123@debbugs.gnu.org, person-who-closed 181Mail-Followup-To: 123@debbugs.gnu.org, person-who-closed
182 182
183(This is Emacs-specific. Normally the bug list gets the same mail as in 3). 183(This is Emacs-specific. Normally the bug list gets the same mail as in 3).
diff --git a/admin/notes/copyright b/admin/notes/copyright
index f4ceb273c73..e0389212304 100644
--- a/admin/notes/copyright
+++ b/admin/notes/copyright
@@ -221,6 +221,11 @@ lib-src/etags.c
221lib-src/getopt1.c, getopt_int.h 221lib-src/getopt1.c, getopt_int.h
222 - these are from the GNU C library. Leave the copyrights alone. 222 - these are from the GNU C library. Leave the copyrights alone.
223 223
224lisp/cedet/semantic/imenu.el
225 - See http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg00410.html
226 in which Eric Ludlam established that the remaining contributions
227 from authors other than himself were negligible.
228
224lisp/play/tetris.el 229lisp/play/tetris.el
225 - no special rules about the copyright. We note here that we believe 230 - no special rules about the copyright. We note here that we believe
226 (2007/1) there is no problem with our use of the name "tetris" or 231 (2007/1) there is no problem with our use of the name "tetris" or
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 78dc33a6e59..fa454dd976a 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,35 @@
12010-03-24 Glenn Morris <rgm@gnu.org>
2
3 * ack.texi (Acknowledgments):
4 * emacs.texi (Acknowledgments): Fix ispell attribution. (Bug#5759)
5
62010-03-20 Jan Djärv <jan.h.d@swipnet.se>
7
8 * xresources.texi (Table of Resources): Clarify toolBar number
9 for Gtk+.
10
11 * frames.texi (Menu Bars): menuBarLines => menuBar (bug#5736).
12
132010-03-21 Chong Yidong <cyd@stupidchicken.com>
14
15 * dired.texi (Dired Updating): Document dired-auto-revert-buffer.
16
17 * search.texi (Other Repeating Search): Document multi-isearch-buffers
18 and multi-isearch-buffers-regexp.
19
20 * indent.texi (Indentation): Clarify description of
21 indent-for-tab-command. Document tab-always-indent.
22
232010-03-20 Chong Yidong <cyd@stupidchicken.com>
24
25 * cmdargs.texi (Font X): Move most content to Fonts.
26
27 * frames.texi (Fonts): New node. Document font-use-system-font.
28
29 * emacs.texi (Top):
30 * xresources.texi (Table of Resources):
31 * mule.texi (Defining Fontsets, Charsets): Update xrefs.
32
12010-03-10 Chong Yidong <cyd@stupidchicken.com> 332010-03-10 Chong Yidong <cyd@stupidchicken.com>
2 34
3 * Branch for 23.2. 35 * Branch for 23.2.
diff --git a/doc/emacs/ack.texi b/doc/emacs/ack.texi
index 09da1e68b2e..d2930485a90 100644
--- a/doc/emacs/ack.texi
+++ b/doc/emacs/ack.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2@c Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003,
3@c 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@c 6@c
6@node Acknowledgments, Screen, Concept Index, Top 7@node Acknowledgments, Screen, Concept Index, Top
@@ -600,8 +601,7 @@ R.@: Dodd. He also wrote @file{ls-lisp.el}, a Lisp emulation of the
600program. 601program.
601 602
602@item 603@item
603Geoff Kuenning and Ken Stevens wrote @file{ispell.el}, a spell-checker 604Ken Stevens wrote @file{ispell.el}, a spell-checker interface.
604interface.
605 605
606@item 606@item
607David K@ringaccent{a}gedal wrote @file{tempo.el}, providing support for 607David K@ringaccent{a}gedal wrote @file{tempo.el}, providing support for
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index aefe7b3bfc0..a139e0eb0f4 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -755,10 +755,9 @@ remote machine.
755@appendixsec Font Specification Options 755@appendixsec Font Specification Options
756@cindex font name (X Window System) 756@cindex font name (X Window System)
757 757
758 By default, Emacs displays text in X using a twelve point monospace 758You can use the command line option @samp{-fn @var{font}} (or
759font. You can specify a different font using the command line option 759@samp{--font}, which is an alias for @samp{-fn}) to specify a default
760@samp{-fn @var{font}} (or @samp{--font}, which is an alias for 760font:
761@samp{-fn}).
762 761
763@table @samp 762@table @samp
764@item -fn @var{font} 763@item -fn @var{font}
@@ -772,252 +771,14 @@ Use @var{font} as the default font.
772When passing a font specification to Emacs on the command line, you 771When passing a font specification to Emacs on the command line, you
773may need to ``quote'' it, by enclosing it in quotation marks, if it 772may need to ``quote'' it, by enclosing it in quotation marks, if it
774contains characters that the shell treats specially (e.g. spaces). 773contains characters that the shell treats specially (e.g. spaces).
775Here is an example: 774For example:
776 775
777@smallexample 776@smallexample
778emacs -fn "DejaVu Sans Mono-12" 777emacs -fn "DejaVu Sans Mono-12"
779@end smallexample 778@end smallexample
780 779
781@cindex X defaults file 780@xref{Fonts}, for other ways to specify the default font and font name
782@cindex X resources file 781formats.
783 You can also specify the font using your X resources file (usually a
784file named @file{.Xdefaults} or @file{.Xresources} in your home
785directory), by adding a line like this:
786
787@smallexample
788emacs.font: @var{font}
789@end smallexample
790
791@noindent
792You must restart X, or use the @command{xrdb} command, for the X
793resources file to take effect. @xref{Resources}. When specifying a
794font in your X resources file, you should not quote it.
795
796@cindex fontconfig
797 Emacs recognizes two types of fonts: @dfn{client-side} fonts, which
798are provided by the Xft and Fontconfig libraries, and
799@dfn{server-side} fonts, which are provided by the X server itself.
800Most client-side fonts support advanced font features such as
801antialiasing and subpixel hinting, while server-side fonts do not.
802
803 There are four different ways to express a ``font name''. The first
804format consists of @dfn{Fontconfig patterns}. Fontconfig patterns
805match only client-side fonts provided by Xft and Fontconfig, and have
806the following form:
807
808@smallexample
809@var{fontname}[-@var{fontsize}][:@var{name1}=@var{values1}][:@var{name2}=@var{values2}]...
810@end smallexample
811
812@noindent
813Within this format, any of the elements in braces may be omitted.
814Here, @var{fontname} is the ``family name'' of the font, such as
815@samp{Monospace} or @samp{DejaVu Serif}; @var{fontsize} is the ``point
816size'' of the font (one ``printer's point'' is about 1/72 of an inch);
817and the @samp{@var{name}=@var{values}} entries specify settings such
818as the slant and weight of the font. Each @var{values} may be a
819single value, or a list of values separated by commas. In addition,
820some property values are valid with only one kind of property name, in
821which case the @samp{@var{name}=} part may be omitted.
822
823Here is a list of common font properties:
824
825@table @samp
826@item slant
827One of @samp{italic}, @samp{oblique} or @samp{roman}.
828
829@item weight
830One of @samp{light}, @samp{medium}, @samp{demibold}, @samp{bold} or
831@samp{black}.
832
833@item style
834Some fonts define special styles which are a combination of slant and
835weight. For instance, the font @samp{Dejavu Sans} defines the style
836@samp{book}. This property, if specified, overrides the slant and
837weight properties.
838
839@item width
840One of @samp{condensed}, @samp{normal}, or @samp{expanded}.
841
842@item spacing
843One of @samp{monospace}, @samp{proportional}, @samp{dual-width}, or
844@samp{charcell}.
845@end table
846
847@noindent
848Here are some examples of Fontconfig patterns:
849
850@smallexample
851Monospace
852Monospace-12
853Monospace-12:bold
854DejaVu Sans Mono:bold:italic
855Monospace-12:weight=bold:slant=italic
856@end smallexample
857
858See the Fontconfig manual for a more detailed description of
859Fontconfig patterns. This manual is located in the file
860@file{fontconfig-user.html}, which is distributed with Fontconfig. It
861is also available online at
862@url{http://fontconfig.org/fontconfig-user.html}. In particular, the
863manual describes additional font properties that influence how the
864font is hinted, antialiased, or scaled.
865
866 The second way to specify a font is to use a @dfn{GTK font
867description}. Like Fontconfig patterns, GTK font descriptions match
868only client-side fonts provided by Xft and Fontconfig. They have the
869syntax
870
871@smallexample
872@var{fontname} [@var{properties}] [@var{fontsize}]
873@end smallexample
874
875@noindent
876where @var{fontname} is the family name, @var{properties} is a list of
877property values separated by spaces, and @var{fontsize} is the point
878size. The properties that you may specify are as follows:
879
880@table @samp
881@item style
882One of @samp{roman}, @samp{italic} or @samp{oblique}. If omitted, the
883@samp{roman} style is used.
884@item weight
885One of @samp{medium}, @samp{ultra-light}, @samp{light},
886@samp{semi-bold}, or @samp{bold}. If omitted, @samp{medium} weight is
887used.
888@end table
889
890@noindent
891Here are some examples of GTK font descriptions:
892
893@smallexample
894Monospace 12
895Monospace Bold Italic 12
896@end smallexample
897
898@cindex XLFD
899@cindex X Logical Font Description
900 The third way to specify a font is to use an @dfn{XLFD} (@dfn{X
901Logical Font Description}), which is the traditional method for
902specifying fonts under X. Each XLFD consists of fourteen words or
903numbers, separated by dashes, like this:
904
905@smallexample
906-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
907@end smallexample
908
909@noindent
910A wildcard character (@samp{*}) in an XLFD matches any sequence of
911characters (including none), and @samp{?} matches any single
912character. However, matching is implementation-dependent, and can be
913inaccurate when wildcards match dashes in a long name. For reliable
914results, supply all 14 dashes and use wildcards only within a field.
915Case is insignificant in an XLFD. The syntax for an XLFD is as
916follows:
917
918@smallexample
919-@var{maker}-@var{family}-@var{weight}-@var{slant}-@var{widthtype}-@var{style}@dots{}
920@dots{}-@var{pixels}-@var{height}-@var{horiz}-@var{vert}-@var{spacing}-@var{width}-@var{registry}-@var{encoding}
921@end smallexample
922
923@noindent
924The entries have the following meanings:
925
926@table @var
927@item maker
928The name of the font manufacturer.
929@item family
930The name of the font family (e.g. @samp{courier}).
931@item weight
932The font weight---normally either @samp{bold}, @samp{medium} or
933@samp{light}. Some font names support other values.
934@item slant
935The font slant---normally @samp{r} (roman), @samp{i} (italic),
936@samp{o} (oblique), @samp{ri} (reverse italic), or @samp{ot} (other).
937Some font names support other values.
938@item widthtype
939The font width---normally @samp{condensed}, @samp{extended},
940@samp{semicondensed} or @samp{normal} (some font names support other
941values).
942@item style
943An optional additional style name. Usually it is empty---most long
944font names have two hyphens in a row at this point.
945@item pixels
946The font height, in pixels.
947@item height
948The font height on the screen, measured in tenths of a printer's
949point. This is the point size of the font, times ten. For a given
950vertical resolution, @var{height} and @var{pixels} are proportional;
951therefore, it is common to specify just one of them and use @samp{*}
952for the other.
953@item horiz
954The horizontal resolution, in pixels per inch, of the screen for which
955the font is intended.
956@item vert
957The vertical resolution, in pixels per inch, of the screen for which
958the font is intended. Normally the resolution of the fonts on your
959system is the right value for your screen; therefore, you normally
960specify @samp{*} for this and @var{horiz}.
961@item spacing
962This is @samp{m} (monospace), @samp{p} (proportional) or @samp{c}
963(character cell).
964@item width
965The average character width, in pixels, multiplied by ten.
966@item registry
967@itemx encoding
968The X font character set that the font depicts. (X font character
969sets are not the same as Emacs character sets, but they are similar.)
970You can use the @command{xfontsel} program to check which choices you
971have. Normally you should use @samp{iso8859} for @var{registry} and
972@samp{1} for @var{encoding}.
973@end table
974
975 Some fonts have shorter nicknames, which you can use instead of a
976normal font specification. For instance,
977
978@smallexample
979-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
980@end smallexample
981
982@noindent
983is equivalent to @samp{6x13}. This is the fourth and final method of
984specifying a font.
985
986@cindex listing system fonts
987 You will probably want to use a fixed-width default font---that is,
988a font in which all characters have the same width. Here's how to use
989the @command{fc-list} command to list all fixed-width Xft and
990Fontconfig fonts available on your system:
991
992@example
993fc-list :spacing=mono
994fc-list :spacing=charcell
995@end example
996
997 For server-side X fonts, any font with @samp{m} or @samp{c} in the
998@var{spacing} field of the XLFD is a fixed-width font. Here's how to
999use the @command{xlsfonts} program to list all the fixed-width fonts
1000available on your system:
1001
1002@example
1003xlsfonts -fn '*x*' | egrep "^[0-9]+x[0-9]+"
1004xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-m*'
1005xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-c*'
1006@end example
1007
1008@noindent
1009To see what a particular font looks like, use the @command{xfd} command.
1010For example:
1011
1012@example
1013xfd -fn 6x13
1014@end example
1015
1016@noindent
1017displays the entire font @samp{6x13}.
1018
1019 While running Emacs, you can set the font of a specific kind of text
1020(@pxref{Faces}), or of a particular frame (@pxref{Frame Parameters}).
1021 782
1022@node Colors 783@node Colors
1023@appendixsec Window Color Options 784@appendixsec Window Color Options
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index aa2d92b3b04..f1a8b0aa9c1 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -1099,6 +1099,15 @@ then updating their lines in the buffer to indicate that status.
1099 If you use @kbd{l} on a subdirectory header line, it updates the 1099 If you use @kbd{l} on a subdirectory header line, it updates the
1100contents of the corresponding subdirectory. 1100contents of the corresponding subdirectory.
1101 1101
1102@vindex dired-auto-revert-buffer
1103 If you use @kbd{C-x d} or some other Dired command to visit a
1104directory that is already being shown in a Dired buffer, Dired
1105switches to that buffer but does not update it. If the buffer is not
1106up-to-date, Dired displays a warning telling you to type @key{g} to
1107update it. You can also tell Emacs to revert each Dired buffer
1108automatically when you revisit it, by setting the variable
1109@code{dired-auto-revert-buffer} to a non-@code{nil} value.
1110
1102@kindex k @r{(Dired)} 1111@kindex k @r{(Dired)}
1103@findex dired-do-kill-lines 1112@findex dired-do-kill-lines
1104 To delete the specified @emph{file lines} from the buffer---not 1113 To delete the specified @emph{file lines} from the buffer---not
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 846359a3168..7e8c2052d94 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -12,8 +12,8 @@ This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},@*
12updated for Emacs version @value{EMACSVER}. 12updated for Emacs version @value{EMACSVER}.
13 13
14Copyright @copyright{} 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 14Copyright @copyright{} 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997,
151998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 151998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
16Free Software Foundation, Inc. 162010 Free Software Foundation, Inc.
17 17
18@quotation 18@quotation
19Permission is granted to copy, distribute and/or modify this document 19Permission is granted to copy, distribute and/or modify this document
@@ -502,6 +502,7 @@ Frames and Graphical Displays
502* Mode Line Mouse:: Mouse clicks on the mode line. 502* Mode Line Mouse:: Mouse clicks on the mode line.
503* Creating Frames:: Creating additional Emacs frames with various contents. 503* Creating Frames:: Creating additional Emacs frames with various contents.
504* Frame Commands:: Iconifying, deleting, and switching frames. 504* Frame Commands:: Iconifying, deleting, and switching frames.
505* Fonts:: Changing the frame font.
505* Speedbar:: How to make and use a speedbar frame. 506* Speedbar:: How to make and use a speedbar frame.
506* Multiple Displays:: How one Emacs job can talk to several displays. 507* Multiple Displays:: How one Emacs job can talk to several displays.
507* Special Buffer Frames:: You can make certain buffers have their own frames. 508* Special Buffer Frames:: You can make certain buffers have their own frames.
@@ -1371,8 +1372,8 @@ Kahle, Tokuya Kameshima, Lute Kamstra, David Kastrup, David Kaufman,
1371Henry Kautz, Taichi Kawabata, Howard Kaye, Michael Kifer, Richard King, 1372Henry Kautz, Taichi Kawabata, Howard Kaye, Michael Kifer, Richard King,
1372Peter Kleiweg, Shuhei Kobayashi, Pavel Kobiakov, Larry K.@: Kolodney, 1373Peter Kleiweg, Shuhei Kobayashi, Pavel Kobiakov, Larry K.@: Kolodney,
1373David M.@: Koppelman, Koseki Yoshinori, Robert Krawitz, Sebastian 1374David M.@: Koppelman, Koseki Yoshinori, Robert Krawitz, Sebastian
1374Kremer, Ryszard Kubiak, Geoff Kuenning, David K@aa{}gedal, Daniel 1375Kremer, Ryszard Kubiak, David K@aa{}gedal, Daniel LaLiberte,
1375LaLiberte, Karl Landstrom, Mario Lang, Aaron Larson, James R.@: Larus, 1376Karl Landstrom, Mario Lang, Aaron Larson, James R.@: Larus,
1376Vinicius Jose Latorre, Werner Lemberg, Frederic Lepied, Peter 1377Vinicius Jose Latorre, Werner Lemberg, Frederic Lepied, Peter
1377Liljenberg, Lars Lindberg, Chris Lindblad, Anders Lindgren, Thomas Link, 1378Liljenberg, Lars Lindberg, Chris Lindblad, Anders Lindgren, Thomas Link,
1378Juri Linkov, Francis Litterio, Emilio C. Lopes, K@'{a}roly L@H{o}rentey, 1379Juri Linkov, Francis Litterio, Emilio C. Lopes, K@'{a}roly L@H{o}rentey,
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index b890b773765..b4a8500df65 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -39,6 +39,7 @@ so that you can use many of the features described in this chapter.
39* Mode Line Mouse:: Mouse clicks on the mode line. 39* Mode Line Mouse:: Mouse clicks on the mode line.
40* Creating Frames:: Creating additional Emacs frames with various contents. 40* Creating Frames:: Creating additional Emacs frames with various contents.
41* Frame Commands:: Iconifying, deleting, and switching frames. 41* Frame Commands:: Iconifying, deleting, and switching frames.
42* Fonts:: Changing the frame font.
42* Speedbar:: How to make and use a speedbar frame. 43* Speedbar:: How to make and use a speedbar frame.
43* Multiple Displays:: How one Emacs job can talk to several displays. 44* Multiple Displays:: How one Emacs job can talk to several displays.
44* Special Buffer Frames:: You can make certain buffers have their own frames. 45* Special Buffer Frames:: You can make certain buffers have their own frames.
@@ -571,25 +572,19 @@ only the initial frame. @xref{Initial Parameters,,, elisp, The Emacs
571Lisp Reference Manual}, for more information. 572Lisp Reference Manual}, for more information.
572 573
573@cindex font (default) 574@cindex font (default)
574 For instance, one way to specify the principal font for all your 575 Here is an example of using @code{default-frame-alist} to specify
575Emacs frames is to modify @code{default-frame-alist} to specify the 576the default foreground color and font:
576@code{font} parameter (@pxref{Font X}):
577 577
578@example 578@example
579(add-to-list 'default-frame-alist '(font . "10x20")) 579(add-to-list 'default-frame-alist '(font . "10x20"))
580@end example
581
582@noindent
583Here's a similar example for specifying a foreground color:
584
585@example
586(add-to-list 'default-frame-alist '(foreground-color . "blue")) 580(add-to-list 'default-frame-alist '(foreground-color . "blue"))
587@end example 581@end example
588 582
589@noindent 583@noindent
590By putting such customizations in your init file, you can control the 584By putting such customizations in your init file, you can control the
591appearance of all the frames Emacs creates, including the initial one. 585appearance of all the frames Emacs creates, including the initial one
592@xref{Init File}. 586(@pxref{Init File}). @xref{Fonts}, for other ways to set the default
587font.
593 588
594@node Frame Commands 589@node Frame Commands
595@section Frame Commands 590@section Frame Commands
@@ -645,6 +640,278 @@ select it, the variable should be @code{nil}. The default is
645a frame that raises, so this variable has no effect in the native 640a frame that raises, so this variable has no effect in the native
646MS-Windows build of Emacs. 641MS-Windows build of Emacs.
647 642
643@node Fonts
644@section Fonts
645@cindex fonts
646
647 By default, Emacs displays text in X using a 12-point monospace
648font. There are several different ways to specify a different font:
649
650@itemize
651@item
652Click on @samp{Set Default Font} in the @samp{Options} menu. To save
653this for future sessions, click on @samp{Save Options} in the
654@samp{Options} menu.
655
656@item
657Add a line to your init file (@pxref{Init File}), modifying the
658variable @code{default-frame-alist} to specify the @code{font}
659parameter (@pxref{Creating Frames}), like this:
660
661@smallexample
662(add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-12"))
663@end smallexample
664
665@cindex X defaults file
666@cindex X resources file
667@item
668Add an @samp{emacs.font} X resource setting to your X resource file,
669like this:
670
671@smallexample
672emacs.font: DejaVu Sans Mono-12
673@end smallexample
674
675@noindent
676You must restart X, or use the @command{xrdb} command, for the X
677resources file to take effect. @xref{Resources}. When specifying a
678font in your X resources file, you should not quote it.
679
680@item
681If you are running Emacs on the GNOME desktop, you can tell Emacs to
682use the default system font by setting the variable
683@code{font-use-system-font} to @code{t} (the default is @code{nil}).
684For this to work, Emacs must be compiled with Gconf support; this is
685done automatically if the libraries are present at compile time.
686
687@item
688Use the command line option @samp{-fn} (or @samp{--font}). @xref{Font
689X}.
690@end itemize
691
692@cindex fontconfig
693 On X, there are four different ways to express a ``font name''. The
694first is to use a @dfn{Fontconfig pattern}. Fontconfig patterns have
695the following form:
696
697@smallexample
698@var{fontname}[-@var{fontsize}][:@var{name1}=@var{values1}][:@var{name2}=@var{values2}]...
699@end smallexample
700
701@noindent
702Within this format, any of the elements in braces may be omitted.
703Here, @var{fontname} is the @dfn{family name} of the font, such as
704@samp{Monospace} or @samp{DejaVu Serif}; @var{fontsize} is the
705@dfn{point size} of the font (one @dfn{printer's point} is about 1/72
706of an inch); and the @samp{@var{name}=@var{values}} entries specify
707settings such as the slant and weight of the font. Each @var{values}
708may be a single value, or a list of values separated by commas. In
709addition, some property values are valid with only one kind of
710property name, in which case the @samp{@var{name}=} part may be
711omitted.
712
713Here is a list of common font properties:
714
715@table @samp
716@item slant
717One of @samp{italic}, @samp{oblique} or @samp{roman}.
718
719@item weight
720One of @samp{light}, @samp{medium}, @samp{demibold}, @samp{bold} or
721@samp{black}.
722
723@item style
724Some fonts define special styles which are a combination of slant and
725weight. For instance, @samp{Dejavu Sans} defines the @samp{book}
726style, which overrides the slant and weight properties.
727
728@item width
729One of @samp{condensed}, @samp{normal}, or @samp{expanded}.
730
731@item spacing
732One of @samp{monospace}, @samp{proportional}, @samp{dual-width}, or
733@samp{charcell}.
734@end table
735
736@noindent
737Here are some examples of Fontconfig patterns:
738
739@smallexample
740Monospace
741Monospace-12
742Monospace-12:bold
743DejaVu Sans Mono:bold:italic
744Monospace-12:weight=bold:slant=italic
745@end smallexample
746
747See the Fontconfig manual for a more detailed description of
748Fontconfig patterns. This manual is located in the file
749@file{fontconfig-user.html}, distributed with Fontconfig. It is also
750available online at @url{http://fontconfig.org/fontconfig-user.html}.
751In particular, that manual describes additional font properties that
752influence how the font is hinted, antialiased, or scaled.
753
754 The second way to specify a font is to use a @dfn{GTK font
755description}. These have the syntax
756
757@smallexample
758@var{fontname} [@var{properties}] [@var{fontsize}]
759@end smallexample
760
761@noindent
762where @var{fontname} is the family name, @var{properties} is a list of
763property values separated by spaces, and @var{fontsize} is the point
764size. The properties that you may specify are as follows:
765
766@table @samp
767@item style
768One of @samp{roman}, @samp{italic} or @samp{oblique}. If omitted, the
769@samp{roman} style is used.
770@item weight
771One of @samp{medium}, @samp{ultra-light}, @samp{light},
772@samp{semi-bold}, or @samp{bold}. If omitted, @samp{medium} weight is
773used.
774@end table
775
776@noindent
777Here are some examples of GTK font descriptions:
778
779@smallexample
780Monospace 12
781Monospace Bold Italic 12
782@end smallexample
783
784@cindex XLFD
785@cindex X Logical Font Description
786 The third way to specify a font is to use an @dfn{XLFD} (@dfn{X
787Logical Font Description}). This is the traditional method for
788specifying fonts under X. Each XLFD consists of fourteen words or
789numbers, separated by dashes, like this:
790
791@smallexample
792-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
793@end smallexample
794
795@noindent
796A wildcard character (@samp{*}) in an XLFD matches any sequence of
797characters (including none), and @samp{?} matches any single
798character. However, matching is implementation-dependent, and can be
799inaccurate when wildcards match dashes in a long name. For reliable
800results, supply all 14 dashes and use wildcards only within a field.
801Case is insignificant in an XLFD. The syntax for an XLFD is as
802follows:
803
804@smallexample
805-@var{maker}-@var{family}-@var{weight}-@var{slant}-@var{widthtype}-@var{style}@dots{}
806@dots{}-@var{pixels}-@var{height}-@var{horiz}-@var{vert}-@var{spacing}-@var{width}-@var{registry}-@var{encoding}
807@end smallexample
808
809@noindent
810The entries have the following meanings:
811
812@table @var
813@item maker
814The name of the font manufacturer.
815@item family
816The name of the font family (e.g. @samp{courier}).
817@item weight
818The font weight---normally either @samp{bold}, @samp{medium} or
819@samp{light}. Some font names support other values.
820@item slant
821The font slant---normally @samp{r} (roman), @samp{i} (italic),
822@samp{o} (oblique), @samp{ri} (reverse italic), or @samp{ot} (other).
823Some font names support other values.
824@item widthtype
825The font width---normally @samp{condensed}, @samp{extended},
826@samp{semicondensed} or @samp{normal} (some font names support other
827values).
828@item style
829An optional additional style name. Usually it is empty---most long
830font names have two hyphens in a row at this point.
831@item pixels
832The font height, in pixels.
833@item height
834The font height on the screen, measured in tenths of a printer's
835point. This is the point size of the font, times ten. For a given
836vertical resolution, @var{height} and @var{pixels} are proportional;
837therefore, it is common to specify just one of them and use @samp{*}
838for the other.
839@item horiz
840The horizontal resolution, in pixels per inch, of the screen for which
841the font is intended.
842@item vert
843The vertical resolution, in pixels per inch, of the screen for which
844the font is intended. Normally the resolution of the fonts on your
845system is the right value for your screen; therefore, you normally
846specify @samp{*} for this and @var{horiz}.
847@item spacing
848This is @samp{m} (monospace), @samp{p} (proportional) or @samp{c}
849(character cell).
850@item width
851The average character width, in pixels, multiplied by ten.
852@item registry
853@itemx encoding
854The X font character set that the font depicts. (X font character
855sets are not the same as Emacs character sets, but they are similar.)
856You can use the @command{xfontsel} program to check which choices you
857have. Normally you should use @samp{iso8859} for @var{registry} and
858@samp{1} for @var{encoding}.
859@end table
860
861 The fourth and final method of specifying a font is to use a ``font
862nickname''. Certain fonts have shorter nicknames, which you can use
863instead of a normal font specification. For instance, @samp{6x13} is
864equivalent to
865
866@smallexample
867-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
868@end smallexample
869
870@cindex client-side fonts
871@cindex server-side fonts
872 On X, Emacs recognizes two types of fonts: @dfn{client-side} fonts,
873which are provided by the Xft and Fontconfig libraries, and
874@dfn{server-side} fonts, which are provided by the X server itself.
875Most client-side fonts support advanced font features such as
876antialiasing and subpixel hinting, while server-side fonts do not.
877Fontconfig and GTK patterns match only client-side fonts.
878
879@cindex listing system fonts
880 You will probably want to use a fixed-width default font---that is,
881a font in which all characters have the same width. For Xft and
882Fontconfig fonts, you can use the @command{fc-list} command to list
883the available fixed-width fonts, like this:
884
885@example
886fc-list :spacing=mono fc-list :spacing=charcell
887@end example
888
889@noindent
890For server-side X fonts, you can use the @command{xlsfonts} program to
891list the available fixed-width fonts, like this:
892
893@example
894xlsfonts -fn '*x*' | egrep "^[0-9]+x[0-9]+"
895xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-m*'
896xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-c*'
897@end example
898
899@noindent
900Any font with @samp{m} or @samp{c} in the @var{spacing} field of the
901XLFD is a fixed-width font. To see what a particular font looks like,
902use the @command{xfd} command. For example:
903
904@example
905xfd -fn 6x13
906@end example
907
908@noindent
909displays the entire font @samp{6x13}.
910
911 While running Emacs, you can also set the font of a specific kind of
912text (@pxref{Faces}), or a particular frame (@pxref{Frame
913Parameters}).
914
648@node Speedbar 915@node Speedbar
649@section Speedbar Frames 916@section Speedbar Frames
650@cindex speedbar 917@cindex speedbar
@@ -957,7 +1224,7 @@ menu-bar-mode} or by customizing the variable @code{menu-bar-mode}.
957With no argument, this command toggles Menu Bar mode, a 1224With no argument, this command toggles Menu Bar mode, a
958minor mode. With an argument, the command turns Menu Bar mode on if the 1225minor mode. With an argument, the command turns Menu Bar mode on if the
959argument is positive, off if the argument is not positive. You can use 1226argument is positive, off if the argument is not positive. You can use
960the X resource @samp{menuBarLines} to control the initial setting of 1227the X resource @samp{menuBar} to control the initial setting of
961Menu Bar mode. @xref{Resources}. 1228Menu Bar mode. @xref{Resources}.
962 1229
963@kindex C-Mouse-3 @r{(when menu bar is disabled)} 1230@kindex C-Mouse-3 @r{(when menu bar is disabled)}
diff --git a/doc/emacs/indent.texi b/doc/emacs/indent.texi
index ad6d60fc28e..7ba3909e49f 100644
--- a/doc/emacs/indent.texi
+++ b/doc/emacs/indent.texi
@@ -37,34 +37,38 @@ Indent from point to the next prespecified tab stop column
37Indent from point to under an indentation point in the previous line. 37Indent from point to under an indentation point in the previous line.
38@end table 38@end table
39 39
40 In most major modes, the @key{TAB} key runs the command 40@noindent
41@code{indent-for-tab-command}, which either performs indentation or 41The @key{TAB} key runs @code{indent-for-tab-command} in most major
42inserts whitespace at point, depending on the situation. 42modes (in C and related modes, @key{TAB} runs a separate command,
43 43@code{c-indent-line-or-region}, which behaves similarly). The major
44 In programming modes such as Lisp mode and C mode, @key{TAB} indents 44mode determines just what this entails.
45the current line if the region is inactive. If the region is active, 45
46it indents every line in the region (@pxref{Mark}). Indentation means 46 In text modes, @key{TAB} inserts some combination of space and tab
47adding or removing some combination of space and tab characters 47characters to advance point to the next tab stop (@pxref{Tab Stops}).
48(@dfn{whitespace characters}) at the start of the line, in a way that 48If the region is active and spans multiple lines, it advances the
49makes sense given the text in the preceding lines. Exactly how 49first character of each of those lines to the next tab stop
50indentation is performed depends on the major mode. @xref{Program 50(@pxref{Using Region}). For the purposes of this command, the
51Indent}. 51position of the first non-whitespace character on the preceding line
52 52is treated as an additional tab stop. Thus, you can use @key{TAB} to
53 In text modes, @key{TAB} inserts some whitespace characters to 53``align'' point with the preceding line.
54advance point to the next tab stop (@pxref{Tab Stops}). For the 54
55purposes of this command, the position of the first non-whitespace 55 In programming modes, @key{TAB} adds or removes some combination of
56character on the preceding line is treated as an additional tab stop. 56space and tab characters at the start of the line, in a way that makes
57You can therefore use @key{TAB} to ``align'' point with the preceding 57sense given the text in the preceding lines. If the region is active
58line. If the region is active, @key{TAB} performs this action on 58and spans multiple lines, all those lines are indented this way. If
59every line in the region. 59point was initially within the current line's indentation, it is
60positioned after that indentation; otherwise, it remains at same point
61in the newly-indented text. @xref{Program Indent}.
60 62
61@vindex tab-width 63@vindex tab-width
62 Indentation is often performed with the help of @dfn{tab characters} 64 Normally, indentation commands insert (or remove) an optimal mix of
63(@acronym{ASCII} code 9), which are displayed as a stretch of empty space 65@dfn{tab characters} and spaces to align to the desired column. Tab
64extending to the next @dfn{display tab stop}. By default, there is 66characters (@acronym{ASCII} code 9) are displayed as a stretch of
65one display tab stop every eight columns; the number of columns is 67empty space extending to the next @dfn{display tab stop}. By default,
66determined by the variable @code{tab-width}. You can insert a single 68there is one display tab stop every eight columns; the number of
67tab character by typing @kbd{C-q @key{TAB}}. @xref{Text Display}. 69columns is determined by the variable @code{tab-width}. You can
70insert a single tab character by typing @kbd{C-q @key{TAB}}.
71@xref{Text Display}.
68 72
69@findex edit-tab-stops 73@findex edit-tab-stops
70@findex tab-to-tab-stop 74@findex tab-to-tab-stop
@@ -74,11 +78,20 @@ whitespace characters around point, inserting just enough whitespace
74to advance point up to the next tab stop. By default, this involves 78to advance point up to the next tab stop. By default, this involves
75deleting the existing whitespace and inserting a single tab character. 79deleting the existing whitespace and inserting a single tab character.
76 80
77 Normally, most of these indentation commands insert an optimal mix 81 @xref{Just Spaces}, for how to disable use of tabs. However,
78of tabs and spaces to align to the desired column. @xref{Just 82@kbd{C-q @key{TAB}} always inserts a tab, even when tabs are disabled
79Spaces}, for how to disable use of tabs. However, @kbd{C-q @key{TAB}} 83for the indentation commands.
80always inserts a tab, even when tabs are disabled for the indentation 84
81commands. 85@vindex tab-always-indent
86 The variable @code{tab-always-indent} tweaks the behavior of the
87@key{TAB} (@code{indent-for-tab-command}) command. The default value,
88@code{t}, gives the behavior described above. If you change the value
89to the symbol @code{complete}, then @key{TAB} first tries to indent
90the current line, and if the line was already indented, it tries to
91complete the text at point (@pxref{Symbol Completion}). If the value
92is @code{nil}, then @key{TAB} indents the current line only if point
93is at the left margin or in the line's indentation; otherwise, it
94inserts a real tab character.
82 95
83@menu 96@menu
84* Indentation Commands:: Various commands and techniques for indentation. 97* Indentation Commands:: Various commands and techniques for indentation.
diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi
index 5eb1b66324f..00aa9047aec 100644
--- a/doc/emacs/mule.texi
+++ b/doc/emacs/mule.texi
@@ -1442,7 +1442,7 @@ field.
1442fontset is called @code{create-fontset-from-fontset-spec}. You can also 1442fontset is called @code{create-fontset-from-fontset-spec}. You can also
1443call this function explicitly to create a fontset. 1443call this function explicitly to create a fontset.
1444 1444
1445 @xref{Font X}, for more information about font naming in X. 1445 @xref{Fonts}, for more information about font naming.
1446 1446
1447@node Modifying Fontsets 1447@node Modifying Fontsets
1448@section Modifying Fontsets 1448@section Modifying Fontsets
@@ -1619,7 +1619,7 @@ belong to one or more charsets.
1619that you don't have to worry about them. However, it is sometimes 1619that you don't have to worry about them. However, it is sometimes
1620helpful to know some of the underlying details about charsets. 1620helpful to know some of the underlying details about charsets.
1621 1621
1622 One example is font selection (@pxref{Font X}). Each language 1622 One example is font selection (@pxref{Fonts}). Each language
1623environment (@pxref{Language Environments}) defines a ``priority 1623environment (@pxref{Language Environments}) defines a ``priority
1624list'' for the various charsets. When searching for a font, Emacs 1624list'' for the various charsets. When searching for a font, Emacs
1625initially attempts to find one that can display the highest-priority 1625initially attempts to find one that can display the highest-priority
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 496b6efe9fb..8c49a3fa699 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -1294,13 +1294,25 @@ point to the end of the buffer, or on the region if it is active.
1294@findex keep-lines 1294@findex keep-lines
1295 1295
1296@table @kbd 1296@table @kbd
1297@item M-x occur @key{RET} @var{regexp} @key{RET} 1297@item M-x multi-isearch-buffers
1298Display a list showing each line in the buffer that contains a match 1298Prompt for one or more buffer names, ending with @key{RET}; then,
1299for @var{regexp}. To limit the search to part of the buffer, narrow 1299begin a multi-buffer incremental search in those buffers. (If the
1300to that part (@pxref{Narrowing}). A numeric argument @var{n} 1300search fails in one buffer, the next @kbd{C-s} tries searching the
1301specifies that @var{n} lines of context are to be displayed before and 1301next specified buffer, and so forth.) With a prefix argument, prompt
1302after each matching line. Currently, @code{occur} can not correctly 1302for a regexp and begin a multi-buffer incremental search in buffers
1303handle multiline matches. 1303matching that regexp.
1304
1305@item M-x multi-isearch-buffers-regexp
1306This command is just like @code{multi-isearch-buffers}, except it
1307performs an incremental regexp search.
1308
1309@item M-x occur
1310Prompt for a regexp, and display a list showing each line in the
1311buffer that contains a match for it. To limit the search to part of
1312the buffer, narrow to that part (@pxref{Narrowing}). A numeric
1313argument @var{n} specifies that @var{n} lines of context are to be
1314displayed before and after each matching line. Currently,
1315@code{occur} can not correctly handle multiline matches.
1304 1316
1305@kindex RET @r{(Occur mode)} 1317@kindex RET @r{(Occur mode)}
1306@kindex o @r{(Occur mode)} 1318@kindex o @r{(Occur mode)}
@@ -1325,41 +1337,42 @@ search is active; this uses the current search string.
1325@item M-x list-matching-lines 1337@item M-x list-matching-lines
1326Synonym for @kbd{M-x occur}. 1338Synonym for @kbd{M-x occur}.
1327 1339
1328@item M-x multi-occur @key{RET} @var{buffers} @key{RET} @var{regexp} @key{RET} 1340@item M-x multi-occur
1329This function is just like @code{occur}, except it is able to search 1341This command is just like @code{occur}, except it is able to search
1330through multiple buffers. It asks you to specify the buffer names one by one. 1342through multiple buffers. It asks you to specify the buffer names one
1331 1343by one.
1332@item M-x multi-occur-in-matching-buffers @key{RET} @var{bufregexp} @key{RET} @var{regexp} @key{RET} 1344
1333This function is similar to @code{multi-occur}, except the buffers to 1345@item M-x multi-occur-in-matching-buffers
1334search are specified by a regular expression that matches visited 1346This command is similar to @code{multi-occur}, except the buffers to
1335file names. With a prefix argument, it uses the regular expression to match 1347search are specified by a regular expression that matches visited file
1336buffer names instead. 1348names. With a prefix argument, it uses the regular expression to
1337 1349match buffer names instead.
1338@item M-x how-many @key{RET} @var{regexp} @key{RET} 1350
1339Print the number of matches for @var{regexp} that exist in the buffer 1351@item M-x how-many
1340after point. If the region is active, this operates on the region 1352Prompt for a regexp, and print the number of matches for it in the
1341instead. 1353buffer after point. If the region is active, this operates on the
1342 1354region instead.
1343@item M-x flush-lines @key{RET} @var{regexp} @key{RET} 1355
1344This command deletes each line that contains a match for @var{regexp}, 1356@item M-x flush-lines
1345operating on the text after point; it deletes the current line if it 1357Prompt for a regexp, and delete each line that contains a match for
1346contains a match starting after point. If the region is active, it 1358it, operating on the text after point. This command deletes the
1347operates on the region instead; if a line partially contained in the 1359current line if it contains a match starting after point. If the
1348region contains a match entirely contained in the region, it is 1360region is active, it operates on the region instead; if a line
1349deleted. 1361partially contained in the region contains a match entirely contained
1362in the region, it is deleted.
1350 1363
1351If a match is split across lines, @code{flush-lines} deletes all those 1364If a match is split across lines, @code{flush-lines} deletes all those
1352lines. It deletes the lines before starting to look for the next 1365lines. It deletes the lines before starting to look for the next
1353match; hence, it ignores a match starting on the same line at which 1366match; hence, it ignores a match starting on the same line at which
1354another match ended. 1367another match ended.
1355 1368
1356@item M-x keep-lines @key{RET} @var{regexp} @key{RET} 1369@item M-x keep-lines
1357This command deletes each line that @emph{does not} contain a match 1370Prompt for a regexp, and delete each line that @emph{does not} contain
1358for @var{regexp}, operating on the text after point; if point is not 1371a match for it, operating on the text after point. If point is not at
1359at the beginning of a line, it always keeps the current line. If the 1372the beginning of a line, this command always keeps the current line.
1360region is active, the command operates on the region instead; it never 1373If the region is active, the command operates on the region instead;
1361deletes lines that are only partially contained in the region (a 1374it never deletes lines that are only partially contained in the region
1362newline that ends a line counts as part of that line). 1375(a newline that ends a line counts as part of that line).
1363 1376
1364If a match is split across lines, this command keeps all those lines. 1377If a match is split across lines, this command keeps all those lines.
1365@end table 1378@end table
diff --git a/doc/emacs/xresources.texi b/doc/emacs/xresources.texi
index a6aa567741e..75b6e3bbe4c 100644
--- a/doc/emacs/xresources.texi
+++ b/doc/emacs/xresources.texi
@@ -193,7 +193,7 @@ Specifies whether to make the cursor blink. The default is @samp{on}. Use
193@end ifnottex 193@end ifnottex
194 194
195@item @code{font} (class @code{Font}) 195@item @code{font} (class @code{Font})
196Font name for the @code{default} font. @xref{Font X}. You can also 196Font name for the @code{default} font. @xref{Fonts}. You can also
197specify a fontset name (@pxref{Fontsets}). 197specify a fontset name (@pxref{Fontsets}).
198 198
199@item @code{fontBackend} (class @code{FontBackend}) 199@item @code{fontBackend} (class @code{FontBackend})
@@ -307,12 +307,14 @@ Name to display in the title bar of the initial Emacs frame.
307@item @code{toolBar} (class @code{ToolBar}) 307@item @code{toolBar} (class @code{ToolBar})
308@cindex tool bar 308@cindex tool bar
309Number of lines to reserve for the tool bar. A zero value suppresses 309Number of lines to reserve for the tool bar. A zero value suppresses
310the tool bar. If the value is non-zero and 310the tool bar. For the Emacs tool bar (i.e. not Gtk+), if the value is
311@code{auto-resize-tool-bars} is non-@code{nil}, the tool bar's size 311non-zero and @code{auto-resize-tool-bars} is non-@code{nil}, the tool bar's
312will be changed automatically so that all tool bar items are visible. 312size will be changed automatically so that all tool bar items are visible.
313 If the value of @code{auto-resize-tool-bars} is @code{grow-only}, 313 If the value of @code{auto-resize-tool-bars} is @code{grow-only},
314the tool bar expands automatically, but does not contract automatically. 314the tool bar expands automatically, but does not contract automatically.
315To contract the tool bar, you must redraw the frame by entering @kbd{C-l}. 315To contract the tool bar, you must redraw the frame by entering @kbd{C-l}.
316For the Gtk+ tool bar, any non-zero value means on and
317@code{auto-resize-tool-bars} has no effect.
316 318
317@item @code{useXIM} (class @code{UseXIM}) 319@item @code{useXIM} (class @code{UseXIM})
318@cindex XIM 320@cindex XIM
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 1ffd3f182e9..61e1b2fda5c 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,11 @@
12010-03-24 Arni Magnusson <arnima@hafro.is> (tiny change)
2
3 * frames.texi (Cursor Parameters): Fix typo. (Bug#5760)
4
52010-03-24 Chong Yidong <cyd@stupidchicken.com>
6
7 * processes.texi (Network Processes): Document seqpacket type.
8
12010-03-20 Dan Nicolaescu <dann@ics.uci.edu> 92010-03-20 Dan Nicolaescu <dann@ics.uci.edu>
2 10
3 * os.texi (System Environment): Do not mention lynxos. 11 * os.texi (System Environment): Do not mention lynxos.
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 14a85ea556f..9994210bd17 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -821,7 +821,7 @@ This variable controls how the cursor looks in a window that is not
821selected. It supports the same values as the @code{cursor-type} frame 821selected. It supports the same values as the @code{cursor-type} frame
822parameter; also, @code{nil} means don't display a cursor in 822parameter; also, @code{nil} means don't display a cursor in
823nonselected windows, and @code{t} (the default) means use a standard 823nonselected windows, and @code{t} (the default) means use a standard
824modificatoin of the usual cursor type (solid box becomes hollow box, 824modification of the usual cursor type (solid box becomes hollow box,
825and bar becomes a narrower bar). 825and bar becomes a narrower bar).
826@end defopt 826@end defopt
827 827
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index 0dc3946f7e0..85628bdfac6 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -2059,7 +2059,8 @@ necessary to make it unique.
2059@item :type @var{type} 2059@item :type @var{type}
2060Specify the communication type. A value of @code{nil} specifies a 2060Specify the communication type. A value of @code{nil} specifies a
2061stream connection (the default); @code{datagram} specifies a datagram 2061stream connection (the default); @code{datagram} specifies a datagram
2062connection. Both connections and servers can be of either type. 2062connection; @code{seqpacket} specifies a ``sequenced packet stream''
2063connection. Both connections and servers can be of these types.
2063 2064
2064@item :server @var{server-flag} 2065@item :server @var{server-flag}
2065If @var{server-flag} is non-@code{nil}, create a server. Otherwise, 2066If @var{server-flag} is non-@code{nil}, create a server. Otherwise,
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 136a1eea0fb..1204e757771 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,7 @@
12010-03-24 Michael Albinus <michael.albinus@gmx.de>
2
3 * trampver.texi: Update release number.
4
12010-03-10 Chong Yidong <cyd@stupidchicken.com> 52010-03-10 Chong Yidong <cyd@stupidchicken.com>
2 6
3 * Branch for 23.2. 7 * Branch for 23.2.
diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi
index 8456a1e0d11..c8608edf6b6 100644
--- a/doc/misc/trampver.texi
+++ b/doc/misc/trampver.texi
@@ -9,7 +9,7 @@
9@c In the Tramp CVS, the version number is auto-frobbed from 9@c In the Tramp CVS, the version number is auto-frobbed from
10@c configure.ac, so you should edit that file and run 10@c configure.ac, so you should edit that file and run
11@c "autoconf && ./configure" to change the version number. 11@c "autoconf && ./configure" to change the version number.
12@set trampver 2.1.18-pre 12@set trampver 2.1.18-23.2
13 13
14@c Other flags from configuration 14@c Other flags from configuration
15@set instprefix /usr/local 15@set instprefix /usr/local
diff --git a/etc/ChangeLog b/etc/ChangeLog
index bc750afacb3..a00cd71bb96 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,8 @@
12010-03-24 Francesc Rocher <rocher@member.fsf.org>
2
3 * MORE.STUFF: Remove CEDET entry, now distributed as part of
4 Emacs.
5
12010-03-22 Teodor Zlatanov <tzz@lifelogs.com> 62010-03-22 Teodor Zlatanov <tzz@lifelogs.com>
2 7
3 * gnus/gnus-setup.ast: Add finish links to the top nodes. 8 * gnus/gnus-setup.ast: Add finish links to the top nodes.
diff --git a/etc/MORE.STUFF b/etc/MORE.STUFF
index 3af82a1b51a..a7cb3237b30 100644
--- a/etc/MORE.STUFF
+++ b/etc/MORE.STUFF
@@ -130,10 +130,6 @@ Several are for Debian GNU/Linux in particular.
130 130
131 * Boxquote: <URL:http://www.davep.org/emacs/> 131 * Boxquote: <URL:http://www.davep.org/emacs/>
132 132
133 * CEDET: Collection of Emacs Development Environment Tools, including
134 EIEIO, Semantic, Speedbar, EDE, and COGRE:
135 <URL:http://cedet.sourceforge.net/>
136
137 * CJK-emacs: Converting MULE-encoded text to TeX: 133 * CJK-emacs: Converting MULE-encoded text to TeX:
138 <URL:ftp://ctan.tug.org/tex-archive/language/chinese/CJK/> and 134 <URL:ftp://ctan.tug.org/tex-archive/language/chinese/CJK/> and
139 mirrors of the `CTAN' TeX archives. 135 mirrors of the `CTAN' TeX archives.
diff --git a/etc/NEWS.23 b/etc/NEWS.23
index 00c4765f822..6abb3e347ca 100644
--- a/etc/NEWS.23
+++ b/etc/NEWS.23
@@ -71,14 +71,14 @@ uses `system-move-file-to-trash' for trashing.)
71Customize `make-pointer-invisible' to disable this feature. 71Customize `make-pointer-invisible' to disable this feature.
72 72
73** Font changes 73** Font changes
74 74+++
75*** Emacs can use the system default monospaced font in Gnome. 75*** Emacs can use the system default monospaced font in Gnome.
76To enable this feature, set `font-use-system-font' to non-nil (it is 76To enable this feature, set `font-use-system-font' to non-nil (it is
77nil by default). If the system default changes, Emacs changes also. 77nil by default). If the system default changes, Emacs changes also.
78This feature requires Gconf support, which is automatically included 78This feature requires Gconf support, which is automatically included
79at compile-time if configure detects the gconf libraries (you can 79at compile-time if configure detects the gconf libraries (you can
80disable this with the configure option --without-gconf). 80disable this with the configure option --without-gconf).
81 81---
82*** On X11, Emacs reacts to Xft changes made by configuration tools, 82*** On X11, Emacs reacts to Xft changes made by configuration tools,
83via the XSETTINGS mechanism. This includes antialias, hinting, 83via the XSETTINGS mechanism. This includes antialias, hinting,
84hintstyle, RGBA, DPI and lcdfilter changes. 84hintstyle, RGBA, DPI and lcdfilter changes.
@@ -143,7 +143,7 @@ subsequent kills are not duplicated in the `kill-ring'.
143** Completion changes 143** Completion changes
144 144
145*** The new command `completion-at-point' provides mode-sensitive completion. 145*** The new command `completion-at-point' provides mode-sensitive completion.
146 146+++
147*** tab-always-indent set to `complete' lets TAB do completion as well. 147*** tab-always-indent set to `complete' lets TAB do completion as well.
148+++ 148+++
149*** The new completion-style `initials' is available. 149*** The new completion-style `initials' is available.
@@ -185,6 +185,7 @@ that file exists.
185 185
186** LaTeX mode now provides completion (via completion-at-point). 186** LaTeX mode now provides completion (via completion-at-point).
187 187
188---
188** sym-comp.el is now declared obsolete, superceded by completion-at-point. 189** sym-comp.el is now declared obsolete, superceded by completion-at-point.
189 190
190** lucid.el and levents.el are now declared obsolete. 191** lucid.el and levents.el are now declared obsolete.
@@ -197,20 +198,16 @@ is similar to `pcomplete' but using the standard completion UI code.
197*** The Calc settings file is now a file named calc.el in 198*** The Calc settings file is now a file named calc.el in
198user-emacs-directory; but the old location, ~/.calc.el, is used if 199user-emacs-directory; but the old location, ~/.calc.el, is used if
199that file exists. 200that file exists.
200
201--- 201---
202*** Graphing commands (`g f' etc.) now work on MS-Windows, if you have 202*** Graphing commands (`g f' etc.) now work on MS-Windows, if you have
203the native Windows port of Gnuplot version 3.8 or later installed. 203the native Windows port of Gnuplot version 3.8 or later installed.
204 204
205** Calendar and diary 205** Calendar and diary
206
207+++ 206+++
208*** Fancy diary display is now the default. 207*** Fancy diary display is now the default.
209If you prefer the simple display, customize `diary-display-function'. 208If you prefer the simple display, customize `diary-display-function'.
210
211+++ 209+++
212*** The diary's fancy display now enables view-mode. 210*** The diary's fancy display now enables view-mode.
213
214--- 211---
215*** The command `calendar-current-date' accepts an optional argument 212*** The command `calendar-current-date' accepts an optional argument
216giving an offset from today. 213giving an offset from today.
@@ -225,9 +222,9 @@ exempt buffers that do correspond to files, customize the value of
225`desktop-files-not-to-save' instead. 222`desktop-files-not-to-save' instead.
226 223
227** Dired 224** Dired
228 225+++
229*** The new variable `dired-auto-revert-buffer' allows to revert 226*** The new variable `dired-auto-revert-buffer', if non-nil, causes
230dired buffers automatically on revisiting. 227Dired buffers to be reverted automatically on revisiting them.
231 228
232** DocView 229** DocView
233 230
@@ -338,22 +335,17 @@ displayed in the *vc-dir* header, shelves can be created, removed and applied.
338are stripped when copying text from the ChangeLog to the *VC-Log* buffer. 335are stripped when copying text from the ChangeLog to the *VC-Log* buffer.
339 336
340** Elint 337** Elint
341
342--- 338---
343*** Elint now uses compilation-mode. 339*** Elint now uses compilation-mode.
344
345--- 340---
346*** Elint can now scan individual files and whole directories, 341*** Elint can now scan individual files and whole directories,
347and can be run in batch mode. 342and can be run in batch mode.
348
349--- 343---
350*** Elint does a more thorough initialization, and recognizes more built-in 344*** Elint does a more thorough initialization, and recognizes more built-in
351functions and variables. Customize `elint-scan-preloaded' if you want 345functions and variables. Customize `elint-scan-preloaded' if you want
352to sacrifice some accuracy for a faster startup. 346to sacrifice some accuracy for a faster startup.
353
354--- 347---
355*** Elint attempts some basic understanding of featurep and (f)boundp tests. 348*** Elint attempts some basic understanding of featurep and (f)boundp tests.
356
357--- 349---
358*** Customize `elint-ignored-warnings' to suppress some warnings. 350*** Customize `elint-ignored-warnings' to suppress some warnings.
359 351
@@ -368,7 +360,7 @@ Command*'.
368`comint-history-isearch' is non-nil. New commands `comint-history-isearch-backward' 360`comint-history-isearch' is non-nil. New commands `comint-history-isearch-backward'
369and `comint-history-isearch-backward-regexp' (bound to M-r) start Isearch 361and `comint-history-isearch-backward-regexp' (bound to M-r) start Isearch
370in the input history regardless of the value of `comint-history-isearch'. 362in the input history regardless of the value of `comint-history-isearch'.
371 363+++
372*** Interactively `multi-isearch-buffers' and `multi-isearch-buffers-regexp' 364*** Interactively `multi-isearch-buffers' and `multi-isearch-buffers-regexp'
373read buffer names to search, one by one, ended with RET. With a prefix 365read buffer names to search, one by one, ended with RET. With a prefix
374argument, they ask for a regexp, and search in buffers whose names match 366argument, they ask for a regexp, and search in buffers whose names match
@@ -376,19 +368,16 @@ the specified regexp. Interactively `multi-isearch-files' and
376`multi-isearch-files-regexp' read file names to search, one by one, 368`multi-isearch-files-regexp' read file names to search, one by one,
377ended with RET. With a prefix argument, they ask for a wildcard, and 369ended with RET. With a prefix argument, they ask for a wildcard, and
378search in file buffers whose file names match the specified wildcard. 370search in file buffers whose file names match the specified wildcard.
379
380+++ 371+++
381*** Autorevert Tail mode now works also for remote files. 372*** Autorevert Tail mode now works also for remote files.
382
383+++ 373+++
384*** The new built-in commands `su' and `sudo' support Tramp. 374*** The new built-in commands `su' and `sudo' support Tramp.
385That means, they change `default-directory' to the new users value, 375That means, they change `default-directory' to the new users value,
386and let commands run under that user permissions. It works even when 376and let commands run under that user permissions. It works even when
387`default-directory' is already remote. Calling the external commands 377`default-directory' is already remote. Calling the external commands
388is possible by `*su' or `*sudo', repectively. 378is possible by `*su' or `*sudo', repectively.
389
390--- 379---
391*** When running in a new enough xterm (newer than version 242), emacs 380*** When running in a new enough xterm (newer than version 242), Emacs
392asks xterm what the background color is and it sets up faces 381asks xterm what the background color is and it sets up faces
393accordingly for a dark background if needed (the current default is to 382accordingly for a dark background if needed (the current default is to
394consider the background light). 383consider the background light).
@@ -468,70 +457,94 @@ mode from `auto-mode-alist' (or Fundamental mode) and `image-minor-mode'.
468 457
469* Lisp changes in Emacs 23.2 458* Lisp changes in Emacs 23.2
470 459
471** make-network-socket can now also create `seqpacket' Unix sockets. 460** All the default-FOO variables that hold the default value of the FOO
472 461variable, are now declared obsolete.
473** New function `completion-in-region' to use the standard completion
474facilities on a particular region of text.
475
476+++
477** The 4th arg to all-completions (aka hide-spaces) is declared obsolete.
478 462
479--- 463** read-key is a function halfway between read-event and read-key-sequence.
480** read-file-name-predicate is obsolete. It was used to pass the predicate 464It reads a single key, but obeys input and escape sequence decoding.
481to read-file-name-internal because read-file-name-internal abused its `pred'
482argument to pass the current directory, but this hack is not needed
483any more.
484 465
485** Frame parameter changes 466** Frame parameter changes
486
487+++ 467+++
488*** You can give the `fullscreen' frame parameter the value `maximized'. 468*** You can give the `fullscreen' frame parameter the value `maximized'.
489This maximizes the frame. 469This maximizes the frame.
490
491+++ 470+++
492*** The new frame parameter `sticky' makes Emacs frames sticky in 471*** The new frame parameter `sticky' makes Emacs frames sticky in
493virtual desktops. 472virtual desktops.
494 473
495--- 474** Completion changes
496** completion-base-size is obsoleted by completion-base-position. 475
476*** completion-base-size is obsoleted by completion-base-position.
497This change causes a few backward incompatibilities, mostly with 477This change causes a few backward incompatibilities, mostly with
498choose-completion-string-functions where the `mini-p' argument has 478choose-completion-string-functions where the `mini-p' argument has
499been replaced by a `base-position' argument, and where the `base-size' 479been replaced by a `base-position' argument, and where the `base-size'
500argument is now always nil. 480argument is now always nil.
501 481
482*** New function `completion-in-region' to use the standard completion
483facilities on a particular region of text.
484+++
485*** The 4th arg to all-completions (aka hide-spaces) is declared obsolete.
486
487*** completion-annotate-function specifies how to compute annotations
488for completions displayed in *Completions*.
489
490** Minibuffer changes
491---
492*** read-file-name-predicate is obsolete. It was used to pass the predicate
493to read-file-name-internal because read-file-name-internal abused its `pred'
494argument to pass the current directory, but this hack is not needed
495any more.
496
497** Changes to file-manipulation functions
498+++
499*** `delete-directory' has an optional parameter RECURSIVE.
500+++
501*** New function `copy-directory', which copies a directory recursively.
502
502** called-interactively-p now takes one argument and replaces interactive-p 503** called-interactively-p now takes one argument and replaces interactive-p
503which is now marked obsolete. 504which is now marked obsolete.
505
504** New function set-advertised-calling-convention makes it possible 506** New function set-advertised-calling-convention makes it possible
505to obsolete arguments as well as make some arguments mandatory. 507to obsolete arguments as well as make some arguments mandatory.
506** eval-next-after-load is obsolete.
507** New hook `after-load-functions' run after loading an Elisp file.
508 508
509** You can control which binding is preferentially shown in menus and 509** You can control which binding is preferentially shown in menus and
510docstrings by adding a `:advertised-binding' property to the corresponding 510docstrings by adding a `:advertised-binding' property to the corresponding
511command's symbol. That property can hold a single binding or a list 511command's symbol. That property can hold a single binding or a list
512of bindings. 512of bindings.
513 513
514** New macro with-silent-modifications to tweak text properties without 514** Network and process changes
515affecting the buffer's modification state. 515+++
516** All the default-FOO variables that hold the default value of the FOO 516*** start-process-shell-command and start-file-process-shell-command
517variable, are now declared obsolete. 517now only take a single `command' argument.
518+++
519*** The new variable `process-file-side-effects' should be set to nil
520if a `process-file' call does not change a remote file. This allows
521file name handlers such as Tramp to optimizations.
522+++
523*** make-network-process can now also create `seqpacket' Unix sockets.
518 524
519** read-key is a function halfway between read-event and read-key-sequence. 525** Loading changes
520It reads a single key, but obeys input and escape sequence decoding.
521 526
522** start-process-shell-command and start-file-process-shell-command 527*** eval-next-after-load is obsolete.
523now only take a single `command' argument. 528
529*** New hook `after-load-functions' run after loading an Elisp file.
530
531** Byte compilation changes
532---
533*** Changing the file-names generated by byte-compilation by redefining
534the function `byte-compile-dest-file' before loading bytecomp.el is obsolete.
535Instead, customize byte-compile-dest-file-function.
536---
537*** `byte-compile-warnings' has new members, `constants' and `suspicious'.
524 538
525** The variable `process-file-side-effects' shall be bound to nil, if 539** New macro with-silent-modifications to tweak text properties without
526a `process-file' call does not change a remote file. By this, file 540affecting the buffer's modification state.
527name handlers like Tramp can apply optimizations.
528 541
529+++ 542+++
530** Hash tables have a new printed representation that is readable. 543** Hash tables have a new printed representation that is readable.
531The feature `hashtable-print-readable' identifies this new 544The feature `hashtable-print-readable' identifies this new
532functionality. 545functionality.
533 546
534** New functions performing Unicode normalization are added: 547** New functions for performing Unicode normalization:
535ucs-normalize-NFD-region, ucs-normalize-NFD-string, 548ucs-normalize-NFD-region, ucs-normalize-NFD-string,
536ucs-normalize-NFC-region, ucs-normalize-NFC-string, 549ucs-normalize-NFC-region, ucs-normalize-NFC-string,
537ucs-normalize-NFKD-region, ucs-normalize-NFKD-string, 550ucs-normalize-NFKD-region, ucs-normalize-NFKD-string,
@@ -539,25 +552,10 @@ ucs-normalize-NFKC-region, ucs-normalize-NFKC-string,
539ucs-normalize-HFS-NFD-region, ucs-normalize-HFS-NFD-string, 552ucs-normalize-HFS-NFD-region, ucs-normalize-HFS-NFD-string,
540ucs-normalize-HFS-NFC-region, ucs-normalize-HFS-NFC-string. 553ucs-normalize-HFS-NFC-region, ucs-normalize-HFS-NFC-string.
541 554
542** completion-annotate-function specifies how to compute annotations
543for completions displayed in *Completions*.
544
545+++ 555+++
546** Face aliases can now be marked as obsolete, using the macro 556** Face aliases can now be marked as obsolete, using the macro
547`define-obsolete-face-alias'. 557`define-obsolete-face-alias'.
548 558
549---
550** Changing the file-names generated by byte-compilation by redefining
551the function `byte-compile-dest-file' before loading bytecomp.el is obsolete.
552Instead, customize byte-compile-dest-file-function.
553
554---
555** `byte-compile-warnings' has new members, `constants' and `suspicious'.
556
557** `delete-directory' has an optional parameter RECURSIVE.
558
559** New function `copy-directory', which copies a directory recursively.
560
561+++ 559+++
562** New function `window-full-height-p', analogous to the full-width version. 560** New function `window-full-height-p', analogous to the full-width version.
563 561
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 5c8f4e032b6..db395df233e 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -1418,6 +1418,21 @@ single copies. You do not need any other drivers or options.
1418 1418
1419* Runtime problems on character terminals 1419* Runtime problems on character terminals
1420 1420
1421** The meta key does not work on xterm.
1422Typing M-x rings the terminal bell, and inserts a string like ";120~".
1423For recent xterm versions (>= 216), Emacs uses xterm's modifyOtherKeys
1424feature to generate strings for key combinations that are not
1425otherwise usable. One circumstance in which this can cause problems
1426is if you have specified the X resource
1427
1428 xterm*VT100.Translations
1429
1430to contain translations that use the meta key. Then xterm will not
1431use meta in modified function-keys, which confuses Emacs. To fix
1432this, you can remove the X resource or put this in your init file:
1433
1434 (xterm-remove-modify-other-keys)
1435
1421** Emacs spontaneously displays "I-search: " at the bottom of the screen. 1436** Emacs spontaneously displays "I-search: " at the bottom of the screen.
1422 1437
1423This means that Control-S/Control-Q (XON/XOFF) "flow control" is being 1438This means that Control-S/Control-Q (XON/XOFF) "flow control" is being
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 3c9888182f8..3689508aa52 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,103 @@
12010-03-24 Stefan Monnier <monnier@iro.umontreal.ca> 12010-03-24 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * progmodes/make-mode.el (makefile-rule-action-regex): Backtrack less.
4 (makefile-make-font-lock-keywords): Adjust rule since submatch 1 may
5 not be present any more.
6
72010-03-24 Juanma Barranquero <lekktu@gmail.com>
8
9 * faces.el (set-face-attribute): Fix typo in docstring.
10 (face-valid-attribute-values): Reflow docstring.
11
12 * cedet/srecode/table.el (srecode-template-table): Fix docstring typo.
13
142010-03-24 Glenn Morris <rgm@gnu.org>
15
16 * textmodes/flyspell.el (sgml-lexical-context): Autoload it (Bug#5752).
17
182010-03-24 Chong Yidong <cyd@stupidchicken.com>
19
20 * indent.el (indent-for-tab-command): Doc fix.
21
222010-03-24 Alan Mackenzie <acm@muc.de>
23
24 * progmodes/cc-engine.el (c-remove-stale-state-cache):
25 Fix off-by-one error. Fixes bug #5747.
26
272010-03-24 Juanma Barranquero <lekktu@gmail.com>
28
29 * image-dired.el (image-dired-display-thumbs): Fix typo in docstring.
30 (image-dired-read-comment): Doc fix.
31
32 * json.el (json-object-type, json-array-type, json-key-type)
33 (json-false, json-null, json-read-number):
34 * minibuffer.el (completion-in-region-functions):
35 * calendar/cal-tex.el (cal-tex-daily-end, cal-tex-number-weeks)
36 (cal-tex-cursor-week):
37 * emacs-lisp/trace.el (trace-function):
38 * eshell/em-basic.el (eshell/printnl):
39 * eshell/em-dirs.el (eshell-last-dir-ring, eshell-parse-drive-letter)
40 (eshell-read-last-dir-ring, eshell-write-last-dir-ring):
41 * obsolete/levents.el (allocate-event, event-key, event-object)
42 (event-point, event-process, event-timestamp, event-to-character)
43 (event-window, event-x, event-x-pixel, event-y, event-y-pixel):
44 * textmodes/reftex-vars.el (reftex-index-macros-builtin)
45 (reftex-section-levels, reftex-auto-recenter-toc, reftex-toc-mode-hook)
46 (reftex-cite-punctuation, reftex-search-unrecursed-path-first)
47 (reftex-highlight-selection): Fix typos in docstrings.
48
492010-03-24 Juanma Barranquero <lekktu@gmail.com>
50
51 * minibuffer.el (completion-in-region-functions): Fix docstring typos.
52
532010-03-24 Glenn Morris <rgm@gnu.org>
54
55 * mail/rmail.el (rmail-highlight-face): Restore option deleted
56 2008-02-13 without comment; mark it obsolete.
57 (rmail-highlight-headers): Use rmail-highlight-face once more.
58
592010-03-24 Chong Yidong <cyd@stupidchicken.com>
60
61 * woman.el (woman2-process-escapes): Only consume the newline if
62 the filler character is on a line by itself (Bug#5729).
63
642010-03-24 Kenichi Handa <handa@m17n.org>
65
66 * language/indian.el (devanagari-composable-pattern): Add more
67 consonants.
68
692010-03-24 Michael Albinus <michael.albinus@gmx.de>
70
71 * net/trampver.el: Update release number.
72
732010-03-24 Glenn Morris <rgm@gnu.org>
74
75 * Makefile.in (ELCFILES): Add cedet/semantic/imenu.el.
76
772010-03-24 Michael Albinus <michael.albinus@gmx.de>
78
79 * net/tramp.el (tramp-find-executable):
80 Use `tramp-get-connection-buffer'. Make the regexp for checking
81 output of "wc -l" more robust.
82 (tramp-find-shell): Use another shell but /bin/sh on OpenSolaris.
83 (tramp-open-connection-setup-interactive-shell): Remove workaround
84 for OpenSolaris bug, it is not needed anymore.
85
862010-03-24 Eric M. Ludlam <zappo@gnu.org>
87
88 * cedet/semantic/imenu.el: New file, from the CEDET repository
89 (Bug#5412).
90
912010-03-24 Glenn Morris <rgm@gnu.org>
92
93 * emacs-lisp/cl-macs.el (defsubst*): Add autoload cookie. (Bug#4427)
94
952010-03-24 Wilson Snyder <wsnyder@wsnyder.org>
96
97 * files.el (auto-mode-alist): Accept more verilog file patterns.
98
992010-03-24 Stefan Monnier <monnier@iro.umontreal.ca>
100
3 * vc-dir.el (vc-dir-headers): Abbreviate the working dir. 101 * vc-dir.el (vc-dir-headers): Abbreviate the working dir.
4 102
52010-03-24 Glenn Morris <rgm@gnu.org> 1032010-03-24 Glenn Morris <rgm@gnu.org>
diff --git a/lisp/calendar/cal-tex.el b/lisp/calendar/cal-tex.el
index 0e320ff8f90..bbddc1ff38c 100644
--- a/lisp/calendar/cal-tex.el
+++ b/lisp/calendar/cal-tex.el
@@ -134,7 +134,7 @@ At present, this only affects `cal-tex-cursor-day'."
134 134
135(defcustom cal-tex-daily-end 20 135(defcustom cal-tex-daily-end 20
136 "The last hour of the daily LaTeX calendar page. 136 "The last hour of the daily LaTeX calendar page.
137At present, this only affects `cal-tex-cursor-day'" 137At present, this only affects `cal-tex-cursor-day'."
138 :type 'integer 138 :type 'integer
139 :group 'calendar-tex) 139 :group 'calendar-tex)
140 140
@@ -654,7 +654,7 @@ in the calendar starting in MONTH YEAR."
654 654
655(defun cal-tex-number-weeks (month year n) 655(defun cal-tex-number-weeks (month year n)
656 "Determine the number of weeks in a range of dates. 656 "Determine the number of weeks in a range of dates.
657Compute the number of weeks in the calendar starting with MONTH and YEAR, 657Compute the number of weeks in the calendar starting with MONTH and YEAR,
658and lasting N months, including only the days in WHICH-DAYS. As it stands, 658and lasting N months, including only the days in WHICH-DAYS. As it stands,
659this is only an upper bound." 659this is only an upper bound."
660 (let ((d (list month 1 year))) 660 (let ((d (list month 1 year)))
@@ -683,7 +683,7 @@ this is only an upper bound."
683(defun cal-tex-cursor-week (&optional n event) 683(defun cal-tex-cursor-week (&optional n event)
684 "Make a LaTeX calendar buffer for a two-page one-week calendar. 684 "Make a LaTeX calendar buffer for a two-page one-week calendar.
685It applies to the week that point is in. The optional prefix 685It applies to the week that point is in. The optional prefix
686argument N specifies the number of weeks (default 1). The calendar 686argument N specifies number of weeks (default 1). The calendar
687shows holidays if `cal-tex-holidays' is non-nil (note that diary 687shows holidays if `cal-tex-holidays' is non-nil (note that diary
688entries are not shown). The calendar shows the hours 8-12am, 1-5pm." 688entries are not shown). The calendar shows the hours 8-12am, 1-5pm."
689 (interactive (list (prefix-numeric-value current-prefix-arg) 689 (interactive (list (prefix-numeric-value current-prefix-arg)
@@ -1778,7 +1778,7 @@ Add trailing COMMENT if present."
1778 (cal-tex-comment "end framebox")) 1778 (cal-tex-comment "end framebox"))
1779 1779
1780 1780
1781(defun cal-tex-b-makebox ( width position ) 1781(defun cal-tex-b-makebox (width position)
1782 "Insert makebox with parameters WIDTH and POSITION (clr)." 1782 "Insert makebox with parameters WIDTH and POSITION (clr)."
1783 (insert "\\makebox[" width "][" position "]{" ) 1783 (insert "\\makebox[" width "][" position "]{" )
1784 (cal-tex-comment)) 1784 (cal-tex-comment))
diff --git a/lisp/cedet/semantic/imenu.el b/lisp/cedet/semantic/imenu.el
new file mode 100644
index 00000000000..3c73b893925
--- /dev/null
+++ b/lisp/cedet/semantic/imenu.el
@@ -0,0 +1,537 @@
1;;; semantic/imenu.el --- Use Semantic as an imenu tag generator
2
3;;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2010
4;; Free Software Foundation, Inc.
5
6;; Author: Eric M. Ludlam <zappo@gnu.org>
7;; Maintainer: Eric Ludlam
8
9;; This file is part of GNU Emacs.
10
11;; GNU Emacs is free software: you can redistribute it and/or modify
12;; it under the terms of the GNU General Public License as published by
13;; the Free Software Foundation, either version 3 of the License, or
14;; (at your option) any later version.
15
16;; GNU Emacs is distributed in the hope that it will be useful,
17;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;; GNU General Public License for more details.
20
21;; You should have received a copy of the GNU General Public License
22;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
23
24;;; Commentary:
25;;
26;; This support function can be used in any buffer which supports
27;; the bovinator to create the imenu index.
28;;
29;; To use this in a buffer, do this in a hook.
30;;
31;; (add-hook 'mode-hook
32;; (lambda ()
33;; (setq imenu-create-index-function 'semantic-create-imenu-index)
34;; ))
35
36(require 'semantic)
37(require 'semantic/format)
38(require 'semantic/db)
39(require 'semantic/db-file)
40(require 'semantic/sort)
41(require 'imenu)
42
43(declare-function pulse-momentary-highlight-one-line "pulse" (o &optional face))
44(declare-function semanticdb-semantic-init-hook-fcn "db-mode")
45
46;; Because semantic imenu tags will hose the current imenu handling
47;; code in speedbar, force semantic/sb in.
48(if (featurep 'speedbar)
49 (require 'semantic/sb)
50 (add-hook 'speedbar-load-hook (lambda () (require 'semantic/sb))))
51
52(defgroup semantic-imenu nil
53 "Semantic interface to Imenu."
54 :group 'semantic
55 :group 'imenu
56 )
57
58;;;###autoload
59(defcustom semantic-imenu-summary-function 'semantic-format-tag-abbreviate
60 "*Function to use when creating items in Imenu.
61Some useful functions are found in `semantic-format-tag-functions'."
62 :group 'semantic-imenu
63 :type semantic-format-tag-custom-list)
64(make-variable-buffer-local 'semantic-imenu-summary-function)
65
66;;;###autoload
67(defcustom semantic-imenu-bucketize-file t
68 "*Non-nil if tags in a file are to be grouped into buckets."
69 :group 'semantic-imenu
70 :type 'boolean)
71(make-variable-buffer-local 'semantic-imenu-bucketize-file)
72
73(defcustom semantic-imenu-adopt-external-members t
74 "*Non-nil if types in a file should adopt externally defined members.
75C++ and CLOS can define methods that are not in the body of a class
76definition."
77 :group 'semantic-imenu
78 :type 'boolean)
79
80(defcustom semantic-imenu-buckets-to-submenu t
81 "*Non-nil if buckets of tags are to be turned into submenus.
82This option is ignored if `semantic-imenu-bucketize-file' is nil."
83 :group 'semantic-imenu
84 :type 'boolean)
85(make-variable-buffer-local 'semantic-imenu-buckets-to-submenu)
86
87;;;###autoload
88(defcustom semantic-imenu-expand-type-members t
89 "*Non-nil if types should have submenus with members in them."
90 :group 'semantic-imenu
91 :type 'boolean)
92(make-variable-buffer-local 'semantic-imenu-expand-type-members)
93(semantic-varalias-obsolete 'semantic-imenu-expand-type-parts
94 'semantic-imenu-expand-type-members "23.2")
95
96(defcustom semantic-imenu-bucketize-type-members t
97 "*Non-nil if members of a type should be grouped into buckets.
98nil means to keep them in the same order.
99Overriden to nil if `semantic-imenu-bucketize-file' is nil."
100 :group 'semantic-imenu
101 :type 'boolean)
102(make-variable-buffer-local 'semantic-imenu-bucketize-type-parts)
103(semantic-varalias-obsolete 'semantic-imenu-bucketize-type-parts
104 'semantic-imenu-bucketize-type-members "23.2")
105
106(defcustom semantic-imenu-sort-bucket-function nil
107 "*Function to use when sorting tags in the buckets of functions.
108See `semantic-bucketize' and the FILTER argument for more details on this function."
109 :group 'semantic-imenu
110 :type '(radio (const :tag "No Sorting" nil)
111 (const semantic-sort-tags-by-name-increasing)
112 (const semantic-sort-tags-by-name-decreasing)
113 (const semantic-sort-tags-by-type-increasing)
114 (const semantic-sort-tags-by-type-decreasing)
115 (const semantic-sort-tags-by-name-increasing-ci)
116 (const semantic-sort-tags-by-name-decreasing-ci)
117 (const semantic-sort-tags-by-type-increasing-ci)
118 (const semantic-sort-tags-by-type-decreasing-ci)
119 (function)))
120(make-variable-buffer-local 'semantic-imenu-sort-bucket-function)
121
122(defcustom semantic-imenu-index-directory nil
123 "*Non nil to index the entire directory for tags.
124Doesn't actually parse the entire directory, but displays tags for all files
125currently listed in the current Semantic database.
126This variable has no meaning if semanticdb is not active."
127 :group 'semantic-imenu
128 :type 'boolean)
129
130(defcustom semantic-imenu-auto-rebuild-directory-indexes nil
131 "*If non-nil automatically rebuild directory index imenus.
132That is when a directory index imenu is updated, automatically rebuild
133other buffer local ones based on the same semanticdb."
134 :group 'semantic-imenu
135 :type 'boolean)
136
137(defvar semantic-imenu-directory-current-file nil
138 "When building a file index, this is the file name currently being built.")
139
140(defvar semantic-imenu-auto-rebuild-running nil
141 "Non-nil if `semantic-imenu-rebuild-directory-indexes' is running.")
142
143;;;###autoload
144(defvar semantic-imenu-expandable-tag-classes '(type)
145 "List of expandable tag classes.
146Tags of those classes will be given submenu with children.
147By default, a `type' has interesting children. In Texinfo, however, a
148`section' has interesting children.")
149(make-variable-buffer-local 'semantic-imenu-expandable-tag-classes)
150(semantic-varalias-obsolete 'semantic-imenu-expandable-token
151 'semantic-imenu-expandable-tag-classes "23.2")
152
153;;; Code:
154(defun semantic-imenu-tag-overlay (tag)
155 "Return the overlay belonging to tag.
156If TAG doesn't have an overlay, and instead as a vector of positions,
157concoct a combination of file name, and position."
158 (let ((o (semantic-tag-overlay tag)))
159 (if (not (semantic-overlay-p o))
160 (let ((v (make-vector 3 nil)))
161 (aset v 0 semantic-imenu-directory-current-file)
162 (aset v 1 (aref o 0))
163 (aset v 2 (aref o 1))
164 v)
165 o)))
166
167
168(defun semantic-imenu-goto-function (name position &optional rest)
169 "Move point associated with NAME to POSITION.
170Used to override function `imenu-default-goto-function' so that we can continue
171to use overlays to maintain the current position.
172Optional argument REST is some extra stuff."
173 (require 'pulse)
174 (if (semantic-overlay-p position)
175 (let ((os (semantic-overlay-start position))
176 (ob (semantic-overlay-buffer position)))
177 (if os
178 (progn
179 (if (not (eq ob (current-buffer)))
180 (switch-to-buffer ob))
181 (imenu-default-goto-function name os rest)
182 (pulse-momentary-highlight-one-line (point))
183 )
184 ;; This should never happen, but check anyway.
185 (message "Imenu is out of date, try again. (internal bug)")
186 (setq imenu--index-alist nil)))
187 ;; When the POSITION is actually a pair of numbers in an array, then
188 ;; the file isn't loaded into the current buffer.
189 (if (vectorp position)
190 (let ((file (aref position 0))
191 (pos (aref position 1)))
192 (and file (find-file file))
193 (imenu-default-goto-function name pos rest)
194 (pulse-momentary-highlight-one-line (point))
195 )
196 ;; When the POSITION is the symbol 'file-only' it means that this
197 ;; is a directory index entry and there is no tags in this
198 ;; file. So just jump to the beginning of the file.
199 (if (eq position 'file-only)
200 (progn
201 (find-file name)
202 (imenu-default-goto-function name (point-min) rest)
203 (pulse-momentary-highlight-one-line (point))
204 )
205 ;; Probably POSITION don't came from a semantic imenu. Try
206 ;; the default imenu goto function.
207 (condition-case nil
208 (progn
209 (imenu-default-goto-function name position rest)
210 (pulse-momentary-highlight-one-line (point))
211 )
212 (error
213 (message "Semantic Imenu override problem. (Internal bug)")
214 (setq imenu--index-alist nil)))))
215 ))
216
217(defun semantic-imenu-flush-fcn (&optional ignore)
218 "This function is called as a hook to clear the imenu cache.
219It is cleared after any parsing.
220IGNORE arguments."
221 (if (eq imenu-create-index-function 'semantic-create-imenu-index)
222 (setq imenu--index-alist nil
223 imenu-menubar-modified-tick 0))
224 (remove-hook 'semantic-after-toplevel-cache-change-hook
225 'semantic-imenu-flush-fcn t)
226 (remove-hook 'semantic-after-partial-cache-change-hook
227 'semantic-imenu-flush-fcn t)
228 )
229
230;;;###autoload
231(defun semantic-create-imenu-index (&optional stream)
232 "Create an imenu index for any buffer which supports Semantic.
233Uses the output of the Semantic parser to create the index.
234Optional argument STREAM is an optional stream of tags used to create menus."
235 (setq imenu-default-goto-function 'semantic-imenu-goto-function)
236 (prog1
237 (if (and semantic-imenu-index-directory
238 (featurep 'semanticdb)
239 (semanticdb-minor-mode-p))
240 (semantic-create-imenu-directory-index
241 (or stream (semantic-fetch-tags-fast)))
242 (semantic-create-imenu-index-1
243 (or stream (semantic-fetch-tags-fast)) nil))
244 (semantic-make-local-hook 'semantic-after-toplevel-cache-change-hook)
245 (add-hook 'semantic-after-toplevel-cache-change-hook
246 'semantic-imenu-flush-fcn nil t)
247 (semantic-make-local-hook 'semantic-after-partial-cache-change-hook)
248 (add-hook 'semantic-after-partial-cache-change-hook
249 'semantic-imenu-flush-fcn nil t)))
250
251(defun semantic-create-imenu-directory-index (&optional stream)
252 "Create an IMENU tag index based on all files active in semanticdb.
253Optional argument STREAM is the stream of tags for the current buffer."
254 (if (not semanticdb-current-database)
255 (semantic-create-imenu-index-1 stream nil)
256 ;; We have a database, list all files, with the current file on top.
257 (let ((index (list
258 (cons (oref semanticdb-current-table file)
259 (or (semantic-create-imenu-index-1 stream nil)
260 ;; No tags in this file
261 'file-only))))
262 (tables (semanticdb-get-database-tables semanticdb-current-database)))
263 (while tables
264 (let ((semantic-imenu-directory-current-file
265 (oref (car tables) file))
266 tags)
267 (when (and (not (eq (car tables) semanticdb-current-table))
268 (semanticdb-live-p (car tables))
269 (semanticdb-equivalent-mode (car tables))
270 )
271 (setq tags (oref (car tables) tags)
272 index (cons (cons semantic-imenu-directory-current-file
273 (or (and tags
274 ;; don't pass nil stream because
275 ;; it will use the current
276 ;; buffer
277 (semantic-create-imenu-index-1
278 (oref (car tables) tags)
279 nil))
280 ;; no tags in the file
281 'file-only))
282 index)))
283 (setq tables (cdr tables))))
284
285 ;; If enabled automatically rebuild other imenu directory
286 ;; indexes based on the same Semantic database
287 (or (not semantic-imenu-auto-rebuild-directory-indexes)
288 ;; If auto rebuild already in progress does nothing
289 semantic-imenu-auto-rebuild-running
290 (unwind-protect
291 (progn
292 (setq semantic-imenu-auto-rebuild-running t)
293 (semantic-imenu-rebuild-directory-indexes
294 semanticdb-current-database))
295 (setq semantic-imenu-auto-rebuild-running nil)))
296
297 (nreverse index))))
298
299(defun semantic-create-imenu-index-1 (stream &optional parent)
300 "Create an imenu index for any buffer which supports Semantic.
301Uses the output of the Semantic parser to create the index.
302STREAM is a stream of tags used to create menus.
303Optional argument PARENT is a tag parent of STREAM."
304 (let ((tags stream)
305 (semantic-imenu-adopt-external-members
306 semantic-imenu-adopt-external-members))
307 ;; If we should regroup, do so.
308 (if semantic-imenu-adopt-external-members
309 (setq tags (semantic-adopt-external-members tags)
310 ;; Don't allow recursion here.
311 semantic-imenu-adopt-external-members nil))
312 ;; Test for bucketing vs not.
313 (if semantic-imenu-bucketize-file
314 (let ((buckets (semantic-bucketize
315 tags parent
316 semantic-imenu-sort-bucket-function))
317 item name
318 index)
319 (cond
320 ((null buckets)
321 nil)
322 ((or (cdr-safe buckets) ;; if buckets has more than one item in it.
323 (not semantic-imenu-buckets-to-submenu)) ;; to force separators between buckets
324 (while buckets
325 (setq name (car (car buckets))
326 item (cdr (car buckets)))
327 (if semantic-imenu-buckets-to-submenu
328 (progn
329 ;; Make submenus
330 (if item
331 (setq index
332 (cons (cons name
333 (semantic-create-imenu-subindex item))
334 index))))
335 ;; Glom everything together with "---" between
336 (if item
337 (setq index
338 (append index
339 ;; do not create a menu separator in the parent menu
340 ;; when creating a sub-menu
341 (if (memq (semantic-tag-class (car item))
342 semantic-imenu-expandable-tag-classes)
343 (semantic-create-imenu-subindex item)
344 (cons
345 '("---")
346 (semantic-create-imenu-subindex item)))))
347 ))
348 (setq buckets (cdr buckets)))
349 (if semantic-imenu-buckets-to-submenu
350 (nreverse index)
351 index))
352 (t
353 (setq name (car (car buckets))
354 item (cdr (car buckets)))
355 (semantic-create-imenu-subindex item))))
356 ;; Else, group everything together
357 (semantic-create-imenu-subindex tags))))
358
359(defun semantic-create-imenu-subindex (tags)
360 "From TAGS, create an imenu index of interesting things."
361 (let ((notypecheck (not semantic-imenu-expand-type-members))
362 children index tag parts)
363 (while tags
364 (setq tag (car tags)
365 children (semantic-tag-components-with-overlays tag))
366 (if (and (not notypecheck)
367 (memq (semantic-tag-class tag)
368 semantic-imenu-expandable-tag-classes)
369 children
370 )
371 ;; to keep an homogeneous menu organisation, type menu items
372 ;; always have a sub-menu with at least the *definition*
373 ;; item (even if the tag has no type components)
374 (progn
375 (setq parts children)
376 ;; There is options which create the submenu
377 ;; * Type has an overlay, but children do.
378 ;; The type doesn't have to have it's own overlay,
379 ;; but a type with no overlay and no children should be
380 ;; invalid.
381 (setq index
382 (cons
383 (cons
384 (funcall semantic-imenu-summary-function tag)
385 ;; Add a menu for getting at the type definitions
386 (if (and parts
387 ;; Note to self: enable menu items for
388 ;; sub parts even if they are not proper
389 ;; tags.
390 (semantic-tag-p (car parts)))
391 (let ((submenu
392 (if (and semantic-imenu-bucketize-type-members
393 semantic-imenu-bucketize-file)
394 (semantic-create-imenu-index-1 parts tag)
395 (semantic-create-imenu-subindex parts))))
396 ;; Only add a *definition* if we have a postion
397 ;; in that type tag.
398 (if (semantic-tag-with-position-p tag)
399 (cons
400 (cons "*definition*"
401 (semantic-imenu-tag-overlay tag))
402 submenu)
403 submenu))
404 ;; There were no parts, or something like that, so
405 ;; instead just put the definition here.
406 (if (semantic-tag-with-position-p tag)
407 (semantic-imenu-tag-overlay tag)
408 nil)
409 ))
410 index)))
411 (if (semantic-tag-with-position-p tag)
412 (setq index (cons
413 (cons
414 (funcall semantic-imenu-summary-function tag)
415 (semantic-imenu-tag-overlay tag))
416 index))))
417 (setq tags (cdr tags)))
418 ;; `imenu--split-submenus' sort submenus according to
419 ;; `imenu-sort-function' setting and split them up if they are
420 ;; longer than `imenu-max-items'.
421 (imenu--split-submenus (nreverse index))))
422
423;;; directory imenu rebuilding.
424;;
425(defun semantic-imenu-rebuild-directory-indexes (db)
426 "Rebuild directory index imenus based on Semantic database DB."
427 (let ((l (buffer-list))
428 b)
429 (while l
430 (setq b (car l)
431 l (cdr l))
432 (if (and (not (eq b (current-buffer)))
433 (buffer-live-p b))
434 (with-current-buffer b
435 ;; If there is a buffer local Semantic index directory
436 ;; imenu
437 (when (and (eq imenu-create-index-function
438 'semantic-create-imenu-index)
439 semanticdb-current-database
440 (eq semanticdb-current-database db))
441 ;; Rebuild the imenu
442 (imenu--cleanup)
443 (setq imenu--index-alist nil)
444 (funcall
445 (if (fboundp 'imenu-menu-filter)
446 ;; XEmacs imenu
447 'imenu-menu-filter
448 ;; Emacs imenu
449 'imenu-update-menubar))))))))
450
451(defun semantic-imenu-semanticdb-hook ()
452 "Function to be called from `semanticdb-mode-hook'.
453Clears all imenu menus that may be depending on the database."
454 (require 'semantic/db-mode)
455 (semantic-map-buffers
456 #'(lambda ()
457 ;; Set up semanticdb environment if enabled.
458 (if (semanticdb-minor-mode-p)
459 (semanticdb-semantic-init-hook-fcn))
460 ;; Clear imenu cache to redraw the imenu.
461 (semantic-imenu-flush-fcn))))
462
463(add-hook 'semanticdb-mode-hook 'semantic-imenu-semanticdb-hook)
464
465;;; Interactive Utilities
466;;
467(defun semantic-imenu-toggle-bucketize-file ()
468 "Toggle the ability of imenu to bucketize the current file."
469 (interactive)
470 (setq semantic-imenu-bucketize-file (not semantic-imenu-bucketize-file))
471 ;; Force a rescan
472 (setq imenu--index-alist nil))
473
474(defun semantic-imenu-toggle-buckets-to-submenu ()
475 "Toggle the ability of imenu to turn buckets into submenus."
476 (interactive)
477 (setq semantic-imenu-buckets-to-submenu (not semantic-imenu-buckets-to-submenu))
478 ;; Force a rescan
479 (setq imenu--index-alist nil))
480
481(defun semantic-imenu-toggle-bucketize-type-parts ()
482 "Toggle the ability of imenu to bucketize the current file."
483 (interactive)
484 (setq semantic-imenu-bucketize-type-members (not semantic-imenu-bucketize-type-members))
485 ;; Force a rescan
486 (setq imenu--index-alist nil))
487
488;;; Which function support
489;;
490;; The which-function library will display the current function in the
491;; mode line. It tries do do this through imenu. With a semantic parsed
492;; buffer, there is a much more efficient way of doing this.
493;; Advise `which-function' so that we optionally use semantic tags
494;; instead, and get better stuff.
495(require 'advice)
496
497(defvar semantic-which-function 'semantic-default-which-function
498 "Function to convert semantic tags into `which-function' text.")
499
500(defcustom semantic-which-function-use-color nil
501 "*Use color when displaying the current function with `which-function'."
502 :group 'semantic-imenu
503 :type 'boolean)
504
505(defun semantic-default-which-function (taglist)
506 "Convert TAGLIST into a string usable by `which-function'.
507Returns the first tag name in the list, unless it is a type,
508in which case it concatenates them together."
509 (cond ((eq (length taglist) 1)
510 (semantic-format-tag-abbreviate
511 (car taglist) nil semantic-which-function-use-color))
512 ((memq (semantic-tag-class (car taglist))
513 semantic-imenu-expandable-tag-classes)
514 (concat (semantic-format-tag-name
515 (car taglist) nil semantic-which-function-use-color)
516 (car semantic-type-relation-separator-character)
517 ;; recurse until we no longer have a type
518 ;; or any tags left.
519 (semantic-default-which-function (cdr taglist))))
520 (t (semantic-format-tag-abbreviate
521 (car taglist) nil semantic-which-function-use-color))))
522
523;; (defadvice which-function (around semantic-which activate)
524;; "Choose the function to display via semantic if it is currently active."
525;; (if (and (featurep 'semantic) semantic--buffer-cache)
526;; (let ((ol (semantic-find-tag-by-overlay)))
527;; (setq ad-return-value (funcall semantic-which-function ol)))
528;; ad-do-it))
529
530(provide 'semantic/imenu)
531
532;; Local variables:
533;; generated-autoload-file: "loaddefs.el"
534;; generated-autoload-load-name: "semantic/imenu"
535;; End:
536
537;;; semantic/imenu.el ends here
diff --git a/lisp/cedet/srecode/table.el b/lisp/cedet/srecode/table.el
index 8da38b5f4c4..3d22922d551 100644
--- a/lisp/cedet/srecode/table.el
+++ b/lisp/cedet/srecode/table.el
@@ -66,7 +66,7 @@ Format is from the `file-attributes' function.")
66If this is nil, then this template table belongs to a set of generic 66If this is nil, then this template table belongs to a set of generic
67templates that can be used with no additional dictionary values. 67templates that can be used with no additional dictionary values.
68When it is non-nil, it is assumed the template macros need specialized 68When it is non-nil, it is assumed the template macros need specialized
69Emacs Lisp code to fill in the dictoinary.") 69Emacs Lisp code to fill in the dictionary.")
70 (priority :initarg :priority 70 (priority :initarg :priority
71 :type number 71 :type number
72 :documentation 72 :documentation
diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el
index 3beda28abf2..bdae05e7774 100644
--- a/lisp/emacs-lisp/cl-loaddefs.el
+++ b/lisp/emacs-lisp/cl-loaddefs.el
@@ -273,8 +273,8 @@ Not documented
273 273
274;;;*** 274;;;***
275 275
276;;;### (autoloads (compiler-macroexpand define-compiler-macro assert 276;;;### (autoloads (defsubst* compiler-macroexpand define-compiler-macro
277;;;;;; check-type typep deftype cl-struct-setf-expander defstruct 277;;;;;; assert check-type typep deftype cl-struct-setf-expander defstruct
278;;;;;; define-modify-macro callf2 callf letf* letf rotatef shiftf 278;;;;;; define-modify-macro callf2 callf letf* letf rotatef shiftf
279;;;;;; remf cl-do-pop psetf setf get-setf-method defsetf define-setf-method 279;;;;;; remf cl-do-pop psetf setf get-setf-method defsetf define-setf-method
280;;;;;; declare the locally multiple-value-setq multiple-value-bind 280;;;;;; declare the locally multiple-value-setq multiple-value-bind
@@ -282,7 +282,7 @@ Not documented
282;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist 282;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist
283;;;;;; do* do loop return-from return block etypecase typecase ecase 283;;;;;; do* do loop return-from return block etypecase typecase ecase
284;;;;;; case load-time-value eval-when destructuring-bind function* 284;;;;;; case load-time-value eval-when destructuring-bind function*
285;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "e10a7e42199c08dc39460f67dd2d424b") 285;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "273ba25f4a116c61a464dbe55f1f8c63")
286;;; Generated autoloads from cl-macs.el 286;;; Generated autoloads from cl-macs.el
287 287
288(autoload 'gensym "cl-macs" "\ 288(autoload 'gensym "cl-macs" "\
@@ -739,6 +739,14 @@ Not documented
739 739
740\(fn FORM)" nil nil) 740\(fn FORM)" nil nil)
741 741
742(autoload 'defsubst* "cl-macs" "\
743Define NAME as a function.
744Like `defun', except the function is automatically declared `inline',
745ARGLIST allows full Common Lisp conventions, and BODY is implicitly
746surrounded by (block NAME ...).
747
748\(fn NAME ARGLIST [DOCSTRING] BODY...)" nil (quote macro))
749
742;;;*** 750;;;***
743 751
744;;;### (autoloads (tree-equal nsublis sublis nsubst-if-not nsubst-if 752;;;### (autoloads (tree-equal nsublis sublis nsubst-if-not nsubst-if
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 4e3b1fb72d9..8a60ffdf1fe 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -1,7 +1,7 @@
1;;; cl-macs.el --- Common Lisp macros 1;;; cl-macs.el --- Common Lisp macros
2 2
3;; Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 3;; Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
4;; Free Software Foundation, Inc. 4;; 2009, 2010 Free Software Foundation, Inc.
5 5
6;; Author: Dave Gillespie <daveg@synaptics.com> 6;; Author: Dave Gillespie <daveg@synaptics.com>
7;; Version: 2.02 7;; Version: 2.02
@@ -2596,6 +2596,7 @@ and then returning foo."
2596 (byte-compile-normal-call form) 2596 (byte-compile-normal-call form)
2597 (byte-compile-form form))) 2597 (byte-compile-form form)))
2598 2598
2599;;;###autoload
2599(defmacro defsubst* (name args &rest body) 2600(defmacro defsubst* (name args &rest body)
2600 "Define NAME as a function. 2601 "Define NAME as a function.
2601Like `defun', except the function is automatically declared `inline', 2602Like `defun', except the function is automatically declared `inline',
diff --git a/lisp/emacs-lisp/trace.el b/lisp/emacs-lisp/trace.el
index 9b143cbf18c..194afe10815 100644
--- a/lisp/emacs-lisp/trace.el
+++ b/lisp/emacs-lisp/trace.el
@@ -253,7 +253,7 @@
253For every call of FUNCTION Lisp-style trace messages that display argument 253For every call of FUNCTION Lisp-style trace messages that display argument
254and return values will be inserted into BUFFER. This function generates the 254and return values will be inserted into BUFFER. This function generates the
255trace advice for FUNCTION and activates it together with any other advice 255trace advice for FUNCTION and activates it together with any other advice
256there might be!! The trace BUFFER will popup whenever FUNCTION is called. 256there might be!! The trace BUFFER will popup whenever FUNCTION is called.
257Do not use this to trace functions that switch buffers or do any other 257Do not use this to trace functions that switch buffers or do any other
258display oriented stuff, use `trace-function-background' instead." 258display oriented stuff, use `trace-function-background' instead."
259 (interactive 259 (interactive
diff --git a/lisp/eshell/em-basic.el b/lisp/eshell/em-basic.el
index 775b67a3fa3..a4074011f58 100644
--- a/lisp/eshell/em-basic.el
+++ b/lisp/eshell/em-basic.el
@@ -125,7 +125,7 @@ or `eshell-printn' for display."
125 (eshell-echo args output-newline))) 125 (eshell-echo args output-newline)))
126 126
127(defun eshell/printnl (&rest args) 127(defun eshell/printnl (&rest args)
128 "Print out each of the argument, separated by newlines." 128 "Print out each of the arguments, separated by newlines."
129 (let ((elems (eshell-flatten-list args))) 129 (let ((elems (eshell-flatten-list args)))
130 (while elems 130 (while elems
131 (eshell-printn (eshell-echo (list (car elems)))) 131 (eshell-printn (eshell-echo (list (car elems))))
diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el
index 3104bb11b17..43bc3ffaa6f 100644
--- a/lisp/eshell/em-dirs.el
+++ b/lisp/eshell/em-dirs.el
@@ -178,7 +178,7 @@ thing again."
178Thus, this does not include the current directory.") 178Thus, this does not include the current directory.")
179 179
180(defvar eshell-last-dir-ring nil 180(defvar eshell-last-dir-ring nil
181 "The last directory that eshell was in.") 181 "The last directory that Eshell was in.")
182 182
183;;; Functions: 183;;; Functions:
184 184
@@ -267,7 +267,7 @@ Thus, this does not include the current directory.")
267 (char-to-string (char-before)))) 267 (char-to-string (char-before))))
268 268
269(defun eshell-parse-drive-letter () 269(defun eshell-parse-drive-letter ()
270 "An argument beginning X:[^/] is a drive letter reference." 270 "An argument beginning with X:[^/] is a drive letter reference."
271 (when (and (not eshell-current-argument) 271 (when (and (not eshell-current-argument)
272 (looking-at "\\([A-Za-z]:\\)\\([^/\\\\]\\|\\'\\)")) 272 (looking-at "\\([A-Za-z]:\\)\\([^/\\\\]\\|\\'\\)"))
273 (goto-char (match-end 1)) 273 (goto-char (match-end 1))
@@ -517,7 +517,7 @@ in the minibuffer:
517 msg))) 517 msg)))
518 518
519(defun eshell-read-last-dir-ring () 519(defun eshell-read-last-dir-ring ()
520 "Sets the buffer's `eshell-last-dir-ring' from a history file." 520 "Set the buffer's `eshell-last-dir-ring' from a history file."
521 (let ((file eshell-last-dir-ring-file-name)) 521 (let ((file eshell-last-dir-ring-file-name))
522 (cond 522 (cond
523 ((or (null file) 523 ((or (null file)
@@ -545,7 +545,7 @@ in the minibuffer:
545 (setq eshell-last-dir-ring ring)))))) 545 (setq eshell-last-dir-ring ring))))))
546 546
547(defun eshell-write-last-dir-ring () 547(defun eshell-write-last-dir-ring ()
548 "Writes the buffer's `eshell-last-dir-ring' to a history file." 548 "Write the buffer's `eshell-last-dir-ring' to a history file."
549 (let ((file eshell-last-dir-ring-file-name)) 549 (let ((file eshell-last-dir-ring-file-name))
550 (cond 550 (cond
551 ((or (null file) 551 ((or (null file)
diff --git a/lisp/faces.el b/lisp/faces.el
index a5bc7b1c965..900e96ed048 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -590,7 +590,7 @@ the default for new frames (this is done automatically each time an
590attribute is changed on all frames). 590attribute is changed on all frames).
591 591
592ARGS must come in pairs ATTRIBUTE VALUE. ATTRIBUTE must be a valid 592ARGS must come in pairs ATTRIBUTE VALUE. ATTRIBUTE must be a valid
593face attribute name. All attributes can be set to `unspecified'; 593face attribute name. All attributes can be set to `unspecified';
594this fact is not further mentioned below. 594this fact is not further mentioned below.
595 595
596The following attributes are recognized: 596The following attributes are recognized:
@@ -988,9 +988,9 @@ Otherwise, return a single face."
988(defun face-valid-attribute-values (attribute &optional frame) 988(defun face-valid-attribute-values (attribute &optional frame)
989 "Return valid values for face attribute ATTRIBUTE. 989 "Return valid values for face attribute ATTRIBUTE.
990The optional argument FRAME is used to determine available fonts 990The optional argument FRAME is used to determine available fonts
991and colors. If it is nil or not specified, the selected frame is 991and colors. If it is nil or not specified, the selected frame is used.
992used. Value is an alist of (NAME . VALUE) if ATTRIBUTE expects a value 992Value is an alist of (NAME . VALUE) if ATTRIBUTE expects a value out
993out of a set of discrete values. Value is `integerp' if ATTRIBUTE expects 993of a set of discrete values. Value is `integerp' if ATTRIBUTE expects
994an integer value." 994an integer value."
995 (let ((valid 995 (let ((valid
996 (case attribute 996 (case attribute
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 88c2280f6a3..20a8cb63997 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,11 @@
12010-03-24 Juanma Barranquero <lekktu@gmail.com>
2
3 * message.el (message-interactive): Doc fix.
4 (message-qmail-inject-args): Reflow.
5 (message-kill-to-signature): Fix typo in docstring.
6
7 * smiley.el (smiley-buffer): Fix typo in docstring.
8
12010-03-24 Glenn Morris <rgm@gnu.org> 92010-03-24 Glenn Morris <rgm@gnu.org>
2 10
3 * mail-source.el (gnus-message): Declare. 11 * mail-source.el (gnus-message): Declare.
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 03a4a40a66f..d64a3aa0244 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -440,7 +440,7 @@ whitespace)."
440;; Default to the value of `mail-interactive', available in all Emacsen 440;; Default to the value of `mail-interactive', available in all Emacsen
441;; that Gnus supports. 441;; that Gnus supports.
442 "Non-nil means when sending a message wait for and display errors. 442 "Non-nil means when sending a message wait for and display errors.
443nil means let mailer mail back a message to report errors." 443A value of nil means let mailer mail back a message to report errors."
444 :version "23.2" 444 :version "23.2"
445 :group 'message-sending 445 :group 'message-sending
446 :group 'message-mail 446 :group 'message-mail
@@ -861,8 +861,8 @@ If this is nil, use `user-mail-address'. If it is the symbol
861 861
862(defcustom message-qmail-inject-args nil 862(defcustom message-qmail-inject-args nil
863 "Arguments passed to qmail-inject programs. 863 "Arguments passed to qmail-inject programs.
864This should be a list of strings, one string for each argument. It 864This should be a list of strings, one string for each argument.
865may also be a function. 865It may also be a function.
866 866
867For e.g., if you wish to set the envelope sender address so that bounces 867For e.g., if you wish to set the envelope sender address so that bounces
868go to the right place or to deal with listserv's usage of that address, you 868go to the right place or to deal with listserv's usage of that address, you
@@ -3254,7 +3254,7 @@ or in the synonym headers, defined by `message-header-synonyms'."
3254 3254
3255(defun message-kill-to-signature (&optional arg) 3255(defun message-kill-to-signature (&optional arg)
3256 "Kill all text up to the signature. 3256 "Kill all text up to the signature.
3257If a numberic argument or prefix arg is given, leave that number 3257If a numeric argument or prefix arg is given, leave that number
3258of lines before the signature intact." 3258of lines before the signature intact."
3259 (interactive "P") 3259 (interactive "P")
3260 (save-excursion 3260 (save-excursion
diff --git a/lisp/gnus/smiley.el b/lisp/gnus/smiley.el
index 8e79dd58125..fbe71e7725f 100644
--- a/lisp/gnus/smiley.el
+++ b/lisp/gnus/smiley.el
@@ -196,8 +196,8 @@ A list of images is returned."
196 196
197;;;###autoload 197;;;###autoload
198(defun smiley-buffer (&optional buffer) 198(defun smiley-buffer (&optional buffer)
199 "Run `smiley-region' at the buffer, specified in the argument or 199 "Run `smiley-region' at the BUFFER, specified in the argument or
200interactively. If there's no argument, do it at the current buffer" 200interactively. If there's no argument, do it at the current buffer."
201 (interactive "bBuffer to run smiley-region: ") 201 (interactive "bBuffer to run smiley-region: ")
202 (save-excursion 202 (save-excursion
203 (if buffer 203 (if buffer
diff --git a/lisp/image-dired.el b/lisp/image-dired.el
index 8eb1d127819..f006e2e9edd 100644
--- a/lisp/image-dired.el
+++ b/lisp/image-dired.el
@@ -801,7 +801,7 @@ you have the dired buffer in the left window and the
801With optional argument APPEND, append thumbnail to thumbnail buffer 801With optional argument APPEND, append thumbnail to thumbnail buffer
802instead of erasing it first. 802instead of erasing it first.
803 803
804Option argument DO-NOT-POP controls if `pop-to-buffer' should be 804Optional argument DO-NOT-POP controls if `pop-to-buffer' should be
805used or not. If non-nil, use `display-buffer' instead of 805used or not. If non-nil, use `display-buffer' instead of
806`pop-to-buffer'. This is used from functions like 806`pop-to-buffer'. This is used from functions like
807`image-dired-next-line-and-display' and 807`image-dired-next-line-and-display' and
@@ -2113,8 +2113,7 @@ FILE-COMMENTS is an alist on the following form:
2113 2113
2114(defun image-dired-read-comment (&optional file) 2114(defun image-dired-read-comment (&optional file)
2115 "Read comment for an image. 2115 "Read comment for an image.
2116Read comment for an image, optionally using old comment from FILE 2116Optionally use old comment from FILE as initial value."
2117as initial value."
2118 (let ((comment 2117 (let ((comment
2119 (read-string 2118 (read-string
2120 "Comment: " 2119 "Comment: "
diff --git a/lisp/indent.el b/lisp/indent.el
index 3f8353bd90c..adecbfaeb12 100644
--- a/lisp/indent.el
+++ b/lisp/indent.el
@@ -85,8 +85,10 @@ special; we don't actually use them here."
85(defun indent-for-tab-command (&optional arg) 85(defun indent-for-tab-command (&optional arg)
86 "Indent line or region in proper way for current major mode or insert a tab. 86 "Indent line or region in proper way for current major mode or insert a tab.
87Depending on `tab-always-indent', either insert a tab or indent. 87Depending on `tab-always-indent', either insert a tab or indent.
88If initial point was within line's indentation, position after 88
89the indentation. Else stay at same point in text. 89In most major modes, if point was in the current line's indentation,
90it is moved to the first non-whitespace character after indenting;
91otherwise it stays at the same position in the text.
90 92
91If a prefix argument is given, also rigidly indent the entire 93If a prefix argument is given, also rigidly indent the entire
92balanced expression which starts at the beginning of the current 94balanced expression which starts at the beginning of the current
diff --git a/lisp/json.el b/lisp/json.el
index 39c1fd32337..6228b99f3e2 100644
--- a/lisp/json.el
+++ b/lisp/json.el
@@ -62,12 +62,12 @@
62 62
63(defvar json-object-type 'alist 63(defvar json-object-type 'alist
64 "Type to convert JSON objects to. 64 "Type to convert JSON objects to.
65Must be one of `alist', `plist', or `hash-table'. Consider let-binding 65Must be one of `alist', `plist', or `hash-table'. Consider let-binding
66this around your call to `json-read' instead of `setq'ing it.") 66this around your call to `json-read' instead of `setq'ing it.")
67 67
68(defvar json-array-type 'vector 68(defvar json-array-type 'vector
69 "Type to convert JSON arrays to. 69 "Type to convert JSON arrays to.
70Must be one of `vector' or `list'. Consider let-binding this around 70Must be one of `vector' or `list'. Consider let-binding this around
71your call to `json-read' instead of `setq'ing it.") 71your call to `json-read' instead of `setq'ing it.")
72 72
73(defvar json-key-type nil 73(defvar json-key-type nil
@@ -83,19 +83,19 @@ If nil, `json-read' will guess the type based on the value of
83 `plist' `keyword' 83 `plist' `keyword'
84 84
85Note that values other than `string' might behave strangely for 85Note that values other than `string' might behave strangely for
86Sufficiently Weird keys. Consider let-binding this around your call to 86Sufficiently Weird keys. Consider let-binding this around your call to
87`json-read' instead of `setq'ing it.") 87`json-read' instead of `setq'ing it.")
88 88
89(defvar json-false :json-false 89(defvar json-false :json-false
90 "Value to use when reading JSON `false'. 90 "Value to use when reading JSON `false'.
91If this has the same value as `json-null', you might not be able to tell 91If this has the same value as `json-null', you might not be able to tell
92the difference between `false' and `null'. Consider let-binding this 92the difference between `false' and `null'. Consider let-binding this
93around your call to `json-read' instead of `setq'ing it.") 93around your call to `json-read' instead of `setq'ing it.")
94 94
95(defvar json-null nil 95(defvar json-null nil
96 "Value to use when reading JSON `null'. 96 "Value to use when reading JSON `null'.
97If this has the same value as `json-false', you might not be able to 97If this has the same value as `json-false', you might not be able to
98tell the difference between `false' and `null'. Consider let-binding 98tell the difference between `false' and `null'. Consider let-binding
99this around your call to `json-read' instead of `setq'ing it.") 99this around your call to `json-read' instead of `setq'ing it.")
100 100
101 101
@@ -218,7 +218,7 @@ KEYWORD is the keyword expected."
218 218
219(defun json-read-number (&optional sign) 219(defun json-read-number (&optional sign)
220 "Read the JSON number following point. 220 "Read the JSON number following point.
221The optional SIGN argument is for internal use. 221The optional SIGN argument is for internal use.
222 222
223N.B.: Only numbers which can fit in Emacs Lisp's native number 223N.B.: Only numbers which can fit in Emacs Lisp's native number
224representation will be parsed correctly." 224representation will be parsed correctly."
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index 8d315b30404..d8d7d1a6269 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -141,7 +141,7 @@ South Indian language Malayalam is supported in this language environment."))
141(defconst devanagari-composable-pattern 141(defconst devanagari-composable-pattern
142 (let ((table 142 (let ((table
143 '(("V" . "[\u0904-\u0914\u0960-\u0961\u0972]") ; independent vowel 143 '(("V" . "[\u0904-\u0914\u0960-\u0961\u0972]") ; independent vowel
144 ("C" . "[\u0915-\u0939]") ; consonant 144 ("C" . "[\u0915-\u0939\u0958-\u095F\u097B-\u097C\u097E-\u097F]") ; consonant
145 ("R" . "\u0930") ; RA 145 ("R" . "\u0930") ; RA
146 ("n" . "\u093C") ; NUKTA 146 ("n" . "\u093C") ; NUKTA
147 ("H" . "\u094D") ; HALANT 147 ("H" . "\u094D") ; HALANT
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index a737b99c29e..630c729703b 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -381,6 +381,20 @@ The variable `rmail-highlighted-headers' specifies which headers."
381 :group 'rmail-headers 381 :group 'rmail-headers
382 :version "22.1") 382 :version "22.1")
383 383
384;; This was removed in Emacs 23.1 with no notification, an unnecessary
385;; incompatible change.
386(defcustom rmail-highlight-face 'rmail-highlight
387 "Face used by Rmail for highlighting headers."
388 ;; Note that nil doesn't actually mean use the default face, it
389 ;; means use either bold or highlight. It's not worth fixing this
390 ;; now that this is obsolete.
391 :type '(choice (const :tag "Default" nil)
392 face)
393 :group 'rmail-headers)
394(make-obsolete-variable 'rmail-highlight-face
395 "customize the face `rmail-highlight' instead."
396 "23.2")
397
384(defface rmail-header-name 398(defface rmail-header-name
385 '((t (:inherit font-lock-function-name-face))) 399 '((t (:inherit font-lock-function-name-face)))
386 "Face to use for highlighting the header names. 400 "Face to use for highlighting the header names.
@@ -2883,7 +2897,7 @@ using the coding system CODING."
2883 2897
2884(defun rmail-highlight-headers () 2898(defun rmail-highlight-headers ()
2885 "Highlight the headers specified by `rmail-highlighted-headers'. 2899 "Highlight the headers specified by `rmail-highlighted-headers'.
2886Uses the face `rmail-highlight'." 2900Uses the face specified by `rmail-highlight-face'."
2887 (if rmail-highlighted-headers 2901 (if rmail-highlighted-headers
2888 (save-excursion 2902 (save-excursion
2889 (search-forward "\n\n" nil 'move) 2903 (search-forward "\n\n" nil 'move)
@@ -2891,6 +2905,11 @@ Uses the face `rmail-highlight'."
2891 (narrow-to-region (point-min) (point)) 2905 (narrow-to-region (point-min) (point))
2892 (let ((case-fold-search t) 2906 (let ((case-fold-search t)
2893 (inhibit-read-only t) 2907 (inhibit-read-only t)
2908 ;; When rmail-highlight-face is removed, just
2909 ;; use 'rmail-highlight here.
2910 (face (or rmail-highlight-face
2911 (if (face-differs-from-default-p 'bold)
2912 'bold 'highlight)))
2894 ;; List of overlays to reuse. 2913 ;; List of overlays to reuse.
2895 (overlays rmail-overlay-list)) 2914 (overlays rmail-overlay-list))
2896 (goto-char (point-min)) 2915 (goto-char (point-min))
@@ -2909,12 +2928,12 @@ Uses the face `rmail-highlight'."
2909 (progn 2928 (progn
2910 (setq overlay (car overlays) 2929 (setq overlay (car overlays)
2911 overlays (cdr overlays)) 2930 overlays (cdr overlays))
2912 (overlay-put overlay 'face 'rmail-highlight) 2931 (overlay-put overlay 'face face)
2913 (move-overlay overlay beg (point))) 2932 (move-overlay overlay beg (point)))
2914 ;; Make a new overlay and add it to 2933 ;; Make a new overlay and add it to
2915 ;; rmail-overlay-list. 2934 ;; rmail-overlay-list.
2916 (setq overlay (make-overlay beg (point))) 2935 (setq overlay (make-overlay beg (point)))
2917 (overlay-put overlay 'face 'rmail-highlight) 2936 (overlay-put overlay 'face face)
2918 (setq rmail-overlay-list 2937 (setq rmail-overlay-list
2919 (cons overlay rmail-overlay-list)))))))))) 2938 (cons overlay rmail-overlay-list))))))))))
2920 2939
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index 4405249d981..4584aa0bbd7 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,3 +1,15 @@
12010-03-24 Juanma Barranquero <lekktu@gmail.com>
2
3 * mh-scan.el (mh-scan-cmd-note-width): Doc fix.
4 (mh-scan-format-mh, mh-scan-body-regexp, mh-scan-cur-msg-number-regexp)
5 (mh-scan-cur-msg-number-regexp, mh-scan-date-regexp)
6 (mh-scan-deleted-msg-regexp, mh-scan-good-msg-regexp)
7 (mh-scan-msg-format-regexp, mh-scan-msg-format-string)
8 (mh-scan-msg-number-regexp, mh-scan-rcpt-regexp)
9 (mh-scan-refiled-msg-regexp, mh-scan-sent-to-me-sender-regexp)
10 (mh-scan-subject-regexp, mh-update-scan-format)
11 (mh-msg-num-width-to-column): Fix typos in docstrings.
12
12010-03-10 Chong Yidong <cyd@stupidchicken.com> 132010-03-10 Chong Yidong <cyd@stupidchicken.com>
2 14
3 * Branch for 23.2. 15 * Branch for 23.2.
diff --git a/lisp/mh-e/mh-scan.el b/lisp/mh-e/mh-scan.el
index fd812c80f47..5f5a84f07a6 100644
--- a/lisp/mh-e/mh-scan.el
+++ b/lisp/mh-e/mh-scan.el
@@ -61,7 +61,7 @@
61 "%{subject}%<{body}<<%{body}%>") 61 "%{subject}%<{body}<<%{body}%>")
62 "*Scan format string for MH. 62 "*Scan format string for MH.
63This string is passed to the scan program via the -format 63This string is passed to the scan program via the -format
64argument. This format is identical to the default except that 64argument. This format is identical to the default except that
65additional hints for fontification have been added to the fifth 65additional hints for fontification have been added to the fifth
66column (remember that in Emacs, the first column is 0). 66column (remember that in Emacs, the first column is 0).
67 67
@@ -109,14 +109,14 @@ non-empty Newsgroups: field is present.")
109Note that the default setting of `mh-folder-font-lock-keywords' 109Note that the default setting of `mh-folder-font-lock-keywords'
110expects this expression to contain at least one parenthesized 110expects this expression to contain at least one parenthesized
111expression which matches the body text as in the default of 111expression which matches the body text as in the default of
112\"\\\\(<<\\\\([^\\n]+\\\\)?\\\\)\". If this regular expression is 112\"\\\\(<<\\\\([^\\n]+\\\\)?\\\\)\". If this regular expression is
113not correct, the body fragment will not be highlighted with the 113not correct, the body fragment will not be highlighted with the
114face `mh-folder-body'.") 114face `mh-folder-body'.")
115 115
116(defvar mh-scan-cur-msg-number-regexp "^\\( *[0-9]+\\+\\).*" 116(defvar mh-scan-cur-msg-number-regexp "^\\( *[0-9]+\\+\\).*"
117 "This regular expression matches the current message. 117 "This regular expression matches the current message.
118 118
119It must match from the beginning of the line. Note that the 119It must match from the beginning of the line. Note that the
120default setting of `mh-folder-font-lock-keywords' expects this 120default setting of `mh-folder-font-lock-keywords' expects this
121expression to contain at least one parenthesized expression which 121expression to contain at least one parenthesized expression which
122matches the message number as in the default of 122matches the message number as in the default of
@@ -125,9 +125,9 @@ matches the message number as in the default of
125 125
126This expression includes the leading space and current message 126This expression includes the leading space and current message
127marker \"+\" within the parenthesis since it looks better to 127marker \"+\" within the parenthesis since it looks better to
128highlight these items as well. The highlighting is done with the 128highlight these items as well. The highlighting is done with the
129face `mh-folder-cur-msg-number'. This regular expression should 129face `mh-folder-cur-msg-number'. This regular expression should
130be correct as it is needed by non-fontification functions. See 130be correct as it is needed by non-fontification functions. See
131also `mh-note-cur'.") 131also `mh-note-cur'.")
132 132
133(defvar mh-scan-date-regexp "\\([0-9][0-9]/[0-9][0-9]\\)" 133(defvar mh-scan-date-regexp "\\([0-9][0-9]/[0-9][0-9]\\)"
@@ -137,14 +137,14 @@ It must not be anchored to the beginning or the end of the line.
137Note that the default setting of `mh-folder-font-lock-keywords' 137Note that the default setting of `mh-folder-font-lock-keywords'
138expects this expression to contain only one parenthesized 138expects this expression to contain only one parenthesized
139expression which matches the date field as in the default of 139expression which matches the date field as in the default of
140\"\\\\([0-9][0-9]/[0-9][0-9]\\\\)\"}. If this regular expression 140\"\\\\([0-9][0-9]/[0-9][0-9]\\\\)\"}. If this regular expression
141is not correct, the date will not be highlighted with the face 141is not correct, the date will not be highlighted with the face
142`mh-folder-date'.") 142`mh-folder-date'.")
143 143
144(defvar mh-scan-deleted-msg-regexp "^\\( *[0-9]+\\)D" 144(defvar mh-scan-deleted-msg-regexp "^\\( *[0-9]+\\)D"
145 "This regular expression matches deleted messages. 145 "This regular expression matches deleted messages.
146 146
147It must match from the beginning of the line. Note that the 147It must match from the beginning of the line. Note that the
148default setting of `mh-folder-font-lock-keywords' expects this 148default setting of `mh-folder-font-lock-keywords' expects this
149expression to contain at least one parenthesized expression which 149expression to contain at least one parenthesized expression which
150matches the message number as in the default of 150matches the message number as in the default of
@@ -152,15 +152,15 @@ matches the message number as in the default of
152 \"^\\\\( *[0-9]+\\\\)D\". 152 \"^\\\\( *[0-9]+\\\\)D\".
153 153
154This expression includes the leading space within the parenthesis 154This expression includes the leading space within the parenthesis
155since it looks better to highlight it as well. The highlighting 155since it looks better to highlight it as well. The highlighting
156is done with the face `mh-folder-deleted'. This regular 156is done with the face `mh-folder-deleted'. This regular
157expression should be correct as it is needed by non-fontification 157expression should be correct as it is needed by non-fontification
158functions. See also `mh-note-deleted'.") 158functions. See also `mh-note-deleted'.")
159 159
160(defvar mh-scan-good-msg-regexp "^\\( *[0-9]+\\)[^D^0-9]" 160(defvar mh-scan-good-msg-regexp "^\\( *[0-9]+\\)[^D^0-9]"
161 "This regular expression matches \"good\" messages. 161 "This regular expression matches \"good\" messages.
162 162
163It must match from the beginning of the line. Note that the 163It must match from the beginning of the line. Note that the
164default setting of `mh-folder-font-lock-keywords' expects this 164default setting of `mh-folder-font-lock-keywords' expects this
165expression to contain at least one parenthesized expression which 165expression to contain at least one parenthesized expression which
166matches the message number as in the default of 166matches the message number as in the default of
@@ -168,8 +168,8 @@ matches the message number as in the default of
168 \"^\\\\( *[0-9]+\\\\)[^D^0-9]\". 168 \"^\\\\( *[0-9]+\\\\)[^D^0-9]\".
169 169
170This expression includes the leading space within the parenthesis 170This expression includes the leading space within the parenthesis
171since it looks better to highlight it as well. The highlighting 171since it looks better to highlight it as well. The highlighting
172is done with the face `mh-folder-msg-number'. This regular 172is done with the face `mh-folder-msg-number'. This regular
173expression should be correct as it is needed by non-fontification 173expression should be correct as it is needed by non-fontification
174functions.") 174functions.")
175 175
@@ -177,21 +177,21 @@ functions.")
177 "This regular expression finds the message number width in a scan format. 177 "This regular expression finds the message number width in a scan format.
178 178
179Note that the message number must be placed in a parenthesized 179Note that the message number must be placed in a parenthesized
180expression as in the default of \"%\\\\([0-9]*\\\\)(msg)\". This 180expression as in the default of \"%\\\\([0-9]*\\\\)(msg)\". This
181variable is only consulted if `mh-scan-format-file' is set to 181variable is only consulted if `mh-scan-format-file' is set to
182\"Use MH-E scan Format\".") 182\"Use MH-E scan Format\".")
183 183
184(defvar mh-scan-msg-format-string "%d" 184(defvar mh-scan-msg-format-string "%d"
185 "This is a format string for width of the message number in a scan format. 185 "This is a format string for width of the message number in a scan format.
186 186
187Use \"0%d\" for zero-filled message numbers. This variable is only 187Use \"0%d\" for zero-filled message numbers. This variable is only
188consulted if `mh-scan-format-file' is set to \"Use MH-E scan 188consulted if `mh-scan-format-file' is set to \"Use MH-E scan
189Format\".") 189Format\".")
190 190
191(defvar mh-scan-msg-number-regexp "^ *\\([0-9]+\\)" 191(defvar mh-scan-msg-number-regexp "^ *\\([0-9]+\\)"
192 "This regular expression extracts the message number. 192 "This regular expression extracts the message number.
193 193
194It must match from the beginning of the line. Note that the 194It must match from the beginning of the line. Note that the
195message number must be placed in a parenthesized expression as in 195message number must be placed in a parenthesized expression as in
196the default of \"^ *\\\\([0-9]+\\\\)\".") 196the default of \"^ *\\\\([0-9]+\\\\)\".")
197 197
@@ -211,9 +211,9 @@ message number within the expression as in the default of
211Note that the default setting of `mh-folder-font-lock-keywords' 211Note that the default setting of `mh-folder-font-lock-keywords'
212expects this expression to contain two parenthesized expressions. 212expects this expression to contain two parenthesized expressions.
213The first is expected to match the \"To:\" that the default scan 213The first is expected to match the \"To:\" that the default scan
214format file generates. The second is expected to match the 214format file generates. The second is expected to match the
215recipient's name as in the default of 215recipient's name as in the default of
216\"\\\\(To:\\\\)\\\\(..............\\\\)\". If this regular 216\"\\\\(To:\\\\)\\\\(..............\\\\)\". If this regular
217expression is not correct, the \"To:\" string will not be 217expression is not correct, the \"To:\" string will not be
218highlighted with the face `mh-folder-to' and the recipient will 218highlighted with the face `mh-folder-to' and the recipient will
219not be highlighted with the face `mh-folder-address'") 219not be highlighted with the face `mh-folder-address'")
@@ -221,7 +221,7 @@ not be highlighted with the face `mh-folder-address'")
221(defvar mh-scan-refiled-msg-regexp "^\\( *[0-9]+\\)\\^" 221(defvar mh-scan-refiled-msg-regexp "^\\( *[0-9]+\\)\\^"
222 "This regular expression matches refiled messages. 222 "This regular expression matches refiled messages.
223 223
224It must match from the beginning of the line. Note that the 224It must match from the beginning of the line. Note that the
225default setting of `mh-folder-font-lock-keywords' expects this 225default setting of `mh-folder-font-lock-keywords' expects this
226expression to contain at least one parenthesized expression which 226expression to contain at least one parenthesized expression which
227matches the message number as in the default of 227matches the message number as in the default of
@@ -229,10 +229,10 @@ matches the message number as in the default of
229 \"^\\\\( *[0-9]+\\\\)\\\\^\". 229 \"^\\\\( *[0-9]+\\\\)\\\\^\".
230 230
231This expression includes the leading space within the parenthesis 231This expression includes the leading space within the parenthesis
232since it looks better to highlight it as well. The highlighting 232since it looks better to highlight it as well. The highlighting
233is done with the face `mh-folder-refiled'. This regular 233is done with the face `mh-folder-refiled'. This regular
234expression should be correct as it is needed by non-fontification 234expression should be correct as it is needed by non-fontification
235functions. See also `mh-note-refiled'.") 235functions. See also `mh-note-refiled'.")
236 236
237(defvar mh-scan-sent-to-me-sender-regexp 237(defvar mh-scan-sent-to-me-sender-regexp
238 "^ *[0-9]+.\\([bct]\\).....[ ]*\\(..................\\)" 238 "^ *[0-9]+.\\([bct]\\).....[ ]*\\(..................\\)"
@@ -240,7 +240,7 @@ functions. See also `mh-note-refiled'.")
240 240
241Note that the default setting of `mh-folder-font-lock-keywords' 241Note that the default setting of `mh-folder-font-lock-keywords'
242expects this expression to contain at least two parenthesized 242expects this expression to contain at least two parenthesized
243expressions. The first should match the fontification hint (see 243expressions. The first should match the fontification hint (see
244`mh-scan-format-nmh') and the second should match the user name 244`mh-scan-format-nmh') and the second should match the user name
245as in the default of 245as in the default of
246 246
@@ -255,15 +255,15 @@ highlighted with the face `mh-folder-sent-to-me-sender'.")
255 "^ *[0-9]+........[ ]*...................\\([Rr][Ee]\\(\\[[0-9]+\\]\\)?:\\s-*\\)*\\([^<\n]*\\)" 255 "^ *[0-9]+........[ ]*...................\\([Rr][Ee]\\(\\[[0-9]+\\]\\)?:\\s-*\\)*\\([^<\n]*\\)"
256 "This regular expression matches the subject. 256 "This regular expression matches the subject.
257 257
258It must match from the beginning of the line. Note that the 258It must match from the beginning of the line. Note that the
259default setting of `mh-folder-font-lock-keywords' expects this 259default setting of `mh-folder-font-lock-keywords' expects this
260expression to contain at least three parenthesized expressions. 260expression to contain at least three parenthesized expressions.
261The first is expected to match the \"Re:\" string, if any, and is 261The first is expected to match the \"Re:\" string, if any, and is
262highlighted with the face `mh-folder-followup'. The second 262highlighted with the face `mh-folder-followup'. The second
263matches an optional bracketed number after \"Re:\", such as in 263matches an optional bracketed number after \"Re:\", such as in
264\"Re[2]:\" (and is thus a sub-expression of the first expression) 264\"Re[2]:\" (and is thus a sub-expression of the first expression)
265and the third is expected to match the subject line itself which 265and the third is expected to match the subject line itself which
266is highlighted with the face `mh-folder-subject'. For example, 266is highlighted with the face `mh-folder-subject'. For example,
267the default (broken on multiple lines for readability) is 267the default (broken on multiple lines for readability) is
268 268
269 ^ *[0-9]+........[ ]*................... 269 ^ *[0-9]+........[ ]*...................
@@ -296,9 +296,9 @@ Note that columns in Emacs start with 0.")
296(defvar mh-scan-cmd-note-width 1 296(defvar mh-scan-cmd-note-width 1
297 "Number of columns consumed by the cmd-note field in `mh-scan-format'. 297 "Number of columns consumed by the cmd-note field in `mh-scan-format'.
298 298
299This column will have one of the values: \" \", \"D\", \"^\", \"+\" and 299This column will have one of the values: \" \", \"D\", \"^\", \"+\", where
300where \" \" is the default value,
301 300
301 \" \" is the default value,
302 \"D\" is the `mh-note-deleted' character, 302 \"D\" is the `mh-note-deleted' character,
303 \"^\" is the `mh-note-refiled' character, and 303 \"^\" is the `mh-note-refiled' character, and
304 \"+\" is the `mh-note-cur' character.") 304 \"+\" is the `mh-note-cur' character.")
@@ -434,7 +434,7 @@ Note that columns in Emacs start with 0."
434 "Return a scan format with the (msg) width in the FMT replaced with WIDTH. 434 "Return a scan format with the (msg) width in the FMT replaced with WIDTH.
435 435
436The message number width portion of the format is discovered 436The message number width portion of the format is discovered
437using `mh-scan-msg-format-regexp'. Its replacement is controlled 437using `mh-scan-msg-format-regexp'. Its replacement is controlled
438with `mh-scan-msg-format-string'." 438with `mh-scan-msg-format-string'."
439 (or (and 439 (or (and
440 (string-match mh-scan-msg-format-regexp fmt) 440 (string-match mh-scan-msg-format-regexp fmt)
@@ -469,7 +469,7 @@ Note that columns in Emacs start with 0.
469 469
470If `mh-scan-format-file' is set to \"Use MH-E scan Format\" this 470If `mh-scan-format-file' is set to \"Use MH-E scan Format\" this
471means that either `mh-scan-format-mh' or `mh-scan-format-nmh' are 471means that either `mh-scan-format-mh' or `mh-scan-format-nmh' are
472in use. This function therefore assumes that the first column is 472in use. This function therefore assumes that the first column is
473empty (to provide room for the cursor), the following WIDTH 473empty (to provide room for the cursor), the following WIDTH
474columns contain the message number, and the column for notations 474columns contain the message number, and the column for notations
475comes after that." 475comes after that."
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 94effe57994..154cc37e9a1 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -1102,12 +1102,12 @@ variables.")
1102 (exit-minibuffer)) 1102 (exit-minibuffer))
1103 1103
1104(defvar completion-in-region-functions nil 1104(defvar completion-in-region-functions nil
1105 "Wrapper hook around `complete-in-region'. 1105 "Wrapper hook around `completion-in-region'.
1106The functions on this special hook are called with 5 arguments: 1106The functions on this special hook are called with 5 arguments:
1107 NEXT-FUN START END COLLECTION PREDICATE. 1107 NEXT-FUN START END COLLECTION PREDICATE.
1108NEXT-FUN is a function of four arguments (START END COLLECTION PREDICATE) 1108NEXT-FUN is a function of four arguments (START END COLLECTION PREDICATE)
1109that performs the default operation. The other four argument are like 1109that performs the default operation. The other four arguments are like
1110the ones passed to `complete-in-region'. The functions on this hook 1110the ones passed to `completion-in-region'. The functions on this hook
1111are expected to perform completion on START..END using COLLECTION 1111are expected to perform completion on START..END using COLLECTION
1112and PREDICATE, either by calling NEXT-FUN or by doing it themselves.") 1112and PREDICATE, either by calling NEXT-FUN or by doing it themselves.")
1113 1113
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 8a3ec552d4d..b025493b1a4 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -6295,7 +6295,7 @@ only in DIRLIST.
6295Returns the absolute file name of PROGNAME, if found, and nil otherwise. 6295Returns the absolute file name of PROGNAME, if found, and nil otherwise.
6296 6296
6297This function expects to be in the right *tramp* buffer." 6297This function expects to be in the right *tramp* buffer."
6298 (with-current-buffer (tramp-get-buffer vec) 6298 (with-current-buffer (tramp-get-connection-buffer vec)
6299 (let (result) 6299 (let (result)
6300 ;; Check whether the executable is in $PATH. "which(1)" does not 6300 ;; Check whether the executable is in $PATH. "which(1)" does not
6301 ;; report always a correct error code; therefore we check the 6301 ;; report always a correct error code; therefore we check the
@@ -6303,7 +6303,7 @@ This function expects to be in the right *tramp* buffer."
6303 (unless ignore-path 6303 (unless ignore-path
6304 (tramp-send-command vec (format "which \\%s | wc -w" progname)) 6304 (tramp-send-command vec (format "which \\%s | wc -w" progname))
6305 (goto-char (point-min)) 6305 (goto-char (point-min))
6306 (if (looking-at "^1$") 6306 (if (looking-at "^\\s-*1$")
6307 (setq result (concat "\\" progname)))) 6307 (setq result (concat "\\" progname))))
6308 (unless result 6308 (unless result
6309 (when ignore-tilde 6309 (when ignore-tilde
@@ -6404,12 +6404,15 @@ file exists and nonzero exit status otherwise."
6404 (with-current-buffer (tramp-get-buffer vec) 6404 (with-current-buffer (tramp-get-buffer vec)
6405 (tramp-send-command vec "echo ~root" t) 6405 (tramp-send-command vec "echo ~root" t)
6406 (cond 6406 (cond
6407 ((string-match "^~root$" (buffer-string)) 6407 ((or (string-match "^~root$" (buffer-string))
6408 ;; The default shell (ksh93) of OpenSolaris is buggy.
6409 (string-equal (tramp-get-connection-property vec "uname" "")
6410 "SunOS 5.11"))
6408 (setq shell 6411 (setq shell
6409 (or (tramp-find-executable 6412 (or (tramp-find-executable
6410 vec "bash" (tramp-get-remote-path vec) t) 6413 vec "bash" (tramp-get-remote-path vec) t t)
6411 (tramp-find-executable 6414 (tramp-find-executable
6412 vec "ksh" (tramp-get-remote-path vec) t))) 6415 vec "ksh" (tramp-get-remote-path vec) t t)))
6413 (unless shell 6416 (unless shell
6414 (tramp-error 6417 (tramp-error
6415 vec 'file-error 6418 vec 'file-error
@@ -6838,9 +6841,11 @@ process to set up. VEC specifies the connection."
6838 ;; "test foo; echo $?" to check if various conditions hold, and 6841 ;; "test foo; echo $?" to check if various conditions hold, and
6839 ;; there are buggy /bin/sh implementations which don't execute the 6842 ;; there are buggy /bin/sh implementations which don't execute the
6840 ;; "echo $?" part if the "test" part has an error. In particular, 6843 ;; "echo $?" part if the "test" part has an error. In particular,
6841 ;; the Solaris /bin/sh is a problem. I'm betting that all systems 6844 ;; the OpenSolaris /bin/sh is a problem. There are also other
6842 ;; with buggy /bin/sh implementations will have a working bash or 6845 ;; problems with /bin/sh of OpenSolaris, like redirection of stderr
6843 ;; ksh. Whee... 6846 ;; in in function declarations, or changing HISTFILE in place.
6847 ;; Therefore, OpenSolaris' /bin/sh is replaced by bash, when
6848 ;; detected.
6844 (tramp-find-shell vec) 6849 (tramp-find-shell vec)
6845 6850
6846 ;; Disable unexpected output. 6851 ;; Disable unexpected output.
@@ -6849,12 +6854,6 @@ process to set up. VEC specifies the connection."
6849 ;; Set the environment. 6854 ;; Set the environment.
6850 (tramp-message vec 5 "Setting default environment") 6855 (tramp-message vec 5 "Setting default environment")
6851 6856
6852 ;; On OpenSolaris, there is a bug when HISTFILE is changed in place
6853 ;; <http://bugs.opensolaris.org/view_bug.do?bug_id=6834184>. We
6854 ;; apply the workaround.
6855 (if (string-equal (tramp-get-connection-property vec "uname" "") "SunOS 5.11")
6856 (tramp-send-command vec "unset HISTFILE" t))
6857
6858 (let ((env (copy-sequence tramp-remote-process-environment)) 6857 (let ((env (copy-sequence tramp-remote-process-environment))
6859 unset item) 6858 unset item)
6860 (while env 6859 (while env
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el
index 9444787fc27..c5387a26722 100644
--- a/lisp/net/trampver.el
+++ b/lisp/net/trampver.el
@@ -29,7 +29,7 @@
29;; "autoconf && ./configure" to change them. (X)Emacs version check is defined 29;; "autoconf && ./configure" to change them. (X)Emacs version check is defined
30;; in macro AC_EMACS_INFO of aclocal.m4; should be changed only there. 30;; in macro AC_EMACS_INFO of aclocal.m4; should be changed only there.
31 31
32(defconst tramp-version "2.1.18-pre" 32(defconst tramp-version "2.1.18-23.2"
33 "This version of Tramp.") 33 "This version of Tramp.")
34 34
35(defconst tramp-bug-report-address "tramp-devel@gnu.org" 35(defconst tramp-bug-report-address "tramp-devel@gnu.org"
diff --git a/lisp/obsolete/levents.el b/lisp/obsolete/levents.el
index 652994ebd7a..1715185ac05 100644
--- a/lisp/obsolete/levents.el
+++ b/lisp/obsolete/levents.el
@@ -61,7 +61,7 @@
61(put 'timeout 'event-symbol-elements '(eval)) 61(put 'timeout 'event-symbol-elements '(eval))
62 62
63(defun allocate-event () 63(defun allocate-event ()
64 "Returns an empty event structure. 64 "Return an empty event structure.
65In this emulation, it returns nil." 65In this emulation, it returns nil."
66 nil) 66 nil)
67 67
@@ -142,7 +142,7 @@ It will be the next event read after all pending events."
142 (nth 1 event)) 142 (nth 1 event))
143 143
144(defun event-key (event) 144(defun event-key (event)
145 "Returns the KeySym of the given key-press event. 145 "Return the KeySym of the given key-press event.
146The value is an ASCII printing character (not upper case) or a symbol." 146The value is an ASCII printing character (not upper case) or a symbol."
147 (if (symbolp event) 147 (if (symbolp event)
148 (car (get event 'event-symbol-elements)) 148 (car (get event 'event-symbol-elements))
@@ -150,11 +150,11 @@ The value is an ASCII printing character (not upper case) or a symbol."
150 (downcase (if (< base 32) (logior base 64) base))))) 150 (downcase (if (< base 32) (logior base 64) base)))))
151 151
152(defun event-object (event) 152(defun event-object (event)
153 "Returns the function argument of the given timeout, menu, or eval event." 153 "Return the function argument of the given timeout, menu, or eval event."
154 (nth 2 event)) 154 (nth 2 event))
155 155
156(defun event-point (event) 156(defun event-point (event)
157 "Returns the character position of the given mouse-related event. 157 "Return the character position of the given mouse-related event.
158If the event did not occur over a window, or did 158If the event did not occur over a window, or did
159not occur over text, then this returns nil. Otherwise, it returns an index 159not occur over text, then this returns nil. Otherwise, it returns an index
160into the buffer visible in the event's window." 160into the buffer visible in the event's window."
@@ -201,18 +201,18 @@ or for window WINDOW if that is specified."
201 (window-start start-window))))) 201 (window-start start-window)))))
202 202
203(defun event-process (event) 203(defun event-process (event)
204 "Returns the process of the given process-output event." 204 "Return the process of the given process-output event."
205 (nth 1 event)) 205 (nth 1 event))
206 206
207(defun event-timestamp (event) 207(defun event-timestamp (event)
208 "Returns the timestamp of the given event object. 208 "Return the timestamp of the given event object.
209In Lucid Emacs, this works for any kind of event. 209In Lucid Emacs, this works for any kind of event.
210In this emulation, it returns nil for non-mouse-related events." 210In this emulation, it returns nil for non-mouse-related events."
211 (and (listp event) 211 (and (listp event)
212 (posn-timestamp (event-end event)))) 212 (posn-timestamp (event-end event))))
213 213
214(defun event-to-character (event &optional lenient) 214(defun event-to-character (event &optional lenient)
215 "Returns the closest ASCII approximation to the given event object. 215 "Return the closest ASCII approximation to the given event object.
216If the event isn't a keypress, this returns nil. 216If the event isn't a keypress, this returns nil.
217If the second argument is non-nil, then this is lenient in its 217If the second argument is non-nil, then this is lenient in its
218translation; it will ignore modifier keys other than control and meta, 218translation; it will ignore modifier keys other than control and meta,
@@ -229,25 +229,25 @@ will be returned for events which have no direct ASCII equivalent."
229 event nil))) 229 event nil)))
230 230
231(defun event-window (event) 231(defun event-window (event)
232 "Returns the window of the given mouse-related event object." 232 "Return the window of the given mouse-related event object."
233 (posn-window (event-end event))) 233 (posn-window (event-end event)))
234 234
235(defun event-x (event) 235(defun event-x (event)
236 "Returns the X position in characters of the given mouse-related event." 236 "Return the X position in characters of the given mouse-related event."
237 (/ (car (posn-col-row (event-end event))) 237 (/ (car (posn-col-row (event-end event)))
238 (frame-char-width (window-frame (event-window event))))) 238 (frame-char-width (window-frame (event-window event)))))
239 239
240(defun event-x-pixel (event) 240(defun event-x-pixel (event)
241 "Returns the X position in pixels of the given mouse-related event." 241 "Return the X position in pixels of the given mouse-related event."
242 (car (posn-col-row (event-end event)))) 242 (car (posn-col-row (event-end event))))
243 243
244(defun event-y (event) 244(defun event-y (event)
245 "Returns the Y position in characters of the given mouse-related event." 245 "Return the Y position in characters of the given mouse-related event."
246 (/ (cdr (posn-col-row (event-end event))) 246 (/ (cdr (posn-col-row (event-end event)))
247 (frame-char-height (window-frame (event-window event))))) 247 (frame-char-height (window-frame (event-window event)))))
248 248
249(defun event-y-pixel (event) 249(defun event-y-pixel (event)
250 "Returns the Y position in pixels of the given mouse-related event." 250 "Return the Y position in pixels of the given mouse-related event."
251 (cdr (posn-col-row (event-end event)))) 251 (cdr (posn-col-row (event-end event))))
252 252
253(defun key-press-event-p (obj) 253(defun key-press-event-p (obj)
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index f4a8c0bf46f..2d28d003fd5 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -2624,7 +2624,7 @@ comment at the start of cc-engine.el for more info."
2624 (< (point-max) c-state-old-cpp-end))) 2624 (< (point-max) c-state-old-cpp-end)))
2625 (point-max) 2625 (point-max)
2626 (min (point-max) c-state-old-cpp-beg))) 2626 (min (point-max) c-state-old-cpp-beg)))
2627 (while (and c-state-cache (> (c-state-cache-top-lparen) upper-lim)) 2627 (while (and c-state-cache (>= (c-state-cache-top-lparen) upper-lim))
2628 (setq c-state-cache (cdr c-state-cache))) 2628 (setq c-state-cache (cdr c-state-cache)))
2629 ;; If `upper-lim' is inside the last recorded brace pair, remove its 2629 ;; If `upper-lim' is inside the last recorded brace pair, remove its
2630 ;; RBrace and indicate we'll need to search backwards for a previous 2630 ;; RBrace and indicate we'll need to search backwards for a previous
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index c94d750823d..594462d5125 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -272,7 +272,7 @@ not be enclosed in { } or ( )."
272 "Characters to skip to find a line that might be a dependency.") 272 "Characters to skip to find a line that might be a dependency.")
273 273
274(defvar makefile-rule-action-regex 274(defvar makefile-rule-action-regex
275 "^\t[ \t]*\\([-@]*\\)[ \t]*\\(\\(?:.*\\\\\n\\)*.*\\)" 275 "^\t[ \t]*\\(?:\\([-@]+\\)[ \t]*\\)\\(.*\\(?:\\\\\n.*\\)*\\)"
276 "Regex used to highlight rule action lines in font lock mode.") 276 "Regex used to highlight rule action lines in font lock mode.")
277 277
278(defconst makefile-makepp-rule-action-regex 278(defconst makefile-makepp-rule-action-regex
@@ -355,8 +355,9 @@ not be enclosed in { } or ( )."
355 (3 'font-lock-string-face prepend t)) 355 (3 'font-lock-string-face prepend t))
356 356
357 ;; Rule actions. 357 ;; Rule actions.
358 ;; FIXME: When this spans multiple lines we need font-lock-multiline.
358 (makefile-match-action 359 (makefile-match-action
359 (1 font-lock-type-face) 360 (1 font-lock-type-face nil t)
360 (2 'makefile-shell prepend) 361 (2 'makefile-shell prepend)
361 ;; Only makepp has builtin commands. 362 ;; Only makepp has builtin commands.
362 (3 font-lock-builtin-face prepend t)) 363 (3 font-lock-builtin-face prepend t))
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index ee7a52a1093..e5727f41e93 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -359,7 +359,7 @@ property of the major mode name.")
359(put 'html-mode 'flyspell-mode-predicate 'sgml-mode-flyspell-verify) 359(put 'html-mode 'flyspell-mode-predicate 'sgml-mode-flyspell-verify)
360(put 'nxml-mode 'flyspell-mode-predicate 'sgml-mode-flyspell-verify) 360(put 'nxml-mode 'flyspell-mode-predicate 'sgml-mode-flyspell-verify)
361 361
362(declare-function sgml-lexical-context "sgml-mode" &optional limit) 362(autoload 'sgml-lexical-context "sgml-mode")
363 363
364(defun sgml-mode-flyspell-verify () 364(defun sgml-mode-flyspell-verify ()
365 "Function used for `flyspell-generic-check-word-predicate' in SGML mode. 365 "Function used for `flyspell-generic-check-word-predicate' in SGML mode.
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el
index 4ec46183776..ce0ac32492d 100644
--- a/lisp/textmodes/reftex-vars.el
+++ b/lisp/textmodes/reftex-vars.el
@@ -100,22 +100,22 @@
100 100
101 ("enumerate" ?i "item:" "~\\ref{%s}" item 101 ("enumerate" ?i "item:" "~\\ref{%s}" item
102 (regexp "items?" "Punkte?")) 102 (regexp "items?" "Punkte?"))
103 103
104 ("equation" ?e "eq:" "~(\\ref{%s})" t 104 ("equation" ?e "eq:" "~(\\ref{%s})" t
105 (regexp "equations?" "eqs?\\." "eqn\\." "Gleichung\\(en\\)?" "Gl\\.")) 105 (regexp "equations?" "eqs?\\." "eqn\\." "Gleichung\\(en\\)?" "Gl\\."))
106 ("eqnarray" ?e "eq:" nil eqnarray-like) 106 ("eqnarray" ?e "eq:" nil eqnarray-like)
107 107
108 ("figure" ?f "fig:" "~\\ref{%s}" caption 108 ("figure" ?f "fig:" "~\\ref{%s}" caption
109 (regexp "figure?[sn]?" "figs?\\." "Abbildung\\(en\\)?" "Abb\\.")) 109 (regexp "figure?[sn]?" "figs?\\." "Abbildung\\(en\\)?" "Abb\\."))
110 ("figure*" ?f nil nil caption) 110 ("figure*" ?f nil nil caption)
111 111
112 ("table" ?t "tab:" "~\\ref{%s}" caption 112 ("table" ?t "tab:" "~\\ref{%s}" caption
113 (regexp "tables?" "tab\\." "Tabellen?")) 113 (regexp "tables?" "tab\\." "Tabellen?"))
114 ("table*" ?t nil nil caption) 114 ("table*" ?t nil nil caption)
115 115
116 ("\\footnote[]{}" ?n "fn:" "~\\ref{%s}" 2 116 ("\\footnote[]{}" ?n "fn:" "~\\ref{%s}" 2
117 (regexp "footnotes?" "Fussnoten?")) 117 (regexp "footnotes?" "Fussnoten?"))
118 118
119 ("any" ?\ " " "~\\ref{%s}" nil) 119 ("any" ?\ " " "~\\ref{%s}" nil)
120 120
121 ;; The label macro is hard coded, but it *could* be defined like this: 121 ;; The label macro is hard coded, but it *could* be defined like this:
@@ -207,7 +207,7 @@ The following conventions are valid for all alist entries:
207`?t' should point to a textual citation (citation as a noun). 207`?t' should point to a textual citation (citation as a noun).
208`?p' should point to a parenthetical citation.") 208`?p' should point to a parenthetical citation.")
209 209
210(defconst reftex-index-macros-builtin 210(defconst reftex-index-macros-builtin
211 '((default "Default \\index and \\glossary macros" 211 '((default "Default \\index and \\glossary macros"
212 (("\\index{*}" "idx" ?i "" nil t) 212 (("\\index{*}" "idx" ?i "" nil t)
213 ("\\glossary{*}" "glo" ?g "" nil t))) 213 ("\\glossary{*}" "glo" ?g "" nil t)))
@@ -219,9 +219,9 @@ The following conventions are valid for all alist entries:
219 (Index-Shortcut "index.sty with \\shortindexingon" 219 (Index-Shortcut "index.sty with \\shortindexingon"
220 (("\\index[]{*}" 1 ?i "" nil t) 220 (("\\index[]{*}" 1 ?i "" nil t)
221 ("\\index*[]{*}" 1 ?I "" nil nil) 221 ("\\index*[]{*}" 1 ?I "" nil nil)
222 ("^[]{*}" 1 ?^ "" texmathp t) 222 ("^[]{*}" 1 ?^ "" texmathp t)
223 ("_[]{*}" 1 ?_ "" texmathp nil)))) 223 ("_[]{*}" 1 ?_ "" texmathp nil))))
224 "Builtin stuff for reftex-index-macros. 224 "Builtin stuff for `reftex-index-macros'.
225Lower-case symbols correspond to a style file of the same name in the LaTeX 225Lower-case symbols correspond to a style file of the same name in the LaTeX
226distribution. Mixed-case symbols are convenience aliases.") 226distribution. Mixed-case symbols are convenience aliases.")
227) 227)
@@ -231,7 +231,7 @@ distribution. Mixed-case symbols are convenience aliases.")
231(defgroup reftex nil 231(defgroup reftex nil
232 "LaTeX label and citation support." 232 "LaTeX label and citation support."
233 :tag "RefTeX" 233 :tag "RefTeX"
234 :link '(url-link :tag "Home Page" 234 :link '(url-link :tag "Home Page"
235 "http://staff.science.uva.nl/~dominik/Tools/reftex/") 235 "http://staff.science.uva.nl/~dominik/Tools/reftex/")
236 :link '(emacs-commentary-link :tag "Commentary in reftex.el" "reftex.el") 236 :link '(emacs-commentary-link :tag "Commentary in reftex.el" "reftex.el")
237 :link '(custom-manual "(reftex)Top") 237 :link '(custom-manual "(reftex)Top")
@@ -280,7 +280,7 @@ the backslash). The cdr is a number indicating its level. A negative
280level means the same level as the positive value, but the section will 280level means the same level as the positive value, but the section will
281never get a number. The cdr may also be a function which will be called 281never get a number. The cdr may also be a function which will be called
282to after the section-re matched to determine the level. 282to after the section-re matched to determine the level.
283This list is also used for promotion and demption of sectioning commands. 283This list is also used for promotion and demotion of sectioning commands.
284If you are using a document class which has several sets of sectioning 284If you are using a document class which has several sets of sectioning
285commands, promotion only works correctly if this list is sorted first 285commands, promotion only works correctly if this list is sorted first
286by set, then within each set by level. The promotion commands always 286by set, then within each set by level. The promotion commands always
@@ -318,7 +318,7 @@ are currently working in. Recentering happens whenever Emacs is idle for
318more than `reftex-idle-time' seconds. 318more than `reftex-idle-time' seconds.
319 319
320Value t means, turn on immediately when RefTeX gets started. Then, 320Value t means, turn on immediately when RefTeX gets started. Then,
321recentering will work for any toc window created during the session. 321recentering will work for any TOC window created during the session.
322 322
323Value 'frame (the default) means, turn automatic recentering on only while the 323Value 'frame (the default) means, turn automatic recentering on only while the
324dedicated TOC frame does exist, and do the recentering only in that frame. So 324dedicated TOC frame does exist, and do the recentering only in that frame. So
@@ -326,14 +326,14 @@ when creating that frame (with \"d\" key in an ordinary TOC window), the
326automatic recentering is turned on. When the frame gets destroyed, automatic 326automatic recentering is turned on. When the frame gets destroyed, automatic
327recentering is turned off again. 327recentering is turned off again.
328 328
329This feature can be turned on and off from the menu 329This feature can be turned on and off from the menu
330\(Ref->Options)." 330\(Ref->Options)."
331 :group 'reftex-table-of-contents-browser 331 :group 'reftex-table-of-contents-browser
332 :type '(choice 332 :type '(choice
333 (const :tag "never" nil) 333 (const :tag "never" nil)
334 (const :tag "always" t) 334 (const :tag "always" t)
335 (const :tag "in dedicated frame only" frame))) 335 (const :tag "in dedicated frame only" frame)))
336 336
337(defcustom reftex-toc-split-windows-horizontally nil 337(defcustom reftex-toc-split-windows-horizontally nil
338 "*Non-nil means, create TOC window by splitting window horizontally." 338 "*Non-nil means, create TOC window by splitting window horizontally."
339 :group 'reftex-table-of-contents-browser 339 :group 'reftex-table-of-contents-browser
@@ -407,7 +407,7 @@ When nil, follow-mode will be suspended for stuff in unvisited files."
407 :type 'boolean) 407 :type 'boolean)
408 408
409(defcustom reftex-toc-mode-hook nil 409(defcustom reftex-toc-mode-hook nil
410 "Mode hook for reftex-toc-mode." 410 "Mode hook for `reftex-toc-mode'."
411 :group 'reftex-table-of-contents-browser 411 :group 'reftex-table-of-contents-browser
412 :type 'hook) 412 :type 'hook)
413 413
@@ -425,7 +425,7 @@ When nil, follow-mode will be suspended for stuff in unvisited files."
425 '(amsmath endnotes fancybox floatfig longtable picinpar 425 '(amsmath endnotes fancybox floatfig longtable picinpar
426 rotating sidecap subfigure supertab wrapfig LaTeX) 426 rotating sidecap subfigure supertab wrapfig LaTeX)
427 "Default label alist specifications. LaTeX should always be the last entry. 427 "Default label alist specifications. LaTeX should always be the last entry.
428The value of this variable is a list of symbols with associations in the 428The value of this variable is a list of symbols with associations in the
429constant `reftex-label-alist-builtin'. Check that constant for a full list 429constant `reftex-label-alist-builtin'. Check that constant for a full list
430of options." 430of options."
431 :group 'reftex-defining-label-environments 431 :group 'reftex-defining-label-environments
@@ -624,7 +624,7 @@ list. However, builtin defaults should normally be set with the variable
624(defcustom reftex-section-prefixes '((0 . "part:") (1 . "cha:") (t . "sec:")) 624(defcustom reftex-section-prefixes '((0 . "part:") (1 . "cha:") (t . "sec:"))
625 "Prefixes for section labels. 625 "Prefixes for section labels.
626When the label prefix given in an entry in `reftex-label-alist' contains `%S', 626When the label prefix given in an entry in `reftex-label-alist' contains `%S',
627this list is used to determine the correct prefix string depending on the 627this list is used to determine the correct prefix string depending on the
628current section level. 628current section level.
629The list is an alist, with each entry of the form (KEY . PREFIX) 629The list is an alist, with each entry of the form (KEY . PREFIX)
630Possible keys are sectioning macro names like `chapter', section levels 630Possible keys are sectioning macro names like `chapter', section levels
@@ -686,7 +686,7 @@ non-footnote labels."
686 (regexp) 686 (regexp)
687 (repeat :tag "List" 687 (repeat :tag "List"
688 (string :tag "prefix (with colon)")))) 688 (string :tag "prefix (with colon)"))))
689 689
690(defcustom reftex-special-environment-functions nil 690(defcustom reftex-special-environment-functions nil
691 "List of functions to be called when trying to figure out current environment. 691 "List of functions to be called when trying to figure out current environment.
692These are special functions to detect \"environments\" which do not 692These are special functions to detect \"environments\" which do not
@@ -732,7 +732,7 @@ And here is the setup for RefTeX:
732 (let ((pos (point)) p1) 732 (let ((pos (point)) p1)
733 (save-excursion 733 (save-excursion
734 ;; Search for any of the linguex item macros at the beginning of a line 734 ;; Search for any of the linguex item macros at the beginning of a line
735 (if (re-search-backward 735 (if (re-search-backward
736 \"^[ \\t]*\\\\(\\\\\\\\\\\\(ex\\\\|a\\\\|b\\\\|c\\\\|d\\\\|e\\\\|f\\\\)g?\\\\.\\\\)\" bound t) 736 \"^[ \\t]*\\\\(\\\\\\\\\\\\(ex\\\\|a\\\\|b\\\\|c\\\\|d\\\\|e\\\\|f\\\\)g?\\\\.\\\\)\" bound t)
737 (progn 737 (progn
738 (setq p1 (match-beginning 1)) 738 (setq p1 (match-beginning 1))
@@ -742,7 +742,7 @@ And here is the setup for RefTeX:
742 nil 742 nil
743 ;; OK, we got it 743 ;; OK, we got it
744 (cons \"linguex\" p1))) 744 (cons \"linguex\" p1)))
745 ;; Return nil for not found 745 ;; Return nil for not found
746 nil)))) 746 nil))))
747 747
7483. Tell RefTeX to use this function 7483. Tell RefTeX to use this function
@@ -941,7 +941,7 @@ This is used to string together whole reference sets, like
941 941
942(defcustom reftex-vref-is-default nil 942(defcustom reftex-vref-is-default nil
943 "*Non-nil means, the varioref macro \\vref is used as default. 943 "*Non-nil means, the varioref macro \\vref is used as default.
944In the selection buffer, the `v' key toggles the reference macro between 944In the selection buffer, the `v' key toggles the reference macro between
945`\\ref' and `\\vref'. The value of this variable determines the default 945`\\ref' and `\\vref'. The value of this variable determines the default
946which is active when entering the selection process. 946which is active when entering the selection process.
947Instead of nil or t, this may also be a string of type letters indicating 947Instead of nil or t, this may also be a string of type letters indicating
@@ -952,7 +952,7 @@ the label types for which it should be true."
952 952
953(defcustom reftex-fref-is-default nil 953(defcustom reftex-fref-is-default nil
954 "*Non-nil means, the fancyref macro \\fref is used as default. 954 "*Non-nil means, the fancyref macro \\fref is used as default.
955In the selection buffer, the `V' key toggles the reference macro between 955In the selection buffer, the `V' key toggles the reference macro between
956`\\ref', `\\fref' and `\\Fref'. The value of this variable determines 956`\\ref', `\\fref' and `\\Fref'. The value of this variable determines
957the default which is active when entering the selection process. 957the default which is active when entering the selection process.
958Instead of nil or t, this may also be a string of type letters indicating 958Instead of nil or t, this may also be a string of type letters indicating
@@ -979,7 +979,7 @@ a label type. If you set this variable to nil, RefTeX will always prompt."
979 979
980(defcustom reftex-format-ref-function nil 980(defcustom reftex-format-ref-function nil
981 "Function which produces the string to insert as a reference. 981 "Function which produces the string to insert as a reference.
982Normally should be nil, because the format to insert a reference can 982Normally should be nil, because the format to insert a reference can
983already be specified in `reftex-label-alist'. 983already be specified in `reftex-label-alist'.
984This hook also is used by the special commands to insert `\\vref' and `\\fref' 984This hook also is used by the special commands to insert `\\vref' and `\\fref'
985references, so even if you set this, your setting will be ignored by 985references, so even if you set this, your setting will be ignored by
@@ -1060,13 +1060,13 @@ It is also possible to access all other BibTeX database fields:
1060%i institution %j journal %k key %m month 1060%i institution %j journal %k key %m month
1061%n number %o organization %p pages %P first page 1061%n number %o organization %p pages %P first page
1062%r address %s school %u publisher %t title 1062%r address %s school %u publisher %t title
1063%v volume %y year 1063%v volume %y year
1064%B booktitle, abbreviated %T title, abbreviated 1064%B booktitle, abbreviated %T title, abbreviated
1065 1065
1066Usually, only %l is needed. The other stuff is mainly for the echo area 1066Usually, only %l is needed. The other stuff is mainly for the echo area
1067display, and for (setq reftex-comment-citations t). 1067display, and for (setq reftex-comment-citations t).
1068 1068
1069%< as a special operator kills punctuation and space around it after the 1069%< as a special operator kills punctuation and space around it after the
1070string has been formatted. 1070string has been formatted.
1071 1071
1072A pair of square brackets indicates an optional argument, and RefTeX 1072A pair of square brackets indicates an optional argument, and RefTeX
@@ -1081,7 +1081,7 @@ will be prompted for a character to select one of the possible format
1081strings. 1081strings.
1082 In order to configure this variable, you can either set 1082 In order to configure this variable, you can either set
1083`reftex-cite-format' directly yourself or set it to the SYMBOL of one of 1083`reftex-cite-format' directly yourself or set it to the SYMBOL of one of
1084the predefined styles. The predefined symbols are those which have an 1084the predefined styles. The predefined symbols are those which have an
1085association in the constant `reftex-cite-format-builtin'. 1085association in the constant `reftex-cite-format-builtin'.
1086E.g.: (setq reftex-cite-format 'natbib)" 1086E.g.: (setq reftex-cite-format 'natbib)"
1087 :group 'reftex-citation-support 1087 :group 'reftex-citation-support
@@ -1164,8 +1164,8 @@ possible percent escapes."
1164(defcustom reftex-cite-punctuation '(", " " \\& " " {\\it et al.}") 1164(defcustom reftex-cite-punctuation '(", " " \\& " " {\\it et al.}")
1165 "Punctuation for formatting of name lists in citations. 1165 "Punctuation for formatting of name lists in citations.
1166This is a list of 3 strings. 1166This is a list of 3 strings.
11671. normal names separator, like \", \" in Jones, Brown and Miller 11671. Normal names separator, like \", \" in Jones, Brown and Miller
11682. final names separator, like \" and \" in Jones, Brown and Miller 11682. Final names separator, like \" and \" in Jones, Brown and Miller
11693. The \"et al\" string, like \" {\\it et al.}\" in Jones {\\it et al.}" 11693. The \"et al\" string, like \" {\\it et al.}\" in Jones {\\it et al.}"
1170 :group 'reftex-citation-support 1170 :group 'reftex-citation-support
1171 :type '(list 1171 :type '(list
@@ -1175,7 +1175,7 @@ This is a list of 3 strings.
1175 1175
1176(defcustom reftex-format-cite-function nil 1176(defcustom reftex-format-cite-function nil
1177 "Function which produces the string to insert as a citation. 1177 "Function which produces the string to insert as a citation.
1178Normally should be nil, because the format to insert a reference can 1178Normally should be nil, because the format to insert a reference can
1179already be specified in `reftex-cite-format'. 1179already be specified in `reftex-cite-format'.
1180The function will be called with two arguments, the CITATION KEY and the 1180The function will be called with two arguments, the CITATION KEY and the
1181DEFAULT FORMAT, which is taken from `reftex-cite-format'. The function 1181DEFAULT FORMAT, which is taken from `reftex-cite-format'. The function
@@ -1258,7 +1258,7 @@ package here."
1258 :group 'reftex-index-support 1258 :group 'reftex-index-support
1259 :set 'reftex-set-dirty 1259 :set 'reftex-set-dirty
1260 :type `(list 1260 :type `(list
1261 (repeat 1261 (repeat
1262 :inline t 1262 :inline t
1263 (list :value ("" "idx" ?a "" nil) 1263 (list :value ("" "idx" ?a "" nil)
1264 (string :tag "Macro with args") 1264 (string :tag "Macro with args")
@@ -1285,7 +1285,7 @@ package here."
1285This is a list with (MACRO-KEY DEFAULT-TAG). 1285This is a list with (MACRO-KEY DEFAULT-TAG).
1286 1286
1287MACRO-KEY: Character identifying an index macro - see `reftex-index-macros'. 1287MACRO-KEY: Character identifying an index macro - see `reftex-index-macros'.
1288DEFAULT-TAG: This is the tag to be used if the macro requires a TAG argument. 1288DEFAULT-TAG: This is the tag to be used if the macro requires a TAG argument.
1289 When this is nil and a TAG is needed, RefTeX will ask for it. 1289 When this is nil and a TAG is needed, RefTeX will ask for it.
1290 When this is the empty string and the TAG argument of the index 1290 When this is the empty string and the TAG argument of the index
1291 macro is optional, the TAG argument will be omitted." 1291 macro is optional, the TAG argument will be omitted."
@@ -1426,7 +1426,7 @@ to that section."
1426 1426
1427(defcustom reftex-index-include-context nil 1427(defcustom reftex-index-include-context nil
1428 "*Non-nil means, display the index definition context in the index buffer. 1428 "*Non-nil means, display the index definition context in the index buffer.
1429This flag may also be toggled from the index buffer with the `c' key." 1429This flag may also be toggled from the index buffer with the `c' key."
1430 :group 'reftex-index-support 1430 :group 'reftex-index-support
1431 :type 'boolean) 1431 :type 'boolean)
1432 1432
@@ -1449,7 +1449,7 @@ This is used when `reftex-view-crossref' is called with point in an
1449argument of a macro. Note that crossref viewing for citations, 1449argument of a macro. Note that crossref viewing for citations,
1450references (both ways) and index entries is hard-coded. This variable 1450references (both ways) and index entries is hard-coded. This variable
1451is only to configure additional structures for which crossreference 1451is only to configure additional structures for which crossreference
1452viewing can be useful. Each entry has the structure 1452viewing can be useful. Each entry has the structure
1453 1453
1454\(MACRO-RE SEARCH-RE HIGHLIGHT). 1454\(MACRO-RE SEARCH-RE HIGHLIGHT).
1455 1455
@@ -1470,7 +1470,7 @@ argument of a \\ref or \\cite macro, and no other message is being
1470displayed, the echo area will display information about that cross 1470displayed, the echo area will display information about that cross
1471reference. You can also set the variable to the symbol `window'. In 1471reference. You can also set the variable to the symbol `window'. In
1472this case a small temporary window is used for the display. 1472this case a small temporary window is used for the display.
1473This feature can be turned on and off from the menu 1473This feature can be turned on and off from the menu
1474\(Ref->Options)." 1474\(Ref->Options)."
1475 :group 'reftex-viewing-cross-references 1475 :group 'reftex-viewing-cross-references
1476 :type '(choice (const :tag "off" nil) 1476 :type '(choice (const :tag "off" nil)
@@ -1516,7 +1516,7 @@ Several entries are possible.
1516- If an element is the name of an environment variable, its content is used. 1516- If an element is the name of an environment variable, its content is used.
1517- If an element starts with an exclamation mark, it is used as a command 1517- If an element starts with an exclamation mark, it is used as a command
1518 to retrieve the path. A typical command with the kpathsearch library would 1518 to retrieve the path. A typical command with the kpathsearch library would
1519 be `!kpsewhich -show-path=.tex'. 1519 be `!kpsewhich -show-path=.tex'.
1520- Otherwise the element itself is interpreted as a path. 1520- Otherwise the element itself is interpreted as a path.
1521Multiple directories can be separated by the system dependent `path-separator'. 1521Multiple directories can be separated by the system dependent `path-separator'.
1522Directories ending in `//' or `!!' will be expanded recursively. 1522Directories ending in `//' or `!!' will be expanded recursively.
@@ -1531,7 +1531,7 @@ Several entries are possible.
1531- If an element is the name of an environment variable, its content is used. 1531- If an element is the name of an environment variable, its content is used.
1532- If an element starts with an exclamation mark, it is used as a command 1532- If an element starts with an exclamation mark, it is used as a command
1533 to retrieve the path. A typical command with the kpathsearch library would 1533 to retrieve the path. A typical command with the kpathsearch library would
1534 be `!kpsewhich -show-path=.bib'. 1534 be `!kpsewhich -show-path=.bib'.
1535- Otherwise the element itself is interpreted as a path. 1535- Otherwise the element itself is interpreted as a path.
1536Multiple directories can be separated by the system dependent `path-separator'. 1536Multiple directories can be separated by the system dependent `path-separator'.
1537Directories ending in `//' or `!!' will be expanded recursively. 1537Directories ending in `//' or `!!' will be expanded recursively.
@@ -1575,7 +1575,7 @@ Note that if you are using external file finders, this option has no effect."
1575 "*Non-nil means, search all specified directories before trying recursion. 1575 "*Non-nil means, search all specified directories before trying recursion.
1576Thus, in a path \".//:/tex/\", search first \"./\", then \"/tex/\" and then 1576Thus, in a path \".//:/tex/\", search first \"./\", then \"/tex/\" and then
1577all subdirectories of \"./\". If this option is nil, the subdirectories of 1577all subdirectories of \"./\". If this option is nil, the subdirectories of
1578\"./\" are searched before \"/tex/\". This is mainly for speed - most of the 1578\"./\" are searched before \"/tex/\". This is mainly for speed - most of the
1579time the recursive path is for the system files and not for the user files. 1579time the recursive path is for the system files and not for the user files.
1580Set this to nil if the default makes RefTeX finding files with equal names 1580Set this to nil if the default makes RefTeX finding files with equal names
1581in wrong sequence." 1581in wrong sequence."
@@ -1588,7 +1588,7 @@ Normally, RefTeX searches the paths given in the environment variables
1588TEXINPUTS and BIBINPUTS to find TeX files and BibTeX database files. 1588TEXINPUTS and BIBINPUTS to find TeX files and BibTeX database files.
1589With this option turned on, it calls an external program specified in the 1589With this option turned on, it calls an external program specified in the
1590option `reftex-external-file-finders' instead. As a side effect, 1590option `reftex-external-file-finders' instead. As a side effect,
1591the variables `reftex-texpath-environment-variables' and 1591the variables `reftex-texpath-environment-variables' and
1592`reftex-bibpath-environment-variables' will be ignored." 1592`reftex-bibpath-environment-variables' will be ignored."
1593 :group 'reftex-finding-files 1593 :group 'reftex-finding-files
1594 :type 'boolean) 1594 :type 'boolean)
@@ -1679,7 +1679,7 @@ list."
1679(defcustom reftex-save-parse-info nil 1679(defcustom reftex-save-parse-info nil
1680 "*Non-nil means, save information gathered with parsing in a file. 1680 "*Non-nil means, save information gathered with parsing in a file.
1681The file MASTER.rel in the same directory as MASTER.tex is used to save the 1681The file MASTER.rel in the same directory as MASTER.tex is used to save the
1682information. When this variable is t, 1682information. When this variable is t,
1683- accessing the parsing information for the first time in an editing session 1683- accessing the parsing information for the first time in an editing session
1684 will read that file (if available) instead of parsing the document. 1684 will read that file (if available) instead of parsing the document.
1685- exiting Emacs or killing a buffer in reftex-mode will cause a new version 1685- exiting Emacs or killing a buffer in reftex-mode will cause a new version
@@ -1753,7 +1753,7 @@ Normally, the text near the cursor is the selected text, and it is
1753highlighted. This is the entry most keys in the selction and *toc* 1753highlighted. This is the entry most keys in the selction and *toc*
1754buffers act on. However, if you mainly use the mouse to select an 1754buffers act on. However, if you mainly use the mouse to select an
1755item, you may find it nice to have mouse-triggered highlighting 1755item, you may find it nice to have mouse-triggered highlighting
1756instead or as well. The variable may have one of these values: 1756instead or as well. The variable may have one of these values:
1757 1757
1758 nil No highlighting. 1758 nil No highlighting.
1759 cursor Highlighting is cursor driven. 1759 cursor Highlighting is cursor driven.
@@ -1882,7 +1882,7 @@ RefTeX uses `fset' to take over the function calls. Changing the variable
1882may require a restart of Emacs in order to become effective." 1882may require a restart of Emacs in order to become effective."
1883 :group 'reftex-miscellaneous-configurations 1883 :group 'reftex-miscellaneous-configurations
1884 :group 'LaTeX 1884 :group 'LaTeX
1885 :type '(choice 1885 :type '(choice
1886 (const :tag "No plug-ins" nil) 1886 (const :tag "No plug-ins" nil)
1887 (const :tag "All possible plug-ins" t) 1887 (const :tag "All possible plug-ins" t)
1888 (list 1888 (list
diff --git a/lisp/woman.el b/lisp/woman.el
index b365126ecb9..79d6d84aff1 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -3876,10 +3876,14 @@ Optional argument NUMERIC, if non-nil, means the argument is numeric."
3876 ;; The first two cases below could be merged (maybe)! 3876 ;; The first two cases below could be merged (maybe)!
3877 (let ((from (point))) 3877 (let ((from (point)))
3878 ;; Discard zero width filler character used to hide leading dots 3878 ;; Discard zero width filler character used to hide leading dots
3879 ;; and zero width characters. If on a line by itself, consume the 3879 ;; and zero width characters.
3880 ;; newline as well, as this may interfere with (Bug#3651). 3880 (while (re-search-forward "\\\\[&|^]" to t)
3881 (while (re-search-forward "\\\\[&|^]\n?" to t) 3881 (woman-delete-match 0)
3882 (woman-delete-match 0)) 3882 ;; If on a line by itself, consume newline as well (Bug#3651).
3883 (and (eq (char-before (match-beginning 0)) ?\n)
3884 (eq (char-after (match-beginning 0)) ?\n)
3885 (delete-char 1)))
3886
3883 (goto-char from) 3887 (goto-char from)
3884 ;; Interrupt text processing -- CONTINUE current text with the 3888 ;; Interrupt text processing -- CONTINUE current text with the
3885 ;; next text line (after any control lines, unless processing to 3889 ;; next text line (after any control lines, unless processing to
diff --git a/nextstep/Cocoa/Emacs.base/Contents/Info.plist b/nextstep/Cocoa/Emacs.base/Contents/Info.plist
index c32b85f6b0d..f064a1248ea 100644
--- a/nextstep/Cocoa/Emacs.base/Contents/Info.plist
+++ b/nextstep/Cocoa/Emacs.base/Contents/Info.plist
@@ -1,5 +1,5 @@
1<!-- 1<!--
2Copyright (C) 2008, 2009 Free Software Foundation, Inc. 2Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
diff --git a/src/ChangeLog b/src/ChangeLog
index 82a06956800..a2e5262c02b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,29 @@
12010-03-24 Jan Djärv <jan.h.d@swipnet.se>
2
3 * frame.c (x_get_arg): Handle RES_TYPE_BOOLEAN_NUMBER (bug #5736).
4
5 * xfns.c (Fx_create_frame): Make menuBar a RES_TYPE_BOOLEAN_NUMBER.
6
7 * dispextern.h (resource_types): RES_TYPE_BOOLEAN_NUMBER is new.
8
92010-03-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
10
11 * xfns.c (Fx_create_frame) [USE_LUCID]: Add BLOCK_INPUT around
12 XLoadQueryFont.
13
142010-03-24 Kenichi Handa <handa@m17n.org>
15
16 * coding.c (decode_coding_ccl): Fix previous change for the
17 multibyte case.
18 (encode_coding_ccl): Don't setup ccl program here. Fix for the
19 case that the output buffer is fullfilled.
20 (encode_coding): Setup ccl program here.
21
222010-03-24 Andreas Politz <politza@fh-trier.de> (tiny change)
23
24 * editfns.c (Fformat): Account for string precision when computing
25 field width (Bug#5710).
26
12010-03-23 Dan Nicolaescu <dann@ics.uci.edu> 272010-03-23 Dan Nicolaescu <dann@ics.uci.edu>
2 28
3 * s/gnu-linux.h (LIBS_SYSTEM): Remove, same as default. 29 * s/gnu-linux.h (LIBS_SYSTEM): Remove, same as default.
diff --git a/src/ChangeLog.7 b/src/ChangeLog.7
index 30ac527215f..6cc3d0f9e3e 100644
--- a/src/ChangeLog.7
+++ b/src/ChangeLog.7
@@ -7154,9 +7154,9 @@
7154 (ENCODE_ISO_CHARACTER): Bug of handling return value of unify_char 7154 (ENCODE_ISO_CHARACTER): Bug of handling return value of unify_char
7155 fixed. 7155 fixed.
7156 (DECODE_SJIS_BIG5_CHARACTER): New macro. 7156 (DECODE_SJIS_BIG5_CHARACTER): New macro.
7157 (decode_coding_sjis_big5): Handle character unificatoin table. 7157 (decode_coding_sjis_big5): Handle character unification table.
7158 Use macro DECODE_SJIS_BIG5_CHARACTER. 7158 Use macro DECODE_SJIS_BIG5_CHARACTER.
7159 (encode_coding_sjis_big5): Handle character unificatoin table. 7159 (encode_coding_sjis_big5): Handle character unification table.
7160 Use macro ENCODE_SJIS_BIG5_CHARACTER. 7160 Use macro ENCODE_SJIS_BIG5_CHARACTER.
7161 (setup_coding_system): Handle members 7161 (setup_coding_system): Handle members
7162 character_unification_table_for_decode and 7162 character_unification_table_for_decode and
diff --git a/src/coding.c b/src/coding.c
index df81eaba16e..bdc37cb7c53 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -5245,7 +5245,7 @@ decode_coding_ccl (coding)
5245 int multibytep = coding->src_multibyte; 5245 int multibytep = coding->src_multibyte;
5246 struct ccl_program *ccl = &coding->spec.ccl->ccl; 5246 struct ccl_program *ccl = &coding->spec.ccl->ccl;
5247 int source_charbuf[1024]; 5247 int source_charbuf[1024];
5248 int source_byteidx[1024]; 5248 int source_byteidx[1025];
5249 Lisp_Object attrs, charset_list; 5249 Lisp_Object attrs, charset_list;
5250 5250
5251 CODING_GET_INFO (coding, attrs, charset_list); 5251 CODING_GET_INFO (coding, attrs, charset_list);
@@ -5256,11 +5256,14 @@ decode_coding_ccl (coding)
5256 int i = 0; 5256 int i = 0;
5257 5257
5258 if (multibytep) 5258 if (multibytep)
5259 while (i < 1024 && p < src_end) 5259 {
5260 { 5260 while (i < 1024 && p < src_end)
5261 source_byteidx[i] = p - src; 5261 {
5262 source_charbuf[i++] = STRING_CHAR_ADVANCE (p); 5262 source_byteidx[i] = p - src;
5263 } 5263 source_charbuf[i++] = STRING_CHAR_ADVANCE (p);
5264 }
5265 source_byteidx[i] = p - src;
5266 }
5264 else 5267 else
5265 while (i < 1024 && p < src_end) 5268 while (i < 1024 && p < src_end)
5266 source_charbuf[i++] = *p++; 5269 source_charbuf[i++] = *p++;
@@ -5270,7 +5273,7 @@ decode_coding_ccl (coding)
5270 ccl_driver (ccl, source_charbuf, charbuf, i, charbuf_end - charbuf, 5273 ccl_driver (ccl, source_charbuf, charbuf, i, charbuf_end - charbuf,
5271 charset_list); 5274 charset_list);
5272 charbuf += ccl->produced; 5275 charbuf += ccl->produced;
5273 if (multibytep && ccl->consumed < i) 5276 if (multibytep)
5274 src += source_byteidx[ccl->consumed]; 5277 src += source_byteidx[ccl->consumed];
5275 else 5278 else
5276 src += ccl->consumed; 5279 src += ccl->consumed;
@@ -5304,7 +5307,7 @@ static int
5304encode_coding_ccl (coding) 5307encode_coding_ccl (coding)
5305 struct coding_system *coding; 5308 struct coding_system *coding;
5306{ 5309{
5307 struct ccl_program ccl; 5310 struct ccl_program *ccl = &coding->spec.ccl->ccl;
5308 int multibytep = coding->dst_multibyte; 5311 int multibytep = coding->dst_multibyte;
5309 int *charbuf = coding->charbuf; 5312 int *charbuf = coding->charbuf;
5310 int *charbuf_end = charbuf + coding->charbuf_used; 5313 int *charbuf_end = charbuf + coding->charbuf_used;
@@ -5315,35 +5318,34 @@ encode_coding_ccl (coding)
5315 Lisp_Object attrs, charset_list; 5318 Lisp_Object attrs, charset_list;
5316 5319
5317 CODING_GET_INFO (coding, attrs, charset_list); 5320 CODING_GET_INFO (coding, attrs, charset_list);
5318 setup_ccl_program (&ccl, CODING_CCL_ENCODER (coding)); 5321 if (coding->consumed_char == coding->src_chars
5319 5322 && coding->mode & CODING_MODE_LAST_BLOCK)
5320 ccl.last_block = coding->mode & CODING_MODE_LAST_BLOCK; 5323 ccl->last_block = 1;
5321 ccl.dst_multibyte = coding->dst_multibyte;
5322 5324
5323 while (charbuf < charbuf_end) 5325 while (charbuf < charbuf_end)
5324 { 5326 {
5325 ccl_driver (&ccl, charbuf, destination_charbuf, 5327 ccl_driver (ccl, charbuf, destination_charbuf,
5326 charbuf_end - charbuf, 1024, charset_list); 5328 charbuf_end - charbuf, 1024, charset_list);
5327 if (multibytep) 5329 if (multibytep)
5328 { 5330 {
5329 ASSURE_DESTINATION (ccl.produced * 2); 5331 ASSURE_DESTINATION (ccl->produced * 2);
5330 for (i = 0; i < ccl.produced; i++) 5332 for (i = 0; i < ccl->produced; i++)
5331 EMIT_ONE_BYTE (destination_charbuf[i] & 0xFF); 5333 EMIT_ONE_BYTE (destination_charbuf[i] & 0xFF);
5332 } 5334 }
5333 else 5335 else
5334 { 5336 {
5335 ASSURE_DESTINATION (ccl.produced); 5337 ASSURE_DESTINATION (ccl->produced);
5336 for (i = 0; i < ccl.produced; i++) 5338 for (i = 0; i < ccl->produced; i++)
5337 *dst++ = destination_charbuf[i] & 0xFF; 5339 *dst++ = destination_charbuf[i] & 0xFF;
5338 produced_chars += ccl.produced; 5340 produced_chars += ccl->produced;
5339 } 5341 }
5340 charbuf += ccl.consumed; 5342 charbuf += ccl->consumed;
5341 if (ccl.status == CCL_STAT_QUIT 5343 if (ccl->status == CCL_STAT_QUIT
5342 || ccl.status == CCL_STAT_INVALID_CMD) 5344 || ccl->status == CCL_STAT_INVALID_CMD)
5343 break; 5345 break;
5344 } 5346 }
5345 5347
5346 switch (ccl.status) 5348 switch (ccl->status)
5347 { 5349 {
5348 case CCL_STAT_SUSPEND_BY_SRC: 5350 case CCL_STAT_SUSPEND_BY_SRC:
5349 record_conversion_result (coding, CODING_RESULT_INSUFFICIENT_SRC); 5351 record_conversion_result (coding, CODING_RESULT_INSUFFICIENT_SRC);
@@ -7534,6 +7536,7 @@ encode_coding (coding)
7534 Lisp_Object attrs; 7536 Lisp_Object attrs;
7535 Lisp_Object translation_table; 7537 Lisp_Object translation_table;
7536 int max_lookup; 7538 int max_lookup;
7539 struct ccl_spec cclspec;
7537 7540
7538 attrs = CODING_ID_ATTRS (coding->id); 7541 attrs = CODING_ID_ATTRS (coding->id);
7539 if (coding->encoder == encode_coding_raw_text) 7542 if (coding->encoder == encode_coding_raw_text)
@@ -7555,6 +7558,11 @@ encode_coding (coding)
7555 7558
7556 ALLOC_CONVERSION_WORK_AREA (coding); 7559 ALLOC_CONVERSION_WORK_AREA (coding);
7557 7560
7561 if (coding->encoder == encode_coding_ccl)
7562 {
7563 coding->spec.ccl = &cclspec;
7564 setup_ccl_program (&cclspec.ccl, CODING_CCL_ENCODER (coding));
7565 }
7558 do { 7566 do {
7559 coding_set_source (coding); 7567 coding_set_source (coding);
7560 consume_chars (coding, translation_table, max_lookup); 7568 consume_chars (coding, translation_table, max_lookup);
diff --git a/src/config.in b/src/config.in
index ef2c25c85d0..e1837e74560 100644
--- a/src/config.in
+++ b/src/config.in
@@ -318,10 +318,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
318/* Define to 1 if you have the <kerberos/krb.h> header file. */ 318/* Define to 1 if you have the <kerberos/krb.h> header file. */
319#undef HAVE_KERBEROS_KRB_H 319#undef HAVE_KERBEROS_KRB_H
320 320
321/* Define to 1 if `e_text' is member of `krb5_error'. */ 321/* Define to 1 if `e_text' is a member of `krb5_error'. */
322#undef HAVE_KRB5_ERROR_E_TEXT 322#undef HAVE_KRB5_ERROR_E_TEXT
323 323
324/* Define to 1 if `text' is member of `krb5_error'. */ 324/* Define to 1 if `text' is a member of `krb5_error'. */
325#undef HAVE_KRB5_ERROR_TEXT 325#undef HAVE_KRB5_ERROR_TEXT
326 326
327/* Define to 1 if you have the <krb5.h> header file. */ 327/* Define to 1 if you have the <krb5.h> header file. */
@@ -615,25 +615,25 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
615/* Define to 1 if you have the `strsignal' function. */ 615/* Define to 1 if you have the `strsignal' function. */
616#undef HAVE_STRSIGNAL 616#undef HAVE_STRSIGNAL
617 617
618/* Define to 1 if `ifr_addr' is member of `struct ifreq'. */ 618/* Define to 1 if `ifr_addr' is a member of `struct ifreq'. */
619#undef HAVE_STRUCT_IFREQ_IFR_ADDR 619#undef HAVE_STRUCT_IFREQ_IFR_ADDR
620 620
621/* Define to 1 if `ifr_broadaddr' is member of `struct ifreq'. */ 621/* Define to 1 if `ifr_broadaddr' is a member of `struct ifreq'. */
622#undef HAVE_STRUCT_IFREQ_IFR_BROADADDR 622#undef HAVE_STRUCT_IFREQ_IFR_BROADADDR
623 623
624/* Define to 1 if `ifr_flags' is member of `struct ifreq'. */ 624/* Define to 1 if `ifr_flags' is a member of `struct ifreq'. */
625#undef HAVE_STRUCT_IFREQ_IFR_FLAGS 625#undef HAVE_STRUCT_IFREQ_IFR_FLAGS
626 626
627/* Define to 1 if `ifr_hwaddr' is member of `struct ifreq'. */ 627/* Define to 1 if `ifr_hwaddr' is a member of `struct ifreq'. */
628#undef HAVE_STRUCT_IFREQ_IFR_HWADDR 628#undef HAVE_STRUCT_IFREQ_IFR_HWADDR
629 629
630/* Define to 1 if `ifr_netmask' is member of `struct ifreq'. */ 630/* Define to 1 if `ifr_netmask' is a member of `struct ifreq'. */
631#undef HAVE_STRUCT_IFREQ_IFR_NETMASK 631#undef HAVE_STRUCT_IFREQ_IFR_NETMASK
632 632
633/* Define to 1 if `n_un.n_name' is member of `struct nlist'. */ 633/* Define to 1 if `n_un.n_name' is a member of `struct nlist'. */
634#undef HAVE_STRUCT_NLIST_N_UN_N_NAME 634#undef HAVE_STRUCT_NLIST_N_UN_N_NAME
635 635
636/* Define to 1 if `tm_zone' is member of `struct tm'. */ 636/* Define to 1 if `tm_zone' is a member of `struct tm'. */
637#undef HAVE_STRUCT_TM_TM_ZONE 637#undef HAVE_STRUCT_TM_TM_ZONE
638 638
639/* Define to 1 if `struct utimbuf' is declared by <utime.h>. */ 639/* Define to 1 if `struct utimbuf' is declared by <utime.h>. */
@@ -860,6 +860,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
860/* Define to the one symbol short name of this package. */ 860/* Define to the one symbol short name of this package. */
861#undef PACKAGE_TARNAME 861#undef PACKAGE_TARNAME
862 862
863/* Define to the home page for this package. */
864#undef PACKAGE_URL
865
863/* Define to the version of this package. */ 866/* Define to the version of this package. */
864#undef PACKAGE_VERSION 867#undef PACKAGE_VERSION
865 868
@@ -919,6 +922,28 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
919/* Define to 1 if using the Motif X toolkit. */ 922/* Define to 1 if using the Motif X toolkit. */
920#undef USE_MOTIF 923#undef USE_MOTIF
921 924
925/* Enable extensions on AIX 3, Interix. */
926#ifndef _ALL_SOURCE
927# undef _ALL_SOURCE
928#endif
929/* Enable GNU extensions on systems that have them. */
930#ifndef _GNU_SOURCE
931# undef _GNU_SOURCE
932#endif
933/* Enable threading extensions on Solaris. */
934#ifndef _POSIX_PTHREAD_SEMANTICS
935# undef _POSIX_PTHREAD_SEMANTICS
936#endif
937/* Enable extensions on HP NonStop. */
938#ifndef _TANDEM_SOURCE
939# undef _TANDEM_SOURCE
940#endif
941/* Enable general extensions on Solaris. */
942#ifndef __EXTENSIONS__
943# undef __EXTENSIONS__
944#endif
945
946
922/* Define to 1 if we should use toolkit scroll bars. */ 947/* Define to 1 if we should use toolkit scroll bars. */
923#undef USE_TOOLKIT_SCROLL_BARS 948#undef USE_TOOLKIT_SCROLL_BARS
924 949
@@ -954,28 +979,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
954/* Define to 1 if you need to in order for `stat' and other things to work. */ 979/* Define to 1 if you need to in order for `stat' and other things to work. */
955#undef _POSIX_SOURCE 980#undef _POSIX_SOURCE
956 981
957/* Enable extensions on AIX 3, Interix. */
958#ifndef _ALL_SOURCE
959# undef _ALL_SOURCE
960#endif
961/* Enable GNU extensions on systems that have them. */
962#ifndef _GNU_SOURCE
963# undef _GNU_SOURCE
964#endif
965/* Enable threading extensions on Solaris. */
966#ifndef _POSIX_PTHREAD_SEMANTICS
967# undef _POSIX_PTHREAD_SEMANTICS
968#endif
969/* Enable extensions on HP NonStop. */
970#ifndef _TANDEM_SOURCE
971# undef _TANDEM_SOURCE
972#endif
973/* Enable general extensions on Solaris. */
974#ifndef __EXTENSIONS__
975# undef __EXTENSIONS__
976#endif
977
978
979/* Define to rpl_ if the getopt replacement functions and variables should be 982/* Define to rpl_ if the getopt replacement functions and variables should be
980 used. */ 983 used. */
981#undef __GETOPT_PREFIX 984#undef __GETOPT_PREFIX
diff --git a/src/dispextern.h b/src/dispextern.h
index 01ba3f54181..22d44fc9083 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -3122,7 +3122,8 @@ enum resource_types
3122 RES_TYPE_FLOAT, 3122 RES_TYPE_FLOAT,
3123 RES_TYPE_BOOLEAN, 3123 RES_TYPE_BOOLEAN,
3124 RES_TYPE_STRING, 3124 RES_TYPE_STRING,
3125 RES_TYPE_SYMBOL 3125 RES_TYPE_SYMBOL,
3126 RES_TYPE_BOOLEAN_NUMBER
3126}; 3127};
3127 3128
3128extern Lisp_Object x_get_arg P_ ((Display_Info *, Lisp_Object, 3129extern Lisp_Object x_get_arg P_ ((Display_Info *, Lisp_Object,
diff --git a/src/frame.c b/src/frame.c
index 40930af594c..757ed8f01a3 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -4005,6 +4005,13 @@ x_get_arg (dpyinfo, alist, param, attribute, class, type)
4005 case RES_TYPE_NUMBER: 4005 case RES_TYPE_NUMBER:
4006 return make_number (atoi (SDATA (tem))); 4006 return make_number (atoi (SDATA (tem)));
4007 4007
4008 case RES_TYPE_BOOLEAN_NUMBER:
4009 if (!strcmp (SDATA (tem), "on")
4010 || !strcmp (SDATA (tem), "true"))
4011 return make_number (1);
4012 return make_number (atoi (SDATA (tem)));
4013 break;
4014
4008 case RES_TYPE_FLOAT: 4015 case RES_TYPE_FLOAT:
4009 return make_float (atof (SDATA (tem))); 4016 return make_float (atof (SDATA (tem)));
4010 4017
diff --git a/src/xfns.c b/src/xfns.c
index 45bea1e4ec2..ae5858ccfb5 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -3347,7 +3347,9 @@ This function is an internal primitive--use `make-frame' instead. */)
3347#ifdef USE_LUCID 3347#ifdef USE_LUCID
3348 /* Prevent lwlib/xlwmenu.c from crashing because of a bug 3348 /* Prevent lwlib/xlwmenu.c from crashing because of a bug
3349 whereby it fails to get any font. */ 3349 whereby it fails to get any font. */
3350 BLOCK_INPUT;
3350 xlwmenu_default_font = XLoadQueryFont (FRAME_X_DISPLAY (f), "fixed"); 3351 xlwmenu_default_font = XLoadQueryFont (FRAME_X_DISPLAY (f), "fixed");
3352 UNBLOCK_INPUT;
3351#endif 3353#endif
3352 3354
3353 /* Frame contents get displaced if an embedded X window has a border. */ 3355 /* Frame contents get displaced if an embedded X window has a border. */
@@ -3421,7 +3423,7 @@ This function is an internal primitive--use `make-frame' instead. */)
3421 init_frame_faces (f); 3423 init_frame_faces (f);
3422 3424
3423 x_default_parameter (f, parms, Qmenu_bar_lines, make_number (1), 3425 x_default_parameter (f, parms, Qmenu_bar_lines, make_number (1),
3424 "menuBar", "MenuBar", RES_TYPE_NUMBER); 3426 "menuBar", "MenuBar", RES_TYPE_BOOLEAN_NUMBER);
3425 x_default_parameter (f, parms, Qtool_bar_lines, make_number (1), 3427 x_default_parameter (f, parms, Qtool_bar_lines, make_number (1),
3426 "toolBar", "ToolBar", RES_TYPE_NUMBER); 3428 "toolBar", "ToolBar", RES_TYPE_NUMBER);
3427 x_default_parameter (f, parms, Qbuffer_predicate, Qnil, 3429 x_default_parameter (f, parms, Qbuffer_predicate, Qnil,
diff --git a/test/cedet/tests/testjavacomp.java b/test/cedet/tests/testjavacomp.java
index feffe660e04..3c2c2ef4ebe 100644
--- a/test/cedet/tests/testjavacomp.java
+++ b/test/cedet/tests/testjavacomp.java
@@ -1,23 +1,23 @@
1/** testjavacomp.java --- 1/** testjavacomp.java ---
2 * 2 *
3 * Copyright (C) 2009 Eric M. Ludlam 3 * Copyright (C) 2009, 2010 Free Software Foundation, Inc.
4 * 4 *
5 * Author: Eric M. Ludlam <eric@siege-engine.com> 5 * Author: Eric M. Ludlam <eric@siege-engine.com>
6 * 6 *
7 * This program is free software; you can redistribute it and/or 7 * This file is part of GNU Emacs.
8 * modify it under the terms of the GNU General Public License as 8 *
9 * published by the Free Software Foundation; either version 2, or (at 9 * GNU Emacs is free software: you can redistribute it and/or modify
10 * your option) any later version. 10 * it under the terms of the GNU General Public License as published by
11 * 11 * the Free Software Foundation, either version 3 of the License, or
12 * This program is distributed in the hope that it will be useful, but 12 * (at your option) any later version.
13 * WITHOUT ANY WARRANTY; without even the implied warranty of 13 *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * GNU Emacs is distributed in the hope that it will be useful,
15 * General Public License for more details. 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
17 * You should have received a copy of the GNU General Public License 19 * You should have received a copy of the GNU General Public License
18 * along with this program; see the file COPYING. If not, write to 20 * along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301, USA.
21 */ 21 */
22 22
23package tests.testjavacomp; 23package tests.testjavacomp;
diff --git a/test/cedet/tests/testpolymorph.cpp b/test/cedet/tests/testpolymorph.cpp
index 51f933cf7fd..329f4d598f4 100644
--- a/test/cedet/tests/testpolymorph.cpp
+++ b/test/cedet/tests/testpolymorph.cpp
@@ -1,23 +1,23 @@
1/** testpolymorph.cpp --- A sequence of polymorphism examples. 1/** testpolymorph.cpp --- A sequence of polymorphism examples.
2 * 2 *
3 * Copyright (C) 2009 Eric M. Ludlam 3 * Copyright (C) 2009, 2010 Free Software Foundation, Inc.
4 * 4 *
5 * Author: Eric M. Ludlam <eric@siege-engine.com> 5 * Author: Eric M. Ludlam <eric@siege-engine.com>
6 * 6 *
7 * This program is free software; you can redistribute it and/or 7 * This file is part of GNU Emacs.
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2, or (at
10 * your option) any later version.
11 * 8 *
12 * This program is distributed in the hope that it will be useful, but 9 * GNU Emacs is free software: you can redistribute it and/or modify
13 * WITHOUT ANY WARRANTY; without even the implied warranty of 10 * it under the terms of the GNU General Public License as published by
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * the Free Software Foundation, either version 3 of the License, or
15 * General Public License for more details. 12 * (at your option) any later version.
13 *
14 * GNU Emacs is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
16 * 18 *
17 * You should have received a copy of the GNU General Public License 19 * You should have received a copy of the GNU General Public License
18 * along with this program; see the file COPYING. If not, write to 20 * along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301, USA.
21 */ 21 */
22 22
23#include <cmath> 23#include <cmath>