* BUGS
+** Document the changes introduced by multi-tty
+http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg01639.html
+http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg01602.html
+
+** Does deleting frames run Lisp code? If so, can we get rid of that?
+It is a dangerous design.
+http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01330.html
+
+** Why were the calls to x_fully_uncatch_errors commented out in eval.c?
+http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01987.html
+
+** grep et al should use font-lock to do highlighting, so that they respect font-lock-mode.
+"can't turn off font-lock"
+http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg00548.html
+
+** mah@everybody.org, Sep 18: erc causes emacs to hang with multi-tty
+http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01765.html
+
+** jbw@macs.hw.ac.uk, Sep 18: before-string property has no effect if display property is empty
+http://lists.gnu.org/archive/html/bug-gnu-emacs/2007-09/msg00094.html
+http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01816.html
+
+** sdl.web@gmail.com, Sep 24: TLS infinite loop.
+http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01720.html
+
+** herring@lanl.gov: find-func: can no longer find adviced subrs
+This ought to work.
+
+** \\{...} produces duplicate entries
+http://lists.gnu.org/archive/html/emacs-devel/2007-05/msg00209.html
+
+** menu indications of key bindings for remapped commands
+http://lists.gnu.org/archive/html/emacs-devel/2007-05/msg01339.html
+
+** rms: gnus-dired.el is a mistake. Those features should not
+be part of Gnus. They should be moved to some other part of Emacs.
+rsteib: Gnus dependencies in `gnus-dired.el' (and `mailcap.el') have been
+minimized. I don't know what is left to do here.
+
+** sdl.web@gmail.com, 30 Oct: ps-lpr-switches has no effect
+
** Stephen.Berman@gmx.net: minibuffer and current-local-map
-** bojohan+news@dd.chalmers.se, 19 Nov: appointment display during isearch replaces buffer contents
- with history element.
+** timh@insightful.com, 9 Nov: X-coding-system incompatibility, and workaround
+
+** Get rid of old-style backquotes in cc-vars.el.
+ttn has a patch:
+http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg02052.html
-** eric@openbsd.org, 24 Nov: c-mode syntactic analysis regression in emacs-22.1
+** Fix or document the shortcoming of easymenu and :suffix.
+http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01857.html
-** diff mode change for missing spaces in -u format.
+** Fix problem with mode-name in SGML mode.
+If mode-name stays non-string, add NEWS entry and doc fix.
+http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg02048.html
+ ** pot@gnu.org, 17 Dec: strange From line maker rmail-reply loop
+
* DOCUMENTATION
** Check the Emacs Tutorial.
--- /dev/null
++2007-12-27 Richard Stallman <rms@gnu.org>
++
++ * text.texi (Formatted Text): Improve menu tag.
++ (Editing Format Info): In Info, add duplicate menu of nodes
++ about the submenus.
++ (Format Faces): Say where Faces menu is found. Mention Other.
++ (Format Colors): Say where these submenus are found.
++ (Format Indentation, Format Justification): Likewise.
++ (Format Properties): Likewise.
++
++2007-12-22 Richard Stallman <rms@gnu.org>
++
++ * search.texi (Query Replace): Make exp of query-replace more
++ self-contained, and clarify.
++
++ * cc-mode.texi (Getting Started): Change @ref to @pxref.
++
++2007-12-15 Richard Stallman <rms@gnu.org>
++
++ * files.texi (Auto Save): Clarify definition of auto-saving.
++
+2007-11-26 Richard Stallman <rms@gnu.org>
+
+ * help.texi (Help Echo): Cleanups.
+
+2007-11-23 Thien-Thi Nguyen <ttn@gnuvola.org>
+
+ * files.texi (Why Version Control?): Fix typo.
+ (VCS Concepts): Fix typos; small tense fix.
+ (Selecting a Fileset): Fix typos; small rewording.
+ (Log Buffer): Likewise.
+ (Old Revisions): Likewise.
+
+2007-11-17 Eli Zaretskii <eliz@gnu.org>
+
+ * mule.texi (Communication Coding): Fix wording of last change.
+
+2007-11-16 Werner Lemberg <wl@gnu.org>
+
+ * custom.texi (Specifying File Variables), major.texi (Choosing
+ Modes): Mention '\" in man pages.
+
+2007-11-16 Kenichi Handa <handa@ni.aist.go.jp>
+
+ * mule.texi (Communication Coding): Document x-select-request-type.
+
+ * frames.texi (Cut/Paste Other App): Mention x-select-request-type.
+
+2007-11-15 Francesco Potort\e,Al\e(B <pot@gnu.org>
+
+ * maintaining.texi (TEXTAGS): note that you can use "-" for stdout with
+ --output=file.
+
+2007-11-13 Martin Rudalics <rudalics@gmx.at>
+
+ * help.texi (Help Summary, Apropos, Misc Help): Fix typos.
+ (Help Echo): Avoid mentioning the term "region" here and
+ consistently use the term "active text".
+
+2007-11-11 Glenn Morris <rgm@gnu.org>
+
+ * calendar.texi (Special Diary Entries): Fix Thanksgiving example.
+
+2007-11-10 Paul Pogonyshev <pogonyshev@gmx.net>
+
+ * search.texi (Query Replace): Mention
+ `query-replace-show-replacement'.
+
+2007-11-09 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Watch Expressions): Remove obscure sentence.
+
+2007-11-06 Kenichi Handa <handa@ni.aist.go.jp>
+
+ * mule.texi (Select Input Method): Describe how to activate an input
+ method in the text mode.
+
+2007-11-01 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * cmdargs.texi (Misc Variables): Remove Sun windows info.
+
+2007-10-30 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Watch Expressions): Describe gdb-delete-out-of-scope.
+
+2007-10-30 Glenn Morris <rgm@gnu.org>
+
+ * misc.texi (Directory Tracking): Explain a bit more about
+ dirtrack-mode.
+
+2007-10-25 Glenn Morris <rgm@gnu.org>
+
+ * fortran-xtra.texi (Fortran): F90 mode handles F2003.
+
+2007-10-24 Richard Stallman <rms@gnu.org>
+
+ * misc.texi (Interactive Shell): Cleanup last change.
+
+2007-10-22 Juri Linkov <juri@jurta.org>
+
+ * mini.texi (Minibuffer History): Add text about a list of minibuffer
+ default values.
+
+2007-10-20 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * files.texi: Disambiguate two slightly different uses of the term
+ 'filesets'.
+
+2007-10-18 Martin Rudalics <rudalics@gmx.at>
+
+ * trouble.texi (Quitting): Fix typo.
+
+2007-10-18 Glenn Morris <rgm@gnu.org>
+
+ * frames.texi (Mode Line Mouse): Mention minor mode names.
+
+2007-10-17 Juri Linkov <juri@jurta.org>
+
+ * text.texi (Fill Commands): Undocument fill-paragraph-or-region.
+ fill-paragraph operates on the active region in Transient Mark mode.
+ (Fill Prefix, Format Indentation): Replace fill-paragraph-or-region
+ with fill-paragraph.
+
+ * basic.texi (Arguments): Replace fill-paragraph-or-region with
+ fill-paragraph.
+
+ * fixit.texi (Spelling): ispell-word operates on the active region
+ in Transient Mark mode.
+
+2007-10-17 Aaron S. Hawley <aaronh@garden.org>
+
+ * building.texi (Source Buffers):
+ * custom.texi (Init Non-ASCII):
+ * glossary.texi (Glossary): Use "key binding" consistently.
+
+2007-10-17 Juanma Barranquero <lekktu@gmail.com>
+
+ * calendar.texi (Diary): Fix directive.
+
+2007-10-16 Richard Stallman <rms@gnu.org>
+
+ * calendar.texi (Diary): Clarify text about diary file example.
+
+2007-10-13 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * files.texi: Capitalize node names according to convention.
+
+2007-10-13 Glenn Morris <rgm@gnu.org>
+
+ * misc.texi (Interactive Shell): Correct INSIDE_EMACS reference.
+
+2007-10-11 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * emacs.texi:
+ * files.texi (Version Systems): Minor fixes to version-control material
+ suggested by RMS and Robert J. Chassell.
+
+2007-10-10 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * files.texi (Version Systems):
+ * vc-xtra.texi:
+ * vc1-xtra.texi:
+ * vc2-xtra.texi: Merge in changes for new VC with fileset-oriented
+ operations. Change of terminology from `version' to `revision'.
+ Revise text for adequate description of VCSes with monotonic IDs.
+ * emacs.texi: Change of terminology from `version' to `revision'.
+
+2007-10-09 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * files.texi (Version Systems): Describe newer VCses.
+ Reorder the descriptions to be chronological.
+
+2007-10-09 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Cursor Display): Correct how cursor appears
+ in nonselected windows.
+
+2007-10-04 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB Graphical Interface): Remove references to gdba
+ and mention gud-gdb.
+
+2007-08-31 Eli Zaretskii <eliz@gnu.org>
+
+ * rmail.texi (Rmail Sorting): Improve indexing.
+
+2007-10-06 Juri Linkov <juri@jurta.org>
+
+ * text.texi (Fill Commands): Document fill-paragraph-or-region.
+ (Fill Prefix, Format Indentation): Replace fill-paragraph with
+ fill-paragraph-or-region.
+
+ * basic.texi (Arguments): Replace fill-paragraph with
+ fill-paragraph-or-region.
+
+2007-10-06 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * files.texi: Update the section on version control for 2007
+ conditions. None of these changes are new-VC-specific; that
+ will come later.
+
+2007-09-15 Glenn Morris <rgm@gnu.org>
+
+ * calendar.texi (Holidays): Change all instances of `holiday-list' back
+ to `list-holidays'.
+
+2007-09-14 Glenn Morris <rgm@gnu.org>
+
+ * calendar.texi: Update all instances of mark-calendar-holidays,
+ list-calendar-holidays, list-holidays with the new names.
+
+2007-09-06 Glenn Morris <rgm@gnu.org>
+
+ * Move manual sources from man/ to subdirectories of doc/.
+ Split into the Emacs manual in emacs/, and other manuals in misc/.
+ * Makefile.in (INFO_TARGETS, DVI_TARGETS): Reduce to just the Emacs
+ manual.
+ (infodir): New variable.
+ (info): Use $infodir.
+ (emacsman): Delete target, not needed any more.
+ Move all targets that are not the Emacs manual to misc/Makefile.in.
+ (mostlyclean): Remove `gnustmp'.
+ * makefile.w32-in (INFO_TARGETS, DVI_TARGETS): Reduce to just the Emacs
+ manual.
+ (MULTI_INSTALL_INFO, ENVADD, infodir): Go up one more level.
+ (emacsman): Delete target, not needed any more.
+ (clean): Remove all info files but Emacs manual.
+ Move all targets that are not the Emacs manual to misc/Makefile.in.
+ * emacs-xtra.texi, emacs.texi (setfilename): Go up one more level.
+
+ * Makefile.in (INFOSOURCES): Delete.
+ (.SUFFIXES): Use $(TEXI2DVI) rather than texi2dvi.
+ (mostlyclean): Add *.op, *.ops. Move *.aux *.cps *.fns *.kys *.pgs
+ *.vrs *.toc here...
+ (maintainer-clean): ...from here.
+
+2007-09-05 Glenn Morris <rgm@gnu.org>
+
+ * custom.texi (Safe File Variables): Clarify `!' and risky variables.
+
+2007-08-29 Glenn Morris <rgm@gnu.org>
+
+ * emacs.texi (EMACSVER): Increase to 23.0.50.
+
+2007-08-27 Richard Stallman <rms@gnu.org>
+
+ * emacs.texi (Top): Clarify menu item for Glossary.
+
+ * display.texi (Faces): Change secn title.
+ Clarify not all fonts come from Font Lock.
+
+2007-08-17 Eli Zaretskii <eliz@gnu.org>
+
+ * basic.texi (Position Info): Add index entry for face at point.
+ Mention that character faces are also displayed by "C-u C-x =".
+
+2007-08-08 Glenn Morris <rgm@gnu.org>
+
+ * glossary.texi (Glossary): Deprecate `iff'.
+
+2007-08-07 Chong Yidong <cyd@stupidchicken.com>
+
+ * files.texi (File Conveniences): Document point motion keys in Image
+ mode.
+
+2007-07-27 Glenn Morris <rgm@gnu.org>
+
+ * emacs.texi (Copying): Include license text from gpl.texi, rather than
+ in-line.
+
+ * gpl.texi: New file with text of GPL.
+ * Makefile.in (EMACSSOURCES): Add gpl.texi.
+
+2007-07-26 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * vc2-xtra.texi (Customizing VC): Add GIT and HG.
+
+ * dired.texi (Wdired): Mention C-x C-q key binding.
+
+2007-07-28 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB Graphical Interface): Qualify use of "M-x gdba".
+
+2007-07-25 Glenn Morris <rgm@gnu.org>
+
+ * emacs.texi (Copying): Replace license with GPLv3.
+
+ * Relicense all FSF files to GPLv3 or later.
+
+2007-07-24 Glenn Morris <rgm@gnu.org>
+
+ * calendar.texi (Writing Calendar Files): cal-tex-diary etc only work
+ for some calendars.
+
+2007-07-23 Nick Roberts <nickrob@snap.net.nz>
+
+ * screen.texi (Mode Line): Describe new mode-line flag that shows if
+ default-directory for the current buffer is on a remote machine.
+
+2007-07-21 Eli Zaretskii <eliz@gnu.org>
+
+ * vc2-xtra.texi (Customizing VC) <vc-handled-backends>: Update the
+ default value.
+
+2007-07-21 Richard Stallman <rms@gnu.org>
+
+ * files.texi (Why Version Control?): Improve previous change.
+
+2007-07-18 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * files.texi (Why Version Control?): New node.
+
+2007-07-12 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Starting GUD): Add xref to this anchor.
+
+2007-06-24 Karl Berry <karl@gnu.org>
+
+ * emacs.texi: New Back-Cover Text.
+
+2007-06-07 Alan Mackenzie <acm@muc.de>
+
+ * display.texi (Optional Mode Line): Document the new form of
+ line+column numbers, "(561,2)".
+
+2007-06-06 Juanma Barranquero <lekktu@gmail.com>
+
+ * maintaining.texi (Create Tags Table): Fix typos.
+
+2007-06-02 Chong Yidong <cyd@stupidchicken.com>
+
+ * Version 22.1 released.
+
+2007-05-07 Karl Berry <karl@gnu.org>
+
+ * emacs.texi (EMACSVER): Back to 22.
+
+2007-05-06 Richard Stallman <rms@gnu.org>
+
+ * maintaining.texi (Create Tags Table): Clean up previous change.
+
+2007-05-05 Francesco Potort\e,Al\e(B <pot@gnu.org>
+
+ * maintaining.texi (Create Tags Table): Add text about the dangers of
+ making symbolic links to tags files.
+
+2007-05-04 Karl Berry <karl@gnu.org>
+
+ * emacs.texi (EMACSVER) [smallbook]: 22.1 for printed version, not 22.
+
+2007-05-03 Karl Berry <karl@gnu.org>
+
+ * emacs.texi (EMACSVER) [smallbook]: 22 for printed version.
+
+ * .cvsignore (*.pdf): New entry.
+
+ * emacs.texi (\urlcolor, \linkcolor) [smallbook]: \let to \Black
+ for printing.
+
+2007-05-01 Richard Stallman <rms@gnu.org>
+
+ * cmdargs.texi (Initial Options): Under --batch, mention --eval.
+
+2007-04-28 Glenn Morris <rgm@gnu.org>
+
+ * ack.texi (Acknowledgments):
+ * anti.texi (Antinews):
+ * programs.texi (Program Modes): Restore mention of python.el pending
+ consideration of legal status.
+
+2007-04-28 Richard Stallman <rms@gnu.org>
+
+ * files.texi (File Names): Fixes to ~ description on MS systems.
+
+2007-04-26 Glenn Morris <rgm@gnu.org>
+
+ * emacs.texi (EMACSVER): Increase to 22.1.50.
+
+2007-04-25 Karl Berry <karl@gnu.org>
+
+ * emacs.texi: Improve line breaks on copyright page,
+ similar layout to lispref, 8.5x11 by default.
+
+ * dired.texi (Image-Dired): Improve line break, fix typo.
+
+2007-04-24 Chong Yidong <cyd@stupidchicken.com>
+
+ * programs.texi (Program Modes):
+ * anti.texi (Antinews):
+ * ack.texi (Acknowledgments): python.el removed.
+
+2007-04-23 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi (Highlight Interactively): Correct description of
+ hi-lock-file-patterns-policy.
+
+ * files.texi (File Archives): Mention self-extracting executables.
+
+2007-04-23 Eli Zaretskii <eliz@gnu.org>
+
+ * search.texi (Unconditional Replace, Query Replace): Add xref to
+ "Replacement and Case".
+
+2007-04-22 Chong Yidong <cyd@stupidchicken.com>
+
+ * dired.texi (Image-Dired): Move from Thumbnails node.
+ * misc.texi (Thumbnails): Node deleted.
+ * emacs.texi (Top): Update node listing.
+
+ * files.texi (File Conveniences):
+ * ack.texi (Acknowledgments): Rename "tumme" to "image-dired".
+
+2007-04-21 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Highlight Interactively): Correct previous change.
+ Clarify doc of hi-lock-find-patterns, and move new features into it.
+
+2007-04-20 David Koppelman <koppel@ece.lsu.edu>
+
+ * display.texi (Highlight Interactively): Document
+ hi-lock-file-patterns-policy.
+
+2007-04-20 Martin Rudalics <rudalics@gmx.at>
+
+ * display.texi (Scrolling): Fix typo.
+
+2007-04-15 Chong Yidong <cyd@stupidchicken.com>
+
+ * doclicense.texi: Remove node heading, so that it can be included by
+ other files.
+
+ * emacs.texi: Insert node heading for GFDL.
+
+2007-04-14 Eli Zaretskii <eliz@gnu.org>
+
+ * cmdargs.texi (Colors): Qualify "color of window" index entry by
+ "command line".
+
+ * display.texi (Faces): Refer to "Creating Frames" for face
+ and other frame customizations in .emacs.
+
+ * frames.texi (Creating Frames): Mention that face customizations can
+ be put in .emacs. Add index entries.
+
+2007-04-12 Richard Stallman <rms@gnu.org>
+
+ * glossary.texi (Glossary): Explain `iff'.
+
+2007-04-11 Karl Berry <karl@gnu.org>
+
+ * gnu.texi (Top),
+ * macos.texi (Mac Font Specs),
+ * anti.texi (Antinews),
+ * xresources.texi (Resources),
+ * misc.texi (Emulation),
+ * calendar.texi (Daylight Saving),
+ * dired.texi (Dired and Find),
+ * rmail.texi (Remote Mailboxes),
+ * sending.texi (Mail Headers),
+ * programs.texi (Which Function),
+ * files.texi (Recover),
+ * buffers.texi (Uniquify),
+ * frames.texi (Wheeled Mice),
+ * killing.texi (Rectangles): Wording to improve breaks in
+ 8.5x11 format.
+ * mule.texi (Language Environments): \hbadness=10000 since there's
+ no way to reword.
+ * emacs.texi (smallbook): New @set to more easily switch between
+ smallbook and 8.5x11.
+
+2007-04-11 Richard Stallman <rms@gnu.org>
+
+ * files.texi (File Conveniences): Add xref to Tumme.
+ Delete text about Thumbnail mode.
+
+2007-04-09 Alan Mackenzie <acm@muc.de>
+
+ * cmdargs.texi (Initial Options): Call "inhibit-splash-screen" by its
+ new name. Insert concept index entries.
+
+2007-04-08 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi (Standard Faces): Document prefix arg for
+ list-faces-display.
+
+ * rmail.texi (Rmail Scrolling): Document rmail-end-of-message.
+
+2007-04-07 Chong Yidong <cyd@stupidchicken.com>
+
+ * killing.texi (Deletion): Rewrite description of M-\ prefix argument.
+
+ * files.texi (Misc File Ops): Rewrite description of
+ insert-file-literally.
+
+2007-03-31 Eli Zaretskii <eliz@gnu.org>
+
+ * misc.texi (Printing): Postscript -> PostScript.
+
+ * ack.texi (Acknowledgments): Postscript -> PostScript.
+
+ * custom.texi (Init File, Init Non-ASCII): Fix last change.
+
+ * emacs.texi (Top): Fix the menu due to the change in custom.texi
+ below.
+
+2007-03-30 Chong Yidong <cyd@stupidchicken.com>
+
+ * custom.texi (Non-ASCII Rebinding): Node deleted. Material moved to
+ Init Non-ASCII.
+ (Init Rebinding, Init Syntax): Link to Init Non-ASCII instead.
+ (Init Non-ASCII): New node.
+
+2007-03-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macos.texi (Mac Font Specs): Mention AppleAntiAliasingThreshold.
+
+2007-03-12 Glenn Morris <rgm@gnu.org>
+
+ * calendar.texi, emacs.texi (Daylight Saving): Rename node from
+ "Daylight Savings".
+
+ * calendar.texi: Replace "daylight savings" with "daylight
+ saving" in text throughout.
+
+2007-03-04 Richard Stallman <rms@gnu.org>
+
+ * custom.texi (Safe File Variables): Minor correction.
+
+2007-02-28 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * rmail.texi (Movemail): Add internal ref.
+ Don't indent the intro for the PROTO table.
+ Format PROTO table items with @code.
+
+2007-02-26 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi: Remove references to bashdb.
+
+2007-02-19 Juanma Barranquero <lekktu@gmail.com>
+
+ * mule.texi (Language Environments): Update list of supported language
+ environments.
+
+2007-02-14 Kim F. Storm <storm@cua.dk>
+
+ * building.texi (Grep Searching): Fix lgrep doc.
+
+2007-02-12 Chong Yidong <cyd@stupidchicken.com>
+
+ * back.texi: Remove unused file.
+
+2007-02-05 Francesco Potort\e,Al\e(B <pot@gnu.org>
+
+ * maintaining.texi (Tag Syntax): Now --members is the default for
+ etags, not for ctags yet.
+
+2007-02-03 Eli Zaretskii <eliz@gnu.org>
+
+ * emacs.texi (Top): Update the top-level menus. Make the detailed menu
+ headers compliant with Texinfo guidelines and with what texnfo-upd.el
+ expects. Add comments to prevent people from inadvertently modifying
+ the key parts needed by `texinfo-multiple-files-update'.
+
+2007-01-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * frames.texi (Secondary Selection): Window clicked does not matter
+ when mouse-yank-at-point is non-nil.
+
+2007-01-16 Glenn Morris <rgm@gnu.org>
+
+ * abbrevs.texi (Editing Abbrevs): Describe how to disable a
+ system abbrev.
+
+2007-01-11 Richard Stallman <rms@gnu.org>
+
+ * msdog.texi (Windows Keyboard): Another small cleanup.
+
+2007-01-10 Richard Stallman <rms@gnu.org>
+
+ * msdog.texi (Windows Keyboard): Yet another try to make
+ everyone happy with that passage.
+
+2007-01-05 Richard Stallman <rms@gnu.org>
+
+ * anti.texi (Antinews): Mention M-x shell scrolling.
+
+2007-01-05 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Watch Expressions): Describe gdb-max-children.
+
+2007-01-04 Richard Stallman <rms@gnu.org>
+
+ * msdog.texi (Windows Keyboard): Clarify previous change.
+
+2007-01-02 Richard Stallman <rms@gnu.org>
+
+ * custom.texi (Changing a Variable): Minor clarification.
+ (Specific Customization): customize-customized => customize-unsaved.
+
+ * entering.texi (Entering Emacs): Clean up text about restarting
+ Emacs for each file.
+
+ * misc.texi (Shell Options): Minor cleanup.
+
+ * msdog.texi (Windows Keyboard): Explain that Windows was incompatible
+ with Emacs, not vice versa.
+
+ * programs.texi (Symbol Completion): Recommend customizing
+ window manager.
+
+ * xresources.texi (Resources): Minor fix.
+
+2007-01-01 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * xresources.texi (Table of Resources): Add scrollBarWidth resource.
+
+2007-01-01 Richard Stallman <rms@gnu.org>
+
+ * commands.texi (User Input): Document keys stolen by window mangers.
+
+2006-12-31 Richard Stallman <rms@gnu.org>
+
+ * custom.texi (Specific Customization): Document customize-option
+ instead of customize-variable.
+
+2006-12-31 Kim F. Storm <storm@cua.dk>
+
+ * major.texi (Choosing Modes): Document auto-mode-case-fold.
+
+2006-12-30 Kim F. Storm <storm@cua.dk>
+
+ * killing.texi (CUA Bindings): Fix typo.
+
+ * xresources.texi (Table of Resources): Mention grow-only value for
+ auto-resize-tool-bars.
+
+2006-12-27 Eli Zaretskii <eliz@gnu.org>
+
+ * msdog.texi (Windows Keyboard): Mention widespread Windows bindings,
+ and how to get them back.
+
+2006-12-26 Richard Stallman <rms@gnu.org>
+
+ * calendar.texi (Holidays): Holiday listing is based on current
+ practice, but DST is not.
+
+2006-12-25 Richard Stallman <rms@gnu.org>
+
+ * emacs.texi (Top): Update subnode menus.
+
+ * mark.texi (Transient Mark): Fix xref.
+
+ * killing.texi (Graphical Kill): Node deleted.
+ (Killing): Add xref to Cut and Paste.
+ (CUA Bindings): Update xref.
+
+ * frames.texi (Cut and Paste): New section to hold other nodes.
+ (Mouse Commands): Node demoted.
+ (Cut/Paste Other App): Split out from Mouse Commands.
+ (Word and Line Mouse): Likewise.
+ (Secondary Selection, Clipboard): Nodes demoted.
+
+2006-12-24 Kevin Ryde <user42@zip.com.au>
+
+ * calendar.texi (Holidays): US daylight saving begins second Sunday
+ in March for 2007 onwards.
+ (Daylight Savings): Show new US default daylight saving rules, 2nd
+ Sun in Mar to 1st Sun in Nov, now in cal-dst.el.
+
+2006-12-23 Chong Yidong <cyd@stupidchicken.com>
+
+ * calendar.texi (Scroll Calendar): < and > are switched.
+
+2006-12-23 Kevin Rodgers <ihs_4664@yahoo.com>
+
+ * killing.texi (Deletion): Describe M-\ prefix argument.
+
+2006-12-23 Richard Stallman <rms@gnu.org>
+
+ * search.texi (Regexp Search): Explain why forward and reverse regexp
+ search are not mirror images.
+
+2006-12-19 Kim F. Storm <storm@cua.dk>
+
+ * major.texi (Choosing Modes): Describe match-function elements for
+ magic-mode-alist.
+
+2006-12-18 Eli Zaretskii <eliz@gnu.org>
+
+ * msdog.texi (Windows Keyboard): Add a footnote about "Windows" keys
+ peculiarities.
+
+2006-12-18 Richard Stallman <rms@gnu.org>
+
+ * abbrevs.texi (Editing Abbrevs): Fix previous change.
+
+2006-12-17 Alan Mackenzie <acm@muc.de>
+
+ * programs.texi (Left Margin Paren): Remove the bit which says
+ that CC Mode sets open-paren-in-column-0-is-defun-start to nil.
+ Discuss some of the issues of setting this option to nil.
+
+2006-12-17 Glenn Morris <rgm@gnu.org>
+
+ * abbrevs.texi (Editing Abbrevs): Mention system abbrevs.
+
+2006-12-16 Eli Zaretskii <eliz@gnu.org>
+
+ * msdog.texi (Windows Keyboard): Clarify `w32-recognize-altgr' effect.
+ (Windows Files): `w32-get-true-file-attributes' is only relevant for
+ NTFS volumes.
+ (ls in Lisp): `links' in `ls-lisp-verbosity' is only relevant to NTFS
+ volumes.
+
+2006-12-15 Eli Zaretskii <eliz@gnu.org>
+
+ * text.texi (HTML Mode): Fix "C-c TAB".
+
+2006-12-09 Richard Stallman <rms@gnu.org>
+
+ * misc.texi (Invoking emacsclient): Simplify TCP file text.
+
+2006-12-08 Kevin Rodgers <ihs_4664@yahoo.com>
+
+ * files.texi (Misc File Ops): Document insert-file-literally.
+
+2006-12-08 Eli Zaretskii <eliz@gnu.org>
+
+ * cmdargs.texi (Colors): Note that --color is intended for overriding
+ the terminal defaults, not for normal invocation.
+
+ * misc.texi (Emacs Server): Improve wording. Don't mention the
+ ``server program''. Add a cross-reference to "Init File" node.
+ (Invoking emacsclient): Add index entries. Document both short and
+ long versions of command-line options. Document the -f option.
+
+2006-12-06 Richard Stallman <rms@gnu.org>
+
+ * text.texi (Outline Format): Say to set outline-regexp
+ and outline-level with major modes and file local variables.
+
+2006-12-05 Micha\e,Ak\e(Bl Cadilhac <michael.cadilhac@lrde.org>
+
+ * anti.texi (Antinews): Mention the alternative to
+ `~/.emacs_SHELLNAME', which is `~/.emacs.d/init_SHELLNAME.sh'.
+
+ * misc.texi (Interactive Shell): Ditto.
+
+2006-12-04 Eli Zaretskii <eliz@gnu.org>
+
+ * emacs.texi (Acknowledgments): Fix Arne J@o{}rgensen's name.
+
+ * ack.texi (Acknowledgments): Fix Arne J@o{}rgensen's name.
+
+2006-12-01 Eli Zaretskii <eliz@gnu.org>
+
+ * mule.texi (Enabling Multibyte): Rephrase the confusing reference to a
+ colon in the mode line.
+
+ * msdog.texi (Windows Processes) [@ifnottex]: Mention w32-shell-execute.
+
+2006-11-26 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Watch Expressions): Mention SPC for expanding/
+ contracting watch expressions.
+
+2006-11-26 Kim F. Storm <storm@cua.dk>
+
+ * kmacro.texi (Basic Keyboard Macro): Mention F3/F4 more.
+
+2006-11-26 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Debugger Operation): Define text command mode.
+ Clarify how tooltips work.
+ (GDB Graphical Interface): Explain how to run in text command mode
+ more clearly.
+
+2006-11-25 Juanma Barranquero <lekktu@gmail.com>
+
+ * mule.texi (Defining Fontsets): Fix use of `charset' and `font'.
+
+2006-11-22 Juanma Barranquero <lekktu@gmail.com>
+
+ * anti.texi (Antinews): Mention --server-file and TCP sockets.
+
+2006-11-18 Chong Yidong <cyd@stupidchicken.com>
+
+ * misc.texi (Interactive Shell): INSIDE_EMACS is set to t,
+ and EMACS is deprecated.
+
+2006-11-18 Juanma Barranquero <lekktu@gmail.com>
+
+ * makefile.w32-in (emacs.dvi): Remove xresmini.texi.
+
+2006-11-18 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * Makefile.in (emacs.dvi): Remove xresmini.texi.
+
+ * emacs.texi: Include xresources.texi both for info and dvi.
+
+ * xresources.texi: Merge text from xresmini.texi.
+
+2006-11-12 Roberto Rodr\e,Am\e(Bguez <lanubeblanca@googlemail.com> (tiny change)
+
+ * glossary.texi: Fix typos.
+
+2006-11-06 Richard Stallman <rms@gnu.org>
+
+ * emacs.texi (Acknowledgments): Fix name spelling, add Anna Bigatti.
+
+ * ack.texi (Acknowledgments): Fix name spelling.
+
+2006-11-01 Juri Linkov <juri@jurta.org>
+
+ * search.texi (Word Search): Document incremental word search.
+
+2006-10-28 Glenn Morris <rgm@gnu.org>
+
+ * ack.texi (Acknowledgments): Add cal-html author.
+
+ * calendar.texi (Writing Calendar Files): Rename section (was "LaTeX
+ Calendar"). Describe new package cal-html.
+ * emacs.texi (Top): Rename old node "LaTeX Calendar" to "Writing
+ Calendar Files."
+
+2006-10-23 Richard Stallman <rms@gnu.org>
+
+ * abbrevs.texi (Expanding Abbrevs): Expansion happens only when
+ Abbrev mode is enabled.
+
+2006-10-16 Richard Stallman <rms@gnu.org>
+
+ * emacs.texi: Update ISBN.
+
+2006-10-11 Kim F. Storm <storm@cua.dk>
+
+ * emacs.texi (Acknowledgments): Use @dotless{i}.
+
+2006-10-08 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Breakpoints Buffer): Mention catchpoints.
+
+2006-10-08 Kim F. Storm <storm@cua.dk>
+
+ * ack.texi (Acknowledgments): Update.
+
+ * emacs.texi (Acknowledgments): Fix bad @/ form.
+
+2006-10-05 Kim F. Storm <storm@cua.dk>
+
+ * emacs.texi (Acknowledgments): Add more contributors.
+
+2006-10-03 Richard Stallman <rms@gnu.org>
+
+ * emacs.texi (Acknowledgments): Update version and edition.
+
+2006-10-01 Karl Berry <karl@gnu.org>
+
+ * custom.texi (Customization Groups): Page break to keep example buffer
+ on one page.
+
+2006-09-30 Karl Berry <karl@gnu.org>
+
+ * programs.texi (Basic Indent): @need to improve page break.
+ * text.texi: Rewording to improve page breaks, and use @LaTeX{}.
+
+2006-09-29 Glenn Morris <rgm@gnu.org>
+
+ * calendar.texi (Date Formats): Doc fix for european-calendar-style.
+
+2006-09-29 Karl Berry <karl@gnu.org>
+
+ * windows.texi (Basic Window): Remove forced @break, no longer
+ desirable.
+ * frames.texi (Frame Commands),
+ * mark.texi (Marking Objects): Reword to avoid bad page break.
+ * display.texi (Auto Scrolling): Use @tie{} to avoid bad line break.
+
+2006-09-19 Richard Stallman <rms@gnu.org>
+
+ * frames.texi (Dialog Boxes): Clean up wording: avoid passive,
+ stick to present tense.
+
+2006-09-18 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Dialog Boxes): Rename x-use-old-gtk-file-dialog
+ to x-gtk-use-old-file-dialog.
+ (Dialog Boxes): Document x-gtk-file-dialog-help-text.
+
+2006-09-15 Jay Belanger <belanger@truman.edu>
+
+ * emacs.texi (GNU GENERAL PUBLIC LICENSE):
+ Change "Library Public License" to "Lesser Public License"
+ throughout. Use "yyyy" to represent year.
+
+2006-09-12 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * files.texi (Visiting): Add index entry "open file".
+
+2006-09-11 Richard Stallman <rms@gnu.org>
+
+ * building.texi (Compilation Mode): Clarification.
+ (Grep Searching): Add xref to Compilation Mode.
+
+2006-09-08 Richard Stallman <rms@gnu.org>
+
+ * search.texi (Search): Ref multi-file search commands here.
+ (Other Repeating Search): Not here.
+
+2006-08-28 Richard Stallman <rms@gnu.org>
+
+ * windows.texi (Split Window): Update xref.
+
+ * basic.texi (Continuation Lines): Update xref.
+
+ * indent.texi (Tab Stops): Update xref.
+
+ * emacs.texi (Top): Update subnode menu.
+
+ * display.texi (Line Truncation, Displaying Boundaries): New nodes,
+ split out of Display Custom.
+
+2006-08-25 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Display Custom): Add variables overline-margin
+ and x-underline-at-descent-line.
+
+2006-08-25 Richard Stallman <rms@gnu.org>
+
+ * entering.texi (Exiting): Rewrite to give graphical displays
+ priority over text terminals.
+
+ * search.texi (Incremental Search): Move index entries.
+
+2006-08-23 Chong Yidong <cyd@stupidchicken.com>
+
+ * custom.texi (Init File): Reference Find Init to avoid "home
+ directory" confusion.
+
+2006-08-22 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Other GDB-UI Buffers): Describe how to edit
+ a value in the locals buffer.
+
+2006-08-21 Richard Stallman <rms@gnu.org>
+
+ * search.texi (Basic Isearch): Add `isearch' index entry.
+
+2006-08-16 Richard Stallman <rms@gnu.org>
+
+ * misc.texi (Saving Emacs Sessions): Clean up wording.
+
+ * mark.texi (Marking Objects): Mention term "select all".
+
+ * emacs.texi (Top): Update subnode menu.
+
+ * help.texi (Help Mode): Move node up in file.
+
+2006-08-15 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Stack Buffer): Explain fringe arrow.
+
+2006-08-12 Eli Zaretskii <eliz@gnu.org>
+
+ * misc.texi (Saving Emacs Sessions): Clarify when desktop is restored
+ on startup.
+
+2006-08-11 Romain Francoise <romain@orebokech.com>
+
+ * ack.texi (Acknowledgments): Delete mention to zone-mode.el.
+
+2006-08-10 Sven Joachim <svenjoac@gmx.de> (tiny change)
+
+ * mule.texi (Recognize Coding, Text Coding): Fix typos.
+
+2006-08-10 Richard Stallman <rms@gnu.org>
+
+ * text.texi (Format Faces): Substantial rewrites to deal
+ with face merging. Empty regions don't count. Clarify
+ face property inheritance.
+
+2006-08-08 Romain Francoise <romain@orebokech.com>
+
+ * dired.texi (Marks vs Flags): Fix typo reported by Ari Roponen
+ <arjuropo@cc.jyu.fi>.
+
+2006-08-04 Eli Zaretskii <eliz@gnu.org>
+
+ * cmdargs.texi (Window Size X) <--geometry>: Only width and height
+ apply to all frames.
+
+2006-08-01 Richard Stallman <rms@gnu.org>
+
+ * help.texi (Name Help): Add index entries for describe-variable.
+
+2006-08-01 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB Graphical Interface): Shorten node names.
+ (GDB-UI Layout): Use GDB-related.
+ (Other GDB-UI Buffers): Simplify English.
+
+2006-07-31 Richard Stallman <rms@gnu.org>
+
+ * search.texi (Query Replace): Add xref for Dired's Q command.
+
+2006-07-31 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB commands in Fringe): Rename to...
+ (Source Buffers): ..this and move forward. Describe hollow arrow and
+ new option gdb-find-source-frame.
+
+2006-07-29 Richard Stallman <rms@gnu.org>
+
+ * dired.texi (Operating on Files): Simplify previous change
+ and fix Texinfo usage.
+
+2006-07-29 Eli Zaretskii <eliz@gnu.org>
+
+ * dired.texi (Operating on Files): Add cross-references. State the
+ Unix commands that do similar things.
+
+2006-07-28 Richard Stallman <rms@gnu.org>
+
+ * mark.texi (Transient Mark): Clarify that region never disappears
+ when Transient Mark mode is off, and not when it is on.
+
+2006-07-27 Richard Stallman <rms@gnu.org>
+
+ * search.texi (Non-ASCII Isearch): Clarify. Mention C-q.
+
+2006-07-24 Richard Stallman <rms@gnu.org>
+
+ * xresources.texi (GTK styles): Fix texinfo usage.
+
+ * commands.texi (User Input): Explain why we teach keyboard cmds.
+
+ * xresources.texi, xresmini.texi, search.texi, programs.texi:
+ * misc.texi, kmacro.texi, killing.texi, glossary.texi:
+ * fortran-xtra.texi, files.texi, emacs.texi, emacs-xtra.texi:
+ * doclicense.texi, display.texi, dired.texi, basic.texi:
+ * anti.texi, ack.texi: Move periods and commas inside quotes.
+
+2006-07-22 Eli Zaretskii <eliz@gnu.org>
+
+ * cmdargs.texi (General Variables): Document EMAIL.
+
+2006-07-21 Eli Zaretskii <eliz@gnu.org>
+
+ * frames.texi (Frame Commands): Mention that focus-follows-mouse
+ doesn't have effect on MS-Windows.
+
+2006-07-17 Richard Stallman <rms@gnu.org>
+
+ * building.texi (Grep Searching): Explain about chaining grep commands.
+
+2006-07-10 Nick Roberts <nickrob@snap.net.nz>
+
+ * killing.texi, mini.texi: Fix typos.
+
+2006-07-09 Chong Yidong <cyd@stupidchicken.com>
+
+ * misc.texi (Invoking emacsclient): Document behavior when emacsclient
+ is invoked for multiple files.
+
+2006-07-08 Eli Zaretskii <eliz@gnu.org>
+
+ * msdog.texi (Windows Keyboard) [@iftex]: Add an @inforef to the
+ on-line manual for the rest of this node.
+ (Windows Mouse) <w32-pass-extra-mouse-buttons-to-system>: Include
+ unconditionally.
+ (Windows Processes) <w32-quote-process-args>: Include unconditionally.
+ Improve wording.
+ (Windows Printing): Improve wording.
+ (Windows Misc) [@iftex]: Add an @inforef to the on-line manual for the
+ rest of this node.
+
+2006-07-05 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * building.texi (Lisp Eval): Throughout, replace eval-current-buffer
+ with eval-buffer.
+
+2006-07-05 Nick Roberts <nickrob@snap.net.nz>
+
+ * mule.texi (Coding Systems, Specify Coding): Link descriptions
+ of character translation.
+
+2006-07-04 Nick Roberts <nickrob@snap.net.nz>
+
+ * rmail.texi (Remote Mailboxes): Add missing @code keyword.
+
+2006-07-03 Karl Berry <karl@gnu.org>
+
+ * emacs.texi (\hbadness): Set to 6000 so we aren't bothered by
+ not-too-underfull hboxes in the TeX output.
+ * abbrevs.texi, buffers.texi, building.texi, calendar.texi,
+ * cmdargs.texi, custom.texi, dired.texi, macos.texi,
+ * maintaining.texi, misc.texi, mule.texi, programs.texi, rmail.texi,
+ * sending.texi, text.texi: Fix overfull/underfull boxes.
+
+2006-07-03 Romain Francoise <romain@orebokech.com>
+
+ * m-x.texi (M-x): Fix.
+
+2006-07-03 Richard Stallman <rms@gnu.org>
+
+ * search.texi (Other Repeating Search): filename -> file name.
+
+ * misc.texi (Narrowing): Minor cleanups.
+
+ * files.texi (Visiting): filename -> file name.
+
+ * emacs.texi (Top): Update subnode menus.
+
+ * mule.texi (Coding Systems): Move char translation stuff here.
+ (Specify Coding, Output Coding): New nodes, out of Recognize Coding.
+ (Recognize Coding): Substantial local rewrites.
+ (International): Update menu.
+
+ * display.texi (Auto Scrolling): New node, broken out of Scrolling.
+ (Scrolling): Substantial local rewrites.
+ (Display): Update menu and intro.
+
+ * dired.texi: filename -> file name.
+
+ * custom.texi (Safe File Variables): Texinfo usage fix.
+
+2006-07-03 Ted Zlatanov <tzz@lifelogs.com>
+
+ * help.texi, m-x.texi: Lots of cleanups.
+
+2006-06-30 Eli Zaretskii <eliz@gnu.org>
+
+ * msdog.texi (ls in Lisp, Windows Keyboard, Windows Mouse)
+ (Windows Processes, Windows Misc): Shorten the printed version by
+ selectively conditioning less important portions by @ifnottex.
+
+2006-06-27 Richard Stallman <rms@gnu.org>
+
+ * mini.texi (Minibuffer File): Minor cleanup.
+
+2006-06-25 Nick Roberts <nickrob@snap.net.nz>
+
+ * frames.texi (XTerm Mouse): Rename to...
+ (Text-Only Mouse): ...this. Mention t-mouse-mode.
+
+ * emacs.texi (Top): Use new node name.
+
+2006-06-24 Eli Zaretskii <eliz@gnu.org>
+
+ * emacs.texi (Top): Update the detailed menu according to changes in
+ msdog.texi.
+
+ * msdog.texi (Windows Keyboard): New section.
+ (Windows Mouse): New section.
+ (Windows System Menu): Remove section (text merged with "Windows
+ Keyboard").
+ (Windows Misc): New section.
+
+ * dired.texi (Dired Enter): Refer to msdog.texi for ls-lisp emulation.
+
+ * msdog.texi (ls in Lisp): New section.
+
+ * files.texi (Visiting): Document case-insensitive wildcard matching
+ under find-file-wildcards.
+
+2006-06-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macos.texi (Mac Input): Add description of mac-function-modifier.
+ Now Unicode keyboard layouts work.
+
+2006-06-10 Richard Stallman <rms@gnu.org>
+
+ * mule.texi (Recognize Coding): Clarify previous change.
+
+2006-06-09 Kenichi Handa <handa@m17n.org>
+
+ * mule.texi (Recognize Coding): Describe the convention of "CODING!"
+ notation.
+
+2006-06-07 Kevin Ryde <user42@zip.com.au>
+
+ * mule.texi (Coding Systems): Footnote xref "MS-DOS and MULE" in main
+ manual for @ifnottex, but in emacs-extra for @iftex.
+
+ * cmdargs.texi (General Variables): Fix smtpmail xref.
+
+2006-05-29 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * programs.texi (Comment Commands):
+ * custom.texi (Specifying File Variables):
+ Use ;; instead of ;;; to better follow coding conventions.
+
+2006-06-07 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Watch Expressions): Move node to end.
+ (GDB Graphical Interface): Move description of clicks in fringe...
+ (GDB commands in the Fringe): ...to here. New node.
+
+2006-06-05 Romain Francoise <romain@orebokech.com>
+
+ * xresmini.texi (GTK resources): Fix various typos.
+
+2006-06-05 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB Graphical Interface): Update bindings.
+ (Commands of GUD): Add gud-print. Remove gud-run.
+ Restate availability more generally.
+
+2006-06-03 Ted Zlatanov <tzz@lifelogs.com>
+
+ * mini.texi: Lots of cleanups.
+
+2006-06-01 Luc Teirlinck <teirllm@auburn.edu>
+
+ * misc.texi (Shell History Copying): Update descriptions of `C-c RET'
+ and Mouse-2.
+
+2006-06-01 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * screen.texi (Menu Bar): Change menu-bar-start to menu-bar-open.
+
+2006-05-31 Richard Stallman <rms@gnu.org>
+
+ * basic.texi (Moving Point): Fix previous change.
+
+2006-05-29 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * screen.texi (Menu Bar): F10 for Gtk+/Lesstif/Lucid menus.
+
+2006-05-28 Ted Zlatanov <tzz@lifelogs.com>
+
+ * basic.texi: Many simplifications and improvements in wording.
+
+2006-05-26 Nick Roberts <nickrob@snap.net.nz>
+
+ * anti.texi (Antinews): Create a node for gdb-ui.
+
+2006-05-22 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * frames.texi (Menu Bars, Tool Bars): Add index entries.
+
+2006-05-20 Richard Stallman <rms@gnu.org>
+
+ * dired.texi (Dired Navigation): dired-goto-file is now j.
+
+2006-05-20 Eli Zaretskii <eliz@gnu.org>
+
+ * mule.texi (Coding Systems): Mention the undecided-* coding systems
+ and their aliases.
+
+ * msdog.texi (Windows Printing): Mention non-support of plain text
+ printing with some el-cheapo printers, and suggest a workaround.
+
+2006-05-20 Kevin Ryde <user42@zip.com.au>
+
+ * text.texi (TeX Print): tex-dvi-view-command has a default value,
+ remove the bit saying you must set it.
+
+2006-05-19 Luc Teirlinck <teirllm@auburn.edu>
+
+ * trouble.texi (Checklist):
+ * text.texi (Text, Auto Fill, Text Mode):
+ * search.texi (Nonincremental Search):
+ * rmail.texi (Rmail Labels):
+ * mule.texi (Input Methods, Multibyte Conversion):
+ * misc.texi (Gnus, Where to Look, PostScript):
+ * maintaining.texi (Create Tags Table):
+ * indent.texi (Indentation Commands):
+ * fixit.texi (Spelling):
+ * emacs.texi (Copying):
+ * custom.texi (Init File): ifinfo -> ifnottex.
+
+2006-05-17 Richard Stallman <rms@gnu.org>
+
+ * files.texi (Diff Mode): Mention C-x `.
+
+2006-05-08 Richard Stallman <rms@gnu.org>
+
+ * custom.texi (Disabling): Textual cleanups.
+
+2006-05-12 Glenn Morris <rgm@gnu.org>
+
+ * calendar.texi (Displaying the Diary, Format of Diary File):
+ Refer to diary-view-entries, diary-list-entries,
+ diary-show-all-entries rather than obsolete aliases.
+
+2006-05-12 Eli Zaretskii <eliz@gnu.org>
+
+ * calendar.texi (Calendar/Diary, Holidays, Displaying the Diary)
+ (Displaying the Diary, Special Diary Entries, Importing Diary):
+ * building.texi (Compilation Shell):
+ * buffers.texi (Several Buffers) [iftex]: Replace @xref's to
+ emacs-xtra with @inforef's.
+
+ * files.texi (Visiting): Fix wording.
+
+ * mule.texi (Coding Systems, Text Coding): More indexing.
+ Mention that C-x RET f can set eol conversion.
+
+2006-05-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * xresmini.texi (GTK resources): Insert GTK description.
+
+ * xresources.texi (GTK resources): metafont should be menufont.
+
+2006-05-06 Michael Albinus <michael.albinus@gmx.de>
+
+ * mini.texi (Completion Options): Completion of remote files'
+ method, user name and host name is active only in partial
+ completion mode.
+
+2006-05-06 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (emacs.dvi):
+ * Makefile.in (emacs.dvi): Add xresmini.texi.
+
+ * xresmini.texi (Table of Resources): Remove xref to non-existent
+ node "LessTif Resources".
+
+ * msdog.texi (Microsoft Windows):
+ * calendar.texi (Calendar/Diary, Displaying the Diary)
+ (Special Diary Entries, Importing Diary, Holidays):
+ * programs.texi (Program Modes):
+ * text.texi (Text):
+ * buffers.texi (Several Buffers):
+ * files.texi (Comparing Files): Fix cross-references to emacs-xtra.
+
+2006-05-06 Eli Zaretskii <eliz@gnu.org>
+
+ The following changes merge the emacs-xtra manual into the main
+ manual, but only for on-line version of the manual.
+
+ * vc2-xtra.texi (Version Backups, Local Version Control)
+ (Making Snapshots, Change Logs and VC, Version Headers)
+ (Customizing VC, CVS Options) [ifnottex]: Conditional xref's for
+ on-line manual.
+
+ * vc1-xtra.texi (VC Dired Mode) [ifnottex]: Conditional xref's
+ for on-line manual.
+
+ * msdog-xtra.texi (MS-DOS, MS-DOS Keyboard, MS-DOS Mouse)
+ (MS-DOS Display, MS-DOS File Names, MS-DOS Printing)
+ (MS-DOS and MULE, MS-DOS Processes) [ifnottex]: Conditional xref's
+ for on-line manual.
+
+ * fortran-xtra.texi (Fortran, Fortran Autofill)
+ (Fortran Autofill, Fortran Abbrev) [ifnottex]: Conditional xref's
+ for on-line manual.
+
+ * picture-xtra.texi (Basic Picture, Rectangles in Picture) [ifnottex]:
+ Conditional xref's for on-line manual.
+
+ * emerge-xtra.texi (Emerge, Overview of Emerge)
+ (Fine Points of Emerge) [ifnottex]: Conditional xref's for on-line
+ manual.
+
+ * Makefile.in (INFO_TARGETS): Remove ../info/emacs-xtra.
+ (EMACS_XTRA): New variable, lists the new *-xtra.texi files.
+ (EMACSSOURCES): Use EMACS_XTRA.
+ (../info/emacs-xtra): Remove.
+ (emacs-xtra.dvi): Add EMACS_XTRA to prerequisites.
+
+ * makefile.w32-in (INFO_TARGETS): Remove $(infodir)/emacs-xtra.
+ (EMACS_XTRA): New variable, lists the new *-xtra.texi files.
+ (EMACSSOURCES): Use EMACS_XTRA.
+ ($(infodir)/emacs-xtra): Remove.
+ (emacs-xtra.dvi): Add EMACS_XTRA to prerequisites.
+
+ * trouble.texi (Quitting):
+ * text.texi (Text):
+ * programs.texi (Program Modes):
+ * msdog.texi (Microsoft Windows):
+ * frames.texi (Frames):
+ * files.texi (Backup, Version Control, VC Concepts)
+ (Types of Log File, Advanced C-x v v, Log Buffer, Old Versions)
+ (Registering, VC Status, VC Undo, Multi-User Branching)
+ (Comparing Files):
+ * calendar.texi (Calendar/Diary, Holidays, Displaying the Diary)
+ (Displaying the Diary, Special Diary Entries, Importing Diary):
+ * buffers.texi (Several Buffers): Replace inforef to emacs-xtra by
+ conditional xref's, depending on @iftex/@ifnottex.
+
+ * msdog.texi (Microsoft Windows) [ifnottex]: Add menu entry for
+ "MS-DOS". @include msdog-xtra.texi.
+
+ * programs.texi (Programs) [ifnottex]: Add menu entry for "Fortran".
+ <Top Level> [ifnottex]: @include fortran-xtra.texi.
+
+ * files.texi (Secondary VC Commands) [ifnottex]: Add menu entries
+ for vc-xtra.texi subsections.
+ (VC Undo) [ifnottex]: @include vc1-xtra.texi and @lowersections it.
+ (Multi-User Branching) [ifnottex]: @include vc2-xtra.texi.
+
+ * sending.texi (Sending Mail): A @node line without explicit Prev,
+ Next, and Up links.
+
+ * abbrevs.texi (Abbrevs): A @node line without explicit Prev,
+ Next, and Up links.
+
+ * emacs.texi (Top) [ifnottex]: Add menu entries for "Picture Mode"
+ and its sections. @include picture-xtra.texi.
+
+ * maintaining.texi (Maintaining) [ifnottex]: Add menu entry for
+ "Emerge".
+ (List Tags) [ifnottex]: @include emerge-xtra.texi.
+
+ * cal-xtra.texi (Daylight Savings): Remove this node: it is an
+ exact duplicate of its name-sake in calendar.texi.
+
+ * calendar.texi (Calendar/Diary) [ifnottex]: Add menu item for
+ "Advanced Calendar/Diary Usage".
+ (Time Intervals) [ifnottex]: @include cal-xtra.texi.
+
+ * dired.texi (Subdirectories in Dired) [ifnottex]: @include
+ dired-xtra.texi.
+ (Dired) [ifnottex]: Add menu entry for "Subdir Switches".
+
+ * files.texi (Reverting) [ifnottex]: @include arevert-xtra.texi.
+ (Files) [ifnottex]: Add menu entry for Autorevert.
+
+ * emacs-xtra.texi (Introduction): Reword to make consistent with
+ printed version only.
+ <Top level>: Remove the body of all chapters and move them to the
+ new *-xtra.texi files. Use @raisesections and @lowersections to
+ convert sections to chapters etc.
+
+ * msdog-xtra.texi:
+ * fortran-xtra.texi:
+ * vc-xtra.texi:
+ * vc1-xtra.texi:
+ * vc2-xtra.texi:
+ * emerge-xtra.texi:
+ * cal-xtra.texi:
+ * dired-xtra.texi:
+ * arevert-xtra.texi: New files, with text from respective chapters
+ of emacs-xtra.texi. Convert each @chapter into @section, @section
+ into @subsection, etc.
+
+ * emacs-xtra.texi (MS-DOS): Renamed from "MS-DOG". All references
+ updated.
+
+ * msdog.texi (Microsoft Windows): Rename from "Emacs and Microsoft
+ Windows". All references updated.
+
+2006-05-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macos.texi (Mac Input): Mention input from Character Palette.
+ (Mac Font Specs): Fix typo.
+
+2006-05-05 Richard Stallman <rms@gnu.org>
+
+ * files.texi (Diff Mode): Minor cleanup.
+
+2006-05-05 Karl Berry <karl@gnu.org>
+
+ * emacs.texi: Call @fonttextsize 10, inside @tex to avoid
+ errors from the current release of makeinfo (4.8).
+ * help.texi (Library Keywords): Change widest word in multitable
+ template from `emulations' to `convenience'. (Not sure if this is
+ related to the font change.)
+
+2006-05-05 Eli Zaretskii <eliz@gnu.org>
+
+ * files.texi (File Names): Add a footnote about limited support of
+ ~USER on MS-Windows.
+
+ * cmdargs.texi (Initial Options): Add a footnote about limited
+ support of ~USER on MS-Windows.
+
+2006-05-03 Richard Stallman <rms@gnu.org>
+
+ * files.texi (Diff Mode): Node moved here.
+ (Comparing Files): Delete what duplicates new node.
+ (Files): Put Diff Mode in menu.
+
+ * misc.texi (Diff Mode): Moved to files.texi.
+
+ * emacs.texi (Top): Update menu for Diff Mode.
+
+ * trouble.texi (Emergency Escape): Simplify.
+
+ * emacs.texi (Top): Minor clarification.
+
+2006-05-03 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * commands.texi, entering.texi, screen.texi: Many simplifications.
+
+2006-05-03 Richard Stallman <rms@gnu.org>
+
+ * commands.texi (Text Characters): Delete paragraph about unibyte
+ non-ASCII printing chars.
+
+ * killing.texi (Killing): Say "graphical displays".
+ * display.texi: Say "graphical displays".
+
+ * cmdargs.texi (Misc X): Say "graphical displays".
+
+2006-05-01 Richard Stallman <rms@gnu.org>
+
+ * emacs.texi (Top): Add Diff Mode to menu.
+
+2006-05-01 Aaron S. Hawley <Aaron.Hawley@uvm.edu>
+
+ * misc.texi (Diff Mode): New node.
+
+2006-05-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macos.texi (Mac International): Now Carbon Emacs has ATSUI support.
+ (Mac Environment Variables): Shorten example line.
+ (Mac Font Specs): Shorten lisp lines. Add descriptions for ATSUI.
+
+2006-05-01 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GUD Customization): Describe cases %d and %c.
+ Update description for %e.
+
+2006-04-30 Glenn Morris <rgm@gnu.org>
+
+ * calendar.texi (LaTeX Calendar): Mention cal-tex-preamble-extra.
+
+2006-04-29 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * custom.texi (Examining): Update C-h v output example.
+
+2006-04-29 Kim F. Storm <storm@cua.dk>
+
+ * building.texi (Grep Searching): Add lgrep and rgrep.
+
+2006-04-23 Richard Stallman <rms@gnu.org>
+
+ * emacs.texi [TeX]: Use xresmini.texi instead of xresources.texi.
+
+ * xresmini.texi: New file.
+
+ * xresources.texi (Face Resources): Split table into font resources
+ and the rest. Combine similar attributes for brevity.
+
+2006-04-21 Eli Zaretskii <eliz@gnu.org>
+
+ * emacs-xtra.texi (MS-DOS File Names): Remove section about
+ backslashes and case-insensitivity in file names (moved to the
+ main manual).
+ (MS-DOS Printing): Move most of the text to the main manual.
+
+ * msdog.texi (Windows Files, Windows HOME, MS-Windows Printing):
+ New nodes.
+ (Windows Processes, Windows System Menu): Add index entries and
+ fix wording.
+
+2006-04-18 J.D. Smith <jdsmith@as.arizona.edu>
+
+ * misc.texi (Shell Ring): Add notes on saved input when
+ navigating off the end of the history list.
+
+2006-04-18 Chong Yidong <cyd@mit.edu>
+
+ * misc.texi (Shell Options): Correct default value of
+ comint-scroll-show-maximum-output.
+
+2006-04-18 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Watch Expressions): Update.
+
+2006-04-12 Richard Stallman <rms@gnu.org>
+
+ * search.texi: Clean up previous change.
+
+2006-04-12 Eli Zaretskii <eliz@gnu.org>
+
+ * search.texi (Regexp Backslash, Regexp Replace): Add index
+ entries for ``back reference'' and mention the term itself in the
+ text.
+
+2006-04-11 Richard Stallman <rms@gnu.org>
+
+ * custom.texi (Safe File Variables):
+ Document enable-local-variables = :safe.
+
+2006-04-11 Karl Berry <karl@gnu.org>
+
+ * emacs-xtra.texi, emacs.texi (Dired under VC, VC Dired Commands)
+ (Remote Repositories, Version Backups, Local Version Control)
+ (Snapshots, Making and Using Snapshots, Snapshot Caveats)
+ (Miscellaneous Commands and Features of VC, Change Logs and VC)
+ (Renaming VC Work Files and Master Files)
+ (Inserting Version Control Headers, Customizing VC, General Options)
+ (Options for RCS and SCCS, Options specific for CVS): Move all
+ these nodes to emacs-xtra.texi, for brevity.
+ * cmdargs.texi, files.texi: Change cross-references.
+
+2006-04-11 J.D. Smith <jdsmith@as.arizona.edu>
+
+ * files.texi (Old Versions): Update description of vc-annotate's
+ use of color to indicate date ranges.
+
+2006-04-09 Kevin Ryde <user42@zip.com.au>
+
+ * sending.texi (Mail Sending): In send-mail-function @pxref smtpmail,
+ put info and printed manual names the right way around.
+
+2006-04-09 Karl Berry <karl@gnu.org>
+
+ * msdog.texi, emacs-xtra.texi: Move all the MS-DOS material to
+ emacs-xtra.texi, leaving only MS Windows information.
+ * building.texi, emacs.texi, frames.texi, gnu.texi, macos.texi,
+ * msdog.texi, mule.texi, trouble.texi: Change cross-references and
+ node names.
+
+ * emacs.texi: Move @summarycontents and @contents to the beginning
+ of the file.
+
+2006-04-08 Kevin Ryde <user42@zip.com.au>
+
+ * text.texi (Fill Commands): fill-nobreak-predicate is now a hook.
+
+2006-04-07 Richard Stallman <rms@gnu.org>
+
+ * programs.texi (Comments, Comment Commands, Options for Comments)
+ (Multi-Line Comments): "Align", not "indent".
+ (Basic Indent): C-j deletes trailing whitespace before the newline.
+
+2006-04-06 Richard Stallman <rms@gnu.org>
+
+ * programs.texi (Basic Indent): Clarify relationship of C-j to TAB.
+
+2006-04-06 Eli Zaretskii <eliz@gnu.org>
+
+ * killing.texi (Rectangles): Add index entry for marking a rectangle.
+
+2006-04-05 Richard Stallman <rms@gnu.org>
+
+ * emacs.texi (Top): Update subnode menu.
+
+ * trouble.texi (Unasked-for Search): Node deleted.
+ (Lossage): Delete from menu.
+
+2006-04-04 Richard Stallman <rms@gnu.org>
+
+ * trouble.texi: Various cleanups.
+ (Checklist): Don't bother saying how to snail a bug report.
+ (Emergency Escape): Much rewriting.
+ (After a Crash): Rename the core dump immediately.
+ (Total Frustration): Call it a psychotherapist.
+ (Bug Criteria): Avoid "illegal instruction".
+ (Sending Patches): We always put the contributor's name in.
+
+ * misc.texi (Thumbnails): Minor correction.
+
+2006-04-03 Richard Stallman <rms@gnu.org>
+
+ * misc.texi (Thumbnails): Minor cleanup.
+
+2006-04-02 Karl Berry <karl@gnu.org>
+
+ * sending.texi (Mail Sending): pxref to Top needs five args.
+
+ * texinfo.tex: Update to current version (2006-03-21.13).
+
+2006-03-31 Richard Stallman <rms@gnu.org>
+
+ * emacs.texi (Top): Update subnode menu.
+
+ * help.texi (Help Mode): Cleanup.
+
+ * dired.texi: Many cleanups.
+ (Dired Deletion): Describe dired-recursive-deletes.
+ (Operating on Files): dired-create-directory moved.
+ (Misc Dired Features): Move to here.
+ (Tumme): Node moved to misc.texi.
+
+ * custom.texi: Many cleanups.
+ (Minor Modes): Don't mention ISO Accents Mode.
+ (Examining): Update C-h v output example.
+ (Hooks): Add index and xref for add-hook.
+ (Locals): Delete list of vars that are always per-buffer. Rearrange.
+ (Local Keymaps): Don't mention lisp-mode-map, c-mode-map.
+
+ * misc.texi: Many cleanups.
+ (beginning): Add to summary of topics.
+ (Shell): Put eshell xref at the end. Remove eshell from table.
+ (Thumbnails): New node.
+
+2006-03-28 Eli Zaretskii <eliz@gnu.org>
+
+ * files.texi (File Name Cache): Make it clear that the cache is
+ not persistent.
+
+2006-03-25 Karl Berry <karl@gnu.org>
+
+ * emacs-xtra.texi, emacs.texi, gnu.texi:
+ (1) use @copyright{} instead of (C) in typeset text;
+ (2) do not indent copyright year list (or anything else).
+
+2006-03-21 Juanma Barranquero <lekktu@gmail.com>
+
+ * files.texi (VC Dired Mode): Remove misplaced brackets.
+
+2006-03-21 Andre Spiegel <spiegel@gnu.org>
+
+ * files.texi: Various updates and clarifications in the VC chapter.
+
+2006-03-19 Luc Teirlinck <teirllm@auburn.edu>
+
+ * help.texi (Help Mode): Document "C-c C-c".
+
+2006-03-16 Luc Teirlinck <teirllm@auburn.edu>
+
+ * emacs-xtra.texi (Top): Avoid ugly continuation line in
+ menu in the standalone Info reader.
+
+2006-03-15 Chong Yidong <cyd@stupidchicken.com>
+
+ * emacs-xtra.texi (Emerge, Picture Mode, Fortran): New chapters,
+ moved here from Emacs manual.
+
+ * programs.texi (Fortran): Section moved to emacs-xtra.
+ (Program Modes): Xref to Fortran in emacs-xtra.
+
+ * maintaining.texi (Emerge): Move to emacs-xtra.
+ * files.texi (Comparing Files): Xref to Emerge in emacs-xtra.
+
+ * picture.texi: File deleted.
+ * Makefile.in:
+ * makefile.w32-in: Remove picture.texi.
+
+ * text.texi (Text): Xref to Picture Mode in emacs-xtra.
+ * abbrevs.texi (Abbrevs):
+ * sending.texi (Sending Mail): Picture node removed.
+
+ * emacs.texi (Top): Update node listings.
+
+2006-03-12 Richard Stallman <rms@gnu.org>
+
+ * calendar.texi: Various cleanups.
+
+2006-03-11 Luc Teirlinck <teirllm@auburn.edu>
+
+ * search.texi (Regexps): Use @samp for regexp that is not in Lisp
+ syntax.
+
+2006-03-08 Luc Teirlinck <teirllm@auburn.edu>
+
+ * search.texi (Regexps): More accurately describe which characters
+ are special in which situations. Recommend _not_ to quote `]' or
+ `-' when they are not special.
+
+2006-02-28 Andre Spiegel <spiegel@gnu.org>
+
+ * files.texi (Old Versions): Clarify operation of C-x v =.
+
+2006-02-21 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Watch Expressions): Update and describe
+ gdb-speedbar-auto-raise.
+
+2006-02-19 Richard M. Stallman <rms@gnu.org>
+
+ * emacs.texi: Use @smallbook.
+ (Top): Update ref to Emacs paper, delete ref to Cookbook.
+ Update subnode menu.
+
+ * building.texi (Lisp Interaction): Minor addition.
+
+2006-02-18 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Watch Expressions): Update and be more precise.
+
+2006-02-15 Francesco Potort\e,Al\e(B <pot@gnu.org>
+
+ * maintaining.texi (Create Tags Table): Explain why the
+ exception when etags writes to files under the /dev tree.
+
+2006-02-14 Richard M. Stallman <rms@gnu.org>
+
+ * custom.texi (Safe File Variables): Lots of clarification.
+ Renamed from Unsafe File Variables.
+
+2006-02-14 Chong Yidong <cyd@stupidchicken.com>
+
+ * custom.texi (Unsafe File Variables): File variable confirmation
+ assumed denied in batch mode.
+
+2006-02-14 Richard M. Stallman <rms@gnu.org>
+
+ * building.texi (GDB User Interface Layout): Don't say `inferior'
+ for program being debugged.
+
+2006-02-15 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB Graphical Interface):
+ Replace gdb-use-inferior-io-buffer with gdb-use-separate-io-buffer.
+
+2006-02-13 Chong Yidong <cyd@stupidchicken.com>
+
+ * custom.texi (Specifying File Variables, Unsafe File Variables):
+ New nodes, split from File Variables. Document new file local
+ variable behavior.
+
+2006-02-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * display.texi (Standard Faces):
+ * files.texi (Visiting):
+ * frames.texi (Clipboard):
+ * glossary.texi (Glossary) <Clipboard>:
+ * xresources.texi (X Resources): Mention Mac OS port.
+
+2006-02-12 Richard M. Stallman <rms@gnu.org>
+
+ * building.texi (Building): Clarify topic in intro.
+
+ * maintaining.texi (Maintaining): Change title; clarify topic.
+ Delete duplicate index entries.
+
+ * building.texi (Other GDB User Interface Buffers): Clarifications.
+
+ * text.texi (Cell Commands): Clarifications.
+
+ * programs.texi (Defuns): Delete duplicate explanation of
+ left-margin paren convention.
+ (Hungry Delete): Minor cleanup.
+
+2006-02-11 Mathias Dahl <mathias.dahl@gmail.com>
+
+ * dired.texi (Tumme): More tumme documentation.
+
+2006-02-11 Alan Mackenzie <acm@muc.de>
+
+ * programs.texi ("Hungry Delete"): Correct the appellation of the
+ backspace and delete keys to @kbd{DEL} and @kbd{DELETE}.
+
+2006-02-11 Mathias Dahl <mathias.dahl@gmail.com>
+
+ * dired.texi (Tumme): Fix small bug.
+
+2006-02-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macos.texi (Mac International): Rename "fontset-mac" to
+ "fontset-standard".
+
+2006-02-09 Mathias Dahl <mathias.dah@gmail.com>
+
+ * dired.texi (Tumme): Basic documentation for Tumme added.
+
+2006-02-07 Luc Teirlinck <teirllm@auburn.edu>
+
+ * mule.texi (International):
+ * programs.texi (Basic Indent): Fix typos.
+
+ * custom.texi (Minor Modes):
+ * display.texi (Text Display):
+ * commands.texi (Text Characters): Update xrefs.
+
+2006-02-07 Richard M. Stallman <rms@gnu.org>
+
+ * emacs.texi (Top): Update subnode menu.
+ Update info on old Emacs papers.
+ (Intro): "Graphical display", not window system.
+
+ * xresources.texi (GTK styles): Minor clarifications.
+
+ * trouble.texi: "Graphical display", not window system.
+ (Stuck Recursive): Minor clarification.
+
+ * text.texi: Minor clarifications.
+ (Sentences): Explain why two-space convention is better.
+ Explain sentence-end-without-period here.
+ (Fill Commands): Not here.
+ (Refill): Node moved down.
+ (Filling): Update menu.
+ (Table Creation, Cell Justification, Column Commands): Clarify.
+
+ * sending.texi: Minor clarifications.
+
+ * search.texi (Regexp Backslash): Clarification.
+
+ * rmail.texi: Minor cleanups.
+ (Rmail): Delete digression about `rmail-mode'.
+ (Rmail Inbox): Delete false advice wrt rmail-primary-inbox-list.
+ (Rmail Files): Mention C-u M-x rmail.
+ (Rmail Reply): Mention References.
+ (Rmail Display): Mention rmail-nonignored-headers.
+
+ * programs.texi: Minor cleanups.
+ (Comment Commands): Mention momentary Transient Mark mode.
+ (Matching): Be more specific about customizing show-paren-mode.
+ (Info Lookup): Don't list the modes that support C-h S.
+ Just say what it does in an unsupported mode.
+ (Man Page): Delete excessive info on customizing woman.
+ (Motion in C): Don't mention c-for/backward-into-nomenclature.
+
+ * abbrevs.texi: Minor clarifications.
+ (Dabbrev Customization): Talk about "dynamic abbrev expansion",
+ not "dynamic abbrevs" as if they were a kind of abbrev.
+
+ * picture.texi (Picture): Minor cleanup.
+
+ * mule.texi (Communication Coding): Say "other applications".
+ (Fontsets): Not specific to X. Add xref to X Resources.
+ (Unibyte Mode): Rename from Single-Byte Character Support.
+ "Graphical display", not window system.
+ (International): Update menu.
+
+ * maintaining.texi (Format of ChangeLog):
+ New node, split out from ChangeLog.
+ (ChangeLog): Clarifications in the remaining text.
+ (Create Tags Table, Etags Regexps, Select Tags Table): Cleanups.
+ (Find Tag): Add @w.
+ (Tags Search): Explain tag table order here. Simplify grep ref.
+ (List Tags): tags-tag-face is a variable, not a face.
+ (Emerge): Cleanups.
+
+ * kmacro.texi (Keyboard Macro Counter): Rewrite for clarity.
+ (Keyboard Macros): Avoid "the user".
+
+ * killing.texi: "Graphical display", not window system.
+
+ * help.texi (Help Echo): "Graphical display", not window system.
+
+ * glossary.texi: Say "you", not "the user". Say "graphical display".
+
+ * frames.texi: Minor cleanups. "Graphical display", not window system.
+
+ * files.texi (Visiting): Make drag-and-drop not X-specific.
+
+ * custom.texi: Minor cleanups. "Graphical display", not window system.
+
+ * cmdargs.texi: Minor cleanups.
+
+ * building.texi (Compilation): Move and split kill-compilation para.
+ Add para about multiple compilers.
+ (Compilation Mode): Commands also available in grep mode and others.
+ Mention C-u C-x ` more tutorially. Clarify C-x `.
+ (Compilation Shell): Clarify. Put Bash example first.
+ (Grep Searching): Minor cleanups; add @w.
+ (Debuggers): Minor cleanups.
+ (Starting GUD): Make GDB xgraphical mode issue clearer.
+ (Debugger Operation): Lots of clarifications including
+ GDB tooltip side-effect issue.
+ (Commands of GUD): Clarify.
+ (GUD Customization): Add bashdb-mode-hook.
+ (GDB Graphical Interface): Rewrite for clarity.
+ (GDB User Interface Layout): Rewrite for clarity.
+ (Stack Buffer, Watch Expressions): Likewise.
+ (Other GDB User Interface Buffers): Cleanups.
+ (Lisp Libraries, External Lisp): Cleanup.
+
+ * basic.texi (Position Info): "Graphical displays", rather than
+ window systems.
+
+ * anti.texi: Minor cleanup.
+
+2006-02-03 Eli Zaretskii <eliz@gnu.org>
+
+ * custom.texi (Init File, Find Init): Add cross-references to
+ where $HOME is described.
+
+2006-02-01 Luc Teirlinck <teirllm@auburn.edu>
+
+ * frames.texi (Frame Parameters): Remove @item for S-Mouse-1; it
+ is not inside the @table.
+
+ * emacs.texi (Top): Correct node name.
+
+ * files.texi (File Names): Fix @xref.
+ (Reverting): Fix typo.
+
+ * mule.texi (International): Correct node name.
+
+ * kmacro.texi (Save Keyboard Macro): Add missing @kbd to @table.
+
+2006-02-01 Richard M. Stallman <rms@gnu.org>
+
+ * emacs.texi (Top): Update subnode menu.
+
+ * mule.texi: Minor clarifications.
+ Reduce the specific references to X Windows.
+ Refer to "graphical" terminals, rather than window systems.
+ (Text Coding): Rename from Specify Coding.
+ (Communication Coding, File Name Coding, Terminal Coding):
+ New nodes split out from Text Coding.
+
+ * kmacro.texi: Minor clarifications.
+ (Keyboard Macro Ring): Comment out some excessive commands.
+ (Basic Keyboard Macro): Split up the table, putting part in each node.
+
+ * major.texi: Minor clarifications.
+
+ * misc.texi (Single Shell, Interactive Shell): Fix xrefs.
+
+ * windows.texi: Minor clarifications.
+ (Change Window): Don't describe mode-line mouse cmds here.
+ Add xref to Mode Line Mouse.
+
+ * msdog.texi (Text and Binary, MS-DOS and MULE): Fix xrefs.
+
+ * macos.texi (Mac International): Fix xref.
+
+ * indent.texi: Minor clarifications.
+
+ * frames.texi: Minor clarifications.
+ Reduce the specific references to X Windows.
+ Refer to "graphical" terminals, rather than window systems.
+ (Frame Parameters): Don't mention commands like
+ set-foreground-color. Just say to customize a face.
+ (Drag and Drop): Lisp-level stuff moved to Emacs Lisp manual.
+
+ * files.texi: Minor clarifications.
+ (Numbered Backups): New node, split out from Backup Names.
+
+ * display.texi (Font Lock): C mode no longer depends on (-in-col-0.
+
+ * cmdargs.texi (General Variables): Fix xref.
+
+ * buffers.texi: Minor clarifications.
+
+2006-01-31 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Scrolling, Horizontal Scrolling, Follow Mode):
+ Nodes moved to top.
+
+ * display.texi: Minor clarifications.
+ (Display): Rearrange menu.
+ (Standard Faces): Mention query-replace face.
+ (Faces): Simplify.
+ (Font Lock): Simplify face customization info.
+ (Highlight Changes): Node merged into Highlight Interactively.
+ (Highlight Interactively): Much rewriting and cleanup.
+ (Optional Mode Line): Narrowed line number not good for goto-line.
+ Simplify face customization advice.
+ (Text Display): Mention use of escape-glyph face.
+ Move ctl-arrow and tab-width here.
+ (Display Custom): Move no-redraw-on-reenter to end of node.
+
+ * search.texi: Minor clarifications.
+ (Isearch Scroll): Simplify.
+ (Other Repeating Search): Document multi-occur-in-matching-buffers.
+
+ * regs.texi (Registers): Mention bookmarks here.
+
+ * mark.texi: Minor clarifications.
+ (Selective Undo): Node deleted.
+
+ * m-x.texi: Minor clarifications.
+
+ * killing.texi: Minor clarifications.
+ Refer to "graphical" terminals, rather than window systems.
+
+ * help.texi: Clarifications.
+ (Help): Don't describe C-h F and C-h K here.
+ (Key Help): Describe C-h K here.
+ (Name Help): Mention Emacs Lisp Intro.
+ Describe C-h F here.
+ (Misc Help): Mention C-h F and C-h K only briefly.
+
+ * fixit.texi (Undo): New node, mostly copied from basic.texi.
+ Selective undo text merged in.
+ (Spelling): Mention Aspell along with Ispell.
+
+ * emacs.texi (Top): Update subnode menus.
+
+ * basic.texi (Basic Undo): Rename from Undo. Most of text
+ moved to new Undo node.
+
+2006-01-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * basic.texi (Continuation Lines, Inserting Text):
+ Mention longlines mode.
+
+2006-01-29 Richard M. Stallman <rms@gnu.org>
+
+ * screen.texi: Minor cleaups.
+ (Screen): Clean up the intro paragraphs.
+ (Mode Line): Lots of rewriting. Handle frame-name better.
+ eol-mnemonic-... vars moved out.
+
+ * emacs.texi (Top): Change menu item for MS-DOS node.
+ Update subnode menu.
+
+ * msdog.texi (MS-DOS): Rewrite intro to explain how this
+ chapter relates to Windows. Title changed.
+
+ * mini.texi: Minor cleanups.
+
+ * mark.texi (Selective Undo): New node, text moved from basic.texi.
+ (Mark): Put it in the menu.
+
+ * entering.texi: Minor cleanups.
+
+ * emacs.texi (Top): Add xref to Mac chapter; explain Windows better.
+ (Intro): Refer to "graphical" terminals, rather than X.
+
+ * display.texi (Display Custom): Add xref to Variables.
+ (Optional Mode Line): eol-mnemonic-... vars moved here.
+
+ * commands.texi: Minor cleanups. Refer to "graphical" terminals,
+ rather than X.
+
+ * basic.texi: Minor cleanups.
+ (Undo): selective-undo moved.
+
+2006-01-25 Luc Teirlinck <teirllm@auburn.edu>
+
+ * anti.texi (Antinews): Various corrections and additions.
+
+2006-01-23 Juri Linkov <juri@jurta.org>
+
+ * custom.texi (Easy Customization, Customization Groups)
+ (Browsing Custom): Mention links along with buttons.
+
+2006-01-21 Eli Zaretskii <eliz@gnu.org>
+
+ * text.texi (TeX Print): Use @key for TAB.
+
+ * kmacro.texi (Keyboard Macro Step-Edit): Use @key for TAB.
+
+2006-01-15 Sven Joachim <svenjoac@gmx.de> (tiny change)
+
+ * files.texi (File Aliases): Don't claim that usually separate
+ buffers are created for two file names that name the same data.
+ Mention additional situations where different names mean the same
+ file on disk.
+
+2006-01-19 Richard M. Stallman <rms@gnu.org>
+
+ * killing.texi (Deletion): Upcase @key argument.
+
+ * custom.texi (Custom Themes): Minor cleanup.
+
+ * programs.texi (Hungry Delete): Upcase @key argument.
+
+2006-01-16 Juri Linkov <juri@jurta.org>
+
+ * display.texi (Standard Faces): Add `mode-line-buffer-id'.
+ Move `mode-line-highlight' before `mode-line-buffer-id'.
+
+2006-01-14 Richard M. Stallman <rms@gnu.org>
+
+ * basic.texi (Inserting Text): Minor cleanup.
+
+2006-01-11 Luc Teirlinck <teirllm@auburn.edu>
+
+ * custom.texi (Changing a Variable, Face Customization):
+ Update for changes in Custom menus.
+
+2006-01-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macos.texi (Mac International): Undo last change.
+
+2006-01-02 Chong Yidong <cyd@stupidchicken.com>
+
+ * custom.texi (Custom Themes): Describe the new
+ customize-create-theme interface.
+
+2005-12-30 Juri Linkov <juri@jurta.org>
+
+ * basic.texi (Position Info): Update example.
+
+2005-12-27 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Dialog Boxes): Add x-gtk-show-hidden-files.
+
+2005-12-24 Chong Yidong <cyd@stupidchicken.com>
+
+ * custom.texi (Custom Themes): `load-theme' always loads.
+
+2005-12-23 Juri Linkov <juri@jurta.org>
+
+ * display.texi (Highlight Interactively): Use double space to
+ separate sentences. Replace C-p with M-p, and C-n with M-n.
+
+2005-12-22 Richard M. Stallman <rms@gnu.org>
+
+ * custom.texi (Easy Customization and subnodes):
+ Replace "active field" with "button".
+ Use "user option" only for variables.
+ Use "setting" for variable-or-face.
+
+2005-12-22 Luc Teirlinck <teirllm@auburn.edu>
+
+ * buffers.texi (Select Buffer): Change order in table to make
+ "Similar" refer to the correct item.
+ (Indirect Buffers): Minor rewording.
+
+2005-12-20 Juri Linkov <juri@jurta.org>
+
+ * files.texi (VC Status): Put P and N near p and n.
+
+2005-12-19 Richard M. Stallman <rms@gnu.org>
+
+ * programs.texi (Electric C): Delete the info about newline control.
+ (Other C Commands): Minor cleanup.
+ (Left Margin Paren): Minor cleanup.
+
+2005-12-19 Luc Teirlinck <teirllm@auburn.edu>
+
+ * custom.texi (Easy Customization): Add "Browsing Custom" to menu.
+ (Customization Groups): Delete text moved to "Browsing Custom".
+ (Browsing Custom): New node.
+ (Specific Customization): Clarify which commands only work for
+ loaded options.
+
+2005-12-18 Bill Wohler <wohler@newt.com>
+
+ * frames.texi (Tool Bars): Shorten text of previous change.
+
+2005-12-18 Aaron S. Hawley <Aaron.Hawley@uvm.edu>
+
+ * files.texi (VC Status): Document log-view mode.
+
+2005-12-18 Bill Wohler <wohler@newt.com>
+
+ * frames.texi (Tool Bars): Mention that you can turn off tool bars
+ permanently via the customize interface.
+
+2005-12-16 Ralf Angeli <angeli@iwi.uni-sb.de>
+
+ * killing.texi (Killing by Lines): Document `kill-whole-line'
+ function.
+
+2005-12-16 L\e$,1 q\e(Brentey K\e,Aa\e(Broly <lorentey@elte.hu>
+
+ * buffers.texi (Select Buffer): Change `prev-buffer' to
+ `previous-buffer'. Indicate that these functions use a frame
+ local buffer list.
+
+2005-12-12 Richard M. Stallman <rms@gnu.org>
+
+ * custom.texi (Easy Customization): Change menu comment.
+ (Prefix Keymaps): Fix spelling of Control-X-prefix.
+
+ * help.texi (Apropos): Rewrite. Talk about "apropos patterns".
+ (Help): Among the Apropos commands, describe only C-h a here.
+
+2005-12-11 Richard M. Stallman <rms@gnu.org>
+
+ * programs.texi (Options for Comments): Comment-end starts with space.
+
+ * glossary.texi (Glossary): Minor cleanup.
+
+ * files.texi (Old Versions): Use @table.
+
+2005-12-10 David Koppelman <koppel@ece.lsu.edu>
+
+ * display.texi (Highlight Interactively): Include
+ global-hi-lock-mode. Add miscellaneous details and elaborations.
+
+2005-12-09 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Font Lock): Delete the Global FL menu item.
+
+2005-12-09 Luc Teirlinck <teirllm@auburn.edu>
+
+ * custom.texi (Minibuffer Maps): Mention the maps for file name
+ completion.
+
+2005-12-09 Kim F. Storm <storm@cua.dk>
+
+ * killing.texi (CUA Bindings): Describe how to use C-x and C-c as
+ prefix keys even when mark is active. Decribe that RET moves
+ cursor to next corner in rectangle; clarify insert around rectangle.
+
+2005-12-08 Luc Teirlinck <teirllm@auburn.edu>
+
+ * custom.texi (Customization): Use xref to elisp manual for
+ non-TeX output.
+ (Minor Modes): Update.
+ (Customization Groups, Changing a Variable, Face Customization):
+ Update for new appearance of Custom buffers.
+ (Changing a Variable): `custom-buffer-done-function' has been
+ replaced by `custom-buffer-done-kill'.
+ (Specific Customization): In the `customize-group' buffer, a
+ subgroup's contents are not "hidden". They are not included at
+ all. They have no [Show] button.
+ (Mouse Buttons): Add pxref to description of mouse event lists in
+ Elisp manual. Add `menu-bar' and `header-line' dummy prefix keys.
+ (Find Init): Emacs now looks for ~/.emacs.d/init.el instead of
+ ~/.emacs.d/.emacs, if it can not find ~/.emacs(.el).
+
+2005-12-08 Richard M. Stallman <rms@gnu.org>
+
+ * mini.texi (Completion Commands, Completion):
+ In file name input, SPC does not do completion.
+
+2005-12-08 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB Graphical Interface): Explain screen size
+ setting.
+ (Other GDB User Interface Buffers): Describe features specific to
+ GDB 6.4.
+
+2005-12-01 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB User Interface Layout): Describe how to
+ kill associated buffers.
+ (Breakpoints Buffer): Use D instead of d for gdb-delete-breakpoint.
+ (Watch Expressions): Be more precise.
+ (Other GDB User Interface Buffers): Describe how to change a
+ register value.
+
+2005-11-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macos.texi (Mac Input): Remove description of
+ mac-command-key-is-meta. Add descriptions of
+ mac-control-modifier, mac-command-modifier, and
+ mac-option-modifier.
+ (Mac International): Fix description of conversion of clipboard data.
+ (Mac Font Specs): Add example of font customization by face attributes.
+
+2005-11-22 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Watch Expressions): Expand description.
+ (Other GDB User Interface Buffers): Describe local map for
+ gud-watch.
+
+2005-11-21 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi (Font Lock): Font lock is enabled by default now.
+
+2005-11-20 Juri Linkov <juri@jurta.org>
+
+ * basic.texi (Position Info): Update examples of the output.
+ Remove the fact that examples are produced in the TeXinfo buffer,
+ because in the Info reader users will get a different output from
+ `C-x ='.
+
+ * building.texi (Compilation Mode): Remove paragraph duplicated
+ from the node `Compilation'. Add `compilation-skip-threshold'.
+
+ * display.texi (Font Lock): Suggest more user-friendly method of
+ finding all Font Lock faces (M-x customize-group RET font-lock-faces).
+
+2005-11-18 Richard M. Stallman <rms@gnu.org>
+
+ * files.texi (Registering): Mention @@ in mode line.
+
+ * mini.texi (Minibuffer File): Clarify previous change. Add @findex.
+
+2005-11-08 Aaron S. Hawley <Aaron.Hawley@uvm.edu>
+
+ * files.texi (Renaming and VC): Some back-ends don't
+ handle renaming.
+
+2005-11-17 Juri Linkov <juri@jurta.org>
+
+ * emacs.texi (Top):
+ * display.texi (Highlight Interactively): Put this font-lock based
+ mode near Font Lock node.
+
+2005-11-16 Chong Yidong <cyd@stupidchicken.com>
+
+ * ack.texi (Acknowledgments): Acknowledge Andrew Zhilin for Emacs
+ icons.
+
+2005-11-12 Kim F. Storm <storm@cua.dk>
+
+ * help.texi (Help): Fix C-h a entry. Add C-h d entry.
+ (Help Summary): Add C-h d and C-h e.
+ (Apropos): Clarify that all apropos commands may search for either
+ list of words or a regexp. Add C-h d for apropos-documentation.
+ Describe apropos-documentation-sort-by-scores user option.
+
+2005-11-09 Luc Teirlinck <teirllm@auburn.edu>
+
+ * killing.texi (CUA Bindings): Add @section.
+
+2005-11-10 Kim F. Storm <storm@cua.dk>
+
+ * emacs.texi (Top): Add CUA Bindings entry to menu.
+
+ * killing.texi (CUA Bindings): New node. Moved here from
+ misc.texi and extended with info on rectangle commands and
+ rectangle highlighting, interface to registers, and the global
+ mark feature.
+
+ * misc.texi (Emulation): Move CUA bindings item to killing.texi.
+
+ * regs.texi: Prev link points to CUA Bindings node.
+
+2005-11-07 Luc Teirlinck <teirllm@auburn.edu>
+
+ * help.texi (Help Echo): By default, help echos are only shown on
+ mouse-over, not on point-over.
+
+2005-11-04 J\e,Ai\e(Br\e,At\e(Bme Marant <jerome@marant.org>
+
+ * misc.texi (Shell Mode): Describe how to activate password echoing.
+
+2005-11-04 Romain Francoise <romain@orebokech.com>
+
+ * mark.texi (Mark Ring): Fix typo.
+
+2005-11-03 Richard M. Stallman <rms@gnu.org>
+
+ * mark.texi (Mark Ring): Mention set-mark-command-repeat-pop.
+
+2005-11-01 Bill Wohler <wohler@newt.com>
+
+ * help.texi (Help Mode): Fix typo.
+
+2005-11-01 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Other GDB User Interface Buffers): Describe
+ the command gdb-use-inferior-io-buffer.
+
+2005-10-31 Romain Francoise <romain@orebokech.com>
+
+ * files.texi (Compressed Files): Fix typo.
+
+ * buffers.texi (Misc Buffer): Downcase `*shell*'.
+
+ * windows.texi (Force Same Window): Likewise.
+
+2005-10-30 Bill Wohler <wohler@newt.com>
+
+ * help.texi (Help Mode): URLs viewed with browse-url.
+
+2005-10-31 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB Graphical Interface): Don't reference
+ gdb-mouse-set-clear-breakpoint. Explain gdb-mouse-until
+ must stay in same frame.
+
+2005-10-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * custom.texi (Init File): Document ~/.emacs.d/init.el.
+
+ * anti.texi (Antinews): Likewise.
+
+2005-10-28 Bill Wohler <wohler@newt.com>
+
+ * help.texi (Help): Help mode now creates hyperlinks for URLs.
+
+2005-10-28 Richard M. Stallman <rms@gnu.org>
+
+ * files.texi (Visiting): Explain how to enter ? in a file name.
+
+ * trouble.texi (Memory Full): Mention !MEM FULL! in mode line.
+
+2005-10-25 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB Graphical Interface): Describe
+ gdb-mouse-until.
+
+2005-10-23 Richard M. Stallman <rms@gnu.org>
+
+ * custom.texi (Init File): Recommend when to use site-start.el.
+
+2005-10-21 Juri Linkov <juri@jurta.org>
+
+ * custom.texi (Examining): Mention accessing the old variable
+ value via M-n in set-variable.
+
+2005-10-18 Romain Francoise <romain@orebokech.com>
+
+ * files.texi (Version Systems): Capitalize GNU.
+
+2005-10-18 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Compilation Mode): Remove redundant paragraph.
+ (Watch Expressions): Remove paragraph to reflect code change.
+
+2005-10-16 Richard M. Stallman <rms@gnu.org>
+
+ * building.texi (Compilation Mode, Compilation): Clarified.
+
+2005-10-15 Richard M. Stallman <rms@gnu.org>
+
+ * misc.texi (Saving Emacs Sessions): Mention savehist library.
+
+2005-10-13 Kenichi Handa <handa@m17n.org>
+
+ * basic.texi (Position Info): Fix previous change.
+
+2005-10-12 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * cmdargs.texi (Icons X): Fix typo.
+
+2005-10-12 Kenichi Handa <handa@m17n.org>
+
+ * basic.texi (Position Info): Describe the case that Emacs shows
+ "part of display ...".
+
+2005-10-10 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * cmdargs.texi (Icons X): -nb => -nbi.
+
+2005-10-10 Chong Yidong <cyd@stupidchicken.com>
+
+ * frames.texi (Speedbar): A couple more clarifications.
+
+2005-10-11 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB User Interface Layout): Improve diagram.
+ (Watch Expressions): Explain how to make speedbar global.
+ (Other GDB User Interface Buffers): Make references more precise.
+
+2005-10-09 Richard M. Stallman <rms@gnu.org>
+
+ * frames.texi (Speedbar): Clarify the text.
+
+2005-10-09 Chong Yidong <cyd@stupidchicken.com>
+
+ * frames.texi (Speedbar): Add information on keybindings,
+ dismissing the speedbar, and buffer display mode. Link to
+ speedbar manual.
+
+2005-10-09 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * cmdargs.texi (Icons X): Removed options -i, -itype, --icon-type,
+ added -nb, --no-bitmap-icon.
+
+2005-10-07 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB Graphical Interface): Add variables and
+ functions to indices. Be more precise.
+
+2005-10-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Drag and Drop): Remove the x- from
+ x-dnd-open-file-other-window and xdnd-protocol-alist.
+
+2005-09-30 Romain Francoise <romain@orebokech.com>
+
+ * mini.texi (Minibuffer): The default value now appears before the
+ colon in minibuffer prompts.
+
+2005-09-25 Richard M. Stallman <rms@gnu.org>
+
+ * search.texi (Regexp Search): Doc search-whitespace-regexp.
+
+2005-09-20 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> (tiny change)
+
+ * text.texi (Paragraphs): Correction about Paragraph-Indent Text mode.
+
+2005-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * emacs.texi (Top): Update submenus from macos.texi.
+
+ * macos.texi: Change `Mac OS 8 or 9' to `Mac OS Classic'.
+ (Mac OS): Update feature support status.
+ (Mac Input): List supported input scripts. Remove description
+ about `mac-keyboard-text-encoding'. Mention mouse button
+ emulation and related variables.
+ (Mac International): Mention Central European and Cyrillic
+ support. Now `keyboard-coding-system' is dynamically changed.
+ Add description about coding system for selection. Add
+ description about language environment.
+ (Mac Environment Variables): Mention
+ `~/.MacOSX/environment.plist'. Give example of command line
+ arguments. Add Preferences support.
+ (Mac Directories): Explicitly state that this node is for Mac OS
+ Classic only.
+ (Mac Font Specs): Mention specification for scalable fonts. List
+ supported charsets. Add preferred way of creating fontsets. Add
+ description about `mac-allow-anti-aliasing'.
+ (Mac Functions): Add descriptions about `mac-set-file-creator',
+ `mac-get-file-creator', `mac-set-file-type', `mac-get-file-type',
+ and `mac-get-preference'.
+
+2005-09-16 Romain Francoise <romain@orebokech.com>
+
+ Update all files to specify GFDL version 1.2.
+
+ * doclicense.texi (GNU Free Documentation License): Update to
+ version 1.2.
+
+2005-09-15 Richard M. Stallman <rms@gnu.org>
+
+ * buffers.texi (List Buffers): Fix xref.
+
+ * rmail.texi (Rmail Basics): Fix xref.
+
+ * emacs.texi (Top): Update subnode menus.
+
+ * files.texi (Saving Commands): New node, broken out of Saving.
+ (Customize Save): New node, broken out of Saving.
+ Clarify effect of write-region-inhibit-fsync.
+ (Misc File Ops): Say write-region-inhibit-fsync affects write-region.
+
+2005-09-14 Romain Francoise <romain@orebokech.com>
+
+ * files.texi (Saving): Mention write-region-inhibit-fsync.
+
+2005-09-05 Chong Yidong <cyd@stupidchicken.com>
+
+ * custom.texi (Custom Themes): New node.
+
+2005-09-03 Richard M. Stallman <rms@gnu.org>
+
+ * search.texi (Search Case): Mention vars that control
+ case-fold-search for various operations.
+
+2005-08-22 Juri Linkov <juri@jurta.org>
+
+ * display.texi (Standard Faces): Merge the text from
+ `(elisp)Standard Faces' into this node.
+
+2005-08-18 Luc Teirlinck <teirllm@auburn.edu>
+
+ * emacs.texi (Top): Delete menu item for deleted node
+ Keyboard Translations.
+
+2005-08-18 Richard M. Stallman <rms@gnu.org>
+
+ * trouble.texi (Unasked-for Search):
+ Delete xref to Keyboard Translations.
+
+ * glossary.texi (Glossary): Delete xref.
+
+ * custom.texi (Minor Modes): Say that the list here is not complete.
+ (Keyboard Translations): Node deleted.
+ (Disabling): Delete xref to it.
+ (Customization Groups): Fix Custom buffer example.
+ (Hooks): Mention remove-hooks.
+
+2005-08-17 Luc Teirlinck <teirllm@auburn.edu>
+
+ * building.texi (GDB Graphical Interface): Improve filling of menu
+ item.
+
+2005-08-18 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB Graphical Interface): Use better node names.
+
+2005-08-14 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Sentences): Fix xref.
+
+2005-08-14 Juri Linkov <juri@jurta.org>
+
+ * building.texi (Compilation, Grep Searching): Move grep command
+ headings from `Compilation' to `Grep Searching'.
+
+ * dired.texi (Dired and Find):
+ * maintaining.texi (Tags Search): Replace grep xref to
+ `Compilation' node with `Grep Searching'.
+
+ * files.texi (Comparing Files): Replace xref to `Compilation' with
+ `Compilation Mode'.
+
+2005-08-13 Alan Mackenzie <acm@muc.de>
+
+ * search.texi (Non-ASCII Isearch): Correct a typo.
+ (Replacement Commands): Mention query-replace key binding.
+
+2005-08-11 Richard M. Stallman <rms@gnu.org>
+
+ * programs.texi (Options for Comments): Fix xref.
+
+ * search.texi (Regexp Backslash, Regexp Example): New nodes split
+ out of Regexps.
+
+2005-08-09 Juri Linkov <juri@jurta.org>
+
+ * building.texi (Compilation): Use `itemx' instead of `item'.
+ (Grep Searching): Simplify phrase.
+
+ * display.texi (Standard Faces): Describe vertical-border on
+ window systems.
+
+ * windows.texi (Split Window): Simplify phrase and mention
+ vertical-border face.
+
+2005-08-09 Richard M. Stallman <rms@gnu.org>
+
+ * files.texi (Comparing Files): Clarify compare-windows.
+
+ * calendar.texi (Scroll Calendar): Document < and > in calendar.
+
+2005-08-06 Eli Zaretskii <eliz@gnu.org>
+
+ * mule.texi (Coding Systems): Rephrase the paragraph about
+ codepages: no need for "M-x codepage-setup" anymore, except on
+ MS-DOS.
+
+ * msdog.texi (MS-DOS and MULE): Clarify that this section is for
+ the MS-DOS port only.
+
+2005-07-30 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (info): Don't run multi-install-info.bat.
+ ($(infodir)/dir): New target, produced by running
+ multi-install-info.bat.
+
+2005-07-22 Eli Zaretskii <eliz@gnu.org>
+
+ * files.texi (Quoted File Names): Add index entry.
+
+2005-07-19 Juri Linkov <juri@jurta.org>
+
+ * files.texi (Comparing Files): Mention resync for `compare-windows'.
+
+2005-07-18 Juri Linkov <juri@jurta.org>
+
+ * custom.texi (Easy Customization):
+ * files.texi (Old Versions):
+ * frames.texi (Wheeled Mice):
+ * mule.texi (Specify Coding):
+ * text.texi (Cell Justification):
+ * trouble.texi (After a Crash):
+ * xresources.texi (GTK styles):
+ Delete duplicate duplicate words.
+
+2005-07-17 Richard M. Stallman <rms@gnu.org>
+
+ * frames.texi (Creating Frames): Fix foreground color example.
+
+ * custom.texi (Init Examples): Clean up text about conditionals.
+
+2005-07-16 Richard M. Stallman <rms@gnu.org>
+
+ * mini.texi (Completion Commands): Fix command name for ?.
+
+2005-07-16 Eli Zaretskii <eliz@gnu.org>
+
+ * display.texi (Standard Faces): Explain that customization of
+ `menu' face has no effect on w32 and with GTK. Add
+ cross-references.
+
+ * cmdargs.texi (General Variables): Clarify the default location
+ of $HOME on w32 systems.
+
+2005-07-15 Jason Rumney <jasonr@gnu.org>
+
+ * cmdargs.texi (General Variables): Default HOME on MS Windows has
+ changed.
+
+2005-07-08 Kenichi Handa <handa@m17n.org>
+
+ * mule.texi (Recognize Coding): Recommend
+ revert-buffer-with-coding-system instead of revert-buffer.
+
+2005-07-07 Richard M. Stallman <rms@gnu.org>
+
+ * anti.texi (Antinews): Mention mode-line-inverse-video.
+
+ * files.texi (Saving): Minor correction about C-x C-w.
+
+ * display.texi (Display Custom): Don't mention mode-line-inverse-video.
+
+2005-07-07 Luc Teirlinck <teirllm@auburn.edu>
+
+ * search.texi (Isearch Scroll): Add example of using the
+ `isearch-scroll' property.
+ (Slow Isearch): Reference anchor for `baud-rate' instead of entire
+ `Display Custom' node.
+ (Regexp Replace): Put text that requires Emacs Lisp knowledge last
+ and de-emphasize it.
+ (Other Repeating Search): `occur' currently can not correctly
+ handle multiline matches. Correct, clarify and update description
+ of `flush-lines' and `keep-lines'.
+
+ * display.texi (Display Custom): Add anchor for `baud-rate'.
+
+2005-07-07 Richard M. Stallman <rms@gnu.org>
+
+ * gnu.texi: Update where to get GNU status; add refs for how to help.
+ Add footnotes 6 and 7.
+
+2005-07-04 Lute Kamstra <lute@gnu.org>
+
+ Update FSF's address in GPL notices.
+
+ * doclicense.texi (GNU Free Documentation License):
+ * trouble.texi (Checklist): Update FSF's address.
+
+2005-06-24 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Text Display): Change index entries.
+
+2005-06-24 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (MAKEINFO): Use --force.
+ (INFO_TARGETS, DVI_TARGETS): Make identical to the lists in
+ Makefile.in.
+
+2005-06-23 Richard M. Stallman <rms@gnu.org>
+
+ * anti.texi (Antinews): Renamed show-nonbreak-escape to
+ nobreak-char-display.
+
+ * emacs.texi (Top): Update detailed node listing.
+
+ * display.texi (Text Display): Renamed show-nonbreak-escape
+ to nobreak-char-display and no-break-space to nobreak-space.
+ (Standard Faces): Split up the list of standard faces
+ and put it in a separate node. Add nobreak-space and
+ escape-glyph.
+
+2005-06-23 Lute Kamstra <lute@gnu.org>
+
+ * mule.texi (Select Input Method): Fix typo.
+
+2005-06-23 Kenichi Handa <handa@m17n.org>
+
+ * mule.texi (International): List all supported scripts. Adjust
+ text for that leim is now included in the normal Emacs
+ distribution.
+ (Language Environments): List all language environments.
+ Intlfonts contains fonts for most supported scripts, not all..
+ (Select Input Method): Refer to C-u C-x = to see how to type to
+ input a specifc character.
+ (Recognize Coding): Fix typo, china-iso-8bit -> chinese-iso-8bit.
+
+2005-06-23 Juanma Barranquero <lekktu@gmail.com>
+
+ * building.texi (Grep Searching): Texinfo usage fix.
+
+2005-06-22 Miles Bader <miles@gnu.org>
+
+ * display.texi (Faces): Change `vertical-divider' to `vertical-border'.
+
+2005-06-20 Miles Bader <miles@gnu.org>
+
+ * display.texi (Faces): Add `vertical-divider'.
+
+2005-06-17 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Adaptive Fill): Minor clarification.
+
+2005-06-10 Lute Kamstra <lute@gnu.org>
+
+ * emacs.texi (Top): Correct version number.
+ * anti.texi (Antinews): Correct version number. Use EMACSVER to
+ refer to the current version of Emacs.
+
+2005-06-08 Luc Teirlinck <teirllm@auburn.edu>
+
+ * files.texi (Log Buffer): Document when there can be more than
+ one file to be committed.
+
+2005-06-08 Juri Linkov <juri@jurta.org>
+
+ * display.texi (Faces): Add `shadow' face.
+
+2005-06-07 Masatake YAMATO <jet@gyve.org>
+
+ * display.texi (Faces): Write about mode-line-highlight.
+
+2005-06-06 Richard M. Stallman <rms@gnu.org>
+
+ * misc.texi (Printing Package): Explain how to initialize
+ printing package.
+
+ * cmdargs.texi (Action Arguments): Clarify directory default for -l.
+
+2005-06-05 Chong Yidong <cyd@stupidchicken.com>
+
+ * emacs.texi: Rename Hardcopy to Printing.
+ Make PostScript and PostScript Variables subnodes of it.
+
+ * misc.texi (Printing): Rename node from Hardcopy.
+ Mention menu bar options.
+ Move PostScript and PostScript Variables to submenu.
+ (Printing package): New node.
+
+ * mark.texi (Using Region): Change Hardcopy xref to Printing.
+
+ * dired.texi (Operating on Files): Likewise.
+
+ * calendar.texi (Displaying the Diary): Likewise.
+
+ * msdog.texi (MS-DOS Printing, MS-DOS Processes): Likewise.
+
+ * glossary.texi (Glossary): Likewise.
+
+ * frames.texi (Mode Line Mouse): Mention mode-line-highlight
+ effect.
+
+2005-06-04 Richard M. Stallman <rms@gnu.org>
+
+ * trouble.texi (After a Crash): Polish previous change.
+
+2005-05-30 Noah Friedman <friedman@splode.com>
+
+ * trouble.texi (After a Crash): Mention emacs-buffer.gdb as a
+ recovery mechanism.
+
+2005-05-28 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Other Buffers): SPC toggles display of
+ floating point registers.
+
+2005-05-27 Nick Roberts <nickrob@snap.net.nz>
+
+ * files.texi (Log Buffer): Merge in description of Log Edit
+ mode from pcl-cvs.texi.
+
+2005-05-26 Richard M. Stallman <rms@gnu.org>
+
+ * building.texi (Lisp Eval): C-M-x with arg runs Edebug.
+
+2005-05-24 Luc Teirlinck <teirllm@auburn.edu>
+
+ * fixit.texi (Spelling): Delete confusing sentence; flyspell is
+ not enabled by default.
+ When not on a word, `ispell-word' by default checks the word
+ before point.
+
+2005-05-24 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Debugger Operation): Simplify last sentence.
+
+2005-05-23 Lute Kamstra <lute@gnu.org>
+
+ * emacs.texi: Update FSF's address throughout.
+ (Preface): Use @cite.
+ (Distrib): Add cross reference to the node "Copying". Mention the
+ FDL. Don't refer to etc/{FTP,ORDERS}. Mention the sale of
+ printed manuals.
+ (Intro): Use @xref for the Emacs Lisp Intro.
+
+2005-05-18 Luc Teirlinck <teirllm@auburn.edu>
+
+ * buffers.texi (Select Buffer): Document `C-u M-g M-g'.
+
+ * basic.texi (Moving Point): Mention default for `goto-line'.
+
+ * programs.texi (Lisp Doc): Eldoc mode shows only the first line
+ of a variable's docstring.
+
+2005-05-18 Lute Kamstra <lute@gnu.org>
+
+ * maintaining.texi (Overview of Emerge): Add cross reference.
+ Remove duplication.
+
+ * emacs.texi (Top): Update to the current structure of the manual.
+ * misc.texi (Emacs Server): Add menu description.
+ * files.texi (Saving): Fix menu.
+ * custom.texi (Customization): Fix menu.
+ * mule.texi (International): Fix menu.
+ * kmacro.texi (Keyboard Macros): Fix menu.
+
+2005-05-16 Luc Teirlinck <teirllm@auburn.edu>
+
+ * display.texi: Various minor changes.
+ (Faces): Delete text that is repeated in the next section.
+
+2005-05-16 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Debugger Operation): Mention GUD tooltips are
+ disabled with GDB in text command mode.
+
+2005-05-16 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi: Replace toolbar with "tool bar" for consistency.
+ (Compilation Mode): Describe compilation-context-lines
+ and use of arrow in compilation buffer.
+ (Debugger Operation): Replace help text with variable's value.
+
+ * frames.texi (Tooltips): Replace toolbar with "tool bar" for
+ consistency.
+
+2005-05-15 Luc Teirlinck <teirllm@auburn.edu>
+
+ * major.texi (Choosing Modes): normal-mode processes the -*- line.
+ Add xref.
+
+2005-05-14 Luc Teirlinck <teirllm@auburn.edu>
+
+ * basic.texi (Moving Point): Mention `M-g g' binding for `goto-line'.
+ (Position Info): Delete discussion of `goto-line'. It is already
+ described in `Moving point'.
+
+ * mini.texi (Completion Commands): Correct reference.
+ (Completion Options): Fix typo.
+
+ * killing.texi (Deletion): Complete description of `C-x C-o'.
+
+2005-05-10 Richard M. Stallman <rms@gnu.org>
+
+ * building.texi (Compilation): Clarify recompile's directory choice.
+
+ * frames.texi (Tooltips): Cleanups.
+
+ * basic.texi (Arguments): Fix punctuation.
+
+2005-05-09 Luc Teirlinck <teirllm@auburn.edu>
+
+ * screen.texi (Menu Bar): The up and down (not left and right)
+ arrow keys move through a keyboard menu.
+
+2005-05-08 Luc Teirlinck <teirllm@auburn.edu>
+
+ * basic.texi: Various typo and grammar fixes.
+ (Moving Point): C-a now runs move-beginning-of-line.
+
+2005-05-08 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Debugger Operation): Describe gud-tooltip-echo-area.
+
+ * frames.texi (Tooltips): Describe help tooltips and GUD tooltips
+ as different animals.
+
+2005-05-07 Luc Teirlinck <teirllm@auburn.edu>
+
+ * frames.texi (Mouse References): Clarify `mouse-1-click-follows-link'.
+ Correct index entry.
+
+2005-05-07 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Debugger Operation): Update to reflect changes
+ in GUD tooltips.
+
+2005-04-30 Richard M. Stallman <rms@gnu.org>
+
+ * files.texi (Compressed Files): Auto Compression normally enabled.
+
+ * building.texi (Debugger Operation): Clarify previous change.
+
+2005-04-28 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Debugger Operation): Add description for
+ GUD tooltips when program is not running.
+
+2005-04-26 Luc Teirlinck <teirllm@auburn.edu>
+
+ * misc.texi (Shell): Add `Shell Prompts' to menu.
+ (Shell Mode): Add xref to `Shell Prompts'. Clarify `C-c C-u'
+ description. Delete remarks moved to new node.
+ (Shell Prompts): New node.
+ (History References): Replace remarks moved to `Shell Prompts'
+ with xref to that node.
+ (Remote Host): Clarify how to specify the terminal type when
+ logging in to a different machine.
+
+2005-04-26 Richard M. Stallman <rms@gnu.org>
+
+ * emacs.texi (Top): Update submenus from files.texi.
+
+ * files.texi (Filesets): Clarify previous change.
+
+ * dired.texi (Misc Dired Features): Clarify previous change.
+
+2005-04-25 Chong Yidong <cyd@stupidchicken.com>
+
+ * ack.texi (Acknowledgments): Delete info about iso-acc.el.
+
+ * dired.texi (Misc Dired Features): Document
+ dired-compare-directories.
+
+ * files.texi (Filesets): New node.
+ (File Conveniences): Document Image mode.
+
+ * text.texi (TeX Print): Document tex-compile.
+
+2005-04-25 Luc Teirlinck <teirllm@auburn.edu>
+
+ * frames.texi (Tooltips): Tooltip mode is enabled by default.
+ Delete redundant reference to tooltip Custom group. It is
+ referred too again in the next paragraph.
+
+2005-04-24 Richard M. Stallman <rms@gnu.org>
+
+ * ack.texi: Delete info about lazy-lock.el and fast-lock.el.
+
+2005-04-19 Kim F. Storm <storm@cua.dk>
+
+ * building.texi (Compilation Mode): Add M-g M-n and M-g M-p bindings.
+
+2005-04-18 Lars Hansen <larsh@math.ku.dk>
+
+ * misc.texi (Saving Emacs Sessions): Add that "--no-desktop" now
+ turns off desktop-save-mode.
+
+2005-04-17 Luc Teirlinck <teirllm@auburn.edu>
+
+ * frames.texi (XTerm Mouse): Xterm Mouse mode is no longer enabled
+ by default in terminals compatible with xterm. Mention that
+ xterm-mouse-mode is a minor mode and put in pxref to Minor Modes
+ node.
+
+2005-04-12 Luc Teirlinck <teirllm@auburn.edu>
+
+ * frames.texi (XTerm Mouse): Xterm Mouse mode is now enabled by default.
+
+2005-04-12 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * xresources.texi (Table of Resources): Add cursorBlink.
+
+2005-04-11 Luc Teirlinck <teirllm@auburn.edu>
+
+ * rmail.texi (Rmail Summary Edit): Explain numeric arguments to
+ `d', `C-d' and `u'.
+
+2005-04-11 Richard M. Stallman <rms@gnu.org>
+
+ * cmdargs.texi (Initial Options): -Q is now --quick, and does less.
+ (Misc X): Add -D, --basic-display.
+
+ * maintaining.texi (Change Log): Correct the description of
+ the example.
+
+ * major.texi (Choosing Modes): Document magic-mode-alist.
+
+2005-04-10 Luc Teirlinck <teirllm@auburn.edu>
+
+ * rmail.texi (Rmail Basics): Clarify description of `q' and `b'.
+ (Rmail Deletion): `C-d' in RMAIL buffer does not accept a numeric arg.
+ (Rmail Inbox): Give full name of `rmail-primary-inbox-list'.
+ (Rmail Output): Clarify which statements apply to `o', `C-o' and
+ `w', respectively.
+ (Rmail Labels): Mention `l'.
+ (Rmail Attributes): Correct pxref. Mention `stored' attribute.
+ (Rmail Summary Edit): Describe `j' and RET.
+
+2005-04-10 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * xresources.texi (Lucid Resources): Add fontSet resource.
+
+2005-04-09 Luc Teirlinck <teirllm@auburn.edu>
+
+ * display.texi (Useless Whitespace): `indicate-unused-lines' is
+ now called `indicate-empty-lines'.
+
+2005-04-06 Kim F. Storm <storm@cua.dk>
+
+ * cmdargs.texi (Initial Options): Add --bare-bones alias for -Q.
+
+2005-04-04 Luc Teirlinck <teirllm@auburn.edu>
+
+ * dired.texi (Dired Visiting): `dired-view-command-alist' has been
+ deleted.
+ (Marks vs Flags): Add some convenient key bindings.
+ (Hiding Subdirectories): Delete redundant and inaccurate sentence.
+ (Misc Dired Features): Correct and expand description of `w' command.
+
+ * frames.texi (XTerm Mouse): Delete apparently false info.
+ The GNU/Linux console currently does not appear to support
+ `xterm-mouse-mode'.
+
+2005-04-03 Glenn Morris <gmorris@ast.cam.ac.uk>
+
+ * calendar.texi (Diary): Mention shell utility `calendar'.
+
+2005-04-01 Richard M. Stallman <rms@gnu.org>
+
+ * cmdargs.texi (Misc X): Explain horizontal scroll bars don't exist.
+
+2005-04-01 Lute Kamstra <lute@gnu.org>
+
+ * maintaining.texi (Change Log): add-change-log-entry uses
+ add-log-mailing-address.
+
+2005-03-31 Luc Teirlinck <teirllm@auburn.edu>
+
+ * files.texi (Reverting): Move `auto-revert-check-vc-info' to
+ `VC Mode Line' and put in an xref to that node.
+ (VC Mode Line): Move `auto-revert-check-vc-info' here and clarify
+ its description.
+
+2005-03-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ * calendar.texi (Calendar Systems): Say that the Persian calendar
+ implemented here is the arithmetical one championed by Birashk.
+
+2005-03-30 Glenn Morris <gmorris@ast.cam.ac.uk>
+
+ * programs.texi (Fortran Motion): Fix previous change.
+
+2005-03-29 Richard M. Stallman <rms@gnu.org>
+
+ * mule.texi (Single-Byte Character Support): Reinstall the C-x 8 info.
+
+2005-03-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * text.texi (Refill): Refer to Long Lines Mode.
+ (Longlines): New node.
+ (Auto Fill): Don't index "word wrap" here.
+ (Filling): Add Longlines to menu.
+
+2005-03-29 Richard M. Stallman <rms@gnu.org>
+
+ * xresources.texi: Minor fixes.
+
+ * misc.texi (Emacs Server): Fix Texinfo usage.
+
+ * emacs.texi (Top): Don't use a real section heading for
+ "Detailed Node Listing". Fake it instead.
+
+ * basic.texi (Position Info): Minor cleanup.
+
+ * mule.texi (Input Methods): Minor cleanup.
+
+2005-03-29 Glenn Morris <gmorris@ast.cam.ac.uk>
+
+ * programs.texi (ForIndent Vars): `fortran-if-indent' does other
+ constructs as well.
+ (Fortran Motion): Add fortran-end-of-block, fortran-beginning-of-block.
+
+2005-03-29 Kenichi Handa <handa@m17n.org>
+
+ * mule.texi (Input Methods): Refer to the command C-u C-x =.
+
+ * basic.texi (Position Info): Update the description about the
+ command C-u C-x =.
+
+2005-03-28 Richard M. Stallman <rms@gnu.org>
+
+ * emacs.texi (Top): Use @section for the detailed node listing.
+
+ * calendar.texi: Minor fixes to previous change.
+
+ * programs.texi (Fortran): Small fixes to previous changes.
+
+ * emacs.texi (Top): Update list of subnodes of Dired.
+ Likewise for building.texi.
+
+ * files.texi (File Conveniences): Delete Auto Image File mode.
+
+2005-03-28 Chong Yidong <cyd@stupidchicken.com>
+
+ * building.texi (Flymake): New node.
+
+ * custom.texi (Function Keys): Document kp- event types and
+ keypad-setup package.
+
+ * dired.texi (Wdired): New node.
+
+ * files.texi (File Conveniences): Reorder entries.
+ Explain how to turn on Auto-image-file mode.
+ Document Thumbs mode.
+
+ * mule.texi (Specify Coding): Document recode-region and
+ recode-file-name.
+
+ * programs.texi (Program Modes): Add Conf mode and DNS mode.
+
+2005-03-27 Luc Teirlinck <teirllm@auburn.edu>
+
+ * commands.texi (Keys): M-o is now a prefix key.
+
+2005-03-27 Glenn Morris <gmorris@ast.cam.ac.uk>
+
+ * programs.texi: Reformat and update copyright years.
+ (Fortran): Update section.
+
+2005-03-26 Luc Teirlinck <teirllm@auburn.edu>
+
+ * files.texi: Several small changes in addition to:
+ (Visiting): Change xref for Dialog Boxes to ref.
+ (Version Headers): Replace references to obsolete var
+ `vc-header-alist' with `vc-BACKEND-header'.
+ (Customizing VC): Update value of `vc-handled-backends'.
+
+2005-03-26 Glenn Morris <gmorris@ast.cam.ac.uk>
+
+ * emacs-xtra.texi (Advanced Calendar/Diary Usage): New section;
+ move here from Emacs Lisp Reference Manual.
+ * calendar.texi (Calendar/Diary, Diary Commands)
+ (Special Diary Entries, Importing Diary): Change some xrefs to
+ point to emacs-xtra rather than elisp.
+
+ * emacs-xtra.texi (Calendar Customizing):
+ Move view-diary-entries-initially, view-calendar-holidays-initially,
+ mark-diary-entries-in-calendar, mark-holidays-in-calendar to main
+ Emacs Manual.
+ (Appt Customizing): Merge entire section into main Emacs Manual.
+ * calendar.texi (Holidays): Move view-calendar-holidays-initially,
+ mark-holidays-in-calendar here from emacs-xtra.
+ (Displaying the Diary): Move view-diary-entries-initially,
+ mark-diary-entries-in-calendar here from emacs-xtra.
+ (Appointments): Move appt-display-mode-line,
+ appt-display-duration, appt-disp-window-function,
+ appt-delete-window-function here from emacs-xtra.
+
+ * calendar.texi: Update and reformat copyright.
+ Change all @xrefs to the non-printing emacs-xtra to @inforefs.
+ (Calendar/Diary): Menu now only on Mouse-3, not C-Mouse-3.
+ (Diary): Refer to `diary-file' rather than ~/diary.
+ (Diary Commands): Rename node to "Displaying the Diary".
+ * emacs.texi (Top): Rename "Diary Commands" section.
+ * misc.texi (Hardcopy): Rename "Diary Commands" xref.
+
+2005-03-26 Eli Zaretskii <eliz@gnu.org>
+
+ * misc.texi (Emacs Server): Fix the command for setting
+ server-name. Add an xref to Invoking emacsclient.
+
+ * help.texi (Help Summary): Clarify when "C-h ." will do something
+ nontrivial.
+ (Apropos): Add cindex entry for apropos-sort-by-scores.
+
+ * display.texi (Text Display): Add index entries for how no-break
+ characters are displayed.
+
+2005-03-26 Eli Zaretskii <eliz@gnu.org>
+
+ * files.texi (Visiting): Fix cross-references introduced with the
+ last change.
+
+ * xresources.texi (GTK resources): Fix last change.
+
+2005-03-25 Chong Yidong <cyd@stupidchicken.com>
+
+ * xresources.texi (X Resources): GTK options documented too.
+ (Resources): Clarify meaning of program name.
+ (Table of Resources): Add visualClass.
+ (GTK resources): Rewrite.
+ (GTK widget names, GTK Names in Emacs, GTK styles): Cleanups.
+
+ * display.texi (Text Display): Mention non-breaking spaces.
+
+ * files.texi (Reverting): Document auto-revert-check-vc-info.
+
+ * frames.texi (Mouse Commands): Document
+ x-mouse-click-focus-ignore-position and mouse-drag-copy-region.
+
+ * help.texi (Help Summary): Add `C-h .'.
+ (Apropos): Apropos accepts a list of search terms.
+ Document apropos-sort-by-scores.
+ (Help Echo): Document display-local-help.
+
+ * misc.texi (Emacs Server): Document server-name.
+ (Invoking emacsclient): Document -s option for server names.
+
+ * text.texi (Outline Visibility): Introduce "current heading
+ line" (commands can be called with point on a body line).
+ Re-order table to follow the sequence of discussion.
+ hide-body won't hide lines before first header line.
+ (TeX Mode): Add DocTeX mode.
+
+2005-03-24 Richard M. Stallman <rms@gnu.org>
+
+ * mule.texi (Single-Byte Character Support): Delete mention
+ of iso-acc.el and iso-transl.el.
+
+2005-03-23 Lute Kamstra <lute@gnu.org>
+
+ * search.texi (Non-ASCII Isearch): Rename from Non-Ascii Isearch.
+
+2005-03-23 Richard M. Stallman <rms@gnu.org>
+
+ * search.texi: Delete explicit node pointers.
+ (Incremental Search): New menu.
+ (Basic Isearch, Repeat Isearch, Error in Isearch)
+ (Non-Ascii Isearch, Isearch Yank, Highlight Isearch, Isearch Scroll)
+ (Slow Isearch): New subnodes.
+ (Configuring Scrolling): Node deleted.
+ (Search Case): Doc default-case-fold-search.
+ (Regexp Replace): Move replace-regexp doc here.
+
+ * rmail.texi (Movemail): Put commas inside closequotes.
+
+ * picture.texi (Insert in Picture): Document C-c arrow combos.
+ (Basic Picture): Clarify erasure.
+
+ * display.texi (Font Lock): Put commas inside closequotes.
+
+ * cmdargs.texi (General Variables): Put commas inside closequotes.
+
+2005-03-23 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Stack Buffer): Mention reverse contrast for
+ *selected* frame (might not be current frame).
+
+2005-03-21 Richard M. Stallman <rms@gnu.org>
+
+ * building.texi (Starting GUD): Add bashdb.
+
+2005-03-20 Chong Yidong <cyd@stupidchicken.com>
+
+ * basic.texi (Moving Point): Add M-g M-g binding.
+ (Undo): Document undo-only.
+ (Position Info): Document M-g M-g and C-u M-g M-g.
+
+ * building.texi (Building): Put Grep Searching after Compilation
+ Shell.
+ (Compilation Mode): Document M-n, M-p, M-}, M-{, and C-c C-f bindings.
+ Document next-error-highlight.
+ (Grep Searching): Document grep-highlight-matches.
+ (Lisp Eval): Typing C-x C-e twice prints integers specially.
+
+ * calendar.texi (Importing Diary): Rename node from iCalendar.
+ Document diary-from-outlook.
+
+ * dired.texi (Misc Dired Features): Rename node from Misc Dired
+ Commands.
+ Mention effect of X drag and drop on Dired buffers.
+
+ * files.texi (Visiting): Document large-file-warning-threshold.
+ Move paragraph on file-selection dialog.
+ Mention visiting files using X drag and drop.
+ (Reverting): Mention using Auto-Revert mode to tail files.
+ Document auto-revert-tail-mode.
+ (Version Systems): Minor correction.
+ (Comparing Files): Diff-mode is no longer based on Compilation
+ mode.
+ Document compare-ignore-whitespace.
+ (Misc File Ops): Explain passing a directory to rename-file.
+ Likewise for copy-file and make-symbolic-link.
+
+ * frames.texi (Wheeled Mice): Mouse wheel support on by default.
+ Document mouse-wheel-progressive speed.
+
+ * help.texi (Misc Help): Document numeric argument for C-h i.
+ Correctly explain the effect of just C-u as argument.
+
+ * killing.texi (Deletion): Document numeric argument for
+ just-one-space.
+
+ * mini.texi (Completion): Completion acts on text before point.
+
+ * misc.texi (Saving Emacs Sessions): Document desktop-restore-eager.
+ (Emulation): CUA mode replaces pc-bindings-mode,
+ pc-selection-mode, and s-region.
+
+ * mule.texi (Input Methods): Leim is now built-in.
+ (Select Input Method): Document quail-show-key.
+ (Specify Coding): Document revert-buffer-with-coding-system.
+
+ * programs.texi (Fortran Motion): Document f90-next-statement,
+ f90-previous-statement, f90-next-block, f90-previous-block,
+ f90-end-of-block, and f90-beginning-of-block.
+
+ * text.texi (Format Faces): Replace old M-g key prefix with M-o.
+
+ * emacs.texi (Acknowledgments): Updated.
+
+ * anti.texi: Total rewrite.
+
+2005-03-19 Chong Yidong <cyd@stupidchicken.com>
+
+ * ack.texi (Acknowledgments): Update.
+
+2005-03-19 Eli Zaretskii <eliz@gnu.org>
+
+ * anti.texi (Antinews): Refer to Emacs 21.4, not 21.3. Update
+ copyright years.
+
+2005-03-14 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Commands of GUD): Move paragraph on setting
+ breakpoints with mouse to the GDB Graphical Interface node.
+
+2005-03-07 Richard M. Stallman <rms@gnu.org>
+
+ * misc.texi (Single Shell, Shell Options): Fix previous change.
+
+ * building.texi (Debugger Operation): Update GUD tooltip enable info.
+
+2005-03-06 Richard M. Stallman <rms@gnu.org>
+
+ * building.texi (Starting GUD): Don't explain text vs graphical
+ GDB here. Just mention it and xref.
+ Delete "just one debugger process".
+ (Debugger Operation): Move GUD tooltip info here.
+ (GUD Tooltips): Node deleted.
+ (GDB Graphical Interface): Explain the two GDB modes here.
+
+ * sending.texi (Sending Mail): Minor cleanup.
+ (Mail Aliases): Explain quoting conventions.
+ Update key rebinding example.
+ (Header Editing): C-M-i is like M-TAB.
+ (Mail Mode Misc): mail-attach-file does not do MIME.
+
+ * rmail.texi (Rmail Inbox): Move text from Remote Mailboxes
+ that really belongs here.
+ (Remote Mailboxes): Text moved to Rmail Inbox.
+ (Rmail Display): Mention Mouse-1.
+ (Movemail): Clarify two movemail versions.
+ Clarify rmail-movemail-program.
+
+ * misc.texi (Single Shell): Replace uudecode example with gpg example.
+ Document async shell commands.
+ (Shell History): Clarify.
+ (Shell Ring): Mention C-UP an C-DOWN.
+ (Shell Options): Add comint-prompt-read-only.
+ (Invoking emacsclient): Set EDITOR to run Emacs.
+ (Sorting): No need to explain what region is.
+ (Saving Emacs Sessions): Fix typo.
+ (Recursive Edit): Fix punctuation.
+ (Emulation): Don't mention "PC bindings" which are standard.
+ (Hyperlinking): Explain Mouse-1 convention here.
+ (Find Func): Node deleted.
+
+ * help.texi (Name Help): Xref to Hyperlinking.
+
+ * glossary.texi (Glossary):
+ Rename "Balance Parentheses" to "Balancing...".
+ Add "Byte Compilation". Correct "Copyleft".
+ New xref in "Customization".
+ Clarify "Current Line", "Echoing", "Fringe", "Frame", "Speedbar".
+ Add "Graphical Terminal" "Keybinding", "Margin", "Window System".
+ Rename "Registers" to "Register".
+ Replace "Selecting" with "Selected Frame",
+ "Selected Window", and "Selecting a Buffer".
+
+ * files.texi (Types of Log File): Explain how projects'
+ methods can vary.
+
+ * display.texi (Faces): Delete "Emacs 21".
+
+ * custom.texi (Changing a Variable): C-M-i like M-TAB.
+ * fixit.texi (Spelling): C-M-i like M-TAB.
+ * mini.texi (Completion Options): C-M-i like M-TAB.
+ * programs.texi (Symbol Completion): C-M-i like M-TAB.
+ * text.texi (Text Mode): C-M-i like M-TAB.
+
+ * commands.texi (Keys): Mention F1 and F2 in list of prefixes.
+
+ * calendar.texi (Specified Dates): Mention `g w'.
+ (Appointments): appt-activate toggles with no arg.
+
+2005-03-05 Juri Linkov <juri@jurta.org>
+
+ * cmdargs.texi (Emacs Invocation): Add cindex
+ "invocation (command line arguments)"
+ (Misc X): Add -nbc, --no-blinking-cursor.
+
+2005-03-04 Ulf Jasper <ulf.jasper@web.de>
+
+ * calendar.texi (iCalendar): No need to require it now.
+
+2005-03-03 Nick Roberts <nickrob@snap.net.nz>
+
+ * trouble.texi (Contributing): Mention Savannah. Direct users to
+ emacs-devel.
+
+2005-03-01 Glenn Morris <gmorris@ast.cam.ac.uk>
+
+ * calendar.texi (Adding to Diary): Mention redrawing of calendar
+ window.
+
+2005-02-27 Richard M. Stallman <rms@gnu.org>
+
+ * building.texi (Compilation): Update mode line status info.
+
+2005-02-27 Matt Hodges <MPHodges@member.fsf.org>
+
+ * calendar.texi (General Calendar): Document binding of
+ scroll-other-window-down.
+ (Mayan Calendar): Fix earliest date.
+ (Time Intervals): Document timeclock-change.
+ Fix timeclock-ask-before-exiting documentation.
+
+2005-02-26 Kim F. Storm <storm@cua.dk>
+
+ * frames.texi (Mouse References):
+ Add mouse-1-click-in-non-selected-windows.
+
+2005-02-25 Richard M. Stallman <rms@gnu.org>
+
+ * screen.texi (Screen): Explain better about cursors and mode lines;
+ don't presuppose text terminals.
+ (Point): Don't assume just one cursor.
+ Clarify explanation of cursors.
+ (Echo Area, Menu Bar): Cleanups.
+
+ * mini.texi (Minibuffer): Prompts are highlighted.
+ (Minibuffer Edit): Newline = C-j only on text terminals.
+ Clarify resize-mini-windows values.
+ Mention M-PAGEUP and M-PAGEDOWN.
+ (Completion Commands): Mouse-1 like Mouse-2.
+ (Minibuffer History): Explain history commands better.
+ (Repetition): Add xref to Incremental Search.
+
+ * mark.texi (Setting Mark): Clarify info about displaying mark.
+ Clarify explanation of C-@ and C-SPC.
+ (Transient Mark): Mention Delete Selection mode.
+ (Marking Objects): Clean up text about extending the region.
+
+ * m-x.texi (M-x): One C-g doesn't always go to top level.
+ No delay before suggest-key-bindings output.
+
+ * fixit.texi (Fixit): Mention C-/ for undo.
+ (Spelling): Mention ESC TAB like M-TAB.
+ Replacement words with r and R are rechecked.
+ Say where C-g leaves point. Mention ? as input.
+
+2005-02-23 Lute Kamstra <lute@gnu.org>
+
+ * cmdargs.texi (Initial Options): Add cross reference.
+
+2005-02-16 Luc Teirlinck <teirllm@auburn.edu>
+
+ * emacs.texi (Top): Update menu for splitting of node in
+ msdog.texi.
+ * frames.texi (Frames): Update xref for splitting of node in
+ msdog.texi.
+ * trouble.texi (Quitting): Ditto.
+
+2005-02-16 Richard M. Stallman <rms@gnu.org>
+
+ * windows.texi (Split Window): Simplify line truncation info
+ and xref to Display Custom.
+
+ * trouble.texi (Quitting): Emergency escape only for text terminal.
+ (Screen Garbled): C-l for ungarbling is only for text terminal.
+
+ * text.texi (Text Mode): ESC TAB alternative for M-TAB.
+
+ * sending.texi (Header Editing): ESC TAB alternative for M-TAB.
+
+ * programs.texi (Program Modes): Mention Python mode.
+ (Moving by Defuns): Repeating C-M-h extends region.
+ (Basic Indent): Clarify.
+ (Custom C Indent): Clarify.
+ (Expressions): Repeating C-M-@ extends region.
+ (Info Lookup): Clarify for C-h S.
+ (Symbol Completion): ESC TAB alternative for M-TAB.
+ (Electric C): Clarify.
+
+ * emacs.texi (Top): Update display.texi and frames.texi submenu data.
+
+ * msdog.texi (MS-DOS Keyboard, MS-DOS Mouse): Split from
+ MS-DOS Input node.
+ (MS-DOS Keyboard): Start with explaining DEL and BREAK.
+ (MS-DOS and MULE): Clarify.
+ (MS-DOS Processes, Windows Processes): Fix typos.
+
+ * major.texi (Choosing Modes): Clarify.
+
+ * kmacro.texi (Basic Keyboard Macro): Doc F3, F4.
+ (Keyboard Macro Step-Edit): Clarify.
+
+ * indent.texi (Indentation): Clarifications.
+
+ * help.texi (Help): Correct error about C-h in query-replace.
+ Clarify apropos vs C-h a. Fix how to search in FAQ.
+ (Key Help): Describe C-h w here.
+ (Name Help): Minor cleanup. C-h w moved to Key Help.
+ Clarify the "object" joke.
+ (Apropos): Clarify. Mouse-1 like Mouse-2.
+ (Help Mode): Mouse-1 like Mouse-2.
+
+ * fixit.texi (Spelling): Mention ESC TAB as alt. for M-TAB.
+
+ * display.texi (Display): Reorder menu.
+ (Faces): Cleanup.
+ (Font Lock): Cleanup. Mention Options menu.
+ Delete obsolete text.
+ (Scrolling): For C-l, don't presume text terminal.
+ (Horizontal Scrolling): Simplify intro.
+ (Follow Mode): Clarify.
+ (Cursor Display): Moved before Display Custom.
+ (Display Custom): Explain no-redraw-on-reenter is for text terminals.
+ Doc default-tab-width. Doc line truncation more thoroughly.
+
+ * dired.texi (Dired Enter): C-x C-f can run Dired.
+ (Dired Visiting): Comment out `a' command.
+ Mouse-1 is like Mouse-2.
+ (Shell Commands in Dired): ? can be used more than once.
+
+ * basic.texi (Continuation Lines): Simplify description of truncation,
+ and refer to Display Custom for the rest of it.
+
+2005-02-06 Lute Kamstra <lute@gnu.org>
+
+ * basic.texi (Undo): Fix typo.
+
+ * cmdargs.texi (Emacs Invocation): Fix typo.
+
+ * custom.texi (Init Examples): Fix typo.
+
+ * abbrevs.texi (Expanding Abbrevs): Fix typo.
+
+2005-02-06 Richard M. Stallman <rms@gnu.org>
+
+ * regs.texi (Registers): Registers can hold numbers, too.
+
+ * killing.texi (Other Kill Commands): Cleanup.
+ Delete redundant explanation of kill in read-only buffer.
+ (Yanking): Mention term "copying".
+ (Accumulating Text): Fix typo.
+
+ * entering.texi (Entering Emacs): Update rationale at start.
+ (Exiting): Treat iconifying on a par with suspension.
+
+ * custom.texi (Minor Modes): Fix typo.
+ (Easy Customization): Fix menu style.
+ (Variables): Add xref.
+ (Examining): Setting for future sessions works through .emacs.
+ (Keymaps): "Text terminals", not "Many".
+ (Init Rebinding): Explain \C-. Show example of \M-.
+ Fix minor wording errors.
+ (Function Keys): Explain vector syntax just once.
+ (Named ASCII Chars): Clarify history of TAB/C-i connection.
+ (Init File): Mention .emacs.d directory.
+ (Init Examples): Add xref.
+ (Find Init): Mention .emacs.d directory.
+
+ * cmdargs.texi (Emacs Invocation): +LINENUM is also an option.
+ (Action Arguments): Explain which kinds of -l args are found how.
+ (Initial Options): --batch does not inhibit site-start.
+ Add xrefs.
+ (Command Example): Use --batch, not -batch.
+
+ * basic.texi (Inserting Text): Cleanup wording.
+ (Moving Point): Doc PRIOR, PAGEUP, NEXT, PAGEDOWN more systematically.
+ C-n is not error at end of buffer.
+ (Undo): Doc C-/ like C-_. Add xrefs.
+ (Arguments): META key may be labeled ALT.
+ Peculiar arg meanings are explained in doc strings.
+
+ * abbrevs.texi (Expanding Abbrevs): Clarify.
+
+2005-02-05 Eli Zaretskii <eliz@gnu.org>
+
+ * frames.texi (Frame Parameters): Add an xref to the description
+ of list-colors-display. Add a pointer to the X docs about colors.
+
+ * cmdargs.texi (Colors): Mention 16-, 88- and 256-color modes.
+ Impove docs of list-colors-display.
+
+2005-02-03 Lute Kamstra <lute@gnu.org>
+
+ * frames.texi (Frames, Drag and Drop): Fix typos.
+
+2005-02-03 Richard M. Stallman <rms@gnu.org>
+
+ * windows.texi (Basic Window): Mention color-change in mode line.
+ (Change Window): Explain dragging vertical boundaries.
+
+ * text.texi (Sentences): Clarify.
+ (Paragraphs): Explain M-a and blank lines.
+ (Outline Mode): Clarify text and menu.
+ (Hard and Soft Newlines): Mention use-hard-newlines.
+
+ * frames.texi (Frames): Delete unnecessary mention of Windows.
+ (Mouse Commands): Likewise. Mention xterm mouse support.
+ (Clipboard): Clarify.
+ (Mouse References): Mention use of Mouse-1 for following links.
+ (Menu Mouse Clicks): Clarify.
+ (Mode Line Mouse): Clarify.
+ (Drag and Drop): Rewrite.
+
+ * fixit.texi (Spelling): Fix typo.
+
+ * files.texi (File Names): Clarify.
+ (Visiting): Update conditions for use of file dialog. Clarify.
+ (Saving): Doc d as answer in save-some-buffers.
+ (Remote Files): Clean up the text.
+
+ * dired.texi (Misc Dired Commands): Delete dired-marked-files.
+
+ * buffers.texi (Select Buffer): Doc next-buffer and prev-buffer.
+ (List Buffers): Clarify.
+ (Several Buffers): Doc T command.
+ (Buffer Convenience): Clarify menu.
+
+ * basic.texi (Undo): Clarify last change.
+
+2005-02-02 Matt Hodges <MPHodges@member.fsf.org>
+
+ * fixit.texi (Spelling): Fix typo.
+
+2005-02-01 Luc Teirlinck <teirllm@auburn.edu>
+
+ * basic.texi (Undo): Update description of `undo-outer-limit'.
+
+2005-02-01 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi: Update documentation relating to GDB Graphical
+ Interface.
+
+2005-01-30 Luc Teirlinck <teirllm@auburn.edu>
+
+ * custom.texi (Easy Customization): Adapt menu to node name change.
+
+2005-01-30 Richard M. Stallman <rms@gnu.org>
+
+ * custom.texi (Easy Customization): Defn of "User Option" now
+ includes faces. Don't say just "option" when talking about variables.
+ Do say just "options" to mean "anything customizable".
+ (Specific Customization): Describe `customize-variable',
+ not `customize-option'.
+
+ * glossary.texi (Glossary) <Faces>: Add xref.
+ <User Option>: Change definition--include faces. Change xref.
+
+ * picture.texi (Picture): Mention artist.el.
+
+ * sending.texi, screen.texi, programs.texi, misc.texi:
+ * mini.texi, major.texi, maintaining.texi, macos.texi:
+ * help.texi, frames.texi, files.texi:
+ Don't say just "option" when talking about variables.
+
+ * display.texi, mule.texi: Don't say just "option" when talking
+ about variables. Other minor cleanups.
+
+2005-01-26 Lute Kamstra <lute@gnu.org>
+
+ * cmdargs.texi (Initial Options): Add a cross reference to `Init
+ File'. Mention the `-Q' option at the `--no-site-file' option.
+
+2005-01-22 David Kastrup <dak@gnu.org>
+
+ * building.texi (Grep Searching): Mention alias `find-grep' for
+ `grep-find'.
+
+2005-01-20 Richard M. Stallman <rms@gnu.org>
+
+ * calendar.texi (Time Intervals): Delete special stuff for MS-DOS.
+
+2005-01-15 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * rmail.texi (Movemail): Explain differences
+ between standard and mailutils versions of movemail.
+ Describe command line and configuration options introduced
+ with the latter.
+ Explain the notion of mailbox URL, provide examples and
+ cross-references to mailutils documentation.
+ Describe various methods of specifying mailbox names,
+ user names and user passwords for rmail.
+ (Remote Mailboxes): New section. Describe
+ how movemail handles remote mailboxes. Describe configuration
+ options used to control its behavior.
+ (Other Mailbox Formats): Explain handling of various mailbox
+ formats.
+
+2005-01-13 Richard M. Stallman <rms@gnu.org>
+
+ * commands.texi (Commands): Clarification.
+
+2005-01-11 Richard M. Stallman <rms@gnu.org>
+
+ * programs.texi (Multi-line Indent): Fix previous change.
+ (Fortran Autofill): Simplify description of fortran-auto-fill-mode.
+
+2005-01-08 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Faces): isearch-lazy-highlight-face renamed to
+ lazy-highlight.
+
+ * search.texi (Query Replace): Mention faces query-replace
+ and lazy-highlight.
+ (Incremental Search): Update isearch highlighting info.
+
+2005-01-04 Richard M. Stallman <rms@gnu.org>
+
+ * custom.texi (Saving Customizations): Minor improvement.
+
+2005-01-03 Luc Teirlinck <teirllm@auburn.edu>
+
+ * custom.texi (Saving Customizations): Emacs no longer loads
+ `custom-file' after .emacs. No longer mention customizing through
+ Custom.
+
+2005-01-01 Andreas Schwab <schwab@suse.de>
+
+ * killing.texi (Graphical Kill): Move up under node Killing,
+ change @section to @subsection.
+
+2005-01-01 Richard M. Stallman <rms@gnu.org>
+
+ * custom.texi (Face Customization): Mention hex color specs.
+
+ * emacs.texi (Top): Update Killing submenu.
+
+ * killing.texi (Killing): Reorganize section.
+ No more TeX-only text; put the node command at start of chapter.
+ But the first section heading is used only in TeX.
+ Rewrite the text to read better in this mode.
+ (Graphical Kill): New subnode gets some of the text that
+ used to be in the first section.
+
+2004-12-31 Richard M. Stallman <rms@gnu.org>
+
+ * dired.texi (Shell Commands in Dired): Delete the ? example.
+
+ * display.texi (Scrolling): Correct scroll-preserve-screen-position.
+
+ * files.texi (Saving): Describe new require-final-newline features
+ and mode-require-final-newline.
+
+2004-12-29 Richard M. Stallman <rms@gnu.org>
+
+ * custom.texi (File Variables): Clarify previous change.
+
+2004-12-27 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Dialog Boxes): Mention Gtk+ 2.6 also, as that version is
+ out now.
+
+2004-12-27 Richard M. Stallman <rms@gnu.org>
+
+ * Makefile.in (MAKEINFO): Specify --force.
+
+ * basic.texi (Moving Point): C-e now runs move-end-of-line.
+ (Undo): Doc undo-outer-limit.
+
+2004-12-15 Juri Linkov <juri@jurta.org>
+
+ * mark.texi (Transient Mark, Mark Ring): M-< and other
+ movement commands don't set mark in Transient Mark mode
+ if mark is active.
+
+2004-12-12 Juri Linkov <juri@jurta.org>
+
+ * misc.texi (FFAP): Add C-x C-r, C-x C-v, C-x C-d,
+ C-x 4 r, C-x 4 d, C-x 5 r, C-x 5 d.
+
+ * dired.texi (Dired Navigation): Add @r{(Dired)} to M-g.
+ (Misc Dired Commands): Add @r{(Dired)} to w.
+
+2004-12-12 Juri Linkov <juri@jurta.org>
+
+ * mark.texi (Marking Objects): Marking commands also extend the
+ region when mark is active in Transient Mark mode.
+
+2004-12-08 Luc Teirlinck <teirllm@auburn.edu>
+
+ * custom.texi (Saving Customizations): Emacs only loads the custom
+ file automatically after the init file in version 22.1 or later.
+ Adapt text and examples to this fact.
+
+2004-12-07 Luc Teirlinck <teirllm@auburn.edu>
+
+ * frames.texi (Scroll Bars): The option `scroll-bar-mode' has to
+ be set through Custom. Otherwise, it has no effect.
+
+2004-12-05 Richard M. Stallman <rms@gnu.org>
+
+ * cmdargs.texi, doclicense.texi, xresources.texi, emacs.texi:
+ * entering.texi: Rename Command Line to Emacs Invocation.
+
+ * misc.texi (Term Mode): Correcty describe C-c.
+
+ * custom.texi (Easy Customization): Move up to section level,
+ before Variables. Avoid using the term "variable"; say "option".
+ New initial explanation.
+ (Variables): In initial explanation, connect "variable" to the
+ already-explained "user option".
+
+ * emacs.texi (Top): Fix ref to Command Line.
+ Move reference to Easy Customization.
+
+ * xresources.texi (X Resources): Fix From link.
+
+ * doclicense.texi (GNU Free Documentation License): Fix To link.
+
+ * entering.texi (Entering Emacs): Fix xref, now to Command Line.
+
+ * cmdargs.texi (Command Line): Node renamed from Command Arguments.
+
+2004-12-03 Richard M. Stallman <rms@gnu.org>
+
+ * cmdargs.texi (Initial Options): Clarify batch mode i/o.
+
+2004-12-01 Luc Teirlinck <teirllm@auburn.edu>
+
+ * kmacro.texi: Several small changes in addition to the following.
+ (Keyboard Macro Ring): Describe behavior of `C-x C-k C-k' when
+ defining a keyboard macro.
+ Mention `kmacro-ring-max'.
+ (Keyboard Macro Counter): Clarify description of
+ `kmacro-insert-counter', `kmacro-set-counter',
+ `kmacro-add-counter' and `kmacro-set-format'.
+
+2004-11-29 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * custom.texi (File Variables): Add `unibyte' and make it more
+ clear that `unibyte' and `coding' are special. Suggested by Simon
+ Krahnke <overlord@gmx.li>.
+
+ * mule.texi (Enabling Multibyte): Refer to File Variables.
+ Suggested by Simon Krahnke <overlord@gmx.li>.
+
+2004-11-26 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Dialog Boxes): Rename use-old-gtk-file-dialog to
+ x-use-old-gtk-file-dialog.
+
+2004-11-20 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Fill Prefix): M-q doesn't apply fill prefix to first line.
+
+2004-11-09 Lars Brinkhoff <lars@nocrew.org>
+
+ * building.texi (Lisp Eval): Delete hyphen in section name.
+
+2004-11-19 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * files.texi (Old Versions):
+ No longer document annotation as "CVS only".
+
+2004-11-10 Andre Spiegel <spiegel@gnu.org>
+
+ * files.texi (Version Control): Rewrite the introduction about
+ version systems, mentioning the new ones that we support. Thanks
+ to Alex Ott, Karl Fogel, Stefan Monnier, and David Kastrup for
+ suggestions.
+
+2004-11-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Dialog Boxes): Replace non-nil with non-@code{nil}.
+
+2004-11-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Dialog Boxes): Document use-old-gtk-file-dialog.
+
+2004-10-23 Eli Zaretskii <eliz@gnu.org>
+
+ * text.texi (Text Based Tables, Table Definition)
+ (Table Creation, Table Recognition, Cell Commands)
+ (Cell Justification, Row Commands, Column Commands)
+ (Fixed Width Mode, Table Conversion, Measuring Tables)
+ (Table Misc): New nodes, documenting the Table Mode.
+
+2004-10-19 Jason Rumney <jasonr@gnu.org>
+
+ * makefile.w32-in (info): Change order of arguments to makeinfo.
+
+2004-10-19 Ulf Jasper <ulf.jasper@web.de>
+
+ * calendar.texi (iCalendar): Update for package changes.
+
+2004-10-09 Luc Teirlinck <teirllm@auburn.edu>
+
+ * files.texi (Misc File Ops): View mode is a minor mode.
+
+2004-10-08 Glenn Morris <gmorris@ast.cam.ac.uk>
+
+ * calendar.texi (iCalendar): Style changes.
+
+2004-10-07 Luc Teirlinck <teirllm@auburn.edu>
+
+ * search.texi (Regexps): The regexp described in the example is no
+ longer stored in the variable `sentence-end'.
+
+2004-10-06 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (Starting GUD): Note that multiple debugging
+ sessions requires `gdb --fullname'.
+
+2004-10-05 Ulf Jasper <ulf.jasper@web.de>
+
+ * calendar.texi (iCalendar): New section for a new package.
+
+2004-10-05 Luc Teirlinck <teirllm@auburn.edu>
+
+ * text.texi: Various small changes in addition to the following.
+ (Text): Replace xref for autotype with inforef.
+ (Sentences): Explain nil value for `sentence-end'.
+ (Paragraphs): Update default values for `paragraph-start' and
+ `paragraph-separate'.
+ (Text Mode): Correct description of Text mode's effect on the
+ syntax table.
+ (Outline Visibility): `hide-other' does not hide top level headings.
+ `selective-display-ellipses' no longer has an effect on Outline mode.
+ (TeX Misc): Add missing @cindex.
+ Replace xref for RefTeX with inforef.
+ (Requesting Formatted Text): The variable
+ `enriched-fill-after-visiting' no longer exists.
+ (Editing Format Info): Update names of menu items and commands.
+ (Format Faces): Mention special effect of specifying the default face.
+ Describe inheritance of text properties.
+ Correct description of `fixed' face.
+ (Format Indentation): Correct description of effect of setting
+ margins. Mention `set-left-margin' and `set-right-margin'.
+ (Format Justification): Update names of menu items.
+ `set-justification-full' is now bound to `M-j b'.
+ Mention that `default-justification' is a per buffer variable.
+ (Format Properties): Update name of menu item.
+ (Forcing Enriched Mode): `format-decode-buffer' automatically
+ turns on Enriched mode if the buffer is in text/enriched format.
+
+2004-10-05 Emilio C. Lopes <eclig@gmx.net>
+
+ * calendar.texi (From Other Calendar): Add calendar-goto-iso-week.
+
+2004-09-28 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Display Custom) <indicate-buffer-boundaries>:
+ Align with new functionality.
+
+2004-09-22 Luc Teirlinck <teirllm@auburn.edu>
+
+ * display.texi (Display Custom): Remove stray `@end defvar'.
+
+2004-09-23 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Display Custom): Add `overflow-newline-into-fringe',
+ `indicate-buffer-boundaries' and `default-indicate-buffer-boundaries'.
+
+2004-09-20 Richard M. Stallman <rms@gnu.org>
+
+ * custom.texi (Hooks): Explain using setq to clear out a hook.
+ (File Variables): Explain multiline string constants.
+ (Non-ASCII Rebinding): Explain when you need to update
+ non-ASCII char codes in .emacs.
+
+ * building.texi (Compilation): Explain how to make a silent
+ subprocess that won't be terminated. Explain compilation-environment.
+
+2004-09-13 Kim F. Storm <storm@cua.dk>
+
+ * mini.texi (Repetition): Rename isearch-resume-enabled to
+ isearch-resume-in-command-history and change default to disabled.
+
+2004-09-09 Kim F. Storm <storm@cua.dk>
+
+ * kmacro.texi (Save Keyboard Macro): Replace `name-last-kbd-macro'
+ with new `kmacro-name-last-macro'.
+
+2004-09-08 Juri Linkov <juri@jurta.org>
+
+ * mini.texi (Minibuffer History): Add `history-delete-duplicates'.
+
+2004-09-03 Juri Linkov <juri@jurta.org>
+
+ * search.texi (Incremental Search): Update wording for M-%.
+
+2004-09-02 Luc Teirlinck <teirllm@auburn.edu>
+
+ * killing.texi (Killing): Correct description of kill commands in
+ read-only buffer.
+
+2004-09-02 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * building.texi (Compilation Mode): Add a paragraph about rules
+ for finding the compilation buffer for `next-error'.
+
+ * search.texi (Other Repeating Search): Mention that Occur mode
+ supports the next-error functionality.
+
+2004-09-02 Juri Linkov <juri@jurta.org>
+
+ * search.texi (Regexp Replace): Add missing backslash to \footnote.
+
+2004-08-31 Luc Teirlinck <teirllm@auburn.edu>
+
+ * kmacro.texi (Basic Keyboard Macro):
+ `apply-macro-to-region-lines' now operates on all lines that begin
+ in the region, rather than on all complete lines in the region.
+
+2004-08-31 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Drag and drop): Add documentation about
+ x-dnd-test-function and x-dnd-known-types.
+
+2004-08-30 Luc Teirlinck <teirllm@auburn.edu>
+
+ * indent.texi: Various minor changes in addition to:
+ (Indentation Commands): Correct description of `indent-relative'.
+ (Tab Stops): <TAB> is no longer bound to `tab-to-tab-stop' in Text
+ mode. The *Tab Stops* buffer uses Overwrite Mode.
+ (Just Spaces): `tabify' converts sequences of at least two spaces
+ to tabs.
+
+2004-08-27 Luc Teirlinck <teirllm@auburn.edu>
+
+ * frames.texi (Secondary Selection): Setting the secondary
+ selection with M-Drag-Mouse-1 does not alter the kill ring,
+ setting it with M-Mouse-1 and M-Mouse-3 does.
+ (Mode Line Mouse): C-Mouse-2 on scroll bar now also works for
+ toolkit scroll bars.
+ (Scroll Bars): Ditto.
+
+ * windows.texi (Basic Window): When using a window system, the value
+ of point in a non-selected window is indicated by a hollow box.
+ (Split Window): Side by side windows are separated by a scroll bar,
+ if scroll bars are used.
+ C-Mouse-2 on scroll bar now also works for toolkit scroll bars.
+ (Change Window): Correct Mouse-2 vs Mouse-3 mess-up.
+ (Window Convenience): Update bindings for `winner-undo' and
+ `winner-redo'.
+
+ * ack.texi (Acknowledgments): Use `@unnumbered'.
+ * misc.texi : Adapt sectioning in Info to the node structure.
+ (Invoking emacsclient): Make "Invoking emacsclient" a subsection
+ of "Using Emacs as a Server".
+ * building.texi (Building): Interchange nodes (for correct numbering).
+ * programs.texi (Programs): Interchange nodes (for correct numbering).
+ * killing.texi, entering.texi, commands.texi: Adapt sectioning in
+ Info to the node structure.
+ * emacs.texi: Make "GNU GENERAL PUBLIC LICENSE" an appendix.
+ Rearrange order of nodes and sections such that both "GNU GENERAL
+ PUBLIC LICENSE" and "GNU Free Documentation License" appear at the
+ end, as appropriate for appendices.
+ (Acknowledgments): Put inside @iftex instead of @ifnotinfo.
+ Use `@unnumberedsec'.
+ * trouble.texi: Adapt sectioning in Info to the node structure.
+ Adapt node pointers to change in emacs.texi.
+ * cmdargs.texi, doclicense.texi: Adapt node pointers.
+
+2004-08-25 Kenichi Handa <handa@m17n.org>
+
+ * custom.texi (Non-ASCII Rebinding): Fix and simplify the
+ description for unibyte mode.
+
+2004-08-23 Luc Teirlinck <teirllm@auburn.edu>
+
+ * display.texi (Font Lock): Correct invalid (for hardcopy) @xref.
+
+ * search.texi (Regexps): Correct cryptic (in hardcopy) @ref.
+ (Configuring Scrolling): Correct invalid (for hardcopy) @xref.
+ (Regexp Replace): Standardize reference to hardcopy Elisp Manual
+ in @pxref.
+
+2004-08-22 Luc Teirlinck <teirllm@auburn.edu>
+
+ * kmacro.texi (Keyboard Macro Counter, Keyboard Macro Step-Edit):
+ Change section names.
+
+2004-08-21 Luc Teirlinck <teirllm@auburn.edu>
+
+ * kmacro.texi (Keyboard Macro Ring): Rename section.
+ Emacs treats the head of the macro ring as the `last keyboard macro'.
+ (Keyboard Macro Counter): Minor change.
+ (Save Keyboard Macro): Some clarifications.
+ (Edit Keyboard Macro): Rename section.
+
+ * buffers.texi (Buffers): Maximum buffer size is now 256M on
+ 32-bit machines.
+ (Several Buffers): Clarify which buffer is selected if `2' is
+ pressed in the Buffer Menu.
+ Auto Revert mode can be used to update the Buffer Menu
+ automatically.
+
+2004-08-21 Eli Zaretskii <eliz@gnu.org>
+
+ * help.texi (Misc Help): Add an index entry for finding an Info
+ manual by its file name.
+
+2004-08-20 Luc Teirlinck <teirllm@auburn.edu>
+
+ * files.texi (Backup Deletion): Correct description of
+ `delete-old-versions'.
+ (Time Stamps): `time-stamp' needs to be added to `before-save-hook'.
+ (Auto Save Files): Recommend `auto-save-mode' to reenable
+ auto-saving, rather than the abbreviation `auto-save'.
+
+2004-08-17 Luc Teirlinck <teirllm@auburn.edu>
+
+ * emacs.texi (Top): Mention "cutting" and "pasting" as synonyms
+ for "killing" and "yanking" in main menu.
+
+2004-08-16 Richard M. Stallman <rms@gnu.org>
+
+ * killing.texi (Yanking, Killing): Minor cleanups.
+
+ * mark.texi (Momentary Mark): Minor cleanups.
+
+2004-08-15 Kenichi Handa <handa@etl.go.jp>
+
+ * custom.texi (Non-ASCII Rebinding):
+ C-q always inserts the right code to pass to global-set-key.
+
+2004-08-13 Luc Teirlinck <teirllm@auburn.edu>
+
+ * regs.texi (RegNumbers): Mention `C-x r i' binding for
+ `insert-register', instead of `C-x r g' binding, for consistency.
+
+2004-08-12 Luc Teirlinck <teirllm@auburn.edu>
+
+ * fixit.texi (Spelling): Fix typo.
+
+2004-08-11 Luc Teirlinck <teirllm@auburn.edu>
+
+ * help.texi (Help): Fix Texinfo usage.
+
+2004-07-24 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Paragraphs): Update how paragraphs are separated
+ and the default for paragraph-separate.
+
+ * search.texi (Regexp Replace): Further update text for new
+ replacement operators.
+
+2004-07-18 Luc Teirlinck <teirllm@auburn.edu>
+
+ * emacs-xtra.texi (Subdir switches): Dired does not remember the
+ `R' switch.
+
+ * dired.texi (Dired Updating): `k' only deletes inserted
+ subdirectories from the Dired buffer if a prefix argument was given.
+
+ * search.texi (Regexps): Delete redundant definition of `symbol' in
+ description of `\_>'. It already occurs in the description of `\_<'.
+
+2004-07-01 Juri Linkov <juri@jurta.org>
+
+ * search.texi (Incremental Search): Add C-M-w, C-M-y, M-%, C-M-%, M-e.
+ (Regexp Search): Add M-r.
+
+2004-06-30 Luc Teirlinck <teirllm@auburn.edu>
+
+ * makefile.w32-in (EMACSSOURCES): Remove emacs-xtra.
+
+2004-06-29 Jesper Harder <harder@ifa.au.dk>
+
+ * search.texi, calendar.texi: Markup fixes.
+
+2004-06-25 Richard M. Stallman <rms@gnu.org>
+
+ * search.texi (Regexp Replace): Rewrite description of \# \, and \?.
+
+2004-06-25 David Kastrup <dak@gnu.org>
+
+ * search.texi (Regexp Replace): Some typo corrections and
+ rearrangement.
+
+2004-06-24 David Kastrup <dak@gnu.org>
+
+ * search.texi (Unconditional Replace): Use replace-string instead
+ of query-replace in example.
+ (Regexp Replace): Add explanations for `\,', `\#' and `\?'
+ sequences.
+ (Query Replace): Correct explanation of `^' which does not use
+ the mark stack.
+
+2004-06-21 Nick Roberts <nickrob@gnu.org>
+
+ * misc.texi (Shell History Copying): Document comint-insert-input.
+ (Shell Ring): Describe comint-dynamic-list-input-ring here.
+
+2004-06-20 Jesper Harder <harder@ifa.au.dk>
+
+ * msdog.texi (Text and Binary, MS-DOS Printing): Use m-dash.
+ * custom.texi (Customization): Do.
+ * anti.texi (Antinews): Do.
+ * abbrevs.texi (Defining Abbrevs): Do.
+
+ * programs.texi (Info Lookup): Fix keybinding for
+ info-lookup-symbol.
+
+2004-06-16 Juanma Barranquero <lektu@terra.es>
+
+ * makefile.w32-in (INFO_TARGETS, DVI_TARGETS, EMACSSOURCES):
+ Add emacs-xtra.
+ ($(infodir)/emacs-xtra, emacs-xtra.dvi): New dependencies.
+ (clean): Add emacs-xtra and flymake. Remove redundancies.
+
+2004-06-15 Luc Teirlinck <teirllm@auburn.edu>
+
+ * Makefile.in (INFO_TARGETS, DVI_TARGETS, ../info/emacs-xtra):
+ Add emacs-xtra.
+ * emacs-xtra.texi: New file.
+
+2004-06-14 Luc Teirlinck <teirllm@auburn.edu>
+
+ * dired.texi (Dired Enter): Mention conditions on `ls' switches.
+ (Dired and Find): Mention differences with ordinary Dired buffers.
+
+2004-06-13 Richard M. Stallman <rms@gnu.org>
+
+ * custom.texi (Init Syntax): Explain about vars that do special
+ things when set with setq or with Custom.
+ (Init Examples): Add line-number-mode example.
+
+2004-06-12 Juri Linkov <juri@jurta.org>
+
+ * dired.texi (Operating on Files): Add dired-do-touch.
+
+2004-06-10 Juri Linkov <juri@jurta.org>
+
+ * building.texi (Lisp Eval): Add C-M-x on defface.
+
+2004-06-08 Luc Teirlinck <teirllm@auburn.edu>
+
+ * files.texi (Reverting): Auto-Revert mode and
+ Global Auto-Revert mode no longer revert remote files.
+
+2004-05-29 Richard M. Stallman <rms@gnu.org>
+
+ * custom.texi (Init File): Two dashes start --no-site-file.
+
+2004-05-29 Alan Mackenzie <acm@muc.de>
+
+ * programs.texi: Update for CC Mode 5.30 and incidental amendments.
+ ("AWK"): Is consistently thus spelt throughout.
+ (AWK, Pike): Document as "C-like modes".
+ (@kbd{M-j}): Document as alternative to @kbd{C-M-j}.
+ (M-x man): Supersedes M-x manual-entry.
+ Add numerous index entries. Correct "ESC a/e" to "M-a/e".
+
+ ("Comments in C"): Delete node; the info is in CC Mode manual.
+ (c-comment-only-line-offset): Remove description.
+
+ (C-c ., C-c C-c): Describe new C Mode bindings.
+
+ (C-u TAB, indent-code-rigidly, c-indent-exp, c-tab-always-indent)
+ (@dfn{Style}, c-default-style, comment-column, comment-padding)
+ (c-up-conditional, c-beginning-of-statement, c-end-of-statement):
+ Amend definitions.
+
+ (c-beginning-of-defun, c-end-of-defun, c-context-line-break):
+ Describe functions.
+
+ (c-comment-start-regexp, c-hanging-comment-ender-p)
+ (c-hanging-comment-starter-p): Remove obsolete definitions.
+
+ * emacs.texi: Remove the menu entry "Comments in C".
+
+2004-05-27 Luc Teirlinck <teirllm@auburn.edu>
+
+ * dired.texi (Dired and Find): `find-ls-option' does not apply to
+ `M-x locate'.
+
+2004-05-16 Karl Berry <karl@gnu.org>
+
+ * emacs.texi (ack.texi) [@ifnottex]: Change condition; with @ifinfo,
+ makeinfo --html fails.
+ * help.texi (Help Summary) [@ifnottex]: Likewise.
+
+2004-05-13 Nick Roberts <nickrob@gnu.org>
+
+ * building.texi (GDB Graphical Interface): Update and describe
+ layout first.
+
+2004-05-04 Jason Rumney <jasonr@gnu.org>
+
+ * makefile.w32-in: Revert last change.
+
+2004-05-03 Jason Rumney <jasonr@gnu.org>
+
+ * makefile.w32-in (MULTI_INSTALL_INFO, ENVADD): Use forward slashes.
+
+2004-04-23 Juanma Barranquero <lektu@terra.es>
+
+ * makefile.w32-in: Add "-*- makefile -*-" mode tag.
+
+2004-04-18 Juri Linkov <juri@jurta.org>
+
+ * fixit.texi (Spelling): Remove file extension from ispell xref.
+
+2004-04-15 Kim F. Storm <storm@cua.dk>
+
+ * cmdargs.texi (Initial Options): Add -Q.
+
+2004-04-05 Kim F. Storm <storm@cua.dk>
+
+ * custom.texi (File Variables): Add safe-local-eval-forms.
+
+2004-04-02 Luc Teirlinck <teirllm@auburn.edu>
+
+ * files.texi (Reverting): Correct description of revert-buffer's
+ handling of point.
+
+2004-03-22 Juri Linkov <juri@jurta.org>
+
+ * emacs.texi (Top): Add `Misc X'.
+
+ * trouble.texi: Fix help key bindings.
+
+ * glossary.texi: Improve references.
+
+ * help.texi: Sync keywords with finder.el.
+
+ * mini.texi (Completion): Add description for menu items.
+
+ * misc.texi (Browse-URL, FFAP): Add information about keywords.
+
+ * sending.texi (Mail Methods): Fix xref to Message manual.
+
+2004-03-12 Richard M. Stallman <rms@gnu.org>
+
+ * buffers.texi (Misc Buffer): Add index entry for rename-uniquely.
+
+2004-03-04 Richard M. Stallman <rms@gnu.org>
+
+ * search.texi (Regexps): Explain that ^ and $ have their
+ special meanings only in certain contexts.
+
+ * programs.texi (Expressions): Doc C-M-SPC as alias for C-M-@.
+
+ * mule.texi (Specify Coding): Doc C-x RET F.
+
+ * buffers.texi (Misc Buffer): Explain use of M-x rename-uniquely
+ for multiple compile and grep buffers.
+ (Indirect Buffers): Don't recommand clone-indirect-buffer
+ for multiple compile and grep buffers.
+
+2004-02-29 Juanma Barranquero <lektu@terra.es>
+
+ * makefile.w32-in (mostlyclean, clean, maintainer-clean):
+ Use $(DEL) instead of rm, and ignore exit code.
+
+2004-02-23 Nick Roberts <nick@nick.uklinux.net>
+
+ * building.texi (Watch Expressions): Update.
+
+2004-02-21 Juri Linkov <juri@jurta.org>
+
+ * cmdargs.texi (Action Arguments): Add alias --find-file. Add
+ --directory, --help, --version. Move text about command-line-args
+ to Command Arguments.
+ (Initial Options): Add @cindex for --script. Fix @cindex for -q.
+ Add --no-desktop. Add alias --no-multibyte, --no-unibyte.
+ (Window Size X): Join -g and --geometry. Add @cindex.
+ (Borders X): Fix @cindex for -ib. Add @cindex for -bw.
+ (Title X): Remove alias -title.
+ (Misc X): New node.
+
+2004-02-15 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Drag and drop): Add Motif to list of supported
+ protocols.
+
+2004-02-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Drag and drop): New section.
+
+2004-01-24 Richard M. Stallman <rms@gnu.org>
+
+ * emacs.texi (Acknowledgments): Renamed from Acknowledgements.
+ Include it only @ifnotinfo. Patch the preceding and following
+ node headers to point to each other.
+
+2004-01-11 Glenn Morris <gmorris@ast.cam.ac.uk>
+
+ * calendar.texi (Appointments): Update section.
+
+2003-12-29 Kevin Ryde <user42@zip.com.au>
+
+ * programs.texi (C Modes): Fix the xref.
+
+2003-12-23 Nick Roberts <nick@nick.uklinux.net>
+
+ * building.texi (Watch Expressions): Update.
+ (Commands of GUD): Include use of toolbar + breakpoints set from
+ fringe/margin.
+
+2003-12-03 Andre Spiegel <spiegel@gnu.org>
+
+ * files.texi: Say how to disable VC. Suggested by Alan Mackenzie
+ <acm@muc.de>.
+
+2003-11-29 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Dialog Boxes): Add use-file-dialog.
+
+2003-11-22 Martin Stjernholm <bug-cc-mode@gnu.org>
+
+ * ack.texi: Note that Alan Mackenzie contributed the AWK support
+ in CC Mode.
+
+2003-11-02 Jesper Harder <harder@ifa.au.dk> (tiny change)
+
+ * man/ack.texi, man/basic.texi, man/cmdargs.texi:
+ * man/commands.texi, man/custom.texi, man/display.texi:
+ * man/emacs.texi, man/files.texi:
+ * man/frames.texi, man/glossary.texi, man/killing.texi:
+ * man/macos.texi, man/mark.texi, man/misc.texi, man/msdog.texi:
+ * man/mule.texi, man/rmail.texi, man/search.texi:
+ * man/sending.texi, man/text.texi, man/trouble.texi:
+ Replace @sc{ascii} and ASCII with @acronym{ASCII}.
+
+2003-11-01 Alan Mackenzie <acm@muc.de>
+
+ * search.texi (Scrolling During Incremental Search): Document a
+ new scrolling facility in isearch mode.
+
+2003-10-22 Miles Bader <miles@gnu.org>
+
+ * Makefile.in (info): Move before $(top_srcdir)/info.
+
+2003-10-22 Nick Roberts <nick@nick.uklinux.net>
+
+ * building.texi (Watch Expressions): Update section on data display
+ to reflect code changes (GDB Graphical Interface).
+
+2003-10-13 Richard M. Stallman <rms@gnu.org>
+
+ * xresources.texi (GTK resources): Clean up previous change.
+
+2003-10-12 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * xresources.texi (GTK resources): Add a note that some themes
+ disallow customizations. Add scroll theme example.
+
+2003-09-30 Richard M. Stallman <rms@gnu.org>
+
+ * cmdargs.texi (General Variables): Remove MAILRC envvar.
+
+ * misc.texi (Saving Emacs Sessions): Shorten the section,
+ collapsing back into one node.
+
+2003-09-30 Lars Hansen <larsh@math.ku.dk>
+
+ * misc.texi: Section "Saving Emacs Sessions" rewritten.
+
+2003-09-29 Jan Dj\e,Ad\e(Brv. <jan.h.d@swipnet.se>
+
+ * xresources.texi (GTK names in Emacs): Correct typo.
+
+2003-09-24 Luc Teirlinck <teirllm@mail.auburn.edu>
+
+ * cmdargs.texi (Font X): Mention new default font. More
+ fully describe long font names, wildcard patterns and the
+ problems involved. (Result of discussion on emacs-devel.)
+
+2003-09-22 Luc Teirlinck <teirllm@mail.auburn.edu>
+
+ * emacs.texi (Acknowledgements): Correct typo.
+
+2003-09-22 Richard M. Stallman <rms@gnu.org>
+
+ * dired.texi (Misc Dired Commands): New node.
+ (Dired Navigation): Add dired-goto-file.
+
+ * files.texi (File Aliases, Misc File Ops): Add @cindex entries.
+
+ * emacs.texi (Acknowledgements): New node, split from Distribution.
+
+ * cmdargs.texi (Action Arguments): -f reads interactive args.
+
+2003-09-08 Lute Kamstra <lute@gnu.org>
+
+ * screen.texi (Mode Line): Say that POS comes before LINE.
+ Mention `size-indication-mode'.
+ * display.texi (Optional Mode Line): Document
+ `size-indication-mode'.
+ * basic.texi (Position Info): Mention `size-indication-mode'.
+
+2003-09-07 Luc Teirlinck <teirllm@mail.auburn.edu>
+
+ * xresources.texi (Resources): Refer to `editres' man page.
+ (Lucid Resources): Update defaults. Expand description of
+ `shadowThickness'.
+
+2003-09-04 Miles Bader <miles@gnu.org>
+
+ * Makefile.in (top_srcdir): New variable.
+ ($(top_srcdir)/info): New rule.
+ (info): Depend on it.
+
+2003-09-03 Peter Runestig <peter@runestig.com>
+
+ * makefile.w32-in: New file.
+
+2003-08-29 Richard M. Stallman <rms@gnu.org>
+
+ * misc.texi (Saving Emacs Sessions): Correct previous change.
+
+2003-08-19 Luc Teirlinck <teirllm@mail.auburn.edu>
+
+ * emacs.texi (Top): Update menu to reflect new Keyboard Macros chapter.
+ (Intro): Include kmacro.texi after fixit.texi instead of after
+ custom.texi. (As suggested by Kim Storm.)
+
+2003-08-18 Luc Teirlinck <teirllm@mail.auburn.edu>
+
+ * fixit.texi (Fixit): Update `Next' pointer.
+ * files.texi (Files): Update `Previous' pointer.
+ * kmacro.texi (Keyboard Macros): Remove redundant node and section.
+ * emacs.texi (Intro): Include kmacro.texi after custom.texi.
+ (Suggested by Kim Storm.)
+ * Makefile (EMACSSOURCES): Add kmacro.texi. (Suggested by Kim Storm.)
+
+2003-08-18 Kim F. Storm <storm@cua.dk>
+
+ * kmacro.texi: New file describing enhanced keyboard macro
+ functionality. Replaces old description in custom.texi.
+
+ * custom.texi (Customization): Add xref to Keyboard Macros chapter.
+ (Keyboard Macros): Move to new kmacro.texi file.
+
+ * emacs.texi (Keyboard Macros): Reference new keyboard macro topics.
+
+2003-08-17 Edward M. Reingold <reingold@emr.cs.iit.edu>
+
+ * calendar.texi (Specified Dates): Add `calendar-goto-day-of-year'.
+
+2003-08-17 Alex Schroeder <alex@gnu.org>
+
+ * misc.texi (Saving Emacs Sessions): Manual M-x desktop-save not
+ required.
+
+2003-08-05 Richard M. Stallman <rms@gnu.org>
+
+ * programs.texi (Lisp Indent): Don't describe
+ lisp-indent-function property here. Use xref to Lisp Manual.
+
+2003-08-03 Glenn Morris <gmorris@ast.cam.ac.uk>
+
+ * calendar.texi (Date Formats): Document changed behaviour of
+ abbreviations.
+
+2003-07-24 Markus Rost <rost@math.ohio-state.edu>
+
+ * buffers.texi (List Buffers): Fix previous change.
+
+2003-07-13 Markus Rost <rost@math.ohio-state.edu>
+
+ * buffers.texi (List Buffers): Adjust to new format of *Buffer
+ List*.
+
+2003-07-07 Luc Teirlinck <teirllm@mail.auburn.edu>
+
+ * display.texi (Font Lock): Fix typo.
+
+2003-07-07 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Font Lock): Add xref for format info on
+ font-lock-remove-keywords.
+
+ * building.texi (Compilation): Document what happens with asynch
+ children of compiler process.
+
+ * help.texi (Library Keywords): Use @multitable.
+
+2003-06-04 Richard M. Stallman <rms@gnu.org>
+
+ * programs.texi (Expressions): Delete C-M-DEL.
+
+ * misc.texi (Shell Options): Clarify comint-scroll-show-maximum-output.
+ comint-move-point-for-output renamed from
+ comint-scroll-to-bottom-on-output.
+
+ * custom.texi (Init Rebinding): Replace previous change with xref.
+ (Non-ASCII Rebinding): Explain that issue more briefly here.
+
+2003-05-28 Richard M. Stallman <rms@gnu.org>
+
+ * indent.texi (Indentation): Condense, simplify, clarify prev change.
+
+2003-05-28 Nick Roberts <nick@nick.uklinux.net>
+
+ * building.texi (GDB Graphical Interface): New node.
+ (Rewritten somewhat by RMS.)
+
+2003-05-28 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@gmx.net>
+
+ * custom.texi (Init Rebinding): Xref Non-ASCII Rebinding, for
+ non-English letters. Explain how to set coding systems correctly
+ and how to include the right coding cookie in the file.
+
+2003-05-22 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@gmx.net>
+
+ * indent.texi (Indentation): Explain the concepts.
+ (Just Spaces): Explain why preventing tabs for indentation might
+ be useful.
+
+2003-04-16 Richard M. Stallman <rms@gnu.org>
+
+ * search.texi (Regexps): Ref to Lisp manual for more regexp features.
+
+2003-02-22 Alex Schroeder <alex@emacswiki.org>
+
+ * cmdargs.texi (General Variables): Document SMTPSERVER.
+
+ * sending.texi: Remove SMTP node.
+ (Mail Sending): Describe `send-mail-function'. Link to SMTP
+ library.
+
+2003-02-22 Alex Schroeder <alex@emacswiki.org>
+
+ * sending.texi (Sending via SMTP): Explain MTA/MUA.
+
+2003-02-22 Simon Josefsson <jas@extundo.com>
+
+ * sending.texi (Mail Methods): Add node about SMTP.
+
+2003-02-17 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * xresources.texi (GTK names in Emacs): Add emacs-toolbar - GtkToolbar.
+
+2003-02-01 Kevin Ryde <user42@zip.com.au>
+
+ * glossary.texi (Glossary): Correction to cl cross reference.
+
+2003-01-20 Richard M. Stallman <rms@gnu.org>
+
+ * killing.texi (Rectangles): Document C-x c r.
+
+2003-01-19 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * xresources.texi (GTK resources): New node.
+ (GTK widget names): New node.
+ (GTK names in Emacs): New node.
+ (GTK styles): New node.
+
+2003-01-09 Francesco Potort\e,Al\e(B <pot@gnu.org>
+
+ * maintaining.texi (Create Tags Table): Add reference to the new
+ `etags --help --lang=LANG' option.
+
+2002-10-02 Karl Berry <karl@gnu.org>
+
+ * emacs.texi: Per rms, update all manuals to use @copying instead of
+ @ifinfo. Also use @ifnottex instead of @ifinfo around the top node,
+ where needed for the sake of the HTML output.
+
+2001-12-20 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * Makefile.in (EMACSSOURCES): Update the list of Emacs manual
+ source files.
+
+2001-11-16 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * Makefile.in (emacsman): New target.
+
+2001-10-20 Gerd Moellmann <gerd@gnu.org>
+
+ * (Version 21.1 released.)
+
+2001-10-05 Gerd Moellmann <gerd@gnu.org>
+
+ * Branch for 21.1.
+
+2001-03-05 Gerd Moellmann <gerd@gnu.org>
+
+ * Makefile.in (mostlyclean, maintainer-clean): Delete more files.
+
+2000-05-31 Stefan Monnier <monnier@cs.yale.edu>
+
+ * .cvsignore (*.tmp): New entry. Seems to be used for @macro.
+
+1999-07-12 Richard Stallman <rms@gnu.org>
+
+ * Version 20.4 released.
+
+1998-12-04 Markus Rost <rost@delysid.gnu.org>
+
+ * Makefile.in (INFO_TARGETS): Delete customize.info.
+ (DVI_TARGETS): Delete customize.dvi.
+ (../info/customize, customize.dvi): Targets deleted.
+
+1998-08-19 Richard Stallman <rms@psilocin.ai.mit.edu>
+
+ * Version 20.3 released.
+
+1998-05-06 Richard Stallman <rms@psilocin.gnu.org>
+
+ * Makefile.in (EMACSSOURCES): Add mule.texi.
+ Add msdog.texi, ack.texi. Remove gnu1.texi.
+
+1998-04-06 Andreas Schwab <schwab@gnu.org>
+
+ * Makefile.in (ENVADD): Enviroment vars to pass to texi2dvi. Use
+ it in dvi targets.
+
+1997-09-23 Paul Eggert <eggert@twinsun.com>
+
+ * Makefile.in: Merge changes mistakenly made to `Makefile'.
+ (INFO_TARGETS): Change ../info/custom to ../info/customize.
+ (../info/customize): Rename from ../info/custom.
+
+1997-09-19 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
+
+ * Version 20.2 released.
+
+1997-09-15 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
+
+ * Version 20.1 released.
+
+1997-08-24 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
+
+ * Makefile (../info/customize, customize.dvi): New targets.
+ (INFO_TARGETS): Add ../info/customize.
+ (DVI_TARGETS): Add customize.dvi.
+
+1996-08-11 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
+
+ * Version 19.33 released.
+
+1996-07-31 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
+
+ * Version 19.32 released.
+
+1996-06-20 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
+
+ * Makefile.in (All info targets): cd $(srcdir) to do the work.
+
+1996-06-19 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
+
+ * Makefile.in (All info targets): Specify $(srcdir) in input files.
+ Specify -I option.
+ (All dvi targets): Set the TEXINPUTS variable.
+
+1996-05-25 Karl Heuer <kwzh@gnu.ai.mit.edu>
+
+ * Version 19.31 released.
+
+1995-11-24 Richard Stallman <rms@mole.gnu.ai.mit.edu>
+
+ * Version 19.30 released.
+
+1995-02-07 Richard Stallman <rms@pogo.gnu.ai.mit.edu>
+
+ * Makefile.in (maintainer-clean): Rename from realclean.
+
+1994-11-23 Richard Stallman <rms@mole.gnu.ai.mit.edu>
+
+ * Makefile.in: New file.
+ * Makefile: File deleted.
+
+1994-11-19 Richard Stallman <rms@mole.gnu.ai.mit.edu>
+
+ * Makefile (TEXINDEX_OBJS): Variable deleted.
+ (texindex, texindex.o, getopt.o): Rules deleted.
+ All deps on texindex deleted.
+ (distclean): Don't delete texindex.
+ (mostlyclean): Don't delete *.o.
+ * texindex.c, getopt.c: Files deleted.
+
+1994-09-07 Richard Stallman <rms@mole.gnu.ai.mit.edu>
+
+ * Version 19.26 released.
+
+1994-07-02 Richard Stallman (rms@gnu.ai.mit.edu)
+
+ * Makefile (EMACSSOURCES): Exclude undo.texi.
+
+1994-05-30 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Version 19.25 released.
+
+1994-05-23 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Version 19.24 released.
+
+1994-05-16 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Version 19.23 released.
+
+1994-04-17 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Makefile: Delete spurious tab.
+
+1994-02-16 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Makefile (.SUFFIXES): New rule.
+
+1993-12-04 Richard Stallman (rms@srarc2)
+
+ * getopt.c: New file.
+ * Makefile (TEXINDEX_OBJS): Use getopt.o in this dir, not ../lib-src.
+ (getopt.o): New rule.
+ (dvi): Don't depend on texindex.
+ (emacs.dvi): Depend on texindex.
+
+1993-12-03 Richard Stallman (rms@srarc2)
+
+ * Makefile (TEXI2DVI): New variable.
+ (emacs.dvi): Add explicit command.
+ (TEXINDEX_OBJS): Delete duplicate getopt.o.
+
+1993-11-27 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Version 19.22 released.
+
+1993-11-18 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Makefile (TEXINDEX_OBJS): Delete spurious period.
+
+1993-11-16 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Version 19.21 released.
+
+1993-11-14 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Makefile (realclean): Don't delete the Info files.
+
+1993-10-25 Brian Fox (bfox@albert.gnu.ai.mit.edu)
+
+ * frames.texi (Creating Frames): Mention `C-x 5' instead of `C-x
+ 4' where appropriate.
+
+1993-10-20 Brian Fox (bfox@ai.mit.edu)
+
+ * Makefile: Fix targets for texindex.
+
+ * texindex.c: Include "../src/config.h" if building in emacs.
+
+ * Makefile: Change all files to FILENAME.texi, force all targets
+ to be FILENAME, not FILENAME.info.
+ Add target to build texindex.c, defining `emacs'.
+
+1993-08-14 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Version 19.19 released.
+
+1993-08-08 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Version 19.18 released.
+
+1993-07-20 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Makefile: Fix source file names of the separate manuals.
+
+1993-07-18 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Version 19.17 released.
+
+1993-07-10 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * split-man: Fix typos in last change.
+
+1993-07-06 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
+
+ * Version 19.16 released.
+
+1993-06-19 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
+
+ * version 19.15 released.
+
+1993-06-18 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
+
+ * Makefile (distclean): It's rm, not rf.
+
+1993-06-17 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
+
+ * Version 19.14 released.
+
+1993-06-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
+
+ * Makefile: New file.
+
+1993-06-08 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
+
+ * Version 19.13 released.
+
+1993-05-27 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
+
+ * Version 19.9 released.
+
+1993-05-25 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
+
+ * Version 19.8 released.
+
+1993-05-25 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
+
+ * cmdargs.texi: Document the -i, -itype, and -iconic options.
+
+ * trouble.texi: It's `enable-flow-control-on', not
+ `evade-flow-control-on'.
+
+1993-05-24 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
+
+ * display.texi: Document standard-display-european.
+
+1993-05-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
+
+ * Version 19.7 released.
+
+ * emacs.texi: Add a sentence to the top menu mentioning the
+ specific version of Emacs this manual applies to.
+
+1993-04-25 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
+
+ * basic.texi: Document next-line-add-lines variable used to
+ implement down-arrow.
+
+ * killing.texi: Document kill-whole-line.
+
+1993-04-18 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * text.texi: Update unix TeX ordering information.
+
+1993-03-26 Eric S. Raymond (eric@geech.gnu.ai.mit.edu)
+
+ * news.texi: Mention fill-rectangle in keybinding list.
+
+ * killing.texi: Document fill-rectangle.
+
+1993-03-17 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
+
+ * vc.texi: Bring the docs up to date with VC 5.2.
+
+1992-01-10 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
+
+ * emacs.tex: Mention blackbox and gomoku under Amusements.
+ Assembler mode is now mentioned and appropriately indexed
+ under Programming Modes.
+
+1991-02-15 Robert J. Chassell (bob@wookumz.ai.mit.edu)
+
+ * emacs.tex: Update TeX ordering information.
+
+1990-06-26 David Lawrence (tale@geech)
+
+ * emacs.tex: Note that completion-ignored-extensions is not used
+ to filter out names when all completions are displayed in
+ *Completions*.
+
+1990-05-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
+
+ * texindex.tex: If USG, include sys/types.h and sys/fcntl.h.
+
+1990-03-21 Jim Kingdon (kingdon@pogo.ai.mit.edu)
+
+ * emacs.tex: Add @findex grep.
+
+1988-08-16 Robert J. Chassell (bob@frosted-flakes.ai.mit.edu)
+
+ * emacs.tex: Correct two typos. No other changes before
+ Version 19 will be made.
+
+1988-05-23 Robert J. Chassell (bob@frosted-flakes.ai.mit.edu)
+
+ * emacs.tex: Update information for obtaining TeX distribution from the
+ University of Washington.
+
+;; Local Variables:
+;; coding: iso-2022-7bit
+;; fill-column: 79
+;; add-log-time-zone-rule: t
+;; End:
+
+ Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
+ 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+
+ This file is part of GNU Emacs.
+
+ GNU Emacs is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ GNU Emacs is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Emacs; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+;;; arch-tag: f1d62776-3ed5-4811-9d96-267252577dbd
--- /dev/null
- Emacs saves all the visited files from time to time (based on counting
- your keystrokes) without being asked. This is called @dfn{auto-saving}.
- It prevents you from losing more than a limited amount of work if the
- system crashes.
+@c This is part of the Emacs manual.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
+@c 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+@c See file emacs.texi for copying conditions.
+@node Files, Buffers, Keyboard Macros, Top
+@chapter File Handling
+@cindex files
+
+ The operating system stores data permanently in named @dfn{files}, so
+most of the text you edit with Emacs comes from a file and is ultimately
+stored in a file.
+
+ To edit a file, you must tell Emacs to read the file and prepare a
+buffer containing a copy of the file's text. This is called
+@dfn{visiting} the file. Editing commands apply directly to text in the
+buffer; that is, to the copy inside Emacs. Your changes appear in the
+file itself only when you @dfn{save} the buffer back into the file.
+
+ In addition to visiting and saving files, Emacs can delete, copy,
+rename, and append to files, keep multiple versions of them, and operate
+on file directories.
+
+@menu
+* File Names:: How to type and edit file-name arguments.
+* Visiting:: Visiting a file prepares Emacs to edit the file.
+* Saving:: Saving makes your changes permanent.
+* Reverting:: Reverting cancels all the changes not saved.
+@ifnottex
+* Autorevert:: Auto Reverting non-file buffers.
+@end ifnottex
+* Auto Save:: Auto Save periodically protects against loss of data.
+* File Aliases:: Handling multiple names for one file.
+* Version Control:: Version control systems (RCS, CVS and SCCS).
+* Directories:: Creating, deleting, and listing file directories.
+* Comparing Files:: Finding where two files differ.
+* Diff Mode:: Mode for editing file differences.
+* Misc File Ops:: Other things you can do on files.
+* Compressed Files:: Accessing compressed files.
+* File Archives:: Operating on tar, zip, jar etc. archive files.
+* Remote Files:: Accessing files on other sites.
+* Quoted File Names:: Quoting special characters in file names.
+* File Name Cache:: Completion against a list of files you often use.
+* File Conveniences:: Convenience Features for Finding Files.
+* Filesets:: Handling sets of files.
+@end menu
+
+@node File Names
+@section File Names
+@cindex file names
+
+ Most Emacs commands that operate on a file require you to specify the
+file name. (Saving and reverting are exceptions; the buffer knows which
+file name to use for them.) You enter the file name using the
+minibuffer (@pxref{Minibuffer}). @dfn{Completion} is available
+(@pxref{Completion}) to make it easier to specify long file names. When
+completing file names, Emacs ignores those whose file-name extensions
+appear in the variable @code{completion-ignored-extensions}; see
+@ref{Completion Options}.
+
+ For most operations, there is a @dfn{default file name} which is used
+if you type just @key{RET} to enter an empty argument. Normally the
+default file name is the name of the file visited in the current buffer;
+this makes it easy to operate on that file with any of the Emacs file
+commands.
+
+@vindex default-directory
+ Each buffer has a default directory which is normally the same as the
+directory of the file visited in that buffer. When you enter a file
+name without a directory, the default directory is used. If you specify
+a directory in a relative fashion, with a name that does not start with
+a slash, it is interpreted with respect to the default directory. The
+default directory is kept in the variable @code{default-directory},
+which has a separate value in every buffer.
+
+@findex cd
+@findex pwd
+ The command @kbd{M-x pwd} displays the current buffer's default
+directory, and the command @kbd{M-x cd} sets it (to a value read using
+the minibuffer). A buffer's default directory changes only when the
+@code{cd} command is used. A file-visiting buffer's default directory
+is initialized to the directory of the file it visits. If you create
+a buffer with @kbd{C-x b}, its default directory is copied from that
+of the buffer that was current at the time.
+
+ For example, if the default file name is @file{/u/rms/gnu/gnu.tasks}
+then the default directory is normally @file{/u/rms/gnu/}. If you
+type just @samp{foo}, which does not specify a directory, it is short
+for @file{/u/rms/gnu/foo}. @samp{../.login} would stand for
+@file{/u/rms/.login}. @samp{new/foo} would stand for the file name
+@file{/u/rms/gnu/new/foo}.
+
+@vindex insert-default-directory
+ The default directory actually appears in the minibuffer when the
+minibuffer becomes active to read a file name. This serves two
+purposes: it @emph{shows} you what the default is, so that you can type
+a relative file name and know with certainty what it will mean, and it
+allows you to @emph{edit} the default to specify a different directory.
+This insertion of the default directory is inhibited if the variable
+@code{insert-default-directory} is set to @code{nil}.
+
+ Note that it is legitimate to type an absolute file name after you
+enter the minibuffer, ignoring the presence of the default directory
+name as part of the text. The final minibuffer contents may look
+invalid, but that is not so. For example, if the minibuffer starts out
+with @samp{/usr/tmp/} and you add @samp{/x1/rms/foo}, you get
+@samp{/usr/tmp//x1/rms/foo}; but Emacs ignores everything through the
+first slash in the double slash; the result is @samp{/x1/rms/foo}.
+@xref{Minibuffer File}.
+
+@cindex home directory shorthand
+ You can use @file{~/} in a file name to mean your home directory,
+or @file{~@var{user-id}/} to mean the home directory of a user whose
+login name is @code{user-id}@footnote{
+On MS-Windows and MS-DOS systems, where a user doesn't have a home
+directory, Emacs replaces @file{~/} with the value of the
+environment variable @code{HOME}; see @ref{General Variables}. On
+these systems, the @file{~@var{user-id}/} construct is supported only
+for the current user, i.e., only if @var{user-id} is the current
+user's login name.}.
+
+@cindex environment variables in file names
+@cindex expansion of environment variables
+@cindex @code{$} in file names
+ @anchor{File Names with $}@samp{$} in a file name is used to
+substitute an environment variable. The environment variable name
+consists of all the alphanumeric characters after the @samp{$};
+alternatively, it can be enclosed in braces after the @samp{$}. For
+example, if you have used the shell command @command{export
+FOO=rms/hacks} to set up an environment variable named @env{FOO}, then
+you can use @file{/u/$FOO/test.c} or @file{/u/$@{FOO@}/test.c} as an
+abbreviation for @file{/u/rms/hacks/test.c}. If the environment
+variable is not defined, no substitution occurs: @file{/u/$notdefined}
+stands for itself (assuming the environment variable @env{notdefined}
+is not defined).
+
+ Note that shell commands to set environment variables affect Emacs
+only when done before Emacs is started.
+
+ To access a file with @samp{$} in its name, if the @samp{$} causes
+expansion, type @samp{$$}. This pair is converted to a single
+@samp{$} at the same time as variable substitution is performed for a
+single @samp{$}. Alternatively, quote the whole file name with
+@samp{/:} (@pxref{Quoted File Names}). File names which begin with a
+literal @samp{~} should also be quoted with @samp{/:}.
+
+@findex substitute-in-file-name
+ The Lisp function that performs the @samp{$}-substitution is called
+@code{substitute-in-file-name}. The substitution is performed only on
+file names read as such using the minibuffer.
+
+ You can include non-@acronym{ASCII} characters in file names if you set the
+variable @code{file-name-coding-system} to a non-@code{nil} value.
+@xref{File Name Coding}.
+
+@node Visiting
+@section Visiting Files
+@cindex visiting files
+@cindex open file
+
+@table @kbd
+@item C-x C-f
+Visit a file (@code{find-file}).
+@item C-x C-r
+Visit a file for viewing, without allowing changes to it
+(@code{find-file-read-only}).
+@item C-x C-v
+Visit a different file instead of the one visited last
+(@code{find-alternate-file}).
+@item C-x 4 f
+Visit a file, in another window (@code{find-file-other-window}). Don't
+alter what is displayed in the selected window.
+@item C-x 5 f
+Visit a file, in a new frame (@code{find-file-other-frame}). Don't
+alter what is displayed in the selected frame.
+@item M-x find-file-literally
+Visit a file with no conversion of the contents.
+@end table
+
+@cindex files, visiting and saving
+@cindex saving files
+ @dfn{Visiting} a file means reading its contents into an Emacs
+buffer so you can edit them. Emacs makes a new buffer for each file
+that you visit. We often say that this buffer ``is visiting'' that
+file, or that the buffer's ``visited file'' is that file. Emacs
+constructs the buffer name from the file name by throwing away the
+directory, keeping just the name proper. For example, a file named
+@file{/usr/rms/emacs.tex} would get a buffer named @samp{emacs.tex}.
+If there is already a buffer with that name, Emacs constructs a unique
+name---the normal method is to append @samp{<2>}, @samp{<3>}, and so
+on, but you can select other methods (@pxref{Uniquify}).
+
+ Each window's mode line shows the name of the buffer that is being displayed
+in that window, so you can always tell what buffer you are editing.
+
+ The changes you make with editing commands are made in the Emacs
+buffer. They do not take effect in the file that you visited, or any
+permanent place, until you @dfn{save} the buffer. Saving the buffer
+means that Emacs writes the current contents of the buffer into its
+visited file. @xref{Saving}.
+
+@cindex modified (buffer)
+ If a buffer contains changes that have not been saved, we say the
+buffer is @dfn{modified}. This is important because it implies that
+some changes will be lost if the buffer is not saved. The mode line
+displays two stars near the left margin to indicate that the buffer is
+modified.
+
+@kindex C-x C-f
+@findex find-file
+ To visit a file, use the command @kbd{C-x C-f} (@code{find-file}). Follow
+the command with the name of the file you wish to visit, terminated by a
+@key{RET}.
+
+ The file name is read using the minibuffer (@pxref{Minibuffer}), with
+defaulting and completion in the standard manner (@pxref{File Names}).
+While in the minibuffer, you can abort @kbd{C-x C-f} by typing
+@kbd{C-g}. File-name completion ignores certain file names; for more
+about this, see @ref{Completion Options}.
+
+ Your confirmation that @kbd{C-x C-f} has completed successfully is
+the appearance of new text on the screen and a new buffer name in the
+mode line. If the specified file does not exist and you could not
+create it, or exists but you can't read it, then you get an error,
+with an error message displayed in the echo area.
+
+ If you visit a file that is already in Emacs, @kbd{C-x C-f} does not make
+another copy. It selects the existing buffer containing that file.
+However, before doing so, it checks whether the file itself has changed
+since you visited or saved it last. If the file has changed, Emacs offers
+to reread it.
+
+@vindex large-file-warning-threshold
+@cindex maximum buffer size exceeded, error message
+ If you try to visit a file larger than
+@code{large-file-warning-threshold} (the default is 10000000, which is
+about 10 megabytes), Emacs will ask you for confirmation first. You
+can answer @kbd{y} to proceed with visiting the file. Note, however,
+that Emacs cannot visit files that are larger than the maximum Emacs
+buffer size, which is around 256 megabytes on 32-bit machines
+(@pxref{Buffers}). If you try, Emacs will display an error message
+saying that the maximum buffer size has been exceeded.
+
+@cindex file selection dialog
+ On graphical displays there are two additional methods for
+visiting files. Firstly, when Emacs is built with a suitable GUI
+toolkit, commands invoked with the mouse (by clicking on the menu bar
+or tool bar) use the toolkit's standard File Selection dialog instead
+of prompting for the file name in the minibuffer. On Unix and
+GNU/Linux platforms, Emacs does that when built with GTK, LessTif, and
+Motif toolkits; on MS-Windows and Mac, the GUI version does that by default.
+For information on how to customize this, see @ref{Dialog Boxes}.
+
+ Secondly, Emacs supports ``drag and drop''; dropping a file into an
+ordinary Emacs window visits the file using that window. However,
+dropping a file into a window displaying a Dired buffer moves or
+copies the file into the displayed directory. For details, see
+@ref{Drag and Drop}, and @ref{Misc Dired Features}.
+
+@cindex creating files
+ What if you want to create a new file? Just visit it. Emacs displays
+@samp{(New file)} in the echo area, but in other respects behaves as if
+you had visited an existing empty file. If you make any changes and
+save them, the file is created.
+
+ Emacs recognizes from the contents of a file which end-of-line
+convention it uses to separate lines---newline (used on GNU/Linux and
+on Unix), carriage-return linefeed (used on Microsoft systems), or
+just carriage-return (used on the Macintosh)---and automatically
+converts the contents to the normal Emacs convention, which is that
+the newline character separates lines. This is a part of the general
+feature of coding system conversion (@pxref{Coding Systems}), and
+makes it possible to edit files imported from different operating
+systems with equal convenience. If you change the text and save the
+file, Emacs performs the inverse conversion, changing newlines back
+into carriage-return linefeed or just carriage-return if appropriate.
+
+@vindex find-file-run-dired
+ If the file you specify is actually a directory, @kbd{C-x C-f} invokes
+Dired, the Emacs directory browser, so that you can ``edit'' the contents
+of the directory (@pxref{Dired}). Dired is a convenient way to view, delete,
+or operate on the files in the directory. However, if the variable
+@code{find-file-run-dired} is @code{nil}, then it is an error to try
+to visit a directory.
+
+ Files which are actually collections of other files, or @dfn{file
+archives}, are visited in special modes which invoke a Dired-like
+environment to allow operations on archive members. @xref{File
+Archives}, for more about these features.
+
+@cindex wildcard characters in file names
+@vindex find-file-wildcards
+ If the file name you specify contains shell-style wildcard
+characters, Emacs visits all the files that match it. (On
+case-insensitive filesystems, Emacs matches the wildcards disregarding
+the letter case.) Wildcards include @samp{?}, @samp{*}, and
+@samp{[@dots{}]} sequences. To enter the wild card @samp{?} in a file
+name in the minibuffer, you need to type @kbd{C-q ?}. @xref{Quoted
+File Names}, for information on how to visit a file whose name
+actually contains wildcard characters. You can disable the wildcard
+feature by customizing @code{find-file-wildcards}.
+
+ If you visit a file that the operating system won't let you modify,
+or that is marked read-only, Emacs makes the buffer read-only too, so
+that you won't go ahead and make changes that you'll have trouble
+saving afterward. You can make the buffer writable with @kbd{C-x C-q}
+(@code{toggle-read-only}). @xref{Misc Buffer}.
+
+@kindex C-x C-r
+@findex find-file-read-only
+ If you want to visit a file as read-only in order to protect
+yourself from entering changes accidentally, visit it with the command
+@kbd{C-x C-r} (@code{find-file-read-only}) instead of @kbd{C-x C-f}.
+
+@kindex C-x C-v
+@findex find-alternate-file
+ If you visit a nonexistent file unintentionally (because you typed the
+wrong file name), use the @kbd{C-x C-v} command
+(@code{find-alternate-file}) to visit the file you really wanted.
+@kbd{C-x C-v} is similar to @kbd{C-x C-f}, but it kills the current
+buffer (after first offering to save it if it is modified). When
+@kbd{C-x C-v} reads the file name to visit, it inserts the entire
+default file name in the buffer, with point just after the directory
+part; this is convenient if you made a slight error in typing the name.
+
+@kindex C-x 4 f
+@findex find-file-other-window
+ @kbd{C-x 4 f} (@code{find-file-other-window}) is like @kbd{C-x C-f}
+except that the buffer containing the specified file is selected in another
+window. The window that was selected before @kbd{C-x 4 f} continues to
+show the same buffer it was already showing. If this command is used when
+only one window is being displayed, that window is split in two, with one
+window showing the same buffer as before, and the other one showing the
+newly requested file. @xref{Windows}.
+
+@kindex C-x 5 f
+@findex find-file-other-frame
+ @kbd{C-x 5 f} (@code{find-file-other-frame}) is similar, but opens a
+new frame, or makes visible any existing frame showing the file you
+seek. This feature is available only when you are using a window
+system. @xref{Frames}.
+
+@findex find-file-literally
+ If you wish to edit a file as a sequence of @acronym{ASCII} characters with no special
+encoding or conversion, use the @kbd{M-x find-file-literally} command.
+It visits a file, like @kbd{C-x C-f}, but does not do format conversion
+(@pxref{Formatted Text}), character code conversion (@pxref{Coding
+Systems}), or automatic uncompression (@pxref{Compressed Files}), and
+does not add a final newline because of @code{require-final-newline}.
+If you already have visited the same file in the usual (non-literal)
+manner, this command asks you whether to visit it literally instead.
+
+@vindex find-file-hook
+@vindex find-file-not-found-functions
+ Two special hook variables allow extensions to modify the operation of
+visiting files. Visiting a file that does not exist runs the functions
+in the list @code{find-file-not-found-functions}; this variable holds a list
+of functions, and the functions are called one by one (with no
+arguments) until one of them returns non-@code{nil}. This is not a
+normal hook, and the name ends in @samp{-functions} rather than @samp{-hook}
+to indicate that fact.
+
+ Successful visiting of any file, whether existing or not, calls the
+functions in the list @code{find-file-hook}, with no arguments.
+This variable is a normal hook. In the case of a nonexistent file, the
+@code{find-file-not-found-functions} are run first. @xref{Hooks}.
+
+ There are several ways to specify automatically the major mode for
+editing the file (@pxref{Choosing Modes}), and to specify local
+variables defined for that file (@pxref{File Variables}).
+
+@node Saving
+@section Saving Files
+
+ @dfn{Saving} a buffer in Emacs means writing its contents back into the file
+that was visited in the buffer.
+
+@menu
+* Save Commands:: Commands for saving files.
+* Backup:: How Emacs saves the old version of your file.
+* Customize Save:: Customizing the saving of files.
+* Interlocking:: How Emacs protects against simultaneous editing
+ of one file by two users.
+* Shadowing: File Shadowing. Copying files to "shadows" automatically.
+* Time Stamps:: Emacs can update time stamps on saved files.
+@end menu
+
+@node Save Commands
+@subsection Commands for Saving Files
+
+ These are the commands that relate to saving and writing files.
+
+@table @kbd
+@item C-x C-s
+Save the current buffer in its visited file on disk (@code{save-buffer}).
+@item C-x s
+Save any or all buffers in their visited files (@code{save-some-buffers}).
+@item M-~
+Forget that the current buffer has been changed (@code{not-modified}).
+With prefix argument (@kbd{C-u}), mark the current buffer as changed.
+@item C-x C-w
+Save the current buffer with a specified file name (@code{write-file}).
+@item M-x set-visited-file-name
+Change the file name under which the current buffer will be saved.
+@end table
+
+@kindex C-x C-s
+@findex save-buffer
+ When you wish to save the file and make your changes permanent, type
+@kbd{C-x C-s} (@code{save-buffer}). After saving is finished, @kbd{C-x C-s}
+displays a message like this:
+
+@example
+Wrote /u/rms/gnu/gnu.tasks
+@end example
+
+@noindent
+If the selected buffer is not modified (no changes have been made in it
+since the buffer was created or last saved), saving is not really done,
+because it would have no effect. Instead, @kbd{C-x C-s} displays a message
+like this in the echo area:
+
+@example
+(No changes need to be saved)
+@end example
+
+@kindex C-x s
+@findex save-some-buffers
+ The command @kbd{C-x s} (@code{save-some-buffers}) offers to save any
+or all modified buffers. It asks you what to do with each buffer. The
+possible responses are analogous to those of @code{query-replace}:
+
+@table @kbd
+@item y
+Save this buffer and ask about the rest of the buffers.
+@item n
+Don't save this buffer, but ask about the rest of the buffers.
+@item !
+Save this buffer and all the rest with no more questions.
+@c following generates acceptable underfull hbox
+@item @key{RET}
+Terminate @code{save-some-buffers} without any more saving.
+@item .
+Save this buffer, then exit @code{save-some-buffers} without even asking
+about other buffers.
+@item C-r
+View the buffer that you are currently being asked about. When you exit
+View mode, you get back to @code{save-some-buffers}, which asks the
+question again.
+@item d
+Diff the buffer against its corresponding file, so you can see
+what changes you would be saving.
+@item C-h
+Display a help message about these options.
+@end table
+
+ @kbd{C-x C-c}, the key sequence to exit Emacs, invokes
+@code{save-some-buffers} and therefore asks the same questions.
+
+@kindex M-~
+@findex not-modified
+ If you have changed a buffer but you do not want to save the changes,
+you should take some action to prevent it. Otherwise, each time you use
+@kbd{C-x s} or @kbd{C-x C-c}, you are liable to save this buffer by
+mistake. One thing you can do is type @kbd{M-~} (@code{not-modified}),
+which clears out the indication that the buffer is modified. If you do
+this, none of the save commands will believe that the buffer needs to be
+saved. (@samp{~} is often used as a mathematical symbol for `not'; thus
+@kbd{M-~} is `not', metafied.) You could also use
+@code{set-visited-file-name} (see below) to mark the buffer as visiting
+a different file name, one which is not in use for anything important.
+Alternatively, you can cancel all the changes made since the file was
+visited or saved, by reading the text from the file again. This is
+called @dfn{reverting}. @xref{Reverting}. (You could also undo all the
+changes by repeating the undo command @kbd{C-x u} until you have undone
+all the changes; but reverting is easier.) You can also kill the buffer.
+
+@findex set-visited-file-name
+ @kbd{M-x set-visited-file-name} alters the name of the file that the
+current buffer is visiting. It reads the new file name using the
+minibuffer. Then it marks the buffer as visiting that file name, and
+changes the buffer name correspondingly. @code{set-visited-file-name}
+does not save the buffer in the newly visited file; it just alters the
+records inside Emacs in case you do save later. It also marks the
+buffer as ``modified'' so that @kbd{C-x C-s} in that buffer
+@emph{will} save.
+
+@kindex C-x C-w
+@findex write-file
+ If you wish to mark the buffer as visiting a different file and save it
+right away, use @kbd{C-x C-w} (@code{write-file}). It is
+equivalent to @code{set-visited-file-name} followed by @kbd{C-x C-s}
+(except that @kbd{C-x C-w} asks for confirmation if the file exists).
+@kbd{C-x C-s} used on a buffer that is not visiting a file has the
+same effect as @kbd{C-x C-w}; that is, it reads a file name, marks the
+buffer as visiting that file, and saves it there. The default file name in
+a buffer that is not visiting a file is made by combining the buffer name
+with the buffer's default directory (@pxref{File Names}).
+
+ If the new file name implies a major mode, then @kbd{C-x C-w} switches
+to that major mode, in most cases. The command
+@code{set-visited-file-name} also does this. @xref{Choosing Modes}.
+
+ If Emacs is about to save a file and sees that the date of the latest
+version on disk does not match what Emacs last read or wrote, Emacs
+notifies you of this fact, because it probably indicates a problem caused
+by simultaneous editing and requires your immediate attention.
+@xref{Interlocking,, Simultaneous Editing}.
+
+@node Backup
+@subsection Backup Files
+@cindex backup file
+@vindex make-backup-files
+@vindex vc-make-backup-files
+
+ On most operating systems, rewriting a file automatically destroys all
+record of what the file used to contain. Thus, saving a file from Emacs
+throws away the old contents of the file---or it would, except that
+Emacs carefully copies the old contents to another file, called the
+@dfn{backup} file, before actually saving.
+
+ For most files, the variable @code{make-backup-files} determines
+whether to make backup files. On most operating systems, its default
+value is @code{t}, so that Emacs does write backup files.
+
+ For files managed by a version control system (@pxref{Version
+Control}), the variable @code{vc-make-backup-files} determines whether
+to make backup files. By default it is @code{nil}, since backup files
+are redundant when you store all the previous versions in a version
+control system.
+@iftex
+@xref{General VC Options,,,emacs-xtra, Specialized Emacs Features}.
+@end iftex
+@ifnottex
+@xref{General VC Options}.
+@end ifnottex
+
+
+ At your option, Emacs can keep either a single backup for each file,
+or make a series of numbered backup files for each file that you edit.
+
+@vindex backup-enable-predicate
+@vindex temporary-file-directory
+@vindex small-temporary-file-directory
+ The default value of the @code{backup-enable-predicate} variable
+prevents backup files being written for files in the directories used
+for temporary files, specified by @code{temporary-file-directory} or
+@code{small-temporary-file-directory}.
+
+ Emacs makes a backup for a file only the first time the file is saved
+from one buffer. No matter how many times you save a file, its backup file
+continues to contain the contents from before the file was visited.
+Normally this means that the backup file contains the contents from before
+the current editing session; however, if you kill the buffer and then visit
+the file again, a new backup file will be made by the next save.
+
+ You can also explicitly request making another backup file from a
+buffer even though it has already been saved at least once. If you save
+the buffer with @kbd{C-u C-x C-s}, the version thus saved will be made
+into a backup file if you save the buffer again. @kbd{C-u C-u C-x C-s}
+saves the buffer, but first makes the previous file contents into a new
+backup file. @kbd{C-u C-u C-u C-x C-s} does both things: it makes a
+backup from the previous contents, and arranges to make another from the
+newly saved contents if you save again.
+
+@menu
+* One or Many: Numbered Backups. Whether to make one backup file or many.
+* Names: Backup Names. How backup files are named.
+* Deletion: Backup Deletion. Emacs deletes excess numbered backups.
+* Copying: Backup Copying. Backups can be made by copying or renaming.
+@end menu
+
+@node Numbered Backups
+@subsubsection Numbered Backups
+
+@vindex version-control
+ The choice of single backup file or multiple numbered backup files
+is controlled by the variable @code{version-control}. Its possible
+values are:
+
+@table @code
+@item t
+Make numbered backups.
+@item nil
+Make numbered backups for files that have numbered backups already.
+Otherwise, make single backups.
+@item never
+Never make numbered backups; always make single backups.
+@end table
+
+@noindent
+The usual way to set this variable is globally, through your
+@file{.emacs} file or the customization buffer. However, you can set
+@code{version-control} locally in an individual buffer to control the
+making of backups for that buffer's file. For example, Rmail mode
+locally sets @code{version-control} to @code{never} to make sure that
+there is only one backup for an Rmail file. @xref{Locals}.
+
+@cindex @env{VERSION_CONTROL} environment variable
+ If you set the environment variable @env{VERSION_CONTROL}, to tell
+various GNU utilities what to do with backup files, Emacs also obeys the
+environment variable by setting the Lisp variable @code{version-control}
+accordingly at startup. If the environment variable's value is @samp{t}
+or @samp{numbered}, then @code{version-control} becomes @code{t}; if the
+value is @samp{nil} or @samp{existing}, then @code{version-control}
+becomes @code{nil}; if it is @samp{never} or @samp{simple}, then
+@code{version-control} becomes @code{never}.
+
+@node Backup Names
+@subsubsection Single or Numbered Backups
+
+ When Emacs makes a single backup file, its name is normally
+constructed by appending @samp{~} to the file name being edited; thus,
+the backup file for @file{eval.c} would be @file{eval.c~}.
+
+@vindex make-backup-file-name-function
+@vindex backup-directory-alist
+ You can change this behavior by defining the variable
+@code{make-backup-file-name-function} to a suitable function.
+Alternatively you can customize the variable
+@code{backup-directory-alist} to specify that files matching certain
+patterns should be backed up in specific directories.
+
+ A typical use is to add an element @code{("." . @var{dir})} to make
+all backups in the directory with absolute name @var{dir}; Emacs
+modifies the backup file names to avoid clashes between files with the
+same names originating in different directories. Alternatively,
+adding, say, @code{("." . ".~")} would make backups in the invisible
+subdirectory @file{.~} of the original file's directory. Emacs
+creates the directory, if necessary, to make the backup.
+
+ If access control stops Emacs from writing backup files under the usual
+names, it writes the backup file as @file{%backup%~} in your home
+directory. Only one such file can exist, so only the most recently
+made such backup is available.
+
+ If you choose to have a series of numbered backup files, backup file
+names contain @samp{.~}, the number, and another @samp{~} after the
+original file name. Thus, the backup files of @file{eval.c} would be
+called @file{eval.c.~1~}, @file{eval.c.~2~}, and so on, all the way
+through names like @file{eval.c.~259~} and beyond. The variable
+@code{backup-directory-alist} applies to numbered backups just as
+usual.
+
+@node Backup Deletion
+@subsubsection Automatic Deletion of Backups
+
+ To prevent excessive consumption of disk space, Emacs can delete numbered
+backup versions automatically. Generally Emacs keeps the first few backups
+and the latest few backups, deleting any in between. This happens every
+time a new backup is made.
+
+@vindex kept-old-versions
+@vindex kept-new-versions
+ The two variables @code{kept-old-versions} and
+@code{kept-new-versions} control this deletion. Their values are,
+respectively, the number of oldest (lowest-numbered) backups to keep
+and the number of newest (highest-numbered) ones to keep, each time a
+new backup is made. The backups in the middle (excluding those oldest
+and newest) are the excess middle versions---those backups are
+deleted. These variables' values are used when it is time to delete
+excess versions, just after a new backup version is made; the newly
+made backup is included in the count in @code{kept-new-versions}. By
+default, both variables are 2.
+
+@vindex delete-old-versions
+ If @code{delete-old-versions} is @code{t}, Emacs deletes the excess
+backup files silently. If it is @code{nil}, the default, Emacs asks
+you whether it should delete the excess backup versions. If it has
+any other value, then Emacs never automatically deletes backups.
+
+ Dired's @kbd{.} (Period) command can also be used to delete old versions.
+@xref{Dired Deletion}.
+
+@node Backup Copying
+@subsubsection Copying vs.@: Renaming
+
+ Backup files can be made by copying the old file or by renaming it.
+This makes a difference when the old file has multiple names (hard
+links). If the old file is renamed into the backup file, then the
+alternate names become names for the backup file. If the old file is
+copied instead, then the alternate names remain names for the file
+that you are editing, and the contents accessed by those names will be
+the new contents.
+
+ The method of making a backup file may also affect the file's owner
+and group. If copying is used, these do not change. If renaming is used,
+you become the file's owner, and the file's group becomes the default
+(different operating systems have different defaults for the group).
+
+ Having the owner change is usually a good idea, because then the owner
+always shows who last edited the file. Also, the owners of the backups
+show who produced those versions. Occasionally there is a file whose
+owner should not change; it is a good idea for such files to contain
+local variable lists to set @code{backup-by-copying-when-mismatch}
+locally (@pxref{File Variables}).
+
+@vindex backup-by-copying
+@vindex backup-by-copying-when-linked
+@vindex backup-by-copying-when-mismatch
+@vindex backup-by-copying-when-privileged-mismatch
+@cindex file ownership, and backup
+@cindex backup, and user-id
+ The choice of renaming or copying is controlled by four variables.
+Renaming is the default choice. If the variable
+@code{backup-by-copying} is non-@code{nil}, copying is used. Otherwise,
+if the variable @code{backup-by-copying-when-linked} is non-@code{nil},
+then copying is used for files that have multiple names, but renaming
+may still be used when the file being edited has only one name. If the
+variable @code{backup-by-copying-when-mismatch} is non-@code{nil}, then
+copying is used if renaming would cause the file's owner or group to
+change. @code{backup-by-copying-when-mismatch} is @code{t} by default
+if you start Emacs as the superuser. The fourth variable,
+@code{backup-by-copying-when-privileged-mismatch}, gives the highest
+numeric user-id for which @code{backup-by-copying-when-mismatch} will be
+forced on. This is useful when low-numbered user-ids are assigned to
+special system users, such as @code{root}, @code{bin}, @code{daemon},
+etc., which must maintain ownership of files.
+
+ When a file is managed with a version control system (@pxref{Version
+Control}), Emacs does not normally make backups in the usual way for
+that file. But check-in and check-out are similar in some ways to
+making backups. One unfortunate similarity is that these operations
+typically break hard links, disconnecting the file name you visited from
+any alternate names for the same file. This has nothing to do with
+Emacs---the version control system does it.
+
+@node Customize Save
+@subsection Customizing Saving of Files
+
+@vindex require-final-newline
+ If the value of the variable @code{require-final-newline} is
+@code{t}, saving or writing a file silently puts a newline at the end
+if there isn't already one there. If the value is @code{visit}, Emacs
+adds a newline at the end of any file that doesn't have one, just
+after it visits the file. (This marks the buffer as modified, and you
+can undo it.) If the value is @code{visit-save}, that means to add
+newlines both on visiting and on saving. If the value is @code{nil},
+Emacs leaves the end of the file unchanged; if it's neither @code{nil}
+nor @code{t}, Emacs asks you whether to add a newline. The default is
+@code{nil}.
+
+@vindex mode-require-final-newline
+ Many major modes are designed for specific kinds of files that are
+always supposed to end in newlines. These major modes set the
+variable @code{require-final-newline} according to
+@code{mode-require-final-newline}. By setting the latter variable,
+you can control how these modes handle final newlines.
+
+@vindex write-region-inhibit-fsync
+ When Emacs saves a file, it invokes the @code{fsync} system call to
+force the data immediately out to disk. This is important for safety
+if the system crashes or in case of power outage. However, it can be
+disruptive on laptops using power saving, because it requires the disk
+to spin up each time you save a file. Setting
+@code{write-region-inhibit-fsync} to a non-@code{nil} value disables
+this synchronization. Be careful---this means increased risk of data
+loss.
+
+@node Interlocking
+@subsection Protection against Simultaneous Editing
+
+@cindex file dates
+@cindex simultaneous editing
+ Simultaneous editing occurs when two users visit the same file, both
+make changes, and then both save them. If nobody were informed that
+this was happening, whichever user saved first would later find that his
+changes were lost.
+
+ On some systems, Emacs notices immediately when the second user starts
+to change the file, and issues an immediate warning. On all systems,
+Emacs checks when you save the file, and warns if you are about to
+overwrite another user's changes. You can prevent loss of the other
+user's work by taking the proper corrective action instead of saving the
+file.
+
+@findex ask-user-about-lock
+@cindex locking files
+ When you make the first modification in an Emacs buffer that is
+visiting a file, Emacs records that the file is @dfn{locked} by you.
+(It does this by creating a symbolic link in the same directory with a
+different name.) Emacs removes the lock when you save the changes. The
+idea is that the file is locked whenever an Emacs buffer visiting it has
+unsaved changes.
+
+@cindex collision
+ If you begin to modify the buffer while the visited file is locked by
+someone else, this constitutes a @dfn{collision}. When Emacs detects a
+collision, it asks you what to do, by calling the Lisp function
+@code{ask-user-about-lock}. You can redefine this function for the sake
+of customization. The standard definition of this function asks you a
+question and accepts three possible answers:
+
+@table @kbd
+@item s
+Steal the lock. Whoever was already changing the file loses the lock,
+and you gain the lock.
+@item p
+Proceed. Go ahead and edit the file despite its being locked by someone else.
+@item q
+Quit. This causes an error (@code{file-locked}), and the buffer
+contents remain unchanged---the modification you were trying to make
+does not actually take place.
+@end table
+
+ Note that locking works on the basis of a file name; if a file has
+multiple names, Emacs does not realize that the two names are the same file
+and cannot prevent two users from editing it simultaneously under different
+names. However, basing locking on names means that Emacs can interlock the
+editing of new files that will not really exist until they are saved.
+
+ Some systems are not configured to allow Emacs to make locks, and
+there are cases where lock files cannot be written. In these cases,
+Emacs cannot detect trouble in advance, but it still can detect the
+collision when you try to save a file and overwrite someone else's
+changes.
+
+ If Emacs or the operating system crashes, this may leave behind lock
+files which are stale, so you may occasionally get warnings about
+spurious collisions. When you determine that the collision is spurious,
+just use @kbd{p} to tell Emacs to go ahead anyway.
+
+ Every time Emacs saves a buffer, it first checks the last-modification
+date of the existing file on disk to verify that it has not changed since the
+file was last visited or saved. If the date does not match, it implies
+that changes were made in the file in some other way, and these changes are
+about to be lost if Emacs actually does save. To prevent this, Emacs
+displays a warning message and asks for confirmation before saving.
+Occasionally you will know why the file was changed and know that it does
+not matter; then you can answer @kbd{yes} and proceed. Otherwise, you should
+cancel the save with @kbd{C-g} and investigate the situation.
+
+ The first thing you should do when notified that simultaneous editing
+has already taken place is to list the directory with @kbd{C-u C-x C-d}
+(@pxref{Directories}). This shows the file's current author. You
+should attempt to contact him to warn him not to continue editing.
+Often the next step is to save the contents of your Emacs buffer under a
+different name, and use @code{diff} to compare the two files.@refill
+
+@node File Shadowing
+@subsection Shadowing Files
+@cindex shadow files
+@cindex file shadows
+@findex shadow-initialize
+
+@table @kbd
+@item M-x shadow-initialize
+Set up file shadowing.
+@item M-x shadow-define-literal-group
+Declare a single file to be shared between sites.
+@item M-x shadow-define-regexp-group
+Make all files that match each of a group of files be shared between hosts.
+@item M-x shadow-define-cluster @key{RET} @var{name} @key{RET}
+Define a shadow file cluster @var{name}.
+@item M-x shadow-copy-files
+Copy all pending shadow files.
+@item M-x shadow-cancel
+Cancel the instruction to shadow some files.
+@end table
+
+You can arrange to keep identical @dfn{shadow} copies of certain files
+in more than one place---possibly on different machines. To do this,
+first you must set up a @dfn{shadow file group}, which is a set of
+identically-named files shared between a list of sites. The file
+group is permanent and applies to further Emacs sessions as well as
+the current one. Once the group is set up, every time you exit Emacs,
+it will copy the file you edited to the other files in its group. You
+can also do the copying without exiting Emacs, by typing @kbd{M-x
+shadow-copy-files}.
+
+To set up a shadow file group, use @kbd{M-x
+shadow-define-literal-group} or @kbd{M-x shadow-define-regexp-group}.
+See their documentation strings for further information.
+
+Before copying a file to its shadows, Emacs asks for confirmation.
+You can answer ``no'' to bypass copying of this file, this time. If
+you want to cancel the shadowing permanently for a certain file, use
+@kbd{M-x shadow-cancel} to eliminate or change the shadow file group.
+
+A @dfn{shadow cluster} is a group of hosts that share directories, so
+that copying to or from one of them is sufficient to update the file
+on all of them. Each shadow cluster has a name, and specifies the
+network address of a primary host (the one we copy files to), and a
+regular expression that matches the host names of all the other hosts
+in the cluster. You can define a shadow cluster with @kbd{M-x
+shadow-define-cluster}.
+
+@node Time Stamps
+@subsection Updating Time Stamps Automatically
+@cindex time stamps
+@cindex modification dates
+@cindex locale, date format
+
+You can arrange to put a time stamp in a file, so that it will be updated
+automatically each time you edit and save the file. The time stamp
+has to be in the first eight lines of the file, and you should
+insert it like this:
+
+@example
+Time-stamp: <>
+@end example
+
+@noindent
+or like this:
+
+@example
+Time-stamp: " "
+@end example
+
+@findex time-stamp
+ Then add the hook function @code{time-stamp} to the hook
+@code{before-save-hook}; that hook function will automatically update
+the time stamp, inserting the current date and time when you save the
+file. You can also use the command @kbd{M-x time-stamp} to update the
+time stamp manually. For other customizations, see the Custom group
+@code{time-stamp}. Note that non-numeric fields in the time stamp are
+formatted according to your locale setting (@pxref{Environment}).
+
+@node Reverting
+@section Reverting a Buffer
+@findex revert-buffer
+@cindex drastic changes
+@cindex reread a file
+
+ If you have made extensive changes to a file and then change your mind
+about them, you can get rid of them by reading in the previous version
+of the file. To do this, use @kbd{M-x revert-buffer}, which operates on
+the current buffer. Since reverting a buffer unintentionally could lose
+a lot of work, you must confirm this command with @kbd{yes}.
+
+ @code{revert-buffer} tries to position point in such a way that, if
+the file was edited only slightly, you will be at approximately the
+same piece of text after reverting as before. However, if you have made
+drastic changes, point may wind up in a totally different piece of text.
+
+ Reverting marks the buffer as ``not modified'' until another change is
+made.
+
+ Some kinds of buffers whose contents reflect data bases other than files,
+such as Dired buffers, can also be reverted. For them, reverting means
+recalculating their contents from the appropriate data base. Buffers
+created explicitly with @kbd{C-x b} cannot be reverted; @code{revert-buffer}
+reports an error when asked to do so.
+
+@vindex revert-without-query
+ When you edit a file that changes automatically and frequently---for
+example, a log of output from a process that continues to run---it may be
+useful for Emacs to revert the file without querying you, whenever you
+visit the file again with @kbd{C-x C-f}.
+
+ To request this behavior, set the variable @code{revert-without-query}
+to a list of regular expressions. When a file name matches one of these
+regular expressions, @code{find-file} and @code{revert-buffer} will
+revert it automatically if it has changed---provided the buffer itself
+is not modified. (If you have edited the text, it would be wrong to
+discard your changes.)
+
+@cindex Global Auto-Revert mode
+@cindex mode, Global Auto-Revert
+@cindex Auto-Revert mode
+@cindex mode, Auto-Revert
+@findex global-auto-revert-mode
+@findex auto-revert-mode
+@findex auto-revert-tail-mode
+
+ You may find it useful to have Emacs revert files automatically when
+they change. Three minor modes are available to do this.
+
+ @kbd{M-x global-auto-revert-mode} enables Global Auto-Revert mode,
+which periodically checks all file buffers and reverts when the
+corresponding file has changed. @kbd{M-x auto-revert-mode} enables a
+local version, Auto-Revert mode, which applies only to the current
+buffer.
+
+ You can use Auto-Revert mode to ``tail'' a file such as a system
+log, so that changes made to that file by other programs are
+continuously displayed. To do this, just move the point to the end of
+the buffer, and it will stay there as the file contents change.
+However, if you are sure that the file will only change by growing at
+the end, use Auto-Revert Tail mode instead
+(@code{auto-revert-tail-mode}). It is more efficient for this.
+
+@vindex auto-revert-interval
+ The variable @code{auto-revert-interval} controls how often to check
+for a changed file. Since checking a remote file is too slow, these
+modes do not check or revert remote files.
+
+ @xref{VC Mode Line}, for Auto Revert peculiarities in buffers that
+visit files under version control.
+
+@ifnottex
+@include arevert-xtra.texi
+@end ifnottex
+
+@node Auto Save
+@section Auto-Saving: Protection Against Disasters
+@cindex Auto Save mode
+@cindex mode, Auto Save
+@cindex crashes
+
++ Emacs saves all the visited files from time to time (based on
++counting your keystrokes) without being asked, in separate files so as
++not to alter the files you actually use. This is called
++@dfn{auto-saving}. It prevents you from losing more than a limited
++amount of work if the system crashes.
+
+ When Emacs determines that it is time for auto-saving, it considers
+each buffer, and each is auto-saved if auto-saving is enabled for it
+and it has been changed since the last time it was auto-saved. The
+message @samp{Auto-saving...} is displayed in the echo area during
+auto-saving, if any files are actually auto-saved. Errors occurring
+during auto-saving are caught so that they do not interfere with the
+execution of commands you have been typing.
+
+@menu
+* Files: Auto Save Files. The file where auto-saved changes are
+ actually made until you save the file.
+* Control: Auto Save Control. Controlling when and how often to auto-save.
+* Recover:: Recovering text from auto-save files.
+@end menu
+
+@node Auto Save Files
+@subsection Auto-Save Files
+
+ Auto-saving does not normally save in the files that you visited, because
+it can be very undesirable to save a program that is in an inconsistent
+state when you have made half of a planned change. Instead, auto-saving
+is done in a different file called the @dfn{auto-save file}, and the
+visited file is changed only when you request saving explicitly (such as
+with @kbd{C-x C-s}).
+
+ Normally, the auto-save file name is made by appending @samp{#} to the
+front and rear of the visited file name. Thus, a buffer visiting file
+@file{foo.c} is auto-saved in a file @file{#foo.c#}. Most buffers that
+are not visiting files are auto-saved only if you request it explicitly;
+when they are auto-saved, the auto-save file name is made by appending
+@samp{#} to the front and rear of buffer name, then
+adding digits and letters at the end for uniqueness. For
+example, the @samp{*mail*} buffer in which you compose messages to be
+sent might be auto-saved in a file named @file{#*mail*#704juu}. Auto-save file
+names are made this way unless you reprogram parts of Emacs to do
+something different (the functions @code{make-auto-save-file-name} and
+@code{auto-save-file-name-p}). The file name to be used for auto-saving
+in a buffer is calculated when auto-saving is turned on in that buffer.
+
+@cindex auto-save for remote files
+@vindex auto-save-file-name-transforms
+ The variable @code{auto-save-file-name-transforms} allows a degree
+of control over the auto-save file name. It lets you specify a series
+of regular expressions and replacements to transform the auto save
+file name. The default value puts the auto-save files for remote
+files (@pxref{Remote Files}) into the temporary file directory on the
+local machine.
+
+ When you delete a substantial part of the text in a large buffer, auto
+save turns off temporarily in that buffer. This is because if you
+deleted the text unintentionally, you might find the auto-save file more
+useful if it contains the deleted text. To reenable auto-saving after
+this happens, save the buffer with @kbd{C-x C-s}, or use @kbd{C-u 1 M-x
+auto-save-mode}.
+
+@vindex auto-save-visited-file-name
+ If you want auto-saving to be done in the visited file rather than
+in a separate auto-save file, set the variable
+@code{auto-save-visited-file-name} to a non-@code{nil} value. In this
+mode, there is no real difference between auto-saving and explicit
+saving.
+
+@vindex delete-auto-save-files
+ A buffer's auto-save file is deleted when you save the buffer in its
+visited file. (You can inhibit this by setting the variable
+@code{delete-auto-save-files} to @code{nil}.) Changing the visited
+file name with @kbd{C-x C-w} or @code{set-visited-file-name} renames
+any auto-save file to go with the new visited name.
+
+@node Auto Save Control
+@subsection Controlling Auto-Saving
+
+@vindex auto-save-default
+@findex auto-save-mode
+ Each time you visit a file, auto-saving is turned on for that file's
+buffer if the variable @code{auto-save-default} is non-@code{nil} (but not
+in batch mode; @pxref{Entering Emacs}). The default for this variable is
+@code{t}, so auto-saving is the usual practice for file-visiting buffers.
+Auto-saving can be turned on or off for any existing buffer with the
+command @kbd{M-x auto-save-mode}. Like other minor mode commands, @kbd{M-x
+auto-save-mode} turns auto-saving on with a positive argument, off with a
+zero or negative argument; with no argument, it toggles.
+
+@vindex auto-save-interval
+ Emacs does auto-saving periodically based on counting how many characters
+you have typed since the last time auto-saving was done. The variable
+@code{auto-save-interval} specifies how many characters there are between
+auto-saves. By default, it is 300. Emacs doesn't accept values that are
+too small: if you customize @code{auto-save-interval} to a value less
+than 20, Emacs will behave as if the value is 20.
+
+@vindex auto-save-timeout
+ Auto-saving also takes place when you stop typing for a while. The
+variable @code{auto-save-timeout} says how many seconds Emacs should
+wait before it does an auto save (and perhaps also a garbage
+collection). (The actual time period is longer if the current buffer is
+long; this is a heuristic which aims to keep out of your way when you
+are editing long buffers, in which auto-save takes an appreciable amount
+of time.) Auto-saving during idle periods accomplishes two things:
+first, it makes sure all your work is saved if you go away from the
+terminal for a while; second, it may avoid some auto-saving while you
+are actually typing.
+
+ Emacs also does auto-saving whenever it gets a fatal error. This
+includes killing the Emacs job with a shell command such as @samp{kill
+%emacs}, or disconnecting a phone line or network connection.
+
+@findex do-auto-save
+ You can request an auto-save explicitly with the command @kbd{M-x
+do-auto-save}.
+
+@node Recover
+@subsection Recovering Data from Auto-Saves
+
+@findex recover-file
+ You can use the contents of an auto-save file to recover from a loss
+of data with the command @kbd{M-x recover-file @key{RET} @var{file}
+@key{RET}}. This visits @var{file} and then (after your confirmation)
+restores the contents from its auto-save file @file{#@var{file}#}.
+You can then save with @kbd{C-x C-s} to put the recovered text into
+@var{file} itself. For example, to recover file @file{foo.c} from its
+auto-save file @file{#foo.c#}, do:@refill
+
+@example
+M-x recover-file @key{RET} foo.c @key{RET}
+yes @key{RET}
+C-x C-s
+@end example
+
+ Before asking for confirmation, @kbd{M-x recover-file} displays a
+directory listing describing the specified file and the auto-save file,
+so you can compare their sizes and dates. If the auto-save file
+is older, @kbd{M-x recover-file} does not offer to read it.
+
+@findex recover-session
+ If Emacs or the computer crashes, you can recover all the files you
+were editing from their auto save files with the command @kbd{M-x
+recover-session}. This first shows you a list of recorded interrupted
+sessions. Move point to the one you choose, and type @kbd{C-c C-c}.
+
+ Then @code{recover-session} asks about each of the files that were
+being edited during that session, asking whether to recover that file.
+If you answer @kbd{y}, it calls @code{recover-file}, which works in its
+normal fashion. It shows the dates of the original file and its
+auto-save file, and asks once again whether to recover that file.
+
+ When @code{recover-session} is done, the files you've chosen to
+recover are present in Emacs buffers. You should then save them. Only
+this---saving them---updates the files themselves.
+
+@vindex auto-save-list-file-prefix
+ Emacs records information about interrupted sessions for later
+recovery in files named
+@file{~/.emacs.d/auto-save-list/.saves-@var{pid}-@var{hostname}}. All
+of this name except the @file{@var{pid}-@var{hostname}} part comes
+from the value of @code{auto-save-list-file-prefix}. You can record
+sessions in a different place by customizing that variable. If you
+set @code{auto-save-list-file-prefix} to @code{nil} in your
+@file{.emacs} file, sessions are not recorded for recovery.
+
+@node File Aliases
+@section File Name Aliases
+@cindex symbolic links (visiting)
+@cindex hard links (visiting)
+
+ Symbolic links and hard links both make it possible for several file
+names to refer to the same file. Hard links are alternate names that
+refer directly to the file; all the names are equally valid, and no one
+of them is preferred. By contrast, a symbolic link is a kind of defined
+alias: when @file{foo} is a symbolic link to @file{bar}, you can use
+either name to refer to the file, but @file{bar} is the real name, while
+@file{foo} is just an alias. More complex cases occur when symbolic
+links point to directories.
+
+@vindex find-file-existing-other-name
+@vindex find-file-suppress-same-file-warnings
+
+ Normally, if you visit a file which Emacs is already visiting under
+a different name, Emacs displays a message in the echo area and uses
+the existing buffer visiting that file. This can happen on systems
+that support hard or symbolic links, or if you use a long file name on
+a system that truncates long file names, or on a case-insensitive file
+system. You can suppress the message by setting the variable
+@code{find-file-suppress-same-file-warnings} to a non-@code{nil}
+value. You can disable this feature entirely by setting the variable
+@code{find-file-existing-other-name} to @code{nil}: then if you visit
+the same file under two different names, you get a separate buffer for
+each file name.
+
+@vindex find-file-visit-truename
+@cindex truenames of files
+@cindex file truenames
+ If the variable @code{find-file-visit-truename} is non-@code{nil},
+then the file name recorded for a buffer is the file's @dfn{truename}
+(made by replacing all symbolic links with their target names), rather
+than the name you specify. Setting @code{find-file-visit-truename} also
+implies the effect of @code{find-file-existing-other-name}.
+
+@node Version Control
+@section Version Control
+@cindex version control
+
+ @dfn{Version control systems} are packages that can record multiple
+versions of a source file, usually storing the unchanged parts of the
+file just once. Version control systems also record history information
+such as the creation time of each version, who created it, and a
+description of what was changed in that version.
+
+ The Emacs version control interface is called VC. Its commands work
+with different version control systems---currently, it supports CVS,
+GNU Arch, RCS, Meta-CVS, Subversion, and SCCS. Of these, the GNU
+project distributes CVS, GNU Arch, and RCS. We also have free
+software to replace SCCS, known as CSSC; if you are using SCCS and
+don't want to make the incompatible change to RCS or CVS, you can
+switch to CSSC.
+
+ VC is enabled by default in Emacs. To disable it, set the
+customizable variable @code{vc-handled-backends} to @code{nil}
+@iftex
+(@pxref{Customizing VC,,,emacs-xtra, Specialized Emacs Features}).
+@end iftex
+@ifnottex
+(@pxref{Customizing VC}).
+@end ifnottex
+
+
+@menu
+* Introduction to VC:: How version control works in general.
+* VC Mode Line:: How the mode line shows version control status.
+* Basic VC Editing:: How to edit a file under version control.
+* Old Revisions:: Examining and comparing old versions.
+* Secondary VC Commands:: The commands used a little less frequently.
+* Branches:: Multiple lines of development.
+@ifnottex
+* Remote Repositories:: Efficient access to remote CVS servers.
+* Snapshots:: Sets of file versions treated as a unit.
+* Miscellaneous VC:: Various other commands and features of VC.
+* Customizing VC:: Variables that change VC's behavior.
+@end ifnottex
+@end menu
+
+@node Introduction to VC
+@subsection Introduction to Version Control
+
+ VC allows you to use a version control system from within Emacs,
+integrating the version control operations smoothly with editing.
+Though VC cannot completely bridge the gaps between version-control
+systems with widely differing capabilities, it does provide
+a uniform interface to many version control operations. Regardless of
+which version control system is in use, you will be able to do basic
+operations in much the same way.
+
+ This section provides a general overview of version control, and
+describes the version control systems that VC supports. You can skip
+this section if you are already familiar with the version control system
+you want to use.
+
+@menu
+* Why Version Control?:: Understanding the problems it addresses
+* Version Control Systems:: Supported version control back-end systems.
+* VCS Concepts:: Words and concepts related to version control.
+* Types of Log File:: The VCS log in contrast to the ChangeLog.
+@end menu
+
+@node Why Version Control?
+@subsubsection Understanding the problems it addresses
+
+ Version control systems provide you with three important capabilities:
+@dfn{reversibility}, @dfn{concurrency}, and @dfn{history}.
+
+ The most basic capability you get from a version-control system is
+reversibility, the ability to back up to a saved, known-good state when
+you discover that some modification you did was a mistake or a bad idea.
+
+ Version-control systems also support concurrency, the ability to
+have many people modifying the same collection of code or documents
+knowing that conflicting modifications can be detected and resolved.
+
+ Version-control systems give you the capability to attach a history
+to your data, explanatory comments about the intention behind each
+change to it. Even for a programmer working solo change histories
+are an important aid to memory; for a multi-person project they
+become a vitally important form of communication among developers.
+
+@node Version Control Systems
+@subsubsection Supported Version Control Systems
+
+@cindex back end (version control)
+ VC currently works with six different version control systems or
+``back ends'': SCCS, RCS, CVS, Meta-CVS, Subversion, GNU Arch,
+git, and Mercurial.
+@comment Omitting bzr because support is very scratchy and incomplete.
+
+@cindex SCCS
+ SCCS was the first version-control system ever built, and was long ago
+superseded by later and more advanced ones; Emacs supports it only for
+backward compatibility and historical reasons. VC compensates for
+certain features missing in SCCS (snapshots, for example) by
+implementing them itself, but some other VC features, such as multiple
+branches, are not available with SCCS. Since SCCS is non-free you
+should not use it; use its free replacement CSSC instead. But you
+should use CSSC only if for some reason you cannot use a more
+recent and better-designed version-control system.
+
+@cindex RCS
+ RCS is the free version control system around which VC was initially
+built. Almost everything you can do with RCS can be done through VC. You
+cannot use RCS over the network, though, and it only works at the level
+of individual files, rather than projects. You should use it if you
+want a simple, yet reliable tool for handling individual files.
+
+@cindex CVS
+ CVS is the free version control system that was until recently (as of
+2007) used for the majority of free software projects, though it is now
+being superseded by other systems. It allows concurrent
+multi-user development either locally or over the network. Some of its
+shortcomings, corrected by newer systems such as Subversion or GNU Arch,
+are that it lacks atomic commits or support for renaming files. VC
+supports all basic editing operations under CVS, but for some less
+common tasks you still need to call CVS from the command line. Note
+also that before using CVS you must set up a repository, which is a
+subject too complex to treat here.
+
+@cindex Meta-CVS
+ Meta-CVS uses CVS repositories, but has an enhanced client that
+uses client-side information to solve various of the known problems
+with CVS. It is not widely used, having been overtaken by Subversion.
+The Emacs support for it is rudimentary, and may be removed in a
+future version.
+
+@cindex SVN
+@cindex Subversion
+ Subversion is a free version control system designed to be similar
+to CVS but without CVS's problems, and is now (2007) rapidly
+superseding CVS. Subversion supports atomic commits of filesets, and
+versions directories, symbolic links, meta-data, renames, copies, and
+deletes. It can be used via http or via its own protocol.
+
+@cindex GNU Arch
+@cindex Arch
+ GNU Arch is a new version control system that is designed for
+distributed work. It differs in many ways from old well-known
+systems, such as CVS and RCS. It supports different transports for
+interoperating between users, offline operations, and it has good
+branching and merging features. It also supports atomic commits of
+filesets, and keeps a history of file renaming and moving. VC
+does not support all operations provided by GNU Arch, so you must
+sometimes invoke it from the command line, or use a specialized
+module.
+
+@cindex git
+ git is a version-control system invented by Linus Torvalds to
+support Linux kernel development. Like GNU Arch, it supports atomic
+commits of filesets, and keeps a history of file renaming and
+moving. One significant feature of git is that it largely abolishes
+the notion of a single centralized repository; instead, each working
+copy of a git project is its own repository and coordination is done
+through repository-sync operations. VC fully supports git, except
+that it doesn't do news merges and repository sync operations must
+be done from the command line.
+
+@cindex hg
+@cindex Mercurial
+ Mercurial is a distributed version-control systems broadly
+resembling GNU Arch and git, with atomic fileset commits and
+rename/move histories. Like git it is fully decentralized.
+VC fully supports Mercurial, except for repository sync operations
+which still need to be done from the command line.
+
+@node VCS Concepts
+@subsubsection Concepts of Version Control
+
+@cindex repository
+@cindex registered file
+ When a file is under version control, we also say that it is
+@dfn{registered} in the version control system. The system has a
+@dfn{repository} which stores both the file's present state plus its
+change history---enough to reconstruct the current version or any
+earlier version. The repository will also contain a @dfn{log entry} for
+each change to the file, describing in words what was modified in that
+revision.
+
+@cindex work file
+@cindex checking out files
+ A file checked out of a version-control repository is sometimes
+called the @dfn{work file}. You edit the work file and make changes
+in it, as you would with an ordinary file. After you are done with a
+set of changes, you @dfn{check in} or @dfn{commit} the file, which
+records the changes in the repository, along with a log entry for
+them.
+
+@cindex revision
+@cindex revision ID
+ A copy of a file stored in a repository is called a @dfn{revision}.
+The history of a file is a sequence of revisions. Each revisions is
+named by a @dfn{revision ID}. In older VCSes (such as SCCS and RCS),
+the simplest kind of revision ID consisted of a @dfn{dot-pair};
+integers (the @dfn{major} and @dfn{minor} revisions) separated by a
+dot. Newer VCSes tend to use @dfn{monotonic} revision IDs that are
+simple integers counting from 1.
+
+ To go beyond these basic concepts, you will need to understand three
+ways in which version-control systems can differ from each other. They
+can be locking or merging; they can be file-based or changeset-based;
+and they can be centralized or decentralized. VC handles all these
+choices, but they lead to differing behaviors which you will need
+to understand as you use it.
+
+@cindex locking versus merging
+ A version control system typically has some mechanism to coordinate
+between users who want to change the same file. One method is
+@dfn{locking} (analogous to the locking that Emacs uses to detect
+simultaneous editing of a file, but distinct from it). In a locking
+system, such as SCCS, you must @dfn{lock} a file before you start to
+edit it. The other method is @dfn{merging}; the system tries to
+merge your changes with other people's changes when you check them in.
+
+ With version control locking, work files are normally read-only so
+that you cannot change them. You ask the version control system to make
+a work file writable for you by locking it; only one user can do
+this at any given time. When you check in your changes, that unlocks
+the file, making the work file read-only again. This allows other users
+to lock the file to make further changes.
+
+ By contrast, a merging system lets each user check out and modify a
+work file at any time. When you check in a file, the system will
+attempt to merge your changes with any others checked into the
+repository since you checked out the file.
+
+ Both locking and merging systems can have problems when multiple users
+try to modify the same file at the same time. Locking systems have
+@dfn{lock conflicts}; a user may try to check a file out and be unable
+to because it is locked. In merging systems, @dfn{merge conflicts}
+happen when you check in a change to a file that conflicts with a change
+checked in by someone else after your checkout. Both kinds of conflict
+have to be resolved by human judgment and communication.
+
+ SCCS always uses locking. RCS is lock-based by default but can be
+told to operate in a merging style. CVS and Subversion are
+merge-based by default but can be told to operate in a locking mode.
+Most later version-control systems, such as GNU Arch, git, and
+Mercurial, have been based exclusively on merging rather than locking.
+This is because experience has shown that the merging-based approach
+is generally superior to the locking one, both in convenience to
+developers and in minimizing the number and severity of conflicts that
+actually occur.
+
+ While it is rather unlikely that anyone will ever again build a
+fundamentally locking-based rather than merging-based version-control
+system in the future, merging-based version-systems sometimes have locks
+retrofitted onto them for reasons having nothing to do with technology.
+@footnote{Usually the control-freak instincts of managers.} For this
+reason, and to support older systems still in use, VC mode supports
+both locking and merging version control and tries to hide the differences
+between them as much as possible.
+
+@cindex files versus changesets.
+ On SCCS, RCS, CVS, and other early version-control systems, checkins
+and other operations are @dfn{file-based}; each file has its own
+@dfn{master file} with its own comment and revision history separate
+from that of all other files in the system. Later systems, beginning
+with Subversion, are @dfn{changeset-based}; a checkin under these
+may include changes to several files and that change set is treated as
+a unit by the system. Any comment associated with the change belongs
+to no single file, but is attached to the changeset itself.
+
+ Changeset-based version control is in general both more flexible and
+more powerful than file-based version control; usually, when a change to
+multiple files has to be backed out, it's good to be able to easily
+identify and remove all of it. But it took some years for designers to
+figure that out, and while file-based systems are passing out of use
+there are lots of legacy repositories still to be dealt with at time of
+writing in 2007.
+
+ In fact, older versions of VC mode supported only file-based systems,
+leading to some unhappy results when it was used to drive
+changeset-based ones---the Subversion support, for example, used to break
+up changesets into multiple per-file commits. This has been fixed, but
+it has left a legacy in VC-mode's terminology. The terms ``checkin''
+and ``checkout'' are associated with file-based and locking-based
+systems and a bit archaic; nowadays those operations are usually called
+``commit'' and ``update''.
+
+@cindex centralized vs. decentralized
+ Early version-control systems were designed around a @dfn{centralized}
+model in which each project has only one repository used by all
+developers. SCCS, RCS, CVS, and Subversion share this kind of model.
+It has two important problems. One is that a single repository is a
+single point of failure---if the repository server is down all work
+stops. The other is that you need to be connected live to the server to
+do checkins and checkouts; if you're offline, you can't work.
+
+ Newer version-control systems like GNU Arch, git, Mercurial, and Bzr
+are @dfn{decentralized}. A project may have several different
+repositories, and these systems support a sort of super-merge between
+repositories that tries to reconcile their change histories. At the
+limit, each developer has his/her own repository, and repository
+merges replace checkin/commit operations.
+
+ VC's job is to help you manage the traffic between your personal
+workfiles and a repository. Whether that repository is a single master
+or one of a network of peer repositories is not something VC has to care
+about. Thus, the difference between a centralized and a decentralized
+version-control system is invisible to VC mode.
+
+@iftex
+(@pxref{CVS Options,,,emacs-xtra, Specialized Emacs Features}).
+@end iftex
+@ifnottex
+(@pxref{CVS Options}).
+@end ifnottex
+
+
+@node Types of Log File
+@subsubsection Types of Log File
+@cindex types of log file
+@cindex log File, types of
+@cindex version control log
+
+ Projects that use a revision control system can have @emph{two}
+types of log for changes. One is the log maintained by the
+revision control system: each time you check in a change, you must
+fill out a @dfn{log entry} for the change (@pxref{Log Buffer}). This
+kind of log is called the @dfn{version control log}, also the
+@dfn{revision control log}, @dfn{RCS log}, or @dfn{CVS log}.
+
+ The other kind of log is the file @file{ChangeLog} (@pxref{Change
+Log}). It provides a chronological record of all changes to a large
+portion of a program---typically one directory and its subdirectories.
+A small program would use one @file{ChangeLog} file; a large program
+may well merit a @file{ChangeLog} file in each major directory.
+@xref{Change Log}.
+
+ Actually, the fact that both kinds of log exist is partly a legacy from
+file-based version control. Changelogs are a GNU convention, later
+more widely adopted, that help developers to get a changeset-based
+view of a project even when its version-control system has that
+information split up in multiple file-based logs.
+
+ Changeset-based version systems, on the other hand, often maintain
+a changeset-based modification log for the entire system that makes
+ChangeLogs mostly redundant. The only advantage ChangeLogs retain is that
+it may be useful to be able to view the transaction history of a
+single directory separately from those of other directories.
+
+ A project maintained with version control can use just the
+version-control log, or it can use both kinds of logs. It can
+handle some files one way and some files the other way. Each project
+has its policy, which you should follow.
+
+ When the policy is to use both, you typically want to write an entry
+for each change just once, then put it into both logs. You can write
+the entry in @file{ChangeLog}, then copy it to the log buffer when you
+check in the change. Or you can write the entry in the log buffer
+while checking in the change, and later use the @kbd{C-x v a} command
+to copy it to @file{ChangeLog}
+@iftex
+(@pxref{Change Logs and VC,,,emacs-xtra, Specialized Emacs Features}).
+@end iftex
+@ifnottex
+(@pxref{Change Logs and VC}).
+@end ifnottex
+
+@node VC Mode Line
+@subsection Version Control and the Mode Line
+
+ When you visit a file that is under version control, Emacs indicates
+this on the mode line. For example, @samp{RCS-1.3} says that RCS is
+used for that file, and the current version is 1.3.
+
+ The character between the back-end name and the revision ID
+indicates the version control status of the file. @samp{-} means that
+the work file is not locked (if locking is in use), or not modified (if
+locking is not in use). @samp{:} indicates that the file is locked, or
+that it is modified. If the file is locked by some other user (for
+instance, @samp{jim}), that is displayed as @samp{RCS:jim:1.3}.
+
+@vindex auto-revert-check-vc-info
+ When Auto Revert mode (@pxref{Reverting}) reverts a buffer that is
+under version control, it updates the version control information in
+the mode line. However, Auto Revert mode may not properly update this
+information if the version control status changes without changes to
+the work file, from outside the current Emacs session. If you set
+@code{auto-revert-check-vc-info} to @code{t}, Auto Revert mode updates
+the version control status information every
+@code{auto-revert-interval} seconds, even if the work file itself is
+unchanged. The resulting CPU usage depends on the version control
+system, but is usually not excessive.
+
+@node Basic VC Editing
+@subsection Basic Editing under Version Control
+
+@menu
+* Selecting A Fileset:: Choosing a set of files to operate on
+* Doing The Right Thing:: Stepping forward in the development cycle
+* VC With A Locking VCS:: RCS in its default mode, SCCS, and optionally CVS.
+* VC With A Merging VCS:: Without locking: default mode for CVS.
+* Advanced C-x v v:: Advanced features available with a prefix argument.
+* Log Buffer:: Features available in log entry buffers.
+@end menu
+
+@node Selecting A Fileset
+@subsubsection Choosing the scope of your command
+
+@cindex filesets
+ Most VC commands operate on @dfn{filesets}. A fileset is a
+group of files that you have chosen to treat as a unit at the
+time you perform the command. Filesets are the way that VC
+mode bridges the gap between file-based and changeset-based
+version-control systems.
+
+ If you are visiting a version-controlled file in the current buffer,
+the default fileset for any command is simply that one file. If you
+are visiting a VC Dired buffer, and some files in it are marked,
+your fileset is the marked files only.
+
+ All files in a fileset must be under the same version-control system.
+If they are not, VC mode will fail when you attempt to execute
+a command on the fileset.
+
+ VC filesets are, essentially, a way to pass multiple file
+arguments as a group to underlying version-control commands. For
+example, on Subversion a checkin with more than one file in its
+fileset will become a joint commit, as though you had typed
+@command{svn commit} with those file arguments at the shell command
+line in the directory of the selected buffer.
+
+ If you are accustomed to earlier versions of VC, the change in behavior
+you will notice is in VC-Dired mode. Other than @kbd{C-x v v}, most
+VC-mode commands once operated on only one file selected by the line
+the cursor is on. The change in the behavior of @kbd{C-x v v} outside
+VC-Dired mode is more subtle. Formerly it operated in parallel on all
+marked files, but did not pass them to the version-control backends as
+a group. Now it does, which enables VC to drive changeset-based
+version-control systems.
+
+ Emacs uses the concept of named filesets elsewhere
+(@pxref{Filesets}) to allow you to view and visit files in functional
+groups. Unlike those, VC filesets are not named and don't persist
+across sessions.
+
+@node Doing The Right Thing
+@subsubsection Performing the next operation in the development cycle
+
+ The principal VC command is an all-purpose command that performs
+either locking or check-in on your current fileset, depending on
+the situation.
+
+@table @kbd
+@itemx C-x v v
+Perform the next logical version control operation on this file.
+@end table
+
+@findex vc-next-action
+@kindex C-x v v
+ The precise action of this command depends on the state of the file,
+and whether the version control system uses locking or merging. SCCS and
+RCS normally use locking; CVS and Subversion normally use
+merging but can be configured to do locking. Later systems such as
+GNU Arch and Mercurial always use merging.
+
+@findex vc-toggle-read-only
+@kindex C-x C-q @r{(Version Control)}
+ As a special convenience that is particularly useful for files with
+locking, you can let Emacs check a file in or out whenever you change
+its read-only flag. This means, for example, that you cannot
+accidentally edit a file without properly checking it out first. To
+achieve this, bind the key @kbd{C-x C-q} to @kbd{vc-toggle-read-only}
+in your @file{~/.emacs} file. (@xref{Init Rebinding}.)
+
+@node VC With A Locking VCS
+@subsubsection Basic Version Control with Locking
+
+ If locking is used for the file (as with SCCS, and RCS in its default
+mode), @kbd{C-x v v} can either lock a file or check it in:
+
+@itemize @bullet
+@item
+If the file is not locked, @kbd{C-x v v} locks it, and
+makes it writable so that you can change it.
+
+@item
+If the file is locked by you, and contains changes, @kbd{C-x v v} checks
+in the changes. In order to do this, it first reads the log entry
+for the new revision. @xref{Log Buffer}.
+
+@item
+If the file is locked by you, but you have not changed it since you
+locked it, @kbd{C-x v v} releases the lock and makes the file read-only
+again.
+
+@item
+If the file is locked by some other user, @kbd{C-x v v} asks you whether
+you want to ``steal the lock'' from that user. If you say yes, the file
+becomes locked by you, but a message is sent to the person who had
+formerly locked the file, to inform him of what has happened.
+@end itemize
+
+ These rules also apply when you use CVS in locking mode, except
+that there is no such thing as stealing a lock.
+
+@node VC With A Merging VCS
+@subsubsection Basic Version Control with Merging
+
+ When your version-control system is merging-based rather than
+locking-based---the default for CVS and Subversion, and the way GNU
+Arch and more modern systems always work---work files are always
+writable; you do not need to do anything before you begin to edit a
+file. The status indicator on the mode line is @samp{-} if the file
+is unmodified; it flips to @samp{:} as soon as you save any changes in
+the work file.
+
+ Here is what @kbd{C-x v v} does when using a merging-based system
+(such as CVS or Subversion in their default merging mode):
+
+@itemize @bullet
+@item
+If some other user has checked in changes into the repository, Emacs
+asks you whether you want to merge those changes into your own work
+file. You must do this before you can check in your own changes. (To
+pick up any recent changes from the repository @emph{without} trying
+to commit your own changes, type @kbd{C-x v m @key{RET}}.)
+@xref{Merging}.
+
+@item
+If there are no new changes in the repository, but you have made
+modifications in your work file, @kbd{C-x v v} checks in your changes.
+In order to do this, it first reads the log entry for the new revision.
+@xref{Log Buffer}.
+
+@item
+If the file is not modified, the @kbd{C-x v v} does nothing.
+@end itemize
+
+ These rules also apply when you use RCS in the mode that does not
+require locking, except that automatic merging of changes from the
+repository is not implemented. Unfortunately, this means that nothing
+informs you if another user has checked in changes in the same file
+since you began editing it, and when this happens, his changes will be
+effectively removed when you check in your revision (though they will
+remain in the repository, so they will not be entirely lost). You must
+therefore verify that the current revision is unchanged, before you
+check in your changes.
+
+ In addition, locking is possible with RCS even in this mode, although
+it is not required; @kbd{C-x v v} with an unmodified file locks the
+file, just as it does with RCS in its normal (locking) mode.
+
+ Later systems like CVS, Subversion and Arch will notice conflicting
+changes in the repository automatically and notify you when they occur.
+
+@node Advanced C-x v v
+@subsubsection Advanced Control in @kbd{C-x v v}
+
+@cindex revision ID to check in/out
+ When you give a prefix argument to @code{vc-next-action} (@kbd{C-u
+C-x v v}), it still performs the next logical version control
+operation, but accepts additional arguments to specify precisely how
+to do the operation.
+
+@itemize @bullet
+@item
+If the file is modified (or locked), you can specify the revision ID
+to use for the new version that you check in. This is one way
+to create a new branch (@pxref{Branches}).
+
+@item
+If the file is not modified (and unlocked), you can specify the
+revision to select; this lets you start working from an older
+revision, or on another branch. If you do not enter any revision,
+that takes you to the highest (``head'') revision on the current
+branch; therefore @kbd{C-u C-x v v @key{RET}} is a convenient way to
+get the latest version of a file from the repository.
+
+@item
+@cindex specific version control system
+Instead of the revision ID, you can also specify the name of a
+version control system. This is useful when one file is being managed
+with two version control systems at the same time
+@iftex
+(@pxref{Local Version Control,,,emacs-xtra, Specialized Emacs
+Features}).
+@end iftex
+@ifnottex
+(@pxref{Local Version Control}).
+@end ifnottex
+
+@end itemize
+
+@node Log Buffer
+@subsubsection Features of the Log Entry Buffer
+
+ When you check in changes, @kbd{C-x v v} first reads a log entry. It
+pops up a buffer called @samp{*VC-Log*} for you to enter the log entry.
+
+ Sometimes the @samp{*VC-Log*} buffer contains default text when you enter it,
+typically the last log message entered. If it does, mark and point
+are set around the entire contents of the buffer so that it is easy to
+kill the contents of the buffer with @kbd{C-w}.
+
+@findex log-edit-insert-changelog
+ If you work by first writing entries in the @file{ChangeLog}
+(@pxref{Change Log}) and afterwards committing the change under revision
+control, you can generate the Log Edit text from the ChangeLog using
+@kbd{C-c C-a} (@kbd{log-edit-insert-changelog}). This looks for
+entries for the file(s) concerned in the top entry in the ChangeLog
+and uses those paragraphs as the log text. This text is only inserted
+if the top entry was made under your user name on the current date.
+@iftex
+@xref{Change Logs and VC,,,emacs-xtra, Specialized Emacs Features},
+@end iftex
+@ifnottex
+@xref{Change Logs and VC},
+@end ifnottex
+for the opposite way of working---generating ChangeLog entries from
+the revision control log.
+
+ In the @samp{*VC-Log*} buffer, @kbd{C-c C-f} (@kbd{M-x
+log-edit-show-files}) shows the list of files to be committed in case
+you need to check that. (This can be a list of more than one file if
+you use VC Dired mode or PCL-CVS.)
+@iftex
+@xref{VC Dired Mode,,,emacs-xtra, Specialized Emacs Features},
+@end iftex
+@ifnottex
+@xref{VC Dired Mode},
+@end ifnottex
+and @ref{Top, , About PCL-CVS, pcl-cvs, PCL-CVS --- The Emacs
+Front-End to CVS}.)
+
+ When you have finished editing the log message, type @kbd{C-c C-c} to
+exit the buffer and commit the change.
+
+ To abort check-in, just @strong{don't} type @kbd{C-c C-c} in that
+buffer. You can switch buffers and do other editing. As long as you
+don't try to check in another file, the entry you were editing remains
+in the @samp{*VC-Log*} buffer, and you can go back to that buffer at any
+time to complete the check-in.
+
+ If you change several source files for the same reason, it is often
+convenient to specify the same log entry for many of the files. (This
+is the normal way to do things on a changeset-oriented system, where
+comments are attached to changesets rather than the history of
+individual files.) The most convenient way to do this is to mark all the
+files in VC-Dired mode and check in from there; the log buffer will
+carry the fileset information with it and do a group commit when you
+confirm it with @kbd{C-c C-c}.
+
+ However, you can also browse the history of previous log entries to
+duplicate a checkin comment. This can be useful when you want several
+files to have checkin comments that vary only slightly from each
+other. The commands @kbd{M-n}, @kbd{M-p}, @kbd{M-s} and @kbd{M-r} for
+doing this work just like the minibuffer history commands (except that
+these versions are used outside the minibuffer).
+
+@vindex vc-log-mode-hook
+ Each time you check in a change, the log entry buffer is put into VC Log
+mode, which involves running two hooks: @code{text-mode-hook} and
+@code{vc-log-mode-hook}. @xref{Hooks}.
+
+@node Old Revisions
+@subsection Examining And Comparing Old Revisions
+
+ One of the convenient features of version control is the ability
+to examine any revision of a file, or compare two revisions.
+
+@table @kbd
+@item C-x v ~ @var{revision} @key{RET}
+Examine revision @var{revision} of the visited file, in a buffer of its
+own.
+
+@item C-x v =
+Compare the buffer contents associated with the current
+fileset with the working revision(s) from which you started editing.
+
+@item C-u C-x v = @key{RET} @var{oldvers} @key{RET} @var{newvers} @key{RET}
+Compare the specified two repository revisions of the current fileset.
+
+@item C-x v g
+Display the file with per-line revision information and using colors.
+@end table
+
+@findex vc-revision-other-window
+@kindex C-x v ~
+ To examine an old revision in its entirety, visit the file and then type
+@kbd{C-x v ~ @var{revision} @key{RET}} (@code{vc-revision-other-window}).
+This puts the text of revision @var{revision} in a file named
+@file{@var{filename}.~@var{revision}~}, and visits it in its own buffer
+in a separate window. (In RCS, you can also select an old revision
+and create a branch from it. @xref{Branches}.)
+
+@findex vc-diff
+@kindex C-x v =
+@kbd{C-x v =} compares the current buffer contents of each file in the
+current fileset (saving them in the file if necessary) with the
+repository revision from which you started editing each file (this is not
+necessarily the latest revision of the file). The diff will be displayed
+in a special buffer in another window.
+
+@findex vc-diff
+@kindex C-u C-x v =
+ You can compare two repository revisions of the current fileset with
+the command @kbd{C-u C-x v =} (@code{vc-diff}). @kbd{C-u C-x v =} reads
+two revision ID or tags. The diff will be displayed in a special
+buffer in another window.
+
+ You can specify a checked-in revision by its ID; an empty input
+specifies the current contents of the work file (which may be different
+from all the checked-in revisions). You can also specify a snapshot name
+@iftex
+(@pxref{Snapshots,,,emacs-xtra, Specialized Emacs Features})
+@end iftex
+@ifnottex
+(@pxref{Snapshots})
+@end ifnottex
+instead of one or both revision ID.
+
+ Note that if your version-control system is file-oriented (SCCS,
+RCS, CVS) rather than fileset-oriented (Subversion, GNU Arch, git,
+Mercurial) specifying a revision of a multiple-file fileset by
+revision ID (as opposed to a snapshot name or RSCCS/RCS tag) is
+unlikely to return diffs that are connected in any meaningful way.
+
+ If you invoke @kbd{C-u C-x v =} or @kbd{C-u C-x v =} from a buffer
+that is neither visiting a version-controlled file nor a VC Dired
+buffer, these commands will generate a diff of all registered files in
+the current directory and its subdirectories.
+
+@vindex vc-diff-switches
+@vindex vc-rcs-diff-switches
+ @kbd{C-x v =} works by running a variant of the @code{diff} utility
+designed to work with the version control system in use. When you
+invoke @code{diff} this way, in addition to the options specified by
+@code{diff-switches} (@pxref{Comparing Files}), it receives those
+specified by @code{vc-diff-switches}, plus those specified for the
+specific back end by @code{vc-@var{backend}-diff-switches}. For
+instance, when the version control back end is RCS, @code{diff} uses
+the options in @code{vc-rcs-diff-switches}. The
+@samp{vc@dots{}diff-switches} variables are @code{nil} by default.
+
+ The buffer produced by @kbd{C-x v =} supports the commands of
+Compilation mode (@pxref{Compilation Mode}), such as @kbd{C-x `} and
+@kbd{C-c C-c}, in both the ``old'' and ``new'' text, and they always
+find the corresponding locations in the current work file. (Older
+revisions are not, in general, present as files on your disk.)
+
+@findex vc-annotate
+@kindex C-x v g
+ For some back ends, you can display the file @dfn{annotated} with
+per-line revision information and using colors to enhance the visual
+appearance, with the command @kbd{M-x vc-annotate}. This creates a new
+buffer (the ``annotate buffer'') displaying the file's text, with each
+part colored to show how old it is. Text colored red is new, blue means
+old, and intermediate colors indicate intermediate ages. By default,
+the color is scaled over the full range of ages, such that the oldest
+changes are blue, and the newest changes are red.
+
+ When you give a prefix argument to this command, Emacs reads two
+arguments using the minibuffer: the ID of which revision to display and
+annotate (instead of the current file contents), and the time span in
+days the color range should cover.
+
+ From the annotate buffer, these and other color scaling options are
+available from the @samp{VC-Annotate} menu. In this buffer, you can
+also use the following keys to browse the annotations of past revisions,
+view diffs, or view log entries:
+
+@table @kbd
+@item P
+Annotate the previous revision, that is to say, the revision before
+the one currently annotated. A numeric prefix argument is a repeat
+count, so @kbd{C-u 10 P} would take you back 10 revisions.
+
+@item N
+Annotate the next revision---the one after the revision currently
+annotated. A numeric prefix argument is a repeat count.
+
+@item J
+Annotate the revision indicated by the current line.
+
+@item A
+Annotate the revision before the one indicated by the current line.
+This is useful to see the state the file was in before the change on
+the current line was made.
+
+@item D
+Display the diff between the current line's revision and the previous
+revision. This is useful to see what the current line's revision
+actually changed in the file.
+
+@item L
+Show the log of the current line's revision. This is useful to see
+the author's description of the changes in the revision on the current
+line.
+
+@item W
+Annotate the working revision--the one you are editing. If you used
+@kbd{P} and @kbd{N} to browse to other revisions, use this key to
+return to your working revision.
+@end table
+
+@node Secondary VC Commands
+@subsection The Secondary Commands of VC
+
+ This section explains the secondary commands of VC, those that you might
+use once a day.
+
+@menu
+* Registering:: Putting a file under version control.
+* VC Status:: Viewing the VC status of files.
+* VC Undo:: Canceling changes before or after check-in.
+@ifnottex
+* VC Dired Mode:: Listing files managed by version control.
+* VC Dired Commands:: Commands to use in a VC Dired buffer.
+@end ifnottex
+@end menu
+
+@node Registering
+@subsubsection Registering a File for Version Control
+
+@kindex C-x v i
+@findex vc-register
+ You can put any file under version control by simply visiting it, and
+then typing @w{@kbd{C-x v i}} (@code{vc-register}).
+
+@table @kbd
+@item C-x v i
+Register the visited file for version control.
+@end table
+
+ To register the file, Emacs must choose which version control system
+to use for it. If the file's directory already contains files
+registered in a version control system, Emacs uses that system. If
+there is more than one system in use for a directory, Emacs uses the
+one that appears first in @code{vc-handled-backends}
+@iftex
+(@pxref{Customizing VC,,,emacs-xtra, Specialized Emacs Features}).
+@end iftex
+@ifnottex
+(@pxref{Customizing VC}).
+@end ifnottex
+On the other hand, if there are no files already registered, Emacs uses
+the first system from @code{vc-handled-backends} that could register
+the file (for example, you cannot register a file under CVS if its
+directory is not already part of a CVS tree); with the default value
+of @code{vc-handled-backends}, this means that Emacs uses RCS in this
+situation.
+
+ If locking is in use, @kbd{C-x v i} leaves the file unlocked and
+read-only. Type @kbd{C-x v v} if you wish to start editing it. After
+registering a file with CVS, you must subsequently commit the initial
+revision by typing @kbd{C-x v v}. Until you do that, the revision ID
+appears as @samp{@@@@} in the mode line.
+
+@vindex vc-default-init-revision
+@cindex initial revision ID to register
+ The default initial revision ID for a newly registered file
+varies by what VCS you are using; normally it will be 1.1 on VCSes
+that use dot-pair revision IDs and 1 on VCSes that use monotonic IDs.
+You can specify a different default by setting the variable
+@code{vc-default-init-revision}, or you can give @kbd{C-x v i} a
+numeric argument; then it reads the initial revision ID for this
+particular file using the minibuffer.
+
+@vindex vc-initial-comment
+ If @code{vc-initial-comment} is non-@code{nil}, @kbd{C-x v i} reads an
+initial comment to describe the purpose of this source file. Reading
+the initial comment works like reading a log entry (@pxref{Log Buffer}).
+
+@node VC Status
+@subsubsection VC Status Commands
+
+@table @kbd
+@item C-x v l
+Display revision control state and change history.
+@end table
+
+@kindex C-x v l
+@findex vc-print-log
+ To view the detailed revision control status and history of a file,
+type @kbd{C-x v l} (@code{vc-print-log}). It displays the history of
+changes to the current file, including the text of the log entries. The
+output appears in a separate window. The point is centered at the
+revision of the file that is currently being visited.
+
+ In the change log buffer, you can use the following keys to move
+between the logs of revisions and of files, to view past revisions, and
+to view diffs:
+
+@table @kbd
+@item p
+Move to the previous revision-item in the buffer. (Revision entries in the log
+buffer are usually in reverse-chronological order, so the previous
+revision-item usually corresponds to a newer revision.) A numeric
+prefix argument is a repeat count.
+
+@item n
+Move to the next revision-item (which most often corresponds to the
+previous revision of the file). A numeric prefix argument is a repeat
+count.
+
+@item P
+Move to the log of the previous file, when the logs of multiple files
+are in the log buffer
+@iftex
+(@pxref{VC Dired Mode,,,emacs-xtra, Specialized Emacs Features}).
+@end iftex
+@ifnottex
+(@pxref{VC Dired Mode}).
+@end ifnottex
+Otherwise, just move to the beginning of the log. A numeric prefix
+argument is a repeat count, so @kbd{C-u 10 P} would move backward 10
+files.
+
+@item N
+Move to the log of the next file, when the logs of multiple files are
+in the log buffer
+@iftex
+(@pxref{VC Dired Mode,,,emacs-xtra, Specialized Emacs Features}).
+@end iftex
+@ifnottex
+(@pxref{VC Dired Mode}).
+@end ifnottex
+It also takes a numeric prefix argument as a repeat count.
+
+@item f
+Visit the revision indicated at the current line, like typing @kbd{C-x
+v ~} and specifying this revision's ID (@pxref{Old Revisions}).
+
+@item d
+Display the diff (@pxref{Comparing Files}) between the revision
+indicated at the current line and the next earlier revision. This is
+useful to see what actually changed when the revision indicated on the
+current line was committed.
+@end table
+
+@node VC Undo
+@subsubsection Undoing Version Control Actions
+
+@table @kbd
+@item C-x v u
+Revert the buffer and the file to the working revision from which you started
+editing the file.
+
+@item C-x v c
+Remove the last-entered change from the master for the visited file.
+This undoes your last check-in.
+@end table
+
+@kindex C-x v u
+@findex vc-revert-buffer
+ If you want to discard your current set of changes and revert to the
+working revision from which you started editing the file, use @kbd{C-x v u}
+(@code{vc-revert-buffer}). This leaves the file unlocked; if locking
+is in use, you must first lock the file again before you change it
+again. @kbd{C-x v u} requires confirmation, unless it sees that you
+haven't made any changes with respect to the master copy of the
+working revision.
+
+ @kbd{C-x v u} is also the command to unlock a file if you lock it and
+then decide not to change it.
+
+@kindex C-x v c
+@findex vc-rollback
+ To cancel a change that you already checked in, use @kbd{C-x v c}
+(@code{vc-rollback}). This command discards all record of the most
+recent checked-in revision, but only if your work file corresponds to
+that revision---you cannot use @kbd{C-x v c} to cancel a revision that is
+not the latest on its branch. Note that many version-control systems do
+not support rollback at all; this command is something of a historical
+relic.
+
+@ifnottex
+@c vc1-xtra.texi needs extra level of lowering.
+@lowersections
+@include vc1-xtra.texi
+@raisesections
+@end ifnottex
+
+@node Branches
+@subsection Multiple Branches of a File
+@cindex branch (version control)
+@cindex trunk (version control)
+
+ One use of version control is to maintain multiple ``current''
+revisions of a file. For example, you might have different revisions of a
+program in which you are gradually adding various unfinished new
+features. Each such independent line of development is called a
+@dfn{branch}. VC allows you to create branches, switch between
+different branches, and merge changes from one branch to another.
+Please note, however, that branches are not supported for SCCS.
+
+ A file's main line of development is usually called the @dfn{trunk}.
+You can create multiple branches from the trunk. How the difference
+between trunk and branch is made visible is dependent on whether the
+VCS uses dot-pair or monotonic version IDs.
+
+ In VCSes with dot-pair revision IDs, the revisions on the trunk are
+normally IDed 1.1, 1.2, 1.3, etc. At any such revision, you can
+start an independent branch. A branch starting at revision 1.2 would
+have revision ID 1.2.1.1, and consecutive revisions on this branch
+would have IDs 1.2.1.2, 1.2.1.3, 1.2.1.4, and so on. If there is
+a second branch also starting at revision 1.2, it would consist of
+revisions 1.2.2.1, 1.2.2.2, 1.2.2.3, etc.
+
+ In VCSes with monotonic revision IDs, trunk revisions are IDed as
+1, 2, 3, etc. A branch from (say) revision 2 might start with 2.1 and
+continue through 2.2, 2.3, etc. But naming conventions for branches
+and subbranches vary widely on these systems, and some (like
+Mercurial) never depart from the monotonic integer sequence at all.
+Consult the documentation of the VCS you are using.
+
+@cindex head revision
+ If you omit the final component of a dot-pair revision ID, that is called a
+@dfn{branch ID}. It refers to the highest existing revision on that
+branch---the @dfn{head revision} of that branch. The branches in the
+dot-pair example above have branch IDs 1.2.1 and 1.2.2.
+
+@menu
+* Switching Branches:: How to get to another existing branch.
+* Creating Branches:: How to start a new branch.
+* Merging:: Transferring changes between branches.
+* Multi-User Branching:: Multiple users working at multiple branches
+ in parallel.
+@end menu
+
+@node Switching Branches
+@subsubsection Switching between Branches
+
+ To switch between branches, type @kbd{C-u C-x v v} and specify the
+revision ID you want to select. On a locking-based system, this
+version is then visited @emph{unlocked} (write-protected), so you can
+examine it before locking it. Switching branches in this way is allowed
+only when the file is not locked.
+
+ On a VCS with dot-pair IDs, you can omit the minor part, thus giving
+only the branch ID; this takes you to the head version on the
+chosen branch. If you only type @key{RET}, Emacs goes to the highest
+version on the trunk.
+
+ After you have switched to any branch (including the main branch), you
+stay on it for subsequent VC commands, until you explicitly select some
+other branch.
+
+@node Creating Branches
+@subsubsection Creating New Branches
+
+ To create a new branch from a head revision (one that is the latest in
+the branch that contains it), first select that revision if necessary,
+lock it with @kbd{C-x v v}, and make whatever changes you want. Then,
+when you check in the changes, use @kbd{C-u C-x v v}. This lets you
+specify the revision ID for the new revision. You should specify a
+suitable branch ID for a branch starting at the current revision.
+For example, if the current revision is 2.5, the branch ID should be
+2.5.1, 2.5.2, and so on, depending on the number of existing branches at
+that point.
+
+ To create a new branch at an older revision (one that is no longer the
+head of a branch), first select that revision (@pxref{Switching
+Branches}). Your procedure will then differ depending on whether you
+are using a locking or merging-based VCS.
+
+ On a locking VCS, you will need to lock the old revision branch with
+@kbd{C-x v v}. You'll be asked to confirm, when you lock the old
+revision, that you really mean to create a new branch---if you say no,
+you'll be offered a chance to lock the latest revision instead. On
+a merging-based VCS you will skip this step.
+
+ Then make your changes and type @kbd{C-x v v} again to check in a new
+revision. This automatically creates a new branch starting from the
+selected revision. You need not specially request a new branch, because
+that's the only way to add a new revision at a point that is not the head
+of a branch.
+
+ After the branch is created, you ``stay'' on it. That means that
+subsequent check-ins create new revisions on that branch. To leave the
+branch, you must explicitly select a different revision with @kbd{C-u C-x
+v v}. To transfer changes from one branch to another, use the merge
+command, described in the next section.
+
+@node Merging
+@subsubsection Merging Branches
+
+@cindex merging changes
+ When you have finished the changes on a certain branch, you will
+often want to incorporate them into the file's main line of development
+(the trunk). This is not a trivial operation, because development might
+also have proceeded on the trunk, so that you must @dfn{merge} the
+changes into a file that has already been changed otherwise. VC allows
+you to do this (and other things) with the @code{vc-merge} command.
+
+@table @kbd
+@item C-x v m (vc-merge)
+Merge changes into the work file.
+@end table
+
+@kindex C-x v m
+@findex vc-merge
+ @kbd{C-x v m} (@code{vc-merge}) takes a set of changes and merges it
+into the current version of the work file. It firsts asks you in the
+minibuffer where the changes should come from. If you just type
+@key{RET}, Emacs merges any changes that were made on the same branch
+since you checked the file out (we call this @dfn{merging the news}).
+This is the common way to pick up recent changes from the repository,
+regardless of whether you have already changed the file yourself.
+
+ You can also enter a branch ID or a pair of revision IDs in
+the minibuffer. Then @kbd{C-x v m} finds the changes from that
+branch, or the differences between the two revisions you specified, and
+merges them into the current revision of the current file.
+
+ As an example, suppose that you have finished a certain feature on
+branch 1.3.1. In the meantime, development on the trunk has proceeded
+to revision 1.5. To merge the changes from the branch to the trunk,
+first go to the head revision of the trunk, by typing @kbd{C-u C-x v v
+@key{RET}}. Revision 1.5 is now current. If locking is used for the file,
+type @kbd{C-x v v} to lock revision 1.5 so that you can change it. Next,
+type @kbd{C-x v m 1.3.1 @key{RET}}. This takes the entire set of changes on
+branch 1.3.1 (relative to revision 1.3, where the branch started, up to
+the last revision on the branch) and merges it into the current revision
+of the work file. You can now check in the changed file, thus creating
+revision 1.6 containing the changes from the branch.
+
+ It is possible to do further editing after merging the branch, before
+the next check-in. But it is usually wiser to check in the merged
+revision, then lock it and make the further changes. This will keep
+a better record of the history of changes.
+
+@cindex conflicts
+@cindex resolving conflicts
+ When you merge changes into a file that has itself been modified, the
+changes might overlap. We call this situation a @dfn{conflict}, and
+reconciling the conflicting changes is called @dfn{resolving a
+conflict}.
+
+ Whenever conflicts occur during merging, VC detects them, tells you
+about them in the echo area, and asks whether you want help in merging.
+If you say yes, it starts an Ediff session (@pxref{Top,
+Ediff, Ediff, ediff, The Ediff Manual}).
+
+ If you say no, the conflicting changes are both inserted into the
+file, surrounded by @dfn{conflict markers}. The example below shows how
+a conflict region looks; the file is called @samp{name} and the current
+master file revision with user B's changes in it is 1.11.
+
+@c @w here is so CVS won't think this is a conflict.
+@smallexample
+@group
+@w{<}<<<<<< name
+ @var{User A's version}
+=======
+ @var{User B's version}
+@w{>}>>>>>> 1.11
+@end group
+@end smallexample
+
+@cindex vc-resolve-conflicts
+ Then you can resolve the conflicts by editing the file manually. Or
+you can type @code{M-x vc-resolve-conflicts} after visiting the file.
+This starts an Ediff session, as described above. Don't forget to
+check in the merged version afterwards.
+
+@node Multi-User Branching
+@subsubsection Multi-User Branching
+
+ It is often useful for multiple developers to work simultaneously on
+different branches of a file. CVS and later systems allow this by
+default; for RCS, it is possible if you create multiple source
+directories. Each source directory should have a link named
+@file{RCS} which points to a common directory of RCS master files.
+Then each source directory can have its own choice of selected
+revisions, but all share the same common RCS records.
+
+ This technique works reliably and automatically, provided that the
+source files contain RCS version headers
+@iftex
+(@pxref{Version Headers,,,emacs-xtra, Specialized Emacs Features}).
+@end iftex
+@ifnottex
+(@pxref{Version Headers}).
+@end ifnottex
+The headers enable Emacs to be sure, at all times, which revision
+ID is present in the work file.
+
+ If the files do not have version headers, you must instead tell Emacs
+explicitly in each session which branch you are working on. To do this,
+first find the file, then type @kbd{C-u C-x v v} and specify the correct
+branch ID. This ensures that Emacs knows which branch it is using
+during this particular editing session.
+
+@ifnottex
+@include vc2-xtra.texi
+@end ifnottex
+
+@node Directories
+@section File Directories
+
+@cindex file directory
+@cindex directory listing
+ The file system groups files into @dfn{directories}. A @dfn{directory
+listing} is a list of all the files in a directory. Emacs provides
+commands to create and delete directories, and to make directory
+listings in brief format (file names only) and verbose format (sizes,
+dates, and authors included). Emacs also includes a directory browser
+feature called Dired; see @ref{Dired}.
+
+@table @kbd
+@item C-x C-d @var{dir-or-pattern} @key{RET}
+Display a brief directory listing (@code{list-directory}).
+@item C-u C-x C-d @var{dir-or-pattern} @key{RET}
+Display a verbose directory listing.
+@item M-x make-directory @key{RET} @var{dirname} @key{RET}
+Create a new directory named @var{dirname}.
+@item M-x delete-directory @key{RET} @var{dirname} @key{RET}
+Delete the directory named @var{dirname}. It must be empty,
+or you get an error.
+@end table
+
+@findex list-directory
+@kindex C-x C-d
+ The command to display a directory listing is @kbd{C-x C-d}
+(@code{list-directory}). It reads using the minibuffer a file name
+which is either a directory to be listed or a wildcard-containing
+pattern for the files to be listed. For example,
+
+@example
+C-x C-d /u2/emacs/etc @key{RET}
+@end example
+
+@noindent
+lists all the files in directory @file{/u2/emacs/etc}. Here is an
+example of specifying a file name pattern:
+
+@example
+C-x C-d /u2/emacs/src/*.c @key{RET}
+@end example
+
+ Normally, @kbd{C-x C-d} displays a brief directory listing containing
+just file names. A numeric argument (regardless of value) tells it to
+make a verbose listing including sizes, dates, and owners (like
+@samp{ls -l}).
+
+@vindex list-directory-brief-switches
+@vindex list-directory-verbose-switches
+ The text of a directory listing is mostly obtained by running
+@code{ls} in an inferior process. Two Emacs variables control the
+switches passed to @code{ls}: @code{list-directory-brief-switches} is
+a string giving the switches to use in brief listings (@code{"-CF"} by
+default), and @code{list-directory-verbose-switches} is a string
+giving the switches to use in a verbose listing (@code{"-l"} by
+default).
+
+@vindex directory-free-space-program
+@vindex directory-free-space-args
+ In verbose directory listings, Emacs adds information about the
+amount of free space on the disk that contains the directory. To do
+this, it runs the program specified by
+@code{directory-free-space-program} with arguments
+@code{directory-free-space-args}.
+
+@node Comparing Files
+@section Comparing Files
+@cindex comparing files
+
+@findex diff
+@vindex diff-switches
+ The command @kbd{M-x diff} compares two files, displaying the
+differences in an Emacs buffer named @samp{*diff*}. It works by
+running the @code{diff} program, using options taken from the variable
+@code{diff-switches}. The value of @code{diff-switches} should be a
+string; the default is @code{"-c"} to specify a context diff.
+@xref{Top,, Diff, diff, Comparing and Merging Files}, for more
+information about @command{diff} output formats.
+
+@findex diff-backup
+ The command @kbd{M-x diff-backup} compares a specified file with its most
+recent backup. If you specify the name of a backup file,
+@code{diff-backup} compares it with the source file that it is a backup
+of.
+
+@findex compare-windows
+ The command @kbd{M-x compare-windows} compares the text in the
+current window with that in the next window. (For more information
+about windows in Emacs, @ref{Windows}.) Comparison starts at point in
+each window, after pushing each initial point value on the mark ring
+in its respective buffer. Then it moves point forward in each window,
+one character at a time, until it reaches characters that don't match.
+Then the command exits.
+
+ If point in the two windows is followed by non-matching text when
+the command starts, @kbd{M-x compare-windows} tries heuristically to
+advance up to matching text in the two windows, and then exits. So if
+you use @kbd{M-x compare-windows} repeatedly, each time it either
+skips one matching range or finds the start of another.
+
+@vindex compare-ignore-case
+@vindex compare-ignore-whitespace
+ With a numeric argument, @code{compare-windows} ignores changes in
+whitespace. If the variable @code{compare-ignore-case} is
+non-@code{nil}, the comparison ignores differences in case as well.
+If the variable @code{compare-ignore-whitespace} is non-@code{nil},
+@code{compare-windows} normally ignores changes in whitespace, and a
+prefix argument turns that off.
+
+@cindex Smerge mode
+@findex smerge-mode
+@cindex failed merges
+@cindex merges, failed
+@cindex comparing 3 files (@code{diff3})
+ You can use @kbd{M-x smerge-mode} to turn on Smerge mode, a minor
+mode for editing output from the @command{diff3} program. This is
+typically the result of a failed merge from a version control system
+``update'' outside VC, due to conflicting changes to a file. Smerge
+mode provides commands to resolve conflicts by selecting specific
+changes.
+
+@iftex
+@xref{Emerge,,, emacs-xtra, Specialized Emacs Features},
+@end iftex
+@ifnottex
+@xref{Emerge},
+@end ifnottex
+for the Emerge facility, which provides a powerful interface for
+merging files.
+
+@node Diff Mode
+@section Diff Mode
+@cindex Diff mode
+@findex diff-mode
+@cindex patches, editing
+
+ Diff mode is used for the output of @kbd{M-x diff}; it is also
+useful for editing patches and comparisons produced by the
+@command{diff} program. To select Diff mode manually, type @kbd{M-x
+diff-mode}.
+
+ One general feature of Diff mode is that manual edits to the patch
+automatically correct line numbers, including those in the hunk
+header, so that you can actually apply the edited patch. Diff mode
+treats each hunk location as an ``error message,'' so that you can use
+commands such as @kbd{C-x '} to visit the corresponding source
+locations. It also provides the following commands to navigate,
+manipulate and apply parts of patches:
+
+@table @kbd
+@item M-n
+Move to the next hunk-start (@code{diff-hunk-next}).
+
+@item M-p
+Move to the previous hunk-start (@code{diff-hunk-prev}).
+
+@item M-@}
+Move to the next file-start, in a multi-file patch
+(@code{diff-file-next}).
+
+@item M-@{
+Move to the previous file-start, in a multi-file patch
+(@code{diff-file-prev}).
+
+@item M-k
+Kill the hunk at point (@code{diff-hunk-kill}).
+
+@item M-K
+In a multi-file patch, kill the current file part.
+(@code{diff-file-kill}).
+
+@item C-c C-a
+Apply this hunk to its target file (@code{diff-apply-hunk}). With a
+prefix argument of @kbd{C-u}, revert this hunk.
+
+@item C-c C-c
+Go to the source corresponding to this hunk (@code{diff-goto-source}).
+
+@item C-c C-e
+Start an Ediff session with the patch (@code{diff-ediff-patch}).
+@xref{Top, Ediff, Ediff, ediff, The Ediff Manual}.
+
+@item C-c C-n
+Restrict the view to the current hunk (@code{diff-restrict-view}).
+@xref{Narrowing}. With a prefix argument of @kbd{C-u}, restrict the
+view to the current patch of a multiple file patch. To widen again,
+use @kbd{C-x n w}.
+
+@item C-c C-r
+Reverse the direction of comparison for the entire buffer
+(@code{diff-reverse-direction}).
+
+@item C-c C-s
+Split the hunk at point (@code{diff-split-hunk}). This is for
+manually editing patches, and only works with the unified diff format.
+
+@item C-c C-u
+Convert the entire buffer to unified format
+(@code{diff-context->unified}). With a prefix argument, convert
+unified format to context format. In Transient Mark mode, when the
+mark is active, this command operates only on the region.
+
+@item C-c C-w
+Refine the current hunk so that it disregards changes in whitespace
+(@code{diff-refine-hunk}).
+@end table
+
+ @kbd{C-x 4 a} in Diff mode operates on behalf of the target file,
+but gets the function name from the patch itself. @xref{Change Log}.
+This is useful for making log entries for functions that are deleted
+by the patch.
+
+@node Misc File Ops
+@section Miscellaneous File Operations
+
+ Emacs has commands for performing many other operations on files.
+All operate on one file; they do not accept wildcard file names.
+
+@findex view-file
+@cindex viewing
+@cindex View mode
+@cindex mode, View
+ @kbd{M-x view-file} allows you to scan or read a file by sequential
+screenfuls. It reads a file name argument using the minibuffer. After
+reading the file into an Emacs buffer, @code{view-file} displays the
+beginning. You can then type @key{SPC} to scroll forward one windowful,
+or @key{DEL} to scroll backward. Various other commands are provided
+for moving around in the file, but none for changing it; type @kbd{?}
+while viewing for a list of them. They are mostly the same as normal
+Emacs cursor motion commands. To exit from viewing, type @kbd{q}.
+The commands for viewing are defined by a special minor mode called View
+mode.
+
+ A related command, @kbd{M-x view-buffer}, views a buffer already present
+in Emacs. @xref{Misc Buffer}.
+
+@kindex C-x i
+@findex insert-file
+ @kbd{M-x insert-file} (also @kbd{C-x i}) inserts a copy of the
+contents of the specified file into the current buffer at point,
+leaving point unchanged before the contents and the mark after them.
+
+@findex insert-file-literally
+ @kbd{M-x insert-file-literally} is like @kbd{M-x insert-file},
+except the file is inserted ``literally'': it is treated as a sequence
+of @acronym{ASCII} characters with no special encoding or conversion,
+similar to the @kbd{M-x find-file-literally} command
+(@pxref{Visiting}).
+
+@findex write-region
+ @kbd{M-x write-region} is the inverse of @kbd{M-x insert-file}; it
+copies the contents of the region into the specified file. @kbd{M-x
+append-to-file} adds the text of the region to the end of the
+specified file. @xref{Accumulating Text}. The variable
+@code{write-region-inhibit-fsync} applies to these commands, as well
+as saving files; see @ref{Customize Save}.
+
+@findex delete-file
+@cindex deletion (of files)
+ @kbd{M-x delete-file} deletes the specified file, like the @code{rm}
+command in the shell. If you are deleting many files in one directory, it
+may be more convenient to use Dired (@pxref{Dired}).
+
+@findex rename-file
+ @kbd{M-x rename-file} reads two file names @var{old} and @var{new} using
+the minibuffer, then renames file @var{old} as @var{new}. If the file name
+@var{new} already exists, you must confirm with @kbd{yes} or renaming is not
+done; this is because renaming causes the old meaning of the name @var{new}
+to be lost. If @var{old} and @var{new} are on different file systems, the
+file @var{old} is copied and deleted.
+
+ If the argument @var{new} is just a directory name, the real new
+name is in that directory, with the same non-directory component as
+@var{old}. For example, @kbd{M-x rename-file RET ~/foo RET /tmp RET}
+renames @file{~/foo} to @file{/tmp/foo}. The same rule applies to all
+the remaining commands in this section. All of them ask for
+confirmation when the new file name already exists, too.
+
+@findex add-name-to-file
+@cindex hard links (creation)
+ The similar command @kbd{M-x add-name-to-file} is used to add an
+additional name to an existing file without removing its old name.
+The new name is created as a ``hard link'' to the existing file.
+The new name must belong on the same file system that the file is on.
+On MS-Windows, this command works only if the file resides in an NTFS
+file system. On MS-DOS, it works by copying the file.
+
+@findex copy-file
+@cindex copying files
+ @kbd{M-x copy-file} reads the file @var{old} and writes a new file
+named @var{new} with the same contents.
+
+@findex make-symbolic-link
+@cindex symbolic links (creation)
+ @kbd{M-x make-symbolic-link} reads two file names @var{target} and
+@var{linkname}, then creates a symbolic link named @var{linkname},
+which points at @var{target}. The effect is that future attempts to
+open file @var{linkname} will refer to whatever file is named
+@var{target} at the time the opening is done, or will get an error if
+the name @var{target} is nonexistent at that time. This command does
+not expand the argument @var{target}, so that it allows you to specify
+a relative name as the target of the link.
+
+ Not all systems support symbolic links; on systems that don't
+support them, this command is not defined.
+
+@node Compressed Files
+@section Accessing Compressed Files
+@cindex compression
+@cindex uncompression
+@cindex Auto Compression mode
+@cindex mode, Auto Compression
+@pindex gzip
+
+ Emacs automatically uncompresses compressed files when you visit
+them, and automatically recompresses them if you alter them and save
+them. Emacs recognizes compressed files by their file names. File
+names ending in @samp{.gz} indicate a file compressed with
+@code{gzip}. Other endings indicate other compression programs.
+
+ Automatic uncompression and compression apply to all the operations in
+which Emacs uses the contents of a file. This includes visiting it,
+saving it, inserting its contents into a buffer, loading it, and byte
+compiling it.
+
+@findex auto-compression-mode
+@vindex auto-compression-mode
+ To disable this feature, type the command @kbd{M-x
+auto-compression-mode}. You can disable it permanently by
+customizing the variable @code{auto-compression-mode}.
+
+@node File Archives
+@section File Archives
+@cindex mode, tar
+@cindex Tar mode
+@cindex file archives
+
+ A file whose name ends in @samp{.tar} is normally an @dfn{archive}
+made by the @code{tar} program. Emacs views these files in a special
+mode called Tar mode which provides a Dired-like list of the contents
+(@pxref{Dired}). You can move around through the list just as you
+would in Dired, and visit the subfiles contained in the archive.
+However, not all Dired commands are available in Tar mode.
+
+ If Auto Compression mode is enabled (@pxref{Compressed Files}), then
+Tar mode is used also for compressed archives---files with extensions
+@samp{.tgz}, @code{.tar.Z} and @code{.tar.gz}.
+
+ The keys @kbd{e}, @kbd{f} and @key{RET} all extract a component file
+into its own buffer. You can edit it there, and if you save the
+buffer, the edited version will replace the version in the Tar buffer.
+@kbd{v} extracts a file into a buffer in View mode. @kbd{o} extracts
+the file and displays it in another window, so you could edit the file
+and operate on the archive simultaneously. @kbd{d} marks a file for
+deletion when you later use @kbd{x}, and @kbd{u} unmarks a file, as in
+Dired. @kbd{C} copies a file from the archive to disk and @kbd{R}
+renames a file within the archive. @kbd{g} reverts the buffer from
+the archive on disk.
+
+ The keys @kbd{M}, @kbd{G}, and @kbd{O} change the file's permission
+bits, group, and owner, respectively.
+
+ If your display supports colors and the mouse, moving the mouse
+pointer across a file name highlights that file name, indicating that
+you can click on it. Clicking @kbd{Mouse-2} on the highlighted file
+name extracts the file into a buffer and displays that buffer.
+
+ Saving the Tar buffer writes a new version of the archive to disk with
+the changes you made to the components.
+
+ You don't need the @code{tar} program to use Tar mode---Emacs reads
+the archives directly. However, accessing compressed archives
+requires the appropriate uncompression program.
+
+@cindex Archive mode
+@cindex mode, archive
+@cindex @code{arc}
+@cindex @code{jar}
+@cindex @code{zip}
+@cindex @code{lzh}
+@cindex @code{zoo}
+@pindex arc
+@pindex jar
+@pindex zip
+@pindex lzh
+@pindex zoo
+@cindex Java class archives
+@cindex unzip archives
+ A separate but similar Archive mode is used for archives produced by
+the programs @code{arc}, @code{jar}, @code{lzh}, @code{zip}, and
+@code{zoo}, which have extensions corresponding to the program names.
+Archive mode also works for those @code{exe} files that are
+self-extracting executables.
+
+ The key bindings of Archive mode are similar to those in Tar mode,
+with the addition of the @kbd{m} key which marks a file for subsequent
+operations, and @kbd{M-@key{DEL}} which unmarks all the marked files.
+Also, the @kbd{a} key toggles the display of detailed file
+information, for those archive types where it won't fit in a single
+line. Operations such as renaming a subfile, or changing its mode or
+owner, are supported only for some of the archive formats.
+
+ Unlike Tar mode, Archive mode runs the archiving program to unpack
+and repack archives. Details of the program names and their options
+can be set in the @samp{Archive} Customize group. However, you don't
+need these programs to look at the archive table of contents, only to
+extract or manipulate the subfiles in the archive.
+
+@node Remote Files
+@section Remote Files
+
+@cindex Tramp
+@cindex FTP
+@cindex remote file access
+ You can refer to files on other machines using a special file name
+syntax:
+
+@example
+@group
+/@var{host}:@var{filename}
+/@var{user}@@@var{host}:@var{filename}
+/@var{user}@@@var{host}#@var{port}:@var{filename}
+/@var{method}:@var{user}@@@var{host}:@var{filename}
+/@var{method}:@var{user}@@@var{host}#@var{port}:@var{filename}
+@end group
+@end example
+
+@noindent
+To carry out this request, Emacs uses either the FTP program or a
+remote-login program such as @command{ssh}, @command{rlogin}, or
+@command{telnet}. You can always specify in the file name which
+method to use---for example,
+@file{/ftp:@var{user}@@@var{host}:@var{filename}} uses FTP, whereas
+@file{/ssh:@var{user}@@@var{host}:@var{filename}} uses @command{ssh}.
+When you don't specify a method in the file name, Emacs chooses
+the method as follows:
+
+@enumerate
+@item
+If the host name starts with @samp{ftp.} (with dot), then Emacs uses
+FTP.
+@item
+If the user name is @samp{ftp} or @samp{anonymous}, then Emacs uses
+FTP.
+@item
+Otherwise, Emacs uses @command{ssh}.
+@end enumerate
+
+@noindent
+Remote file access through FTP is handled by the Ange-FTP package, which
+is documented in the following. Remote file access through the other
+methods is handled by the Tramp package, which has its own manual.
+@xref{Top, The Tramp Manual,, tramp, The Tramp Manual}.
+
+When the Ange-FTP package is used, Emacs logs in through FTP using your
+user name or the name @var{user}. It may ask you for a password from
+time to time; this is used for logging in on @var{host}. The form using
+@var{port} allows you to access servers running on a non-default TCP
+port.
+
+@cindex backups for remote files
+@vindex ange-ftp-make-backup-files
+ If you want to disable backups for remote files, set the variable
+@code{ange-ftp-make-backup-files} to @code{nil}.
+
+ By default, the auto-save files (@pxref{Auto Save Files}) for remote
+files are made in the temporary file directory on the local machine.
+This is achieved using the variable @code{auto-save-file-name-transforms}.
+
+@cindex ange-ftp
+@vindex ange-ftp-default-user
+@cindex user name for remote file access
+ Normally, if you do not specify a user name in a remote file name,
+that means to use your own user name. But if you set the variable
+@code{ange-ftp-default-user} to a string, that string is used instead.
+
+@cindex anonymous FTP
+@vindex ange-ftp-generate-anonymous-password
+ To visit files accessible by anonymous FTP, you use special user
+names @samp{anonymous} or @samp{ftp}. Passwords for these user names
+are handled specially. The variable
+@code{ange-ftp-generate-anonymous-password} controls what happens: if
+the value of this variable is a string, then that string is used as
+the password; if non-@code{nil} (the default), then the value of
+@code{user-mail-address} is used; if @code{nil}, then Emacs prompts
+you for a password as usual.
+
+@cindex firewall, and accessing remote files
+@cindex gateway, and remote file access with @code{ange-ftp}
+@vindex ange-ftp-smart-gateway
+@vindex ange-ftp-gateway-host
+ Sometimes you may be unable to access files on a remote machine
+because a @dfn{firewall} in between blocks the connection for security
+reasons. If you can log in on a @dfn{gateway} machine from which the
+target files @emph{are} accessible, and whose FTP server supports
+gatewaying features, you can still use remote file names; all you have
+to do is specify the name of the gateway machine by setting the
+variable @code{ange-ftp-gateway-host}, and set
+@code{ange-ftp-smart-gateway} to @code{t}. Otherwise you may be able
+to make remote file names work, but the procedure is complex. You can
+read the instructions by typing @kbd{M-x finder-commentary @key{RET}
+ange-ftp @key{RET}}.
+
+@vindex file-name-handler-alist
+@cindex disabling remote files
+ You can entirely turn off the FTP file name feature by removing the
+entries @code{ange-ftp-completion-hook-function} and
+@code{ange-ftp-hook-function} from the variable
+@code{file-name-handler-alist}. You can turn off the feature in
+individual cases by quoting the file name with @samp{/:} (@pxref{Quoted
+File Names}).
+
+@node Quoted File Names
+@section Quoted File Names
+
+@cindex quoting file names
+@cindex file names, quote special characters
+ You can @dfn{quote} an absolute file name to prevent special
+characters and syntax in it from having their special effects.
+The way to do this is to add @samp{/:} at the beginning.
+
+ For example, you can quote a local file name which appears remote, to
+prevent it from being treated as a remote file name. Thus, if you have
+a directory named @file{/foo:} and a file named @file{bar} in it, you
+can refer to that file in Emacs as @samp{/:/foo:/bar}.
+
+ @samp{/:} can also prevent @samp{~} from being treated as a special
+character for a user's home directory. For example, @file{/:/tmp/~hack}
+refers to a file whose name is @file{~hack} in directory @file{/tmp}.
+
+ Quoting with @samp{/:} is also a way to enter in the minibuffer a
+file name that contains @samp{$}. In order for this to work, the
+@samp{/:} must be at the beginning of the minibuffer contents. (You
+can also double each @samp{$}; see @ref{File Names with $}.)
+
+ You can also quote wildcard characters with @samp{/:}, for visiting.
+For example, @file{/:/tmp/foo*bar} visits the file
+@file{/tmp/foo*bar}.
+
+ Another method of getting the same result is to enter
+@file{/tmp/foo[*]bar}, which is a wildcard specification that matches
+only @file{/tmp/foo*bar}. However, in many cases there is no need to
+quote the wildcard characters because even unquoted they give the
+right result. For example, if the only file name in @file{/tmp} that
+starts with @samp{foo} and ends with @samp{bar} is @file{foo*bar},
+then specifying @file{/tmp/foo*bar} will visit only
+@file{/tmp/foo*bar}.
+
+@node File Name Cache
+@section File Name Cache
+
+@cindex file name caching
+@cindex cache of file names
+@pindex find
+@kindex C-@key{TAB}
+@findex file-cache-minibuffer-complete
+ You can use the @dfn{file name cache} to make it easy to locate a
+file by name, without having to remember exactly where it is located.
+When typing a file name in the minibuffer, @kbd{C-@key{tab}}
+(@code{file-cache-minibuffer-complete}) completes it using the file
+name cache. If you repeat @kbd{C-@key{tab}}, that cycles through the
+possible completions of what you had originally typed. (However, note
+that the @kbd{C-@key{tab}} character cannot be typed on most text-only
+terminals.)
+
+ The file name cache does not fill up automatically. Instead, you
+load file names into the cache using these commands:
+
+@findex file-cache-add-directory
+@table @kbd
+@item M-x file-cache-add-directory @key{RET} @var{directory} @key{RET}
+Add each file name in @var{directory} to the file name cache.
+@item M-x file-cache-add-directory-using-find @key{RET} @var{directory} @key{RET}
+Add each file name in @var{directory} and all of its nested
+subdirectories to the file name cache.
+@item M-x file-cache-add-directory-using-locate @key{RET} @var{directory} @key{RET}
+Add each file name in @var{directory} and all of its nested
+subdirectories to the file name cache, using @command{locate} to find
+them all.
+@item M-x file-cache-add-directory-list @key{RET} @var{variable} @key{RET}
+Add each file name in each directory listed in @var{variable}
+to the file name cache. @var{variable} should be a Lisp variable
+such as @code{load-path} or @code{exec-path}, whose value is a list
+of directory names.
+@item M-x file-cache-clear-cache @key{RET}
+Clear the cache; that is, remove all file names from it.
+@end table
+
+ The file name cache is not persistent: it is kept and maintained
+only for the duration of the Emacs session. You can view the contents
+of the cache with the @code{file-cache-display} command.
+
+@node File Conveniences
+@section Convenience Features for Finding Files
+
+ In this section, we introduce some convenient facilities for finding
+recently-opened files, reading file names from a buffer, and viewing
+image files.
+
+@findex recentf-mode
+@vindex recentf-mode
+@findex recentf-save-list
+@findex recentf-edit-list
+ If you enable Recentf mode, with @kbd{M-x recentf-mode}, the
+@samp{File} menu includes a submenu containing a list of recently
+opened files. @kbd{M-x recentf-save-list} saves the current
+@code{recent-file-list} to a file, and @kbd{M-x recentf-edit-list}
+edits it.
+
+ The @kbd{M-x ffap} command generalizes @code{find-file} with more
+powerful heuristic defaults (@pxref{FFAP}), often based on the text at
+point. Partial Completion mode offers other features extending
+@code{find-file}, which can be used with @code{ffap}.
+@xref{Completion Options}.
+
+@findex image-mode
+@findex image-toggle-display
+@cindex images, viewing
+ Visiting image files automatically selects Image mode. This major
+mode allows you to toggle between displaying the file as an image in
+the Emacs buffer, and displaying its underlying text representation,
+using the command @kbd{C-c C-c} (@code{image-toggle-display}). This
+works only when Emacs can display the specific image type. If the
+displayed image is wider or taller than the frame, the usual point
+motion keys (@kbd{C-f}, @kbd{C-p}, and so forth) cause different parts
+of the image to be displayed.
+
+@findex thumbs-mode
+@findex mode, thumbs
+ See also the Image-Dired package (@pxref{Image-Dired}) for viewing
+images as thumbnails.
+
+@node Filesets
+@section Filesets
+@cindex filesets
+
+@findex filesets-init
+ If you regularly edit a certain group of files, you can define them
+as a @dfn{fileset}. This lets you perform certain operations, such as
+visiting, @code{query-replace}, and shell commands on all the files
+at once. To make use of filesets, you must first add the expression
+@code{(filesets-init)} to your @file{.emacs} file (@pxref{Init File}).
+This adds a @samp{Filesets} menu to the menu bar.
+
+@findex filesets-add-buffer
+@findex filesets-remove-buffer
+ The simplest way to define a fileset is by adding files to it one
+at a time. To add a file to fileset @var{name}, visit the file and
+type @kbd{M-x filesets-add-buffer @kbd{RET} @var{name} @kbd{RET}}. If
+there is no fileset @var{name}, this creates a new one, which
+initially creates only the current file. The command @kbd{M-x
+filesets-remove-buffer} removes the current file from a fileset.
+
+ You can also edit the list of filesets directly, with @kbd{M-x
+filesets-edit} (or by choosing @samp{Edit Filesets} from the
+@samp{Filesets} menu). The editing is performed in a Customize buffer
+(@pxref{Easy Customization}). Filesets need not be a simple list of
+files---you can also define filesets using regular expression matching
+file names. Some examples of these more complicated filesets are
+shown in the Customize buffer. Remember to select @samp{Save for
+future sessions} if you want to use the same filesets in future Emacs
+sessions.
+
+ You can use the command @kbd{M-x filesets-open} to visit all the
+files in a fileset, and @kbd{M-x filesets-close} to close them. Use
+@kbd{M-x filesets-run-cmd} to run a shell command on all the files in
+a fileset. These commands are also available from the @samp{Filesets}
+menu, where each existing fileset is represented by a submenu.
+
+ Emacs uses the concept of a fileset elsewhere @pxref{Version
+Control} to describe sets of files to be treated as a group for
+purposes of version-control operations. Those filesets are
+unnamed and do not persist across Emacs essions.
+
+@ignore
+ arch-tag: 768d32cb-e15a-4cc1-b7bf-62c00ee12250
+@end ignore
--- /dev/null
- @samp{bar}, not all of them, then you cannot use an ordinary
- @code{replace-string}. Instead, use @kbd{M-%} (@code{query-replace}).
+@c This is part of the Emacs manual.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002,
+@c 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+@c See file emacs.texi for copying conditions.
+@node Search, Fixit, Display, Top
+@chapter Searching and Replacement
+@cindex searching
+@cindex finding strings within text
+
+ Like other editors, Emacs has commands for searching for occurrences of
+a string. The principal search command is unusual in that it is
+@dfn{incremental}; it begins to search before you have finished typing the
+search string. There are also nonincremental search commands more like
+those of other editors.
+
+ Besides the usual @code{replace-string} command that finds all
+occurrences of one string and replaces them with another, Emacs has a
+more flexible replacement command called @code{query-replace}, which
+asks interactively which occurrences to replace. There are also
+commands to find and operate on all matches for a pattern.
+
+ You can also search multiple files under control of a tags
+table (@pxref{Tags Search}) or through the Dired @kbd{A} command
+(@pxref{Operating on Files}), or ask the @code{grep} program to do it
+(@pxref{Grep Searching}).
+
+
+@menu
+* Incremental Search:: Search happens as you type the string.
+* Nonincremental Search:: Specify entire string and then search.
+* Word Search:: Search for sequence of words.
+* Regexp Search:: Search for match for a regexp.
+* Regexps:: Syntax of regular expressions.
+* Regexp Backslash:: Regular expression constructs starting with `\'.
+* Regexp Example:: A complex regular expression explained.
+* Search Case:: To ignore case while searching, or not.
+* Replace:: Search, and replace some or all matches.
+* Other Repeating Search:: Operating on all matches for some regexp.
+@end menu
+
+@node Incremental Search
+@section Incremental Search
+@cindex incremental search
+@cindex isearch
+
+ An incremental search begins searching as soon as you type the first
+character of the search string. As you type in the search string, Emacs
+shows you where the string (as you have typed it so far) would be
+found. When you have typed enough characters to identify the place you
+want, you can stop. Depending on what you plan to do next, you may or
+may not need to terminate the search explicitly with @key{RET}.
+
+@table @kbd
+@item C-s
+Incremental search forward (@code{isearch-forward}).
+@item C-r
+Incremental search backward (@code{isearch-backward}).
+@end table
+
+@menu
+* Basic Isearch:: Basic incremental search commands.
+* Repeat Isearch:: Searching for the same string again.
+* Error in Isearch:: When your string is not found.
+* Special Isearch:: Special input in incremental search.
+* Non-ASCII Isearch:: How to search for non-ASCII characters.
+* Isearch Yank:: Commands that grab text into the search string
+ or else edit the search string.
+* Highlight Isearch:: Isearch highlights the other possible matches.
+* Isearch Scroll:: Scrolling during an incremental search.
+* Slow Isearch:: Incremental search features for slow terminals.
+@end menu
+
+@node Basic Isearch
+@subsection Basics of Incremental Search
+
+@kindex C-s
+@findex isearch-forward
+ @kbd{C-s} starts a forward incremental search. It reads characters
+from the keyboard, and moves point past the next occurrence of those
+characters. If you type @kbd{C-s} and then @kbd{F}, that puts the
+cursor after the first @samp{F} (the first following the starting point, since
+this is a forward search). Then if you type an @kbd{O}, you will see
+the cursor move to just after the first @samp{FO} (the @samp{F} in that
+@samp{FO} may or may not be the first @samp{F}). After another
+@kbd{O}, the cursor moves to just after the first @samp{FOO} after the place
+where you started the search. At each step, the buffer text that
+matches the search string is highlighted, if the terminal can do that;
+the current search string is always displayed in the echo area.
+
+ If you make a mistake in typing the search string, you can cancel
+characters with @key{DEL}. Each @key{DEL} cancels the last character of
+search string. This does not happen until Emacs is ready to read another
+input character; first it must either find, or fail to find, the character
+you want to erase. If you do not want to wait for this to happen, use
+@kbd{C-g} as described below.
+
+ When you are satisfied with the place you have reached, you can type
+@key{RET}, which stops searching, leaving the cursor where the search
+brought it. Also, any command not specially meaningful in searches
+stops the searching and is then executed. Thus, typing @kbd{C-a}
+would exit the search and then move to the beginning of the line.
+@key{RET} is necessary only if the next command you want to type is a
+printing character, @key{DEL}, @key{RET}, or another character that is
+special within searches (@kbd{C-q}, @kbd{C-w}, @kbd{C-r}, @kbd{C-s},
+@kbd{C-y}, @kbd{M-y}, @kbd{M-r}, @kbd{M-c}, @kbd{M-e}, and some other
+meta-characters).
+
+ When you exit the incremental search, it sets the mark where point
+@emph{was} before the search. That is convenient for moving back
+there. In Transient Mark mode, incremental search sets the mark
+without activating it, and does so only if the mark is not already
+active.
+
+@node Repeat Isearch
+@subsection Repeating Incremental Search
+
+ Sometimes you search for @samp{FOO} and find one, but not the one you
+expected to find. There was a second @samp{FOO} that you forgot
+about, before the one you were aiming for. In this event, type
+another @kbd{C-s} to move to the next occurrence of the search string.
+You can repeat this any number of times. If you overshoot, you can
+cancel some @kbd{C-s} characters with @key{DEL}.
+
+ After you exit a search, you can search for the same string again by
+typing just @kbd{C-s C-s}: the first @kbd{C-s} is the key that invokes
+incremental search, and the second @kbd{C-s} means ``search again.''
+
+ If a search is failing and you ask to repeat it by typing another
+@kbd{C-s}, it starts again from the beginning of the buffer.
+Repeating a failing reverse search with @kbd{C-r} starts again from
+the end. This is called @dfn{wrapping around}, and @samp{Wrapped}
+appears in the search prompt once this has happened. If you keep on
+going past the original starting point of the search, it changes to
+@samp{Overwrapped}, which means that you are revisiting matches that
+you have already seen.
+
+ To reuse earlier search strings, use the @dfn{search ring}. The
+commands @kbd{M-p} and @kbd{M-n} move through the ring to pick a search
+string to reuse. These commands leave the selected search ring element
+in the minibuffer, where you can edit it. To edit the current search
+string in the minibuffer without replacing it with items from the
+search ring, type @kbd{M-e}. Type @kbd{C-s} or @kbd{C-r}
+to terminate editing the string and search for it.
+
+ You can change to searching backwards with @kbd{C-r}. For instance,
+if you are searching forward but you realize you were looking for
+something above the starting point, you can do this. Repeated
+@kbd{C-r} keeps looking for more occurrences backwards. A @kbd{C-s}
+starts going forwards again. @kbd{C-r} in a search can be canceled
+with @key{DEL}.
+
+@kindex C-r
+@findex isearch-backward
+ If you know initially that you want to search backwards, you can use
+@kbd{C-r} instead of @kbd{C-s} to start the search, because @kbd{C-r}
+as a key runs a command (@code{isearch-backward}) to search backward.
+A backward search finds matches that end before the starting point,
+just as a forward search finds matches that begin after it.
+
+@node Error in Isearch
+@subsection Errors in Incremental Search
+
+ If your string is not found at all, the echo area says @samp{Failing
+I-Search}. The cursor is after the place where Emacs found as much of your
+string as it could. Thus, if you search for @samp{FOOT}, and there is no
+@samp{FOOT}, you might see the cursor after the @samp{FOO} in @samp{FOOL}.
+At this point there are several things you can do. If your string was
+mistyped, you can rub some of it out and correct it. If you like the place
+you have found, you can type @key{RET} or some other Emacs command to
+remain there. Or you can type @kbd{C-g}, which
+removes from the search string the characters that could not be found (the
+@samp{T} in @samp{FOOT}), leaving those that were found (the @samp{FOO} in
+@samp{FOOT}). A second @kbd{C-g} at that point cancels the search
+entirely, returning point to where it was when the search started.
+
+@cindex quitting (in search)
+ The @kbd{C-g} ``quit'' character does special things during searches;
+just what it does depends on the status of the search. If the search has
+found what you specified and is waiting for input, @kbd{C-g} cancels the
+entire search. The cursor moves back to where you started the search. If
+@kbd{C-g} is typed when there are characters in the search string that have
+not been found---because Emacs is still searching for them, or because it
+has failed to find them---then the search string characters which have not
+been found are discarded from the search string. With them gone, the
+search is now successful and waiting for more input, so a second @kbd{C-g}
+will cancel the entire search.
+
+@node Special Isearch
+@subsection Special Input for Incremental Search
+
+ An upper-case letter in the search string makes the search
+case-sensitive. If you delete the upper-case character from the search
+string, it ceases to have this effect. @xref{Search Case}.
+
+ To search for a newline, type @kbd{C-j}. To search for another
+control character, such as control-S or carriage return, you must quote
+it by typing @kbd{C-q} first. This function of @kbd{C-q} is analogous
+to its use for insertion (@pxref{Inserting Text}): it causes the
+following character to be treated the way any ``ordinary'' character is
+treated in the same context. You can also specify a character by its
+octal code: enter @kbd{C-q} followed by a sequence of octal digits.
+
+ @kbd{M-%} typed in incremental search invokes @code{query-replace}
+or @code{query-replace-regexp} (depending on search mode) with the
+current search string used as the string to replace. @xref{Query
+Replace}.
+
+ Entering @key{RET} when the search string is empty launches
+nonincremental search (@pxref{Nonincremental Search}).
+
+@vindex isearch-mode-map
+ To customize the special characters that incremental search understands,
+alter their bindings in the keymap @code{isearch-mode-map}. For a list
+of bindings, look at the documentation of @code{isearch-mode} with
+@kbd{C-h f isearch-mode @key{RET}}.
+
+@node Non-ASCII Isearch
+@subsection Isearch for Non-@acronym{ASCII} Characters
+@cindex searching for non-@acronym{ASCII} characters
+@cindex input method, during incremental search
+
+ To enter non-@acronym{ASCII} characters in an incremental search,
+you can use @kbd{C-q} (see the previous section), but it is easier to
+use an input method (@pxref{Input Methods}). If an input method is
+enabled in the current buffer when you start the search, you can use
+it in the search string also. Emacs indicates that by including the
+input method mnemonic in its prompt, like this:
+
+@example
+I-search [@var{im}]:
+@end example
+
+@noindent
+@findex isearch-toggle-input-method
+@findex isearch-toggle-specified-input-method
+where @var{im} is the mnemonic of the active input method.
+
+ You can toggle (enable or disable) the input method while you type
+the search string with @kbd{C-\} (@code{isearch-toggle-input-method}).
+You can turn on a certain (non-default) input method with @kbd{C-^}
+(@code{isearch-toggle-specified-input-method}), which prompts for the
+name of the input method. The input method you enable during
+incremental search remains enabled in the current buffer afterwards.
+
+@node Isearch Yank
+@subsection Isearch Yanking
+
+ The characters @kbd{C-w} and @kbd{C-y} can be used in incremental
+search to grab text from the buffer into the search string. This
+makes it convenient to search for another occurrence of text at point.
+@kbd{C-w} copies the character or word after point as part of the
+search string, advancing point over it. (The decision, whether to
+copy a character or a word, is heuristic.) Another @kbd{C-s} to
+repeat the search will then search for a string including that
+character or word.
+
+ @kbd{C-y} is similar to @kbd{C-w} but copies all the rest of the
+current line into the search string. If point is already at the end
+of a line, it grabs the entire next line. Both @kbd{C-y} and
+@kbd{C-w} convert the text they copy to lower case if the search is
+currently not case-sensitive; this is so the search remains
+case-insensitive.
+
+ @kbd{C-M-w} and @kbd{C-M-y} modify the search string by only one
+character at a time: @kbd{C-M-w} deletes the last character from the
+search string and @kbd{C-M-y} copies the character after point to the
+end of the search string. An alternative method to add the character
+after point into the search string is to enter the minibuffer by
+@kbd{M-e} and to type @kbd{C-f} at the end of the search string in the
+minibuffer.
+
+ The character @kbd{M-y} copies text from the kill ring into the search
+string. It uses the same text that @kbd{C-y} as a command would yank.
+@kbd{Mouse-2} in the echo area does the same.
+@xref{Yanking}.
+
+@node Highlight Isearch
+@subsection Lazy Search Highlighting
+@cindex lazy search highlighting
+@vindex isearch-lazy-highlight
+
+ When you pause for a little while during incremental search, it
+highlights all other possible matches for the search string. This
+makes it easier to anticipate where you can get to by typing @kbd{C-s}
+or @kbd{C-r} to repeat the search. The short delay before highlighting
+other matches helps indicate which match is the current one.
+If you don't like this feature, you can turn it off by setting
+@code{isearch-lazy-highlight} to @code{nil}.
+
+@cindex faces for highlighting search matches
+ You can control how this highlighting looks by customizing the faces
+@code{isearch} (used for the current match) and @code{lazy-highlight}
+(for all the other matches).
+
+@node Isearch Scroll
+@subsection Scrolling During Incremental Search
+
+ You can enable the use of vertical scrolling during incremental
+search (without exiting the search) by setting the customizable
+variable @code{isearch-allow-scroll} to a non-@code{nil} value. This
+applies to using the vertical scroll-bar and to certain keyboard
+commands such as @kbd{@key{PRIOR}} (@code{scroll-down}),
+@kbd{@key{NEXT}} (@code{scroll-up}) and @kbd{C-l} (@code{recenter}).
+You must run these commands via their key sequences to stay in the
+search---typing @kbd{M-x} will terminate the search. You can give
+prefix arguments to these commands in the usual way.
+
+ This feature won't let you scroll the current match out of visibility,
+however.
+
+ The feature also affects some other commands, such as @kbd{C-x 2}
+(@code{split-window-vertically}) and @kbd{C-x ^}
+(@code{enlarge-window}) which don't exactly scroll but do affect where
+the text appears on the screen. In general, it applies to any command
+whose name has a non-@code{nil} @code{isearch-scroll} property. So you
+can control which commands are affected by changing these properties.
+
+ For example, to make @kbd{C-h l} usable within an incremental search
+in all future Emacs sessions, use @kbd{C-h c} to find what command it
+runs. (You type @kbd{C-h c C-h l}; it says @code{view-lossage}.)
+Then you can put the following line in your @file{.emacs} file
+(@pxref{Init File}):
+
+@example
+(put 'view-lossage 'isearch-scroll t)
+@end example
+
+@noindent
+This feature can be applied to any command that doesn't permanently
+change point, the buffer contents, the match data, the current buffer,
+or the selected window and frame. The command must not itself attempt
+an incremental search.
+
+@node Slow Isearch
+@subsection Slow Terminal Incremental Search
+
+ Incremental search on a slow terminal uses a modified style of display
+that is designed to take less time. Instead of redisplaying the buffer at
+each place the search gets to, it creates a new single-line window and uses
+that to display the line that the search has found. The single-line window
+comes into play as soon as point moves outside of the text that is already
+on the screen.
+
+ When you terminate the search, the single-line window is removed.
+Emacs then redisplays the window in which the search was done, to show
+its new position of point.
+
+@vindex search-slow-speed
+ The slow terminal style of display is used when the terminal baud rate is
+less than or equal to the value of the variable @code{search-slow-speed},
+initially 1200. See also the discussion of the variable @code{baud-rate}
+(@pxref{baud-rate,, Customization of Display}).
+
+@vindex search-slow-window-lines
+ The number of lines to use in slow terminal search display is controlled
+by the variable @code{search-slow-window-lines}. Its normal value is 1.
+
+@node Nonincremental Search
+@section Nonincremental Search
+@cindex nonincremental search
+
+ Emacs also has conventional nonincremental search commands, which require
+you to type the entire search string before searching begins.
+
+@table @kbd
+@item C-s @key{RET} @var{string} @key{RET}
+Search for @var{string}.
+@item C-r @key{RET} @var{string} @key{RET}
+Search backward for @var{string}.
+@end table
+
+ To do a nonincremental search, first type @kbd{C-s @key{RET}}. This
+enters the minibuffer to read the search string; terminate the string
+with @key{RET}, and then the search takes place. If the string is not
+found, the search command signals an error.
+
+ When you type @kbd{C-s @key{RET}}, the @kbd{C-s} invokes incremental
+search as usual. That command is specially programmed to invoke
+nonincremental search, @code{search-forward}, if the string you
+specify is empty. (Such an empty argument would otherwise be
+useless.) But it does not call @code{search-forward} right away. First
+it checks the next input character to see if is @kbd{C-w},
+which specifies a word search.
+@ifnottex
+@xref{Word Search}.
+@end ifnottex
+@kbd{C-r @key{RET}} does likewise, for a reverse incremental search.
+
+@findex search-forward
+@findex search-backward
+ Forward and backward nonincremental searches are implemented by the
+commands @code{search-forward} and @code{search-backward}. These
+commands may be bound to keys in the usual manner. The feature that you
+can get to them via the incremental search commands exists for
+historical reasons, and to avoid the need to find separate key sequences
+for them.
+
+@node Word Search
+@section Word Search
+@cindex word search
+
+ Word search searches for a sequence of words without regard to how the
+words are separated. More precisely, you type a string of many words,
+using single spaces to separate them, and the string can be found even
+if there are multiple spaces, newlines, or other punctuation characters
+between these words.
+
+ Word search is useful for editing a printed document made with a text
+formatter. If you edit while looking at the printed, formatted version,
+you can't tell where the line breaks are in the source file. With word
+search, you can search without having to know them.
+
+@table @kbd
+@item C-s @key{RET} C-w @var{words} @key{RET}
+Search for @var{words}, ignoring details of punctuation.
+@item C-r @key{RET} C-w @var{words} @key{RET}
+Search backward for @var{words}, ignoring details of punctuation.
+@end table
+
+ Word search as a special case of nonincremental search is invoked
+with @kbd{C-s @key{RET} C-w}. This is followed by the search string,
+which must always be terminated with @key{RET}. Being nonincremental,
+this search does not start until the argument is terminated. It works
+by constructing a regular expression and searching for that; see
+@ref{Regexp Search}.
+
+ Use @kbd{C-r @key{RET} C-w} to do backward word search.
+
+ You can also invoke word search with @kbd{C-s M-e C-w} or @kbd{C-r
+M-e C-w} followed by the search string and terminated with @key{RET},
+@kbd{C-s} or @kbd{C-r}. This puts word search into incremental mode
+where you can use all keys available for incremental search. However,
+when you type more words in incremental word search, it will fail
+until you type complete words.
+
+@findex word-search-forward
+@findex word-search-backward
+ Forward and backward word searches are implemented by the commands
+@code{word-search-forward} and @code{word-search-backward}. These
+commands may be bound to keys in the usual manner. They are available
+via the incremental search commands both for historical reasons and
+to avoid the need to find separate key sequences for them.
+
+@node Regexp Search
+@section Regular Expression Search
+@cindex regular expression
+@cindex regexp
+
+ A @dfn{regular expression} (@dfn{regexp}, for short) is a pattern
+that denotes a class of alternative strings to match, possibly
+infinitely many. GNU Emacs provides both incremental and
+nonincremental ways to search for a match for a regexp. The syntax of
+regular expressions is explained in the following section.
+
+@kindex C-M-s
+@findex isearch-forward-regexp
+@kindex C-M-r
+@findex isearch-backward-regexp
+ Incremental search for a regexp is done by typing @kbd{C-M-s}
+(@code{isearch-forward-regexp}), by invoking @kbd{C-s} with a
+prefix argument (whose value does not matter), or by typing @kbd{M-r}
+within a forward incremental search. This command reads a
+search string incrementally just like @kbd{C-s}, but it treats the
+search string as a regexp rather than looking for an exact match
+against the text in the buffer. Each time you add text to the search
+string, you make the regexp longer, and the new regexp is searched
+for. To search backward for a regexp, use @kbd{C-M-r}
+(@code{isearch-backward-regexp}), @kbd{C-r} with a prefix argument,
+or @kbd{M-r} within a backward incremental search.
+
+ All of the control characters that do special things within an
+ordinary incremental search have the same function in incremental regexp
+search. Typing @kbd{C-s} or @kbd{C-r} immediately after starting the
+search retrieves the last incremental search regexp used; that is to
+say, incremental regexp and non-regexp searches have independent
+defaults. They also have separate search rings that you can access with
+@kbd{M-p} and @kbd{M-n}.
+
+@vindex search-whitespace-regexp
+ If you type @key{SPC} in incremental regexp search, it matches any
+sequence of whitespace characters, including newlines. If you want to
+match just a space, type @kbd{C-q @key{SPC}}. You can control what a
+bare space matches by setting the variable
+@code{search-whitespace-regexp} to the desired regexp.
+
+ In some cases, adding characters to the regexp in an incremental regexp
+search can make the cursor move back and start again. For example, if
+you have searched for @samp{foo} and you add @samp{\|bar}, the cursor
+backs up in case the first @samp{bar} precedes the first @samp{foo}.
+
+ Forward and backward regexp search are not symmetrical, because
+regexp matching in Emacs always operates forward, starting with the
+beginning of the regexp. Thus, forward regexp search scans forward,
+trying a forward match at each possible starting position. Backward
+regexp search scans backward, trying a forward match at each possible
+starting position. These search methods are not mirror images.
+
+@findex re-search-forward
+@findex re-search-backward
+ Nonincremental search for a regexp is done by the functions
+@code{re-search-forward} and @code{re-search-backward}. You can invoke
+these with @kbd{M-x}, or bind them to keys, or invoke them by way of
+incremental regexp search with @kbd{C-M-s @key{RET}} and @kbd{C-M-r
+@key{RET}}.
+
+ If you use the incremental regexp search commands with a prefix
+argument, they perform ordinary string search, like
+@code{isearch-forward} and @code{isearch-backward}. @xref{Incremental
+Search}.
+
+@node Regexps
+@section Syntax of Regular Expressions
+@cindex syntax of regexps
+
+ This manual describes regular expression features that users
+typically want to use. There are additional features that are
+mainly used in Lisp programs; see @ref{Regular Expressions,,,
+elisp, The Emacs Lisp Reference Manual}.
+
+ Regular expressions have a syntax in which a few characters are
+special constructs and the rest are @dfn{ordinary}. An ordinary
+character is a simple regular expression which matches that same
+character and nothing else. The special characters are @samp{$},
+@samp{^}, @samp{.}, @samp{*}, @samp{+}, @samp{?}, @samp{[}, and
+@samp{\}. The character @samp{]} is special if it ends a character
+alternative (see later). The character @samp{-} is special inside a
+character alternative. Any other character appearing in a regular
+expression is ordinary, unless a @samp{\} precedes it. (When you use
+regular expressions in a Lisp program, each @samp{\} must be doubled,
+see the example near the end of this section.)
+
+ For example, @samp{f} is not a special character, so it is ordinary, and
+therefore @samp{f} is a regular expression that matches the string
+@samp{f} and no other string. (It does @emph{not} match the string
+@samp{ff}.) Likewise, @samp{o} is a regular expression that matches
+only @samp{o}. (When case distinctions are being ignored, these regexps
+also match @samp{F} and @samp{O}, but we consider this a generalization
+of ``the same string,'' rather than an exception.)
+
+ Any two regular expressions @var{a} and @var{b} can be concatenated. The
+result is a regular expression which matches a string if @var{a} matches
+some amount of the beginning of that string and @var{b} matches the rest of
+the string.@refill
+
+ As a simple example, we can concatenate the regular expressions @samp{f}
+and @samp{o} to get the regular expression @samp{fo}, which matches only
+the string @samp{fo}. Still trivial. To do something nontrivial, you
+need to use one of the special characters. Here is a list of them.
+
+@table @asis
+@item @kbd{.}@: @r{(Period)}
+is a special character that matches any single character except a newline.
+Using concatenation, we can make regular expressions like @samp{a.b}, which
+matches any three-character string that begins with @samp{a} and ends with
+@samp{b}.@refill
+
+@item @kbd{*}
+is not a construct by itself; it is a postfix operator that means to
+match the preceding regular expression repetitively as many times as
+possible. Thus, @samp{o*} matches any number of @samp{o}s (including no
+@samp{o}s).
+
+@samp{*} always applies to the @emph{smallest} possible preceding
+expression. Thus, @samp{fo*} has a repeating @samp{o}, not a repeating
+@samp{fo}. It matches @samp{f}, @samp{fo}, @samp{foo}, and so on.
+
+The matcher processes a @samp{*} construct by matching, immediately,
+as many repetitions as can be found. Then it continues with the rest
+of the pattern. If that fails, backtracking occurs, discarding some
+of the matches of the @samp{*}-modified construct in case that makes
+it possible to match the rest of the pattern. For example, in matching
+@samp{ca*ar} against the string @samp{caaar}, the @samp{a*} first
+tries to match all three @samp{a}s; but the rest of the pattern is
+@samp{ar} and there is only @samp{r} left to match, so this try fails.
+The next alternative is for @samp{a*} to match only two @samp{a}s.
+With this choice, the rest of the regexp matches successfully.@refill
+
+@item @kbd{+}
+is a postfix operator, similar to @samp{*} except that it must match
+the preceding expression at least once. So, for example, @samp{ca+r}
+matches the strings @samp{car} and @samp{caaaar} but not the string
+@samp{cr}, whereas @samp{ca*r} matches all three strings.
+
+@item @kbd{?}
+is a postfix operator, similar to @samp{*} except that it can match the
+preceding expression either once or not at all. For example,
+@samp{ca?r} matches @samp{car} or @samp{cr}; nothing else.
+
+@item @kbd{*?}, @kbd{+?}, @kbd{??}
+@cindex non-greedy regexp matching
+are non-greedy variants of the operators above. The normal operators
+@samp{*}, @samp{+}, @samp{?} are @dfn{greedy} in that they match as
+much as they can, as long as the overall regexp can still match. With
+a following @samp{?}, they are non-greedy: they will match as little
+as possible.
+
+Thus, both @samp{ab*} and @samp{ab*?} can match the string @samp{a}
+and the string @samp{abbbb}; but if you try to match them both against
+the text @samp{abbb}, @samp{ab*} will match it all (the longest valid
+match), while @samp{ab*?} will match just @samp{a} (the shortest
+valid match).
+
+Non-greedy operators match the shortest possible string starting at a
+given starting point; in a forward search, though, the earliest
+possible starting point for match is always the one chosen. Thus, if
+you search for @samp{a.*?$} against the text @samp{abbab} followed by
+a newline, it matches the whole string. Since it @emph{can} match
+starting at the first @samp{a}, it does.
+
+@item @kbd{\@{@var{n}\@}}
+is a postfix operator that specifies repetition @var{n} times---that
+is, the preceding regular expression must match exactly @var{n} times
+in a row. For example, @samp{x\@{4\@}} matches the string @samp{xxxx}
+and nothing else.
+
+@item @kbd{\@{@var{n},@var{m}\@}}
+is a postfix operator that specifies repetition between @var{n} and
+@var{m} times---that is, the preceding regular expression must match
+at least @var{n} times, but no more than @var{m} times. If @var{m} is
+omitted, then there is no upper limit, but the preceding regular
+expression must match at least @var{n} times.@* @samp{\@{0,1\@}} is
+equivalent to @samp{?}. @* @samp{\@{0,\@}} is equivalent to
+@samp{*}. @* @samp{\@{1,\@}} is equivalent to @samp{+}.
+
+@item @kbd{[ @dots{} ]}
+is a @dfn{character set}, which begins with @samp{[} and is terminated
+by @samp{]}. In the simplest case, the characters between the two
+brackets are what this set can match.
+
+Thus, @samp{[ad]} matches either one @samp{a} or one @samp{d}, and
+@samp{[ad]*} matches any string composed of just @samp{a}s and @samp{d}s
+(including the empty string), from which it follows that @samp{c[ad]*r}
+matches @samp{cr}, @samp{car}, @samp{cdr}, @samp{caddaar}, etc.
+
+You can also include character ranges in a character set, by writing the
+starting and ending characters with a @samp{-} between them. Thus,
+@samp{[a-z]} matches any lower-case @acronym{ASCII} letter. Ranges may be
+intermixed freely with individual characters, as in @samp{[a-z$%.]},
+which matches any lower-case @acronym{ASCII} letter or @samp{$}, @samp{%} or
+period.
+
+Note that the usual regexp special characters are not special inside a
+character set. A completely different set of special characters exists
+inside character sets: @samp{]}, @samp{-} and @samp{^}.
+
+To include a @samp{]} in a character set, you must make it the first
+character. For example, @samp{[]a]} matches @samp{]} or @samp{a}. To
+include a @samp{-}, write @samp{-} as the first or last character of the
+set, or put it after a range. Thus, @samp{[]-]} matches both @samp{]}
+and @samp{-}.
+
+To include @samp{^} in a set, put it anywhere but at the beginning of
+the set. (At the beginning, it complements the set---see below.)
+
+When you use a range in case-insensitive search, you should write both
+ends of the range in upper case, or both in lower case, or both should
+be non-letters. The behavior of a mixed-case range such as @samp{A-z}
+is somewhat ill-defined, and it may change in future Emacs versions.
+
+@item @kbd{[^ @dots{} ]}
+@samp{[^} begins a @dfn{complemented character set}, which matches any
+character except the ones specified. Thus, @samp{[^a-z0-9A-Z]} matches
+all characters @emph{except} @acronym{ASCII} letters and digits.
+
+@samp{^} is not special in a character set unless it is the first
+character. The character following the @samp{^} is treated as if it
+were first (in other words, @samp{-} and @samp{]} are not special there).
+
+A complemented character set can match a newline, unless newline is
+mentioned as one of the characters not to match. This is in contrast to
+the handling of regexps in programs such as @code{grep}.
+
+@item @kbd{^}
+is a special character that matches the empty string, but only at the
+beginning of a line in the text being matched. Otherwise it fails to
+match anything. Thus, @samp{^foo} matches a @samp{foo} that occurs at
+the beginning of a line.
+
+For historical compatibility reasons, @samp{^} can be used with this
+meaning only at the beginning of the regular expression, or after
+@samp{\(} or @samp{\|}.
+
+@item @kbd{$}
+is similar to @samp{^} but matches only at the end of a line. Thus,
+@samp{x+$} matches a string of one @samp{x} or more at the end of a line.
+
+For historical compatibility reasons, @samp{$} can be used with this
+meaning only at the end of the regular expression, or before @samp{\)}
+or @samp{\|}.
+
+@item @kbd{\}
+has two functions: it quotes the special characters (including
+@samp{\}), and it introduces additional special constructs.
+
+Because @samp{\} quotes special characters, @samp{\$} is a regular
+expression that matches only @samp{$}, and @samp{\[} is a regular
+expression that matches only @samp{[}, and so on.
+
+See the following section for the special constructs that begin
+with @samp{\}.
+@end table
+
+ Note: for historical compatibility, special characters are treated as
+ordinary ones if they are in contexts where their special meanings make no
+sense. For example, @samp{*foo} treats @samp{*} as ordinary since there is
+no preceding expression on which the @samp{*} can act. It is poor practice
+to depend on this behavior; it is better to quote the special character anyway,
+regardless of where it appears.
+
+As a @samp{\} is not special inside a character alternative, it can
+never remove the special meaning of @samp{-} or @samp{]}. So you
+should not quote these characters when they have no special meaning
+either. This would not clarify anything, since backslashes can
+legitimately precede these characters where they @emph{have} special
+meaning, as in @samp{[^\]} (@code{"[^\\]"} for Lisp string syntax),
+which matches any single character except a backslash.
+
+@node Regexp Backslash
+@section Backslash in Regular Expressions
+
+ For the most part, @samp{\} followed by any character matches only
+that character. However, there are several exceptions: two-character
+sequences starting with @samp{\} that have special meanings. The
+second character in the sequence is always an ordinary character when
+used on its own. Here is a table of @samp{\} constructs.
+
+@table @kbd
+@item \|
+specifies an alternative. Two regular expressions @var{a} and @var{b}
+with @samp{\|} in between form an expression that matches some text if
+either @var{a} matches it or @var{b} matches it. It works by trying to
+match @var{a}, and if that fails, by trying to match @var{b}.
+
+Thus, @samp{foo\|bar} matches either @samp{foo} or @samp{bar}
+but no other string.@refill
+
+@samp{\|} applies to the largest possible surrounding expressions. Only a
+surrounding @samp{\( @dots{} \)} grouping can limit the grouping power of
+@samp{\|}.@refill
+
+Full backtracking capability exists to handle multiple uses of @samp{\|}.
+
+@item \( @dots{} \)
+is a grouping construct that serves three purposes:
+
+@enumerate
+@item
+To enclose a set of @samp{\|} alternatives for other operations.
+Thus, @samp{\(foo\|bar\)x} matches either @samp{foox} or @samp{barx}.
+
+@item
+To enclose a complicated expression for the postfix operators @samp{*},
+@samp{+} and @samp{?} to operate on. Thus, @samp{ba\(na\)*} matches
+@samp{bananana}, etc., with any (zero or more) number of @samp{na}
+strings.@refill
+
+@item
+To record a matched substring for future reference.
+@end enumerate
+
+This last application is not a consequence of the idea of a
+parenthetical grouping; it is a separate feature that is assigned as a
+second meaning to the same @samp{\( @dots{} \)} construct. In practice
+there is usually no conflict between the two meanings; when there is
+a conflict, you can use a ``shy'' group.
+
+@item \(?: @dots{} \)
+@cindex shy group, in regexp
+specifies a ``shy'' group that does not record the matched substring;
+you can't refer back to it with @samp{\@var{d}}. This is useful
+in mechanically combining regular expressions, so that you
+can add groups for syntactic purposes without interfering with
+the numbering of the groups that are meant to be referred to.
+
+@item \@var{d}
+@cindex back reference, in regexp
+matches the same text that matched the @var{d}th occurrence of a
+@samp{\( @dots{} \)} construct. This is called a @dfn{back
+reference}.
+
+After the end of a @samp{\( @dots{} \)} construct, the matcher remembers
+the beginning and end of the text matched by that construct. Then,
+later on in the regular expression, you can use @samp{\} followed by the
+digit @var{d} to mean ``match the same text matched the @var{d}th time
+by the @samp{\( @dots{} \)} construct.''
+
+The strings matching the first nine @samp{\( @dots{} \)} constructs
+appearing in a regular expression are assigned numbers 1 through 9 in
+the order that the open-parentheses appear in the regular expression.
+So you can use @samp{\1} through @samp{\9} to refer to the text matched
+by the corresponding @samp{\( @dots{} \)} constructs.
+
+For example, @samp{\(.*\)\1} matches any newline-free string that is
+composed of two identical halves. The @samp{\(.*\)} matches the first
+half, which may be anything, but the @samp{\1} that follows must match
+the same exact text.
+
+If a particular @samp{\( @dots{} \)} construct matches more than once
+(which can easily happen if it is followed by @samp{*}), only the last
+match is recorded.
+
+@item \`
+matches the empty string, but only at the beginning of the string or
+buffer (or its accessible portion) being matched against.
+
+@item \'
+matches the empty string, but only at the end of the string or buffer
+(or its accessible portion) being matched against.
+
+@item \=
+matches the empty string, but only at point.
+
+@item \b
+matches the empty string, but only at the beginning or
+end of a word. Thus, @samp{\bfoo\b} matches any occurrence of
+@samp{foo} as a separate word. @samp{\bballs?\b} matches
+@samp{ball} or @samp{balls} as a separate word.@refill
+
+@samp{\b} matches at the beginning or end of the buffer
+regardless of what text appears next to it.
+
+@item \B
+matches the empty string, but @emph{not} at the beginning or
+end of a word.
+
+@item \<
+matches the empty string, but only at the beginning of a word.
+@samp{\<} matches at the beginning of the buffer only if a
+word-constituent character follows.
+
+@item \>
+matches the empty string, but only at the end of a word. @samp{\>}
+matches at the end of the buffer only if the contents end with a
+word-constituent character.
+
+@item \w
+matches any word-constituent character. The syntax table
+determines which characters these are. @xref{Syntax}.
+
+@item \W
+matches any character that is not a word-constituent.
+
+@item \_<
+matches the empty string, but only at the beginning of a symbol.
+A symbol is a sequence of one or more symbol-constituent characters.
+A symbol-constituent character is a character whose syntax is either
+@samp{w} or @samp{_}. @samp{\_<} matches at the beginning of the
+buffer only if a symbol-constituent character follows.
+
+@item \_>
+matches the empty string, but only at the end of a symbol. @samp{\_>}
+matches at the end of the buffer only if the contents end with a
+symbol-constituent character.
+
+@item \s@var{c}
+matches any character whose syntax is @var{c}. Here @var{c} is a
+character that designates a particular syntax class: thus, @samp{w}
+for word constituent, @samp{-} or @samp{ } for whitespace, @samp{.}
+for ordinary punctuation, etc. @xref{Syntax}.
+
+@item \S@var{c}
+matches any character whose syntax is not @var{c}.
+
+@cindex categories of characters
+@cindex characters which belong to a specific language
+@findex describe-categories
+@item \c@var{c}
+matches any character that belongs to the category @var{c}. For
+example, @samp{\cc} matches Chinese characters, @samp{\cg} matches
+Greek characters, etc. For the description of the known categories,
+type @kbd{M-x describe-categories @key{RET}}.
+
+@item \C@var{c}
+matches any character that does @emph{not} belong to category
+@var{c}.
+@end table
+
+ The constructs that pertain to words and syntax are controlled by the
+setting of the syntax table (@pxref{Syntax}).
+
+@node Regexp Example
+@section Regular Expression Example
+
+ Here is a complicated regexp---a simplified version of the regexp
+that Emacs uses, by default, to recognize the end of a sentence
+together with any whitespace that follows. We show its Lisp syntax to
+distinguish the spaces from the tab characters. In Lisp syntax, the
+string constant begins and ends with a double-quote. @samp{\"} stands
+for a double-quote as part of the regexp, @samp{\\} for a backslash as
+part of the regexp, @samp{\t} for a tab, and @samp{\n} for a newline.
+
+@example
+"[.?!][]\"')]*\\($\\| $\\|\t\\| \\)[ \t\n]*"
+@end example
+
+@noindent
+This contains four parts in succession: a character set matching
+period, @samp{?}, or @samp{!}; a character set matching
+close-brackets, quotes, or parentheses, repeated zero or more times; a
+set of alternatives within backslash-parentheses that matches either
+end-of-line, a space at the end of a line, a tab, or two spaces; and a
+character set matching whitespace characters, repeated any number of
+times.
+
+ To enter the same regexp in incremental search, you would type
+@key{TAB} to enter a tab, and @kbd{C-j} to enter a newline. You would
+also type single backslashes as themselves, instead of doubling them
+for Lisp syntax. In commands that use ordinary minibuffer input to
+read a regexp, you would quote the @kbd{C-j} by preceding it with a
+@kbd{C-q} to prevent @kbd{C-j} from exiting the minibuffer.
+
+@node Search Case
+@section Searching and Case
+
+ Incremental searches in Emacs normally ignore the case of the text
+they are searching through, if you specify the text in lower case.
+Thus, if you specify searching for @samp{foo}, then @samp{Foo} and
+@samp{foo} are also considered a match. Regexps, and in particular
+character sets, are included: @samp{[ab]} would match @samp{a} or
+@samp{A} or @samp{b} or @samp{B}.@refill
+
+ An upper-case letter anywhere in the incremental search string makes
+the search case-sensitive. Thus, searching for @samp{Foo} does not find
+@samp{foo} or @samp{FOO}. This applies to regular expression search as
+well as to string search. The effect ceases if you delete the
+upper-case letter from the search string.
+
+ Typing @kbd{M-c} within an incremental search toggles the case
+sensitivity of that search. The effect does not extend beyond the
+current incremental search to the next one, but it does override the
+effect of including an upper-case letter in the current search.
+
+@vindex case-fold-search
+@vindex default-case-fold-search
+ If you set the variable @code{case-fold-search} to @code{nil}, then
+all letters must match exactly, including case. This is a per-buffer
+variable; altering the variable affects only the current buffer, but
+there is a default value in @code{default-case-fold-search} that you
+can also set. @xref{Locals}. This variable applies to nonincremental
+searches also, including those performed by the replace commands
+(@pxref{Replace}) and the minibuffer history matching commands
+(@pxref{Minibuffer History}).
+
+ Several related variables control case-sensitivity of searching and
+matching for specific commands or activities. For instance,
+@code{tags-case-fold-search} controls case sensitivity for
+@code{find-tag}. To find these variables, do @kbd{M-x
+apropos-variable @key{RET} case-fold-search @key{RET}}.
+
+@node Replace
+@section Replacement Commands
+@cindex replacement
+@cindex search-and-replace commands
+@cindex string substitution
+@cindex global substitution
+
+ Global search-and-replace operations are not needed often in Emacs,
+but they are available. In addition to the simple @kbd{M-x
+replace-string} command which replaces all occurrences,
+there is @kbd{M-%} (@code{query-replace}), which presents each occurrence
+of the pattern and asks you whether to replace it.
+
+ The replace commands normally operate on the text from point to the
+end of the buffer; however, in Transient Mark mode (@pxref{Transient
+Mark}), when the mark is active, they operate on the region. The
+basic replace commands replace one string (or regexp) with one
+replacement string. It is possible to perform several replacements in
+parallel using the command @code{expand-region-abbrevs}
+(@pxref{Expanding Abbrevs}).
+
+@menu
+* Unconditional Replace:: Replacing all matches for a string.
+* Regexp Replace:: Replacing all matches for a regexp.
+* Replacement and Case:: How replacements preserve case of letters.
+* Query Replace:: How to use querying.
+@end menu
+
+@node Unconditional Replace, Regexp Replace, Replace, Replace
+@subsection Unconditional Replacement
+@findex replace-string
+
+@table @kbd
+@item M-x replace-string @key{RET} @var{string} @key{RET} @var{newstring} @key{RET}
+Replace every occurrence of @var{string} with @var{newstring}.
+@end table
+
+ To replace every instance of @samp{foo} after point with @samp{bar},
+use the command @kbd{M-x replace-string} with the two arguments
+@samp{foo} and @samp{bar}. Replacement happens only in the text after
+point, so if you want to cover the whole buffer you must go to the
+beginning first. All occurrences up to the end of the buffer are
+replaced; to limit replacement to part of the buffer, narrow to that
+part of the buffer before doing the replacement (@pxref{Narrowing}).
+In Transient Mark mode, when the region is active, replacement is
+limited to the region (@pxref{Transient Mark}).
+
+ When @code{replace-string} exits, it leaves point at the last
+occurrence replaced. It sets the mark to the prior position of point
+(where the @code{replace-string} command was issued); use @kbd{C-u
+C-@key{SPC}} to move back there.
+
+ A numeric argument restricts replacement to matches that are surrounded
+by word boundaries. The argument's value doesn't matter.
+
+ @xref{Replacement and Case}, for details about case-sensitivity in
+replace commands.
+
+ What if you want to exchange @samp{x} and @samp{y}: replace every @samp{x} with a @samp{y} and vice versa? You can do it this way:
+
+@example
+M-x replace-string @key{RET} x @key{RET} @@TEMP@@ @key{RET}
+M-< M-x replace-string @key{RET} y @key{RET} x @key{RET}
+M-< M-x replace-string @key{RET} @@TEMP@@ @key{RET} y @key{RET}
+@end example
+
+@noindent
+This works provided the string @samp{@@TEMP@@} does not appear
+in your text.
+
+@node Regexp Replace, Replacement and Case, Unconditional Replace, Replace
+@subsection Regexp Replacement
+@findex replace-regexp
+
+ The @kbd{M-x replace-string} command replaces exact matches for a
+single string. The similar command @kbd{M-x replace-regexp} replaces
+any match for a specified pattern.
+
+@table @kbd
+@item M-x replace-regexp @key{RET} @var{regexp} @key{RET} @var{newstring} @key{RET}
+Replace every match for @var{regexp} with @var{newstring}.
+@end table
+
+@cindex back reference, in regexp replacement
+ In @code{replace-regexp}, the @var{newstring} need not be constant:
+it can refer to all or part of what is matched by the @var{regexp}.
+@samp{\&} in @var{newstring} stands for the entire match being
+replaced. @samp{\@var{d}} in @var{newstring}, where @var{d} is a
+digit, stands for whatever matched the @var{d}th parenthesized
+grouping in @var{regexp}. (This is called a ``back reference.'')
+@samp{\#} refers to the count of replacements already made in this
+command, as a decimal number. In the first replacement, @samp{\#}
+stands for @samp{0}; in the second, for @samp{1}; and so on. For
+example,
+
+@example
+M-x replace-regexp @key{RET} c[ad]+r @key{RET} \&-safe @key{RET}
+@end example
+
+@noindent
+replaces (for example) @samp{cadr} with @samp{cadr-safe} and @samp{cddr}
+with @samp{cddr-safe}.
+
+@example
+M-x replace-regexp @key{RET} \(c[ad]+r\)-safe @key{RET} \1 @key{RET}
+@end example
+
+@noindent
+performs the inverse transformation. To include a @samp{\} in the
+text to replace with, you must enter @samp{\\}.
+
+ If you want to enter part of the replacement string by hand each
+time, use @samp{\?} in the replacement string. Each replacement will
+ask you to edit the replacement string in the minibuffer, putting
+point where the @samp{\?} was.
+
+ The remainder of this subsection is intended for specialized tasks
+and requires knowledge of Lisp. Most readers can skip it.
+
+ You can use Lisp expressions to calculate parts of the
+replacement string. To do this, write @samp{\,} followed by the
+expression in the replacement string. Each replacement calculates the
+value of the expression and converts it to text without quoting (if
+it's a string, this means using the string's contents), and uses it in
+the replacement string in place of the expression itself. If the
+expression is a symbol, one space in the replacement string after the
+symbol name goes with the symbol name, so the value replaces them
+both.
+
+ Inside such an expression, you can use some special sequences.
+@samp{\&} and @samp{\@var{n}} refer here, as usual, to the entire
+match as a string, and to a submatch as a string. @var{n} may be
+multiple digits, and the value of @samp{\@var{n}} is @code{nil} if
+subexpression @var{n} did not match. You can also use @samp{\#&} and
+@samp{\#@var{n}} to refer to those matches as numbers (this is valid
+when the match or submatch has the form of a numeral). @samp{\#} here
+too stands for the number of already-completed replacements.
+
+ Repeating our example to exchange @samp{x} and @samp{y}, we can thus
+do it also this way:
+
+@example
+M-x replace-regexp @key{RET} \(x\)\|y @key{RET}
+\,(if \1 "y" "x") @key{RET}
+@end example
+
+ For computing replacement strings for @samp{\,}, the @code{format}
+function is often useful (@pxref{Formatting Strings,,, elisp, The Emacs
+Lisp Reference Manual}). For example, to add consecutively numbered
+strings like @samp{ABC00042} to columns 73 @w{to 80} (unless they are
+already occupied), you can use
+
+@example
+M-x replace-regexp @key{RET} ^.\@{0,72\@}$ @key{RET}
+\,(format "%-72sABC%05d" \& \#) @key{RET}
+@end example
+
+@node Replacement and Case, Query Replace, Regexp Replace, Replace
+@subsection Replace Commands and Case
+
+ If the first argument of a replace command is all lower case, the
+command ignores case while searching for occurrences to
+replace---provided @code{case-fold-search} is non-@code{nil}. If
+@code{case-fold-search} is set to @code{nil}, case is always significant
+in all searches.
+
+@vindex case-replace
+ In addition, when the @var{newstring} argument is all or partly lower
+case, replacement commands try to preserve the case pattern of each
+occurrence. Thus, the command
+
+@example
+M-x replace-string @key{RET} foo @key{RET} bar @key{RET}
+@end example
+
+@noindent
+replaces a lower case @samp{foo} with a lower case @samp{bar}, an
+all-caps @samp{FOO} with @samp{BAR}, and a capitalized @samp{Foo} with
+@samp{Bar}. (These three alternatives---lower case, all caps, and
+capitalized, are the only ones that @code{replace-string} can
+distinguish.)
+
+ If upper-case letters are used in the replacement string, they remain
+upper case every time that text is inserted. If upper-case letters are
+used in the first argument, the second argument is always substituted
+exactly as given, with no case conversion. Likewise, if either
+@code{case-replace} or @code{case-fold-search} is set to @code{nil},
+replacement is done without case conversion.
+
+@node Query Replace,, Replacement and Case, Replace
+@subsection Query Replace
+@cindex query replace
+
+@table @kbd
+@item M-% @var{string} @key{RET} @var{newstring} @key{RET}
+@itemx M-x query-replace @key{RET} @var{string} @key{RET} @var{newstring} @key{RET}
+Replace some occurrences of @var{string} with @var{newstring}.
+@item C-M-% @var{regexp} @key{RET} @var{newstring} @key{RET}
+@itemx M-x query-replace-regexp @key{RET} @var{regexp} @key{RET} @var{newstring} @key{RET}
+Replace some matches for @var{regexp} with @var{newstring}.
+@end table
+
+@kindex M-%
+@findex query-replace
+ If you want to change only some of the occurrences of @samp{foo} to
- @code{query-replace} works just like @code{replace-string}. It
- preserves case, like @code{replace-string}, provided
- @code{case-replace} is non-@code{nil}, as it normally is
++@samp{bar}, not all of them, use @kbd{M-%} (@code{query-replace}).
+This command finds occurrences of @samp{foo} one by one, displays each
+occurrence and asks you whether to replace it. Aside from querying,
++@code{query-replace} works just like @code{replace-string}
++(@pxref{Unconditional Replace}). In particular, it preserves case
++provided @code{case-replace} is non-@code{nil}, as it normally is
+(@pxref{Replacement and Case}). A numeric argument means consider
+only occurrences that are bounded by word-delimiter characters.
+
+@kindex C-M-%
+@findex query-replace-regexp
+ @kbd{C-M-%} performs regexp search and replace (@code{query-replace-regexp}).
+It works like @code{replace-regexp} except that it queries
+like @code{query-replace}.
+
+@cindex faces for highlighting query replace
+ These commands highlight the current match using the face
+@code{query-replace}. They highlight other matches using
+@code{lazy-highlight} just like incremental search (@pxref{Incremental
+Search}). By default, @code{query-replace-regexp} will show
+substituted replacement string for the current match in the
+minibuffer. If you want to keep special sequences @samp{\&} and
+@samp{\@var{n}} unexpanded, customize
+@code{query-replace-show-replacement} variable.
+
+ The characters you can type when you are shown a match for the string
+or regexp are:
+
+@ignore @c Not worth it.
+@kindex SPC @r{(query-replace)}
+@kindex DEL @r{(query-replace)}
+@kindex , @r{(query-replace)}
+@kindex RET @r{(query-replace)}
+@kindex . @r{(query-replace)}
+@kindex ! @r{(query-replace)}
+@kindex ^ @r{(query-replace)}
+@kindex C-r @r{(query-replace)}
+@kindex C-w @r{(query-replace)}
+@kindex C-l @r{(query-replace)}
+@end ignore
+
+@c WideCommands
+@table @kbd
+@item @key{SPC}
+to replace the occurrence with @var{newstring}.
+
+@item @key{DEL}
+to skip to the next occurrence without replacing this one.
+
+@item , @r{(Comma)}
+to replace this occurrence and display the result. You are then asked
+for another input character to say what to do next. Since the
+replacement has already been made, @key{DEL} and @key{SPC} are
+equivalent in this situation; both move to the next occurrence.
+
+You can type @kbd{C-r} at this point (see below) to alter the replaced
+text. You can also type @kbd{C-x u} to undo the replacement; this exits
+the @code{query-replace}, so if you want to do further replacement you
+must use @kbd{C-x @key{ESC} @key{ESC} @key{RET}} to restart
+(@pxref{Repetition}).
+
+@item @key{RET}
+to exit without doing any more replacements.
+
+@item .@: @r{(Period)}
+to replace this occurrence and then exit without searching for more
+occurrences.
+
+@item !
+to replace all remaining occurrences without asking again.
+
+@item ^
+to go back to the position of the previous occurrence (or what used to
+be an occurrence), in case you changed it by mistake or want to
+reexamine it.
+
+@item C-r
+to enter a recursive editing level, in case the occurrence needs to be
+edited rather than just replaced with @var{newstring}. When you are
+done, exit the recursive editing level with @kbd{C-M-c} to proceed to
+the next occurrence. @xref{Recursive Edit}.
+
+@item C-w
+to delete the occurrence, and then enter a recursive editing level as in
+@kbd{C-r}. Use the recursive edit to insert text to replace the deleted
+occurrence of @var{string}. When done, exit the recursive editing level
+with @kbd{C-M-c} to proceed to the next occurrence.
+
+@item e
+to edit the replacement string in the minibuffer. When you exit the
+minibuffer by typing @key{RET}, the minibuffer contents replace the
+current occurrence of the pattern. They also become the new
+replacement string for any further occurrences.
+
+@item C-l
+to redisplay the screen. Then you must type another character to
+specify what to do with this occurrence.
+
+@item C-h
+to display a message summarizing these options. Then you must type
+another character to specify what to do with this occurrence.
+@end table
+
+ Some other characters are aliases for the ones listed above: @kbd{y},
+@kbd{n} and @kbd{q} are equivalent to @key{SPC}, @key{DEL} and
+@key{RET}.
+
+ Aside from this, any other character exits the @code{query-replace},
+and is then reread as part of a key sequence. Thus, if you type
+@kbd{C-k}, it exits the @code{query-replace} and then kills to end of
+line.
+
+ To restart a @code{query-replace} once it is exited, use @kbd{C-x
+@key{ESC} @key{ESC}}, which repeats the @code{query-replace} because it
+used the minibuffer to read its arguments. @xref{Repetition, C-x ESC
+ESC}.
+
+ @xref{Operating on Files}, for the Dired @kbd{Q} command which
+performs query replace on selected files. See also @ref{Transforming
+File Names}, for Dired commands to rename, copy, or link files by
+replacing regexp matches in file names.
+
+@node Other Repeating Search
+@section Other Search-and-Loop Commands
+
+ Here are some other commands that find matches for a regular
+expression. They all ignore case in matching, if the pattern contains
+no upper-case letters and @code{case-fold-search} is non-@code{nil}.
+Aside from @code{occur} and its variants, all operate on the text from
+point to the end of the buffer, or on the active region in Transient
+Mark mode.
+
+@findex list-matching-lines
+@findex occur
+@findex multi-occur
+@findex multi-occur-in-matching-buffers
+@findex how-many
+@findex delete-non-matching-lines
+@findex delete-matching-lines
+@findex flush-lines
+@findex keep-lines
+
+@table @kbd
+@item M-x occur @key{RET} @var{regexp} @key{RET}
+Display a list showing each line in the buffer that contains a match
+for @var{regexp}. To limit the search to part of the buffer, narrow
+to that part (@pxref{Narrowing}). A numeric argument @var{n}
+specifies that @var{n} lines of context are to be displayed before and
+after each matching line. Currently, @code{occur} can not correctly
+handle multiline matches.
+
+@kindex RET @r{(Occur mode)}
+@kindex o @r{(Occur mode)}
+@kindex C-o @r{(Occur mode)}
+The buffer @samp{*Occur*} containing the output serves as a menu for
+finding the occurrences in their original context. Click
+@kbd{Mouse-2} on an occurrence listed in @samp{*Occur*}, or position
+point there and type @key{RET}; this switches to the buffer that was
+searched and moves point to the original of the chosen occurrence.
+@kbd{o} and @kbd{C-o} display the match in another window; @kbd{C-o}
+does not select it.
+
+After using @kbd{M-x occur}, you can use @code{next-error} to visit
+the occurrences found, one by one. @ref{Compilation Mode}.
+
+@item M-x list-matching-lines
+Synonym for @kbd{M-x occur}.
+
+@item M-x multi-occur @key{RET} @var{buffers} @key{RET} @var{regexp} @key{RET}
+This function is just like @code{occur}, except it is able to search
+through multiple buffers. It asks you to specify the buffer names one by one.
+
+@item M-x multi-occur-in-matching-buffers @key{RET} @var{bufregexp} @key{RET} @var{regexp} @key{RET}
+This function is similar to @code{multi-occur}, except the buffers to
+search are specified by a regular expression that matches visited
+file names. With a prefix argument, it uses the regular expression to match
+buffer names instead.
+
+@item M-x how-many @key{RET} @var{regexp} @key{RET}
+Print the number of matches for @var{regexp} that exist in the buffer
+after point. In Transient Mark mode, if the region is active, the
+command operates on the region instead.
+
+@item M-x flush-lines @key{RET} @var{regexp} @key{RET}
+This command deletes each line that contains a match for @var{regexp},
+operating on the text after point; it deletes the current line
+if it contains a match starting after point. In Transient Mark mode,
+if the region is active, the command operates on the region instead;
+it deletes a line partially contained in the region if it contains a
+match entirely contained in the region.
+
+If a match is split across lines, @code{flush-lines} deletes all those
+lines. It deletes the lines before starting to look for the next
+match; hence, it ignores a match starting on the same line at which
+another match ended.
+
+@item M-x keep-lines @key{RET} @var{regexp} @key{RET}
+This command deletes each line that @emph{does not} contain a match for
+@var{regexp}, operating on the text after point; if point is not at the
+beginning of a line, it always keeps the current line. In Transient
+Mark mode, if the region is active, the command operates on the region
+instead; it never deletes lines that are only partially contained in
+the region (a newline that ends a line counts as part of that line).
+
+If a match is split across lines, this command keeps all those lines.
+@end table
+
+@ignore
+ arch-tag: fd9d8e77-66af-491c-b212-d80999613e3e
+@end ignore
--- /dev/null
- * Other: Format Properties. The "special" text properties submenu.
+@c This is part of the Emacs manual.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+@c See file emacs.texi for copying conditions.
+@node Text, Programs, Indentation, Top
+@chapter Commands for Human Languages
+@cindex text
+@cindex manipulating text
+
+ The term @dfn{text} has two widespread meanings in our area of the
+computer field. One is data that is a sequence of characters. Any file
+that you edit with Emacs is text, in this sense of the word. The other
+meaning is more restrictive: a sequence of characters in a human language
+for humans to read (possibly after processing by a text formatter), as
+opposed to a program or binary data. This chapter is concerned with
+editing text in the narrower sense.
+
+ Human languages have syntactic/stylistic conventions that can be
+supported or used to advantage by editor commands: conventions involving
+words, sentences, paragraphs, and capital letters. This chapter
+describes Emacs commands for all of these things. There are also
+commands for @dfn{filling}, which means rearranging the lines of a
+paragraph to be approximately equal in length. The commands for moving
+over and killing words, sentences and paragraphs, while intended
+primarily for editing text, are also often useful for editing programs.
+
+ Emacs has several major modes for editing human-language text. If the
+file contains text pure and simple, use Text mode, which customizes
+Emacs in small ways for the syntactic conventions of text. Outline mode
+provides special commands for operating on text with an outline
+structure.
+@iftex
+@xref{Outline Mode}.
+@end iftex
+
+ For text which contains embedded commands for text formatters, Emacs
+has other major modes, each for a particular formatter. Thus, for
+input to @TeX{}, you would use @TeX{}
+@iftex
+mode (@pxref{TeX Mode,,@TeX{} Mode}).
+@end iftex
+@ifnottex
+mode.
+@end ifnottex
+For input to groff or nroff, use Nroff mode.
+
+ Instead of using a text formatter, you can edit formatted text in
+WYSIWYG style (``what you see is what you get''), with Enriched mode.
+Then the formatting appears on the screen in Emacs while you edit.
+@iftex
+@xref{Formatted Text}.
+@end iftex
+
+@cindex ASCII art
+ If you need to edit pictures made out of text characters (commonly
+referred to as ``ASCII art''), use @kbd{M-x edit-picture} to enter
+Picture mode, a special major mode for editing such pictures.
+@iftex
+@xref{Picture Mode,,, emacs-xtra, Specialized Emacs Features}.
+@end iftex
+@ifnottex
+@xref{Picture Mode}.
+@end ifnottex
+
+
+@cindex skeletons
+@cindex templates
+@cindex autotyping
+@cindex automatic typing
+ The ``automatic typing'' features may be useful when writing text.
+@inforef{Top,, autotype}.
+
+@menu
+* Words:: Moving over and killing words.
+* Sentences:: Moving over and killing sentences.
+* Paragraphs:: Moving over paragraphs.
+* Pages:: Moving over pages.
+* Filling:: Filling or justifying text.
+* Case:: Changing the case of text.
+* Text Mode:: The major modes for editing text files.
+* Outline Mode:: Editing outlines.
+* TeX Mode:: Editing input to the formatter TeX.
+* HTML Mode:: Editing HTML, SGML, and XML files.
+* Nroff Mode:: Editing input to the formatter nroff.
+* Formatted Text:: Editing formatted text directly in WYSIWYG fashion.
+* Text Based Tables:: Editing text-based tables in WYSIWYG fashion.
+@end menu
+
+@node Words
+@section Words
+@cindex words
+@cindex Meta commands and words
+
+ Emacs has commands for moving over or operating on words. By convention,
+the keys for them are all Meta characters.
+
+@table @kbd
+@item M-f
+Move forward over a word (@code{forward-word}).
+@item M-b
+Move backward over a word (@code{backward-word}).
+@item M-d
+Kill up to the end of a word (@code{kill-word}).
+@item M-@key{DEL}
+Kill back to the beginning of a word (@code{backward-kill-word}).
+@item M-@@
+Mark the end of the next word (@code{mark-word}).
+@item M-t
+Transpose two words or drag a word across others
+(@code{transpose-words}).
+@end table
+
+ Notice how these keys form a series that parallels the character-based
+@kbd{C-f}, @kbd{C-b}, @kbd{C-d}, @key{DEL} and @kbd{C-t}. @kbd{M-@@} is
+cognate to @kbd{C-@@}, which is an alias for @kbd{C-@key{SPC}}.
+
+@kindex M-f
+@kindex M-b
+@findex forward-word
+@findex backward-word
+ The commands @kbd{M-f} (@code{forward-word}) and @kbd{M-b}
+(@code{backward-word}) move forward and backward over words. These
+Meta characters are thus analogous to the corresponding control
+characters, @kbd{C-f} and @kbd{C-b}, which move over single characters
+in the text. The analogy extends to numeric arguments, which serve as
+repeat counts. @kbd{M-f} with a negative argument moves backward, and
+@kbd{M-b} with a negative argument moves forward. Forward motion
+stops right after the last letter of the word, while backward motion
+stops right before the first letter.
+
+@kindex M-d
+@findex kill-word
+ @kbd{M-d} (@code{kill-word}) kills the word after point. To be
+precise, it kills everything from point to the place @kbd{M-f} would
+move to. Thus, if point is in the middle of a word, @kbd{M-d} kills
+just the part after point. If some punctuation comes between point and the
+next word, it is killed along with the word. (If you wish to kill only the
+next word but not the punctuation before it, simply do @kbd{M-f} to get
+the end, and kill the word backwards with @kbd{M-@key{DEL}}.)
+@kbd{M-d} takes arguments just like @kbd{M-f}.
+
+@findex backward-kill-word
+@kindex M-DEL
+ @kbd{M-@key{DEL}} (@code{backward-kill-word}) kills the word before
+point. It kills everything from point back to where @kbd{M-b} would
+move to. For instance, if point is after the space in @w{@samp{FOO,
+BAR}}, it kills @w{@samp{FOO, }}. If you wish to kill just
+@samp{FOO}, and not the comma and the space, use @kbd{M-b M-d} instead
+of @kbd{M-@key{DEL}}.
+
+@c Don't index M-t and transpose-words here, they are indexed in
+@c fixit.texi, in the node "Transpose".
+@c @kindex M-t
+@c @findex transpose-words
+ @kbd{M-t} (@code{transpose-words}) exchanges the word before or
+containing point with the following word. The delimiter characters between
+the words do not move. For example, @w{@samp{FOO, BAR}} transposes into
+@w{@samp{BAR, FOO}} rather than @samp{@w{BAR FOO,}}. @xref{Transpose}, for
+more on transposition.
+
+@kindex M-@@
+@findex mark-word
+ To operate on the next @var{n} words with an operation which applies
+between point and mark, you can either set the mark at point and then move
+over the words, or you can use the command @kbd{M-@@} (@code{mark-word})
+which does not move point, but sets the mark where @kbd{M-f} would move
+to. @kbd{M-@@} accepts a numeric argument that says how many words to
+scan for the place to put the mark. In Transient Mark mode, this command
+activates the mark.
+
+ The word commands' understanding of word boundaries is controlled
+by the syntax table. Any character can, for example, be declared to
+be a word delimiter. @xref{Syntax}.
+
+@node Sentences
+@section Sentences
+@cindex sentences
+@cindex manipulating sentences
+
+ The Emacs commands for manipulating sentences and paragraphs are mostly
+on Meta keys, so as to be like the word-handling commands.
+
+@table @kbd
+@item M-a
+Move back to the beginning of the sentence (@code{backward-sentence}).
+@item M-e
+Move forward to the end of the sentence (@code{forward-sentence}).
+@item M-k
+Kill forward to the end of the sentence (@code{kill-sentence}).
+@item C-x @key{DEL}
+Kill back to the beginning of the sentence (@code{backward-kill-sentence}).
+@end table
+
+@kindex M-a
+@kindex M-e
+@findex backward-sentence
+@findex forward-sentence
+ The commands @kbd{M-a} and @kbd{M-e} (@code{backward-sentence} and
+@code{forward-sentence}) move to the beginning and end of the current
+sentence, respectively. They were chosen to resemble @kbd{C-a} and
+@kbd{C-e}, which move to the beginning and end of a line. Unlike
+them, @kbd{M-a} and @kbd{M-e} move over successive sentences if
+repeated.
+
+ Moving backward over a sentence places point just before the first
+character of the sentence; moving forward places point right after the
+punctuation that ends the sentence. Neither one moves over the
+whitespace at the sentence boundary.
+
+@kindex M-k
+@kindex C-x DEL
+@findex kill-sentence
+@findex backward-kill-sentence
+ Just as @kbd{C-a} and @kbd{C-e} have a kill command, @kbd{C-k}, to go
+with them, so @kbd{M-a} and @kbd{M-e} have a corresponding kill command
+@kbd{M-k} (@code{kill-sentence}) which kills from point to the end of
+the sentence. With minus one as an argument it kills back to the
+beginning of the sentence. Larger arguments serve as a repeat count.
+There is also a command, @kbd{C-x @key{DEL}}
+(@code{backward-kill-sentence}), for killing back to the beginning of a
+sentence. This command is useful when you change your mind in the
+middle of composing text.
+
+ The sentence commands assume that you follow the American typist's
+convention of putting two spaces at the end of a sentence; they consider
+a sentence to end wherever there is a @samp{.}, @samp{?} or @samp{!}
+followed by the end of a line or two spaces, with any number of
+@samp{)}, @samp{]}, @samp{'}, or @samp{"} characters allowed in between.
+A sentence also begins or ends wherever a paragraph begins or ends.
+It is useful to follow this convention, because it makes a distinction
+between periods that end a sentence and periods that indicate
+abbreviations; that enables the Emacs sentence commands to distinguish,
+too. These commands do not stop for periods that indicate abbreviations.
+
+@vindex sentence-end-double-space
+ If you want to use just one space between sentences, you can set the
+variable @code{sentence-end-double-space} to @code{nil} to make the
+sentence commands stop for single spaces. However, this mode has a
+drawback: there is no way to distinguish between periods that end
+sentences and those that indicate abbreviations. For convenient and
+reliable editing, we therefore recommend you follow the two-space
+convention. The variable @code{sentence-end-double-space} also
+affects filling (@pxref{Fill Commands}) in related ways.
+
+@vindex sentence-end
+ The variable @code{sentence-end} controls how to recognize the end
+of a sentence. If non-@code{nil}, it is a regexp that matches the
+last few characters of a sentence, together with the whitespace
+following the sentence. If the value is @code{nil}, the default, then
+Emacs computes the regexp according to various criteria such as the
+value of @code{sentence-end-double-space}. @xref{Regexp Example}, for
+a detailed explanation of one of the regular expressions Emacs uses
+for this purpose.
+
+@vindex sentence-end-without-period
+ Some languages do not use periods to indicate the end of a sentence.
+For example, sentences in Thai end with a double space but without a
+period. Set the variable @code{sentence-end-without-period} to
+@code{t} in such cases.
+
+@node Paragraphs
+@section Paragraphs
+@cindex paragraphs
+@cindex manipulating paragraphs
+@kindex M-@{
+@kindex M-@}
+@findex backward-paragraph
+@findex forward-paragraph
+
+ The Emacs commands for manipulating paragraphs are also on Meta keys.
+
+@table @kbd
+@item M-@{
+Move back to previous paragraph beginning (@code{backward-paragraph}).
+@item M-@}
+Move forward to next paragraph end (@code{forward-paragraph}).
+@item M-h
+Put point and mark around this or next paragraph (@code{mark-paragraph}).
+@end table
+
+ @kbd{M-@{} moves to the beginning of the current or previous
+paragraph, while @kbd{M-@}} moves to the end of the current or next
+paragraph. Blank lines and text-formatter command lines separate
+paragraphs and are not considered part of any paragraph. If there is
+a blank line before the paragraph, @kbd{M-@{} moves to the blank line,
+because that is convenient in practice.
+
+ In Text mode, an indented line is not a paragraph break. If you
+want indented lines to have this effect, use Paragraph-Indent Text
+mode instead. @xref{Text Mode}.
+
+ In major modes for programs, paragraphs begin and end only at blank
+lines. This makes the paragraph commands useful, even though there
+are no paragraphs as such in a program.
+
+ When you have set a fill prefix, then paragraphs are delimited by
+all lines which don't start with the fill prefix. @xref{Filling}.
+
+@kindex M-h
+@findex mark-paragraph
+ When you wish to operate on a paragraph, you can use the command
+@kbd{M-h} (@code{mark-paragraph}) to set the region around it. Thus,
+for example, @kbd{M-h C-w} kills the paragraph around or after point.
+The @kbd{M-h} command puts point at the beginning and mark at the end of
+the paragraph point was in. In Transient Mark mode, it activates the
+mark. If point is between paragraphs (in a run of blank lines, or at a
+boundary), the paragraph following point is surrounded by point and
+mark. If there are blank lines preceding the first line of the
+paragraph, one of these blank lines is included in the region.
+
+@vindex paragraph-start
+@vindex paragraph-separate
+ The precise definition of a paragraph boundary is controlled by the
+variables @code{paragraph-separate} and @code{paragraph-start}. The
+value of @code{paragraph-start} is a regexp that should match any line
+that either starts or separates paragraphs. The value of
+@code{paragraph-separate} is another regexp that should match only lines
+that separate paragraphs without being part of any paragraph (for
+example, blank lines). Lines that start a new paragraph and are
+contained in it must match only @code{paragraph-start}, not
+@code{paragraph-separate}. Each regular expression must match at the
+left margin. For example, in Fundamental mode, @code{paragraph-start}
+is @w{@code{"\f\\|[ \t]*$"}}, and @code{paragraph-separate} is
+@w{@code{"[ \t\f]*$"}}.
+
+ Normally it is desirable for page boundaries to separate paragraphs.
+The default values of these variables recognize the usual separator for
+pages.
+
+@node Pages
+@section Pages
+
+@cindex pages
+@cindex formfeed
+ Files are often thought of as divided into @dfn{pages} by the
+@dfn{formfeed} character (@acronym{ASCII} control-L, octal code 014).
+When you print hardcopy for a file, this character forces a page break;
+thus, each page of the file goes on a separate page on paper. Most Emacs
+commands treat the page-separator character just like any other
+character: you can insert it with @kbd{C-q C-l}, and delete it with
+@key{DEL}. Thus, you are free to paginate your file or not. However,
+since pages are often meaningful divisions of the file, Emacs provides
+commands to move over them and operate on them.
+
+@table @kbd
+@item C-x [
+Move point to previous page boundary (@code{backward-page}).
+@item C-x ]
+Move point to next page boundary (@code{forward-page}).
+@item C-x C-p
+Put point and mark around this page (or another page) (@code{mark-page}).
+@item C-x l
+Count the lines in this page (@code{count-lines-page}).
+@end table
+
+@kindex C-x [
+@kindex C-x ]
+@findex forward-page
+@findex backward-page
+ The @kbd{C-x [} (@code{backward-page}) command moves point to immediately
+after the previous page delimiter. If point is already right after a page
+delimiter, it skips that one and stops at the previous one. A numeric
+argument serves as a repeat count. The @kbd{C-x ]} (@code{forward-page})
+command moves forward past the next page delimiter.
+
+@kindex C-x C-p
+@findex mark-page
+ The @kbd{C-x C-p} command (@code{mark-page}) puts point at the
+beginning of the current page and the mark at the end. The page
+delimiter at the end is included (the mark follows it). The page
+delimiter at the front is excluded (point follows it). In Transient
+Mark mode, this command activates the mark.
+
+ @kbd{C-x C-p C-w} is a handy way to kill a page to move it
+elsewhere. If you move to another page delimiter with @kbd{C-x [} and
+@kbd{C-x ]}, then yank the killed page, all the pages will be properly
+delimited once again. The reason @kbd{C-x C-p} includes only the
+following page delimiter in the region is to ensure that.
+
+ A numeric argument to @kbd{C-x C-p} is used to specify which page to go
+to, relative to the current one. Zero means the current page. One means
+the next page, and @minus{}1 means the previous one.
+
+@kindex C-x l
+@findex count-lines-page
+ The @kbd{C-x l} command (@code{count-lines-page}) is good for deciding
+where to break a page in two. It displays in the echo area the total number
+of lines in the current page, and then divides it up into those preceding
+the current line and those following, as in
+
+@example
+Page has 96 (72+25) lines
+@end example
+
+@noindent
+ Notice that the sum is off by one; this is correct if point is not at the
+beginning of a line.
+
+@vindex page-delimiter
+ The variable @code{page-delimiter} controls where pages begin. Its
+value is a regexp that matches the beginning of a line that separates
+pages. The normal value of this variable is @code{"^\f"}, which
+matches a formfeed character at the beginning of a line.
+
+@node Filling
+@section Filling Text
+@cindex filling text
+
+ @dfn{Filling} text means breaking it up into lines that fit a
+specified width. Emacs does filling in two ways. In Auto Fill mode,
+inserting text with self-inserting characters also automatically fills
+it. There are also explicit fill commands that you can use when editing
+text leaves it unfilled. When you edit formatted text, you can specify
+a style of filling for each portion of the text (@pxref{Formatted
+Text}).
+
+@menu
+* Auto Fill:: Auto Fill mode breaks long lines automatically.
+* Fill Commands:: Commands to refill paragraphs and center lines.
+* Fill Prefix:: Filling paragraphs that are indented
+ or in a comment, etc.
+* Adaptive Fill:: How Emacs can determine the fill prefix automatically.
+* Refill:: Keeping paragraphs filled.
+* Longlines:: Editing text with very long lines.
+@end menu
+
+@node Auto Fill
+@subsection Auto Fill Mode
+@cindex Auto Fill mode
+@cindex mode, Auto Fill
+
+ @dfn{Auto Fill} mode is a minor mode in which lines are broken
+automatically when they become too wide. Breaking happens only when
+you type a @key{SPC} or @key{RET}.
+
+@table @kbd
+@item M-x auto-fill-mode
+Enable or disable Auto Fill mode.
+@item @key{SPC}
+@itemx @key{RET}
+In Auto Fill mode, break lines when appropriate.
+@end table
+
+@findex auto-fill-mode
+ @kbd{M-x auto-fill-mode} turns Auto Fill mode on if it was off, or off
+if it was on. With a positive numeric argument it always turns Auto
+Fill mode on, and with a negative argument always turns it off. You can
+see when Auto Fill mode is in effect by the presence of the word
+@samp{Fill} in the mode line, inside the parentheses. Auto Fill mode is
+a minor mode which is enabled or disabled for each buffer individually.
+@xref{Minor Modes}.
+
+ In Auto Fill mode, lines are broken automatically at spaces when they
+get longer than the desired width. Line breaking and rearrangement
+takes place only when you type @key{SPC} or @key{RET}. If you wish to
+insert a space or newline without permitting line-breaking, type
+@kbd{C-q @key{SPC}} or @kbd{C-q C-j} (recall that a newline is really a
+control-J). Also, @kbd{C-o} inserts a newline without line breaking.
+
+ Auto Fill mode works well with programming-language modes, because it
+indents new lines with @key{TAB}. If a line ending in a comment gets
+too long, the text of the comment is split into two comment lines.
+Optionally, new comment delimiters are inserted at the end of the first
+line and the beginning of the second so that each line is a separate
+comment; the variable @code{comment-multi-line} controls the choice
+(@pxref{Comments}).
+
+ Adaptive filling (@pxref{Adaptive Fill}) works for Auto Filling as
+well as for explicit fill commands. It takes a fill prefix
+automatically from the second or first line of a paragraph.
+
+ Auto Fill mode does not refill entire paragraphs; it can break lines but
+cannot merge lines. So editing in the middle of a paragraph can result in
+a paragraph that is not correctly filled. The easiest way to make the
+paragraph properly filled again is usually with the explicit fill commands.
+@ifnottex
+@xref{Fill Commands}.
+@end ifnottex
+
+ Many users like Auto Fill mode and want to use it in all text files.
+The section on init files says how to arrange this permanently for yourself.
+@xref{Init File}.
+
+@node Fill Commands
+@subsection Explicit Fill Commands
+
+@table @kbd
+@item M-q
+Fill current paragraph (@code{fill-paragraph}).
+@item C-x f
+Set the fill column (@code{set-fill-column}).
+@item M-x fill-region
+Fill each paragraph in the region (@code{fill-region}).
+@item M-x fill-region-as-paragraph
+Fill the region, considering it as one paragraph.
+@item M-s
+Center a line.
+@end table
+
+@kindex M-q
+@findex fill-paragraph
+ To refill a paragraph, use the command @kbd{M-q}
+(@code{fill-paragraph}). This operates on the paragraph that point is
+inside, or the one after point if point is between paragraphs.
+Refilling works by removing all the line-breaks, then inserting new ones
+where necessary. When the mark is active in Transient Mark mode, this
+command operates on the active region like @code{fill-region}.
+
+@findex fill-region
+ To refill many paragraphs, use @kbd{M-x fill-region}, which
+finds the paragraphs in the region and fills each of them.
+
+@findex fill-region-as-paragraph
+ @kbd{M-q} and @code{fill-region} use the same criteria as @kbd{M-h}
+for finding paragraph boundaries (@pxref{Paragraphs}). For more
+control, you can use @kbd{M-x fill-region-as-paragraph}, which refills
+everything between point and mark as a single paragraph. This command
+deletes any blank lines within the region, so separate blocks of text
+end up combined into one block.
+
+@cindex justification
+ A numeric argument to @kbd{M-q} tells it to @dfn{justify} the text
+as well as filling it. This means that extra spaces are inserted to
+make the right margin line up exactly at the fill column. To remove
+the extra spaces, use @kbd{M-q} with no argument. (Likewise for
+@code{fill-region}.) Another way to control justification, and choose
+other styles of filling, is with the @code{justification} text
+property; see @ref{Format Justification}.
+
+@kindex M-s @r{(Text mode)}
+@cindex centering
+@findex center-line
+ The command @kbd{M-s} (@code{center-line}) centers the current line
+within the current fill column. With an argument @var{n}, it centers
+@var{n} lines individually and moves past them. This binding is
+made by Text mode and is available only in that and related modes
+(@pxref{Text Mode}).
+
+@vindex fill-column
+@kindex C-x f
+@findex set-fill-column
+ The maximum line width for filling is in the variable
+@code{fill-column}. Altering the value of @code{fill-column} makes it
+local to the current buffer; until that time, the default value is in
+effect. The default is initially 70. @xref{Locals}. The easiest way
+to set @code{fill-column} is to use the command @kbd{C-x f}
+(@code{set-fill-column}). With a numeric argument, it uses that as the
+new fill column. With just @kbd{C-u} as argument, it sets
+@code{fill-column} to the current horizontal position of point.
+
+ Emacs commands normally consider a period followed by two spaces or by
+a newline as the end of a sentence; a period followed by just one space
+indicates an abbreviation and not the end of a sentence. To preserve
+the distinction between these two ways of using a period, the fill
+commands do not break a line after a period followed by just one space.
+
+ If the variable @code{sentence-end-double-space} is @code{nil}, the
+fill commands expect and leave just one space at the end of a sentence.
+Ordinarily this variable is @code{t}, so the fill commands insist on
+two spaces for the end of a sentence, as explained above. @xref{Sentences}.
+
+@vindex colon-double-space
+ If the variable @code{colon-double-space} is non-@code{nil}, the
+fill commands put two spaces after a colon.
+
+@vindex fill-nobreak-predicate
+ The variable @code{fill-nobreak-predicate} is a hook (an abnormal
+hook, @pxref{Hooks}) specifying additional conditions where
+line-breaking is not allowed. Each function is called with no
+arguments, with point at a place where Emacs is considering breaking
+the line. If a function returns a non-@code{nil} value, then that's
+a bad place to break the line. Two standard functions you can use are
+@code{fill-single-word-nobreak-p} (don't break after the first word of
+a sentence or before the last) and @code{fill-french-nobreak-p} (don't
+break after @samp{(} or before @samp{)}, @samp{:} or @samp{?}).
+
+@node Fill Prefix
+@subsection The Fill Prefix
+
+@cindex fill prefix
+ To fill a paragraph in which each line starts with a special marker
+(which might be a few spaces, giving an indented paragraph), you can use
+the @dfn{fill prefix} feature. The fill prefix is a string that Emacs
+expects every line to start with, and which is not included in filling.
+You can specify a fill prefix explicitly; Emacs can also deduce the
+fill prefix automatically (@pxref{Adaptive Fill}).
+
+@table @kbd
+@item C-x .
+Set the fill prefix (@code{set-fill-prefix}).
+@item M-q
+Fill a paragraph using current fill prefix (@code{fill-paragraph}).
+@item M-x fill-individual-paragraphs
+Fill the region, considering each change of indentation as starting a
+new paragraph.
+@item M-x fill-nonuniform-paragraphs
+Fill the region, considering only paragraph-separator lines as starting
+a new paragraph.
+@end table
+
+@kindex C-x .
+@findex set-fill-prefix
+ To specify a fill prefix for the current buffer, move to a line that
+starts with the desired prefix, put point at the end of the prefix,
+and type @w{@kbd{C-x .}}@: (@code{set-fill-prefix}). (That's a period
+after the @kbd{C-x}.) To turn off the fill prefix, specify an empty
+prefix: type @w{@kbd{C-x .}}@: with point at the beginning of a line.
+
+ When a fill prefix is in effect, the fill commands remove the fill
+prefix from each line of the paragraph before filling and insert it on
+each line after filling. (The beginning of the first line of the
+paragraph is left unchanged, since often that is intentionally
+different.) Auto Fill mode also inserts the fill prefix automatically
+when it makes a new line. The @kbd{C-o} command inserts the fill
+prefix on new lines it creates, when you use it at the beginning of a
+line (@pxref{Blank Lines}). Conversely, the command @kbd{M-^} deletes
+the prefix (if it occurs) after the newline that it deletes
+(@pxref{Indentation}).
+
+ For example, if @code{fill-column} is 40 and you set the fill prefix
+to @samp{;; }, then @kbd{M-q} in the following text
+
+@example
+;; This is an
+;; example of a paragraph
+;; inside a Lisp-style comment.
+@end example
+
+@noindent
+produces this:
+
+@example
+;; This is an example of a paragraph
+;; inside a Lisp-style comment.
+@end example
+
+ Lines that do not start with the fill prefix are considered to start
+paragraphs, both in @kbd{M-q} and the paragraph commands; this gives
+good results for paragraphs with hanging indentation (every line
+indented except the first one). Lines which are blank or indented once
+the prefix is removed also separate or start paragraphs; this is what
+you want if you are writing multi-paragraph comments with a comment
+delimiter on each line.
+
+@findex fill-individual-paragraphs
+ You can use @kbd{M-x fill-individual-paragraphs} to set the fill
+prefix for each paragraph automatically. This command divides the
+region into paragraphs, treating every change in the amount of
+indentation as the start of a new paragraph, and fills each of these
+paragraphs. Thus, all the lines in one ``paragraph'' have the same
+amount of indentation. That indentation serves as the fill prefix for
+that paragraph.
+
+@findex fill-nonuniform-paragraphs
+ @kbd{M-x fill-nonuniform-paragraphs} is a similar command that divides
+the region into paragraphs in a different way. It considers only
+paragraph-separating lines (as defined by @code{paragraph-separate}) as
+starting a new paragraph. Since this means that the lines of one
+paragraph may have different amounts of indentation, the fill prefix
+used is the smallest amount of indentation of any of the lines of the
+paragraph. This gives good results with styles that indent a paragraph's
+first line more or less that the rest of the paragraph.
+
+@vindex fill-prefix
+ The fill prefix is stored in the variable @code{fill-prefix}. Its value
+is a string, or @code{nil} when there is no fill prefix. This is a
+per-buffer variable; altering the variable affects only the current buffer,
+but there is a default value which you can change as well. @xref{Locals}.
+
+ The @code{indentation} text property provides another way to control
+the amount of indentation paragraphs receive. @xref{Format Indentation}.
+
+@node Adaptive Fill
+@subsection Adaptive Filling
+
+@cindex adaptive filling
+ The fill commands can deduce the proper fill prefix for a paragraph
+automatically in certain cases: either whitespace or certain punctuation
+characters at the beginning of a line are propagated to all lines of the
+paragraph.
+
+ If the paragraph has two or more lines, the fill prefix is taken from
+the paragraph's second line, but only if it appears on the first line as
+well.
+
+ If a paragraph has just one line, fill commands @emph{may} take a
+prefix from that line. The decision is complicated because there are
+three reasonable things to do in such a case:
+
+@itemize @bullet
+@item
+Use the first line's prefix on all the lines of the paragraph.
+
+@item
+Indent subsequent lines with whitespace, so that they line up under the
+text that follows the prefix on the first line, but don't actually copy
+the prefix from the first line.
+
+@item
+Don't do anything special with the second and following lines.
+@end itemize
+
+ All three of these styles of formatting are commonly used. So the
+fill commands try to determine what you would like, based on the prefix
+that appears and on the major mode. Here is how.
+
+@vindex adaptive-fill-first-line-regexp
+ If the prefix found on the first line matches
+@code{adaptive-fill-first-line-regexp}, or if it appears to be a
+comment-starting sequence (this depends on the major mode), then the
+prefix found is used for filling the paragraph, provided it would not
+act as a paragraph starter on subsequent lines.
+
+ Otherwise, the prefix found is converted to an equivalent number of
+spaces, and those spaces are used as the fill prefix for the rest of the
+lines, provided they would not act as a paragraph starter on subsequent
+lines.
+
+ In Text mode, and other modes where only blank lines and page
+delimiters separate paragraphs, the prefix chosen by adaptive filling
+never acts as a paragraph starter, so it can always be used for filling.
+
+@vindex adaptive-fill-mode
+@vindex adaptive-fill-regexp
+ The variable @code{adaptive-fill-regexp} determines what kinds of line
+beginnings can serve as a fill prefix: any characters at the start of
+the line that match this regular expression are used. If you set the
+variable @code{adaptive-fill-mode} to @code{nil}, the fill prefix is
+never chosen automatically.
+
+@vindex adaptive-fill-function
+ You can specify more complex ways of choosing a fill prefix
+automatically by setting the variable @code{adaptive-fill-function} to a
+function. This function is called with point after the left margin of a
+line, and it should return the appropriate fill prefix based on that
+line. If it returns @code{nil}, @code{adaptive-fill-regexp} gets
+a chance to find a prefix.
+
+@node Refill
+@subsection Refill Mode
+@cindex refilling text, word processor style
+@cindex modes, Refill
+@cindex Refill minor mode
+
+ Refill minor mode provides support for keeping paragraphs filled as
+you type or modify them in other ways. It provides an effect similar
+to typical word processor behavior. This works by running a
+paragraph-filling command at suitable times.
+
+ To toggle the use of Refill mode in the current buffer, type
+@kbd{M-x refill-mode}. When you are typing text, only characters
+which normally trigger auto filling, like the space character, will
+trigger refilling. This is to avoid making it too slow. Apart from
+self-inserting characters, other commands which modify the text cause
+refilling.
+
+ The current implementation is preliminary and not robust. You can
+get better ``line wrapping'' behavior using Longlines mode.
+@xref{Longlines}. However, Longlines mode has an important
+side-effect: the newlines that it inserts for you are not saved to
+disk, so the files that you make with Longlines mode will appear to be
+completely unfilled if you edit them without Longlines mode.
+
+@node Longlines
+@subsection Long Lines Mode
+@cindex refilling text, word processor style
+@cindex modes, Long Lines
+@cindex word wrap
+@cindex Long Lines minor mode
+
+ Long Lines mode is a minor mode for @dfn{word wrapping}; it lets you
+edit ``unfilled'' text files, which Emacs would normally display as a
+bunch of extremely long lines. Many text editors, such as those built
+into many web browsers, normally do word wrapping.
+
+@findex longlines-mode
+ To enable Long Lines mode, type @kbd{M-x longlines-mode}. If the
+text is full of long lines, this will ``wrap'' them
+immediately---i.e., break up to fit in the window. As you edit the
+text, Long Lines mode automatically re-wraps lines by inserting or
+deleting @dfn{soft newlines} as necessary (@pxref{Hard and Soft
+Newlines}.) These soft newlines won't show up when you save the
+buffer into a file, or when you copy the text into the kill ring,
+clipboard, or a register.
+
+@findex longlines-auto-wrap
+ Word wrapping is @emph{not} the same as ordinary filling
+(@pxref{Fill Commands}). It does not contract multiple spaces into a
+single space, recognize fill prefixes (@pxref{Fill Prefix}), or
+perform adaptive filling (@pxref{Adaptive Fill}). The reason for this
+is that a wrapped line is still, conceptually, a single line. Each
+soft newline is equivalent to exactly one space in that long line, and
+vice versa. However, you can still call filling functions such as
+@kbd{M-q}, and these will work as expected, inserting soft newlines
+that won't show up on disk or when the text is copied. You can even
+rely entirely on the normal fill commands by turning off automatic
+line wrapping, with @kbd{C-u M-x longlines-auto-wrap}. To turn
+automatic line wrapping back on, type @kbd{M-x longlines-auto-wrap}.
+
+@findex longlines-show-hard-newlines
+ Type @kbd{RET} to insert a hard newline, one which automatic
+refilling will not remove. If you want to see where all the hard
+newlines are, type @kbd{M-x longlines-show-hard-newlines}. This will
+mark each hard newline with a special symbol. The same command with a
+prefix argument turns this display off.
+
+ Long Lines mode does not change normal text files that are already
+filled, since the existing newlines are considered hard newlines.
+Before Long Lines can do anything, you need to transform each
+paragraph into a long line. One way is to set @code{fill-column} to a
+large number (e.g., @kbd{C-u 9999 C-x f}), re-fill all the paragraphs,
+and then set @code{fill-column} back to its original value.
+
+@node Case
+@section Case Conversion Commands
+@cindex case conversion
+
+ Emacs has commands for converting either a single word or any arbitrary
+range of text to upper case or to lower case.
+
+@table @kbd
+@item M-l
+Convert following word to lower case (@code{downcase-word}).
+@item M-u
+Convert following word to upper case (@code{upcase-word}).
+@item M-c
+Capitalize the following word (@code{capitalize-word}).
+@item C-x C-l
+Convert region to lower case (@code{downcase-region}).
+@item C-x C-u
+Convert region to upper case (@code{upcase-region}).
+@end table
+
+@kindex M-l
+@kindex M-u
+@kindex M-c
+@cindex words, case conversion
+@cindex converting text to upper or lower case
+@cindex capitalizing words
+@findex downcase-word
+@findex upcase-word
+@findex capitalize-word
+ The word conversion commands are the most useful. @kbd{M-l}
+(@code{downcase-word}) converts the word after point to lower case, moving
+past it. Thus, repeating @kbd{M-l} converts successive words.
+@kbd{M-u} (@code{upcase-word}) converts to all capitals instead, while
+@kbd{M-c} (@code{capitalize-word}) puts the first letter of the word
+into upper case and the rest into lower case. All these commands convert
+several words at once if given an argument. They are especially convenient
+for converting a large amount of text from all upper case to mixed case,
+because you can move through the text using @kbd{M-l}, @kbd{M-u} or
+@kbd{M-c} on each word as appropriate, occasionally using @kbd{M-f} instead
+to skip a word.
+
+ When given a negative argument, the word case conversion commands apply
+to the appropriate number of words before point, but do not move point.
+This is convenient when you have just typed a word in the wrong case: you
+can give the case conversion command and continue typing.
+
+ If a word case conversion command is given in the middle of a word,
+it applies only to the part of the word which follows point. (This is
+comparable to what @kbd{M-d} (@code{kill-word}) does.) With a
+negative argument, case conversion applies only to the part of the
+word before point.
+
+@kindex C-x C-l
+@kindex C-x C-u
+@findex downcase-region
+@findex upcase-region
+ The other case conversion commands are @kbd{C-x C-u}
+(@code{upcase-region}) and @kbd{C-x C-l} (@code{downcase-region}), which
+convert everything between point and mark to the specified case. Point and
+mark do not move.
+
+ The region case conversion commands @code{upcase-region} and
+@code{downcase-region} are normally disabled. This means that they ask
+for confirmation if you try to use them. When you confirm, you may
+enable the command, which means it will not ask for confirmation again.
+@xref{Disabling}.
+
+@node Text Mode
+@section Text Mode
+@cindex Text mode
+@cindex mode, Text
+@findex text-mode
+
+ When you edit files of text in a human language, it's more convenient
+to use Text mode rather than Fundamental mode. To enter Text mode, type
+@kbd{M-x text-mode}.
+
+ In Text mode, only blank lines and page delimiters separate
+paragraphs. As a result, paragraphs can be indented, and adaptive
+filling determines what indentation to use when filling a paragraph.
+@xref{Adaptive Fill}.
+
+@kindex TAB @r{(Text mode)}
+ Text mode defines @key{TAB} to run @code{indent-relative}
+(@pxref{Indentation}), so that you can conveniently indent a line like
+the previous line.
+
+ Text mode turns off the features concerned with comments except when
+you explicitly invoke them. It changes the syntax table so that
+single-quotes are considered part of words. However, if a word starts
+with single-quotes, these are treated as a prefix for purposes such as
+capitalization. That is, @kbd{M-c} will convert @samp{'hello'} into
+@samp{'Hello'}, as expected.
+
+@cindex Paragraph-Indent Text mode
+@cindex mode, Paragraph-Indent Text
+@findex paragraph-indent-text-mode
+@findex paragraph-indent-minor-mode
+ If you indent the first lines of paragraphs, then you should use
+Paragraph-Indent Text mode rather than Text mode. In this mode, you
+do not need to have blank lines between paragraphs, because the
+first-line indentation is sufficient to start a paragraph; however
+paragraphs in which every line is indented are not supported. Use
+@kbd{M-x paragraph-indent-text-mode} to enter this mode. Use @kbd{M-x
+paragraph-indent-minor-mode} to enable an equivalent minor mode in
+situations where you can't change the major mode---in mail
+composition, for instance.
+
+@kindex M-TAB @r{(Text mode)}
+ Text mode, and all the modes based on it, define @kbd{M-@key{TAB}}
+as the command @code{ispell-complete-word}, which performs completion
+of the partial word in the buffer before point, using the spelling
+dictionary as the space of possible words. @xref{Spelling}. If your
+window manager defines @kbd{M-@key{TAB}} to switch windows, you can
+type @kbd{@key{ESC} @key{TAB}} or @kbd{C-M-i}.
+
+@vindex text-mode-hook
+ Entering Text mode runs the hook @code{text-mode-hook}. Other major
+modes related to Text mode also run this hook, followed by hooks of
+their own; this includes Paragraph-Indent Text mode, Nroff mode, @TeX{}
+mode, Outline mode, and Mail mode. Hook functions on
+@code{text-mode-hook} can look at the value of @code{major-mode} to see
+which of these modes is actually being entered. @xref{Hooks}.
+
+@ifnottex
+ Emacs provides two other modes for editing text that is to be passed
+through a text formatter to produce fancy formatted printed output.
+@xref{Nroff Mode}, for editing input to the formatter nroff.
+@xref{TeX Mode,,@TeX{} Mode}, for editing input to the formatter TeX.
+
+ Another mode is used for editing outlines. It allows you to view the
+text at various levels of detail. You can view either the outline
+headings alone or both headings and text; you can also hide some of the
+headings at lower levels from view to make the high level structure more
+visible. @xref{Outline Mode}.
+@end ifnottex
+
+@node Outline Mode
+@section Outline Mode
+@cindex Outline mode
+@cindex mode, Outline
+@cindex invisible lines
+
+@findex outline-mode
+@findex outline-minor-mode
+@vindex outline-minor-mode-prefix
+ Outline mode is a major mode much like Text mode but intended for
+editing outlines. It allows you to make parts of the text temporarily
+invisible so that you can see the outline structure. Type @kbd{M-x
+outline-mode} to switch to Outline mode as the major mode of the current
+buffer.
+
+ When Outline mode makes a line invisible, the line does not appear
+on the screen. The screen appears exactly as if the invisible line
+were deleted, except that an ellipsis (three periods in a row) appears
+at the end of the previous visible line. (Multiple consecutive
+invisible lines produce just one ellipsis.)
+
+ Editing commands that operate on lines, such as @kbd{C-n} and
+@kbd{C-p}, treat the text of the invisible line as part of the previous
+visible line. Killing the ellipsis at the end of a visible line
+really kills all the following invisible lines.
+
+ Outline minor mode provides the same commands as the major mode,
+Outline mode, but you can use it in conjunction with other major modes.
+Type @kbd{M-x outline-minor-mode} to enable the Outline minor mode in
+the current buffer. You can also specify this in the text of a file,
+with a file local variable of the form @samp{mode: outline-minor}
+(@pxref{File Variables}).
+
+@kindex C-c @@ @r{(Outline minor mode)}
+ The major mode, Outline mode, provides special key bindings on the
+@kbd{C-c} prefix. Outline minor mode provides similar bindings with
+@kbd{C-c @@} as the prefix; this is to reduce the conflicts with the
+major mode's special commands. (The variable
+@code{outline-minor-mode-prefix} controls the prefix used.)
+
+@vindex outline-mode-hook
+ Entering Outline mode runs the hook @code{text-mode-hook} followed by
+the hook @code{outline-mode-hook} (@pxref{Hooks}).
+
+@menu
+* Format: Outline Format. What the text of an outline looks like.
+* Motion: Outline Motion. Special commands for moving through
+ outlines.
+* Visibility: Outline Visibility. Commands to control what is visible.
+* Views: Outline Views. Outlines and multiple views.
+* Foldout:: Folding means zooming in on outlines.
+@end menu
+
+@node Outline Format
+@subsection Format of Outlines
+
+@cindex heading lines (Outline mode)
+@cindex body lines (Outline mode)
+ Outline mode assumes that the lines in the buffer are of two types:
+@dfn{heading lines} and @dfn{body lines}. A heading line represents a
+topic in the outline. Heading lines start with one or more stars; the
+number of stars determines the depth of the heading in the outline
+structure. Thus, a heading line with one star is a major topic; all the
+heading lines with two stars between it and the next one-star heading
+are its subtopics; and so on. Any line that is not a heading line is a
+body line. Body lines belong with the preceding heading line. Here is
+an example:
+
+@example
+* Food
+This is the body,
+which says something about the topic of food.
+
+** Delicious Food
+This is the body of the second-level header.
+
+** Distasteful Food
+This could have
+a body too, with
+several lines.
+
+*** Dormitory Food
+
+* Shelter
+Another first-level topic with its header line.
+@end example
+
+ A heading line together with all following body lines is called
+collectively an @dfn{entry}. A heading line together with all following
+deeper heading lines and their body lines is called a @dfn{subtree}.
+
+@vindex outline-regexp
+ You can customize the criterion for distinguishing heading lines by
+setting the variable @code{outline-regexp}. (The recommended ways to
+do this are in a major mode function or with a file local variable.)
+Any line whose beginning has a match for this regexp is considered a
+heading line. Matches that start within a line (not at the left
+margin) do not count.
+
+ The length of the matching text determines the level of the heading;
+longer matches make a more deeply nested level. Thus, for example, if
+a text formatter has commands @samp{@@chapter}, @samp{@@section} and
+@samp{@@subsection} to divide the document into chapters and sections,
+you could make those lines count as heading lines by setting
+@code{outline-regexp} to @samp{"@@chap\\|@@\\(sub\\)*section"}. Note
+the trick: the two words @samp{chapter} and @samp{section} are equally
+long, but by defining the regexp to match only @samp{chap} we ensure
+that the length of the text matched on a chapter heading is shorter,
+so that Outline mode will know that sections are contained in
+chapters. This works as long as no other command starts with
+@samp{@@chap}.
+
+@vindex outline-level
+ You can explicitly specify a rule for calculating the level of a
+heading line by setting the variable @code{outline-level}. The value
+of @code{outline-level} should be a function that takes no arguments
+and returns the level of the current heading. The recommended ways to
+set this variable are in a major mode command or with a file local
+variable.
+
+@node Outline Motion
+@subsection Outline Motion Commands
+
+ Outline mode provides special motion commands that move backward and
+forward to heading lines.
+
+@table @kbd
+@item C-c C-n
+Move point to the next visible heading line
+(@code{outline-next-visible-heading}).
+@item C-c C-p
+Move point to the previous visible heading line
+(@code{outline-previous-visible-heading}).
+@item C-c C-f
+Move point to the next visible heading line at the same level
+as the one point is on (@code{outline-forward-same-level}).
+@item C-c C-b
+Move point to the previous visible heading line at the same level
+(@code{outline-backward-same-level}).
+@item C-c C-u
+Move point up to a lower-level (more inclusive) visible heading line
+(@code{outline-up-heading}).
+@end table
+
+@findex outline-next-visible-heading
+@findex outline-previous-visible-heading
+@kindex C-c C-n @r{(Outline mode)}
+@kindex C-c C-p @r{(Outline mode)}
+ @kbd{C-c C-n} (@code{outline-next-visible-heading}) moves down to the next
+heading line. @kbd{C-c C-p} (@code{outline-previous-visible-heading}) moves
+similarly backward. Both accept numeric arguments as repeat counts. The
+names emphasize that invisible headings are skipped, but this is not really
+a special feature. All editing commands that look for lines ignore the
+invisible lines automatically.
+
+@findex outline-up-heading
+@findex outline-forward-same-level
+@findex outline-backward-same-level
+@kindex C-c C-f @r{(Outline mode)}
+@kindex C-c C-b @r{(Outline mode)}
+@kindex C-c C-u @r{(Outline mode)}
+ More powerful motion commands understand the level structure of headings.
+@kbd{C-c C-f} (@code{outline-forward-same-level}) and
+@kbd{C-c C-b} (@code{outline-backward-same-level}) move from one
+heading line to another visible heading at the same depth in
+the outline. @kbd{C-c C-u} (@code{outline-up-heading}) moves
+backward to another heading that is less deeply nested.
+
+@node Outline Visibility
+@subsection Outline Visibility Commands
+
+ The other special commands of outline mode are used to make lines visible
+or invisible. Their names all start with @code{hide} or @code{show}.
+Most of them fall into pairs of opposites. They are not undoable; instead,
+you can undo right past them. Making lines visible or invisible is simply
+not recorded by the undo mechanism.
+
+ Many of these commands act on the ``current'' heading line. If
+point is on a heading line, that is the current heading line; if point
+is on a body line, the current heading line is the nearest preceding
+header line.
+
+@table @kbd
+@item C-c C-c
+Make the current heading line's body invisible (@code{hide-entry}).
+@item C-c C-e
+Make the current heading line's body visible (@code{show-entry}).
+@item C-c C-d
+Make everything under the current heading invisible, not including the
+heading itself (@code{hide-subtree}).
+@item C-c C-s
+Make everything under the current heading visible, including body,
+subheadings, and their bodies (@code{show-subtree}).
+@item C-c C-l
+Make the body of the current heading line, and of all its subheadings,
+invisible (@code{hide-leaves}).
+@item C-c C-k
+Make all subheadings of the current heading line, at all levels,
+visible (@code{show-branches}).
+@item C-c C-i
+Make immediate subheadings (one level down) of the current heading
+line visible (@code{show-children}).
+@item C-c C-t
+Make all body lines in the buffer invisible (@code{hide-body}).
+@item C-c C-a
+Make all lines in the buffer visible (@code{show-all}).
+@item C-c C-q
+Hide everything except the top @var{n} levels of heading lines
+(@code{hide-sublevels}).
+@item C-c C-o
+Hide everything except for the heading or body that point is in, plus
+the headings leading up from there to the top level of the outline
+(@code{hide-other}).
+@end table
+
+@findex hide-entry
+@findex show-entry
+@kindex C-c C-c @r{(Outline mode)}
+@kindex C-c C-e @r{(Outline mode)}
+ Two commands that are exact opposites are @kbd{C-c C-c}
+(@code{hide-entry}) and @kbd{C-c C-e} (@code{show-entry}). They apply
+to the body lines directly following the current heading line.
+Subheadings and their bodies are not affected.
+
+@findex hide-subtree
+@findex show-subtree
+@kindex C-c C-s @r{(Outline mode)}
+@kindex C-c C-d @r{(Outline mode)}
+@cindex subtree (Outline mode)
+ Two more powerful opposites are @kbd{C-c C-d} (@code{hide-subtree})
+and @kbd{C-c C-s} (@code{show-subtree}). Both apply to the current
+heading line's @dfn{subtree}: its body, all its subheadings, both
+direct and indirect, and all of their bodies. In other words, the
+subtree contains everything following the current heading line, up to
+and not including the next heading of the same or higher rank.
+
+@findex hide-leaves
+@findex show-branches
+@kindex C-c C-l @r{(Outline mode)}
+@kindex C-c C-k @r{(Outline mode)}
+ Intermediate between a visible subtree and an invisible one is having
+all the subheadings visible but none of the body. There are two
+commands for doing this, depending on whether you want to hide the
+bodies or make the subheadings visible. They are @kbd{C-c C-l}
+(@code{hide-leaves}) and @kbd{C-c C-k} (@code{show-branches}).
+
+@kindex C-c C-i @r{(Outline mode)}
+@findex show-children
+ A little weaker than @code{show-branches} is @kbd{C-c C-i}
+(@code{show-children}). It makes just the direct subheadings
+visible---those one level down. Deeper subheadings remain invisible, if
+they were invisible.
+
+@findex hide-body
+@findex show-all
+@kindex C-c C-t @r{(Outline mode)}
+@kindex C-c C-a @r{(Outline mode)}
+ Two commands have a blanket effect on the whole file. @kbd{C-c C-t}
+(@code{hide-body}) makes all body lines invisible, so that you see just
+the outline structure (as a special exception, it will not hide lines
+at the top of the file, preceding the first header line, even though
+these are technically body lines). @kbd{C-c C-a} (@code{show-all})
+makes all lines visible. These commands can be thought of as a pair
+of opposites even though @kbd{C-c C-a} applies to more than just body
+lines.
+
+@findex hide-sublevels
+@kindex C-c C-q @r{(Outline mode)}
+ The command @kbd{C-c C-q} (@code{hide-sublevels}) hides all but the
+top level headings. With a numeric argument @var{n}, it hides everything
+except the top @var{n} levels of heading lines.
+
+@findex hide-other
+@kindex C-c C-o @r{(Outline mode)}
+ The command @kbd{C-c C-o} (@code{hide-other}) hides everything except
+the heading and body text that point is in, plus its parents (the headers
+leading up from there to top level in the outline) and the top level
+headings.
+
+@findex reveal-mode
+ When incremental search finds text that is hidden by Outline mode,
+it makes that part of the buffer visible. If you exit the search
+at that position, the text remains visible. You can also
+automatically make text visible as you navigate in it by using
+@kbd{M-x reveal-mode}.
+
+@node Outline Views
+@subsection Viewing One Outline in Multiple Views
+
+@cindex multiple views of outline
+@cindex views of an outline
+@cindex outline with multiple views
+@cindex indirect buffers and outlines
+ You can display two views of a single outline at the same time, in
+different windows. To do this, you must create an indirect buffer using
+@kbd{M-x make-indirect-buffer}. The first argument of this command is
+the existing outline buffer name, and its second argument is the name to
+use for the new indirect buffer. @xref{Indirect Buffers}.
+
+ Once the indirect buffer exists, you can display it in a window in the
+normal fashion, with @kbd{C-x 4 b} or other Emacs commands. The Outline
+mode commands to show and hide parts of the text operate on each buffer
+independently; as a result, each buffer can have its own view. If you
+want more than two views on the same outline, create additional indirect
+buffers.
+
+@node Foldout
+@subsection Folding Editing
+
+@cindex folding editing
+ The Foldout package extends Outline mode and Outline minor mode with
+``folding'' commands. The idea of folding is that you zoom in on a
+nested portion of the outline, while hiding its relatives at higher
+levels.
+
+ Consider an Outline mode buffer with all the text and subheadings under
+level-1 headings hidden. To look at what is hidden under one of these
+headings, you could use @kbd{C-c C-e} (@kbd{M-x show-entry}) to expose
+the body, or @kbd{C-c C-i} to expose the child (level-2) headings.
+
+@kindex C-c C-z
+@findex foldout-zoom-subtree
+ With Foldout, you use @kbd{C-c C-z} (@kbd{M-x foldout-zoom-subtree}).
+This exposes the body and child subheadings, and narrows the buffer so
+that only the @w{level-1} heading, the body and the level-2 headings are
+visible. Now to look under one of the level-2 headings, position the
+cursor on it and use @kbd{C-c C-z} again. This exposes the level-2 body
+and its level-3 child subheadings and narrows the buffer again. Zooming
+in on successive subheadings can be done as much as you like. A string
+in the mode line shows how deep you've gone.
+
+ When zooming in on a heading, to see only the child subheadings specify
+a numeric argument: @kbd{C-u C-c C-z}. The number of levels of children
+can be specified too (compare @kbd{M-x show-children}), e.g.@: @kbd{M-2
+C-c C-z} exposes two levels of child subheadings. Alternatively, the
+body can be specified with a negative argument: @kbd{M-- C-c C-z}. The
+whole subtree can be expanded, similarly to @kbd{C-c C-s} (@kbd{M-x
+show-subtree}), by specifying a zero argument: @kbd{M-0 C-c C-z}.
+
+ While you're zoomed in, you can still use Outline mode's exposure and
+hiding functions without disturbing Foldout. Also, since the buffer is
+narrowed, ``global'' editing actions will only affect text under the
+zoomed-in heading. This is useful for restricting changes to a
+particular chapter or section of your document.
+
+@kindex C-c C-x
+@findex foldout-exit-fold
+ To unzoom (exit) a fold, use @kbd{C-c C-x} (@kbd{M-x foldout-exit-fold}).
+This hides all the text and subheadings under the top-level heading and
+returns you to the previous view of the buffer. Specifying a numeric
+argument exits that many levels of folds. Specifying a zero argument
+exits all folds.
+
+ To cancel the narrowing of a fold without hiding the text and
+subheadings, specify a negative argument. For example, @kbd{M--2 C-c
+C-x} exits two folds and leaves the text and subheadings exposed.
+
+ Foldout mode also provides mouse commands for entering and exiting
+folds, and for showing and hiding text:
+
+@table @asis
+@item @kbd{C-M-Mouse-1} zooms in on the heading clicked on
+@itemize @asis
+@item
+single click: expose body.
+@item
+double click: expose subheadings.
+@item
+triple click: expose body and subheadings.
+@item
+quad click: expose entire subtree.
+@end itemize
+@item @kbd{C-M-Mouse-2} exposes text under the heading clicked on
+@itemize @asis
+@item
+single click: expose body.
+@item
+double click: expose subheadings.
+@item
+triple click: expose body and subheadings.
+@item
+quad click: expose entire subtree.
+@end itemize
+@item @kbd{C-M-Mouse-3} hides text under the heading clicked on or exits fold
+@itemize @asis
+@item
+single click: hide subtree.
+@item
+double click: exit fold and hide text.
+@item
+triple click: exit fold without hiding text.
+@item
+quad click: exit all folds and hide text.
+@end itemize
+@end table
+
+@vindex foldout-mouse-modifiers
+ You can specify different modifier keys (instead of
+@kbd{Control-Meta-}) by setting @code{foldout-mouse-modifiers}; but if
+you have already loaded the @file{foldout.el} library, you must reload
+it in order for this to take effect.
+
+ To use the Foldout package, you can type @kbd{M-x load-library
+@key{RET} foldout @key{RET}}; or you can arrange for to do that
+automatically by putting this in your @file{.emacs} file:
+
+@example
+(eval-after-load "outline" '(require 'foldout))
+@end example
+
+@node TeX Mode
+@section @TeX{} Mode
+@cindex @TeX{} mode
+@cindex La@TeX{} mode
+@cindex Sli@TeX{} mode
+@cindex Doc@TeX{} mode
+@cindex mode, @TeX{}
+@cindex mode, La@TeX{}
+@cindex mode, Sli@TeX{}
+@cindex mode, Doc@TeX{}
+@findex tex-mode
+@findex plain-tex-mode
+@findex latex-mode
+@findex slitex-mode
+@findex doctex-mode
+
+ @TeX{} is a powerful text formatter written by Donald Knuth; it is
+also free software, like GNU Emacs. La@TeX{} is a simplified input
+format for @TeX{}, implemented by @TeX{} macros; it comes with @TeX{}.
+Sli@TeX{} is a special form of La@TeX{}.@footnote{Sli@TeX{} is
+obsoleted by the @samp{slides} document class and other alternative
+packages in recent La@TeX{} versions.} Doc@TeX{} (@file{.dtx}) is a
+special file format in which the La@TeX{} sources are written,
+combining sources with documentation.
+
+ Emacs has a special @TeX{} mode for editing @TeX{} input files.
+It provides facilities for checking the balance of delimiters and for
+invoking @TeX{} on all or part of the file.
+
+@vindex tex-default-mode
+ @TeX{} mode has four variants: Plain @TeX{} mode, La@TeX{} mode,
+Sli@TeX{} mode, and Doc@TeX{} mode (these distinct major modes differ
+only slightly). They are designed for editing the four different
+formats. The command @kbd{M-x tex-mode} looks at the contents of the
+buffer to determine whether the contents appear to be either La@TeX{}
+input, Sli@TeX{}, or Doc@TeX{} input; if so, it selects the
+appropriate mode. If the file contents do not appear to be La@TeX{},
+Sli@TeX{} or Doc@TeX{}, it selects Plain @TeX{} mode. If the contents
+are insufficient to determine this, the variable
+@code{tex-default-mode} controls which mode is used.
+
+ When @kbd{M-x tex-mode} does not guess right, you can use the commands
+@kbd{M-x plain-tex-mode}, @kbd{M-x latex-mode}, @kbd{M-x slitex-mode},
+and @kbd{doctex-mode} to select explicitly the particular variants of
+@TeX{} mode.
+
+@menu
+* Editing: TeX Editing. Special commands for editing in TeX mode.
+* LaTeX: LaTeX Editing. Additional commands for LaTeX input files.
+* Printing: TeX Print. Commands for printing part of a file with TeX.
+* Misc: TeX Misc. Customization of TeX mode, and related features.
+@end menu
+
+@node TeX Editing
+@subsection @TeX{} Editing Commands
+
+ Here are the special commands provided in @TeX{} mode for editing the
+text of the file.
+
+@table @kbd
+@item "
+Insert, according to context, either @samp{``} or @samp{"} or
+@samp{''} (@code{tex-insert-quote}).
+@item C-j
+Insert a paragraph break (two newlines) and check the previous
+paragraph for unbalanced braces or dollar signs
+(@code{tex-terminate-paragraph}).
+@item M-x tex-validate-region
+Check each paragraph in the region for unbalanced braces or dollar signs.
+@item C-c @{
+Insert @samp{@{@}} and position point between them (@code{tex-insert-braces}).
+@item C-c @}
+Move forward past the next unmatched close brace (@code{up-list}).
+@end table
+
+@findex tex-insert-quote
+@kindex " @r{(@TeX{} mode)}
+ In @TeX{}, the character @samp{"} is not normally used; we use
+@samp{``} to start a quotation and @samp{''} to end one. To make
+editing easier under this formatting convention, @TeX{} mode overrides
+the normal meaning of the key @kbd{"} with a command that inserts a pair
+of single-quotes or backquotes (@code{tex-insert-quote}). To be
+precise, this command inserts @samp{``} after whitespace or an open
+brace, @samp{"} after a backslash, and @samp{''} after any other
+character.
+
+ If you need the character @samp{"} itself in unusual contexts, use
+@kbd{C-q} to insert it. Also, @kbd{"} with a numeric argument always
+inserts that number of @samp{"} characters. You can turn off the
+feature of @kbd{"} expansion by eliminating that binding in the local
+map (@pxref{Key Bindings}).
+
+ In @TeX{} mode, @samp{$} has a special syntax code which attempts to
+understand the way @TeX{} math mode delimiters match. When you insert a
+@samp{$} that is meant to exit math mode, the position of the matching
+@samp{$} that entered math mode is displayed for a second. This is the
+same feature that displays the open brace that matches a close brace that
+is inserted. However, there is no way to tell whether a @samp{$} enters
+math mode or leaves it; so when you insert a @samp{$} that enters math
+mode, the previous @samp{$} position is shown as if it were a match, even
+though they are actually unrelated.
+
+@findex tex-insert-braces
+@kindex C-c @{ @r{(@TeX{} mode)}
+@findex up-list
+@kindex C-c @} @r{(@TeX{} mode)}
+ @TeX{} uses braces as delimiters that must match. Some users prefer
+to keep braces balanced at all times, rather than inserting them
+singly. Use @kbd{C-c @{} (@code{tex-insert-braces}) to insert a pair of
+braces. It leaves point between the two braces so you can insert the
+text that belongs inside. Afterward, use the command @kbd{C-c @}}
+(@code{up-list}) to move forward past the close brace.
+
+@findex tex-validate-region
+@findex tex-terminate-paragraph
+@kindex C-j @r{(@TeX{} mode)}
+ There are two commands for checking the matching of braces. @kbd{C-j}
+(@code{tex-terminate-paragraph}) checks the paragraph before point, and
+inserts two newlines to start a new paragraph. It outputs a message in
+the echo area if any mismatch is found. @kbd{M-x tex-validate-region}
+checks a region, paragraph by paragraph. The errors are listed in the
+@samp{*Occur*} buffer, and you can use @kbd{C-c C-c} or @kbd{Mouse-2} in
+that buffer to go to a particular mismatch.
+
+ Note that Emacs commands count square brackets and parentheses in
+@TeX{} mode, not just braces. This is not strictly correct for the
+purpose of checking @TeX{} syntax. However, parentheses and square
+brackets are likely to be used in text as matching delimiters and it is
+useful for the various motion commands and automatic match display to
+work with them.
+
+@node LaTeX Editing
+@subsection La@TeX{} Editing Commands
+
+ La@TeX{} mode, and its variant, Sli@TeX{} mode, provide a few extra
+features not applicable to plain @TeX{}.
+
+@table @kbd
+@item C-c C-o
+Insert @samp{\begin} and @samp{\end} for La@TeX{} block and position
+point on a line between them (@code{tex-latex-block}).
+@item C-c C-e
+Close the innermost La@TeX{} block not yet closed
+(@code{tex-close-latex-block}).
+@end table
+
+@findex tex-latex-block
+@kindex C-c C-o @r{(La@TeX{} mode)}
+@vindex latex-block-names
+ In La@TeX{} input, @samp{\begin} and @samp{\end} commands are used to
+group blocks of text. To insert a @samp{\begin} and a matching
+@samp{\end} (on a new line following the @samp{\begin}), use @kbd{C-c
+C-o} (@code{tex-latex-block}). A blank line is inserted between the
+two, and point is left there. You can use completion when you enter the
+block type; to specify additional block type names beyond the standard
+list, set the variable @code{latex-block-names}. For example, here's
+how to add @samp{theorem}, @samp{corollary}, and @samp{proof}:
+
+@example
+(setq latex-block-names '("theorem" "corollary" "proof"))
+@end example
+
+@findex tex-close-latex-block
+@kindex C-c C-e @r{(La@TeX{} mode)}
+ In La@TeX{} input, @samp{\begin} and @samp{\end} commands must
+balance. You can use @kbd{C-c C-e} (@code{tex-close-latex-block}) to
+insert automatically a matching @samp{\end} to match the last unmatched
+@samp{\begin}. It indents the @samp{\end} to match the corresponding
+@samp{\begin}. It inserts a newline after @samp{\end} if point is at
+the beginning of a line.
+
+@node TeX Print
+@subsection @TeX{} Printing Commands
+
+ You can invoke @TeX{} as an inferior of Emacs on either the entire
+contents of the buffer or just a region at a time. Running @TeX{} in
+this way on just one chapter is a good way to see what your changes
+look like without taking the time to format the entire file.
+
+@table @kbd
+@item C-c C-r
+Invoke @TeX{} on the current region, together with the buffer's header
+(@code{tex-region}).
+@item C-c C-b
+Invoke @TeX{} on the entire current buffer (@code{tex-buffer}).
+@item C-c @key{TAB}
+Invoke Bib@TeX{} on the current file (@code{tex-bibtex-file}).
+@item C-c C-f
+Invoke @TeX{} on the current file (@code{tex-file}).
+@item C-c C-l
+Recenter the window showing output from the inferior @TeX{} so that
+the last line can be seen (@code{tex-recenter-output-buffer}).
+@item C-c C-k
+Kill the @TeX{} subprocess (@code{tex-kill-job}).
+@item C-c C-p
+Print the output from the last @kbd{C-c C-r}, @kbd{C-c C-b}, or @kbd{C-c
+C-f} command (@code{tex-print}).
+@item C-c C-v
+Preview the output from the last @kbd{C-c C-r}, @kbd{C-c C-b}, or @kbd{C-c
+C-f} command (@code{tex-view}).
+@item C-c C-q
+Show the printer queue (@code{tex-show-print-queue}).
+@item C-c C-c
+Invoke some other compilation command on the entire current buffer
+(@code{tex-compile}).
+@end table
+
+@findex tex-buffer
+@kindex C-c C-b @r{(@TeX{} mode)}
+@findex tex-print
+@kindex C-c C-p @r{(@TeX{} mode)}
+@findex tex-view
+@kindex C-c C-v @r{(@TeX{} mode)}
+@findex tex-show-print-queue
+@kindex C-c C-q @r{(@TeX{} mode)}
+ You can pass the current buffer through an inferior @TeX{} by means of
+@kbd{C-c C-b} (@code{tex-buffer}). The formatted output appears in a
+temporary file; to print it, type @kbd{C-c C-p} (@code{tex-print}).
+Afterward, you can use @kbd{C-c C-q} (@code{tex-show-print-queue}) to
+view the progress of your output towards being printed. If your terminal
+has the ability to display @TeX{} output files, you can preview the
+output on the terminal with @kbd{C-c C-v} (@code{tex-view}).
+
+@cindex @env{TEXINPUTS} environment variable
+@vindex tex-directory
+ You can specify the directory to use for running @TeX{} by setting the
+variable @code{tex-directory}. @code{"."} is the default value. If
+your environment variable @env{TEXINPUTS} contains relative directory
+names, or if your files contains @samp{\input} commands with relative
+file names, then @code{tex-directory} @emph{must} be @code{"."} or you
+will get the wrong results. Otherwise, it is safe to specify some other
+directory, such as @code{"/tmp"}.
+
+@vindex tex-run-command
+@vindex latex-run-command
+@vindex slitex-run-command
+@vindex tex-dvi-print-command
+@vindex tex-dvi-view-command
+@vindex tex-show-queue-command
+ If you want to specify which shell commands are used in the inferior @TeX{},
+you can do so by setting the values of the variables @code{tex-run-command},
+@code{latex-run-command}, @code{slitex-run-command},
+@code{tex-dvi-print-command}, @code{tex-dvi-view-command}, and
+@code{tex-show-queue-command}. The default values may
+(or may not) be appropriate for your system.
+
+ Normally, the file name given to these commands comes at the end of
+the command string; for example, @samp{latex @var{filename}}. In some
+cases, however, the file name needs to be embedded in the command; an
+example is when you need to provide the file name as an argument to one
+command whose output is piped to another. You can specify where to put
+the file name with @samp{*} in the command string. For example,
+
+@example
+(setq tex-dvi-print-command "dvips -f * | lpr")
+@end example
+
+@findex tex-kill-job
+@kindex C-c C-k @r{(@TeX{} mode)}
+@findex tex-recenter-output-buffer
+@kindex C-c C-l @r{(@TeX{} mode)}
+ The terminal output from @TeX{}, including any error messages, appears
+in a buffer called @samp{*tex-shell*}. If @TeX{} gets an error, you can
+switch to this buffer and feed it input (this works as in Shell mode;
+@pxref{Interactive Shell}). Without switching to this buffer you can
+scroll it so that its last line is visible by typing @kbd{C-c
+C-l}.
+
+ Type @kbd{C-c C-k} (@code{tex-kill-job}) to kill the @TeX{} process if
+you see that its output is no longer useful. Using @kbd{C-c C-b} or
+@kbd{C-c C-r} also kills any @TeX{} process still running.
+
+@findex tex-region
+@kindex C-c C-r @r{(@TeX{} mode)}
+ You can also pass an arbitrary region through an inferior @TeX{} by typing
+@kbd{C-c C-r} (@code{tex-region}). This is tricky, however, because most files
+of @TeX{} input contain commands at the beginning to set parameters and
+define macros, without which no later part of the file will format
+correctly. To solve this problem, @kbd{C-c C-r} allows you to designate a
+part of the file as containing essential commands; it is included before
+the specified region as part of the input to @TeX{}. The designated part
+of the file is called the @dfn{header}.
+
+@cindex header (@TeX{} mode)
+ To indicate the bounds of the header in Plain @TeX{} mode, you insert two
+special strings in the file. Insert @samp{%**start of header} before the
+header, and @samp{%**end of header} after it. Each string must appear
+entirely on one line, but there may be other text on the line before or
+after. The lines containing the two strings are included in the header.
+If @samp{%**start of header} does not appear within the first 100 lines of
+the buffer, @kbd{C-c C-r} assumes that there is no header.
+
+ In La@TeX{} mode, the header begins with @samp{\documentclass} or
+@samp{\documentstyle} and ends with @samp{\begin@{document@}}. These
+are commands that La@TeX{} requires you to use in any case, so nothing
+special needs to be done to identify the header.
+
+@findex tex-file
+@kindex C-c C-f @r{(@TeX{} mode)}
+ The commands (@code{tex-buffer}) and (@code{tex-region}) do all of their
+work in a temporary directory, and do not have available any of the auxiliary
+files needed by @TeX{} for cross-references; these commands are generally
+not suitable for running the final copy in which all of the cross-references
+need to be correct.
+
+ When you want the auxiliary files for cross references, use @kbd{C-c
+C-f} (@code{tex-file}) which runs @TeX{} on the current buffer's file,
+in that file's directory. Before running @TeX{}, it offers to save any
+modified buffers. Generally, you need to use (@code{tex-file}) twice to
+get the cross-references right.
+
+@vindex tex-start-options
+ The value of the variable @code{tex-start-options} specifies
+options for the @TeX{} run.
+
+@vindex tex-start-commands
+ The value of the variable @code{tex-start-commands} specifies @TeX{}
+commands for starting @TeX{}. The default value causes @TeX{} to run
+in nonstop mode. To run @TeX{} interactively, set the variable to
+@code{""}.
+
+@vindex tex-main-file
+ Large @TeX{} documents are often split into several files---one main
+file, plus subfiles. Running @TeX{} on a subfile typically does not
+work; you have to run it on the main file. In order to make
+@code{tex-file} useful when you are editing a subfile, you can set the
+variable @code{tex-main-file} to the name of the main file. Then
+@code{tex-file} runs @TeX{} on that file.
+
+ The most convenient way to use @code{tex-main-file} is to specify it
+in a local variable list in each of the subfiles. @xref{File
+Variables}.
+
+@findex tex-bibtex-file
+@kindex C-c TAB @r{(@TeX{} mode)}
+@vindex tex-bibtex-command
+ For La@TeX{} files, you can use Bib@TeX{} to process the auxiliary
+file for the current buffer's file. Bib@TeX{} looks up bibliographic
+citations in a data base and prepares the cited references for the
+bibliography section. The command @kbd{C-c @key{TAB}}
+(@code{tex-bibtex-file}) runs the shell command
+(@code{tex-bibtex-command}) to produce a @samp{.bbl} file for the
+current buffer's file. Generally, you need to do @kbd{C-c C-f}
+(@code{tex-file}) once to generate the @samp{.aux} file, then do
+@kbd{C-c @key{TAB}} (@code{tex-bibtex-file}), and then repeat @kbd{C-c C-f}
+(@code{tex-file}) twice more to get the cross-references correct.
+
+@findex tex-compile
+@kindex C-c C-c @r{(@TeX{} mode)}
+ To invoke some other compilation program on the current @TeX{}
+buffer, type @kbd{C-c C-c} (@code{tex-compile}). This command knows
+how to pass arguments to many common programs, including
+@file{pdflatex}, @file{yap}, @file{xdvi}, and @file{dvips}. You can
+select your desired compilation program using the standard completion
+keys (@pxref{Completion}).
+
+@node TeX Misc
+@subsection @TeX{} Mode Miscellany
+
+@vindex tex-shell-hook
+@vindex tex-mode-hook
+@vindex latex-mode-hook
+@vindex slitex-mode-hook
+@vindex plain-tex-mode-hook
+ Entering any variant of @TeX{} mode runs the hooks
+@code{text-mode-hook} and @code{tex-mode-hook}. Then it runs either
+@code{plain-tex-mode-hook}, @code{latex-mode-hook}, or
+@code{slitex-mode-hook}, whichever is appropriate. Starting the
+@TeX{} shell runs the hook @code{tex-shell-hook}. @xref{Hooks}.
+
+@findex iso-iso2tex
+@findex iso-tex2iso
+@findex iso-iso2gtex
+@findex iso-gtex2iso
+@cindex Latin-1 @TeX{} encoding
+@cindex @TeX{} encoding
+ The commands @kbd{M-x iso-iso2tex}, @kbd{M-x iso-tex2iso}, @kbd{M-x
+iso-iso2gtex} and @kbd{M-x iso-gtex2iso} can be used to convert
+between Latin-1 encoded files and @TeX{}-encoded equivalents.
+@ignore
+@c Too cryptic to be useful, too cryptic for me to make it better -- rms.
+ They
+are included by default in the @code{format-alist} variable, so they
+can be used with @kbd{M-x format-find-file}, for instance.
+@end ignore
+
+@ignore @c Not worth documenting if it is only for Czech -- rms.
+@findex tildify-buffer
+@findex tildify-region
+@cindex ties, @TeX{}, inserting
+@cindex hard spaces, @TeX{}, inserting
+ The commands @kbd{M-x tildify-buffer} and @kbd{M-x tildify-region}
+insert @samp{~} (@dfn{tie}) characters where they are conventionally
+required. This is set up for Czech---customize the group
+@samp{tildify} for other languages or for other sorts of markup.
+@end ignore
+
+@cindex Ref@TeX{} package
+@cindex references, La@TeX{}
+@cindex La@TeX{} references
+ For managing all kinds of references for La@TeX{}, you can use
+Ref@TeX{}. @inforef{Top,, reftex}.
+
+@node HTML Mode
+@section SGML, XML, and HTML Modes
+
+ The major modes for SGML and HTML include indentation support and
+commands to operate on tags. This section describes the special
+commands of these modes. (HTML mode is a slightly customized variant
+of SGML mode.)
+
+@table @kbd
+@item C-c C-n
+@kindex C-c C-n @r{(SGML mode)}
+@findex sgml-name-char
+Interactively specify a special character and insert the SGML
+@samp{&}-command for that character.
+
+@item C-c C-t
+@kindex C-c C-t @r{(SGML mode)}
+@findex sgml-tag
+Interactively specify a tag and its attributes (@code{sgml-tag}).
+This command asks you for a tag name and for the attribute values,
+then inserts both the opening tag and the closing tag, leaving point
+between them.
+
+With a prefix argument @var{n}, the command puts the tag around the
+@var{n} words already present in the buffer after point. With
+@minus{}1 as argument, it puts the tag around the region. (In
+Transient Mark mode, it does this whenever a region is active.)
+
+@item C-c C-a
+@kindex C-c C-a @r{(SGML mode)}
+@findex sgml-attributes
+Interactively insert attribute values for the current tag
+(@code{sgml-attributes}).
+
+@item C-c C-f
+@kindex C-c C-f @r{(SGML mode)}
+@findex sgml-skip-tag-forward
+Skip across a balanced tag group (which extends from an opening tag
+through its corresponding closing tag) (@code{sgml-skip-tag-forward}).
+A numeric argument acts as a repeat count.
+
+@item C-c C-b
+@kindex C-c C-b @r{(SGML mode)}
+@findex sgml-skip-tag-backward
+Skip backward across a balanced tag group (which extends from an
+opening tag through its corresponding closing tag)
+(@code{sgml-skip-tag-forward}). A numeric argument acts as a repeat
+count.
+
+@item C-c C-d
+@kindex C-c C-d @r{(SGML mode)}
+@findex sgml-delete-tag
+Delete the tag at or after point, and delete the matching tag too
+(@code{sgml-delete-tag}). If the tag at or after point is an opening
+tag, delete the closing tag too; if it is a closing tag, delete the
+opening tag too.
+
+@item C-c ? @var{tag} @key{RET}
+@kindex C-c ? @r{(SGML mode)}
+@findex sgml-tag-help
+Display a description of the meaning of tag @var{tag}
+(@code{sgml-tag-help}). If the argument @var{tag} is empty, describe
+the tag at point.
+
+@item C-c /
+@kindex C-c / @r{(SGML mode)}
+@findex sgml-close-tag
+Insert a close tag for the innermost unterminated tag
+(@code{sgml-close-tag}). If called from within a tag or a comment,
+close this element instead of inserting a close tag.
+
+@item C-c 8
+@kindex C-c 8 @r{(SGML mode)}
+@findex sgml-name-8bit-mode
+Toggle a minor mode in which Latin-1 characters insert the
+corresponding SGML commands that stand for them, instead of the
+characters themselves (@code{sgml-name-8bit-mode}).
+
+@item C-c C-v
+@kindex C-c C-v @r{(SGML mode)}
+@findex sgml-validate
+Run a shell command (which you must specify) to validate the current
+buffer as SGML (@code{sgml-validate}).
+
+@item C-c TAB
+@kindex C-c TAB @r{(SGML mode)}
+@findex sgml-tags-invisible
+Toggle the visibility of existing tags in the buffer. This can be
+used as a cheap preview.
+@end table
+
+@vindex sgml-xml-mode
+ SGML mode and HTML mode support XML also. In XML, every opening tag
+must have an explicit closing tag. When @code{sgml-xml-mode} is
+non-@code{nil}, SGML mode and HTML mode always insert explicit
+closing tags. When you visit a file, these modes determine from the
+file contents whether it is XML or not, and set @code{sgml-xml-mode}
+accordingly, so that they do the right thing for the file in either
+case.
+
+@node Nroff Mode
+@section Nroff Mode
+
+@cindex nroff
+@findex nroff-mode
+ Nroff mode is a mode like Text mode but modified to handle nroff commands
+present in the text. Invoke @kbd{M-x nroff-mode} to enter this mode. It
+differs from Text mode in only a few ways. All nroff command lines are
+considered paragraph separators, so that filling will never garble the
+nroff commands. Pages are separated by @samp{.bp} commands. Comments
+start with backslash-doublequote. Also, three special commands are
+provided that are not in Text mode:
+
+@findex forward-text-line
+@findex backward-text-line
+@findex count-text-lines
+@kindex M-n @r{(Nroff mode)}
+@kindex M-p @r{(Nroff mode)}
+@kindex M-? @r{(Nroff mode)}
+@table @kbd
+@item M-n
+Move to the beginning of the next line that isn't an nroff command
+(@code{forward-text-line}). An argument is a repeat count.
+@item M-p
+Like @kbd{M-n} but move up (@code{backward-text-line}).
+@item M-?
+Displays in the echo area the number of text lines (lines that are not
+nroff commands) in the region (@code{count-text-lines}).
+@end table
+
+@findex electric-nroff-mode
+ The other feature of Nroff mode is that you can turn on Electric Nroff
+mode. This is a minor mode that you can turn on or off with @kbd{M-x
+electric-nroff-mode} (@pxref{Minor Modes}). When the mode is on, each
+time you use @key{RET} to end a line that contains an nroff command that
+opens a kind of grouping, the matching nroff command to close that
+grouping is automatically inserted on the following line. For example,
+if you are at the beginning of a line and type @kbd{.@: ( b @key{RET}},
+this inserts the matching command @samp{.)b} on a new line following
+point.
+
+ If you use Outline minor mode with Nroff mode (@pxref{Outline Mode}),
+heading lines are lines of the form @samp{.H} followed by a number (the
+header level).
+
+@vindex nroff-mode-hook
+ Entering Nroff mode runs the hook @code{text-mode-hook}, followed by
+the hook @code{nroff-mode-hook} (@pxref{Hooks}).
+
+@node Formatted Text
+@section Editing Formatted Text
+
+@cindex Enriched mode
+@cindex mode, Enriched
+@cindex formatted text
+@cindex WYSIWYG
+@cindex word processing
+ @dfn{Enriched mode} is a minor mode for editing files that contain
+formatted text in WYSIWYG fashion, as in a word processor. Currently,
+formatted text in Enriched mode can specify fonts, colors, underlining,
+margins, and types of filling and justification. In the future, we plan
+to implement other formatting features as well.
+
+ Enriched mode is a minor mode (@pxref{Minor Modes}). It is
+typically used in conjunction with Text mode (@pxref{Text Mode}), but
+you can also use it with other major modes such as Outline mode and
+Paragraph-Indent Text mode.
+
+@cindex text/enriched MIME format
+ Potentially, Emacs can store formatted text files in various file
+formats. Currently, only one format is implemented: @dfn{text/enriched}
+format, which is defined by the MIME protocol. @xref{Format
+Conversion,, Format Conversion, elisp, the Emacs Lisp Reference Manual},
+for details of how Emacs recognizes and converts file formats.
+
+ The Emacs distribution contains a formatted text file that can serve as
+an example. Its name is @file{etc/enriched.doc}. It contains samples
+illustrating all the features described in this section. It also
+contains a list of ideas for future enhancements.
+
+@menu
+* Requesting Formatted Text:: Entering and exiting Enriched mode.
+* Hard and Soft Newlines:: There are two different kinds of newlines.
+* Editing Format Info:: How to edit text properties.
+* Faces: Format Faces. Bold, italic, underline, etc.
+* Color: Format Colors. Changing the color of text.
+* Indent: Format Indentation. Changing the left and right margins.
+* Justification: Format Justification.
+ Centering, setting text flush with the
+ left or right margin, etc.
- Most of the items in the Text Properties menu lead to other submenus.
- These are described in the sections that follow. Some items run
- commands directly:
++* Special: Format Properties. The "special" text properties submenu.
+* Forcing Enriched Mode:: How to force use of Enriched mode.
+@end menu
+
+@node Requesting Formatted Text
+@subsection Requesting to Edit Formatted Text
+
+ Whenever you visit a file that Emacs saved in the text/enriched
+format, Emacs automatically converts the formatting information in the
+file into Emacs's own internal format (known as @dfn{text
+properties}), and turns on Enriched mode.
+
+@findex enriched-mode
+ To create a new file of formatted text, first visit the nonexistent
+file, then type @kbd{M-x enriched-mode} before you start inserting text.
+This command turns on Enriched mode. Do this before you begin inserting
+text, to ensure that the text you insert is handled properly.
+
+ More generally, the command @code{enriched-mode} turns Enriched mode
+on if it was off, and off if it was on. With a prefix argument, this
+command turns Enriched mode on if the argument is positive, and turns
+the mode off otherwise.
+
+ When you save a buffer while Enriched mode is enabled in it, Emacs
+automatically converts the text to text/enriched format while writing it
+into the file. When you visit the file again, Emacs will automatically
+recognize the format, reconvert the text, and turn on Enriched mode
+again.
+
+@vindex enriched-translations
+ You can add annotations for saving additional text properties, which
+Emacs normally does not save, by adding to @code{enriched-translations}.
+Note that the text/enriched standard requires any non-standard
+annotations to have names starting with @samp{x-}, as in
+@samp{x-read-only}. This ensures that they will not conflict with
+standard annotations that may be added later.
+
+ @xref{Text Properties,,, elisp, the Emacs Lisp Reference Manual},
+for more information about text properties.
+
+@node Hard and Soft Newlines
+@subsection Hard and Soft Newlines
+@cindex hard newline
+@cindex soft newline
+@cindex newlines, hard and soft
+
+@cindex use-hard-newlines
+ In formatted text, Emacs distinguishes between two different kinds of
+newlines, @dfn{hard} newlines and @dfn{soft} newlines. (You can enable
+or disable this feature separately in any buffer with the command
+@code{use-hard-newlines}.)
+
+ Hard newlines are used to separate paragraphs, or items in a list, or
+anywhere that there should always be a line break regardless of the
+margins. The @key{RET} command (@code{newline}) and @kbd{C-o}
+(@code{open-line}) insert hard newlines.
+
+ Soft newlines are used to make text fit between the margins. All the
+fill commands, including Auto Fill, insert soft newlines---and they
+delete only soft newlines.
+
+ Although hard and soft newlines look the same, it is important to bear
+the difference in mind. Do not use @key{RET} to break lines in the
+middle of filled paragraphs, or else you will get hard newlines that are
+barriers to further filling. Instead, let Auto Fill mode break lines,
+so that if the text or the margins change, Emacs can refill the lines
+properly. @xref{Auto Fill}.
+
+ On the other hand, in tables and lists, where the lines should always
+remain as you type them, you can use @key{RET} to end lines. For these
+lines, you may also want to set the justification style to
+@code{unfilled}. @xref{Format Justification}.
+
+@node Editing Format Info
+@subsection Editing Format Information
+
+ There are two ways to alter the formatting information for a formatted
+text file: with keyboard commands, and with the mouse.
+
+ The easiest way to add properties to your document is with the Text
+Properties menu. You can get to this menu in two ways: from the Edit
+menu in the menu bar (use @kbd{@key{F10} e t} if you have no mouse),
+or with @kbd{C-Mouse-2} (hold the @key{CTRL} key and press the middle
+mouse button). There are also keyboard commands described in the
+following section.
+
- The Faces submenu lists various Emacs faces including @code{bold},
- @code{italic}, and @code{underline} (@pxref{Faces}). These menu items
- operate on the region if it is active and nonempty. Otherwise, they
- specify to use that face for an immediately following self-inserting
- character. Instead of the menu, you can use these keyboard commands:
++ These items in the Text Properties menu run commands directly:
+
+@table @code
+@findex facemenu-remove-face-props
+@item Remove Face Properties
+Delete from the region all face and color text properties
+(@code{facemenu-remove-face-props}).
+
+@findex facemenu-remove-all
+@item Remove Text Properties
+Delete @emph{all} text properties from the region
+(@code{facemenu-remove-all}).
+
+@findex describe-text-properties
+@cindex text properties of characters
+@cindex overlays at character position
+@cindex widgets at buffer position
+@cindex buttons at buffer position
+@item Describe Properties
+List all the text properties, widgets, buttons, and overlays of the
+character following point (@code{describe-text-properties}).
+
+@item Display Faces
+Display a list of all the defined faces (@code{list-faces-display}).
+
+@item Display Colors
+Display a list of all the defined colors (@code{list-colors-display}).
+@end table
+
++@ifinfo
++ Other items in the Text Properties menu lead to submenus:
++
++@menu
++* Faces: Format Faces. Bold, italic, underline, etc.
++* Color: Format Colors. Changing the color of text.
++* Indent: Format Indentation. Changing the left and right margins.
++* Justification: Format Justification.
++ Centering, setting text flush with the
++ left or right margin, etc.
++* Special: Format Properties. The "special" text properties submenu.
++@end menu
++@end ifinfo
++@ifnotinfo
++ The rest lead to submenus which are described in the following sections.
++@end ifnotinfo
++
+@node Format Faces
+@subsection Faces in Formatted Text
+
- text. There is a menu for specifying the foreground color and a menu
- for specifying the background color. Each color menu lists all the
- colors that you have used in Enriched mode in the current Emacs session.
++ The Faces submenu under Text Properties lists various Emacs faces
++including @code{bold}, @code{italic}, and @code{underline}
++(@pxref{Faces}). These menu items operate on the region if it is
++active and nonempty. Otherwise, they specify to use that face for an
++immediately following self-inserting character. There is also an item
++@samp{Other} with which you can enter a face name through the
++minibuffer (@pxref{Standard Faces}).
++
++ Instead of the Faces submenu, you can use these keyboard commands:
+
+@table @kbd
+@kindex M-o d @r{(Enriched mode)}
+@findex facemenu-set-default
+@item M-o d
+Remove all @code{face} properties from the region (which includes
+specified colors), or force the following inserted character to have no
+@code{face} property (@code{facemenu-set-default}).
+@kindex M-o b @r{(Enriched mode)}
+@findex facemenu-set-bold
+@item M-o b
+Add the face @code{bold} to the region or to the following inserted
+character (@code{facemenu-set-bold}).
+@kindex M-o i @r{(Enriched mode)}
+@findex facemenu-set-italic
+@item M-o i
+Add the face @code{italic} to the region or to the following inserted
+character (@code{facemenu-set-italic}).
+@kindex M-o l @r{(Enriched mode)}
+@findex facemenu-set-bold-italic
+@item M-o l
+Add the face @code{bold-italic} to the region or to the following
+inserted character (@code{facemenu-set-bold-italic}).
+@kindex M-o u @r{(Enriched mode)}
+@findex facemenu-set-underline
+@item M-o u
+Add the face @code{underline} to the region or to the following inserted
+character (@code{facemenu-set-underline}).
+@kindex M-o o @r{(Enriched mode)}
+@findex facemenu-set-face
+@item M-o o @var{face} @key{RET}
+Add the face @var{face} to the region or to the following inserted
+character (@code{facemenu-set-face}).
+@end table
+
+ With a prefix argument, all these commands apply to an immediately
+following self-inserting character, disregarding the region.
+
+ A self-inserting character normally inherits the @code{face}
+property (and most other text properties) from the preceding character
+in the buffer. If you use the above commands to specify face for the
+next self-inserting character, or the next section's commands to
+specify a foreground or background color for it, then it does not
+inherit the @code{face} property from the preceding character; instead
+it uses whatever you specified. It will still inherit other text
+properties, though.
+
+ Strictly speaking, these commands apply only to the first following
+self-inserting character that you type. But if you insert additional
+characters after it, they will inherit from the first one. So it
+appears that these commands apply to all of them.
+
+ Enriched mode defines two additional faces: @code{excerpt} and
+@code{fixed}. These correspond to codes used in the text/enriched file
+format.
+
+ The @code{excerpt} face is intended for quotations. This face is the
+same as @code{italic} unless you customize it (@pxref{Face Customization}).
+
+ The @code{fixed} face means, ``Use a fixed-width font for this part
+of the text.'' Applying the @code{fixed} face to a part of the text
+will cause that part of the text to appear in a fixed-width font, even
+if the default font is variable-width. This applies to Emacs and to
+other systems that display text/enriched format. So if you
+specifically want a certain part of the text to use a fixed-width
+font, you should specify the @code{fixed} face for that part.
+
+ By default, the @code{fixed} face looks the same as @code{bold}.
+This is an attempt to distinguish it from @code{default}. You may
+wish to customize @code{fixed} to some other fixed-width medium font.
+@xref{Face Customization}.
+
+ If your terminal cannot display different faces, you will not be
+able to see them, but you can still edit documents containing faces,
+and even add faces and colors to documents. The faces you specify
+will be visible when the file is viewed on a terminal that can display
+them.
+
+@node Format Colors
+@subsection Colors in Formatted Text
+
+ You can specify foreground and background colors for portions of the
- Each color menu contains one additional item: @samp{Other}. You can use
- this item to specify a color that is not listed in the menu; it reads
- the color name with the minibuffer. To display a list of available colors
- and their names, use the @samp{Display Colors} menu item in the Text
- Properties menu (@pxref{Editing Format Info}).
++text. Under Text Properties there is a submenu for specifying the
++foreground color, and a submenu for specifying the background color.
++Each one lists all the colors that you have used in Enriched mode in
++the current Emacs session.
+
+ If you specify a color with a prefix argument---or, in Transient
+Mark mode, if the region is not active---then it applies to any
+immediately following self-inserting input. Otherwise, the command
+applies to the region.
+
- The Indentation submenu provides a convenient interface for specifying
- these properties. The submenu contains four items:
++ Each of the two color submenus contains one additional item:
++@samp{Other}. You can use this item to specify a color that is not
++listed in the menu; it reads the color name with the minibuffer. To
++display a list of available colors and their names, use the
++@samp{Display Colors} menu item in the Text Properties menu
++(@pxref{Editing Format Info}).
+
+ Any color that you specify in this way, or that is mentioned in a
+formatted text file that you read in, is added to the corresponding
+color menu for the duration of the Emacs session.
+
+@findex facemenu-set-foreground
+@findex facemenu-set-background
+ There are no predefined key bindings for specifying colors, but you can do so
+with the extended commands @kbd{M-x facemenu-set-foreground} and
+@kbd{M-x facemenu-set-background}. Both of these commands read the name
+of the color with the minibuffer.
+
+@node Format Indentation
+@subsection Indentation in Formatted Text
+
+ When editing formatted text, you can specify different amounts of
+indentation for the right or left margin of an entire paragraph or a
+part of a paragraph. The margins you specify automatically affect the
+Emacs fill commands (@pxref{Filling}) and line-breaking commands.
+
- The Justification submenu provides a convenient interface for specifying
- the style. The submenu contains five items:
++ The Indentation submenu of Text Properties provides a convenient
++interface for specifying these properties. The submenu contains four
++items:
+
+@table @code
+@kindex C-x TAB @r{(Enriched mode)}
+@findex increase-left-margin
+@item Indent More
+Indent the region by 4 columns (@code{increase-left-margin}). In
+Enriched mode, this command is also available on @kbd{C-x @key{TAB}}; if
+you supply a numeric argument, that says how many columns to add to the
+margin (a negative argument reduces the number of columns).
+
+@item Indent Less
+Remove 4 columns of indentation from the region.
+
+@item Indent Right More
+Make the text narrower by indenting 4 columns at the right margin.
+
+@item Indent Right Less
+Remove 4 columns of indentation from the right margin.
+@end table
+
+ You can use these commands repeatedly to increase or decrease the
+indentation.
+
+ The most common way to use them is to change the indentation of an
+entire paragraph. For other uses, the effects of refilling can be
+hard to predict, except in some special cases like the one described
+next.
+
+ The most common other use is to format paragraphs with @dfn{hanging
+indents}, which means that the first line is indented less than
+subsequent lines. To set up a hanging indent, increase the
+indentation of the region starting after the first word of the
+paragraph and running until the end of the paragraph.
+
+ Indenting the first line of a paragraph is easier. Set the margin for
+the whole paragraph where you want it to be for the body of the
+paragraph, then indent the first line by inserting extra spaces or tabs.
+
+@vindex standard-indent
+ The variable @code{standard-indent} specifies how many columns these
+commands should add to or subtract from the indentation. The default
+value is 4. The overall default right margin for Enriched mode is
+controlled by the variable @code{fill-column}, as usual.
+
+@kindex C-c [ @r{(Enriched mode)}
+@kindex C-c ] @r{(Enriched mode)}
+@findex set-left-margin
+@findex set-right-margin
+ There are also two commands for setting the left or right margin of
+the region absolutely: @code{set-left-margin} and
+@code{set-right-margin}. Enriched mode binds these commands to
+@kbd{C-c [} and @kbd{C-c ]}, respectively. You can specify the
+margin width either with a numeric argument or in the minibuffer.
+
+ Sometimes, as a result of editing, the filling of a paragraph becomes
+messed up---parts of the paragraph may extend past the left or right
+margins. When this happens, use @kbd{M-q} (@code{fill-paragraph}) to
+refill the paragraph.
+
+ The fill prefix, if any, works in addition to the specified paragraph
+indentation: @kbd{C-x .} does not include the specified indentation's
+whitespace in the new value for the fill prefix, and the fill commands
+look for the fill prefix after the indentation on each line. @xref{Fill
+Prefix}.
+
+@node Format Justification
+@subsection Justification in Formatted Text
+
+ When editing formatted text, you can specify various styles of
+justification for a paragraph. The style you specify automatically
+affects the Emacs fill commands.
+
- The Special Properties menu lets you add or remove three other useful text
- properties: @code{read-only}, @code{invisible} and @code{intangible}.
- The @code{intangible} property disallows moving point within the text,
- the @code{invisible} text property hides text from display, and the
- @code{read-only} property disallows alteration of the text.
++ The Justification submenu of Text Properties provides a convenient
++interface for specifying the style. The submenu contains five items:
+
+@table @code
+@item Left
+This is the most common style of justification (at least for English).
+Lines are aligned at the left margin but left uneven at the right.
+
+@item Right
+This aligns each line with the right margin. Spaces and tabs are added
+on the left, if necessary, to make lines line up on the right.
+
+@item Full
+This justifies the text, aligning both edges of each line. Justified
+text looks very nice in a printed book, where the spaces can all be
+adjusted equally, but it does not look as nice with a fixed-width font
+on the screen. Perhaps a future version of Emacs will be able to adjust
+the width of spaces in a line to achieve elegant justification.
+
+@item Center
+This centers every line between the current margins.
+
+@item Unfilled
+This turns off filling entirely. Each line will remain as you wrote it;
+the fill and auto-fill functions will have no effect on text which has
+this setting. You can, however, still indent the left margin. In
+unfilled regions, all newlines are treated as hard newlines (@pxref{Hard
+and Soft Newlines}) .
+@end table
+
+ In Enriched mode, you can also specify justification from the keyboard
+using the @kbd{M-j} prefix character:
+
+@table @kbd
+@kindex M-j l @r{(Enriched mode)}
+@findex set-justification-left
+@item M-j l
+Make the region left-filled (@code{set-justification-left}).
+@kindex M-j r @r{(Enriched mode)}
+@findex set-justification-right
+@item M-j r
+Make the region right-filled (@code{set-justification-right}).
+@kindex M-j b @r{(Enriched mode)}
+@findex set-justification-full
+@item M-j b
+Make the region fully justified (@code{set-justification-full}).
+@kindex M-j c @r{(Enriched mode)}
+@kindex M-S @r{(Enriched mode)}
+@findex set-justification-center
+@item M-j c
+@itemx M-S
+Make the region centered (@code{set-justification-center}).
+@kindex M-j u @r{(Enriched mode)}
+@findex set-justification-none
+@item M-j u
+Make the region unfilled (@code{set-justification-none}).
+@end table
+
+ Justification styles apply to entire paragraphs. All the
+justification-changing commands operate on the paragraph containing
+point, or, if the region is active, on all paragraphs which overlap the
+region.
+
+@vindex default-justification
+ The default justification style is specified by the variable
+@code{default-justification}. Its value should be one of the symbols
+@code{left}, @code{right}, @code{full}, @code{center}, or @code{none}.
+This is a per-buffer variable. Setting the variable directly affects
+only the current buffer. However, customizing it in a Custom buffer
+sets (as always) the default value for buffers that do not override it.
+@xref{Locals}, and @ref{Easy Customization}.
+
+@node Format Properties
+@subsection Setting Other Text Properties
+
++ The Special Properties submenu of Text Properties can add or remove
++three other useful text properties: @code{read-only}, @code{invisible}
++and @code{intangible}. The @code{intangible} property disallows
++moving point within the text, the @code{invisible} text property hides
++text from display, and the @code{read-only} property disallows
++alteration of the text.
+
+ Each of these special properties has a menu item to add it to the
+region. The last menu item, @samp{Remove Special}, removes all of these
+special properties from the text in the region.
+
+ Currently, the @code{invisible} and @code{intangible} properties are
+@emph{not} saved in the text/enriched format. The @code{read-only}
+property is saved, but it is not a standard part of the text/enriched
+format, so other editors may not respect it.
+
+@node Forcing Enriched Mode
+@subsection Forcing Enriched Mode
+
+ Normally, Emacs knows when you are editing formatted text because it
+recognizes the special annotations used in the file that you visited.
+However, sometimes you must take special actions to convert file
+contents or turn on Enriched mode:
+
+@itemize @bullet
+@item
+When you visit a file that was created with some other editor, Emacs may
+not recognize the file as being in the text/enriched format. In this
+case, when you visit the file you will see the formatting commands
+rather than the formatted text. Type @kbd{M-x format-decode-buffer} to
+translate it. This also automatically turns on Enriched mode.
+
+@item
+When you @emph{insert} a file into a buffer, rather than visiting it,
+Emacs does the necessary conversions on the text which you insert, but
+it does not enable Enriched mode. If you wish to do that, type @kbd{M-x
+enriched-mode}.
+@end itemize
+
+ The command @code{format-decode-buffer} translates text in various
+formats into Emacs's internal format. It asks you to specify the format
+to translate from; however, normally you can type just @key{RET}, which
+tells Emacs to guess the format.
+
+@findex format-find-file
+ If you wish to look at a text/enriched file in its raw form, as a
+sequence of characters rather than as formatted text, use the @kbd{M-x
+find-file-literally} command. This visits a file, like
+@code{find-file}, but does not do format conversion. It also inhibits
+character code conversion (@pxref{Coding Systems}) and automatic
+uncompression (@pxref{Compressed Files}). To disable format conversion
+but allow character code conversion and/or automatic uncompression if
+appropriate, use @code{format-find-file} with suitable arguments.
+
+@node Text Based Tables
+@section Editing Text-based Tables
+@cindex table mode
+@cindex text-based tables
+
+ Table mode provides an easy and intuitive way to create and edit WYSIWYG
+text-based tables. Here is an example of such a table:
+
+@smallexample
+@group
++-----------------+--------------------------------+-----------------+
+| Command | Description | Key Binding |
++-----------------+--------------------------------+-----------------+
+| forward-char |Move point right N characters | C-f |
+| |(left if N is negative). | |
+| | | |
+| |On reaching end of buffer, stop | |
+| |and signal error. | |
++-----------------+--------------------------------+-----------------+
+| backward-char |Move point left N characters | C-b |
+| |(right if N is negative). | |
+| | | |
+| |On attempt to pass beginning or | |
+| |end of buffer, stop and signal | |
+| |error. | |
++-----------------+--------------------------------+-----------------+
+@end group
+@end smallexample
+
+ Table mode allows the contents of the table such as this one to be
+easily manipulated by inserting or deleting characters inside a cell.
+A cell is effectively a localized rectangular edit region and edits to
+a cell do not affect the contents of the surrounding cells. If the
+contents do not fit into a cell, then the cell is automatically
+expanded in the vertical and/or horizontal directions and the rest of
+the table is restructured and reformatted in accordance with the
+growth of the cell.
+
+@menu
+* Table Definition:: What is a text based table.
+* Table Creation:: How to create a table.
+* Table Recognition:: How to activate and deactivate tables.
+* Cell Commands:: Cell-oriented commands in a table.
+* Cell Justification:: Justifying cell contents.
+* Row Commands:: Manipulating rows of table cell.
+* Column Commands:: Manipulating columns of table cell.
+* Fixed Width Mode:: Fixing cell width.
+* Table Conversion:: Converting between plain text and tables.
+* Measuring Tables:: Analyzing table dimension.
+* Table Misc:: Table miscellany.
+@end menu
+
+@node Table Definition
+@subsection What is a Text-based Table?
+
+ Keep the following examples of valid tables in mind as a reference
+while you read this section:
+
+@example
+ +--+----+---+ +-+ +--+-----+
+ | | | | | | | | |
+ +--+----+---+ +-+ | +--+--+
+ | | | | | | | |
+ +--+----+---+ +--+--+ |
+ | | |
+ +-----+--+
+@end example
+
+ A table consists of a rectangular frame whose inside is divided into
+cells. Each cell must be at least one character wide and one
+character high, not counting its border lines. A cell can be
+subdivided into multiple rectangular cells, but cells cannot overlap.
+
+ The table frame and cell border lines are made of three special
+characters. These variables specify those characters:
+
+@table @code
+@vindex table-cell-vertical-char
+@item table-cell-vertical-char
+Holds the character used for vertical lines. The default value is
+@samp{|}.
+
+@vindex table-cell-horizontal-char
+@item table-cell-horizontal-char
+Holds the character used for horizontal lines. The default value is
+@samp{-}.
+
+@vindex table-cell-intersection-char
+@item table-cell-intersection-char
+Holds the character used at where horizontal line and vertical line
+meet. The default value is @samp{+}.
+@end table
+
+@noindent
+Based on this definition, the following five tables are examples of invalid
+tables:
+
+@example
+ +-----+ +-----+ +--+ +-++--+ ++
+ | | | | | | | || | ++
+ | +-+ | | | | | | || |
+ | | | | +--+ | +--+--+ +-++--+
+ | +-+ | | | | | | | +-++--+
+ | | | | | | | | | || |
+ +-----+ +--+--+ +--+--+ +-++--+
+ a b c d e
+@end example
+
+From left to right:
+
+@enumerate a
+@item
+Overlapped cells or non-rectangular cells are not allowed.
+@item
+Same as a.
+@item
+The border must be rectangular.
+@item
+Cells must have a minimum width/height of one character.
+@item
+Same as d.
+@end enumerate
+
+@node Table Creation
+@subsection How to Create a Table?
+@cindex create a text-based table
+@cindex table creation
+
+@findex table-insert
+ The command to create a table is @code{table-insert}. When called
+interactively, it asks for the number of columns, number of rows, cell
+width and cell height. The number of columns is the number of cells
+horizontally side by side. The number of rows is the number of cells
+vertically within the table's height. The cell width is a number of
+characters that each cell holds, left to right. The cell height is a
+number of lines each cell holds. The cell width and the cell height
+can be either an integer (when the value is constant across the table)
+or a series of integer, separated by spaces or commas, where each
+number corresponds to the next cell within a row from left to right,
+or the next cell within a column from top to bottom.
+
+@node Table Recognition
+@subsection Table Recognition
+@cindex table recognition
+
+@findex table-recognize
+@findex table-unrecognize
+ Table mode maintains special text properties in the buffer to allow
+editing in a convenient fashion. When a buffer with tables is saved
+to its file, these text properties are lost, so when you visit this
+file again later, Emacs does not see a table, but just formatted text.
+To resurrect the table text properties, issue the @kbd{M-x
+table-recognize} command. It scans the current buffer, recognizes
+valid table cells, and attaches appropriate text properties to allow
+for table editing. The converse command, @code{table-unrecognize}, is
+used to remove the special text properties and convert the buffer back
+to plain text.
+
+ Special commands exist to enable or disable tables within a region,
+enable or disable individual tables, and enable/disable individual
+cells. These commands are:
+
+@table @kbd
+@findex table-recognize-region
+@item M-x table-recognize-region
+Recognize tables within the current region and activate them.
+@findex table-unrecognize-region
+@item M-x table-unrecognize-region
+Deactivate tables within the current region.
+@findex table-recognize-table
+@item M-x table-recognize-table
+Recognize the table under point and activate it.
+@findex table-unrecognize-table
+@item M-x table-unrecognize-table
+Deactivate the table under point.
+@findex table-recognize-cell
+@item M-x table-recognize-cell
+Recognize the cell under point and activate it.
+@findex table-unrecognize-cell
+@item M-x table-unrecognize-cell
+Deactivate the cell under point.
+@end table
+
+ For another way of converting text into tables, see @ref{Table
+Conversion}.
+
+@node Cell Commands
+@subsection Commands for Table Cells
+
+@findex table-forward-cell
+@findex table-backward-cell
+ The commands @code{table-forward-cell} and
+@code{table-backward-cell} move point from the current cell to an
+adjacent cell forward and backward respectively. The order of the
+cells is cyclic: when point is in the last cell of a table, typing
+@kbd{M-x table-forward-cell} moves to the first cell in the table.
+Likewise @kbd{M-x table-backward-cell} from the first cell in a table
+moves to the last cell.
+
+@findex table-span-cell
+ The command @code{table-span-cell} merges the current cell with the
+adjacent cell in a specified direction---right, left, above or below.
+You specify the direction with the minibuffer. It does not allow
+merges which don't result in a legitimate cell layout.
+
+@findex table-split-cell
+@cindex text-based tables, split a cell
+@cindex split table cell
+ The command @code{table-split-cell} splits the current cell
+vertically or horizontally. This command is a wrapper to the
+direction specific commands @code{table-split-cell-vertically} and
+@code{table-split-cell-horizontally}. You specify the direction with
+a minibuffer argument.
+
+@findex table-split-cell-vertically
+ The command @code{table-split-cell-vertically} splits the current
+cell vertically and creates a pair of cells above and below where
+point is located. The content in the original cell is split as well.
+
+@findex table-split-cell-horizontally
+ The command @code{table-split-cell-horizontally} splits the current
+cell horizontally and creates a pair of cells right and left of where
+point is located. If the cell being split is not empty, this asks you
+how to handle the cell contents. The three options are: @code{split},
+@code{left}, or @code{right}. @code{split} splits the contents at
+point literally, while the @code{left} and @code{right} options move
+the entire contents into the left or right cell respectively.
+
+@cindex enlarge a table cell
+@cindex shrink a table cell
+ The next four commands enlarge or shrink a cell. They use numeric
+arguments (@pxref{Arguments}) to specify how many columns or rows to
+enlarge or shrink a particular table.
+
+@table @kbd
+@findex table-heighten-cell
+@item M-x table-heighten-cell
+Enlarge the current cell vertically.
+@findex table-shorten-cell
+@item M-x table-shorten-cell
+Shrink the current cell vertically.
+@findex table-widen-cell
+@item M-x table-widen-cell
+Enlarge the current cell horizontally.
+@findex table-narrow-cell
+@item M-x table-narrow-cell
+Shrink the current cell horizontally.
+@end table
+
+@node Cell Justification
+@subsection Cell Justification
+@cindex cell text justification
+
+ You can specify text justification for each cell. The justification
+is remembered independently for each cell and the subsequent editing
+of cell contents is subject to the specified justification.
+
+@findex table-justify
+ The command @code{table-justify} ask you to specify what to justify:
+a cell, a column, or a row. If you select cell justification, this
+command sets the justification only for the current cell. Selecting
+column or row justification sets the justification for all the cells
+within a column or row respectively. The command then ask you which
+kind of justification to apply: @code{left}, @code{center},
+@code{right}, @code{top}, @code{middle}, @code{bottom}, or
+@code{none}. Horizontal justification and vertical justification are
+specified independently. The options @code{left}, @code{center}, and
+@code{right} specify horizontal justification while the options
+@code{top}, @code{middle}, @code{bottom}, and @code{none} specify
+vertical justification. The vertical justification @code{none}
+effectively removes vertical justification. Horizontal justification
+must be one of @code{left}, @code{center}, or @code{right}.
+
+@vindex table-detect-cell-alignment
+ Justification information is stored in the buffer as a part of text
+property. Therefore, this information is ephemeral and does not
+survive through the loss of the buffer (closing the buffer and
+revisiting the buffer erase any previous text properties). To
+countermand for this, the command @code{table-recognize} and other
+recognition commands (@pxref{Table Recognition}) are equipped with a
+convenience feature (turned on by default). During table recognition,
+the contents of a cell are examined to determine which justification
+was originally applied to the cell and then applies this justification
+to the cell. This is a speculative algorithm and is therefore not
+perfect, however, the justification is deduced correctly most of the
+time. To disable this feature, customize the variable
+@code{table-detect-cell-alignment} and set it to @code{nil}.
+
+@node Row Commands
+@subsection Commands for Table Rows
+@cindex table row commands
+
+@cindex insert row in table
+@findex table-insert-row
+ The command @code{table-insert-row} inserts a row of cells before
+the current row in a table. The current row where point is located is
+pushed down after the newly inserted row. A numeric prefix argument
+specifies the number of rows to insert. Note that in order to insert
+rows @emph{after} the last row at the bottom of a table, you must
+place point below the table---that is, outside the table---prior to
+invoking this command.
+
+@cindex delete row in table
+@findex table-delete-row
+ The command @code{table-delete-row} deletes a row of cells at point.
+A numeric prefix argument specifies the number of rows to delete.
+
+@node Column Commands
+@subsection Commands for Table Columns
+@cindex table column commands
+
+@cindex insert column in table
+@findex table-insert-column
+ The command @code{table-insert-column} inserts a column of cells to
+the left of the current row in a table. This pushes the current
+column to the right. To insert a column to the right side of the
+rightmost column, place point to the right of the rightmost column,
+which is outside of the table, prior to invoking this command. A
+numeric prefix argument specifies the number of columns to insert.
+
+@cindex delete column in table
+ A command @code{table-delete-column} deletes a column of cells at
+point. A numeric prefix argument specifies the number of columns to
+delete.
+
+@node Fixed Width Mode
+@subsection Fix Width of Cells
+@cindex fix width of table cells
+
+@findex table-fixed-width-mode
+ The command @code{table-fixed-width-mode} toggles fixed width mode
+on and off. When fixed width mode is turned on, editing inside a
+cell never changes the cell width; when it is off, the cell width
+expands automatically in order to prevent a word from being folded
+into multiple lines. By default, fixed width mode is disabled.
+
+@node Table Conversion
+@subsection Conversion Between Plain Text and Tables
+@cindex text to table
+@cindex table to text
+
+@findex table-capture
+ The command @code{table-capture} captures plain text in a region and
+turns it into a table. Unlike @code{table-recognize} (@pxref{Table
+Recognition}), the original text does not have a table appearance but
+may hold a logical table structure. For example, some elements
+separated by known patterns form a two dimensional structure which can
+be turned into a table.
+
+ Here's an example of data that @code{table-capture} can operate on.
+The numbers are horizontally separated by a comma and vertically
+separated by a newline character.
+
+@example
+1, 2, 3, 4
+5, 6, 7, 8
+, 9, 10
+@end example
+
+@noindent
+Invoking @kbd{M-x table-capture} on that text produces this table:
+
+@example
++-----+-----+-----+-----+
+|1 |2 |3 |4 |
++-----+-----+-----+-----+
+|5 |6 |7 |8 |
++-----+-----+-----+-----+
+| |9 |10 | |
++-----+-----+-----+-----+
+@end example
+
+@noindent
+The conversion uses @samp{,} for the column delimiter and newline for
+a row delimiter, cells are left justified, and minimum cell width is
+5.
+
+@findex table-release
+ The command @code{table-release} does the opposite of
+@code{table-capture}. It releases a table by removing the table frame
+and cell borders. This leaves the table contents as plain text. One
+of the useful applications of @code{table-capture} and
+@code{table-release} is to edit a text in layout. Look at the
+following three paragraphs (the latter two are indented with header
+lines):
+
+@example
+@samp{table-capture} is a powerful command, but mastering its
+power requires some practice. Here are some things it can do:
+
+Parse Cell Items By using column delimiter regular
+ expression and raw delimiter regular
+ expression, it parses the specified text
+ area and extracts cell items from
+ non-table text and then forms a table out
+ of them.
+
+Capture Text Area When no delimiters are specified it
+ creates a single cell table. The text in
+ the specified region is placed in that
+ cell.
+@end example
+
+@noindent
+Applying @code{table-capture} to a region containing the above three
+paragraphs, with empty strings for column delimiter regexp and row
+delimiter regexp, creates a table with a single cell like the
+following one.
+
+@c The first line's right-hand frame in the following two examples
+@c sticks out to accommodate for the removal of @samp in the
+@c produced output!!
+@smallexample
+@group
++-----------------------------------------------------------------+
+|@samp{table-capture} is a powerful command, but mastering its |
+|power requires some practice. Here are some things it can do: |
+| |
+|Parse Cell Items By using column delimiter regular |
+| expression and raw delimiter regular |
+| expression, it parses the specified text |
+| area and extracts cell items from |
+| non-table text and then forms a table out |
+| of them. |
+| |
+|Capture Text Area When no delimiters are specified it |
+| creates a single cell table. The text in |
+| the specified region is placed in that |
+| cell. |
++-----------------------------------------------------------------+
+@end group
+@end smallexample
+
+@noindent
+By splitting the cell appropriately we now have a table consisting of
+paragraphs occupying its own cell. Each cell can now be edited
+independently without affecting the layout of other cells.
+
+@smallexample
++-----------------------------------------------------------------+
+|@samp{table-capture} is a powerful command, but mastering its |
+|power requires some practice. Here are some things it can do: |
++---------------------+-------------------------------------------+
+|Parse Cell Items |By using column delimiter regular |
+| |expression and raw delimiter regular |
+| |expression, it parses the specified text |
+| |area and extracts cell items from |
+| |non-table text and then forms a table out |
+| |of them. |
++---------------------+-------------------------------------------+
+|Capture Text Area |When no delimiters are specified it |
+| |creates a single cell table. The text in |
+| |the specified region is placed in that |
+| |cell. |
++---------------------+-------------------------------------------+
+@end smallexample
+
+@noindent
+By applying @code{table-release}, which does the opposite process, the
+contents become once again plain text. @code{table-release} works as
+a companion command to @code{table-capture}.
+
+@node Measuring Tables
+@subsection Analyzing Table Dimensions
+@cindex table dimensions
+
+@findex table-query-dimension
+ The command @code{table-query-dimension} analyzes a table structure
+and reports information regarding its dimensions. In case of the
+above example table, the @code{table-query-dimension} command displays
+in echo area:
+
+@smallexample
+Cell: (21w, 6h), Table: (67w, 16h), Dim: (2c, 3r), Total Cells: 5
+@end smallexample
+
+@noindent
+This indicates that the current cell is 21 character wide and 6 lines
+high, the entire table is 67 characters wide and 16 lines high. The
+table has 2 columns and 3 rows. It has a total of 5 cells, since the
+first row has a spanned cell.
+
+@node Table Misc
+@subsection Table Miscellany
+
+@cindex insert string into table cells
+@findex table-insert-sequence
+ The command @code{table-insert-sequence} inserts a string into each
+cell. Each string is a part of a sequence i.e.@: a series of
+increasing integer numbers.
+
+@cindex table in language format
+@cindex table for HTML and LaTeX
+@findex table-generate-source
+ The command @code{table-generate-source} generates a table formatted
+for a specific markup language. It asks for a language (which must be
+one of @code{html}, @code{latex}, or @code{cals}), a destination
+buffer where to put the result, and the table caption (a string), and
+then inserts the generated table in the proper syntax into the
+destination buffer. The default destination buffer is
+@code{table.@var{lang}}, where @var{lang} is the language you
+specified.
+
+@ignore
+ arch-tag: 8db54ed8-2036-49ca-b0df-23811d03dc70
+@end ignore
--- /dev/null
++2007-12-28 Richard Stallman <rms@gnu.org>
++
++ * frames.texi (Size Parameters): Fix typo.
++ (Basic Parameters): For `title', refer to title bar.
++ (Size and Position): Explain meaning of frame pixel width and height.
++
++2007-12-23 Richard Stallman <rms@gnu.org>
++
++ * customize.texi (Type Keywords): Uncomment :validate and clarify it.
++ Improve some of the commented-out keywords' text too.
++
+2007-12-14 Martin Rudalics <rudalics@gmx.at>
+
+ * nonascii.texi (Encoding and I/O): Reword to avoid saying
+ "visit the current buffer".
+
+ * os.texi (System Interface): Fix typo.
+
+2007-12-04 Richard Stallman <rms@gnu.org>
+
+ * objects.texi (Symbol Type): Fix typo.
+
+2007-12-03 Richard Stallman <rms@gnu.org>
+
+ * hooks.texi (Standard Hooks): Add link to Hooks for Loading.
+
+2007-12-01 Glenn Morris <rgm@gnu.org>
+
+ * functions.texi (Declaring Functions): Improve previous change.
+
+2007-11-30 Glenn Morris <rgm@gnu.org>
+
+ * functions.texi (Declaring Functions): Add optional fourth
+ argument of declare-function, and setting third argument to `t'.
+
+2007-11-29 Richard Stallman <rms@gnu.org>
+
+ * customize.texi (Composite Types): Document `group' type.
+
+2007-11-29 Glenn Morris <rgm@gnu.org>
+
+ * functions.texi (Declaring Functions): Add findex. Mention
+ `external' files.
+
+2007-11-26 Juanma Barranquero <lekktu@gmail.com>
+
+ * functions.texi (Declaring Functions): Fix directive.
+
+2007-11-25 Richard Stallman <rms@gnu.org>
+
+ * help.texi (Help Functions): Clean up last change.
+
+ * advice.texi (Preactivation, Activation of Advice): Minor cleanup.
+
+ * loading.texi (Named Features): Minor cleanup.
+
+ * macros.texi (Eval During Expansion): Minor cleanup.
+
+ * variables.texi (Variable Aliases): Minor cleanup.
+
+2007-11-24 Richard Stallman <rms@gnu.org>
+
+ * functions.texi (Declaring Functions): Clarify previous change.
+
+ * compile.texi (Compiler Errors): Clarify previous change.
+
+2007-11-24 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Refresh Screen, Forcing Redisplay):
+ Clarify the text and move items around.
+
+2007-11-24 Glenn Morris <rgm@gnu.org>
+
+ * functions.texi (Declaring Functions): New section.
+ * compile.texi (Compiler Errors): Mention declaring functions,
+ defvar with no initvalue, and byte-compile-warnings.
+
+2007-11-15 Martin Rudalics <rudalics@gmx.at>
+
+ * vol1.texi (Top): Remove Frame-Local Variables from Node Listing.
+ * vol2.texi (Top): Remove Frame-Local Variables from Node Listing.
+
+2007-11-13 Martin Rudalics <rudalics@gmx.at>
+
+ * help.texi (Help Functions): Document new macro `with-help-window'.
+
+2007-11-10 Paul Pogonyshev <pogonyshev@gmx.net>
+
+ * searching.texi (Replacing Match): Describe new
+ `match-substitute-replacement'.
+
+2007-10-31 Richard Stallman <rms@gnu.org>
+
+ * strings.texi (Creating Strings): Null strings from concat not unique.
+
+2007-10-26 Richard Stallman <rms@gnu.org>
+
+ * objects.texi (Equality Predicates): Null strings are uniquified.
+
+ * minibuf.texi: Minor clarifications in previous change.
+
+2007-10-25 Glenn Morris <rgm@gnu.org>
+
+ * customize.texi (Variable Definitions): Add :risky and :safe keywords.
+
+2007-10-24 Richard Stallman <rms@gnu.org>
+
+ * elisp.texi (Top): Delete Frame-Local Variables from subnode menu.
+
+ * variables.texi (Frame-Local Variables): Node deleted.
+ (Variables): Delete Frame-Local Variables from menu.
+ (Local Variables, Buffer-Local Variables, Intro to Buffer-Local)
+ (Default Value): Don't mention frame-local vars.
+
+ * os.texi (Idle Timers): current-idle-time returns nil if not idle.
+
+ * loading.texi (Unloading): Document FEATURE-unload-function
+ instead of FEATURE-unload-hook.
+
+ * frames.texi (Multiple Displays): Don't mention frame-local vars.
+
+2007-10-22 Juri Linkov <juri@jurta.org>
+
+ * minibuf.texi (Text from Minibuffer, Minibuffer Completion)
+ (High-Level Completion): Document a list of default value strings
+ in the DEFAULT argument, for which minibuffer functions return the
+ first element.
+
+2007-10-17 Juri Linkov <juri@jurta.org>
+
+ * text.texi (Filling): Update arguments of fill-paragraph.
+ fill-paragraph operates on the active region in Transient Mark mode.
+ Remove fill-paragraph-or-region.
+
+2007-10-13 Karl Berry <karl@gnu.org>
+
+ * elisp.texi (@dircategory): Move to after @copying,
+ since we want @copying as close as possible to the beginning of
+ the output.
+
+2007-10-12 Richard Stallman <rms@gnu.org>
+
+ * elisp.texi (Top): Add Distinguish Interactive to subnode menu.
+
+ * commands.texi (Distinguish Interactive): New node,
+ broken out from Interactive Call and rewritten.
+ (Command Loop): Put Distinguish Interactive in menu.
+
+2007-10-09 Richard Stallman <rms@gnu.org>
+
+ * text.texi (Examining Properties): Mention overlay priority.
+
+ * display.texi (Display Margins): Correct the description
+ of margin display specifications.
+ (Replacing Specs): New subnode broken out of Display Property.
+
+2007-10-06 Juri Linkov <juri@jurta.org>
+
+ * text.texi (Filling): Document fill-paragraph-or-region.
+
+2007-10-05 Juanma Barranquero <lekktu@gmail.com>
+
+ * display.texi (Auto Faces): Fix typo.
+
+2007-10-02 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Display Property): Explain some display specs
+ don't let you move point in.
+
+ * frames.texi (Cursor Parameters): Describe
+ cursor-in-non-selected-windows here. Explain more values.
+
+ * windows.texi (Basic Windows): Don't describe
+ cursor-in-non-selected-windows here.
+
+2007-10-01 Eli Zaretskii <eliz@gnu.org>
+
+ * processes.texi (Misc Network): Note that these functions are
+ supported only on some systems.
+
+2007-10-01 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Overlay Properties): Explain nil as priority.
+ Explain that conflicts are unpredictable if not resolved by
+ priorities.
+
+2007-09-23 Richard Stallman <rms@gnu.org>
+
+ * macros.texi (Backquote): Minor clarification.
+
+2007-09-19 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Display Property): Explain multiple display specs.
+ Clarify when they work in parallel and when one overrides.
+ Fix error in example.
+
+2007-09-06 Glenn Morris <rgm@gnu.org>
+
+ * Move from lispref/ to doc/lispref/. Change all setfilename
+ commands to use ../../info.
+ * Makefile.in (infodir): Go up one more level.
+ (usermanualdir): Change from ../man to ../emacs.
+ (miscmanualdir): New.
+ (dist): Use new variable miscmanualdir.
+ * makefile.w32-in (infodir, texinputdir): Go up one more level.
+ (usermanualdir): Change from ../man to ../emacs.
+
+2007-08-30 Martin Rudalics <rudalics@gmx.at>
+
+ * commands.texi (Command Loop Info): Advise against changing
+ most variables described here. Explain new variable
+ last-repeatable-command.
+
+2007-08-29 Glenn Morris <rgm@gnu.org>
+
+ * elisp.texi (EMACSVER): Increase to 23.0.50.
+
+2007-08-29 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * frames.texi (Basic Parameters): Add display-environment-variable
+ and term-environment-variable.
+
+2007-08-28 Juri Linkov <juri@jurta.org>
+
+ * display.texi (Image Formats, Other Image Types): Add SVG.
+
+2007-08-28 Juri Linkov <juri@jurta.org>
+
+ * display.texi (Images): Move formats-related text to new node
+ "Image Formats".
+ (Image Formats): New node.
+
+2007-08-27 Richard Stallman <rms@gnu.org>
+
+ * windows.texi (Window Configurations): Clarify what
+ a window configuration saves.
+
+2007-08-25 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Images): Delete redundant @findex.
+
+2007-08-16 Richard Stallman <rms@gnu.org>
+
+ * processes.texi (Asynchronous Processes): Clarify
+ doc of start-file-process.
+
+2007-08-08 Martin Rudalics <rudalics@gmx.at>
+
+ * modes.texi (Example Major Modes): Fix typo.
+
+2007-08-08 Glenn Morris <rgm@gnu.org>
+
+ * intro.texi (nil and t): Do not use `iff' in documentation.
+
+ * tips.texi (Documentation Tips): Recommend against `iff'.
+
+2007-08-07 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi (Image Cache): Document image-refresh.
+
+2007-08-06 Martin Rudalics <rudalics@gmx.at>
+
+ * windows.texi (Size of Window): Document window-full-width-p.
+
+2007-07-25 Glenn Morris <rgm@gnu.org>
+
+ * gpl.texi (GPL): Replace license with GPLv3.
+
+ * Relicense all FSF files to GPLv3 or later.
+
+2007-07-24 Michael Albinus <michael.albinus@gmx.de>
+
+ * processes.texi (Synchronous Processes):
+ Add `process-file-shell-command'.
+ (Asynchronous Processes): Mention restricted use of
+ `process-filter' and `process-sentinel' in
+ `start-file-process'. Add `start-file-process-shell-command'.
+
+2007-07-17 Michael Albinus <michael.albinus@gmx.de>
+
+ * files.texi (Magic File Names): Introduce optional parameter
+ IDENTIFICATION for `file-remote-p'.
+
+2007-07-16 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Defining Faces): Fix previous change.
+
+2007-07-14 Richard Stallman <rms@gnu.org>
+
+ * control.texi (Handling Errors): Document `debug' in handler list.
+
+2007-07-10 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Defining Faces): Explain C-M-x feature for defface.
+
+2007-07-09 Richard Stallman <rms@gnu.org>
+
+ * files.texi (Magic File Names): Rewrite previous change.
+
+2007-07-08 Michael Albinus <michael.albinus@gmx.de>
+
+ * files.texi (Magic File Names): Introduce optional parameter
+ CONNECTED for `file-remote-p'.
+
+2007-07-07 Michael Albinus <michael.albinus@gmx.de>
+
+ * processes.texi (Asynchronous Processes):
+ * files.texi (Magic File Names): Add `start-file-process'.
+
+2007-06-27 Richard Stallman <rms@gnu.org>
+
+ * files.texi (Format Conversion Piecemeal): Clarify
+ `after-insert-file-functions' calling convention.
+
+2007-06-27 Michael Albinus <michael.albinus@gmx.de>
+
+ * files.texi (Magic File Names): Remove `dired-call-process'.
+ Add `process-file'.
+
+2007-06-27 Kenichi Handa <handa@m17n.org>
+
+ * text.texi (Special Properties): Fix description about
+ `composition' property.
+
+2007-06-26 Kenichi Handa <handa@m17n.org>
+
+ * nonascii.texi (Default Coding Systems): Document about the
+ return value `undecided'.
+
+2007-06-25 David Kastrup <dak@gnu.org>
+
+ * keymaps.texi (Active Keymaps): Document new POSITION argument of
+ `current-active-maps'.
+
+2007-06-24 Karl Berry <karl@gnu.org>
+
+ * elisp.texi, vol1.texi, vol2.texi: New Back-Cover Text.
+
+2007-06-15 Juanma Barranquero <lekktu@gmail.com>
+
+ * display.texi (Overlay Arrow): Doc fix.
+
+2007-06-14 Karl Berry <karl@tug.org>
+
+ * anti.texi (Antinews): Typo.
+
+2007-06-14 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi (Image Cache): Document image-refresh.
+
+2007-06-12 Karl Berry <karl@gnu.org>
+
+ * vol1.texi, vol2.texi, two-volume-cross-refs.txt: Update.
+ * two-volume.make: New file.
+ * .cvsignore: Ignore two-volume files.
+
+2007-06-12 Tom Tromey <tromey@redhat.com>
+
+ * os.texi (Init File): Document user-emacs-directory.
+
+2007-06-03 Nick Roberts <nickrob@snap.net.nz>
+
+ * commands.texi (Click Events): Describe width and height when
+ object is nil.
+
+2007-05-30 Nick Roberts <nickrob@snap.net.nz>
+
+ * commands.texi (Click Events): Layout more logically. Describe
+ width and height.
+ (Drag Events, Motion Events): Update to new format for position.
+
+2007-06-02 Richard Stallman <rms@gnu.org>
+
+ * frames.texi (Color Parameters): Add xref to (emacs)Standard Faces.
+
+2007-06-02 Chong Yidong <cyd@stupidchicken.com>
+
+ * Version 22.1 released.
+
+2007-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * text.texi (Special Properties): Correct meaning of fontified face.
+
+2007-05-30 Richard Stallman <rms@gnu.org>
+
+ * text.texi (Special Properties): Add link to Adjusting Point.
+
+2007-05-12 Richard Stallman <rms@gnu.org>
+
+ * text.texi (Margins): indent-to-left-margin is not the default.
+ (Mode-Specific Indent): For indent-line-function, the default
+ is indent-relative.
+
+ * modes.texi (Example Major Modes): Explain last line of text-mode
+ is redundant.
+
+2007-05-10 Richard Stallman <rms@gnu.org>
+
+ * keymaps.texi (Scanning Keymaps): Update where-is-internal example.
+
+ * help.texi (Keys in Documentation): Add reference to
+ Documentation Tips.
+
+ * files.texi (Format Conversion): TO-FN gets three arguments.
+
+ * modes.texi (Auto Major Mode): Document file-start-mode-alist.
+
+2007-05-10 Thien-Thi Nguyen <ttn@gnuvola.org>
+
+ * elisp.texi (Top): Remove "Saving Properties" from detailed menu.
+ * files.texi (Format Conversion): Expand intro; add menu.
+ (Format Conversion Overview, Format Conversion Round-Trip)
+ (Format Conversion Piecemeal): New nodes/subsections.
+ * hooks.texi: Xref "Format Conversion" , not "Saving Properties".
+ * text.texi (Text Properties): Remove "Saving Properties" from menu.
+ (Saving Properties): Delete node/subsection.
+
+2007-05-07 Karl Berry <karl@gnu.org>
+
+ * elisp.texi (EMACSVER): Back to 22.
+
+2007-05-06 Richard Stallman <rms@gnu.org>
+
+ * processes.texi (Accepting Output): Revert most of previous change.
+
+2007-05-05 Richard Stallman <rms@gnu.org>
+
+ * processes.texi (Accepting Output): accept-process-output
+ uses microseconds, not milliseconds. But that arg is obsolete.
+
+2007-05-04 Karl Berry <karl@tug.org>
+
+ * elisp.texi (EMACSVER) [smallbook]: 22.1, not 22.
+
+2007-05-04 Eli Zaretskii <eliz@gnu.org>
+
+ * tips.texi (Documentation Tips): Rearrange items to place the
+ more important ones first. Add an index entry for hyperlinks.
+
+2007-05-03 Karl Berry <karl@gnu.org>
+
+ * elisp.texi (\urlcolor, \linkcolor) [smallbook]: \Black for printing.
+ (EMACSVER) [smallbook]: 22 for printed version.
+
+ * control.texi (Signaling Errors) <signal>: texinfo.tex is fixed,
+ so restore anchor to normal position after defun. Found by Kevin Ryde.
+
+2007-04-26 Glenn Morris <rgm@gnu.org>
+
+ * elisp.texi (EMACSVER): Increase to 22.1.50.
+
+2007-04-28 Karl Berry <karl@gnu.org>
+
+ * elisp.texi: Improve line breaks on copyright page,
+ similar layout to emacs manual, 8.5x11 by default.
+
+2007-04-24 Richard Stallman <rms@gnu.org>
+
+ * text.texi (Special Properties): Add xref to Overlay Properties.
+
+ * display.texi (Overlay Properties): Add xref to Special Properties.
+
+2007-04-22 Richard Stallman <rms@gnu.org>
+
+ * keymaps.texi (Extended Menu Items): Move the info about
+ format with cached keyboard binding.
+
+2007-04-21 Richard Stallman <rms@gnu.org>
+
+ * text.texi (Special Properties): Clarify previous change.
+
+ * files.texi (File Name Expansion): Clarify previous change.
+
+ * display.texi (Attribute Functions): Fix example for
+ face-attribute-relative-p.
+
+2007-04-19 Kenichi Handa <handa@m17n.org>
+
+ * text.texi (Special Properties): Document composition property.
+
+2007-04-19 Glenn Morris <rgm@gnu.org>
+
+ * files.texi (File Name Expansion): Mention "superroot".
+
+2007-04-15 Chong Yidong <cyd@stupidchicken.com>
+
+ * frames.texi (Multiple Displays): Add note about "multi-monitor"
+ setups.
+ (Display Feature Testing): Note that display refers to all
+ physical monitors for multi-monitor setups.
+
+2007-04-14 Richard Stallman <rms@gnu.org>
+
+ * lists.texi (Sets And Lists): Clarify `delete' examples.
+ Remove spurious xref to same node.
+ Clarify xref for add-to-list.
+
+2007-04-12 Nick Roberts <nickrob@snap.net.nz>
+
+ * keymaps.texi (Format of Keymaps): Remove spurious ")" from
+ value of lisp-mode-map.
+
+2007-04-11 Karl Berry <karl@gnu.org>
+
+ * anti.texi (Antinews):
+ * display.texi (Overlay Properties, Defining Images):
+ * processes.texi (Synchronous Processes, Sentinels):
+ * syntax.texi (Syntax Table Internals):
+ * searching.texi (Regexp Special):
+ * nonascii.texi (Default Coding Systems):
+ * text.texi (Special Properties):
+ * minibuf.texi (Basic Completion): Wording to improve breaks in
+ 8.5x11 format.
+ * elisp.texi (smallbook): New @set to more easily switch between
+ smallbook and 8.5x11.
+
+2007-04-11 Richard Stallman <rms@gnu.org>
+
+ * text.texi (Lazy Properties): Minor fix.
+
+2007-04-08 Karl Berry <karl@gnu.org>
+
+ * symbols.texi (Plists and Alists): Period after "vs" in index entries.
+ * macros.texi (Backquote): Downcase Backquote in index entries for
+ consistency.
+
+2007-04-08 Richard Stallman <rms@gnu.org>
+
+ * text.texi (Adaptive Fill): Just describe default,
+ don't show it (since it contains non-ASCII chars).
+
+2007-04-07 Karl Berry <karl@gnu.org>
+
+ * text.texi (Adaptive Fill) [@iftex]: Omit binary characters in
+ adaptive-fill-regexp's value, since they are not in the standard
+ TeX fonts.
+
+2007-04-07 Guanpeng Xu <herberteuler@hotmail.com>
+
+ * display.texi (Defining Faces): Fix example.
+
+2007-04-07 Karl Berry <karl@gnu.org>
+
+ * display.texi (Button Buffer Commands): Improve page break.
+
+2007-04-07 Richard Stallman <rms@gnu.org>
+
+ * advice.texi (Activation of Advice): Remove redundant index entry.
+
+ * backups.texi: Improve index entries. Remove redundant ones.
+
+ * compile.texi (Byte Compilation): Improve index entry.
+
+ * hash.texi (Creating Hash): Improve index entry.
+
+ * symbols.texi (Definitions): Improve index entry.
+
+ * edebug.texi: Improve index entries. Remove redundant/useless ones.
+
+ * maps.texi (Standard Keymaps): Remove useless index entry.
+
+ * help.texi (Documentation Basics): Remove redundant index entries.
+
+ * customize.texi: Improve index entries.
+ Remove redundant/useless ones.
+
+ * locals.texi (Standard Buffer-Local Variables): Clarify intro text.
+
+ * streams.texi (Output Variables): Improve index entry.
+
+ * abbrevs.texi (Abbrevs): Remove useless index entry.
+
+ * macros.texi (Expansion): Remove useless index entry.
+
+ * text.texi: Improve index entries. Remove redundant/useless ones.
+ (Text Properties, Examining Properties)
+ (Special Properties): Use "property category" instead of "category"
+ to refer to the `category' property.
+
+ * positions.texi: Improve index entries. Remove useless one.
+
+ * lists.texi: Improve index entries. Remove redundant/useless ones.
+
+ * os.texi: Improve index entries.
+ (Timers): Fix previous change.
+
+ * buffers.texi: Improve index entries.
+ (Modification Time): Get rid of term "obsolete buffer".
+
+ * debugging.texi: Improve index entries.
+ (Test Coverage): Add xref to other test coverage ftr.
+
+ * eval.texi: Improve index entry. Remove redundant ones.
+
+ * numbers.texi: Improve index entries. Remove redundant/useless ones.
+
+ * files.texi: Improve index entries. Remove redundant/useless ones.
+
+ * objects.texi: Improve index entries.
+
+ * processes.texi: Improve index entries.
+
+ * modes.texi: Improve index entry. Remove redundant one.
+
+ * nonascii.texi: Improve index entries.
+
+ * internals.texi: Improve index entries.
+
+ * syntax.texi: Improve index entries.
+
+ * keymaps.texi (Active Keymaps): Improve index entries.
+
+ * commands.texi: Improve index entries. Remove redundant/useless ones.
+
+ * frames.texi: Improve index entries. Remove redundant/useless ones.
+
+ * markers.texi: Improve index entries. Remove redundant ones.
+
+ * tips.texi: Improve index entries.
+
+ * loading.texi (Unloading): Improve index entry.
+
+ * variables.texi: Improve index entries. Remove redundant one.
+
+ * sequences.texi: Improve index entry.
+
+ * display.texi: Improve index entries. Remove redundant ones.
+
+ * windows.texi: Improve index entries.
+
+ * searching.texi: Improve index entries. Remove redundant one.
+
+ * strings.texi (Case Tables): Improve last change.
+
+2007-04-04 Chong Yidong <cyd@stupidchicken.com>
+
+ * strings.texi (Case Tables): Document with-case-table and
+ ascii-case-table.
+
+2007-04-03 Karl Berry <karl@gnu.org>
+
+ * processes.texi (Network): Reword to improve page break.
+
+2007-04-03 Eli Zaretskii <eliz@gnu.org>
+
+ * functions.texi (Inline Functions): Describe more disadvantages
+ of defsubst, and make advice against it stronger.
+
+2007-04-02 Karl Berry <karl@gnu.org>
+
+ * backups.texi (Backup Names): Avoid widow words.
+ * modes.texi (Example Major Modes): Align last comment.
+
+2007-04-01 Chong Yidong <cyd@stupidchicken.com>
+
+ * keymaps.texi (Remapping Commands): Document new arg to
+ command-remapping.
+
+2007-04-01 Karl Berry <karl@gnu.org>
+
+ * processes.texi (Low-Level Network): Typo.
+ * loading.texi (Hooks for Loading): Avoid double "the".
+ * keymaps.texi (Key Sequences): No double "and".
+ (Changing Key Bindings): Shorten to improve line break.
+
+2007-03-31 Glenn Morris <rgm@gnu.org>
+
+ * os.texi (Timers): Fix description of run-at-time TIME formats.
+
+2007-03-31 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Invisible Text): Correct buffer-invisibility-spec
+ regarding ellipsis.
+
+2007-03-31 Eli Zaretskii <eliz@gnu.org>
+
+ * intro.texi (nil and t):
+ * symbols.texi (Plists and Alists):
+ * variables.texi (Variable Aliases, Constant Variables):
+ * functions.texi (Defining Functions):
+ * advice.texi (Advising Primitives):
+ * debugging.texi (Syntax Errors, Compilation Errors):
+ * minibuf.texi (Minibuffer Windows):
+ * commands.texi (Adjusting Point):
+ * modes.texi (Syntactic Font Lock, Faces for Font Lock)
+ (Auto Major Mode, Major Mode Conventions):
+ * help.texi (Describing Characters):
+ * files.texi (Create/Delete Dirs, Information about Files)
+ (File Locks, Writing to Files, Reading from Files)
+ (Saving Buffers):
+ * windows.texi (Resizing Windows, Cyclic Window Ordering):
+ * frames.texi (Finding All Frames):
+ * positions.texi (Buffer End, Motion):
+ * markers.texi (The Region):
+ * text.texi (Deletion, Near Point):
+ * display.texi (Displaying Messages, Truncation):
+ * os.texi (Processor Run Time):
+ * tips.texi (Key Binding Conventions, Programming Tips)
+ (Warning Tips, Documentation Tips, Comment Tips):
+ * internals.texi (Memory Usage): Improve indexing.
+
+ * variables.texi (Frame-Local Variables):
+ * functions.texi (Argument List):
+ * loading.texi (Library Search):
+ * streams.texi (Output Variables):
+ * keymaps.texi (Translation Keymaps, Searching Keymaps):
+ * searching.texi (Replacing Match, Search and Replace):
+ * processes.texi (Byte Packing, Decoding Output)
+ (Accepting Output, Network Servers, Shell Arguments):
+ * display.texi (Abstract Display, Image Cache, Scroll Bars):
+ * windows.texi (Window Point, Window Start):
+ * frames.texi (Management Parameters, Frame Parameters, Frame Titles):
+ * commands.texi (Reading Input, Keyboard Events):
+ * minibuf.texi (Reading File Names, Minibuffer Completion)
+ (Recursive Mini):
+ * positions.texi (List Motion):
+ * hash.texi (Hash Tables, Creating Hash, Defining Hash):
+ * numbers.texi (Arithmetic Operations, Math Functions)
+ (Predicates on Numbers, Comparison of Numbers):
+ (Numeric Conversions):
+ * locals.texi (Standard Buffer-Local Variables):
+ * maps.texi (Standard Keymaps):
+ * os.texi (User Identification, System Environment, Recording Input)
+ (X11 Keysyms):
+ * nonascii.texi (Non-ASCII Characters, Splitting Characters):
+ * backups.texi (Backups and Auto-Saving):
+ * customize.texi (Customization, Group Definitions)
+ (Variable Definitions):
+ * compile.texi (Byte Compilation): Improve index entries.
+
+2007-03-31 Karl Berry <karl@gnu.org>
+
+ * macros.texi (Defining Macros): Avoid widow syllable.
+
+2007-03-31 Eli Zaretskii <eliz@gnu.org>
+
+ * elisp.texi (Top): Postscript -> PostScript.
+
+ * display.texi (Images, Postscript Images): Postscript -> PostScript.
+
+2007-03-31 Markus Triska <markus.triska@gmx.at>
+
+ * internals.texi (Writing Emacs Primitives): Untabify `For'.
+
+2007-03-30 Karl Berry <karl@gnu.org>
+
+ * lists.texi (List-related Predicates): Remove spurious @need.
+ (Setcdr): Use @smallexample to improve page break.
+ (Association Lists) <assoc>: Reword to improve page break.
+
+ * strings.texi (String Conversion): Insert blank line to improve
+ page break.
+
+ * numbers.texi (Random Numbers): Use @minus{}.
+ (Math Functions): Use @minus{}.
+
+ * intro.texi (Acknowledgements): Avoid line breaks before middle
+ initials.
+
+2007-03-24 Eli Zaretskii <eliz@gnu.org>
+
+ * errors.texi (Standard Errors): Add an index entry.
+
+2007-03-19 Richard Stallman <rms@gnu.org>
+
+ * os.texi (Recording Input): recent-keys now gives 300 keys.
+
+2007-03-12 Glenn Morris <rgm@gnu.org>
+
+ * os.texi: Replace "daylight savings" with "daylight saving"
+ throughout.
+
+2007-03-05 Richard Stallman <rms@gnu.org>
+
+ * variables.texi (File Local Variables): Update
+ enable-local-variables values.
+
+2007-03-04 Richard Stallman <rms@gnu.org>
+
+ * syntax.texi (Control Parsing): Minor clarification.
+
+ * strings.texi (Formatting Strings): Clarify width, precision, flags.
+
+ * sequences.texi (Sequence Functions): Move string-bytes away,
+ add xref.
+
+ * nonascii.texi (Text Representations): Move string-bytes here.
+
+ * modes.texi (Major Mode Conventions): Fundamental mode is exception.
+
+ * minibuf.texi (Basic Completion): Minor clarification.
+
+ * markers.texi (The Mark): Clarify existence vs activation of mark.
+ Other cleanup.
+
+ * display.texi (Finding Overlays): Write better example.
+
+ * compile.texi (Eval During Compile): Clarify putting macros
+ in eval-when-compile.
+
+2007-02-25 Vinicius Jose Latorre <viniciusjl@ig.com.br>
+
+ * loading.texi (How Programs Do Loading): Fix anchor position at
+ load-read-function definition doc. (tiny change)
+
+2007-02-21 Kim F. Storm <storm@cua.dk>
+
+ * strings.texi (Text Comparison): Mention that assoc-string
+ converts symbols to strings before testing.
+
+2007-02-17 Kim F. Storm <storm@cua.dk>
+
+ * processes.texi (Bindat Spec): Vector types can have optional
+ element type.
+ (Bindat Examples): Fix example. Add vector with element type.
+
+2007-02-16 Andreas Schwab <schwab@suse.de>
+
+ * strings.texi (Formatting Strings): Document '+' flag.
+
+2007-02-15 Juanma Barranquero <lekktu@gmail.com>
+
+ * strings.texi (Modifying Strings): Clarify that `clear-string'
+ always converts the string to unibyte.
+
+2007-02-14 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Glyphs): Add make-glyph-code, glyph-char, glyph-face.
+ Rewrite glyph code description to refer to these functions.
+ Remove details of encoding face number and char into integer code.
+
+2007-02-03 Alan Mackenzie <acm@muc.de>
+
+ * loading.texi (Hooks for Loading): Make the description of
+ `eval-after-load' more detailed, and amend the description of
+ after-load-alist, in accordance with changes from 2006-05.
+
+2007-02-03 Chong Yidong <cyd@stupidchicken.com>
+
+ * modes.texi (Defining Minor Modes): Document that a :require
+ keyword or similar may be required to make saved customization
+ variables work.
+
+2007-02-03 Eli Zaretskii <eliz@gnu.org>
+
+ * elisp.texi (Top): Make the detailed menu headers compliant with
+ Texinfo guidelines and with what texnfo-upd.el expects. Add
+ comments to prevent people from inadvertently modifying the key
+ parts needed by `texinfo-multiple-files-update'.
+
+2007-02-02 Eli Zaretskii <eliz@gnu.org>
+
+ * elisp.texi (Top): Update the top-level menus.
+
+ * syntax.texi (Categories): Add index entries.
+
+2007-02-01 Juanma Barranquero <lekktu@gmail.com>
+
+ * display.texi (Attribute Functions): Fix name and description of
+ the UNDERLINE arg of `set-face-underline-p'.
+
+2007-01-29 Eli Zaretskii <eliz@gnu.org>
+
+ * elisp.texi (Top): Add "Standard Errors", "Standard Buffer-Local
+ Variables", and "Standard Keymaps" to the detailed menu.
+
+ * variables.texi (Future Local Variables): Add index entry.
+
+2007-01-28 Richard Stallman <rms@gnu.org>
+
+ * tips.texi (Coding Conventions): Clarify the tip about macros
+ that define a function or a variable.
+
+ * files.texi (File Attributes): UID and GID can be floats.
+ (Magic File Names): Explain why deferring all operations to
+ the standard handler does not work.
+
+2007-01-23 Martin Rudalics <rudalics@gmx.at>
+
+ * backups.texi (Reverting): Use "buffer" instead of "file"
+ when talking about major and minor modes.
+
+2007-01-21 Richard Stallman <rms@gnu.org>
+
+ * help.texi (Documentation): Add xref to Documentation Tips.
+
+2007-01-14 Juanma Barranquero <lekktu@gmail.com>
+
+ * tips.texi (Coding Conventions): Fix typos.
+
+2007-01-05 Richard Stallman <rms@gnu.org>
+
+ * modes.texi (Defining Minor Modes): Fix previous change.
+
+2007-01-03 Richard Stallman <rms@gnu.org>
+
+ * customize.texi (Variable Definitions, Customization Types):
+ Don't use * in doc string for defcustom.
+
+2007-01-02 Richard Stallman <rms@gnu.org>
+
+ * variables.texi (Variable Aliases): Clarify that aliases vars
+ always have the same value.
+
+ * processes.texi (Bindat Spec): Fix Texinfo usage.
+
+ * modes.texi (Defining Minor Modes): Explain effect of command
+ defined with define-global-minor-mode on new buffers.
+
+2006-12-30 Kim F. Storm <storm@cua.dk>
+
+ * keymaps.texi (Tool Bar): Describe `grow-only' value of
+ `auto-resize-tool-bars'.
+
+2006-12-30 Richard Stallman <rms@gnu.org>
+
+ * keymaps.texi (Active Keymaps): Fix previous change.
+
+2006-12-30 Nick Roberts <nickrob@snap.net.nz>
+
+ * keymaps.texi (Active Keymaps): Make xref to lookup-key.
+
+2006-12-30 Kim F. Storm <storm@cua.dk>
+
+ * processes.texi (Bindat Spec): Clarify using field names in
+ length specifications.
+
+2006-12-29 Kim F. Storm <storm@cua.dk>
+
+ * processes.texi (Bindat Spec): Explain eval forms and lengths better.
+ Add count and index variables for eval forms in repeat blocks.
+
+2006-12-24 Richard Stallman <rms@gnu.org>
+
+ * customize.texi (Variable Definitions): Document
+ new name custom-add-frequent-value.
+
+2006-12-19 Kim F. Storm <storm@cua.dk>
+
+ * commands.texi (Misc Events): User signals now result in sigusr1
+ and sigusr2 events which are handled through special-event-map.
+ (Special Events): User signals and drag-n-drop are special.
+
+2006-12-17 Richard Stallman <rms@gnu.org>
+
+ * loading.texi (Named Features): Explain subfeatures better.
+
+ * customize.texi: Use "option" only for user options.
+ For the keyword values inside defcustom etc, say "keywords".
+ For :options value's elements, say "elements".
+ :group should not be omitted.
+
+ * syntax.texi (Parsing Expressions): Split up node.
+ (Motion via Parsing, Position Parse, Parser State)
+ (Low-Level Parsing, Control Parsing): New subnodes.
+ (Parser State): Document syntax-ppss-toplevel-pos.
+
+ * positions.texi (List Motion): Punctuation fix.
+
+ * files.texi (File Name Completion): Document PREDICATE arg
+ to file-name-completion.
+
+2006-12-16 Eli Zaretskii <eliz@gnu.org>
+
+ * internals.texi (Building Emacs, Writing Emacs Primitives):
+ Add index entries.
+
+2006-12-11 Richard Stallman <rms@gnu.org>
+
+ * modes.texi (Font Lock Basics): Explain how nil for font-lock-defaults
+ affects face menu. Explain how to make it non-nil without enabling
+ any fontification.
+
+2006-12-10 Chong Yidong <cyd@stupidchicken.com>
+
+ * modes.texi (Font Lock Basics): Document nil value of
+ font-lock-defaults.
+
+2006-12-10 Glenn Morris <rgm@gnu.org>
+
+ * abbrevs.texi (Defining Abbrevs): Mention `define-abbrev' 'force
+ value for system-flag argument. Abbrev tables may not be empty
+ when major modes are loaded.
+
+2006-12-08 Juanma Barranquero <lekktu@gmail.com>
+
+ * makefile.w32-in (maintainer-clean): Partially revert last
+ change; delete "elisp-?" and "elisp-??" instead of "elisp-*"
+ to protect elisp-covers.texi.
+
+2006-12-07 Juanma Barranquero <lekktu@gmail.com>
+
+ * makefile.w32-in (maintainer-clean): Depend on `distclean'.
+ Don't remove elisp* info files; they are already deleted by the
+ `clean' and `distclean' targets, and they are in the $(infodir)
+ directory, not the current one.
+
+2006-12-04 Kim F. Storm <storm@cua.dk>
+
+ * commands.texi (Misc Events): Update signal events.
+ (Event Examples): Add signal example.
+
+2006-11-29 Richard Stallman <rms@gnu.org>
+
+ * frames.texi (Visibility of Frames): Explain visible windows
+ can be covered by others. Add xref for raise-frame.
+
+2006-11-28 Richard Stallman <rms@gnu.org>
+
+ * searching.texi (Regexp Special): Update when ^ is special.
+
+2006-11-27 Eli Zaretskii <eliz@gnu.org>
+
+ * customize.texi (Customization, Common Keywords)
+ (Group Definitions, Variable Definitions, Composite Types)
+ (Type Keywords, Customization Types): Add index entries for
+ various customization keywords.
+
+2006-11-23 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * modes.texi (Multiline Font Lock): Rephrase some parts for clarity.
+
+2006-11-10 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Window System Selections): Remove clipboard from
+ description of selection-coding-system.
+
+2006-11-06 Richard Stallman <rms@gnu.org>
+
+ * lists.texi (List Variables): Document COMPARE-FN.
+
+ * keymaps.texi: Avoid use of "binding" to mean a relation;
+ use it only to refer to the meaning associated with a key.
+ (Keymaps): Change menu node description.
+
+ * elisp.texi (Top): Change menu node description.
+
+ * display.texi (Managing Overlays): Document overlay-recenter.
+
+2006-10-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * Makefile.in: Use relative paths to avoid advertising filesystem
+ contents during compilation.
+
+2006-10-23 Kim F. Storm <storm@cua.dk>
+
+ * commands.texi (Event Input Misc): Update unread-command-events.
+
+2006-10-23 Nick Roberts <nickrob@snap.net.nz>
+
+ * lists.texi (Sets And Lists): Fix typos.
+
+2006-10-18 Juanma Barranquero <lekktu@gmail.com>
+
+ * control.texi (Processing of Errors): Use @var for an argument,
+ not @code.
+
+2006-10-16 Richard Stallman <rms@gnu.org>
+
+ * edebug.texi (Edebug Recursive Edit): Minor cleanup.
+
+ * keymaps.texi (Format of Keymaps): Show all the keymap element
+ patterns that result from menu items.
+ (Key Lookup): Minor cleanups.
+
+ * modes.texi (Precalculated Fontification): Don't say that
+ not setting font-lock-defaults avoids loading font-lock.
+
+ * help.texi (Documentation): Move xref to Emacs Manual here.
+ (Documentation Basics): From here.
+ Also doc emacs-lisp-docstring-fill-column.
+
+ * elisp.texi: Update version and ISBN.
+
+ * commands.texi (Interactive Call): Clarify KEYS arg to
+ call-interactively is a vector.
+ (Command Loop Info): Delete anchor in this-command-keys.
+ Add anchor in this-command-keys-vector.
+ (Recursive Editing): Document how recursive-edit
+ handles the current buffer.
+
+2006-10-13 Chong Yidong <cyd@stupidchicken.com>
+
+ * frames.texi (Frame Titles): %c and %l are ignored in
+ frame-title-format.
+
+2006-10-11 Richard Stallman <rms@gnu.org>
+
+ * keymaps.texi (Key Sequences): Clarify use of kbd.
+
+2006-10-10 Kim F. Storm <storm@cua.dk>
+
+ * lists.texi (Sets And Lists): Add memql.
+
+2006-10-03 Richard Stallman <rms@gnu.org>
+
+ * searching.texi (Char Classes): Document :multibyte: and :unibyte:.
+ Clarify :ascii: and :nonascii:.
+
+2006-09-29 Juri Linkov <juri@jurta.org>
+
+ * modes.texi (%-Constructs): Reorder coding systems in the
+ documentation of %z to the real order displayed in the modeline.
+
+2006-09-25 Richard Stallman <rms@gnu.org>
+
+ * os.texi (Timers): Describe timer-max-repeats.
+
+2006-09-25 Chong Yidong <cyd@stupidchicken.com>
+
+ * os.texi (Timers): Mention with-local-quit.
+
+2006-09-24 Richard Stallman <rms@gnu.org>
+
+ * searching.texi (Searching and Matching): Mention property search.
+
+ * commands.texi (Command Loop Info): Explain how read-event affects
+ this-command-keys.
+
+2006-09-20 Richard Stallman <rms@gnu.org>
+
+ * os.texi (Timers): Clarify about REPEAT when timer is delayed.
+
+ * windows.texi (Window Start): Minor cleanups.
+
+2006-09-20 Kim F. Storm <storm@cua.dk>
+
+ * windows.texi (Window Start): pos-visible-in-window-p allows
+ specifying t for position to mean "end of window".
+ Add window-line-height.
+
+ * anti.texi (Antinews): Mention window-line-height.
+
+2006-09-19 David Kastrup <dak@gnu.org>
+
+ * keymaps.texi (Searching Keymaps): Small clarification.
+
+2006-09-18 Richard Stallman <rms@gnu.org>
+
+ * keymaps.texi (Creating Keymaps): Explain that keymap prompt strings
+ cause keyboard menus.
+ (Menu Keymaps): Likewise.
+ (Defining Menus, Keyboard Menus): Clarify.
+
+ * text.texi (Fields): Clarify explanation of constrain-to-field.
+
+2006-09-16 Eli Zaretskii <eliz@gnu.org>
+
+ * variables.texi (Tips for Defining): Fix a typo.
+
+2006-09-15 Richard Stallman <rms@gnu.org>
+
+ * keymaps.texi (Remapping Commands, Searching Keymaps)
+ (Active Keymaps): Clean up previous change.
+
+2006-09-15 Jay Belanger <belanger@truman.edu>
+
+ * gpl.texi: Replace "Library Public License" by "Lesser Public
+ License" throughout.
+
+2006-09-15 David Kastrup <dak@gnu.org>
+
+ * keymaps.texi (Active Keymaps): Adapt description to use
+ `get-char-property' instead `get-text-property'. Explain how
+ mouse events change this. Explain the new optional argument of
+ `key-binding' and its mouse-dependent lookup.
+ (Searching Keymaps): Adapt description similarly.
+ (Remapping Commands): Explain the new optional argument of
+ `command-remapping'.
+
+2006-09-14 Richard Stallman <rms@gnu.org>
+
+ * keymaps.texi (Searching Keymaps): Clarification.
+ (Active Keymaps): Refer to Searching Keymaps instead of duplication.
+
+2006-09-13 Richard Stallman <rms@gnu.org>
+
+ * objects.texi (Character Type): Node split.
+ Add xref to Describing Characters.
+ (Basic Char Syntax, General Escape Syntax)
+ (Ctl-Char Syntax, Meta-Char Syntax): New subnodes.
+
+2006-09-11 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Display Table Format): Wording clarification.
+ (Glyphs): Clarifications.
+
+2006-09-10 Chong Yidong <cyd@stupidchicken.com>
+
+ * keymaps.texi (Active Keymaps): Mention that key-binding checks
+ local maps.
+
+2006-09-10 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Forcing Redisplay): Document return value of
+ function redisplay.
+
+2006-09-09 Richard Stallman <rms@gnu.org>
+
+ * windows.texi (Window Hooks): Explain limits of
+ window-scroll-functions.
+
+ * display.texi (Fringe Indicators): Update for last change in
+ indicate-buffer-boundaries.
+
+2006-09-08 Richard Stallman <rms@gnu.org>
+
+ * processes.texi (Bindat Spec): Suggest names ending in -bindat-spec.
+
+2006-09-06 Kim F. Storm <storm@cua.dk>
+
+ * frames.texi (Display Feature Testing): display-mm-dimensions-alist.
+
+ * windows.texi (Window Start): Update pos-visible-in-window-p.
+
+2006-09-04 Richard Stallman <rms@gnu.org>
+
+ * processes.texi (Accepting Output): Explain SECONDS=0 for
+ accept-process-output.
+
+ * os.texi (Idle Timers): Explain why timer functions should not
+ loop until (input-pending-p).
+
+2006-09-02 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (usermanualdir): New variable.
+ (elisp.dvi): Use it.
+
+2006-09-01 Eli Zaretskii <eliz@gnu.org>
+
+ * buffers.texi (Buffer Modification): Fix last change.
+
+2006-09-01 Chong Yidong <cyd@stupidchicken.com>
+
+ * buffers.texi (Buffer Modification): Document
+ buffer-chars-modified-tick.
+
+2006-08-31 Richard Stallman <rms@gnu.org>
+
+ * modes.texi (Syntactic Font Lock): Mention specific faces once again.
+
+2006-08-31 Richard Bielawski <RBielawski@moneygram.com> (tiny change)
+
+ * modes.texi (Syntactic Font Lock):
+ Mention font-lock-syntactic-face-function
+ instead of specific faces.
+
+2006-08-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi (Images): Add xrref to display-images-p.
+
+2006-08-28 Kenichi Handa <handa@m17n.org>
+
+ * nonascii.texi (Lisp and Coding Systems): Fix description of
+ detect-coding-region.
+
+2006-08-27 Michael Olson <mwolson@gnu.org>
+
+ * processes.texi (Transaction Queues): Remove stray quote
+ character.
+
+2006-08-25 Richard Stallman <rms@gnu.org>
+
+ * os.texi (Idle Timers): run-with-idle-timer allows Lisp time value.
+ Add xref.
+
+2006-08-24 Chong Yidong <cyd@stupidchicken.com>
+
+ * os.texi (Timers): Avoid waiting inside timers.
+
+2006-08-21 Lute Kamstra <lute@gnu.org>
+
+ * Makefile.in: Use ../man/texinfo.tex to build elisp.dvi.
+
+2006-08-20 Richard Stallman <rms@gnu.org>
+
+ * os.texi (Idle Timers): New node, split out from Timers.
+ Document current-idle-time.
+ * commands.texi (Reading One Event): Update xref.
+ * elisp.texi (Top): Update subnode menu.
+
+2006-08-16 Richard Stallman <rms@gnu.org>
+
+ * keymaps.texi (Extended Menu Items): Show format of cached
+ bindings in extended menu items.
+
+ * customize.texi (Variable Definitions): Explain when the
+ standard value expression is evaluated.
+
+2006-08-15 Chong Yidong <cyd@stupidchicken.com>
+
+ * commands.texi (Reading One Event): Explain idleness in
+ `read-event'.
+
+2006-08-12 Chong Yidong <cyd@stupidchicken.com>
+
+ * text.texi (Near Point): Say "cursor" not "terminal cursor".
+ (Commands for Insertion): Removed split-line since it's not
+ relevant for Lisp programming.
+ (Yank Commands): Rewrite introduction.
+ (Undo): Clarify.
+ (Maintaining Undo): Clarify. Document undo-ask-before-discard.
+ (Filling): Remove redundant comment. Clarify return value of
+ current-justification.
+ (Margins): Minor clarifications.
+ (Adaptive Fill): Update default value of adaptive-fill-regexp.
+ (Sorting): Update definition of sort-lines.
+ (Columns): Clarify behavior of sort-columns.
+ (Indent Tabs): Link to Tab Stops in Emacs manual.
+ (Special Properties): Clarify.
+ (Clickable Text): Mention Buttons package.
+
+2006-08-12 Kevin Ryde <user42@zip.com.au>
+
+ * os.texi (Time Parsing): Add %z to description of
+ format-time-string, as per docstring. Add cross reference to
+ glibc manual for strftime.
+
+2006-08-08 Richard Stallman <rms@gnu.org>
+
+ * modes.texi: Clean up wording in previous change.
+
+2006-08-07 Chong Yidong <cyd@stupidchicken.com>
+
+ * modes.texi (Hooks): Clarify.
+ (Major Mode Basics): Mention define-derived-mode explicitly.
+ (Major Mode Conventions): Rebinding RET is OK for some modes.
+ Mention change-major-mode-hook and after-change-major-mode-hook.
+ (Example Major Modes): Moved to end of Modes section.
+ (Mode Line Basics): Clarify.
+ (Mode Line Data): Mention help-echo and local-map in strings.
+ Explain reason for treatment of non-risky variables.
+ (Properties in Mode): Clarify.
+ (Faces for Font Lock): Add font-lock-negation-char-face.
+
+2006-08-04 Eli Zaretskii <eliz@gnu.org>
+
+ * strings.texi (Formatting Strings): Warn against arbitrary
+ strings as first arg to `format'.
+
+2006-07-31 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * text.texi (Clickable Text): Mention `help-echo' text property.
+ Update intro, examples and associated explanations.
+
+2006-07-31 Richard Stallman <rms@gnu.org>
+
+ * commands.texi: Update xrefs.
+ (Event Mod): New node, cut out from old Translating Input.
+
+ * maps.texi: Update xrefs.
+
+ * keymaps.texi (Translation Keymaps): New node.
+ Update xrefs from Translating Input to Translation Keymaps.
+
+ * elisp.texi (Top): Update subnode menu.
+
+ * display.texi (Face Functions): Fix explanations of FRAME=t or nil.
+
+ * os.texi (System Interface): Fix menu descriptions of some nodes.
+ (Translating Input): Node deleted.
+
+2006-07-31 Nick Roberts <nickrob@snap.net.nz>
+
+ * modes.texi (Minor Mode Conventions): Update xref for add-to-list.
+
+ * lists.texi (Sets And Lists): Likewise.
+
+2006-07-30 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * text.texi (Fields): Mention POS
+ requirement when narrowing is in effect.
+
+2006-07-28 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Face Attributes): Simplify wording.
+ (Attribute Functions): Clarify meaning of new-frame default
+ attribute settings.
+
+ * customize.texi (Common Keywords): Document how to use
+ :package-version in a package not in Emacs.
+
+2006-07-28 Kim F. Storm <storm@cua.dk>
+
+ * commands.texi (Reading One Event): Fix last change.
+
+2006-07-26 Chong Yidong <cyd@stupidchicken.com>
+
+ * commands.texi (Reading One Event): Document SECONDS argument for
+ read-event, read-char, and read-char-exclusive.
+
+2006-07-25 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * modes.texi (Multiline Font Lock): Can't use jit-lock-defer-multiline
+ to ensure correct identification.
+
+2006-07-24 Richard Stallman <rms@gnu.org>
+
+ * text.texi (Clickable Text): Clarify.
+
+ * sequences.texi (Vector Functions): Delete duplicate xref.
+
+ * objects.texi (Function Type): Clarify.
+
+ * modes.texi (Keymaps and Minor Modes): List punct chars for minor
+ modes.
+
+ * lists.texi (List Variables): New node.
+ Material moved from other nodes.
+
+ * variables.texi (Setting Variables): add-to-list and
+ add-to-ordered-list moved to List Variables node.
+
+2006-07-23 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * text.texi (Links and Mouse-1):
+ For mouse-on-link-p, expand on arg POS.
+
+2006-07-21 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Forcing Redisplay): Don't mention systems which
+ don't support sub-second timers for redisplay-preemption-period.
+
+ * os.texi (Terminal Output): Clarify text vs graphical terminal.
+
+2006-07-21 Eli Zaretskii <eliz@gnu.org>
+
+ * frames.texi (Input Focus): Document that focus-follows-mouse has
+ no effect on MS-Windows.
+
+2006-07-18 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Forcing Redisplay): Cleanups in previous change.
+
+ * processes.texi (Low-Level Network): Make menu more convenient.
+
+2006-07-18 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Forcing Redisplay): redisplay-preemption-period
+ only used on window systems. Add xref to Terminal Output.
+
+ * os.texi (Terminal Output): baud-rate only controls preemption on
+ non-window systems. Add xref to Forcing Redisplay.
+
+ * processes.texi (Low-Level Network): Rename node "Make Network"
+ to "Network Processes".
+
+2006-07-18 Karl Berry <karl@gnu.org>
+
+ * variables.texi, functions.texi, customize.texi, loading.texi:
+ * edebug.texi, minibuf.texi: Fix page breaks through chapter 20.
+
+2006-07-17 Chong Yidong <cyd@stupidchicken.com>
+
+ * commands.texi (Waiting): Document batch-mode sit-for behavior.
+
+2006-07-17 Richard Stallman <rms@gnu.org>
+
+ * eval.texi, elisp.texi, text.texi: Use real doublequote inside menus.
+ Put period and comma inside quotes.
+
+ * loading.texi, markers.texi: Use real doublequote inside menus.
+
+ * windows.texi: Put point and comma inside quotes.
+ (Textual Scrolling): Use @samp for error message.
+
+ * variables.texi, tips.texi, syntax.texi, symbols.texi:
+ * strings.texi, streams.texi, processes.texi, os.texi:
+ * objects.texi, numbers.texi, modes.texi, minibuf.texi:
+ * lists.texi, keymaps.texi, intro.texi, hash.texi, internals.texi:
+ * gpl.texi, functions.texi, files.texi, frames.texi, doclicense.texi:
+ * display.texi, control.texi, commands.texi, buffers.texi, anti.texi:
+ Put point and comma inside quotes.
+
+ * control.texi (Processing of Errors): Add command-error-function.
+
+ * variables.texi (File Local Variables): Clarify that
+ file local variables make buffer-local bindings.
+
+ * modes.texi (Syntactic Font Lock): Give default for
+ font-lock-syntax-table.
+
+2006-07-17 Nick Roberts <nickrob@snap.net.nz>
+
+ * text.texi (Special Properties): Clean up previous change.
+
+2006-07-16 Karl Berry <karl@gnu.org>
+
+ * objects.texi, numbers.texi, strings.texi, lists.texi, hash.texi:
+ * control.texi: Fix bad page breaks through chapter 10 (control).
+
+ * anti.texi (Antinews): Reorder face-attribute fns to avoid
+ underfull hbox.
+
+2006-07-15 Nick Roberts <nickrob@snap.net.nz>
+
+ * text.texi (Special Properties): Describe fontified text property
+ in relation to a character (not text).
+
+2006-07-15 Kim F. Storm <storm@cua.dk>
+
+ * maps.texi (Standard Keymaps): Add xref for minibuffer maps.
+ Add apropos-mode-map, custom-mode-map, esc-map, global-map,
+ grep-mode-map, help-map, help-mode-map, kmacro-map, and tool-bar-map.
+
+ * anti.texi (Antinews): Mention redisplay function.
+ The kbd macro existed, but was not documented, before 22.x.
+ Function pos-visible-in-window-p is not new in 22.x, just enhanced.
+
+2006-07-14 Nick Roberts <nickrob@snap.net.nz>
+
+ * display.texi (Displaying Messages): Add anchor.
+
+ * frames.texi (Dialog Boxes): Use it.
+
+2006-07-12 Richard Stallman <rms@gnu.org>
+
+ * objects.texi (Frame Type): Explain nature of frames better.
+
+ * frames.texi (Frames): Explain nature of frames better.
+
+2006-07-12 Ken Manheimer <ken.manheimer@gmail.com>
+
+ * tips.texi (Coding Conventions): Explain why use cl at compile time.
+
+2006-07-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * frames.texi (Window System Selections): Mention scrap support for Mac.
+ Default value of x-select-enable-clipboard is t on Mac.
+
+ * os.texi (Getting Out): Suspending is not allowed on Mac, either.
+
+2006-07-11 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Forcing Redisplay): Add `redisplay' function.
+ Don't mention (sit-for -1) -- use (redisplay t) instead.
+
+ * commands.texi (Waiting): (sit-for -1) is no longer special.
+ (sit-for 0) is equivalent to (redisplay).
+ Iconifying/deiconifying no longer makes sit-for return.
+
+2006-07-10 Nick Roberts <nickrob@snap.net.nz>
+
+ * display.texi (Buttons): Fix typo.
+
+ * index.texi, elisp.texi (New Symbols): Comment node out.
+
+2006-07-09 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Truncation): Clean up previous change.
+
+2006-07-08 Richard Stallman <rms@gnu.org>
+
+ * commands.texi (Interactive Call): Use 3 as prefix in example
+ for execute-extended-command.
+
+ * display.texi (Attribute Functions): Move paragraph about
+ compatibility with Emacs < 21.
+
+2006-07-09 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Refresh Screen): Clarify force-window-update.
+ (Truncation): "Normally" indicated by fringe arrows.
+
+2006-07-08 Eli Zaretskii <eliz@gnu.org>
+
+ * windows.texi (Textual Scrolling, Resizing Windows):
+ * variables.texi (Constant Variables):
+ * text.texi (Buffer Contents, Deletion, Changing Properties)
+ (Property Search, Special Properties, Sticky Properties)
+ (Links and Mouse-1, Fields, Change Hooks):
+ * syntax.texi (Syntax Table Functions, Parsing Expressions)
+ (Categories):
+ * symbols.texi (Other Plists):
+ * streams.texi (Output Variables):
+ * processes.texi (Input to Processes, Query Before Exit):
+ * positions.texi (Word Motion, Text Lines, List Motion):
+ * os.texi (Init File, System Environment, Sound Output)
+ (Session Management):
+ * nonascii.texi (Text Representations, Character Sets)
+ (Chars and Bytes, Locales):
+ * modes.texi (Defining Minor Modes, Header Lines):
+ * minibuf.texi (Minibuffer Contents):
+ * markers.texi (Information from Markers):
+ * lists.texi (List Elements, Building Lists, Association Lists):
+ * keymaps.texi (Tool Bar):
+ * hash.texi (Creating Hash, Hash Access, Defining Hash, Other Hash):
+ * functions.texi (What Is a Function, Mapping Functions):
+ * frames.texi (Creating Frames, Parameter Access, Pointer Shape)
+ (Color Names, Text Terminal Colors, Display Feature Testing):
+ * files.texi (Visiting Functions, File Name Components)
+ (Unique File Names, Contents of Directories):
+ * display.texi (Forcing Redisplay, Displaying Messages)
+ (Temporary Displays, Font Selection, Auto Faces)
+ (Font Lookup, Fringe Indicators, Display Margins)
+ (Image Descriptors, Showing Images, Image Cache, Button Types)
+ (Making Buttons, Manipulating Buttons, Button Buffer Commands)
+ (Display Table Format, Glyphs):
+ * control.texi (Iteration):
+ * commands.texi (Command Loop Info, Adjusting Point):
+ * backups.texi (Making Backups, Auto-Saving):
+ Remove @tindex entries.
+
+2006-07-07 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Fringe Cursors): Fix typo.
+ (Customizing Bitmaps): Fix define-fringe-bitmap entry.
+ (Overlay Arrow): Default is overlay-arrow fringe indicator.
+
+2006-07-05 Richard Stallman <rms@gnu.org>
+
+ * text.texi (Buffer Contents): Add example of text props
+ in result of buffer-substring.
+ (Text Properties): Explain better about use of specific property names.
+ (Property Search): Some cleanups; reorder some functions.
+
+ * keymaps.texi (Changing Key Bindings): Cleanup.
+ Add xref to Key Binding Conventions.
+
+ * display.texi (Attribute Functions): Add examples for
+ face-attribute-relative-p.
+
+ * tips.texi (Coding Conventions): Cleanup last change.
+
+2006-07-05 Karl Berry <karl@gnu.org>
+
+ * elisp.texi: Use @fonttextsize 10pt, a la emacs.texi.
+ Remove @setchapternewpage odd.
+ Result is 1013 pages, down from 1100.
+
+ * anti.texi, customize.texi, display.texi, internals.texi:
+ * minibuf.texi, modes.texi, tips.texi:
+ Fix overfull/underfull boxes.
+
+2006-07-05 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * edebug.texi (Instrumenting):
+ Add Edebug-specific findex for eval-buffer.
+ * loading.texi (Loading):
+ Replace eval-current-buffer with eval-buffer.
+
+2006-06-30 Nick Roberts <nickrob@snap.net.nz>
+
+ * locals.texi (Standard Buffer-Local Variables): Update the list
+ of variables.
+
+2006-06-26 Nick Roberts <nickrob@snap.net.nz>
+
+ * files.texi (File Name Completion): Point user to the node
+ "Reading File Names".
+
+2006-06-24 Eli Zaretskii <eliz@gnu.org>
+
+ * files.texi (Contents of Directories): Document case-insensitive
+ behavior on respective filesystems.
+
+ * objects.texi (Character Type): Document that Emacs signals an
+ error for unsupported Unicode characters specified as \uNNNN.
+
+2006-06-19 Richard Stallman <rms@gnu.org>
+
+ * processes.texi (Bindat Spec): Clarify previous change.
+
+2006-06-16 Richard Stallman <rms@gnu.org>
+
+ * tips.texi (Coding Conventions): Better explain conventions
+ for definition constructs.
+
+ * text.texi (Special Properties): String value of `read-only'
+ serves as the error message.
+
+ * objects.texi (Character Type): Clarify prev. change.
+ (Non-ASCII in Strings): Mention \u and \U.
+
+ * commands.texi (Using Interactive): Explain problem of
+ markers, etc., in command-history.
+
+2006-06-14 Kim F. Storm <storm@cua.dk>
+
+ * commands.texi (Waiting): Negative arg to sit-for forces
+ redisplay even if input is pending.
+
+ * display.texi (Forcing Redisplay): Use (sit-for -1) to force a
+ redisplay. Remove incorrect example of binding redisplay-dont-pause
+ around (sit-for 0).
+
+2006-06-13 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Forcing Redisplay): Clarify previous change.
+
+2006-06-13 Romain Francoise <romain@orebokech.com>
+
+ * display.texi (Forcing Redisplay): Fix typo.
+
+2006-06-13 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Forcing Redisplay): Add redisplay-preemption-period.
+
+2006-06-10 Luc Teirlinck <teirllm@auburn.edu>
+
+ * tips.texi (Coding Conventions): Add `@end itemize'.
+
+2006-06-10 Richard Stallman <rms@gnu.org>
+
+ * tips.texi (Coding Conventions): Explain use of coding systems
+ to ensure one decoding for strings.
+
+2006-06-09 Aidan Kehoe <kehoea@parhasard.net>
+
+ * objects.texi (Character Type): Describe the \uABCD and \U00ABCDEF
+ syntax.
+
+2006-06-07 Eli Zaretskii <eliz@gnu.org>
+
+ * display.texi (Font Selection): Remove description of
+ clear-face-cache.
+
+ * compile.texi (Eval During Compile): Fix a typo. Add index
+ entries for possible uses of eval-when-compile.
+
+2006-06-04 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * display.texi (Abstract Display): Fix typo.
+
+2006-06-03 Eli Zaretskii <eliz@gnu.org>
+
+ * minibuf.texi (Minibuffer History) <history-add-new-input>:
+ Reword variable's description.
+
+2006-06-01 Richard Stallman <rms@gnu.org>
+
+ * windows.texi (Splitting Windows): Clarify splitting nonselected
+ window.
+
+2006-05-31 Juri Linkov <juri@jurta.org>
+
+ * minibuf.texi (Minibuffer History): Add history-add-new-input.
+
+2006-05-30 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Line Height): Fix errors in description of
+ default line height and line-height properyty.
+
+ * nonascii.texi (Default Coding Systems): Further clarification.
+
+2006-05-29 Luc Teirlinck <teirllm@auburn.edu>
+
+ * internals.texi (Pure Storage): Mention that an overflow in pure
+ space causes a memory leak.
+ (Garbage Collection): If there was an overflow in pure space,
+ `garbage-collect' returns nil.
+
+2006-05-30 Eli Zaretskii <eliz@gnu.org>
+
+ * nonascii.texi (Default Coding Systems): Fix it some more.
+
+2006-05-29 Eli Zaretskii <eliz@gnu.org>
+
+ * nonascii.texi (Default Coding Systems): Fix last change.
+
+2006-05-29 Kenichi Handa <handa@m17n.org>
+
+ * nonascii.texi (find-operation-coding-system): Describe the new
+ argument format (FILENAME . BUFFER).
+
+2006-05-28 Richard Stallman <rms@gnu.org>
+
+ * tips.texi (Coding Conventions): Better explain reasons not to
+ advise other packages or use `eval-after-load'.
+
+2006-05-29 Kim F. Storm <storm@cua.dk>
+
+ * processes.texi (Bindat Functions): Rename `pos' and `raw-data' to
+ `bindat-idx' and `bindat-raw' for clarity.
+
+2006-05-27 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * processes.texi (Bindat Spec): Expand on `repeat' handler.
+
+ * display.texi (Display): Add "Abstract Display" to menu.
+ (Abstract Display, Abstract Display Functions)
+ (Abstract Display Example): New nodes.
+ * elisp.texi (Top): Add "Abstract Display" to menu.
+
+2006-05-27 Chong Yidong <cyd@stupidchicken.com>
+
+ * keymaps.texi (Key Sequences): Link to input events definition.
+ (Format of Keymaps): Delete material duplicated in Keymap Basics.
+
+ * files.texi (Changing Files): Document updated argument list for
+ copy-file.
+
+2006-05-27 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * processes.texi (Bindat Functions): Explain term "total length".
+ Use it in bindat-length and bindat-pack descriptions.
+
+2006-05-26 Eli Zaretskii <eliz@gnu.org>
+
+ * tips.texi (Coding Conventions): Advise against using
+ eval-after-load in packages. Add an index entry.
+
+2006-05-25 Juri Linkov <juri@jurta.org>
+
+ * minibuf.texi (Text from Minibuffer): Undocument keep-all.
+
+ * modes.texi (%-Constructs): Add %e, %z, %Z.
+
+2006-05-25 Richard Stallman <rms@gnu.org>
+
+ * elisp.texi (Top): Update subnode menu.
+
+ * keymaps.texi (Keymap Basics): New node, split out of Key Sequences.
+ (Keymaps): Update menu.
+
+2006-05-25 Chong Yidong <cyd@stupidchicken.com>
+
+ * keymaps.texi (Key Sequences): Some clarifications.
+
+2006-05-25 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * processes.texi (Bindat Functions): Say "unibyte string"
+ explicitly for bindat-unpack and bindat-pack descriptions.
+ (Bindat Examples): Don't call `string-make-unibyte' in example.
+
+2006-05-25 Chong Yidong <cyd@stupidchicken.com>
+
+ * keymaps.texi (Key Sequences): Renamed from Keymap Terminology.
+ Explain string and vector representations of key sequences
+
+ * keymaps.texi (Changing Key Bindings):
+ * commands.texi (Interactive Codes):
+ * help.texi (Describing Characters): Refer to it.
+
+2006-05-23 Luc Teirlinck <teirllm@auburn.edu>
+
+ * frames.texi (Pointer Shape): @end table -> @end defvar.
+
+2006-05-22 Richard Stallman <rms@gnu.org>
+
+ * elisp.texi (Top): Update subnode menus.
+
+ * frames.texi (Pointer Shape): Node renamed from Pointer Shapes.
+ Contents rewritten; material from old Pointer Shape node moved here.
+
+ * display.texi (Pointer Shape): Node deleted.
+ (Image Descriptors): Minor cleanup.
+
+2006-05-21 Richard Stallman <rms@gnu.org>
+
+ * syntax.texi (Parsing Expressions): Update info on which STATE
+ elements are ignored.
+
+2006-05-19 Luc Teirlinck <teirllm@auburn.edu>
+
+ * hooks.texi (Standard Hooks): Correct typo.
+
+ * gpl.texi (GPL): ifinfo -> ifnottex.
+
+2006-05-19 Michael Ernst <mernst@alum.mit.edu> (tiny change)
+
+ * searching.texi (Simple Match Data): Warn about match data being
+ set anew by every search.
+
+2006-05-17 Richard Stallman <rms@gnu.org>
+
+ * minibuf.texi (Minibuffer History): Clarify.
+
+ * searching.texi (Regexp Special): Clarify nested regexp warning.
+
+2006-05-16 Kim F. Storm <storm@cua.dk>
+
+ * minibuf.texi (Minibuffer History): Update add-to-history.
+
+2006-05-15 Oliver Scholz <epameinondas@gmx.de> (tiny change)
+
+ * nonascii.texi (Explicit Encoding): Fix
+ typo (encoding<->decoding).
+
+2006-05-14 Richard Stallman <rms@gnu.org>
+
+ * buffers.texi (Creating Buffers): Cleanup.
+
+ * files.texi (Visiting Functions): Rewrite in find-file-noselect.
+
+2006-05-13 Eli Zaretskii <eliz@gnu.org>
+
+ * buffers.texi (Current Buffer): Document that with-temp-buffer
+ disables undo.
+
+ * os.texi (Terminal-Specific): More accurate description of how
+ Emacs searches for the terminal-specific libraries.
+
+2006-05-12 Eli Zaretskii <eliz@gnu.org>
+
+ * hooks.texi (Standard Hooks) [iftex]: Convert @xref's to
+ emacs-xtra to @inforef's.
+
+ * text.texi (Undo): Document that undo is turned off in buffers
+ whose names begin with a space.
+
+ * buffers.texi (Buffer Names): Add index entries for buffers whose
+ names begin with a space.
+ (Creating Buffers): Document that undo is turned off in buffers
+ whose names begin with a space.
+
+ * files.texi (Visiting Functions, Reading from Files)
+ (Saving Buffers): Mention code and EOL conversions by file I/O
+ primitives and subroutines.
+
+ * nonascii.texi (Lisp and Coding Systems): Document
+ coding-system-eol-type. Add index entries for eol conversion.
+
+ * display.texi (Defining Faces): Mention `mac', and add an xref to
+ where window-system is described.
+
+2006-05-10 Richard Stallman <rms@gnu.org>
+
+ * internals.texi (Writing Emacs Primitives): Clarify GCPRO rules.
+
+2006-05-10 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * variables.texi (File Local Variables): Recommend to quote lambda
+ expressions in safe-local-variable property.
+
+2006-05-09 Richard Stallman <rms@gnu.org>
+
+ * variables.texi (File Local Variables): Document
+ safe-local-eval-forms and safe-local-eval-function.
+
+2006-05-07 Kim F. Storm <storm@cua.dk>
+
+ * minibuf.texi (Minibuffer History): Remove keep-dups arg
+ from add-to-history.
+
+2006-05-07 Romain Francoise <romain@orebokech.com>
+
+ * commands.texi (Event Input Misc):
+ * compile.texi (Eval During Compile):
+ * internals.texi (Buffer Internals):
+ * minibuf.texi (Initial Input):
+ * nonascii.texi (Scanning Charsets):
+ * numbers.texi (Comparison of Numbers):
+ * windows.texi (Textual Scrolling, Vertical Scrolling):
+ Fix various typos.
+
+2006-05-06 Eli Zaretskii <eliz@gnu.org>
+
+ * hooks.texi (Standard Hooks): Replace inforef to emacs-xtra by
+ conditional xref's to either emacs or emacs-xtra, depending on
+ @iftex/@ifnottex.
+
+ * minibuf.texi (Minibuffer History): Document add-to-history.
+
+2006-05-05 Eli Zaretskii <eliz@gnu.org>
+
+ * internals.texi (Pure Storage): Mention the pure overflow message
+ at startup.
+
+2006-05-05 Johan Bockg\e,Ae\e(Brd <bojohan@dd.chalmers.se>
+
+ * keymaps.texi (Active Keymaps): Fix pseudo-Lisp syntax.
+ (Searching Keymaps): Fix pseudo-Lisp description of keymap
+ search.
+
+2006-05-01 Richard Stallman <rms@gnu.org>
+
+ * intro.texi (nil and t): Clarify.
+
+ * variables.texi (File Local Variables): Suggest using booleanp.
+
+2006-05-01 Juanma Barranquero <lekktu@gmail.com>
+
+ * objects.texi (Type Predicates): Fix typos.
+
+2006-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * intro.texi (nil and t): Add booleanp.
+
+ * objects.texi (Type Predicates): Add links for booleanp and
+ string-or-null-p.
+
+2006-04-29 Richard Stallman <rms@gnu.org>
+
+ * modes.texi (Multiline Font Lock): Rename from
+ Multi line Font Lock Elements. Much clarification.
+ (Font Lock Multiline, Region to Fontify): Much clarification.
+
+2006-04-29 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * variables.texi (File Local Variables): Remove the special case t for
+ safe-local-variable.
+
+2006-04-26 Richard Stallman <rms@gnu.org>
+
+ * syntax.texi (Parsing Expressions): Minor cleanup.
+
+2006-04-18 Richard Stallman <rms@gnu.org>
+
+ * tips.texi (Coding Conventions): Explain when the package's
+ prefix should appear later on (not at the start of the name).
+
+ * searching.texi (String Search): Clarify effect of NOERROR.
+
+ * modes.texi (Imenu): Clarify what special items do.
+
+ * hooks.texi (Standard Hooks): Delete text about old hook names.
+
+2006-04-17 Romain Francoise <romain@orebokech.com>
+
+ * variables.texi (Local Variables): Update the default value of
+ `max-specpdl-size'.
+
+2006-04-15 Michael Olson <mwolson@gnu.org>
+
+ * processes.texi (Transaction Queues): Mention the new optional
+ `delay-question' argument for `tq-enqueue'.
+
+2006-04-13 Bill Wohler <wohler@newt.com>
+
+ * customize.texi (Common Keywords): Use dotted notation for
+ :package-version value. Specify its values. Improve documentation
+ for customize-package-emacs-version-alist.
+
+2006-04-12 Bill Wohler <wohler@newt.com>
+
+ * customize.texi (Common Keywords): Move description of
+ customize-package-emacs-version-alist to @defvar.
+
+2006-04-10 Bill Wohler <wohler@newt.com>
+
+ * customize.texi (Common Keywords): Add :package-version.
+
+2006-04-10 Kim F. Storm <storm@cua.dk>
+
+ * text.texi (Buffer Contents): Add NOPROPS arg to
+ filter-buffer-substring.
+
+2006-04-08 Kevin Ryde <user42@zip.com.au>
+
+ * os.texi (Command-Line Arguments): Update xref to emacs manual
+ "Command Arguments" -> "Emacs Invocation", per change there.
+
+2006-04-08 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * display.texi (Other Display Specs): Arrange a @code{DOTTED-LIST} to
+ be on one line to help makeinfo not render two spaces after the dot.
+
+2006-04-07 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * strings.texi (Predicates for Strings): Add string-or-null-p.
+
+2006-03-28 Kim F. Storm <storm@cua.dk>
+
+ * processes.texi (Accepting Output): Remove obsolete (and incorrect)
+ remarks about systems that don't support fractional seconds.
+
+2006-03-25 Karl Berry <karl@gnu.org>
+
+ * elisp.texi: Use @copyright{} instead of (C), and do not indent
+ the year list.
+
+2006-03-21 Nick Roberts <nickrob@snap.net.nz>
+
+ * display.texi (Fringe Indicators): Fix typos.
+
+2006-03-19 Luc Teirlinck <teirllm@auburn.edu>
+
+ * tips.texi (Documentation Tips): One can now also write `program'
+ in front of a quoted symbol in a docstring to prevent making a
+ hyperlink.
+
+2006-03-19 Alan Mackenzie <acm@muc.de>
+
+ * text.texi (Special Properties): Clarify `fontified' property.
+
+2006-03-16 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Defining Images): Minor cleanup.
+
+2006-03-16 Bill Wohler <wohler@newt.com>
+
+ * display.texi (Defining Images): In image-load-path-for-library,
+ prefer user's images.
+
+2006-03-15 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * modes.texi (Region to Fontify): Remove font-lock-lines-before.
+
+2006-03-15 Bill Wohler <wohler@newt.com>
+
+ * display.texi (Defining Images): Fix example in
+ image-load-path-for-library by not recommending that one binds
+ image-load-path. Just defvar it to placate compiler and only use
+ it if previously defined.
+
+2006-03-14 Bill Wohler <wohler@newt.com>
+
+ * display.texi (Defining Images): In image-load-path-for-library,
+ always return list of directories. Update example.
+
+2006-03-14 Alan Mackenzie <acm@muc.de>
+
+ * modes.texi: New node, "Region to Fontify" (for Font Lock).
+ This describes font-lock-extend-region-function.
+ ("Other Font Lock Variables"): Move "font-lock-lines-before" to
+ the new node "Region to Fontify".
+
+2006-03-13 Richard Stallman <rms@gnu.org>
+
+ * display.texi (Invisible Text): The impossible position is
+ now before the invisible text, not after.
+ (Defining Images): Clean up last change.
+
+2006-03-11 Bill Wohler <wohler@newt.com>
+
+ * display.texi (Defining Images): Add image-load-path-for-library.
+
+2006-03-11 Luc Teirlinck <teirllm@auburn.edu>
+
+ * text.texi (Adaptive Fill): Fix Texinfo usage.
+
+ * strings.texi (Creating Strings): Fix Texinfo usage.
+
+ * searching.texi (Regexp Special): Use @samp for regular
+ expressions that are not in Lisp syntax.
+
+2006-03-08 Luc Teirlinck <teirllm@auburn.edu>
+
+ * searching.texi (Regexp Special): Put remark between parentheses
+ to avoid misreading.
+
+2006-03-07 Luc Teirlinck <teirllm@auburn.edu>
+
+ * searching.texi (Syntax of Regexps): More accurately describe
+ which characters are special in which situations.
+ (Regexp Special): Recommend _not_ to quote `]' or `-' when they
+ are not special. Describe in detail when `[' and `]' are special.
+ (Regexp Backslash): Plenty of regexps with unbalanced square
+ brackets are valid, so reword that statement.
+
+2006-03-02 Kim F. Storm <storm@cua.dk>
+
+ * keymaps.texi (Tool Bar): Add tool-bar-border.
+
+2006-02-28 Luc Teirlinck <teirllm@auburn.edu>
+
+ * loading.texi (Load Suffixes): Rephrase last paragraph. Fix typos.
+
+2006-02-27 Luc Teirlinck <teirllm@auburn.edu>
+
+ * elisp.texi (Top): Include "Load Suffixes" in the detailed menu.
+
+ * files.texi (Locating Files): Suggest additional values for the
+ SUFFIXES arg of `locate-file'. Update pxref.
+
+ * loading.texi (Loading): Include new node "Load Suffixes" in menu.
+ (How Programs Do Loading): Discuss the effects of Auto Compression
+ mode on `load'.
+ (Load Suffixes): New node.
+ (Library Search): Delete description of `load-suffixes'; it was
+ moved to "Load Suffixes".
+ (Autoload, Named Features): Mention `load-suffixes'.
+
+2006-02-21 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change)
+
+ * display.texi (Fringe Indicators, Fringe Cursors): Fix typos.
+
+ * windows.texi (Window Tree): Fix typo.
+
+2006-02-20 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Fringe Indicators): New section.
+ Move indicate-empty-lines, indicate-buffer-boundaries, and
+ default-indicate-buffer-boundaries here.
+ Add fringe-indicator-alist and default-fringes-indicator-alist.
+ Add list of logical fringe indicator symbols.
+ Update list of standard bitmap names.
+ (Fringe Cursors): New section.
+ Move overflow-newline-into-fringe here.
+ Add fringe-cursor-alist and default-fringes-cursor-alist.
+ Add list of fringe cursor symbols.
+
+2006-02-20 Juanma Barranquero <lekktu@gmail.com>
+
+ * commands.texi (Using Interactive): Fix reference to node
+ "Minibuffers".
+
+2006-02-19 Richard M. Stallman <rms@gnu.org>
+
+ * minibuf.texi (High-Level Completion):
+ Add xref to read-input-method-name.
+
+ * files.texi (Relative File Names): Move file-relative-name here.
+ (File Name Expansion): From here. Minor clarifications.
+
+ * commands.texi (Using Interactive): Add xrefs about reading input.
+ Clarify remarks about that moving point and mark.
+ Put string case before list case.
+
+2006-02-16 Johan Bockg\e,Ae\e(Brd <bojohan@dd.chalmers.se>
+
+ * display.texi (Other Display Specs, Image Descriptors):
+ Revert erroneous changes. The previous description of
+ image-descriptors as `(image . PROPS)' was correct.
+
+2006-02-14 Richard M. Stallman <rms@gnu.org>
+
+ * variables.texi (File Local Variables): Clarifications.
+
+2006-02-14 Juanma Barranquero <lekktu@gmail.com>
+
+ * variables.texi (File Local Variables): Use @code for a cons
+ cell, not @var.
+
+2006-02-13 Chong Yidong <cyd@stupidchicken.com>
+
+ * variables.texi (File Local Variables): Document new file local
+ variable behavior.
+
+2006-02-10 Kim F. Storm <storm@cua.dk>
+
+ * eval.texi (Function Indirection): Add NOERROR to indirect-function.
+
+2006-02-08 Juanma Barranquero <lekktu@gmail.com>
+
+ * modes.texi (%-Constructs): Remove obsolete info about
+ `global-mode-string'.
+
+2006-02-07 Richard M. Stallman <rms@gnu.org>
+
+ * commands.texi (Prefix Command Arguments): Minor cleanup.
+
+ * display.texi: "Graphical display", not window system.
+
+ * functions.texi (What Is a Function): Fix xref.
+
+ * keymaps.texi (Key Lookup): Clarify wrt commands vs other functions.
+ (Changing Key Bindings): Clarify when remapping is better than
+ substitute-key-definition.
+
+2006-02-02 Richard M. Stallman <rms@gnu.org>
+
+ * minibuf.texi (Basic Completion): Completion alists are risky.
+
+ * keymaps.texi (Active Keymaps): Clarifications.
+ (Searching Keymaps): New node.
+ (Keymaps): Update menu.
+
+ * frames.texi (Layout Parameters): Minor clarification.
+ (Drag and Drop): New node.
+ (Frames): Update menu.
+
+2006-01-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi (Other Display Specs, Image Descriptors):
+ Image description is a list, not a cons cell.
+
+2006-01-28 Luc Teirlinck <teirllm@auburn.edu>
+
+ * lists.texi (Cons Cells): Minor correction (the cdr of a dotted
+ list is not necessarily a list).
+
+2006-01-27 Eli Zaretskii <eliz@gnu.org>
+
+ * frames.texi (Layout Parameters): border-width and
+ internal-border-width belong to the frame, not the window.
+
+2006-01-19 Richard M. Stallman <rms@gnu.org>
+
+ * nonascii.texi (Translation of Characters): Search cmds use
+ translation-table-for-input. Automatically made local.
+
+ * markers.texi (Overview of Markers): Count insertion type
+ as one of a marker's attributes.
+
+ * keymaps.texi (Controlling Active Maps): New node, split out of
+ Active Keymaps.
+ (Keymaps): Menu updated.
+ (Active Keymaps): Give pseudocode to explain how the active
+ maps are searched. current-active-maps and key-binding moved here.
+ (Functions for Key Lookup): current-active-maps and key-binding moved.
+ Clarifications.
+ (Searching the Keymaps): New subnode.
+
+ * elisp.texi (Top): Menu clarification.
+
+ * display.texi (Other Display Specs): Delete duplicate entry for
+ just a string as display spec. Move text about recursive display
+ specs on such a string.
+
+ * commands.texi (Key Sequence Input): Clarify.
+ Move num-nonmacro-input-events out.
+ (Reading One Event): num-nonmacro-input-events moved here.
+
+2006-01-14 Nick Roberts <nickrob@snap.net.nz>
+
+ * advice.texi (Simple Advice): Update example to fit argument
+ change in previous-line.
+
+2006-01-05 Richard M. Stallman <rms@gnu.org>
+
+ * markers.texi (The Mark): Fix in `mark'.
+
+2006-01-04 Richard M. Stallman <rms@gnu.org>
+
+ * processes.texi (Misc Network, Make Network): Minor cleanups.
+
+2006-01-04 Kim F. Storm <storm@cua.dk>
+
+ * processes.texi (Make Network): Add IPv6 addresses and handling.
+ (Network Feature Testing): Mention (:family ipv6).
+ (Misc Network): Add IPv6 formats to format-network-address.
+
+2005-12-30 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Changing Properties):
+ Don't use return value of set-text-properties.
+
+2005-12-29 Luc Teirlinck <teirllm@auburn.edu>
+
+ * modes.texi (Mode Line Format): Correct typo in menu.
+
+2005-12-29 Richard M. Stallman <rms@gnu.org>
+
+ * modes.texi (Mode Line Top): New node.
+ (Mode Line Data): Some text moved to new node.
+ Explain the data structure more concretely.
+ (Mode Line Basics): Clarifications.
+ (Mode Line Variables): Clarify intro paragraph.
+ (%-Constructs): Clarify intro paragraph.
+ (Mode Line Format): Update menu.
+
+2005-12-28 Luc Teirlinck <teirllm@auburn.edu>
+
+ * minibuf.texi (Basic Completion): Update lazy-completion-table
+ examples for removal of ARGS argument.
+
+2005-12-23 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Undo): Restore some explanation from the version
+ that was deleted.
+
+2005-12-23 Eli Zaretskii <eliz@gnu.org>
+
+ * text.texi (Undo): Remove duplicate descriptions of `apply
+ funname' and `apply delta' elements of the undo list.
+
+2005-12-20 Richard M. Stallman <rms@gnu.org>
+
+ * help.texi (Help Functions): Update documentation of `apropos'.
+
+2005-12-20 Luc Teirlinck <teirllm@auburn.edu>
+
+ * customize.texi (Type Keywords): Delete xref to "Text help-echo",
+ because it is confusing. If the :help-echo keyword is a function,
+ it is not directly used as the :help-echo overlay property, as the
+ xref seems to suggest (it does not take the appropriate args).
+
+2005-12-19 Luc Teirlinck <teirllm@auburn.edu>
+
+ * customize.texi (Common Keywords): Fix Texinfo usage.
+ (Group Definitions, Variable Definitions): Update for new
+ conventions for using `*' in docstrings.
+
+ * tips.texi (Documentation Tips): Update for new conventions for
+ using `*' in docstrings.
+
+2005-12-16 Richard M. Stallman <rms@gnu.org>
+
+ * minibuf.texi (Minibuffer Contents): Minor cleanup.
+
+2005-12-16 Juri Linkov <juri@jurta.org>
+
+ * minibuf.texi (Minibuffer Contents): Add minibuffer-completion-contents.
+
+2005-12-14 Romain Francoise <romain@orebokech.com>
+
+ * modes.texi (Customizing Keywords): Rename `append' to `how'.
+ Fix typo.
+
+2005-12-11 Juri Linkov <juri@jurta.org>
+
+ * minibuf.texi (Completion Commands): Add mention of read-file-name
+ for filename completion keymaps.
+ (Reading File Names): Add mention of filename completion keymaps
+ for read-file-name and xref to `Completion Commands'.
+
+2005-12-10 Richard M. Stallman <rms@gnu.org>
+
+ * customize.texi (Common Keywords): State caveats for use of :tag.
+
+2005-12-08 Richard M. Stallman <rms@gnu.org>
+
+ * minibuf.texi (Intro to Minibuffers): Replace list of local maps
+ with xrefs and better explanation.
+ (Completion Commands): Add the filename completion maps.
+
+ * objects.texi (Character Type): Clarify that \s is not space
+ if a dash follows.
+
+2005-12-05 Richard M. Stallman <rms@gnu.org>
+
+ * windows.texi (Resizing Windows): Delete preserve-before args.
+
+2005-12-05 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keymaps.texi (Format of Keymaps): Remove mention of a quirk
+ in full keymaps, since the quirk has been fixed.
+
+2005-12-03 Eli Zaretskii <eliz@gnu.org>
+
+ * hooks.texi (Standard Hooks): Add index entries. Mention
+ `compilation-finish-functions'.
+
+2005-11-27 Richard M. Stallman <rms@gnu.org>
+
+ * windows.texi (Resizing Windows): Add adjust-window-trailing-edge.
+
+2005-11-21 Juri Linkov <juri@jurta.org>
+
+ * customize.texi (Common Keywords): Update links types
+ custom-manual and url-link. Add link types emacs-library-link,
+ file-link, function-link, variable-link, custom-group-link.
+
+2005-11-20 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi: Revert 2005-11-20 change.
+
+2005-11-20 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * processes.texi (Bindat Functions):
+ Say "third" to refer to zero-based index "2".
+
+2005-11-18 Luc Teirlinck <teirllm@auburn.edu>
+
+ * loading.texi (Library Search): Update the default value of
+ `load-suffixes'.
+
+2005-11-17 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi (Attribute Functions): Mention :ignore-defface.
+
+2005-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * modes.texi (Minor Mode Conventions): Use custom-set-minor-mode.
+ (Minor Mode Conventions): Mention the use of a hook.
+
+2005-11-06 Richard M. Stallman <rms@gnu.org>
+
+ * files.texi (Magic File Names): find-file-name-handler checks the
+ `operations' property of the handler.
+
+2005-11-03 Richard M. Stallman <rms@gnu.org>
+
+ * variables.texi (Frame-Local Variables): Small clarification.
+
+2005-10-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * os.texi (Init File): Document ~/.emacs.d/init.el.
+
+2005-10-29 Richard M. Stallman <rms@gnu.org>
+
+ * internals.texi (Garbage Collection): Document memory-full.
+
+2005-10-28 Bill Wohler <wohler@newt.com>
+
+ * tips.texi (Documentation Tips): Help mode now creates hyperlinks
+ for URLs.
+
+2005-10-28 Richard M. Stallman <rms@gnu.org>
+
+ * minibuf.texi (Completion Commands): Clean up prev change.
+
+2005-10-26 Kevin Ryde <user42@zip.com.au>
+
+ * compile.texi (Eval During Compile): Explain recommended uses
+ of eval-when-compile and eval-and-compile.
+
+2005-10-27 Masatake YAMATO <jet@gyve.org>
+
+ * minibuf.texi (Completion Commands):
+ Write about new optional argument for `display-completion-list'.
+
+2005-10-23 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Overlay Arrow): Clarify about local bindings of
+ overlay-arrow-position.
+
+2005-10-22 Eli Zaretskii <eliz@gnu.org>
+
+ * internals.texi (Building Emacs): Fix last change.
+
+2005-10-22 Richard M. Stallman <rms@gnu.org>
+
+ * internals.texi (Building Emacs): Document eval-at-startup.
+
+2005-10-21 Richard M. Stallman <rms@gnu.org>
+
+ * loading.texi (Where Defined): load-history contains abs file names.
+ symbol-file returns abs file names.
+
+2005-10-19 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Showing Images): Add max-image-size integer value.
+
+2005-10-18 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi (Showing Images): Document max-image-size.
+
+2005-10-17 Richard M. Stallman <rms@gnu.org>
+
+ * commands.texi (Quitting): Minor clarification.
+
+ * processes.texi (Sentinels): Clarify about output and quitting.
+ (Filter Functions): Mention with-local-quit.
+
+2005-10-17 Juri Linkov <juri@jurta.org>
+
+ * buffers.texi (Current Buffer):
+ * commands.texi (Event Input Misc):
+ * compile.texi (Eval During Compile, Compiler Errors):
+ * customize.texi (Group Definitions):
+ * display.texi (Progress, Defining Faces):
+ * files.texi (Writing to Files):
+ * modes.texi (Mode Hooks, Defining Minor Modes):
+ * streams.texi (Output Functions):
+ * syntax.texi (Syntax Table Functions):
+ * text.texi (Change Hooks):
+ Replace `...' with `@dots{}' in `@defmac' and `@defspec'.
+
+ * commands.texi (Quitting): Replace arg `forms' with `body' in
+ `with-local-quit'.
+
+ * positions.texi (Excursions): Replace arg `forms' with `body' in
+ `save-excursion'.
+
+2005-10-08 Kim F. Storm <storm@cua.dk>
+
+ * windows.texi (Window Tree): Rename window-split-tree to window-tree.
+ Rename manual section accordingly.
+
+2005-10-04 Kim F. Storm <storm@cua.dk>
+
+ * windows.texi (Window Split Tree): New section describing
+ new function window-split-tree function.
+
+2005-10-03 Nick Roberts <nickrob@snap.net.nz>
+
+ * display.texi (Fringe Size/Pos): Simplify and add detail.
+
+2005-09-30 Romain Francoise <romain@orebokech.com>
+
+ * minibuf.texi (High-Level Completion): Explain that the prompt
+ given to `read-buffer' should end with a colon and a space.
+ Update usage examples.
+
+2005-09-29 Juri Linkov <juri@jurta.org>
+
+ * display.texi (Displaying Messages): Rename argument name
+ `string' to `format-string' in functions `message', `message-box',
+ `message-or-box'.
+
+2005-09-26 Chong Yidong <cyd@stupidchicken.com>
+
+ * errors.texi (Standard Errors): Correct xrefs.
+
+2005-09-18 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi (Defining Images): Update documentation for
+ `image-load-path'.
+
+2005-09-17 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Defining Images): Clean up previous change.
+
+2005-09-16 Romain Francoise <romain@orebokech.com>
+
+ * elisp.texi: Specify GFDL version 1.2.
+
+ * doclicense.texi (GNU Free Documentation License): Update to
+ version 1.2.
+
+2005-09-15 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi (Defining Images): Document `image-load-path'.
+
+2005-09-15 Richard M. Stallman <rms@gnu.org>
+
+ * objects.texi (Printed Representation): Minor cleanup.
+ (Box Diagrams): Minor fix.
+ (Cons Cell Type): Move (...) index item here.
+ (Box Diagrams): From here.
+ (Array Type): Minor fix.
+ (Type Predicates): Delete index "predicates".
+ (Hash Table Type): Clarify xref.
+ (Dotted Pair Notation): Minor fix.
+
+2005-09-10 Chong Yidong <cyd@stupidchicken.com>
+
+ * files.texi (Saving Buffers): Fix typo.
+
+2005-09-08 Richard M. Stallman <rms@gnu.org>
+
+ * tips.texi (Programming Tips): Correct the "default" prompt spec.
+
+2005-09-08 Chong Yidong <cyd@stupidchicken.com>
+
+ * locals.texi (Standard Buffer-Local Variables): Don't include
+ mode variables for minor modes.
+ Fix xrefs for buffer-display-count, buffer-display-table,
+ buffer-offer-save, buffer-saved-size, cache-long-line-scans,
+ enable-multibyte-characters, fill-column, header-line-format,
+ left-fringe-width, left-margin, and right-fringe-width.
+
+ * hooks.texi (Standard Hooks): All hooks should conform to the
+ standard naming convention now.
+ Fix xref for `echo-area-clear-hook'.
+
+ * display.texi (Usual Display): Note that indicate-empty-lines and
+ tab-width are buffer-local.
+
+ * files.texi (Saving Buffers): Add xref to `Killing Buffers'.
+
+ * modes.texi (Mode Help): Note that major-mode is buffer-local.
+
+ * nonascii.texi (Encoding and I/O): Note that
+ buffer-file-coding-system is buffer-local.
+
+ * positions.texi (List Motion): Note that defun-prompt-regexp is
+ buffer-local.
+
+ * text.texi (Auto Filling): Note that auto-fill-function is
+ buffer-local.
+ (Undo): Note that buffer-undo-list is buffer-local.
+
+ * windows.texi (Buffers and Windows): Document
+ buffer-display-count.
+
+2005-09-06 Richard M. Stallman <rms@gnu.org>
+
+ * tips.texi (Coding Conventions): Sometimes it is ok to put the
+ package prefix elsewhere than at the start of the name.
+
+2005-09-03 Richard M. Stallman <rms@gnu.org>
+
+ * tips.texi (Programming Tips): Add conventions for minibuffer
+ questions and prompts.
+
+2005-09-03 Joshua Varner <jlvarner@gmail.com> (tiny change)
+
+ * intro.texi (nil and t): Minor cleanup.
+ Delete spurious mention of keyword symbols.
+ (Evaluation Notation): Add index entry.
+ (A Sample Function Description): Minor cleanup.
+ (A Sample Variable Description): Not all vars can be set.
+
+2005-09-03 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * text.texi (Buffer Contents): Use "\n" in examples' result strings.
+
+ (Insertion): Document precise type of `insert-char' arg COUNT.
+
+2005-09-02 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * modes.texi (Other Font Lock Variables): Sync the default of
+ font-lock-lines-before.
+
+2005-08-31 Michael Albinus <michael.albinus@gmx.de>
+
+ * files.texi (Magic File Names): Add `make-auto-save-file-name'.
+
+2005-08-29 Richard M. Stallman <rms@gnu.org>
+
+ * elisp.texi (Top): Update subnode menu.
+
+ * searching.texi (Searching and Matching): Move node.
+ Rearrange contents and add overall explanation.
+ (Searching and Case): Move node.
+ (Searching and Matching): Update menu.
+
+2005-08-27 Eli Zaretskii <eliz@gnu.org>
+
+ * os.texi (Startup Summary): Fix the description of the initial
+ startup message display.
+
+2005-08-25 Richard M. Stallman <rms@gnu.org>
+
+ * searching.texi (Search and Replace): Add replace-regexp-in-string.
+
+2005-08-25 Emilio C. Lopes <eclig@gmx.net>
+
+ * display.texi (Finding Overlays): Fix `find-overlay-prop' in
+ `next-overlay-change' example.
+
+2005-08-22 Juri Linkov <juri@jurta.org>
+
+ * display.texi (Attribute Functions): Add set-face-inverse-video-p.
+ Fix invert-face. Fix args of face-background.
+
+ * display.texi (Standard Faces): Delete node.
+ (Faces): Add xref to `(emacs)Standard Faces'.
+ (Displaying Faces): Fix xref to `Standard Faces'.
+
+ * modes.texi (Mode Line Data): Fix xref to Standard Faces.
+
+2005-08-20 Alan Mackenzie <acm@muc.de>
+
+ * buffers.texi (The Buffer List): Clarify the manipulation of the
+ buffer list.
+
+2005-08-14 Richard M. Stallman <rms@gnu.org>
+
+ * modes.texi (Auto Major Mode): interpreter-mode-alist key is not
+ a regexp.
+
+2005-08-11 Richard M. Stallman <rms@gnu.org>
+
+ * elisp.texi (Top): Update subnode lists.
+
+ * display.texi (Inverse Video): Node deleted.
+
+ * tips.texi (Key Binding Conventions, Programming Tips, Warning Tips):
+ New nodes split out of Coding Conventions.
+
+ * searching.texi (Regular Expressions): Document re-builder.
+
+ * os.texi (Time Parsing): New node split out of Time Conversion.
+
+ * processes.texi (Misc Network, Network Feature Testing)
+ (Network Options, Make Network): New nodes split out of
+ Low-Level Network.
+
+2005-08-09 Richard M. Stallman <rms@gnu.org>
+
+ * frames.texi (Geometry): New node, split from Size and Position.
+ (Frame Parameters): Refer to Geometry.
+
+ * buffers.texi (The Buffer List): Fix xrefs.
+
+ * windows.texi (Splitting Windows): Fix xref.
+
+ * frames.texi (Layout Parameters): Add xref.
+
+ * display.texi (Line Height, Scroll Bars): Fix xrefs.
+
+ * keymaps.texi (Menu Bar): Fix xref.
+
+ * locals.texi (Standard Buffer-Local Variables): Fix xref.
+
+ * modes.texi (%-Constructs): Fix xref.
+
+ * frames.texi (Window Frame Parameters): Node split up.
+ (Basic Parameters, Position Parameters, Size Parameters)
+ (Layout Parameters, Buffer Parameters, Management Parameters)
+ (Cursor Parameters, Color Parameters): New subnodes.
+
+2005-08-09 Luc Teirlinck <teirllm@auburn.edu>
+
+ * positions.texi (Screen Lines): Update xref for previous change
+ in minibuf.texi.
+
+ * minibuf.texi (Intro to Minibuffers): Update pxref for previous
+ change in minibuf.texi.
+
+2005-08-09 Richard M. Stallman <rms@gnu.org>
+
+ * tips.texi (Coding Conventions): Minor cleanup.
+
+ * modes.texi (Defining Minor Modes): Explain when init-value
+ can be non-nil.
+
+ * elisp.texi (Top): Update submenu for Minibuffer.
+
+ * minibuf.texi (Minibuffer Misc): Node split up.
+ (Minibuffer Commands, Minibuffer Windows, Minibuffer Contents)
+ (Recursive Mini): New nodes split out from Minibuffer Misc.
+ (Minibuffer Misc): Document max-mini-window-height.
+
+ * hash.texi (Defining Hash): Delete stray paren in example.
+
+ * display.texi (Echo Area Customization): Don't define
+ max-mini-window-height here; xref instead.
+
+ * commands.texi (Event Input Misc): Update while-no-input.
+
+ * advice.texi (Advising Functions): Explain when to use advice
+ and when to use a hook.
+
+2005-07-30 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (info): Don't run install-info.
+ ($(infodir)/dir): New target, produced by running install-info.
+
+2005-07-27 Luc Teirlinck <teirllm@auburn.edu>
+
+ * modes.texi (Defining Minor Modes): The keyword for the initial
+ value is :init-value, not :initial-value.
+
+2005-07-23 Eli Zaretskii <eliz@gnu.org>
+
+ * loading.texi (Autoload): Make the `doctor' example be consistent
+ with what's in current loaddefs.el. Describe the "fn" magic in
+ the usage portion of the doc string.
+
+2005-07-22 Richard M. Stallman <rms@gnu.org>
+
+ * internals.texi (Garbage Collection): Clarify previous change.
+
+2005-07-21 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * internals.texi (Garbage Collection): Add gc-cons-percentage.
+
+2005-07-18 Juri Linkov <juri@jurta.org>
+
+ * commands.texi (Accessing Events):
+ * frames.texi (Text Terminal Colors, Resources):
+ * markers.texi (The Mark):
+ * modes.texi (Defining Minor Modes):
+ Delete duplicate duplicate words.
+
+2005-07-16 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Managing Overlays): Clarify make-overlay
+ args for insertion types.
+
+2005-07-13 Luc Teirlinck <teirllm@auburn.edu>
+
+ * customize.texi (Variable Definitions):
+ Add `custom-initialize-safe-set' and `custom-initialize-safe-default'.
+ `standard-value' is a list too.
+ (Defining New Types): Use @key{RET} instead of @key{ret}.
+
+2005-07-13 Francis Litterio <franl@world.std.com> (tiny change)
+
+ * os.texi (Translating Input): Fix typo.
+
+2005-07-08 Richard M. Stallman <rms@gnu.org>
+
+ * README: Update edition number and size estimate.
+
+ * elisp.texi (VERSION): Set to 2.9.
+
+2005-07-07 Richard M. Stallman <rms@gnu.org>
+
+ * book-spine.texinfo: Update Emacs version.
+
+ * display.texi (Inverse Video): Delete mode-line-inverse-video.
+
+2005-07-06 Richard M. Stallman <rms@gnu.org>
+
+ * searching.texi (Regexp Search): Clarify what re-search-forward
+ does when the search fails.
+
+2005-07-05 Lute Kamstra <lute@gnu.org>
+
+ * Update FSF's address in GPL notices.
+
+ * doclicense.texi (GNU Free Documentation License):
+ * gpl.texi (GPL):
+ * tips.texi (Coding Conventions, Library Headers):
+ * vol1.texi:
+ * vol2.texi: Update FSF's address.
+
+2005-07-04 Richard M. Stallman <rms@gnu.org>
+
+ * hooks.texi (Standard Hooks): Add occur-hook.
+
+2005-07-03 Luc Teirlinck <teirllm@auburn.edu>
+
+ * display.texi (The Echo Area): Correct menu.
+
+2005-07-03 Richard M. Stallman <rms@gnu.org>
+
+ * elisp.texi (Top): Update subnode menu for Display.
+
+ * display.texi (Displaying Messages): New node, with most
+ of what was in The Echo Area.
+ (Progress): Moved under The Echo Area.
+ (Logging Messages): New node with new text.
+ (Echo Area Customization): New node, the rest of what was
+ in The Echo Area. Document message-truncate-lines with @defvar.
+ (Display): Update menu.
+
+ * windows.texi (Textual Scrolling): Doc 3 values for
+ scroll-preserve-screen-position.
+
+ * text.texi (Special Properties): Change hook functions
+ should bind inhibit-modification-hooks around altering buffer text.
+
+ * keymaps.texi (Key Binding Commands): Call binding BINDING
+ rather than DEFINITION.
+
+2005-06-29 Juanma Barranquero <lekktu@gmail.com>
+
+ * variables.texi (Defining Variables): `user-variable-p' returns t
+ for aliases of user options, nil for alias loops.
+
+2005-06-28 Richard M. Stallman <rms@gnu.org>
+
+ * keymaps.texi (Creating Keymaps): Put make-sparse-keymap before
+ make-keymap.
+
+2005-06-27 Luc Teirlinck <teirllm@auburn.edu>
+
+ * variables.texi (Setting Variables): Correct and clarify
+ description of `add-to-ordered-list'.
+
+2005-06-26 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Faces): Minor cleanup.
+
+2005-06-25 Luc Teirlinck <teirllm@auburn.edu>
+
+ * display.texi (Faces): `facep' returns t for strings that are
+ face names.
+
+2005-06-25 Richard M. Stallman <rms@gnu.org>
+
+ * objects.texi (Equality Predicates): Clarify meaning of equal.
+
+ * windows.texi (Selecting Windows): save-selected-window
+ and with-selected-window save and restore the current buffer.
+
+2005-06-24 Richard M. Stallman <rms@gnu.org>
+
+ * numbers.texi (Float Basics): Explain how to test for NaN,
+ and printing the sign of NaNs.
+
+2005-06-24 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (MAKEINFO): Use --force.
+
+2005-06-23 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Face Functions): Correct Texinfo usage.
+
+2005-06-23 Luc Teirlinck <teirllm@auburn.edu>
+
+ * lists.texi (Rings): `ring-elements' now returns the elements of
+ RING in order.
+
+2005-06-23 Juanma Barranquero <lekktu@gmail.com>
+
+ * markers.texi (The Mark): Texinfo usage fix.
+
+2005-06-23 Kim F. Storm <storm@cua.dk>
+
+ * searching.texi (Entire Match Data): Remove evaporate option for
+ match-data. Do not mention evaporate option for set-match-data.
+
+2005-06-22 Glenn Morris <gmorris@ast.cam.ac.uk>
+
+ * display.texi (Face Functions): Mention face aliases.
+
+2005-06-21 Richard M. Stallman <rms@gnu.org>
+
+ * anti.texi (Antinews): Texinfo usage fix.
+
+2005-06-21 Karl Berry <karl@gnu.org>
+
+ * elisp.texi: Use @copying.
+
+ * elisp.texi: Put @summarycontents and @contents before the Top
+ node, instead of the end of the file, so that the contents appear
+ in the right place in the dvi/pdf output.
+
+2005-06-21 Juri Linkov <juri@jurta.org>
+
+ * display.texi (Defining Faces): Add `customized-face'.
+
+2005-06-20 Kim F. Storm <storm@cua.dk>
+
+ * variables.texi (Setting Variables): Any type of element can be
+ given order in add-to-ordered-list. Compare elements with eq.
+
+ * lists.texi (Rearrangement): Sort predicate may just return non-nil.
+
+2005-06-20 Karl Berry <karl@gnu.org>
+
+ * syntax.texi (Syntax Flags): Make last column very slightly wider
+ to avoid "generic comment" breaking on two lines and causing an
+ underfull box.
+
+2005-06-19 Luc Teirlinck <teirllm@auburn.edu>
+
+ * lists.texi (Rings): Various minor clarifications and corrections.
+
+2005-06-18 Richard M. Stallman <rms@gnu.org>
+
+ * functions.texi (Obsolete Functions): Simplify.
+
+ * variables.texi (Variable Aliases): Simplify.
+
+ * anti.texi, backups.texi, compile.texi, customization.texi:
+ * debugging.texi, display.texi, edebug.texi, errors.texi, frames.texi:
+ * functions.texi, help.texi, keymaps.texi, modes.texi, nonascii.texi:
+ * os.texi, processes.texi, searching.texi, strings.texi, text.texi:
+ * variables.texi: Fix formatting ugliness.
+
+ * elisp.texi: Add links to Rings and Byte Packing.
+ Update version and copyright years.
+
+ * minibuf.texi: Fix formatting ugliness.
+ (Completion Commands): Move keymap vars to the end
+ and vars completing-read binds to the top.
+
+2005-06-17 Luc Teirlinck <teirllm@auburn.edu>
+
+ * processes.texi: Fix typos.
+ (Bindat Spec): Correct Texinfo error.
+ (Byte Packing): Fix ungrammatical sentence.
+
+2005-06-17 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * lists.texi (Rings): New node.
+ (Lists): Add it to menu.
+
+ * processes.texi (Byte Packing): New node.
+ (Processes): Add it to menu.
+
+2005-06-17 Richard M. Stallman <rms@gnu.org>
+
+ * syntax.texi (Parsing Expressions): Fix texinfo usage.
+
+ * help.texi (Documentation Basics): Explain the xref to
+ Documentation Tips.
+
+ * debugging.texi (Debugger Commands): Minor fix.
+
+2005-06-16 Luc Teirlinck <teirllm@auburn.edu>
+
+ * edebug.texi (Instrumenting): Eliminate duplicate link.
+ (Specification List): Replace references to "below", referring to
+ a later node, with one @ref to that node.
+
+ * os.texi (Timers): Timers should save and restore the match data
+ if they change it.
+
+ * debugging.texi (Debugger Commands): Mention that the Lisp
+ debugger can not step through primitive functions.
+
+2005-06-16 Juanma Barranquero <lekktu@gmail.com>
+
+ * functions.texi (Obsolete Functions): Update argument names of
+ `make-obsolete' and `define-obsolete-function-alias'.
+
+ * variables.texi (Variable Aliases): Update argument names of
+ `defvaralias', `make-obsolete-variable' and
+ `define-obsolete-variable-alias'.
+
+2005-06-15 Kim F. Storm <storm@cua.dk>
+
+ * searching.texi (Entire Match Data): Rephrase warnings about
+ evaporate arg to match-data and set-match-data.
+
+2005-06-14 Luc Teirlinck <teirllm@auburn.edu>
+
+ * elisp.texi (Top): Update detailed menu.
+
+ * edebug.texi (Edebug): Update menu.
+ (Instrumenting): Update xrefs.
+ (Edebug Execution Modes): Correct xref.
+ (Jumping): Clarify description of `h' command.
+ Eliminate redundant @ref.
+ (Breaks): New node.
+ (Breakpoints): Is now a subsubsection.
+ (Global Break Condition): Mention `C-x X X'.
+ (Edebug Views): Clarify `v' and `p'. Mention `C-x X w'.
+ (Trace Buffer): Clarify STRING arg of `edebug-tracing'.
+ (Edebug Display Update): Correct pxref.
+ (Edebug and Macros): New node.
+ (Instrumenting Macro Calls): Is now a subsubsection.
+ Neither arg of `def-edebug-spec' is evaluated.
+ (Instrumenting Macro Calls): Mention `edebug-eval-macro-args'.
+ (Specification Examples): Fix typo.
+
+2005-06-14 Lute Kamstra <lute@gnu.org>
+
+ * debugging.texi (Function Debugging): Primitives can break on
+ entry too.
+
+2005-06-14 Kim F. Storm <storm@cua.dk>
+
+ * variables.texi (Setting Variables): Add add-to-ordered-list.
+
+2005-06-13 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * syntax.texi (Parsing Expressions): Document aux functions and vars of
+ syntax-ppss: syntax-ppss-flush-cache and syntax-begin-function.
+
+2005-06-13 Lute Kamstra <lute@gnu.org>
+
+ * text.texi (Special Properties): Fix cross reference.
+
+2005-06-11 Luc Teirlinck <teirllm@auburn.edu>
+
+ * debugging.texi (Function Debugging): Delete mention of empty
+ string argument to `cancel-debug-on-entry'. Delete inaccurate
+ description of the return value of that command.
+
+2005-06-11 Alan Mackenzie <acm@muc.de>
+
+ * text.texi (Adaptive Fill): Amplify the description of
+ fill-context-prefix.
+
+2005-06-10 Luc Teirlinck <teirllm@auburn.edu>
+
+ * syntax.texi (Parsing Expressions): Fix Texinfo error.
+
+2005-06-10 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * syntax.texi (Parsing Expressions): Document syntax-ppss.
+
+2005-06-10 Luc Teirlinck <teirllm@auburn.edu>
+
+ * debugging.texi (Error Debugging): Minor rewording.
+ (Function Debugging): FUNCTION-NAME arg to `cancel-debug-on-entry'
+ is optional.
+
+2005-06-10 Lute Kamstra <lute@gnu.org>
+
+ * elisp.texi: Use EMACSVER to refer to the current version of Emacs.
+ (Top): Give it a title. Correct version number. Give the
+ detailed node listing a more prominent header.
+ * intro.texi: Don't set VERSION here a second time.
+ Mention Emacs's version too.
+ * anti.texi (Antinews): Use EMACSVER to refer to the current
+ version of Emacs.
+
+2005-06-09 Kim F. Storm <storm@cua.dk>
+
+ * searching.texi (Entire Match Data): Explain new `reseat' argument to
+ match-data and set-match-data.
+
+2005-06-08 Richard M. Stallman <rms@gnu.org>
+
+ * searching.texi (Entire Match Data): Clarify when match-data
+ returns markers and when integers.
+
+ * display.texi (Defining Faces): Explain that face name should not
+ end in `-face'.
+
+ * modes.texi (Mode Line Data): Minor cleanup.
+ (Customizing Keywords): Node split out of Search-based Fontification.
+ Add example of using font-lock-add-keywords from a hook.
+ Clarify when MODE should be non-nil, and when nil.
+
+2005-06-06 Richard M. Stallman <rms@gnu.org>
+
+ * modes.texi (Mode Line Data): Explain what happens when the car
+ of a list is a void symbol.
+ (Search-based Fontification): Explain MODE arg to
+ font-lock-add-keywords and warn about calls from major modes.
+
+2005-06-08 Juri Linkov <juri@jurta.org>
+
+ * display.texi (Standard Faces): Add `shadow' face.
+
+2005-05-29 Luc Teirlinck <teirllm@auburn.edu>
+
+ * modes.texi (Major Mode Conventions): A derived mode only needs
+ to put the call to the parent mode inside `delay-mode-hooks'.
+
+2005-05-29 Richard M. Stallman <rms@gnu.org>
+
+ * modes.texi (Mode Hooks): Explain that after-change-major-mode-hook is
+ new, and what that implies. Clarify.
+
+ * files.texi (Locating Files): Clean up the text.
+
+ * frames.texi (Window Frame Parameters): Document user-size.
+ Shorten entry for top by referring to left.
+
+2005-05-26 Richard M. Stallman <rms@gnu.org>
+
+ * modes.texi (Mode Hooks): Explain that after-change-major-mode-hook
+ is new, and what the implications are. Other clarifications.
+
+2005-05-24 Richard M. Stallman <rms@gnu.org>
+
+ * frames.texi (Dialog Boxes): Minor fixes.
+
+2005-05-25 Masatake YAMATO <jet@gyve.org>
+
+ * display.texi (Standard Faces): Write about `mode-line-highlight'.
+
+2005-05-24 Luc Teirlinck <teirllm@auburn.edu>
+
+ * frames.texi (Dialog Boxes): HEADER argument to `x-popup-dialog'
+ is optional.
+
+2005-05-24 Nick Roberts <nickrob@snap.net.nz>
+
+ * frames.texi (Dialog Boxes): Descibe new optional argument.
+
+2005-05-23 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Font Lock Basics, Syntactic Font Lock): Recommend
+ syntax-begin-function over font-lock-beginning-of-syntax-function.
+
+2005-05-21 Luc Teirlinck <teirllm@auburn.edu>
+
+ * minibuf.texi (Reading File Names): Update description of
+ `read-directory-name'.
+
+ * modes.texi (Derived Modes): Clarify :group keyword.
+
+2005-05-21 Eli Zaretskii <eliz@gnu.org>
+
+ * files.texi (Locating Files): New subsection.
+ Describe locate-file and executable-find.
+
+2005-05-21 Kevin Ryde <user42@zip.com.au>
+
+ * frames.texi (Initial Parameters): Update cross reference to
+ "Emacs Invocation".
+
+2005-05-19 Luc Teirlinck <teirllm@auburn.edu>
+
+ * keymaps.texi (Active Keymaps): Add anchor.
+
+ * modes.texi (Hooks): Delete confusing and unnecessary sentence.
+ (Major Mode Conventions): Refer to `Auto Major Mode' in more
+ appropriate place.
+ (Derived Modes): Small clarifications.
+ (Minor Mode Conventions, Keymaps and Minor Modes):
+ Replace references to nodes with references to anchors.
+ (Mode Line Data): Warn that `(:eval FORM)' should not load any files.
+ Clarify description of lists whose first element is an integer.
+ (Mode Line Variables): Add anchor.
+ (%-Constructs): Clarify description of integer after %.
+ (Emulating Mode Line): Describe nil value for FACE.
+
+2005-05-18 Luc Teirlinck <teirllm@auburn.edu>
+
+ * modes.texi (Derived Modes): Correct references to non-existing
+ variable standard-syntax-table.
+
+2005-05-17 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Defining Minor Modes): Mention the mode hook.
+
+2005-05-15 Kim F. Storm <storm@cua.dk>
+
+ * processes.texi (Network): Remove open-network-stream-nowait.
+ (Network Servers): Remove open-network-stream-server.
+
+2005-05-15 Luc Teirlinck <teirllm@auburn.edu>
+
+ * elisp.texi (Top): Update detailed menu.
+
+ * variables.texi: Reorder nodes.
+ (Variables): Update menu.
+ (File Local Variables): Do not refer to the `-*-' line as
+ a "local variables list". Add pxref.
+
+2005-05-14 Luc Teirlinck <teirllm@auburn.edu>
+
+ * elisp.texi (Top): Update detailed menu for node changes.
+
+ * modes.texi (Modes): Update Menu.
+ (Hooks): Move to beginning of chapter.
+ Most minor modes run mode hooks too.
+ `add-hook' can handle void hooks or hooks whose value is a single
+ function.
+ (Major Modes): Update Menu.
+ (Major Mode Basics): New node, split off from `Major Modes'.
+ (Major Mode Conventions): Correct xref. Explain how to handle
+ auto-mode-alist if the major mode command has an autoload cookie.
+ (Auto Major Mode): Major update. Add magic-mode-alist.
+ (Derived Modes): Major update.
+ (Mode Line Format): Update Menu.
+ (Mode Line Basics): New node, split off from `Mode Line Format'.
+
+ * loading.texi (Autoload): Mention `autoload cookie' as synonym
+ for `magic autoload comment'. Add index entries and anchor.
+
+2005-05-14 Richard M. Stallman <rms@gnu.org>
+
+ * tips.texi (Coding Conventions): Explain how important it is
+ that just loading certain files not change Emacs behavior.
+
+ * modes.texi (Defining Minor Modes): Define define-global-minor-mode.
+
+2005-05-12 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Generic Modes): Update.
+ (Major Modes): Refer to node "Generic Modes".
+
+ * elisp.texi (Top): Update to the current structure of the manual.
+ * processes.texi (Processes): Add menu description.
+ * customize.texi (Customization): Add menu descriptions.
+
+2005-05-11 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * processes.texi (Signals to Processes)
+ (Low-Level Network): Fix typos.
+
+2005-05-11 Lute Kamstra <lute@gnu.org>
+
+ * elisp.texi (Top): Add some nodes from the chapter "Major and
+ Minor Modes" to the detailed node listing.
+
+2005-05-10 Richard M. Stallman <rms@gnu.org>
+
+ * keymaps.texi (Extended Menu Items): Menu item filter functions
+ can be called at any time.
+
+2005-05-08 Luc Teirlinck <teirllm@auburn.edu>
+
+ * variables.texi (File Local Variables): `(hack-local-variables t)'
+ now also checks whether a mode is specified in the local variables
+ list.
+
+2005-05-05 Kevin Ryde <user42@zip.com.au>
+
+ * display.texi (The Echo Area): Correct format function cross
+ reference.
+
+2005-05-05 Luc Teirlinck <teirllm@auburn.edu>
+
+ * variables.texi (Variable Aliases): Change description of
+ `define-obsolete-variable-alias'.
+
+ * functions.texi (Functions): Add "Obsolete Functions" to menu.
+ (Defining Functions): Add xref.
+ (Obsolete Functions): New node.
+ (Function Safety): Standardize capitalization of section title.
+
+ * frames.texi (Pop-Up Menus): Complete description of `x-popup-menu'.
+ (Dialog Boxes): Complete description of `x-popup-dialog'.
+
+2005-05-04 Richard M. Stallman <rms@gnu.org>
+
+ * commands.texi (Interactive Codes): Fix Texinfo usage.
+ Document U more clearly.
+
+2005-05-01 Luc Teirlinck <teirllm@auburn.edu>
+
+ * variables.texi (Variable Aliases): `make-obsolete-variable' is a
+ function and not a macro.
+
+ * frames.texi (Pop-Up Menus): Correct and clarify description of
+ `x-popup-menu'.
+ (Dialog Boxes): Clarify description of `x-popup-dialog'.
+
+2005-05-01 Richard M. Stallman <rms@gnu.org>
+
+ * edebug.texi (Checking Whether to Stop): Fix previous change.
+
+2005-05-01 Luc Teirlinck <teirllm@auburn.edu>
+
+ * display.texi: Fix typos and Texinfo usage.
+
+ * edebug.texi (Checking Whether to Stop): executing-macro ->
+ executing-kbd-macro.
+
+2005-05-01 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Invisible Text): Correct add-to-invisibility-spec.
+
+2005-04-30 Richard M. Stallman <rms@gnu.org>
+
+ * files.texi (Magic File Names): Document `operations' property.
+
+2005-04-29 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Generic Modes): New node.
+ (Major Modes): Add it to the menu.
+ (Derived Modes): Add "derived mode" to concept index.
+
+2005-04-28 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Defining Minor Modes): Fix previous change.
+ (Font Lock Mode): Simplify.
+ (Font Lock Basics): Say that font-lock-defaults is buffer-local
+ when set and that some parts are optional. Add cross references.
+ (Search-based Fontification): Say how to specify font-lock-keywords.
+ Add cross references. Add font-lock-multiline to index.
+ Move font-lock-keywords-case-fold-search here from node "Other Font
+ Lock Variables". Document font-lock-add-keywords and
+ font-lock-remove-keywords.
+ (Other Font Lock Variables): Move font-lock-keywords-only,
+ font-lock-syntax-table, font-lock-beginning-of-syntax-function,
+ and font-lock-syntactic-face-function to node "Syntactic Font
+ Lock". Move font-lock-keywords-case-fold-search to node
+ "Search-based Fontification". Document font-lock-inhibit-thing-lock
+ and font-lock-{,un}fontify-{buffer,region}-function.
+ (Precalculated Fontification): Remove reference to deleted variable
+ font-lock-core-only.
+ (Faces for Font Lock): Add font-lock-comment-delimiter-face.
+ (Syntactic Font Lock): Add intro. Move font-lock-keywords-only,
+ font-lock-syntax-table, font-lock-beginning-of-syntax-function,
+ and font-lock-syntactic-face-function here from node "Other Font
+ Lock Variables". Move font-lock-syntactic-keywords to "Setting
+ Syntax Properties". Add cross references.
+ (Setting Syntax Properties): New node.
+ Move font-lock-syntactic-keywords here from "Syntactic Font Lock".
+ * syntax.texi (Syntax Properties): Add cross reference.
+ * hooks.texi (Standard Hooks): Add Font-Lock hooks.
+
+2005-04-26 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Defining Faces):
+ Document `default' elements of defface spec.
+
+ * modes.texi (Major Mode Conventions): Explain customizing ElDoc mode.
+
+ * variables.texi (Variable Aliases): Clarify text.
+
+2005-04-25 Chong Yidong <cyd@stupidchicken.com>
+
+ * windows.texi (Window Hooks): Remove reference to obsolete Lazy Lock.
+
+2005-04-25 Luc Teirlinck <teirllm@auburn.edu>
+
+ * hooks.texi (Standard Hooks): Most minor modes have mode hooks too.
+
+2005-04-24 Eli Zaretskii <eliz@gnu.org>
+
+ * syntax.texi (Syntax Table Internals): Elaborate documentation of
+ syntax-after and syntax-class.
+
+ * files.texi (Changing Files): Fix last change's cross-reference.
+ (Unique File Names): Don't mention "numbers" in the documentation
+ of make-temp-file and make-temp-name.
+
+2005-04-23 Richard M. Stallman <rms@gnu.org>
+
+ * files.texi (Changing Files): Document MUSTBENEW arg in copy-file.
+
+2005-04-22 Nick Roberts <nickrob@snap.net.nz>
+
+ * windows.texi (Cyclic Window Ordering): Clarify window-list.
+
+2005-04-22 Nick Roberts <nickrob@snap.net.nz>
+
+ * variables.texi (Variable Aliases): Describe make-obsolete-variable
+ and define-obsolete-variable-alias.
+
+2005-04-22 Kim F. Storm <storm@cua.dk>
+
+ * symbols.texi (Symbol Plists): Remove safe-get, as get is now safe.
+ (Other Plists): Remove safe-plist-get, as plist-get is now safe.
+
+2005-04-21 Lute Kamstra <lute@gnu.org>
+
+ * lists.texi (Association Lists): Document rassq-delete-all.
+
+2005-04-19 Richard M. Stallman <rms@gnu.org>
+
+ * modes.texi (Search-based Fontification): Explain that
+ facespec is an expression to be evaluated.
+
+2005-04-19 Kevin Ryde <user42@zip.com.au>
+
+ * streams.texi (Output Functions): Fix xref.
+ * strings.texi (String Conversion): Fix xref.
+
+2005-04-19 Kim F. Storm <storm@cua.dk>
+
+ * symbols.texi (Symbol Plists): Add safe-get.
+ Mention that `get' may signal an error.
+
+2005-04-18 Nick Roberts <nickrob@snap.net.nz>
+
+ * customize.texi (Variable Definitions): Replace tooltip-mode
+ example with save-place.
+
+2005-04-17 Richard M. Stallman <rms@gnu.org>
+
+ * buffers.texi (Indirect Buffers): Clarify.
+
+ * positions.texi (Positions): Clarify converting marker to integer.
+
+ * strings.texi (String Basics): Mention string-match; clarify.
+
+2005-04-08 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Search-based Fontification): Fix cross references.
+ Use consistent terminology. Document anchored highlighting.
+
+2005-04-05 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Defining Minor Modes): Document :group keyword
+ argument and its default value.
+
+2005-04-03 Lute Kamstra <lute@gnu.org>
+
+ * hooks.texi (Standard Hooks): Add some hooks. Add cross
+ references and/or descriptions. Delete major mode hooks; mention
+ them as a category instead. Rename or delete obsolete hooks.
+
+2005-04-02 Richard M. Stallman <rms@gnu.org>
+
+ * nonascii.texi (Coding System Basics): Another wording cleanup.
+
+2005-04-01 Richard M. Stallman <rms@gnu.org>
+
+ * nonascii.texi (Coding System Basics): Clarify previous change.
+
+2005-04-01 Kenichi Handa <handa@m17n.org>
+
+ * nonascii.texi (Coding System Basics): Describe about rondtrip
+ identity of coding systems.
+
+2005-03-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * text.texi (Buffer Contents): Add filter-buffer-substring and
+ buffer-substring-filters.
+
+2005-03-26 Chong Yidong <cyd@stupidchicken.com>
+
+ * anti.texi (Antinews): Mention `G' interactive code.
+
+ * tips.texi (Compilation Tips): Mention benchmark.el.
+
+2005-03-27 Luc Teirlinck <teirllm@auburn.edu>
+
+ * modes.texi (Other Font Lock Variables): `font-lock-fontify-block'
+ is now bound to M-o M-o.
+
+ * keymaps.texi (Prefix Keys): `facemenu-keymap' is now on M-o.
+
+2005-03-26 Glenn Morris <gmorris@ast.cam.ac.uk>
+
+ * calendar.texi: Delete file (and move contents to emacs-xtra.texi
+ in the Emacs Manual).
+ * Makefile.in (srcs): Remove calendar.texi.
+ * makefile.w32-in (srcs): Remove calendar.texi.
+ * display.texi (Display): Change name of next node.
+ * os.texi (System In): Change name of previous node.
+ * elisp.texi (Top): Remove Calendar references.
+ * vol1.texi (Top): Remove Calendar references.
+ * vol2.texi (Top): Remove Calendar references.
+
+2005-03-25 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Standard Faces, Fringe Bitmaps, Customizing Bitmaps):
+ Cleanup previous change.
+
+2005-03-25 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi (Face Attributes): Faces earlier in an :inherit
+ list take precedence.
+ (Scroll Bars): Fix description of vertical-scroll-bars.
+ Document frame-current-scroll-bars and window-current-scroll-bars.
+
+ * markers.texi (The Mark): Document temporary Transient Mark mode.
+
+ * minibuf.texi (Reading File Names):
+ Document read-file-name-completion-ignore-case.
+
+ * positions.texi (Screen Lines): Document nil for width argument
+ to compute-motion.
+
+2005-03-23 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Standard Faces): Other faces used in the fringe
+ implicitly inherits from the fringe face.
+ (Fringe Bitmaps): FACE in right-fringe and left-fringe display
+ properties implicitly inherits from fringe face.
+ (Customizing Bitmaps): Likewise for set-fringe-bitmap-face.
+
+2005-03-20 Chong Yidong <cyd@stupidchicken.com>
+
+ * display.texi (Invisible Text): State default value of
+ line-move-ignore-invisible.
+ (Managing Overlays): Document remove-overlays.
+ (Standard Faces): Document escape-glyph face.
+
+ * minibuf.texi (Reading File Names): Document read-file-name-function.
+
+ * modes.texi (Other Font Lock Variables):
+ Document font-lock-lines-before.
+
+ * positions.texi (Skipping Characters): skip-chars-forward allows
+ character classes.
+
+2005-03-18 Lute Kamstra <lute@gnu.org>
+
+ * edebug.texi (Instrumenting Macro Calls): Fix another typo.
+
+2005-03-17 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Undo): Document extensible undo entries.
+
+ * searching.texi (String Search, Regexp Search): Cleanups.
+
+ * nonascii.texi (Character Codes): Minor fix.
+
+ * display.texi (Display Property): Explain the significance
+ of having text properties that are eq.
+ (Other Display Specs): Explain string as display spec.
+
+ * commands.texi (Interactive Codes): Document G option.
+
+2005-03-17 Chong Yidong <cyd@stupidchicken.com>
+
+ * text.texi (Filling): Add sentence-end-without-period and
+ sentence-end-without-space.
+ (Changing Properties): Minor fix.
+
+ * anti.texi: Total rewrite.
+
+2005-03-15 Lute Kamstra <lute@gnu.org>
+
+ * edebug.texi (Instrumenting Macro Calls): Fix typos.
+
+2005-03-08 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Specified Space): Property :width is support on
+ non-graphic terminals, :height is not.
+
+2005-03-07 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Overlay Arrow, Fringe Bitmaps, Customizing Bitmaps):
+ Now subnodes of Fringes.
+ (Overlay Arrow): Document overlay-arrow-variable-list.
+ (Fringe Size/Pos): New node, broken out of Fringes.
+ (Display): Explain clearing vs redisplay better.
+ (Truncation): Clarify use of bitmaps.
+ (The Echo Area): Clarify the uses of the echo area.
+ Add max-mini-window-height.
+ (Progress): Clarify.
+ (Invisible Text): Explain that main loop moves point out.
+ (Selective Display): Say "hidden", not "invisible".
+ (Managing Overlays): Move up. Describe relation to Undo here.
+ (Overlay Properties): Clarify intro.
+ (Finding Overlays): Explain return values when nothing found.
+ (Width): truncate-string-to-width has added arg.
+ (Displaying Faces): Clarify and update mode line face handling.
+ (Face Functions): Minor cleanup.
+ (Conditional Display): Merge into Other Display Specs.
+ (Pixel Specification, Other Display Specs): Minor cleanups.
+ (Images, Image Descriptors): Minor cleanups.
+ (GIF Images): Patents have expired.
+ (Showing Images): Explain default text for insert-image.
+ (Manipulating Button Types): Merge into Manipulating Buttons.
+ (Making Buttons): Explain return values.
+ (Button Buffer Commands): Add xref.
+ (Inverse Video): Update mode-line-inverse-video.
+ (Display Table Format): Clarify.
+ (Active Display Table): Give defaults for window-display-table.
+
+ * calendar.texi (Calendar Customizing): calendar-holiday-marker
+ and calendar-today-marker are strings, not chars.
+ (Holiday Customizing): Minor fix.
+
+ * internals.texi (Writing Emacs Primitives): Update `or' example.
+ Update limit on # args of subr.
+
+ * edebug.texi (Using Edebug): Arrow is in fringe.
+ (Instrumenting): Arg to eval-defun works without loading edebug.
+ (Edebug Execution Modes): Add xref.
+
+ * customize.texi (Common Keywords): Clarify :require.
+ Mention :version here.
+ (Variable Definitions, Group Definitions): Not here.
+ (Variable Definitions): Clarify symbol arg to :initialize and :set fns.
+
+2005-03-07 Chong Yidong <cyd@stupidchicken.com>
+ * nonascii.texi (Text Representations): Clarify position-bytes.
+ (Character Sets): Add list-charset-chars.
+ (Scanning Charsets): Add charset-after.
+ (Encoding and I/O): Minor fix.
+
+2005-03-06 Richard M. Stallman <rms@gnu.org>
+
+ * windows.texi (Vertical Scrolling): Get rid of "Emacs 21".
+ (Resizing Windows): Likewise.
+
+ * text.texi (Change Hooks): Get rid of "Emacs 21".
+
+ * strings.texi (Formatting Strings): Get rid of "Emacs 21".
+
+ * streams.texi (Output Variables): Get rid of "Emacs 21".
+
+ * searching.texi (Regexp Special, Char Classes): Get rid of "Emacs 21".
+
+ * os.texi (Translating Input): Replace flow-control example
+ with a less obsolete example that uses `keyboard-translate'.
+
+ * objects.texi (Hash Table Type, Circular Objects):
+ Get rid of "Emacs 21".
+
+ * modes.texi (Mode Line Format): Get rid of "Emacs 21".
+ (Mode Line Data, Properties in Mode, Header Lines): Likewise.
+
+ * minibuf.texi (Minibuffer Misc): Get rid of "Emacs 21".
+
+ * lists.texi (List Elements, Building Lists): Get rid of "Emacs 21".
+
+ * keymaps.texi (Menu Separators, Tool Bar): Get rid of "Emacs 21".
+ (Menu Bar): Fix when menu-bar-update-hook is called.
+
+ * hash.texi (Hash Tables): Get rid of "Emacs 21".
+
+ * frames.texi (Text Terminal Colors): Get rid of "Emacs 21",
+ and make it read better.
+
+ * files.texi (Writing to Files): Get rid of "Emacs 21".
+ (Unique File Names): Likewise.
+
+ * elisp.texi: Update Emacs version to 22.
+
+ * display.texi (Forcing Redisplay): Get rid of "Emacs 21".
+ (Overlay Properties, Face Attributes): Likewise.
+ (Managing Overlays): Fix punctuation.
+ (Attribute Functions): Clarify set-face-font; get rid of
+ info about old Emacs versions.
+ (Auto Faces, Font Lookup, Display Property, Images):
+ Get rid of "Emacs 21".
+
+ * calendar.texi (Calendar Customizing): Get rid of "Emacs 21".
+
+2005-03-05 Richard M. Stallman <rms@gnu.org>
+
+ * debugging.texi (Error Debugging): Remove stack-trace-on-error.
+
+2005-03-04 Lute Kamstra <lute@gnu.org>
+
+ * debugging.texi (Error Debugging): Document stack-trace-on-error.
+
+2005-03-03 Lute Kamstra <lute@gnu.org>
+
+ * edebug.texi (Instrumenting Macro Calls): Fix typo.
+
+2005-03-01 Lute Kamstra <lute@gnu.org>
+
+ * debugging.texi (Debugger Commands): Update `j'.
+
+2005-02-28 Lute Kamstra <lute@gnu.org>
+
+ * debugging.texi (Debugging): Fix typo.
+ (Error Debugging): Document eval-expression-debug-on-error.
+ (Function Debugging): Update example.
+ (Using Debugger): Mention starred stack frames.
+ (Debugger Commands): Document `j' and `l'.
+ (Invoking the Debugger): `d' and `j' exit recursive edit too.
+ Update the messages that the debugger displays.
+ (Internals of Debugger): Add cross reference. Update example.
+ (Excess Open): Minor improvement.
+ (Excess Close): Minor improvement.
+
+2005-02-26 Richard M. Stallman <rms@gnu.org>
+
+ * tips.texi (Coding Conventions): Clarify.
+ Put all the major mode key reservations together.
+ Mention the Mouse-1 => Mouse-2 conventions.
+
+ * syntax.texi (Syntax Class Table): Clarify.
+ (Syntax Table Functions): syntax-after moved from here.
+ (Syntax Table Internals): syntax-after moved to here.
+ (Parsing Expressions): Update info on number of values
+ and what's meaningful in the STATE argument.
+ (Categories): Fix typo.
+
+ * sequences.texi (Arrays): Cleanup.
+ (Char-Tables): Clarify.
+
+ * processes.texi (Deleting Processes): Cleanups, add xref.
+ (Subprocess Creation): Explain nil in exec-path. Cleanup.
+ (Process Information): set-process-coding-system, some args optional.
+ (Input to Processes): Explain various types for PROCESS args.
+ Rename them from PROCESS-NAME to PROCESS.
+ (Signals to Processes): Likewise.
+ (Decoding Output): Cleanup.
+ (Query Before Exit): Clarify.
+
+ * os.texi (Startup Summary): Correct the options; add missing ones.
+ (Terminal Output, Batch Mode): Clarify.
+ (Flow Control): Node deleted.
+
+ * markers.texi (The Mark): Clarify.
+
+ * macros.texi (Expansion): Cleanup.
+ (Indenting Macros): indent-spec allows ints, not floats.
+
+ * keymaps.texi (Keymaps): Clarify.
+ (Format of Keymaps): Update lisp-mode-map example.
+ (Active Keymaps, Key Lookup): Clarify.
+ (Changing Key Bindings): Add xref to `kbd'.
+ (Key Binding Commands, Simple Menu Items): Clarify.
+ (Mouse Menus, Menu Bar): Clarify.
+ (Menu Example): Replace print example with menu-bar-replace-menu.
+
+ * help.texi (Documentation Basics): Add function-documentation prop.
+
+ * elisp.texi (Top): Don't refer to Flow Control node.
+
+ * commands.texi (Command Overview): Improve xrefs.
+ (Adjusting Point): Adjusting point applies to intangible and invis.
+ (Key Sequence Input): Doc extra read-key-sequence args.
+ Likewise for read-key-sequence-vector.
+
+ * backups.texi (Rename or Copy): Minor fix.
+ (Numbered Backups): For version-control, say the default.
+ (Auto-Saving): make-auto-save-file-name example is simplified.
+
+ * advice.texi (Advising Functions): Don't imply one part of Emacs
+ should advise another part. Markup changes.
+ (Defining Advice): Move transitional para.
+ (Activation of Advice): Cleanup.
+ Explain if COMPILE is nil or negative.
+
+ * abbrevs.texi (Abbrev Expansion): Clarify, fix typo.
+
+2005-02-24 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Defining Minor Modes): Explain that INIT-VALUE,
+ LIGHTER, and KEYMAP can be omitted when KEYWORD-ARGS are used.
+
+2005-02-23 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Defining Minor Modes): define-minor-mode can be used
+ to define global minor modes as well.
+
+ * display.texi (Managing Overlays): overlay-buffer returns nil for
+ deleted overlays.
+
+2005-02-22 Kim F. Storm <storm@cua.dk>
+
+ * minibuf.texi (Basic Completion): Allow symbols in addition to
+ strings in try-completion and all-completions.
+
+2005-02-14 Lute Kamstra <lute@gnu.org>
+
+ * elisp.texi (Top): Remove reference to deleted node.
+
+ * lists.texi (Lists): Remove reference to deleted node.
+ (Cons Cells): Fix typo.
+
+ * loading.texi (Where Defined): Fix typo.
+
+2005-02-14 Richard M. Stallman <rms@gnu.org>
+
+ * variables.texi (Creating Buffer-Local): change-major-mode-hook
+ is useful for discarding some minor modes.
+
+ * symbols.texi (Symbol Components): Reorder examples.
+
+ * streams.texi (Input Functions): State standard-input default.
+ (Output Variables): State standard-output default.
+
+ * objects.texi (Printed Representation): Clarify read syntax vs print.
+ (Floating Point Type): Explain meaning better.
+ (Symbol Type): Explain uniqueness better.
+ (Cons Cell Type): Explain empty list sooner. CAR and CDR later.
+ List examples sooner.
+ (Box Diagrams): New subnode broken out.
+ Some examples moved from old Lists as Boxes node.
+ (Dotted Pair Notation): Clarify intro.
+ (Array Type): Clarify.
+ (Type Predicates): Add hash-table-p.
+
+ * numbers.texi (Integer Basics): Clarify radix explanation.
+ (Predicates on Numbers): Minor clarification.
+ (Comparison of Numbers): Minor clarification. Clarify eql.
+ Typos in min, max.
+ (Math Functions): Clarify overflow in expt.
+
+ * minibuf.texi (Text from Minibuffer): Minor clarification.
+ Mention arrow keys.
+
+ * loading.texi (Autoload): defun's doc string overrides autoload's
+ doc string.
+ (Repeated Loading): Modernize "add to list" examples.
+ (Where Defined): Finish updating table of load-history elts.
+
+ * lists.texi (List-related Predicates): Minor wording improvement.
+ (Lists as Boxes): Node deleted.
+ (Building Lists): Explain trivial cases of number-sequence.
+
+ * hash.texi (Hash Tables): Add desc to menu items.
+ (Creating Hash): Expain "full" means "make larger",
+ (Hash Access): Any object can be a key.
+ State value of maphash.
+
+ * functions.texi (What Is a Function): Wording cleanup.
+ (Function Documentation): Minor cleanup.
+ Explain purpose of calling convention at end of doc string.
+ (Function Names): Wording cleanup.
+ (Calling Functions): Wording cleanup.
+ Explain better how funcall calls the function.
+ (Function Cells): Delete example of saving and redefining function.
+
+ * control.texi (Combining Conditions): Wording cleanup.
+ (Iteration): dolist and dotimes bind VAR locally.
+ (Cleanups): Xref to Atomic Changes.
+
+ * compile.texi (Byte Compilation): Delete 19.29 info.
+ (Compilation Functions): Macros' difficulties don't affect defsubst.
+ (Docs and Compilation): Delete 19.29 info.
+
+2005-02-10 Richard M. Stallman <rms@gnu.org>
+
+ * objects.texi (Symbol Type): Minor correction.
+
+2005-02-06 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Example Major Modes): Fix typos.
+
+2005-02-06 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Margins): fill-nobreak-predicate can be one function.
+
+ * strings.texi (Modifying Strings): clear-string can make unibyte.
+ (Formatting Strings): format gives error if values missing.
+
+ * positions.texi (Character Motion): Mention default arg
+ for forward-char. backward-char refers to forward-char.
+ (Word Motion): Mention default arg for forward-word.
+ (Buffer End Motion): Mention default arg for beginning-of-buffer.
+ Simplify end-of-buffer.
+ (Text Lines): Mention default arg for forward-line.
+ (List Motion): Mention default arg for beginning/end-of-defun.
+ (Skipping Characters): Minor fixes in explaining character-set.
+
+ * modes.texi (Major Mode Conventions): Mention "system abbrevs".
+ Mode inheritance applies only when default-major-mode is nil.
+ Clarifications.
+ (Example Major Modes): Update Text mode and Lisp mode examples.
+ (Minor Mode Conventions): Mention define-minor-mode at top.
+ (Defining Minor Modes): In Hungry example, don't define C-M-DEL.
+ (Mode Line Format): Update mode line face display info.
+ (Properties in Mode): Mention effect of risky vars.
+ (Imenu): Define imenu-add-to-menubar.
+ (Font Lock Mode): Add descriptions to menu lines.
+ (Faces for Font Lock): Add font-lock-doc-face.
+
+2005-02-05 Lute Kamstra <lute@gnu.org>
+
+ * text.texi (Maintaining Undo): Remove obsolete function.
+
+2005-02-05 Eli Zaretskii <eliz@gnu.org>
+
+ * frames.texi (Color Names): Add pointer to the X docs about RGB
+ color specifications. Improve indexing
+ (Text Terminal Colors): Replace the description of RGB values by
+ an xref to "Color Names".
+
+2005-02-03 Richard M. Stallman <rms@gnu.org>
+
+ * windows.texi (Basic Windows): Add cursor-in-non-selected-windows.
+ Clarify.
+ (Selecting Windows): Clarify save-selected-window.
+ (Cyclic Window Ordering): Clarify walk-windows.
+ (Window Point): Clarify.
+ (Window Start): Add comment to example.
+ (Resizing Windows): Add `interactive' specs in examples.
+ Document fit-window-to-buffer.
+
+ * text.texi (User-Level Deletion): just-one-space takes numeric arg.
+ (Undo, Maintaining Undo): Clarify last change.
+ (Sorting): In sort-numeric-fields, explain about octal and hex.
+ Mention sort-numeric-base.
+ (Format Properties): Add xref for hard newlines.
+
+ * frames.texi (Window Frame Parameters): Explain pixel=char on tty.
+ (Pop-Up Menus): Fix typo.
+ (Color Names): Explain all types of color names.
+ Explain color-values on B&W terminal.
+ (Text Terminal Colors): Explain "rgb values" are lists. Fix arg names.
+
+ * files.texi (File Locks): Not supported on MS systems.
+ (Testing Accessibility): Clarify.
+
+ * edebug.texi (Printing in Edebug): Fix edebug-print-circle.
+ (Coverage Testing): Fix typo.
+
+ * commands.texi (Misc Events): Remove stray space.
+
+ * buffers.texi (Buffer Names): Clarify generate-new-buffer-name.
+ (Modification Time): Clarify when visited-file-modtime returns 0.
+ (The Buffer List): Clarify bury-buffer.
+ (Killing Buffers): Clarify.
+ (Indirect Buffers): Add clone-indirect-buffer.
+
+2005-02-02 Matt Hodges <MPHodges@member.fsf.org>
+
+ * edebug.texi (Printing in Edebug): Fix default value of
+ edebug-print-circle.
+ (Coverage Testing): Fix displayed frequency count data.
+
+2005-02-02 Luc Teirlinck <teirllm@auburn.edu>
+
+ * text.texi (Maintaining Undo): Add `undo-outer-limit'.
+
+2005-02-02 Kim F. Storm <storm@cua.dk>
+
+ * text.texi (Undo) <buffer-undo-list>: Describe `apply' elements.
+
+2005-01-29 Eli Zaretskii <eliz@gnu.org>
+
+ * commands.texi (Misc Events): Describe the help-echo event.
+
+ * text.texi (Special Properties) <help-echo>: Use `pos'
+ consistently in description of the help-echo property.
+ Use @code{nil} instead of @var{nil}.
+
+ * display.texi (Overlay Properties): Fix the index entry for
+ help-echo overlay property.
+
+ * customize.texi (Type Keywords): Uncomment the xref to the
+ help-echo property documentation.
+
+2005-01-23 Kim F. Storm <storm@cua.dk>
+
+ * windows.texi (Window Start): Fix `pos-visible-in-window-p'
+ return value. Third element FULLY replaced by PARTIAL which
+ specifies number of invisible pixels if row is only partially visible.
+ (Textual Scrolling): Mention auto-window-vscroll.
+ (Vertical Scrolling): New defvar auto-window-vscroll.
+
+2005-01-16 Luc Teirlinck <teirllm@auburn.edu>
+
+ * keymaps.texi (Changing Key Bindings): `suppress-keymap' now uses
+ command remapping.
+
+2005-01-15 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Defining Images): Mention DATA-P arg of create-image.
+
+2005-01-14 Kim F. Storm <storm@cua.dk>
+
+ * commands.texi (Accessing Events): Add WHOLE arg to posn-at-x-y.
+
+ * text.texi (Links and Mouse-1): Fix string and vector item.
+
+2005-01-13 Richard M. Stallman <rms@gnu.org>
+
+ * keymaps.texi (Active Keymaps): Rewrite the text, and update the
+ descriptions of overriding-local-map and overriding-terminal-local-map.
+
+ * text.texi (Links and Mouse-1): Clarify text.
+
+2005-01-13 Kim F. Storm <storm@cua.dk>
+
+ * modes.texi (Emulating Mode Line): Update format-mode-line entry.
+
+2005-01-13 Francis Litterio <franl@world.std.com> (tiny change)
+
+ * keymaps.texi (Active Keymaps): Fix overriding-local-map description.
+
+2005-01-12 Kim F. Storm <storm@cua.dk>
+
+ * text.texi (Links and Mouse-1): Rename section from Enabling
+ Mouse-1 to Following Links. Change xrefs.
+ Add examples for define-button-type and define-widget.
+
+ * display.texi (Button Properties, Button Buffer Commands):
+ Clarify mouse-1 and follow-link functionality.
+
+2005-01-12 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Enabling Mouse-1 to Follow Links): Redo prev. change.
+
+ * display.texi (Beeping): Fix Texinfo usage.
+
+ * modes.texi (Emulating Mode Line): Doc FACE arg in format-header-line.
+
+2005-01-11 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Button Properties, Button Buffer Commands):
+ Mention mouse-1 binding. Add follow-link keyword.
+
+ * text.texi (Text Properties): Add "Enable Mouse-1" to submenu.
+ (Enabling Mouse-1 to Follow Links): New subsection.
+
+2005-01-06 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Special Properties): Minor change.
+
+ * os.texi (Timers): Clarify previous change.
+
+ * modes.texi (Emulating Mode Line): format-mode-line requires 1 arg.
+
+2005-01-01 Luc Teirlinck <teirllm@auburn.edu>
+
+ * display.texi (Face Attributes): Correct xref to renamed node.
+
+2005-01-01 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Face Attributes): Describe hex color specs.
+
+2004-12-31 Richard M. Stallman <rms@gnu.org>
+
+ * os.texi (Timers): Update previous change.
+
+2004-12-30 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Line Height): Total line-height is now specified
+ in line-height property of form (HEIGHT TOTAL). Swap (FACE . RATIO)
+ in cons cells. (nil . RATIO) is relative to actual line height.
+ Use line-height `t' instead of `0' to get minimum height.
+
+2004-12-29 Richard M. Stallman <rms@gnu.org>
+
+ * os.texi (Timers): Discuss timers vs editing the buffer and undo.
+
+2004-12-28 Richard M. Stallman <rms@gnu.org>
+
+ * commands.texi (Quitting): Clarify value of with-local-quit.
+
+ * elisp.texi (Top): Fix previous change.
+
+ * loading.texi (Loading): Fix previous change.
+
+2004-12-27 Richard M. Stallman <rms@gnu.org>
+
+ * Makefile.in (MAKEINFO): Specify --force.
+
+ * buffers.texi (Killing Buffers): Add buffer-save-without-query.
+
+ * modes.texi (Emulating Mode Line): Document format's BUFFER arg.
+
+ * display.texi (Line Height): Further clarify.
+
+ * elisp.texi (Top): Update Loading submenu.
+
+ * loading.texi (Where Defined): New node.
+ (Unloading): load-history moved to Where Defined.
+
+2004-12-21 Richard M. Stallman <rms@gnu.org>
+
+ * commands.texi (Event Input Misc): Add while-no-input.
+
+2004-12-11 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Line Height): Rewrite text for clarity.
+
+2004-12-11 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Display): Add node "Line Height" to menu.
+ (Line Height): New node. Move full description of line-spacing
+ and line-height text properties here from text.texi.
+ (Scroll Bars): Add vertical-scroll-bar variable.
+
+ * frames.texi (Window Frame Parameters): Remove line-height defvar.
+
+ * locals.texi (Standard Buffer-Local Variables): Fix xref for
+ line-spacing and vertical-scroll-bar.
+
+ * text.texi (Special Properties): Just mention line-spacing and
+ line-height here, add xref to new "Line Height" node.
+
+2004-12-09 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * frames.texi (Window Frame Parameters): New @defvar for `line-spacing'.
+
+ * locals.texi (Standard Buffer-Local Variables):
+ Add @xref for `line-spacing'.
+
+2004-12-05 Richard M. Stallman <rms@gnu.org>
+
+ * Makefile.in (maintainer-clean): Remove the info files
+ in $(infodir) where they are created.
+
+2004-12-03 Richard M. Stallman <rms@gnu.org>
+
+ * windows.texi (Selecting Windows): get-lru-window and
+ get-largest-window don't consider dedicated windows.
+
+ * text.texi (Undo): Document undo-in-progress.
+
+2004-11-26 Richard M. Stallman <rms@gnu.org>
+
+ * locals.texi (Standard Buffer-Local Variables): Undo prev change.
+ Remove a few vars that are not always buffer-local.
+
+2004-11-24 Luc Teirlinck <teirllm@auburn.edu>
+
+ * locals.texi (Standard Buffer-Local Variables): Comment out
+ xref's to non-existent node `Yet to be written'.
+
+2004-11-24 Richard M. Stallman <rms@gnu.org>
+
+ * processes.texi (Synchronous Processes): Grammar fix.
+
+ * numbers.texi (Comparison of Numbers): Add eql.
+
+ * locals.texi (Standard Buffer-Local Variables): Add many vars.
+
+ * intro.texi (Printing Notation): Fix previous change.
+
+ * display.texi (Customizing Bitmaps): Move indicate-buffer-boundaries
+ and default-indicate-buffer-boundaries from here.
+ (Usual Display): To here.
+ (Scroll Bars): Add scroll-bar-mode and scroll-bar-width.
+ (Usual Display): Move tab-width up.
+
+ * customize.texi (Variable Definitions): Replace
+ show-paren-mode example with tooltip-mode.
+ (Simple Types, Composite Types, Defining New Types):
+ Minor cleanups.
+
+2004-11-21 Jesper Harder <harder@ifa.au.dk>
+
+ * processes.texi (Synchronous Processes, Output from Processes):
+ Markup fix.
+
+2004-11-20 Richard M. Stallman <rms@gnu.org>
+
+ * positions.texi (Skipping Characters): skip-chars-forward
+ now handles char classes.
+
+ * intro.texi (Printing Notation): Avoid confusion of `print'
+ when explaining @print.
+
+ * macros.texi (Argument Evaluation): Fix 1st `for' expansion example.
+
+ * display.texi (Display Table Format): Minor fix.
+
+ * streams.texi (Output Functions): Fix print example.
+
+ * Makefile.in (elisp): New target.
+ (dist): Depend on $(infodir)/elisp, not elisp.
+ Copy the info files from $(infodir).
+
+ * minibuf.texi (Text from Minibuffer): Document KEEP-ALL arg in
+ read-from-minibuffer.
+
+ * searching.texi (Regexp Search): Rename that to search-spaces-regexp.
+
+2004-11-19 Richard M. Stallman <rms@gnu.org>
+
+ * searching.texi (Regexp Search): Add search-whitespace-regexp.
+
+2004-11-19 CHENG Gao <chenggao@gmail.com> (tiny change)
+
+ * tips.texi (Coding Conventions): Fix typo.
+
+2004-11-16 Richard M. Stallman <rms@gnu.org>
+
+ * tips.texi (Coding Conventions): Separate defvar and require
+ methods to avoid warnings. Use require only when there are many
+ functions and variables from that package.
+
+ * minibuf.texi (Minibuffer Completion): When ignoring case,
+ predicate must not be case-sensitive.
+
+ * debugging.texi (Function Debugging, Explicit Debug): Clarified.
+ (Test Coverage): Don't talk about "splotches". Clarified.
+
+2004-11-16 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * frames.texi (Window Frame Parameters): Fix typo.
+
+2004-11-15 Kim F. Storm <storm@cua.dk>
+
+ * symbols.texi (Other Plists): Note that plist-get may signal error.
+ Add safe-plist-get.
+
+2004-11-15 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * modes.texi (Font Lock Basics): Fix typo.
+
+2004-11-08 Richard M. Stallman <rms@gnu.org>
+
+ * syntax.texi (Syntax Table Functions): Add syntax-after.
+
+2004-11-06 Lars Brinkhoff <lars@nocrew.org>
+
+ * os.texi (Processor Run Time): New section documenting
+ get-internal-run-time.
+
+2004-11-06 Eli Zaretskii <eliz@gnu.org>
+
+ * Makefile.in (install, maintainer-clean): Don't use "elisp-*" as
+ it nukes elisp-cover.texi.
+ (dist): Change elisp-[0-9] to elisp-[1-9], as there could be no
+ elisp-0 etc.
+
+2004-11-05 Luc Teirlinck <teirllm@auburn.edu>
+
+ * commands.texi (Keyboard Macros): Document `append' return value
+ of `defining-kbd-macro'.
+
+2004-11-01 Richard M. Stallman <rms@gnu.org>
+
+ * commands.texi (Interactive Call): Add called-interactively-p.
+
+2004-10-29 Simon Josefsson <jas@extundo.com>
+
+ * minibuf.texi (Reading a Password): Revert.
+
+2004-10-28 Richard M. Stallman <rms@gnu.org>
+
+ * frames.texi (Display Feature Testing): Explain about "vendor".
+
+2004-10-27 Richard M. Stallman <rms@gnu.org>
+
+ * commands.texi (Interactive Codes): `N' uses numeric prefix,
+ not raw. Clarify `n'.
+ (Interactive Call): Rewrite interactive-p, focusing on when
+ and how to use it.
+ (Misc Events): Clarify previous change.
+
+ * advice.texi (Simple Advice): Clarify what job the example does.
+ (Around-Advice): Clarify ad-do-it.
+ (Activation of Advice): An option of ad-default-compilation-action
+ is `never', not `nil'.
+
+2004-10-26 Kim F. Storm <storm@cua.dk>
+
+ * commands.texi (Interactive Codes): Add U code letter.
+
+2004-10-25 Simon Josefsson <jas@extundo.com>
+
+ * minibuf.texi (Reading a Password): Add.
+
+2004-10-24 Jason Rumney <jasonr@gnu.org>
+
+ * commands.texi (Misc Events): Remove mouse-wheel. Add wheel-up
+ and wheel-down.
+
+2004-10-24 Kai Grossjohann <kai.grossjohann@gmx.net>
+
+ * processes.texi (Synchronous Processes): Document process-file.
+
+2004-10-22 Kenichi Handa <handa@m17n.org>
+
+ * text.texi (translate-region): Document that it accepts also a
+ char-table.
+
+2004-10-22 David Ponce <david@dponce.com>
+
+ * windows.texi (Resizing Windows): Document the `preserve-before'
+ argument of the functions `enlarge-window' and `shrink-window'.
+
+2004-10-19 Jason Rumney <jasonr@gnu.org>
+
+ * makefile.w32-in (elisp): Change order of arguments to makeinfo.
+
+2004-10-09 Luc Teirlinck <teirllm@auburn.edu>
+
+ * text.texi (Filling): Add anchor for definition of
+ `sentence-end-double-space'.
+
+ * searching.texi (Regexp Example): Update description of how
+ Emacs currently recognizes the end of a sentence.
+ (Standard Regexps): Update definition of the variable
+ `sentence-end'. Add definition of the function `sentence-end'.
+
+2004-10-08 Paul Pogonyshev <pogonyshev@gmx.net>
+
+ * display.texi (Progress): New node.
+
+2004-10-05 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Fringe Bitmaps): Update fringe-bitmaps-at-pos.
+
+2004-09-29 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Fringe Bitmaps): Use symbols rather than numbers
+ to identify bitmaps. Remove -fringe-bitmap suffix for standard
+ fringe bitmap symbols, as they now have their own namespace.
+ (Customizing Bitmaps) <define-fringe-bitmap>: Clarify bit ordering
+ vs. pixels. Signal error if no free bitmap slots.
+ (Pixel Specification): Change IMAGE to @var{image}.
+
+2004-09-28 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Special Properties): Clarify line-spacing and line-height.
+
+ * searching.texi (Regexp Search): Add looking-back.
+
+2004-09-25 Luc Teirlinck <teirllm@auburn.edu>
+
+ * display.texi: Correct typos.
+ (Image Descriptors): Correct xref's.
+
+2004-09-25 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Special Properties): Cleanups in `cursor'.
+ Rewrites in `line-height' and `line-spacing'; exchange them.
+
+ * display.texi (Fringes): Rewrite previous change.
+ (Fringe Bitmaps): Merge text from Display Fringe Bitmaps. Rewrite.
+ (Display Fringe Bitmaps): Node deleted, text moved.
+ (Customizing Bitmaps): Split off from Fringe Bitmaps. Rewrite.
+ (Scroll Bars): Clarify set-window-scroll-bars.
+ (Pointer Shape): Rewrite.
+ (Specified Space): Clarify :align-to, etc.
+ (Pixel Specification): Use @var. Clarify new text.
+ (Other Display Specs): Clarify `slice'.
+ (Image Descriptors): Cleanups.
+ (Showing Images): Cleanups.
+
+2004-09-24 Luc Teirlinck <teirllm@auburn.edu>
+
+ * hooks.texi (Standard Hooks): Add `after-change-major-mode-hook'.
+
+ * modes.texi: Various minor changes in addition to:
+ (Major Mode Conventions): Final call to `run-mode-hooks' should
+ not be inside the `delay-mode-hooks' form.
+ (Mode Hooks): New node.
+ (Hooks): Delete obsolete example.
+ Move definitions of `run-mode-hooks' and `delay-mode-hooks' to new
+ node "Mode Hooks".
+
+2004-09-22 Luc Teirlinck <teirllm@auburn.edu>
+
+ * display.texi: Correct various typos.
+ (Display): Rename node "Pointer Shapes" to "Pointer
+ Shape". (There is already a node called "Pointer Shapes" in
+ frames.texi.)
+ (Images): Remove non-existent node "Image Slices" from menu.
+
+2004-09-23 Kim F. Storm <storm@cua.dk>
+
+ * text.texi (Special Properties): Add `cursor', `pointer',
+ `line-height', and `line-spacing' properties.
+
+ * display.texi (Display): Add 'Fringe Bitmaps' and 'Pointer
+ Shapes' to menu.
+ (Standard Faces): Doc fix for fringe face.
+ (Fringes): Add `overflow-newline-into-fringe' and
+ 'indicate-buffer-boundaries'.
+ (Fringe Bitmaps, Pointer Shapes): New nodes.
+ (Display Property): Add 'Pixel Specification' and 'Display Fringe
+ Bitmaps' to menu.
+ (Specified Space): Describe pixel width and height.
+ (Pixel Specification): New node.
+ (Other Display Specs): Add `slice' property.
+ (Display Fringe Bitmaps): New node.
+ (Images): Add 'Image Slices' to menu.
+ (Image Descriptors): Add `:pointer' and `:map' properties.
+ (Showing Images): Add slice arg to `insert-image'. Add
+ 'insert-sliced-image'.
+
+2004-09-20 Richard M. Stallman <rms@gnu.org>
+
+ * commands.texi (Key Sequence Input):
+ Clarify downcasing in read-key-sequence.
+
+2004-09-08 Juri Linkov <juri@jurta.org>
+
+ * minibuf.texi (Minibuffer History): Add `history-delete-duplicates'.
+
+2004-09-07 Luc Teirlinck <teirllm@auburn.edu>
+
+ * locals.texi (Standard Buffer-Local Variables): Add
+ `buffer-auto-save-file-format'.
+ * internals.texi (Buffer Internals): Describe new
+ auto_save_file_format field of the buffer structure.
+ * files.texi (Format Conversion): `auto-save-file-format' has been
+ renamed `buffer-auto-save-file-format'.
+
+2004-08-27 Luc Teirlinck <teirllm@auburn.edu>
+
+ * abbrevs.texi (Abbrev Expansion): `abbrev-start-location' can be
+ an integer or a marker.
+ (Abbrev Expansion): Replace example for `pre-abbrev-expand-hook'.
+
+2004-08-22 Richard M. Stallman <rms@gnu.org>
+
+ * modes.texi (Major Mode Conventions): Discuss rebinding of
+ standard key bindings.
+
+2004-08-18 Kim F. Storm <storm@cua.dk>
+
+ * processes.texi (Accepting Output): Add `just-this-one' arg to
+ `accept-process-output'.
+ (Output from Processes): New var `process-adaptive-read-buffering'.
+
+2004-08-10 Luc Teirlinck <teirllm@auburn.edu>
+
+ * keymaps.texi: Various changes in addition to:
+ (Keymap Terminology): `kbd' uses same syntax as Edit Macro mode.
+ Give more varied examples for `kbd'.
+ (Creating Keymaps): Char tables have slots for all characters
+ without modifiers.
+ (Active Keymaps): `overriding-local-map' and
+ `overriding-terminal-local-map' also override text property and
+ overlay keymaps.
+ (Functions for Key Lookup): Mention OLP arg to `current-active-maps'.
+ (Scanning Keymaps): `accessible-keymaps' uses `[]' instead of `""'
+ to denote a prefix of no events.
+ `map-keymap' includes parent's bindings _recursively_.
+ Clarify and correct description of `where-is-internal'.
+ Mention BUFFER-OR-NAME arg to `describe-bindings'.
+ (Menu Example): For menus intended for use with the keyboard, the
+ menu items should be bound to characters or real function keys.
+
+2004-08-08 Luc Teirlinck <teirllm@auburn.edu>
+
+ * objects.texi (Character Type): Reposition `@anchor' to prevent
+ double space inside sentence in Info.
+
+ * hooks.texi (Standard Hooks): `disabled-command-hook' has been
+ renamed to `disabled-command-function'.
+ * commands.texi (Key Sequence Input): Remove unnecessary anchor.
+ (Command Loop Info): Replace reference to it.
+ (Disabling Commands): `disabled-command-hook' has been renamed to
+ `disabled-command-function'.
+
+2004-08-07 Luc Teirlinck <teirllm@auburn.edu>
+
+ * os.texi (Translating Input): Only non-prefix bindings in
+ `key-translation-map' override actual key bindings. Warn about
+ possible indirect effect of actual key bindings on non-prefix
+ bindings in `key-translation-map'.
+
+2004-08-06 Luc Teirlinck <teirllm@auburn.edu>
+
+ * minibuf.texi (High-Level Completion): Add anchor for definition
+ of `read-variable'.
+
+ * commands.texi: Various changes in addition to:
+ (Using Interactive): Clarify description of `interactive-form'.
+ (Interactive Call): Mention default for KEYS argument to
+ `call-interactively'.
+ (Command Loop Info): Clarify description of `this-command-keys'.
+ Mention KEEP-RECORD argument to `clear-this-command-keys'.
+ Value of `last-event-frame' can be `macro'.
+ (Repeat Events): `double-click-fuzz' is also used to distinguish
+ clicks and drags.
+ (Classifying Events): Clarify descriptions of `event-modifiers'
+ `event-basic-type' and `event-convert-list'.
+ (Accessing Events): `posn-timestamp' takes POSITION argument.
+ (Quoted Character Input): Clarify description of
+ `read-quoted-char' and fix example.
+ (Quitting): Add `with-local-quit'.
+ (Disabling Commands): Correct and clarify descriptions of
+ `enable-command' and `disable-command'.
+ Mention what happens if `disabled-command-hook' is nil.
+ (Keyboard Macros): Mention LOOPFUNC arg to `execute-kbd-macro'.
+ Describe `executing-kbd-macro' instead of obsolete `executing-macro'.
+
+2004-07-24 Luc Teirlinck <teirllm@auburn.edu>
+
+ * frames.texi: Various changes in addition to:
+ (Creating Frames): Expand and clarify description of `make-frame'.
+ (Window Frame Parameters): Either none or both of the `icon-left'
+ and `icon-top' parameters must be specified. Put descriptions of
+ `menu-bar-lines' and `toolbar-lines' closer together and change
+ them accordingly.
+ (Frame Titles): `multiple-frames' is not guaranteed to be accurate
+ except while processing `frame-title-format' or `icon-title-format'.
+ (Deleting Frames): Correct description of `delete-frame'.
+ Non-nil return values of `frame-live-p' are like those of `framep'.
+ (Frames and Windows): Mention return value of
+ `set-frame-selected-window'.
+ (Visibility of Frames): Mention `force' argument to
+ `make-frame-invisible'. `frame-visible-p' returns t for all
+ frames on text-only terminals.
+ (Frame Configurations): Restoring a frame configuration does not
+ restore deleted frames.
+ (Window System Selections): `x-set-selection' returns DATA.
+ (Resources): Add example.
+ (Display Feature Testing): Clarify descriptions of
+ `display-pixel-height', `display-pixel-width', `x-server-version'
+ and `x-server-vendor'.
+
+ * windows.texi (Choosing Window): Add anchor.
+ * minibuf.texi (Minibuffer Misc): Add anchor.
+
+2004-07-23 John Paul Wallington <jpw@gnu.org>
+
+ * macros.texi (Defining Macros): Declaration keyword for setting
+ Edebug spec is `debug' not `edebug'.
+
+2004-07-19 Luc Teirlinck <teirllm@auburn.edu>
+
+ * windows.texi: Various small changes in addition to:
+ (Window Point): Mention return value of `set-window-point'.
+ (Window Start): `pos-visible-in-window-p' disregards horizontal
+ scrolling. Explain return value if PARTIALLY is non-nil.
+ (Vertical Scrolling): Mention PIXELS-P argument to `window-vscroll'
+ and `set-window-vscroll'.
+ (Size of Window): The argument WINDOW to `window-inside-edges',
+ `window-pixel-edges' and `window-inside-pixel-edges' is optional.
+ (Resizing Windows): Explain return value of
+ `shrink-window-if-larger-than-buffer'.
+ `window-size-fixed' automatically becomes buffer local when set.
+ (Window Configurations): Explain return value of
+ `set-window-configuration'.
+
+ * minibuf.texi (Minibuffer Misc): Add anchor for
+ `minibuffer-scroll-window'.
+
+ * positions.texi (Text Lines): Add anchor for `count-lines'.
+
+2004-07-17 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Overlay Properties): Adding `evaporate' prop
+ deletes empty overlay immediately.
+
+ * abbrevs.texi (Abbrev Expansion): Clarify pre-abbrev-expand-hook,
+ fix example.
+
+2004-07-16 Jim Blandy <jimb@redhat.com>
+
+ * searching.texi (Regexp Backslash): Document new \_< and \_>
+ operators.
+
+2004-07-16 Juanma Barranquero <lektu@terra.es>
+
+ * display.texi (Images): Fix Texinfo usage.
+
+2004-07-14 Luc Teirlinck <teirllm@auburn.edu>
+
+ * buffers.texi (Modification Time): `visited-file-modtime' now
+ returns a list of two integers, instead of a cons.
+
+2004-07-13 Luc Teirlinck <teirllm@auburn.edu>
+
+ * windows.texi: Various changes in addition to:
+ (Splitting Windows): Add `split-window-keep-point'.
+
+2004-07-09 Richard M. Stallman <rms@gnu.org>
+
+ * frames.texi (Input Focus): Minor fix.
+
+2004-07-07 Luc Teirlinck <teirllm@auburn.edu>
+
+ * frames.texi (Input Focus): Clarify descriptions of
+ `select-frame-set-input-focus' and `select-frame'.
+
+2004-07-06 Luc Teirlinck <teirllm@auburn.edu>
+
+ * os.texi: Various small changes in addition to:
+ (Killing Emacs): Expand and clarify description of
+ `kill-emacs-query-functions' and `kill-emacs-hook'.
+ (System Environment): Expand and clarify description of `getenv'
+ and `setenv'.
+ (Timers): Clarify description of `run-at-time'.
+ (Translating Input): Correct description of
+ `extra-keyboard-modifiers'.
+ (Flow Control): Correct description of `enable-flow-control'.
+
+2004-07-06 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * os.texi: Update copyright.
+ (Session Management): Grammar fix.
+ Clarify which Emacs does the restarting.
+ Use @samp for *scratch* buffer.
+
+2004-07-04 Alan Mackenzie <acm@muc.de>
+
+ * frames.texi (Input Focus): Add documentation for
+ `select-frame-set-input-focus'. Replace refs to non-existent
+ `switch-frame' with `select-frame'. Minor corrections and tidying
+ up of text-only terminal stuff.
+
+2004-07-02 Richard M. Stallman <rms@gnu.org>
+
+ * files.texi (Saving Buffers): Cleanup write-contents-function.
+ (Magic File Names): Cleanup file-remote-p.
+
+2004-07-02 Kai Grossjohann <kai@emptydomain.de>
+
+ * files.texi (Magic File Names): `file-remote-p' returns an
+ identifier of the remote system, not just t.
+
+2004-07-02 David Kastrup <dak@gnu.org>
+
+ * searching.texi (Entire Match Data): Add explanation about new
+ match-data behavior when @var{integers} is non-nil.
+
+2004-06-24 Richard M. Stallman <rms@gnu.org>
+
+ * commands.texi (Misc Events): Describe usr1-signal, usr2-signal event.
+
+ * customize.texi (Variable Definitions): Note about doc strings
+ and :set.
+
+ * keymaps.texi (Keymap Terminology): Document `kbd'.
+ (Changing Key Bindings, Key Binding Commands): Use kbd in examples.
+
+ * display.texi (Invisible Text): Setting buffer-invisibility-spec
+ makes it buffer-local.
+
+ * files.texi (Saving Buffers): Correct previous change.
+
+ * commands.texi (Accessing Events):
+ Clarify posn-col-row and posn-actual-col-row.
+
+2004-06-24 David Ponce <david.ponce@wanadoo.fr>
+
+ * commands.texi (Accessing Events): New functions
+ posn-at-point and posn-at-x-y. Add example to posn-x-y.
+
+2004-06-23 Luc Teirlinck <teirllm@auburn.edu>
+
+ * lists.texi, files.texi, processes.texi, macros.texi, hash.texi:
+ * frames.texi, buffers.texi, backups.texi, variables.texi:
+ * loading.texi, eval.texi, functions.texi, control.texi:
+ * symbols.texi, minibuf.texi: Reposition @anchor's.
+
+ * help.texi: Various small changes in addition to the following.
+ (Describing Characters): Describe PREFIX argument to
+ `key-description'. Correct and clarify definition of
+ `text-char-description'. Describe NEED-VECTOR argument to
+ `read-kbd-macro'.
+ (Help Functions): Clarify definition of `apropos'.
+
+2004-06-23 Lars Hansen <larsh@math.ku.dk>
+
+ * files.texi (Saving Buffers): Correct description of
+ `write-contents-functions'.
+
+2004-06-21 Juanma Barranquero <lektu@terra.es>
+
+ * display.texi (Images): Remove redundant @vindex directives.
+ Rewrite `image-library-alist' doc in active voice.
+
+2004-06-14 Juanma Barranquero <lektu@terra.es>
+
+ * display.texi (Images): Document new delayed library loading,
+ variable `image-library-alist' and (existing but undocumented)
+ function `image-type-available-p'.
+
+2004-06-05 Richard M. Stallman <rms@gnu.org>
+
+ * minibuf.texi (Minibuffer Completion): For INITIAL arg,
+ refer the user to the Initial Input node.
+ (Text from Minibuffer): Likewise.
+ (Initial Input): New node. Document this feature
+ and say it is mostly deprecated.
+
+2004-05-30 Richard M. Stallman <rms@gnu.org>
+
+ * loading.texi (Named Features): Clarify return value
+ and meaning of NOERROR.
+
+ * variables.texi (File Local Variables): Minor cleanup.
+
+2004-05-30 Michael Albinus <michael.albinus@gmx.de>
+
+ * files.texi (Magic File Names): Add `file-remote-p' as operation
+ of file name handlers.
+
+2004-05-29 Richard M. Stallman <rms@gnu.org>
+
+ * modes.texi (Minor Mode Conventions): (-) has no special meaning
+ as arg to a minor mode command.
+
+2004-05-22 Richard M. Stallman <rms@gnu.org>
+
+ * syntax.texi (Syntax Class Table): Word syntax not just for English.
+
+ * streams.texi (Output Variables): Doc float-output-format.
+
+ * searching.texi (Regexp Special): Nested repetition can be infloop.
+
+ * eval.texi (Eval): Increasing max-lisp-eval-depth can cause
+ real stack overflow.
+
+ * compile.texi: Minor cleanups.
+
+2004-05-22 Luc Teirlinck <teirllm@dms.auburn.edu>
+
+ * lists.texi (Cons Cells): Explain dotted lists, true lists,
+ circular lists.
+ (List Elements): Explain handling of circular and dotted lists.
+
+2004-05-19 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * modes.texi (Search-based Fontification): Fix typo.
+
+2004-05-10 Juanma Barranquero <lektu@terra.es>
+
+ * modes.texi (Mode Line Variables): Fix description of
+ global-mode-string, which is now after which-func-mode, not the
+ buffer name.
+
+2004-05-07 Lars Hansen <larsh@math.ku.dk>
+
+ * modes.texi (Desktop Save Mode): Add.
+ (Modes): Add menu entry Desktop Save Mode.
+
+ * hooks.texi: Add desktop-after-read-hook,
+ desktop-no-desktop-file-hook and desktop-save-hook.
+
+ * locals.texi: Add desktop-save-buffer.
+
+2004-04-30 Jesper Harder <harder@ifa.au.dk>
+
+ * display.texi: emacs -> Emacs.
+
+2004-04-27 Matthew Mundell <matt@mundell.ukfsn.org>
+
+ * files.texi (Changing Files): Document set-file-times.
+
+2004-04-23 Juanma Barranquero <lektu@terra.es>
+
+ * makefile.w32-in: Add "-*- makefile -*-" mode tag.
+
+2004-04-18 Jesper Harder <harder@ifa.au.dk>
+
+ * tips.texi (Coding Conventions): defopt -> defcustom.
+
+2004-04-16 Luc Teirlinck <teirllm@auburn.edu>
+
+ * sequences.texi: Various clarifications.
+
+2004-04-14 Luc Teirlinck <teirllm@auburn.edu>
+
+ * buffers.texi (Read Only Buffers): Mention optional ARG to
+ `toggle-read-only'.
+
+2004-04-14 Nick Roberts <nick@nick.uklinux.net>
+
+ * windows.texi (Selecting Windows): Note that get-lru-window
+ returns a full-width window if possible.
+
+2004-04-13 Luc Teirlinck <teirllm@auburn.edu>
+
+ * buffers.texi: Various changes in addition to:
+ (Buffer File Name): Add `find-buffer-visiting'.
+ (Buffer Modification): Mention optional ARG to `not-modified'.
+ (Indirect Buffers): Mention optional CLONE argument to
+ `make-indirect-buffer'.
+
+ * files.texi: Various changes in addition to:
+ (Visiting Functions): `find-file-hook' is now a normal hook.
+ (File Name Expansion): Explain difference between the way that
+ `expand-file-name' and `file-truename' treat `..'.
+ (Contents of Directories): Mention optional ID-FORMAT argument to
+ `directory-files-and-attributes'.
+ (Format Conversion): Mention new optional CONFIRM argument to
+ `format-write-file'.
+
+2004-04-12 Miles Bader <miles@gnu.org>
+
+ * macros.texi (Expansion): Add description of `macroexpand-all'.
+
+2004-04-05 Jesper Harder <harder@ifa.au.dk>
+
+ * variables.texi (Variable Aliases): Mention
+ cyclic-variable-indirection.
+
+ * errors.texi (Standard Errors): Ditto.
+
+2004-04-04 Luc Teirlinck <teirllm@auburn.edu>
+
+ * backups.texi: Various small changes in addition to:
+ (Making Backups): Mention return value of `backup-buffer'.
+ (Auto-Saving): Mention optional FORCE argument to
+ `delete-auto-save-file-if-necessary'.
+ (Reverting): Mention optional PRESERVE-MODES argument to
+ `revert-buffer'. Correct description of `revert-buffer-function'.
+
+2004-03-22 Juri Linkov <juri@jurta.org>
+
+ * sequences.texi (Sequence Functions): Replace xref to `Vectors'
+ with `Vector Functions'.
+
+ * text.texi (Sorting): Add missing quote.
+
+2004-03-14 Luc Teirlinck <teirllm@auburn.edu>
+
+ * intro.texi (Lisp History): Replace xref to `cl' manual with
+ inforef.
+
+2004-03-12 Richard M. Stallman <rms@gnu.org>
+
+ * intro.texi (Version Info): Add arg to emacs-version.
+ (Lisp History): Change xref to CL manual.
+
+2004-03-09 Luc Teirlinck <teirllm@auburn.edu>
+
+ * minibuf.texi (Completion Commands): Add xref to Emacs manual
+ for Partial Completion mode.
+
+2004-03-07 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * customize.texi: Fix typo. Remove eol whitespace.
+
+2004-03-04 Richard M. Stallman <rms@gnu.org>
+
+ * processes.texi: Fix typos.
+
+ * lists.texi (Building Lists): Minor clarification.
+
+ * hash.texi (Creating Hash): Correct the meaning of t for WEAK
+ in make-hash-table.
+
+2004-02-29 Juanma Barranquero <lektu@terra.es>
+
+ * makefile.w32-in (clean, maintainer-clean): Use $(DEL) instead of
+ rm, and ignore exit code.
+
+2004-02-27 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * display.texi (Defining Faces): Add description for min-colors.
+ Update example.
+
+2004-02-23 Luc Teirlinck <teirllm@auburn.edu>
+
+ * abbrevs.texi: Various corrections and clarifications in addition
+ to the following:
+ (Abbrev Tables): Delete add-abbrev (as suggested by RMS).
+
+2004-02-22 Matthew Mundell <matt@mundell.ukfsn.org> (tiny change)
+
+ * calendar.texi (Holiday Customizing): Quote arg of holiday-sexp.
+
+2004-02-21 Luc Teirlinck <teirllm@auburn.edu>
+
+ * text.texi: Various small changes in addition to the following:
+ (User-Level Deletion): Mention optional BACKWARD-ONLY argument
+ to delete-horizontal-space.
+ (Kill Functions, Yanking, Low-Level Kill Ring): Clarify and correct
+ description of yank-handler text property at various places.
+
+ * frames.texi (Window System Selections): Add anchor.
+
+ * syntax.texi (Syntax Table Functions): Clarify and correct
+ descriptions of make-syntax-table and copy-syntax-table.
+ (Motion and Syntax): Clarify SYNTAXES argument to
+ skip-syntax-forward.
+ (Parsing Expressions): Mention that the return value of
+ parse-partial-sexp is currently a list of ten rather than nine
+ elements.
+ (Categories): Various corrections and clarifications.
+
+2004-02-17 Luc Teirlinck <teirllm@auburn.edu>
+
+ * markers.texi (Marker Insertion Types): Minor change.
+
+ * locals.texi (Standard Buffer-Local Variables):
+ * commands.texi (Interactive Codes, Using Interactive):
+ * functions.texi (Related Topics): Fix xrefs.
+
+2004-02-16 Luc Teirlinck <teirllm@auburn.edu>
+
+ * lists.texi (Sets And Lists): Update description of delete-dups.
+
+2004-02-16 Jesper Harder <harder@ifa.au.dk> (tiny change)
+
+ * keymaps.texi (Tool Bar): tool-bar-item => tool-bar-button.
+
+2004-02-16 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * frames.texi (Parameter Access): frame-parameters arg is optional.
+ modify-frame-parameters handles nil for FRAME.
+ (Window Frame Parameters): menu-bar-lines and tool-bar-lines
+ are all-or-nothing for certain toolkits.
+ Mention parameter wait-for-wm.
+ (Frames and Windows): In frame-first-window and frame-selected-window
+ the arg is optional.
+ (Input Focus): In redirect-frame-focus the second arg is optional.
+ (Window System Selections): Mention selection type CLIPBOARD.
+ Mention data-type UTF8_STRING.
+ Mention numbering of cut buffers.
+ (Resources): Describe x-resource-name.
+
+2004-02-16 Richard M. Stallman <rms@gnu.org>
+
+ * windows.texi (Buffers and Windows): Delete false table
+ about all-frames.
+
+ * syntax.texi (Parsing Expressions): Delete old caveat
+ about parse-sexp-ignore-comments.
+
+ * streams.texi (Output Variables): Add print-quoted.
+
+ * lists.texi (Building Lists): Minor cleanup.
+
+ * hash.texi (Creating Hash): Correct and clarify doc of WEAK values.
+
+ * display.texi (Overlays): Explain overlays use markers.
+ (Managing Overlays): Explain front-advance and rear-advance
+ in more detail.
+
+ * loading.texi (Unloading): Document unload-feature-special-hooks.
+ Get rid of fns-NNN.el file.
+
+2004-02-16 Matthew Mundell <matt@mundell.ukfsn.org> (tiny change)
+
+ * help.texi (Describing Characters): Fix text-char-description
+ example output.
+
+ * edebug.texi (Using Edebug): Fix example.
+
+ * debugging.texi (Internals of Debugger): Fix return value.
+
+ * files.texi (Changing Files): Fix argname.
+
+ * calendar.texi: Fix parens, and default values.
+
+ * display.texi, frames.texi, internals.texi, modes.texi: Minor fixes.
+ * nonascii.texi, objects.texi, os.texi: Minor fixes.
+ * searching.texi, text.texi, tips.texi, windows.text: Minor fixes.
+
+ * positions.texi (Text Lines): Don't add -1 in current-line.
+
+2004-02-16 Richard M. Stallman <rms@gnu.org>
+
+ * compile.texi (Compiler Errors): if-boundp feature applies to cond.
+
+2004-02-16 Jesper Harder <harder@ifa.au.dk> (tiny change)
+
+ * processes.texi (Low-Level Network): Fix a typo.
+
+2004-02-12 Kim F. Storm <storm@cua.dk>
+
+ * display.texi (Fringes): Use consistent wording.
+ Note that window-fringe's window arg is optional.
+ (Scroll Bars): Use consistent wording.
+
+2004-02-11 Luc Teirlinck <teirllm@auburn.edu>
+
+ * tips.texi (Comment Tips): Document the new conventions for
+ commenting out code.
+
+2004-02-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * positions.texi (Text Lines): Added missing end defun.
+
+2004-02-07 Kim F. Storm <storm@cua.dk>
+
+ * positions.texi (Text Lines): Add line-number-at-pos.
+
+2004-02-06 John Paul Wallington <jpw@gnu.org>
+
+ * display.texi (Button Properties, Button Buffer Commands):
+ mouse-2 invokes button, not down-mouse-1.
+
+2004-02-04 Jason Rumney <jasonr@gnu.org>
+
+ * makefile.w32-in: Sync with Makefile.in changes.
+
+2004-02-03 Luc Teirlinck <teirllm@auburn.edu>
+
+ * minibuf.texi (Text from Minibuffer): Various corrections and
+ clarifications.
+ (Object from Minibuffer): Correct Lisp description of
+ read-minibuffer.
+ (Minibuffer History): Clarify description of cons values for
+ HISTORY arguments.
+ (Basic Completion): Various corrections and clarifications. Add
+ completion-regexp-list.
+ (Minibuffer Completion): Correct and clarify description of
+ completing-read.
+ (Completion Commands): Mention Partial Completion mode. Various
+ other minor changes.
+ (High-Level Completion): Various corrections and clarifications.
+ (Reading File Names): Ditto.
+ (Minibuffer Misc): Ditto.
+
+2004-01-26 Luc Teirlinck <teirllm@auburn.edu>
+
+ * strings.texi (Text Comparison): assoc-string also matches
+ elements of alists that are strings instead of conses.
+ (Formatting Strings): Standardize Texinfo usage. Update index
+ entries.
+
+2004-01-20 Luc Teirlinck <teirllm@auburn.edu>
+
+ * lists.texi (Sets And Lists): Add delete-dups.
+
+2004-01-15 Luc Teirlinck <teirllm@auburn.edu>
+
+ * edebug.texi (Instrumenting Macro Calls): `declare' is not a
+ special form.
+ * macros.texi (Defining Macros): Update description of `declare',
+ which now is a macro.
+ (Wrong Time): Fix typos.
+
+2004-01-14 Luc Teirlinck <teirllm@auburn.edu>
+
+ * compile.texi (Compilation Functions): Expand descriptions of
+ `compile-defun', `byte-compile-file', `byte-recompile-directory'
+ and `batch-byte-compile'. In particular, mention and describe
+ all optional arguments.
+ (Disassembly): Correct and clarify the description of `disassemble'.
+
+2004-01-11 Luc Teirlinck <teirllm@auburn.edu>
+
+ * searching.texi: Various small changes in addition to the
+ following.
+ (Regexp Example): Adapt to new value of `sentence-end'.
+ (Regexp Functions): The PAREN argument to `regexp-opt' can be
+ `words'.
+ (Search and Replace): Add usage note for `perform-replace'.
+ (Entire Match Data): Mention INTEGERS and REUSE arguments to
+ `match-data'.
+ (Standard Regexps): Update for new values of `paragraph-start'
+ and `sentence-end'.
+
+2004-01-07 Luc Teirlinck <teirllm@auburn.edu>
+
+ * files.texi (Saving Buffers): Clarify descriptions of
+ `write-contents-functions' and `before-save-hook'.
+ Make the defvar's for `before-save-hook' and `after-save-hook'
+ into defopt's.
+
+2004-01-07 Kim F. Storm <storm@cua.dk>
+
+ * commands.texi (Click Events): Describe new image and
+ width/height elements of click events.
+ (Accessing Events): Add posn-string, posn-image, and
+ posn-object-width-height. Change posn-object to return either
+ image or string object.
+
+2004-01-01 Simon Josefsson <jas@extundo.com>
+
+ * hooks.texi (Standard Hooks): Add before-save-hook.
+ * files.texi (Saving Buffers): Likewise.
+
+2004-01-03 Richard M. Stallman <rms@gnu.org>
+
+ * frames.texi (Frames and Windows): Delete frame-root-window.
+
+2004-01-03 Luc Teirlinck <teirllm@auburn.edu>
+
+ * eval.texi, hash.texi, help.texi, symbols.texi: Add anchors.
+
+ * functions.texi: Various small changes in addition to the
+ following.
+ (What Is a Function): `functionp' returns nil for macros. Clarify
+ behavior of this and following functions for symbol arguments.
+ (Function Documentation): Add `\' in front of (fn @var{arglist})
+ and explain why.
+ (Defining Functions): Mention DOCSTRING argument to `defalias'.
+ Add anchor.
+ (Mapping Functions): Add anchor. Unquote nil in mapcar* example.
+
+2004-01-01 Miles Bader <miles@gnu.org>
+
+ * display.texi (Buttons): New section.
+
+2003-12-31 Andreas Schwab <schwab@suse.de>
+
+ * numbers.texi (Math Functions): sqrt reports a domain-error
+ error.
+ (Float Basics): Use `(/ 0.0 0.0)' instead of `(sqrt -1.0)'.
+
+2003-12-30 Luc Teirlinck <teirllm@auburn.edu>
+
+ * tips.texi (Documentation Tips): Update item on hyperlinks in
+ documentation strings.
+
+ * errors.texi (Standard Errors): Various small corrections and
+ additions.
+
+ * control.texi: Various small changes in addition to the
+ following.
+ (Signaling Errors): Provide some more details on how `signal'
+ constructs the error message. Add anchor to the definition of
+ `signal'.
+ (Error Symbols): Describe special treatment of `quit'.
+ (Cleanups): Rename BODY argument of `unwind-protect' to BODY-FORM
+ to emphasize that it has to be a single form.
+
+ * buffers.texi: Add anchor.
+
+2003-12-29 Richard M. Stallman <rms@gnu.org>
+
+ * windows.texi (Choosing Window): Add same-window-p, special-display-p.
+ (Window Configurations): Add window-configuration-frame.
+
+ * variables.texi (Creating Buffer-Local): Add local-variable-if-set-p.
+
+ * text.texi (Examining Properties): Add get-char-property-and-overlay.
+ Change arg name in get-char-property.
+ (Special Properties): Update handling of keymap property.
+
+ * strings.texi (Modifying Strings): Add clear-string.
+ (Text Comparison): Add assoc-string and remove
+ assoc-ignore-case, assoc-ignore-representation.
+
+ * os.texi (Time of Day): Add set-time-zone-rule.
+
+ * numbers.texi (Math Functions): asin, acos, log, log10
+ report domain-error errors.
+
+ * nonascii.texi (Converting Representations):
+ Add multibyte-char-to-unibyte and unibyte-char-to-multibyte.
+ (Encoding and I/O): Add file-name-coding-system.
+
+ * modes.texi (Search-based Fontification): Explain that
+ face specs are symbols with face names as values.
+
+ * minibuf.texi (Minibuffer Misc): Add set-minibuffer-window.
+
+ * lists.texi (Building Lists): remq moved elsewhere.
+ (Sets And Lists): remq moved here.
+ (Association Lists): Refer to assoc-string.
+
+ * internals.texi (Garbage Collection): Add memory-use-counts.
+
+ * frames.texi (Frames and Windows): Add set-frame-selected-window
+ and frame-root-window.
+
+ * files.texi (Contents of Directories):
+ Add directory-files-and-attributes.
+
+ * display.texi (Refresh Screen): Add force-window-update.
+ (Invisible Text): Explain about moving point out of invis text.
+ (Overlay Properties): Add overlay-properties.
+ (Managing Overlays): Add overlayp.
+ (GIF Images): Invalid image number displays a hollow box.
+
+ * buffers.texi (Buffer Modification): Add restore-buffer-modified-p.
+ (Killing Buffers): Add buffer-live-p.
+
+2003-12-25 Markus Rost <rost@mathematik.uni-bielefeld.de>
+
+ * display.texi (Fringes): Fix typo "set-buffer-window".
+
+2003-12-24 Luc Teirlinck <teirllm@auburn.edu>
+
+ * display.texi, eval.texi, help.texi, internals.texi, loading.texi:
+ * nonascii.texi, processes.texi, tips.texi, variables.texi:
+ Add or change various xrefs and anchors.
+
+ * commands.texi: Replace all occurrences of @acronym{CAR} with
+ @sc{car}, for consistency with the rest of the Elisp manual.
+ `car' and `cdr' are historically acronyms, but are no longer
+ widely thought of as such.
+
+ * internals.texi (Pure Storage): Mention that `purecopy' does not
+ copy text properties.
+ (Object Internals): Now 29 bits are used (in most implementations)
+ to address Lisp objects.
+
+ * variables.texi (Variables with Restricted Values): New node.
+
+ * objects.texi (Lisp Data Types): Mention that certain variables
+ can only take on a restricted set of values and add an xref to
+ the new node "Variables with Restricted Values".
+
+ * eval.texi (Function Indirection): Describe the errors that
+ `indirect-function' can signal.
+ (Eval): Clarify the descriptions of `eval-region' and `values'.
+ Describe `eval-buffer' instead of `eval-current-buffer' and
+ mention `eval-current-buffer' as an alias for `current-buffer'.
+ Correct the description and mention all optional arguments.
+
+ * nonascii.texi: Various small changes in addition to the
+ following.
+ (Converting Representations): Clarify behavior of
+ `string-make-multibyte' and `string-to-multibyte' for unibyte all
+ ASCII arguments.
+ (Character Sets): Document the variable `charset-list' and adapt
+ the definition of the function `charset-list' accordingly.
+ (Translation of Characters): Clarify use of generic characters in
+ `make-translation-table'. Clarify and correct the description of
+ the use of translation tables in encoding and decoding.
+ (User-Chosen Coding Systems): Correct and clarify the description
+ of `select-safe-coding-system'.
+ (Default Coding Systems): Clarify description of
+ `file-coding-system-alist'.
+
+2003-11-30 Luc Teirlinck <teirllm@auburn.edu>
+
+ * strings.texi (Text Comparison): Correctly describe when two
+ strings are `equal'. Combine and clarify descriptions of
+ `assoc-ignore-case' and `assoc-ignore-representation'.
+
+ * objects.texi (Non-ASCII in Strings): Clarify description of
+ when a string is unibyte or multibyte.
+ (Bool-Vector Type): Update examples.
+ (Equality Predicates): Correctly describe when two strings are
+ `equal'.
+
+2003-11-29 Luc Teirlinck <teirllm@auburn.edu>
+
+ * lists.texi (Building Lists): `append' no longer accepts integer
+ arguments. Update the description of `number-sequence' to reflect
+ recent changes.
+ (Sets And Lists): Describe `member-ignore-case' after `member'.
+
+2003-11-27 Kim F. Storm <storm@cua.dk>
+
+ * commands.texi (Click Events): Click object may be an images.
+ Describe (dx . dy) element of click positions.
+ (Accessing Events): Remove duplicate posn-timestamp.
+ New functions posn-object and posn-object-x-y.
+
+2003-11-23 Kim F. Storm <storm@cua.dk>
+
+ * commands.texi (Click Events): Describe enhancements to event
+ position lists, including new text-pos and (col . row) items.
+ Mention left-fringe and right-fringe area events.
+ (Accessing Events): New functions posn-area and
+ posn-actual-col-row. Mention posn-timestamp. Mention that
+ posn-point in non-text area still returns buffer position.
+ Clarify posn-col-row.
+
+2003-11-21 Lars Hansen <larsh@math.ku.dk>
+
+ * files.texi (File Attributes): Describe new parameter ID-FORMAT.
+ * anti.texi (File Attributes): Describe removed parameter
+ ID-FORMAT.
+
+2003-11-20 Luc Teirlinck <teirllm@auburn.edu>
+
+ * positions.texi (Positions): Mention that, if a marker is used as
+ a position, its buffer is ignored.
+
+ * markers.texi (Overview of Markers): Mention it here too.
+
+2003-11-12 Luc Teirlinck <teirllm@auburn.edu>
+
+ * numbers.texi (Numeric Conversions): Not just `floor', but also
+ `truncate', `ceiling' and `round' accept optional argument DIVISOR.
+
+2003-11-10 Luc Teirlinck <teirllm@auburn.edu>
+
+ * markers.texi (Creating Markers): Specify insertion type of
+ created markers. Add xref to `Marker Insertion Types'.
+ Second argument to `copy-marker' is optional.
+ (Marker Insertion Types): Mention that most markers are created
+ with insertion type nil.
+ (The Mark): Correctly describe when `mark' signals an error.
+ (The Region): Correctly describe when `region-beginning' and
+ `region-end' signal an error.
+
+2003-11-08 Luc Teirlinck <teirllm@auburn.edu>
+
+ * hash.texi (Creating Hash): Clarify description of `eql'.
+ `makehash' is obsolete.
+ (Hash Access): Add Common Lisp notes for `remhash' and `clrhash'.
+
+ * positions.texi (Point): Change description of `buffer-end', so
+ that it is also correct for floating point arguments.
+ (List Motion): Correct argument lists of `beginning-of-defun' and
+ `end-of-defun'.
+ (Excursions): Add xref to `Marker Insertion Types'.
+ (Narrowing): Argument to `narrow-to-page' is optional.
+
+2003-11-06 Luc Teirlinck <teirllm@auburn.edu>
+
+ * streams.texi (Output Streams): Clarify behavior of point for
+ marker output streams.
+
+2003-11-04 Luc Teirlinck <teirllm@auburn.edu>
+
+ * variables.texi (Defining Variables): Second argument to
+ `defconst' is not optional.
+ (Setting Variables): Mention optional argument APPEND to
+ `add-to-list'.
+ (Creating Buffer-Local): Expand description of
+ `make-variable-buffer-local'.
+ (Frame-Local Variables): Expand description of
+ `make-variable-frame-local'.
+ (Variable Aliases): Correct description of optional argument
+ DOCSTRING to `defvaralias'. Mention return value of
+ `defvaralias'.
+ (File Local Variables): Add xref to `File variables' in Emacs
+ Manual. Correct description of `hack-local-variables'. Mention
+ `safe-local-variable' property. Mention optional second argument
+ to `risky-local-variable-p'.
+
+2003-11-03 Luc Teirlinck <teirllm@auburn.edu>
+
+ * symbols.texi (Symbol Plists): Mention return value of `setplist'.
+
+2003-11-02 Jesper Harder <harder@ifa.au.dk> (tiny change)
+
+ * lispref/anti.texi, lispref/backups.texi, lispref/commands.texi
+ lispref/customize.texi, lispref/display.texi, lispref/files.texi,
+ lispref/internals.texi, lispref/keymaps.texi, lispref/loading.texi,
+ lispref/modes.texi, lispref/nonascii.texi, lispref/numbers.texi,
+ lispref/objects.texi, lispref/os.texi, lispref/positions.texi,
+ lispref/processes.texi, lispref/searching.texi,
+ lispref/sequences.texi, lispref/streams.texi, lispref/strings.texi,
+ lispref/syntax.texi, lispref/text.texi: Replace @sc{foo} with
+ @acronym{FOO}.
+
+2003-10-27 Luc Teirlinck <teirllm@auburn.edu>
+
+ * strings.texi (Creating Strings): Argument START to `substring'
+ can not be `nil'. Expand description of
+ `substring-no-properties'. Correct description of `split-string',
+ especially with respect to empty matches. Prevent very bad line
+ break in definition of `split-string-default-separators'.
+ (Text Comparison): `string=' and `string<' also accept symbols as
+ arguments.
+ (String Conversion): More completely describe argument BASE in
+ `string-to-number'.
+ (Formatting Strings): `%s' and `%S' in `format' do require
+ corresponding object. Clarify behavior of numeric prefix after
+ `%' in `format'.
+ (Case Conversion): The argument to `upcase-initials' can be a
+ character.
+
+2003-10-27 Kenichi Handa <handa@m17n.org>
+
+ * display.texi (Fontsets): Fix texinfo usage.
+
+2003-10-25 Kenichi Handa <handa@m17n.org>
+
+ * display.texi (Fontsets): Add description of the function
+ set-fontset-font.
+
+2003-10-23 Luc Teirlinck <teirllm@auburn.edu>
+
+ * display.texi (Temporary Displays): Add xref to `Documentation
+ Tips'.
+
+ * functions.texi (Function Safety): Use inforef instead of pxref
+ for SES.
+
+2003-10-23 Andreas Schwab <schwab@suse.de>
+
+ * Makefile.in (TEX, texinputdir): Don't define.
+ (TEXI2DVI): Define.
+ (srcs): Remove $(srcdir)/index.perm and $(srcdir)/index.unperm,
+ add $(srcdir)/index.texi.
+ ($(infodir)/elisp): Remove index.texi dependency.
+ (elisp.dvi): Likewise. Use $(TEXI2DVI).
+ (index.texi): Remove target.
+ (dist): Don't link $(srcdir)/permute-index.
+ (clean): Don't remove index.texi.
+
+ * permute-index, index.perm: Remove.
+ * index.texi: Rename from index.unperm.
+
+2003-10-22 Luc Teirlinck <teirllm@auburn.edu>
+
+ * tips.texi (Documentation Tips): Document new behavior for face
+ and variable hyperlinks in Help mode.
+
+2003-10-21 Luc Teirlinck <teirllm@auburn.edu>
+
+ * objects.texi (Integer Type): Update for extra bit of integer range.
+ (Character Type): Ditto.
+
+2003-10-16 Eli Zaretskii <eliz@gnu.org>
+
+ * numbers.texi (Integer Basics): Add index entries for reading
+ numbers in hex, octal, and binary.
+
+2003-10-16 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Mode Line Format): Mention force-mode-line-update's
+ argument.
+
+2003-10-13 Luc Teirlinck <teirllm@auburn.edu>
+
+ * windows.texi (Choosing Window): Fix typo.
+ * edebug.texi (Edebug Execution Modes): Fix typo.
+
+2003-10-13 Richard M. Stallman <rms@gnu.org>
+
+ * windows.texi (Basic Windows): A window has fringe settings,
+ display margins and scroll-bar settings.
+ (Splitting Windows): Doc split-window return value.
+ Clean up one-window-p.
+ (Selecting Windows): Fix typo.
+ (Cyclic Window Ordering): Explain frame as ALL-FRAMES in next-window.
+ (Buffers and Windows): In set-window-buffer, explain effect
+ on fringe settings and scroll bar settings.
+ (Displaying Buffers): In pop-to-buffer, explain nil as buffer arg.
+ (Choosing Window): Use defopt for pop-up-frame-function.
+ For special-display-buffer-names, explain same-window and same-frame.
+ Clarify window-dedicated-p return value.
+ (Textual Scrolling): scroll-up and scroll-down can get an error.
+ (Horizontal Scrolling): Clarify auto-hscroll-mode.
+ Clarify set-window-hscroll.
+ (Size of Window): Don't mention tool bar in window-height.
+ (Coordinates and Windows): Explain what coordinates-in-window-p
+ returns for fringes and display margins.
+ (Window Configurations): Explain saving fringes, etc.
+
+ * tips.texi (Library Headers): Clean up Documentation.
+
+ * syntax.texi (Parsing Expressions): Clean up forward-comment
+ and parse-sexp-lookup-properties.
+
+ * sequences.texi (Sequence Functions): sequencep accepts bool-vectors.
+
+ * os.texi (System Environment): Clean up text for load-average errors.
+
+ * modes.texi (Hooks): Don't explain local hook details at front.
+ Clarify run-hooks and run-hook-with-args a little.
+ Clean up add-hook and remove-hook.
+
+ * edebug.texi (Edebug Execution Modes): Clarify t.
+ Document edebug-sit-for-seconds.
+ (Coverage Testing): Document C-x X = and =.
+ (Instrumenting Macro Calls): Fix typo.
+ (Specification List): Don't index the specification keywords.
+
+2003-10-10 Kim F. Storm <storm@cua.dk>
+
+ * processes.texi (Network): Introduce make-network-process.
+
+2003-10-09 Luc Teirlinck <teirllm@auburn.edu>
+
+ * tips.texi (Library Headers): Fix typo.
+
+2003-10-07 Juri Linkov <juri@jurta.org>
+
+ * modes.texi (Imenu): Mention imenu-create-index-function's
+ default value. Explain submenus better.
+
+2003-10-07 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Faces for Font Lock): Fix typo.
+ (Hooks): Explain how buffer-local hook variables can refer to
+ global hook variables.
+ Various minor clarifications.
+
+2003-10-06 Lute Kamstra <lute@gnu.org>
+
+ * tips.texi (Coding Conventions): Mention naming conventions for
+ hooks.
+
+2003-10-05 Luc Teirlinck <teirllm@auburn.edu>
+
+ * loading.texi (Library Search): Correct default value of
+ load-suffixes.
+ (Named Features): Fix typo.
+
+2003-10-05 Richard M. Stallman <rms@gnu.org>
+
+ * loading.texi (Named Features): In `provide',
+ say how to test for subfeatures.
+ (Unloading): In unload-feature, use new var name
+ unload-feature-special-hooks.
+
+2003-10-03 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Major Mode Conventions): Mention third way to set up
+ Imenu.
+ (Imenu): A number of small fixes.
+ Delete documentation of internal variable imenu--index-alist.
+ Document the return value format of imenu-create-index-function
+ functions.
+
+2003-09-30 Richard M. Stallman <rms@gnu.org>
+
+ * processes.texi (Network): Say what stopped datagram connections do.
+
+ * lists.texi (Association Lists): Clarify `assq-delete-all'.
+
+ * display.texi (Overlay Properties): Clarify `evaporate' property.
+
+2003-09-29 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Mode Line Data): Explain when symbols in mode-line
+ constructs should be marked as risky.
+ Change cons cell into proper list.
+ (Mode Line Variables): Change cons cell into proper list.
+
+2003-09-26 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (Mode Line Data): Document the :propertize construct.
+ (Mode Line Variables): Reorder the descriptions of the variables
+ to match their order in the default mode-line-format.
+ Describe the new variables mode-line-position and mode-line-modes.
+ Update the default values of mode-line-frame-identification,
+ minor-mode-alist, and default-mode-line-format.
+ (Properties in Mode): Mention the :propertize construct.
+
+2003-09-26 Richard M. Stallman <rms@gnu.org>
+
+ * buffers.texi, commands.texi, debugging.texi, eval.texi:
+ * loading.texi, minibuf.texi, text.texi, variables.texi:
+ Avoid @strong{Note:}.
+
+2003-09-26 Richard M. Stallman <rms@gnu.org>
+
+ * keymaps.texi (Remapping Commands): Fix typo.
+
+2003-09-23 Luc Teirlinck <teirllm@mail.auburn.edu>
+
+ * processes.texi (Low-Level Network): Fix typo.
+
+2003-09-23 Kim F. Storm <storm@cua.dk>
+
+ * processes.texi (Network, Network Servers): Fix typos.
+ (Low-Level Network): Add timeout value for :server keyword.
+ Add new option keywords to make-network-process.
+ Add set-network-process-options.
+ Explain how to test availability of network options.
+
+2003-09-19 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Motion by Indent): Arg to
+ backward-to-indentation and forward-to-indentation is optional.
+
+ * strings.texi (Creating Strings): Add substring-no-properties.
+
+ * processes.texi
+ (Process Information): Add list-processes arg QUERY-ONLY.
+ Delete process-contact from here.
+ Add new status values for process-status.
+ Add process-get, process-put, process-plist, set-process-plist.
+ (Synchronous Processes): Add call-process-shell-command.
+ (Signals to Processes): signal-process allows process objects.
+ (Network): Complete rewrite.
+ (Network Servers, Datagrams, Low-Level Network): New nodes.
+
+ * positions.texi (Word Motion): forward-word, backward-word
+ arg is optional. Reword.
+
+ * abbrevs.texi (Defining Abbrevs): Index no-self-insert.
+
+ * variables.texi (Creating Buffer-Local):
+ Delete duplicate definition of buffer-local-value.
+ (File Local Variables): Explain about discarding text props.
+
+2003-09-11 Richard M. Stallman <rms@gnu.org>
+
+ * minibuf.texi (Intro to Minibuffers): Explain that the minibuffer
+ changes variables that record input events.
+ (Minibuffer Misc): Add minibuffer-selected-window.
+
+ * lists.texi (Building Lists): Add copy-tree.
+
+ * display.texi (Fontsets): Add char-displayable-p.
+ (Scroll Bars): New node.
+
+2003-09-08 Lute Kamstra <lute@gnu.org>
+
+ * modes.texi (%-Constructs): Document new `%i' and `%I'
+ constructs.
+
+2003-09-03 Peter Runestig <peter@runestig.com>
+
+ * makefile.w32-in: New file.
+
+2003-08-29 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Overlay Properties): Clarify how priorities
+ affect use of the properties.
+
+2003-08-19 Luc Teirlinck <teirllm@mail.auburn.edu>
+
+ * customize.texi (Type Keywords): Correct the description of
+ `:help-echo' in the case where `motion-doc' is a function.
+
+2003-08-14 John Paul Wallington <jpw@gnu.org>
+
+ * modes.texi (Emulating Mode Line): Subsection, not section.
+
+2003-08-13 Richard M. Stallman <rms@gnu.org>
+
+ * elisp.texi (Top): Update subnode lists in menu.
+
+ * text.texi (Insertion): Add insert-buffer-substring-no-properties.
+ (Kill Functions): kill-region has new arg yank-handler.
+ (Yanking): New node.
+ (Yank Commands): Add yank-undo-function.
+ (Low-Level Kill Ring):
+ kill-new and kill-append have new arg yank-handler.
+ (Changing Properties): Add remove-list-of-text-properties.
+ (Atomic Changes): New node.
+
+ * symbols.texi (Other Plists): Add lax-plist-get, lax-plist-put.
+
+ * streams.texi (Output Variables): Add eval-expression-print-length
+ and eval-expression-print-level.
+
+ * os.texi (Time Conversion): For encode-time, explain limits on year.
+
+ * objects.texi (Character Type): Define anchor "modifier bits".
+
+ * modes.texi (Emulating Mode Line): New node.
+ (Search-based Fontification): Font Lock uses font-lock-face property.
+ (Other Font Lock Variables): Likewise.
+
+ * keymaps.texi (Format of Keymaps): Keymaps contain char tables,
+ not vectors.
+ (Active Keymaps): Add emulation-mode-map-alists.
+ (Functions for Key Lookup): key-binding has new arg no-remap.
+ (Remapping Commands): New node.
+ (Scanning Keymaps): where-is-internal has new arg no-remap.
+ (Tool Bar): Add tool-bar-local-item-from-menu.
+ Clarify when to use tool-bar-add-item-from-menu.
+
+ * commands.texi (Interactive Call): commandp has new arg.
+ (Command Loop Info): Add this-original-command.
+
+2003-08-06 John Paul Wallington <jpw@gnu.org>
+
+ * compile.texi (Compiler Errors): Say `@end defmac' after `@defmac'.
+
+ * display.texi (Warning Basics): Fix typo.
+ (Fringes): Add closing curly bracket and fix typo.
+
+ * elisp.texi (Top): Fix typo.
+
+2003-08-05 Richard M. Stallman <rms@gnu.org>
+
+ * elisp.texi: Update lists of subnodes.
+
+ * windows.texi (Buffers and Windows): set-window-buffer has new arg.
+
+ * variables.texi (Local Variables): Use lc for example variable names.
+
+ * tips.texi (Library Headers): Explain where to put -*-.
+
+ * strings.texi (Creating Strings): Fix xref for vconcat.
+
+ * sequences.texi (Vector Functions):
+ vconcat no longer allows integer args.
+
+ * minibuf.texi (Reading File Names): read-file-name has new
+ arg PREDICATE. New function read-directory-name.
+
+ * macros.texi (Defining Macros): Give definition of `declare'
+ (Indenting Macros): New node.
+
+ * frames.texi (Parameter Access): Add modify-all-frames-parameters.
+ (Window Frame Parameters): Make separate table of parameters
+ that are coupled with specific face attributes.
+ (Deleting Frames): delete-frame-hooks renamed to
+ delete-frame-functions.
+
+ * files.texi (Magic File Names): Add file-remote-p.
+ Clarify file-local-copy.
+
+ * edebug.texi (Instrumenting Macro Calls): Don't define `declare'
+ here; instead xref Defining Macros.
+
+ * display.texi (Warnings): New node, and subnodes.
+ (Fringes): New node.
+
+ * debugging.texi (Test Coverage): New node.
+
+ * compile.texi (Compiler Errors): Explain with-no-warnings
+ and other ways to suppress warnings.
+
+ * commands.texi (Interactive Call): Minor clarification.
+
+ * buffers.texi (Buffer File Name): set-visited-file-name
+ renames the buffer too.
+
+ * abbrevs.texi (Abbrev Tables): Add copy-abbrev-table.
+
+2003-07-24 Markus Rost <rost@math.ohio-state.edu>
+
+ * abbrevs.texi (Abbrev Expansion): Use \s syntax in example.
+
+2003-07-22 Markus Rost <rost@math.ohio-state.edu>
+
+ * internals.texi (Garbage Collection): Fix previous change.
+
+2003-07-22 Richard M. Stallman <rms@gnu.org>
+
+ * files.texi (Truenames): Add LIMIT arg to file-chase-links.
+
+ * display.texi (Width): Use \s syntax in example.
+ (Font Selection): Add face-font-rescale-alist.
+
+ * modes.texi (Imenu): Add xref to Emacs Manual node on Imenu.
+ Remove spurious indent in example.
+
+ * lists.texi (Building Lists): Add number-sequence.
+
+ * internals.texi (Garbage Collection): Add gcs-done, gc-elapsed.
+
+ * functions.texi (Function Documentation): Explain how to
+ show calling convention explicitly in the doc string.
+
+ * windows.texi (Selecting Windows): save-selected-window saves
+ selected window of each frame.
+ (Window Configurations): Minor change.
+
+ * syntax.texi (Syntax Table Functions): Use \s syntax in examples.
+
+ * streams.texi (Output Variables): Add print-continuous-numbering
+ and print-number-table.
+
+ * processes.texi (Decoding Output): New node.
+
+ * os.texi (Time Conversion): decode-time arg is optional.
+
+ * objects.texi (Character Type): Don't use space as example for \.
+ Make list of char names and \-sequences correspond.
+ Explain that \s is not used in strings. `\ ' needs space after.
+
+ * nonascii.texi (Converting Representations): Add string-to-multibyte.
+ (Translation of Characters): Add translation-table-for-input.
+ (Default Coding Systems): Add auto-coding-functions.
+ (Explicit Encoding): Add decode-coding-inserted-region.
+ (Locales): Add locale-info.
+
+ * minibuf.texi (Basic Completion): Describe test-completion.
+ Collections can be lists of strings.
+ Clean up lazy-completion-table.
+ (Programmed Completion): Mention test-completion.
+ Clarify why lambda expressions are not accepted.
+ (Minibuffer Misc): Describe minibufferp.
+
+2003-07-14 Richard M. Stallman <rms@gnu.org>
+
+ * buffers.texi (Killing Buffers): kill-buffer-hook is perm local.
+
+ * windows.texi (Selecting Windows): New arg to select-window.
+ (Selecting Windows): Add with-selected-window.
+ (Size of Window): Add window-inside-edges, etc.
+
+ * internals.texi (Garbage Collection): Add post-gc-hook.
+
+ * processes.texi (Subprocess Creation): Add exec-suffixes.
+
+ * keymaps.texi (Functions for Key Lookup): Add current-active-maps.
+ (Scanning Keymaps): Add map-keymaps.
+ (Defining Menus): Add keymap-prompt.
+
+ * numbers.texi (Integer Basics): Add most-positive-fixnum,
+ most-negative-fixnum.
+
+ * compile.texi (Byte Compilation): Explain no-byte-compile
+ (Compiler Errors): New node.
+
+ * os.texi (User Identification): user-uid, user-real-uid
+ can return float.
+
+ * modes.texi (Major Mode Conventions): Explain about run-mode-hooks
+ and about derived modes.
+ (Minor Modes): Add minor-mode-list.
+ (Defining Minor Modes): Keyword args for define-minor-mode.
+ (Search-based Fontification): Explain managing other properties.
+ (Other Font Lock Variables): Add font-lock-extra-managed-props.
+ (Faces for Font Lock): Add font-locl-preprocessor-face.
+ (Hooks): Add run-mode-hooks and delay-mode-hooks.
+
+ * variables.texi (Creating Buffer-Local): Add buffer-local-value.
+ (Variable Aliases): Clarify defvaralias.
+
+ * loading.texi (Library Search): Add load-suffixes.
+
+ * minibuf.texi (Basic Completion): Add lazy-completion-table.
+ (Programmed Completion): Add dynamic-completion-table.
+
+ * files.texi (Changing Files): copy-file allows dir as NEWNAME.
+ (Magic File Names): Specify precedence order of handlers.
+
+ * commands.texi (Command Overview): Emacs server runs pre-command-hook
+ and post-command-hook.
+ (Waiting): New calling convention for sit-for.
+
+ * text.texi (Special Properties): local-map and keymap properties
+ apply based on their stickiness.
+
+2003-07-07 Richard M. Stallman <rms@gnu.org>
+
+ * modes.texi (Minor Mode Conventions): Specify only some kinds
+ of list values as args to minor modes.
+
+ * files.texi (File Name Expansion): Warn about iterative use
+ of substitute-in-file-name.
+
+ * advice.texi (Activation of Advice): Clean up previous change.
+
+2003-07-06 Markus Rost <rost@math.ohio-state.edu>
+
+ * advice.texi (Activation of Advice): Note that ad-start-advice is
+ turned on by default.
+
+2003-06-30 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Buffer Contents): Document current-word.
+ (Change Hooks): Not called for *Messages*.
+
+ * functions.texi (Defining Functions): Explain about redefining
+ primitives.
+ (Function Safety): Renamed. Minor changes.
+ Comment out the detailed criteria for what is safe.
+
+2003-06-22 Andreas Schwab <schwab@suse.de>
+
+ * objects.texi (Symbol Type): Fix description of examples.
+
+2003-06-16 Andreas Schwab <schwab@suse.de>
+
+ * hash.texi (Creating Hash): Fix description of :weakness.
+
+2003-06-13 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@gmx.net>
+
+ * files.texi (Changing Files): copy-file copies file modes, too.
+
+2003-05-28 Richard M. Stallman <rms@gnu.org>
+
+ * strings.texi (Creating Strings): Clarify split-string.
+
+2003-05-22 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * strings.texi (Creating Strings): Update split-string specification
+ and examples.
+
+2003-05-19 Richard M. Stallman <rms@gnu.org>
+
+ * elisp.texi: Correct invariant section names.
+
+2003-04-20 Richard M. Stallman <rms@gnu.org>
+
+ * os.texi (Timers): Explain about timers and quitting.
+
+2003-04-19 Richard M. Stallman <rms@gnu.org>
+
+ * internals.texi (Writing Emacs Primitives): Strings are
+ no longer special for GCPROs. Mention GCPRO5, GCPRO6.
+ Explain GCPRO convention for varargs function args.
+
+2003-04-16 Richard M. Stallman <rms@gnu.org>
+
+ * minibuf.texi (Minibuffer Misc): Document fn minibuffer-message.
+
+2003-04-08 Richard M. Stallman <rms@gnu.org>
+
+ * files.texi (Kinds of Files): Correct return value of file-symlink-p.
+
+2003-02-13 Kim F. Storm <storm@cua.dk>
+
+ * objects.texi (Character Type): New \s escape for space.
+
+2003-01-31 Joe Buehler <jhpb@draco.hekimian.com>
+
+ * os.texi (System Environment): Added cygwin system-type.
+
+2003-01-25 Richard M. Stallman <rms@gnu.org>
+
+ * keymaps.texi: Document that a symbol can act as a keymap.
+
+2003-01-13 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Changing Properties): Say string indices are origin-0.
+
+ * positions.texi (Screen Lines) <compute-motion>:
+ Correct order of elts in return value.
+
+ * keymaps.texi (Changing Key Bindings) <define-key>: Mention
+ how to define a default binding.
+
+2002-12-07 Markus Rost <rost@math.ohio-state.edu>
+
+ * loading.texi (Unloading): Fix recent change for load-history.
+
+ * customize.texi (Simple Types): Clarify description of custom
+ type 'number. Describe new custom type 'float.
+
+2002-12-04 Markus Rost <rost@math.ohio-state.edu>
+
+ * variables.texi (File Local Variables): Fix typo.
+
+2002-10-23 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@uni-duisburg.de>
+
+ From Michael Albinus <Michael.Albinus@alcatel.de>.
+
+ * README: Target for Info file is `make info'.
+
+ * files.texi (File Name Components): Fixed typos in
+ `file-name-sans-extension'.
+ (Magic File Names): Complete list of operations for magic file
+ name handlers.
+
+2002-09-16 Jonathan Yavner <jyavner@engineer.com>
+
+ * variables.texi (File Local Variables): New function
+ risky-local-variable-p.
+
+2002-09-15 Jonathan Yavner <jyavner@engineer.com>
+
+ * functions.texi (Function safety): New node about unsafep.
+
+2002-08-05 Per Abrahamsen <abraham@dina.kvl.dk>
+
+ * customize.texi (Splicing into Lists): Fixed example.
+ Reported by Fabrice Bauzac <fabrice.bauzac@wanadoo.fr>
+
+2002-06-17 Juanma Barranquero <lektu@terra.es>
+
+ * frames.texi (Display Feature Testing): Fix typo.
+
+2002-06-12 Andreas Schwab <schwab@suse.de>
+
+ * frames.texi (Initial Parameters, Resources): Fix references to
+ the Emacs manual.
+
+2002-05-13 Kim F. Storm <storm@cua.dk>
+
+ * variables.texi (Intro to Buffer-Local): Updated warning and
+ example relating to changing buffer inside let.
+
+2002-03-10 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * os.texi (Session Management): New node about X Session management.
+
+2002-01-18 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * elisp.texi (VERSION): Set to 2.9. Update the version of Emacs
+ to which the manual corresponds, and the copyright years.
+
+ * Makefile.in (VERSION): Set to 2.9.
+
+2001-11-29 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * elisp.texi: Change the category in @dircategory to "Emacs", to
+ make it consistent with info/dir.
+
+2001-11-25 Miles Bader <miles@gnu.org>
+
+ * text.texi (Fields): Describe new `limit' arg in
+ field-beginning/field-end.
+
+2001-11-17 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * permute-index: Don't depend on csh-specific features. Replace
+ the interpreter name with /bin/sh.
+
+ * two-volume-cross-refs.txt: New file.
+ * two.el: New file.
+ * spellfile: New file.
+
+2001-11-16 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * permute-index: New file.
+
+ * vol1.texi, vol2.texi: Renamed from elisp-vol1.texi and
+ elisp-vol2.texi, respectively, to avoid file-name clashes in DOS
+ 8+3 restricted namespace.
+
+ * Makefile.in (infodir): Define relative to $(srcdir).
+ ($(infodir)/elisp): Don't chdir into $(srcdir), but add it to the
+ include directories list via -I switch to makeinfo.
+ (index.texi): Use cp if both hard and symbolic links fail.
+
+2001-11-10 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * Makefile.in (distclean): Add.
+
+ The following changes make ELisp manual part of the Emacs
+ distribution:
+
+ * Makefile.in: Add Copyright notice.
+ (prefix): Remove.
+ (infodir): Change value to "../info".
+ (VPATH): New variable.
+ (MAKE): Don't define.
+ (texmacrodir): Don't define.
+ (texinputdir): Append the existing value of TEXINPUTS.
+ ($(infodir)/elisp): Instead of just "elisp". Reformat the
+ command to be compatible with man/Makefile.in, and to put the
+ output into ../info.
+ (info): Add target.
+ (installall): Target removed.
+
+2001-10-31 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+
+ * tips.texi (Coding Conventions): Fix typo.
+
+2001-10-23 Gerd Moellmann <gerd@gnu.org>
+
+ * Makefile.in (srcs): Add gpl.texi and doclicense.texi.
+
+2001-10-22 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * files.texi (File Name Components): Update the description of
+ file-name-sans-extension and file-name-extension, as they now
+ ignore leading dots.
+
+2001-10-20 Gerd Moellmann <gerd@gnu.org>
+
+ * (Version 21.1 released.)
+
+2001-10-19 Miles Bader <miles@gnu.org>
+
+ * positions.texi (Text Lines): Describe behavior of
+ `beginning-of-line'/`end-of-line' in the presence of field properties.
+
+2001-10-17 Gerd Moellmann <gerd@gnu.org>
+
+ * Makefile.in (VERSION): Set to 2.8.
+ (manual): Use `manual-21'.
+
+ * elisp.texi (VERSION): Add and use it where the version
+ number was used. Set it to 2.8.
+
+ * intro.texi: Likewise.
+
+2001-10-13 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * files.texi (File Name Completion): Document the significance of
+ a trailing slash in elements of completion-ignored-extensions.
+
+2001-10-06 Miles Bader <miles@gnu.org>
+
+ * variables.texi (Variable Aliases): It's `@defmac', not `@defmacro'.
+
+2001-10-04 Gerd Moellmann <gerd@gnu.org>
+
+ * variables.texi (Variable Aliases): New node.
+
+2001-10-04 Gerd Moellmann <gerd@gnu.org>
+
+ * Branch for 21.1.
+
+2001-10-02 Miles Bader <miles@gnu.org>
+
+ * minibuf.texi (Minibuffer Misc): Add entries for
+ `minibuffer-contents', `minibuffer-contents-no-properties', and
+ `delete-minibuffer-contents'.
+ Correct description for `minibuffer-prompt-end'.
+
+ * text.texi (Property Search): Correct descriptions of
+ `next-char-property-change' and `previous-char-property-change'.
+ Add entries for `next-single-char-property-change' and
+ `previous-single-char-property-change'.
+ Make operand names a bit more consistent.
+
+2001-09-30 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * frames.texi (Finding All Frames): Document that next-frame and
+ previous-frame are local to current terminal.
+
+2001-09-26 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * keymaps.texi (Creating Keymaps): Fix the description of the
+ result of make-keymap.
+
+2001-09-23 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * display.texi (Font Lookup, Attribute Functions)
+ (Image Descriptors): Add cross-references to the definition of
+ selected frame.
+
+ * buffers.texi (The Buffer List): Add cross-references to the
+ definition of selected frame.
+
+ * frames.texi (Input Focus): Clarify which frame is _the_ selected
+ frame at any given time.
+ (Multiple Displays, Size and Position): Add a cross-reference to
+ the definition of the selected frame.
+
+2001-09-08 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * strings.texi (String Conversion) <string-to-number>: Document
+ that a float is returned for integers that are too large.
+
+ * frames.texi (Mouse Position): Document mouse-position-function.
+ (Display Feature Testing): Document display-images-p.
+ (Window Frame Parameters): Document the cursor-type variable.
+
+ * numbers.texi (Integer Basics): Document CL style read syntax for
+ integers in bases other than 10.
+
+ * positions.texi (List Motion): Document
+ open-paren-in-column-0-is-defun-start.
+
+ * lists.texi (Sets And Lists): Document member-ignore-case.
+
+ * internals.texi (Garbage Collection): Document the used and free
+ strings report.
+ (Memory Usage): Document strings-consed.
+
+ * os.texi (Time of Day): Document float-time.
+ (Recording Input): Document that clear-this-command-keys clears
+ the vector to be returned by recent-keys.
+
+ * keymaps.texi (Scanning Keymaps) <where-is-internal>: The
+ argument keymap can be a list.
+
+ * nonascii.texi (User-Chosen Coding Systems)
+ <select-safe-coding-system>: Document the new argument
+ accept-default-p and the variable
+ select-safe-coding-system-accept-default-p. Tell what happens if
+ buffer-file-coding-system is undecided.
+ (Default Coding Systems): Document auto-coding-regexp-alist.
+
+ * display.texi (The Echo Area) <message>: Document
+ message-truncate-lines.
+ (Glyphs): Document that the glyph table is unused on windowed
+ displays.
+
+ * help.texi (Describing Characters) <single-key-description>:
+ Document the new argument no-angles.
+ (Accessing Documentation) <documentation-property>: Document that
+ a non-string property is evaluated.
+ <documentation>: Document that the function-documentation property
+ is looked for.
+
+ * windows.texi (Selecting Windows): Document some-window.
+
+ * text.texi (MD5 Checksum): New node, documents the md5 primitive.
+
+ * hooks.texi (Standard Hooks): Add kbd-macro-termination-hook and
+ apropos-mode-hook.
+
+ * commands.texi (Using Interactive): Document interactive-form.
+ (Keyboard Macros): Document kbd-macro-termination-hook.
+ (Command Loop Info): Document that clear-this-command-keys clears
+ the vector to be returned by recent-keys.
+
+2001-09-04 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (srcdir, texinputdir): New variables.
+ (srcs, index.texi, install): Use $(srcdir).
+ (.PHONY): Remove elisp.dvi.
+ (elisp): Use -I switch for makeinfo.
+ (elisp.dvi): Use $(srcdir) and $(texinputdir).
+ (installall, dist): Use $(srcdir).
+ Fix path to texinfo.tex.
+ (maintainer-clean): Add elisp.dvi and elisp.oaux.
+
+2001-08-30 Gerd Moellmann <gerd@gnu.org>
+
+ * display.texi (Conditional Display): Adjust to API change.
+
+ * configure: New file.
+
+2001-07-30 Gerd Moellmann <gerd@gnu.org>
+
+ * commands.texi (Repeat Events): Add description of
+ double-click-fuzz.
+
+2001-05-08 Stefan Monnier <monnier@cs.yale.edu>
+
+ * syntax.texi (Syntax Class Table): Add the missing designator for
+ comment and string fences.
+ (Syntax Properties): Add a xref to syntax table internals.
+ (Syntax Table Internals): Document string-to-syntax.
+
+2001-05-07 Gerd Moellmann <gerd@gnu.org>
+
+ * Makefile.in (install): Use install-info command line options
+ like in Emacs' Makefile.in.
+
+2000-12-09 Miles Bader <miles@gnu.org>
+
+ * windows.texi (Window Start): Update documentation for
+ `pos-visible-in-window-p'.
+
+2000-11-12 Stefan Monnier <monnier@cs.yale.edu>
+
+ * lists.texi (Building Lists): Add footnote to explain how to add
+ to the end of a list.
+
+2000-10-25 Gerd Moellmann <gerd@gnu.org>
+
+ * files.texi (Visiting Functions): Typos.
+
+2000-10-25 Kenichi Handa <handa@etl.go.jp>
+
+ * files.texi (Visiting Functions): Return value of
+ find-file-noselect may be a list of buffers if wildcards are used.
+
+2000-10-24 Miles Bader <miles@lsi.nec.co.jp>
+
+ * display.texi (Defining Faces): Document `graphic' display type
+ in face specs.
+
+2000-10-18 Kai Grossjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+ * hooks.texi (Standard Hooks): Replace obsolete
+ `after-make-frame-hook' with `after-make-frame-functions'.
+
+ * frames.texi (Creating Frames): Ditto.
+
+ * variables.texi (Future Local Variables): Ditto.
+
+2000-10-16 Gerd Moellmann <gerd@gnu.org>
+
+ * display.texi (Other Image Types): Add description of :foreground
+ and :background properties of mono PBM images.
+
+2000-08-17 Werner LEMBERG <wl@gnu.org>
+
+ * .cvsignore: New file.
+
+2000-01-05 Gerd Moellmann <gerd@gnu.org>
+
+ * tindex.pl: New script.
+
+1999-12-03 Dave Love <fx@gnu.org>
+
+ * Makefile.in (MAKEINFO): New parameter.
+
+1999-09-17 Richard Stallman <rms@gnu.org>
+
+ * Makefile.in (srcs): Add hash.texi.
+ (VERSION): Update to 20.6.
+
+1999-09-13 Richard Stallman <rms@gnu.org>
+
+ * Makefile.in (index.texi): If cannot make a symlink, make a hard link.
+
+1998-08-29 Karl Heuer <kwzh@gnu.org>
+
+ * configure.in: New file.
+ * Makefile.in: Renamed from Makefile.
+ (prefix, infodir): Use value obtained from configure.
+ (emacslibdir): Obsolete variable deleted.
+ (dist): Distribute configure.in, configure, Makefile.in.
+
+1998-06-12 Richard Stallman <rms@psilocin.ai.mit.edu>
+
+ * Makefile (INSTALL_INFO): New variable.
+ (install): Run install-info.
+
+1998-05-09 Richard Stallman <rms@psilocin.ai.mit.edu>
+
+ * Makefile (elisp.dvi): Add missing backslash.
+
+1998-05-02 Richard Stallman <rms@psilocin.gnu.org>
+
+ * Makefile (elisp.dvi): Don't depend on texindex or on elisp.tps.
+ Run texindex without `./'. Always run texindex on elisp.tp.
+ (elisp.tps): Target deleted.
+
+1998-04-05 Richard Stallman <rms@psilocin.gnu.org>
+
+ * Makefile (srcs): Add nonascii.texi and customize.texi.
+ (dist): Start by deleting `temp'.
+
+1998-02-17 Richard Stallman <rms@psilocin.gnu.org>
+
+ * Makefile (makeinfo, texindex): Targets deleted.
+ (makeinfo.o, texindex.o): Targets deleted.
+ (clean, dist): Don't do anything with them or with getopt*.
+
+1998-01-30 Richard Stallman <rms@psilocin.gnu.org>
+
+ * Makefile (SHELL): Defined.
+
+1998-01-27 Richard Stallman <rms@psilocin.gnu.org>
+
+ * Makefile (elisp.tps): New target.
+ (elisp.dvi): Depend on elisp.tps.
+
+Wed Apr 3 15:24:25 1996 Karl Heuer <kwzh@gnu.ai.mit.edu>
+
+ * README: Update phone number.
+
+ * Makefile (elisp): Make this be the default target.
+ Depend on makeinfo.c instead of makeinfo.
+ (install): Don't depend on elisp.dvi, since we don't install that.
+ Use mkinstalldirs.
+ (dist): Add mkinstalldirs.
+
+Mon Jun 19 14:35:26 1995 Richard Stallman <rms@mole.gnu.ai.mit.edu>
+
+ * Makefile (VERSION): Update version number.
+ (maintainer-clean): Renamed from realclean.
+
+Wed Jun 7 17:04:59 1995 Karl Heuer <kwzh@nutrimat.gnu.ai.mit.edu>
+
+ * Makefile (realclean): New target.
+ (elisp): Remove any old elisp-* files first.
+
+Tue Nov 23 19:59:40 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * Makefile (VERSION): New variable.
+ (dist): Make packaged directory name `elisp-manual-19-$(VERSION)'.
+ Compressed file suffix should be `.gz', not `.z'.
+
+Mon Nov 22 15:06:19 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Makefile (elisp): Depend on makeinfo.
+
+Fri Nov 19 02:29:33 1993 Noah Friedman (friedman@gnu.ai.mit.edu)
+
+ * Makefile (srcs): Add anti.texi.
+
+Fri May 28 18:04:53 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Makefile (infodir, prefix): New vars.
+ (install): Use infodir.
+ (emacsinfodir): Deleted.
+
+Thu May 27 02:11:25 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Makefile (srcs): Add calendar.texi.
+
+ * Makefile (dist): Copy texindex.c and makeinfo.c.
+ Limit elisp-* files to those with one or two digits.
+
+Sun May 16 17:58:21 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
+
+ * Makefile (dist): Changed to use Gzip instead of compress.
+
+Fri Apr 23 01:05:23 1993 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
+
+ * loading.texi (Unloading): define-function changed back to
+ defalias. It may not stay this way, but at least it's
+ consistent with the known-good version of the code patch.
+
+Fri Mar 26 21:14:54 1993 Eric S. Raymond (eric@geech.gnu.ai.mit.edu)
+
+ * modes.texi (Hooks): Document new optional arg of add-hook.
+
+Wed Mar 17 08:48:24 1993 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
+
+ * variables.texi: Document nil initial value of buffer-local variables.
+
+ * tips.texi: Add new section on standard library headers.
+
+Sat Feb 27 18:00:25 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
+
+ * Makefile (srcs): Add frame.texi to the list of sources.
+
+Tue Feb 23 10:50:25 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
+
+ * Makefile (dist): Don't bother excluding autosave files; they'll
+ never make it into the temp directory anyway, and the hash marks
+ in the name are problematic for make and the Bourne shell.
+ (srcs):
+
+Fri Feb 12 16:54:38 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
+
+ * Makefile (dist): Don't include backup files or autosave files in
+ the distribution tar file.
+
+Tue Nov 26 21:10:34 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu)
+
+ * Makefile (srcs): Added index.perm.
+ (elisp.dvi): Remove erroneous shell comment.
+ Expect output of permute-index in permuted.fns.
+ Save old elisp.aux in elisp.oaux.
+ (clean): Added index.texi to be deleted.
+
+Sat Aug 11 17:39:10 1990 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
+
+ * Makefile (elisp.dvi, index.texi): Use shell if instead of ifdef.
+
+Tue Jun 26 09:57:26 1990 David Lawrence (tale@geech)
+
+ * files.texi: Noted that completion-ignored-extensions is ignored
+ when making *Completions*.
+
+Fri Jun 8 16:44:44 EDT 1990 Jay Fenlason (hack@ai.mit.edu)
+
+ * Makefile make dist now depends on elisp.dvi, since it tries
+ to include it in the dist file.
+
+Wed Mar 28 22:57:35 1990 Jim Kingdon (kingdon@mole.ai.mit.edu)
+
+ * functions.texinfo (Mapping Functions): Add missing quote
+
+Mon Jun 19 18:09:24 1989 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
+
+ * texinfo.tex (frenchspacing): Use decimal codes for char to be set.
+ (defunargs): Turn off \hyphenchar of \sl font temporarily.
+
+Wed May 10 18:01:17 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu)
+
+ * @result{}, @expansion{}, @print{}, @quiv{}, @point{},
+ and @error{} are the terms now being used. The files in the
+ directory have been changed to reflect this.
+
+ * All instances of @indentedresultt{} have been changed to
+ ` @result{}', using 5 spaces at the begining of the line.
+
+Mon Apr 24 21:02:55 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu)
+
+ * @result{}, @expandsto{}, @prints{}, @quiv{}, @error{}, and the
+ experimental @indentedresult{}, @indentedexpandsto{} are part of
+ the texinfo.tex in this directory. These TeX macros are not
+ stable yet.
+
+Mon Apr 17 18:56:50 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu)
+
+ * texinfo.tex: Temporarily added
+ \let\result=\dblarrow
+ \def\error{{\it ERROR} \longdblarrow}
+ We need to do this better soon.
+
+Tue Apr 11 12:23:28 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu)
+
+ * Applied Karl Berry's patches to *.texinfo files, but not to
+ texinfo.tex; those diffs are in `berry-texinfo-tex-diffs'. (Karl's
+ new title page format is also not applied, since it requires
+ texinfo.tex changes.)
+
+ * Cleaned up `Makefile' and defined the `emacslibdir' directory
+ for the Project GNU development environment.
+
+;; Local Variables:
+;; coding: iso-2022-7bit
+;; add-log-time-zone-rule: t
+;; End:
+
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005, 2006, 2007 Free Software Foundation, Inc.
+
+ This file is part of GNU Emacs.
+
+ GNU Emacs is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ GNU Emacs is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Emacs; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+;;; arch-tag: 985ae0ce-df29-475b-b3f8-4bbcbf6f7fda
--- /dev/null
- @item :offset @var{columns}
- An integer indicating how many extra spaces to indent the subitems of
- this item. By default, subitems are indented the same as their parent.
+@c -*-texinfo-*-
+@c This is part of the GNU Emacs Lisp Reference Manual.
+@c Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+@c 2005, 2006, 2007 Free Software Foundation, Inc.
+@c See the file elisp.texi for copying conditions.
+@setfilename ../../info/customize
+@node Customization, Loading, Macros, Top
+@chapter Writing Customization Definitions
+
+@cindex customization definitions
+ This chapter describes how to declare user options for customization,
+and also customization groups for classifying them. We use the term
+@dfn{customization item} to include both kinds of customization
+definitions---as well as face definitions (@pxref{Defining Faces}).
+
+@menu
+* Common Keywords:: Common keyword arguments for all kinds of
+ customization declarations.
+* Group Definitions:: Writing customization group definitions.
+* Variable Definitions:: Declaring user options.
+* Customization Types:: Specifying the type of a user option.
+@end menu
+
+@node Common Keywords
+@section Common Item Keywords
+
+@cindex customization keywords
+ All kinds of customization declarations (for variables and groups, and
+for faces) accept keyword arguments for specifying various information.
+This section describes some keywords that apply to all kinds.
+
+ All of these keywords, except @code{:tag}, can be used more than once
+in a given item. Each use of the keyword has an independent effect.
+The keyword @code{:tag} is an exception because any given item can only
+display one name.
+
+@table @code
+@item :tag @var{label}
+@kindex tag@r{, customization keyword}
+Use @var{label}, a string, instead of the item's name, to label the
+item in customization menus and buffers. @strong{Don't use a tag
+which is substantially different from the item's real name; that would
+cause confusion.} One legitimate case for use of @code{:tag} is to
+specify a dash where normally a hyphen would be converted to a space:
+
+@example
+(defcustom cursor-in-non-selected-windows @dots{}
+ :tag "Cursor In Non-selected Windows"
+@end example
+
+@kindex group@r{, customization keyword}
+@item :group @var{group}
+Put this customization item in group @var{group}. When you use
+@code{:group} in a @code{defgroup}, it makes the new group a subgroup of
+@var{group}.
+
+If you use this keyword more than once, you can put a single item into
+more than one group. Displaying any of those groups will show this
+item. Please don't overdo this, since the result would be annoying.
+
+@item :link @var{link-data}
+@kindex link@r{, customization keyword}
+Include an external link after the documentation string for this item.
+This is a sentence containing an active field which references some
+other documentation.
+
+There are several alternatives you can use for @var{link-data}:
+
+@table @code
+@item (custom-manual @var{info-node})
+Link to an Info node; @var{info-node} is a string which specifies the
+node name, as in @code{"(emacs)Top"}. The link appears as
+@samp{[Manual]} in the customization buffer and enters the built-in
+Info reader on @var{info-node}.
+
+@item (info-link @var{info-node})
+Like @code{custom-manual} except that the link appears
+in the customization buffer with the Info node name.
+
+@item (url-link @var{url})
+Link to a web page; @var{url} is a string which specifies the
+@acronym{URL}. The link appears in the customization buffer as
+@var{url} and invokes the WWW browser specified by
+@code{browse-url-browser-function}.
+
+@item (emacs-commentary-link @var{library})
+Link to the commentary section of a library; @var{library} is a string
+which specifies the library name.
+
+@item (emacs-library-link @var{library})
+Link to an Emacs Lisp library file; @var{library} is a string which
+specifies the library name.
+
+@item (file-link @var{file})
+Link to a file; @var{file} is a string which specifies the name of the
+file to visit with @code{find-file} when the user invokes this link.
+
+@item (function-link @var{function})
+Link to the documentation of a function; @var{function} is a string
+which specifies the name of the function to describe with
+@code{describe-function} when the user invokes this link.
+
+@item (variable-link @var{variable})
+Link to the documentation of a variable; @var{variable} is a string
+which specifies the name of the variable to describe with
+@code{describe-variable} when the user invokes this link.
+
+@item (custom-group-link @var{group})
+Link to another customization group. Invoking it creates a new
+customization buffer for @var{group}.
+@end table
+
+You can specify the text to use in the customization buffer by adding
+@code{:tag @var{name}} after the first element of the @var{link-data};
+for example, @code{(info-link :tag "foo" "(emacs)Top")} makes a link to
+the Emacs manual which appears in the buffer as @samp{foo}.
+
+An item can have more than one external link; however, most items have
+none at all.
+
+@item :load @var{file}
+@kindex load@r{, customization keyword}
+Load file @var{file} (a string) before displaying this customization
+item. Loading is done with @code{load-library}, and only if the file is
+not already loaded.
+
+@item :require @var{feature}
+@kindex require@r{, customization keyword}
+Execute @code{(require '@var{feature})} when your saved customizations
+set the value of this item. @var{feature} should be a symbol.
+
+The most common reason to use @code{:require} is when a variable enables
+a feature such as a minor mode, and just setting the variable won't have
+any effect unless the code which implements the mode is loaded.
+
+@item :version @var{version}
+@kindex version@r{, customization keyword}
+This keyword specifies that the item was first introduced in Emacs
+version @var{version}, or that its default value was changed in that
+version. The value @var{version} must be a string.
+
+@item :package-version '(@var{package} . @var{version})
+@kindex package-version@r{, customization keyword}
+This keyword specifies that the item was first introduced in
+@var{package} version @var{version}, or that its meaning or default
+value was changed in that version. The value of @var{package} is a
+symbol and @var{version} is a string.
+
+This keyword takes priority over @code{:version}.
+
+@var{package} should be the official name of the package, such as MH-E
+or Gnus. If the package @var{package} is released as part of Emacs,
+@var{package} and @var{version} should appear in the value of
+@code{customize-package-emacs-version-alist}.
+@end table
+
+Packages distributed as part of Emacs that use the
+@code{:package-version} keyword must also update the
+@code{customize-package-emacs-version-alist} variable.
+
+@defvar customize-package-emacs-version-alist
+This alist provides a mapping for the versions of Emacs that are
+associated with versions of a package listed in the
+@code{:package-version} keyword. Its elements look like this:
+
+@example
+(@var{package} (@var{pversion} . @var{eversion})@dots{})
+@end example
+
+For each @var{package}, which is a symbol, there are one or more
+elements that contain a package version @var{pversion} with an
+associated Emacs version @var{eversion}. These versions are strings.
+For example, the MH-E package updates this alist with the following:
+
+@smallexample
+(add-to-list 'customize-package-emacs-version-alist
+ '(MH-E ("6.0" . "22.1") ("6.1" . "22.1") ("7.0" . "22.1")
+ ("7.1" . "22.1") ("7.2" . "22.1") ("7.3" . "22.1")
+ ("7.4" . "22.1") ("8.0" . "22.1")))
+@end smallexample
+
+The value of @var{package} needs to be unique and it needs to match
+the @var{package} value appearing in the @code{:package-version}
+keyword. Since the user might see the value in a error message, a good
+choice is the official name of the package, such as MH-E or Gnus.
+@end defvar
+
+@node Group Definitions
+@section Defining Customization Groups
+@cindex define customization group
+@cindex customization groups, defining
+
+ Each Emacs Lisp package should have one main customization group which
+contains all the options, faces and other groups in the package. If the
+package has a small number of options and faces, use just one group and
+put everything in it. When there are more than twelve or so options and
+faces, then you should structure them into subgroups, and put the
+subgroups under the package's main customization group. It is OK to
+put some of the options and faces in the package's main group alongside
+the subgroups.
+
+ The package's main or only group should be a member of one or more of
+the standard customization groups. (To display the full list of them,
+use @kbd{M-x customize}.) Choose one or more of them (but not too
+many), and add your group to each of them using the @code{:group}
+keyword.
+
+ The way to declare new customization groups is with @code{defgroup}.
+
+@defmac defgroup group members doc [keyword value]@dots{}
+Declare @var{group} as a customization group containing @var{members}.
+Do not quote the symbol @var{group}. The argument @var{doc} specifies
+the documentation string for the group.
+
+The argument @var{members} is a list specifying an initial set of
+customization items to be members of the group. However, most often
+@var{members} is @code{nil}, and you specify the group's members by
+using the @code{:group} keyword when defining those members.
+
+If you want to specify group members through @var{members}, each element
+should have the form @code{(@var{name} @var{widget})}. Here @var{name}
+is a symbol, and @var{widget} is a widget type for editing that symbol.
+Useful widgets are @code{custom-variable} for a variable,
+@code{custom-face} for a face, and @code{custom-group} for a group.
+
+When you introduce a new group into Emacs, use the @code{:version}
+keyword in the @code{defgroup}; then you need not use it for
+the individual members of the group.
+
+In addition to the common keywords (@pxref{Common Keywords}), you can
+also use this keyword in @code{defgroup}:
+
+@table @code
+@item :prefix @var{prefix}
+@kindex prefix@r{, @code{defgroup} keyword}
+If the name of an item in the group starts with @var{prefix}, then the
+tag for that item is constructed (by default) by omitting @var{prefix}.
+
+One group can have any number of prefixes.
+@end table
+@end defmac
+
+ The prefix-discarding feature is currently turned off, which means
+that @code{:prefix} currently has no effect. We did this because we
+found that discarding the specified prefixes often led to confusing
+names for options. This happened because the people who wrote the
+@code{defgroup} definitions for various groups added @code{:prefix}
+keywords whenever they make logical sense---that is, whenever the
+variables in the library have a common prefix.
+
+ In order to obtain good results with @code{:prefix}, it would be
+necessary to check the specific effects of discarding a particular
+prefix, given the specific items in a group and their names and
+documentation. If the resulting text is not clear, then @code{:prefix}
+should not be used in that case.
+
+ It should be possible to recheck all the customization groups, delete
+the @code{:prefix} specifications which give unclear results, and then
+turn this feature back on, if someone would like to do the work.
+
+@node Variable Definitions
+@section Defining Customization Variables
+@cindex define customization options
+@cindex customization variables, how to define
+
+ Use @code{defcustom} to declare user-customizable variables.
+
+@defmac defcustom option standard doc [keyword value]@dots{}
+This construct declares @var{option} as a customizable user option
+variable. You should not quote @var{option}. The argument @var{doc}
+specifies the documentation string for the variable. There is no need
+to start it with a @samp{*}, because @code{defcustom} automatically
+marks @var{option} as a @dfn{user option} (@pxref{Defining
+Variables}).
+
+The argument @var{standard} is an expression that specifies the
+standard value for @var{option}. Evaluating the @code{defcustom} form
+evaluates @var{standard}, but does not necessarily install the
+standard value. If @var{option} already has a default value,
+@code{defcustom} does not change it. If the user has saved a
+customization for @var{option}, @code{defcustom} installs the user's
+customized value as @var{option}'s default value. If neither of those
+cases applies, @code{defcustom} installs the result of evaluating
+@var{standard} as the default value.
+
+The expression @var{standard} can be evaluated at various other times,
+too---whenever the customization facility needs to know @var{option}'s
+standard value. So be sure to use an expression which is harmless to
+evaluate at any time. We recommend avoiding backquotes in
+@var{standard}, because they are not expanded when editing the value,
+so list values will appear to have the wrong structure.
+
+Every @code{defcustom} should specify @code{:group} at least once.
+
+If you specify the @code{:set} keyword, to make the variable take other
+special actions when set through the customization buffer, the
+variable's documentation string should tell the user specifically how
+to do the same job in hand-written Lisp code.
+
+When you evaluate a @code{defcustom} form with @kbd{C-M-x} in Emacs Lisp
+mode (@code{eval-defun}), a special feature of @code{eval-defun}
+arranges to set the variable unconditionally, without testing whether
+its value is void. (The same feature applies to @code{defvar}.)
+@xref{Defining Variables}.
+@end defmac
+
+ @code{defcustom} accepts the following additional keywords:
+
+@table @code
+@item :type @var{type}
+Use @var{type} as the data type for this option. It specifies which
+values are legitimate, and how to display the value.
+@xref{Customization Types}, for more information.
+
+@item :options @var{value-list}
+@kindex options@r{, @code{defcustom} keyword}
+Specify the list of reasonable values for use in this
+option. The user is not restricted to using only these values, but they
+are offered as convenient alternatives.
+
+This is meaningful only for certain types, currently including
+@code{hook}, @code{plist} and @code{alist}. See the definition of the
+individual types for a description of how to use @code{:options}.
+
+@item :set @var{setfunction}
+@kindex set@r{, @code{defcustom} keyword}
+Specify @var{setfunction} as the way to change the value of this
+option. The function @var{setfunction} should take two arguments, a
+symbol (the option name) and the new value, and should do whatever is
+necessary to update the value properly for this option (which may not
+mean simply setting the option as a Lisp variable). The default for
+@var{setfunction} is @code{set-default}.
+
+@item :get @var{getfunction}
+@kindex get@r{, @code{defcustom} keyword}
+Specify @var{getfunction} as the way to extract the value of this
+option. The function @var{getfunction} should take one argument, a
+symbol, and should return whatever customize should use as the
+``current value'' for that symbol (which need not be the symbol's Lisp
+value). The default is @code{default-value}.
+
+You have to really understand the workings of Custom to use
+@code{:get} correctly. It is meant for values that are treated in
+Custom as variables but are not actually stored in Lisp variables. It
+is almost surely a mistake to specify @code{getfunction} for a value
+that really is stored in a Lisp variable.
+
+@item :initialize @var{function}
+@kindex initialize@r{, @code{defcustom} keyword}
+@var{function} should be a function used to initialize the variable
+when the @code{defcustom} is evaluated. It should take two arguments,
+the option name (a symbol) and the value. Here are some predefined
+functions meant for use in this way:
+
+@table @code
+@item custom-initialize-set
+Use the variable's @code{:set} function to initialize the variable, but
+do not reinitialize it if it is already non-void.
+
+@item custom-initialize-default
+Like @code{custom-initialize-set}, but use the function
+@code{set-default} to set the variable, instead of the variable's
+@code{:set} function. This is the usual choice for a variable whose
+@code{:set} function enables or disables a minor mode; with this choice,
+defining the variable will not call the minor mode function, but
+customizing the variable will do so.
+
+@item custom-initialize-reset
+Always use the @code{:set} function to initialize the variable. If
+the variable is already non-void, reset it by calling the @code{:set}
+function using the current value (returned by the @code{:get} method).
+This is the default @code{:initialize} function.
+
+@item custom-initialize-changed
+Use the @code{:set} function to initialize the variable, if it is
+already set or has been customized; otherwise, just use
+@code{set-default}.
+
+@item custom-initialize-safe-set
+@itemx custom-initialize-safe-default
+These functions behave like @code{custom-initialize-set}
+(@code{custom-initialize-default}, respectively), but catch errors.
+If an error occurs during initialization, they set the variable to
+@code{nil} using @code{set-default}, and throw no error.
+
+These two functions are only meant for options defined in pre-loaded
+files, where some variables or functions used to compute the option's
+value may not yet be defined. The option normally gets updated in
+@file{startup.el}, ignoring the previously computed value. Because of
+this typical usage, the value which these two functions compute
+normally only matters when, after startup, one unsets the option's
+value and then reevaluates the defcustom. By that time, the necessary
+variables and functions will be defined, so there will not be an error.
+@end table
+
+@item :risky @var{value}
+@kindex risky@r{, @code{defcustom} keyword}
+Set this variable's @code{risky-local-variable} property to @var{value}.
+
+@item :safe @var{function}
+@kindex safe@r{, @code{defcustom} keyword}
+Set this variable's @code{safe-local-variable} property to @var{function}.
+
+@item :set-after @var{variables}
+@kindex set-after@r{, @code{defcustom} keyword}
+When setting variables according to saved customizations, make sure to
+set the variables @var{variables} before this one; in other words, delay
+setting this variable until after those others have been handled. Use
+@code{:set-after} if setting this variable won't work properly unless
+those other variables already have their intended values.
+@end table
+
+ The @code{:require} keyword is useful for an option that turns on the
+operation of a certain feature. Assuming that the package is coded to
+check the value of the option, you still need to arrange for the package
+to be loaded. You can do that with @code{:require}. @xref{Common
+Keywords}. Here is an example, from the library @file{saveplace.el}:
+
+@example
+(defcustom save-place nil
+ "Non-nil means automatically save place in each file..."
+ :type 'boolean
+ :require 'saveplace
+ :group 'save-place)
+@end example
+
+If a customization item has a type such as @code{hook} or
+@code{alist}, which supports @code{:options}, you can add additional
+values to the list from outside the @code{defcustom} declaration by
+calling @code{custom-add-frequent-value}. For example, if you define a
+function @code{my-lisp-mode-initialization} intended to be called from
+@code{emacs-lisp-mode-hook}, you might want to add that to the list of
+reasonable values for @code{emacs-lisp-mode-hook}, but not by editing
+its definition. You can do it thus:
+
+@example
+(custom-add-frequent-value 'emacs-lisp-mode-hook
+ 'my-lisp-mode-initialization)
+@end example
+
+@defun custom-add-frequent-value symbol value
+For the customization option @var{symbol}, add @var{value} to the
+list of reasonable values.
+
+The precise effect of adding a value depends on the customization type
+of @var{symbol}.
+@end defun
+
+Internally, @code{defcustom} uses the symbol property
+@code{standard-value} to record the expression for the standard value,
+and @code{saved-value} to record the value saved by the user with the
+customization buffer. Both properties are actually lists whose car is
+an expression which evaluates to the value.
+
+@node Customization Types
+@section Customization Types
+
+@cindex customization types
+ When you define a user option with @code{defcustom}, you must specify
+its @dfn{customization type}. That is a Lisp object which describes (1)
+which values are legitimate and (2) how to display the value in the
+customization buffer for editing.
+
+@kindex type@r{, @code{defcustom} keyword}
+ You specify the customization type in @code{defcustom} with the
+@code{:type} keyword. The argument of @code{:type} is evaluated, but
+only once when the @code{defcustom} is executed, so it isn't useful
+for the value to vary. Normally we use a quoted constant. For
+example:
+
+@example
+(defcustom diff-command "diff"
+ "The command to use to run diff."
+ :type '(string)
+ :group 'diff)
+@end example
+
+ In general, a customization type is a list whose first element is a
+symbol, one of the customization type names defined in the following
+sections. After this symbol come a number of arguments, depending on
+the symbol. Between the type symbol and its arguments, you can
+optionally write keyword-value pairs (@pxref{Type Keywords}).
+
+ Some of the type symbols do not use any arguments; those are called
+@dfn{simple types}. For a simple type, if you do not use any
+keyword-value pairs, you can omit the parentheses around the type
+symbol. For example just @code{string} as a customization type is
+equivalent to @code{(string)}.
+
+@menu
+* Simple Types::
+* Composite Types::
+* Splicing into Lists::
+* Type Keywords::
+* Defining New Types::
+@end menu
+
+All customization types are implemented as widgets; see @ref{Top, ,
+Introduction, widget, The Emacs Widget Library}, for details.
+
+@node Simple Types
+@subsection Simple Types
+
+ This section describes all the simple customization types.
+
+@table @code
+@item sexp
+The value may be any Lisp object that can be printed and read back. You
+can use @code{sexp} as a fall-back for any option, if you don't want to
+take the time to work out a more specific type to use.
+
+@item integer
+The value must be an integer, and is represented textually
+in the customization buffer.
+
+@item number
+The value must be a number (floating point or integer), and is
+represented textually in the customization buffer.
+
+@item float
+The value must be a floating point number, and is represented
+textually in the customization buffer.
+
+@item string
+The value must be a string, and the customization buffer shows just the
+contents, with no delimiting @samp{"} characters and no quoting with
+@samp{\}.
+
+@item regexp
+Like @code{string} except that the string must be a valid regular
+expression.
+
+@item character
+The value must be a character code. A character code is actually an
+integer, but this type shows the value by inserting the character in the
+buffer, rather than by showing the number.
+
+@item file
+The value must be a file name, and you can do completion with
+@kbd{M-@key{TAB}}.
+
+@item (file :must-match t)
+The value must be a file name for an existing file, and you can do
+completion with @kbd{M-@key{TAB}}.
+
+@item directory
+The value must be a directory name, and you can do completion with
+@kbd{M-@key{TAB}}.
+
+@item hook
+The value must be a list of functions (or a single function, but that is
+obsolete usage). This customization type is used for hook variables.
+You can use the @code{:options} keyword in a hook variable's
+@code{defcustom} to specify a list of functions recommended for use in
+the hook; see @ref{Variable Definitions}.
+
+@item alist
+The value must be a list of cons-cells, the @sc{car} of each cell
+representing a key, and the @sc{cdr} of the same cell representing an
+associated value. The user can add and delete key/value pairs, and
+edit both the key and the value of each pair.
+
+You can specify the key and value types like this:
+
+@smallexample
+(alist :key-type @var{key-type} :value-type @var{value-type})
+@end smallexample
+
+@noindent
+where @var{key-type} and @var{value-type} are customization type
+specifications. The default key type is @code{sexp}, and the default
+value type is @code{sexp}.
+
+The user can add any key matching the specified key type, but you can
+give some keys a preferential treatment by specifying them with the
+@code{:options} (see @ref{Variable Definitions}). The specified keys
+will always be shown in the customize buffer (together with a suitable
+value), with a checkbox to include or exclude or disable the key/value
+pair from the alist. The user will not be able to edit the keys
+specified by the @code{:options} keyword argument.
+
+The argument to the @code{:options} keywords should be a list of
+specifications for reasonable keys in the alist. Ordinarily, they are
+simply atoms, which stand for themselves as. For example:
+
+@smallexample
+:options '("foo" "bar" "baz")
+@end smallexample
+
+@noindent
+specifies that there are three ``known'' keys, namely @code{"foo"},
+@code{"bar"} and @code{"baz"}, which will always be shown first.
+
+You may want to restrict the value type for specific keys, for
+example, the value associated with the @code{"bar"} key can only be an
+integer. You can specify this by using a list instead of an atom in
+the list. The first element will specify the key, like before, while
+the second element will specify the value type. For example:
+
+@smallexample
+:options '("foo" ("bar" integer) "baz")
+@end smallexample
+
+Finally, you may want to change how the key is presented. By default,
+the key is simply shown as a @code{const}, since the user cannot change
+the special keys specified with the @code{:options} keyword. However,
+you may want to use a more specialized type for presenting the key, like
+@code{function-item} if you know it is a symbol with a function binding.
+This is done by using a customization type specification instead of a
+symbol for the key.
+
+@smallexample
+:options '("foo" ((function-item some-function) integer)
+ "baz")
+@end smallexample
+
+Many alists use lists with two elements, instead of cons cells. For
+example,
+
+@smallexample
+(defcustom list-alist '(("foo" 1) ("bar" 2) ("baz" 3))
+ "Each element is a list of the form (KEY VALUE).")
+@end smallexample
+
+@noindent
+instead of
+
+@smallexample
+(defcustom cons-alist '(("foo" . 1) ("bar" . 2) ("baz" . 3))
+ "Each element is a cons-cell (KEY . VALUE).")
+@end smallexample
+
+Because of the way lists are implemented on top of cons cells, you can
+treat @code{list-alist} in the example above as a cons cell alist, where
+the value type is a list with a single element containing the real
+value.
+
+@smallexample
+(defcustom list-alist '(("foo" 1) ("bar" 2) ("baz" 3))
+ "Each element is a list of the form (KEY VALUE)."
+ :type '(alist :value-type (group integer)))
+@end smallexample
+
+The @code{group} widget is used here instead of @code{list} only because
+the formatting is better suited for the purpose.
+
+Similarly, you can have alists with more values associated with each
+key, using variations of this trick:
+
+@smallexample
+(defcustom person-data '(("brian" 50 t)
+ ("dorith" 55 nil)
+ ("ken" 52 t))
+ "Alist of basic info about people.
+Each element has the form (NAME AGE MALE-FLAG)."
+ :type '(alist :value-type (group integer boolean)))
+
+(defcustom pets '(("brian")
+ ("dorith" "dog" "guppy")
+ ("ken" "cat"))
+ "Alist of people's pets.
+In an element (KEY . VALUE), KEY is the person's name,
+and the VALUE is a list of that person's pets."
+ :type '(alist :value-type (repeat string)))
+@end smallexample
+
+@item plist
+The @code{plist} custom type is similar to the @code{alist} (see above),
+except that the information is stored as a property list, i.e. a list of
+this form:
+
+@smallexample
+(@var{key} @var{value} @var{key} @var{value} @var{key} @var{value} @dots{})
+@end smallexample
+
+The default @code{:key-type} for @code{plist} is @code{symbol},
+rather than @code{sexp}.
+
+@item symbol
+The value must be a symbol. It appears in the customization buffer as
+the name of the symbol.
+
+@item function
+The value must be either a lambda expression or a function name. When
+it is a function name, you can do completion with @kbd{M-@key{TAB}}.
+
+@item variable
+The value must be a variable name, and you can do completion with
+@kbd{M-@key{TAB}}.
+
+@item face
+The value must be a symbol which is a face name, and you can do
+completion with @kbd{M-@key{TAB}}.
+
+@item boolean
+The value is boolean---either @code{nil} or @code{t}. Note that by
+using @code{choice} and @code{const} together (see the next section),
+you can specify that the value must be @code{nil} or @code{t}, but also
+specify the text to describe each value in a way that fits the specific
+meaning of the alternative.
+
+@item coding-system
+The value must be a coding-system name, and you can do completion with
+@kbd{M-@key{TAB}}.
+
+@item color
+The value must be a valid color name, and you can do completion with
+@kbd{M-@key{TAB}}. A sample is provided.
+@end table
+
+@node Composite Types
+@subsection Composite Types
+@cindex Composite Types (customization)
+
+ When none of the simple types is appropriate, you can use composite
+types, which build new types from other types or from specified data.
+The specified types or data are called the @dfn{arguments} of the
+composite type. The composite type normally looks like this:
+
+@example
+(@var{constructor} @var{arguments}@dots{})
+@end example
+
+@noindent
+but you can also add keyword-value pairs before the arguments, like
+this:
+
+@example
+(@var{constructor} @r{@{}@var{keyword} @var{value}@r{@}}@dots{} @var{arguments}@dots{})
+@end example
+
+ Here is a table of constructors and how to use them to write
+composite types:
+
+@table @code
+@item (cons @var{car-type} @var{cdr-type})
+The value must be a cons cell, its @sc{car} must fit @var{car-type}, and
+its @sc{cdr} must fit @var{cdr-type}. For example, @code{(cons string
+symbol)} is a customization type which matches values such as
+@code{("foo" . foo)}.
+
+In the customization buffer, the @sc{car} and the @sc{cdr} are
+displayed and edited separately, each according to the type
+that you specify for it.
+
+@item (list @var{element-types}@dots{})
+The value must be a list with exactly as many elements as the
+@var{element-types} given; and each element must fit the
+corresponding @var{element-type}.
+
+For example, @code{(list integer string function)} describes a list of
+three elements; the first element must be an integer, the second a
+string, and the third a function.
+
+In the customization buffer, each element is displayed and edited
+separately, according to the type specified for it.
+
+@item (group @var{element-types}@dots{})
+This works like @code{list} except for the formatting
+of text in the Custom buffer. @code{list} labels each
+element value with its tag; @code{group} does not.
+
+@item (vector @var{element-types}@dots{})
+Like @code{list} except that the value must be a vector instead of a
+list. The elements work the same as in @code{list}.
+
+@item (choice @var{alternative-types}@dots{})
+The value must fit at least one of @var{alternative-types}.
+For example, @code{(choice integer string)} allows either an
+integer or a string.
+
+In the customization buffer, the user selects an alternative
+using a menu, and can then edit the value in the usual way for that
+alternative.
+
+Normally the strings in this menu are determined automatically from the
+choices; however, you can specify different strings for the menu by
+including the @code{:tag} keyword in the alternatives. For example, if
+an integer stands for a number of spaces, while a string is text to use
+verbatim, you might write the customization type this way,
+
+@example
+(choice (integer :tag "Number of spaces")
+ (string :tag "Literal text"))
+@end example
+
+@noindent
+so that the menu offers @samp{Number of spaces} and @samp{Literal text}.
+
+In any alternative for which @code{nil} is not a valid value, other than
+a @code{const}, you should specify a valid default for that alternative
+using the @code{:value} keyword. @xref{Type Keywords}.
+
+If some values are covered by more than one of the alternatives,
+customize will choose the first alternative that the value fits. This
+means you should always list the most specific types first, and the
+most general last. Here's an example of proper usage:
+
+@example
+(choice (const :tag "Off" nil)
+ symbol (sexp :tag "Other"))
+@end example
+
+@noindent
+This way, the special value @code{nil} is not treated like other
+symbols, and symbols are not treated like other Lisp expressions.
+
+@item (radio @var{element-types}@dots{})
+This is similar to @code{choice}, except that the choices are displayed
+using `radio buttons' rather than a menu. This has the advantage of
+displaying documentation for the choices when applicable and so is often
+a good choice for a choice between constant functions
+(@code{function-item} customization types).
+
+@item (const @var{value})
+The value must be @var{value}---nothing else is allowed.
+
+The main use of @code{const} is inside of @code{choice}. For example,
+@code{(choice integer (const nil))} allows either an integer or
+@code{nil}.
+
+@code{:tag} is often used with @code{const}, inside of @code{choice}.
+For example,
+
+@example
+(choice (const :tag "Yes" t)
+ (const :tag "No" nil)
+ (const :tag "Ask" foo))
+@end example
+
+@noindent
+describes a variable for which @code{t} means yes, @code{nil} means no,
+and @code{foo} means ``ask.''
+
+@item (other @var{value})
+This alternative can match any Lisp value, but if the user chooses this
+alternative, that selects the value @var{value}.
+
+The main use of @code{other} is as the last element of @code{choice}.
+For example,
+
+@example
+(choice (const :tag "Yes" t)
+ (const :tag "No" nil)
+ (other :tag "Ask" foo))
+@end example
+
+@noindent
+describes a variable for which @code{t} means yes, @code{nil} means no,
+and anything else means ``ask.'' If the user chooses @samp{Ask} from
+the menu of alternatives, that specifies the value @code{foo}; but any
+other value (not @code{t}, @code{nil} or @code{foo}) displays as
+@samp{Ask}, just like @code{foo}.
+
+@item (function-item @var{function})
+Like @code{const}, but used for values which are functions. This
+displays the documentation string as well as the function name.
+The documentation string is either the one you specify with
+@code{:doc}, or @var{function}'s own documentation string.
+
+@item (variable-item @var{variable})
+Like @code{const}, but used for values which are variable names. This
+displays the documentation string as well as the variable name. The
+documentation string is either the one you specify with @code{:doc}, or
+@var{variable}'s own documentation string.
+
+@item (set @var{types}@dots{})
+The value must be a list, and each element of the list must match one of
+the @var{types} specified.
+
+This appears in the customization buffer as a checklist, so that each of
+@var{types} may have either one corresponding element or none. It is
+not possible to specify two different elements that match the same one
+of @var{types}. For example, @code{(set integer symbol)} allows one
+integer and/or one symbol in the list; it does not allow multiple
+integers or multiple symbols. As a result, it is rare to use
+nonspecific types such as @code{integer} in a @code{set}.
+
+Most often, the @var{types} in a @code{set} are @code{const} types, as
+shown here:
+
+@example
+(set (const :bold) (const :italic))
+@end example
+
+Sometimes they describe possible elements in an alist:
+
+@example
+(set (cons :tag "Height" (const height) integer)
+ (cons :tag "Width" (const width) integer))
+@end example
+
+@noindent
+That lets the user specify a height value optionally
+and a width value optionally.
+
+@item (repeat @var{element-type})
+The value must be a list and each element of the list must fit the type
+@var{element-type}. This appears in the customization buffer as a
+list of elements, with @samp{[INS]} and @samp{[DEL]} buttons for adding
+more elements or removing elements.
+
+@item (restricted-sexp :match-alternatives @var{criteria})
+This is the most general composite type construct. The value may be
+any Lisp object that satisfies one of @var{criteria}. @var{criteria}
+should be a list, and each element should be one of these
+possibilities:
+
+@itemize @bullet
+@item
+A predicate---that is, a function of one argument that has no side
+effects, and returns either @code{nil} or non-@code{nil} according to
+the argument. Using a predicate in the list says that objects for which
+the predicate returns non-@code{nil} are acceptable.
+
+@item
+A quoted constant---that is, @code{'@var{object}}. This sort of element
+in the list says that @var{object} itself is an acceptable value.
+@end itemize
+
+For example,
+
+@example
+(restricted-sexp :match-alternatives
+ (integerp 't 'nil))
+@end example
+
+@noindent
+allows integers, @code{t} and @code{nil} as legitimate values.
+
+The customization buffer shows all legitimate values using their read
+syntax, and the user edits them textually.
+@end table
+
+ Here is a table of the keywords you can use in keyword-value pairs
+in a composite type:
+
+@table @code
+@item :tag @var{tag}
+Use @var{tag} as the name of this alternative, for user communication
+purposes. This is useful for a type that appears inside of a
+@code{choice}.
+
+@item :match-alternatives @var{criteria}
+@kindex match-alternatives@r{, customization keyword}
+Use @var{criteria} to match possible values. This is used only in
+@code{restricted-sexp}.
+
+@item :args @var{argument-list}
+@kindex args@r{, customization keyword}
+Use the elements of @var{argument-list} as the arguments of the type
+construct. For instance, @code{(const :args (foo))} is equivalent to
+@code{(const foo)}. You rarely need to write @code{:args} explicitly,
+because normally the arguments are recognized automatically as
+whatever follows the last keyword-value pair.
+@end table
+
+@node Splicing into Lists
+@subsection Splicing into Lists
+
+ The @code{:inline} feature lets you splice a variable number of
+elements into the middle of a list or vector. You use it in a
+@code{set}, @code{choice} or @code{repeat} type which appears among the
+element-types of a @code{list} or @code{vector}.
+
+ Normally, each of the element-types in a @code{list} or @code{vector}
+describes one and only one element of the list or vector. Thus, if an
+element-type is a @code{repeat}, that specifies a list of unspecified
+length which appears as one element.
+
+ But when the element-type uses @code{:inline}, the value it matches is
+merged directly into the containing sequence. For example, if it
+matches a list with three elements, those become three elements of the
+overall sequence. This is analogous to using @samp{,@@} in the backquote
+construct.
+
+ For example, to specify a list whose first element must be @code{baz}
+and whose remaining arguments should be zero or more of @code{foo} and
+@code{bar}, use this customization type:
+
+@example
+(list (const baz) (set :inline t (const foo) (const bar)))
+@end example
+
+@noindent
+This matches values such as @code{(baz)}, @code{(baz foo)}, @code{(baz bar)}
+and @code{(baz foo bar)}.
+
+ When the element-type is a @code{choice}, you use @code{:inline} not
+in the @code{choice} itself, but in (some of) the alternatives of the
+@code{choice}. For example, to match a list which must start with a
+file name, followed either by the symbol @code{t} or two strings, use
+this customization type:
+
+@example
+(list file
+ (choice (const t)
+ (list :inline t string string)))
+@end example
+
+@noindent
+If the user chooses the first alternative in the choice, then the
+overall list has two elements and the second element is @code{t}. If
+the user chooses the second alternative, then the overall list has three
+elements and the second and third must be strings.
+
+@node Type Keywords
+@subsection Type Keywords
+
+You can specify keyword-argument pairs in a customization type after the
+type name symbol. Here are the keywords you can use, and their
+meanings:
+
+@table @code
+@item :value @var{default}
+This is used for a type that appears as an alternative inside of
+@code{choice}; it specifies the default value to use, at first, if and
+when the user selects this alternative with the menu in the
+customization buffer.
+
+Of course, if the actual value of the option fits this alternative, it
+will appear showing the actual value, not @var{default}.
+
+If @code{nil} is not a valid value for the alternative, then it is
+essential to specify a valid default with @code{:value}.
+
+@item :format @var{format-string}
+@kindex format@r{, customization keyword}
+This string will be inserted in the buffer to represent the value
+corresponding to the type. The following @samp{%} escapes are available
+for use in @var{format-string}:
+
+@table @samp
+@item %[@var{button}%]
+Display the text @var{button} marked as a button. The @code{:action}
+attribute specifies what the button will do if the user invokes it;
+its value is a function which takes two arguments---the widget which
+the button appears in, and the event.
+
+There is no way to specify two different buttons with different
+actions.
+
+@item %@{@var{sample}%@}
+Show @var{sample} in a special face specified by @code{:sample-face}.
+
+@item %v
+Substitute the item's value. How the value is represented depends on
+the kind of item, and (for variables) on the customization type.
+
+@item %d
+Substitute the item's documentation string.
+
+@item %h
+Like @samp{%d}, but if the documentation string is more than one line,
+add an active field to control whether to show all of it or just the
+first line.
+
+@item %t
+Substitute the tag here. You specify the tag with the @code{:tag}
+keyword.
+
+@item %%
+Display a literal @samp{%}.
+@end table
+
+@item :action @var{action}
+@kindex action@r{, customization keyword}
+Perform @var{action} if the user clicks on a button.
+
+@item :button-face @var{face}
+@kindex button-face@r{, customization keyword}
+Use the face @var{face} (a face name or a list of face names) for button
+text displayed with @samp{%[@dots{}%]}.
+
+@item :button-prefix @var{prefix}
+@itemx :button-suffix @var{suffix}
+@kindex button-prefix@r{, customization keyword}
+@kindex button-suffix@r{, customization keyword}
+These specify the text to display before and after a button.
+Each can be:
+
+@table @asis
+@item @code{nil}
+No text is inserted.
+
+@item a string
+The string is inserted literally.
+
+@item a symbol
+The symbol's value is used.
+@end table
+
+@item :tag @var{tag}
+Use @var{tag} (a string) as the tag for the value (or part of the value)
+that corresponds to this type.
+
+@item :doc @var{doc}
+@kindex doc@r{, customization keyword}
+Use @var{doc} as the documentation string for this value (or part of the
+value) that corresponds to this type. In order for this to work, you
+must specify a value for @code{:format}, and use @samp{%d} or @samp{%h}
+in that value.
+
+The usual reason to specify a documentation string for a type is to
+provide more information about the meanings of alternatives inside a
+@code{:choice} type or the parts of some other composite type.
+
+@item :help-echo @var{motion-doc}
+@kindex help-echo@r{, customization keyword}
+When you move to this item with @code{widget-forward} or
+@code{widget-backward}, it will display the string @var{motion-doc} in
+the echo area. In addition, @var{motion-doc} is used as the mouse
+@code{help-echo} string and may actually be a function or form evaluated
+to yield a help string. If it is a function, it is called with one
+argument, the widget.
+
+@item :match @var{function}
+@kindex match@r{, customization keyword}
+Specify how to decide whether a value matches the type. The
+corresponding value, @var{function}, should be a function that accepts
+two arguments, a widget and a value; it should return non-@code{nil} if
+the value is acceptable.
+
++@item :validate @var{function}
++Specify a validation function for input. @var{function} takes a
++widget as an argument, and should return @code{nil} if the widget's
++current value is valid for the widget. Otherwise, it should return
++the widget containing the invalid data, and set that widget's
++@code{:error} property to a string explaining the error.
++
++In many cases you can use the function @code{widget-children-validate}
++for this job; it tests that all children of @var{widget} are valid.
++
+@ignore
+@item :indent @var{columns}
+Indent this item by @var{columns} columns. The indentation is used for
+@samp{%n}, and automatically for group names, for checklists and radio
+buttons, and for editable lists. It affects the whole of the
+item except for the first line.
+
- @item :extra-offset
- An integer indicating how many extra spaces to add to this item's
- indentation, compared to its parent.
++@item :offset @var{extra}
++Indent the subitems of this item @var{extra} columns more than this
++item itself. By default, subitems are indented the same as their
++parent.
+
- @item :notify
- A function called each time the item or a subitem is changed. The
- function is called with two or three arguments. The first argument is
- the item itself, the second argument is the item that was changed, and
- the third argument is the event leading to the change, if any.
++@item :extra-offset @var{n}
++Add @var{n} extra spaces to this item's indentation, compared to its
++parent's indentation.
+
- @item :menu-tag
- A tag used in the menu when the widget is used as an option in a
- @code{menu-choice} widget.
++@item :notify @var{function}
++Call @var{function} each time the item or a subitem is changed. The
++function gets two or three arguments. The first argument is the item
++itself, the second argument is the item that was changed, and the
++third argument is the event leading to the change, if any.
+
- @item :validate
- A function which takes a widget as an argument, and return @code{nil}
- if the widget's current value is valid for the widget. Otherwise, it
- should return the widget containing the invalid data, and set that
- widget's @code{:error} property to a string explaining the error.
-
- You can use the function @code{widget-children-validate} for this job;
- it tests that all children of @var{widget} are valid.
-
++@item :menu-tag @var{tag-string}
++Use @var{tag-string} in the menu when the widget is used as an option
++in a @code{menu-choice} widget.
+
+@item :menu-tag-get
+A function used for finding the tag when the widget is used as an option
+in a @code{menu-choice} widget. By default, the tag used will be either the
+@code{:menu-tag} or @code{:tag} property if present, or the @code{princ}
+representation of the @code{:value} property if not.
+
+@item :tab-order
+Specify the order in which widgets are traversed with
+@code{widget-forward} or @code{widget-backward}. This is only partially
+implemented.
+
+@enumerate a
+@item
+Widgets with tabbing order @code{-1} are ignored.
+
+@item
+(Unimplemented) When on a widget with tabbing order @var{n}, go to the
+next widget in the buffer with tabbing order @var{n+1} or @code{nil},
+whichever comes first.
+
+@item
+When on a widget with no tabbing order specified, go to the next widget
+in the buffer with a positive tabbing order, or @code{nil}
+@end enumerate
+
+@item :parent
+The parent of a nested widget (e.g., a @code{menu-choice} item or an
+element of a @code{editable-list} widget).
+
+@item :sibling-args
+This keyword is only used for members of a @code{radio-button-choice} or
+@code{checklist}. The value should be a list of extra keyword
+arguments, which will be used when creating the @code{radio-button} or
+@code{checkbox} associated with this item.
+@end ignore
+@end table
+
+@node Defining New Types
+@subsection Defining New Types
+
+In the previous sections we have described how to construct elaborate
+type specifications for @code{defcustom}. In some cases you may want
+to give such a type specification a name. The obvious case is when
+you are using the same type for many user options: rather than repeat
+the specification for each option, you can give the type specification
+a name, and use that name each @code{defcustom}. The other case is
+when a user option's value is a recursive data structure. To make it
+possible for a datatype to refer to itself, it needs to have a name.
+
+Since custom types are implemented as widgets, the way to define a new
+customize type is to define a new widget. We are not going to describe
+the widget interface here in details, see @ref{Top, , Introduction,
+widget, The Emacs Widget Library}, for that. Instead we are going to
+demonstrate the minimal functionality needed for defining new customize
+types by a simple example.
+
+@example
+(define-widget 'binary-tree-of-string 'lazy
+ "A binary tree made of cons-cells and strings."
+ :offset 4
+ :tag "Node"
+ :type '(choice (string :tag "Leaf" :value "")
+ (cons :tag "Interior"
+ :value ("" . "")
+ binary-tree-of-string
+ binary-tree-of-string)))
+
+(defcustom foo-bar ""
+ "Sample variable holding a binary tree of strings."
+ :type 'binary-tree-of-string)
+@end example
+
+The function to define a new widget is called @code{define-widget}. The
+first argument is the symbol we want to make a new widget type. The
+second argument is a symbol representing an existing widget, the new
+widget is going to be defined in terms of difference from the existing
+widget. For the purpose of defining new customization types, the
+@code{lazy} widget is perfect, because it accepts a @code{:type} keyword
+argument with the same syntax as the keyword argument to
+@code{defcustom} with the same name. The third argument is a
+documentation string for the new widget. You will be able to see that
+string with the @kbd{M-x widget-browse @key{RET} binary-tree-of-string
+@key{RET}} command.
+
+After these mandatory arguments follow the keyword arguments. The most
+important is @code{:type}, which describes the data type we want to match
+with this widget. Here a @code{binary-tree-of-string} is described as
+being either a string, or a cons-cell whose car and cdr are themselves
+both @code{binary-tree-of-string}. Note the reference to the widget
+type we are currently in the process of defining. The @code{:tag}
+attribute is a string to name the widget in the user interface, and the
+@code{:offset} argument is there to ensure that child nodes are
+indented four spaces relative to the parent node, making the tree
+structure apparent in the customization buffer.
+
+The @code{defcustom} shows how the new widget can be used as an ordinary
+customization type.
+
+The reason for the name @code{lazy} is that the other composite
+widgets convert their inferior widgets to internal form when the
+widget is instantiated in a buffer. This conversion is recursive, so
+the inferior widgets will convert @emph{their} inferior widgets. If
+the data structure is itself recursive, this conversion is an infinite
+recursion. The @code{lazy} widget prevents the recursion: it convert
+its @code{:type} argument only when needed.
+
+@ignore
+ arch-tag: d1b8fad3-f48c-4ce4-a402-f73b5ef19bd2
+@end ignore
--- /dev/null
- If a frame has a non-@code{nil} title, it appears in the window system's
- border for the frame, and also in the mode line of windows in that frame
- if @code{mode-line-frame-identification} uses @samp{%F}
- (@pxref{%-Constructs}). This is normally the case when Emacs is not
- using a window system, and can only display one frame at a time.
- @xref{Frame Titles}.
+@c -*-texinfo-*-
+@c This is part of the GNU Emacs Lisp Reference Manual.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
+@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+@c See the file elisp.texi for copying conditions.
+@setfilename ../../info/frames
+@node Frames, Positions, Windows, Top
+@chapter Frames
+@cindex frame
+
+ In Emacs editing, A @dfn{frame} is a screen object that contains one
+or more Emacs windows. It's the kind of object that is called a
+``window'' in the terminology of graphical environments; but we can't
+call it a ``window'' here, because Emacs uses that word in a different
+way.
+
+ A frame initially contains a single main window and/or a minibuffer
+window; you can subdivide the main window vertically or horizontally
+into smaller windows. In Emacs Lisp, a @dfn{frame object} is a Lisp
+object that represents a frame on the screen.
+
+@cindex terminal frame
+ When Emacs runs on a text-only terminal, it starts with one
+@dfn{terminal frame}. If you create additional ones, Emacs displays
+one and only one at any given time---on the terminal screen, of course.
+
+@cindex window frame
+ When Emacs communicates directly with a supported window system, such
+as X, it does not have a terminal frame; instead, it starts with
+a single @dfn{window frame}, but you can create more, and Emacs can
+display several such frames at once as is usual for window systems.
+
+@defun framep object
+This predicate returns a non-@code{nil} value if @var{object} is a
+frame, and @code{nil} otherwise. For a frame, the value indicates which
+kind of display the frame uses:
+
+@table @code
+@item x
+The frame is displayed in an X window.
+@item t
+A terminal frame on a character display.
+@item mac
+The frame is displayed on a Macintosh.
+@item w32
+The frame is displayed on MS-Windows 9X/NT.
+@item pc
+The frame is displayed on an MS-DOS terminal.
+@end table
+@end defun
+
+@menu
+* Creating Frames:: Creating additional frames.
+* Multiple Displays:: Creating frames on other displays.
+* Frame Parameters:: Controlling frame size, position, font, etc.
+* Frame Titles:: Automatic updating of frame titles.
+* Deleting Frames:: Frames last until explicitly deleted.
+* Finding All Frames:: How to examine all existing frames.
+* Frames and Windows:: A frame contains windows;
+ display of text always works through windows.
+* Minibuffers and Frames:: How a frame finds the minibuffer to use.
+* Input Focus:: Specifying the selected frame.
+* Visibility of Frames:: Frames may be visible or invisible, or icons.
+* Raising and Lowering:: Raising a frame makes it hide other windows;
+ lowering it makes the others hide it.
+* Frame Configurations:: Saving the state of all frames.
+* Mouse Tracking:: Getting events that say when the mouse moves.
+* Mouse Position:: Asking where the mouse is, or moving it.
+* Pop-Up Menus:: Displaying a menu for the user to select from.
+* Dialog Boxes:: Displaying a box to ask yes or no.
+* Pointer Shape:: Specifying the shape of the mouse pointer.
+* Window System Selections:: Transferring text to and from other X clients.
+* Drag and Drop:: Internals of Drag-and-Drop implementation.
+* Color Names:: Getting the definitions of color names.
+* Text Terminal Colors:: Defining colors for text-only terminals.
+* Resources:: Getting resource values from the server.
+* Display Feature Testing:: Determining the features of a terminal.
+@end menu
+
+ @xref{Display}, for information about the related topic of
+controlling Emacs redisplay.
+
+@node Creating Frames
+@section Creating Frames
+
+To create a new frame, call the function @code{make-frame}.
+
+@defun make-frame &optional alist
+This function creates and returns a new frame, displaying the current
+buffer. If you are using a supported window system, it makes a window
+frame; otherwise, it makes a terminal frame.
+
+The argument is an alist specifying frame parameters. Any parameters
+not mentioned in @var{alist} default according to the value of the
+variable @code{default-frame-alist}; parameters not specified even there
+default from the standard X resources or whatever is used instead on
+your system.
+
+The set of possible parameters depends in principle on what kind of
+window system Emacs uses to display its frames. @xref{Window Frame
+Parameters}, for documentation of individual parameters you can specify.
+
+This function itself does not make the new frame the selected frame.
+@xref{Input Focus}. The previously selected frame remains selected.
+However, the window system may select the new frame for its own reasons,
+for instance if the frame appears under the mouse pointer and your
+setup is for focus to follow the pointer.
+@end defun
+
+@defvar before-make-frame-hook
+A normal hook run by @code{make-frame} before it actually creates the
+frame.
+@end defvar
+
+@defvar after-make-frame-functions
+An abnormal hook run by @code{make-frame} after it creates the frame.
+Each function in @code{after-make-frame-functions} receives one argument, the
+frame just created.
+@end defvar
+
+@node Multiple Displays
+@section Multiple Displays
+@cindex multiple X displays
+@cindex displays, multiple
+
+ A single Emacs can talk to more than one X display.
+Initially, Emacs uses just one display---the one chosen with the
+@code{DISPLAY} environment variable or with the @samp{--display} option
+(@pxref{Initial Options,,, emacs, The GNU Emacs Manual}). To connect to
+another display, use the command @code{make-frame-on-display} or specify
+the @code{display} frame parameter when you create the frame.
+
+ Emacs treats each X server as a separate terminal, giving each one its
+own selected frame and its own minibuffer windows. However, only one of
+those frames is ``@emph{the} selected frame'' at any given moment, see
+@ref{Input Focus}.
+
+ A few Lisp variables are @dfn{terminal-local}; that is, they have a
+separate binding for each terminal. The binding in effect at any time
+is the one for the terminal that the currently selected frame belongs
+to. These variables include @code{default-minibuffer-frame},
+@code{defining-kbd-macro}, @code{last-kbd-macro}, and
+@code{system-key-alist}. They are always terminal-local, and can never
+be buffer-local (@pxref{Buffer-Local Variables}).
+
+ A single X server can handle more than one screen. A display name
+@samp{@var{host}:@var{server}.@var{screen}} has three parts; the last
+part specifies the screen number for a given server. When you use two
+screens belonging to one server, Emacs knows by the similarity in their
+names that they share a single keyboard, and it treats them as a single
+terminal.
+
+ Note that some graphical terminals can output to more than a one
+monitor (or other output device) at the same time. On these
+``multi-monitor'' setups, a single @var{display} value controls the
+output to all the physical monitors. In this situation, there is
+currently no platform-independent way for Emacs to distinguish between
+the different physical monitors.
+
+@deffn Command make-frame-on-display display &optional parameters
+This creates and returns a new frame on display @var{display}, taking
+the other frame parameters from @var{parameters}. Aside from the
+@var{display} argument, it is like @code{make-frame} (@pxref{Creating
+Frames}).
+@end deffn
+
+@defun x-display-list
+This returns a list that indicates which X displays Emacs has a
+connection to. The elements of the list are strings, and each one is
+a display name.
+@end defun
+
+@defun x-open-connection display &optional xrm-string must-succeed
+This function opens a connection to the X display @var{display}. It
+does not create a frame on that display, but it permits you to check
+that communication can be established with that display.
+
+The optional argument @var{xrm-string}, if not @code{nil}, is a
+string of resource names and values, in the same format used in the
+@file{.Xresources} file. The values you specify override the resource
+values recorded in the X server itself; they apply to all Emacs frames
+created on this display. Here's an example of what this string might
+look like:
+
+@example
+"*BorderWidth: 3\n*InternalBorder: 2\n"
+@end example
+
+@xref{X Resources,, X Resources, emacs, The GNU Emacs Manual}.
+
+If @var{must-succeed} is non-@code{nil}, failure to open the connection
+terminates Emacs. Otherwise, it is an ordinary Lisp error.
+@end defun
+
+@defun x-close-connection display
+This function closes the connection to display @var{display}. Before
+you can do this, you must first delete all the frames that were open on
+that display (@pxref{Deleting Frames}).
+@end defun
+
+@node Frame Parameters
+@section Frame Parameters
+@cindex frame parameters
+
+ A frame has many parameters that control its appearance and behavior.
+Just what parameters a frame has depends on what display mechanism it
+uses.
+
+ Frame parameters exist mostly for the sake of window systems. A
+terminal frame has a few parameters, mostly for compatibility's sake;
+only the @code{height}, @code{width}, @code{name}, @code{title},
+@code{menu-bar-lines}, @code{buffer-list} and @code{buffer-predicate}
+parameters do something special. If the terminal supports colors, the
+parameters @code{foreground-color}, @code{background-color},
+@code{background-mode} and @code{display-type} are also meaningful.
+
+@menu
+* Parameter Access:: How to change a frame's parameters.
+* Initial Parameters:: Specifying frame parameters when you make a frame.
+* Window Frame Parameters:: List of frame parameters for window systems.
+* Size and Position:: Changing the size and position of a frame.
+* Geometry:: Parsing geometry specifications.
+@end menu
+
+@node Parameter Access
+@subsection Access to Frame Parameters
+
+These functions let you read and change the parameter values of a
+frame.
+
+@defun frame-parameter frame parameter
+This function returns the value of the parameter @var{parameter} (a
+symbol) of @var{frame}. If @var{frame} is @code{nil}, it returns the
+selected frame's parameter. If @var{frame} has no setting for
+@var{parameter}, this function returns @code{nil}.
+@end defun
+
+@defun frame-parameters &optional frame
+The function @code{frame-parameters} returns an alist listing all the
+parameters of @var{frame} and their values. If @var{frame} is
+@code{nil} or omitted, this returns the selected frame's parameters
+@end defun
+
+@defun modify-frame-parameters frame alist
+This function alters the parameters of frame @var{frame} based on the
+elements of @var{alist}. Each element of @var{alist} has the form
+@code{(@var{parm} . @var{value})}, where @var{parm} is a symbol naming a
+parameter. If you don't mention a parameter in @var{alist}, its value
+doesn't change. If @var{frame} is @code{nil}, it defaults to the selected
+frame.
+@end defun
+
+@defun modify-all-frames-parameters alist
+This function alters the frame parameters of all existing frames
+according to @var{alist}, then modifies @code{default-frame-alist}
+(and, if necessary, @code{initial-frame-alist}) to apply the same
+parameter values to frames that will be created henceforth.
+@end defun
+
+@node Initial Parameters
+@subsection Initial Frame Parameters
+
+You can specify the parameters for the initial startup frame
+by setting @code{initial-frame-alist} in your init file (@pxref{Init File}).
+
+@defvar initial-frame-alist
+This variable's value is an alist of parameter values used when creating
+the initial window frame. You can set this variable to specify the
+appearance of the initial frame without altering subsequent frames.
+Each element has the form:
+
+@example
+(@var{parameter} . @var{value})
+@end example
+
+Emacs creates the initial frame before it reads your init
+file. After reading that file, Emacs checks @code{initial-frame-alist},
+and applies the parameter settings in the altered value to the already
+created initial frame.
+
+If these settings affect the frame geometry and appearance, you'll see
+the frame appear with the wrong ones and then change to the specified
+ones. If that bothers you, you can specify the same geometry and
+appearance with X resources; those do take effect before the frame is
+created. @xref{X Resources,, X Resources, emacs, The GNU Emacs Manual}.
+
+X resource settings typically apply to all frames. If you want to
+specify some X resources solely for the sake of the initial frame, and
+you don't want them to apply to subsequent frames, here's how to achieve
+this. Specify parameters in @code{default-frame-alist} to override the
+X resources for subsequent frames; then, to prevent these from affecting
+the initial frame, specify the same parameters in
+@code{initial-frame-alist} with values that match the X resources.
+@end defvar
+
+If these parameters specify a separate minibuffer-only frame with
+@code{(minibuffer . nil)}, and you have not created one, Emacs creates
+one for you.
+
+@defvar minibuffer-frame-alist
+This variable's value is an alist of parameter values used when creating
+an initial minibuffer-only frame---if such a frame is needed, according
+to the parameters for the main initial frame.
+@end defvar
+
+@defvar default-frame-alist
+This is an alist specifying default values of frame parameters for all
+Emacs frames---the first frame, and subsequent frames. When using the X
+Window System, you can get the same results by means of X resources
+in many cases.
+
+Setting this variable does not affect existing frames.
+@end defvar
+
+See also @code{special-display-frame-alist}. @xref{Definition of
+special-display-frame-alist}.
+
+If you use options that specify window appearance when you invoke Emacs,
+they take effect by adding elements to @code{default-frame-alist}. One
+exception is @samp{-geometry}, which adds the specified position to
+@code{initial-frame-alist} instead. @xref{Emacs Invocation,, Command
+Line Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}.
+
+@node Window Frame Parameters
+@subsection Window Frame Parameters
+
+ Just what parameters a frame has depends on what display mechanism
+it uses. This section describes the parameters that have special
+meanings on some or all kinds of terminals. Of these, @code{name},
+@code{title}, @code{height}, @code{width}, @code{buffer-list} and
+@code{buffer-predicate} provide meaningful information in terminal
+frames, and @code{tty-color-mode} is meaningful @emph{only} in
+terminal frames.
+
+@menu
+* Basic Parameters:: Parameters that are fundamental.
+* Position Parameters:: The position of the frame on the screen.
+* Size Parameters:: Frame's size.
+* Layout Parameters:: Size of parts of the frame, and
+ enabling or disabling some parts.
+* Buffer Parameters:: Which buffers have been or should be shown.
+* Management Parameters:: Communicating with the window manager.
+* Cursor Parameters:: Controlling the cursor appearance.
+* Color Parameters:: Colors of various parts of the frame.
+@end menu
+
+@node Basic Parameters
+@subsubsection Basic Parameters
+
+ These frame parameters give the most basic information about the
+frame. @code{title} and @code{name} are meaningful on all terminals.
+
+@table @code
+@item display
+The display on which to open this frame. It should be a string of the
+form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the
+@code{DISPLAY} environment variable.
+
+@item display-type
+This parameter describes the range of possible colors that can be used
+in this frame. Its value is @code{color}, @code{grayscale} or
+@code{mono}.
+
+@item title
- The width of the frame contents, in characters. (To get the height in
++If a frame has a non-@code{nil} title, it appears in the window
++system's title bar at the top of the frame, and also in the mode line
++of windows in that frame if @code{mode-line-frame-identification} uses
++@samp{%F} (@pxref{%-Constructs}). This is normally the case when
++Emacs is not using a window system, and can only display one frame at
++a time. @xref{Frame Titles}.
+
+@item name
+The name of the frame. The frame name serves as a default for the frame
+title, if the @code{title} parameter is unspecified or @code{nil}. If
+you don't specify a name, Emacs sets the frame name automatically
+(@pxref{Frame Titles}).
+
+If you specify the frame name explicitly when you create the frame, the
+name is also used (instead of the name of the Emacs executable) when
+looking up X resources for the frame.
+
+@item display-environment-variable
+The value of the @code{DISPLAY} environment variable for the frame. It
+is passed to child processes.
+
+@item term-environment-variable
+The value of the @code{TERM} environment variable for the frame. It
+is passed to child processes.
+@end table
+
+@node Position Parameters
+@subsubsection Position Parameters
+
+ Position parameters' values are normally measured in pixels, but on
+text-only terminals they count characters or lines instead.
+
+@table @code
+@item left
+The screen position of the left edge, in pixels, with respect to the
+left edge of the screen. The value may be a positive number @var{pos},
+or a list of the form @code{(+ @var{pos})} which permits specifying a
+negative @var{pos} value.
+
+A negative number @minus{}@var{pos}, or a list of the form @code{(-
+@var{pos})}, actually specifies the position of the right edge of the
+window with respect to the right edge of the screen. A positive value
+of @var{pos} counts toward the left. @strong{Reminder:} if the
+parameter is a negative integer @minus{}@var{pos}, then @var{pos} is
+positive.
+
+Some window managers ignore program-specified positions. If you want to
+be sure the position you specify is not ignored, specify a
+non-@code{nil} value for the @code{user-position} parameter as well.
+
+@item top
+The screen position of the top edge, in pixels, with respect to the
+top edge of the screen. It works just like @code{left}, except vertically
+instead of horizontally.
+
+@item icon-left
+The screen position of the left edge @emph{of the frame's icon}, in
+pixels, counting from the left edge of the screen. This takes effect if
+and when the frame is iconified.
+
+If you specify a value for this parameter, then you must also specify
+a value for @code{icon-top} and vice versa. The window manager may
+ignore these two parameters.
+
+@item icon-top
+The screen position of the top edge @emph{of the frame's icon}, in
+pixels, counting from the top edge of the screen. This takes effect if
+and when the frame is iconified.
+
+@item user-position
+When you create a frame and specify its screen position with the
+@code{left} and @code{top} parameters, use this parameter to say whether
+the specified position was user-specified (explicitly requested in some
+way by a human user) or merely program-specified (chosen by a program).
+A non-@code{nil} value says the position was user-specified.
+
+Window managers generally heed user-specified positions, and some heed
+program-specified positions too. But many ignore program-specified
+positions, placing the window in a default fashion or letting the user
+place it with the mouse. Some window managers, including @code{twm},
+let the user specify whether to obey program-specified positions or
+ignore them.
+
+When you call @code{make-frame}, you should specify a non-@code{nil}
+value for this parameter if the values of the @code{left} and @code{top}
+parameters represent the user's stated preference; otherwise, use
+@code{nil}.
+@end table
+
+@node Size Parameters
+@subsubsection Size Parameters
+
+ Size parameters' values are normally measured in pixels, but on
+text-only terminals they count characters or lines instead.
+
+@table @code
+@item height
+The height of the frame contents, in characters. (To get the height in
+pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.)
+
+@item width
- These functions return the height and width of @var{frame}, measured in
- pixels. If you don't supply @var{frame}, they use the selected frame.
++The width of the frame contents, in characters. (To get the width in
+pixels, call @code{frame-pixel-width}; see @ref{Size and Position}.)
+
+@item user-size
+This does for the size parameters @code{height} and @code{width} what
+the @code{user-position} parameter (see above) does for the position
+parameters @code{top} and @code{left}.
+
+@item fullscreen
+Specify that width, height or both shall be set to the size of the screen.
+The value @code{fullwidth} specifies that width shall be the size of the
+screen. The value @code{fullheight} specifies that height shall be the
+size of the screen. The value @code{fullboth} specifies that both the
+width and the height shall be set to the size of the screen.
+@end table
+
+@node Layout Parameters
+@subsubsection Layout Parameters
+
+ These frame parameters enable or disable various parts of the
+frame, or control their sizes.
+
+@table @code
+@item border-width
+The width in pixels of the frame's border.
+
+@item internal-border-width
+The distance in pixels between text (or fringe) and the frame's border.
+
+@item vertical-scroll-bars
+Whether the frame has scroll bars for vertical scrolling, and which side
+of the frame they should be on. The possible values are @code{left},
+@code{right}, and @code{nil} for no scroll bars.
+
+@ignore
+@item horizontal-scroll-bars
+Whether the frame has scroll bars for horizontal scrolling
+(non-@code{nil} means yes). Horizontal scroll bars are not currently
+implemented.
+@end ignore
+
+@item scroll-bar-width
+The width of vertical scroll bars, in pixels, or @code{nil} meaning to
+use the default width.
+
+@item left-fringe
+@itemx right-fringe
+The default width of the left and right fringes of windows in this
+frame (@pxref{Fringes}). If either of these is zero, that effectively
+removes the corresponding fringe. A value of @code{nil} stands for
+the standard fringe width, which is the width needed to display the
+fringe bitmaps.
+
+The combined fringe widths must add up to an integral number of
+columns, so the actual default fringe widths for the frame may be
+larger than the specified values. The extra width needed to reach an
+acceptable total is distributed evenly between the left and right
+fringe. However, you can force one fringe or the other to a precise
+width by specifying that width as a negative integer. If both widths are
+negative, only the left fringe gets the specified width.
+
+@item menu-bar-lines
+The number of lines to allocate at the top of the frame for a menu
+bar. The default is 1. A value of @code{nil} means don't display a
+menu bar. @xref{Menu Bar}. (The X toolkit and GTK allow at most one
+menu bar line; they treat larger values as 1.)
+
+@item tool-bar-lines
+The number of lines to use for the tool bar. A value of @code{nil}
+means don't display a tool bar. (GTK allows at most one tool bar line;
+it treats larger values as 1.)
+
+@item line-spacing
+Additional space to leave below each text line, in pixels (a positive
+integer). @xref{Line Height}, for more information.
+@end table
+
+@node Buffer Parameters
+@subsubsection Buffer Parameters
+
+ These frame parameters, meaningful on all kinds of terminals, deal
+with which buffers have been, or should, be displayed in the frame.
+
+@table @code
+@item minibuffer
+Whether this frame has its own minibuffer. The value @code{t} means
+yes, @code{nil} means no, @code{only} means this frame is just a
+minibuffer. If the value is a minibuffer window (in some other frame),
+the new frame uses that minibuffer.
+
+@item buffer-predicate
+The buffer-predicate function for this frame. The function
+@code{other-buffer} uses this predicate (from the selected frame) to
+decide which buffers it should consider, if the predicate is not
+@code{nil}. It calls the predicate with one argument, a buffer, once for
+each buffer; if the predicate returns a non-@code{nil} value, it
+considers that buffer.
+
+@item buffer-list
+A list of buffers that have been selected in this frame,
+ordered most-recently-selected first.
+
+@item unsplittable
+If non-@code{nil}, this frame's window is never split automatically.
+@end table
+
+@node Management Parameters
+@subsubsection Window Management Parameters
+@cindex window manager, and frame parameters
+
+ These frame parameters, meaningful only on window system displays,
+interact with the window manager.
+
+@table @code
+@item visibility
+The state of visibility of the frame. There are three possibilities:
+@code{nil} for invisible, @code{t} for visible, and @code{icon} for
+iconified. @xref{Visibility of Frames}.
+
+@item auto-raise
+Whether selecting the frame raises it (non-@code{nil} means yes).
+
+@item auto-lower
+Whether deselecting the frame lowers it (non-@code{nil} means yes).
+
+@item icon-type
+The type of icon to use for this frame when it is iconified. If the
+value is a string, that specifies a file containing a bitmap to use.
+Any other non-@code{nil} value specifies the default bitmap icon (a
+picture of a gnu); @code{nil} specifies a text icon.
+
+@item icon-name
+The name to use in the icon for this frame, when and if the icon
+appears. If this is @code{nil}, the frame's title is used.
+
+@item window-id
+The number of the window-system window used by the frame
+to contain the actual Emacs windows.
+
+@item outer-window-id
+The number of the outermost window-system window used for the whole frame.
+
+@item wait-for-wm
+If non-@code{nil}, tell Xt to wait for the window manager to confirm
+geometry changes. Some window managers, including versions of Fvwm2
+and KDE, fail to confirm, so Xt hangs. Set this to @code{nil} to
+prevent hanging with those window managers.
+
+@ignore
+@item parent-id
+@c ??? Not yet working.
+The X window number of the window that should be the parent of this one.
+Specifying this lets you create an Emacs window inside some other
+application's window. (It is not certain this will be implemented; try
+it and see if it works.)
+@end ignore
+@end table
+
+@node Cursor Parameters
+@subsubsection Cursor Parameters
+
+ This frame parameter controls the way the cursor looks.
+
+@table @code
+@item cursor-type
+How to display the cursor. Legitimate values are:
+
+@table @code
+@item box
+Display a filled box. (This is the default.)
+@item hollow
+Display a hollow box.
+@item nil
+Don't display a cursor.
+@item bar
+Display a vertical bar between characters.
+@item (bar . @var{width})
+Display a vertical bar @var{width} pixels wide between characters.
+@item hbar
+Display a horizontal bar.
+@item (hbar . @var{height})
+Display a horizontal bar @var{height} pixels high.
+@end table
+@end table
+
+@vindex cursor-type
+The buffer-local variable @code{cursor-type} overrides the value of
+the @code{cursor-type} frame parameter, but if it is @code{t}, that
+means to use the cursor specified for the frame.
+
+@defvar blink-cursor-alist
+This variable specifies how to blink the cursor. Each element has the
+form @code{(@var{on-state} . @var{off-state})}. Whenever the cursor
+type equals @var{on-state} (comparing using @code{equal}), the
+corresponding @var{off-state} specifies what the cursor looks like
+when it blinks ``off.'' Both @var{on-state} and @var{off-state}
+should be suitable values for the @code{cursor-type} frame parameter.
+
+There are various defaults for how to blink each type of cursor, if
+the type is not mentioned as an @var{on-state} here. Changes in this
+variable do not take effect immediately, only when you specify the
+@code{cursor-type} frame parameter.
+@end defvar
+
+@defvar cursor-in-non-selected-windows
+This variable controls how the cursor looks in a window that is not
+selected. It supports the same values as the @code{cursor-type} frame
+parameter; also, @code{nil} means don't display a cursor in
+nonselected windows, and @code{t} (the default) means use a standard
+modificatoin of the usual cursor type (solid box becomes hollow box,
+and bar becomes a narrower bar).
+@end defvar
+
+@node Color Parameters
+@subsubsection Color Parameters
+
+ These frame parameters control the use of colors.
+
+@table @code
+@item background-mode
+This parameter is either @code{dark} or @code{light}, according
+to whether the background color is a light one or a dark one.
+
+@item tty-color-mode
+@cindex standard colors for character terminals
+This parameter overrides the terminal's color support as given by the
+system's terminal capabilities database in that this parameter's value
+specifies the color mode to use in terminal frames. The value can be
+either a symbol or a number. A number specifies the number of colors
+to use (and, indirectly, what commands to issue to produce each
+color). For example, @code{(tty-color-mode . 8)} specifies use of the
+ANSI escape sequences for 8 standard text colors. A value of -1 turns
+off color support.
+
+If the parameter's value is a symbol, it specifies a number through
+the value of @code{tty-color-mode-alist}, and the associated number is
+used instead.
+
+@item screen-gamma
+@cindex gamma correction
+If this is a number, Emacs performs ``gamma correction'' which adjusts
+the brightness of all colors. The value should be the screen gamma of
+your display, a floating point number.
+
+Usual PC monitors have a screen gamma of 2.2, so color values in
+Emacs, and in X windows generally, are calibrated to display properly
+on a monitor with that gamma value. If you specify 2.2 for
+@code{screen-gamma}, that means no correction is needed. Other values
+request correction, designed to make the corrected colors appear on
+your screen the way they would have appeared without correction on an
+ordinary monitor with a gamma value of 2.2.
+
+If your monitor displays colors too light, you should specify a
+@code{screen-gamma} value smaller than 2.2. This requests correction
+that makes colors darker. A screen gamma value of 1.5 may give good
+results for LCD color displays.
+@end table
+
+These frame parameters are semi-obsolete in that they are automatically
+equivalent to particular face attributes of particular faces.
+@xref{Standard Faces,,, emacs, The Emacs Manual}.
+
+@table @code
+@item font
+The name of the font for displaying text in the frame. This is a
+string, either a valid font name for your system or the name of an Emacs
+fontset (@pxref{Fontsets}). It is equivalent to the @code{font}
+attribute of the @code{default} face.
+
+@item foreground-color
+The color to use for the image of a character. It is equivalent to
+the @code{:foreground} attribute of the @code{default} face.
+
+@item background-color
+The color to use for the background of characters. It is equivalent to
+the @code{:background} attribute of the @code{default} face.
+
+@item mouse-color
+The color for the mouse pointer. It is equivalent to the @code{:background}
+attribute of the @code{mouse} face.
+
+@item cursor-color
+The color for the cursor that shows point. It is equivalent to the
+@code{:background} attribute of the @code{cursor} face.
+
+@item border-color
+The color for the border of the frame. It is equivalent to the
+@code{:background} attribute of the @code{border} face.
+
+@item scroll-bar-foreground
+If non-@code{nil}, the color for the foreground of scroll bars. It is
+equivalent to the @code{:foreground} attribute of the
+@code{scroll-bar} face.
+
+@item scroll-bar-background
+If non-@code{nil}, the color for the background of scroll bars. It is
+equivalent to the @code{:background} attribute of the
+@code{scroll-bar} face.
+@end table
+
+@node Size and Position
+@subsection Frame Size And Position
+@cindex size of frame
+@cindex screen size
+@cindex frame size
+@cindex resize frame
+
+ You can read or change the size and position of a frame using the
+frame parameters @code{left}, @code{top}, @code{height}, and
+@code{width}. Whatever geometry parameters you don't specify are chosen
+by the window manager in its usual fashion.
+
+ Here are some special features for working with sizes and positions.
+(For the precise meaning of ``selected frame'' used by these functions,
+see @ref{Input Focus}.)
+
+@defun set-frame-position frame left top
+This function sets the position of the top left corner of @var{frame} to
+@var{left} and @var{top}. These arguments are measured in pixels, and
+normally count from the top left corner of the screen.
+
+Negative parameter values position the bottom edge of the window up from
+the bottom edge of the screen, or the right window edge to the left of
+the right edge of the screen. It would probably be better if the values
+were always counted from the left and top, so that negative arguments
+would position the frame partly off the top or left edge of the screen,
+but it seems inadvisable to change that now.
+@end defun
+
+@defun frame-height &optional frame
+@defunx frame-width &optional frame
+These functions return the height and width of @var{frame}, measured in
+lines and columns. If you don't supply @var{frame}, they use the
+selected frame.
+@end defun
+
+@defun screen-height
+@defunx screen-width
+These functions are old aliases for @code{frame-height} and
+@code{frame-width}. When you are using a non-window terminal, the size
+of the frame is normally the same as the size of the terminal screen.
+@end defun
+
+@defun frame-pixel-height &optional frame
+@defunx frame-pixel-width &optional frame
++These functions return the height and width of the main display area
++of @var{frame}, measured in pixels. If you don't supply @var{frame},
++they use the selected frame.
++
++These values include the internal borders, and windows' scroll bars
++and fringes (which belong to individual windows, not to the frame
++itself), but do not include menu bars or tool bars (except when using
++X without an X toolkit).
+@end defun
+
+@defun frame-char-height &optional frame
+@defunx frame-char-width &optional frame
+These functions return the height and width of a character in
+@var{frame}, measured in pixels. The values depend on the choice of
+font. If you don't supply @var{frame}, these functions use the selected
+frame.
+@end defun
+
+@defun set-frame-size frame cols rows
+This function sets the size of @var{frame}, measured in characters;
+@var{cols} and @var{rows} specify the new width and height.
+
+To set the size based on values measured in pixels, use
+@code{frame-char-height} and @code{frame-char-width} to convert
+them to units of characters.
+@end defun
+
+@defun set-frame-height frame lines &optional pretend
+This function resizes @var{frame} to a height of @var{lines} lines. The
+sizes of existing windows in @var{frame} are altered proportionally to
+fit.
+
+If @var{pretend} is non-@code{nil}, then Emacs displays @var{lines}
+lines of output in @var{frame}, but does not change its value for the
+actual height of the frame. This is only useful for a terminal frame.
+Using a smaller height than the terminal actually implements may be
+useful to reproduce behavior observed on a smaller screen, or if the
+terminal malfunctions when using its whole screen. Setting the frame
+height ``for real'' does not always work, because knowing the correct
+actual size may be necessary for correct cursor positioning on a
+terminal frame.
+@end defun
+
+@defun set-frame-width frame width &optional pretend
+This function sets the width of @var{frame}, measured in characters.
+The argument @var{pretend} has the same meaning as in
+@code{set-frame-height}.
+@end defun
+
+@findex set-screen-height
+@findex set-screen-width
+ The older functions @code{set-screen-height} and
+@code{set-screen-width} were used to specify the height and width of the
+screen, in Emacs versions that did not support multiple frames. They
+are semi-obsolete, but still work; they apply to the selected frame.
+
+@node Geometry
+@subsection Geometry
+
+ Here's how to examine the data in an X-style window geometry
+specification:
+
+@defun x-parse-geometry geom
+@cindex geometry specification
+The function @code{x-parse-geometry} converts a standard X window
+geometry string to an alist that you can use as part of the argument to
+@code{make-frame}.
+
+The alist describes which parameters were specified in @var{geom}, and
+gives the values specified for them. Each element looks like
+@code{(@var{parameter} . @var{value})}. The possible @var{parameter}
+values are @code{left}, @code{top}, @code{width}, and @code{height}.
+
+For the size parameters, the value must be an integer. The position
+parameter names @code{left} and @code{top} are not totally accurate,
+because some values indicate the position of the right or bottom edges
+instead. These are the @var{value} possibilities for the position
+parameters:
+
+@table @asis
+@item an integer
+A positive integer relates the left edge or top edge of the window to
+the left or top edge of the screen. A negative integer relates the
+right or bottom edge of the window to the right or bottom edge of the
+screen.
+
+@item @code{(+ @var{position})}
+This specifies the position of the left or top edge of the window
+relative to the left or top edge of the screen. The integer
+@var{position} may be positive or negative; a negative value specifies a
+position outside the screen.
+
+@item @code{(- @var{position})}
+This specifies the position of the right or bottom edge of the window
+relative to the right or bottom edge of the screen. The integer
+@var{position} may be positive or negative; a negative value specifies a
+position outside the screen.
+@end table
+
+Here is an example:
+
+@example
+(x-parse-geometry "35x70+0-0")
+ @result{} ((height . 70) (width . 35)
+ (top - 0) (left . 0))
+@end example
+@end defun
+
+@node Frame Titles
+@section Frame Titles
+@cindex frame title
+
+ Every frame has a @code{name} parameter; this serves as the default
+for the frame title which window systems typically display at the top of
+the frame. You can specify a name explicitly by setting the @code{name}
+frame property.
+
+ Normally you don't specify the name explicitly, and Emacs computes the
+frame name automatically based on a template stored in the variable
+@code{frame-title-format}. Emacs recomputes the name each time the
+frame is redisplayed.
+
+@defvar frame-title-format
+This variable specifies how to compute a name for a frame when you have
+not explicitly specified one. The variable's value is actually a mode
+line construct, just like @code{mode-line-format}, except that the
+@samp{%c} and @samp{%l} constructs are ignored. @xref{Mode Line
+Data}.
+@end defvar
+
+@defvar icon-title-format
+This variable specifies how to compute the name for an iconified frame,
+when you have not explicitly specified the frame title. This title
+appears in the icon itself.
+@end defvar
+
+@defvar multiple-frames
+This variable is set automatically by Emacs. Its value is @code{t} when
+there are two or more frames (not counting minibuffer-only frames or
+invisible frames). The default value of @code{frame-title-format} uses
+@code{multiple-frames} so as to put the buffer name in the frame title
+only when there is more than one frame.
+
+The value of this variable is not guaranteed to be accurate except
+while processing @code{frame-title-format} or
+@code{icon-title-format}.
+@end defvar
+
+@node Deleting Frames
+@section Deleting Frames
+@cindex deleting frames
+
+Frames remain potentially visible until you explicitly @dfn{delete}
+them. A deleted frame cannot appear on the screen, but continues to
+exist as a Lisp object until there are no references to it.
+
+@deffn Command delete-frame &optional frame force
+@vindex delete-frame-functions
+This function deletes the frame @var{frame}. Unless @var{frame} is a
+tooltip, it first runs the hook @code{delete-frame-functions} (each
+function gets one argument, @var{frame}). By default, @var{frame} is
+the selected frame.
+
+A frame cannot be deleted if its minibuffer is used by other frames.
+Normally, you cannot delete a frame if all other frames are invisible,
+but if the @var{force} is non-@code{nil}, then you are allowed to do so.
+@end deffn
+
+@defun frame-live-p frame
+The function @code{frame-live-p} returns non-@code{nil} if the frame
+@var{frame} has not been deleted. The possible non-@code{nil} return
+values are like those of @code{framep}. @xref{Frames}.
+@end defun
+
+ Some window managers provide a command to delete a window. These work
+by sending a special message to the program that operates the window.
+When Emacs gets one of these commands, it generates a
+@code{delete-frame} event, whose normal definition is a command that
+calls the function @code{delete-frame}. @xref{Misc Events}.
+
+@node Finding All Frames
+@section Finding All Frames
+@cindex frames, scanning all
+
+@defun frame-list
+The function @code{frame-list} returns a list of all the frames that
+have not been deleted. It is analogous to @code{buffer-list} for
+buffers, and includes frames on all terminals. The list that you get is
+newly created, so modifying the list doesn't have any effect on the
+internals of Emacs.
+@end defun
+
+@defun visible-frame-list
+This function returns a list of just the currently visible frames.
+@xref{Visibility of Frames}. (Terminal frames always count as
+``visible,'' even though only the selected one is actually displayed.)
+@end defun
+
+@defun next-frame &optional frame minibuf
+The function @code{next-frame} lets you cycle conveniently through all
+the frames on the current display from an arbitrary starting point. It
+returns the ``next'' frame after @var{frame} in the cycle. If
+@var{frame} is omitted or @code{nil}, it defaults to the selected frame
+(@pxref{Input Focus}).
+
+The second argument, @var{minibuf}, says which frames to consider:
+
+@table @asis
+@item @code{nil}
+Exclude minibuffer-only frames.
+@item @code{visible}
+Consider all visible frames.
+@item 0
+Consider all visible or iconified frames.
+@item a window
+Consider only the frames using that particular window as their
+minibuffer.
+@item anything else
+Consider all frames.
+@end table
+@end defun
+
+@defun previous-frame &optional frame minibuf
+Like @code{next-frame}, but cycles through all frames in the opposite
+direction.
+@end defun
+
+ See also @code{next-window} and @code{previous-window}, in @ref{Cyclic
+Window Ordering}.
+
+@node Frames and Windows
+@section Frames and Windows
+
+ Each window is part of one and only one frame; you can get the frame
+with @code{window-frame}.
+
+@defun window-frame window
+This function returns the frame that @var{window} is on.
+@end defun
+
+ All the non-minibuffer windows in a frame are arranged in a cyclic
+order. The order runs from the frame's top window, which is at the
+upper left corner, down and to the right, until it reaches the window at
+the lower right corner (always the minibuffer window, if the frame has
+one), and then it moves back to the top. @xref{Cyclic Window Ordering}.
+
+@defun frame-first-window &optional frame
+This returns the topmost, leftmost window of frame @var{frame}.
+If omitted or @code{nil}, @var{frame} defaults to the selected frame.
+@end defun
+
+At any time, exactly one window on any frame is @dfn{selected within the
+frame}. The significance of this designation is that selecting the
+frame also selects this window. You can get the frame's current
+selected window with @code{frame-selected-window}.
+
+@defun frame-selected-window &optional frame
+This function returns the window on @var{frame} that is selected
+within @var{frame}. If omitted or @code{nil}, @var{frame} defaults to
+the selected frame.
+@end defun
+
+@defun set-frame-selected-window frame window
+This sets the selected window of frame @var{frame} to @var{window}.
+If @var{frame} is @code{nil}, it operates on the selected frame. If
+@var{frame} is the selected frame, this makes @var{window} the
+selected window. This function returns @var{window}.
+@end defun
+
+ Conversely, selecting a window for Emacs with @code{select-window} also
+makes that window selected within its frame. @xref{Selecting Windows}.
+
+ Another function that (usually) returns one of the windows in a given
+frame is @code{minibuffer-window}. @xref{Definition of minibuffer-window}.
+
+@node Minibuffers and Frames
+@section Minibuffers and Frames
+
+Normally, each frame has its own minibuffer window at the bottom, which
+is used whenever that frame is selected. If the frame has a minibuffer,
+you can get it with @code{minibuffer-window} (@pxref{Definition of
+minibuffer-window}).
+
+However, you can also create a frame with no minibuffer. Such a frame
+must use the minibuffer window of some other frame. When you create the
+frame, you can specify explicitly the minibuffer window to use (in some
+other frame). If you don't, then the minibuffer is found in the frame
+which is the value of the variable @code{default-minibuffer-frame}. Its
+value should be a frame that does have a minibuffer.
+
+If you use a minibuffer-only frame, you might want that frame to raise
+when you enter the minibuffer. If so, set the variable
+@code{minibuffer-auto-raise} to @code{t}. @xref{Raising and Lowering}.
+
+@defvar default-minibuffer-frame
+This variable specifies the frame to use for the minibuffer window, by
+default. It does not affect existing frames. It is always local to
+the current terminal and cannot be buffer-local. @xref{Multiple
+Displays}.
+@end defvar
+
+@node Input Focus
+@section Input Focus
+@cindex input focus
+@c @cindex selected frame Duplicates selected-frame
+
+At any time, one frame in Emacs is the @dfn{selected frame}. The selected
+window always resides on the selected frame.
+
+When Emacs displays its frames on several terminals (@pxref{Multiple
+Displays}), each terminal has its own selected frame. But only one of
+these is ``@emph{the} selected frame'': it's the frame that belongs to
+the terminal from which the most recent input came. That is, when Emacs
+runs a command that came from a certain terminal, the selected frame is
+the one of that terminal. Since Emacs runs only a single command at any
+given time, it needs to consider only one selected frame at a time; this
+frame is what we call @dfn{the selected frame} in this manual. The
+display on which the selected frame is displayed is the @dfn{selected
+frame's display}.
+
+@defun selected-frame
+This function returns the selected frame.
+@end defun
+
+Some window systems and window managers direct keyboard input to the
+window object that the mouse is in; others require explicit clicks or
+commands to @dfn{shift the focus} to various window objects. Either
+way, Emacs automatically keeps track of which frame has the focus. To
+switch to a different frame from a Lisp function, call
+@code{select-frame-set-input-focus}.
+
+Lisp programs can also switch frames ``temporarily'' by calling the
+function @code{select-frame}. This does not alter the window system's
+concept of focus; rather, it escapes from the window manager's control
+until that control is somehow reasserted.
+
+When using a text-only terminal, only one frame can be displayed at a
+time on the terminal, so after a call to @code{select-frame}, the next
+redisplay actually displays the newly selected frame. This frame
+remains selected until a subsequent call to @code{select-frame} or
+@code{select-frame-set-input-focus}. Each terminal frame has a number
+which appears in the mode line before the buffer name (@pxref{Mode
+Line Variables}).
+
+@defun select-frame-set-input-focus frame
+This function makes @var{frame} the selected frame, raises it (should
+it happen to be obscured by other frames) and tries to give it the X
+server's focus. On a text-only terminal, the next redisplay displays
+the new frame on the entire terminal screen. The return value of this
+function is not significant.
+@end defun
+
+@c ??? This is not yet implemented properly.
+@defun select-frame frame
+This function selects frame @var{frame}, temporarily disregarding the
+focus of the X server if any. The selection of @var{frame} lasts until
+the next time the user does something to select a different frame, or
+until the next time this function is called. (If you are using a
+window system, the previously selected frame may be restored as the
+selected frame after return to the command loop, because it still may
+have the window system's input focus.) The specified @var{frame}
+becomes the selected frame, as explained above, and the terminal that
+@var{frame} is on becomes the selected terminal. This function
+returns @var{frame}, or @code{nil} if @var{frame} has been deleted.
+
+In general, you should never use @code{select-frame} in a way that could
+switch to a different terminal without switching back when you're done.
+@end defun
+
+Emacs cooperates with the window system by arranging to select frames as
+the server and window manager request. It does so by generating a
+special kind of input event, called a @dfn{focus} event, when
+appropriate. The command loop handles a focus event by calling
+@code{handle-switch-frame}. @xref{Focus Events}.
+
+@deffn Command handle-switch-frame frame
+This function handles a focus event by selecting frame @var{frame}.
+
+Focus events normally do their job by invoking this command.
+Don't call it for any other reason.
+@end deffn
+
+@defun redirect-frame-focus frame &optional focus-frame
+This function redirects focus from @var{frame} to @var{focus-frame}.
+This means that @var{focus-frame} will receive subsequent keystrokes and
+events intended for @var{frame}. After such an event, the value of
+@code{last-event-frame} will be @var{focus-frame}. Also, switch-frame
+events specifying @var{frame} will instead select @var{focus-frame}.
+
+If @var{focus-frame} is omitted or @code{nil}, that cancels any existing
+redirection for @var{frame}, which therefore once again receives its own
+events.
+
+One use of focus redirection is for frames that don't have minibuffers.
+These frames use minibuffers on other frames. Activating a minibuffer
+on another frame redirects focus to that frame. This puts the focus on
+the minibuffer's frame, where it belongs, even though the mouse remains
+in the frame that activated the minibuffer.
+
+Selecting a frame can also change focus redirections. Selecting frame
+@code{bar}, when @code{foo} had been selected, changes any redirections
+pointing to @code{foo} so that they point to @code{bar} instead. This
+allows focus redirection to work properly when the user switches from
+one frame to another using @code{select-window}.
+
+This means that a frame whose focus is redirected to itself is treated
+differently from a frame whose focus is not redirected.
+@code{select-frame} affects the former but not the latter.
+
+The redirection lasts until @code{redirect-frame-focus} is called to
+change it.
+@end defun
+
+@defopt focus-follows-mouse
+This option is how you inform Emacs whether the window manager transfers
+focus when the user moves the mouse. Non-@code{nil} says that it does.
+When this is so, the command @code{other-frame} moves the mouse to a
+position consistent with the new selected frame. (This option has no
+effect on MS-Windows, where the mouse pointer is always automatically
+moved by the OS to the selected frame.)
+@end defopt
+
+@node Visibility of Frames
+@section Visibility of Frames
+@cindex visible frame
+@cindex invisible frame
+@cindex iconified frame
+@cindex frame visibility
+
+A window frame may be @dfn{visible}, @dfn{invisible}, or
+@dfn{iconified}. If it is visible, you can see its contents, unless
+other windows cover it. If it is iconified, the frame's contents do
+not appear on the screen, but an icon does. If the frame is
+invisible, it doesn't show on the screen, not even as an icon.
+
+Visibility is meaningless for terminal frames, since only the selected
+one is actually displayed in any case.
+
+@deffn Command make-frame-visible &optional frame
+This function makes frame @var{frame} visible. If you omit
+@var{frame}, it makes the selected frame visible. This does not raise
+the frame, but you can do that with @code{raise-frame} if you wish
+(@pxref{Raising and Lowering}).
+@end deffn
+
+@deffn Command make-frame-invisible &optional frame force
+This function makes frame @var{frame} invisible. If you omit
+@var{frame}, it makes the selected frame invisible.
+
+Unless @var{force} is non-@code{nil}, this function refuses to make
+@var{frame} invisible if all other frames are invisible..
+@end deffn
+
+@deffn Command iconify-frame &optional frame
+This function iconifies frame @var{frame}. If you omit @var{frame}, it
+iconifies the selected frame.
+@end deffn
+
+@defun frame-visible-p frame
+This returns the visibility status of frame @var{frame}. The value is
+@code{t} if @var{frame} is visible, @code{nil} if it is invisible, and
+@code{icon} if it is iconified.
+
+On a text-only terminal, all frames are considered visible, whether
+they are currently being displayed or not, and this function returns
+@code{t} for all frames.
+@end defun
+
+ The visibility status of a frame is also available as a frame
+parameter. You can read or change it as such. @xref{Management
+Parameters}.
+
+ The user can iconify and deiconify frames with the window manager.
+This happens below the level at which Emacs can exert any control, but
+Emacs does provide events that you can use to keep track of such
+changes. @xref{Misc Events}.
+
+@node Raising and Lowering
+@section Raising and Lowering Frames
+
+ Most window systems use a desktop metaphor. Part of this metaphor is
+the idea that windows are stacked in a notional third dimension
+perpendicular to the screen surface, and thus ordered from ``highest''
+to ``lowest.'' Where two windows overlap, the one higher up covers
+the one underneath. Even a window at the bottom of the stack can be
+seen if no other window overlaps it.
+
+@c @cindex raising a frame redundant with raise-frame
+@cindex lowering a frame
+ A window's place in this ordering is not fixed; in fact, users tend
+to change the order frequently. @dfn{Raising} a window means moving
+it ``up,'' to the top of the stack. @dfn{Lowering} a window means
+moving it to the bottom of the stack. This motion is in the notional
+third dimension only, and does not change the position of the window
+on the screen.
+
+ You can raise and lower Emacs frame Windows with these functions:
+
+@deffn Command raise-frame &optional frame
+This function raises frame @var{frame} (default, the selected frame).
+If @var{frame} is invisible or iconified, this makes it visible.
+@end deffn
+
+@deffn Command lower-frame &optional frame
+This function lowers frame @var{frame} (default, the selected frame).
+@end deffn
+
+@defopt minibuffer-auto-raise
+If this is non-@code{nil}, activation of the minibuffer raises the frame
+that the minibuffer window is in.
+@end defopt
+
+You can also enable auto-raise (raising automatically when a frame is
+selected) or auto-lower (lowering automatically when it is deselected)
+for any frame using frame parameters. @xref{Management Parameters}.
+
+@node Frame Configurations
+@section Frame Configurations
+@cindex frame configuration
+
+ A @dfn{frame configuration} records the current arrangement of frames,
+all their properties, and the window configuration of each one.
+(@xref{Window Configurations}.)
+
+@defun current-frame-configuration
+This function returns a frame configuration list that describes
+the current arrangement of frames and their contents.
+@end defun
+
+@defun set-frame-configuration configuration &optional nodelete
+This function restores the state of frames described in
+@var{configuration}. However, this function does not restore deleted
+frames.
+
+Ordinarily, this function deletes all existing frames not listed in
+@var{configuration}. But if @var{nodelete} is non-@code{nil}, the
+unwanted frames are iconified instead.
+@end defun
+
+@node Mouse Tracking
+@section Mouse Tracking
+@cindex mouse tracking
+@c @cindex tracking the mouse Duplicates track-mouse
+
+ Sometimes it is useful to @dfn{track} the mouse, which means to display
+something to indicate where the mouse is and move the indicator as the
+mouse moves. For efficient mouse tracking, you need a way to wait until
+the mouse actually moves.
+
+ The convenient way to track the mouse is to ask for events to represent
+mouse motion. Then you can wait for motion by waiting for an event. In
+addition, you can easily handle any other sorts of events that may
+occur. That is useful, because normally you don't want to track the
+mouse forever---only until some other event, such as the release of a
+button.
+
+@defspec track-mouse body@dots{}
+This special form executes @var{body}, with generation of mouse motion
+events enabled. Typically @var{body} would use @code{read-event} to
+read the motion events and modify the display accordingly. @xref{Motion
+Events}, for the format of mouse motion events.
+
+The value of @code{track-mouse} is that of the last form in @var{body}.
+You should design @var{body} to return when it sees the up-event that
+indicates the release of the button, or whatever kind of event means
+it is time to stop tracking.
+@end defspec
+
+The usual purpose of tracking mouse motion is to indicate on the screen
+the consequences of pushing or releasing a button at the current
+position.
+
+In many cases, you can avoid the need to track the mouse by using
+the @code{mouse-face} text property (@pxref{Special Properties}).
+That works at a much lower level and runs more smoothly than
+Lisp-level mouse tracking.
+
+@ignore
+@c These are not implemented yet.
+
+These functions change the screen appearance instantaneously. The
+effect is transient, only until the next ordinary Emacs redisplay. That
+is OK for mouse tracking, since it doesn't make sense for mouse tracking
+to change the text, and the body of @code{track-mouse} normally reads
+the events itself and does not do redisplay.
+
+@defun x-contour-region window beg end
+This function draws lines to make a box around the text from @var{beg}
+to @var{end}, in window @var{window}.
+@end defun
+
+@defun x-uncontour-region window beg end
+This function erases the lines that would make a box around the text
+from @var{beg} to @var{end}, in window @var{window}. Use it to remove
+a contour that you previously made by calling @code{x-contour-region}.
+@end defun
+
+@defun x-draw-rectangle frame left top right bottom
+This function draws a hollow rectangle on frame @var{frame} with the
+specified edge coordinates, all measured in pixels from the inside top
+left corner. It uses the cursor color, the one used for indicating the
+location of point.
+@end defun
+
+@defun x-erase-rectangle frame left top right bottom
+This function erases a hollow rectangle on frame @var{frame} with the
+specified edge coordinates, all measured in pixels from the inside top
+left corner. Erasure means redrawing the text and background that
+normally belong in the specified rectangle.
+@end defun
+@end ignore
+
+@node Mouse Position
+@section Mouse Position
+@cindex mouse position
+@cindex position of mouse
+
+ The functions @code{mouse-position} and @code{set-mouse-position}
+give access to the current position of the mouse.
+
+@defun mouse-position
+This function returns a description of the position of the mouse. The
+value looks like @code{(@var{frame} @var{x} . @var{y})}, where @var{x}
+and @var{y} are integers giving the position in characters relative to
+the top left corner of the inside of @var{frame}.
+@end defun
+
+@defvar mouse-position-function
+If non-@code{nil}, the value of this variable is a function for
+@code{mouse-position} to call. @code{mouse-position} calls this
+function just before returning, with its normal return value as the
+sole argument, and it returns whatever this function returns to it.
+
+This abnormal hook exists for the benefit of packages like
+@file{xt-mouse.el} that need to do mouse handling at the Lisp level.
+@end defvar
+
+@defun set-mouse-position frame x y
+This function @dfn{warps the mouse} to position @var{x}, @var{y} in
+frame @var{frame}. The arguments @var{x} and @var{y} are integers,
+giving the position in characters relative to the top left corner of the
+inside of @var{frame}. If @var{frame} is not visible, this function
+does nothing. The return value is not significant.
+@end defun
+
+@defun mouse-pixel-position
+This function is like @code{mouse-position} except that it returns
+coordinates in units of pixels rather than units of characters.
+@end defun
+
+@defun set-mouse-pixel-position frame x y
+This function warps the mouse like @code{set-mouse-position} except that
+@var{x} and @var{y} are in units of pixels rather than units of
+characters. These coordinates are not required to be within the frame.
+
+If @var{frame} is not visible, this function does nothing. The return
+value is not significant.
+@end defun
+
+@need 3000
+
+@node Pop-Up Menus
+@section Pop-Up Menus
+
+ When using a window system, a Lisp program can pop up a menu so that
+the user can choose an alternative with the mouse.
+
+@defun x-popup-menu position menu
+This function displays a pop-up menu and returns an indication of
+what selection the user makes.
+
+The argument @var{position} specifies where on the screen to put the
+top left corner of the menu. It can be either a mouse button event
+(which says to put the menu where the user actuated the button) or a
+list of this form:
+
+@example
+((@var{xoffset} @var{yoffset}) @var{window})
+@end example
+
+@noindent
+where @var{xoffset} and @var{yoffset} are coordinates, measured in
+pixels, counting from the top left corner of @var{window}. @var{window}
+may be a window or a frame.
+
+If @var{position} is @code{t}, it means to use the current mouse
+position. If @var{position} is @code{nil}, it means to precompute the
+key binding equivalents for the keymaps specified in @var{menu},
+without actually displaying or popping up the menu.
+
+The argument @var{menu} says what to display in the menu. It can be a
+keymap or a list of keymaps (@pxref{Menu Keymaps}). In this case, the
+return value is the list of events corresponding to the user's choice.
+(This list has more than one element if the choice occurred in a
+submenu.) Note that @code{x-popup-menu} does not actually execute the
+command bound to that sequence of events.
+
+Alternatively, @var{menu} can have the following form:
+
+@example
+(@var{title} @var{pane1} @var{pane2}...)
+@end example
+
+@noindent
+where each pane is a list of form
+
+@example
+(@var{title} @var{item1} @var{item2}...)
+@end example
+
+Each item should normally be a cons cell @code{(@var{line} . @var{value})},
+where @var{line} is a string, and @var{value} is the value to return if
+that @var{line} is chosen. An item can also be a string; this makes a
+non-selectable line in the menu.
+
+If the user gets rid of the menu without making a valid choice, for
+instance by clicking the mouse away from a valid choice or by typing
+keyboard input, then this normally results in a quit and
+@code{x-popup-menu} does not return. But if @var{position} is a mouse
+button event (indicating that the user invoked the menu with the
+mouse) then no quit occurs and @code{x-popup-menu} returns @code{nil}.
+@end defun
+
+ @strong{Usage note:} Don't use @code{x-popup-menu} to display a menu
+if you could do the job with a prefix key defined with a menu keymap.
+If you use a menu keymap to implement a menu, @kbd{C-h c} and @kbd{C-h
+a} can see the individual items in that menu and provide help for them.
+If instead you implement the menu by defining a command that calls
+@code{x-popup-menu}, the help facilities cannot know what happens inside
+that command, so they cannot give any help for the menu's items.
+
+ The menu bar mechanism, which lets you switch between submenus by
+moving the mouse, cannot look within the definition of a command to see
+that it calls @code{x-popup-menu}. Therefore, if you try to implement a
+submenu using @code{x-popup-menu}, it cannot work with the menu bar in
+an integrated fashion. This is why all menu bar submenus are
+implemented with menu keymaps within the parent menu, and never with
+@code{x-popup-menu}. @xref{Menu Bar}.
+
+ If you want a menu bar submenu to have contents that vary, you should
+still use a menu keymap to implement it. To make the contents vary, add
+a hook function to @code{menu-bar-update-hook} to update the contents of
+the menu keymap as necessary.
+
+@node Dialog Boxes
+@section Dialog Boxes
+@cindex dialog boxes
+
+ A dialog box is a variant of a pop-up menu---it looks a little
+different, it always appears in the center of a frame, and it has just
+one level and one or more buttons. The main use of dialog boxes is
+for asking questions that the user can answer with ``yes,'' ``no,''
+and a few other alternatives. With a single button, they can also
+force the user to acknowledge important information. The functions
+@code{y-or-n-p} and @code{yes-or-no-p} use dialog boxes instead of the
+keyboard, when called from commands invoked by mouse clicks.
+
+@defun x-popup-dialog position contents &optional header
+This function displays a pop-up dialog box and returns an indication of
+what selection the user makes. The argument @var{contents} specifies
+the alternatives to offer; it has this format:
+
+@example
+(@var{title} (@var{string} . @var{value})@dots{})
+@end example
+
+@noindent
+which looks like the list that specifies a single pane for
+@code{x-popup-menu}.
+
+The return value is @var{value} from the chosen alternative.
+
+As for @code{x-popup-menu}, an element of the list may be just a
+string instead of a cons cell @code{(@var{string} . @var{value})}.
+That makes a box that cannot be selected.
+
+If @code{nil} appears in the list, it separates the left-hand items from
+the right-hand items; items that precede the @code{nil} appear on the
+left, and items that follow the @code{nil} appear on the right. If you
+don't include a @code{nil} in the list, then approximately half the
+items appear on each side.
+
+Dialog boxes always appear in the center of a frame; the argument
+@var{position} specifies which frame. The possible values are as in
+@code{x-popup-menu}, but the precise coordinates or the individual
+window don't matter; only the frame matters.
+
+If @var{header} is non-@code{nil}, the frame title for the box is
+@samp{Information}, otherwise it is @samp{Question}. The former is used
+for @code{message-box} (@pxref{message-box}).
+
+In some configurations, Emacs cannot display a real dialog box; so
+instead it displays the same items in a pop-up menu in the center of the
+frame.
+
+If the user gets rid of the dialog box without making a valid choice,
+for instance using the window manager, then this produces a quit and
+@code{x-popup-dialog} does not return.
+@end defun
+
+@node Pointer Shape
+@section Pointer Shape
+@cindex pointer shape
+@cindex mouse pointer shape
+
+ You can specify the mouse pointer style for particular text or
+images using the @code{pointer} text property, and for images with the
+@code{:pointer} and @code{:map} image properties. The values you can
+use in these properties are @code{text} (or @code{nil}), @code{arrow},
+@code{hand}, @code{vdrag}, @code{hdrag}, @code{modeline}, and
+@code{hourglass}. @code{text} stands for the usual mouse pointer
+style used over text.
+
+ Over void parts of the window (parts that do not correspond to any
+of the buffer contents), the mouse pointer usually uses the
+@code{arrow} style, but you can specify a different style (one of
+those above) by setting @code{void-text-area-pointer}.
+
+@defvar void-text-area-pointer
+This variable specifies the mouse pointer style for void text areas.
+These include the areas after the end of a line or below the last line
+in the buffer. The default is to use the @code{arrow} (non-text)
+pointer style.
+@end defvar
+
+ You can specify what the @code{text} pointer style really looks like
+by setting the variable @code{x-pointer-shape}.
+
+@defvar x-pointer-shape
+This variable specifies the pointer shape to use ordinarily in the
+Emacs frame, for the @code{text} pointer style.
+@end defvar
+
+@defvar x-sensitive-text-pointer-shape
+This variable specifies the pointer shape to use when the mouse
+is over mouse-sensitive text.
+@end defvar
+
+ These variables affect newly created frames. They do not normally
+affect existing frames; however, if you set the mouse color of a
+frame, that also installs the current value of those two variables.
+@xref{Color Parameters}.
+
+ The values you can use, to specify either of these pointer shapes, are
+defined in the file @file{lisp/term/x-win.el}. Use @kbd{M-x apropos
+@key{RET} x-pointer @key{RET}} to see a list of them.
+
+@node Window System Selections
+@section Window System Selections
+@cindex selection (for window systems)
+
+The X server records a set of @dfn{selections} which permit transfer of
+data between application programs. The various selections are
+distinguished by @dfn{selection types}, represented in Emacs by
+symbols. X clients including Emacs can read or set the selection for
+any given type.
+
+@deffn Command x-set-selection type data
+This function sets a ``selection'' in the X server. It takes two
+arguments: a selection type @var{type}, and the value to assign to it,
+@var{data}. If @var{data} is @code{nil}, it means to clear out the
+selection. Otherwise, @var{data} may be a string, a symbol, an integer
+(or a cons of two integers or list of two integers), an overlay, or a
+cons of two markers pointing to the same buffer. An overlay or a pair
+of markers stands for text in the overlay or between the markers.
+
+The argument @var{data} may also be a vector of valid non-vector
+selection values.
+
+Each possible @var{type} has its own selection value, which changes
+independently. The usual values of @var{type} are @code{PRIMARY},
+@code{SECONDARY} and @code{CLIPBOARD}; these are symbols with upper-case
+names, in accord with X Window System conventions. If @var{type} is
+@code{nil}, that stands for @code{PRIMARY}.
+
+This function returns @var{data}.
+@end deffn
+
+@defun x-get-selection &optional type data-type
+This function accesses selections set up by Emacs or by other X
+clients. It takes two optional arguments, @var{type} and
+@var{data-type}. The default for @var{type}, the selection type, is
+@code{PRIMARY}.
+
+The @var{data-type} argument specifies the form of data conversion to
+use, to convert the raw data obtained from another X client into Lisp
+data. Meaningful values include @code{TEXT}, @code{STRING},
+@code{UTF8_STRING}, @code{TARGETS}, @code{LENGTH}, @code{DELETE},
+@code{FILE_NAME}, @code{CHARACTER_POSITION}, @code{NAME},
+@code{LINE_NUMBER}, @code{COLUMN_NUMBER}, @code{OWNER_OS},
+@code{HOST_NAME}, @code{USER}, @code{CLASS}, @code{ATOM}, and
+@code{INTEGER}. (These are symbols with upper-case names in accord
+with X conventions.) The default for @var{data-type} is
+@code{STRING}.
+@end defun
+
+@cindex cut buffer
+The X server also has a set of eight numbered @dfn{cut buffers} which can
+store text or other data being moved between applications. Cut buffers
+are considered obsolete, but Emacs supports them for the sake of X
+clients that still use them. Cut buffers are numbered from 0 to 7.
+
+@defun x-get-cut-buffer &optional n
+This function returns the contents of cut buffer number @var{n}.
+If omitted @var{n} defaults to 0.
+@end defun
+
+@defun x-set-cut-buffer string &optional push
+@anchor{Definition of x-set-cut-buffer}
+This function stores @var{string} into the first cut buffer (cut buffer
+0). If @var{push} is @code{nil}, only the first cut buffer is changed.
+If @var{push} is non-@code{nil}, that says to move the values down
+through the series of cut buffers, much like the way successive kills in
+Emacs move down the kill ring. In other words, the previous value of
+the first cut buffer moves into the second cut buffer, and the second to
+the third, and so on through all eight cut buffers.
+@end defun
+
+@defvar selection-coding-system
+This variable specifies the coding system to use when reading and
+writing selections or the clipboard. @xref{Coding
+Systems}. The default is @code{compound-text-with-extensions}, which
+converts to the text representation that X11 normally uses.
+@end defvar
+
+@cindex clipboard support (for MS-Windows)
+When Emacs runs on MS-Windows, it does not implement X selections in
+general, but it does support the clipboard. @code{x-get-selection}
+and @code{x-set-selection} on MS-Windows support the text data type
+only; if the clipboard holds other types of data, Emacs treats the
+clipboard as empty.
+
+@cindex scrap support (for Mac OS)
+On Mac OS, selection-like data transfer between applications is
+performed through a mechanism called @dfn{scraps}. The clipboard is a
+particular scrap named @code{com.apple.scrap.clipboard}. Types of scrap
+data are called @dfn{scrap flavor types}, which are identified by
+four-char codes such as @code{TEXT}. Emacs associates a selection with
+a scrap, and a selection type with a scrap flavor type via
+@code{mac-scrap-name} and @code{mac-ostype} properties, respectively.
+
+@example
+(get 'CLIPBOARD 'mac-scrap-name)
+ @result{} "com.apple.scrap.clipboard"
+(get 'com.apple.traditional-mac-plain-text 'mac-ostype)
+ @result{} "TEXT"
+@end example
+
+Conventionally, selection types for scrap flavor types on Mac OS have
+the form of @acronym{UTI, Uniform Type Identifier} such as
+@code{com.apple.traditional-mac-plain-text},
+@code{public.utf16-plain-text}, and @code{public.file-url}.
+
+@defopt x-select-enable-clipboard
+If this is non-@code{nil}, the Emacs yank functions consult the
+clipboard before the primary selection, and the kill functions store in
+the clipboard as well as the primary selection. Otherwise they do not
+access the clipboard at all. The default is @code{nil} on most systems,
+but @code{t} on MS-Windows and Mac.
+@end defopt
+
+@node Drag and Drop
+@section Drag and Drop
+
+@vindex x-dnd-test-function
+@vindex x-dnd-known-types
+ When a user drags something from another application over Emacs, that other
+application expects Emacs to tell it if Emacs can handle the data that is
+dragged. The variable @code{x-dnd-test-function} is used by Emacs to determine
+what to reply. The default value is @code{x-dnd-default-test-function}
+which accepts drops if the type of the data to be dropped is present in
+@code{x-dnd-known-types}. You can customize @code{x-dnd-test-function} and/or
+@code{x-dnd-known-types} if you want Emacs to accept or reject drops based
+on some other criteria.
+
+@vindex x-dnd-types-alist
+ If you want to change the way Emacs handles drop of different types
+or add a new type, customize @code{x-dnd-types-alist}. This requires
+detailed knowledge of what types other applications use for drag and
+drop.
+
+@vindex dnd-protocol-alist
+ When an URL is dropped on Emacs it may be a file, but it may also be
+another URL type (ftp, http, etc.). Emacs first checks
+@code{dnd-protocol-alist} to determine what to do with the URL. If
+there is no match there and if @code{browse-url-browser-function} is
+an alist, Emacs looks for a match there. If no match is found the
+text for the URL is inserted. If you want to alter Emacs behavior,
+you can customize these variables.
+
+@node Color Names
+@section Color Names
+
+@cindex color names
+@cindex specify color
+@cindex numerical RGB color specification
+ A color name is text (usually in a string) that specifies a color.
+Symbolic names such as @samp{black}, @samp{white}, @samp{red}, etc.,
+are allowed; use @kbd{M-x list-colors-display} to see a list of
+defined names. You can also specify colors numerically in forms such
+as @samp{#@var{rgb}} and @samp{RGB:@var{r}/@var{g}/@var{b}}, where
+@var{r} specifies the red level, @var{g} specifies the green level,
+and @var{b} specifies the blue level. You can use either one, two,
+three, or four hex digits for @var{r}; then you must use the same
+number of hex digits for all @var{g} and @var{b} as well, making
+either 3, 6, 9 or 12 hex digits in all. (See the documentation of the
+X Window System for more details about numerical RGB specification of
+colors.)
+
+ These functions provide a way to determine which color names are
+valid, and what they look like. In some cases, the value depends on the
+@dfn{selected frame}, as described below; see @ref{Input Focus}, for the
+meaning of the term ``selected frame.''
+
+@defun color-defined-p color &optional frame
+This function reports whether a color name is meaningful. It returns
+@code{t} if so; otherwise, @code{nil}. The argument @var{frame} says
+which frame's display to ask about; if @var{frame} is omitted or
+@code{nil}, the selected frame is used.
+
+Note that this does not tell you whether the display you are using
+really supports that color. When using X, you can ask for any defined
+color on any kind of display, and you will get some result---typically,
+the closest it can do. To determine whether a frame can really display
+a certain color, use @code{color-supported-p} (see below).
+
+@findex x-color-defined-p
+This function used to be called @code{x-color-defined-p},
+and that name is still supported as an alias.
+@end defun
+
+@defun defined-colors &optional frame
+This function returns a list of the color names that are defined
+and supported on frame @var{frame} (default, the selected frame).
+If @var{frame} does not support colors, the value is @code{nil}.
+
+@findex x-defined-colors
+This function used to be called @code{x-defined-colors},
+and that name is still supported as an alias.
+@end defun
+
+@defun color-supported-p color &optional frame background-p
+This returns @code{t} if @var{frame} can really display the color
+@var{color} (or at least something close to it). If @var{frame} is
+omitted or @code{nil}, the question applies to the selected frame.
+
+Some terminals support a different set of colors for foreground and
+background. If @var{background-p} is non-@code{nil}, that means you are
+asking whether @var{color} can be used as a background; otherwise you
+are asking whether it can be used as a foreground.
+
+The argument @var{color} must be a valid color name.
+@end defun
+
+@defun color-gray-p color &optional frame
+This returns @code{t} if @var{color} is a shade of gray, as defined on
+@var{frame}'s display. If @var{frame} is omitted or @code{nil}, the
+question applies to the selected frame. If @var{color} is not a valid
+color name, this function returns @code{nil}.
+@end defun
+
+@defun color-values color &optional frame
+@cindex rgb value
+This function returns a value that describes what @var{color} should
+ideally look like on @var{frame}. If @var{color} is defined, the
+value is a list of three integers, which give the amount of red, the
+amount of green, and the amount of blue. Each integer ranges in
+principle from 0 to 65535, but some displays may not use the full
+range. This three-element list is called the @dfn{rgb values} of the
+color.
+
+If @var{color} is not defined, the value is @code{nil}.
+
+@example
+(color-values "black")
+ @result{} (0 0 0)
+(color-values "white")
+ @result{} (65280 65280 65280)
+(color-values "red")
+ @result{} (65280 0 0)
+(color-values "pink")
+ @result{} (65280 49152 51968)
+(color-values "hungry")
+ @result{} nil
+@end example
+
+The color values are returned for @var{frame}'s display. If
+@var{frame} is omitted or @code{nil}, the information is returned for
+the selected frame's display. If the frame cannot display colors, the
+value is @code{nil}.
+
+@findex x-color-values
+This function used to be called @code{x-color-values},
+and that name is still supported as an alias.
+@end defun
+
+@node Text Terminal Colors
+@section Text Terminal Colors
+@cindex colors on text-only terminals
+
+ Text-only terminals usually support only a small number of colors,
+and the computer uses small integers to select colors on the terminal.
+This means that the computer cannot reliably tell what the selected
+color looks like; instead, you have to inform your application which
+small integers correspond to which colors. However, Emacs does know
+the standard set of colors and will try to use them automatically.
+
+ The functions described in this section control how terminal colors
+are used by Emacs.
+
+ Several of these functions use or return @dfn{rgb values}, described
+in @ref{Color Names}.
+
+ These functions accept a display (either a frame or the name of a
+terminal) as an optional argument. We hope in the future to make Emacs
+support more than one text-only terminal at one time; then this argument
+will specify which terminal to operate on (the default being the
+selected frame's terminal; @pxref{Input Focus}). At present, though,
+the @var{frame} argument has no effect.
+
+@defun tty-color-define name number &optional rgb frame
+This function associates the color name @var{name} with
+color number @var{number} on the terminal.
+
+The optional argument @var{rgb}, if specified, is an rgb value, a list
+of three numbers that specify what the color actually looks like.
+If you do not specify @var{rgb}, then this color cannot be used by
+@code{tty-color-approximate} to approximate other colors, because
+Emacs will not know what it looks like.
+@end defun
+
+@defun tty-color-clear &optional frame
+This function clears the table of defined colors for a text-only terminal.
+@end defun
+
+@defun tty-color-alist &optional frame
+This function returns an alist recording the known colors supported by a
+text-only terminal.
+
+Each element has the form @code{(@var{name} @var{number} . @var{rgb})}
+or @code{(@var{name} @var{number})}. Here, @var{name} is the color
+name, @var{number} is the number used to specify it to the terminal.
+If present, @var{rgb} is a list of three color values (for red, green,
+and blue) that says what the color actually looks like.
+@end defun
+
+@defun tty-color-approximate rgb &optional frame
+This function finds the closest color, among the known colors
+supported for @var{display}, to that described by the rgb value
+@var{rgb} (a list of color values). The return value is an element of
+@code{tty-color-alist}.
+@end defun
+
+@defun tty-color-translate color &optional frame
+This function finds the closest color to @var{color} among the known
+colors supported for @var{display} and returns its index (an integer).
+If the name @var{color} is not defined, the value is @code{nil}.
+@end defun
+
+@node Resources
+@section X Resources
+
+@defun x-get-resource attribute class &optional component subclass
+The function @code{x-get-resource} retrieves a resource value from the X
+Window defaults database.
+
+Resources are indexed by a combination of a @dfn{key} and a @dfn{class}.
+This function searches using a key of the form
+@samp{@var{instance}.@var{attribute}} (where @var{instance} is the name
+under which Emacs was invoked), and using @samp{Emacs.@var{class}} as
+the class.
+
+The optional arguments @var{component} and @var{subclass} add to the key
+and the class, respectively. You must specify both of them or neither.
+If you specify them, the key is
+@samp{@var{instance}.@var{component}.@var{attribute}}, and the class is
+@samp{Emacs.@var{class}.@var{subclass}}.
+@end defun
+
+@defvar x-resource-class
+This variable specifies the application name that @code{x-get-resource}
+should look up. The default value is @code{"Emacs"}. You can examine X
+resources for application names other than ``Emacs'' by binding this
+variable to some other string, around a call to @code{x-get-resource}.
+@end defvar
+
+@defvar x-resource-name
+This variable specifies the instance name that @code{x-get-resource}
+should look up. The default value is the name Emacs was invoked with,
+or the value specified with the @samp{-name} or @samp{-rn} switches.
+@end defvar
+
+To illustrate some of the above, suppose that you have the line:
+
+@example
+xterm.vt100.background: yellow
+@end example
+
+@noindent
+in your X resources file (whose name is usually @file{~/.Xdefaults}
+or @file{~/.Xresources}). Then:
+
+@example
+@group
+(let ((x-resource-class "XTerm") (x-resource-name "xterm"))
+ (x-get-resource "vt100.background" "VT100.Background"))
+ @result{} "yellow"
+@end group
+@group
+(let ((x-resource-class "XTerm") (x-resource-name "xterm"))
+ (x-get-resource "background" "VT100" "vt100" "Background"))
+ @result{} "yellow"
+@end group
+@end example
+
+ @xref{X Resources,, X Resources, emacs, The GNU Emacs Manual}.
+
+@node Display Feature Testing
+@section Display Feature Testing
+@cindex display feature testing
+
+ The functions in this section describe the basic capabilities of a
+particular display. Lisp programs can use them to adapt their behavior
+to what the display can do. For example, a program that ordinarily uses
+a popup menu could use the minibuffer if popup menus are not supported.
+
+ The optional argument @var{display} in these functions specifies which
+display to ask the question about. It can be a display name, a frame
+(which designates the display that frame is on), or @code{nil} (which
+refers to the selected frame's display, @pxref{Input Focus}).
+
+ @xref{Color Names}, @ref{Text Terminal Colors}, for other functions to
+obtain information about displays.
+
+@defun display-popup-menus-p &optional display
+This function returns @code{t} if popup menus are supported on
+@var{display}, @code{nil} if not. Support for popup menus requires that
+the mouse be available, since the user cannot choose menu items without
+a mouse.
+@end defun
+
+@defun display-graphic-p &optional display
+This function returns @code{t} if @var{display} is a graphic display
+capable of displaying several frames and several different fonts at
+once. This is true for displays that use a window system such as X, and
+false for text-only terminals.
+@end defun
+
+@defun display-mouse-p &optional display
+@cindex mouse, availability
+This function returns @code{t} if @var{display} has a mouse available,
+@code{nil} if not.
+@end defun
+
+@defun display-color-p &optional display
+@findex x-display-color-p
+This function returns @code{t} if the screen is a color screen.
+It used to be called @code{x-display-color-p}, and that name
+is still supported as an alias.
+@end defun
+
+@defun display-grayscale-p &optional display
+This function returns @code{t} if the screen can display shades of gray.
+(All color displays can do this.)
+@end defun
+
+@defun display-supports-face-attributes-p attributes &optional display
+@anchor{Display Face Attribute Testing}
+This function returns non-@code{nil} if all the face attributes in
+@var{attributes} are supported (@pxref{Face Attributes}).
+
+The definition of `supported' is somewhat heuristic, but basically
+means that a face containing all the attributes in @var{attributes},
+when merged with the default face for display, can be represented in a
+way that's
+
+@enumerate
+@item
+different in appearance than the default face, and
+
+@item
+`close in spirit' to what the attributes specify, if not exact.
+@end enumerate
+
+Point (2) implies that a @code{:weight black} attribute will be
+satisfied by any display that can display bold, as will
+@code{:foreground "yellow"} as long as some yellowish color can be
+displayed, but @code{:slant italic} will @emph{not} be satisfied by
+the tty display code's automatic substitution of a `dim' face for
+italic.
+@end defun
+
+@defun display-selections-p &optional display
+This function returns @code{t} if @var{display} supports selections.
+Windowed displays normally support selections, but they may also be
+supported in some other cases.
+@end defun
+
+@defun display-images-p &optional display
+This function returns @code{t} if @var{display} can display images.
+Windowed displays ought in principle to handle images, but some
+systems lack the support for that. On a display that does not support
+images, Emacs cannot display a tool bar.
+@end defun
+
+@defun display-screens &optional display
+This function returns the number of screens associated with the display.
+@end defun
+
+@defun display-pixel-height &optional display
+This function returns the height of the screen in pixels.
+On a character terminal, it gives the height in characters.
+
+For graphical terminals, note that on ``multi-monitor'' setups this
+refers to the pixel width for all physical monitors associated with
+@var{display}. @xref{Multiple Displays}.
+@end defun
+
+@defun display-pixel-width &optional display
+This function returns the width of the screen in pixels.
+On a character terminal, it gives the width in characters.
+
+For graphical terminals, note that on ``multi-monitor'' setups this
+refers to the pixel width for all physical monitors associated with
+@var{display}. @xref{Multiple Displays}.
+@end defun
+
+@defun display-mm-height &optional display
+This function returns the height of the screen in millimeters,
+or @code{nil} if Emacs cannot get that information.
+@end defun
+
+@defun display-mm-width &optional display
+This function returns the width of the screen in millimeters,
+or @code{nil} if Emacs cannot get that information.
+@end defun
+
+@defvar display-mm-dimensions-alist
+This variable allows the user to specify the dimensions of graphical
+displays returned by @code{display-mm-height} and
+@code{display-mm-width} in case the system provides incorrect values.
+@end defvar
+
+@defun display-backing-store &optional display
+This function returns the backing store capability of the display.
+Backing store means recording the pixels of windows (and parts of
+windows) that are not exposed, so that when exposed they can be
+displayed very quickly.
+
+Values can be the symbols @code{always}, @code{when-mapped}, or
+@code{not-useful}. The function can also return @code{nil}
+when the question is inapplicable to a certain kind of display.
+@end defun
+
+@defun display-save-under &optional display
+This function returns non-@code{nil} if the display supports the
+SaveUnder feature. That feature is used by pop-up windows
+to save the pixels they obscure, so that they can pop down
+quickly.
+@end defun
+
+@defun display-planes &optional display
+This function returns the number of planes the display supports.
+This is typically the number of bits per pixel.
+For a tty display, it is log to base two of the number of colors supported.
+@end defun
+
+@defun display-visual-class &optional display
+This function returns the visual class for the screen. The value is one
+of the symbols @code{static-gray}, @code{gray-scale},
+@code{static-color}, @code{pseudo-color}, @code{true-color}, and
+@code{direct-color}.
+@end defun
+
+@defun display-color-cells &optional display
+This function returns the number of color cells the screen supports.
+@end defun
+
+ These functions obtain additional information specifically
+about X displays.
+
+@defun x-server-version &optional display
+This function returns the list of version numbers of the X server
+running the display. The value is a list of three integers: the major
+and minor version numbers of the X protocol, and the
+distributor-specific release number of the X server software itself.
+@end defun
+
+@defun x-server-vendor &optional display
+This function returns the ``vendor'' that provided the X server
+software (as a string). Really this means whoever distributes the X
+server.
+
+When the developers of X labelled software distributors as
+``vendors,'' they showed their false assumption that no system could
+ever be developed and distributed noncommercially.
+@end defun
+
+@ignore
+@defvar x-no-window-manager
+This variable's value is @code{t} if no X window manager is in use.
+@end defvar
+@end ignore
+
+@ignore
+@item
+The functions @code{x-pixel-width} and @code{x-pixel-height} return the
+width and height of an X Window frame, measured in pixels.
+@end ignore
+
+@ignore
+ arch-tag: 94977df6-3dca-4730-b57b-c6329e9282ba
+@end ignore
--- /dev/null
- You should probably start by skimming through the entire chapter
- @ref{Commands} to get an overview of @ccmode{}'s capabilities.
+\input texinfo
+@c Notes to self regarding line handling:
+@c
+@c Empty lines are often significant before @end directives; avoid them.
+@c
+@c Empty lines before and after @example directives are significant in
+@c info output but not in TeX. Empty lines inside @example directives
+@c are significant.
+
+@c Conventions for formatting examples:
+@c o If the example contains empty lines then put the surrounding empty
+@c lines inside the @example directives. Put them outside otherwise.
+@c o Use @group inside the example only if it shows indentation where
+@c the relation between lines inside is relevant.
+@c o Format line number columns like this:
+@c 1: foo
+@c 2: bar
+@c ^ one space
+@c ^^ two columns, right alignment
+@c o Check line lengths in TeX output; they can typically be no longer
+@c than 70 chars, 60 if the paragraph is indented.
+
+@comment TBD: Document the finer details of statement anchoring?
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@comment %**start of header (This is for running Texinfo on a region)
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@comment How to make the various output formats:
+@comment (Thanks to Robert Chassell for supplying this information.)
+@comment Note that Texinfo 4.7 (or later) is needed.
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@ignore
+In each of the following pairs of commands, the first generates a
+version with cross references pointing to the GNU Emacs manuals,
+the second with them pointing to the XEmacs manuals.
+ ## Info output
+ makeinfo cc-mode.texi
+ makeinfo -DXEMACS cc-mode.texi
+
+ ## DVI output
+ ## You may need to set up the environment variable TEXINPUTS so
+ ## that tex can find the file texinfo.tex - See the tex
+ ## manpage.
+ texi2dvi cc-mode.texi
+ texi2dvi -t "@set XEMACS " cc-mode.texi
+
+ ## HTML output. (The --no-split parameter is optional)
+ makeinfo --html --no-split cc-mode.texi
+ makeinfo --html --no-split -DXEMACS cc-mode.texi
+
+ ## Plain text output
+ makeinfo --fill-column=70 --no-split --paragraph-indent=0 \
+ --no-headers --output=cc-mode.txt cc-mode.texi
+ makeinfo --fill-column=70 --no-split --paragraph-indent=0 \
+ --no-headers --output=cc-mode.txt -DXEMACS cc-mode.texi
+
+ ## DocBook output
+ makeinfo --docbook --no-split --paragraph-indent=0 \
+ cc-mode.texi
+ makeinfo --docbook --no-split --paragraph-indent=0 \
+ -DXEMACS cc-mode.texi
+
+ ## XML output
+ makeinfo --xml --no-split --paragraph-indent=0 \
+ cc-mode.texi
+ makeinfo --xml --no-split --paragraph-indent=0 \
+ -DXEMACS cc-mode.texi
+
+ #### (You must be in the same directory as the viewed file.)
+
+ ## View DVI output
+ xdvi cc-mode.dvi &
+
+ ## View HTML output
+ mozilla cc-mode.html
+@end ignore
+
+@comment No overfull hbox marks in the dvi file.
+@finalout
+
+@setfilename ../../info/ccmode
+@settitle CC Mode Manual
+@footnotestyle end
+
+@c The following four macros generate the filenames and titles of the
+@c main (X)Emacs manual and the Elisp/Lispref manual. Leave the
+@c Texinfo variable `XEMACS' unset to generate a GNU Emacs version, set it
+@c to generate an XEmacs version, e.g. with
+@c "makeinfo -DXEMACS cc-mode.texi".
+@ifset XEMACS
+@macro emacsman
+xemacs
+@end macro
+@macro emacsmantitle
+XEmacs User's Manual
+@end macro
+@macro lispref
+lispref
+@end macro
+@macro lispreftitle
+XEmacs Lisp Reference Manual
+@end macro
+@end ifset
+
+@ifclear XEMACS
+@macro emacsman
+emacs
+@end macro
+@macro emacsmantitle
+GNU Emacs Manual
+@end macro
+@macro lispref
+elisp
+@end macro
+@macro lispreftitle
+GNU Emacs Lisp Reference Manual
+@end macro
+@end ifclear
+
+
+@macro ccmode
+CC Mode
+@end macro
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@comment @setchapternewpage odd !! we don't want blank pages !!
+@comment %**end of header (This is for running Texinfo on a region)
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@comment
+@comment Texinfo manual for CC Mode
+@comment Generated from the original README file by Krishna Padmasola
+@comment <krishna@earth-gw.njit.edu>
+@comment
+@comment Authors:
+@comment Barry A. Warsaw
+@comment Martin Stjernholm
+@comment Alan Mackenzie
+@comment
+@comment Maintained by Martin Stjernholm and Alan Mackenzie <bug-cc-mode@gnu.org>
+@comment
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@comment Define an index for syntactic symbols.
+@ifnottex @c In texi2dvi, the @defindex would create an empty cc-mode.ss
+ @c For Info, unlike tex, @syncodeindex needs a matching @defindex.
+@defindex ss
+@end ifnottex
+
+@comment Combine key, syntactic symbol and concept indices into one.
+@syncodeindex ss cp
+@syncodeindex ky cp
+
+@copying
+This manual is for CC Mode in Emacs.
+
+Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being ``The GNU Manifesto'', ``Distribution'' and
+``GNU GENERAL PUBLIC LICENSE'', with the Front-Cover texts being ``A GNU
+Manual'', and with the Back-Cover Texts as in (a) below. A copy of the
+license is included in the section entitled ``GNU Free Documentation
+License'' in the Emacs manual.
+
+(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
+this GNU Manual, like GNU software. Copies published by the Free
+Software Foundation raise funds for GNU development.''
+
+This document is part of a collection distributed under the GNU Free
+Documentation License. If you want to distribute this document
+separately from the collection, you can do so by adding a copy of the
+license to the document, as described in section 6 of the license.
+@end quotation
+@end copying
+
+@comment Info directory entry for use by install-info. The indentation
+@comment here is by request from the FSF folks.
+@dircategory Emacs
+@direntry
+* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C,
+ Java, Pike, AWK, and CORBA IDL code.
+@end direntry
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@comment TeX title page
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@titlepage
+@sp 10
+
+@center @titlefont{CC Mode 5.31}
+@sp 2
+@center @subtitlefont{A GNU Emacs mode for editing C and C-like languages}
+@sp 2
+@center Barry A. Warsaw, Martin Stjernholm, Alan Mackenzie
+
+@page
+@vskip 0pt plus 1filll
+@insertcopying
+
+This manual was generated from cc-mode.texi, which can be downloaded
+from
+@url{http://cvs.savannah.gnu.org/viewcvs/emacs/emacs/doc/misc/cc-mode.texi}.
+@end titlepage
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@comment The Top node contains the master menu for the Info file.
+@comment This appears only in the Info file, not the printed manual.
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@node Top, Introduction, (dir), (dir)
+@comment node-name, next, previous, up
+
+@ifinfo
+@top @ccmode{}
+
+@ccmode{} is a GNU Emacs mode for editing files containing C, C++,
+Objective-C, Java, CORBA IDL (and the variants PSDL and CIDL), Pike
+and AWK code. It provides syntax-based indentation, font locking, and
+has several handy commands and some minor modes to make the editing
+easier. It does not provide tools to look up and navigate between
+functions, classes etc - there are other packages for that.
+@end ifinfo
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@menu
+* Introduction::
+* Overview::
+* Getting Started::
+* Commands::
+* Font Locking::
+* Config Basics::
+* Custom Filling and Breaking::
+* Custom Auto-newlines::
+* Clean-ups::
+* Indentation Engine Basics::
+* Customizing Indentation::
+* Custom Macros::
+* Odds and Ends::
+* Sample .emacs File::
+* Performance Issues::
+* Limitations and Known Bugs::
+* FAQ::
+* Updating CC Mode::
+* Mailing Lists and Bug Reports::
+* GNU Free Documentation License::
+* Command and Function Index::
+* Variable Index::
+* Concept and Key Index::
+
+@detailmenu
+ --- The Detailed Node Listing ---
+
+Commands
+
+* Indentation Commands::
+* Comment Commands::
+* Movement Commands::
+* Filling and Breaking::
+* Minor Modes::
+* Electric Keys::
+* Auto-newlines::
+* Hungry WS Deletion::
+* Subword Movement::
+* Other Commands::
+
+Font Locking
+
+* Font Locking Preliminaries::
+* Faces::
+* Doc Comments::
+* AWK Mode Font Locking::
+
+Configuration Basics
+
+* CC Hooks::
+* Style Variables::
+* Styles::
+
+Styles
+
+* Built-in Styles::
+* Choosing a Style::
+* Adding Styles::
+* File Styles::
+
+Customizing Auto-newlines
+
+* Hanging Braces::
+* Hanging Colons::
+* Hanging Semicolons and Commas::
+
+Hanging Braces
+
+* Custom Braces::
+
+Indentation Engine Basics
+
+* Syntactic Analysis::
+* Syntactic Symbols::
+* Indentation Calculation::
+
+Syntactic Symbols
+
+* Function Symbols::
+* Class Symbols::
+* Conditional Construct Symbols::
+* Switch Statement Symbols::
+* Brace List Symbols::
+* External Scope Symbols::
+* Paren List Symbols::
+* Literal Symbols::
+* Multiline Macro Symbols::
+* Objective-C Method Symbols::
+* Anonymous Class Symbol::
+* Statement Block Symbols::
+* K&R Symbols::
+
+Customizing Indentation
+
+* c-offsets-alist::
+* Interactive Customization::
+* Line-Up Functions::
+* Custom Line-Up::
+* Other Indentation::
+
+Line-Up Functions
+
+* Brace/Paren Line-Up::
+* List Line-Up::
+* Operator Line-Up::
+* Comment Line-Up::
+* Misc Line-Up::
+
+@end detailmenu
+@end menu
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Introduction, Overview, Top, Top
+@comment node-name, next, previous, up
+@chapter Introduction
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@cindex BOCM
+@cindex history
+@cindex awk-mode.el
+@cindex c-mode.el
+@cindex c++-mode.el
+
+Welcome to @ccmode{}, a GNU Emacs mode for editing files containing C,
+C++, Objective-C, Java, CORBA IDL (and the variants CORBA PSDL and
+CIDL), Pike and AWK code. This incarnation of the mode is descended
+from @file{c-mode.el} (also called ``Boring Old C Mode'' or BOCM
+@t{:-)}, @file{c++-mode.el} version 2, which Barry Warsaw had been
+maintaining since 1992, and @file{awk-mode.el}, a long neglected mode
+in the (X)Emacs base.
+
+Late in 1997, Martin Stjernholm joined Barry on the @ccmode{}
+Maintainers Team, and implemented the Pike support. In 2000 Martin
+took over as the sole maintainer. In 2001 Alan Mackenzie joined the
+team, implementing AWK support in version 5.30. @ccmode{} did not
+originally contain the font lock support for its languages --- that
+was added in version 5.30.
+
+This manual describes @ccmode{}
+@comment The following line must appear on its own, so that the
+version 5.31.
+@comment Release.py script can update the version number automatically
+
+@ccmode{} supports the editing of K&R and ANSI C, C++, Objective-C,
+Java, CORBA's Interface Definition Language, Pike@footnote{A C-like
+scripting language with its roots in the LPC language used in some MUD
+engines. See @uref{http://pike.ida.liu.se/}.} and AWK files. In this
+way, you can easily set up consistent font locking and coding styles for
+use in editing all of these languages, although AWK is not yet as
+uniformly integrated as the other languages.
+
+@findex c-mode
+@findex c++-mode
+@findex objc-mode
+@findex java-mode
+@findex idl-mode
+@findex pike-mode
+@findex awk-mode
+Note that the name of this package is ``@ccmode{}'', but there is no top
+level @code{cc-mode} entry point. All of the variables, commands, and
+functions in @ccmode{} are prefixed with @code{c-@var{thing}}, and
+@code{c-mode}, @code{c++-mode}, @code{objc-mode}, @code{java-mode},
+@code{idl-mode}, @code{pike-mode}, and @code{awk-mode} entry points are
+provided. This package is intended to be a replacement for
+@file{c-mode.el}, @file{c++-mode.el} and @file{awk-mode.el}.
+
+A special word of thanks goes to Krishna Padmasola for his work in
+converting the original @file{README} file to Texinfo format. I'd
+also like to thank all the @ccmode{} victims who help enormously
+during the early beta stages of @ccmode{}'s development.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Overview, Getting Started, Introduction, Top
+@comment node-name, next, previous, up@cindex organization of the manual
+@chapter Overview of the Manual
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@noindent
+The manual starts with several introductory chapters (including this
+one).
+
+@noindent
+The next chunk of the manual describes the day to day @emph{use} of
+@ccmode{} (as contrasted with how to customize it).
+
+@itemize @bullet
+@item
+The chapter ``Commands'' describes in detail how to use (nearly) all
+of @ccmode{}'s features. There are extensive cross-references from
+here to the corresponding sections later in the manual which tell you
+how to customize these features.
+
+@item
+``Font Locking'' describes how ``syntax highlighting'' is applied to
+your buffers. It is mainly background information and can be skipped
+over at a first reading.
+@end itemize
+
+@noindent
+The next chunk of the manual describes how to @emph{customize}
+@ccmode{}. Typically, an overview of a topic is given at the chapter
+level, then the sections and subsections describe the material in
+increasing detail.
+
+@itemize @bullet
+@item
+The chapter ``Configuration Basics'' tells you @emph{how} to write
+customizations - whether in hooks, in styles, in both, or in neither,
+depending on your needs. It describes the @ccmode{} style system and
+lists the standard styles that @ccmode{} supplies.
+
+@item
+The next few chapters describe in detail how to customize the various
+features of @ccmode{}.
+
+@item
+Finally, there is a sample @file{.emacs} fragment, which might help you
+in creating your own customization.
+@end itemize
+
+@noindent
+The manual ends with ``this and that'', things that don't fit cleanly
+into any of the previous chunks.
+
+@itemize @bullet
+@item
+Two chapters discuss the performance of @ccmode{} and known
+bugs/limitations.
+
+@item
+The FAQ contains a list of common problems and questions.
+
+@item
+The next two chapters tell you how to get in touch with the @ccmode{}
+project - whether for updating @ccmode{} or submitting bug reports.
+@end itemize
+
+@noindent
+Finally, there are the customary indices.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Getting Started, Commands, Overview, Top
+@comment node-name, next, previous, up
+@chapter Getting Started
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+If you got this version of @ccmode{} with Emacs or XEmacs, it should
+work just fine right out of the box. Note however that you might not
+have the latest @ccmode{} release and might want to upgrade your copy
+(see below).
+
++You should probably start by skimming through the entire Commands chapter
++(@pxref{Commands}) to get an overview of @ccmode{}'s capabilities.
+
+After trying out some commands, you may dislike some aspects of
+@ccmode{}'s default configuration. Here is an outline of how to
+change some of the settings that newcomers to @ccmode{} most often
+want to change:
+
+@table @asis
+@item c-basic-offset
+This Lisp variable holds an integer, the number of columns @ccmode{}
+indents nested code. To set this value to 6, customize
+@code{c-basic-offset} or put this into your @file{.emacs}:
+
+@example
+(setq c-basic-offset 6)
+@end example
+
+@item The (indentation) style
+The basic ``shape'' of indentation created by @ccmode{}---by default,
+this is @code{gnu} style (except for Java and AWK buffers). A list of
+the available styles and their descriptions can be found in
+@ref{Built-in Styles}. A complete specification of the @ccmode{}
+style system, including how to create your own style, can be found in
+the chapter @ref{Styles}. To set your style to @code{linux}, either
+customize @code{c-default-style} or put this into your @file{.emacs}:
+
+@example
+(setq c-default-style '((java-mode . "java")
+ (awk-mode . "awk")
+ (other . "linux")))
+@end example
+
+@item Electric Indentation
+Normally, when you type ``punctuation'' characters such as @samp{;} or
+@samp{@{}, @ccmode{} instantly reindents the current line. This can
+be disconcerting until you get used to it. To disable @dfn{electric
+indentation} in the current buffer, type @kbd{C-c C-l}. Type the same
+thing to enable it again. To have electric indentation disabled by
+default, put the following into your @file{.emacs} file@footnote{There
+is no ``easy customization'' facility for making this change.}:
+
+@example
+(setq-default c-electric-flag nil)
+@end example
+
+@noindent
+Details of this and other similar ``Minor Modes'' appear in the
+section @ref{Minor Modes}.
+
+@item Making the @key{RET} key indent the new line
+The standard Emacs binding for @key{RET} just adds a new line. If you
+want it to reindent the new line as well, rebind the key. Note that
+the action of rebinding would fail if the pertinent keymap didn't yet
+exist---we thus need to delay the action until after @ccmode{} has
+been loaded. Put the following code into your @file{.emacs}:
+
+@example
+(defun my-make-CR-do-indent ()
+ (define-key c-mode-base-map "\C-m" 'c-context-line-break))
+(add-hook 'c-initialization-hook 'my-make-CR-do-indent)
+@end example
+
+@noindent
+This example demonstrates the use of a very powerful @ccmode{} (and
+Emacs) facility, the hook. The use of @ccmode{}'s hooks is described
+in @ref{CC Hooks}.
+@end table
+
+All these settings should occur in your @file{.emacs} @emph{before}
+any @ccmode{} buffers get loaded---in particular, before any call of
+@code{desktop-read}.
+
+As you get to know the mode better, you may want to make more
+ambitious changes to your configuration. For this, you should start
+reading the chapter @ref{Config Basics}.
+
+If you are upgrading an existing @ccmode{} installation, please see
+the @file{README} file for installation details. In particular, if
+you are going to be editing AWK files, @file{README} describes how to
+configure your (X)Emacs so that @ccmode{} will supersede the obsolete
+@code{awk-mode.el} which might have been supplied with your (X)Emacs.
+@ccmode{} might not work with older versions of Emacs or XEmacs. See
+the @ccmode{} release notes at @uref{http://cc-mode.sourceforge.net}
+for the latest information on Emacs version and package compatibility
+(@pxref{Updating CC Mode}).
+
+@deffn Command c-version
+@findex version (c-)
+You can find out what version of @ccmode{} you are using by visiting a C
+file and entering @kbd{M-x c-version RET}. You should see this message in
+the echo area:
+
+@example
+Using CC Mode version 5.XX
+@end example
+
+@noindent
+where @samp{XX} is the minor release number.
+@end deffn
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Commands, Font Locking, Getting Started, Top
+@comment node-name, next, previous, up
+@chapter Commands
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+This chapter specifies all of CC Mode's commands, and thus contains
+nearly everything you need to know to @emph{use} @ccmode{} (as
+contrasted with configuring it). @dfn{Commands} here means both
+control key sequences and @dfn{electric keys}, these being characters
+such as @samp{;} which, as well as inserting themselves into the
+buffer, also do other things.
+
+You might well want to review
+@ifset XEMACS
+@ref{Lists,,,@emacsman{}, @emacsmantitle{}},
+@end ifset
+@ifclear XEMACS
+@ref{Moving by Parens,,,@emacsman{}, @emacsmantitle{}},
+@end ifclear
+which describes commands for moving around brace and parenthesis
+structures.
+
+
+@menu
+* Indentation Commands::
+* Comment Commands::
+* Movement Commands::
+* Filling and Breaking::
+* Minor Modes::
+* Electric Keys::
+* Auto-newlines::
+* Hungry WS Deletion::
+* Subword Movement::
+* Other Commands::
+@end menu
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Indentation Commands, Comment Commands, Commands, Commands
+@comment node-name, next, previous,up
+@section Indentation Commands
+@cindex indentation
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+The following commands reindent C constructs. Note that when you
+change your coding style, either interactively or through some other
+means, your file does @emph{not} automatically get reindented. You
+will need to execute one of the following commands to see the effects
+of your changes.
+
+@cindex GNU indent program
+Also, variables like @code{c-hanging-*} and @code{c-cleanup-list}
+(@pxref{Custom Auto-newlines}) only affect how on-the-fly code is
+formatted. Changing the ``hanginess'' of a brace and then
+reindenting, will not move the brace to a different line. For this,
+you're better off getting an external program like GNU @code{indent},
+which will rearrange brace location, amongst other things.
+
+Preprocessor directives are handled as syntactic whitespace from other
+code, i.e. they can be interspersed anywhere without affecting the
+indentation of the surrounding code, just like comments.
+
+The code inside macro definitions is, by default, still analyzed
+syntactically so that you get relative indentation there just as you'd
+get if the same code was outside a macro. However, since there is no
+hint about the syntactic context, i.e. whether the macro expands to an
+expression, to some statements, or perhaps to whole functions, the
+syntactic recognition can be wrong. @ccmode{} manages to figure it
+out correctly most of the time, though.
+
+Reindenting large sections of code can take a long time. When
+@ccmode{} reindents a region of code, it is essentially equivalent to
+hitting @key{TAB} on every line of the region.
+
+These commands indent code:
+
+@table @asis
+@item @kbd{@key{TAB}} (@code{c-indent-command})
+@kindex TAB
+@findex c-indent-command
+@findex indent-command (c-)
+This command indents the current line. That is all you need to know
+about it for normal use.
+
+@code{c-indent-command} does different things, depending on the
+setting of @code{c-syntactic-indentation} (@pxref{Indentation Engine
+Basics}):
+
+@itemize @bullet
+@item
+When it's non-@code{nil} (which it normally is), the command indents
+the line according to its syntactic context. With a prefix argument
+(@kbd{C-u @key{TAB}}), it will re-indent the entire
+expression@footnote{this is only useful for a line starting with a
+comment opener or an opening brace, parenthesis, or string quote.}
+that begins at the line's left margin.
+
+@item
+When it's @code{nil}, the command indents the line by an extra
+@code{c-basic-offset} columns. A prefix argument acts as a
+multiplier. A bare prefix (@kbd{C-u @key{TAB}}) is equivalent to -1,
+removing @code{c-basic-offset} columns from the indentation.
+@end itemize
+
+The precise behavior is modified by several variables: With
+@code{c-tab-always-indent}, you can make @key{TAB} insert whitespace
+in some circumstances---@code{c-insert-tab-function} then defines
+precisely what sort of ``whitespace'' this will be. Set the standard
+Emacs variable @code{indent-tabs-mode} to @code{t} if you want real
+@samp{tab} characters to be used in the indentation, to @code{nil} if
+you want only spaces. @xref{Just Spaces,,, @emacsman{},
+@emacsmantitle{}}.
+
+@defopt c-tab-always-indent
+@vindex tab-always-indent (c-)
+@cindex literal
+This variable modifies how @key{TAB} operates.
+@itemize @bullet
+@item
+When it is @code{t} (the default), @key{TAB} simply indents the
+current line.
+@item
+When it is @code{nil}, @key{TAB} (re)indents the line only if point is
+to the left of the first non-whitespace character on the line.
+Otherwise it inserts some whitespace (a tab or an equivalent number of
+spaces - see below) at point.
+@item
+With some other value, the line is reindented. Additionally, if point
+is within a string or comment, some whitespace is inserted.
+@end itemize
+@end defopt
+
+@defopt c-insert-tab-function
+@vindex insert-tab-function (c-)
+@findex tab-to-tab-stop
+When ``some whitespace'' is inserted as described above, what actually
+happens is that the function stored in @code{c-insert-tab-function} is
+called. Normally, this is @code{insert-tab}, which inserts a real tab
+character or the equivalent number of spaces (depending on
+@code{indent-tabs-mode}). Some people, however, set
+@code{c-insert-tab-function} to @code{tab-to-tab-stop} so as to get
+hard tab stops when indenting.
+@end defopt
+@end table
+
+@noindent
+The kind of indentation the next five commands do depends on the
+setting of @code{c-syntactic-indentation} (@pxref{Indentation Engine
+Basics}):
+@itemize @bullet
+@item
+when it is non-@code{nil} (the default), the commands indent lines
+according to their syntactic context;
+@item
+when it is @code{nil}, they just indent each line the same amount as
+the previous non-blank line. The commands that indent a region aren't
+very useful in this case.
+@end itemize
+
+@table @asis
+@item @kbd{C-j} (@code{newline-and-indent})
+@kindex C-j
+@findex newline-and-indent
+Inserts a newline and indents the new blank line, ready to start
+typing. This is a standard (X)Emacs command.
+
+@item @kbd{C-M-q} (@code{c-indent-exp})
+@kindex C-M-q
+@findex c-indent-exp
+@findex indent-exp (c-)
+Indents an entire balanced brace or parenthesis expression. Note that
+point must be on the opening brace or parenthesis of the expression
+you want to indent.
+
+@item @kbd{C-c C-q} (@code{c-indent-defun})
+@kindex C-c C-q
+@findex c-indent-defun
+@findex indent-defun (c-)
+Indents the entire top-level function, class or macro definition
+encompassing point. It leaves point unchanged. This function can't be
+used to reindent a nested brace construct, such as a nested class or
+function, or a Java method. The top-level construct being reindented
+must be complete, i.e. it must have both a beginning brace and an ending
+brace.
+
+@item @kbd{C-M-\} (@code{indent-region})
+@kindex C-M-\
+@findex indent-region
+Indents an arbitrary region of code. This is a standard Emacs command,
+tailored for C code in a @ccmode{} buffer. Note, of course, that point
+and mark must delineate the region you want to indent.
+
+@item @kbd{C-M-h} (@code{c-mark-function})
+@kindex C-M-h
+@findex c-mark-function
+@findex mark-function (c-)
+While not strictly an indentation command, this is useful for marking
+the current top-level function or class definition as the current
+region. As with @code{c-indent-defun}, this command operates on
+top-level constructs, and can't be used to mark say, a Java method.
+@end table
+
+These variables are also useful when indenting code:
+
+@defopt indent-tabs-mode
+This is a standard Emacs variable that controls how line indentation
+is composed. When it's non-@code{nil}, tabs can be used in a line's
+indentation, otherwise only spaces are used.
+@end defopt
+
+@defopt c-progress-interval
+@vindex progress-interval (c-)
+When indenting large regions of code, this variable controls how often a
+progress message is displayed. Set this variable to @code{nil} to
+inhibit the progress messages, or set it to an integer which is how
+often (in seconds) progress messages are to be displayed.
+@end defopt
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Comment Commands, Movement Commands, Indentation Commands, Commands
+@comment node-name, next, previous, up
+@section Comment Commands
+@cindex comments (insertion of)
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@table @asis
+@item @kbd{C-c C-c} (@code{comment-region})
+@kindex C-c C-c
+@findex comment-region
+This command comments out the lines that start in the region. With a
+negative argument, it does the opposite - it deletes the comment
+delimiters from these lines. @xref{Multi-Line Comments,,, emacs, GNU
+Emacs Manual}, for fuller details. @code{comment-region} isn't
+actually part of @ccmode{} - it is given a @ccmode{} binding for
+convenience.
+
+@item @kbd{M-;} (@code{comment-dwim} or @code{indent-for-comment} @footnote{The name of this command varies between (X)Emacs versions.})
+@kindex M-;
+@findex comment-dwim
+@findex indent-for-comment
+Insert a comment at the end of the current line, if none is there
+already. Then reindent the comment according to @code{comment-column}
+@ifclear XEMACS
+(@pxref{Options for Comments,,, emacs, GNU Emacs Manual})
+@end ifclear
+@ifset XEMACS
+(@pxref{Comments,,, xemacs, XEmacs User's Manual})
+@end ifset
+and the variables below. Finally, position the point after the
+comment starter. @kbd{C-u M-;} kills any comment on the current line,
+together with any whitespace before it. This is a standard Emacs
+command, but @ccmode{} enhances it a bit with two variables:
+
+@defopt c-indent-comment-alist
+@vindex indent-comment-alist (c-)
+@vindex comment-column
+This style variable allows you to vary the column that @kbd{M-;} puts
+the comment at, depending on what sort of code is on the line, and
+possibly the indentation of any similar comment on the preceding line.
+It is an association list that maps different types of lines to
+actions describing how they should be handled. If a certain line type
+isn't present on the list then the line is indented to the column
+specified by @code{comment-column}.
+
+See the documentation string for a full description of this
+variable (use @kbd{C-h v c-indent-comment-alist}).
+@end defopt
+
+@defopt c-indent-comments-syntactically-p
+@vindex indent-comments-syntactically-p (c-)
+Normally, when this style variable is @code{nil}, @kbd{M-;} will
+indent comment-only lines according to @code{c-indent-comment-alist},
+just as it does with lines where other code precede the comments.
+However, if you want it to act just like @key{TAB} for comment-only
+lines you can get that by setting
+@code{c-indent-comments-syntactically-p} to non-@code{nil}.
+
+If @code{c-indent-comments-syntactically-p} is non-@code{nil} then
+@code{c-indent-comment-alist} won't be consulted at all for comment-only
+lines.
+@end defopt
+@end table
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Movement Commands, Filling and Breaking, Comment Commands, Commands
+@comment node-name, next, previous, up
+@section Movement Commands
+@cindex movement
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@ccmode{} contains some useful commands for moving around in C code.
+
+@table @asis
+@item @kbd{C-M-a} (@code{c-beginning-of-defun})
+@itemx @kbd{C-M-e} (@code{c-end-of-defun})
+@findex c-beginning-of-defun
+@findex c-end-of-defun
+
+Move to the beginning or end of the current or next function. Other
+constructs (such as a structs or classes) which have a brace block
+also count as ``functions'' here. To move over several functions, you
+can give these commands a repeat count.
+
+The start of a function is at its header. The end of the function is
+after its closing brace, or after the semicolon of a construct (such
+as a @code{struct}) which doesn't end at the brace. These two
+commands try to leave point at the beginning of a line near the actual
+start or end of the function. This occasionally causes point not to
+move at all.
+
+These functions are analogous to the Emacs built-in commands
+@code{beginning-of-defun} and @code{end-of-defun}, except they
+eliminate the constraint that the top-level opening brace of the defun
+must be in column zero. See @ref{Defuns,,,@emacsman{},
+@emacsmantitle{}}, for more information.
+
+@item @kbd{C-M-a} (AWK Mode) (@code{c-awk-beginning-of-defun})
+@itemx @kbd{C-M-e} (AWK Mode) (@code{c-awk-end-of-defun})
+@kindex C-M-a (AWK Mode)
+@kindex C-M-e (AWK Mode)
+@findex c-awk-beginning-of-defun
+@findex awk-beginning-of-defun (c-)
+@findex c-awk-end-of-defun
+@findex awk-end-of-defun (c-)
+Move to the beginning or end of the current or next AWK defun. These
+commands can take prefix-arguments, their functionality being entirely
+equivalent to @code{beginning-of-defun} and @code{end-of-defun}.
+
+AWK Mode @dfn{defuns} are either pattern/action pairs (either of which
+might be implicit) or user defined functions. Having the @samp{@{} and
+@samp{@}} (if there are any) in column zero, as is suggested for some
+modes, is neither necessary nor helpful in AWK mode.
+
+@item @kbd{M-a} (@code{c-beginning-of-statement})
+@itemx @kbd{M-e} (@code{c-end-of-statement})
+@kindex M-a
+@kindex M-e
+@findex c-beginning-of-statement
+@findex c-end-of-statement
+@findex beginning-of-statement (c-)
+@findex end-of-statement (c-)
+Move to the beginning or end of the innermost C statement. If point
+is already there, move to the next beginning or end of a statement,
+even if that means moving into a block. (Use @kbd{C-M-b} or
+@kbd{C-M-f} to move over a balanced block.) A prefix argument @var{n}
+means move over @var{n} statements.
+
+If point is within or next to a comment or a string which spans more
+than one line, these commands move by sentences instead of statements.
+
+When called from a program, these functions take three optional
+arguments: the repetition count, a buffer position limit which is the
+farthest back to search for the syntactic context, and a flag saying
+whether to do sentence motion in or near comments and multiline
+strings.
+
+@item @kbd{C-c C-u} (@code{c-up-conditional})
+@kindex C-c C-u
+@findex c-up-conditional
+@findex up-conditional (c-)
+Move back to the containing preprocessor conditional, leaving the mark
+behind. A prefix argument acts as a repeat count. With a negative
+argument, move forward to the end of the containing preprocessor
+conditional.
+
+@samp{#elif} is treated like @samp{#else} followed by @samp{#if}, so the
+function stops at them when going backward, but not when going
+forward.
+
+This key sequence is not bound in AWK Mode, which doesn't have
+preprocessor statements.
+
+@item @kbd{M-x c-up-conditional-with-else}
+@findex c-up-conditional-with-else
+@findex up-conditional-with-else (c-)
+A variety of @code{c-up-conditional} that also stops at @samp{#else}
+lines. Normally those lines are ignored.
+
+@item @kbd{M-x c-down-conditional}
+@findex c-down-conditional
+@findex down-conditional (c-)
+Move forward into the next nested preprocessor conditional, leaving
+the mark behind. A prefix argument acts as a repeat count. With a
+negative argument, move backward into the previous nested preprocessor
+conditional.
+
+@samp{#elif} is treated like @samp{#else} followed by @samp{#if}, so the
+function stops at them when going forward, but not when going backward.
+
+@item @kbd{M-x c-down-conditional-with-else}
+@findex c-down-conditional-with-else
+@findex down-conditional-with-else (c-)
+A variety of @code{c-down-conditional} that also stops at @samp{#else}
+lines. Normally those lines are ignored.
+
+@item @kbd{C-c C-p} (@code{c-backward-conditional})
+@itemx @kbd{C-c C-n} (@code{c-forward-conditional})
+@kindex C-c C-p
+@kindex C-c C-n
+@findex c-backward-conditional
+@findex c-forward-conditional
+@findex backward-conditional (c-)
+@findex forward-conditional (c-)
+Move backward or forward across a preprocessor conditional, leaving
+the mark behind. A prefix argument acts as a repeat count. With a
+negative argument, move in the opposite direction.
+
+These key sequences are not bound in AWK Mode, which doesn't have
+preprocessor statements.
+
+@item @kbd{M-x c-backward-into-nomenclature}
+@itemx @kbd{M-x c-forward-into-nomenclature}
+@findex c-backward-into-nomenclature
+@findex c-forward-into-nomenclature
+@findex backward-into-nomenclature (c-)
+@findex forward-into-nomenclature (c-)
+A popular programming style, especially for object-oriented languages
+such as C++ is to write symbols in a mixed case format, where the
+first letter of each word is capitalized, and not separated by
+underscores. E.g. @samp{SymbolsWithMixedCaseAndNoUnderlines}.
+
+These commands move backward or forward to the beginning of the next
+capitalized word. With prefix argument @var{n}, move @var{n} times.
+If @var{n} is negative, move in the opposite direction.
+
+Note that these two commands have been superseded by
+@code{c-subword-mode}, which you should use instead. @xref{Subword
+Movement}. They might be removed from a future release of @ccmode{}.
+@end table
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Filling and Breaking, Minor Modes, Movement Commands, Commands
+@comment node-name, next, previous, up
+@section Filling and Line Breaking Commands
+@cindex text filling
+@cindex line breaking
+@cindex comment handling
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Since there's a lot of normal text in comments and string literals,
+@ccmode{} provides features to edit these like in text mode. The goal
+is to do it seamlessly, i.e. you can use auto fill mode, sentence and
+paragraph movement, paragraph filling, adaptive filling etc. wherever
+there's a piece of normal text without having to think much about it.
+@ccmode{} keeps the indentation, fixes suitable comment line prefixes,
+and so on.
+
+You can configure the exact way comments get filled and broken, and
+where Emacs does auto-filling (see @pxref{Custom Filling and
+Breaking}). Typically, the style system (@pxref{Styles}) will have
+set this up for you, so you probably won't have to bother.
+
+@findex auto-fill-mode
+@cindex Auto Fill mode
+@cindex paragraph filling
+Line breaks are by default handled (almost) the same regardless of
+whether they are made by auto fill mode (@pxref{Auto Fill,,,
+@emacsman{}, @emacsmantitle{}}), by paragraph filling (e.g. with
+@kbd{M-q}), or explicitly with @kbd{M-j} or similar methods. In
+string literals, the new line gets the same indentation as the
+previous nonempty line.@footnote{You can change this default by
+setting the @code{string} syntactic symbol (@pxref{Syntactic Symbols}
+and @pxref{Customizing Indentation})}.
+
+@table @asis
+@item @kbd{M-q} (@code{c-fill-paragraph})
+@kindex M-q
+@findex c-fill-paragraph
+@findex fill-paragraph (c-)
+@cindex Javadoc markup
+@cindex Pike autodoc markup
+This command fills multiline string literals and both block
+and line style comments. In Java buffers, the Javadoc markup words
+are recognized as paragraph starters. The line oriented Pike autodoc
+markup words are recognized in the same way in Pike mode.
+
+The formatting of the starters (@code{/*}) and enders (@code{*/}) of
+block comments are kept as they were before the filling. I.e., if
+either the starter or ender were on a line of its own, then it stays
+on its own line; conversely, if the delimiter has comment text on its
+line, it keeps at least one word of that text with it on the line.
+
+This command is the replacement for @code{fill-paragraph} in @ccmode{}
+buffers.
+
+@item @kbd{M-j} (@code{c-indent-new-comment-line})
+@kindex M-j
+@findex c-indent-new-comment-line
+@findex indent-new-comment-line (c-)
+This breaks the current line at point and indents the new line. If
+point was in a comment, the new line gets the proper comment line
+prefix. If point was inside a macro, a backslash is inserted before
+the line break. It is the replacement for
+@code{indent-new-comment-line}.
+
+@item @kbd{M-x c-context-line-break}
+@findex c-context-line-break
+@findex context-line-break (c-)
+Insert a line break suitable to the context: If the point is inside a
+comment, the new line gets the suitable indentation and comment line
+prefix like @code{c-indent-new-comment-line}. In normal code it's
+indented like @code{newline-and-indent} would do. In macros it acts
+like @code{newline-and-indent} but additionally inserts and optionally
+aligns the line ending backslash so that the macro remains unbroken.
+@xref{Custom Macros}, for details about the backslash alignment. In a
+string, a backslash is inserted only if the string is within a
+macro@footnote{In GCC, unescaped line breaks within strings are
+valid.}.
+
+This function is not bound to a key by default, but it's intended to be
+used on the @kbd{RET} key. If you like the behavior of
+@code{newline-and-indent} on @kbd{RET}, you should consider switching to
+this function. @xref{Sample .emacs File}.
+
+@item @kbd{M-x c-context-open-line}
+@findex c-context-open-line
+@findex context-open-line (c-)
+This is to @kbd{C-o} (@kbd{M-x open-line}) as
+@code{c-context-line-break} is to @kbd{RET}. I.e. it works just like
+@code{c-context-line-break} but leaves the point before the inserted
+line break.
+@end table
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Minor Modes, Electric Keys, Filling and Breaking, Commands
+@comment node-name, next, previous, up
+@section Minor Modes
+@cindex Minor Modes
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@ccmode{} contains several minor-mode-like features that you might
+find useful while writing new code or editing old code:
+
+@table @asis
+@item electric mode
+When this is enabled, certain visible characters cause reformatting as
+they are typed. This is normally helpful, but can be a nuisance when
+editing chaotically formatted code. It can also be disconcerting,
+especially for users who are new to @ccmode{}.
+@item auto-newline mode
+This automatically inserts newlines where you'd probably want to type
+them yourself, e.g. after typing @samp{@}}s. Its action is suppressed
+when electric mode is disabled.
+@item hungry-delete mode
+This lets you delete a contiguous block of whitespace with a single
+key - for example, the newline and indentation just inserted by
+auto-newline when you want to back up and write a comment after the
+last statement.
+@item subword mode
+This mode makes basic word movement commands like @kbd{M-f}
+(@code{forward-word}) and @kbd{M-b} (@code{backward-word}) treat the
+parts of sillycapsed symbols as different words.
+E.g. @samp{NSGraphicsContext} is treated as three words @samp{NS},
+@samp{Graphics}, and @samp{Context}.
+@item syntactic-indentation mode
+When this is enabled (which it normally is), indentation commands such
+as @kbd{C-j} indent lines of code according to their syntactic
+structure. Otherwise, a line is simply indented to the same level as
+the previous one and @kbd{@key{TAB}} adjusts the indentation in steps
+of `c-basic-offset'.
+@end table
+
+Full details on how these minor modes work are at @ref{Electric Keys},
+@ref{Auto-newlines}, @ref{Hungry WS Deletion}, @ref{Subword Movement},
+and @ref{Indentation Engine Basics}.
+
+You can toggle each of these minor modes on and off, and you can
+configure @ccmode{} so that it starts up with your favourite
+combination of them (@pxref{Sample .emacs File}). By default, when
+you initialize a buffer, electric mode and syntactic-indentation mode
+are enabled but the other two modes are disabled.
+
+@ccmode{} displays the current state of the first four of these minor
+modes on the modeline by appending letters to the major mode's name,
+one letter for each enabled minor mode - @samp{l} for electric mode,
+@samp{a} for auto-newline mode, @samp{h} for hungry delete mode, and
+@samp{w} for subword mode. If all these modes were enabled, you'd see
+@samp{C/lahw}@footnote{The @samp{C} would be replaced with the name of
+the language in question for the other languages @ccmode{} supports.}.
+
+Here are the commands to toggle these modes:
+
+@table @asis
+@item @kbd{C-c C-l} (@code{c-toggle-electric-state})
+@kindex C-c C-l
+@findex c-toggle-electric-state
+@findex toggle-electric-state (c-)
+Toggle electric minor mode. When the command turns the mode off, it
+also suppresses auto-newline mode.
+
+@item @kbd{C-c C-a} (@code{c-toggle-auto-newline})
+@kindex C-c C-a
+@findex c-toggle-auto-newline
+@findex toggle-auto-newline (c-)
+Toggle auto-newline minor mode. When the command turns the mode on,
+it also enables electric minor mode.
+
+@item @kbd{M-x c-toggle-hungry-state}@footnote{Prior to @ccmode{} 5.31, this command was bound to @kbd{C-c C-d}.}
+@findex c-toggle-hungry-state
+@findex toggle-hungry-state (c-)
+Toggle hungry-delete minor mode.
+
+@item @kbd{M-x c-toggle-auto-hungry-state}@footnote{Prior to @ccmode{} 5.31, this command was bound to @kbd{C-c C-t}.}
+@findex c-toggle-auto-hungry-state
+@findex toggle-auto-hungry-state (c-)
+Toggle both auto-newline and hungry delete minor modes.
+
+@item @kbd{C-c C-w} (@code{M-x c-subword-mode})
+@kindex C-c C-w
+@findex c-subword-mode
+@findex subword-mode (c-)
+Toggle subword mode.
+
+@item @kbd{M-x c-toggle-syntactic-indentation}
+@findex c-toggle-syntactic-indentation
+@findex toggle-syntactic-indentation (c-)
+Toggle syntactic-indentation mode.
+@end table
+
+Common to all the toggle functions above is that if they are called
+programmatically, they take an optional numerical argument. A
+positive value will turn on the minor mode (or both of them in the
+case of @code{c-toggle-auto-hungry-state}) and a negative value will
+turn it (or them) off.
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Electric Keys, Auto-newlines, Minor Modes, Commands
+@comment node-name, next, previous, up
+@section Electric Keys and Keywords
+@cindex electric characters
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Most punctuation keys provide @dfn{electric} behavior - as well as
+inserting themselves they perform some other action, such as
+reindenting the line. This reindentation saves you from having to
+reindent a line manually after typing, say, a @samp{@}}. A few
+keywords, such as @code{else}, also trigger electric action.
+
+You can inhibit the electric behavior described here by disabling
+electric minor mode (@pxref{Minor Modes}).
+
+Common to all these keys is that they only behave electrically when
+used in normal code (as contrasted with getting typed in a string
+literal or comment). Those which cause re-indentation do so only when
+@code{c-syntactic-indentation} has a non-@code{nil} value (which it
+does by default).
+
+These keys and keywords are:
+@c ACM, 2004/8/24: c-electric-pound doesn't check c-s-i: this is more
+@c like a bug in the code than a bug in this document. It'll get
+@c fixed in the code sometime.
+
+@table @kbd
+@item #
+@kindex #
+@findex c-electric-pound
+@findex electric-pound (c-)
+@vindex c-electric-pound-behavior
+@vindex electric-pound-behavior (c-)
+Pound (bound to @code{c-electric-pound}) is electric when typed as the
+first non-whitespace character on a line and not within a macro
+definition. In this case, the variable @code{c-electric-pound-behavior}
+is consulted for the electric behavior. This variable takes a list
+value, although the only element currently defined is @code{alignleft},
+which tells this command to force the @samp{#} character into column
+zero. This is useful for entering preprocessor macro definitions.
+
+Pound is not electric in AWK buffers, where @samp{#} starts a comment,
+and is bound to @code{self-insert-command} like any typical printable
+character.
+@c ACM, 2004/8/24: Change this (and the code) to do AWK comment
+@c reindentation.
+
+@item *
+@kindex *
+@itemx /
+@kindex /
+@findex c-electric-star
+@findex electric-star (c-)
+@findex c-electric-slash
+@findex electric-slash (c-)
+A star (bound to @code{c-electric-star}) or a slash
+(@code{c-electric-slash}) causes reindentation when you type it as the
+second component of a C style block comment opener (@samp{/*}) or a
+C++ line comment opener (@samp{//}) respectively, but only if the
+comment opener is the first thing on the line (i.e. there's only
+whitespace before it).
+
+Additionally, you can configure @ccmode{} so that typing a slash at
+the start of a line within a block comment will terminate the
+comment. You don't need to have electric minor mode enabled to get
+this behavior. @xref{Clean-ups}.
+
+In AWK mode, @samp{*} and @samp{/} do not delimit comments and are not
+electric.
+
+@item <
+@kindex <
+@itemx >
+@kindex >
+@findex c-electric-lt-gt
+@findex electric-lt-gt (c-)
+A less-than or greater-than sign (bound to @code{c-electric-lt-gt}) is
+electric in two circumstances: when it is an angle bracket in a C++
+@samp{template} declaration (and similar constructs in other
+languages) and when it is the second of two @kbd{<} or @kbd{>}
+characters in a C++ style stream operator. In either case, the line
+is reindented. Angle brackets in C @samp{#include} directives are not
+electric.
+
+@item (
+@kindex (
+@itemx )
+@kindex )
+@findex c-electric-paren
+@findex electric-paren (c-)
+The normal parenthesis characters @samp{(} and @samp{)} (bound to
+@code{c-electric-paren}) reindent the current line. This is useful
+for getting the closing parenthesis of an argument list aligned
+automatically.
+
+You can also configure @ccmode{} to insert a space automatically
+between a function name and the @samp{(} you've just typed, and to
+remove it automatically after typing @samp{)}, should the argument
+list be empty. You don't need to have electric minor mode enabled to
+get these actions. @xref{Clean-ups}.
+
+@item @{
+@kindex @{
+@itemx @}
+@kindex @}
+@findex c-electric-brace
+@findex electric-brace (c-)
+Typing a brace (bound to @code{c-electric-brace}) reindents the
+current line. Also, one or more newlines might be inserted if
+auto-newline minor mode is enabled. @xref{Auto-newlines}.
+Additionally, you can configure @ccmode{} to compact excess whitespace
+inserted by auto-newline mode in certain circumstances.
+@xref{Clean-ups}.
+
+@item :
+@kindex :
+@findex c-electric-colon
+@findex electric-colon (c-)
+Typing a colon (bound to @code{c-electric-colon}) reindents the
+current line. Additionally, one or more newlines might be inserted if
+auto-newline minor mode is enabled. @xref{Auto-newlines}. If you
+type a second colon immediately after such an auto-newline, by default
+the whitespace between the two colons is removed, leaving a C++ scope
+operator. @xref{Clean-ups}.
+
+If you prefer, you can insert @samp{::} in a single operation,
+avoiding all these spurious reindentations, newlines, and clean-ups.
+@xref{Other Commands}.
+
+@item ;
+@kindex ;
+@itemx ,
+@kindex ,
+@findex c-electric-semi&comma
+@findex electric-semi&comma (c-)
+Typing a semicolon or comma (bound to @code{c-electric-semi&comma})
+reindents the current line. Also, a newline might be inserted if
+auto-newline minor mode is enabled. @xref{Auto-newlines}.
+Additionally, you can configure @ccmode{} so that when auto-newline
+has inserted whitespace after a @samp{@}}, it will be removed again
+when you type a semicolon or comma just after it. @xref{Clean-ups}.
+
+@end table
+
+@deffn Command c-electric-continued-statement
+@findex electric-continued-statement (c-)
+
+Certain keywords are electric, causing reindentation when they are
+preceded only by whitespace on the line. The keywords are those that
+continue an earlier statement instead of starting a new one:
+@code{else}, @code{while}, @code{catch} (only in C++ and Java) and
+@code{finally} (only in Java).
+
+An example:
+
+@example
+@group
+for (i = 0; i < 17; i++)
+ if (a[i])
+ res += a[i]->offset;
+else
+@end group
+@end example
+
+Here, the @code{else} should be indented like the preceding @code{if},
+since it continues that statement. @ccmode{} will automatically
+reindent it after the @code{else} has been typed in full, since only
+then is it possible to decide whether it's a new statement or a
+continuation of the preceding @code{if}.
+
+@vindex abbrev-mode
+@findex abbrev-mode
+@cindex Abbrev mode
+@ccmode{} uses Abbrev mode (@pxref{Abbrevs,,, @emacsman{}, @emacsmantitle{}})
+to accomplish this. It's therefore turned on by default in all language
+modes except IDL mode, since CORBA IDL doesn't have any statements.
+@end deffn
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Auto-newlines, Hungry WS Deletion, Electric Keys, Commands
+@comment node-name, next, previous, up
+@section Auto-newline Insertion
+@cindex auto-newline
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+When you have @dfn{Auto-newline minor mode} enabled (@pxref{Minor
+Modes}), @ccmode{} inserts newlines for you automatically (in certain
+syntactic contexts) when you type a left or right brace, a colon, a
+semicolon, or a comma. Sometimes a newline appears before the
+character you type, sometimes after it, sometimes both.
+
+Auto-newline only triggers when the following conditions hold:
+
+@itemize @bullet
+@item
+Auto-newline minor mode is enabled, as evidenced by the indicator
+@samp{a} after the mode name on the modeline (e.g. @samp{C/a} or
+@samp{C/la}).
+
+@item
+The character was typed at the end of a line, or with only whitespace
+after it, and possibly a @samp{\} escaping the newline.
+
+@item
+The character is not on its own line already. (This applies only to
+insertion of a newline @emph{before} the character.)
+
+@item
+@cindex literal
+@cindex syntactic whitespace
+The character was not typed inside of a literal @footnote{A
+@dfn{literal} is defined as any comment, string, or preprocessor macro
+definition. These constructs are also known as @dfn{syntactic
+whitespace} since they are usually ignored when scanning C code.}.
+
+@item
+No numeric argument was supplied to the command (i.e. it was typed as
+normal, with no @kbd{C-u} prefix).
+@end itemize
+
+You can configure the precise circumstances in which newlines get
+inserted (see @pxref{Custom Auto-newlines}). Typically, the style
+system (@pxref{Styles}) will have set this up for you, so you probably
+won't have to bother.
+
+Sometimes @ccmode{} inserts an auto-newline where you don't want one,
+such as after a @samp{@}} when you're about to type a @samp{;}.
+Hungry deletion can help here (@pxref{Hungry WS Deletion}), or you can
+activate an appropriate @dfn{clean-up}, which will remove the excess
+whitespace after you've typed the @samp{;}. See @ref{Clean-ups} for a
+full description. See also @ref{Electric Keys} for a summary of
+clean-ups listed by key.
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Hungry WS Deletion, Subword Movement, Auto-newlines, Commands
+@comment node-name, next, previous, up
+@section Hungry Deletion of Whitespace
+@cindex hungry-deletion
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+If you want to delete an entire block of whitespace at point, you can
+use @dfn{hungry deletion}. This deletes all the contiguous whitespace
+either before point or after point in a single operation.
+``Whitespace'' here includes tabs and newlines, but not comments or
+preprocessor commands. Hungry deletion can markedly cut down on the
+number of times you have to hit deletion keys when, for example,
+you've made a mistake on the preceding line and have already pressed
+@kbd{C-j}.
+
+Hungry deletion is a simple feature that some people find extremely
+useful. In fact, you might find yourself wanting it in @strong{all}
+your editing modes!
+
+Loosely speaking, in what follows, @dfn{@key{DEL}} means ``the
+backspace key'' and @dfn{@key{DELETE}} means ``the forward delete
+key''. This is discussed in more detail below.
+
+There are two different ways you can use hungry deletion:
+
+@table @asis
+@item Using @dfn{Hungry Delete Mode} with @kbd{@key{DEL}} and @kbd{C-d}
+Here you toggle Hungry Delete minor mode with @kbd{M-x
+c-toggle-hungry-state}@footnote{Prior to @ccmode{} 5.31, this command
+was bound to @kbd{C-c C-d}. @kbd{C-c C-d} is now the default binding
+for @code{c-hungry-delete-forward}.} (@pxref{Minor Modes}.) This
+makes @kbd{@key{DEL}} and @kbd{C-d} do backwards and forward hungry
+deletion.
+
+@table @asis
+@item @kbd{@key{DEL}} (@code{c-electric-backspace})
+@kindex DEL
+@findex c-electric-backspace
+@findex electric-backspace (c-)
+This command is run by default when you hit the @kbd{DEL} key. When
+hungry delete mode is enabled, it deletes any amount of whitespace in
+the backwards direction. Otherwise, or when used with a prefix
+argument or in a literal (@pxref{Auto-newlines}), the command just
+deletes backwards in the usual way. (More precisely, it calls the
+function contained in the variable @code{c-backspace-function},
+passing it the prefix argument, if any.)
+
+@item @code{c-backspace-function}
+@vindex c-backspace-function
+@vindex backspace-function (c-)
+@findex backward-delete-char-untabify
+Hook that gets called by @code{c-electric-backspace} when it doesn't
+do an ``electric'' deletion of the preceding whitespace. The default
+value is @code{backward-delete-char-untabify}
+(@pxref{Deletion,,,@lispref{}, @lispreftitle{}}, the function which
+deletes a single character.
+
+@item @kbd{C-d} (@code{c-electric-delete-forward})
+@kindex C-d
+@findex c-electric-delete-forward
+@findex electric-delete-forward (c-)
+This function, which is bound to @kbd{C-d} by default, works just like
+@code{c-electric-backspace} but in the forward direction. When it
+doesn't do an ``electric'' deletion of the following whitespace, it
+just does @code{delete-char}, more or less. (Strictly speaking, it
+calls the function in @code{c-delete-function} with the prefix
+argument.)
+
+@item @code{c-delete-function}
+@vindex c-delete-function
+@vindex delete-function (c-)
+@findex delete-char
+Hook that gets called by @code{c-electric-delete-forward} when it
+doesn't do an ``electric'' deletion of the following whitespace. The
+default value is @code{delete-char}.
+@end table
+
+@item Using Distinct Bindings
+The other (newer and recommended) way to use hungry deletion is to
+perform @code{c-hungry-delete-backwards} and
+@code{c-hungry-delete-forward} directly through their key sequences
+rather than using the minor mode toggling.
+
+@table @asis
+@item @kbd{C-c C-@key{DEL}}, or @kbd{C-c @key{DEL}} (@code{c-hungry-delete-backwards})@footnote{This command was formerly known as @code{c-hungry-backspace}.}
+@kindex C-c C-<backspace>
+@kindex C-c <backspace>
+@kindex C-c C-DEL
+@kindex C-c DEL
+@findex c-hungry-delete-backwards
+@findex hungry-delete-backwards (c-)
+Delete any amount of whitespace in the backwards direction (regardless
+whether hungry-delete mode is enabled or not). This command is bound
+to both @kbd{C-c C-@key{DEL}} and @kbd{C-c @key{DEL}}, since the more
+natural one, @kbd{C-c C-@key{DEL}}, is sometimes difficult to type at
+a character terminal.
+
+@item @kbd{C-c C-d}, @kbd{C-c C-@key{DELETE}}, or @kbd{C-c @key{DELETE}} (@code{c-hungry-delete-forward})
+@kindex C-c C-d
+@kindex C-c C-<DELETE>
+@kindex C-c <DELETE>
+@findex c-hungry-delete-forward
+@findex hungry-delete-forward (c-)
+Delete any amount of whitespace in the forward direction (regardless
+whether hungry-delete mode is enabled or not). This command is bound
+to both @kbd{C-c C-@key{DELETE}} and @kbd{C-c @key{DELETE}} for the
+same reason as for @key{DEL} above.
+@end table
+@end table
+
+@kindex <delete>
+@kindex <backspace>
+
+When we talk about @kbd{@key{DEL}}, and @kbd{@key{DELETE}} above, we
+actually do so without connecting them to the physical keys commonly
+known as @key{Backspace} and @key{Delete}. The default bindings to
+those two keys depends on the flavor of (X)Emacs you are using.
+
+@findex c-electric-delete
+@findex electric-delete (c-)
+@findex c-hungry-delete
+@findex hungry-delete (c-)
+@vindex delete-key-deletes-forward
+In XEmacs 20.3 and beyond, the @key{Backspace} key is bound to
+@code{c-electric-backspace} and the @key{Delete} key is bound to
+@code{c-electric-delete}. You control the direction it deletes in by
+setting the variable @code{delete-key-deletes-forward}, a standard
+XEmacs variable.
+@c This variable is encapsulated by XEmacs's (defsubst delete-forward-p ...).
+When this variable is non-@code{nil}, @code{c-electric-delete} will do
+forward deletion with @code{c-electric-delete-forward}, otherwise it
+does backward deletion with @code{c-electric-backspace}. Similarly,
+@kbd{C-c @key{Delete}} and @kbd{C-c C-@key{Delete}} are bound to
+@code{c-hungry-delete} which is controlled in the same way by
+@code{delete-key-deletes-forward}.
+
+@findex normal-erase-is-backspace-mode
+
+Emacs 21 and later automatically binds @key{Backspace} and
+@key{Delete} to @kbd{DEL} and @kbd{C-d} according to your environment,
+and @ccmode{} extends those bindings to @kbd{C-c C-@key{Backspace}}
+etc. If you need to change the bindings through
+@code{normal-erase-is-backspace-mode} then @ccmode{} will also adapt
+its extended bindings accordingly.
+
+In earlier (X)Emacs versions, @ccmode{} doesn't bind either
+@key{Backspace} or @key{Delete} directly. Only the key codes
+@kbd{DEL} and @kbd{C-d} are bound, and it's up to the default bindings
+to map the physical keys to them. You might need to modify this
+yourself if the defaults are unsuitable.
+
+Getting your @key{Backspace} and @key{Delete} keys properly set up can
+sometimes be tricky. The information in @ref{DEL Does Not
+Delete,,,emacs, GNU Emacs Manual}, might be helpful if you're having
+trouble with this in GNU Emacs.
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Subword Movement, Other Commands, Hungry WS Deletion, Commands
+@comment node-name, next, previous, up
+@section Subword Movement and Editing
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@cindex nomenclature
+@cindex subword
+In spite of the GNU Coding Standards, it is popular to name a symbol
+by mixing uppercase and lowercase letters, e.g. @samp{GtkWidget},
+@samp{EmacsFrameClass}, or @samp{NSGraphicsContext}. Here we call
+these mixed case symbols @dfn{nomenclatures}. Also, each capitalized
+(or completely uppercase) part of a nomenclature is called a
+@dfn{subword}. Here are some examples:
+
+@multitable {@samp{NSGraphicsContext}} {@samp{NS}, @samp{Graphics}, and @samp{Context}}
+@c This could be converted to @headitem when we require Texinfo 4.7
+@iftex
+@item @b{Nomenclature}
+ @tab @b{Subwords}
+@end iftex
+@ifnottex
+@item Nomenclature
+ @tab Subwords
+@item ---------------------------------------------------------
+@end ifnottex
+@item @samp{GtkWindow}
+ @tab @samp{Gtk} and @samp{Window}
+@item @samp{EmacsFrameClass}
+ @tab @samp{Emacs}, @samp{Frame}, and @samp{Class}
+@item @samp{NSGraphicsContext}
+ @tab @samp{NS}, @samp{Graphics}, and @samp{Context}
+@end multitable
+
+The subword minor mode replaces the basic word oriented movement and
+editing commands with variants that recognize subwords in a
+nomenclature and treat them as separate words:
+
+@findex c-forward-subword
+@findex forward-subword (c-)
+@findex c-backward-subword
+@findex backward-subword (c-)
+@findex c-mark-subword
+@findex mark-subword (c-)
+@findex c-kill-subword
+@findex kill-subword (c-)
+@findex c-backward-kill-subword
+@findex backward-kill-subword (c-)
+@findex c-transpose-subwords
+@findex transpose-subwords (c-)
+@findex c-capitalize-subword
+@findex capitalize-subword (c-)
+@findex c-upcase-subword
+@findex upcase-subword (c-)
+@findex c-downcase-subword
+@findex downcase-subword (c-)
+@multitable @columnfractions .20 .40 .40
+@c This could be converted to @headitem when we require Texinfo 4.7
+@iftex
+@item @b{Key} @tab @b{Word oriented command} @tab @b{Subword oriented command}
+@end iftex
+@ifnottex
+@item Key @tab Word oriented command @tab Subword oriented command
+@item ----------------------------------------------------------------------------
+@end ifnottex
+@item @kbd{M-f} @tab @code{forward-word} @tab @code{c-forward-subword}
+@item @kbd{M-b} @tab @code{backward-word} @tab @code{c-backward-subword}
+@item @kbd{M-@@} @tab @code{mark-word} @tab @code{c-mark-subword}
+@item @kbd{M-d} @tab @code{kill-word} @tab @code{c-kill-subword}
+@item @kbd{M-DEL} @tab @code{backward-kill-word} @tab @code{c-backward-kill-subword}
+@item @kbd{M-t} @tab @code{transpose-words} @tab @code{c-transpose-subwords}
+@item @kbd{M-c} @tab @code{capitalize-word} @tab @code{c-capitalize-subword}
+@item @kbd{M-u} @tab @code{upcase-word} @tab @code{c-upcase-subword}
+@item @kbd{M-l} @tab @code{downcase-word} @tab @code{c-downcase-subword}
+@end multitable
+
+Note that if you have changed the key bindings for the word oriented
+commands in your @file{.emacs} or a similar place, the keys you have
+configured are also used for the corresponding subword oriented
+commands.
+
+Type @kbd{C-c C-w} to toggle subword mode on and off. To make the
+mode turn on automatically, put the following code in your
+@file{.emacs}:
+
+@example
+(add-hook 'c-mode-common-hook
+ (lambda () (c-subword-mode 1)))
+@end example
+
+As a bonus, you can also use @code{c-subword-mode} in non-@ccmode{}
+buffers by typing @kbd{M-x c-subword-mode}.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Other Commands, , Subword Movement, Commands
+@comment node-name, next, previous, up
+@section Other Commands
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Here are the various other commands that didn't fit anywhere else:
+
+@table @asis
+@item @kbd{C-c .} (@code{c-set-style})
+@kindex C-c .
+@findex c-set-style
+@findex set-style (c-)
+Switch to the specified style in the current buffer. Use like this:
+
+@example
+@kbd{C-c . @var{style-name} @key{RET}}
+@end example
+
+You can use the @key{TAB} in the normal way to do completion on the
+style name. Note that all style names are case insensitive, even the
+ones you define yourself.
+
+Setting a style in this way does @emph{not} automatically reindent your
+file. For commands that you can use to view the effect of your changes,
+see @ref{Indentation Commands} and @ref{Filling and Breaking}.
+
+For details of the @ccmode{} style system, see @ref{Styles}.
+@item @kbd{C-c :} (@code{c-scope-operator})
+@kindex C-c :
+@findex c-scope-operator
+@findex scope-operator (c-)
+In C++, it is also sometimes desirable to insert the double-colon scope
+operator without performing the electric behavior of colon insertion.
+@kbd{C-c :} does just this.
+
+@item @kbd{C-c C-\} (@code{c-backslash-region})
+@kindex C-c C-\
+@findex c-backslash-region
+@findex backslash-region (c-)
+This function inserts and aligns or deletes end-of-line backslashes in
+the current region. These are typically used in multi-line macros.
+
+With no prefix argument, it inserts any missing backslashes and aligns
+them according to the @code{c-backslash-column} and
+@code{c-backslash-max-column} variables. With a prefix argument, it
+deletes any backslashes.
+
+The function does not modify blank lines at the start of the region. If
+the region ends at the start of a line, it always deletes the backslash
+(if any) at the end of the previous line.
+
+To customize the precise workings of this command, @ref{Custom Macros}.
+@end table
+
+@noindent
+The recommended line breaking function, @code{c-context-line-break}
+(@pxref{Filling and Breaking}), is especially nice if you edit
+multiline macros frequently. When used inside a macro, it
+automatically inserts and adjusts the mandatory backslash at the end
+of the line to keep the macro together, and it leaves the point at the
+right indentation column for the code. Thus you can write code inside
+macros almost exactly as you can elsewhere, without having to bother
+with the trailing backslashes.
+
+@table @asis
+@item @kbd{C-c C-e} (@code{c-macro-expand})
+@kindex C-c C-e
+@findex c-macro-expand
+@findex macro-expand (c-)
+This command expands C, C++, Objective C or Pike macros in the region,
+using an appropriate external preprocessor program. Normally it
+displays its output in a temporary buffer, but if you give it a prefix
+arg (with @kbd{C-u C-c C-e}) it will overwrite the original region
+with the expansion.
+
+The command does not work in any of the other modes, and the key
+sequence is not bound in these other modes.
+
+@code{c-macro-expand} isn't actually part of @ccmode{}, even though it
+is bound to a @ccmode{} key sequence. If you need help setting it up
+or have other problems with it, you can either read its source code or
+ask for help in the standard (X)Emacs forums.
+@end table
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Font Locking, Config Basics, Commands, Top
+@comment node-name, next, previous, up
+@chapter Font Locking
+@cindex font locking
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@cindex Font Lock mode
+
+@ccmode{} provides font locking for its supported languages by
+supplying patterns for use with Font Lock mode. This means that you
+get distinct faces on the various syntactic parts such as comments,
+strings, keywords and types, which is very helpful in telling them
+apart at a glance and discovering syntactic errors. @xref{Font
+Lock,,, emacs, GNU Emacs Manual}, for ways to enable font locking in
+@ccmode{} buffers.
+
+@strong{Please note:} The font locking in AWK mode is currently not
+integrated with the rest of @ccmode{}. Only the last section of this
+chapter, @ref{AWK Mode Font Locking}, applies to AWK. The other
+sections apply to the other languages.
+
+@menu
+* Font Locking Preliminaries::
+* Faces::
+* Doc Comments::
+* AWK Mode Font Locking::
+@end menu
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Font Locking Preliminaries, Faces, Font Locking, Font Locking
+@comment node-name, next, previous, up
+@section Font Locking Preliminaries
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+The font locking for most of the @ccmode{} languages were provided
+directly by the Font Lock package prior to version 5.30 of @ccmode{}.
+In the transition to @ccmode{} the patterns have been reworked
+completely and are applied uniformly across all the languages except AWK
+mode, just like the indentation rules (although each language still has
+some peculiarities of its own, of course). Since the languages
+previously had completely separate font locking patterns, this means
+that it's a bit different in most languages now.
+
+The main goal for the font locking in @ccmode{} is accuracy, to provide
+a dependable aid in recognizing the various constructs. Some, like
+strings and comments, are easy to recognize while others, like
+declarations and types, can be very tricky. @ccmode{} can go to great
+lengths to recognize declarations and casts correctly, especially when
+the types aren't recognized by standard patterns. This is a fairly
+demanding analysis which can be slow on older hardware, and it can
+therefore be disabled by choosing a lower decoration level with the
+variable @code{font-lock-maximum-decoration} (@pxref{Font Lock,,,
+emacs, GNU Emacs Manual}).
+
+@vindex font-lock-maximum-decoration
+
+The decoration levels are used as follows:
+
+@enumerate
+@comment 1
+@item
+Minimal font locking: Fontify only comments, strings and preprocessor
+directives (in the languages that use cpp).
+
+@comment 2
+@item
+Fast font locking: In addition to level 1, fontify keywords, simple
+types and declarations that are easy to recognize. The variables
+@code{*-font-lock-extra-types} (where @samp{*} is the name of the
+language) are used to recognize types (see below). Documentation
+comments like Javadoc are fontified according to
+@code{c-doc-comment-style} (@pxref{Doc Comments}).
+
+Use this if you think the font locking is too slow. It's the closest
+corresponding level to level 3 in the old font lock patterns.
+
+@comment 3
+@item
+Accurate font locking: Like level 2 but uses a different approach that
+can recognize types and declarations much more accurately. The
+@code{*-font-lock-extra-types} variables are still used, but user
+defined types are recognized correctly anyway in most cases. Therefore
+those variables should be fairly restrictive and not contain patterns
+that are uncertain.
+
+@cindex Lazy Lock mode
+@cindex Just-in-time Lock mode
+
+This level is designed for fairly modern hardware and a font lock
+support mode like Lazy Lock or Just-in-time Lock mode that only
+fontifies the parts that are actually shown. Fontifying the whole
+buffer at once can easily get bothersomely slow even on contemporary
+hardware. @xref{Font Lock,,,@emacsman{}, @emacsmantitle{}}.
+@end enumerate
+
+@cindex user defined types
+@cindex types, user defined
+
+Since user defined types are hard to recognize you can provide
+additional regexps to match those you use:
+
+@defopt c-font-lock-extra-types
+@defoptx c++-font-lock-extra-types
+@defoptx objc-font-lock-extra-types
+@defoptx java-font-lock-extra-types
+@defoptx idl-font-lock-extra-types
+@defoptx pike-font-lock-extra-types
+For each language there's a variable @code{*-font-lock-extra-types},
+where @samp{*} stands for the language in question. It contains a list
+of regexps that matches identifiers that should be recognized as types,
+e.g. @samp{\\sw+_t} to recognize all identifiers ending with @samp{_t}
+as is customary in C code. Each regexp should not match more than a
+single identifier.
+
+The default values contain regexps for many types in standard runtime
+libraries that are otherwise difficult to recognize, and patterns for
+standard type naming conventions like the @samp{_t} suffix in C and C++.
+Java, Objective-C and Pike have as a convention to start class names
+with capitals, so there are patterns for that in those languages.
+
+Despite the names of these variables, they are not only used for
+fontification but in other places as well where @ccmode{} needs to
+recognize types.
+@end defopt
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Faces, Doc Comments, Font Locking Preliminaries, Font Locking
+@comment node-name, next, previous, up
+@section Faces
+@cindex faces
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@ccmode{} attempts to use the standard faces for programming languages
+in accordance with their intended purposes as far as possible. No extra
+faces are currently provided, with the exception of a replacement face
+@code{c-invalid-face} for emacsen that don't provide
+@code{font-lock-warning-face}.
+
+@itemize @bullet
+@item
+@vindex font-lock-comment-face
+Normal comments are fontified in @code{font-lock-comment-face}.
+
+@item
+@vindex font-lock-doc-face
+@vindex font-lock-doc-string-face
+@vindex font-lock-comment-face
+Comments that are recognized as documentation (@pxref{Doc Comments})
+get @code{font-lock-doc-face} (Emacs) or
+@code{font-lock-doc-string-face} (XEmacs) if those faces exist. If
+they don't then @code{font-lock-comment-face} is used.
+
+@item
+@vindex font-lock-string-face
+String and character literals are fontified in
+@code{font-lock-string-face}.
+
+@item
+@vindex font-lock-keyword-face
+Keywords are fontified with @code{font-lock-keyword-face}.
+
+@item
+@vindex font-lock-function-name-face
+@code{font-lock-function-name-face} is used for function names in
+declarations and definitions, and classes in those contexts. It's also
+used for preprocessor defines with arguments.
+
+@item
+@vindex font-lock-variable-name-face
+Variables in declarations and definitions, and other identifiers in such
+variable contexts, get @code{font-lock-variable-name-face}. It's also
+used for preprocessor defines without arguments.
+
+@item
+@vindex font-lock-constant-face
+@vindex font-lock-reference-face
+Builtin constants are fontified in @code{font-lock-constant-face} if it
+exists, @code{font-lock-reference-face} otherwise. As opposed to the
+preceding two faces, this is used on the names in expressions, and it's
+not used in declarations, even if there happen to be a @samp{const} in
+them somewhere.
+
+@item
+@vindex font-lock-type-face
+@code{font-lock-type-face} is put on types (both predefined and user
+defined) and classes in type contexts.
+
+@item
+@vindex font-lock-constant-face
+@vindex font-lock-reference-face
+Label identifiers get @code{font-lock-constant-face} if it exists,
+@code{font-lock-reference-face} otherwise.
+
+@item
+Name qualifiers and identifiers for scope constructs are fontified like
+labels.
+
+@item
+Special markup inside documentation comments are also fontified like
+labels.
+
+@item
+@vindex font-lock-preprocessor-face
+@vindex font-lock-builtin-face
+@vindex font-lock-reference-face
+Preprocessor directives get @code{font-lock-preprocessor-face} if it
+exists (i.e. XEmacs). In Emacs they get @code{font-lock-builtin-face}
+or @code{font-lock-reference-face}, for lack of a closer equivalent.
+
+@item
+@vindex font-lock-warning-face
+@vindex c-invalid-face
+@vindex invalid-face (c-)
+Some kinds of syntactic errors are fontified with
+@code{font-lock-warning-face} in Emacs. In older XEmacs versions
+there's no corresponding standard face, so there a special
+@code{c-invalid-face} is used, which is defined to stand out sharply by
+default.
+
+Note that it's not used for @samp{#error} or @samp{#warning} directives,
+since those aren't syntactic errors in themselves.
+@end itemize
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Doc Comments, AWK Mode Font Locking, Faces, Font Locking
+@comment node-name, next, previous, up
+@section Documentation Comments
+@cindex documentation comments
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+There are various tools to supply documentation in the source as
+specially structured comments, e.g. the standard Javadoc tool in Java.
+@ccmode{} provides an extensible mechanism to fontify such comments and
+the special markup inside them.
+
+@defopt c-doc-comment-style
+@vindex doc-comment-style (c-)
+This is a style variable that specifies which documentation comment
+style to recognize, e.g. @code{javadoc} for Javadoc comments.
+
+The value may also be a list of styles, in which case all of them are
+recognized simultaneously (presumably with markup cues that don't
+conflict).
+
+The value may also be an association list to specify different comment
+styles for different languages. The symbol for the major mode is then
+looked up in the alist, and the value of that element is interpreted as
+above if found. If it isn't found then the symbol `other' is looked up
+and its value is used instead.
+
+The default value for @code{c-doc-comment-style} is
+@w{@code{((java-mode . javadoc) (pike-mode . autodoc) (c-mode . gtkdoc))}}.
+
+Note that @ccmode{} uses this variable to set other variables that
+handle fontification etc. That's done at mode initialization or when
+you switch to a style which sets this variable. Thus, if you change it
+in some other way, e.g. interactively in a CC Mode buffer, you will need
+to do @kbd{M-x java-mode} (or whatever mode you're currently using) to
+reinitialize.
+
+@findex c-setup-doc-comment-style
+@findex setup-doc-comment-style (c-)
+Note also that when @ccmode{} starts up, the other variables are
+modified before the mode hooks are run. If you change this variable in
+a mode hook, you'll have to call @code{c-setup-doc-comment-style}
+afterwards to redo that work.
+@end defopt
+
+@ccmode{} currently provides handing of the following doc comment
+styles:
+
+@table @code
+@item javadoc
+@cindex Javadoc markup
+Javadoc comments, the standard tool in Java.
+
+@item autodoc
+@cindex Pike autodoc markup
+For Pike autodoc markup, the standard in Pike.
+
+@item gtkdoc
+@cindex GtkDoc markup
+For GtkDoc markup, widely used in the Gnome community.
+@end table
+
+The above is by no means complete. If you'd like to see support for
+other doc comment styles, please let us know (@pxref{Mailing Lists and
+Bug Reports}).
+
+You can also write your own doc comment fontification support to use
+with @code{c-doc-comment-style}: Supply a variable or function
+@code{*-font-lock-keywords} where @samp{*} is the name you want to use
+in @code{c-doc-comment-style}. If it's a variable, it's prepended to
+@code{font-lock-keywords}. If it's a function, it's called at mode
+initialization and the result is prepended. For an example, see
+@code{javadoc-font-lock-keywords} in @file{cc-fonts.el}.
+
+If you add support for another doc comment style, please consider
+contributing it - send a note to @email{bug-cc-mode@@gnu.org}.
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node AWK Mode Font Locking, , Doc Comments, Font Locking
+@comment node-name, next, previous, up
+@section AWK Mode Font Locking
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+The general appearance of font-locking in AWK mode is much like in any
+other programming mode. @xref{Faces For Font Lock,,,elisp, GNU Emacs
+Lisp Reference Manual}.
+
+The following faces are, however, used in a non-standard fashion in
+AWK mode:
+
+@table @asis
+@item @code{font-lock-variable-name-face}
+This face was intended for variable declarations. Since variables are
+not declared in AWK, this face is used instead for AWK system
+variables (such as @code{NF}) and ``Special File Names'' (such as
+@code{"/dev/stderr"}).
+
+@item @code{font-lock-builtin-face} (Emacs)/@code{font-lock-preprocessor-face} (XEmacs)
+This face is normally used for preprocessor directives in @ccmode{}.
+There are no such things in AWK, so this face is used instead for
+standard functions (such as @code{match}).
+
+@item @code{font-lock-string-face}
+As well as being used for strings, including localizable strings,
+(delimited by @samp{"} and @samp{_"}), this face is also used for AWK
+regular expressions (delimited by @samp{/}).
+
+@item @code{font-lock-warning-face} (Emacs)/@code{c-invalid-face} (XEmacs)
+This face highlights the following syntactically invalid AWK
+constructs:
+
+@itemize @bullet
+@item
+An unterminated string or regular expression. Here the opening
+delimiter (@samp{"} or @samp{/} or @samp{_"}) is displayed in
+@code{font-lock-warning-face}. This is most noticeable when typing in a
+new string/regular expression into a buffer, when the warning-face
+serves as a continual reminder to terminate the construct.
+
+AWK mode fontifies unterminated strings/regular expressions
+differently from other modes: Only the text up to the end of the line
+is fontified as a string (escaped newlines being handled correctly),
+rather than the text up to the next string quote.
+
+@item
+A space between the function name and opening parenthesis when calling
+a user function. The last character of the function name and the
+opening parenthesis are highlighted. This font-locking rule will
+spuriously highlight a valid concatenation expression where an
+identifier precedes a parenthesised expression. Unfortunately.
+
+@item
+Whitespace following the @samp{\} in what otherwise looks like an
+escaped newline. The @samp{\} is highlighted.
+@end itemize
+@end table
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Config Basics, Custom Filling and Breaking, Font Locking, Top
+@comment node-name, next, previous, up
+@chapter Configuration Basics
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@cindex Emacs Initialization File
+@cindex Configuration
+You configure @ccmode{} by setting Lisp variables and calling (and
+perhaps writing) Lisp functions@footnote{DON'T PANIC!!! This isn't
+difficult.}, which is usually done by adding code to an Emacs
+initialization file. This file might be @file{site-start.el} or
+@file{.emacs} or @file{init.el} or @file{default.el} or perhaps some
+other file. @xref{Init File,,,@emacsman{}, @emacsmantitle{}}. For
+the sake of conciseness, we just call this file ``your @file{.emacs}''
+throughout the rest of the manual.
+
+Several of these variables (currently 16), are known collectively as
+@dfn{style variables}. @ccmode{} provides a special mechanism, known
+as @dfn{styles} to make it easier to set these variables as a group,
+to ``inherit'' settings from one style into another, and so on. Style
+variables remain ordinary Lisp variables, whose values can be read and
+changed independently of the style system. @xref{Style Variables}.
+
+There are several ways you can write the code, depending on the
+precise effect you want---they are described further down on this page.
+If you are new to @ccmode{}, we suggest you begin with the simplest
+method, ``Top-level commands or the customization interface''.
+
+If you make conflicting settings in several of these ways, the way
+that takes precedence is the one that appears latest in this list:
+@itemize @asis
+@item
+@table @asis
+@item Style
+@itemx Top-level command or ``customization interface''
+@itemx Hook
+@itemx File Style
+@end table
+@end itemize
+
+Here is a summary of the different ways of writing your configuration
+settings:
+
+@table @asis
+@item Top-level commands or the ``customization interface''
+Most simply, you can write @code{setq} and similar commands at the top
+level of your @file{.emacs} file. When you load a @ccmode{} buffer,
+it initializes its configuration from these global values (at least,
+for those settings you have given values to), so it makes sense to
+have these @code{setq} commands run @emph{before} @ccmode{} is first
+initialized---in particular, before any call to @code{desktop-read}
+(@pxref{Saving Emacs Sessions,,, emacs, GNU Emacs Manual}). For
+example, you might set c-basic-offset thus:
+
+@example
+(setq c-basic-offset 4)
+@end example
+
+You can use the more user friendly Customization interface instead,
+but this manual does not cover in detail how that works. To do this,
+start by typing @kbd{M-x customize-group @key{RET} c @key{RET}}.
+@xref{Easy Customization,,,@emacsman{}, @emacsmantitle{}}.
+@c The following note really belongs in the Emacs manual.
+Emacs normally writes the customizations at the end of your
+@file{.emacs} file. If you use @code{desktop-read}, you should edit
+your @file{.emacs} to place the call to @code{desktop-read} @emph{after}
+the customizations.
+
+The first initialization of @ccmode{} puts a snapshot of the
+configuration settings into the special style @code{user}.
+@xref{Built-in Styles}.
+
+For basic use of Emacs, either of these ways of configuring is
+adequate. However, the settings are then the same in all @ccmode{}
+buffers and it can be clumsy to communicate them between programmers.
+For more flexibility, you'll want to use one (or both) of @ccmode{}'s
+more sophisticated facilities, hooks and styles.
+
+@item Hooks
+An Emacs @dfn{hook} is a place to put Lisp functions that you want
+Emacs to execute later in specific circumstances.
+@xref{Hooks,,,@lispref{}, @lispreftitle{}}. @ccmode{} supplies a main
+hook and a language-specific hook for each language it supports - any
+functions you put onto these hooks get executed as the last part of a
+buffer's initialization. Typically you put most of your customization
+within the main hook, and use the language-specific hooks to vary the
+customization settings between language modes. For example, if you
+wanted different (non-standard) values of @code{c-basic-offset} in C
+Mode and Java Mode buffers, you could do it like this:
+
+@example
+@group
+(defun my-c-mode-hook ()
+ (setq c-basic-offset 3))
+(add-hook 'c-mode-hook 'my-c-mode-hook)
+
+(defun my-java-mode-hook ()
+ (setq c-basic-offset 6))
+(add-hook 'java-mode-hook 'my-java-mode-hook)
+@end group
+@end example
+
+See @ref{CC Hooks} for more details on the use of @ccmode{} hooks.
+
+@item Styles
+A @ccmode{} @dfn{style} is a coherent collection of customizations
+with a name. At any time, exactly one style is active in each
+@ccmode{} buffer, either the one you have selected or a default.
+@ccmode{} is delivered with several existing styles. Additionally,
+you can create your own styles, possibly based on these existing
+styles. If you worked in a programming team called the ``Free
+Group'', which had its own coding standards, you might well have this
+in your @file{.emacs} file:
+
+@example
+(setq c-default-style '((java-mode . "java")
+ (awk-mode . "awk")
+ (other . "free-group-style")))
+@end example
+
+See @ref{Styles} for fuller details on using @ccmode{} styles and how
+to create them.
+
+@item File Styles
+A @dfn{file style} is a rarely used variant of the ``style'' mechanism
+described above, which applies to an individual source file. To use
+it, you set certain Emacs local variables in a special block at the
+end of the source file. @xref{File Styles}.
+
+@item Hooks with Styles
+For ultimate flexibility, you can use hooks and styles together. For
+example, if your team were developing a product which required a
+Linux driver, you'd probably want to use the ``linux'' style for the
+driver, and your own team's style for the rest of the code. You
+could achieve this with code like this in your @file{.emacs}:
+
+@example
+@group
+(defun my-c-mode-hook ()
+ (c-set-style
+ (if (and (buffer-file-name)
+ (string-match "/usr/src/linux" (buffer-file-name)))
+ "linux"
+ "free-group-style")))
+(add-hook 'c-mode-hook 'my-c-mode-hook)
+@end group
+@end example
+
+In a programming team, a hook is a also a good place for each member
+to put his own personal preferences. For example, you might be the
+only person in your team who likes Auto-newline minor mode. You could
+have it enabled by default by placing the following in your
+@file{.emacs}:
+
+@example
+@group
+(defun my-turn-on-auto-newline ()
+ (c-toggle-auto-newline 1))
+(add-hook 'c-mode-common-hook 'my-turn-on-auto-newline)
+@end group
+@end example
+@end table
+
+@menu
+* CC Hooks::
+* Style Variables::
+* Styles::
+@end menu
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node CC Hooks, Style Variables, Config Basics, Config Basics
+@comment node-name, next, previous, up
+@section Hooks
+@cindex mode hooks
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@c The node name is "CC Hooks" rather than "Hooks" because of a bug in
+@c some older versions of Info, e.g. the info.el in GNU Emacs 21.3.
+@c If you go to "Config Basics" and hit <CR> on the xref to "CC
+@c Hooks" the function Info-follow-reference searches for "*Note: CC
+@c Hooks" from the beginning of the page. If this node were instead
+@c named "Hooks", that search would spuriously find "*Note:
+@c Hooks(elisp)" and go to the wrong node.
+
+@ccmode{} provides several hooks that you can use to customize the
+mode for your coding style. The main hook is
+@code{c-mode-common-hook}; typically, you'll put the bulk of your
+customizations here. In addition, each language mode has its own
+hook, allowing you to fine tune your settings individually for the
+different @ccmode{} languages, and there is a package initialization
+hook. Finally, there is @code{c-special-indent-hook}, which enables
+you to solve anomalous indentation problems. It is described in
+@ref{Other Indentation}, not here. All these hooks adhere to the
+standard Emacs conventions.
+
+When you open a buffer, @ccmode{} first initializes it with the
+currently active style (@pxref{Styles}). Then it calls
+@code{c-mode-common-hook}, and finally it calls the language-specific
+hook. Thus, any style settings done in these hooks will override
+those set by @code{c-default-style}.
+
+@defvar c-initialization-hook
+@vindex initialization-hook (c-)
+Hook run only once per Emacs session, when @ccmode{} is initialized.
+This is a good place to change key bindings (or add new ones) in any
+of the @ccmode{} key maps. @xref{Sample .emacs File}.
+@end defvar
+
+@defvar c-mode-common-hook
+@vindex mode-common-hook (c-)
+Common hook across all languages. It's run immediately before the
+language specific hook.
+@end defvar
+
+@defvar c-mode-hook
+@defvarx c++-mode-hook
+@defvarx objc-mode-hook
+@defvarx java-mode-hook
+@defvarx idl-mode-hook
+@defvarx pike-mode-hook
+@defvarx awk-mode-hook
+The language specific mode hooks. The appropriate one is run as the
+last thing when you enter that language mode.
+@end defvar
+
+Although these hooks are variables defined in @ccmode{}, you can give
+them values before @ccmode{}'s code is loaded---indeed, this is the
+only way to use @code{c-initialization-hook}. Their values aren't
+overwritten when @ccmode{} gets loaded.
+
+Here's a simplified example of what you can add to your @file{.emacs}
+file to do things whenever any @ccmode{} language is edited. See the
+Emacs manuals for more information on customizing Emacs via hooks.
+@xref{Sample .emacs File}, for a more complete sample @file{.emacs}
+file.
+
+@example
+(defun my-c-mode-common-hook ()
+ ;; my customizations for all of c-mode and related modes
+ (no-case-fold-search)
+ )
+(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
+@end example
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Style Variables, Styles, CC Hooks, Config Basics
+@comment node-name, next, previous, up
+@section Style Variables
+@cindex styles
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@cindex style variables
+The variables that @ccmode{}'s style system control are called
+@dfn{style variables}. Note that style variables are ordinary Lisp
+variables, which the style system initializes; you can change their
+values at any time (e.g. in a hook function). The style system can
+also set other variables, to some extent. @xref{Styles}.
+
+@dfn{Style variables} are handled specially in several ways:
+
+@itemize @bullet
+@item
+Style variables are by default buffer-local variables. However, they
+can instead be made global by setting
+@code{c-style-variables-are-local-p} to @code{nil} before @ccmode{} is
+initialized.
+
+@item
+@vindex c-old-style-variable-behavior
+@vindex old-style-variable-behavior (c-)
+The default global binding of any style variable (with two exceptions
+- see below) is the special symbol @code{set-from-style}. When the
+style system initializes a buffer-local copy of a style variable for a
+@ccmode{} buffer, if its global binding is still that symbol then it
+will be set from the current style. Otherwise it will retain its
+global default@footnote{This is a big change from versions of
+@ccmode{} earlier than 5.26, where such settings would get overridden
+by the style system unless special precautions were taken. That was
+changed since it was counterintuitive and confusing, especially to
+novice users. If your configuration depends on the old overriding
+behavior, you can set the variable
+@code{c-old-style-variable-behavior} to non-@code{nil}.}. This
+``otherwise'' happens, for example, when you've set the variable with
+@code{setq} at the top level of your @file{.emacs} (@pxref{Config
+Basics}).
+
+@item
+The style variable @code{c-offsets-alist} (@pxref{c-offsets-alist}) is
+an association list with an element for each syntactic symbol. It's
+handled a little differently from the other style variables. It's
+default global binding is the empty list @code{nil}, rather than
+@code{set-from-style}. Before the style system is initialized, you
+can add individual elements to @code{c-offsets-alist} by calling
+@code{c-set-offset}(@pxref{c-offsets-alist}) just like you would set
+other style variables with @code{setq}. Those elements will then
+prevail when the style system later initializes a buffer-local copy of
+@code{c-offsets-alist}.
+
+@item
+The style variable @code{c-special-indent-hook} is also handled in a
+special way. Styles can only add functions to this hook, not remove
+them, so any global settings you put on it are always
+preserved@footnote{This did not change in version 5.26.}. The value
+you give this variable in a style definition can be either a function
+or a list of functions.
+
+@item
+The global bindings of the style variables get captured in the special
+@code{user} style when the style system is first initialized.
+@xref{Built-in Styles}, for details.
+@end itemize
+
+The style variables are:@*
+@code{c-indent-comment-alist},
+@code{c-indent-comments-syntactically-p} (@pxref{Indentation
+Commands});@*
+@code{c-doc-comment-style} (@pxref{Doc Comments});@*
+@code{c-block-comment-prefix}, @code{c-comment-prefix-regexp}
+(@pxref{Custom Filling and Breaking});@*
+@code{c-hanging-braces-alist} (@pxref{Hanging Braces});@*
+@code{c-hanging-colons-alist} (@pxref{Hanging Colons});@*
+@code{c-hanging-semi&comma-criteria} (@pxref{Hanging Semicolons and
+Commas});@*
+@code{c-cleanup-list} (@pxref{Clean-ups});@*
+@code{c-basic-offset} (@pxref{Customizing Indentation});@*
+@code{c-offsets-alist} (@pxref{c-offsets-alist});@*
+@code{c-comment-only-line-offset} (@pxref{Comment Line-Up});@*
+@code{c-special-indent-hook}, @code{c-label-minimum-indentation}
+(@pxref{Other Indentation});@*
+@code{c-backslash-column}, @code{c-backslash-max-column}
+(@pxref{Custom Macros}).
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Styles, , Style Variables, Config Basics
+@comment node-name, next, previous, up
+@section Styles
+@cindex styles
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+By @dfn{style} we mean the layout of the code---things like how many
+columns to indent a block of code, whether an opening brace gets
+indented to the level of the code it encloses, or of the construct
+that introduces it, or ``hangs'' at the end of a line.
+
+Most people only need to edit code formatted in just a few well-defined
+and consistent styles. For example, their organization might impose a
+``blessed'' style that all its programmers must conform to. Similarly,
+people who work on GNU software will have to use the GNU coding style.
+Some shops are more lenient, allowing a variety of coding styles, and as
+programmers come and go, there could be a number of styles in use. For
+this reason, @ccmode{} makes it convenient for you to set up logical
+groupings of customizations called @dfn{styles}, associate a single name
+for any particular style, and pretty easily start editing new or
+existing code using these styles.
+
+@menu
+* Built-in Styles::
+* Choosing a Style::
+* Adding Styles::
+* File Styles::
+@end menu
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Built-in Styles, Choosing a Style, Styles, Styles
+@comment node-name, next, previous, up
+@subsection Built-in Styles
+@cindex styles, built-in
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+If you're lucky, one of @ccmode{}'s built-in styles might be just
+what you're looking for. These are:
+
+@table @code
+@item gnu
+@cindex GNU style
+Coding style blessed by the Free Software Foundation
+for C code in GNU programs.
+
+@item k&r
+@cindex K&R style
+The classic Kernighan and Ritchie style for C code.
+
+@item bsd
+@cindex BSD style
+Also known as ``Allman style'' after Eric Allman.
+
+@item whitesmith
+@cindex Whitesmith style
+Popularized by the examples that came with Whitesmiths C, an early
+commercial C compiler.
+
+@item stroustrup
+@cindex Stroustrup style
+The classic Stroustrup style for C++ code.
+
+@item ellemtel
+@cindex Ellemtel style
+Popular C++ coding standards as defined by ``Programming in C++, Rules
+and Recommendations,'' Erik Nyquist and Mats Henricson,
+Ellemtel@footnote{This document is available at
+@uref{http://www.doc.ic.ac.uk/lab/cplus/c++.rules/} among other
+places.}.
+@c N.B. This URL was still valid at 2005/8/28 (ACM).
+
+@item linux
+@cindex Linux style
+C coding standard for Linux (the kernel).
+
+@item python
+@cindex Python style
+C coding standard for Python extension modules@footnote{Python is a
+high level scripting language with a C/C++ foreign function interface.
+For more information, see @uref{http://www.python.org/}.}.
+
+@item java
+@cindex Java style
+The style for editing Java code. Note that the default
+value for @code{c-default-style} installs this style when you enter
+@code{java-mode}.
+
+@item awk
+@cindex AWK style
+The style for editing AWK code. Note that the default value for
+@code{c-default-style} installs this style when you enter
+@code{awk-mode}.
+
+@item user
+@cindex User style
+This is a special style created by you. It consists of the factory
+defaults for all the style variables as modified by the customizations
+you do either with the Customization interface or by writing
+@code{setq}s and @code{c-set-offset}s at the top level of your
+@file{.emacs} file (@pxref{Config Basics}). The style system creates
+this style as part of its initialization and doesn't modify it
+afterwards.
+@end table
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Choosing a Style, Adding Styles, Built-in Styles, Styles
+@comment node-name, next, previous, up
+@subsection Choosing a Style
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+When you create a new buffer, its style will be set from
+@code{c-default-style}. The factory default is the style @code{gnu},
+except in Java and AWK modes where it's @code{java} and @code{awk}.
+
+Remember that if you set a style variable with the Customization
+interface or at the top level of your @file{.emacs} file before the
+style system is initialised (@pxref{Config Basics}), this setting will
+override the one that the style system would have given the variable.
+
+To set a buffer's style interactively, use the command @kbd{C-c .}
+(@pxref{Other Commands}). To set it from a file's local variable
+list, @ref{File Styles}.
+
+@defopt c-default-style
+@vindex default-style (c-)
+This variable specifies which style to install by default in new
+buffers. It takes either a style name string, or an association list
+of major mode symbols to style names:
+
+@enumerate
+@item
+When @code{c-default-style} is a string, it must be an existing style
+name. This style is then used for all modes.
+
+@item
+When @code{c-default-style} is an association list, the mode language
+is looked up to find a style name string.
+
+@item
+If @code{c-default-style} is an association list where the mode
+language mode isn't found then the special symbol @samp{other} is
+looked up. If it's found then the associated style is used.
+
+@item
+If @samp{other} is not found then the @samp{gnu} style is used.
+@end enumerate
+
+In all cases, the style described in @code{c-default-style} is installed
+@emph{before} the language hooks are run, so you can always override
+this setting by including an explicit call to @code{c-set-style} in your
+language mode hook, or in @code{c-mode-common-hook}.
+
+The standard value of @code{c-default-style} is @w{@code{((java-mode
+. "java") (awk-mode . "awk") (other . "gnu"))}}.
+@end defopt
+
+@defvar c-indentation-style
+@vindex indentation-style (c-)
+This variable always contains the buffer's current style name, as a
+string.
+@end defvar
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Adding Styles, File Styles, Choosing a Style, Styles
+@comment node-name, next, previous, up
+@subsection Adding and Amending Styles
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+If none of the built-in styles is appropriate, you'll probably want to
+create a new @dfn{style definition}, possibly based on an existing
+style. To do this, put the new style's settings into a list with the
+following format - the list can then be passed as an argument to the
+function @code{c-add-style}. You can see an example of a style
+definition in @ref{Sample .emacs File}.
+
+@cindex style definition
+@c @defvr {List} style definition
+@table @asis
+@item Structure of a Style Definition List
+([@var{base-style}] [(@var{variable} . @var{value}) @dots{}])
+
+Optional @var{base-style}, if present, must be a string which is the
+name of the @dfn{base style} from which this style inherits. At most
+one @var{base-style} is allowed in a style definition. If
+@var{base-style} is not specified, the style inherits from the table
+of factory default values@footnote{This table is stored internally in
+the variable c-fallback-style.} instead. All styles eventually
+inherit from this internal table. Style loops generate errors. The
+list of pre-existing styles can be seen in @ref{Built-in Styles}.
+
+The dotted pairs (@var{variable} . @var{value}) each consist of a
+variable and the value it is to be set to when the style is later
+activated.@footnote{Note that if the variable has been given a value
+by the Customization interface or a @code{setq} at the top level of
+your @file{.emacs}, this value will override the one the style system
+tries to give it. @xref{Config Basics}.} The variable can be either a
+@ccmode{} style variable or an arbitrary Emacs variable. In the
+latter case, it is @emph{not} made buffer-local by the @ccmode{} style
+system.
+@c @end defvr
+
+Two variables are treated specially in the dotted pair list:
+
+@table @code
+@item c-offsets-alist
+The value is in turn a list of dotted pairs of the form
+
+@example
+(@r{@var{syntactic-symbol}} . @r{@var{offset}})
+@end example
+
+as described in @ref{c-offsets-alist}. These are passed to
+@code{c-set-offset} so there is no need to set every syntactic symbol
+in your style, only those that are different from the inherited style.
+
+@item c-special-indent-hook
+The value is added to @code{c-special-indent-hook} using
+@code{add-hook}, so any functions already on it are kept. If the value
+is a list, each element of the list is added with @code{add-hook}.
+@end table
+@end table
+
+Styles are kept in the @code{c-style-alist} variable, but you
+should never modify this variable directly. Instead, @ccmode{}
+provides the function @code{c-add-style} for this purpose.
+
+@defun c-add-style stylename description &optional set-p
+@findex add-style (c-)
+Add or update a style called @var{stylename}, a string.
+@var{description} is the new style definition in the form described
+above. If @var{stylename} already exists in @code{c-style-alist} then
+it is replaced by @var{description}. (Note, this replacement is
+total. The old style is @emph{not} merged into the new one.)
+Otherwise, a new style is added.
+
+If the optional @var{set-p} is non-@code{nil} then the new style is
+applied to the current buffer as well. The use of this facility is
+deprecated and it might be removed from @ccmode{} in a future release.
+You should use @code{c-set-style} instead.
+
+The sample @file{.emacs} file provides a concrete example of how a new
+style can be added and automatically set. @xref{Sample .emacs File}.
+@end defun
+
+@defvar c-style-alist
+@vindex style-alist (c-)
+This is the variable that holds the definitions for the styles. It
+should not be changed directly; use @code{c-add-style} instead.
+@end defvar
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node File Styles, , Adding Styles, Styles
+@comment node-name, next, previous, up
+@subsection File Styles
+@cindex styles, file local
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@cindex file local variables
+
+The Emacs manual describes how you can customize certain variables on a
+per-file basis by including a @dfn{file local variable} block at the end
+of the file (@pxref{File Variables,, Local Variables in Files, @emacsman{},
+@emacsmantitle{}}).
+
+So far, you've only seen a functional interface for setting styles in
+@ccmode{}, and this can't be used here. @ccmode{} fills the gap by
+providing two variables for use in a file's local variable list.
+Don't use them anywhere else! These allow you to customize the style
+on a per-file basis:
+
+@defvar c-file-style
+@vindex file-style (c-)
+Set this variable to a style name string in the Local Variables list.
+From now on, when you visit the file, @ccmode{} will automatically set
+the file's style to this one using @code{c-set-style}.
+@end defvar
+
+@defvar c-file-offsets
+@vindex file-offsets (c-)
+Set this variable (in the Local Variables list) to an association list
+of the same format as @code{c-offsets-alist}. From now on, when you
+visit the file, @ccmode{} will automatically institute these offsets
+using @code{c-set-offset}.
+@end defvar
+
+Note that file style settings (i.e. @code{c-file-style}) are applied
+before file offset settings
+(i.e. @code{c-file-offsets})@footnote{Also, if either of these are set
+in a file's local variable section, all the style variable values are
+made local to that buffer, even if
+@code{c-style-variables-are-local-p} is @code{nil}. Since this
+variable is virtually always non-@code{nil} anyhow, you're unlikely to
+notice this effect.}.
+
+If you set any variables, including style variables, by the file local
+variables mechanism, these settings take priority over all other
+settings, even those in your mode hooks (@pxref{CC Hooks}). If you
+use @code{c-file-style} or @code{c-file-offsets} and also explicitly
+set a style variable in a local variable block, the explicit setting
+will take priority.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Custom Filling and Breaking, Custom Auto-newlines, Config Basics, Top
+@comment node-name, next, previous, up
+@chapter Customizing Filling and Line Breaking
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Since there's a lot of normal text in comments and string literals,
+@ccmode{} provides features to edit these like in text mode. It does
+this by hooking in on the different line breaking functions and tuning
+relevant variables as necessary.
+
+@vindex c-comment-prefix-regexp
+@vindex comment-prefix-regexp (c-)
+@cindex comment line prefix
+@vindex comment-start
+@vindex comment-end
+@vindex comment-start-skip
+@vindex paragraph-start
+@vindex paragraph-separate
+@vindex paragraph-ignore-fill-prefix
+@vindex adaptive-fill-mode
+@vindex adaptive-fill-regexp
+@vindex adaptive-fill-first-line-regexp
+To make Emacs recognize comments and treat text in them as normal
+paragraphs, @ccmode{} makes several standard
+variables@footnote{@code{comment-start}, @code{comment-end},
+@code{comment-start-skip}, @code{paragraph-start},
+@code{paragraph-separate}, @code{paragraph-ignore-fill-prefix},
+@code{adaptive-fill-mode}, @code{adaptive-fill-regexp}, and
+@code{adaptive-fill-first-line-regexp}.} buffer-local and modifies them
+according to the language syntax and the comment line prefix.
+
+@defopt c-comment-prefix-regexp
+@vindex comment-prefix-regexp (c-)
+This style variable contains the regexp used to recognize the
+@dfn{comment line prefix}, which is the line decoration that starts
+every line in a comment. The variable is either the comment line
+prefix itself, or (more usually) an association list with different
+values for different languages. The symbol for the major mode is
+looked up in the alist to get the regexp for the language, and if it
+isn't found then the special symbol @samp{other} is looked up instead.
+
+When a comment line gets divided by @kbd{M-j} or the like, @ccmode{}
+inserts the comment line prefix from a neighbouring line at the start
+of the new line. The default value of c-comment-prefix-regexp is
+@samp{//+\\|\\**}, which matches C++ style line comments like
+
+@example
+// blah blah
+@end example
+
+@noindent
+with two or more slashes in front of them, and the second and
+subsequent lines of C style block comments like
+
+@example
+@group
+/*
+ * blah blah
+ */
+@end group
+@end example
+
+@noindent
+with zero or more stars at the beginning of every line. If you change
+this variable, please make sure it still matches the comment starter
+(i.e. @code{//}) of line comments @emph{and} the line prefix inside
+block comments.
+
+@findex c-setup-paragraph-variables
+@findex setup-paragraph-variables (c-)
+Also note that since @ccmode{} uses the value of
+@code{c-comment-prefix-regexp} to set up several other variables at
+mode initialization, there won't be any effect if you just change it
+inside a @ccmode{} buffer. You need to call the command
+@code{c-setup-paragraph-variables} too, to update those other
+variables. That's also the case if you modify
+@code{c-comment-prefix-regexp} in a mode hook, since @ccmode{} will
+already have set up these variables before calling the hook.
+@end defopt
+
+In comments, @ccmode{} uses @code{c-comment-prefix-regexp} to adapt
+the line prefix from the other lines in the comment.
+
+@vindex adaptive-fill-mode
+@cindex Adaptive Fill mode
+@ccmode{} uses adaptive fill mode (@pxref{Adaptive Fill,,, emacs, GNU
+Emacs Manual}) to make Emacs correctly keep the line prefix when
+filling paragraphs. That also makes Emacs preserve the text
+indentation @emph{inside} the comment line prefix. E.g. in the
+following comment, both paragraphs will be filled with the left
+margins of the texts kept intact:
+
+@example
+@group
+/* Make a balanced b-tree of the nodes in the incoming
+ * stream. But, to quote the famous words of Donald E.
+ * Knuth,
+ *
+ * Beware of bugs in the above code; I have only
+ * proved it correct, not tried it.
+ */
+@end group
+@end example
+
+@findex c-setup-filladapt
+@findex setup-filladapt (c-)
+@findex filladapt-mode
+@vindex filladapt-mode
+@cindex Filladapt mode
+It's also possible to use other adaptive filling packages, notably Kyle
+E. Jones' Filladapt package@footnote{It's available from
+@uref{http://www.wonderworks.com/}. As of version 2.12, it does however
+lack a feature that makes it work suboptimally when
+@code{c-comment-prefix-regexp} matches the empty string (which it does
+by default). A patch for that is available from
+@uref{http://cc-mode.sourceforge.net/,, the CC Mode web site}.},
+@c 2005/11/22: The above is still believed to be the case.
+which handles things like bulleted lists nicely. There's a convenience
+function @code{c-setup-filladapt} that tunes the relevant variables in
+Filladapt for use in @ccmode{}. Call it from a mode hook, e.g. with
+something like this in your @file{.emacs}:
+
+@example
+(defun my-c-mode-common-hook ()
+ (c-setup-filladapt)
+ (filladapt-mode 1))
+(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
+@end example
+
+@defopt c-block-comment-prefix
+@vindex block-comment-prefix (c-)
+@vindex c-comment-continuation-stars
+@vindex comment-continuation-stars (c-)
+Normally the comment line prefix inserted for a new line inside a
+comment is deduced from other lines in it. However there's one
+situation when there's no hint about what the prefix should look like,
+namely when a block comment is broken for the first time. This style
+variable@footnote{In versions before 5.26, this variable was called
+@code{c-comment-continuation-stars}. As a compatibility measure,
+@ccmode{} still uses the value on that variable if it's set.} is used
+then as the comment prefix. It defaults to @samp{*
+}@footnote{Actually, this default setting of
+@code{c-block-comment-prefix} typically gets overridden by the default
+style @code{gnu}, which sets it to blank. You can see the line
+splitting effect described here by setting a different style,
+e.g. @code{k&r} @xref{Choosing a Style}.}, which makes a comment
+
+@example
+/* Got O(n^2) here, which is a Bad Thing. */
+@end example
+
+@noindent
+break into
+
+@example
+@group
+/* Got O(n^2) here, which
+ * is a Bad Thing. */
+@end group
+@end example
+
+Note that it won't work to adjust the indentation by putting leading
+spaces in @code{c-block-comment-prefix}, since @ccmode{} still uses the
+normal indentation engine to indent the line. Thus, the right way to
+fix the indentation is by customizing the @code{c} syntactic symbol. It
+defaults to @code{c-lineup-C-comments}, which handles the indentation of
+most common comment styles, see @ref{Line-Up Functions}.
+@end defopt
+
+@defopt c-ignore-auto-fill
+@vindex ignore-auto-fill (c-)
+When auto fill mode is enabled, @ccmode{} can selectively ignore it
+depending on the context the line break would occur in, e.g. to never
+break a line automatically inside a string literal. This variable
+takes a list of symbols for the different contexts where auto-filling
+never should occur:
+
+@table @code
+@item string
+Inside a string or character literal.
+@item c
+Inside a C style block comment.
+@item c++
+Inside a C++ style line comment.
+@item cpp
+Inside a preprocessor directive.
+@item code
+Anywhere else, i.e. in normal code.
+@end table
+
+By default, @code{c-ignore-auto-fill} is set to @code{(string cpp
+code)}, which means that when auto-fill mode is activated,
+auto-filling only occurs in comments. In literals, it's often
+desirable to have explicit control over newlines. In preprocessor
+directives, the necessary @samp{\} escape character before the newline
+is not automatically inserted, so an automatic line break would
+produce invalid code. In normal code, line breaks are normally
+dictated by some logical structure in the code rather than the last
+whitespace character, so automatic line breaks there will produce poor
+results in the current implementation.
+@end defopt
+
+@vindex comment-multi-line
+If inside a comment and @code{comment-multi-line} (@pxref{Auto Fill,,,
+@emacsman{}, @emacsmantitle{}} is non-@code{nil}, the indentation and
+line prefix are preserved. If inside a comment and
+@code{comment-multi-line} is @code{nil}, a new comment of the same
+type is started on the next line and indented as appropriate for
+comments.
+
+Note that @ccmode{} sets @code{comment-multi-line} to @code{t} at
+startup. The reason is that @kbd{M-j} could otherwise produce sequences
+of single line block comments for texts that should logically be treated
+as one comment, and the rest of the paragraph handling code
+(e.g. @kbd{M-q} and @kbd{M-a}) can't cope with that, which would lead to
+inconsistent behavior.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Custom Auto-newlines, Clean-ups, Custom Filling and Breaking, Top
+@comment node-name, next, previous, up
+@chapter Customizing Auto-newlines
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@ccmode{} determines whether to insert auto-newlines in two basically
+different ways, depending on the character just typed:
+
+@table @asis
+@item Braces and Colons
+@ccmode{} first determines the syntactic context of the brace or colon
+(@pxref{Syntactic Symbols}), then looks for a corresponding element in
+an alist. This element specifies where to put newlines - this is any
+combination of before and after the brace or colon. If no alist
+element is found, newlines are inserted both before and after a brace,
+but none are inserted around a colon. See @ref{Hanging Braces} and
+@ref{Hanging Colons}.
+
+@item Semicolons and Commas
+The variable @code{c-hanging-semi&comma-criteria} contains a list of
+functions which determine whether to insert a newline after a newly
+typed semicolon or comma. @xref{Hanging Semicolons and Commas}.
+@end table
+
+The names of these configuration variables contain @samp{hanging}
+because they let you @dfn{hang} the pertinent characters. A character
+which introduces a C construct is said to @dfn{hang on the right} when
+it appears at the end of a line after other code, being separated by a
+line break from the construct it introduces, like the opening brace in:
+
+@example
+@group
+while (i < MAX) @{
+ total += entry[i];
+ entry [i++] = 0;
+@}
+@end group
+@end example
+
+@noindent
+A character @dfn{hangs on the left} when it appears at the start of
+the line after the construct it closes off, like the above closing
+brace.
+
+The next chapter, ``Clean-ups'', describes how to configure @ccmode{}
+to remove these automatically added newlines in certain specific
+circumstances. @xref{Clean-ups}.
+
+@menu
+* Hanging Braces::
+* Hanging Colons::
+* Hanging Semicolons and Commas::
+@end menu
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Hanging Braces, Hanging Colons, Custom Auto-newlines, Custom Auto-newlines
+@comment node-name, next, previous, up
+@section Hanging Braces
+@cindex hanging braces
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+To specify which kinds of braces you want auto-newlines put around,
+you set the style variable @code{c-hanging-braces-alist}. Its
+structure and semantics are described in this section. Details of how
+to set it up, and its relationship to CC Mode's style system are given
+in @ref{Style Variables}.
+
+Say you wanted an auto-newline after (but not before) the following
+@samp{@{}:
+
+@example
+if (foo < 17) @{
+@end example
+
+@noindent
+First you need to find the @dfn{syntactic context} of the brace---type
+a @key{RET} before the brace to get it on a line of its
+own@footnote{Also insert a @samp{\} at the end of the previous line if
+you're in AWK Mode.}, then type @kbd{C-c C-s}. That will tell you
+something like:
+
+@example
+((substatement-open 1061))
+@end example
+
+@noindent
+So here you need to put the entry @code{(substatement-open . (after))}
+into @code{c-hanging-braces-alist}.
+
+If you don't want any auto-newlines for a particular syntactic symbol,
+put this into @code{c-hanging-braces-alist}:
+
+@example
+(brace-entry-open)
+@end example
+
+If some brace syntactic symbol is not in @code{c-hanging-brace-alist},
+its entry is taken by default as @code{(before after)}---insert a
+newline both before and after the brace. In place of a
+``before/after'' list you can specify a function in this alist---this
+is useful when the auto newlines depend on the code around the brace.
+
+@defopt c-hanging-braces-alist
+@vindex hanging-braces-alist (c-)
+
+This variable is an association list which maps syntactic symbols to
+lists of places to insert a newline. @xref{Association
+Lists,,,@lispref{}, @lispreftitle{}}. The key of each element is the
+syntactic symbol, the associated value is either @code{nil}, a list,
+or a function.
+
+@table @asis
+@item The Key - the syntactic symbol
+The syntactic symbols that are useful as keys in this list are
+@code{brace-list-intro}, @code{statement-cont},
+@code{inexpr-class-open}, @code{inexpr-class-close}, and all the
+@code{*-open} and @code{*-close} symbols. @xref{Syntactic Symbols},
+for a more detailed description of these syntactic symbols, except for
+@code{inexpr-class-open} and @code{inexpr-class-close}, which aren't
+actual syntactic symbols. Elements with any other value as a key get
+ignored.
+
+The braces of anonymous inner classes in Java are given the special
+symbols @code{inexpr-class-open} and @code{inexpr-class-close}, so that
+they can be distinguished from the braces of normal classes@footnote{The
+braces of anonymous classes produce a combination of
+@code{inexpr-class}, and @code{class-open} or @code{class-close} in
+normal indentation analysis.}.
+
+Note that the aggregate constructs in Pike mode, @samp{(@{}, @samp{@})},
+@samp{([}, @samp{])}, and @samp{(<}, @samp{>)}, do not count as brace
+lists in this regard, even though they do for normal indentation
+purposes. It's currently not possible to set automatic newlines on
+these constructs.
+
+@item The associated value - the ``ACTION'' list or function
+The value associated with each syntactic symbol in this association
+list is called an @var{action}, which can be either a list or a
+function which returns a list. @xref{Custom Braces}, for how to use
+a function as a brace hanging @var{action}.
+
+The list @var{action} (or the list returned by @var{action} when it's
+a function) contains some combination of the symbols @code{before} and
+@code{after}, directing @ccmode{} where to put newlines in
+relationship to the brace being inserted. Thus, if the list contains
+only the symbol @code{after}, then the brace hangs on the right side
+of the line, as in:
+
+@example
+// here, open braces always `hang'
+void spam( int i ) @{
+ if( i == 7 ) @{
+ dosomething(i);
+ @}
+@}
+@end example
+
+When the list contains both @code{after} and @code{before}, the braces
+will appear on a line by themselves, as shown by the close braces in
+the above example. The list can also be empty, in which case newlines
+are added neither before nor after the brace.
+@end table
+
+If a syntactic symbol is missing entirely from
+@code{c-hanging-braces-alist}, it's treated in the same way as an
+@var{action} with a list containing @code{before} and @code{after}, so
+that braces by default end up on their own line.
+
+For example, the default value of @code{c-hanging-braces-alist} is:
+
+@example
+((brace-list-open)
+ (brace-entry-open)
+ (statement-cont)
+ (substatement-open after)
+ (block-close . c-snug-do-while)
+ (extern-lang-open after)
+ (namespace-open after)
+ (module-open after)
+ (composition-open after)
+ (inexpr-class-open after)
+ (inexpr-class-close before))
+@end example
+
+@noindent which says that @code{brace-list-open},
+@code{brace-entry-open} and @code{statement-cont}@footnote{Brace lists
+inside statements, such as initializers for static array variables
+inside functions in C, are recognized as @code{statement-cont}. All
+normal substatement blocks are recognized with other symbols.} braces
+should both hang on the right side and allow subsequent text to follow
+on the same line as the brace. Also, @code{substatement-open},
+@code{extern-lang-open}, and @code{inexpr-class-open} braces should hang
+on the right side, but subsequent text should follow on the next line.
+The opposite holds for @code{inexpr-class-close} braces; they won't
+hang, but the following text continues on the same line. Here, in the
+@code{block-close} entry, you also see an example of using a function as
+an @var{action}. In all other cases, braces are put on a line by
+themselves.
+@end defopt
+
+@menu
+* Custom Braces::
+@end menu
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Custom Braces, , Hanging Braces, Hanging Braces
+@comment node-name, next, previous, up
+@subsection Custom Brace Hanging
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@vindex c-hanging-braces-alist
+@vindex hanging-braces-alist (c-)
+@cindex action functions
+Syntactic symbols aren't the only place where you can customize
+@ccmode{} with the lisp equivalent of callback functions. Remember
+that @var{action}s are usually a list containing some combination of
+the symbols @code{before} and @code{after} (@pxref{Hanging Braces}).
+For more flexibility, you can instead specify brace ``hanginess'' by
+giving a syntactic symbol an @dfn{action function} in
+@code{c-hanging-braces-alist}; this function determines the
+``hanginess'' of a brace, usually by looking at the code near it.
+
+@cindex customization, brace hanging
+An action function is called with two arguments: the syntactic symbol
+for the brace (e.g. @code{substatement-open}), and the buffer position
+where the brace has been inserted. Point is undefined on entry to an
+action function, but the function must preserve it (e.g. by using
+@code{save-excursion}). The return value should be a list containing
+some combination of @code{before} and @code{after}, including neither
+of them (i.e. @code{nil}).
+
+@defvar c-syntactic-context
+@vindex syntactic-context (c-)
+During the call to the indentation or brace hanging @var{action}
+function, this variable is bound to the full syntactic analysis list.
+This might be, for example, @samp{((block-close 73))}. Don't ever
+give @code{c-syntactic-context} a value yourself---this would disrupt
+the proper functioning of @ccmode{}.
+
+This variable is also bound in three other circumstances:
+(i)@w{ }when calling a c-hanging-semi&comma-criteria function
+(@pxref{Hanging Semicolons and Commas}); (ii)@w{ }when calling a
+line-up function (@pxref{Custom Line-Up}); (iii)@w{ }when calling a
+c-special-indent-hook function (@pxref{Other Indentation}).
+@end defvar
+
+As an example, @ccmode{} itself uses this feature to dynamically
+determine the hanginess of braces which close ``do-while''
+constructs:
+
+@example
+void do_list( int count, char** atleast_one_string )
+@{
+ int i=0;
+ do @{
+ handle_string( atleast_one_string[i] );
+ i++;
+ @} while( i < count );
+@}
+@end example
+
+@ccmode{} assigns the @code{block-close} syntactic symbol to the
+brace that closes the @code{do} construct, and normally we'd like the
+line that follows a @code{block-close} brace to begin on a separate
+line. However, with ``do-while'' constructs, we want the
+@code{while} clause to follow the closing brace. To do this, we
+associate the @code{block-close} symbol with the @var{action} function
+@code{c-snug-do-while}:
+
+@example
+(defun c-snug-do-while (syntax pos)
+ "Dynamically calculate brace hanginess for do-while statements."
+ (save-excursion
+ (let (langelem)
+ (if (and (eq syntax 'block-close)
+ (setq langelem (assq 'block-close c-syntactic-context))
+ (progn (goto-char (cdr langelem))
+ (if (= (following-char) ?@{)
+ (forward-sexp -1))
+ (looking-at "\\<do\\>[^_]")))
+ '(before)
+ '(before after)))))
+@end example
+
+@findex c-snug-do-while
+@findex snug-do-while (c-)
+This function simply looks to see if the brace closes a ``do-while''
+clause and if so, returns the list @samp{(before)} indicating
+that a newline should be inserted before the brace, but not after it.
+In all other cases, it returns the list @samp{(before after)} so
+that the brace appears on a line by itself.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Hanging Colons, Hanging Semicolons and Commas, Hanging Braces, Custom Auto-newlines
+@comment node-name, next, previous, up
+@section Hanging Colons
+@cindex hanging colons
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@cindex customization, colon hanging
+@vindex c-hanging-colons-alist
+@vindex hanging-colons-alist (c-)
+
+Using a mechanism similar to brace hanging (@pxref{Hanging Braces}),
+colons can also be made to hang using the style variable
+@code{c-hanging-colons-alist} - When a colon is typed, @ccmode
+determines its syntactic context, looks this up in the alist
+@code{c-changing-colons-alist} and inserts up to two newlines
+accordingly. Here, however, If @ccmode fails to find an entry for a
+syntactic symbol in the alist, no newlines are inserted around the
+newly typed colon.
+
+@defopt c-hanging-colons-alist
+@vindex hanging-colons-alist (c-)
+
+@table @asis
+@item The Key - the syntactic symbol
+The syntactic symbols appropriate as keys in this association list
+are: @code{case-label}, @code{label}, @code{access-label},
+@code{member-init-intro}, and @code{inher-intro}. @xref{Syntactic
+Symbols}. Elements with any other value as a key get ignored.
+
+@item The associate value - the ``ACTION'' list
+The @var{action} here is simply a list containing a combination of the
+symbols @code{before} and @code{after}. Unlike in
+@code{c-hanging-braces-alist}, functions as @var{actions} are not
+supported - there doesn't seem to be any need for them.
+@end table
+@end defopt
+
+In C++, double-colons are used as a scope operator but because these
+colons always appear right next to each other, newlines before and after
+them are controlled by a different mechanism, called @dfn{clean-ups} in
+@ccmode{}. @xref{Clean-ups}, for details.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Hanging Semicolons and Commas, , Hanging Colons, Custom Auto-newlines
+@comment node-name, next, previous, up
+@section Hanging Semicolons and Commas
+@cindex hanging semicolons
+@cindex hanging commas
+@cindex customization, semicolon newlines
+@cindex customization, comma newlines
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@defopt c-hanging-semi&comma-criteria
+@vindex hanging-semi&comma-criteria (c-)
+This style variable takes a list of functions; these get called when
+you type a semicolon or comma. The functions are called in order
+without arguments. When these functions are entered, point is just
+after the newly inserted @samp{;} or @samp{,} and they must preserve
+point (e.g., by using @code{save-excursion}). During the call, the
+variable @code{c-syntactic-context} is bound to the syntactic context
+of the current line@footnote{This was first introduced in @ccmode{}
+5.31.} @pxref{Custom Braces}. These functions don't insert newlines
+themselves, rather they direct @ccmode{} whether or not to do so.
+They should return one of the following values:
+
+@table @code
+@item t
+A newline is to be inserted after the @samp{;} or @samp{,}, and no
+more functions from the list are to be called.
+@item stop
+No more functions from the list are to be called, and no newline is to
+be inserted.
+@item nil
+No determination has been made, and the next function in the list is
+to be called.
+@end table
+
+Note that auto-newlines are never inserted @emph{before} a semicolon
+or comma. If every function in the list is called without a
+determination being made, then no newline is added.
+
+In AWK mode, this variable is set by default to @code{nil}. In the
+other modes, the default value is a list containing a single function,
+@code{c-semi&comma-inside-parenlist}. This inserts newlines after all
+semicolons, apart from those separating @code{for}-clause statements.
+@end defopt
+
+@defun c-semi&comma-no-newlines-before-nonblanks
+@findex semi&comma-no-newlines-before-nonblanks (c-)
+This is an example of a criteria function, provided by @ccmode{}. It
+prevents newlines from being inserted after semicolons when there is a
+non-blank following line. Otherwise, it makes no determination. To
+use, add this function to the front of the
+@code{c-hanging-semi&comma-criteria} list.
+
+@example
+(defun c-semi&comma-no-newlines-before-nonblanks ()
+ (save-excursion
+ (if (and (eq last-command-char ?\;)
+ (zerop (forward-line 1))
+ (not (looking-at "^[ \t]*$")))
+ 'stop
+ nil)))
+@end example
+@end defun
+
+@defun c-semi&comma-inside-parenlist
+@findex semi&comma-inside-parenlist (c-)
+@defunx c-semi&comma-no-newlines-for-oneline-inliners
+@findex semi&comma-no-newlines-for-oneline-inliners (c-)
+The function @code{c-semi&comma-inside-parenlist} is what prevents
+newlines from being inserted inside the parenthesis list of @code{for}
+statements. In addition to
+@code{c-semi&comma-no-newlines-before-nonblanks} described above,
+@ccmode{} also comes with the criteria function
+@code{c-semi&comma-no-newlines-for-oneline-inliners}, which suppresses
+newlines after semicolons inside one-line inline method definitions
+(e.g. in C++ or Java).
+@end defun
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Clean-ups, Indentation Engine Basics, Custom Auto-newlines, Top
+@comment node-name, next, previous, up
+@chapter Clean-ups
+@cindex clean-ups
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@dfn{Clean-ups} are mechanisms which remove (or exceptionally, add)
+whitespace in specific circumstances and are complementary to colon
+and brace hanging. You enable a clean-up by adding its symbol into
+@code{c-cleanup-list}, e.g. like this:
+
+@example
+(add-to-list 'c-cleanup-list 'space-before-funcall)
+@end example
+
+On the surface, it would seem that clean-ups overlap the functionality
+provided by the @code{c-hanging-*-alist} variables. Clean-ups,
+however, are used to adjust code ``after-the-fact'', i.e. to adjust
+the whitespace in constructs later than when they were typed.
+
+Most of the clean-ups remove automatically inserted newlines, and are
+only active when auto-newline minor mode is turned on. Others will
+work all the time. Note that clean-ups are only performed when there
+is nothing but whitespace appearing between the individual components
+of the construct, and (apart from @code{comment-close-slash}) when the
+construct does not occur within a literal (@pxref{Auto-newlines}).
+
+@defopt c-cleanup-list
+@vindex cleanup-list (c-)
+@cindex literal
+
+You configure @ccmode{}'s clean-ups by setting the style variable
+@code{c-cleanup-list}, which is a list of clean-up symbols. By
+default, @ccmode{} cleans up only the @code{scope-operator} construct,
+which is necessary for proper C++ support.
+@end defopt
+
+These are the clean-ups that are only active when electric and
+auto-newline minor modes are enabled:
+
+@c TBD: Would like to use some sort of @deffoo here; @table indents a
+@c bit too much in dvi output.
+@table @code
+@item brace-else-brace
+Clean up @samp{@} else @{} constructs by placing the entire construct on
+a single line. Clean up occurs when the open brace after the
+@samp{else} is typed. So for example, this:
+
+@example
+@group
+void spam(int i)
+@{
+ if( i==7 ) @{
+ dosomething();
+ @}
+ else
+ @{
+@end group
+@end example
+
+@noindent
+appears like this after the last open brace is typed:
+
+@example
+@group
+void spam(int i)
+@{
+ if( i==7 ) @{
+ dosomething();
+ @} else @{
+@end group
+@end example
+
+@item brace-elseif-brace
+Similar to the @code{brace-else-brace} clean-up, but this cleans up
+@samp{@} else if (...) @{} constructs. For example:
+
+@example
+@group
+void spam(int i)
+@{
+ if( i==7 ) @{
+ dosomething();
+ @}
+ else if( i==3 )
+ @{
+@end group
+@end example
+
+@noindent
+appears like this after the last open parenthesis is typed:
+
+@example
+@group
+void spam(int i)
+@{
+ if( i==7 ) @{
+ dosomething();
+ @} else if(
+@end group
+@end example
+
+@noindent
+and like this after the last open brace is typed:
+
+@example
+@group
+void spam(int i)
+@{
+ if( i==7 ) @{
+ dosomething();
+ @} else if( i==3 ) @{
+@end group
+@end example
+
+@item brace-catch-brace
+Analogous to @code{brace-elseif-brace}, but cleans up @samp{@} catch
+(...) @{} in C++ and Java mode.
+
+@item empty-defun-braces
+Clean up braces following a top-level function or class definition that
+contains no body. Clean up occurs when the closing brace is typed.
+Thus the following:
+
+@example
+@group
+class Spam
+@{
+@}
+@end group
+@end example
+
+@noindent
+is transformed into this when the close brace is typed:
+
+@example
+@group
+class Spam
+@{@}
+@end group
+@end example
+
+@item defun-close-semi
+Clean up the terminating semicolon on top-level function or class
+definitions when they follow a close brace. Clean up occurs when the
+semicolon is typed. So for example, the following:
+
+@example
+@group
+class Spam
+@{
+...
+@}
+;
+@end group
+@end example
+
+@noindent
+is transformed into this when the semicolon is typed:
+
+@example
+@group
+class Spam
+@{
+...
+@};
+@end group
+@end example
+
+@item list-close-comma
+Clean up commas following braces in array and aggregate initializers.
+Clean up occurs when the comma is typed. The space before the comma
+is zapped just like the space before the semicolon in
+@code{defun-close-semi}.
+
+@item scope-operator
+Clean up double colons which might designate a C++ scope operator split
+across multiple lines@footnote{Certain C++ constructs introduce
+ambiguous situations, so @code{scope-operator} clean-ups might not
+always be correct. This usually only occurs when scoped identifiers
+appear in switch label tags.}. Clean up occurs when the second colon is
+typed. You will always want @code{scope-operator} in the
+@code{c-cleanup-list} when you are editing C++ code.
+
+@item one-liner-defun
+Clean up a single line of code enclosed by defun braces by removing
+the whitespace before and after the code. The clean-up happens when
+the closing brace is typed. If the variable
+@code{c-max-one-liner-length} is set, the cleanup is only done if the
+resulting line would be no longer than the value of that variable.
+
+For example, consider this AWK code:
+
+@example
+@group
+BEGIN @{
+ FS = "\t" # use <TAB> as a field separator
+@}
+@end group
+@end example
+
+@noindent
+It gets compacted to the following when the closing brace is typed:
+
+@example
+@group
+BEGIN @{FS = "\t"@} # use <TAB> as a field separator
+@end group
+@end example
+
+@defopt c-max-one-liner-length
+@vindex max-one-liner-length (c-)
+The maximum length of the resulting line for which the clean-up
+@code{one-liner-defun} will be triggered. This length is that of the entire
+line, including any leading whitespace and any trailing comment. Its
+default value is 80. If the value is zero or @code{nil}, no limit
+applies.
+@end defopt
+@end table
+
+The following clean-ups are always active when they occur on
+@code{c-cleanup-list}, regardless of whether Electric minor mode or
+Auto-newline minor mode are enabled:
+
+@table @code
+@item space-before-funcall
+Insert a space between the function name and the opening parenthesis
+of a function call. This produces function calls in the style
+mandated by the GNU coding standards, e.g. @samp{signal@w{ }(SIGINT,
+SIG_IGN)} and @samp{abort@w{ }()}. Clean up occurs when the opening
+parenthesis is typed. This clean-up should never be active in AWK
+Mode, since such a space is syntactically invalid for user defined
+functions.
+
+@item compact-empty-funcall
+Clean up any space between the function name and the opening parenthesis
+of a function call that has no arguments. This is typically used
+together with @code{space-before-funcall} if you prefer the GNU function
+call style for functions with arguments but think it looks ugly when
+it's only an empty parenthesis pair. I.e. you will get @samp{signal
+(SIGINT, SIG_IGN)}, but @samp{abort()}. Clean up occurs when the
+closing parenthesis is typed.
+
+@item comment-close-slash
+When inside a block comment, terminate the comment when you type a slash
+at the beginning of a line (i.e. immediately after the comment prefix).
+This clean-up removes whitespace preceding the slash and if needed,
+inserts a star to complete the token @samp{*/}. Type @kbd{C-q /} in this
+situation if you just want a literal @samp{/} inserted.
+@end table
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Indentation Engine Basics, Customizing Indentation, Clean-ups, Top
+@comment node-name, next, previous, up
+@chapter Indentation Engine Basics
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+This chapter will briefly cover how @ccmode{} indents lines of code.
+It is helpful to understand the indentation model being used so that
+you will know how to customize @ccmode{} for your personal coding
+style. All the details are in @ref{Customizing Indentation}.
+
+@ccmode{} has an indentation engine that provides a flexible and
+general mechanism for customizing indentation. When @ccmode{} indents
+a line of code, it separates its calculations into two steps:
+
+@enumerate
+@item
+@cindex syntactic symbol
+@cindex anchor position
+It analyzes the line to determine its @dfn{syntactic symbol(s)} (the
+kind of language construct it's looking at) and its @dfn{anchor
+position} (the position earlier in the file that @ccmode{} will indent
+the line relative to). The anchor position might be the location of
+an opening brace in the previous line, for example. @xref{Syntactic
+Analysis}.
+@item
+@cindex offsets
+@cindex indentation offset specifications
+It looks up the syntactic symbol(s) in the configuration to get the
+corresponding @dfn{offset(s)}. The symbol @code{+}, which means
+``indent this line one more level'' is a typical offset. @ccmode{}
+then applies these offset(s) to the anchor position, giving the
+indentation for the line. The different sorts of offsets are
+described in @ref{c-offsets-alist}.
+@end enumerate
+
+In exceptional circumstances, the syntax directed indentation
+described here may be a nuisance rather than a help. You can disable
+it by setting @code{c-syntactic-indentation} to @code{nil}. (To set
+the variable interactively, @ref{Minor Modes}).
+
+@defopt c-syntactic-indentation
+@vindex syntactic-indentation (c-)
+When this is non-@code{nil} (which it is by default), the indentation
+of code is done according to its syntactic structure. When it's
+@code{nil}, every line is just indented to the same level as the
+previous one, and @kbd{TAB} (@code{c-indent-command}) adjusts the
+indentation in steps of @code{c-basic-offset}. The current style
+(@pxref{Config Basics}) then has no effect on indentation, nor do any
+of the variables associated with indentation, not even
+@code{c-special-indent-hook}.
+@end defopt
+
+@menu
+* Syntactic Analysis::
+* Syntactic Symbols::
+* Indentation Calculation::
+@end menu
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Syntactic Analysis, Syntactic Symbols, Indentation Engine Basics, Indentation Engine Basics
+@comment node-name, next, previous, up
+@section Syntactic Analysis
+@cindex syntactic analysis
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@cindex syntactic element
+@cindex syntactic context
+The first thing @ccmode{} does when indenting a line of code, is to
+analyze the line, determining the @dfn{syntactic context} of the
+(first) construct on that line. It's a list of @dfn{syntactic
+elements}, where each syntactic element in turn is a list@footnote{In
+@ccmode 5.28 and earlier, a syntactic element was a dotted pair; the
+cons was the syntactic symbol and the cdr was the anchor position.
+For compatibility's sake, the parameter passed to a line-up function
+still has this dotted pair form (@pxref{Custom Line-Up}).} Here is a
+brief and typical example:
+
+@example
+((defun-block-intro 1959))
+@end example
+
+@cindex syntactic symbol
+@noindent
+The first thing inside each syntactic element is always a
+@dfn{syntactic symbol}. It describes the kind of construct that was
+recognized, e.g. @code{statement}, @code{substatement},
+@code{class-open}, @code{class-close}, etc. @xref{Syntactic Symbols},
+for a complete list of currently recognized syntactic symbols and
+their semantics. The remaining entries are various data associated
+with the recognized construct - there might be zero or more.
+
+@cindex anchor position
+Conceptually, a line of code is always indented relative to some
+position higher up in the buffer (typically the indentation of the
+previous line). That position is the @dfn{anchor position} in the
+syntactic element. If there is an entry after the syntactic symbol in
+the syntactic element list then it's either nil or that anchor position.
+
+Here is an example. Suppose we had the following code as the only thing
+in a C++ buffer @footnote{The line numbers in this and future examples
+don't actually appear in the buffer, of course!}:
+
+@example
+ 1: void swap( int& a, int& b )
+ 2: @{
+ 3: int tmp = a;
+ 4: a = b;
+ 5: b = tmp;
+ 6: @}
+@end example
+
+@noindent
+We can use @kbd{C-c C-s} (@code{c-show-syntactic-information}) to
+report what the syntactic analysis is for the current line:
+
+@table @asis
+@item @kbd{C-c C-s} (@code{c-show-syntactic-information})
+@kindex C-c C-s
+@findex c-show-syntactic-information
+@findex show-syntactic-information (c-)
+This command calculates the syntactic analysis of the current line and
+displays it in the minibuffer. The command also highlights the anchor
+position(s).
+@end table
+
+ Running this command on line 4 of this example, we'd see in the echo
+area@footnote{With a universal argument (i.e. @kbd{C-u C-c C-s}) the
+analysis is inserted into the buffer as a comment on the current
+line.}:
+
+@example
+((statement 35))
+@end example
+
+@noindent
+and the @samp{i} of @code{int} on line 3 would be highlighted. This
+tells us that the line is a statement and it is indented relative to
+buffer position 35, the highlighted position. If you were to move
+point to line 3 and hit @kbd{C-c C-s}, you would see:
+
+@example
+((defun-block-intro 29))
+@end example
+
+@noindent
+This indicates that the @samp{int} line is the first statement in a top
+level function block, and is indented relative to buffer position 29,
+which is the brace just after the function header.
+
+Here's another example:
+
+@example
+ 1: int add( int val, int incr, int doit )
+ 2: @{
+ 3: if( doit )
+ 4: @{
+ 5: return( val + incr );
+ 6: @}
+ 7: return( val );
+ 8: @}
+@end example
+
+@noindent
+Hitting @kbd{C-c C-s} on line 4 gives us:
+
+@example
+((substatement-open 46))
+@end example
+
+@cindex substatement
+@cindex substatement block
+@noindent
+which tells us that this is a brace that @emph{opens} a substatement
+block. @footnote{A @dfn{substatement} is the line after a
+conditional statement, such as @code{if}, @code{else}, @code{while},
+@code{do}, @code{switch}, etc. A @dfn{substatement
+block} is a brace block following one of these conditional statements.}
+
+@cindex comment-only line
+Syntactic contexts can contain more than one element, and syntactic
+elements need not have anchor positions. The most common example of
+this is a @dfn{comment-only line}:
+
+@example
+ 1: void draw_list( List<Drawables>& drawables )
+ 2: @{
+ 3: // call the virtual draw() method on each element in list
+ 4: for( int i=0; i < drawables.count(), ++i )
+ 5: @{
+ 6: drawables[i].draw();
+ 7: @}
+ 8: @}
+@end example
+
+@noindent
+Hitting @kbd{C-c C-s} on line 3 of this example gives:
+
+@example
+((comment-intro) (defun-block-intro 46))
+@end example
+
+@noindent
+and you can see that the syntactic context contains two syntactic
+elements. Notice that the first element, @samp{(comment-intro)}, has no
+anchor position.
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Syntactic Symbols, Indentation Calculation, Syntactic Analysis, Indentation Engine Basics
+@comment node-name, next, previous, up
+@section Syntactic Symbols
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@cindex syntactic symbols, brief list
+@vindex c-offsets-alist
+@vindex offsets-alist (c-)
+This section is a complete list of the syntactic symbols which appear
+in the @code{c-offsets-alist} style variable, along with brief
+descriptions. The previous section (@pxref{Syntactic Analysis})
+states what syntactic symbols are and how the indentation engine uses
+them.
+
+More detailed descriptions of these symbols, together with snippets of
+source code to which they apply, appear in the examples in the
+subsections below. Note that, in the interests of brevity, the anchor
+position associated with most syntactic symbols is @emph{not}
+specified. In cases of doubt, type @kbd{C-c C-s} on a pertinent
+line---this highlights the anchor position.
+
+@ssindex -open symbols
+@ssindex -close symbols
+@ssindex -block-intro symbols
+The syntactic symbols which indicate brace constructs follow a general
+naming convention. When a line begins with an open or close brace,
+its syntactic symbol will contain the suffix @code{-open} or
+@code{-close} respectively. The first line within the brace block
+construct will contain the suffix @code{-block-intro}.
+
+@ssindex -intro symbols
+@ssindex -cont symbols
+In constructs which can span several lines, a distinction is usually
+made between the first line that introduces the construct and the
+lines that continue it. The syntactic symbols that indicate these
+lines will contain the suffixes @code{-intro} or @code{-cont}
+respectively.
+
+The best way to understand how all this works is by looking at some
+examples. Remember that you can see the syntax of any source code
+line by using @kbd{C-c C-s}.
+
+@table @code
+@item string
+Inside a multiline string. @ref{Literal Symbols}.
+@item c
+Inside a multiline C style block comment. @ref{Literal Symbols}.
+@item defun-open
+Brace that opens a top-level function definition. @ref{Function
+Symbols}.
+@item defun-close
+Brace that closes a top-level function definition. @ref{Function
+Symbols}.
+@item defun-block-intro
+The first line in a top-level defun. @ref{Function Symbols}.
+@item class-open
+Brace that opens a class definition. @ref{Class Symbols}.
+@item class-close
+Brace that closes a class definition. @ref{Class Symbols}.
+@item inline-open
+Brace that opens an in-class inline method. @ref{Class Symbols}.
+@item inline-close
+Brace that closes an in-class inline method. @ref{Class Symbols}.
+@item func-decl-cont
+The region between a function definition's argument list and the
+function opening brace (excluding K&R argument declarations). In C,
+you cannot put anything but whitespace and comments in this region,
+however in C++ and Java, @code{throws} declarations and other things
+can appear here. @ref{Literal Symbols}. @c @emph{FIXME!!! Can it not
+@c go somewhere better?}
+@item knr-argdecl-intro
+First line of a K&R C argument declaration. @ref{K&R Symbols}.
+@item knr-argdecl
+Subsequent lines in a K&R C argument declaration. @ref{K&R Symbols}.
+@item topmost-intro
+The first line in a ``topmost'' definition. @ref{Function Symbols}.
+@item topmost-intro-cont
+Topmost definition continuation lines. This is only used in the parts
+that aren't covered by other symbols such as @code{func-decl-cont} and
+@code{knr-argdecl}. @ref{Function Symbols}.
+@item member-init-intro
+First line in a member initialization list. @ref{Class Symbols}.
+@item member-init-cont
+Subsequent member initialization list lines. @ref{Class Symbols}.
+@item inher-intro
+First line of a multiple inheritance list. @ref{Class Symbols}.
+@item inher-cont
+Subsequent multiple inheritance lines. @ref{Class Symbols}.
+@item block-open
+Statement block open brace. @ref{Literal Symbols}.
+@item block-close
+Statement block close brace. @ref{Conditional Construct Symbols}.
+@item brace-list-open
+Open brace of an enum or static array list. @ref{Brace List Symbols}.
+@item brace-list-close
+Close brace of an enum or static array list. @ref{Brace List Symbols}.
+@item brace-list-intro
+First line in an enum or static array list. @ref{Brace List Symbols}.
+@item brace-list-entry
+Subsequent lines in an enum or static array list. @ref{Brace List
+Symbols}.
+@item brace-entry-open
+Subsequent lines in an enum or static array list where the line begins
+with an open brace. @ref{Brace List Symbols}.
+@item statement
+A statement. @ref{Function Symbols}.
+@item statement-cont
+A continuation of a statement. @ref{Function Symbols}.
+@item statement-block-intro
+The first line in a new statement block. @ref{Conditional Construct
+Symbols}.
+@item statement-case-intro
+The first line in a case block. @ref{Switch Statement Symbols}.
+@item statement-case-open
+The first line in a case block that starts with a brace. @ref{Switch
+Statement Symbols}.
+@item substatement
+The first line after a conditional or loop construct.
+@ref{Conditional Construct Symbols}.
+@item substatement-open
+The brace that opens a substatement block. @ref{Conditional Construct
+Symbols}.
+@item substatement-label
+The first line after a conditional or loop construct if it's a label.
+@ref{Conditional Construct Symbols}.
+@item case-label
+A label in a @code{switch} block. @ref{Switch Statement Symbols}.
+@item access-label
+C++ access control label. @ref{Class Symbols}.
+@item label
+Any other label. @ref{Literal Symbols}.
+@item do-while-closure
+The @code{while} line that ends a @code{do}-@code{while} construct.
+@ref{Conditional Construct Symbols}.
+@item else-clause
+The @code{else} line of an @code{if}-@code{else} construct.
+@ref{Conditional Construct Symbols}.
+@item catch-clause
+The @code{catch} or @code{finally} (in Java) line of a
+@code{try}-@code{catch} construct. @ref{Conditional Construct
+Symbols}.
+@item comment-intro
+A line containing only a comment introduction. @ref{Literal Symbols}.
+@item arglist-intro
+The first line in an argument list. @ref{Paren List Symbols}.
+@item arglist-cont
+Subsequent argument list lines when no arguments follow on the same
+line as the arglist opening paren. @ref{Paren List Symbols}.
+@item arglist-cont-nonempty
+Subsequent argument list lines when at least one argument follows on
+the same line as the arglist opening paren. @ref{Paren List Symbols}.
+@item arglist-close
+The solo close paren of an argument list. @ref{Paren List Symbols}.
+@item stream-op
+Lines continuing a stream operator (C++ only). @ref{Literal
+Symbols}. @c @emph{FIXME!!! Can this not be moved somewhere better?}
+@item inclass
+The line is nested inside a class definition. @ref{Class Symbols}.
+@item cpp-macro
+The start of a preprocessor macro definition. @ref{Literal Symbols}.
+@item cpp-define-intro
+The first line inside a multiline preprocessor macro if
+@code{c-syntactic-indentation-in-macros} is set. @ref{Multiline Macro
+Symbols}.
+@item cpp-macro-cont
+All lines inside multiline preprocessor macros if
+@code{c-syntactic-indentation-in-macros} is @code{nil}.
+@ref{Multiline Macro Symbols}.
+@item friend
+A C++ friend declaration. @ref{Class Symbols}.
+@item objc-method-intro
+The first line of an Objective-C method definition. @ref{Objective-C
+Method Symbols}.
+@item objc-method-args-cont
+Lines continuing an Objective-C method definition. @ref{Objective-C
+Method Symbols}.
+@item objc-method-call-cont
+Lines continuing an Objective-C method call. @ref{Objective-C Method
+Symbols}.
+@item extern-lang-open
+Brace that opens an @code{extern} block (e.g. @code{extern "C"
+@{...@}}). @ref{External Scope Symbols}.
+@item extern-lang-close
+Brace that closes an @code{extern} block. @ref{External Scope
+Symbols}.
+@item inextern-lang
+Analogous to @code{inclass} syntactic symbol, but used inside
+@code{extern} blocks. @ref{External Scope Symbols}.
+@item namespace-open
+@itemx namespace-close
+@itemx innamespace
+These are analogous to the three @code{extern-lang} symbols above, but
+are returned for C++ namespace blocks. @ref{External Scope Symbols}.
+@item module-open
+@itemx module-close
+@itemx inmodule
+Analogous to the above, but for CORBA IDL @code{module} blocks.
+@ref{External Scope Symbols}.
+@item composition-open
+@itemx composition-close
+@itemx incomposition
+Analogous to the above, but for CORBA CIDL @code{composition} blocks.
+@ref{External Scope Symbols}.
+@item template-args-cont
+C++ template argument list continuations. @ref{Class Symbols}.
+@item inlambda
+Analogous to @code{inclass} syntactic symbol, but used inside lambda
+(i.e. anonymous) functions. Only used in Pike mode. @ref{Statement
+Block Symbols}.
+@item lambda-intro-cont
+Lines continuing the header of a lambda function, i.e. between the
+@code{lambda} keyword and the function body. Only used in Pike mode.
+@ref{Statement Block Symbols}.
+@item inexpr-statement
+A statement block inside an expression. The gcc C and C++ extension
+for this is recognized. It's also used for the special functions that
+take a statement block as an argument in Pike. @ref{Statement Block
+Symbols}.
+@item inexpr-class
+A class definition inside an expression. This is used for anonymous
+classes in Java. It's also used for anonymous array initializers in
+Java. @ref{Anonymous Class Symbol}.
+@end table
+
+@menu
+* Function Symbols::
+* Class Symbols::
+* Conditional Construct Symbols::
+* Switch Statement Symbols::
+* Brace List Symbols::
+* External Scope Symbols::
+* Paren List Symbols::
+* Literal Symbols::
+* Multiline Macro Symbols::
+* Objective-C Method Symbols::
+* Anonymous Class Symbol::
+* Statement Block Symbols::
+* K&R Symbols::
+@end menu
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Function Symbols, Class Symbols, Syntactic Symbols, Syntactic Symbols
+@comment node-name, next, previous, up
+@subsection Function Symbols
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+This example shows a typical function declaration.
+
+@example
+ 1: void
+ 2: swap( int& a, int& b )
+ 3: @{
+ 4: int tmp = a;
+ 5: a = b;
+ 6: b = tmp;
+ 7: int ignored =
+ 8: a + b;
+ 9: @}
+@end example
+
+@ssindex topmost-intro
+@ssindex topmost-intro-cont
+@ssindex defun-open
+@ssindex defun-close
+@ssindex defun-block-intro
+Line 1 shows a @code{topmost-intro} since it is the first line that
+introduces a top-level construct. Line 2 is a continuation of the
+top-level construct introduction so it has the syntax
+@code{topmost-intro-cont}. Line 3 shows a @code{defun-open} since it is
+the brace that opens a top-level function definition. Line 9 is the
+corresponding
+@code{defun-close} since it contains the brace that closes the top-level
+function definition. Line 4 is a @code{defun-block-intro}, i.e. it is
+the first line of a brace-block, enclosed in a
+top-level function definition.
+
+@ssindex statement
+@ssindex statement-cont
+Lines 5, 6, and 7 are all given @code{statement} syntax since there
+isn't much special about them. Note however that line 8 is given
+@code{statement-cont} syntax since it continues the statement begun
+on the previous line.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Class Symbols, Conditional Construct Symbols, Function Symbols, Syntactic Symbols
+@comment node-name, next, previous, up
+@subsection Class related Symbols
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Here's an example which illustrates some C++ class syntactic symbols:
+
+@example
+ 1: class Bass
+ 2: : public Guitar,
+ 3: public Amplifiable
+ 4: @{
+ 5: public:
+ 6: Bass()
+ 7: : eString( new BassString( 0.105 )),
+ 8: aString( new BassString( 0.085 )),
+ 9: dString( new BassString( 0.065 )),
+10: gString( new BassString( 0.045 ))
+11: @{
+12: eString.tune( 'E' );
+13: aString.tune( 'A' );
+14: dString.tune( 'D' );
+15: gString.tune( 'G' );
+16: @}
+17: friend class Luthier;
+18: @};
+@end example
+
+@ssindex class-open
+@ssindex class-close
+As in the previous example, line 1 has the @code{topmost-intro} syntax.
+Here however, the brace that opens a C++ class definition on line 4 is
+assigned the @code{class-open} syntax. Note that in C++, classes,
+structs, and unions are essentially equivalent syntactically (and are
+very similar semantically), so replacing the @code{class} keyword in the
+example above with @code{struct} or @code{union} would still result in a
+syntax of @code{class-open} for line 4 @footnote{This is the case even
+for C and Objective-C. For consistency, structs in all supported
+languages are syntactically equivalent to classes. Note however that
+the keyword @code{class} is meaningless in C and Objective-C.}.
+Similarly, line 18 is assigned @code{class-close} syntax.
+
+@ssindex inher-intro
+@ssindex inher-cont
+Line 2 introduces the inheritance list for the class so it is assigned
+the @code{inher-intro} syntax, and line 3, which continues the
+inheritance list is given @code{inher-cont} syntax.
+
+@ssindex access-label
+@ssindex inclass
+Hitting @kbd{C-c C-s} on line 5 shows the following analysis:
+
+@example
+((inclass 58) (access-label 58))
+@end example
+
+@noindent
+The primary syntactic symbol for this line is @code{access-label} as
+this a label keyword that specifies access protection in C++. However,
+because this line is also a top-level construct inside a class
+definition, the analysis actually shows two syntactic symbols. The
+other syntactic symbol assigned to this line is @code{inclass}.
+Similarly, line 6 is given both @code{inclass} and @code{topmost-intro}
+syntax:
+
+@example
+((inclass 58) (topmost-intro 60))
+@end example
+
+@ssindex member-init-intro
+@ssindex member-init-cont
+Line 7 introduces a C++ member initialization list and as such is given
+@code{member-init-intro} syntax. Note that in this case it is
+@emph{not} assigned @code{inclass} since this is not considered a
+top-level construct. Lines 8 through 10 are all assigned
+@code{member-init-cont} since they continue the member initialization
+list started on line 7.
+
+@cindex in-class inline methods
+@ssindex inline-open
+@ssindex inline-close
+Line 11's analysis is a bit more complicated:
+
+@example
+((inclass 58) (inline-open))
+@end example
+
+This line is assigned a syntax of both @code{inline-open} and
+@code{inclass} because it opens an @dfn{in-class} C++ inline method
+definition. This is distinct from, but related to, the C++ notion of an
+inline function in that its definition occurs inside an enclosing class
+definition, which in C++ implies that the function should be inlined.
+However, if the definition of the @code{Bass} constructor appeared
+outside the class definition, the construct would be given the
+@code{defun-open} syntax, even if the keyword @code{inline} appeared
+before the method name, as in:
+
+@example
+ 1: class Bass
+ 2: : public Guitar,
+ 3: public Amplifiable
+ 4: @{
+ 5: public:
+ 6: Bass();
+ 7: @};
+ 8:
+ 9: inline
+10: Bass::Bass()
+11: : eString( new BassString( 0.105 )),
+12: aString( new BassString( 0.085 )),
+13: dString( new BassString( 0.065 )),
+14: gString( new BassString( 0.045 ))
+15: @{
+16: eString.tune( 'E' );
+17: aString.tune( 'A' );
+18: dString.tune( 'D' );
+19: gString.tune( 'G' );
+20: @}
+@end example
+
+@ssindex friend
+Returning to the previous example, line 16 is given @code{inline-close}
+syntax, while line 12 is given @code{defun-block-open} syntax, and lines
+13 through 15 are all given @code{statement} syntax. Line 17 is
+interesting in that its syntactic analysis list contains three
+elements:
+
+@example
+((inclass 58) (topmost-intro 380) (friend))
+@end example
+
+The @code{friend} and @code{inline-open} syntactic symbols are
+modifiers that do not have anchor positions.
+
+@ssindex template-args-cont
+Template definitions introduce yet another syntactic symbol:
+
+@example
+ 1: ThingManager <int,
+ 2: Framework::Callback *,
+ 3: Mutex> framework_callbacks;
+@end example
+
+Here, line 1 is analyzed as a @code{topmost-intro}, but lines 2 and 3
+are both analyzed as @code{template-args-cont} lines.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Conditional Construct Symbols, Switch Statement Symbols, Class Symbols, Syntactic Symbols
+@comment node-name, next, previous, up
+@subsection Conditional Construct Symbols
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Here is a (totally contrived) example which illustrates how syntax is
+assigned to various conditional constructs:
+
+@example
+ 1: void spam( int index )
+ 2: @{
+ 3: for( int i=0; i<index; i++ )
+ 4: @{
+ 5: if( i == 10 )
+ 6: do_something_special();
+ 7: else
+ 8: silly_label:
+ 9: do_something( i );
+10: @}
+11: do @{
+12: another_thing( i-- );
+13: @}
+14: while( i > 0 );
+15: @}
+@end example
+
+Only the lines that illustrate new syntactic symbols will be discussed.
+
+@ssindex substatement-open
+@ssindex statement-block-intro
+@ssindex block-close
+Line 4 has a brace which opens a conditional's substatement block. It
+is thus assigned @code{substatement-open} syntax, and since line 5 is
+the first line in the substatement block, it is assigned
+@code{statement-block-intro} syntax. Line 10 contains the brace
+that closes the inner substatement block, and is therefore given the
+syntax @code{block-close}@footnote{@code{block-open} is used only for
+``free-standing'' blocks, and is somewhat rare (@pxref{Literal
+Symbols} for an example.)}. Line 13 is treated the same way.
+
+@ssindex substatement
+Lines 6 and 9 are also substatements of conditionals, but since they
+don't start blocks they are given @code{substatement} syntax
+instead of @code{substatement-open}.
+
+@ssindex substatement-label
+Line 8 contains a label, which is normally given @code{label} syntax.
+This one is however a bit special since it's between a conditional and
+its substatement. It's analyzed as @code{substatement-label} to let you
+handle this rather odd case differently from normal labels.
+
+@ssindex else-clause
+@ssindex catch-clause
+Line 7 start with an @code{else} that matches the @code{if} statement on
+line 5. It is therefore given the @code{else-clause} syntax and is
+anchored on the matching @code{if}. The @code{try}-@code{catch}
+constructs in C++ and Java are treated this way too, except that
+@code{catch} and (in Java) @code{finally}, are marked with
+@code{catch-clause}.
+
+@ssindex do-while-closure
+The @code{while} construct on line 14 that closes a @code{do}
+conditional is given the special syntax @code{do-while-closure} if it
+appears on a line by itself. Note that if the @code{while} appeared on
+the same line as the preceding close brace, that line would still have
+@code{block-close} syntax.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Switch Statement Symbols, Brace List Symbols, Conditional Construct Symbols, Syntactic Symbols
+@comment node-name, next, previous, up
+@subsection Switch Statement Symbols
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Switch statements have their own set of syntactic symbols. Here's an
+example:
+
+@example
+ 1: void spam( enum Ingredient i )
+ 2: @{
+ 3: switch( i ) @{
+ 4: case Ham:
+ 5: be_a_pig();
+ 6: break;
+ 7: case Salt:
+ 8: drink_some_water();
+ 9: break;
+10: default:
+11: @{
+12: what_is_it();
+13: break;
+14: @}
+15: @}
+14: @}
+@end example
+
+@ssindex case-label
+@ssindex statement-case-intro
+@ssindex statement-case-open
+Here, lines 4, 7, and 10 are all assigned @code{case-label} syntax,
+while lines 5 and 8 are assigned @code{statement-case-intro}. Line 11
+is treated slightly differently since it contains a brace that opens a
+block --- it is given @code{statement-case-open} syntax.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Brace List Symbols, External Scope Symbols, Switch Statement Symbols, Syntactic Symbols
+@comment node-name, next, previous, up
+@subsection Brace List Symbols
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@cindex brace lists
+There are a set of syntactic symbols that are used to recognize
+constructs inside of brace lists. A brace list is defined as an
+@code{enum} or aggregate initializer list, such as might statically
+initialize an array of structs. The three special aggregate constructs
+in Pike, @code{(@{ @})}, @code{([ ])} and @code{(< >)}, are treated as
+brace lists too. An example:
+
+@example
+ 1: static char* ingredients[] =
+ 2: @{
+ 3: "Ham",
+ 4: "Salt",
+ 5: NULL
+ 6: @};
+@end example
+
+@ssindex brace-list-open
+@ssindex brace-list-intro
+@ssindex brace-list-close
+@ssindex brace-list-entry
+Following convention, line 2 in this example is assigned
+@code{brace-list-open} syntax, and line 3 is assigned
+@code{brace-list-intro} syntax. Likewise, line 6 is assigned
+@code{brace-list-close} syntax. Lines 4 and 5 however, are assigned
+@code{brace-list-entry} syntax, as would all subsequent lines in this
+initializer list.
+
+@ssindex brace-entry-open
+Your static initializer might be initializing nested structures, for
+example:
+
+@example
+ 1: struct intpairs[] =
+ 2: @{
+ 3: @{ 1, 2 @},
+ 4: @{
+ 5: 3,
+ 6: 4
+ 7: @}
+ 8: @{ 1,
+ 9: 2 @},
+10: @{ 3, 4 @}
+11: @};
+@end example
+
+Here, you've already seen the analysis of lines 1, 2, 3, and 11. On
+line 4, things get interesting; this line is assigned
+@code{brace-entry-open} syntactic symbol because it's a bracelist entry
+line that starts with an open brace. Lines 5 and 6 (and line 9) are
+pretty standard, and line 7 is a @code{brace-list-close} as you'd
+expect. Once again, line 8 is assigned as @code{brace-entry-open} as is
+line 10.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node External Scope Symbols, Paren List Symbols, Brace List Symbols, Syntactic Symbols
+@comment node-name, next, previous, up
+@subsection External Scope Symbols
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+External language definition blocks also have their own syntactic
+symbols. In this example:
+
+@example
+ 1: extern "C"
+ 2: @{
+ 3: int thing_one( int );
+ 4: int thing_two( double );
+ 5: @}
+@end example
+
+@ssindex extern-lang-open
+@ssindex extern-lang-close
+@ssindex inextern-lang
+@ssindex inclass
+@noindent
+line 2 is given the @code{extern-lang-open} syntax, while line 5 is given
+the @code{extern-lang-close} syntax. The analysis for line 3 yields:
+
+@example
+((inextern-lang) (topmost-intro 14))
+@end example
+
+@noindent
+where @code{inextern-lang} is a modifier similar in purpose to
+@code{inclass}.
+
+There are various other top level blocks like @code{extern}, and they
+are all treated in the same way except that the symbols are named after
+the keyword that introduces the block. E.g. C++ namespace blocks get
+the three symbols @code{namespace-open}, @code{namespace-close} and
+@code{innamespace}. The currently recognized top level blocks are:
+
+@table @asis
+@item @code{extern-lang-open}, @code{extern-lang-close}, @code{inextern-lang}
+@code{extern} blocks in C and C++.@footnote{These should logically be
+named @code{extern-open}, @code{extern-close} and @code{inextern}, but
+that isn't the case for historical reasons.}
+
+@item @code{namespace-open}, @code{namespace-close}, @code{innamespace}
+@ssindex namespace-open
+@ssindex namespace-close
+@ssindex innamespace
+@code{namespace} blocks in C++.
+
+@item @code{module-open}, @code{module-close}, @code{inmodule}
+@ssindex module-open
+@ssindex module-close
+@ssindex inmodule
+@code{module} blocks in CORBA IDL.
+
+@item @code{composition-open}, @code{composition-close}, @code{incomposition}
+@ssindex composition-open
+@ssindex composition-close
+@ssindex incomposition
+@code{composition} blocks in CORBA CIDL.
+@end table
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Paren List Symbols, Literal Symbols, External Scope Symbols, Syntactic Symbols
+@comment node-name, next, previous, up
+@subsection Parenthesis (Argument) List Symbols
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+A number of syntactic symbols are associated with parenthesis lists,
+a.k.a argument lists, as found in function declarations and function
+calls. This example illustrates these:
+
+@example
+ 1: void a_function( int line1,
+ 2: int line2 );
+ 3:
+ 4: void a_longer_function(
+ 5: int line1,
+ 6: int line2
+ 7: );
+ 8:
+ 9: void call_them( int line1, int line2 )
+10: @{
+11: a_function(
+12: line1,
+13: line2
+14: );
+15:
+16: a_longer_function( line1,
+17: line2 );
+18: @}
+@end example
+
+@ssindex arglist-intro
+@ssindex arglist-close
+Lines 5 and 12 are assigned @code{arglist-intro} syntax since they are
+the first line following the open parenthesis, and lines 7 and 14 are
+assigned @code{arglist-close} syntax since they contain the parenthesis
+that closes the argument list.
+
+@ssindex arglist-cont-nonempty
+@ssindex arglist-cont
+Lines that continue argument lists can be assigned one of two syntactic
+symbols. For example, Lines 2 and 17
+are assigned @code{arglist-cont-nonempty} syntax. What this means
+is that they continue an argument list, but that the line containing the
+parenthesis that opens the list is @emph{not empty} following the open
+parenthesis. Contrast this against lines 6 and 13 which are assigned
+@code{arglist-cont} syntax. This is because the parenthesis that opens
+their argument lists is the last character on that line.
+
+Syntactic elements with @code{arglist-intro},
+@code{arglist-cont-nonempty}, and @code{arglist-close} contain two
+buffer positions: the anchor position (the beginning of the
+declaration or statement) and the position of the open parenthesis.
+The latter position can be used in a line-up function (@pxref{Line-Up
+Functions}).
+
+Note that there is no @code{arglist-open} syntax. This is because any
+parenthesis that opens an argument list, appearing on a separate line,
+is assigned the @code{statement-cont} syntax instead.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Literal Symbols, Multiline Macro Symbols, Paren List Symbols, Syntactic Symbols
+@comment node-name, next, previous, up
+@subsection Comment String Label and Macro Symbols
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+A few miscellaneous syntactic symbols that haven't been previously
+covered are illustrated by this C++ example:
+
+@example
+ 1: void Bass::play( int volume )
+ 2: const
+ 3: @{
+ 4: /* this line starts a multiline
+ 5: * comment. This line should get `c' syntax */
+ 6:
+ 7: char* a_multiline_string = "This line starts a multiline \
+ 8: string. This line should get `string' syntax.";
+ 9:
+10: note:
+11: @{
+12: #ifdef LOCK
+13: Lock acquire();
+14: #endif // LOCK
+15: slap_pop();
+16: cout << "I played "
+17: << "a note\n";
+18: @}
+19: @}
+@end example
+
+The lines to note in this example include:
+
+@itemize @bullet
+@item
+@ssindex func-decl-cont
+Line 2 is assigned the @code{func-decl-cont} syntax.
+
+@item
+@ssindex comment-intro
+Line 4 is assigned both @code{defun-block-intro} @emph{and}
+@code{comment-intro} syntax. A syntactic element with
+@code{comment-intro} has no anchor point --- It is always accompanied
+by another syntactic element which does have one.
+
+@item
+@ssindex c
+Line 5 is assigned @code{c} syntax.
+
+@item
+@cindex syntactic whitespace
+Line 6 which, even though it contains nothing but whitespace, is
+assigned @code{defun-block-intro}. Note that the appearance of the
+comment on lines 4 and 5 do not cause line 6 to be assigned
+@code{statement} syntax because comments are considered to be
+@dfn{syntactic whitespace}, which are ignored when analyzing
+code.
+
+@item
+@ssindex string
+Line 8 is assigned @code{string} syntax.
+
+@item
+@ssindex label
+Line 10 is assigned @code{label} syntax.
+
+@item
+@ssindex block-open
+Line 11 is assigned @code{block-open} as well as @code{statement}
+syntax. A @code{block-open} syntactic element doesn't have an anchor
+position, since it always appears with another syntactic element which
+does have one.
+
+@item
+@ssindex cpp-macro
+Lines 12 and 14 are assigned @code{cpp-macro} syntax in addition to the
+normal syntactic symbols (@code{statement-block-intro} and
+@code{statement}, respectively). Normally @code{cpp-macro} is
+configured to cancel out the normal syntactic context to make all
+preprocessor directives stick to the first column, but that's easily
+changed if you want preprocessor directives to be indented like the rest
+of the code. Like @code{comment-intro}, a syntactic element with
+@code{cpp-macro} doesn't contain an anchor position.
+
+@item
+@ssindex stream-op
+Line 17 is assigned @code{stream-op} syntax.
+@end itemize
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Multiline Macro Symbols, Objective-C Method Symbols, Literal Symbols, Syntactic Symbols
+@comment node-name, next, previous, up
+@subsection Multiline Macro Symbols
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@cindex multiline macros
+@cindex syntactic whitespace
+@ssindex cpp-define-intro
+@ssindex cpp-macro-cont
+Multiline preprocessor macro definitions are normally handled just like
+other code, i.e. the lines inside them are indented according to the
+syntactic analysis of the preceding lines inside the macro. The first
+line inside a macro definition (i.e. the line after the starting line of
+the cpp directive itself) gets @code{cpp-define-intro}. In this example:
+
+@example
+ 1: #define LIST_LOOP(cons, listp) \
+ 2: for (cons = listp; !NILP (cons); cons = XCDR (cons)) \
+ 3: if (!CONSP (cons)) \
+ 4: signal_error ("Invalid list format", listp); \
+ 5: else
+@end example
+
+@noindent
+line 1 is given the syntactic symbol @code{cpp-macro}. The first line
+of a cpp directive is always given that symbol. Line 2 is given
+@code{cpp-define-intro}, so that you can give the macro body as a whole
+some extra indentation. Lines 3 through 5 are then analyzed as normal
+code, i.e. @code{substatement} on lines 3 and 4, and @code{else-clause}
+on line 5.
+
+The syntactic analysis inside macros can be turned off with
+@code{c-syntactic-indentation-in-macros} (@pxref{Custom Macros}). In
+that case, lines 2 through 5 would all be given @code{cpp-macro-cont}
+with an anchor position pointing to the @code{#} which starts the cpp
+directive@footnote{This is how @ccmode{} 5.28 and earlier analyzed
+macros.}.
+
+@xref{Custom Macros}, for more info about the treatment of macros.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Objective-C Method Symbols, Anonymous Class Symbol, Multiline Macro Symbols, Syntactic Symbols
+@comment node-name, next, previous, up
+@subsection Objective-C Method Symbols
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+In Objective-C buffers, there are three additional syntactic symbols
+assigned to various message calling constructs. Here's an example
+illustrating these:
+
+@example
+ 1: - (void)setDelegate:anObject
+ 2: withStuff:stuff
+ 3: @{
+ 4: [delegate masterWillRebind:self
+ 5: toDelegate:anObject
+ 6: withExtraStuff:stuff];
+ 7: @}
+@end example
+
+@ssindex objc-method-intro
+@ssindex objc-method-args-cont
+@ssindex objc-method-call-cont
+Here, line 1 is assigned @code{objc-method-intro} syntax, and line 2 is
+assigned @code{objc-method-args-cont} syntax. Lines 5 and 6 are both
+assigned @code{objc-method-call-cont} syntax.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Anonymous Class Symbol, Statement Block Symbols, Objective-C Method Symbols, Syntactic Symbols
+@comment node-name, next, previous, up
+@subsection Anonymous Class Symbol (Java)
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Java has a concept of anonymous classes which can look something like
+this:
+
+@example
+ 1: public void watch(Observable o) @{
+ 2: o.addObserver(new Observer() @{
+ 3: public void update(Observable o, Object arg) @{
+ 4: history.addElement(arg);
+ 5: @}
+ 6: @});
+ 7: @}
+@end example
+
+@ssindex inexpr-class
+The brace following the @code{new} operator opens the anonymous class.
+Lines 3 and 6 are assigned the @code{inexpr-class} syntax, besides the
+@code{inclass} symbol used in normal classes. Thus, the class will be
+indented just like a normal class, with the added indentation given to
+@code{inexpr-class}. An @code{inexpr-class} syntactic element doesn't
+have an anchor position.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Statement Block Symbols, K&R Symbols, Anonymous Class Symbol, Syntactic Symbols
+@comment node-name, next, previous, up
+@subsection Statement Block Symbols
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+There are a few occasions where a statement block might be used inside
+an expression. One is in C or C++ code using the gcc extension for
+this, e.g:
+
+@example
+ 1: int res = (@{
+ 2: int y = foo (); int z;
+ 3: if (y > 0) z = y; else z = - y;
+ 4: z;
+ 5: @});
+@end example
+
+@ssindex inexpr-statement
+Lines 2 and 5 get the @code{inexpr-statement} syntax, besides the
+symbols they'd get in a normal block. Therefore, the indentation put on
+@code{inexpr-statement} is added to the normal statement block
+indentation. An @code{inexpr-statement} syntactic element doesn't
+contain an anchor position.
+
+In Pike code, there are a few other situations where blocks occur inside
+statements, as illustrated here:
+
+@example
+ 1: array itgob()
+ 2: @{
+ 3: string s = map (backtrace()[-2][3..],
+ 4: lambda
+ 5: (mixed arg)
+ 6: @{
+ 7: return sprintf ("%t", arg);
+ 8: @}) * ", " + "\n";
+ 9: return catch @{
+10: write (s + "\n");
+11: @};
+12: @}
+@end example
+
+@ssindex inlambda
+@ssindex lambda-intro-cont
+Lines 4 through 8 contain a lambda function, which @ccmode{} recognizes
+by the @code{lambda} keyword. If the function argument list is put
+on a line of its own, as in line 5, it gets the @code{lambda-intro-cont}
+syntax. The function body is handled as an inline method body, with the
+addition of the @code{inlambda} syntactic symbol. This means that line
+6 gets @code{inlambda} and @code{inline-open}, and line 8 gets
+@code{inline-close}@footnote{You might wonder why it doesn't get
+@code{inlambda} too. It's because the closing brace is relative to the
+opening brace, which stands on its own line in this example. If the
+opening brace was hanging on the previous line, then the closing brace
+would get the @code{inlambda} syntax too to be indented correctly.}.
+
+@ssindex inexpr-statement
+On line 9, @code{catch} is a special function taking a statement block
+as its argument. The block is handled as an in-expression statement
+with the @code{inexpr-statement} syntax, just like the gcc extended C
+example above. The other similar special function, @code{gauge}, is
+handled like this too.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node K&R Symbols, , Statement Block Symbols, Syntactic Symbols
+@comment node-name, next, previous, up
+@subsection K&R Symbols
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@ssindex knr-argdecl-intro
+@ssindex knr-argdecl
+Two other syntactic symbols can appear in old style, non-prototyped C
+code @footnote{a.k.a. K&R C, or Kernighan & Ritchie C}:
+
+@example
+ 1: int add_three_integers(a, b, c)
+ 2: int a;
+ 3: int b;
+ 4: int c;
+ 5: @{
+ 6: return a + b + c;
+ 7: @}
+@end example
+
+Here, line 2 is the first line in an argument declaration list and so is
+given the @code{knr-argdecl-intro} syntactic symbol. Subsequent lines
+(i.e. lines 3 and 4 in this example), are given @code{knr-argdecl}
+syntax.
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Indentation Calculation, , Syntactic Symbols, Indentation Engine Basics
+@comment node-name, next, previous, up
+@section Indentation Calculation
+@cindex indentation
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Indentation for a line is calculated from the syntactic context
+(@pxref{Syntactic Analysis}).
+
+First, a buffer position is found whose column will be the base for the
+indentation calculation. It's the anchor position in the first
+syntactic element that provides one that is used. If no syntactic
+element has an anchor position then column zero is used.
+
+Second, the syntactic symbols in each syntactic element are looked up
+in the @code{c-offsets-alist} style variable
+(@pxref{c-offsets-alist}), which is an association list of syntactic
+symbols and the offsets to apply for those symbols. These offsets are
+added together with the base column to produce the new indentation
+column.
+
+Let's use our two code examples above to see how this works. Here is
+our first example again:
+
+@example
+ 1: void swap( int& a, int& b )
+ 2: @{
+ 3: int tmp = a;
+ 4: a = b;
+ 5: b = tmp;
+ 6: @}
+@end example
+
+Let's say point is on line 3 and we hit the @key{TAB} key to reindent
+the line. The syntactic context for that line is:
+
+@example
+((defun-block-intro 29))
+@end example
+
+@noindent
+Since buffer position 29 is the first and only anchor position in the
+list, @ccmode{} goes there and asks for the current column. This brace
+is in column zero, so @ccmode{} uses @samp{0} as the base column.
+
+Next, @ccmode{} looks up @code{defun-block-intro} in the
+@code{c-offsets-alist} style variable. Let's say it finds the value
+@samp{4}; it adds this to the base column @samp{0}, yielding a running
+total indentation of 4 spaces.
+
+Since there is only one syntactic element on the list for this line,
+indentation calculation is complete, and the total indentation for the
+line is 4 spaces.
+
+Here's another example:
+
+@example
+ 1: int add( int val, int incr, int doit )
+ 2: @{
+ 3: if( doit )
+ 4: @{
+ 5: return( val + incr );
+ 6: @}
+ 7: return( val );
+ 8: @}
+@end example
+
+If we were to hit @kbd{TAB} on line 4 in the above example, the same
+basic process is performed, despite the differences in the syntactic
+context. The context for this line is:
+
+@example
+((substatement-open 46))
+@end example
+
+Here, @ccmode{} goes to buffer position 46, which is the @samp{i} in
+@code{if} on line 3. This character is in the fourth column on that
+line so the base column is @samp{4}. Then @ccmode{} looks up the
+@code{substatement-open} symbol in @code{c-offsets-alist}. Let's say it
+finds the value @samp{4}. It's added with the base column and yields an
+indentation for the line of 8 spaces.
+
+Simple, huh?
+
+Actually, it's a bit more complicated than that since the entries on
+@code{c-offsets-alist} can be much more than plain offsets.
+@xref{c-offsets-alist}, for the full story.
+
+Anyway, the mode usually just does The Right Thing without you having to
+think about it in this much detail. But when customizing indentation,
+it's helpful to understand the general indentation model being used.
+
+As you configure @ccmode{}, you might want to set the variable
+@code{c-echo-syntactic-information-p} to non-@code{nil} so that the
+syntactic context and calculated offset always is echoed in the
+minibuffer when you hit @kbd{TAB}.
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Customizing Indentation, Custom Macros, Indentation Engine Basics, Top
+@comment node-name, next, previous, up
+@chapter Customizing Indentation
+@cindex customization, indentation
+@cindex indentation
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+The principal variable for customizing indentation is the style
+variable @code{c-offsets-alist}, which gives an @dfn{offset} (an
+indentation rule) for each syntactic symbol. Its structure and
+semantics are completely described in @ref{c-offsets-alist}. The
+various ways you can set the variable, including the use of the
+@ccmode{} style system, are described in @ref{Config Basics} and its
+sections, in particular @ref{Style Variables}.
+
+The simplest and most used kind of ``offset'' setting in
+@code{c-offsets-alist} is in terms of multiples of
+@code{c-basic-offset}:
+
+@defopt c-basic-offset
+@vindex basic-offset (c-)
+This style variable holds the basic offset between indentation levels.
+It's factory default is 4, but all the built-in styles set it
+themselves, to some value between 2 (for @code{gnu} style) and 8 (for
+@code{bsd}, @code{linux}, and @code{python} styles).
+@end defopt
+
+The most flexible ``offset'' setting you can make in
+@code{c-offsets-alist} is a line-up function (or even a list of them),
+either one supplied by @ccmode{} (@pxref{Line-Up Functions}) or one
+you write yourself (@pxref{Custom Line-Up}).
+
+Finally, in @ref{Other Indentation} you'll find the tool of last
+resort: a hook which is called after a line has been indented. You
+can install functions here to make ad-hoc adjustments to any line's
+indentation.
+
+@menu
+* c-offsets-alist::
+* Interactive Customization::
+* Line-Up Functions::
+* Custom Line-Up::
+* Other Indentation::
+@end menu
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node c-offsets-alist, Interactive Customization, Customizing Indentation, Customizing Indentation
+@comment node-name, next, previous, up
+@section c-offsets-alist
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+This section explains the structure and semantics of the style
+variable @code{c-offset-alist}, the principal variable for configuring
+indentation. Details of how to set it up, and its relationship to
+@ccmode{}'s style system are given in @ref{Style Variables}.
+
+@defopt c-offsets-alist
+@vindex offsets-alist (c-)
+This is an alist which associates an offset with each syntactic
+symbol. This @dfn{offset} is a rule specifying how to indent a line
+whose syntactic context matches the symbol. @xref{Syntactic
+Analysis}.
+
+Note that the buffer-local binding of this alist in a @ccmode{} buffer
+contains an entry for @emph{every} syntactic symbol. Its global
+binding and its settings within style specifications usually contain
+only a few entries. @xref{Style Variables}.
+
+The offset specification associated with any particular syntactic
+symbol can be an integer, a variable name, a vector, a function or
+lambda expression, a list, or one of the following special symbols:
+@code{+}, @code{-}, @code{++}, @code{--}, @code{*}, or @code{/}. The
+meanings of these values are described in detail below.
+
+Here is an example fragment of a @code{c-offsets-alist}, showing some
+of these kinds of offsets:
+
+@example
+((statement . 0)
+ (substatement . +)
+ (cpp-macro . [0])
+ (topmost-intro-cont . c-lineup-topmost-intro-cont)
+ (statement-block-intro . (add c-lineup-whitesmith-in-block
+ c-indent-multi-line-block))
+ @dots{}
+@*)
+@end example
+@end defopt
+
+@deffn Command c-set-offset (@kbd{C-c C-o})
+@findex set-offset (c-)
+@kindex C-c C-o
+This command changes the entry for a syntactic symbol in the current
+binding of @code{c-offsets-alist}, or it inserts a new entry if there
+isn't already one for that syntactic symbol.
+
+You can use @code{c-set-offsets} interactively within a @ccmode{}
+buffer to make experimental changes to your indentation settings.
+@kbd{C-c C-o} prompts you for the syntactic symbol to change
+(defaulting to that of the current line) and the new offset
+(defaulting to the current offset).
+
+@code{c-set-offsets} takes two arguments when used programmatically:
+@var{symbol}, the syntactic element symbol to change and @var{offset},
+the new offset for that syntactic element. You can call the command
+in your @file{.emacs} to change the global binding of
+@code{c-offsets-alist} (@pxref{Style Variables}); you can use it in a
+hook function to make changes from the current style. @ccmode{}
+itself uses this function when initializing styles.
+@end deffn
+
+@cindex offset specification
+The ``offset specifications'' in @code{c-offsets-alist} can be any of
+the following:
+
+@table @asis
+@item An integer
+The integer specifies a relative offset. All relative
+offsets@footnote{The syntactic context @code{@w{((defun-block-intro
+2724) (comment-intro))}} would likely have two relative offsets.} will
+be added together and used to calculate the indentation relative to an
+anchor position earlier in the buffer. @xref{Indentation
+Calculation}, for details. Most of the time, it's probably better to
+use one of the special symbols like @code{+} than an integer (apart
+from zero).
+
+@item One of the symbols @code{+}, @code{-}, @code{++}, @code{--}, @code{*}, or @code{/}
+These special symbols describe a relative offset in multiples of
+@code{c-basic-offset}:
+
+By defining a style's indentation in terms of @code{c-basic-offset},
+you can change the amount of whitespace given to an indentation level
+while maintaining the same basic shape of your code. Here are the
+values that the special symbols correspond to:
+
+@table @code
+@item +
+@code{c-basic-offset} times 1
+@item -
+@code{c-basic-offset} times -1
+@item ++
+@code{c-basic-offset} times 2
+@item --
+@code{c-basic-offset} times -2
+@item *
+@code{c-basic-offset} times 0.5
+@item /
+@code{c-basic-offset} times -0.5
+@end table
+
+@item A vector
+The first element of the vector, an integer, sets the absolute
+indentation column. This will override any previously calculated
+indentation, but won't override relative indentation calculated from
+syntactic elements later on in the syntactic context of the line being
+indented. @xref{Indentation Calculation}. Any elements in the vector
+beyond the first will be ignored.
+
+@item A function or lambda expression
+The function will be called and its return value will in turn be
+evaluated as an offset specification. Functions are useful when more
+context than just the syntactic symbol is needed to get the desired
+indentation. @xref{Line-Up Functions}, and @ref{Custom Line-Up}, for
+details about them.
+
+@item A symbol with a variable binding
+If the symbol also has a function binding, the function takes
+precedence over the variable. Otherwise the value of the variable is
+used. It must be an integer (which is used as relative offset) or a
+vector (an absolute offset).
+
+@item A list
+The offset can also be a list containing several offset
+specifications; these are evaluated recursively and combined. A list
+is typically only useful when some of the offsets are line-up
+functions. A common strategy is calling a sequence of functions in
+turn until one of them recognizes that it is appropriate for the
+source line and returns a non-@code{nil} value.
+
+@code{nil} values are always ignored when the offsets are combined.
+The first element of the list specifies the method of combining the
+non-@code{nil} offsets from the remaining elements:
+
+@table @code
+@item first
+Use the first offset that doesn't evaluate to @code{nil}. Subsequent
+elements of the list don't get evaluated.
+@item min
+Use the minimum of all the offsets. All must be either relative or
+absolute - they can't be mixed.
+@item max
+Use the maximum of all the offsets. All must be either relative or
+absolute - they can't be mixed.
+@item add
+Add all the evaluated offsets together. Exactly one of them may be
+absolute, in which case the result is absolute. Any relative offsets
+that preceded the absolute one in the list will be ignored in that case.
+@end table
+
+As a compatibility measure, if the first element is none of the above
+then it too will be taken as an offset specification and the whole list
+will be combined according to the method @code{first}.
+@end table
+
+@vindex c-strict-syntax-p
+@vindex strict-syntax-p (c-)
+If an offset specification evaluates to @code{nil}, then a relative
+offset of 0 (zero) is used@footnote{There is however a variable
+@code{c-strict-syntax-p} that when set to non-@code{nil} will cause an
+error to be signaled in that case. It's now considered obsolete since
+it doesn't work well with some of the alignment functions that return
+@code{nil} instead of zero. You should therefore leave
+@code{c-strict-syntax-p} set to @code{nil}.}.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Interactive Customization, Line-Up Functions, c-offsets-alist, Customizing Indentation
+@comment node-name, next, previous, up
+@section Interactive Customization
+@cindex customization, interactive
+@cindex interactive customization
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+As an example of how to customize indentation, let's change the
+style of this example@footnote{In this and subsequent examples, the
+original code is formatted using the @samp{gnu} style unless otherwise
+indicated. @xref{Styles}.}:
+
+@example
+@group
+ 1: int add( int val, int incr, int doit )
+ 2: @{
+ 3: if( doit )
+ 4: @{
+ 5: return( val + incr );
+ 6: @}
+ 7: return( val );
+ 8: @}
+@end group
+@end example
+
+@noindent
+to:
+
+@example
+@group
+ 1: int add( int val, int incr, int doit )
+ 2: @{
+ 3: if( doit )
+ 4: @{
+ 5: return( val + incr );
+ 6: @}
+ 7: return( val );
+ 8: @}
+@end group
+@end example
+
+In other words, we want to change the indentation of braces that open a
+block following a condition so that the braces line up under the
+conditional, instead of being indented. Notice that the construct we
+want to change starts on line 4. To change the indentation of a line,
+we need to see which syntactic symbols affect the offset calculations
+for that line. Hitting @kbd{C-c C-s} on line 4 yields:
+
+@example
+((substatement-open 44))
+@end example
+
+@noindent
+so we know that to change the offset of the open brace, we need to
+change the indentation for the @code{substatement-open} syntactic
+symbol.
+
+To do this interactively, just hit @kbd{C-c C-o}. This prompts
+you for the syntactic symbol to change, providing a reasonable default.
+In this case, the default is @code{substatement-open}, which is just the
+syntactic symbol we want to change!
+
+After you hit return, @ccmode{} will then prompt you for the new
+offset value, with the old value as the default. The default in this
+case is @samp{+}, but we want no extra indentation so enter
+@samp{0} and @kbd{RET}. This will associate the offset 0 with the
+syntactic symbol @code{substatement-open}.
+
+To check your changes quickly, just hit @kbd{C-c C-q}
+(@code{c-indent-defun}) to reindent the entire function. The example
+should now look like:
+
+@example
+@group
+ 1: int add( int val, int incr, int doit )
+ 2: @{
+ 3: if( doit )
+ 4: @{
+ 5: return( val + incr );
+ 6: @}
+ 7: return( val );
+ 8: @}
+@end group
+@end example
+
+Notice how just changing the open brace offset on line 4 is all we
+needed to do. Since the other affected lines are indented relative to
+line 4, they are automatically indented the way you'd expect. For more
+complicated examples, this might not always work. The general approach
+to take is to always start adjusting offsets for lines higher up in the
+file, then reindent and see if any following lines need further
+adjustments.
+
+@c Move this bit to "Styles" (2005/10/7)
+@deffn Command c-set-offset symbol offset
+@findex set-offset (c-)
+@kindex C-c C-o
+This is the command bound to @kbd{C-c C-o}. It provides a convenient
+way to set offsets on @code{c-offsets-alist} both interactively (see
+the example above) and from your mode hook.
+
+It takes two arguments when used programmatically: @var{symbol} is the
+syntactic element symbol to change and @var{offset} is the new offset
+for that syntactic element.
+@end deffn
+@c End of MOVE THIS BIT.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Line-Up Functions, Custom Line-Up, Interactive Customization, Customizing Indentation
+@comment node-name, next, previous, up
+@section Line-Up Functions
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@cindex line-up function
+@cindex indentation function
+Often there are cases when a simple offset setting on a syntactic
+symbol isn't enough to get the desired indentation---for example, you
+might want to line up a closing parenthesis with the matching opening
+one rather than indenting relative to its ``anchor point''. @ccmode{}
+provides this flexibility with @dfn{line-up functions}.
+
+The way you associate a line-up function with a syntactic symbol is
+described in @ref{c-offsets-alist}. @ccmode{} comes with many
+predefined line-up functions for common situations. If none of these
+does what you want, you can write your own. @xref{Custom Line-Up}.
+Sometimes, it is easier to tweak the standard indentation by adding a
+function to @code{c-special-indent-hook} (@pxref{Other Indentation}).
+
+The line-up functions haven't been adapted for AWK buffers or tested
+with them. Some of them might work serendipitously. There shouldn't be
+any problems writing custom line-up functions for AWK mode.
+
+The calling convention for line-up functions is described fully in
+@ref{Custom Line-Up}. Roughly speaking, the return value is either an
+offset itself (such as @code{+} or @code{[0]}) or it's @code{nil},
+meaning ``this function is inappropriate in this case - try a
+different one''. @xref{c-offsets-alist}.
+
+The subsections below describe all the standard line-up functions,
+categorized by the sort of token the lining-up centers around. For
+each of these functions there is a ``works with'' list that indicates
+which syntactic symbols the function is intended to be used with.
+
+@macro workswith
+@emph{Works with:@ }
+@end macro
+@ifinfo
+@unmacro workswith
+@macro workswith
+Works with:
+@end macro
+@end ifinfo
+
+@macro sssTBasicOffset
+<--> @i{c-basic-offset}@c
+@end macro
+
+@macro sssTsssTBasicOffset
+<--><--> @i{c-basic-offset}@c
+@end macro
+
+@macro hereFn{func}
+<- @i{\func\}@c
+@end macro
+
+@c The TeX backend seems to insert extra spaces around the argument. :P
+@iftex
+@unmacro hereFn
+@macro hereFn{func}
+<-@i{\func\}@c
+@end macro
+@end iftex
+
+@menu
+* Brace/Paren Line-Up::
+* List Line-Up::
+* Operator Line-Up::
+* Comment Line-Up::
+* Misc Line-Up::
+@end menu
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Brace/Paren Line-Up, List Line-Up, Line-Up Functions, Line-Up Functions
+@comment node-name, next, previous, up
+@subsection Brace and Parenthesis Line-Up Functions
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+The line-up functions here calculate the indentation for braces,
+parentheses and statements within brace blocks.
+
+@defun c-lineup-close-paren
+@findex lineup-close-paren (c-)
+Line up the closing paren under its corresponding open paren if the
+open paren is followed by code. If the open paren ends its line, no
+indentation is added. E.g:
+
+@example
+@group
+main (int,
+ char **
+ ) @hereFn{c-lineup-close-paren}
+@end group
+@end example
+
+@noindent
+and
+
+@example
+@group
+main (
+ int, char **
+) @hereFn{c-lineup-close-paren}
+@end group
+@end example
+
+As a special case, if a brace block is opened at the same line as the
+open parenthesis of the argument list, the indentation is
+@code{c-basic-offset} instead of the open paren column. See
+@code{c-lineup-arglist} for further discussion of this ``DWIM'' measure.
+
+@workswith All @code{*-close} symbols.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@anchor{c-lineup-arglist-close-under-paren}
+@defun c-lineup-arglist-close-under-paren
+@findex lineup-arglist-close-under-paren (c-)
+Set your @code{arglist-close} syntactic symbol to this line-up function
+so that parentheses that close argument lists will line up under the
+parenthesis that opened the argument list. It can also be used with
+@code{arglist-cont} and @code{arglist-cont-nonempty} to line up all
+lines inside a parenthesis under the open paren.
+
+As a special case, if a brace block is opened at the same line as the
+open parenthesis of the argument list, the indentation is
+@code{c-basic-offset} only. See @code{c-lineup-arglist} for further
+discussion of this ``DWIM'' measure.
+
+@workswith Almost all symbols, but are typically most useful on
+@code{arglist-close}, @code{brace-list-close}, @code{arglist-cont} and
+@code{arglist-cont-nonempty}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-indent-one-line-block
+@findex indent-one-line-block (c-)
+Indent a one line block @code{c-basic-offset} extra. E.g:
+
+@example
+@group
+if (n > 0)
+ @{m+=n; n=0;@} @hereFn{c-indent-one-line-block}
+@sssTBasicOffset{}
+@end group
+@end example
+
+@noindent
+and
+
+@example
+@group
+if (n > 0)
+@{ @hereFn{c-indent-one-line-block}
+ m+=n; n=0;
+@}
+@end group
+@end example
+
+The block may be surrounded by any kind of parenthesis characters.
+@code{nil} is returned if the line doesn't start with a one line block,
+which makes the function usable in list expressions.
+
+@workswith Almost all syntactic symbols, but most useful on the
+@code{-open} symbols.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-indent-multi-line-block
+@findex indent-multi-line-block (c-)
+Indent a multiline block @code{c-basic-offset} extra. E.g:
+
+@example
+@group
+int *foo[] = @{
+ NULL,
+ @{17@}, @hereFn{c-indent-multi-line-block}
+@end group
+@end example
+
+@noindent
+and
+
+@example
+@group
+int *foo[] = @{
+ NULL,
+ @{ @hereFn{c-indent-multi-line-block}
+ 17
+ @},
+ @sssTBasicOffset{}
+@end group
+@end example
+
+The block may be surrounded by any kind of parenthesis characters.
+@code{nil} is returned if the line doesn't start with a multiline
+block, which makes the function usable in list expressions.
+
+@workswith Almost all syntactic symbols, but most useful on the
+@code{-open} symbols.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-runin-statements
+@findex lineup-runin-statements (c-)
+Line up statements for coding standards which place the first statement
+in a block on the same line as the block opening brace@footnote{Run-in
+style doesn't really work too well. You might need to write your own
+custom line-up functions to better support this style.}. E.g:
+
+@example
+@group
+int main()
+@{ puts ("Hello!");
+ return 0; @hereFn{c-lineup-runin-statements}
+@}
+@end group
+@end example
+
+If there is no statement after the opening brace to align with,
+@code{nil} is returned. This makes the function usable in list
+expressions.
+
+@workswith The @code{statement} syntactic symbol.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-inexpr-block
+@findex lineup-inexpr-block (c-)
+This can be used with the in-expression block symbols to indent the
+whole block to the column where the construct is started. E.g. for Java
+anonymous classes, this lines up the class under the @samp{new} keyword,
+and in Pike it lines up the lambda function body under the @samp{lambda}
+keyword. Returns @code{nil} if the block isn't part of such a
+construct.
+
+@workswith @code{inlambda}, @code{inexpr-statement},
+@code{inexpr-class}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-after-whitesmith-blocks
+@findex lineup-after-whitesmith-blocks (c-)
+Compensate for Whitesmith style indentation of blocks. Due to the way
+@ccmode{} calculates anchor positions for normal lines inside blocks,
+this function is necessary for those lines to get correct Whitesmith
+style indentation. Consider the following examples:
+
+@example
+@group
+int foo()
+ @{
+ a;
+ x; @hereFn{c-lineup-after-whitesmith-blocks}
+@end group
+@end example
+
+@example
+@group
+int foo()
+ @{
+ @{
+ a;
+ @}
+ x; @hereFn{c-lineup-after-whitesmith-blocks}
+@end group
+@end example
+
+The fact that the line with @code{x} is preceded by a Whitesmith style
+indented block in the latter case and not the first should not affect
+its indentation. But since CC Mode in cases like this uses the
+indentation of the preceding statement as anchor position, the @code{x}
+would in the second case be indented too much if the offset for
+@code{statement} was set simply to zero.
+
+This lineup function corrects for this situation by detecting if the
+anchor position is at an open paren character. In that case, it instead
+indents relative to the surrounding block just like
+@code{c-lineup-whitesmith-in-block}.
+
+@workswith @code{brace-list-entry}, @code{brace-entry-open},
+@code{statement}, @code{arglist-cont}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-whitesmith-in-block
+@findex lineup-whitesmith-in-block (c-)
+Line up lines inside a block in Whitesmith style. It's done in a way
+that works both when the opening brace hangs and when it doesn't. E.g:
+
+@example
+@group
+something
+ @{
+ foo; @hereFn{c-lineup-whitesmith-in-block}
+ @}
+@end group
+@end example
+
+@noindent
+and
+
+@example
+@group
+something @{
+ foo; @hereFn{c-lineup-whitesmith-in-block}
+ @}
+@sssTBasicOffset{}
+@end group
+@end example
+
+In the first case the indentation is kept unchanged, in the second
+@code{c-basic-offset} is added.
+
+@workswith @code{defun-close}, @code{defun-block-intro},
+@code{inline-close}, @code{block-close}, @code{brace-list-close},
+@code{brace-list-intro}, @code{statement-block-intro},
+@code{arglist-intro}, @code{arglist-cont-nonempty},
+@code{arglist-close}, and all @code{in*} symbols, e.g. @code{inclass}
+and @code{inextern-lang}.
+@end defun
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node List Line-Up, Operator Line-Up, Brace/Paren Line-Up, Line-Up Functions
+@comment node-name, next, previous, up
+@subsection List Line-Up Functions
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+The line-up functions here calculate the indentation for lines which
+form lists of items, usually separated by commas.
+
+The function @ref{c-lineup-arglist-close-under-paren}, which is mainly
+for indenting a close parenthesis, is also useful for the lines
+contained within parentheses.
+
+@defun c-lineup-arglist
+@findex lineup-arglist (c-)
+Line up the current argument line under the first argument.
+
+As a special case, if an argument on the same line as the open
+parenthesis starts with a brace block opener, the indentation is
+@code{c-basic-offset} only. This is intended as a ``DWIM'' measure in
+cases like macros that contain statement blocks, e.g:
+
+@example
+@group
+A_VERY_LONG_MACRO_NAME (@{
+ some (code, with + long, lines * in[it]);
+ @});
+@sssTBasicOffset{}
+@end group
+@end example
+
+This is motivated partly because it's more in line with how code
+blocks are handled, and partly since it approximates the behavior of
+earlier CC Mode versions, which due to inaccurate analysis tended to
+indent such cases this way.
+
+@workswith @code{arglist-cont-nonempty}, @code{arglist-close}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-arglist-intro-after-paren
+@findex lineup-arglist-intro-after-paren (c-)
+Line up a line to just after the open paren of the surrounding paren or
+brace block.
+
+@workswith @code{defun-block-intro}, @code{brace-list-intro},
+@code{statement-block-intro}, @code{statement-case-intro},
+@code{arglist-intro}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-multi-inher
+@findex lineup-multi-inher (c-)
+Line up the classes in C++ multiple inheritance clauses and member
+initializers under each other. E.g:
+
+@example
+@group
+Foo::Foo (int a, int b):
+ Cyphr (a),
+ Bar (b) @hereFn{c-lineup-multi-inher}
+@end group
+@end example
+
+@noindent
+and
+
+@example
+@group
+class Foo
+ : public Cyphr,
+ public Bar @hereFn{c-lineup-multi-inher}
+@end group
+@end example
+
+@noindent
+and
+
+@example
+@group
+Foo::Foo (int a, int b)
+ : Cyphr (a)
+ , Bar (b) @hereFn{c-lineup-multi-inher}
+@end group
+@end example
+
+@workswith @code{inher-cont}, @code{member-init-cont}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-java-inher
+@findex lineup-java-inher (c-)
+Line up Java implements and extends declarations. If class names
+follow on the same line as the @samp{implements}/@samp{extends}
+keyword, they are lined up under each other. Otherwise, they are
+indented by adding @code{c-basic-offset} to the column of the keyword.
+E.g:
+
+@example
+@group
+class Foo
+ extends
+ Bar @hereFn{c-lineup-java-inher}
+ @sssTBasicOffset{}
+@end group
+@end example
+
+@noindent
+and
+
+@example
+@group
+class Foo
+ extends Cyphr,
+ Bar @hereFn{c-lineup-java-inher}
+@end group
+@end example
+
+@workswith @code{inher-cont}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-java-throws
+@findex lineup-java-throws (c-)
+Line up Java throws declarations. If exception names follow on the
+same line as the throws keyword, they are lined up under each other.
+Otherwise, they are indented by adding @code{c-basic-offset} to the
+column of the @samp{throws} keyword. The @samp{throws} keyword itself
+is also indented by @code{c-basic-offset} from the function declaration
+start if it doesn't hang. E.g:
+
+@example
+@group
+int foo()
+ throws @hereFn{c-lineup-java-throws}
+ Bar @hereFn{c-lineup-java-throws}
+@sssTsssTBasicOffset{}
+@end group
+@end example
+
+@noindent
+and
+
+@example
+@group
+int foo() throws Cyphr,
+ Bar, @hereFn{c-lineup-java-throws}
+ Vlod @hereFn{c-lineup-java-throws}
+@end group
+@end example
+
+@workswith @code{func-decl-cont}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-template-args
+@findex lineup-template-args (c-)
+Line up the arguments of a template argument list under each other, but
+only in the case where the first argument is on the same line as the
+opening @samp{<}.
+
+To allow this function to be used in a list expression, @code{nil} is
+returned if there's no template argument on the first line.
+
+@workswith @code{template-args-cont}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-ObjC-method-call
+@findex lineup-ObjC-method-call (c-)
+For Objective-C code, line up selector args as Emacs Lisp mode does
+with function args: go to the position right after the message receiver,
+and if you are at the end of the line, indent the current line
+c-basic-offset columns from the opening bracket; otherwise you are
+looking at the first character of the first method call argument, so
+lineup the current line with it.
+
+@workswith @code{objc-method-call-cont}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-ObjC-method-args
+@findex lineup-ObjC-method-args (c-)
+For Objective-C code, line up the colons that separate args. The colon
+on the current line is aligned with the one on the first line.
+
+@workswith @code{objc-method-args-cont}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-ObjC-method-args-2
+@findex lineup-ObjC-method-args-2 (c-)
+Similar to @code{c-lineup-ObjC-method-args} but lines up the colon on
+the current line with the colon on the previous line.
+
+@workswith @code{objc-method-args-cont}.
+@end defun
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Operator Line-Up, Comment Line-Up, List Line-Up, Line-Up Functions
+@comment node-name, next, previous, up
+@subsection Operator Line-Up Functions
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+The line-up functions here calculate the indentation for lines which
+start with an operator, by lining it up with something on the previous
+line.
+
+@defun c-lineup-argcont
+@findex lineup-argcont (c-)
+Line up a continued argument. E.g:
+
+@example
+@group
+foo (xyz, aaa + bbb + ccc
+ + ddd + eee + fff); @hereFn{c-lineup-argcont}
+@end group
+@end example
+
+Only continuation lines like this are touched, @code{nil} is returned on
+lines which are the start of an argument.
+
+Within a gcc @code{asm} block, @code{:} is recognised as an argument
+separator, but of course only between operand specifications, not in the
+expressions for the operands.
+
+@workswith @code{arglist-cont}, @code{arglist-cont-nonempty}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-arglist-operators
+@findex lineup-arglist-operators (c-)
+Line up lines starting with an infix operator under the open paren.
+Return @code{nil} on lines that don't start with an operator, to leave
+those cases to other line-up functions. Example:
+
+@example
+@group
+if ( x < 10
+ || at_limit (x, @hereFn{c-lineup-arglist-operators}
+ list) @hereFn{c-lineup-arglist-operators@r{ returns nil}}
+ )
+@end group
+@end example
+
+Since this function doesn't do anything for lines without an infix
+operator you typically want to use it together with some other lineup
+settings, e.g. as follows (the @code{arglist-close} setting is just a
+suggestion to get a consistent style):
+
+@example
+(c-set-offset 'arglist-cont
+ '(c-lineup-arglist-operators 0))
+(c-set-offset 'arglist-cont-nonempty
+ '(c-lineup-arglist-operators c-lineup-arglist))
+(c-set-offset 'arglist-close
+ '(c-lineup-arglist-close-under-paren))
+@end example
+
+@workswith @code{arglist-cont}, @code{arglist-cont-nonempty}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-assignments
+@findex lineup-assignments (c-)
+Line up the current line after the assignment operator on the first line
+in the statement. If there isn't any, return nil to allow stacking with
+other line-up functions. If the current line contains an assignment
+operator too, try to align it with the first one.
+
+@workswith @code{topmost-intro-cont}, @code{statement-cont},
+@code{arglist-cont}, @code{arglist-cont-nonempty}.
+
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-math
+@findex lineup-math (c-)
+Like @code{c-lineup-assignments} but indent with @code{c-basic-offset}
+if no assignment operator was found on the first line. I.e. this
+function is the same as specifying a list @code{(c-lineup-assignments
++)}. It's provided for compatibility with old configurations.
+
+@workswith @code{topmost-intro-cont}, @code{statement-cont},
+@code{arglist-cont}, @code{arglist-cont-nonempty}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-cascaded-calls
+@findex lineup-cascaded-calls (c-)
+Line up ``cascaded calls'' under each other. If the line begins with
+@code{->} or @code{.} and the preceding line ends with one or more
+function calls preceded by the same token, then the arrow is lined up
+with the first of those tokens. E.g:
+
+@example
+@group
+r = proc->add(17)->add(18)
+ ->add(19) + @hereFn{c-lineup-cascaded-calls}
+ offset; @hereFn{c-lineup-cascaded-calls@r{ (inactive)}}
+@end group
+@end example
+
+In any other situation @code{nil} is returned to allow use in list
+expressions.
+
+@workswith @code{topmost-intro-cont}, @code{statement-cont},
+@code{arglist-cont}, @code{arglist-cont-nonempty}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-streamop
+@findex lineup-streamop (c-)
+Line up C++ stream operators (i.e. @samp{<<} and @samp{>>}).
+
+@workswith @code{stream-op}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-string-cont
+@findex lineup-string-cont (c-)
+Line up a continued string under the one it continues. A continued
+string in this sense is where a string literal follows directly after
+another one. E.g:
+
+@example
+@group
+result = prefix + "A message "
+ "string."; @hereFn{c-lineup-string-cont}
+@end group
+@end example
+
+@code{nil} is returned in other situations, to allow stacking with other
+lineup functions.
+
+@workswith @code{topmost-intro-cont}, @code{statement-cont},
+@code{arglist-cont}, @code{arglist-cont-nonempty}.
+@end defun
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Comment Line-Up, Misc Line-Up, Operator Line-Up, Line-Up Functions
+@comment node-name, next, previous, up
+@subsection Comment Line-Up Functions
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+The lineup functions here calculate the indentation for several types
+of comment structure.
+
+@defun c-lineup-C-comments
+@findex lineup-C-comments (c-)
+Line up C block comment continuation lines. Various heuristics are used
+to handle most of the common comment styles. Some examples:
+
+@example
+@group
+/* /** /*
+ * text * text text
+ */ */ */
+@end group
+@end example
+
+@example
+@group
+/* text /* /**
+ text ** text ** text
+*/ */ */
+@end group
+@end example
+
+@example
+@group
+/**************************************************
+ * text
+ *************************************************/
+@end group
+@end example
+
+@vindex comment-start-skip
+@example
+@group
+/**************************************************
+ Free form text comments:
+ In comments with a long delimiter line at the
+ start, the indentation is kept unchanged for lines
+ that start with an empty comment line prefix. The
+ delimiter line is whatever matches the
+ @code{comment-start-skip} regexp.
+**************************************************/
+@end group
+@end example
+
+The style variable @code{c-comment-prefix-regexp} is used to recognize
+the comment line prefix, e.g. the @samp{*} that usually starts every
+line inside a comment.
+
+@workswith The @code{c} syntactic symbol.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-comment
+@findex lineup-comment (c-)
+Line up a comment-only line according to the style variable
+@code{c-comment-only-line-offset}. If the comment is lined up with a
+comment starter on the previous line, that alignment is preserved.
+
+@defopt c-comment-only-line-offset
+@vindex comment-only-line-offset (c-)
+This style variable specifies the extra offset for the line. It can
+contain an integer or a cons cell of the form
+
+@example
+(@r{@var{non-anchored-offset}} . @r{@var{anchored-offset}})
+@end example
+
+@noindent
+where @var{non-anchored-offset} is the amount of offset given to
+non-column-zero anchored lines, and @var{anchored-offset} is the amount
+of offset to give column-zero anchored lines. Just an integer as value
+is equivalent to @code{(@r{@var{value}} . -1000)}.
+@end defopt
+
+@workswith @code{comment-intro}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-knr-region-comment
+@findex lineup-knr-region-comment (c-)
+Line up a comment in the ``K&R region'' with the declaration. That is
+the region between the function or class header and the beginning of the
+block. E.g:
+
+@example
+@group
+int main()
+/* Called at startup. */ @hereFn{c-lineup-knr-region-comment}
+@{
+ return 0;
+@}
+@end group
+@end example
+
+Return @code{nil} if called in any other situation, to be useful in list
+expressions.
+
+@workswith @code{comment-intro}.
+@end defun
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Misc Line-Up, , Comment Line-Up, Line-Up Functions
+@comment node-name, next, previous, up
+@subsection Miscellaneous Line-Up Functions
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+The line-up functions here are the odds and ends which didn't fit into
+any earlier category.
+
+@defun c-lineup-dont-change
+@findex lineup-dont-change (c-)
+This lineup function makes the line stay at whatever indentation it
+already has; think of it as an identity function for lineups.
+
+@workswith Any syntactic symbol.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-cpp-define
+@findex lineup-cpp-define (c-)
+Line up macro continuation lines according to the indentation of the
+construct preceding the macro. E.g:
+
+@example
+@group
+const char msg[] = @hereFn{@r{The beginning of the preceding construct.}}
+ \"Some text.\";
+
+#define X(A, B) \
+do @{ \ @hereFn{c-lineup-cpp-define}
+ printf (A, B); \
+@} while (0)
+@end group
+@end example
+
+@noindent
+and:
+
+@example
+@group
+int dribble() @{
+ if (!running) @hereFn{@r{The beginning of the preceding construct.}}
+ error(\"Not running!\");
+
+#define X(A, B) \
+ do @{ \ @hereFn{c-lineup-cpp-define}
+ printf (A, B); \
+ @} while (0)
+@end group
+@end example
+
+If @code{c-syntactic-indentation-in-macros} is non-@code{nil}, the
+function returns the relative indentation to the macro start line to
+allow accumulation with other offsets. E.g. in the following cases,
+@code{cpp-define-intro} is combined with the
+@code{statement-block-intro} that comes from the @samp{do @{} that hangs
+on the @samp{#define} line:
+
+@example
+@group
+const char msg[] =
+ \"Some text.\";
+
+#define X(A, B) do @{ \
+ printf (A, B); \ @hereFn{c-lineup-cpp-define}
+ this->refs++; \
+@} while (0) @hereFn{c-lineup-cpp-define}
+@end group
+@end example
+
+@noindent
+and:
+
+@example
+@group
+int dribble() @{
+ if (!running)
+ error(\"Not running!\");
+
+#define X(A, B) do @{ \
+ printf (A, B); \ @hereFn{c-lineup-cpp-define}
+ this->refs++; \
+ @} while (0) @hereFn{c-lineup-cpp-define}
+@end group
+@end example
+
+The relative indentation returned by @code{c-lineup-cpp-define} is zero
+and two, respectively, on the two lines in each of these examples. They
+are then added to the two column indentation that
+@code{statement-block-intro} gives in both cases here.
+
+If the relative indentation is zero, then @code{nil} is returned
+instead. That is useful in a list expression to specify the default
+indentation on the top level.
+
+If @code{c-syntactic-indentation-in-macros} is @code{nil} then this
+function keeps the current indentation, except for empty lines (ignoring
+the ending backslash) where it takes the indentation from the closest
+preceding nonempty line in the macro. If there's no such line in the
+macro then the indentation is taken from the construct preceding it, as
+described above.
+
+@workswith @code{cpp-define-intro}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-gcc-asm-reg
+@findex lineup-gcc-asm-reg (c-)
+Line up a gcc asm register under one on a previous line.
+
+@example
+@group
+ asm ("foo %1, %0\n"
+ "bar %0, %1"
+ : "=r" (w),
+ "=r" (x)
+ : "0" (y),
+ "1" (z));
+@end group
+@end example
+
+The @samp{x} line is aligned to the text after the @samp{:} on the
+@samp{w} line, and similarly @samp{z} under @samp{y}.
+
+This is done only in an @samp{asm} or @samp{__asm__} block, and only to
+those lines mentioned. Anywhere else @code{nil} is returned. The usual
+arrangement is to have this routine as an extra feature at the start of
+arglist lineups, e.g.
+
+@example
+(c-lineup-gcc-asm-reg c-lineup-arglist)
+@end example
+
+@workswith @code{arglist-cont}, @code{arglist-cont-nonempty}.
+@end defun
+
+@comment ------------------------------------------------------------
+
+@defun c-lineup-topmost-intro-cont
+@findex lineup-topmost-intro-cont (c-)
+Line up declaration continuation lines zero or one indentation
+step@footnote{This function is mainly provided to mimic the behavior of
+CC Mode 5.28 and earlier where this case wasn't handled consistently so
+that those lines could be analyzed as either topmost-intro-cont or
+statement-cont. It's used for @code{topmost-intro-cont} by default, but
+you might consider using @code{+} instead.}. For lines preceding a
+definition, zero is used. For other lines, @code{c-basic-offset} is
+added to the indentation. E.g:
+
+@example
+@group
+int
+neg (int i) @hereFn{c-lineup-topmost-intro-cont}
+@{
+ return -i;
+@}
+@end group
+@end example
+
+@noindent
+and
+
+@example
+@group
+struct
+larch @hereFn{c-lineup-topmost-intro-cont}
+@{
+ double height;
+@}
+ the_larch, @hereFn{c-lineup-topmost-intro-cont}
+ another_larch; @hereFn{c-lineup-topmost-intro-cont}
+@sssTBasicOffset{}
+@end group
+@end example
+
+@noindent
+and
+
+@example
+@group
+struct larch
+the_larch, @hereFn{c-lineup-topmost-intro-cont}
+ another_larch; @hereFn{c-lineup-topmost-intro-cont}
+@end group
+@end example
+
+@workswith @code{topmost-intro-cont}.
+@end defun
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Custom Line-Up, Other Indentation, Line-Up Functions, Customizing Indentation
+@comment node-name, next, previous, up
+@section Custom Line-Up Functions
+@cindex customization, indentation functions
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+The most flexible way to customize indentation is by writing custom
+line-up functions, and associating them with specific syntactic
+symbols (@pxref{c-offsets-alist}). Depending on the effect you want,
+it might be better to write a @code{c-special-indent-hook} function
+rather than a line-up function (@pxref{Other Indentation}).
+
+@ccmode{} comes with an extensive set of predefined line-up functions,
+not all of which are used by the default styles. So there's a good
+chance the function you want already exists. @xref{Line-Up
+Functions}, for a list of them. If you write your own line-up
+function, it's probably a good idea to start working from one of these
+predefined functions, which can be found in the file
+@file{cc-align.el}. If you have written a line-up function that you
+think is generally useful, you're very welcome to contribute it;
+please contact @email{bug-cc-mode@@gnu.org}.
+
+ Line-up functions are passed a single argument, the syntactic
+element (see below). The return value is a @code{c-offsets-alist}
+offset specification: for example, an integer, a symbol such as
+@code{+}, a vector, @code{nil}@footnote{Returning @code{nil} is useful
+when the offset specification for a syntactic element is a list
+containing the line-up function (@pxref{c-offsets-alist}).}, or even
+another line-up function. Full details of these are in
+@ref{c-offsets-alist}.
+
+Line-up functions must not move point or change the content of the
+buffer (except temporarily). They are however allowed to do
+@dfn{hidden buffer changes}, i.e. setting text properties for caching
+purposes etc. Buffer undo recording is disabled while they run.
+
+The syntactic element passed as the parameter to a line-up function is
+a cons cell of the form
+
+@example
+(@r{@var{syntactic-symbol}} . @r{@var{anchor-position}})
+@end example
+
+@noindent
+@c FIXME!!! The following sentence might be better omitted, since the
+@c information is in the cross reference "Syntactic Analysis". 2005/10/2.
+where @var{syntactic-symbol} is the symbol that the function was
+called for, and @var{anchor-position} is the anchor position (if any)
+for the construct that triggered the syntactic symbol
+(@pxref{Syntactic Analysis}). This cons cell is how the syntactic
+element of a line used to be represented in @ccmode{} 5.28 and
+earlier. Line-up functions are still passed this cons cell, so as to
+preserve compatibility with older configurations. In the future, we
+may decide to convert to using the full list format---you can prepare
+your setup for this by using the access functions
+(@code{c-langelem-sym}, etc.) described below.
+
+@vindex c-syntactic-element
+@vindex syntactic-element (c-)
+@vindex c-syntactic-context
+@vindex syntactic-context (c-)
+Some syntactic symbols, e.g. @code{arglist-cont-nonempty}, have more
+info in the syntactic element - typically other positions that can be
+interesting besides the anchor position. That info can't be accessed
+through the passed argument, which is a cons cell. Instead, you can
+get this information from the variable @code{c-syntactic-element},
+which is dynamically bound to the complete syntactic element. The
+variable @code{c-syntactic-context} might also be useful - it gets
+dynamically bound to the complete syntactic context. @xref{Custom
+Braces}.
+
+@ccmode{} provides a few functions to access parts of syntactic
+elements in a more abstract way. Besides making the code easier to
+read, they also hide the difference between the old cons cell form
+used in the line-up function argument and the new list form used in
+@code{c-syntactic-element} and everywhere else. The functions are:
+
+@defun c-langelem-sym langelem
+@findex langelem-sym (c-)
+Return the syntactic symbol in @var{langelem}.
+@end defun
+
+@defun c-langelem-pos langelem
+@findex langelem-pos (c-)
+Return the anchor position in @var{langelem}, or nil if there is none.
+@end defun
+
+@defun c-langelem-col langelem &optional preserve-point
+@findex langelem-col (c-)
+Return the column of the anchor position in @var{langelem}. Also move
+the point to that position unless @var{preserve-point} is
+non-@code{nil}.
+@end defun
+
+@defun c-langelem-2nd-pos langelem
+@findex langelem-2nd-pos (c-)
+Return the secondary position in @var{langelem}, or @code{nil} if there
+is none.
+
+Note that the return value of this function is always @code{nil} if
+@var{langelem} is in the old cons cell form. Thus this function is
+only meaningful when used on syntactic elements taken from
+@code{c-syntactic-element} or @code{c-syntactic-context}.
+@end defun
+
+Custom line-up functions can be as simple or as complex as you like, and
+any syntactic symbol that appears in @code{c-offsets-alist} can have a
+custom line-up function associated with it.
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Other Indentation, , Custom Line-Up, Customizing Indentation
+@comment node-name, next, previous, up
+@section Other Special Indentations
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Here are the remaining odds and ends regarding indentation:
+
+@defopt c-label-minimum-indentation
+@vindex label-minimum-indentation (c-)
+In @samp{gnu} style (@pxref{Built-in Styles}), a minimum indentation is
+imposed on lines inside code blocks. This minimum indentation is
+controlled by this style variable. The default value is 1.
+
+@findex c-gnu-impose-minimum
+@findex gnu-impose-minimum (c-)
+It's the function @code{c-gnu-impose-minimum} that enforces this minimum
+indentation. It must be present on @code{c-special-indent-hook} to
+work.
+@end defopt
+
+@defopt c-special-indent-hook
+@vindex special-indent-hook (c-)
+This style variable is a standard hook variable that is called after
+every line is indented by @ccmode{}. It is called only if
+@code{c-syntactic-indentation} is non-@code{nil} (which it is by
+default (@pxref{Indentation Engine Basics})). You can put a function
+on this hook to do any special indentation or ad hoc line adjustments
+your style dictates, such as adding extra indentation to constructors
+or destructor declarations in a class definition, etc. Sometimes it
+is better to write a custom Line-up Function instead (@pxref{Custom
+Line-Up}).
+
+When the indentation engine calls this hook, the variable
+@code{c-syntactic-context} is bound to the current syntactic context
+(i.e. what you would get by typing @kbd{C-c C-s} on the source line.
+@xref{Custom Braces}.). Note that you should not change point or mark
+inside a @code{c-special-indent-hook} function, i.e. you'll probably
+want to wrap your function in a @code{save-excursion}@footnote{The
+numerical value returned by @code{point} will change if you change the
+indentation of the line within a @code{save-excursion} form, but point
+itself will still be over the same piece of text.}.
+
+Setting @code{c-special-indent-hook} in style definitions is handled
+slightly differently from other variables---A style can only add
+functions to this hook, not remove them. @xref{Style Variables}.
+@end defopt
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Custom Macros, Odds and Ends, Customizing Indentation, Top
+@comment node-name, next, previous, up
+@chapter Customizing Macros
+@cindex macros
+@cindex preprocessor directives
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Normally, the lines in a multi-line macro are indented relative to
+each other as though they were code. You can suppress this behavior
+by setting the following user option:
+
+@defopt c-syntactic-indentation-in-macros
+@vindex syntactic-indentation-in-macros (c-)
+Enable syntactic analysis inside macros, which is the default. If this
+is @code{nil}, all lines inside macro definitions are analyzed as
+@code{cpp-macro-cont}.
+@end defopt
+
+@ccmode{} provides some tools to help keep the line continuation
+backslashes in macros neat and tidy. Their precise action is
+customized with these variables:
+
+@defopt c-backslash-column
+@vindex backslash-column (c-)
+@defoptx c-backslash-max-column
+@vindex backslash-max-column (c-)
+These variables control the alignment columns for line continuation
+backslashes in multiline macros. They are used by the functions that
+automatically insert or align such backslashes,
+e.g. @code{c-backslash-region} and @code{c-context-line-break}.
+
+@code{c-backslash-column} specifies the minimum column for the
+backslashes. If any line in the macro goes past this column, then the
+next tab stop (i.e. next multiple of @code{tab-width}) in that line is
+used as the alignment column for all the backslashes, so that they
+remain in a single column. However, if any lines go past
+@code{c-backslash-max-column} then the backslashes in the rest of the
+macro will be kept at that column, so that the lines which are too
+long ``stick out'' instead.
+
+Don't ever set these variables to @code{nil}. If you want to disable
+the automatic alignment of backslashes, use
+@code{c-auto-align-backslashes}.
+@end defopt
+
+@defopt c-auto-align-backslashes
+@vindex auto-align-backslashes (c-)
+Align automatically inserted line continuation backslashes if
+non-@code{nil}. When line continuation backslashes are inserted
+automatically for line breaks in multiline macros, e.g. by
+@code{c-context-line-break}, they are aligned with the other
+backslashes in the same macro if this flag is set.
+
+If @code{c-auto-align-backslashes} is @code{nil}, automatically
+inserted backslashes are preceded by a single space, and backslashes
+get aligned only when you explicitly invoke the command
+@code{c-backslash-region} (@kbd{C-c C-\}).
+@end defopt
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Odds and Ends, Sample .emacs File, Custom Macros, Top
+@comment node-name, next, previous, up
+@chapter Odds and Ends
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+The stuff that didn't fit in anywhere else is documented here.
+
+@defopt c-require-final-newline
+@vindex require-final-newline (c-)
+Controls whether a final newline is enforced when the file is saved.
+The value is an association list that for each language mode specifies
+the value to give to @code{require-final-newline} (@pxref{Saving
+Buffers,,, @lispref{}, @lispreftitle{}}) at mode initialization. If a
+language isn't present on the association list, CC Mode won't touch
+@code{require-final-newline} in buffers for that language.
+
+The default is to set @code{require-final-newline} to @code{t} in the
+languages that mandate that source files should end with newlines.
+These are C, C++ and Objective-C.
+@end defopt
+
+@defopt c-echo-syntactic-information-p
+@vindex echo-syntactic-information-p (c-)
+If non-@code{nil}, the syntactic analysis for the current line is shown
+in the echo area when it's indented (unless
+@code{c-syntactic-indentation} is @code{nil}). That's useful when
+finding out which syntactic symbols to modify to get the indentation you
+want.
+@end defopt
+
+@defopt c-report-syntactic-errors
+@vindex report-syntactic-errors (c-)
+If non-@code{nil}, certain syntactic errors are reported with a ding and
+a message, for example when an @code{else} is indented for which there
+is no corresponding @code{if}.
+
+Note however that @ccmode{} doesn't make any special effort to check for
+syntactic errors; that's the job of the compiler. The reason it can
+report cases like the one above is that it can't find the correct
+anchoring position to indent the line in that case.
+@end defopt
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Sample .emacs File, Performance Issues, Odds and Ends, Top
+@comment node-name, next, previous, up
+@appendix Sample .emacs File
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Here's a sample .emacs file fragment that might help you along the way.
+Just copy this region and paste it into your .emacs file. You might want
+to change some of the actual values.
+
+@verbatim
+;; Make a non-standard key binding. We can put this in
+;; c-mode-base-map because c-mode-map, c++-mode-map, and so on,
+;; inherit from it.
+(defun my-c-initialization-hook ()
+ (define-key c-mode-base-map "\C-m" 'c-context-line-break))
+(add-hook 'c-initialization-hook 'my-c-initialization-hook)
+
+;; offset customizations not in my-c-style
+;; This will take precedence over any setting of the syntactic symbol
+;; made by a style.
+(setq c-offsets-alist '((member-init-intro . ++)))
+
+;; Create my personal style.
+(defconst my-c-style
+ '((c-tab-always-indent . t)
+ (c-comment-only-line-offset . 4)
+ (c-hanging-braces-alist . ((substatement-open after)
+ (brace-list-open)))
+ (c-hanging-colons-alist . ((member-init-intro before)
+ (inher-intro)
+ (case-label after)
+ (label after)
+ (access-label after)))
+ (c-cleanup-list . (scope-operator
+ empty-defun-braces
+ defun-close-semi))
+ (c-offsets-alist . ((arglist-close . c-lineup-arglist)
+ (substatement-open . 0)
+ (case-label . 4)
+ (block-open . 0)
+ (knr-argdecl-intro . -)))
+ (c-echo-syntactic-information-p . t))
+ "My C Programming Style")
+(c-add-style "PERSONAL" my-c-style)
+
+;; Customizations for all modes in CC Mode.
+(defun my-c-mode-common-hook ()
+ ;; set my personal style for the current buffer
+ (c-set-style "PERSONAL")
+ ;; other customizations
+ (setq tab-width 8
+ ;; this will make sure spaces are used instead of tabs
+ indent-tabs-mode nil)
+ ;; we like auto-newline, but not hungry-delete
+ (c-toggle-auto-newline 1))
+(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
+@end verbatim
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Performance Issues, Limitations and Known Bugs, Sample .emacs File, Top
+@comment node-name, next, previous, up
+@chapter Performance Issues
+@cindex performance
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@comment FIXME: (ACM, 2003/5/24). Check whether AWK needs mentioning here.
+
+C and its derivative languages are highly complex creatures. Often,
+ambiguous code situations arise that require @ccmode{} to scan large
+portions of the buffer to determine syntactic context. Such
+pathological code can cause @ccmode{} to perform fairly badly. This
+section gives some insight in how @ccmode{} operates, how that interacts
+with some coding styles, and what you can use to improve performance.
+
+The overall goal is that @ccmode{} shouldn't be overly slow (i.e. take
+more than a fraction of a second) in any interactive operation.
+I.e. it's tuned to limit the maximum response time in single operations,
+which is sometimes at the expense of batch-like operations like
+reindenting whole blocks. If you find that @ccmode{} gradually gets
+slower and slower in certain situations, perhaps as the file grows in
+size or as the macro or comment you're editing gets bigger, then chances
+are that something isn't working right. You should consider reporting
+it, unless it's something that's mentioned in this section.
+
+Because @ccmode{} has to scan the buffer backwards from the current
+insertion point, and because C's syntax is fairly difficult to parse in
+the backwards direction, @ccmode{} often tries to find the nearest
+position higher up in the buffer from which to begin a forward scan
+(it's typically an opening or closing parenthesis of some kind). The
+farther this position is from the current insertion point, the slower it
+gets.
+
+@findex beginning-of-defun
+In earlier versions of @ccmode{}, we used to recommend putting the
+opening brace of a top-level construct@footnote{E.g. a function in C,
+or outermost class definition in C++ or Java.} into the leftmost
+column. Earlier still, this used to be a rigid Emacs constraint, as
+embodied in the @code{beginning-of-defun} function. @ccmode now
+caches syntactic information much better, so that the delay caused by
+searching for such a brace when it's not in column 0 is minimal,
+except perhaps when you've just moved a long way inside the file.
+
+@findex defun-prompt-regexp
+@vindex c-Java-defun-prompt-regexp
+@vindex Java-defun-prompt-regexp (c-)
+A special note about @code{defun-prompt-regexp} in Java mode: The common
+style is to hang the opening braces of functions and classes on the
+right side of the line, and that doesn't work well with the Emacs
+approach. @ccmode{} comes with a constant
+@code{c-Java-defun-prompt-regexp} which tries to define a regular
+expression usable for this style, but there are problems with it. In
+some cases it can cause @code{beginning-of-defun} to hang@footnote{This
+has been observed in Emacs 19.34 and XEmacs 19.15.}. For this reason,
+it is not used by default, but if you feel adventurous, you can set
+@code{defun-prompt-regexp} to it in your mode hook. In any event,
+setting and relying on @code{defun-prompt-regexp} will definitely slow
+things down because (X)Emacs will be doing regular expression searches a
+lot, so you'll probably be taking a hit either way!
+
+@ccmode{} maintains a cache of the opening parentheses of the blocks
+surrounding the point, and it adapts that cache as the point is moved
+around. That means that in bad cases it can take noticeable time to
+indent a line in a new surrounding, but after that it gets fast as long
+as the point isn't moved far off. The farther the point is moved, the
+less useful is the cache. Since editing typically is done in ``chunks''
+rather than on single lines far apart from each other, the cache
+typically gives good performance even when the code doesn't fit the
+Emacs approach to finding the defun starts.
+
+@vindex c-enable-xemacs-performance-kludge-p
+@vindex enable-xemacs-performance-kludge-p (c-)
+XEmacs users can set the variable
+@code{c-enable-xemacs-performance-kludge-p} to non-@code{nil}. This
+tells @ccmode{} to use XEmacs-specific built-in functions which, in some
+circumstances, can locate the top-most opening brace much more quickly than
+@code{beginning-of-defun}. Preliminary testing has shown that for
+styles where these braces are hung (e.g. most JDK-derived Java styles),
+this hack can improve performance of the core syntax parsing routines
+from 3 to 60 times. However, for styles which @emph{do} conform to
+Emacs' recommended style of putting top-level braces in column zero,
+this hack can degrade performance by about as much. Thus this variable
+is set to @code{nil} by default, since the Emacs-friendly styles should
+be more common (and encouraged!). Note that this variable has no effect
+in Emacs since the necessary built-in functions don't exist (in Emacs
+22.1 as of this writing in February 2007).
+
+Text properties are used to speed up skipping over syntactic whitespace,
+i.e. comments and preprocessor directives. Indenting a line after a
+huge macro definition can be slow the first time, but after that the
+text properties are in place and it should be fast (even after you've
+edited other parts of the file and then moved back).
+
+Font locking can be a CPU hog, especially the font locking done on
+decoration level 3 which tries to be very accurate. Note that that
+level is designed to be used with a font lock support mode that only
+fontifies the text that's actually shown, i.e. Lazy Lock or Just-in-time
+Lock mode, so make sure you use one of them. Fontification of a whole
+buffer with some thousand lines can often take over a minute. That is
+a known weakness; the idea is that it never should happen.
+
+The most effective way to speed up font locking is to reduce the
+decoration level to 2 by setting @code{font-lock-maximum-decoration}
+appropriately. That level is designed to be as pretty as possible
+without sacrificing performance. @xref{Font Locking Preliminaries}, for
+more info.
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Limitations and Known Bugs, FAQ, Performance Issues, Top
+@comment node-name, next, previous, up
+@chapter Limitations and Known Bugs
+@cindex limitations
+@cindex bugs
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@itemize @bullet
+@item
+@ccmode{} doesn't support trigraphs. (These are character sequences
+such as @samp{??(}, which represents @samp{[}. They date from a time
+when some character sets didn't have all the characters that C needs,
+and are now utterly obsolete.)
+
+@item
+There is no way to apply auto newline settings (@pxref{Auto-newlines})
+on already typed lines. That's only a feature to ease interactive
+editing.
+
+To generalize this issue a bit: @ccmode{} is not intended to be used as
+a reformatter for old code in some more or less batch-like way. With
+the exception of some functions like @code{c-indent-region}, it's only
+geared to be used interactively to edit new code. There's currently no
+intention to change this goal.
+
+If you want to reformat old code, you're probably better off using some
+other tool instead, e.g. @ref{Top, , GNU indent, indent, The `indent'
+Manual}, which has more powerful reformatting capabilities than
+@ccmode{}.
+
+@item
+The support for C++ templates (in angle brackets) is not yet complete.
+When a non-nested template is used in a declaration, @ccmode{} indents
+it and font-locks it OK. Templates used in expressions, and nested
+templates do not fare so well. Sometimes a workaround is to refontify
+the expression after typing the closing @samp{>}.
+
+@item
+On loading @ccmode{}, sometimes this error message appears:
+
+@example
+File mode specification error: (void-variable c-font-lock-keywords-3)
+@end example
+
+This is due to a bug in the function @code{eval-after-load} in some
+versions of (X)Emacs. It can manifest itself when there is a symbolic
+link in the path of the directory which contains (X)Emacs. As a
+workaround, put the following into your @file{.emacs} file, fairly
+early on:
+
+@example
+(defun my-load-cc-fonts ()
+ (require "cc-fonts"))
+(add-hook 'c-initialization-hook 'my-load-cc-fonts)
+@end example
+@end itemize
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node FAQ, Updating CC Mode, Limitations and Known Bugs, Top
+@comment node-name, next, previous, up
+@appendix Frequently Asked Questions
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@itemize @bullet
+@item
+@emph{How can I change the indent level from 4 spaces to 2 spaces?}
+
+Set the variable @code{c-basic-offset}. @xref{Getting Started}.
+
+@item
+@kindex RET
+@kindex C-j
+@emph{Why doesn't the @kbd{RET} key indent the new line?}
+
+Emacs' convention is that @kbd{RET} just adds a newline, and that
+@kbd{C-j} adds a newline and indents it. You can make @kbd{RET} do this
+too by adding this to your @code{c-initialization-hook}:
+
+@example
+(define-key c-mode-base-map "\C-m" 'c-context-line-break)
+@end example
+
+@xref{Getting Started}. This is a very common question. If you want
+this to be the default behavior, don't lobby us, lobby RMS! @t{:-)}
+
+@item
+@emph{How do I stop my code jumping all over the place when I type?}
+
+Deactivate ``electric minor mode'' with @kbd{C-c C-l}. @xref{Getting
+Started}.
+
+@item
+@kindex C-x h
+@kindex C-M-\
+@emph{How do I reindent the whole file?}
+
+Visit the file and hit @kbd{C-x h} to mark the whole buffer. Then hit
+@kbd{C-M-\}. @xref{Indentation Commands}.
+
+@item
+@kindex C-M-q
+@kindex C-M-u
+@emph{How do I reindent the current block?}
+
+First move to the brace which opens the block with @kbd{C-M-u}, then
+reindent that expression with @kbd{C-M-q}. @xref{Indentation
+Commands}.
+
+@item
+@emph{I put @code{(c-set-offset 'substatement-open 0)} in my
+@file{.emacs} file but I get an error saying that @code{c-set-offset}'s
+function definition is void. What's wrong?}
+
+This means that @ccmode{} hasn't yet been loaded into your Emacs
+session by the time the @code{c-set-offset} call is reached, most
+likely because @ccmode{} is being autoloaded. Instead of putting the
+@code{c-set-offset} line in your top-level @file{.emacs} file, put it
+in your @code{c-initialization-hook} (@pxref{CC Hooks}), or simply
+modify @code{c-offsets-alist} directly:
+
+@example
+(setq c-offsets-alist '((substatement-open . 0)))
+@end example
+
+@item
+@cindex open paren in column zero
+@emph{I have an open paren character at column zero inside a comment or
+multiline string literal, and it causes the fontification and/or
+indentation to go haywire. What gives?}
+
+It's due to the ad-hoc rule in (X)Emacs that such open parens always
+start defuns (which translates to functions, classes, namespaces or any
+other top-level block constructs in the @ccmode{} languages).
+@ifset XEMACS
+@xref{Defuns,,, xemacs, XEmacs User's Manual}, for details.
+@end ifset
+@ifclear XEMACS
+@xref{Left Margin Paren,,, emacs, GNU Emacs Manual}, for details
+(@xref{Defuns,,, emacs, GNU Emacs Manual}, in the Emacs 20 manual).
+@end ifclear
+
+This heuristic is built into the core syntax analysis routines in
+(X)Emacs, so it's not really a @ccmode{} issue. However, in Emacs
+21.1 it became possible to turn it off@footnote{Using the variable
+@code{open-paren-in-column-0-is-defun-start}.} and @ccmode{} does so
+there since it's got its own system to keep track of blocks.
+
+@end itemize
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Updating CC Mode, Mailing Lists and Bug Reports, FAQ, Top
+@comment node-name, next, previous, up
+@appendix Getting the Latest CC Mode Release
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@ccmode{} has been standard with all versions of Emacs since 19.34 and
+of XEmacs since 19.16.
+
+@cindex web site
+Due to release schedule skew, it is likely that all of these Emacsen
+have old versions of @ccmode{} and so should be upgraded. Access to the
+@ccmode{} source code, as well as more detailed information on Emacsen
+compatibility, etc. are all available on the web site:
+
+@quotation
+@uref{http://cc-mode.sourceforge.net/}
+@end quotation
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Mailing Lists and Bug Reports, GNU Free Documentation License, Updating CC Mode, Top
+@comment node-name, next, previous, up
+@appendix Mailing Lists and Submitting Bug Reports
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@kindex C-c C-b
+@findex c-submit-bug-report
+@findex submit-bug-report (c-)
+To report bugs, use the @kbd{C-c C-b} (bound to
+@code{c-submit-bug-report}) command. This provides vital information
+we need to reproduce your problem. Make sure you include a concise,
+but complete code example. Please try to boil your example down to
+just the essential code needed to reproduce the problem, and include
+an exact recipe of steps needed to expose the bug. Be especially sure
+to include any code that appears @emph{before} your bug example, if
+you think it might affect our ability to reproduce it.
+
+Please try to produce the problem in an Emacs instance without any
+customizations loaded (i.e. start it with the @samp{-q --no-site-file}
+arguments). If it works correctly there, the problem might be caused
+by faulty customizations in either your own or your site
+configuration. In that case, we'd appreciate it if you isolate the
+Emacs Lisp code that triggers the bug and include it in your report.
+
+@cindex bug report mailing list
+Bug reports should be sent to @email{bug-cc-mode@@gnu.org}. You can
+also send other questions and suggestions (kudos? @t{;-)} to that
+address. It's a mailing list which you can join or browse an archive
+of; see the web site at @uref{http://cc-mode.sourceforge.net/} for
+further details.
+
+@cindex announcement mailing list
+If you want to get announcements of new @ccmode{} releases, send the
+word @emph{subscribe} in the body of a message to
+@email{cc-mode-announce-request@@lists.sourceforge.net}. It's possible
+to subscribe from the web site too. Announcements will also be posted
+to the Usenet newsgroups @code{gnu.emacs.sources}, @code{comp.emacs},
+@code{comp.emacs.xemacs}, @code{comp.lang.c}, @code{comp.lang.c++},
+@code{comp.lang.objective-c}, @code{comp.lang.java.softwaretools},
+@code{comp.lang.idl}, and @code{comp.lang.awk}.
+@c There is no newsgroup for Pike. :-(
+
+
+@node GNU Free Documentation License, Command and Function Index, Mailing Lists and Bug Reports, Top
+@appendix GNU Free Documentation License
+@include doclicense.texi
+
+
+@c Removed the tentative node "Mode Initialization" from here, 2005/8/27.
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Command and Function Index, Variable Index, GNU Free Documentation License, Top
+@comment node-name, next, previous, up
+@unnumbered Command and Function Index
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Since most @ccmode{} commands are prepended with the string
+@samp{c-}, each appears under its @code{c-@var{thing}} name and its
+@code{@var{thing} (c-)} name.
+@iftex
+@sp 2
+@end iftex
+@printindex fn
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Variable Index, Concept and Key Index, Command and Function Index, Top
+@comment node-name, next, previous, up
+@unnumbered Variable Index
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Since most @ccmode{} variables are prepended with the string
+@samp{c-}, each appears under its @code{c-@var{thing}} name and its
+@code{@var{thing} (c-)} name.
+@iftex
+@sp 2
+@end iftex
+@printindex vr
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node Concept and Key Index, , Variable Index, Top
+@comment node-name, next, previous, up
+@unnumbered Concept and Key Index
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@printindex cp
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@comment Epilogue.
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+@iftex
+@page
+@summarycontents
+@contents
+@end iftex
+
+@bye
+
+@ignore
+ arch-tag: c4cab162-5e57-4366-bdce-4a9db2fc97f0
+@end ignore
--- /dev/null
+GNU Emacs NEWS -- history of user-visible changes.
+
+Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ Free Software Foundation, Inc.
+See the end of the file for license conditions.
+
+Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
+If possible, use M-x report-emacs-bug.
+
+This file is about changes in Emacs version 22.
+
+See files NEWS.21, NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17 for changes
+in older Emacs versions.
+
+You can narrow news to a specific version by calling `view-emacs-news'
+with a prefix argument or by typing C-u C-h C-n.
+\f
+* About external Lisp packages
+
+When you upgrade to Emacs 22 from a previous version, some older
+versions of external Lisp packages are known to behave badly.
+So in general, it is recommended that you upgrade to the latest
+versions of any external Lisp packages that you are using.
+
+You should also be aware that many Lisp packages have been included
+with Emacs 22 (see the extensive list below), and you should remove
+any older versions of these packages to ensure that the Emacs 22
+version is used. You can use M-x list-load-path-shadows to find such
+older packages.
+
+Some specific packages that are known to cause problems are given
+below. Emacs tries to warn you about these through `bad-packages-alist'.
+
+** Semantic (used by CEDET, ECB, JDEE): upgrade to latest version.
+
+** cua.el, cua-mode.el: remove old versions.
+
+\f
+* Installation Changes in Emacs 22.2
+
+** Emacs is now licensed under the GNU GPL version 3 (or later).
+
+** Support for GNU/kFreeBSD (GNU userland and FreeBSD kernel) was added.
+
+* Changes in Emacs 22.2
+
++** `find-name-dired' now uses -iname rather than -name
++for case-insensitive filesystems. The default behavior is determined
++by the value of `read-file-name-completion-ignore-case'; if you don't
++like that, customize the value of the new option `find-name-arg'.
++
+** In Image mode, whenever the displayed image is wider and/or higher
+than the window, the usual keys for moving the cursor cause the image
+to be scrolled horizontally or vertically instead.
+
+** Scrollbars follow the system theme on Windows XP and later.
+Windows XP introduced themed scrollbars, but applications have to take
+special steps to use them. Emacs now has the appropriate resources linked
+in to make it use the scrollbars from the system theme.
+
+** focus-follows-mouse defaults to nil on MS Windows.
+Previously this variable was incorrectly documented as having no effect
+on MS Windows, and the default was inappropriate for the majority of
+Windows installations. Users of software which modifies the behaviour of
+Windows to cause focus to follow the mouse will now need to explicitly set
+this variable.
+
+** `bad-packages-alist' will warn about external packages that are known
+to cause problems in this version of Emacs.
+
+** The values of `dired-recursive-deletes' and `dired-recursive-copies'
+have been changed to `top'. This means that the user is asked once,
+before deleting/copying the indicated directory recursively.
+
+** `browse-url-emacs' loads a URL into an Emacs buffer. Handy for *.el URLs.
+
+** The command gdba has been removed as gdb works now for those cases where it
+was needed. In text command mode, if you have problems before execution has
+started, use M-x gud-gdb.
+
+** desktop.el now detects conflicting uses of the desktop file.
+When loading the desktop, desktop.el can now detect that the file is already
+in use. The default behavior is to ask the user what to do, but you can
+customize it with the new option `desktop-load-locked-desktop'. When saving,
+desktop.el warns about attempts to overwrite a desktop file if it determines
+that the desktop being saved is not an update of the one on disk.
+
+* New Modes and Packages in Emacs 22.2
+
+** bibtex-style-mode helps you write BibTeX's *.bst files.
+
+** The new package css-mode.el provides a major mode for editing CSS files.
+
+** The new package vera-mode.el provides a major mode for editing Vera files.
+
+** The new package verilog-mode.el provides a major mode for editing Verilog files.
+
+** The new package socks.el implements the SOCKS v5 protocol.
+
+** VC
+
+*** VC backends can provide completion of revision names.
+
+*** VC backends can provide extra menu entries to be added to the "Version Control" menu.
+This can be used to add menu entries for backend specific functions.
+
+*** VC has some support for Mercurial (Hg).
+
+*** VC has some support for Monotone (Mtn).
+
+*** VC has some support for Bazaar (Bzr).
+
+*** VC has some support for Git.
+
+* Lisp Changes in Emacs 22.2.
+
+** Frame-local variables are deprecated and are slated for removal.
+Use frame parameters instead.
+
+** The function invisible-p returns non-nil if the character
+after a specified position is invisible.
+
++++
+** inhibit-modification-hooks is bound to t while running modification hooks.
+As a happy consequence, after-change-functions and before-change-functions
+are not bound to nil any more while running an (after|before)-change-function.
+
+** New function `window-full-width-p' returns t if a window is as wide
+as its frame.
+
+** The new function `image-refresh' refreshes all images associated
+with a given image specification.
+
+** The new function `combine-and-quote-strings' concatenates a list of strings
+using a specified separator. If a string contains double quotes, they
+are escaped in the output.
+
+** The new function `split-string-and-unquote' performs the inverse operation to
+`combine-and-quote-strings', i.e. splits a single string into a list
+of strings, undoing any quoting added by `combine-and-quote-strings'.
+(For some separator/string combinations, the original strings cannot
+be recovered.)
+
+\f
+* Installation Changes in Emacs 22.1
+
+** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk'
+when you run configure. This requires Gtk+ 2.4 or newer. This port
+provides a way to display multilingual text in menus (with some caveats).
+
+** The Emacs Lisp Reference Manual is now part of the distribution.
+
+The Emacs Lisp Reference Manual in Info format is built as part of the
+Emacs build procedure and installed together with the Emacs User
+Manual. A menu item was added to the menu bar to make it easily
+accessible (Help->More Manuals->Emacs Lisp Reference).
+
+** The Introduction to Programming in Emacs Lisp manual is now part of
+the distribution.
+
+This manual is now part of the standard distribution and is installed,
+together with the Emacs User Manual, into the Info directory. A menu
+item was added to the menu bar to make it easily accessible
+(Help->More Manuals->Introduction to Emacs Lisp).
+
+** Leim is now part of the Emacs distribution.
+You no longer need to download a separate tarball in order to build
+Emacs with Leim.
+
+** Support for MacOS X was added.
+See the files mac/README and mac/INSTALL for build instructions.
+
+** Mac OS 9 port now uses the Carbon API by default. You can also
+create a non-Carbon build by specifying `NonCarbon' as a target. See
+the files mac/README and mac/INSTALL for build instructions.
+
+** Support for a Cygwin build of Emacs was added.
+
+** Support for GNU/Linux systems on X86-64 machines was added.
+
+** Support for GNU/Linux systems on S390 machines was added.
+
+** Support for GNU/Linux systems on Tensilica Xtensa machines was added.
+
+** Support for FreeBSD/Alpha has been added.
+
+** New translations of the Emacs Tutorial are available in the
+following languages: Brasilian Portuguese, Bulgarian, Chinese (both
+with simplified and traditional characters), French, Russian, and
+Italian. Type `C-u C-h t' to choose one of them in case your language
+setup doesn't automatically select the right one.
+
+** New translations of the Emacs reference card are available in the
+Brasilian Portuguese and Russian. The corresponding PostScript files
+are also included.
+
+** A French translation of the `Emacs Survival Guide' is available.
+
+** Emacs now supports new configure options `--program-prefix',
+`--program-suffix' and `--program-transform-name' that affect the names of
+installed programs.
+
+** By default, Emacs now uses a setgid helper program to update game
+scores. The directory ${localstatedir}/games/emacs is the normal
+place for game scores to be stored. You can control this with the
+configure option `--with-game-dir'. The specific user that Emacs uses
+to own the game scores is controlled by `--with-game-user'. If access
+to a game user is not available, then scores will be stored separately
+in each user's home directory.
+
+** Emacs now includes support for loading image libraries on demand.
+(Currently this feature is only used on MS Windows.) You can configure
+the supported image types and their associated dynamic libraries by
+setting the variable `image-library-alist'.
+
+** Emacs can now be built without sound support.
+
+** Emacs Lisp source files are compressed by default if `gzip' is available.
+
+** All images used in Emacs have been consolidated in etc/images and subdirs.
+See also the changes to `find-image', documented below.
+
+** Emacs comes with a new set of icons.
+These icons are displayed on the taskbar and/or titlebar when Emacs
+runs in a graphical environment. Source files for these icons can be
+found in etc/images/icons. (You can't change the icons displayed by
+Emacs by changing these files directly. On X, the icon is compiled
+into the Emacs executable; see gnu.h in the source tree. On MS
+Windows, see nt/icons/emacs.ico.)
+
+** The `emacsserver' program has been removed, replaced with Lisp code.
+
+** The `yow' program has been removed.
+Use the corresponding Emacs feature instead.
+
+** The Emacs terminal emulation in term.el uses a different terminfo name.
+The Emacs terminal emulation in term.el now uses "eterm-color" as its
+terminfo name, since term.el now supports color.
+
+** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the
+contents of buffers from a core dump and save them to files easily, should
+Emacs crash.
+
+** Building with -DENABLE_CHECKING does not automatically build with union
+types any more. Add -DUSE_LISP_UNION_TYPE if you want union types.
+
+** When pure storage overflows while dumping, Emacs now prints how
+much pure storage it will approximately need.
+
+\f
+* Startup Changes in Emacs 22.1
+
+** Init file changes
+If the init file ~/.emacs does not exist, Emacs will try
+~/.emacs.d/init.el or ~/.emacs.d/init.elc. Likewise, if the shell init file
+~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh.
+
+** Emacs can now be invoked in full-screen mode on a windowed display.
+When Emacs is invoked on a window system, the new command-line options
+`--fullwidth', `--fullheight', and `--fullscreen' produce a frame
+whose width, height, or both width and height take up the entire
+screen size. (For now, this does not work with some window managers.)
+
+** Emacs now displays a splash screen by default even if command-line
+arguments were given. The new command-line option --no-splash
+disables the splash screen; see also the variable
+`inhibit-splash-screen' (which is also aliased as
+`inhibit-startup-message').
+
+** New user option `inhibit-startup-buffer-menu'.
+When loading many files, for instance with `emacs *', Emacs normally
+displays a buffer menu. This option turns the buffer menu off.
+
+** New command line option -nbc or --no-blinking-cursor disables
+the blinking cursor on graphical terminals.
+
+** The option --script FILE runs Emacs in batch mode and loads FILE.
+It is useful for writing Emacs Lisp shell script files, because they
+can start with this line:
+
+ #!/usr/bin/emacs --script
+
+** The -f option, used from the command line to call a function,
+now reads arguments for the function interactively if it is
+an interactively callable function.
+
+** The option --directory DIR now modifies `load-path' immediately.
+Directories are added to the front of `load-path' in the order they
+appear on the command line. For example, with this command line:
+
+ emacs -batch -L .. -L /tmp --eval "(require 'foo)"
+
+Emacs looks for library `foo' in the parent directory, then in /tmp, then
+in the other directories in `load-path'. (-L is short for --directory.)
+
+** When you specify a frame size with --geometry, the size applies to
+all frames you create. A position specified with --geometry only
+affects the initial frame.
+
+** Emacs built for MS-Windows now behaves like Emacs on X does,
+with respect to its frame position: if you don't specify a position
+(in your .emacs init file, in the Registry, or with the --geometry
+command-line option), Emacs leaves the frame position to the Windows'
+window manager.
+
+** The command line option --no-windows has been changed to
+--no-window-system. The old one still works, but is deprecated.
+
+** If the environment variable DISPLAY specifies an unreachable X display,
+Emacs will now startup as if invoked with the --no-window-system option.
+
+** Emacs now reads the standard abbrevs file ~/.abbrev_defs
+automatically at startup, if it exists. When Emacs offers to save
+modified buffers, it saves the abbrevs too if they have changed. It
+can do this either silently or asking for confirmation first,
+according to the value of `save-abbrevs'.
+
+** New command line option -Q or --quick.
+This is like using -q --no-site-file, but in addition it also disables
+the fancy startup screen.
+
+** New command line option -D or --basic-display.
+Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and
+the blinking cursor.
+
+** The default is now to use a bitmap as the icon.
+The command-line options --icon-type, -i have been replaced with
+options --no-bitmap-icon, -nbi to turn the bitmap icon off.
+
+** If the environment variable EMAIL is defined, Emacs now uses its value
+to compute the default value of `user-mail-address', in preference to
+concatenation of `user-login-name' with the name of your host machine.
+
+\f
+* Incompatible Editing Changes in Emacs 22.1
+
+** You can now follow links by clicking Mouse-1 on the link.
+
+See below for more details.
+
+** When the undo information of the current command gets really large
+(beyond the value of `undo-outer-limit'), Emacs discards it and warns
+you about it.
+
+** When Emacs prompts for file names, SPC no longer completes the file name.
+This is so filenames with embedded spaces could be input without the
+need to quote the space with a C-q. The underlying changes in the
+keymaps that are active in the minibuffer are described below under
+"New keymaps for typing file names".
+
+If you want the old behavior back, add these two key bindings to your
+~/.emacs init file:
+
+ (define-key minibuffer-local-filename-completion-map
+ " " 'minibuffer-complete-word)
+ (define-key minibuffer-local-must-match-filename-map
+ " " 'minibuffer-complete-word)
+
+** The completion commands TAB, SPC and ? in the minibuffer apply only
+to the text before point. If there is text in the buffer after point,
+it remains unchanged.
+
+** In incremental search, C-w is changed. M-%, C-M-w and C-M-y are special.
+
+See below under "incremental search changes".
+
+** M-g is now a prefix key.
+M-g g and M-g M-g run goto-line.
+M-g n and M-g M-n run next-error (like C-x `).
+M-g p and M-g M-p run previous-error.
+
+** C-u M-g M-g switches to the most recent previous buffer,
+and goes to the specified line in that buffer.
+
+When goto-line starts to execute, if there's a number in the buffer at
+point then it acts as the default argument for the minibuffer.
+
+** M-o now is the prefix key for setting text properties;
+M-o M-o requests refontification.
+
+** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer
+a special case.
+
+Since the default input is the current directory, this has the effect
+of specifying the current directory. Normally that means to visit the
+directory with Dired.
+
+You can get the old behavior by typing C-x C-f M-n RET, which fetches
+the actual file name into the minibuffer.
+
+** In Dired's ! command (dired-do-shell-command), `*' and `?' now
+control substitution of the file names only when they are surrounded
+by whitespace. This means you can now use them as shell wildcards
+too. If you want to use just plain `*' as a wildcard, type `*""'; the
+doublequotes make no difference in the shell, but they prevent
+special treatment in `dired-do-shell-command'.
+
+** The info-search bindings on C-h C-f, C-h C-k and C-h C-i
+have been moved to C-h F, C-h K and C-h S.
+
+** `apply-macro-to-region-lines' now operates on all lines that begin
+in the region, rather than on all complete lines in the region.
+
+** line-move-ignore-invisible now defaults to t.
+
+** Adaptive filling misfeature removed.
+It no longer treats `NNN.' or `(NNN)' as a prefix.
+
+** The old bindings C-M-delete and C-M-backspace have been deleted,
+since there are situations where one or the other will shut down
+the operating system or your X server.
+
+** The register compatibility key bindings (deprecated since Emacs 19)
+have been removed:
+ C-x / point-to-register (Use: C-x r SPC)
+ C-x j jump-to-register (Use: C-x r j)
+ C-x x copy-to-register (Use: C-x r s)
+ C-x g insert-register (Use: C-x r i)
+
+\f
+* Editing Changes in Emacs 22.1
+
+** The max size of buffers and integers has been doubled.
+On 32bit machines, it is now 256M (i.e. 268435455).
+
+** !MEM FULL! at the start of the mode line indicates that Emacs
+cannot get any more memory for Lisp data. This often means it could
+crash soon if you do things that use more memory. On most systems,
+killing buffers will get out of this state. If killing buffers does
+not make !MEM FULL! disappear, you should save your work and start
+a new Emacs.
+
+** `undo-only' does an undo which does not redo any previous undo.
+
+** Yanking text now discards certain text properties that can
+be inconvenient when you did not expect them. The variable
+`yank-excluded-properties' specifies which ones. Insertion
+of register contents and rectangles also discards these properties.
+
+** New command `kill-whole-line' kills an entire line at once.
+By default, it is bound to C-S-<backspace>.
+
+** M-SPC (just-one-space) when given a numeric argument N
+converts whitespace around point to N spaces.
+
+** You can now switch buffers in a cyclic order with C-x C-left
+(previous-buffer) and C-x C-right (next-buffer). C-x left and
+C-x right can be used as well. The functions keep a different buffer
+cycle for each frame, using the frame-local buffer list.
+
+** C-x 5 C-o displays a specified buffer in another frame
+but does not switch to that frame. It's the multi-frame
+analogue of C-x 4 C-o.
+
+** `special-display-buffer-names' and `special-display-regexps' now
+understand two new boolean pseudo-frame-parameters `same-frame' and
+`same-window'.
+
+** New commands to operate on pairs of open and close characters:
+`insert-pair', `delete-pair', `raise-sexp'.
+
+** M-x setenv now expands environment variable references.
+
+Substrings of the form `$foo' and `${foo}' in the specified new value
+now refer to the value of environment variable foo. To include a `$'
+in the value, use `$$'.
+
+** The default values of paragraph-start and indent-line-function have
+been changed to reflect those used in Text mode rather than those used
+in Paragraph-Indent Text mode.
+
+** The default for the paper size (variable ps-paper-type) is taken
+from the locale.
+
+** Help command changes:
+
+*** Changes in C-h bindings:
+
+C-h e displays the *Messages* buffer.
+
+C-h d runs apropos-documentation.
+
+C-h r visits the Emacs Manual in Info.
+
+C-h followed by a control character is used for displaying files
+ that do not change:
+
+C-h C-f displays the FAQ.
+C-h C-e displays the PROBLEMS file.
+
+The info-search bindings on C-h C-f, C-h C-k and C-h C-i
+have been moved to C-h F, C-h K and C-h S.
+
+C-h c, C-h k, C-h w, and C-h f now handle remapped interactive commands.
+- C-h c and C-h k report the actual command (after possible remapping)
+ run by the key sequence.
+- C-h w and C-h f on a command which has been remapped now report the
+ command it is remapped to, and the keys which can be used to run
+ that command.
+
+For example, if C-k is bound to kill-line, and kill-line is remapped
+to new-kill-line, these commands now report:
+- C-h c and C-h k C-k reports:
+ C-k runs the command new-kill-line
+- C-h w and C-h f kill-line reports:
+ kill-line is remapped to new-kill-line which is on C-k, <deleteline>
+- C-h w and C-h f new-kill-line reports:
+ new-kill-line is on C-k
+
+*** The apropos commands now accept a list of words to match.
+When more than one word is specified, at least two of those words must
+be present for an item to match. Regular expression matching is still
+available.
+
+*** The new option `apropos-sort-by-scores' causes the matching items
+to be sorted according to their score. The score for an item is a
+number calculated to indicate how well the item matches the words or
+regular expression that you entered to the apropos command. The best
+match is listed first, and the calculated score is shown for each
+matching item.
+
+*** Help commands `describe-function' and `describe-key' now show function
+arguments in lowercase italics on displays that support it. To change the
+default, customize face `help-argument-name' or redefine the function
+`help-default-arg-highlight'.
+
+*** C-h v and C-h f commands now include a hyperlink to the C source for
+variables and functions defined in C (if the C source is available).
+
+*** Help mode now only makes hyperlinks for faces when the face name is
+preceded or followed by the word `face'. It no longer makes
+hyperlinks for variables without variable documentation, unless
+preceded by one of the words `variable' or `option'. It now makes
+hyperlinks to Info anchors (or nodes) if the anchor (or node) name is
+enclosed in single quotes and preceded by `info anchor' or `Info
+anchor' (in addition to earlier `info node' and `Info node'). In
+addition, it now makes hyperlinks to URLs as well if the URL is
+enclosed in single quotes and preceded by `URL'.
+
+*** The new command `describe-char' (C-u C-x =) pops up a buffer with
+description various information about a character, including its
+encodings and syntax, its text properties, how to input, overlays, and
+widgets at point. You can get more information about some of them, by
+clicking on mouse-sensitive areas or moving there and pressing RET.
+
+*** The command `list-text-properties-at' has been deleted because
+C-u C-x = gives the same information and more.
+
+*** New command `display-local-help' displays any local help at point
+in the echo area. It is bound to `C-h .'. It normally displays the
+same string that would be displayed on mouse-over using the
+`help-echo' property, but, in certain cases, it can display a more
+keyboard oriented alternative.
+
+*** New user option `help-at-pt-display-when-idle' allows you to
+automatically show the help provided by `display-local-help' on
+point-over, after suitable idle time. The amount of idle time is
+determined by the user option `help-at-pt-timer-delay' and defaults
+to one second. This feature is turned off by default.
+
+** Mark command changes:
+
+*** A prefix argument is no longer required to repeat a jump to a
+previous mark if you set `set-mark-command-repeat-pop' to t. I.e. C-u
+C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC
+to set the mark immediately after a jump.
+
+*** Marking commands extend the region when invoked multiple times.
+
+If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h
+(mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region
+extends each time, so you can mark the next two sexps with M-C-SPC
+M-C-SPC, for example. This feature also works for
+mark-end-of-sentence, if you bind that to a key. It also extends the
+region when the mark is active in Transient Mark mode, regardless of
+the last command. To start a new region with one of marking commands
+in Transient Mark mode, you can deactivate the active region with C-g,
+or set the new mark with C-SPC.
+
+*** Some commands do something special in Transient Mark mode when the
+mark is active--for instance, they limit their operation to the
+region. Even if you don't normally use Transient Mark mode, you might
+want to get this behavior from a particular command. There are two
+ways you can enable Transient Mark mode and activate the mark, for one
+command only.
+
+One method is to type C-SPC C-SPC; this enables Transient Mark mode
+and sets the mark at point. The other method is to type C-u C-x C-x.
+This enables Transient Mark mode temporarily but does not alter the
+mark or the region.
+
+After these commands, Transient Mark mode remains enabled until you
+deactivate the mark. That typically happens when you type a command
+that alters the buffer, but you can also deactivate the mark by typing
+C-g.
+
+*** Movement commands `beginning-of-buffer', `end-of-buffer',
+`beginning-of-defun', `end-of-defun' do not set the mark if the mark
+is already active in Transient Mark mode.
+
+*** M-h (mark-paragraph) now accepts a prefix arg.
+
+With positive arg, M-h marks the current and the following paragraphs;
+if the arg is negative, it marks the current and the preceding
+paragraphs.
+
+** Incremental Search changes:
+
+*** M-% typed in isearch mode invokes `query-replace' or
+`query-replace-regexp' (depending on search mode) with the current
+search string used as the string to replace.
+
+*** C-w in incremental search now grabs either a character or a word,
+making the decision in a heuristic way. This new job is done by the
+command `isearch-yank-word-or-char'. To restore the old behavior,
+bind C-w to `isearch-yank-word' in `isearch-mode-map'.
+
+*** C-y in incremental search now grabs the next line if point is already
+at the end of a line.
+
+*** C-M-w deletes and C-M-y grabs a character in isearch mode.
+Another method to grab a character is to enter the minibuffer by `M-e'
+and to type `C-f' at the end of the search string in the minibuffer.
+
+*** Vertical scrolling is now possible within incremental search.
+To enable this feature, customize the new user option
+`isearch-allow-scroll'. User written commands which satisfy stringent
+constraints can be marked as "scrolling commands". See the Emacs manual
+for details.
+
+*** Isearch no longer adds `isearch-resume' commands to the command
+history by default. To enable this feature, customize the new
+user option `isearch-resume-in-command-history'.
+
+** Replace command changes:
+
+*** When used interactively, the commands `query-replace-regexp' and
+`replace-regexp' allow \,expr to be used in a replacement string,
+where expr is an arbitrary Lisp expression evaluated at replacement
+time. `\#' in a replacement string now refers to the count of
+replacements already made by the replacement command. All regular
+expression replacement commands now allow `\?' in the replacement
+string to specify a position where the replacement string can be
+edited for each replacement. `query-replace-regexp-eval' is now
+deprecated since it offers no additional functionality.
+
+*** query-replace uses isearch lazy highlighting when the new user option
+`query-replace-lazy-highlight' is non-nil.
+
+*** The current match in query-replace is highlighted in new face
+`query-replace' which by default inherits from isearch face.
+
+*** New user option `query-replace-skip-read-only': when non-nil,
+`query-replace' and related functions simply ignore
+a match if part of it has a read-only property.
+
+** Local variables lists:
+
+*** If the local variables list contains any variable-value pairs that
+are not known to be safe, Emacs shows a prompt asking whether to apply
+the local variables list as a whole. In earlier versions, a prompt
+was only issued for variables explicitly marked as risky (for the
+definition of risky variables, see `risky-local-variable-p').
+
+At the prompt, you can choose to save the contents of this local
+variables list to `safe-local-variable-values'. This new customizable
+option is a list of variable-value pairs that are known to be safe.
+Variables can also be marked as safe with the existing
+`safe-local-variable' property (see `safe-local-variable-p').
+However, risky variables will not be added to
+`safe-local-variable-values' in this way.
+
+*** The variable `enable-local-variables' controls how local variable
+lists are handled. t, the default, specifies the standard querying
+behavior. :safe means use only safe values, and ignore the rest.
+:all means set all variables, whether or not they are safe.
+nil means ignore them all. Anything else means always query.
+
+*** The variable `safe-local-eval-forms' specifies a list of forms that
+are ok to evaluate when they appear in an `eval' local variables
+specification. Normally Emacs asks for confirmation before evaluating
+such a form, but if the form appears in this list, no confirmation is
+needed.
+
+*** If a function has a non-nil `safe-local-eval-function' property,
+that means it is ok to evaluate some calls to that function when it
+appears in an `eval' local variables specification. If the property
+is t, then any form calling that function with constant arguments is
+ok. If the property is a function or list of functions, they are called
+with the form as argument, and if any returns t, the form is ok to call.
+
+If the form is not "ok to call", that means Emacs asks for
+confirmation as before.
+
+*** In processing a local variables list, Emacs strips the prefix and
+suffix from every line before processing all the lines.
+
+*** Text properties in local variables.
+
+A file local variables list cannot specify a string with text
+properties--any specified text properties are discarded.
+
+** File operation changes:
+
+*** Unquoted `$' in file names do not signal an error any more when
+the corresponding environment variable does not exist.
+Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
+is only rarely needed.
+
+*** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case.
+
+Since the default input is the current directory, this has the effect
+of specifying the current directory. Normally that means to visit the
+directory with Dired.
+
+*** C-x s (save-some-buffers) now offers an option `d' to diff a buffer
+against its file, so you can see what changes you would be saving.
+
+*** Auto Compression mode is now enabled by default.
+
+*** If the user visits a file larger than `large-file-warning-threshold',
+Emacs asks for confirmation.
+
+*** The commands copy-file, rename-file, make-symbolic-link and
+add-name-to-file, when given a directory as the "new name" argument,
+convert it to a file name by merging in the within-directory part of
+the existing file's name. (This is the same convention that shell
+commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET
+/tmp RET copies ~/foo to /tmp/foo.
+
+*** require-final-newline now has two new possible values:
+
+`visit' means add a newline (as an undoable change) if it's needed
+when visiting the file.
+
+`visit-save' means add a newline (as an undoable change) if it's
+needed when visiting the file, and also add a newline if it's needed
+when saving the file.
+
+*** The new option mode-require-final-newline controls how certain
+major modes enable require-final-newline. Any major mode that's
+designed for a kind of file that should normally end in a newline
+sets require-final-newline based on mode-require-final-newline.
+So you can customize mode-require-final-newline to control what these
+modes do.
+
+*** When you are root, and you visit a file whose modes specify
+read-only, the Emacs buffer is now read-only too. Type C-x C-q if you
+want to make the buffer writable. (As root, you can in fact alter the
+file.)
+
+*** find-file-read-only visits multiple files in read-only mode,
+when the file name contains wildcard characters.
+
+*** find-alternate-file replaces the current file with multiple files,
+when the file name contains wildcard characters. It now asks if you
+wish save your changes and not just offer to kill the buffer.
+
+*** When used interactively, `format-write-file' now asks for confirmation
+before overwriting an existing file, unless a prefix argument is
+supplied. This behavior is analogous to `write-file'.
+
+*** The variable `auto-save-file-name-transforms' now has a third element that
+controls whether or not the function `make-auto-save-file-name' will
+attempt to construct a unique auto-save name (e.g. for remote files).
+
+*** The new option `write-region-inhibit-fsync' disables calls to fsync
+in `write-region'. This can be useful on laptops to avoid spinning up
+the hard drive upon each file save. Enabling this variable may result
+in data loss, use with care.
+
+** Minibuffer changes:
+
+*** The completion commands TAB, SPC and ? in the minibuffer apply only
+to the text before point. If there is text in the buffer after point,
+it remains unchanged.
+
+*** The new file-name-shadow-mode is turned ON by default, so that when
+entering a file name, any prefix which Emacs will ignore is dimmed.
+
+*** There's a new face `minibuffer-prompt'.
+Emacs adds this face to the list of text properties stored in the
+variable `minibuffer-prompt-properties', which is used to display the
+prompt string.
+
+*** Enhanced visual feedback in `*Completions*' buffer.
+
+Completions lists use faces to highlight what all completions
+have in common and where they begin to differ.
+
+The common prefix shared by all possible completions uses the face
+`completions-common-part', while the first character that isn't the
+same uses the face `completions-first-difference'. By default,
+`completions-common-part' inherits from `default', and
+`completions-first-difference' inherits from `bold'. The idea of
+`completions-common-part' is that you can use it to make the common
+parts less visible than normal, so that the rest of the differing
+parts is, by contrast, slightly highlighted.
+
+Above fontification is always done when listing completions is
+triggered at minibuffer. If you want to fontify completions whose
+listing is triggered at the other normal buffer, you have to pass
+the common prefix of completions to `display-completion-list' as
+its second argument.
+
+*** File-name completion can now ignore specified directories.
+If an element of the list in `completion-ignored-extensions' ends in a
+slash `/', it indicates a subdirectory that should be ignored when
+completing file names. Elements of `completion-ignored-extensions'
+which do not end in a slash are never considered when a completion
+candidate is a directory.
+
+*** New user option `history-delete-duplicates'.
+If set to t when adding a new history element, all previous identical
+elements are deleted from the history list.
+
+** Redisplay changes:
+
+*** The new face `mode-line-inactive' is used to display the mode line
+of non-selected windows. The `mode-line' face is now used to display
+the mode line of the currently selected window.
+
+The new variable `mode-line-in-non-selected-windows' controls whether
+the `mode-line-inactive' face is used.
+
+*** The mode line position information now comes before the major mode.
+When the file is maintained under version control, that information
+appears between the position information and the major mode.
+
+*** You can now customize the use of window fringes. To control this
+for all frames, use M-x fringe-mode or the Show/Hide submenu of the
+top-level Options menu, or customize the `fringe-mode' variable. To
+control this for a specific frame, use the command M-x
+set-fringe-style.
+
+*** Angle icons in the fringes can indicate the buffer boundaries. In
+addition, up and down arrow bitmaps in the fringe indicate which ways
+the window can be scrolled.
+
+This behavior is activated by setting the buffer-local variable
+`indicate-buffer-boundaries' to a non-nil value. The default value of
+this variable is found in `default-indicate-buffer-boundaries'.
+
+If value is `left' or `right', both angle and arrow bitmaps are
+displayed in the left or right fringe, resp.
+
+The value can also be an alist which specifies the presence and
+position of each bitmap individually.
+
+For example, ((top . left) (t . right)) places the top angle bitmap
+in left fringe, the bottom angle bitmap in right fringe, and both
+arrow bitmaps in right fringe. To show just the angle bitmaps in the
+left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)).
+
+*** On window systems, lines which are exactly as wide as the window
+(not counting the final newline character) are no longer broken into
+two lines on the display (with just the newline on the second line).
+Instead, the newline now "overflows" into the right fringe, and the
+cursor will be displayed in the fringe when positioned on that newline.
+
+The new user option 'overflow-newline-into-fringe' can be set to nil to
+revert to the old behavior of continuing such lines.
+
+*** A window can now have individual fringe and scroll-bar settings,
+in addition to the individual display margin settings.
+
+Such individual settings are now preserved when windows are split
+horizontally or vertically, a saved window configuration is restored,
+or when the frame is resized.
+
+*** When a window has display margin areas, the fringes are now
+displayed between the margins and the buffer's text area, rather than
+outside those margins.
+
+*** New face `escape-glyph' highlights control characters and escape glyphs.
+
+*** Non-breaking space and hyphens are now displayed with a special
+face, either nobreak-space or escape-glyph. You can turn this off or
+specify a different mode by setting the variable `nobreak-char-display'.
+
+*** The parameters of automatic hscrolling can now be customized.
+The variable `hscroll-margin' determines how many columns away from
+the window edge point is allowed to get before automatic hscrolling
+will horizontally scroll the window. The default value is 5.
+
+The variable `hscroll-step' determines how many columns automatic
+hscrolling scrolls the window when point gets too close to the
+window edge. If its value is zero, the default, Emacs scrolls the
+window so as to center point. If its value is an integer, it says how
+many columns to scroll. If the value is a floating-point number, it
+gives the fraction of the window's width to scroll the window.
+
+The variable `automatic-hscrolling' was renamed to
+`auto-hscroll-mode'. The old name is still available as an alias.
+
+*** Moving or scrolling through images (and other lines) taller than
+the window now works sensibly, by automatically adjusting the window's
+vscroll property.
+
+*** Preemptive redisplay now adapts to current load and bandwidth.
+
+To avoid preempting redisplay on fast computers, networks, and displays,
+the arrival of new input is now performed at regular intervals during
+redisplay. The new variable `redisplay-preemption-period' specifies
+the period; the default is to check for input every 0.1 seconds.
+
+*** The %c and %l constructs are now ignored in frame-title-format.
+Due to technical limitations in how Emacs interacts with windowing
+systems, these constructs often failed to render properly, and could
+even cause Emacs to crash.
+
+*** If value of `auto-resize-tool-bars' is `grow-only', the tool bar
+will expand as needed, but not contract automatically. To contract
+the tool bar, you must type C-l.
+
+*** New customize option `overline-margin' controls the space between
+overline and text.
+
+*** New variable `x-underline-at-descent-line' controls the relative
+position of the underline. When set, it overrides the
+`x-use-underline-position-properties' variables.
+
+** New faces:
+
+*** `mode-line-highlight' is the standard face indicating mouse sensitive
+elements on mode-line (and header-line) like `highlight' face on text
+areas.
+
+*** `mode-line-buffer-id' is the standard face for buffer identification
+parts of the mode line.
+
+*** `shadow' face defines the appearance of the "shadowed" text, i.e.
+the text which should be less noticeable than the surrounding text.
+This can be achieved by using shades of grey in contrast with either
+black or white default foreground color. This generic shadow face
+allows customization of the appearance of shadowed text in one place,
+so package-specific faces can inherit from it.
+
+*** `vertical-border' face is used for the vertical divider between windows.
+
+** Font-Lock (syntax highlighting) changes:
+
+*** All modes now support using M-x font-lock-mode to toggle
+fontification, even those such as Occur, Info, and comint-derived
+modes that do their own fontification in a special way.
+
+The variable `Info-fontify' is no longer applicable; to disable
+fontification in Info, remove `turn-on-font-lock' from
+`Info-mode-hook'.
+
+*** New standard font-lock face `font-lock-comment-delimiter-face'.
+
+*** New standard font-lock face `font-lock-preprocessor-face'.
+
+*** Easy to overlook single character negation can now be font-locked.
+You can use the new variable `font-lock-negation-char-face' and the face of
+the same name to customize this. Currently the cc-modes, sh-script-mode,
+cperl-mode and make-mode support this.
+
+*** Font-Lock mode: in major modes such as Lisp mode, where some Emacs
+features assume that an open-paren in column 0 is always outside of
+any string or comment, Font-Lock now highlights any such open-paren in
+bold-red if it is inside a string or a comment, to indicate that it
+can cause trouble. You should rewrite the string or comment so that
+the open-paren is not in column 0.
+
+*** M-o now is the prefix key for setting text properties;
+M-o M-o requests refontification.
+
+*** The default settings for JIT stealth lock parameters are changed.
+The default value for the user option jit-lock-stealth-time is now nil
+instead of 3. This setting of jit-lock-stealth-time disables stealth
+fontification: on today's machines, it may be a bug in font lock
+patterns if fontification otherwise noticeably degrades interactivity.
+If you find movement in infrequently visited buffers sluggish (and the
+major mode maintainer has no better idea), customizing
+jit-lock-stealth-time to a non-nil value will let Emacs fontify
+buffers in the background when it considers the system to be idle.
+jit-lock-stealth-nice is now 0.5 instead of 0.125 which is supposed to
+cause less load than the old defaults.
+
+*** jit-lock can now be delayed with `jit-lock-defer-time'.
+
+If this variable is non-nil, its value should be the amount of Emacs
+idle time in seconds to wait before starting fontification. For
+example, if you set `jit-lock-defer-time' to 0.25, fontification will
+only happen after 0.25s of idle time.
+
+*** contextual refontification is now separate from stealth fontification.
+
+jit-lock-defer-contextually is renamed jit-lock-contextually and
+jit-lock-context-time determines the delay after which contextual
+refontification takes place.
+
+*** lazy-lock is considered obsolete.
+
+The `lazy-lock' package is superseded by `jit-lock' and is considered
+obsolete. `jit-lock' is activated by default; if you wish to continue
+using `lazy-lock', activate it in your ~/.emacs like this:
+ (setq font-lock-support-mode 'lazy-lock-mode)
+
+If you invoke `lazy-lock-mode' directly rather than through
+`font-lock-support-mode', it now issues a warning:
+ "Use font-lock-support-mode rather than calling lazy-lock-mode"
+
+** Menu support:
+
+*** A menu item "Show/Hide" was added to the top-level menu "Options".
+This menu allows you to turn various display features on and off (such
+as the fringes, the tool bar, the speedbar, and the menu bar itself).
+You can also move the vertical scroll bar to either side here or turn
+it off completely. There is also a menu-item to toggle displaying of
+current date and time, current line and column number in the mode-line.
+
+*** Speedbar has moved from the "Tools" top level menu to "Show/Hide".
+
+*** The menu item "Open File..." has been split into two items, "New File..."
+and "Open File...". "Open File..." now opens only existing files. This is
+to support existing GUI file selection dialogs better.
+
+*** The file selection dialog for Gtk+, Mac, W32 and Motif/LessTif can be
+disabled by customizing the variable `use-file-dialog'.
+
+*** The pop up menus for Lucid now stay up if you do a fast click and can
+be navigated with the arrow keys (like Gtk+, Mac and W32).
+
+*** The menu bar for Motif/LessTif/Lucid/Gtk+ can be navigated with keys.
+Pressing F10 shows the first menu in the menu bar. Navigation is done with
+the arrow keys, select with the return key and cancel with the escape keys.
+
+*** The Lucid menus can display multilingual text in your locale. You have
+to explicitly specify a fontSet resource for this to work, for example
+`-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'.
+
+*** Dialogs for Lucid/Athena and LessTif/Motif now pop down on pressing
+ESC, like they do for Gtk+, Mac and W32.
+
+*** For the Gtk+ version, you can make Emacs use the old file dialog
+by setting the variable `x-gtk-use-old-file-dialog' to t. Default is to use
+the new dialog.
+
+*** You can exit dialog windows and menus by typing C-g.
+
+** Buffer Menu changes:
+
+*** The new options `buffers-menu-show-directories' and
+`buffers-menu-show-status' let you control how buffers are displayed
+in the menu dropped down when you click "Buffers" from the menu bar.
+
+`buffers-menu-show-directories' controls whether the menu displays
+leading directories as part of the file name visited by the buffer.
+If its value is `unless-uniquify', the default, directories are
+shown unless uniquify-buffer-name-style' is non-nil. The value of nil
+and t turn the display of directories off and on, respectively.
+
+`buffers-menu-show-status' controls whether the Buffers menu includes
+the modified and read-only status of the buffers. By default it is
+t, and the status is shown.
+
+Setting these variables directly does not take effect until next time
+the Buffers menu is regenerated.
+
+*** New command `Buffer-menu-toggle-files-only' toggles display of file
+buffers only in the Buffer Menu. It is bound to T in Buffer Menu
+mode.
+
+*** `buffer-menu' and `list-buffers' now list buffers whose names begin
+with a space, when those buffers are visiting files. Normally buffers
+whose names begin with space are omitted.
+
+** Mouse changes:
+
+*** You can now follow links by clicking Mouse-1 on the link.
+
+Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2
+click to follow a link, whereas most other applications use a Mouse-1
+click for both purposes, depending on whether you click outside or
+inside a link. Now the behavior of a Mouse-1 click has been changed
+to match this context-sensitive dual behavior. (If you prefer the old
+behavior, set the user option `mouse-1-click-follows-link' to nil.)
+
+Depending on the current mode, a Mouse-2 click in Emacs can do much
+more than just follow a link, so the new Mouse-1 behavior is only
+activated for modes which explicitly mark a clickable text as a "link"
+(see the new function `mouse-on-link-p' for details). The Lisp
+packages that are included in release 22.1 have been adapted to do
+this, but external packages may not yet support this. However, there
+is no risk in using such packages, as the worst thing that could
+happen is that you get the original Mouse-1 behavior when you click
+on a link, which typically means that you set point where you click.
+
+If you want to get the original Mouse-1 action also inside a link, you
+just need to press the Mouse-1 button a little longer than a normal
+click (i.e. press and hold the Mouse-1 button for half a second before
+you release it).
+
+Dragging the Mouse-1 inside a link still performs the original
+drag-mouse-1 action, typically copy the text.
+
+You can customize the new Mouse-1 behavior via the new user options
+`mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'.
+
+*** If you set the new variable `mouse-autoselect-window' to a non-nil
+value, windows are automatically selected as you move the mouse from
+one Emacs window to another, even within a frame. A minibuffer window
+can be selected only when it is active.
+
+*** On X, when the window manager requires that you click on a frame to
+select it (give it focus), the selected window and cursor position
+normally changes according to the mouse click position. If you set
+the variable x-mouse-click-focus-ignore-position to t, the selected
+window and cursor position do not change when you click on a frame
+to give it focus.
+
+*** Emacs normally highlights mouse sensitive text whenever the mouse
+is over the text. By setting the new variable `mouse-highlight', you
+can optionally enable mouse highlighting only after you move the
+mouse, so that highlighting disappears when you press a key. You can
+also disable mouse highlighting.
+
+*** You can now customize if selecting a region by dragging the mouse
+shall not copy the selected text to the kill-ring by setting the new
+variable mouse-drag-copy-region to nil.
+
+*** Under X, mouse-wheel-mode is turned on by default.
+
+*** Emacs ignores mouse-2 clicks while the mouse wheel is being moved.
+
+People tend to push the mouse wheel (which counts as a mouse-2 click)
+unintentionally while turning the wheel, so these clicks are now
+ignored. You can customize this with the mouse-wheel-click-event and
+mouse-wheel-inhibit-click-time variables.
+
+*** mouse-wheels can now scroll a specific fraction of the window
+(rather than a fixed number of lines) and the scrolling is `progressive'.
+
+** Multilingual Environment (Mule) changes:
+
+*** You can disable character translation for a file using the -*-
+construct. Include `enable-character-translation: nil' inside the
+-*-...-*- to disable any character translation that may happen by
+various global and per-coding-system translation tables. You can also
+specify it in a local variable list at the end of the file. For
+shortcut, instead of using this long variable name, you can append the
+character "!" at the end of coding-system name specified in -*-
+construct or in a local variable list. For example, if a file has the
+following header, it is decoded by the coding system `iso-latin-1'
+without any character translation:
+;; -*- coding: iso-latin-1!; -*-
+
+*** Language environment and various default coding systems are setup
+more correctly according to the current locale name. If the locale
+name doesn't specify a charset, the default is what glibc defines.
+This change can result in using the different coding systems as
+default in some locale (e.g. vi_VN).
+
+*** The keyboard-coding-system is now automatically set based on your
+current locale settings if you are not using a window system. This
+can mean that the META key doesn't work but generates non-ASCII
+characters instead, depending on how the terminal (or terminal
+emulator) works. Use `set-keyboard-coding-system' (or customize
+keyboard-coding-system) if you prefer META to work (the old default)
+or if the locale doesn't describe the character set actually generated
+by the keyboard. See Info node `Unibyte Mode'.
+
+*** The new command `set-file-name-coding-system' (C-x RET F) sets
+coding system for encoding and decoding file names. A new menu item
+(Options->Mule->Set Coding Systems->For File Name) invokes this
+command.
+
+*** The new command `revert-buffer-with-coding-system' (C-x RET r)
+revisits the current file using a coding system that you specify.
+
+*** New command `recode-region' decodes the region again by a specified
+coding system.
+
+*** The new command `recode-file-name' changes the encoding of the name
+of a file.
+
+*** New command `ucs-insert' inserts a character specified by its
+unicode.
+
+*** New command quail-show-key shows what key (or key sequence) to type
+in the current input method to input a character at point.
+
+*** Limited support for character `unification' has been added.
+Emacs now knows how to translate between different representations of
+the same characters in various Emacs charsets according to standard
+Unicode mappings. This applies mainly to characters in the ISO 8859
+sets plus some other 8-bit sets, but can be extended. For instance,
+translation works amongst the Emacs ...-iso8859-... charsets and the
+mule-unicode-... ones.
+
+By default this translation happens automatically on encoding.
+Self-inserting characters are translated to make the input conformant
+with the encoding of the buffer in which it's being used, where
+possible.
+
+You can force a more complete unification with the user option
+unify-8859-on-decoding-mode. That maps all the Latin-N character sets
+into Unicode characters (from the latin-iso8859-1 and
+mule-unicode-0100-24ff charsets) on decoding. Note that this mode
+will often effectively clobber data with an iso-2022 encoding.
+
+*** New language environments (set up automatically according to the
+locale): Belarusian, Bulgarian, Chinese-EUC-TW, Croatian, Esperanto,
+French, Georgian, Italian, Latin-7, Latvian, Lithuanian, Malayalam,
+Russian, Russian, Slovenian, Swedish, Tajik, Tamil, UTF-8,Ukrainian,
+Welsh,Latin-6, Windows-1255.
+
+*** New input methods: latin-alt-postfix, latin-postfix, latin-prefix,
+belarusian, bulgarian-bds, bulgarian-phonetic, chinese-sisheng (for
+Chinese Pinyin characters), croatian, dutch, georgian, latvian-keyboard,
+lithuanian-numeric, lithuanian-keyboard, malayalam-inscript, rfc1345,
+russian-computer, sgml, slovenian, tamil-inscript, ukrainian-computer,
+ucs, vietnamese-telex, welsh.
+
+*** There is support for decoding Greek and Cyrillic characters into
+either Unicode (the mule-unicode charsets) or the iso-8859 charsets,
+when possible. The latter are more space-efficient.
+ This is controlled by user option utf-fragment-on-decoding.
+
+*** Improved Thai support. A new minor mode `thai-word-mode' (which is
+automatically activated if you select Thai as a language
+environment) changes key bindings of most word-oriented commands to
+versions which recognize Thai words. Affected commands are
+ M-f (forward-word)
+ M-b (backward-word)
+ M-d (kill-word)
+ M-DEL (backward-kill-word)
+ M-t (transpose-words)
+ M-q (fill-paragraph)
+
+*** Indian support has been updated.
+The in-is13194 coding system is now Unicode-based. CDAC fonts are
+assumed. There is a framework for supporting various Indian scripts,
+but currently only Devanagari, Malayalam and Tamil are supported.
+
+*** The utf-8/16 coding systems have been enhanced.
+By default, untranslatable utf-8 sequences are simply composed into
+single quasi-characters. User option `utf-translate-cjk-mode' (it is
+turned on by default) arranges to translate many utf-8 CJK character
+sequences into real Emacs characters in a similar way to the Mule-UCS
+system. As this loads a fairly big data on demand, people who are not
+interested in CJK characters may want to customize it to nil.
+You can augment/amend the CJK translation via hash tables
+`ucs-mule-cjk-to-unicode' and `ucs-unicode-to-mule-cjk'. The utf-8
+coding system now also encodes characters from most of Emacs's
+one-dimensional internal charsets, specifically the ISO-8859 ones.
+The utf-16 coding system is affected similarly.
+
+*** A UTF-7 coding system is available in the library `utf-7'.
+
+*** A new coding system `euc-tw' has been added for traditional Chinese
+in CNS encoding; it accepts both Big 5 and CNS as input; on saving,
+Big 5 is then converted to CNS.
+
+*** Many new coding systems are available in the `code-pages' library.
+These include complete versions of most of those in codepage.el, based
+on Unicode mappings. `codepage-setup' is now obsolete and is used
+only in the MS-DOS port of Emacs. All coding systems defined in
+`code-pages' are auto-loaded.
+
+*** New variable `utf-translate-cjk-unicode-range' controls which
+Unicode characters to translate in `utf-translate-cjk-mode'.
+
+*** iso-10646-1 (`Unicode') fonts can be used to display any range of
+characters encodable by the utf-8 coding system. Just specify the
+fontset appropriately.
+
+** Customize changes:
+
+*** Custom themes are collections of customize options. Create a
+custom theme with M-x customize-create-theme. Use M-x load-theme to
+load and enable a theme, and M-x disable-theme to disable it. Use M-x
+enable-theme to enable a disabled theme.
+
+*** The commands M-x customize-face and M-x customize-face-other-window
+now look at the character after point. If a face or faces are
+specified for that character, the commands by default customize those
+faces.
+
+*** The face-customization widget has been reworked to be less confusing.
+In particular, when you enable a face attribute using the corresponding
+check-box, there's no longer a redundant `*' option in value selection
+for that attribute; the values you can choose are only those which make
+sense for the attribute. When an attribute is de-selected by unchecking
+its check-box, then the (now ignored, but still present temporarily in
+case you re-select the attribute) value is hidden.
+
+*** When you set or reset a variable's value in a Customize buffer,
+the previous value becomes the "backup value" of the variable.
+You can go back to that backup value by selecting "Use Backup Value"
+under the "[State]" button.
+
+** Dired mode:
+
+*** In Dired's ! command (dired-do-shell-command), `*' and `?' now
+control substitution of the file names only when they are surrounded
+by whitespace. This means you can now use them as shell wildcards
+too. If you want to use just plain `*' as a wildcard, type `*""'; the
+double quotes make no difference in the shell, but they prevent
+special treatment in `dired-do-shell-command'.
+
+*** The Dired command `dired-goto-file' is now bound to j, not M-g.
+This is to avoid hiding the global key binding of M-g.
+
+*** New faces dired-header, dired-mark, dired-marked, dired-flagged,
+dired-ignored, dired-directory, dired-symlink, dired-warning
+introduced for Dired mode instead of font-lock faces.
+
+*** New Dired command `dired-compare-directories' marks files
+with different file attributes in two dired buffers.
+
+*** New Dired command `dired-do-touch' (bound to T) changes timestamps
+of marked files with the value entered in the minibuffer.
+
+*** In Dired, the w command now stores the current line's file name
+into the kill ring. With a zero prefix arg, it stores the absolute file name.
+
+*** In Dired-x, Omitting files is now a minor mode, dired-omit-mode.
+
+The mode toggling command is bound to M-o. A new command
+dired-mark-omitted, bound to * O, marks omitted files. The variable
+dired-omit-files-p is obsoleted, use the mode toggling function
+instead.
+
+*** The variables dired-free-space-program and dired-free-space-args
+have been renamed to directory-free-space-program and
+directory-free-space-args, and they now apply whenever Emacs puts a
+directory listing into a buffer.
+
+** Comint changes:
+
+*** The new INSIDE_EMACS environment variable is set to "t" in subshells
+running inside Emacs. This supersedes the EMACS environment variable,
+which will be removed in a future Emacs release. Programs that need
+to know whether they are started inside Emacs should check INSIDE_EMACS
+instead of EMACS.
+
+*** The comint prompt can now be made read-only, using the new user
+option `comint-prompt-read-only'. This is not enabled by default,
+except in IELM buffers. The read-only status of IELM prompts can be
+controlled with the new user option `ielm-prompt-read-only', which
+overrides `comint-prompt-read-only'.
+
+The new commands `comint-kill-whole-line' and `comint-kill-region'
+support editing comint buffers with read-only prompts.
+
+`comint-kill-whole-line' is like `kill-whole-line', but ignores both
+read-only and field properties. Hence, it always kill entire
+lines, including any prompts.
+
+`comint-kill-region' is like `kill-region', except that it ignores
+read-only properties, if it is safe to do so. This means that if any
+part of a prompt is deleted, then the entire prompt must be deleted
+and that all prompts must stay at the beginning of a line. If this is
+not the case, then `comint-kill-region' behaves just like
+`kill-region' if read-only properties are involved: it copies the text
+to the kill-ring, but does not delete it.
+
+*** The new command `comint-insert-previous-argument' in comint-derived
+modes (shell-mode, etc.) inserts arguments from previous command lines,
+like bash's `ESC .' binding. It is bound by default to `C-c .', but
+otherwise behaves quite similarly to the bash version.
+
+*** `comint-use-prompt-regexp-instead-of-fields' has been renamed
+`comint-use-prompt-regexp'. The old name has been kept as an alias,
+but declared obsolete.
+
+** M-x Compile changes:
+
+*** M-x compile has become more robust and reliable
+
+Quite a few more kinds of messages are recognized. Messages that are
+recognized as warnings or informational come in orange or green, instead of
+red. Informational messages are by default skipped with `next-error'
+(controlled by `compilation-skip-threshold').
+
+Location data is collected on the fly as the *compilation* buffer changes.
+This means you could modify messages to make them point to different files.
+This also means you can not go to locations of messages you may have deleted.
+
+The variable `compilation-error-regexp-alist' has now become customizable. If
+you had added your own regexps to this, you'll probably need to include a
+leading `^', otherwise they'll match anywhere on a line. There is now also a
+`compilation-mode-font-lock-keywords' and it nicely handles all the checks
+that configure outputs and -o options so you see at a glance where you are.
+
+The new file etc/compilation.txt gives examples of each type of message.
+
+*** New user option `compilation-environment'.
+This option allows you to specify environment variables for inferior
+compilation processes without affecting the environment that all
+subprocesses inherit.
+
+*** New user option `compilation-disable-input'.
+If this is non-nil, send end-of-file as compilation process input.
+
+*** New options `next-error-highlight' and `next-error-highlight-no-select'
+specify the method of highlighting of the corresponding source line
+in new face `next-error'.
+
+*** A new minor mode `next-error-follow-minor-mode' can be used in
+compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the
+modes that can use `next-error'). In this mode, cursor motion in the
+buffer causes automatic display in another window of the corresponding
+matches, compilation errors, etc. This minor mode can be toggled with
+C-c C-f.
+
+*** When the left fringe is displayed, an arrow points to current message in
+the compilation buffer.
+
+*** The new variable `compilation-context-lines' controls lines of leading
+context before the current message. If nil and the left fringe is displayed,
+it doesn't scroll the compilation output window. If there is no left fringe,
+no arrow is displayed and a value of nil means display the message at the top
+of the window.
+
+** Occur mode changes:
+
+*** The new command `multi-occur' is just like `occur', except it can
+search multiple buffers. There is also a new command
+`multi-occur-in-matching-buffers' which allows you to specify the
+buffers to search by their filenames or buffer names. Internally,
+Occur mode has been rewritten, and now uses font-lock, among other
+changes.
+
+*** You can now use next-error (C-x `) and previous-error to advance to
+the next/previous matching line found by M-x occur.
+
+*** In the *Occur* buffer, `o' switches to it in another window, and
+C-o displays the current line's occurrence in another window without
+switching to it.
+
+** Grep changes:
+
+*** Grep has been decoupled from compilation mode setup.
+
+There's a new separate package grep.el, with its own submenu and
+customization group.
+
+*** `grep-find' is now also available under the name `find-grep' where
+people knowing `find-grep-dired' would probably expect it.
+
+*** New commands `lgrep' (local grep) and `rgrep' (recursive grep) are
+more user-friendly versions of `grep' and `grep-find', which prompt
+separately for the regular expression to match, the files to search,
+and the base directory for the search. Case sensitivity of the
+search is controlled by the current value of `case-fold-search'.
+
+These commands build the shell commands based on the new variables
+`grep-template' (lgrep) and `grep-find-template' (rgrep).
+
+The files to search can use aliases defined in `grep-files-aliases'.
+
+Subdirectories listed in `grep-find-ignored-directories' such as those
+typically used by various version control systems, like CVS and arch,
+are automatically skipped by `rgrep'.
+
+*** The grep commands provide highlighting support.
+
+Hits are fontified in green, and hits in binary files in orange. Grep buffers
+can be saved and automatically revisited.
+
+*** New option `grep-highlight-matches' highlights matches in *grep*
+buffer. It uses a special feature of some grep programs which accept
+--color option to output markers around matches. When going to the next
+match with `next-error' the exact match is highlighted in the source
+buffer. Otherwise, if `grep-highlight-matches' is nil, the whole
+source line is highlighted.
+
+*** New key bindings in grep output window:
+SPC and DEL scrolls window up and down. C-n and C-p moves to next and
+previous match in the grep window. RET jumps to the source line of
+the current match. `n' and `p' shows next and previous match in
+other window, but does not switch buffer. `{' and `}' jumps to the
+previous or next file in the grep output. TAB also jumps to the next
+file.
+
+*** M-x grep now tries to avoid appending `/dev/null' to the command line
+by using GNU grep `-H' option instead. M-x grep automatically
+detects whether this is possible or not the first time it is invoked.
+When `-H' is used, the grep command line supplied by the user is passed
+unchanged to the system to execute, which allows more complicated
+command lines to be used than was possible before.
+
+*** The new variables `grep-window-height' and `grep-scroll-output' override
+the corresponding compilation mode settings, for grep commands only.
+
+** Cursor display changes:
+
+*** Emacs can produce an underscore-like (horizontal bar) cursor.
+The underscore cursor is set by putting `(cursor-type . hbar)' in
+default-frame-alist. It supports variable heights, like the `bar'
+cursor does.
+
+*** The variable `cursor-in-non-selected-windows' can now be set to any
+of the recognized cursor types.
+
+*** Display of hollow cursors now obeys the buffer-local value (if any)
+of `cursor-in-non-selected-windows' in the buffer that the cursor
+appears in.
+
+*** On text terminals, the variable `visible-cursor' controls whether Emacs
+uses the "very visible" cursor (the default) or the normal cursor.
+
+*** The X resource cursorBlink can be used to turn off cursor blinking.
+
+*** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is
+now controlled by the variable `blink-cursor-alist'.
+
+** X Windows Support:
+
+*** Emacs now supports drag and drop for X. Dropping a file on a window
+opens it, dropping text inserts the text. Dropping a file on a dired
+buffer copies or moves the file to that directory.
+
+*** Under X11, it is possible to swap Alt and Meta (and Super and Hyper).
+The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym',
+and `x-super-keysym' can be used to choose which keysyms Emacs should
+use for the modifiers. For example, the following two lines swap
+Meta and Alt:
+ (setq x-alt-keysym 'meta)
+ (setq x-meta-keysym 'alt)
+
+*** The X resource useXIM can be used to turn off use of XIM, which can
+speed up Emacs with slow networking to the X server.
+
+If the configure option `--without-xim' was used to turn off use of
+XIM by default, the X resource useXIM can be used to turn it on.
+
+*** The new variable `x-select-request-type' controls how Emacs
+requests X selection. The default value is nil, which means that
+Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING,
+and use the more appropriately result.
+
+*** The scrollbar under LessTif or Motif has a smoother drag-scrolling.
+On the other hand, the size of the thumb does not represent the actual
+amount of text shown any more (only a crude approximation of it).
+
+** Xterm support:
+
+*** If you enable Xterm Mouse mode, Emacs will respond to mouse clicks
+on the mode line, header line and display margin, when run in an xterm.
+
+*** Improved key bindings support when running in an xterm.
+When Emacs is running in an xterm more key bindings are available.
+The following should work:
+{C,S,C-S,A}-{right,left,up,down,prior,next,delete,insert,F1-12}.
+These key bindings work on xterm from X.org 6.8 (and later versions),
+they might not work on some older versions of xterm, or on some
+proprietary versions.
+The various keys generated by xterm when the "modifyOtherKeys"
+resource is set are also supported.
+
+** Character terminal color support changes:
+
+*** The new command-line option --color=MODE lets you specify a standard
+mode for a tty color support. It is meant to be used on character
+terminals whose capabilities are not set correctly in the terminal
+database, or with terminal emulators which support colors, but don't
+set the TERM environment variable to a name of a color-capable
+terminal. "emacs --color" uses the same color commands as GNU `ls'
+when invoked with "ls --color", so if your terminal can support colors
+in "ls --color", it will support "emacs --color" as well. See the
+user manual for the possible values of the MODE parameter.
+
+*** Emacs now supports several character terminals which provide more
+than 8 colors. For example, for `xterm', 16-color, 88-color, and
+256-color modes are supported. Emacs automatically notes at startup
+the extended number of colors, and defines the appropriate entries for
+all of these colors.
+
+*** Emacs now uses the full range of available colors for the default
+faces when running on a color terminal, including 16-, 88-, and
+256-color xterms. This means that when you run "emacs -nw" on an
+88-color or 256-color xterm, you will see essentially the same face
+colors as on X.
+
+*** There's a new support for colors on `rxvt' terminal emulator.
+
+** ebnf2ps changes:
+
+*** New option `ebnf-arrow-extra-width' which specify extra width for arrow
+shape drawing.
+The extra width is used to avoid that the arrowhead and the terminal border
+overlap. It depends on `ebnf-arrow-shape' and `ebnf-line-width'.
+
+*** New option `ebnf-arrow-scale' which specify the arrow scale.
+Values lower than 1.0, shrink the arrow.
+Values greater than 1.0, expand the arrow.
+\f
+* New Modes and Packages in Emacs 22.1
+
+** CUA mode is now part of the Emacs distribution.
+
+The new cua package provides CUA-like keybindings using C-x for
+cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo.
+With cua, the region can be set and extended using shifted movement
+keys (like pc-selection-mode) and typed text replaces the active
+region (like delete-selection-mode). Do not enable these modes with
+cua-mode. Customize the variable `cua-mode' to enable cua.
+
+The cua-selection-mode enables the CUA keybindings for the region but
+does not change the bindings for C-z/C-x/C-c/C-v. It can be used as a
+replacement for pc-selection-mode.
+
+In addition, cua provides unified rectangle support with visible
+rectangle highlighting: Use C-return to start a rectangle, extend it
+using the movement commands (or mouse-3), and cut or copy it using C-x
+or C-c (using C-w and M-w also works).
+
+Use M-o and M-c to `open' or `close' the rectangle, use M-b or M-f, to
+fill it with blanks or another character, use M-u or M-l to upcase or
+downcase the rectangle, use M-i to increment the numbers in the
+rectangle, use M-n to fill the rectangle with a numeric sequence (such
+as 10 20 30...), use M-r to replace a regexp in the rectangle, and use
+M-' or M-/ to restrict command on the rectangle to a subset of the
+rows. See the commentary in cua-base.el for more rectangle commands.
+
+Cua also provides unified support for registers: Use a numeric
+prefix argument between 0 and 9, i.e. M-0 .. M-9, for C-x, C-c, and
+C-v to cut or copy into register 0-9, or paste from register 0-9.
+
+The last text deleted (not killed) is automatically stored in
+register 0. This includes text deleted by typing text.
+
+Finally, cua provides a global mark which is set using S-C-space.
+When the global mark is active, any text which is cut or copied is
+automatically inserted at the global mark position. See the
+commentary in cua-base.el for more global mark related commands.
+
+The features of cua also works with the standard Emacs bindings for
+kill, copy, yank, and undo. If you want to use cua mode, but don't
+want the C-x, C-c, C-v, and C-z bindings, you can customize the
+`cua-enable-cua-keys' variable.
+
+Note: This version of cua mode is not backwards compatible with older
+versions of cua.el and cua-mode.el. To ensure proper operation, you
+must remove older versions of cua.el or cua-mode.el as well as the
+loading and customization of those packages from the .emacs file.
+
+** Tramp is now part of the distribution.
+
+This package is similar to Ange-FTP: it allows you to edit remote
+files. But whereas Ange-FTP uses FTP to access the remote host,
+Tramp uses a shell connection. The shell connection is always used
+for filename completion and directory listings and suchlike, but for
+the actual file transfer, you can choose between the so-called
+`inline' methods (which transfer the files through the shell
+connection using base64 or uu encoding) and the `out-of-band' methods
+(which invoke an external copying program such as `rcp' or `scp' or
+`rsync' to do the copying).
+
+Shell connections can be acquired via `rsh', `ssh', `telnet' and also
+`su' and `sudo'. Ange-FTP is still supported via the `ftp' method.
+
+If you want to disable Tramp you should set
+
+ (setq tramp-default-method "ftp")
+
+Removing Tramp, and re-enabling Ange-FTP, can be achieved by M-x
+tramp-unload-tramp.
+
+** The image-dired.el package allows you to easily view, tag and in
+other ways manipulate image files and their thumbnails, using dired as
+the main interface. Image-Dired provides functionality to generate
+simple image galleries.
+
+** Image files are normally visited in Image mode, which lets you toggle
+between viewing the image and viewing the text using C-c C-c.
+
+** The new python.el package is used to edit Python and Jython programs.
+
+** The URL package (which had been part of W3) is now part of Emacs.
+
+** Calc is now part of the Emacs distribution.
+
+Calc is an advanced desk calculator and mathematical tool written in
+Emacs Lisp. The prefix for Calc has been changed to `C-x *' and Calc
+can be started with `C-x * *'. The Calc manual is separate from the
+Emacs manual; within Emacs, type "C-h i m calc RET" to read the
+manual. A reference card is available in `etc/calccard.tex' and
+`etc/calccard.ps'.
+
+** Org mode is now part of the Emacs distribution
+
+Org mode is a mode for keeping notes, maintaining ToDo lists, and
+doing project planning with a fast and effective plain-text system.
+It also contains a plain-text table editor with spreadsheet-like
+capabilities.
+
+The Org mode table editor can be integrated into any major mode by
+activating the minor mode, Orgtbl mode.
+
+The documentation for org-mode is in a separate manual; within Emacs,
+type "C-h i m org RET" to read that manual. A reference card is
+available in `etc/orgcard.tex' and `etc/orgcard.ps'.
+
+** ERC is now part of the Emacs distribution.
+
+ERC is a powerful, modular, and extensible IRC client for Emacs.
+
+To see what modules are available, type
+M-x customize-option erc-modules RET.
+
+To start an IRC session with ERC, type M-x erc, and follow the prompts
+for server, port, and nick.
+
+** Rcirc is now part of the Emacs distribution.
+
+Rcirc is an Internet relay chat (IRC) client. It supports
+simultaneous connections to multiple IRC servers. Each discussion
+takes place in its own buffer. For each connection you can join
+several channels (many-to-many) and participate in private
+(one-to-one) chats. Both channel and private chats are contained in
+separate buffers.
+
+To start an IRC session using the default parameters, type M-x irc.
+If you type C-u M-x irc, it prompts you for the server, nick, port and
+startup channel parameters before connecting.
+
+** The new package ibuffer provides a powerful, completely
+customizable replacement for buff-menu.el.
+
+** Newsticker is now part of the Emacs distribution.
+
+Newsticker asynchronously retrieves headlines (RSS) from a list of news
+sites, prepares these headlines for reading, and allows for loading the
+corresponding articles in a web browser. Its documentation is in a
+separate manual.
+
+** The wdired.el package allows you to use normal editing commands on Dired
+buffers to change filenames, permissions, etc...
+
+** Ido mode is now part of the Emacs distribution.
+
+The ido (interactively do) package is an extension of the iswitchb
+package to do interactive opening of files and directories in addition
+to interactive buffer switching. Ido is a superset of iswitchb (with
+a few exceptions), so don't enable both packages.
+
+** The new global minor mode `file-name-shadow-mode' modifies the way
+filenames being entered by the user in the minibuffer are displayed, so
+that it's clear when part of the entered filename will be ignored due to
+Emacs' filename parsing rules. The ignored portion can be made dim,
+invisible, or otherwise less visually noticeable. The display method can
+be displayed by customizing the variable `file-name-shadow-properties'.
+
+** Emacs' keyboard macro facilities have been enhanced by the new
+kmacro package.
+
+Keyboard macros are now defined and executed via the F3 and F4 keys:
+F3 starts a macro, F4 ends the macro, and pressing F4 again executes
+the last macro. While defining the macro, F3 inserts a counter value
+which automatically increments every time the macro is executed.
+
+There is now a keyboard macro ring which stores the most recently
+defined macros.
+
+The C-x C-k sequence is now a prefix for the kmacro keymap which
+defines bindings for moving through the keyboard macro ring,
+C-x C-k C-p and C-x C-k C-n, editing the last macro C-x C-k C-e,
+manipulating the macro counter and format via C-x C-k C-c,
+C-x C-k C-a, and C-x C-k C-f. See the commentary in kmacro.el
+for more commands.
+
+The original macro bindings C-x (, C-x ), and C-x e are still
+available, but they now interface to the keyboard macro ring too.
+
+The C-x e command now automatically terminates the current macro
+before calling it, if used while defining a macro.
+
+In addition, when ending or calling a macro with C-x e, the macro can
+be repeated immediately by typing just the `e'. You can customize
+this behavior via the variables kmacro-call-repeat-key and
+kmacro-call-repeat-with-arg.
+
+Keyboard macros can now be debugged and edited interactively.
+C-x C-k SPC steps through the last keyboard macro one key sequence
+at a time, prompting for the actions to take.
+
+** The new keypad setup package provides several common bindings for
+the numeric keypad which is available on most keyboards. The numeric
+keypad typically has the digits 0 to 9, a decimal point, keys marked
++, -, /, and *, an Enter key, and a NumLock toggle key. The keypad
+package only controls the use of the digit and decimal keys.
+
+By customizing the variables `keypad-setup', `keypad-shifted-setup',
+`keypad-numlock-setup', and `keypad-numlock-shifted-setup', or by
+using the function `keypad-setup', you can rebind all digit keys and
+the decimal key of the keypad in one step for each of the four
+possible combinations of the Shift key state (not pressed/pressed) and
+the NumLock toggle state (off/on).
+
+The choices for the keypad keys in each of the above states are:
+`Plain numeric keypad' where the keys generates plain digits,
+`Numeric keypad with decimal key' where the character produced by the
+decimal key can be customized individually (for internationalization),
+`Numeric Prefix Arg' where the keypad keys produce numeric prefix args
+for Emacs editing commands, `Cursor keys' and `Shifted Cursor keys'
+where the keys work like (shifted) arrow keys, home/end, etc., and
+`Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.)
+are left unspecified and can be bound individually through the global
+or local keymaps.
+
+** The printing package is now part of the Emacs distribution.
+
+If you enable the printing package by including (require 'printing) in
+the .emacs file, the normal Print item on the File menu is replaced
+with a Print sub-menu which allows you to preview output through
+ghostview, use ghostscript to print (if you don't have a PostScript
+printer) or send directly to printer a PostScript code generated by
+`ps-print' package. Use M-x pr-help for more information.
+
+** The new package longlines.el provides a minor mode for editing text
+files composed of long lines, based on the `use-hard-newlines'
+mechanism. The long lines are broken up by inserting soft newlines,
+which are automatically removed when saving the file to disk or
+copying into the kill ring, clipboard, etc. By default, Longlines
+mode inserts soft newlines automatically during editing, a behavior
+referred to as "soft word wrap" in other text editors. This is
+similar to Refill mode, but more reliable. To turn the word wrap
+feature off, set `longlines-auto-wrap' to nil.
+
+** SES mode (ses-mode) is a new major mode for creating and editing
+spreadsheet files. Besides the usual Emacs features (intuitive command
+letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers
+viral immunity and import/export of tab-separated values.
+
+** The new package table.el implements editable, WYSIWYG, embedded
+`text tables' in Emacs buffers. It simulates the effect of putting
+these tables in a special major mode. The package emulates WYSIWYG
+table editing available in modern word processors. The package also
+can generate a table source in typesetting and markup languages such
+as latex and html from the visually laid out text table.
+
+** Filesets are collections of files. You can define a fileset in
+various ways, such as based on a directory tree or based on
+program files that include other program files.
+
+Once you have defined a fileset, you can perform various operations on
+all the files in it, such as visiting them or searching and replacing
+in them.
+
+** The minor mode Reveal mode makes text visible on the fly as you
+move your cursor into hidden regions of the buffer.
+It should work with any package that uses overlays to hide parts
+of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ...
+
+There is also Global Reveal mode which affects all buffers.
+
+** New minor mode, Visible mode, toggles invisibility in the current buffer.
+When enabled, it makes all invisible text visible. When disabled, it
+restores the previous value of `buffer-invisibility-spec'.
+
+** The new package flymake.el does on-the-fly syntax checking of program
+source files. See the Flymake's Info manual for more details.
+
+** savehist saves minibuffer histories between sessions.
+To use this feature, turn on savehist-mode in your `.emacs' file.
+
+** The ruler-mode.el library provides a minor mode for displaying an
+"active" ruler in the header line. You can use the mouse to visually
+change the `fill-column', `window-margins' and `tab-stop-list'
+settings.
+
+** The file t-mouse.el is now part of Emacs and provides access to mouse
+events from the console. It still requires gpm to work but has been updated
+for Emacs 22. In particular, the mode-line is now position sensitive.
+
+** The new package scroll-lock.el provides the Scroll Lock minor mode
+for pager-like scrolling. Keys which normally move point by line or
+paragraph will scroll the buffer by the respective amount of lines
+instead and point will be kept vertically fixed relative to window
+boundaries during scrolling.
+
+** The new global minor mode `size-indication-mode' (off by default)
+shows the size of accessible part of the buffer on the mode line.
+
+** The new package conf-mode.el handles thousands of configuration files, with
+varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value,
+var : value, var value or keyword var value) and sections ([section] or
+section { }). Many files under /etc/, or with suffixes like .cf through
+.config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are
+recognized.
+
+** GDB-Script-mode is used for files like .gdbinit.
+
+** The new package dns-mode.el adds syntax highlighting of DNS master files.
+It is a modern replacement for zone-mode.el, which is now obsolete.
+
+** `cfengine-mode' is a major mode for editing GNU Cfengine
+configuration files.
+
+** The TCL package tcl-mode.el was replaced by tcl.el.
+This was actually done in Emacs-21.1, and was not documented.
+\f
+* Changes in Specialized Modes and Packages in Emacs 22.1:
+
+** Changes in Dired
+
+*** Bindings for Image-Dired added.
+Several new keybindings, all starting with the C-t prefix, have been
+added to Dired. They are all bound to commands in Image-Dired. As a
+starting point, mark some image files in a dired buffer and do C-t d
+to display thumbnails of them in a separate buffer.
+
+** Info mode changes
+
+*** Images in Info pages are supported.
+
+Info pages show embedded images, in Emacs frames with image support.
+Info documentation that includes images, processed with makeinfo
+version 4.7 or newer, compiles to Info pages with embedded images.
+
+*** `Info-index' offers completion.
+
+*** http and ftp links in Info are now operational: they look like cross
+references and following them calls `browse-url'.
+
+*** isearch in Info uses Info-search and searches through multiple nodes.
+
+Before leaving the initial Info node isearch fails once with the error
+message [initial node], and with subsequent C-s/C-r continues through
+other nodes. When isearch fails for the rest of the manual, it wraps
+around the whole manual to the top/final node. The user option
+`Info-isearch-search' controls whether to use Info-search for isearch,
+or the default isearch search function that wraps around the current
+Info node.
+
+*** New search commands: `Info-search-case-sensitively' (bound to S),
+`Info-search-backward', and `Info-search-next' which repeats the last
+search without prompting for a new search string.
+
+*** New command `info-apropos' searches the indices of the known
+Info files on your system for a string, and builds a menu of the
+possible matches.
+
+*** New command `Info-history-forward' (bound to r and new toolbar icon)
+moves forward in history to the node you returned from after using
+`Info-history-back' (renamed from `Info-last').
+
+*** New command `Info-history' (bound to L) displays a menu of visited nodes.
+
+*** New command `Info-toc' (bound to T) creates a node with table of contents
+from the tree structure of menus of the current Info file.
+
+*** New command `Info-copy-current-node-name' (bound to w) copies
+the current Info node name into the kill ring. With a zero prefix
+arg, puts the node name inside the `info' function call.
+
+*** New face `info-xref-visited' distinguishes visited nodes from unvisited
+and a new option `Info-fontify-visited-nodes' to control this.
+
+*** A numeric prefix argument of `info' selects an Info buffer
+with the number appended to the `*info*' buffer name (e.g. "*info*<2>").
+
+*** Info now hides node names in menus and cross references by default.
+
+If you prefer the old behavior, you can set the new user option
+`Info-hide-note-references' to nil.
+
+*** The default value for `Info-scroll-prefer-subnodes' is now nil.
+
+** Emacs server changes
+
+*** You can have several Emacs servers on the same machine.
+
+ % emacs --eval '(setq server-name "foo")' -f server-start &
+ % emacs --eval '(setq server-name "bar")' -f server-start &
+ % emacsclient -s foo file1
+ % emacsclient -s bar file2
+
+*** The `emacsclient' command understands the options `--eval' and
+`--display' which tell Emacs respectively to evaluate the given Lisp
+expression and to use the given display when visiting files.
+
+*** User option `server-mode' can be used to start a server process.
+
+** Locate changes
+
+*** By default, reverting the *Locate* buffer now just runs the last
+`locate' command back over again without offering to update the locate
+database (which normally only works if you have root privileges). If
+you prefer the old behavior, set the new customizable option
+`locate-update-when-revert' to t.
+
+** Desktop package
+
+*** Desktop saving is now a minor mode, `desktop-save-mode'.
+
+*** The variable `desktop-enable' is obsolete.
+
+Customize `desktop-save-mode' to enable desktop saving.
+
+*** Buffers are saved in the desktop file in the same order as that in the
+buffer list.
+
+*** The desktop package can be customized to restore only some buffers
+immediately, remaining buffers are restored lazily (when Emacs is
+idle).
+
+*** New command line option --no-desktop
+
+*** New commands:
+ - desktop-revert reverts to the last loaded desktop.
+ - desktop-change-dir kills current desktop and loads a new.
+ - desktop-save-in-desktop-dir saves desktop in the directory from which
+ it was loaded.
+ - desktop-lazy-complete runs the desktop load to completion.
+ - desktop-lazy-abort aborts lazy loading of the desktop.
+
+*** New customizable variables:
+ - desktop-save. Determines whether the desktop should be saved when it is
+ killed.
+ - desktop-file-name-format. Format in which desktop file names should be saved.
+ - desktop-path. List of directories in which to lookup the desktop file.
+ - desktop-locals-to-save. List of local variables to save.
+ - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear.
+ - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear'
+ should not delete.
+ - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are
+ restored lazily (when Emacs is idle).
+ - desktop-lazy-verbose. Verbose reporting of lazily created buffers.
+ - desktop-lazy-idle-delay. Idle delay before starting to create buffers.
+
+*** New hooks:
+ - desktop-after-read-hook run after a desktop is loaded.
+ - desktop-no-desktop-file-hook run when no desktop file is found.
+
+** Recentf changes
+
+The recent file list is now automatically cleaned up when recentf mode is
+enabled. The new option `recentf-auto-cleanup' controls when to do
+automatic cleanup.
+
+The ten most recent files can be quickly opened by using the shortcut
+keys 1 to 9, and 0, when the recent list is displayed in a buffer via
+the `recentf-open-files', or `recentf-open-more-files' commands.
+
+The `recentf-keep' option replaces `recentf-keep-non-readable-files-p'
+and provides a more general mechanism to customize which file names to
+keep in the recent list.
+
+With the more advanced option `recentf-filename-handlers', you can
+specify functions that successively transform recent file names. For
+example, if set to `file-truename' plus `abbreviate-file-name', the
+same file will not be in the recent list with different symbolic
+links, and the file name will be abbreviated.
+
+To follow naming convention, `recentf-menu-append-commands-flag'
+replaces the misnamed option `recentf-menu-append-commands-p'. The
+old name remains available as alias, but has been marked obsolete.
+
+** Auto-Revert changes
+
+*** You can now use Auto Revert mode to `tail' a file.
+
+If point is at the end of a file buffer before reverting, Auto Revert
+mode keeps it at the end after reverting. Similarly if point is
+displayed at the end of a file buffer in any window, it stays at the end
+of the buffer in that window. This allows you to "tail" a file: just
+put point at the end of the buffer and it stays there. This rule
+applies to file buffers. For non-file buffers, the behavior can be mode
+dependent.
+
+If you are sure that the file will only change by growing at the end,
+then you can tail the file more efficiently by using the new minor
+mode Auto Revert Tail mode. The function `auto-revert-tail-mode'
+toggles this mode.
+
+*** Auto Revert mode is now more careful to avoid excessive reverts and
+other potential problems when deciding which non-file buffers to
+revert. This matters especially if Global Auto Revert mode is enabled
+and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert
+mode only reverts a non-file buffer if the buffer has a non-nil
+`revert-buffer-function' and a non-nil `buffer-stale-function', which
+decides whether the buffer should be reverted. Currently, this means
+that auto reverting works for Dired buffers (although this may not
+work properly on all operating systems) and for the Buffer Menu.
+
+*** If the new user option `auto-revert-check-vc-info' is non-nil, Auto
+Revert mode reliably updates version control info (such as the version
+control number in the mode line), in all version controlled buffers in
+which it is active. If the option is nil, the default, then this info
+only gets updated whenever the buffer gets reverted.
+
+** Changes in Shell Mode
+
+*** Shell output normally scrolls so that the input line is at the
+bottom of the window -- thus showing the maximum possible text. (This
+is similar to the way sequential output to a terminal works.)
+
+** Changes in Hi Lock
+
+*** hi-lock-mode now only affects a single buffer, and a new function
+`global-hi-lock-mode' enables Hi Lock in all buffers. By default, if
+hi-lock-mode is used in what appears to be the initialization file, a
+warning message suggests to use global-hi-lock-mode instead. However,
+if the new variable `hi-lock-archaic-interface-deduce' is non-nil,
+using hi-lock-mode in an initialization file will turn on Hi Lock in all
+buffers and no warning will be issued (for compatibility with the
+behavior in older versions of Emacs).
+
+** Changes in Allout
+
+*** Topic cryptography added, enabling easy gpg topic encryption and
+decryption. Per-topic basis enables interspersing encrypted-text and
+clear-text within a single file to your heart's content, using symmetric
+and/or public key modes. Time-limited key caching, user-provided
+symmetric key hinting and consistency verification, auto-encryption of
+pending topics on save, and more, make it easy to use encryption in
+powerful ways. Encryption behavior customization is collected in the
+allout-encryption customization group.
+
+*** Default command prefix was changed to "\C-c " (control-c space), to
+avoid intruding on user's keybinding space. Customize the
+`allout-command-prefix' variable to your preference.
+
+*** Some previously rough topic-header format edge cases are reconciled.
+Level 1 topics use the mode's comment format, and lines starting with the
+asterisk - for instance, the comment close of some languages (eg, c's "*/"
+or mathematica's "*)") - at the beginning of line are no longer are
+interpreted as level 1 topics in those modes.
+
+*** Many or most commonly occurring "accidental" topics are disqualified.
+Text in item bodies that looks like a low-depth topic is no longer mistaken
+for one unless its first offspring (or that of its next sibling with
+offspring) is only one level deeper.
+
+For example, pasting some text with a bunch of leading asterisks into a
+topic that's followed by a level 3 or deeper topic will not cause the
+pasted text to be mistaken for outline structure.
+
+The same constraint is applied to any level 2 or 3 topics.
+
+This settles an old issue where typed or pasted text needed to be carefully
+reviewed, and sometimes doctored, to avoid accidentally disrupting the
+outline structure. Now that should be generally unnecessary, as the most
+prone-to-occur accidents are disqualified.
+
+*** Allout now refuses to create "containment discontinuities", where a
+topic is shifted deeper than the offspring-depth of its container. On the
+other hand, allout now operates gracefully with existing containment
+discontinuities, revealing excessively contained topics rather than either
+leaving them hidden or raising an error.
+
+*** Navigation within an item is easier. Repeated beginning-of-line and
+end-of-line key commands (usually, ^A and ^E) cycle through the
+beginning/end-of-line and then beginning/end of topic, etc. See new
+customization vars `allout-beginning-of-line-cycles' and
+`allout-end-of-line-cycles'.
+
+*** New or revised allout-mode activity hooks enable creation of
+cooperative enhancements to allout mode without changes to the mode,
+itself.
+
+See `allout-exposure-change-hook', `allout-structure-added-hook',
+`allout-structure-deleted-hook', and `allout-structure-shifted-hook'.
+
+`allout-exposure-change-hook' replaces the existing
+`allout-view-change-hook', which is being deprecated. Both are still
+invoked, but `allout-view-change-hook' will eventually be ignored.
+`allout-exposure-change-hook' is called with explicit arguments detailing
+the specifics of each change (as are the other new hooks), making it easier
+to use than the old version.
+
+There is a new mode deactivation hook, `allout-mode-deactivate-hook', for
+coordinating with deactivation of allout-mode. Both that and the mode
+activation hook, `allout-mode-hook' are now run after the `allout-mode'
+variable is changed, rather than before.
+
+*** Allout now uses text overlay's `invisible' property for concealed text,
+instead of selective-display. This simplifies the code, in particular
+avoiding the need for kludges for isearch dynamic-display, discretionary
+handling of edits of concealed text, undo concerns, etc.
+
+*** There are many other fixes and refinements, including:
+
+ - repaired inhibition of inadvertent edits to concealed text, without
+ inhibiting undo; we now reveal undo changes within concealed text.
+ - auto-fill-mode is now left inactive when allout-mode starts, if it
+ already was inactive. also, `allout-inhibit-auto-fill' custom
+ configuration variable makes it easy to disable auto fill in allout
+ outlines in general or on a per-buffer basis.
+ - allout now tolerates fielded text in outlines without disruption.
+ - hot-spot navigation now is modularized with a new function,
+ `allout-hotspot-key-handler', enabling easier use and enhancement of
+ the functionality in allout addons.
+ - repaired retention of topic body hanging indent upon topic depth shifts
+ - bulleting variation is simpler and more accommodating, both in the
+ default behavior and in ability to vary when creating new topics
+ - mode deactivation now does cleans up effectively, more properly
+ restoring affected variables and hooks to former state, removing
+ overlays, etc. see `allout-add-resumptions' and
+ `allout-do-resumptions', which replace the old `allout-resumptions'.
+ - included a few unit-tests for interior functionality. developers can
+ have them automatically run at the end of module load by customizing
+ the option `allout-run-unit-tests-on-load'.
+ - many, many other, more minor tweaks, fixes, and refinements.
+ - version number incremented to 2.2
+
+** Hideshow mode changes
+
+*** New variable `hs-set-up-overlay' allows customization of the overlay
+used to effect hiding for hideshow minor mode. Integration with isearch
+handles the overlay property `display' specially, preserving it during
+temporary overlay showing in the course of an isearch operation.
+
+*** New variable `hs-allow-nesting' non-nil means that hiding a block does
+not discard the hidden state of any "internal" blocks; when the parent
+block is later shown, the internal blocks remain hidden. Default is nil.
+
+** FFAP changes
+
+*** New ffap commands and keybindings:
+
+C-x C-r (`ffap-read-only'),
+C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'),
+C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'),
+C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame').
+
+*** FFAP accepts wildcards in a file name by default.
+
+C-x C-f passes the file name to `find-file' with non-nil WILDCARDS
+argument, which visits multiple files, and C-x d passes it to `dired'.
+
+** Changes in Skeleton
+
+*** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction.
+
+`@' has reverted to only setting `skeleton-positions' and no longer
+sets `skeleton-point'. Skeletons which used @ to mark
+`skeleton-point' independent of `_' should now use `-' instead. The
+updated `skeleton-insert' docstring explains these new features along
+with other details of skeleton construction.
+
+*** The variables `skeleton-transformation', `skeleton-filter', and
+`skeleton-pair-filter' have been renamed to
+`skeleton-transformation-function', `skeleton-filter-function', and
+`skeleton-pair-filter-function'. The old names are still available
+as aliases.
+
+** HTML/SGML changes
+
+*** Emacs now tries to set up buffer coding systems for HTML/XML files
+automatically.
+
+*** SGML mode has indentation and supports XML syntax.
+The new variable `sgml-xml-mode' tells SGML mode to use XML syntax.
+When this option is enabled, SGML tags are inserted in XML style,
+i.e., there is always a closing tag.
+By default, its setting is inferred on a buffer-by-buffer basis
+from the file name or buffer contents.
+
+*** The variable `sgml-transformation' has been renamed to
+`sgml-transformation-function'. The old name is still available as
+alias.
+
+*** `xml-mode' is now an alias for `sgml-mode', which has XML support.
+
+** TeX modes
+
+*** New major mode Doctex mode, for *.dtx files.
+
+*** C-c C-c prompts for a command to run, and tries to offer a good default.
+
+*** The user option `tex-start-options-string' has been replaced
+by two new user options: `tex-start-options', which should hold
+command-line options to feed to TeX, and `tex-start-commands' which should hold
+TeX commands to use at startup.
+
+*** verbatim environments are now highlighted in courier by font-lock
+and super/sub-scripts are made into super/sub-scripts.
+
+** RefTeX mode changes
+
+*** Changes to RefTeX's table of contents
+
+The new command keys "<" and ">" in the TOC buffer promote/demote the
+section at point or all sections in the current region, with full
+support for multifile documents.
+
+The new command `reftex-toc-recenter' (`C-c -') shows the current
+section in the TOC buffer without selecting the TOC window.
+Recentering can happen automatically in idle time when the option
+`reftex-auto-recenter-toc' is turned on. The highlight in the TOC
+buffer stays when the focus moves to a different window. A dedicated
+frame can show the TOC with the current section always automatically
+highlighted. The frame is created and deleted from the toc buffer
+with the `d' key.
+
+The toc window can be split off horizontally instead of vertically.
+See new option `reftex-toc-split-windows-horizontally'.
+
+Labels can be renamed globally from the table of contents using the
+key `M-%'.
+
+The new command `reftex-goto-label' jumps directly to a label
+location.
+
+*** Changes related to citations and BibTeX database files
+
+Commands that insert a citation now prompt for optional arguments when
+called with a prefix argument. Related new options are
+`reftex-cite-prompt-optional-args' and `reftex-cite-cleanup-optional-args'.
+
+The new command `reftex-create-bibtex-file' creates a BibTeX database
+with all entries referenced in the current document. The keys "e" and
+"E" allow to produce a BibTeX database file from entries marked in a
+citation selection buffer.
+
+The command `reftex-citation' uses the word in the buffer before the
+cursor as a default search string.
+
+The support for chapterbib has been improved. Different chapters can
+now use BibTeX or an explicit `thebibliography' environment.
+
+The macros which specify the bibliography file (like \bibliography)
+can be configured with the new option `reftex-bibliography-commands'.
+
+Support for jurabib has been added.
+
+*** Global index matched may be verified with a user function.
+
+During global indexing, a user function can verify an index match.
+See new option `reftex-index-verify-function'.
+
+*** Parsing documents with many labels can be sped up.
+
+Operating in a document with thousands of labels can be sped up
+considerably by allowing RefTeX to derive the type of a label directly
+from the label prefix like `eq:' or `fig:'. The option
+`reftex-trust-label-prefix' needs to be configured in order to enable
+this feature. While the speed-up is significant, this may reduce the
+quality of the context offered by RefTeX to describe a label.
+
+*** Miscellaneous changes
+
+The macros which input a file in LaTeX (like \input, \include) can be
+configured in the new option `reftex-include-file-commands'.
+
+RefTeX supports global incremental search.
+
+** BibTeX mode
+
+*** The new command `bibtex-url' browses a URL for the BibTeX entry at
+point (bound to C-c C-l and mouse-2, RET on clickable fields).
+
+*** The new command `bibtex-entry-update' (bound to C-c C-u) updates
+an existing BibTeX entry by inserting fields that may occur but are not
+present.
+
+*** New `bibtex-entry-format' option `required-fields', enabled by default.
+
+*** `bibtex-maintain-sorted-entries' can take values `plain',
+`crossref', and `entry-class' which control the sorting scheme used
+for BibTeX entries. `bibtex-sort-entry-class' controls the sorting
+scheme `entry-class'. TAB completion for reference keys and
+automatic detection of duplicates does not require anymore that
+`bibtex-maintain-sorted-entries' is non-nil.
+
+*** The new command `bibtex-complete' completes word fragment before
+point according to context (bound to M-tab).
+
+*** In BibTeX mode the command `fill-paragraph' (M-q) fills
+individual fields of a BibTeX entry.
+
+*** The new variable `bibtex-autofill-types' contains a list of entry
+types for which fields are filled automatically (if possible).
+
+*** The new commands `bibtex-find-entry' and `bibtex-find-crossref'
+locate entries and crossref'd entries (bound to C-c C-s and C-c C-x).
+Crossref fields are clickable (bound to mouse-2, RET).
+
+*** The new variables `bibtex-files' and `bibtex-file-path' define a set
+of BibTeX files that are searched for entry keys.
+
+*** The new command `bibtex-validate-globally' checks for duplicate keys
+in multiple BibTeX files.
+
+*** If the new variable `bibtex-autoadd-commas' is non-nil,
+automatically add missing commas at end of BibTeX fields.
+
+*** The new command `bibtex-copy-summary-as-kill' pushes summary
+of BibTeX entry to kill ring (bound to C-c C-t).
+
+*** If the new variable `bibtex-parse-keys-fast' is non-nil,
+use fast but simplified algorithm for parsing BibTeX keys.
+
+*** The new variables bibtex-expand-strings and
+bibtex-autokey-expand-strings control the expansion of strings when
+extracting the content of a BibTeX field.
+
+*** The variables `bibtex-autokey-name-case-convert' and
+`bibtex-autokey-titleword-case-convert' have been renamed to
+`bibtex-autokey-name-case-convert-function' and
+`bibtex-autokey-titleword-case-convert-function'. The old names are
+still available as aliases.
+
+** GUD changes
+
+*** The new package gdb-ui.el provides an enhanced graphical interface to
+GDB. You can interact with GDB through the GUD buffer in the usual way, but
+there are also further buffers which control the execution and describe the
+state of your program. It can separate the input/output of your program from
+that of GDB and watches expressions in the speedbar. It also uses features of
+Emacs 21/22 such as the toolbar, and bitmaps in the fringe to indicate
+breakpoints.
+
+To use this package just type M-x gdb. See the Emacs manual if you want the
+old behaviour.
+
+*** GUD mode has its own tool bar for controlling execution of the inferior
+and other common debugger commands.
+
+*** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program
+counter to the specified source line (the one where point is).
+
+*** The variable tooltip-gud-tips-p has been removed. GUD tooltips can now be
+toggled independently of normal tooltips with the minor mode
+`gud-tooltip-mode'.
+
+*** In graphical mode, with a C program, GUD Tooltips have been extended to
+display the #define directive associated with an identifier when program is
+not executing.
+
+*** GUD mode improvements for jdb:
+
+**** Search for source files using jdb classpath and class information.
+Fast startup since there is no need to scan all source files up front.
+There is also no need to create and maintain lists of source
+directories to scan. Look at `gud-jdb-use-classpath' and
+`gud-jdb-classpath' customization variables documentation.
+
+**** The previous method of searching for source files has been
+preserved in case someone still wants/needs to use it.
+Set `gud-jdb-use-classpath' to nil.
+
+**** Supports the standard breakpoint (gud-break, gud-clear)
+set/clear operations from Java source files under the classpath, stack
+traversal (gud-up, gud-down), and run until current stack finish
+(gud-finish).
+
+**** Supports new jdb (Java 1.2 and later) in addition to oldjdb
+(Java 1.1 jdb).
+
+*** Added jdb Customization Variables
+
+**** `gud-jdb-command-name'. What command line to use to invoke jdb.
+
+**** `gud-jdb-use-classpath'. Allows selection of java source file searching
+method: set to t for new method, nil to scan `gud-jdb-directories' for
+java sources (previous method).
+
+**** `gud-jdb-directories'. List of directories to scan and search for Java
+classes using the original gud-jdb method (if `gud-jdb-use-classpath'
+is nil).
+
+*** Minor Improvements
+
+**** The STARTTLS wrapper (starttls.el) can now use GNUTLS
+instead of the OpenSSL based `starttls' tool. For backwards
+compatibility, it prefers `starttls', but you can toggle
+`starttls-use-gnutls' to switch to GNUTLS (or simply remove the
+`starttls' tool).
+
+**** Do not allow debugger output history variable to grow without bounds.
+
+** Lisp mode changes
+
+*** Lisp mode now uses `font-lock-doc-face' for doc strings.
+
+*** C-u C-M-q in Emacs Lisp mode pretty-prints the list after point.
+
+*** New features in evaluation commands
+
+**** The function `eval-defun' (C-M-x) called on defface reinitializes
+the face to the value specified in the defface expression.
+
+**** Typing C-x C-e twice prints the value of the integer result
+in additional formats (octal, hexadecimal, character) specified
+by the new function `eval-expression-print-format'. The same
+function also defines the result format for `eval-expression' (M-:),
+`eval-print-last-sexp' (C-j) and some edebug evaluation functions.
+
+** Changes to cmuscheme
+
+*** Emacs now offers to start Scheme if the user tries to
+evaluate a Scheme expression but no Scheme subprocess is running.
+
+*** If the file ~/.emacs_NAME or ~/.emacs.d/init_NAME.scm (where NAME
+is the name of the Scheme interpreter) exists, its contents are sent
+to the Scheme subprocess upon startup.
+
+*** There are new commands to instruct the Scheme interpreter to trace
+procedure calls (`scheme-trace-procedure') and to expand syntactic forms
+(`scheme-expand-current-form'). The commands actually sent to the Scheme
+subprocess are controlled by the user options `scheme-trace-command',
+`scheme-untrace-command' and `scheme-expand-current-form'.
+
+** Ewoc changes
+
+*** The new function `ewoc-delete' deletes specified nodes.
+
+*** `ewoc-create' now takes optional arg NOSEP, which inhibits insertion of
+a newline after each pretty-printed entry and after the header and footer.
+This allows you to create multiple-entry ewocs on a single line and to
+effect "invisible" nodes by arranging for the pretty-printer to not print
+anything for those nodes.
+
+For example, these two sequences of expressions behave identically:
+
+;; NOSEP nil
+(defun PP (data) (insert (format "%S" data)))
+(ewoc-create 'PP "start\n")
+
+;; NOSEP t
+(defun PP (data) (insert (format "%S\n" data)))
+(ewoc-create 'PP "start\n\n" "\n" t)
+
+** CC mode changes
+
+*** The CC Mode manual has been extensively revised.
+The information about using CC Mode has been separated from the larger
+and more difficult chapters about configuration.
+
+*** New Minor Modes
+**** Electric Minor Mode toggles the electric action of non-alphabetic keys.
+The new command c-toggle-electric-mode is bound to C-c C-l. Turning the
+mode off can be helpful for editing chaotically indented code and for
+users new to CC Mode, who sometimes find electric indentation
+disconcerting. Its current state is displayed in the mode line with an
+'l', e.g. "C/al".
+
+**** Subword Minor Mode makes Emacs recognize word boundaries at upper case
+letters in StudlyCapsIdentifiers. You enable this feature by C-c C-w. It can
+also be used in non-CC Mode buffers. :-) Contributed by Masatake YAMATO.
+
+*** Support for the AWK language.
+Support for the AWK language has been introduced. The implementation is
+based around GNU AWK version 3.1, but it should work pretty well with
+any AWK. As yet, not all features of CC Mode have been adapted for AWK.
+Here is a summary:
+
+**** Indentation Engine
+The CC Mode indentation engine fully supports AWK mode.
+
+AWK mode handles code formatted in the conventional AWK fashion: `{'s
+which start actions, user-defined functions, or compound statements are
+placed on the same line as the associated construct; the matching `}'s
+are normally placed under the start of the respective pattern, function
+definition, or structured statement.
+
+The predefined line-up functions haven't yet been adapted for AWK
+mode, though some of them may work serendipitously. There shouldn't
+be any problems writing custom indentation functions for AWK mode.
+
+**** Font Locking
+There is a single level of font locking in AWK mode, rather than the
+three distinct levels the other modes have. There are several
+idiosyncrasies in AWK mode's font-locking due to the peculiarities of
+the AWK language itself.
+
+**** Comment and Movement Commands
+These commands all work for AWK buffers. The notion of "defun" has
+been augmented to include AWK pattern-action pairs - the standard
+"defun" commands on key sequences C-M-a, C-M-e, and C-M-h use this
+extended definition.
+
+**** "awk" style, Auto-newline Insertion and Clean-ups
+A new style, "awk" has been introduced, and this is now the default
+style for AWK code. With auto-newline enabled, the clean-up
+c-one-liner-defun (see above) is useful.
+
+*** Font lock support.
+CC Mode now provides font lock support for all its languages. This
+supersedes the font lock patterns that have been in the core font lock
+package for C, C++, Java and Objective-C. Like indentation, font
+locking is done in a uniform way across all languages (except the new
+AWK mode - see below). That means that the new font locking will be
+different from the old patterns in various details for most languages.
+
+The main goal of the font locking in CC Mode is accuracy, to provide a
+dependable aid in recognizing the various constructs. Some, like
+strings and comments, are easy to recognize while others like
+declarations and types can be very tricky. CC Mode can go to great
+lengths to recognize declarations and casts correctly, especially when
+the types aren't recognized by standard patterns. This is a fairly
+demanding analysis which can be slow on older hardware, and it can
+therefore be disabled by choosing a lower decoration level with the
+variable font-lock-maximum-decoration.
+
+Note that the most demanding font lock level has been tuned with lazy
+fontification in mind; Just-In-Time-Lock mode should be enabled for
+the highest font lock level (by default, it is). Fontifying a file
+with several thousand lines in one go can take the better part of a
+minute.
+
+**** The (c|c++|objc|java|idl|pike)-font-lock-extra-types variables
+are now used by CC Mode to recognize identifiers that are certain to
+be types. (They are also used in cases that aren't related to font
+locking.) At the maximum decoration level, types are often recognized
+properly anyway, so these variables should be fairly restrictive and
+not contain patterns for uncertain types.
+
+**** Support for documentation comments.
+There is a "plugin" system to fontify documentation comments like
+Javadoc and the markup within them. It's independent of the host
+language, so it's possible to e.g. turn on Javadoc font locking in C
+buffers. See the variable c-doc-comment-style for details.
+
+Currently three kinds of doc comment styles are recognized: Sun's
+Javadoc, Autodoc (which is used in Pike) and GtkDoc (used in C). (The
+last was contributed by Masatake YAMATO). This is by no means a
+complete list of the most common tools; if your doc comment extractor
+of choice is missing then please drop a note to bug-cc-mode@gnu.org.
+
+**** Better handling of C++ templates.
+As a side effect of the more accurate font locking, C++ templates are
+now handled much better. The angle brackets that delimit them are
+given parenthesis syntax so that they can be navigated like other
+parens.
+
+This also improves indentation of templates, although there still is
+work to be done in that area. E.g. it's required that multiline
+template clauses are written in full and then refontified to be
+recognized, and the indentation of nested templates is a bit odd and
+not as configurable as it ought to be.
+
+**** Improved handling of Objective-C and CORBA IDL.
+Especially the support for Objective-C and IDL has gotten an overhaul.
+The special "@" declarations in Objective-C are handled correctly.
+All the keywords used in CORBA IDL, PSDL, and CIDL are recognized and
+handled correctly, also wrt indentation.
+
+*** Changes in Key Sequences
+**** c-toggle-auto-hungry-state is no longer bound to C-c C-t.
+
+**** c-toggle-hungry-state is no longer bound to C-c C-d.
+This binding has been taken over by c-hungry-delete-forwards.
+
+**** c-toggle-auto-state (C-c C-t) has been renamed to c-toggle-auto-newline.
+c-toggle-auto-state remains as an alias.
+
+**** The new commands c-hungry-backspace and c-hungry-delete-forwards
+have key bindings C-c C-DEL (or C-c DEL, for the benefit of TTYs) and
+C-c C-d (or C-c C-<delete> or C-c <delete>) respectively. These
+commands delete entire blocks of whitespace with a single
+key-sequence. [N.B. "DEL" is the <backspace> key.]
+
+**** The new command c-toggle-electric-mode is bound to C-c C-l.
+
+**** The new command c-subword-mode is bound to C-c C-w.
+
+*** C-c C-s (`c-show-syntactic-information') now highlights the anchor
+position(s).
+
+*** New syntactic symbols in IDL mode.
+The top level constructs "module" and "composition" (from CIDL) are
+now handled like "namespace" in C++: They are given syntactic symbols
+module-open, module-close, inmodule, composition-open,
+composition-close, and incomposition.
+
+*** New functions to do hungry delete without enabling hungry delete mode.
+The new functions `c-hungry-backspace' and `c-hungry-delete-forward'
+provide hungry deletion without having to toggle a mode. They are
+bound to C-c C-DEL and C-c C-d (and several variants, for the benefit
+of different keyboard setups. See "Changes in key sequences" above).
+
+*** Better control over `require-final-newline'.
+
+The variable `c-require-final-newline' specifies which of the modes
+implemented by CC mode should insert final newlines. Its value is a
+list of modes, and only those modes should do it. By default the list
+includes C, C++ and Objective-C modes.
+
+Whichever modes are in this list will set `require-final-newline'
+based on `mode-require-final-newline'.
+
+*** Format change for syntactic context elements.
+
+The elements in the syntactic context returned by `c-guess-basic-syntax'
+and stored in `c-syntactic-context' has been changed somewhat to allow
+attaching more information. They are now lists instead of single cons
+cells. E.g. a line that previously had the syntactic analysis
+
+((inclass . 11) (topmost-intro . 13))
+
+is now analyzed as
+
+((inclass 11) (topmost-intro 13))
+
+In some cases there are more than one position given for a syntactic
+symbol.
+
+This change might affect code that calls `c-guess-basic-syntax'
+directly, and custom lineup functions if they use
+`c-syntactic-context'. However, the argument given to lineup
+functions is still a single cons cell with nil or an integer in the
+cdr.
+
+*** API changes for derived modes.
+
+There have been extensive changes "under the hood" which can affect
+derived mode writers. Some of these changes are likely to cause
+incompatibilities with existing derived modes, but on the other hand
+care has now been taken to make it possible to extend and modify CC
+Mode with less risk of such problems in the future.
+
+**** New language variable system.
+These are variables whose values vary between CC Mode's different
+languages. See the comment blurb near the top of cc-langs.el.
+
+**** New initialization functions.
+The initialization procedure has been split up into more functions to
+give better control: `c-basic-common-init', `c-font-lock-init', and
+`c-init-language-vars'.
+
+*** Changes in analysis of nested syntactic constructs.
+The syntactic analysis engine has better handling of cases where
+several syntactic constructs appear nested on the same line. They are
+now handled as if each construct started on a line of its own.
+
+This means that CC Mode now indents some cases differently, and
+although it's more consistent there might be cases where the old way
+gave results that's more to one's liking. So if you find a situation
+where you think that the indentation has become worse, please report
+it to bug-cc-mode@gnu.org.
+
+**** New syntactic symbol substatement-label.
+This symbol is used when a label is inserted between a statement and
+its substatement. E.g:
+
+ if (x)
+ x_is_true:
+ do_stuff();
+
+*** Better handling of multiline macros.
+
+**** Syntactic indentation inside macros.
+The contents of multiline #define's are now analyzed and indented
+syntactically just like other code. This can be disabled by the new
+variable `c-syntactic-indentation-in-macros'. A new syntactic symbol
+`cpp-define-intro' has been added to control the initial indentation
+inside `#define's.
+
+**** New lineup function `c-lineup-cpp-define'.
+
+Now used by default to line up macro continuation lines. The behavior
+of this function closely mimics the indentation one gets if the macro
+is indented while the line continuation backslashes are temporarily
+removed. If syntactic indentation in macros is turned off, it works
+much line `c-lineup-dont-change', which was used earlier, but handles
+empty lines within the macro better.
+
+**** Automatically inserted newlines continues the macro if used within one.
+This applies to the newlines inserted by the auto-newline mode, and to
+`c-context-line-break' and `c-context-open-line'.
+
+**** Better alignment of line continuation backslashes.
+`c-backslash-region' tries to adapt to surrounding backslashes. New
+variable `c-backslash-max-column' puts a limit on how far out
+backslashes can be moved.
+
+**** Automatic alignment of line continuation backslashes.
+This is controlled by the new variable `c-auto-align-backslashes'. It
+affects `c-context-line-break', `c-context-open-line' and newlines
+inserted in Auto-Newline mode.
+
+**** Line indentation works better inside macros.
+Regardless whether syntactic indentation and syntactic indentation
+inside macros are enabled or not, line indentation now ignores the
+line continuation backslashes. This is most noticeable when syntactic
+indentation is turned off and there are empty lines (save for the
+backslash) in the macro.
+
+*** indent-for-comment is more customizable.
+The behavior of M-; (indent-for-comment) is now configurable through
+the variable `c-indent-comment-alist'. The indentation behavior is
+based on the preceding code on the line, e.g. to get two spaces after
+#else and #endif but indentation to `comment-column' in most other
+cases (something which was hardcoded earlier).
+
+*** New function `c-context-open-line'.
+It's the open-line equivalent of `c-context-line-break'.
+
+*** New clean-ups
+
+**** `comment-close-slash'.
+With this clean-up, a block (i.e. c-style) comment can be terminated by
+typing a slash at the start of a line.
+
+**** `c-one-liner-defun'
+This clean-up compresses a short enough defun (for example, an AWK
+pattern/action pair) onto a single line. "Short enough" is configurable.
+
+*** New lineup functions
+
+**** `c-lineup-string-cont'
+This lineup function lines up a continued string under the one it
+continues. E.g:
+
+result = prefix + "A message "
+ "string."; <- c-lineup-string-cont
+
+**** `c-lineup-cascaded-calls'
+Lines up series of calls separated by "->" or ".".
+
+**** `c-lineup-knr-region-comment'
+Gives (what most people think is) better indentation of comments in
+the "K&R region" between the function header and its body.
+
+**** `c-lineup-gcc-asm-reg'
+Provides better indentation inside asm blocks.
+
+**** `c-lineup-argcont'
+Lines up continued function arguments after the preceding comma.
+
+*** Added toggle for syntactic indentation.
+The function `c-toggle-syntactic-indentation' can be used to toggle
+syntactic indentation.
+
+*** Better caching of the syntactic context.
+CC Mode caches the positions of the opening parentheses (of any kind)
+of the lists surrounding the point. Those positions are used in many
+places as anchor points for various searches. The cache is now
+improved so that it can be reused to a large extent when the point is
+moved. The less it moves, the less needs to be recalculated.
+
+The effect is that CC Mode should be fast most of the time even when
+opening parens are hung (i.e. aren't in column zero). It's typically
+only the first time after the point is moved far down in a complex
+file that it'll take noticeable time to find out the syntactic
+context.
+
+*** Statements are recognized in a more robust way.
+Statements are recognized most of the time even when they occur in an
+"invalid" context, e.g. in a function argument. In practice that can
+happen when macros are involved.
+
+*** Improved the way `c-indent-exp' chooses the block to indent.
+It now indents the block for the closest sexp following the point
+whose closing paren ends on a different line. This means that the
+point doesn't have to be immediately before the block to indent.
+Also, only the block and the closing line is indented; the current
+line is left untouched.
+
+** Changes in Makefile mode
+
+*** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake.
+
+The former two couldn't be differentiated before, and the latter three
+are new. Font-locking is robust now and offers new customizable
+faces.
+
+*** The variable `makefile-query-one-target-method' has been renamed
+to `makefile-query-one-target-method-function'. The old name is still
+available as alias.
+
+** Sql changes
+
+*** The variable `sql-product' controls the highlighting of different
+SQL dialects. This variable can be set globally via Customize, on a
+buffer-specific basis via local variable settings, or for the current
+session using the new SQL->Product submenu. (This menu replaces the
+SQL->Highlighting submenu.)
+
+The following values are supported:
+
+ ansi ANSI Standard (default)
+ db2 DB2
+ informix Informix
+ ingres Ingres
+ interbase Interbase
+ linter Linter
+ ms Microsoft
+ mysql MySQL
+ oracle Oracle
+ postgres Postgres
+ solid Solid
+ sqlite SQLite
+ sybase Sybase
+
+The current product name will be shown on the mode line following the
+SQL mode indicator.
+
+The technique of setting `sql-mode-font-lock-defaults' directly in
+your `.emacs' will no longer establish the default highlighting -- Use
+`sql-product' to accomplish this.
+
+ANSI keywords are always highlighted.
+
+*** The function `sql-add-product-keywords' can be used to add
+font-lock rules to the product specific rules. For example, to have
+all identifiers ending in `_t' under MS SQLServer treated as a type,
+you would use the following line in your .emacs file:
+
+ (sql-add-product-keywords 'ms
+ '(("\\<\\w+_t\\>" . font-lock-type-face)))
+
+*** Oracle support includes keyword highlighting for Oracle 9i.
+
+Most SQL and PL/SQL keywords are implemented. SQL*Plus commands are
+highlighted in `font-lock-doc-face'.
+
+*** Microsoft SQLServer support has been significantly improved.
+
+Keyword highlighting for SqlServer 2000 is implemented.
+sql-interactive-mode defaults to use osql, rather than isql, because
+osql flushes its error stream more frequently. Thus error messages
+are displayed when they occur rather than when the session is
+terminated.
+
+If the username and password are not provided to `sql-ms', osql is
+called with the `-E' command line argument to use the operating system
+credentials to authenticate the user.
+
+*** Postgres support is enhanced.
+Keyword highlighting of Postgres 7.3 is implemented. Prompting for
+the username and the pgsql `-U' option is added.
+
+*** MySQL support is enhanced.
+Keyword highlighting of MySql 4.0 is implemented.
+
+*** Imenu support has been enhanced to locate tables, views, indexes,
+packages, procedures, functions, triggers, sequences, rules, and
+defaults.
+
+*** Added SQL->Start SQLi Session menu entry which calls the
+appropriate `sql-interactive-mode' wrapper for the current setting of
+`sql-product'.
+
+*** sql.el supports the SQLite interpreter--call 'sql-sqlite'.
+
+** Fortran mode changes
+
+*** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow).
+It cannot deal with every code format, but ought to handle a sizeable
+majority.
+
+*** F90 mode and Fortran mode have new navigation commands
+`f90-end-of-block', `f90-beginning-of-block', `f90-next-block',
+`f90-previous-block', `fortran-end-of-block',
+`fortran-beginning-of-block'.
+
+*** Fortran mode does more font-locking by default. Use level 3
+highlighting for the old default.
+
+*** Fortran mode has a new variable `fortran-directive-re'.
+Adapt this to match the format of any compiler directives you use.
+Lines that match are never indented, and are given distinctive font-locking.
+
+*** The new function `f90-backslash-not-special' can be used to change
+the syntax of backslashes in F90 buffers.
+
+** Miscellaneous programming mode changes
+
+*** In sh-script, a continuation line is only indented if the backslash was
+preceded by a SPC or a TAB.
+
+*** Perl mode has a new variable `perl-indent-continued-arguments'.
+
+*** The old Octave mode bindings C-c f and C-c i have been changed
+to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate
+bindings on control characters--thus, C-c C-i C-b is the same as
+C-c C-i b, and so on.
+
+*** Prolog mode has a new variable `prolog-font-lock-keywords'
+to support use of font-lock.
+
+** VC Changes
+
+*** New backends for Subversion and Meta-CVS.
+
+*** The new variable `vc-cvs-global-switches' specifies switches that
+are passed to any CVS command invoked by VC.
+
+These switches are used as "global options" for CVS, which means they
+are inserted before the command name. For example, this allows you to
+specify a compression level using the `-z#' option for CVS.
+
+*** The key C-x C-q only changes the read-only state of the buffer
+(toggle-read-only). It no longer checks files in or out.
+
+We made this change because we held a poll and found that many users
+were unhappy with the previous behavior. If you do prefer this
+behavior, you can bind `vc-toggle-read-only' to C-x C-q in your
+`.emacs' file:
+
+ (global-set-key "\C-x\C-q" 'vc-toggle-read-only)
+
+The function `vc-toggle-read-only' will continue to exist.
+
+*** VC-Annotate mode enhancements
+
+In VC-Annotate mode, you can now use the following key bindings for
+enhanced functionality to browse the annotations of past revisions, or
+to view diffs or log entries directly from vc-annotate-mode:
+
+ P: annotates the previous revision
+ N: annotates the next revision
+ J: annotates the revision at line
+ A: annotates the revision previous to line
+ D: shows the diff of the revision at line with its previous revision
+ L: shows the log of the revision at line
+ W: annotates the workfile (most up to date) version
+
+** pcl-cvs changes
+
+*** In pcl-cvs mode, there is a new `d y' command to view the diffs
+between the local version of the file and yesterday's head revision
+in the repository.
+
+*** In pcl-cvs mode, there is a new `d r' command to view the changes
+anyone has committed to the repository since you last executed
+`checkout', `update' or `commit'. That means using cvs diff options
+-rBASE -rHEAD.
+
+** Diff changes
+
+*** M-x diff uses Diff mode instead of Compilation mode.
+
+*** Diff mode key bindings changed.
+
+These are the new bindings:
+
+C-c C-e diff-ediff-patch (old M-A)
+C-c C-n diff-restrict-view (old M-r)
+C-c C-r diff-reverse-direction (old M-R)
+C-c C-u diff-context->unified (old M-U)
+C-c C-w diff-refine-hunk (old C-c C-r)
+
+To convert unified to context format, use C-u C-c C-u.
+In addition, C-c C-u now operates on the region
+in Transient Mark mode when the mark is active.
+
+** EDiff changes.
+
+*** When comparing directories.
+Typing D brings up a buffer that lists the differences between the contents of
+directories. Now it is possible to use this buffer to copy the missing files
+from one directory to another.
+
+*** When comparing files or buffers.
+Typing the = key now offers to perform the word-by-word comparison of the
+currently highlighted regions in an inferior Ediff session. If you answer 'n'
+then it reverts to the old behavior and asks the user to select regions for
+comparison.
+
+*** The new command `ediff-backup' compares a file with its most recent
+backup using `ediff'. If you specify the name of a backup file,
+`ediff-backup' compares it with the file of which it is a backup.
+
+** Etags changes.
+
+*** New regular expressions features
+
+**** New syntax for regular expressions, multi-line regular expressions.
+
+The syntax --ignore-case-regexp=/regex/ is now undocumented and retained
+only for backward compatibility. The new equivalent syntax is
+--regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS,
+where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or
+more characters among `i' (ignore case), `m' (multi-line) and `s'
+(single-line). The `m' and `s' modifiers behave as in Perl regular
+expressions: `m' allows regexps to match more than one line, while `s'
+(which implies `m') means that `.' matches newlines. The ability to
+span newlines allows writing of much more powerful regular expressions
+and rapid prototyping for tagging new languages.
+
+**** Regular expressions can use char escape sequences as in GCC.
+
+The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v,
+respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL,
+CR, TAB, VT.
+
+**** Regular expressions can be bound to a given language.
+
+The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags
+only for files of language LANGUAGE, and ignored otherwise. This is
+particularly useful when storing regexps in a file.
+
+**** Regular expressions can be read from a file.
+
+The --regex=@regexfile option means read the regexps from a file, one
+per line. Lines beginning with space or tab are ignored.
+
+*** New language parsing features
+
+**** New language HTML.
+
+Tags are generated for `title' as well as `h1', `h2', and `h3'. Also,
+when `name=' is used inside an anchor and whenever `id=' is used.
+
+**** New language PHP.
+
+Functions, classes and defines are tags. If the --members option is
+specified to etags, variables are tags also.
+
+**** New language Lua.
+
+All functions are tagged.
+
+**** The `::' qualifier triggers C++ parsing in C file.
+
+Previously, only the `template' and `class' keywords had this effect.
+
+**** The GCC __attribute__ keyword is now recognized and ignored.
+
+**** In C and derived languages, etags creates tags for #undef
+
+**** In Makefiles, constants are tagged.
+
+If you want the old behavior instead, thus avoiding to increase the
+size of the tags file, use the --no-globals option.
+
+**** In Perl, packages are tags.
+
+Subroutine tags are named from their package. You can jump to sub tags
+as you did before, by the sub name, or additionally by looking for
+package::sub.
+
+**** In Prolog, etags creates tags for rules in addition to predicates.
+
+**** New default keywords for TeX.
+
+The new keywords are def, newcommand, renewcommand, newenvironment and
+renewenvironment.
+
+*** Honor #line directives.
+
+When Etags parses an input file that contains C preprocessor's #line
+directives, it creates tags using the file name and line number
+specified in those directives. This is useful when dealing with code
+created from Cweb source files. When Etags tags the generated file, it
+writes tags pointing to the source file.
+
+*** New option --parse-stdin=FILE.
+
+This option is mostly useful when calling etags from programs. It can
+be used (only once) in place of a file name on the command line. Etags
+reads from standard input and marks the produced tags as belonging to
+the file FILE.
+
+** Ctags changes.
+
+*** Ctags now allows duplicate tags
+
+** Rmail changes
+
+*** Support for `movemail' from GNU mailutils was added to Rmail.
+
+This version of `movemail' allows you to read mail from a wide range of
+mailbox formats, including remote POP3 and IMAP4 mailboxes with or
+without TLS encryption. If GNU mailutils is installed on the system
+and its version of `movemail' can be found in exec-path, it will be
+used instead of the native one.
+
+*** The new commands rmail-end-of-message and rmail-summary end-of-message,
+by default bound to `/', go to the end of the current mail message in
+Rmail and Rmail summary buffers.
+
+*** Rmail now displays 5-digit message ids in its summary buffer.
+
+** Gnus package
+
+*** Gnus now includes Sieve and PGG
+
+Sieve is a library for managing Sieve scripts. PGG is a library to handle
+PGP/MIME.
+
+*** There are many news features, bug fixes and improvements.
+
+See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details.
+
+** MH-E changes.
+
+Upgraded to MH-E version 8.0.3. There have been major changes since
+version 5.0.2; see MH-E-NEWS for details.
+
+** Miscellaneous mail changes
+
+*** The new variable `mail-default-directory' specifies
+`default-directory' for mail buffers. This directory is used for
+auto-save files of mail buffers. It defaults to "~/".
+
+*** The mode line can indicate new mail in a directory or file.
+
+See the documentation of the user option `display-time-mail-directory'.
+
+** Calendar changes
+
+*** There is a new calendar package, icalendar.el, that can be used to
+convert Emacs diary entries to/from the iCalendar format.
+
+*** The new package cal-html.el writes HTML files with calendar and
+diary entries.
+
+*** The new functions `diary-from-outlook', `diary-from-outlook-gnus',
+and `diary-from-outlook-rmail' can be used to import diary entries
+from Outlook-format appointments in mail messages. The variable
+`diary-outlook-formats' can be customized to recognize additional
+formats.
+
+*** The procedure for activating appointment reminders has changed:
+use the new function `appt-activate'. The new variable
+`appt-display-format' controls how reminders are displayed, replacing
+`appt-issue-message', `appt-visible', and `appt-msg-window'.
+
+*** The function `simple-diary-display' now by default sets a header line.
+This can be controlled through the variables `diary-header-line-flag'
+and `diary-header-line-format'.
+
+*** Diary sexp entries can have custom marking in the calendar.
+Diary sexp functions which only apply to certain days (such as
+`diary-block' or `diary-cyclic') now take an optional parameter MARK,
+which is the name of a face or a single-character string indicating
+how to highlight the day in the calendar display. Specifying a
+single-character string as @var{mark} places the character next to the
+day in the calendar. Specifying a face highlights the day with that
+face. This lets you have different colors or markings for vacations,
+appointments, paydays or anything else using a sexp.
+
+*** The meanings of C-x < and C-x > have been interchanged.
+< means to scroll backward in time, and > means to scroll forward.
+
+*** You can now use < and >, instead of C-x < and C-x >, to scroll
+the calendar left or right.
+
+*** The new function `calendar-goto-day-of-year' (g D) prompts for a
+year and day number, and moves to that date. Negative day numbers
+count backward from the end of the year.
+
+*** The new Calendar function `calendar-goto-iso-week' (g w)
+prompts for a year and a week number, and moves to the first
+day of that ISO week.
+
+*** The functions `holiday-easter-etc' and `holiday-advent' now take
+optional arguments, in order to only report on the specified holiday
+rather than all. This makes customization of variables such as
+`christian-holidays' simpler.
+
+*** The new variable `calendar-minimum-window-height' affects the
+window generated by the function `generate-calendar-window'.
+
+** Speedbar changes
+
+*** Speedbar items can now be selected by clicking mouse-1, based on
+the `mouse-1-click-follows-link' mechanism.
+
+*** The new command `speedbar-toggle-line-expansion', bound to SPC,
+contracts or expands the line under the cursor.
+
+*** New command `speedbar-create-directory', bound to `M'.
+
+*** The new commands `speedbar-expand-line-descendants' and
+`speedbar-contract-line-descendants', bound to `[' and `]'
+respectively, expand and contract the line under cursor with all of
+its descendents.
+
+*** The new user option `speedbar-use-tool-tips-flag', if non-nil,
+means to display tool-tips for speedbar items.
+
+*** The new user option `speedbar-query-confirmation-method' controls
+how querying is performed for file operations. A value of 'always
+means to always query before file operations; 'none-but-delete means
+to not query before any file operations, except before a file
+deletion.
+
+*** The new user option `speedbar-select-frame-method' specifies how
+to select a frame for displaying a file opened with the speedbar. A
+value of 'attached means to use the attached frame (the frame that
+speedbar was started from.) A number such as 1 or -1 means to pass
+that number to `other-frame'.
+
+*** SPC and DEL are no longer bound to scroll up/down in the speedbar
+keymap.
+
+*** The frame management code in speedbar.el has been split into a new
+`dframe' library. Emacs Lisp code that makes use of the speedbar
+should use `dframe-attached-frame' instead of
+`speedbar-attached-frame', `dframe-timer' instead of `speedbar-timer',
+`dframe-close-frame' instead of `speedbar-close-frame', and
+`dframe-activity-change-focus-flag' instead of
+`speedbar-activity-change-focus-flag'. The variables
+`speedbar-update-speed' and `speedbar-navigating-speed' are also
+obsolete; use `dframe-update-speed' instead.
+
+** battery.el changes
+
+*** display-battery-mode replaces display-battery.
+
+*** battery.el now works on recent versions of OS X.
+
+** Games
+
+*** The game `mpuz' is enhanced.
+
+`mpuz' now allows the 2nd factor not to have two identical digits. By
+default, all trivial operations involving whole lines are performed
+automatically. The game uses faces for better visual feedback.
+
+** Obsolete and deleted packages
+
+*** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead.
+
+*** iso-acc.el is now obsolete. Use one of the latin input methods instead.
+
+*** zone-mode.el is now obsolete. Use dns-mode.el instead.
+
+*** cplus-md.el has been deleted.
+
+** Miscellaneous
+
+*** The variable `woman-topic-at-point' is renamed
+to `woman-use-topic-at-point' and behaves differently: if this
+variable is non-nil, the `woman' command uses the word at point
+automatically, without asking for a confirmation. Otherwise, the word
+at point is suggested as default, but not inserted at the prompt.
+
+*** You can now customize `fill-nobreak-predicate' to control where
+filling can break lines. The value is now normally a list of
+functions, but it can also be a single function, for compatibility.
+
+Emacs provide two predicates, `fill-single-word-nobreak-p' and
+`fill-french-nobreak-p', for use as the value of
+`fill-nobreak-predicate'.
+
+*** M-x view-file and commands that use it now avoid interfering
+with special modes such as Tar mode.
+
+*** `global-whitespace-mode' is a new alias for `whitespace-global-mode'.
+
+*** The saveplace.el package now filters out unreadable files.
+
+When you exit Emacs, the saved positions in visited files no longer
+include files that aren't readable, e.g. files that don't exist.
+Customize the new option `save-place-forget-unreadable-files' to nil
+to get the old behavior. The new options `save-place-save-skipped'
+and `save-place-skip-check-regexp' allow further fine-tuning of this
+feature.
+
+*** Commands `winner-redo' and `winner-undo', from winner.el, are now
+bound to C-c <left> and C-c <right>, respectively. This is an
+incompatible change.
+
+*** The type-break package now allows `type-break-file-name' to be nil
+and if so, doesn't store any data across sessions. This is handy if
+you don't want the `.type-break' file in your home directory or are
+annoyed by the need for interaction when you kill Emacs.
+
+*** `ps-print' can now print characters from the mule-unicode charsets.
+
+Printing text with characters from the mule-unicode-* sets works with
+`ps-print', provided that you have installed the appropriate BDF
+fonts. See the file INSTALL for URLs where you can find these fonts.
+
+*** New command `strokes-global-set-stroke-string'.
+This is like `strokes-global-set-stroke', but it allows you to bind
+the stroke directly to a string to insert. This is convenient for
+using strokes as an input method.
+
+*** In Outline mode, `hide-body' no longer hides lines at the top
+of the file that precede the first header line.
+
+*** `hide-ifdef-mode' now uses overlays rather than selective-display
+to hide its text. This should be mostly transparent but slightly
+changes the behavior of motion commands like C-e and C-p.
+
+*** In Artist mode the variable `artist-text-renderer' has been
+renamed to `artist-text-renderer-function'. The old name is still
+available as alias.
+
+*** In Enriched mode, `set-left-margin' and `set-right-margin' are now
+by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l'
+and `C-c C-r'.
+
+*** `partial-completion-mode' now handles partial completion on directory names.
+
+*** You can now disable pc-selection-mode after enabling it.
+
+M-x pc-selection-mode behaves like a proper minor mode, and with no
+argument it toggles the mode. Turning off PC-Selection mode restores
+the global key bindings that were replaced by turning on the mode.
+
+*** `uniquify-strip-common-suffix' tells uniquify to prefer
+`file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'.
+
+*** New user option `add-log-always-start-new-record'.
+
+When this option is enabled, M-x add-change-log-entry always
+starts a new record regardless of when the last record is.
+
+*** M-x compare-windows now can automatically skip non-matching text to
+resync points in both windows.
+
+*** PO translation files are decoded according to their MIME headers
+when Emacs visits them.
+
+*** Telnet now prompts you for a port number with C-u M-x telnet.
+
+*** calculator.el now has radix grouping mode.
+
+To enable this, set `calculator-output-radix' non-nil. In this mode a
+separator character is used every few digits, making it easier to see
+byte boundaries etc. For more info, see the documentation of the
+variable `calculator-radix-grouping-mode'.
+
+*** LDAP support now defaults to ldapsearch from OpenLDAP version 2.
+
+*** The terminal emulation code in term.el has been improved; it can
+run most curses applications now.
+
+*** Support for `magic cookie' standout modes has been removed.
+
+Emacs still works on terminals that require magic cookies in order to
+use standout mode, but they can no longer display mode-lines in
+inverse-video.
+
+\f
+* Changes in Emacs 22.1 on non-free operating systems
+
+** The HOME directory defaults to Application Data under the user profile.
+
+If you used a previous version of Emacs without setting the HOME
+environment variable and a `.emacs' was saved, then Emacs will continue
+using C:/ as the default HOME. But if you are installing Emacs afresh,
+the default location will be the "Application Data" (or similar
+localized name) subdirectory of your user profile. A typical location
+of this directory is "C:\Documents and Settings\USERNAME\Application Data",
+where USERNAME is your user name.
+
+This change means that users can now have their own `.emacs' files on
+shared computers, and the default HOME directory is less likely to be
+read-only on computers that are administered by someone else.
+
+** Images are now supported on MS Windows.
+
+PBM and XBM images are supported out of the box. Other image formats
+depend on external libraries. All of these libraries have been ported
+to Windows, and can be found in both source and binary form at
+http://gnuwin32.sourceforge.net/. Note that libpng also depends on
+zlib, and tiff depends on the version of jpeg that it was compiled
+against. For additional information, see nt/INSTALL.
+
+** Sound is now supported on MS Windows.
+
+WAV format is supported on all versions of Windows, other formats such
+as AU, AIFF and MP3 may be supported in the more recent versions of
+Windows, or when other software provides hooks into the system level
+sound support for those formats.
+
+** Tooltips now work on MS Windows.
+
+See the Emacs 21.1 NEWS entry for tooltips for details.
+
+** Pointing devices with more than 3 buttons are now supported on MS Windows.
+
+The new variable `w32-pass-extra-mouse-buttons-to-system' controls
+whether Emacs should handle the extra buttons itself (the default), or
+pass them to Windows to be handled with system-wide functions.
+
+** Passing resources on the command line now works on MS Windows.
+
+You can use --xrm to pass resource settings to Emacs, overriding any
+existing values. For example:
+
+ emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20"
+
+will start up Emacs on an initial frame of 100x20 with red background,
+irrespective of geometry or background setting on the Windows registry.
+
+** Emacs takes note of colors defined in Control Panel on MS-Windows.
+
+The Control Panel defines some default colors for applications in much
+the same way as wildcard X Resources do on X. Emacs now adds these
+colors to the colormap prefixed by System (eg SystemMenu for the
+default Menu background, SystemMenuText for the foreground), and uses
+some of them to initialize some of the default faces.
+`list-colors-display' shows the list of System color names, in case
+you wish to use them in other faces.
+
+** Running in a console window in Windows now uses the console size.
+
+Previous versions of Emacs erred on the side of having a usable Emacs
+through telnet, even though that was inconvenient if you use Emacs in
+a local console window with a scrollback buffer. The default value of
+w32-use-full-screen-buffer is now nil, which favors local console
+windows. Recent versions of Windows telnet also work well with this
+setting. If you are using an older telnet server then Emacs detects
+that the console window dimensions that are reported are not sane, and
+defaults to 80x25. If you use such a telnet server regularly at a size
+other than 80x25, you can still manually set
+w32-use-full-screen-buffer to t.
+
+** Different shaped mouse pointers are supported on MS Windows.
+
+The mouse pointer changes shape depending on what is under the pointer.
+
+** On MS Windows, the "system caret" now follows the cursor.
+
+This enables Emacs to work better with programs that need to track the
+cursor, for example screen magnifiers and text to speech programs.
+When such a program is in use, the system caret is made visible
+instead of Emacs drawing its own cursor. This seems to be required by
+some programs. The new variable w32-use-visible-system-caret allows
+the caret visibility to be manually toggled.
+
+** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations.
+
+Those systems use Unicode internally, so this allows Emacs to share
+multilingual text with other applications. On other versions of
+MS Windows, Emacs now uses the appropriate locale coding-system, so
+the clipboard should work correctly for your local language without
+any customizations.
+
+** On Mac OS, `keyboard-coding-system' changes based on the keyboard script.
+
+** The variable `mac-keyboard-text-encoding' and the constants
+`kTextEncodingMacRoman', `kTextEncodingISOLatin1', and
+`kTextEncodingISOLatin2' are obsolete.
+
+** The variable `mac-command-key-is-meta' is obsolete. Use
+`mac-command-modifier' and `mac-option-modifier' instead.
+\f
+* Incompatible Lisp Changes in Emacs 22.1
+
+** Mode line display ignores text properties as well as the
+:propertize and :eval forms in the value of a variable whose
+`risky-local-variable' property is nil.
+
+The function `comint-send-input' now accepts 3 optional arguments:
+
+ (comint-send-input &optional no-newline artificial)
+
+Callers sending input not from the user should use bind the 3rd
+argument `artificial' to a non-nil value, to prevent Emacs from
+deleting the part of subprocess output that matches the input.
+
+** The `read-file-name' function now returns a null string if the
+user just types RET.
+
+** The variables post-command-idle-hook and post-command-idle-delay have
+been removed. Use run-with-idle-timer instead.
+
+** A hex or octal escape in a string constant forces the string to
+be multibyte or unibyte, respectively.
+
+** The explicit method of creating a display table element by
+combining a face number and a character code into a numeric
+glyph code is deprecated.
+
+Instead, the new functions `make-glyph-code', `glyph-char', and
+`glyph-face' must be used to create and decode glyph codes in
+display tables.
+
+** `suppress-keymap' now works by remapping `self-insert-command' to
+the command `undefined'. (In earlier Emacs versions, it used
+`substitute-key-definition' to rebind self inserting characters to
+`undefined'.)
+
+** The third argument of `accept-process-output' is now milliseconds.
+It used to be microseconds.
+
+** The function find-operation-coding-system may be called with a cons
+(FILENAME . BUFFER) in the second argument if the first argument
+OPERATION is `insert-file-contents', and thus a function registered in
+`file-coding-system-alist' is also called with such an argument.
+
+** When Emacs receives a USR1 or USR2 signal, this generates
+input events: sigusr1 or sigusr2. Use special-event-map to
+handle these events.
+
+** The variable `memory-full' now remains t until
+there is no longer a shortage of memory.
+
+** Support for Mocklisp has been removed.
+
+\f
+* Lisp Changes in Emacs 22.1
+
+** General Lisp changes:
+
+*** New syntax: \s now stands for the SPACE character.
+
+`?\s' is a new way to write the space character. You must make sure
+it is not followed by a dash, since `?\s-...' indicates the "super"
+modifier. However, it would be strange to write a character constant
+and a following symbol (beginning with `-') with no space between
+them.
+
+`\s' stands for space in strings, too, but it is not really meant for
+strings; it is easier and nicer just to write a space.
+
+*** New syntax: \uXXXX and \UXXXXXXXX specify Unicode code points in hex.
+
+For instance, you can use "\u0428" to specify a string consisting of
+CYRILLIC CAPITAL LETTER SHA, or `"U0001D6E2" to specify one consisting
+of MATHEMATICAL ITALIC CAPITAL ALPHA (the latter is greater than
+#xFFFF and thus needs the longer syntax).
+
+This syntax works for both character constants and strings.
+
+*** New function `unsafep' determines whether a Lisp form is safe.
+
+It returns nil if the given Lisp form can't possibly do anything
+dangerous; otherwise it returns a reason why the form might be unsafe
+(calls unknown function, alters global variable, etc.).
+
+*** The function `eql' is now available without requiring the CL package.
+
+*** The new function `memql' is like `memq', but uses `eql' for comparison,
+that is, floats are compared by value and other elements with `eq'.
+
+*** New functions `string-or-null-p' and `booleanp'.
+
+`string-or-null-p' returns non-nil if OBJECT is a string or nil.
+`booleanp' returns non-nil if OBJECT is t or nil.
+
+*** `makehash' is now obsolete. Use `make-hash-table' instead.
+
+*** Minor change in the function `format'.
+
+Some flags that were accepted but not implemented (such as "*") are no
+longer accepted.
+
+*** `add-to-list' takes an optional third argument, APPEND.
+
+If APPEND is non-nil, the new element gets added at the end of the
+list instead of at the beginning. This change actually occurred in
+Emacs 21.1, but was not documented then.
+
+*** New function `add-to-ordered-list' is like `add-to-list' but
+associates a numeric ordering of each element added to the list.
+
+*** New function `add-to-history' adds an element to a history list.
+
+Lisp packages should use this function to add elements to their
+history lists.
+
+If `history-delete-duplicates' is non-nil, it removes duplicates of
+the new element from the history list it updates.
+
+*** New function `copy-tree' makes a copy of a tree.
+
+It recursively copies through both CARs and CDRs.
+
+*** New function `delete-dups' deletes `equal' duplicate elements from a list.
+
+It modifies the list destructively, like `delete'. Of several `equal'
+occurrences of an element in the list, the one that's kept is the
+first one.
+
+*** New function `rassq-delete-all'.
+
+(rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose
+CDR is `eq' to the specified value.
+
+*** Functions `get' and `plist-get' no longer give errors for bad plists.
+
+They return nil for a malformed property list or if the list is
+cyclic.
+
+*** New functions `lax-plist-get' and `lax-plist-put'.
+
+They are like `plist-get' and `plist-put', except that they compare
+the property name using `equal' rather than `eq'.
+
+*** The function `number-sequence' makes a list of equally-separated numbers.
+
+For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). By
+default, the separation is 1, but you can specify a different
+separation as the third argument. (number-sequence 1.5 6 2) returns
+(1.5 3.5 5.5).
+
+*** New variables `most-positive-fixnum' and `most-negative-fixnum'.
+
+They hold the largest and smallest possible integer values.
+
+*** The function `expt' handles negative exponents differently.
+The value for `(expt A B)', if both A and B are integers and B is
+negative, is now a float. For example: (expt 2 -2) => 0.25.
+
+*** The function `atan' now accepts an optional second argument.
+
+When called with 2 arguments, as in `(atan Y X)', `atan' returns the
+angle in radians between the vector [X, Y] and the X axis. (This is
+equivalent to the standard C library function `atan2'.)
+
+*** New macro `with-case-table'
+
+This executes the body with the case table temporarily set to a given
+case table.
+
+*** New macro `with-local-quit' temporarily allows quitting.
+
+A quit inside the body of `with-local-quit' is caught by the
+`with-local-quit' form itself, but another quit will happen later once
+the code that has inhibited quitting exits.
+
+This is for use around potentially blocking or long-running code
+inside timer functions and `post-command-hook' functions.
+
+*** New macro `define-obsolete-function-alias'.
+
+This combines `defalias' and `make-obsolete'.
+
+*** New macro `eval-at-startup' specifies expressions to
+evaluate when Emacs starts up. If this is done after startup,
+it evaluates those expressions immediately.
+
+This is useful in packages that can be preloaded.
+
+*** New function `macroexpand-all' expands all macros in a form.
+
+It is similar to the Common-Lisp function of the same name.
+One difference is that it guarantees to return the original argument
+if no expansion is done, which can be tested using `eq'.
+
+*** A function or macro's doc string can now specify the calling pattern.
+
+You put this info in the doc string's last line. It should be
+formatted so as to match the regexp "\n\n(fn .*)\\'". If you don't
+specify this explicitly, Emacs determines it from the actual argument
+names. Usually that default is right, but not always.
+
+*** New variable `print-continuous-numbering'.
+
+When this is non-nil, successive calls to print functions use a single
+numbering scheme for circular structure references. This is only
+relevant when `print-circle' is non-nil.
+
+When you bind `print-continuous-numbering' to t, you should
+also bind `print-number-table' to nil.
+
+*** `list-faces-display' takes an optional argument, REGEXP.
+
+If it is non-nil, the function lists only faces matching this regexp.
+
+*** New hook `command-error-function'.
+
+By setting this variable to a function, you can control
+how the editor command loop shows the user an error message.
+
+*** `debug-on-entry' accepts primitive functions that are not special forms.
+
+** Lisp code indentation features:
+
+*** The `defmacro' form can contain indentation and edebug declarations.
+
+These declarations specify how to indent the macro calls in Lisp mode
+and how to debug them with Edebug. You write them like this:
+
+ (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...)
+
+DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The
+possible declaration specifiers are:
+
+(indent INDENT)
+ Set NAME's `lisp-indent-function' property to INDENT.
+
+(edebug DEBUG)
+ Set NAME's `edebug-form-spec' property to DEBUG. (This is
+ equivalent to writing a `def-edebug-spec' for the macro,
+ but this is cleaner.)
+
+*** cl-indent now allows customization of Indentation of backquoted forms.
+
+See the new user option `lisp-backquote-indentation'.
+
+*** cl-indent now handles indentation of simple and extended `loop' forms.
+
+The new user options `lisp-loop-keyword-indentation',
+`lisp-loop-forms-indentation', and `lisp-simple-loop-indentation' can
+be used to customize the indentation of keywords and forms in loop
+forms.
+
+** Variable aliases:
+
+*** New function: defvaralias ALIAS-VAR BASE-VAR [DOCSTRING]
+
+This function defines the symbol ALIAS-VAR as a variable alias for
+symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR
+returns the value of BASE-VAR, and changing the value of ALIAS-VAR
+changes the value of BASE-VAR.
+
+DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has
+the same documentation as BASE-VAR.
+
+*** The macro `define-obsolete-variable-alias' combines `defvaralias' and
+`make-obsolete-variable'.
+
+*** New function: indirect-variable VARIABLE
+
+This function returns the variable at the end of the chain of aliases
+of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not
+defined as an alias, the function returns VARIABLE.
+
+It might be noteworthy that variables aliases work for all kinds of
+variables, including buffer-local and frame-local variables.
+
+** defcustom changes:
+
+*** The package-version keyword has been added to provide
+`customize-changed-options' functionality to packages in the future.
+Developers who make use of this keyword must also update the new
+variable `customize-package-emacs-version-alist'.
+
+*** The new customization type `float' requires a floating point number.
+
+** String changes:
+
+*** A hex escape in a string constant forces the string to be multibyte.
+
+*** An octal escape in a string constant forces the string to be unibyte.
+
+*** New function `string-to-multibyte' converts a unibyte string to a
+multibyte string with the same individual character codes.
+
+*** `split-string' now includes null substrings in the returned list if
+the optional argument SEPARATORS is non-nil and there are matches for
+SEPARATORS at the beginning or end of the string. If SEPARATORS is
+nil, or if the new optional third argument OMIT-NULLS is non-nil, all
+empty matches are omitted from the returned list.
+
+*** The new function `assoc-string' replaces `assoc-ignore-case' and
+`assoc-ignore-representation', which are still available, but have
+been declared obsolete.
+
+*** New function `substring-no-properties' returns a substring without
+text properties.
+
+** Displaying warnings to the user.
+
+See the functions `warn' and `display-warning', or the Lisp Manual.
+If you want to be sure the warning will not be overlooked, this
+facility is much better than using `message', since it displays
+warnings in a separate window.
+
+** Progress reporters.
+
+These provide a simple and uniform way for commands to present
+progress messages for the user.
+
+See the new functions `make-progress-reporter',
+`progress-reporter-update', `progress-reporter-force-update',
+`progress-reporter-done', and `dotimes-with-progress-reporter'.
+
+** Buffer positions:
+
+*** Function `compute-motion' now calculates the usable window
+width if the WIDTH argument is nil. If the TOPOS argument is nil,
+the usable window height and width is used.
+
+*** The `line-move', `scroll-up', and `scroll-down' functions will now
+modify the window vscroll to scroll through display rows that are
+taller that the height of the window, for example in the presence of
+large images. To disable this feature, bind the new variable
+`auto-window-vscroll' to nil.
+
+*** The argument to `forward-word', `backward-word' is optional.
+
+It defaults to 1.
+
+*** Argument to `forward-to-indentation' and `backward-to-indentation' is optional.
+
+It defaults to 1.
+
+*** `field-beginning' and `field-end' take new optional argument, LIMIT.
+
+This argument tells them not to search beyond LIMIT. Instead they
+give up and return LIMIT.
+
+*** New function `window-line-height' is an efficient way to get
+information about a specific text line in a window provided that the
+window's display is up-to-date.
+
+*** New function `line-number-at-pos' returns the line number of a position.
+
+It an optional buffer position argument that defaults to point.
+
+*** Function `pos-visible-in-window-p' now returns the pixel coordinates
+and partial visibility state of the corresponding row, if the PARTIALLY
+arg is non-nil.
+
+*** New functions `posn-at-point' and `posn-at-x-y' return
+click-event-style position information for a given visible buffer
+position or for a given window pixel coordinate.
+
+*** New function `mouse-on-link-p' tests if a position is in a clickable link.
+
+This is the function used by the new `mouse-1-click-follows-link'
+functionality.
+
+** Text modification:
+
+*** The new function `buffer-chars-modified-tick' returns a buffer's
+tick counter for changes to characters. Each time text in that buffer
+is inserted or deleted, the character-change counter is updated to the
+tick counter (`buffer-modified-tick'). Text property changes leave it
+unchanged.
+
+*** The new function `insert-for-yank' normally works like `insert', but
+removes the text properties in the `yank-excluded-properties' list
+and handles the `yank-handler' text property.
+
+*** The new function `insert-buffer-substring-as-yank' is like
+`insert-for-yank' except that it gets the text from another buffer as
+in `insert-buffer-substring'.
+
+*** The new function `insert-buffer-substring-no-properties' is like
+`insert-buffer-substring', but removes all text properties from the
+inserted substring.
+
+*** The new function `filter-buffer-substring' extracts a buffer
+substring, passes it through a set of filter functions, and returns
+the filtered substring. Use it instead of `buffer-substring' or
+`delete-and-extract-region' when copying text into a user-accessible
+data structure, such as the kill-ring, X clipboard, or a register.
+
+The list of filter function is specified by the new variable
+`buffer-substring-filters'. For example, Longlines mode adds to
+`buffer-substring-filters' to remove soft newlines from the copied
+text.
+
+*** Function `translate-region' accepts also a char-table as TABLE
+argument.
+
+*** The new translation table `translation-table-for-input'
+is used for customizing self-insertion. The character to
+be inserted is translated through it.
+
+*** Text clones.
+
+The new function `text-clone-create'. Text clones are chunks of text
+that are kept identical by transparently propagating changes from one
+clone to the other.
+
+*** The function `insert-string' is now obsolete.
+
+** Filling changes.
+
+*** In determining an adaptive fill prefix, Emacs now tries the function in
+`adaptive-fill-function' _before_ matching the buffer line against
+`adaptive-fill-regexp' rather than _after_ it.
+
+** Atomic change groups.
+
+To perform some changes in the current buffer "atomically" so that
+they either all succeed or are all undone, use `atomic-change-group'
+around the code that makes changes. For instance:
+
+ (atomic-change-group
+ (insert foo)
+ (delete-region x y))
+
+If an error (or other nonlocal exit) occurs inside the body of
+`atomic-change-group', it unmakes all the changes in that buffer that
+were during the execution of the body. The change group has no effect
+on any other buffers--any such changes remain.
+
+If you need something more sophisticated, you can directly call the
+lower-level functions that `atomic-change-group' uses. Here is how.
+
+To set up a change group for one buffer, call `prepare-change-group'.
+Specify the buffer as argument; it defaults to the current buffer.
+This function returns a "handle" for the change group. You must save
+the handle to activate the change group and then finish it.
+
+Before you change the buffer again, you must activate the change
+group. Pass the handle to `activate-change-group' afterward to
+do this.
+
+After you make the changes, you must finish the change group. You can
+either accept the changes or cancel them all. Call
+`accept-change-group' to accept the changes in the group as final;
+call `cancel-change-group' to undo them all.
+
+You should use `unwind-protect' to make sure the group is always
+finished. The call to `activate-change-group' should be inside the
+`unwind-protect', in case the user types C-g just after it runs.
+(This is one reason why `prepare-change-group' and
+`activate-change-group' are separate functions.) Once you finish the
+group, don't use the handle again--don't try to finish the same group
+twice.
+
+To make a multibuffer change group, call `prepare-change-group' once
+for each buffer you want to cover, then use `nconc' to combine the
+returned values, like this:
+
+ (nconc (prepare-change-group buffer-1)
+ (prepare-change-group buffer-2))
+
+You can then activate the multibuffer change group with a single call
+to `activate-change-group', and finish it with a single call to
+`accept-change-group' or `cancel-change-group'.
+
+Nested use of several change groups for the same buffer works as you
+would expect. Non-nested use of change groups for the same buffer
+will lead to undesirable results, so don't let it happen; the first
+change group you start for any given buffer should be the last one
+finished.
+
+** Buffer-related changes:
+
+*** The new function `buffer-local-value' returns the buffer-local
+binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not
+have a buffer-local binding in buffer BUFFER, it returns the default
+value of VARIABLE instead.
+
+*** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST.
+
+If it is non-nil, it specifies which buffers to list.
+
+*** `kill-buffer-hook' is now a permanent local.
+
+*** The function `frame-or-buffer-changed-p' now lets you maintain
+various status records in parallel.
+
+It takes a variable (a symbol) as argument. If the variable is non-nil,
+then its value should be a vector installed previously by
+`frame-or-buffer-changed-p'. If the frame names, buffer names, buffer
+order, or their read-only or modified flags have changed, since the
+time the vector's contents were recorded by a previous call to
+`frame-or-buffer-changed-p', then the function returns t. Otherwise
+it returns nil.
+
+On the first call to `frame-or-buffer-changed-p', the variable's
+value should be nil. `frame-or-buffer-changed-p' stores a suitable
+vector into the variable and returns t.
+
+If the variable is itself nil, then `frame-or-buffer-changed-p' uses,
+for compatibility, an internal variable which exists only for this
+purpose.
+
+*** The function `read-buffer' follows the convention for reading from
+the minibuffer with a default value: if DEF is non-nil, the minibuffer
+prompt provided in PROMPT is edited to show the default value provided
+in DEF before the terminal colon and space.
+
+** Searching and matching changes:
+
+*** New function `looking-back' checks whether a regular expression matches
+the text before point. Specifying the LIMIT argument bounds how far
+back the match can start; this is a way to keep it from taking too long.
+
+*** The new variable `search-spaces-regexp' controls how to search
+for spaces in a regular expression. If it is non-nil, it should be a
+regular expression, and any series of spaces stands for that regular
+expression. If it is nil, spaces stand for themselves.
+
+Spaces inside of constructs such as `[..]' and inside loops such as
+`*', `+', and `?' are never replaced with `search-spaces-regexp'.
+
+*** New regular expression operators, `\_<' and `\_>'.
+
+These match the beginning and end of a symbol. A symbol is a
+non-empty sequence of either word or symbol constituent characters, as
+specified by the syntax table.
+
+*** `skip-chars-forward' and `skip-chars-backward' now handle
+character classes such as `[:alpha:]', along with individual
+characters and ranges.
+
+*** In `replace-match', the replacement text no longer inherits
+properties from surrounding text.
+
+*** The list returned by `(match-data t)' now has the buffer as a final
+element, if the last match was on a buffer. `set-match-data'
+accepts such a list for restoring the match state.
+
+*** Functions `match-data' and `set-match-data' now have an optional
+argument `reseat'. When non-nil, all markers in the match data list
+passed to these functions will be reseated to point to nowhere.
+
+*** rx.el has new corresponding `symbol-start' and `symbol-end' elements.
+
+*** The default value of `sentence-end' is now defined using the new
+variable `sentence-end-without-space', which contains such characters
+that end a sentence without following spaces.
+
+The function `sentence-end' should be used to obtain the value of the
+variable `sentence-end'. If the variable `sentence-end' is nil, then
+this function returns the regexp constructed from the variables
+`sentence-end-without-period', `sentence-end-double-space' and
+`sentence-end-without-space'.
+
+** Undo changes:
+
+*** `buffer-undo-list' allows programmable elements.
+
+These elements have the form (apply FUNNAME . ARGS), where FUNNAME is
+a symbol other than t or nil. That stands for a high-level change
+that should be undone by evaluating (apply FUNNAME ARGS).
+
+These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS)
+which indicates that the change which took place was limited to the
+range BEG...END and increased the buffer size by DELTA.
+
+*** If the buffer's undo list for the current command gets longer than
+`undo-outer-limit', garbage collection empties it. This is to prevent
+it from using up the available memory and choking Emacs.
+
+** Killing and yanking changes:
+
+*** New `yank-handler' text property can be used to control how
+previously killed text on the kill ring is reinserted.
+
+The value of the `yank-handler' property must be a list with one to four
+elements with the following format:
+ (FUNCTION PARAM NOEXCLUDE UNDO).
+
+The `insert-for-yank' function looks for a yank-handler property on
+the first character on its string argument (typically the first
+element on the kill-ring). If a `yank-handler' property is found,
+the normal behavior of `insert-for-yank' is modified in various ways:
+
+ When FUNCTION is present and non-nil, it is called instead of `insert'
+to insert the string. FUNCTION takes one argument--the object to insert.
+ If PARAM is present and non-nil, it replaces STRING as the object
+passed to FUNCTION (or `insert'); for example, if FUNCTION is
+`yank-rectangle', PARAM should be a list of strings to insert as a
+rectangle.
+ If NOEXCLUDE is present and non-nil, the normal removal of the
+`yank-excluded-properties' is not performed; instead FUNCTION is
+responsible for removing those properties. This may be necessary
+if FUNCTION adjusts point before or after inserting the object.
+ If UNDO is present and non-nil, it is a function that will be called
+by `yank-pop' to undo the insertion of the current object. It is
+called with two arguments, the start and end of the current region.
+FUNCTION can set `yank-undo-function' to override the UNDO value.
+
+*** The functions `kill-new', `kill-append', and `kill-region' now have an
+optional argument to specify the `yank-handler' text property to put on
+the killed text.
+
+*** The function `yank-pop' will now use a non-nil value of the variable
+`yank-undo-function' (instead of `delete-region') to undo the previous
+`yank' or `yank-pop' command (or a call to `insert-for-yank'). The function
+`insert-for-yank' automatically sets that variable according to the UNDO
+element of the string argument's `yank-handler' text property if present.
+
+*** The function `insert-for-yank' now supports strings where the
+`yank-handler' property does not span the first character of the
+string. The old behavior is available if you call
+`insert-for-yank-1' instead.
+
+** Syntax table changes:
+
+*** The new function `syntax-ppss' provides an efficient way to find the
+current syntactic context at point.
+
+*** The new function `syntax-after' returns the syntax code
+of the character after a specified buffer position, taking account
+of text properties as well as the character code.
+
+*** `syntax-class' extracts the class of a syntax code (as returned
+by `syntax-after').
+
+*** The macro `with-syntax-table' no longer copies the syntax table.
+
+** File operation changes:
+
+*** New vars `exec-suffixes' and `load-suffixes' used when
+searching for an executable or an Emacs Lisp file.
+
+*** New function `locate-file' searches for a file in a list of directories.
+`locate-file' accepts a name of a file to search (a string), and two
+lists: a list of directories to search in and a list of suffixes to
+try; typical usage might use `exec-path' and `load-path' for the list
+of directories, and `exec-suffixes' and `load-suffixes' for the list
+of suffixes. The function also accepts a predicate argument to
+further filter candidate files.
+
+One advantage of using this function is that the list of suffixes in
+`exec-suffixes' is OS-dependant, so this function will find
+executables without polluting Lisp code with OS dependencies.
+
+*** The new function `file-remote-p' tests a file name and returns
+non-nil if it specifies a remote file (one that Emacs accesses using
+its own special methods and not directly through the file system).
+The value in that case is an identifier for the remote file system.
+
+*** The new hook `before-save-hook' is invoked by `basic-save-buffer'
+before saving buffers. This allows packages to perform various final
+tasks. For example, it can be used by the copyright package to make
+sure saved files have the current year in any copyright headers.
+
+*** `file-chase-links' now takes an optional second argument LIMIT which
+specifies the maximum number of links to chase through. If after that
+many iterations the file name obtained is still a symbolic link,
+`file-chase-links' returns it anyway.
+
+*** Functions `file-name-sans-extension' and `file-name-extension' now
+ignore the leading dots in file names, so that file names such as
+`.emacs' are treated as extensionless.
+
+*** If `buffer-save-without-query' is non-nil in some buffer,
+`save-some-buffers' will always save that buffer without asking (if
+it's modified).
+
+*** `buffer-auto-save-file-format' is the new name for what was
+formerly called `auto-save-file-format'. It is now a permanent local.
+
+*** `visited-file-modtime' and `calendar-time-from-absolute' now return
+a list of two integers, instead of a cons.
+
+*** The precedence of file name handlers has been changed.
+
+Instead of choosing the first handler that matches,
+`find-file-name-handler' now gives precedence to a file name handler
+that matches nearest the end of the file name. More precisely, the
+handler whose (match-beginning 0) is the largest is chosen. In case
+of ties, the old "first matched" rule applies.
+
+*** A file name handler can declare which operations it handles.
+
+You do this by putting an `operation' property on the handler name
+symbol. The property value should be a list of the operations that
+the handler really handles. It won't be called for any other
+operations.
+
+This is useful for autoloaded handlers, to prevent them from being
+autoloaded when not really necessary.
+
+*** The function `make-auto-save-file-name' is now handled by file
+name handlers. This will be exploited for remote files mainly.
+
+*** The function `file-name-completion' accepts an optional argument
+PREDICATE, and rejects completion candidates that don't satisfy PREDICATE.
+
+*** The new primitive `set-file-times' sets a file's access and
+modification times. Magic file name handlers can handle this
+operation.
+
+** Input changes:
+
+*** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that
+display a prompt but don't use the minibuffer, now display the prompt
+using the text properties (esp. the face) of the prompt string.
+
+*** The functions `read-event', `read-char', and `read-char-exclusive'
+have a new optional argument SECONDS. If non-nil, this specifies a
+maximum time to wait for input, in seconds. If no input arrives after
+this time elapses, the functions stop waiting and return nil.
+
+*** An interactive specification can now use the code letter `U' to get
+the up-event that was discarded in case the last key sequence read for a
+previous `k' or `K' argument was a down-event; otherwise nil is used.
+
+*** The new interactive-specification `G' reads a file name
+much like `F', but if the input is a directory name (even defaulted),
+it returns just the directory name.
+
+*** (while-no-input BODY...) runs BODY, but only so long as no input
+arrives. If the user types or clicks anything, BODY stops as if a
+quit had occurred. `while-no-input' returns the value of BODY, if BODY
+finishes. It returns nil if BODY was aborted by a quit, and t if
+BODY was aborted by arrival of input.
+
+*** `recent-keys' now returns the last 300 keys.
+
+** Minibuffer changes:
+
+*** The new function `minibufferp' returns non-nil if its optional
+buffer argument is a minibuffer. If the argument is omitted, it
+defaults to the current buffer.
+
+*** New function `minibuffer-selected-window' returns the window which
+was selected when entering the minibuffer.
+
+*** The `read-file-name' function now takes an additional argument which
+specifies a predicate which the file name read must satisfy. The
+new variable `read-file-name-predicate' contains the predicate argument
+while reading the file name from the minibuffer; the predicate in this
+variable is used by read-file-name-internal to filter the completion list.
+
+*** The new variable `read-file-name-function' can be used by Lisp code
+to override the built-in `read-file-name' function.
+
+*** The new variable `read-file-name-completion-ignore-case' specifies
+whether completion ignores case when reading a file name with the
+`read-file-name' function.
+
+*** The new function `read-directory-name' is for reading a directory name.
+
+It is like `read-file-name' except that the defaulting works better
+for directories, and completion inside it shows only directories.
+
+*** The new variable `history-add-new-input' specifies whether to add new
+elements in history. If set to nil, minibuffer reading functions don't
+add new elements to the history list, so it is possible to do this
+afterwards by calling `add-to-history' explicitly.
+
+** Completion changes:
+
+*** The new function `minibuffer-completion-contents' returns the contents
+of the minibuffer just before point. That is what completion commands
+operate on.
+
+*** The functions `all-completions' and `try-completion' now accept lists
+of strings as well as hash-tables additionally to alists, obarrays
+and functions. Furthermore, the function `test-completion' is now
+exported to Lisp. The keys in alists and hash tables can be either
+strings or symbols, which are automatically converted with to strings.
+
+*** The new macro `dynamic-completion-table' supports using functions
+as a dynamic completion table.
+
+ (dynamic-completion-table FUN)
+
+FUN is called with one argument, the string for which completion is required,
+and it should return an alist containing all the intended possible
+completions. This alist can be a full list of possible completions so that FUN
+can ignore the value of its argument. If completion is performed in the
+minibuffer, FUN will be called in the buffer from which the minibuffer was
+entered. `dynamic-completion-table' then computes the completion.
+
+*** The new macro `lazy-completion-table' initializes a variable
+as a lazy completion table.
+
+ (lazy-completion-table VAR FUN)
+
+If the completion table VAR is used for the first time (e.g., by passing VAR
+as an argument to `try-completion'), the function FUN is called with no
+arguments. FUN must return the completion table that will be stored in VAR.
+If completion is requested in the minibuffer, FUN will be called in the buffer
+from which the minibuffer was entered. The return value of
+`lazy-completion-table' must be used to initialize the value of VAR.
+
+** Abbrev changes:
+
+*** `define-abbrev' now accepts an optional argument SYSTEM-FLAG.
+
+If non-nil, this marks the abbrev as a "system" abbrev, which means
+that it won't be stored in the user's abbrevs file if he saves the
+abbrevs. Major modes that predefine some abbrevs should always
+specify this flag.
+
+*** The new function `copy-abbrev-table' copies an abbrev table.
+
+It returns a new abbrev table that is a copy of a given abbrev table.
+
+** Enhancements to keymaps.
+
+*** Cleaner way to enter key sequences.
+
+You can enter a constant key sequence in a more natural format, the
+same one used for saving keyboard macros, using the macro `kbd'. For
+example,
+
+(kbd "C-x C-f") => "\^x\^f"
+
+Actually, this format has existed since Emacs 20.1.
+
+*** Interactive commands can be remapped through keymaps.
+
+This is an alternative to using `defadvice' or `substitute-key-definition'
+to modify the behavior of a key binding using the normal keymap
+binding and lookup functionality.
+
+When a key sequence is bound to a command, and that command is
+remapped to another command, that command is run instead of the
+original command.
+
+Example:
+Suppose that minor mode `my-mode' has defined the commands
+`my-kill-line' and `my-kill-word', and it wants C-k (and any other key
+bound to `kill-line') to run the command `my-kill-line' instead of
+`kill-line', and likewise it wants to run `my-kill-word' instead of
+`kill-word'.
+
+Instead of rebinding C-k and the other keys in the minor mode map,
+command remapping allows you to directly map `kill-line' into
+`my-kill-line' and `kill-word' into `my-kill-word' using `define-key':
+
+ (define-key my-mode-map [remap kill-line] 'my-kill-line)
+ (define-key my-mode-map [remap kill-word] 'my-kill-word)
+
+When `my-mode' is enabled, its minor mode keymap is enabled too. So
+when the user types C-k, that runs the command `my-kill-line'.
+
+Only one level of remapping is supported. In the above example, this
+means that if `my-kill-line' is remapped to `other-kill', then C-k still
+runs `my-kill-line'.
+
+The following changes have been made to provide command remapping:
+
+- Command remappings are defined using `define-key' with a prefix-key
+ `remap', i.e. `(define-key MAP [remap CMD] DEF)' remaps command CMD
+ to definition DEF in keymap MAP. The definition is not limited to
+ another command; it can be anything accepted for a normal binding.
+
+- The new function `command-remapping' returns the binding for a
+ remapped command in the current keymaps, or nil if not remapped.
+
+- `key-binding' now remaps interactive commands unless the optional
+ third argument NO-REMAP is non-nil.
+
+- `where-is-internal' now returns nil for a remapped command (e.g.
+ `kill-line', when `my-mode' is enabled), and the actual key binding for
+ the command it is remapped to (e.g. C-k for my-kill-line).
+ It also has a new optional fifth argument, NO-REMAP, which inhibits
+ remapping if non-nil (e.g. it returns "C-k" for `kill-line', and
+ "<kill-line>" for `my-kill-line').
+
+- The new variable `this-original-command' contains the original
+ command before remapping. It is equal to `this-command' when the
+ command was not remapped.
+
+*** The definition of a key-binding passed to define-key can use XEmacs-style
+key-sequences, such as [(control a)].
+
+*** New keymaps for typing file names
+
+Two new keymaps, `minibuffer-local-filename-completion-map' and
+`minibuffer-local-must-match-filename-map', apply whenever
+Emacs reads a file name in the minibuffer. These key maps override
+the usual binding of SPC to `minibuffer-complete-word' (so that file
+names with embedded spaces could be typed without the need to quote
+the spaces).
+
+*** New function `current-active-maps' returns a list of currently
+active keymaps.
+
+*** New function `describe-buffer-bindings' inserts the list of all
+defined keys and their definitions.
+
+*** New function `keymap-prompt' returns the prompt string of a keymap.
+
+*** If text has a `keymap' property, that keymap takes precedence
+over minor mode keymaps.
+
+*** The `keymap' property now also works at the ends of overlays and
+text properties, according to their stickiness. This also means that it
+works with empty overlays. The same hold for the `local-map' property.
+
+*** `key-binding' will now look up mouse-specific bindings. The
+keymaps consulted by `key-binding' will get adapted if the key
+sequence is started with a mouse event. Instead of letting the click
+position be determined from the key sequence itself, it is also
+possible to specify it with an optional argument explicitly.
+
+*** `define-key-after' now accepts keys longer than 1.
+
+*** (map-keymap FUNCTION KEYMAP) applies the function to each binding
+in the keymap.
+
+*** New variable `emulation-mode-map-alists'.
+
+Lisp packages using many minor mode keymaps can now maintain their own
+keymap alist separate from `minor-mode-map-alist' by adding their
+keymap alist to this list.
+
+*** Dense keymaps now handle inheritance correctly.
+
+Previously a dense keymap would hide all of the simple-char key
+bindings of the parent keymap.
+
+** Enhancements to process support
+
+*** Adaptive read buffering of subprocess output.
+
+On some systems, when Emacs reads the output from a subprocess, the
+output data is read in very small blocks, potentially resulting in
+very poor performance. This behavior can be remedied to some extent
+by setting the new variable `process-adaptive-read-buffering' to a
+non-nil value (the default), as it will automatically delay reading
+from such processes, allowing them to produce more output before
+Emacs tries to read it.
+
+*** Processes now have an associated property list where programs can
+maintain process state and other per-process related information.
+
+Use the new functions `process-get' and `process-put' to access, add,
+and modify elements on this property list. Use the new functions
+`process-plist' and `set-process-plist' to access and replace the
+entire property list of a process.
+
+*** Function `list-processes' now has an optional argument; if non-nil,
+it lists only the processes whose query-on-exit flag is set.
+
+*** New fns `set-process-query-on-exit-flag' and `process-query-on-exit-flag'.
+
+These replace the old function `process-kill-without-query'. That
+function is still supported, but new code should use the new
+functions.
+
+*** The new function `call-process-shell-command'.
+
+This executes a shell command synchronously in a separate process.
+
+*** The new function `process-file' is similar to `call-process', but
+obeys file handlers. The file handler is chosen based on
+`default-directory'.
+
+*** Function `signal-process' now accepts a process object or process
+name in addition to a process id to identify the signaled process.
+
+*** Function `accept-process-output' has a new optional fourth arg
+JUST-THIS-ONE. If non-nil, only output from the specified process
+is handled, suspending output from other processes. If value is an
+integer, also inhibit running timers. This feature is generally not
+recommended, but may be necessary for specific applications, such as
+speech synthesis.
+
+*** A process filter function gets the output as multibyte string
+if the process specifies t for its filter's multibyteness.
+
+That multibyteness is decided by the value of
+`default-enable-multibyte-characters' when the process is created, and
+you can change it later with `set-process-filter-multibyte'.
+
+*** The new function `set-process-filter-multibyte' sets the
+multibyteness of the strings passed to the process's filter.
+
+*** The new function `process-filter-multibyte-p' returns the
+multibyteness of the strings passed to the process's filter.
+
+*** If a process's coding system is `raw-text' or `no-conversion' and its
+buffer is multibyte, the output of the process is at first converted
+to multibyte by `string-to-multibyte' then inserted in the buffer.
+Previously, it was converted to multibyte by `string-as-multibyte',
+which was not compatible with the behavior of file reading.
+
+** Enhanced networking support.
+
+*** The new `make-network-process' function makes network connections.
+It allows opening of stream and datagram connections to a server, as well as
+create a stream or datagram server inside Emacs.
+
+- A server is started using :server t arg.
+- Datagram connection is selected using :type 'datagram arg.
+- A server can open on a random port using :service t arg.
+- Local sockets are supported using :family 'local arg.
+- IPv6 is supported (when available). You may explicitly select IPv6
+ using :family 'ipv6 arg.
+- Non-blocking connect is supported using :nowait t arg.
+- The process' property list can be initialized using :plist PLIST arg;
+ a copy of the server process' property list is automatically inherited
+ by new client processes created to handle incoming connections.
+
+To test for the availability of a given feature, use featurep like this:
+ (featurep 'make-network-process '(:type datagram))
+ (featurep 'make-network-process '(:family ipv6))
+
+*** The old `open-network-stream' now uses `make-network-process'.
+
+*** `process-contact' has an optional KEY argument.
+
+Depending on this argument, you can get the complete list of network
+process properties or a specific property. Using :local or :remote as
+the KEY, you get the address of the local or remote end-point.
+
+An Inet address is represented as a 5 element vector, where the first
+4 elements contain the IP address and the fifth is the port number.
+
+*** New functions `stop-process' and `continue-process'.
+
+These functions stop and restart communication through a network
+connection. For a server process, no connections are accepted in the
+stopped state. For a client process, no input is received in the
+stopped state.
+
+*** New function `format-network-address'.
+
+This function reformats the Lisp representation of a network address
+to a printable string. For example, an IP address A.B.C.D and port
+number P is represented as a five element vector [A B C D P], and the
+printable string returned for this vector is "A.B.C.D:P". See the doc
+string for other formatting options.
+
+*** New function `network-interface-list'.
+
+This function returns a list of network interface names and their
+current network addresses.
+
+*** New function `network-interface-info'.
+
+This function returns the network address, hardware address, current
+status, and other information about a specific network interface.
+
+*** New functions `process-datagram-address', `set-process-datagram-address'.
+
+These functions are used with datagram-based network processes to get
+and set the current address of the remote partner.
+
+*** Deleting a network process with `delete-process' calls the sentinel.
+
+The status message passed to the sentinel for a deleted network
+process is "deleted". The message passed to the sentinel when the
+connection is closed by the remote peer has been changed to
+"connection broken by remote peer".
+
+** Using window objects:
+
+*** You can now make a window as short as one line.
+
+A window that is just one line tall does not display either a mode
+line or a header line, even if the variables `mode-line-format' and
+`header-line-format' call for them. A window that is two lines tall
+cannot display both a mode line and a header line at once; if the
+variables call for both, only the mode line actually appears.
+
+*** The new function `window-inside-edges' returns the edges of the
+actual text portion of the window, not including the scroll bar or
+divider line, the fringes, the display margins, the header line and
+the mode line.
+
+*** The new functions `window-pixel-edges' and `window-inside-pixel-edges'
+return window edges in units of pixels, rather than columns and lines.
+
+*** New function `window-body-height'.
+
+This is like `window-height' but does not count the mode line or the
+header line.
+
+*** The new function `adjust-window-trailing-edge' moves the right
+or bottom edge of a window. It does not move other window edges.
+
+*** The new macro `with-selected-window' temporarily switches the
+selected window without impacting the order of `buffer-list'.
+It saves and restores the current buffer, too.
+
+*** `select-window' takes an optional second argument NORECORD.
+
+This is like `switch-to-buffer'.
+
+*** `save-selected-window' now saves and restores the selected window
+of every frame. This way, it restores everything that can be changed
+by calling `select-window'. It also saves and restores the current
+buffer.
+
+*** `set-window-buffer' has an optional argument KEEP-MARGINS.
+
+If non-nil, that says to preserve the window's current margin, fringe,
+and scroll-bar settings.
+
+*** The new function `window-tree' returns a frame's window tree.
+
+*** The functions `get-lru-window' and `get-largest-window' take an optional
+argument `dedicated'. If non-nil, those functions do not ignore
+dedicated windows.
+
+** Customizable fringe bitmaps
+
+*** There are new display properties, `left-fringe' and `right-fringe',
+that can be used to show a specific bitmap in the left or right fringe
+bitmap of the display line.
+
+Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a
+symbol identifying a fringe bitmap, either built-in or defined with
+`define-fringe-bitmap', and FACE is an optional face name to be used
+for displaying the bitmap instead of the default `fringe' face.
+When specified, FACE is automatically merged with the `fringe' face.
+
+*** New buffer-local variables `fringe-indicator-alist' and
+`fringe-cursor-alist' maps between logical (internal) fringe indicator
+and cursor symbols and the actual fringe bitmaps to be displayed.
+This decouples the logical meaning of the fringe indicators from the
+physical appearance, as well as allowing different fringe bitmaps to
+be used in different windows showing different buffers.
+
+*** New function `define-fringe-bitmap' can now be used to create new
+fringe bitmaps, as well as change the built-in fringe bitmaps.
+
+*** New function `destroy-fringe-bitmap' deletes a fringe bitmap
+or restores a built-in one to its default value.
+
+*** New function `set-fringe-bitmap-face' specifies the face to be
+used for a specific fringe bitmap. The face is automatically merged
+with the `fringe' face, so normally, the face should only specify the
+foreground color of the bitmap.
+
+*** New function `fringe-bitmaps-at-pos' returns the current fringe
+bitmaps in the display line at a given buffer position.
+
+** Other window fringe features:
+
+*** Controlling the default left and right fringe widths.
+
+The default left and right fringe widths for all windows of a frame
+can now be controlled by setting the `left-fringe' and `right-fringe'
+frame parameters to an integer value specifying the width in pixels.
+Setting the width to 0 effectively removes the corresponding fringe.
+
+The actual default fringe widths for the frame may deviate from the
+specified widths, since the combined fringe widths must match an
+integral number of columns. The extra width is distributed evenly
+between the left and right fringe. To force a specific fringe width,
+specify the width as a negative integer (if both widths are negative,
+only the left fringe gets the specified width).
+
+Setting the width to nil (the default), restores the default fringe
+width which is the minimum number of pixels necessary to display any
+of the currently defined fringe bitmaps. The width of the built-in
+fringe bitmaps is 8 pixels.
+
+*** Per-window fringe and scrollbar settings
+
+**** Windows can now have their own individual fringe widths and
+position settings.
+
+To control the fringe widths of a window, either set the buffer-local
+variables `left-fringe-width', `right-fringe-width', or call
+`set-window-fringes'.
+
+To control the fringe position in a window, that is, whether fringes
+are positioned between the display margins and the window's text area,
+or at the edges of the window, either set the buffer-local variable
+`fringes-outside-margins' or call `set-window-fringes'.
+
+The function `window-fringes' can be used to obtain the current
+settings. To make `left-fringe-width', `right-fringe-width', and
+`fringes-outside-margins' take effect, you must set them before
+displaying the buffer in a window, or use `set-window-buffer' to force
+an update of the display margins.
+
+**** Windows can now have their own individual scroll-bar settings
+controlling the width and position of scroll-bars.
+
+To control the scroll-bar of a window, either set the buffer-local
+variables `scroll-bar-mode' and `scroll-bar-width', or call
+`set-window-scroll-bars'. The function `window-scroll-bars' can be
+used to obtain the current settings. To make `scroll-bar-mode' and
+`scroll-bar-width' take effect, you must set them before displaying
+the buffer in a window, or use `set-window-buffer' to force an update
+of the display margins.
+
+** Redisplay features:
+
+*** `sit-for' can now be called with args (SECONDS &optional NODISP).
+
+*** Iconifying or deiconifying a frame no longer makes sit-for return.
+
+*** New function `redisplay' causes an immediate redisplay if no input is
+available, equivalent to (sit-for 0). The call (redisplay t) forces
+an immediate redisplay even if input is pending.
+
+*** New function `force-window-update' can initiate a full redisplay of
+one or all windows. Normally, this is not needed as changes in window
+contents are detected automatically. However, certain implicit
+changes to mode lines, header lines, or display properties may require
+forcing an explicit window update.
+
+*** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able
+to display CHAR. More precisely, if the selected frame's fontset has
+a font to display the character set that CHAR belongs to.
+
+Fontsets can specify a font on a per-character basis; when the fontset
+does that, this value cannot be accurate.
+
+*** You can define multiple overlay arrows via the new
+variable `overlay-arrow-variable-list'.
+
+It contains a list of variables which contain overlay arrow position
+markers, including the original `overlay-arrow-position' variable.
+
+Each variable on this list can have individual `overlay-arrow-string'
+and `overlay-arrow-bitmap' properties that specify an overlay arrow
+string (for non-window terminals) or fringe bitmap (for window
+systems) to display at the corresponding overlay arrow position.
+If either property is not set, the default `overlay-arrow-string' or
+'overlay-arrow-fringe-bitmap' will be used.
+
+*** New `line-height' and `line-spacing' properties for newline characters
+
+A newline can now have `line-height' and `line-spacing' text or overlay
+properties that control the height of the corresponding display row.
+
+If the `line-height' property value is t, the newline does not
+contribute to the height of the display row; instead the height of the
+newline glyph is reduced. Also, a `line-spacing' property on this
+newline is ignored. This can be used to tile small images or image
+slices without adding blank areas between the images.
+
+If the `line-height' property value is a positive integer, the value
+specifies the minimum line height in pixels. If necessary, the line
+height it increased by increasing the line's ascent.
+
+If the `line-height' property value is a float, the minimum line
+height is calculated by multiplying the default frame line height by
+the given value.
+
+If the `line-height' property value is a cons (FACE . RATIO), the
+minimum line height is calculated as RATIO * height of named FACE.
+RATIO is int or float. If FACE is t, it specifies the current face.
+
+If the `line-height' property value is a cons (nil . RATIO), the line
+height is calculated as RATIO * actual height of the line's contents.
+
+If the `line-height' value is a cons (HEIGHT . TOTAL), HEIGHT specifies
+the line height as described above, while TOTAL is any of the forms
+described above and specifies the total height of the line, causing a
+varying number of pixels to be inserted after the line to make it line
+exactly that many pixels high.
+
+If the `line-spacing' property value is an positive integer, the value
+is used as additional pixels to insert after the display line; this
+overrides the default frame `line-spacing' and any buffer local value of
+the `line-spacing' variable.
+
+If the `line-spacing' property is a float or cons, the line spacing
+is calculated as specified above for the `line-height' property.
+
+*** The buffer local `line-spacing' variable can now have a float value,
+which is used as a height relative to the default frame line height.
+
+*** Enhancements to stretch display properties
+
+The display property stretch specification form `(space PROPS)', where
+PROPS is a property list, now allows pixel based width and height
+specifications, as well as enhanced horizontal text alignment.
+
+The value of these properties can now be a (primitive) expression
+which is evaluated during redisplay. The following expressions
+are supported:
+
+EXPR ::= NUM | (NUM) | UNIT | ELEM | POS | IMAGE | FORM
+NUM ::= INTEGER | FLOAT | SYMBOL
+UNIT ::= in | mm | cm | width | height
+ELEM ::= left-fringe | right-fringe | left-margin | right-margin
+ | scroll-bar | text
+POS ::= left | center | right
+FORM ::= (NUM . EXPR) | (OP EXPR ...)
+OP ::= + | -
+
+The form `NUM' specifies a fractional width or height of the default
+frame font size. The form `(NUM)' specifies an absolute number of
+pixels. If a symbol is specified, its buffer-local variable binding
+is used. The `in', `mm', and `cm' units specifies the number of
+pixels per inch, milli-meter, and centi-meter, resp. The `width' and
+`height' units correspond to the width and height of the current face
+font. An image specification corresponds to the width or height of
+the image.
+
+The `left-fringe', `right-fringe', `left-margin', `right-margin',
+`scroll-bar', and `text' elements specify to the width of the
+corresponding area of the window.
+
+The `left', `center', and `right' positions can be used with :align-to
+to specify a position relative to the left edge, center, or right edge
+of the text area. One of the above window elements (except `text')
+can also be used with :align-to to specify that the position is
+relative to the left edge of the given area. Once the base offset for
+a relative position has been set (by the first occurrence of one of
+these symbols), further occurrences of these symbols are interpreted as
+the width of the area.
+
+For example, to align to the center of the left-margin, use
+ :align-to (+ left-margin (0.5 . left-margin))
+
+If no specific base offset is set for alignment, it is always relative
+to the left edge of the text area. For example, :align-to 0 in a
+header line aligns with the first text column in the text area.
+
+The value of the form `(NUM . EXPR)' is the value of NUM multiplied by
+the value of the expression EXPR. For example, (2 . in) specifies a
+width of 2 inches, while (0.5 . IMAGE) specifies half the width (or
+height) of the specified image.
+
+The form `(+ EXPR ...)' adds up the value of the expressions.
+The form `(- EXPR ...)' negates or subtracts the value of the expressions.
+
+*** Normally, the cursor is displayed at the end of any overlay and
+text property string that may be present at the current window
+position. The cursor can now be placed on any character of such
+strings by giving that character a non-nil `cursor' text property.
+
+*** The display space :width and :align-to text properties are now
+supported on text terminals.
+
+*** Support for displaying image slices
+
+**** New display property (slice X Y WIDTH HEIGHT) can be used with
+an image property to display only a specific slice of the image.
+
+**** Function `insert-image' has new optional fourth arg to
+specify image slice (X Y WIDTH HEIGHT).
+
+**** New function `insert-sliced-image' inserts a given image as a
+specified number of evenly sized slices (rows x columns).
+
+*** Images can now have an associated image map via the :map property.
+
+An image map is an alist where each element has the format (AREA ID PLIST).
+An AREA is specified as either a rectangle, a circle, or a polygon:
+A rectangle is a cons (rect . ((X0 . Y0) . (X1 . Y1))) specifying the
+pixel coordinates of the upper left and bottom right corners.
+A circle is a cons (circle . ((X0 . Y0) . R)) specifying the center
+and the radius of the circle; R can be a float or integer.
+A polygon is a cons (poly . [X0 Y0 X1 Y1 ...]) where each pair in the
+vector describes one corner in the polygon.
+
+When the mouse pointer is above a hot-spot area of an image, the
+PLIST of that hot-spot is consulted; if it contains a `help-echo'
+property it defines a tool-tip for the hot-spot, and if it contains
+a `pointer' property, it defines the shape of the mouse cursor when
+it is over the hot-spot. See the variable `void-area-text-pointer'
+for possible pointer shapes.
+
+When you click the mouse when the mouse pointer is over a hot-spot,
+an event is composed by combining the ID of the hot-spot with the
+mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'.
+
+*** The function `find-image' now searches in etc/images/ and etc/.
+The new variable `image-load-path' is a list of locations in which to
+search for image files. The default is to search in etc/images, then
+in etc/, and finally in the directories specified by `load-path'.
+Subdirectories of etc/ and etc/images are not recursively searched; if
+you put an image file in a subdirectory, you have to specify it
+explicitly; for example, if an image is put in etc/images/foo/bar.xpm:
+
+ (defimage foo-image '((:type xpm :file "foo/bar.xpm")))
+
+Note that all images formerly located in the lisp directory have been
+moved to etc/images.
+
+*** New function `image-load-path-for-library' returns a suitable
+search path for images relative to library. This function is useful in
+external packages to save users from having to update
+`image-load-path'.
+
+*** The new variable `max-image-size' defines the maximum size of
+images that Emacs will load and display.
+
+*** The new variable `display-mm-dimensions-alist' can be used to
+override incorrect graphical display dimensions returned by functions
+`display-mm-height' and `display-mm-width'.
+
+** Mouse pointer features:
+
+*** The mouse pointer shape in void text areas (i.e. after the end of a
+line or below the last line in the buffer) of the text window is now
+controlled by the new variable `void-text-area-pointer'. The default
+is to use the `arrow' (non-text) pointer. Other choices are `text'
+(or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'.
+
+*** The mouse pointer shape over an image can now be controlled by the
+:pointer image property.
+
+*** The mouse pointer shape over ordinary text or images can now be
+controlled/overridden via the `pointer' text property.
+
+** Mouse event enhancements:
+
+*** All mouse events now include a buffer position regardless of where
+you clicked. For mouse clicks in window margins and fringes, this is
+a sensible buffer position corresponding to the surrounding text.
+
+*** Mouse events for clicks on window fringes now specify `left-fringe'
+or `right-fringe' as the area.
+
+*** Mouse events include actual glyph column and row for all event types
+and all areas.
+
+*** Mouse events can now indicate an image object clicked on.
+
+*** Mouse events include relative X and Y pixel coordinates relative to
+the top left corner of the object (image or character) clicked on.
+
+*** Mouse events include the pixel width and height of the object
+(image or character) clicked on.
+
+*** Function `mouse-set-point' now works for events outside text area.
+
+*** `posn-point' now returns buffer position for non-text area events.
+
+*** New function `posn-area' returns window area clicked on (nil means
+text area).
+
+*** New function `posn-actual-col-row' returns the actual glyph coordinates
+of the mouse event position.
+
+*** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'.
+
+These return the image or string object of a mouse click, the X and Y
+pixel coordinates relative to the top left corner of that object, and
+the total width and height of that object.
+
+** Text property and overlay changes:
+
+*** Arguments for `remove-overlays' are now optional, so that you can
+remove all overlays in the buffer with just (remove-overlays).
+
+*** New variable `char-property-alias-alist'.
+
+This variable allows you to create alternative names for text
+properties. It works at the same level as `default-text-properties',
+although it applies to overlays as well. This variable was introduced
+to implement the `font-lock-face' property.
+
+*** New function `get-char-property-and-overlay' accepts the same
+arguments as `get-char-property' and returns a cons whose car is the
+return value of `get-char-property' called with those arguments and
+whose cdr is the overlay in which the property was found, or nil if
+it was found as a text property or not found at all.
+
+*** The new function `remove-list-of-text-properties'.
+
+It is like `remove-text-properties' except that it takes a list of
+property names as argument rather than a property list.
+
+** Face changes
+
+*** The variable `facemenu-unlisted-faces' has been removed.
+Emacs has a lot more faces than in the past, and nearly all of them
+needed to be excluded. The new variable `facemenu-listed-faces' lists
+the faces to include in the face menu.
+
+*** The new face attribute condition `min-colors' can be used to tailor
+the face color to the number of colors supported by a display, and
+define the foreground and background colors accordingly so that they
+look best on a terminal that supports at least this many colors. This
+is now the preferred method for defining default faces in a way that
+makes a good use of the capabilities of the display.
+
+*** New function `display-supports-face-attributes-p' can be used to test
+whether a given set of face attributes is actually displayable.
+
+A new predicate `supports' has also been added to the `defface' face
+specification language, which can be used to do this test for faces
+defined with `defface'.
+
+*** The special treatment of faces whose names are of the form `fg:COLOR'
+or `bg:COLOR' has been removed. Lisp programs should use the
+`defface' facility for defining faces with specific colors, or use
+the feature of specifying the face attributes :foreground and :background
+directly in the `face' property instead of using a named face.
+
+*** The first face specification element in a defface can specify
+`default' instead of frame classification. Then its attributes act as
+defaults that apply to all the subsequent cases (and can be overridden
+by them).
+
+*** The function `face-differs-from-default-p' now truly checks
+whether the given face displays differently from the default face or
+not (previously it did only a very cursory check).
+
+*** `face-attribute', `face-foreground', `face-background', `face-stipple'.
+
+These now accept a new optional argument, INHERIT, which controls how
+face inheritance is used when determining the value of a face
+attribute.
+
+*** New functions `face-attribute-relative-p' and `merge-face-attribute'
+help with handling relative face attributes.
+
+*** The priority of faces in an :inherit attribute face list is reversed.
+
+If a face contains an :inherit attribute with a list of faces, earlier
+faces in the list override later faces in the list; in previous
+releases of Emacs, the order was the opposite. This change was made
+so that :inherit face lists operate identically to face lists in text
+`face' properties.
+
+*** The variable `face-font-rescale-alist' specifies how much larger
+(or smaller) font we should use. For instance, if the value is
+'((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10
+point, we actually use a font of 13 point if the font matches
+SOME-FONTNAME-PATTERN.
+
+*** On terminals, faces with the :inverse-video attribute are displayed
+with swapped foreground and background colors even when one of them is
+not specified. In previous releases of Emacs, if either foreground
+or background color was unspecified, colors were not swapped. This
+was inconsistent with the face behavior under X.
+
+*** `set-fontset-font', `fontset-info', `fontset-font' now operate on
+the default fontset if the argument NAME is nil..
+
+** Font-Lock changes:
+
+*** New special text property `font-lock-face'.
+
+This property acts like the `face' property, but it is controlled by
+M-x font-lock-mode. It is not, strictly speaking, a builtin text
+property. Instead, it is implemented inside font-core.el, using the
+new variable `char-property-alias-alist'.
+
+*** font-lock can manage arbitrary text-properties beside `face'.
+
+**** the FACENAME returned in `font-lock-keywords' can be a list of the
+form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set other
+properties than `face'.
+
+**** `font-lock-extra-managed-props' can be set to make sure those
+extra properties are automatically cleaned up by font-lock.
+
+*** jit-lock obeys a new text-property `jit-lock-defer-multiline'.
+
+If a piece of text with that property gets contextually refontified
+(see `jit-lock-defer-contextually'), then all of that text will
+be refontified. This is useful when the syntax of a textual element
+depends on text several lines further down (and when `font-lock-multiline'
+is not appropriate to solve that problem). For example in Perl:
+
+ s{
+ foo
+ }{
+ bar
+ }e
+
+Adding/removing the last `e' changes the `bar' from being a piece of
+text to being a piece of code, so you'd put a `jit-lock-defer-multiline'
+property over the second half of the command to force (deferred)
+refontification of `bar' whenever the `e' is added/removed.
+
+*** `font-lock-extend-region-functions' makes it possible to alter the way
+the fontification region is chosen. This can be used to prevent rounding
+up to whole lines, or to extend the region to include all related lines
+of multiline constructs so that such constructs get properly recognized.
+
+** Major mode mechanism changes:
+
+*** New variable `magic-mode-alist' determines major mode for a file by
+looking at the file contents. It takes precedence over `auto-mode-alist'.
+
+*** New variable `magic-fallback-mode-alist' determines major mode for a file by
+looking at the file contents. It is handled after `auto-mode-alist',
+only if `auto-mode-alist' (and `magic-mode-alist') says nothing about the file.
+
+*** XML or SGML major mode is selected when file starts with an `<?xml'
+or `<!DOCTYPE' declaration.
+
+*** An interpreter magic line (if present) takes precedence over the
+file name when setting the major mode.
+
+*** If new variable `auto-mode-case-fold' is set to a non-nil value,
+Emacs will perform a second case-insensitive search through
+`auto-mode-alist' if the first case-sensitive search fails. This
+means that a file FILE.TXT is opened in text-mode, and a file
+PROG.HTML is opened in html-mode. Note however, that independent of
+this setting, *.C files are usually recognized as C++ files. It also
+has no effect on systems with case-insensitive file names.
+
+*** All major mode functions should now run the new normal hook
+`after-change-major-mode-hook', at their very end, after the mode
+hooks. `run-mode-hooks' does this automatically.
+
+*** Major modes can define `eldoc-documentation-function'
+locally to provide Eldoc functionality by some method appropriate to
+the language.
+
+*** Use the new function `run-mode-hooks' to run the major mode's mode hook.
+
+*** The new function `run-mode-hooks' and the new macro `delay-mode-hooks'
+are used by `define-derived-mode' to make sure the mode hook for the
+parent mode is run at the end of the child mode.
+
+*** `define-derived-mode' by default creates a new empty abbrev table.
+It does not copy abbrevs from the parent mode's abbrev table.
+
+*** If a major mode function has a non-nil `no-clone-indirect'
+property, `clone-indirect-buffer' signals an error if you use
+it in that buffer.
+
+** Minor mode changes:
+
+*** `define-minor-mode' now accepts arbitrary additional keyword arguments
+and simply passes them to `defcustom', if applicable.
+
+*** `define-globalized-minor-mode'.
+
+This is a new name for what was formerly called
+`easy-mmode-define-global-mode'. The old name remains as an alias.
+
+*** `minor-mode-list' now holds a list of minor mode commands.
+
+** Command loop changes:
+
+*** The new function `called-interactively-p' does what many people
+have mistakenly believed `interactive-p' to do: it returns t if the
+calling function was called through `call-interactively'.
+
+Only use this when you cannot solve the problem by adding a new
+INTERACTIVE argument to the command.
+
+*** The function `commandp' takes an additional optional argument.
+
+If it is non-nil, then `commandp' checks for a function that could be
+called with `call-interactively', and does not return t for keyboard
+macros.
+
+*** When a command returns, the command loop moves point out from
+within invisible text, in the same way it moves out from within text
+covered by an image or composition property.
+
+This makes it generally unnecessary to mark invisible text as intangible.
+This is particularly good because the intangible property often has
+unexpected side-effects since the property applies to everything
+(including `goto-char', ...) whereas this new code is only run after
+`post-command-hook' and thus does not care about intermediate states.
+
+*** If a command sets `transient-mark-mode' to `only', that
+enables Transient Mark mode for the following command only.
+During that following command, the value of `transient-mark-mode'
+is `identity'. If it is still `identity' at the end of the command,
+the next return to the command loop changes to nil.
+
+*** Both the variable and the function `disabled-command-hook' have
+been renamed to `disabled-command-function'. The variable
+`disabled-command-hook' has been kept as an obsolete alias.
+
+*** `emacsserver' now runs `pre-command-hook' and `post-command-hook'
+when it receives a request from emacsclient.
+
+*** `current-idle-time' reports how long Emacs has been idle.
+
+** Lisp file loading changes:
+
+*** `load-history' can now have elements of the form (t . FUNNAME),
+which means FUNNAME was previously defined as an autoload (before the
+current file redefined it).
+
+*** `load-history' now records (defun . FUNNAME) when a function is
+defined. For a variable, it records just the variable name.
+
+*** The function `symbol-file' can now search specifically for function,
+variable or face definitions.
+
+*** `provide' and `featurep' now accept an optional second argument
+to test/provide subfeatures. Also `provide' now checks `after-load-alist'
+and runs any code associated with the provided feature.
+
+*** The variable `recursive-load-depth-limit' has been deleted.
+Emacs now signals an error if the same file is loaded with more
+than 3 levels of nesting.
+
+** Byte compiler changes:
+
+*** The byte compiler now displays the actual line and character
+position of errors, where possible. Additionally, the form of its
+warning and error messages have been brought into line with GNU standards
+for these. As a result, you can use next-error and friends on the
+compilation output buffer.
+
+*** The new macro `with-no-warnings' suppresses all compiler warnings
+inside its body. In terms of execution, it is equivalent to `progn'.
+
+*** You can avoid warnings for possibly-undefined symbols with a
+simple convention that the compiler understands. (This is mostly
+useful in code meant to be portable to different Emacs versions.)
+Write forms like the following, or code that macroexpands into such
+forms:
+
+ (if (fboundp 'foo) <then> <else>)
+ (if (boundp 'foo) <then> <else)
+
+In the first case, using `foo' as a function inside the <then> form
+won't produce a warning if it's not defined as a function, and in the
+second case, using `foo' as a variable won't produce a warning if it's
+unbound. The test must be in exactly one of the above forms (after
+macro expansion), but such tests can be nested. Note that `when' and
+`unless' expand to `if', but `cond' doesn't.
+
+*** `(featurep 'xemacs)' is treated by the compiler as nil. This
+helps to avoid noisy compiler warnings in code meant to run under both
+Emacs and XEmacs and can sometimes make the result significantly more
+efficient. Since byte code from recent versions of XEmacs won't
+generally run in Emacs and vice versa, this optimization doesn't lose
+you anything.
+
+*** The local variable `no-byte-compile' in Lisp files is now obeyed.
+
+*** When a Lisp file uses CL functions at run-time, compiling the file
+now issues warnings about these calls, unless the file performs
+(require 'cl) when loaded.
+
+** Frame operations:
+
+*** New functions `frame-current-scroll-bars' and `window-current-scroll-bars'.
+
+These functions return the current locations of the vertical and
+horizontal scroll bars in a frame or window.
+
+*** The new function `modify-all-frames-parameters' modifies parameters
+for all (existing and future) frames.
+
+*** The new frame parameter `tty-color-mode' specifies the mode to use
+for color support on character terminal frames. Its value can be a
+number of colors to support, or a symbol. See the Emacs Lisp
+Reference manual for more detailed documentation.
+
+*** When using non-toolkit scroll bars with the default width,
+the `scroll-bar-width' frame parameter value is nil.
+
+** Mode line changes:
+
+*** New function `format-mode-line'.
+
+This returns the mode line or header line of the selected (or a
+specified) window as a string with or without text properties.
+
+*** The new mode-line construct `(:propertize ELT PROPS...)' can be
+used to add text properties to mode-line elements.
+
+*** The new `%i' and `%I' constructs for `mode-line-format' can be used
+to display the size of the accessible part of the buffer on the mode
+line.
+
+*** Mouse-face on mode-line (and header-line) is now supported.
+
+** Menu manipulation changes:
+
+*** To manipulate the File menu using easy-menu, you must specify the
+proper name "file". In previous Emacs versions, you had to specify
+"files", even though the menu item itself was changed to say "File"
+several versions ago.
+
+*** The dummy function keys made by easy-menu are now always lower case.
+If you specify the menu item name "Ada", for instance, it uses `ada'
+as the "key" bound by that key binding.
+
+This is relevant only if Lisp code looks for the bindings that were
+made with easy-menu.
+
+*** `easy-menu-define' now allows you to use nil for the symbol name
+if you don't need to give the menu a name. If you install the menu
+into other keymaps right away (MAPS is non-nil), it usually doesn't
+need to have a name.
+
+** Mule changes:
+
+*** Already true in Emacs 21.1, but not emphasized clearly enough:
+
+Multibyte buffers can now faithfully record all 256 character codes
+from 0 to 255. As a result, most of the past reasons to use unibyte
+buffers no longer exist. We only know of three reasons to use them
+now:
+
+1. If you prefer to use unibyte text all of the time.
+
+2. For reading files into temporary buffers, when you want to avoid
+the time it takes to convert the format.
+
+3. For binary files where format conversion would be pointless and
+wasteful.
+
+*** The new variable `auto-coding-functions' lets you specify functions
+to examine a file being visited and deduce the proper coding system
+for it. (If the coding system is detected incorrectly for a specific
+file, you can put a `coding:' tags to override it.)
+
+*** The new variable `ascii-case-table' stores the case table for the
+ascii character set. Language environments (such as Turkish) may
+alter the case correspondences of ASCII characters. This variable
+saves the original ASCII case table before any such changes.
+
+*** The new function `merge-coding-systems' fills in unspecified aspects
+of one coding system from another coding system.
+
+*** New coding system property `mime-text-unsuitable' indicates that
+the coding system's `mime-charset' is not suitable for MIME text
+parts, e.g. utf-16.
+
+*** New function `decode-coding-inserted-region' decodes a region as if
+it is read from a file without decoding.
+
+*** New CCL functions `lookup-character' and `lookup-integer' access
+hash tables defined by the Lisp function `define-translation-hash-table'.
+
+*** New function `quail-find-key' returns a list of keys to type in the
+current input method to input a character.
+
+*** `set-buffer-file-coding-system' now takes an additional argument,
+NOMODIFY. If it is non-nil, it means don't mark the buffer modified.
+
+** Operating system access:
+
+*** The new primitive `get-internal-run-time' returns the processor
+run time used by Emacs since start-up.
+
+*** Functions `user-uid' and `user-real-uid' now return floats if the
+user UID doesn't fit in a Lisp integer. Function `user-full-name'
+accepts a float as UID parameter.
+
+*** New function `locale-info' accesses locale information.
+
+*** On MS Windows, locale-coding-system is used to interact with the OS.
+The Windows specific variable w32-system-coding-system, which was
+formerly used for that purpose is now an alias for locale-coding-system.
+
+*** New function `redirect-debugging-output' can be used to redirect
+debugging output on the stderr file handle to a file.
+
+** GC changes:
+
+*** New variable `gc-cons-percentage' automatically grows the GC cons threshold
+as the heap size increases.
+
+*** New variables `gc-elapsed' and `gcs-done' provide extra information
+on garbage collection.
+
+*** The normal hook `post-gc-hook' is run at the end of garbage collection.
+
+The hook is run with GC inhibited, so use it with care.
+
+** Miscellaneous:
+
+*** A number of hooks have been renamed to better follow the conventions:
+
+`find-file-hooks' to `find-file-hook',
+`find-file-not-found-hooks' to `find-file-not-found-functions',
+`write-file-hooks' to `write-file-functions',
+`write-contents-hooks' to `write-contents-functions',
+`x-lost-selection-hooks' to `x-lost-selection-functions',
+`x-sent-selection-hooks' to `x-sent-selection-functions',
+`delete-frame-hook' to `delete-frame-functions'.
+
+In each case the old name remains as an alias for the moment.
+
+*** Variable `local-write-file-hooks' is marked obsolete.
+
+Use the LOCAL arg of `add-hook'.
+
+*** New function `x-send-client-message' sends a client message when
+running under X.
+\f
+* New Packages for Lisp Programming in Emacs 22.1
+
+** The new library button.el implements simple and fast `clickable
+buttons' in Emacs buffers. Buttons are much lighter-weight than the
+`widgets' implemented by widget.el, and can be used by lisp code that
+doesn't require the full power of widgets. Emacs uses buttons for
+such things as help and apropos buffers.
+
+** The new library tree-widget.el provides a widget to display a set
+of hierarchical data as an outline. For example, the tree-widget is
+well suited to display a hierarchy of directories and files.
+
+** The new library bindat.el provides functions to unpack and pack
+binary data structures, such as network packets, to and from Lisp
+data structures.
+
+** master-mode.el implements a minor mode for scrolling a slave
+buffer without leaving your current buffer, the master buffer.
+
+It can be used by sql.el, for example: the SQL buffer is the master
+and its SQLi buffer is the slave. This allows you to scroll the SQLi
+buffer containing the output from the SQL buffer containing the
+commands.
+
+This is how to use sql.el and master.el together: the variable
+sql-buffer contains the slave buffer. It is a local variable in the
+SQL buffer.
+
+(add-hook 'sql-mode-hook
+ (function (lambda ()
+ (master-mode t)
+ (master-set-slave sql-buffer))))
+(add-hook 'sql-set-sqli-hook
+ (function (lambda ()
+ (master-set-slave sql-buffer))))
+
+** The new library benchmark.el does timing measurements on Lisp code.
+
+This includes measuring garbage collection time.
+
+** The new library testcover.el does test coverage checking.
+
+This is so you can tell whether you've tested all paths in your Lisp
+code. It works with edebug.
+
+The function `testcover-start' instruments all functions in a given
+file. Then test your code. The function `testcover-mark-all' adds
+overlay "splotches" to the Lisp file's buffer to show where coverage
+is lacking. The command `testcover-next-mark' (bind it to a key!)
+will move point forward to the next spot that has a splotch.
+
+Normally, a red splotch indicates the form was never completely
+evaluated; a brown splotch means it always evaluated to the same
+value. The red splotches are skipped for forms that can't possibly
+complete their evaluation, such as `error'. The brown splotches are
+skipped for forms that are expected to always evaluate to the same
+value, such as (setq x 14).
+
+For difficult cases, you can add do-nothing macros to your code to
+help out the test coverage tool. The macro `noreturn' suppresses a
+red splotch. It is an error if the argument to `noreturn' does
+return. The macro `1value' suppresses a brown splotch for its argument.
+This macro is a no-op except during test-coverage -- then it signals
+an error if the argument actually returns differing values.
+
+
+\f
+----------------------------------------------------------------------
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.
+
+\f
+Local variables:
+mode: outline
+paragraph-separate: "[ \f]*$"
+end:
+
+arch-tag: 1aca9dfa-2ac4-4d14-bebf-0007cee12793
+ 2007-12-15 Richard Stallman <rms@gnu.org>
+
+ * quail/latin-post.el ("scandinavian-postfix"): Doc fix.
+
+ * quail/latin-alt.el: Many doc fixes.
+ ("danish-alt-postfix")
+ ("esperanto-alt-postfix", "finnish-alt-postfix")
+ ("german-alt-postfix", "icelandic-alt-postfix")
+ ("norwegian-alt-postfix", "scandinavian-alt-postfix")
+ ("spanish-alt-postfix", "swedish-alt-postfix"):
+ Deleted; they were identical to the non-alt versions.
+
+2007-12-07 Kenichi Handa <handa@ni.aist.go.jp>
+
+ * quail/lao.el (quail-map-from-table): Allow a tone just after a
+ consonant.
+
+2007-11-17 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (check-declare): New target.
+
2007-10-31 Glenn Morris <rgm@gnu.org>
* Makefile.in (install): Change ownership of installed files.
-2007-12-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * progmodes/grep.el (rgrep): Fix last change.
-
-2007-12-27 Richard Stallman <rms@gnu.org>
++2007-12-29 Richard Stallman <rms@gnu.org>
+
+ * progmodes/compile.el (compilation-start): Set initial visible
+ point properly even when compilation buffer already current.
+
-2007-12-26 Richard Stallman <rms@gnu.org>
++2007-12-29 Richard Stallman <rms@gnu.org>
+
+ * files.el (conf-mode-maybe): New function.
+ (auto-mode-alist): Use conf-mode-maybe for .conf etc.
+
-2007-12-26 Martin Rudalics <rudalics@gmx.at>
++2007-12-29 Martin Rudalics <rudalics@gmx.at>
+
+ * textmodes/fill.el (fill-find-break-point): Fix doc-string typo.
+
-2007-12-25 Dan Nicolaescu <dann@ics.uci.edu>
++2007-12-29 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * progmodes/asm-mode.el (asm-mode-map): Add a major mode menu.
+
-2007-12-25 Richard Stallman <rms@gnu.org>
++2007-12-29 Richard Stallman <rms@gnu.org>
+
+ * comint.el (comint-mode-map): Explicitly bind `delete' and `kp-delete'
+ so they never do EOF.
+
-2007-12-23 Richard Stallman <rms@gnu.org>
-
- * dired-aux.el: Load dired.el at run time too.
++2007-12-29 Richard Stallman <rms@gnu.org>
+
+ * faces.el (copy-face): Create the new face explicitly if it
+ does not exist already.
+
-2007-12-23 Andreas Schwab <schwab@suse.de>
-
- * files.el (switch-to-buffer-other-frame): Return the buffer
- switched to.
-
-2007-12-23 Juri Linkov <juri@jurta.org>
-
- * term/mac-win.el (mac-apple-event-map): Bind About Emacs menu
- item to about-emacs instead of display-splash-screen.
-
-2007-12-22 Eli Zaretskii <eliz@gnu.org>
++2007-12-29 Eli Zaretskii <eliz@gnu.org>
+
+ * simple.el (minibuffer-history, shell-command-history)
+ (set-variable-value-history):
+ * replace.el (regexp-history):
+ * international/mule-cmds.el (input-method-history):
+ * files.el (file-name-history): Add reference to history-length in
+ the doc string.
+
-2007-12-22 Richard Stallman <rms@gnu.org>
++2007-12-29 Richard Stallman <rms@gnu.org>
+
+ * comint.el (comint-password-prompt-regexp): Match `Enter Password'.
+
-2007-12-21 Jason Rumney <jasonr@gnu.org>
++2007-12-29 Jason Rumney <jasonr@gnu.org>
+
+ * find-dired.el (find-name-arg): New custom variable.
+ (find-name-dired): Use it.
+ (find-dired-find-program): Remove.
+ (find-dired): Use find-program.
+ (find-grep-dired): Use grep-program.
+
+ * progmodes/grep.el (rgrep): Use find-name-arg.
+
-2007-12-21 Martin Rudalics <rudalics@gmx.at>
-
- * autoinsert.el (auto-insert-alist): Remove nonsensical precision
- specifier from format-string. Reported by Ye Wenbin.
-
-2007-12-19 Martin Rudalics <rudalics@gmx.at>
-
- * cus-start.el: Use correct group name for members of mode-line group.
-
-2007-12-17 Thien-Thi Nguyen <ttn@gnuvola.org>
++2007-12-29 Thien-Thi Nguyen <ttn@gnuvola.org>
+
+ * progmodes/cc-vars.el (defcustom-c-stylevar):
+ Revert to pre-2007-12-12 version.
+
-2007-12-15 Richard Stallman <rms@gnu.org>
++2007-12-29 Richard Stallman <rms@gnu.org>
+
+ * emacs-lisp/find-func.el (find-function-after-hook): Add :type.
+
+ * info.el (Info-clone-buffer): Renamed from Info-clone-buffer-hook.
+ Use changed.
+
+ * startup.el (fancy-splash-help-echo): Var deleted.
+ (fancy-splash-insert): Get help-echo from (startup-echo-area-message).
+ (fancy-about-screen): Don't display fancy-splash-help-echo.
+
+ * menu-bar.el (menu-bar-describe-menu): Remove dots from menu text.
+
+2007-12-28 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * vc-hooks.el, vc.el: Move vc-directory-exclusion-list from vc.el
+ to vc-hooks.el so it will be available to other modes, such as
+ speedbar.el. Also, teach it to recognize monotone state directories.
+
+ * speedbar.el: Remove this mode's fragile assumptions about
+ version-control systems. Instead, make it use logic from
+ vc-hooks.el so it will become smarter whenever VC mode does.
+
+ * vc-hooks.el: 'added is a real state, not a future hypothetical one.
+ Fix the documentation.
+
+ * vc-bzr.el, vc-cvs.el, vc-git.el, vc-hg.el, vc-mcvs.el, vc-svn.el:
+ Modify all instances of the dir-state back-end method to suppress
+ keeping undo lists on the buffers holding status output, which
+ can get extremely large.
+
+ * vc-cvs.el, vc-svn.el: Simplify backend dired-state-info functions
+ so they don't do work that the default one can do instead.
+
+ * vc-hooks.el (vc-state): Document new 'ignored and 'unregistered
+ states, and the new return-value convention. These are not
+ actually used yet, just set.
+
+ * vc-svn.el (vc-svn-parse-status): Set 'ignored and 'unregistered
+ states when appropriate.
+
+ * vc-hg.el (vc-hg-state, vc-hg-dir-state): Set 'ignored and
+ 'unregistered when appropriate.
+
+ * vc-git.el: Document that we don't set the new states yet.
+
+ * vc.el (vc-dired-state-info): Display 'added, 'unregistered and
+ 'ignored states.
+
+ * vc-cvs.el (vc-cvs-parse-status): Set the 'ignored state when
+ appropriate.
+
+ * vc-bzr.el (vc-bzr-dir-state): Set 'ignored and 'unregistered
+ when appropriate.
+
+2007-12-28 Nick Roberts <nickrob@snap.net.nz>
+
+ * thumbs.el (thumbs-call-convert): Use call-process directly
+ with thumbs-conversion-program instead of through shell-file-name
+ for better error reporting.
+
+2007-12-27 Jay Belanger <jay.p.belanger@gmail.com>
+
+ * calc/calc-aent.el (math-remove-percentsigns):
+ * calc/calccomp.el (math-to-percentsigns): Change placeholder
+ for percent signs.
+
+2007-12-27 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * vc.el (vc-dired-ignorable-p, vc-dired-hook): Speed optimization;
+ use completion-ignored-extensions to detect files that should be
+ ignorted in VC-Dired listings, heading off lots of expensive calls
+ to (vc-state).
+
+ * vc.el (vc-dired-hook): Show unregistered file status as "?" in
+ non-terse mode.
+ (vc-dired-ignorable-p): Ignore Makefile when it has a peer named
+ Makefile.in or Makefile.am
+
+2007-12-27 Vinicius Jose Latorre <viniciusjl@ig.com.br>
+
+ * ps-print.el (ps-mark-active-p): Fun returned back.
+ (ps-print-preprint-region): Use `ps-mark-active-p' instead of
+ `region-active-p' for error checking.
+
+2007-12-27 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el: Put
+ new machinery in place to support editing of change comments
+ with 'e' in a log-view buffer. Not documented yet as this
+ only works for SCCS, RCS, and maybe CVS if you have admin
+ privileges. When we have backend support for Subversion and
+ more modern systems it will be time to write this up.
+
+2007-12-27 Kenichi Handa <handa@ni.aist.go.jp>
+
+ * international/mule-cmds.el (select-safe-coding-system):
+ When a buffer is modified, cancel the writing.
+
+2007-12-26 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * log-view.el: Add Subversion and Mercurial log format samples.
+
+ * vc.el (vc-dired-hook): Significantly speed up by arranging for
+ it to call the backend dir-state hook (if it exists)
+ exactly *once*, rather than once per each subdirectory (with
+ dired-state-info calls on all toplevel files slowing it down even
+ further). For this to work, backend dir-state methods have to
+ recurse to subdirectories. Most of them already did anyway; a few
+ needed *non*-recursion switches removed. This change mostly
+ removed code that was perversely bad and should have been shot
+ through the head years ago.
+
+ * vc-bzr.el (vc-bzr-dir-state):
+ * vc-cvs.el (vc-cvs-dir-state):
+ * vc-mcvs.el (vc-mcvs-dir-state):
+ * vc-svn.el (vc-svn-dir-state): Recurse in subdirectories.
+
+ * vc-svn.el (vc-svn-print-log): svn log doesn't actually accept
+ multiple arguments, so generate logs sequentially when we get them.
+ * vc-hg.el (vc-hg-print-log): Gives this CVS-like "Working file:"
+ headers so the various log bindings can do the right thing.
+ * vc-cvs.el (vc-cvs-print-log): Fix a misleading comment.
+
+2007-12-26 Andreas Schwab <schwab@suse.de>
+
+ * font-lock.el (save-buffer-state): Make sure the state of the
+ buffer is always restored.
+
+2007-12-26 Jay Belanger <jay.p.belanger@gmail.com>
+
+ * calc/calc.el (calc-lang-allow-percentsigns): New variable.
+
+ * calc/calc-lang.el (calc-lang-allow-percentsigns): Declare as
+ a variable.
+
+ * calc/calccomp.el (math-to-percentsigns): New function.
+ (math-compose-var): Handle variables with percent signs.
+ (math-compose-expr): Handle function names with percent signs.
+
+ * calc/calc-aent.el (math-to-percentsigns): Declare as function.
+ (math-read-exprs): Handle percent signs in languages that
+ allow them.
+ (math-restore-underscores): Remove function.
+ (math-remove-percentsigns, math-restore-placeholders):
+ New functions.
+
+2007-12-26 Vinicius Jose Latorre <viniciusjl@ig.com.br>
+
+ * ps-print.el (ps-print-preprint-region): Use `region-active-p' instead
+ of `mark' for error checking.
+
+2007-12-26 Tassilo Horn <tassilo@member.fsf.org>
+
+ * image-mode.el (image-bookmark-make-cell, image-bookmark-jump):
+ New functions.
+ (image-mode): Set bookmark-make-cell-function appropriately.
+
+ * doc-view.el (doc-view-bookmark-jump): Correct misspelled arg name.
+
+ * bookmark.el (bookmark-make-cell-function): New variable.
+ (bookmark-make): Call bookmark-make-cell-function's function
+ instead of bookmark-make-cell.
+ (bookmark-get-handler, bookmark-jump-internal): New functions.
+ (bookmark-jump, bookmark-jump-other-window, bookmark-insert)
+ (bookmark-bmenu-2-window, bookmark-bmenu-other-window):
+ Use bookmark-jump-internal.
+ (bookmark-make-cell-for-text-file): Renamed from bookmark-make-cell.
+
+ * doc-view.el (doc-view-bookmark-make-cell)
+ (doc-view-bookmark-jump): New functions.
+ (doc-view-mode): Set bookmark-make-cell-function buffer-locally.
+
+2007-12-25 Miles Bader <miles@gnu.org>
+
+ * indent.el (indent-for-tab-command): Rigidly indent the following
+ sexp along with the current line when a prefix arg is given in the
+ non-active-region case. Specify raw prefix in interactive spec.
+ Simplify main indentation logic to get rid of the conditional call
+ to `indent-according-to-mode' (it just ended up calling
+ `indent-line-function' in all cases anyway, which can be done more
+ simply here). Remove unnecessary test of ARG in active region case.
+
+2007-12-25 Richard Stallman <rms@gnu.org>
+
+ * allout.el (allout-region-active-p): Rename from my-region-active-p.
+ Use `use-region-p'.
+ (allout-write-file-hook-handler): Simplify code.
+
+ * ps-print.el (ps-mark-active-p): Function deleted.
+ (ps-print-preprint-region): Use (mark) for the error check.
+
+ * tooltip.el (tooltip-region-active-p): Use `use-region-p'.
+
+ * winner.el (winner-active-region): Use `mark-active' if it's defined.
+
+ * progmodes/ada-mode.el (ada-region-selected): Use `use-region-p'.
+
+ * textmodes/org.el (org-region-active-p): Use `use-region-p'.
+
+ * progmodes/idlwave.el (idlwave-region-active-p): Use `use-region-p'.
+
+ * textmodes/reftex.el (reftex-region-active-p): Use `use-region-p'.
+
+ * progmodes/cc-defs.el (c-region-is-active-p):
+ Use `mark-active' if it's defined.
+
+ * progmodes/cc-cmds.el (c-indent-line-or-region):
+ Pass prefix arg to `c-indent-command'. Use `use-region-p'.
+
+ * simple.el (select-active-regions): New option.
+ (set-mark): Obey it.
+ (yank-pop-change-selection): New option.
+ (current-kill): Obey it.
+
+ * simple.el (use-region-p): Renamed from `region-active-p'.
+ (region-active-p): New function.
+
+2007-12-25 David Golden <david.delaharpe.golden@gmail.com> (tiny change)
+
+ * term/x-win.el (x-select-enable-primary): New option.
+ (x-select-text, x-cut-buffer-or-selection-value): Obey it.
+
+ * mouse.el (mouse-yank-primary): New function (almost same
+ as mouse-yank-secondary).
+
+2007-12-25 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * calculator.el:
+ * dframe.el:
+ * iswitchb.el:
+ * whitespace.el:
+ * winner.el:
+ * emacs-lisp/checkdoc.el:
+ * mail/feedmail.el:
+ * net/quickurl.el:
+ * obsolete/fast-lock.el:
+ * play/5x5.el:
+ * progmodes/delphi.el:
+ * progmodes/idlw-shell.el:
+ * progmodes/idlwave.el:
+ * textmodes/artist.el:
+ * textmodes/ispell.el:
+ * textmodes/texinfmt.el:
+ * textmodes/texinfo.el: Remove obsolete definitions of backward
+ compatibility macros for defcustom, defgroup, defface, when,
+ unless, with-current-buffer and with-temp-message.
+
+2007-12-24 Nick Roberts <nickrob@snap.net.nz>
+
+ * progmodes/verilog-mode.el: Reformat parts to 80 columns.
+
+2007-12-23 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * server.el (server-save-buffers-kill-terminal): Check the `proc' is
+ indeed a process.
+
+2007-12-23 Richard Stallman <rms@gnu.org>
+
+ * simple.el (region-active-p): New function.
+ (use-empty-active-region): New variable.
+
+ * dired-aux.el (dired): Load dired.el at run time too.
+
+2007-12-23 Juri Linkov <juri@jurta.org>
+
+ * man.el (Man-follow-manual-reference): Fill the minibuffer's
+ default list with a full list of references.
+
+ * files.el (auto-mode-alist): Add \\' to doc-view files regexp.
+
+2007-12-23 Andreas Schwab <schwab@suse.de>
+
+ * files.el (switch-to-buffer-other-frame): Return the buffer
+ switched to.
+
+2007-12-23 Michael Albinus <michael.albinus@gmx.de>
+
+ Sync with Tramp 2.1.12.
+
+ * net/tramp.el: New todo item.
+
+ * net/tramp-smb.el (tramp-smb-handle-insert-directory): Handle "-F"
+ switch. Reported by Mark T. Kennedy <mkennedy@diamondbackcap.com>.
+
+ * net/trampver.el: Update release number.
+
+2007-12-22 Richard Stallman <rms@gnu.org>
+
+ * newcomment.el (comment-region-default): Don't triple the
+ comment starter if the first region line isn't indented enough.
+
+2007-12-21 Martin Rudalics <rudalics@gmx.at>
+
+ * autoinsert.el (auto-insert-alist): Remove nonsensical precision
+ specifier from format-string. Reported by Ye Wenbin.
+
+2007-12-20 Jason Rumney <jasonr@gnu.org>
+
+ * nxml/nxml-mode.el (nxml-faces): Rename from nxml-highlighting-faces.
+ Parent group is font-lock-faces.
+ (nxml-light-blue-color, nxml-dark-blue-color, nxml-green-color)
+ (nxml-sky-blue-color, nxml-dark-green-color, nxml-light-green-color):
+ (nxml-version): Remove.
+ (nxml-delimited-data, nxml-name, nxml-ref, nxml-delimiter)
+ (nxml-text, nxml-comment-content, nxml-comment-delimiter)
+ (nxml-processing-instruction-delimiter)
+ (nxml-processing-instruction-target)
+ (nxml-processing-instruction-content, nxml-cdata-section-delimiter)
+ (nxml-cdata-section-CDATA, nxml-cdata-section-content)
+ (nxml-char-ref-number, nxml-char-ref-delimiter, nxml-entity-ref-name)
+ (nxml-entity-ref-delimiter, nxml-tag-delimiter, nxml-tag-slash)
+ (nxml-element-prefix, nxml-element-colon, nxml-element-local-name)
+ (nxml-attribute-prefix, nxml-attribute-colon)
+ (nxml-attribute-local-name, nxml-namespace-attribute-xmlns)
+ (nxml-namespace-attribute-colon, nxml-namespace-attribute-prefix)
+ (nxml-attribute-value, nxml-attribute-value-delimiter)
+ (nxml-namespace-attibute-value)
+ (nxml-namespace-attribure-value-delimiter)
+ (nxml-prolog-literal-delimiter, nxml-prolog-literal-content)
+ (nxml-prolog-keyword, nxml-markup-declaration-delimiter, nxml-hash)
+ (nxml-glyph): Rename, removing -face suffix.
+ Inherit from existing font-lock faces.
+ (nxml-apply-fontify-rule, nxml-char-ref-display-extra):
+ Use new face names.
+
+ * nxml/nxml-outln.el (nxml-heading, nxml-outline-indicator)
+ (nxml-outline-active-indicator, nxml-outline-ellipsis):
+ Rename, removing -face suffix.
+ (nxml-highlighted-less-than, nxml-highlighted-greater-than)
+ (nxml-highlighted-colon, nxml-highlighted-slash)
+ (nxml-highlighted-ellipsis, nxml-highlighted-inactive-minus)
+ (nxml-highlighted-active-minus, nxml-highlighted-active-plus)
+ (nxml-highlighted-qname, nxml-outline-display-heading):
+ Use new face names.
+
+ * nxml/rng-valid.el (rng-error): Rename from rng-error-face.
+
+ * nxml/rng-nxml.el (rng-nxml-easy-menu): Remove nxml-version.
+
+2007-12-19 Martin Rudalics <rudalics@gmx.at>
+
+ * cus-start.el (all): Use correct group name for members of
+ mode-line group.
+
+ * man.el (Man-default-man-entry): When looking for default man
+ entry title search text preceding point. Use when instead of if.
+
+ * indent.el (indent-for-tab-command): Fix doc-string typo.
+
+ * vc.el (vc-ensure-vc-buffer): Avoid infinite looping when
+ vc-parent-buffer is the current buffer.
+
+ * info-look.el (info-lookup, info-lookup-setup-mode)
+ (info-lookup-make-completions): Avoid clobbering Info-history and
+ Info-history-list.
+
+2007-12-19 Glenn Morris <rgm@gnu.org>
+
+ * progmodes/verilog-mode.el (top-level): Don't require compile.
+ (compilation-error-regexp-alist, compilation-last-buffer):
+ Define for compiler.
+ (verilog-insert-1): New function.
+ (verilog-insert-indices, verilog-generate-numbers): Doc fixes.
+ Use verilog-insert-1.
+ (verilog-surelint-off): Use next-error-last-buffer if bound.
+ Check compile buffer is live.
+
+2007-12-19 John J Foerch <jjfoerch@earthlink.net> (tiny change)
+
+ * progmodes/compile.el (compilation-start): Don't pass a FRAME
+ argument to display-buffer.
+
+2007-12-19 Jason Rumney <jasonr@gnu.org>
+
+ * nxml/rng-maint.el (rng-format-manual): Do not autoload.
+ (rng-autoload-modules, rng-update-autoloads, rng-compile-modules)
+ (rng-byte-compile-load, rng-write-version): Remove.
+
+ * nxml/rng-loc.el (rng-schema-locating-files-default)
+ (rng-schema-locating-file-schema-file): Use files in etc/schemas.
+ (rng-schema-loader-alist): Use rng-c-load-schema to load rnc files.
+
+2007-12-18 Michael Albinus <michael.albinus@gmx.de>
+
+ * files.el (cd-absolute): Set `list-buffers-directory' in order to
+ show correct path in buffer list.
+
+ * net/tramp.el (tramp-open-connection-setup-interactive-shell)
+ (tramp-find-shell): Send only single prompt setting commands, in
+ order to avoid double-prompt.
+
+ * net/tramp-compat.el (top): Require cl only when compiling.
+ Reported by Glenn Morris <rgm@gnu.org>.
+
+2007-12-18 Thien-Thi Nguyen <ttn@gnuvola.org>
+
+ * progmodes/cc-vars.el (defcustom-c-stylevar): Eval VAL.
+ (c-comment-continuation-stars): No longer declare with
+ cc-bytecomp-obsolete-var and cc-bytecomp-defvar.
+ (c-block-comment-prefix): Use symbol-value to
+ access c-comment-continuation-stars.
+ * progmodes/cc-mode.el (c-initialize-cc-mode):
+ Use symbol-value to access c-comment-continuation-stars.
+
+2007-12-18 Mark A. Hershberger <mah@everybody.org>
+
+ * xml.el (xml-escape-string): New function. Escape string using
+ xml-entity-alist.
+ (xml-debug-print-internal): Use xml-escape-string to escape
+ characters in attributes and in text children of elements.
+
+2007-12-18 Glenn Morris <rgm@gnu.org>
+
+ * progmodes/cc-subword.el (c-subword-mode): Drop support for
+ systems without define-minor-mode.
+
+ * progmodes/cc-vars.el (defcustom-c-stylevar): Remove debugging message.
+
+ * progmodes/verilog-mode.el: Replace all instances of
+ string-to-int with string-to-number, insert-string with insert,
+ and read-input with read-string.
+ (top-level): No need to require imenu, reporter, dinotrace, vc,
+ font-lock when compiling. Always require compile. Relegate remaining
+ compatibility cruft to XEmacs. Don't require font-lock.
+ (verilog-version): Remove superfluous concat.
+ (dinotrace-unannotate-all, zmacs-activate-region)
+ (customize-apropos): No need to define.
+ (verilog-regexp-opt): On Emacs, just make it an alias for regexp-opt.
+ (verilog-font-lock-keywords, verilog-font-lock-keywords-1)
+ (verilog-font-lock-keywords-2, verilog-font-lock-keywords-3)
+ (verilog-startup-message-displayed): These are variables, not constants.
+ (verilog-batch-execute-func, verilog-auto-inst)
+ (verilog-auto-inst-param): Use mapc rather than mapcar.
+ (sigs-in, sigs-inout, sigs-out): Define for compiler rather than
+ actually defining.
+ (verilog-modi-get-decls, verilog-modi-get-sub-decls)
+ (verilog-modi-get-outputs, verilog-modi-get-inouts)
+ (verilog-modi-get-inputs, verilog-modi-get-wires)
+ (verilog-modi-get-regs, verilog-modi-get-assigns)
+ (verilog-modi-get-consts, verilog-modi-get-gparams)
+ (verilog-modi-get-sub-outputs, verilog-modi-get-sub-inouts)
+ (verilog-modi-get-sub-inputs): Move inline functions earlier in
+ the file.
+ (sigs-in, sigs-out): Don't declare multiple times.
+ (got-sig, got-rvalue, uses-delayed): Define for compiler with just
+ `defvar'.
+ (verilog-auto): Call dinotrace-unannotate-all only if bound.
+ (verilog-module-inside-filename-p): No need to wrap fboundp test
+ in condition-case.
+ (reporter-submit-bug-report): Autoload it.
+ (verilog-mark-defun): Call zmacs-activate-region only if bound.
+ (verilog-font-customize): Call customize-apropos only if bound.
+ (verilog-getopt-flags, verilog-auto-reeval-locals): Use
+ make-local-variable rather than make-variable-buffer-local.
+ (verilog-company, verilog-project, verilog-modi-cache-list):
+ Move make-variable-buffer-local calls to top-level.
+ (font-lock-defaults-alist): Don't define it.
+ (verilog-need-fld): Remove.
+ (verilog-font-lock-init): Don't set font-lock-defaults-alist.
+ (verilog-mode): Only call make-local-hook on XEmacs. Set
+ font-lock-defaults rather than using verilog-font-lock-init.
+
+2007-12-17 Andreas Schwab <schwab@suse.de>
+
+ * progmodes/sh-script.el (sh-font-lock-syntactic-keywords):
+ Fix comment typo.
+
+2007-12-16 Michael Albinus <michael.albinus@gmx.de>
+
+ * net/dbus.el (dbus-name-owner-changed-handler):
+ Use `dbus-unregister-signal' for removing old rules.
+ Obey new structure of `dbus-registered-functions-table'.
+
2007-12-12 Thien-Thi Nguyen <ttn@gnuvola.org>
* progmodes/cc-vars.el (defcustom-c-stylevar): Rewrite.
command "\n")
(setq thisdir default-directory))
(set-buffer-modified-p nil))
- ;; If we're already in the compilation buffer, go to the end
- ;; of the buffer, so point will track the compilation output.
- (if (eq outbuf (current-buffer))
- (goto-char (point-max)))
;; Pop up the compilation buffer.
- (setq outwin (display-buffer outbuf nil t))
+ ;; http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01638.html
+ (setq outwin (display-buffer outbuf))
(with-current-buffer outbuf
(let ((process-environment
(append
(funcall compilation-process-setup-function))
(compilation-set-window-height outwin)
;; Start the compilation.
- (if (fboundp 'start-process)
- (let ((proc (if (eq mode t)
- (get-buffer-process
- (with-no-warnings
- (comint-exec outbuf (downcase mode-name)
- shell-file-name nil `("-c" ,command))))
- (start-process-shell-command (downcase mode-name)
- outbuf command))))
- ;; Make the buffer's mode line show process state.
- (setq mode-line-process '(":%s"))
- (set-process-sentinel proc 'compilation-sentinel)
- (set-process-filter proc 'compilation-filter)
- ;; Use (point-max) here so that output comes in
- ;; after the initial text,
- ;; regardless of where the user sees point.
- (set-marker (process-mark proc) (point-max) outbuf)
- (when compilation-disable-input
- (condition-case nil
- (process-send-eof proc)
- ;; The process may have exited already.
- (error nil)))
- (setq compilation-in-progress
- (cons proc compilation-in-progress)))
- ;; No asynchronous processes available.
- (message "Executing `%s'..." command)
- ;; Fake modeline display as if `start-process' were run.
- (setq mode-line-process ":run")
- (force-mode-line-update)
- (sit-for 0) ; Force redisplay
- (save-excursion
- ;; Insert the output at the end, after the initial text,
- ;; regardless of where the user sees point.
- (goto-char (point-max))
- (let* ((buffer-read-only nil) ; call-process needs to modify outbuf
- (status (call-process shell-file-name nil outbuf nil "-c"
- command)))
- (cond ((numberp status)
- (compilation-handle-exit 'exit status
- (if (zerop status)
- "finished\n"
- (format "\
-exited abnormally with code %d\n"
- status))))
- ((stringp status)
- (compilation-handle-exit 'signal status
- (concat status "\n")))
- (t
- (compilation-handle-exit 'bizarre status status)))))
- ;; Without async subprocesses, the buffer is not yet
- ;; fontified, so fontify it now.
- (let ((font-lock-verbose nil)) ; shut up font-lock messages
- (font-lock-fontify-buffer))
- (set-buffer-modified-p nil)
- (message "Executing `%s'...done" command)))
+ (let ((proc
+ (if (eq mode t)
+ ;; comint uses `start-file-process'.
+ (get-buffer-process
+ (with-no-warnings
+ (comint-exec
+ outbuf (downcase mode-name)
+ (if (file-remote-p default-directory)
+ "/bin/sh"
+ shell-file-name)
+ nil `("-c" ,command))))
+ (start-file-process-shell-command (downcase mode-name)
+ outbuf command))))
+ ;; Make the buffer's mode line show process state.
+ (setq mode-line-process '(":%s"))
+ (set-process-sentinel proc 'compilation-sentinel)
+ (set-process-filter proc 'compilation-filter)
- (set-marker (process-mark proc) (point) outbuf)
++ ;; Use (point-max) here so that output comes in
++ ;; after the initial text,
++ ;; regardless of where the user sees point.
++ (set-marker (process-mark proc) (point-max) outbuf)
+ (when compilation-disable-input
+ (condition-case nil
+ (process-send-eof proc)
+ ;; The process may have exited already.
+ (error nil)))
+ (setq compilation-in-progress
+ (cons proc compilation-in-progress))))
;; Now finally cd to where the shell started make/grep/...
(setq default-directory thisdir))
(if (buffer-local-value 'compilation-scroll-output outbuf)
-2007-12-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macmenu.c (fill_menubar) [MAC_OSX]: Add workaround for Mac OS X 10.5
- about not changing Help menu title.
-
+ 2007-12-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * process.c (make_process): Initialize pty_flag to Qnil instead of 0
+ as it is not a bit field on Emacs 22 yet.
+
+ * xdisp.c (phys_cursor_in_rect_p): Check if cursor is in fringe area.
+
- * callint.c (syms_of_callint) <command-history>: Add reference to
- history-length in the doc string.
-
-2007-12-17 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (w32_wnd_proc) <WM_KEYDOWN>: Cast char to unsigned
- before passing as wParam.
-
-2007-12-14 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (w32_read_socket): Use MULTIBYTE_CHAR_KEYSTROKE_EVENT
- for characters above 127.
-
-2007-12-13 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (w32_wnd_proc, Fw32_reconstruct_hot_key): Range check
- before dereferencing array.
- (lookup_vk_code): Remove zero comparison.
-
-2007-12-02 Magnus Henoch <mange@freemail.hu>
-
- * process.c (make_process): Initialize pty_flag to 0.
-
-2007-12-02 Jason Rumney <jasonr@gnu.org>
-
- * image.c (xbm_load) [WINDOWSNT]: Shuffle the bits of directly
- specified XBMs.
-
-2007-12-01 Richard Stallman <rms@gnu.org>
-
- * xdisp.c (syms_of_xdisp) <scroll-conservatively>: Doc fix.
-
-2007-11-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c (cfsockets_for_select) [MAC_OSX && SELECT_USE_CFSOCKET]:
- New variable.
- (mac_try_close_socket) [MAC_OSX]: New function.
- [MAC_OSX] (sys_select) [SELECT_USE_CFSOCKET]:
- Update cfsockets_for_select. Replace invalid CFRunLoop source.
-
- * sysdep.c (emacs_close) [MAC_OSX && HAVE_CARBON]:
- Use mac_try_close_socket.
-
-2007-11-28 Petr Salinger <Petr.Salinger@seznam.cz> (tiny change)
-
- * s/gnu-kfreebsd.h: New file.
-
-2007-11-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * unexmacosx.c (unrelocate): New argument BASE. Use it instead of
- reloc_base.
- (copy_dysymtab): Compute relocation base here.
- (rebase_reloc_address) [__ppc64__]: New function.
- (copy_dysymtab) [__ppc64__]: Use it if relocation base needs to be
- changed.
-
-2007-11-26 Jason Rumney <jasonr@gnu.org>
-
- * w32proc.c (sys_spawnve): Quote args with wildcards.
-
-2007-11-26 Andreas Schwab <schwab@suse.de>
-
- * process.c (list_processes_1): Fix indentation level of the
- command column.
-
-2007-11-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * unexmacosx.c (copy_data_segment): Also copy __gcc_except_tab and
- __objc_* sections.
- (unrelocate) [_LP64]: Set relocation base to address of data segment.
-
-2007-11-23 Andreas Schwab <schwab@suse.de>
-
- * editfns.c (Fformat): Handle %c specially since it requires the
- argument to be of type int.
-
-2007-11-22 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (update_frame_tool_bar): Don't call x-gtk-map-stock if
- file for image is nil.
-
-2007-11-19 Jason Rumney <jasonr@gnu.org>
-
- * w32bdf.c (w32_init_bdf_font, w32_BDF_to_x_font): CreateFileMapping
- returns NULL on failure.
-
-2007-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * search.c (Fset_match_data): Remove the `evaporate' feature.
- (unwind_set_match_data): Don't use the `evaporate' feature.
-
-2007-11-15 Andreas Schwab <schwab@suse.de>
-
- * editfns.c (Fformat): Correctly format EMACS_INT values.
- Also take precision into account when formatting an integer.
-
-2007-11-15 Juanma Barranquero <lekktu@gmail.com>
-
- * macfns.c (Fx_create_frame, Fx_display_pixel_width)
- (Fx_display_pixel_height, Fx_display_planes)
- (Fx_display_color_cells, Fx_server_max_request_size)
- (Fx_server_vendor, Fx_server_version, Fx_display_backing_store)
- (Fx_display_visual_class, Fx_display_save_under):
- * w32fns.c (Fx_create_frame, Fx_display_pixel_width)
- (Fx_display_pixel_height, Fx_display_planes)
- (Fx_display_color_cells, Fx_server_max_request_size)
- (Fx_server_vendor, Fx_server_version, Fx_display_screens)
- (Fx_display_mm_height, Fx_display_mm_width)
- (Fx_display_backing_store, Fx_display_visual_class)
- (Fw32_select_font, Fx_display_save_under):
- * xfns.c (Fx_create_frame, Fx_display_pixel_width)
- (Fx_display_pixel_height, Fx_display_planes)
- (Fx_display_color_cells, Fx_server_max_request_size)
- (Fx_server_vendor, Fx_server_version, Fx_display_backing_store)
- (Fx_display_save_under): Fix typos in docstrings.
-
-2007-11-14 Juanma Barranquero <lekktu@gmail.com>
-
- * w32fns.c (Fw32_registered_hot_keys): Don't return the nil values
- corresponding to deleted entries; they are an implementation detail.
- (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits):
- Remove variables.
- (Fw32_define_rgb_color, Fw32_load_color_file): Fix typos in docstrings.
- (Fx_server_version): Reflow docstring.
- (Fw32_shell_execute): Doc fixes.
-
-2007-11-13 Juanma Barranquero <lekktu@gmail.com>
-
- * w32fns.c (Fw32_register_hot_key): Don't try to register hot key
- if w32_parse_hot_key returned nil.
-
-2007-11-10 Juri Linkov <juri@jurta.org>
-
- * puresize.h (BASE_PURESIZE): Increase to 1130000.
-
-2007-11-10 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xdisp.c (load_overlay_strings): Fix copy&paste typo.
-
-2007-11-07 Chong Yidong <cyd@stupidchicken.com>
-
- * dispextern.h (struct it): Don't define OVERLAY_STRING_CHUNK_SIZE
- twice.
-
- * xdisp.c (handle_face_prop): Fix last change.
-
-2007-11-06 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_tool_bar_menu_proxy): Handle GTK_IMAGE_ICON_NAME and
- abort with a message on unhandled store_type values.
-
-2007-11-04 Richard Stallman <rms@gnu.org>
-
- * xdisp.c (handle_face_prop): Test for strings that came from overlays,
- not just for after-strings and before-strings.
- Call face_for_overlay_string and pass the overlay to it.
- (handle_display_prop): Determine whether property came from an overlay.
- Pass OVERLAY arg to handle_single_display_spec.
- (handle_single_display_spec): New arg OVERLAY sets it->from_overlay.
- (load_overlay_strings): Fill in it->string_overlays.
- (get_overlay_strings_1, push_it, pop_it): Handle it->from_overlays.
-
- * xfaces.c (face_for_overlay_string): Function renamed from
- face_at_buffer_position_no_overlays, and add arg OVERLAY.
-
- * dispextern.h (struct it): New elt string_overlays.
- New elt from_overlay, also in stack.
- Rearrange a few elements.
- (face_for_overlay_string): Decl renamed from
- face_at_buffer_position_no_overlays, and add argument.
-
-2007-11-03 Richard Stallman <rms@gnu.org>
-
- * xdisp.c (handle_face_prop): Use face_at_buffer_position_no_overlays
- to get the base face for an overlay string.
-
- * dispextern.h (face_at_buffer_position_no_overlays): Add decl.
-
- * xfaces.c (face_at_buffer_position_no_overlays): New function.
-
- * xdisp.c (handle_stop): Move some code out of loop.
-
-2007-11-01 Johan Bockg\e,Ae\e(Brd <bojohan@gnu.org>
-
- * macterm.c, w32term.c, xterm.c (x_draw_stretch_glyph_string):
- Don't set s->stippled_p here, since it has already been set by
- x_set_glyph_string_gc from x_draw_glyph_string.
-
-2007-10-31 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c [USE_ATSUI] (Fmac_atsu_font_face_attributes):
- Fix conversion from Lisp object to ATSUFontID.
-
-2007-10-30 Jason Rumney <jasonr@gnu.org>
-
- * xdisp.c (Fformat_mode_line): Do nothing when noninteractive.
-
-2007-10-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * unexmacosx.c (unexec_regions_recorder, unexec_regions_merge):
- Don't assume regions are aligned to page boundary.
- (print_load_command_name): Add LC_UUID if defined.
-
-2007-10-30 Richard Stallman <rms@gnu.org>
-
- * emacs.c (syms_of_emacs) <installation-directory>: Reflow docstring.
-
-2007-10-29 Juanma Barranquero <lekktu@gmail.com>
-
- * emacs.c (syms_of_emacs) <kill-emacs-hook>: Fix typo in docstring.
- <installation-directory>: Reflow docstring.
-
-2007-10-26 Martin Rudalics <rudalics@gmx.at>
-
- * window.c (window_min_size_2): Don't count header-line.
-
-2007-10-25 Juanma Barranquero <lekktu@gmail.com>
-
- * w32.c (init_environment): Fix tiny memory leak.
- (w32_get_resource): Remove unused variable `ok'.
-
-2007-10-24 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c: Include math.h.
-
-2007-10-24 Richard Stallman <rms@gnu.org>
-
- * frame.c (x_figure_window_size): For fullscreen case,
- set USPosition | PPosition without clobbering rest of window_prompting.
-
- * keyboard.c (Fcurrent_idle_time): Doc fix.
-
- * print.c (Fwith_output_to_temp_buffer): Doc fix.
-
-2007-10-19 Juanma Barranquero <lekktu@gmail.com>
-
- * process.c (Fset_process_filter): Doc fix.
-
-2007-10-17 Glenn Morris <rgm@gnu.org>
-
- * minibuf.c (Qcompletion_ignore_case): New Lisp_Object.
- (syms_of_minibuf): Add Qcompletion_ignore_case.
- * dired.c (Qcompletion_ignore_case): Change to external.
- (syms_of_dired) [VMS]: Remove Qcompletion_ignore_case.
- * fileio.c (Qcompletion_ignore_case): New external Lisp_Object.
- (Fread_file_name): Use it rather than intern'ing.
-
- * coding.c (Qcompletion_ignore_case): New external Lisp_Object.
- (Fread_coding_system): Ignore case of user input.
-
-2007-10-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * xdisp.c (handle_display_prop): Ignore display specs after
- replacing one when string text is being replaced.
- (handle_single_display_spec): Pretend as if characters with display
- property haven't been consumed only when buffer text is being replaced.
-
-2007-10-14 Juanma Barranquero <lekktu@gmail.com>
-
- * eval.c (do_autoload): Don't save autoloads.
-
- * data.c (Ffset): Save autoload of the function being set.
-
-2007-10-07 John Paul Wallington <jpw@pobox.com>
-
- * xfns.c (x_create_tip_frame): Set the `display-type' frame
- parameter before setting up faces.
-
-2007-10-13 Eli Zaretskii <eliz@gnu.org>
-
- * msdos.c (dos_rawgetc): Undo last change (there's no ``leaving
- selected frame'' on MSDOS).
-
-2007-10-12 Martin Rudalics <rudalics@gmx.at>
-
- * frame.c (Qexplicit_name): New variable.
- (x_report_frame_params): Report it in parameter alist.
- (syms_of_frame): Intern and staticpro it.
-
-2007-10-09 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (x_set_window_size): Disable code that attempts to tell
- Lisp code about a size change before it actually happens.
-
-2007-10-09 Richard Stallman <rms@gnu.org>
-
- * xdisp.c (handle_invisible_prop): After setting up an ellipsis,
- return HANDLED_RETURN.
-
-2007-10-06 Martin Rudalics <rudalics@gmx.at>
-
- * keyboard.c (kbd_buffer_get_event): Break loop waiting for input
- when there's an unread command event.
-
- * frame.c (focus_follows_mouse): Moved here from frame.el to allow
- window autoselection act appropriately when leaving selected frame.
- (syms_of_frame): Initialize focus_follows_mouse.
- * frame.h (focus_follows_mouse): Extern it.
- * macterm.c (XTread_socket): When focus_follows_mouse is nil
- make SELECT_WINDOW_EVENT only if we don't leave the selected
- frame.
- * msdos.c (dos_rawgetc): Likewise.
- * w32term.c (w32_read_socket): Likewise.
- * xterm.c (handle_one_xevent): Likewise.
- * xdisp.c (syms_of_xdisp): In doc-string of
- mouse-autoselect-window mention focus-follows-mouse.
-
-2007-10-06 Andreas Schwab <schwab@suse.de>
-
- * fileio.c (Fwrite_region): Ignore EINVAL error from fsync.
-
-2007-10-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (mac_load_query_font): Fix missing return value.
- [USE_CG_DRAWING] (mac_define_fringe_bitmap, mac_destroy_fringe_bitmap):
- Add BLOCK_INPUT.
-
-2007-10-04 Juanma Barranquero <lekktu@gmail.com>
-
- * image.c (syms_of_image) <image-types>: Fix typo in docstring.
-
-2007-10-02 Richard Stallman <rms@gnu.org>
-
- * xdisp.c (get_window_cursor_type): Implement documented behavior
- for cursor-in-non-selected-windows = t.
-
-2007-10-01 Juanma Barranquero <lekktu@gmail.com>
-
- * lread.c (Fload): Fix typo in docstring.
-
-2007-09-29 Juri Linkov <juri@jurta.org>
-
- * emacs.c (standard_args): Change priority of "--no-splash"
- from 40 to 3. Add "--no-desktop" with the same priority.
-
-2007-09-29 Jason Rumney <jasonr@gnu.org>
-
- * w32.c (w32_get_resource): Always close registry keys.
-
-2007-09-27 Jason Rumney <jasonr@gnu.org>
-
- * makefile.w32-in (LIBS): Add COMCTL32.
-
- * w32fns.c (globals_of_w32fns): Init common controls.
-
-2007-09-21 Richard Stallman <rms@gnu.org>
-
- * image.c (our_memory_buffer): Renamed from omfib_buffer.
-
-2007-09-21 Juanma Barranquero <lekktu@gmail.com>
-
- * w32term.c (x_draw_glyph_string): Use strike_through_color, not
- underline_color, to draw strike-through.
-
-2007-09-20 Glenn Morris <rgm@gnu.org>
-
- * process.c (Fmake_network_process): Doc fix.
-
-2007-09-19 Richard Stallman <rms@gnu.org>
-
- * buffer.c (Foverlays_at): Doc fix.
-
-2007-09-18 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * fns.c (Fplist_put): Preserve uneven tail data.
-
-2007-09-16 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_get_image_for_pixmap): Always create a GdkPixbuf
- when we have no file name for the icon.
- (xg_tool_bar_expose_callback): Remove.
- (xg_create_tool_bar): Don't connect expose signal to
- xg_tool_bar_expose_callback.
-
-2007-09-16 Andreas Schwab <schwab@suse.de>
-
- * alloc.c (reset_malloc_hooks): Set the hooks to the previous
- values instead of zapping them.
-
-2007-09-15 Glenn Morris <rgm@gnu.org>
-
- * s/hpux.h: No longer define `static' as nothing.
-
-2007-09-14 Glenn Morris <rgm@gnu.org>
-
- * fringe.c (init_fringe_bitmap) <swap nibble>: Move to file scope.
- * gtkutil.c (xg_separator_p) <separator_names>: Move to file scope.
- * image.c (our_memory_fill_input_buffer) <buffer>: Move to file
- scope and rename to omfib_buffer for clarity.
- (gif_load) <interlace_start, interlace_increment>: Move to file scope.
-
-2007-09-14 Peter O'Gorman <bug-gnu-emacs@mlists.thewrittenword.com> (tiny change)
-
- * gtkutil.c (xg_get_file_with_chooser): Move GCPRO1 after declarations.
-
- * termhooks.h (enum event_kind): Remove trailing comma.
-
- * frame.h (enum): Remove trailing comma.
-
-2007-09-14 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * keyboard.c, xterm.c, xfaces.c (abs): #undef before #define.
-
-2007-09-12 Glenn Morris <rgm@gnu.org>
-
- * gtkutil.c (cnt): Rename to menu_grab_callback_cnt for clarity.
- (menu_grab_callback): All uses changed.
-
- * xselect.c (cnt): Rename to x_reply_selection_request_cnt for clarity.
- (x_reply_selection_request): All uses changed.
-
-2007-09-06 Pixel <pixel@mandriva.com> (tiny change)
-
- * image.c (gif_load): Fix bug: Handle nonexistent colormap.
-
-2007-09-06 Glenn Morris <rgm@gnu.org>
-
- * gtkutil.c (menu_grab_callback) <cnt>:
- * xselect.c (x_reply_selection_request) <cnt>: Move static
- variable to file scope.
-
-2007-09-02 Dhuvra Krishnamurthy <dhuvrakm@gmail.com> (tiny change)
-
- * w32proc.c (delete_child): Don't terminate threads of zombies.
-
-2007-09-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * keyboard.c: Qrtl is new.
- (parse_tool_bar_item): Handle :rtl keyword.
- (syms_of_keyboard): Intern :rtl keyword.
-
- * dispextern.h (enum tool_bar_item_idx): Add TOOL_BAR_ITEM_RTL_IMAGE.
-
- * gtkutil.c (file_for_image, find_rtl_image): New functions.
- (xg_get_image_for_pixmap): Use file_for_image
- (update_frame_tool_bar): If direction is RTL, use RTL image if
- defined. Use Gtk stock images or named theme icons if defined.
-
-2007-08-29 Martin Rudalics <rudalics@gmx.at>
-
- * keyboard.h (struct kboard): New elt Vlast_repeatable_command.
-
- * keyboard.c (syms_of_keyboard): Set up new Lisp variable
- last-repeatable-command.
- (init_kboard): Initialize Vlast_repeatable_command.
- (command_loop_1): Set it to real_this_command unless that was
- bound to an input event.
- (mark_kboards): Mark it.
-
-2007-08-28 Juanma Barranquero <lekktu@gmail.com>
-
- * image.c (syms_of_image) <image-library-alist, cross-disabled-images>:
- Doc fixes.
-
-2007-08-28 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_tool_bar_expose_callback): Just do SET_FRAME_GARBAGED
- so no Lisp code is executed.
-
-2007-08-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (x_draw_composite_glyph_string_foreground): Draw rectangle
- for nonexistent or zero-width glyph in composition glyph.
-
-2007-08-27 Richard Stallman <rms@gnu.org>
-
- * eval.c (condition-case): Doc fix.
-
-2007-08-27 Masatake YAMATO <jet@gyve.org>
-
- * xfaces.c (tty_supports_face_attributes_p): Fix code
- for LFACE_INVERSE_INDEX and LFACE_BACKGROUND_INDEX; code
- was copied and not edited.
-
-2007-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * lread.c (load_warn_old_style_backquotes): Fix up array size typo.
-
-2007-08-22 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * lread.c (Qold_style_backquotes): New var.
- (syms_of_lread): Init and staticpro it.
- (load_warn_old_style_backquotes): New fun.
- (Fload): Use them to warn about old style backquotes.
- (end_of_file_error, Fload): Remove unused vars.
-
- * lisp.h (Fclear_face_cache, Fx_send_client_event): Declare.
-
- * lread.c (Vold_style_backquotes): New var.
- (syms_of_lread): Init and export it to Elisp.
- (read1): Set it when we find an old-style (back)quote.
-
-2007-08-22 Jason Rumney <jasonr@gnu.org>
-
- * w32reg.c (SYSTEM_DEFAULT_RESOURCES): Add missing NULL terminator.
-
-2007-08-21 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * insdel.c (reset_var_on_error): New fun.
- (signal_before_change, signal_after_change):
- Use it to reset (after|before)-change-functions to nil in case of error.
- Bind inhibit-modification-hooks to t.
- Don't bind (after|before)-change-functions to nil while they run.
-
-2007-08-19 Andreas Schwab <schwab@suse.de>
-
- * alloc.c (pure): Round PURESIZE up.
-
-2007-08-17 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (handle_one_xevent): Remove check that mouse click is in
- active frame.
-
-2007-08-15 Philippe Waroquiers <philippe.waroquiers@eurocontrol.int>
-
- * term.c (tty_default_color_capabilities): Declare static
- variables in file scope, to avoid HPUX compiler problem.
-
-2007-08-13 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (update_frame_tool_bar): Use -1 as index
- to gtk_toolbar_insert.
-
-2007-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * xterm.c (x_draw_image_glyph_string): Adjust stipple origin when
- filling pixmap with stippled background.
-
-2007-08-10 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * print.c (new_backquote_output): Rename from old_backquote_output.
- (print): Inverse its logic (according to its name) so as to match the
- behavior of new_backquote_flag in lread.c.
-
-2007-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * gmalloc.c (posix_memalign): New function.
-
-2007-08-08 Glenn Morris <rgm@gnu.org>
-
- * Replace `iff' in doc-strings and comments.
-
-2007-08-07 Chong Yidong <cyd@stupidchicken.com>
-
- * dispextern.h (struct image): New members.
-
- * image.c: Sync to trunk version.
- (search_image_cache, uncache_image, image-refresh): New functions.
- Check for fg and bg colors.
- (lookup_image): Use search_image_cache. Cache fg and bg colors.
- (pbm_load): Another check for invalid image data.
- (png_load): Ignore default background field.
-
- * xdisp.c (move_it_by_lines): Remove incorrect optimization.
-
-2007-08-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gmalloc.c (__malloc_initialize): Remove pthread_once. Not needed.
-
-2007-08-07 Sam Steingold <sds@gnu.org>
-
- * gmalloc.c (__morecore): Fix the declaration to comply with the
- definition.
-
-2007-08-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * emacs.c (main)
- [HAVE_GTK_AND_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
- Call malloc_enable_thread on interactive startup.
-
- * gmalloc.c (_malloc_thread_enabled_p) [USE_PTHREAD]: New variable.
- (LOCK, UNLOCK, LOCK_ALIGNED_BLOCKS, UNLOCK_ALIGNED_BLOCKS)
- [USE_PTHREAD]: Conditionalize with it.
- (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
- (malloc_atfork_handler_child, malloc_enable_thread) [USE_PTHREAD]:
- New functions.
-
-2007-08-06 Chong Yidong <cyd@stupidchicken.com>
-
- * xdisp.c (redisplay_window): When restoring original buffer
- position, make sure it is still valid.
-
-2007-08-06 Martin Rudalics <rudalics@gmx.at>
-
- * window.c (window_min_size_2): New function.
- (window_min_size_1, size_window, Fdisplay_buffer)
- (Fsplit_window, adjust_window_trailing_edge): Use it to avoid
- windows without mode- or header-lines when window-min-height is
- too small.
- (size_window): Reset nodelete_p after testing it, following an
- earlier note by Kim F. Storm.
- (display_buffer): Do not set split_height_threshold to twice the
- value of window_min_height to avoid changing the value of a
- customizable variable. Rather explicitly check whether the
- height of the window that shall be splitted is at least as large
- as split_height_threshold.
- (Fwindow_full_width_p): New defun.
- (syms_of_window): Defsubr it.
-
- * window.h: Add EXFUN for Fwindow_full_width_p.
-
-2007-08-06 Andreas Schwab <schwab@suse.de>
-
- * window.c (Fdisplay_buffer): Use NILP.
- (Fset_window_scroll_bars): Likewise.
-
-2007-08-03 Richard Stallman <rms@gnu.org>
-
- * fileio.c (Fvisited_file_modtime): Use make_time.
-
-2007-08-01 Ryo Yoshitake <ryo@shiftmode.net> (tiny change)
-
- * mac.c (init_mac_osx_environment): Adjust load-path on self-contained
- build.
-
-2007-07-30 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * eval.c (init_eval_once): Bump max_lisp_eval_depth to 400.
-
-2007-07-25 Glenn Morris <rgm@gnu.org>
-
- * Relicense all FSF files to GPLv3 or later.
-
- * COPYING: Switch to GPLv3.
-
-2007-07-24 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (x_real_positions): Get real position from OS instead of
- calculating it.
-
-2007-07-23 Jason Rumney <jasonr@gnu.org>
-
- * filelock.c (current_lock_owner): Allow for @ sign in username.
-
-2007-07-20 Eli Zaretskii <eliz@gnu.org>
-
- * makefile.w32-in (clean): Don't delete *~.
-
- * w32proc.c (IMAGE_NT_OPTIONAL_HDR32_MAGIC, IMAGE_OPTIONAL_HEADER32):
- Define if not defined.
-
-2007-07-18 Jason Rumney <jasonr@gnu.org>
-
- * w32proc.c (w32_executable_type): Handle 64 bit executables.
-
-2007-07-16 Juanma Barranquero <lekktu@gmail.com>
-
- * coding.c (Ffind_operation_coding_system):
- * eval.c (For, Fand, Fprogn):
- * keyboard.c (Ftrack_mouse):
- * print.c (Fwith_output_to_temp_buffer):
- * window.c (Fsave_window_excursion): Doc fixes (some reported
- by Johan Bockg\e,Ae\e(Brd).
-
-2007-07-15 Richard Stallman <rms@gnu.org>
-
- * data.c (Fsetq_default): Doc fix.
-
- * eval.c (Fsetq): Doc fix.
-
-2007-07-11 Jason Rumney <jasonr@gnu.org>
-
- * makefile.w32-in (LIBS): Include OLE32.
-
- * w32fns.c (w32_msg_pump) <WM_EMACS_CREATEWINDOW>: Initialize COM.
- (w32_msg_pump) <WM_DESTROY>: Uninitialize COM.
-
-2007-06-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c [USE_MAC_TSM] (mac_handle_text_input_event):
- Check WINDOWP before using XWINDOW.
-
-2007-06-27 Juanma Barranquero <lekktu@gmail.com>
-
- * buffer.c (syms_of_buffer) <selective-display>: Fix typo in docstring.
-
-2007-06-26 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * gmalloc.c [HAVE_GTK_AND_PTHREAD]: Check this after including config.h.
- (_aligned_blocks_mutex) [USE_PTHREAD]: New variable.
- (LOCK_ALIGNED_BLOCKS, UNLOCK_ALIGNED_BLOCKS): New macros.
- (_free_internal, memalign): Use them.
- (_malloc_mutex, _aligned_blocks_mutex) [USE_PTHREAD]:
- Initialize to PTHREAD_MUTEX_INITIALIZER.
- (malloc_initialize_1) [USE_PTHREAD]: Don't use recursive mutex.
- (morecore_nolock): Rename from morecore. All uses changed.
- Use only nolock versions of internal allocation functions.
- (_malloc_internal_nolock, _realloc_internal_nolock)
- (_free_internal_nolock): New functions created from
- _malloc_internal, _realloc_internal, and _free_internal.
- (_malloc_internal, _realloc_internal, _free_internal): Use them.
- Copy hook value to automatic variable before its use.
- (memalign): Copy hook value to automatic variable before its use.
-
-2007-06-21 Jason Rumney <jasonr@gnu.org>
-
- * image.c (convert_mono_to_color_image): Swap fore and background.
-
-2007-06-20 Jason Rumney <jasonr@gnu.org>
-
- * w32bdf.c (w32_BDF_to_x_font): Unmap memory when finished.
- (w32_free_bdf_font): Unmap memory not handle.
-
-2007-06-20 Juanma Barranquero <lekktu@gmail.com>
-
- * w32.c (_wsa_errlist): Fix typo in error message.
- (init_environment): Ignore any environment variable from the
- registry having a null value.
-
-2007-06-17 Jason Rumney <jasonr@gnu.org>
-
- * w32menu.c (add_menu_item): Don't use multibyte string functions on
- unicode strings.
-
-2007-06-17 Juanma Barranquero <lekktu@gmail.com>
-
- * xdisp.c (syms_of_xdisp) <auto-resize-tool-bars>:
- Fix typo in docstring.
-
-2007-06-16 Eli Zaretskii <eliz@gnu.org>
-
- * w32menu.c (add_menu_item): Escape `&' characters in menu items
- and their keybindings.
-
-2007-06-14 Chong Yidong <cyd@stupidchicken.com>
-
- * composite.c (update_compositions): Check validity of compositions.
-
-2007-06-10 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (Fx_file_dialog): Take size from struct not pointer.
-
-2007-06-06 Jason Rumney <jasonr@gnu.org>
-
- * s/ms-w32.h: Don't define HAVE_TZNAME.
-
-2007-06-06 Chong Yidong <cyd@stupidchicken.com>
-
- * image.c (xpm_load): Remove spurious call to
- xpm_init_color_cache.
-
-2007-06-06 Martin Rudalics <rudalics@gmx.at>
-
- * syntax.c (scan_words): Fix arg to UPDATE_SYNTAX_TABLE_BACKWARD.
-
-2007-06-05 Dan Nicolaescu <dann@ics.uci.edu>
-
- * xfaces.c (syms_of_xfaces): Delete stray semicolon.
- * xdisp.c (next_element_from_buffer):
- * window.c (delete_window):
- * term.c (term_mouse_highlight):
- * msdos.c (getdefdir):
- * macterm.c (mac_create_bitmap_from_bitmap_data)
- (init_font_name_table):
- * fns.c (Fsxhash):
- * data.c (Fmake_local_variable):
- * ccl.c (ccl_driver): Likewise.
-
-2007-06-04 Juanma Barranquero <lekktu@gmail.com>
-
- * window.c (Fshrink_window): Reflow docstring.
-
-2007-06-02 Chong Yidong <cyd@stupidchicken.com>
-
- * Version 22.1 released.
-
- * xfns.c (x_set_name_internal): Undo last change.
-
-2007-06-01 Richard Stallman <rms@gnu.org>
-
- * xfns.c (x_encode_text): Add GCPRO.
- (x_set_name_internal): Separate USE_GTK and non-USE_GTK cases.
-
-2007-06-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * xfns.c (x_set_name_internal): Save encoded name before
- x_encode_text in case string data is relocated.
-
-2007-05-31 Richard Stallman <rms@gnu.org>
-
- * buffer.c (syms_of_buffer): Doc fix.
-
-2007-05-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * xdisp.c (redisplay_internal): Bind inhibit-point-motion-hooks to t
- around current_column call.
-
-2007-05-24 Chong Yidong <cyd@stupidchicken.com>
-
- * xdisp.c (redisplay_window): If first window line is a
- continuation line, recompute the new window start instead of
- recentering.
-
-2007-05-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c [USE_CARBON_EVENTS] (mac_handle_window_event):
- Call mac_wakeup_from_rne on window size change.
-
-2007-05-22 Richard Stallman <rms@gnu.org>
-
- * xterm.c (x_connection_closed): Remove NO_RETURN.
-
-2007-05-19 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * syntax.c (skip_chars): Update syntax-table only after we checked that
- the new location is valid.
-
-2007-05-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (x_calc_absolute_position): Add BLOCK_INPUT around
- mac_get_window_bounds.
-
-2007-05-17 Glenn Morris <rgm@gnu.org>
-
- * m/macppc.h (ORDINARY_LINK): No longer define on OpenBSD.
-
-2007-05-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
- dead key repeat and up events.
-
-2007-05-13 Chong Yidong <cyd@stupidchicken.com>
-
- * xterm.c (XTread_socket): Revert last change.
-
-2007-05-12 Chong Yidong <cyd@stupidchicken.com>
-
- * image.c (pbm_load): Correctly check image size for greyscale pbm.
-
- * xterm.c (XTread_socket): Yet Another Uncaught X Error Crash (YAUXEC).
-
-2007-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * editfns.c (Ftranspose_regions): Yet another int/Lisp_Object mixup (YAILOM)
-
-2007-05-06 Richard Stallman <rms@gnu.org>
-
- * process.c: Undo May 3 change.
-
-2007-05-03 Per Cederqvist <ceder@lysator.liu.se> (tiny change)
-
- * process.c (Faccept_process_output): Revert 2006-03-22 change so
- that the third argument once again is in microseconds (not
- milliseconds). This makes it compatible with Emacs 21 and
- earlier. Problem found by Henrik Rindl\e,Av\e(Bw.
-
-2007-05-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macmenu.c (mac_dialog_show): Apply 2007-04-27 change for xmenu.c.
- (Fx_popup_dialog) [MAC_OSX]: Likewise.
-
-2007-04-29 Richard Stallman <rms@gnu.org>
-
- * insdel.c (replace_range): For undo, record insertion first.
-
-2007-04-29 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * xdisp.c (try_window_reusing_current_matrix): Fix number of
- disabled lines.
-
-2007-04-27 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (xdialog_show): Call Fredisplay before showing the dialog.
-
- * gtkutil.c (xg_update_menubar, create_menus): Create empty
- submenu for menu bar items.
-
-2007-04-24 Chong Yidong <cyd@stupidchicken.com>
-
- * xdisp.c (redisplay_window): Use BEG_UNCHANGED and END_UNCHANGED
- values of the actual window.
-
-2007-04-23 Richard Stallman <rms@gnu.org>
-
- * process.c (Fstart_process): Doc fix.
-
-2007-04-23 Eli Zaretskii <eliz@gnu.org>
-
- * process.c (Fstart_process): Doc fix.
-
-2007-04-22 Richard Stallman <rms@gnu.org>
-
- * abbrev.c (Fdefine_abbrev): Doc fix.
-
- * keymap.c (Fdefine_key): Minor doc fix.
-
-2007-04-21 Glenn Morris <rgm@gnu.org>
-
- * keymap.c (Fdefine_key): Fix info ref in doc string.
-
-2007-04-20 Glenn Morris <rgm@gnu.org>
-
- * sysdep.c (init_system_name): Don't accept localhost.localdomain.
-
-2007-04-19 Juanma Barranquero <lekktu@gmail.com>
-
- * minibuf.c (Fminibuffer_contents, Fminibuffer_contents_no_properties)
- (Fminibuffer_completion_contents, Fdelete_minibuffer_contents):
- Doc fixes.
-
-2007-04-16 Chong Yidong <cyd@stupidchicken.com>
-
- * dispnew.c (adjust_frame_glyphs_for_frame_redisplay):
- Set garbaged flag in presence of window margins.
- (showing_window_margins_p): New function.
-
- * xdisp.c (cursor_row_p): Only end row on newline if it's a
- display string. Suggested by Lennart Borgman.
-
-2007-04-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * alloc.c (mem_insert): Set min_heap_address and max_heap_address
- if they are not yet initialized.
-
-2007-04-15 Chong Yidong <cyd@stupidchicken.com>
-
- * xdisp.c (redisplay_window): When deciding whether or not to
- recenter, don't use the reset values of BEG_UNCHANGED and
- END_UNCHANGED.
-
-2007-04-13 Kim F. Storm <storm@cua.dk>
-
- * buffer.c (Fkill_buffer): gcpro BUF during kill_buffer_processes
- and check that buffer is still alive upon return.
-
-2007-04-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c [!TARGET_API_MAC_CARBON]: Include Displays.h.
- (mac_screen_config_changed): New variable.
- (mac_handle_dm_notification, init_dm_notification_handler)
- (mac_get_screen_info): New functions.
- [MAC_OS8] (main): Call init_dm_notification_handler.
- (mac_initialize) [MAC_OSX]: Likewise.
- (XTread_socket): Call mac_get_screen_info if screen config changed.
- (mac_initialized): Make static.
- (mac_initialize_display_info): Remove function.
- (mac_term_init): Call mac_get_screen_info. Add partial contents of
- mac_initialize_display_info.
-
-2007-04-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c (xrm_get_preference_database, Fmac_get_preference)
- [TARGET_API_MAC_CARBON]: Use CFPreferencesAppSynchronize.
-
- * macterm.c [TARGET_API_MAC_CARBON] (mac_post_mouse_moved_event):
- Use GetGlobalMouse instead of GetMouse and LocalToGlobal.
- (mac_initialize_display_info) [MAC_OSX]: Use CGRectZero.
- (mac_initialize_display_info) [!MAC_OSX]: dpyinfo->height and
- dpyinfo->width are those of whole screen.
-
-2007-04-10 Chong Yidong <cyd@stupidchicken.com>
-
- * xdisp.c (note_mode_line_or_margin_highlight): Don't decrement
- glyph pointer before start of glyph row.
-
-2007-04-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * s/darwin.h (__restrict, struct kboard): Remove outdated workarounds.
- (C_SWITCH_SYSTEM): Remove `-I../mac/src'.
-
-2007-04-09 Martin Rudalics <rudalics@gmx.at>
-
- * indent.c (Fmove_to_column): Set next_boundary with correct start pt.
-
-2007-04-08 Richard Stallman <rms@gnu.org>
-
- * xdisp.c (syms_of_xdisp) <message-log-max>: Default 100.
-
-2007-04-07 Chong Yidong <cyd@stupidchicken.com>
-
- * editfns.c (Ftranspose_regions): Validate interval before setting
- text properties.
-
-2007-04-03 Eli Zaretskii <eliz@gnu.org>
-
- * emacs.c (main): Fix instructions for building Emacs for profiling.
-
-2007-04-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_update_menubar): Call g_list_next after moving
- menu bar item.
-
-2007-04-02 Juanma Barranquero <lekktu@gmail.com>
-
- * print.c (Fprin1_to_string): Use macro SPECPDL_INDEX.
-
-2007-04-01 Chong Yidong <cyd@stupidchicken.com>
-
- * keymap.c (Fcommand_remapping): New optional argument.
- (where_is_internal): Use new keymaps argument.
- (Fkey_binding): Caller changed.
-
- * keyboard.c (command_loop_1): Caller changed.
-
-2007-03-31 Eli Zaretskii <eliz@gnu.org>
-
- * window.c (Fget_lru_window): Doc fix.
-
-2007-03-30 Chong Yidong <cyd@stupidchicken.com>
-
- * undo.c (Fprimitive_undo): Give clearer error message when trying
- to change text properties outside accessible part of buffer.
-
-2007-03-29 Kim F. Storm <storm@cua.dk>
-
- * process.c (wait_reading_process_output) [HAVE_PTYS]:
- When EIO happens, clear channel from descriptor masks before raising
- SIGCHLD signal to avoid busy loop between read and sigchld_handler.
- (sigchld_handler): Remove sleep (2007-03-11 & 2007-03-26 changes).
-
-2007-03-29 Juanma Barranquero <lekktu@gmail.com>
-
- * buffer.c (Fset_buffer_major_mode): Check that BUFFER is valid.
-
- * process.c (Fformat_network_address): Return nil when the
- argument vector contains invalid values.
-
-2007-03-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * gmalloc.c [HAVE_GTK_AND_PTHREAD]: Define USE_PTHREAD.
- [USE_PTHREAD]: Include pthread.h.
- (malloc_init_once_control, _malloc_mutex) [USE_PTHREAD]: New variables.
- (malloc_initialize_1): New function created from __malloc_initialize.
- (__malloc_initialize): Use it.
- (LOCK, UNLOCK): New macros to make malloc etc. thread safe.
- (_malloc_internal, _free_internal, _realloc_internal): Use them.
-
- * lread.c (readchar): Extend BLOCK_INPUT block to ferror/clearerr.
-
-2007-03-27 Juanma Barranquero <lekktu@gmail.com>
-
- * process.c (Fformat_network_address): Make args array big enough
- to format IPv6 addresses.
-
-2007-03-27 Glenn Morris <rgm@gnu.org>
-
- * m/hp800.h: Restore HP-UX support (removed 2007-01-29).
-
-2007-03-26 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (Fx_display_mm_height, Fx_display_mm_width): Scale whole
- screen size in pixels by millimeters per pixel of main display.
-
- * macselect.c (get_scrap_target_type_list, x_own_selection):
- Move assignments outside predicate macros.
- (Vselection_converter_alist): Doc fix.
-
- * macterm.c (create_text_encoding_info_alist): Move assignments
- outside predicate macros.
- (mac_initialize_display_info) [MAC_OSX]: dpyinfo->height and
- dpyinfo->width are those of whole screen.
-
-2007-03-26 Sam Steingold <sds@gnu.org>
-
- * process.c (sigchld_handler): Delay by 1ms instead of 1s to
- alleviate sluggishness (the original problem is still fixed).
-
-2007-03-25 Kim F. Storm <storm@cua.dk>
-
- * intervals.c (merge_properties): Use explicit loop instead of
- Fplist_member to avoid QUIT. Don't use Fcdr.
- (intervals_equal): Likewise. Rewrite loop to perform length check
- on the fly rather than calling Flength. Don't use Fcar.
-
-2007-03-24 Eli Zaretskii <eliz@gnu.org>
-
- * editfns.c (Fgoto_char): Doc fix.
-
- * indent.c (Findent_to): Doc fix.
-
-2007-03-24 Chong Yidong <cyd@stupidchicken.com>
-
- * editfns.c (Ftranspose_regions): Use set_text_properties_1
- instead of Fset_text_properties to avoid GC. Signal after change.
-
-2007-03-24 Eli Zaretskii <eliz@gnu.org>
-
- * xfns.c (Fx_show_tip): Doc fix.
-
- * macfns.c (Fx_show_tip): Doc fix.
-
- * w32fns.c (Fx_show_tip): Doc fix.
-
-2007-03-23 Kim F. Storm <storm@cua.dk>
-
- * intervals.c (merge_properties, intervals_equal):
- Use Fplist_member instead of Fmemq to find properties.
-
-2007-03-23 Glenn Morris <rgm@gnu.org>
-
- * unexhp9k800.c: Restore file with clarified legal status.
- * m/sr2k.h: Restore since dependency unexhp9k800.c is restored.
-
-2007-03-22 Chong Yidong <cyd@stupidchicken.com>
-
- * widget.c (EmacsFrameSetCharSize): Catch X errors.
-
-2007-03-22 Kenichi Handa <handa@m17n.org>
-
- * fileio.c (Fcopy_file): Call barf_or_query_if_file_exists with
- non-encoded file name.
- (Frename_file): Likewise.
- (Fadd_name_to_file): Likewise.
- (Fmake_symbolic_link): Likewise.
-
-2007-03-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * Makefile.in (alloca.o, gtkutil.o): Depend on systime.h.
- (dired.o, editfns.o, fileio.o, msdos.o): Depend on atimer.h.
- (dosfns.o, window.o, fns.o, macselect.o): Depend on atimer.h and
- systime.h.
- (term.o, print.o, lread.o): Depend on blockinput.h, atimer.h, and
- systime.h.
- (macfns.o): Remove duplicate dependency on systime.h.
-
- * dispnew.c (Fopen_termscript): Add BLOCK_INPUT around fclose.
- (Fsend_string_to_terminal): Add BLOCK_INPUT around fwrite.
-
- * fileio.c (do_auto_save_unwind): Add BLOCK_INPUT around fclose.
- (Fdo_auto_save): Add BLOCK_INPUT around fwrite.
-
- * keyboard.c (record_char): Add BLOCK_INPUT around fwrite.
- (Fopen_dribble_file): Add BLOCK_INPUT around fclose.
-
- * lread.c: Include blockinput.h.
- (readchar, Fget_file_char): Add BLOCK_INPUT around getc.
- (unreadchar): Add BLOCK_INPUT around ungetc.
- (load_unwind): Add BLOCK_INPUT around fclose.
-
- * print.c: Include blockinput.h.
- (Fredirect_debugging_output): Add BLOCK_INPUT around fclose.
-
- * process.c (Fmake_network_process) [HAVE_GETADDRINFO]:
- Clear immediate_quit before calling freeaddrinfo.
- Add BLOCK_INPUT around freeaddrinfo.
-
- * term.c: Include blockinput.h.
- (write_glyphs, insert_glyphs): Add BLOCK_INPUT around fwrite.
-
-2007-03-19 Richard Stallman <rms@gnu.org>
-
- * keyboard.c (NUM_RECENT_KEYS): Bump up to 300.
-
- * buffer.c (syms_of_buffer): Doc fix.
-
-2007-03-18 Chong Yidong <cyd@stupidchicken.com>
-
- * image.c (pbm_load): Signal error for invalid image size.
-
-2007-03-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (note_mouse_movement): Don't return immediately for
- LeaveNotify case.
-
- * macmenu.c (popup_activated_flag): New variable.
- (x_activate_menubar, mac_menu_show): Set it during menu tracking.
- (popup_activated): New function.
-
- * xdisp.c (redisplay_internal, note_mouse_highlight):
- Check popup_activated for MAC_OS.
-
-2007-03-17 Juanma Barranquero <lekktu@gmail.com>
-
- * buffer.c (syms_of_buffer) <buffer-display-table>: Doc fix.
- Reported by Nikolaj Schumacher <n_schumacher@web.de>.
-
-2007-03-17 Richard Stallman <rms@gnu.org>
-
- * dired.c (file_name_completion): gcpro NAME.
-
-2007-03-17 Chong Yidong <cyd@stupidchicken.com>
-
- * xdisp.c (try_window_id): Increment matrix positions if the
- buffer's byte count has increased, but not the character count.
-
-2007-03-12 Andreas Schwab <schwab@suse.de>
-
- * lisp.h: Declare check_obarray.
-
- * process.c (Fdelete_process): Properly handle deletion of first
- element of deleted_pid_list.
- (create_process): Declare pid as pid_t.
-
-2007-03-12 Kim F. Storm <storm@cua.dk>
-
- * process.c (sigchld_handler): Change type of pid to pid_t.
- Scan deleted_pid_list explicitly to avoid using Fmember which don't
- know about mark bits and make_fixnum_or_float which may malloc.
- Reported by Andreas Schwab.
-
- * keyboard.c (read_key_sequence): Store original event into keybuf
- when replaying sequence with local keymap(s) from string.
-
-2007-03-12 Glenn Morris <rgm@gnu.org>
-
- * editfns.c (Fdecode_time, Fencode_time): Doc fix ("daylight
- savings" to "daylight saving").
-
-2007-03-11 Sam Steingold <sds@gnu.org>
-
- * process.c (sigchld_handler): Sleep before wait3 to avoid a busyloop.
-
-2007-03-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (Fx_server_vendor): Change vendor string to "Apple Inc.".
-
-2007-03-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c [USE_CARBON_EVENTS] (mac_handle_mouse_event):
- Ignore mouse wheel movement on title bar or tool bar.
-
-2007-03-10 Chong Yidong <cyd@stupidchicken.com>
-
- * keyboard.c (help_form_saved_window_configs): New var.
- (read_char_help_form_unwind): New function.
- (read_char): Don't restore window configuration if a mouse click
- arrives while the help form is being displayed.
-
-2007-03-10 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (redisplay_window): Don't automatically select a new window
- start for a contination line during mouse-click.
-
-2007-03-09 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (handle_one_xevent): Ignore buttons > 3 for the tool bar.
-
-2007-03-09 Juanma Barranquero <lekktu@gmail.com>
-
- * keymap.c (Fdescribe_buffer_bindings): Check that BUFFER is valid.
-
-2007-03-08 Richard Stallman <rms@gnu.org>
-
- * keyboard.c (syms_of_keyboard): Doc fix.
-
-2007-03-08 Chong Yidong <cyd@stupidchicken.com>
-
- * minibuf.c (Ftry_completion): Don't short circuit if
- completion-ignore-case is non-nil.
-
-2007-03-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (mac_set_scroll_bar_width, mac_frame_parm_handlers):
- Undo 2006-03-06 changes.
-
- * macterm.c (XTset_vertical_scroll_bar) [MAC_OSX]: Don't show scroll
- bar if its width is smaller than that of Aqua small scroll bar.
-
-2007-03-07 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * minibuf.c (read_minibuf): Bind inhibit-read-only a bit longer so as
- to handle correctly prompts with read-only property.
-
-2007-03-06 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * sound.c (wav_play): Check header->data_length to see how much we
- shall read.
- (alsa_period_size): Convert ALSA period size in frames to bytes.
- (alsa_write): Return if frames is zero.
-
-2007-03-06 Kenichi Handa <handa@m17n.org>
-
- * xselect.c (Vselection_coding_system): Documentation improved.
-
-2007-03-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (x_scroll_bar_create, XTread_socket): Replace #if
- USE_TOOLKIT_SCROLL_BARS with #ifdef USE_TOOLKIT_SCROLL_BARS.
- (x_set_window_size): Call SET_FRAME_GARBAGED. Clear window if
- internal border width has changed.
-
- * macterm.h (struct mac_output): New member `internal_border_width'.
-
-2007-03-04 Richard Stallman <rms@gnu.org>
-
- * window.c (Fdisplay_buffer): Doc fix.
-
-2007-03-03 Glenn Morris <rgm@gnu.org>
-
- * Makefile.in: Don't clear out LIB_X11_LIB, since XFT_LIBS does
- not include -lX11 on Solaris.
-
-2007-03-02 Stuart D. Herring <herring@lanl.gov>
-
- * keymap.c (Fkey_binding): Don't consider one-element lists as events.
-
-2007-03-01 Kenichi Handa <handa@m17n.org>
-
- * process.c (send_process_object): Check the process status and
- signal an error if something is wrong.
-
-2007-02-28 Chong Yidong <cyd@stupidchicken.com>
-
- * insdel.c (Fcombine_after_change_execute): Return nil if
- combine_after_change_buffer has been invalidated.
-
-2007-02-25 Dan Nicolaescu <dann@ics.uci.edu>
-
- * m/xtensa.h: New file.
-
-2007-02-24 Nick Roberts <nickrob@snap.net.nz>
-
- * .gdbinit (xprintstr): Ensure GDB (> 6.6) prints symbol name
- as strings and not character arrays.
-
-2007-02-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
- (x_set_toolkit_scroll_bar_thumb): Add bar->min_handle as margin to
- scroll bar handle size in order to avoid `scroll backward' problem.
- (x_scroll_bar_create, XTset_vertical_scroll_bar)
- [USE_TOOLKIT_SCROLL_BARS]: Initialize bar->min_handle.
-
- * macterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
- New member `min_handle'.
-
-2007-02-23 Kim F. Storm <storm@cua.dk>
-
- * print.c (print): Reset print_number_index if Vprint_number_table
- is nil.
-
-2007-02-23 Eli Zaretskii <eliz@gnu.org>
-
- * w32.c (stat, get_long_basename, is_unc_volume): Use _mbspbrk
- instead of strpbrk.
-
-2007-02-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macmenu.c (mac_menu_show): Call unbind_to early. Use variable
- `menu_item_selection' as in W32 version.
- [TARGET_API_MAC_CARBON] (mac_handle_dialog_event): Add explicit
- braces to avoid ambiguous `else'.
-
- * macterm.c (mac_display_info_for_display): Remove function.
- (mac_flush_display_optional) [USE_CG_DRAWING]: New function.
- (x_redisplay_interface) [USE_CG_DRAWING]: Set it as handler for
- flush_display_optional.
- [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_press):
- New argument MOUSE_POS. All uses changed. Set bar->dragging to
- negative integer if scroll bar handle is pressed.
- [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_release):
- Negative bar->dragging means scroll bar handle is not dragged.
- [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag): Get initial
- offset of scroll bar handle from negative bar->dragging.
- (XTread_socket) [USE_TOOLKIT_SCROLL_BARS]: Modifiers for scroll
- bar click is compared against mapped one. Set down/up_modifier
- for scroll bar click event with control key.
-
- * macterm.h (x_display_info_for_display): Remove extern.
- (SCROLL_BAR_UNPACK, SET_SCROLL_BAR_CONTROL_HANDLE): Don't limit
- value to be unpacked to 32-bit on LP64 model.
-
-2007-02-23 Kenichi Handa <handa@m17n.org>
-
- * process.c (send_process_object_unwind): New function.
- (send_process_object): New function.
- (Fprocess_send_region): Call send_process_object.
- (Fprocess_send_string): Likewise.
-
-2007-02-22 Jason Rumney <jasonr@gnu.org>
-
- * w32menu.c (w32_menu_show): Mark the frame's menu as inactive
- when popup menu finishes.
-
- * w32fns.c (menubar_in_use): New flag.
- (w32_wnd_proc) <WM_INITMENU, WM_EXITMENULOOP, WM_TIMER, WM_COMMAND>:
- Use it.
-
- * w32menu.c (Fx_popup_menu): Don't free menu strings here.
- (w32_menu_show): Do it here instead.
-
- * w32fns.c (w32_wnd_proc) <WM_INITMENU>: Set menubar_active frame
- parameter.
-
- * w32menu.c (current_popup_menu): Make available globally.
- (menubar_selection_callback): Free menu strings before pushing the
- menu event into the keyboard buffer. Remove menu_command_in_progress.
-
- * w32fns.c (current_popup_menu): Use from w32menu.c.
- (w32_wnd_proc) <WM_EXITMENULOOP, WM_TIMER>: Use menubar_active
- and current_popup_menu to determine whether a menubar menu has
- been cancelled.
-
- * w32term.h (w32_output): Remove menu_command_in_progress.
-
-2007-02-22 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (update_frame, update_single_window): Set force_p here if
- redisplay_dont_pause is set or Vredisplay_preemption_period is nil...
- (update_window, update_frame_1): ... instead of here.
- (update_text_area): Clear mouse face on header lines.
-
-2007-02-21 Kim F. Storm <storm@cua.dk>
-
- * minibuf.c (Fassoc_string): Doc fix. Allow symbol for KEY too.
-
-2007-02-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
- [USE_MAC_TSM] (mac_handle_text_input_event): Remove unused variable
- `mapped_modifiers'.
- (XTread_socket) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1020]: Use Keyboard
- Layout Services routines to get current Unicode keyboard layout.
-
-2007-02-20 Chong Yidong <cyd@stupidchicken.com>
-
- * frame.c (x_set_screen_gamma): Apply gamma value to the frame's
- bgcolor.
-
-2007-02-19 Kim F. Storm <storm@cua.dk>
-
- * minibuf.c (Fassoc_string): Allow symbols as keys.
-
- * w32term.c (w32_set_scroll_bar_thumb): Don't resize scroll-bar
- handle while dragging, except when we get close to eob.
- Fix position and size calculations so we don't scroll backwards
- just by clicking on the handle.
-
-2007-02-17 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * Makefile.in (${emacsapp}Contents/Resources/Emacs.rsrc)
- [HAVE_CARBON]: Remove target.
- (macosx-app) [HAVE_CARBON]: Don't depend on it.
-
-2007-02-17 Juanma Barranquero <lekktu@gmail.com>
-
- * callproc.c (syms_of_callproc) <doc-directory>:
- <configure-info-directory>:
- (Fgetenv_internal): Fix typos in docstrings.
-
- * doc.c (Fsubstitute_command_keys): Fix typo in docstring.
-
-2007-02-16 Andreas Schwab <schwab@suse.de>
-
- * frame.c (Fmodify_frame_parameters): Return a value.
-
- * editfns.c (Fformat): Add support for '+' flag.
- * doprnt.c (doprnt1): Likewise. Fix overflow checking.
-
-2007-02-14 Chong Yidong <cyd@stupidchicken.com>
-
- * s/umips.h: Unused file removed.
-
-2007-02-14 Juanma Barranquero <lekktu@gmail.com>
-
- * xfaces.c (Fcolor_distance): Don't continue checking a color for
- errors after it has been correctly parsed as an RGB list.
-
-2007-02-14 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (do_ewmh_fullscreen): Also check for _NET_WM_STATE_FULLSCREEN.
-
-2007-02-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (Fx_focus_frame): Move current process to foreground if
- it is not.
- [TARGET_API_MAC_CARBON] (Fx_file_dialog): Replace #if MAC_OSX with
- #ifdef MAC_OSX.
- (Fmac_set_font_panel_visible_p) [USE_MAC_FONT_PANEL]: Rename from
- Fmac_set_font_panel_visibility. All uses changed. Rename argument
- VISIBLE to FLAG.
-
- * macterm.c (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
- (mac_initialize) [MAC_OSX]: Call SetFrontProcess instead of
- MakeMeTheFrontProcess.
-
-2007-02-12 Chong Yidong <cyd@stupidchicken.com>
-
- * frame.c (x_set_screen_gamma): Clear face cache.
-
-2007-02-11 Juanma Barranquero <lekktu@gmail.com>
-
- * buffer.c (Fgenerate_new_buffer_name, Fbuffer_modified_tick):
- Reflow docstrings.
-
-2007-02-10 Eli Zaretskii <eliz@gnu.org>
-
- * window.c (Fwindow_height, Fwindow_hscroll)
- (Fwindow_redisplay_end_trigger, Fwindow_point, Fwindow_start)
- (Fwindow_end, Fwindow_display_table, Fwindow_text_height):
- Document the effect of WINDOW arg being nil.
-
-2007-02-08 Kim F. Storm <storm@cua.dk>
-
- * minibuf.c (read_minibuf): Fix 2007-01-30 change.
- Use Qlambda as interim value of Vminibuffer_completing_file_name.
- (Fcompleting_read): Use non-filename maps if value is Qlambda (or Qnil).
- (syms_of_minibuf) <minibuffer-completing-file-name>: Document lambda.
-
-2007-02-07 Juanma Barranquero <lekktu@gmail.com>
-
- * makefile.w32-in ($(TRES)): Use literal "../nt/emacs.rc" instead
- of $(ALL_DEPS).
-
-2007-02-07 Eli Zaretskii <eliz@gnu.org>
-
- * makefile.w32-in ($(TRES)): Depend on stamp_BLD, since $(TRES) is
- put into $(BLD).
-
-2007-02-06 Chong Yidong <cyd@stupidchicken.com>
-
- * frame.c (Fmodify_frame_parameters): Don't bind
- Qinhibit_default_face_x_resources, which has no effect.
- (Qinhibit_default_face_x_resources): Symbol deleted.
-
-2007-02-03 Eli Zaretskii <eliz@gnu.org>
-
- * indent.c (Fmove_to_column): Document that the argument COLUMN is
- taken from prefix numeric argument.
-
-2007-02-03 Juanma Barranquero <lekktu@gmail.com>
-
- * lread.c (syms_of_lread) <load-history>: Doc fix.
-
-2007-01-29 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> (tiny change)
-
- * xterm.c [!USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_expose):
- Use the foreground color of the scroll-bar face when drawing
- the scroll-bar's border.
-
-2007-02-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (do_ewmh_fullscreen): Check that what != NULL before
- calling wm_supports.
-
-2007-02-01 Juanma Barranquero <lekktu@gmail.com>
-
- * lread.c (syms_of_lread) <user-init-file>: Doc fix.
- Wording by Eli Zaretskii.
-
-2007-01-31 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (update_frame_tool_bar): Initialize h/vmargin to 0.
-
-2007-01-30 Richard Stallman <rms@gnu.org>
-
- * minibuf.c (read_minibuf):
- Save and clear Vminibuffer_completing_file_name.
- (read_minibuf_unwind): Restore it.
- (Vminibuffer_completion_table, Qminibuffer_completion_table)
- (Vminibuffer_completion_predicate, Qminibuffer_completion_predicate)
- (Vminibuffer_completion_confirm, Qminibuffer_completion_confirm)
- (Vminibuffer_completing_file_name): Definitions moved up.
-
-2007-01-29 Chong Yidong <cyd@stupidchicken.com>
-
- * m/hp800.h: Restore, removing HP-UX support.
-
-2007-01-29 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * Makefile.in: Use a variable, XFT_LIBS, instead #define LIB_X11_LIB.
-
-2007-01-28 Richard Stallman <rms@gnu.org>
-
- * minibuf.c (Ftry_completion, Fall_completions)
- (Fcompleting_read, Ftest_completion):
- Rename arg ALIST or TABLE to COLLECTION.
-
-2007-01-27 Chong Yidong <cyd@stupidchicken.com>
-
- * unexhp9k800.c: Remove due to lack of legal papers.
-
- * m/sr2k.h, m/hp800.h: Remove due to dependence on above.
-
-2007-01-27 Eli Zaretskii <eliz@gnu.org>
-
- * keyboard.c (Fthis_command_keys, Fthis_command_keys_vector): Doc fix.
-
- * minibuf.c (Fcompleting_read): Doc fix.
-
-2007-01-26 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_initialize): Call XftInit if HAVE_XFT.
-
- * Makefile.in: Use XFT_LIBS if defined.
-
-2007-01-26 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * alloc.c (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Use
- BLOCK_INPUT/UNBLOCK_INPUT.
-
- * blockinput.h (interrupt_input_blocked): Declare volatile.
-
- * keyboard.c (interrupt_input_blocked): Declare volatile.
-
- * syssignal.h (SIGNAL_THREAD_CHECK): Use pthread_equal.
-
-2007-01-24 Kim F. Storm <storm@cua.dk>
-
- * keymap.c (describe_map): Don't consider prefix keys to be shadowed.
-
-2007-01-23 Juanma Barranquero <lekktu@gmail.com>
-
- * editfns.c (Finsert_char): Doc fix.
- (Fget_internal_run_time, Fdecode_time): Fix typos in docstrings.
-
-2007-01-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macselect.c [TARGET_API_MAC_CARBON] (mac_do_receive_drag):
- Don't pass keyboard modifiers to mac_store_drag_event, but put
- them as kEventParamKeyModifiers Apple event parameter.
-
-2007-01-21 Chong Yidong <cyd@stupidchicken.com>
-
- * xdisp.c (try_window): Revert previous change.
-
- * dispnew.c (update_text_area): Revert 2006-09-17 change.
- Always redraw non-mode-line rows with mouse-face.
-
-2007-01-20 Chong Yidong <cyd@stupidchicken.com>
-
- * xdisp.c (try_window): Clear mouse-face highlights first.
-
- * window.c (set_window_buffer): Revert 2006-11-22 change.
-
-2007-01-20 Eli Zaretskii <eliz@gnu.org>
-
- * .gdbinit (ppt, xtype, xmisctype, xint, xptr, xmarker, xframe)
- (xbuffer, xcons, xcar, xcdr): Fix doc strings.
-
-2007-01-20 Chong Yidong <cyd@stupidchicken.com>
-
- * keyboard.c (read_key_sequence): Extract local map only if the
- given position is in an accessible buffer region.
-
-2007-01-19 Nick Roberts <nickrob@snap.net.nz>
-
- * .gdbinit: Reformat documentation so that first sentence
- displays properly with "help user-defined" (like apropos).
-
-2007-01-18 Bruno Haible <bruno@clisp.org> (tiny change)
-
- * epaths.in: Move PATH_DOC from local/info to local/share/info.
-
-2007-01-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macmenu.c (create_and_show_dialog) [TARGET_API_MAC_CARBON]:
- Create movable modal window instead of movable alert window.
- (create_and_show_dialog) [!MAC_OSX]: Use DeactivateControl instead
- of DisableControl.
-
- * macselect.c (Fmac_resume_apple_event): Set error number when
- descriptor type of reply is non-null.
-
-2007-01-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macmenu.c (create_and_show_dialog) [TARGET_API_MAC_CARBON]:
- Use DisableControl for disabled items. Set default button to first
- enabled one. Use icon of application in execution.
-
-2007-01-13 Eli Zaretskii <eliz@gnu.org>
-
- * process.c (Fdelete_process, Fprocess_id, sigchld_handler):
- Copy PID into EMACS_INT to avoid GCC warnings.
-
- * fns.c (maybe_resize_hash_table): Copy new size of hash table
- into EMACS_INT to avoid GCC warnings.
-
- * editfns.c (Fuser_uid, Fuser_real_uid): Copy values returned by
- geteuid and getuid into EMACS_INT to avoid GCC warnings.
-
- * dired.c (Ffile_attributes): Fix last change.
-
-2007-01-12 Eli Zaretskii <eliz@gnu.org>
-
- * dired.c (Ffile_attributes): Copy some members of `struct stat'
- into int's to avoid GCC warnings about limited range of short in
- arguments to FIXNUM_OVERFLOW_P.
-
-2007-01-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macmenu.c (HAVE_DIALOGS): Define if TARGET_API_MAC_CARBON.
- (mac_handle_dialog_event, install_dialog_event_handler)
- (create_and_show_dialog) [TARGET_API_MAC_CARBON]: New functions.
- (DIALOG_LEFT_MARGIN, DIALOG_TOP_MARGIN, DIALOG_RIGHT_MARGIN)
- (DIALOG_BOTTOM_MARGIN, DIALOG_MIN_INNER_WIDTH)
- (DIALOG_MAX_INNER_WIDTH, DIALOG_BUTTON_BUTTON_HORIZONTAL_SPACE)
- (DIALOG_BUTTON_BUTTON_VERTICAL_SPACE, DIALOG_BUTTON_MIN_WIDTH)
- (DIALOG_TEXT_MIN_HEIGHT, DIALOG_TEXT_BUTTONS_VERTICAL_SPACE)
- (DIALOG_ICON_WIDTH, DIALOG_ICON_HEIGHT, DIALOG_ICON_LEFT_MARGIN)
- (DIALOG_ICON_TOP_MARGIN) [TARGET_API_MAC_CARBON]: New macros.
- (mac_dialog) [TARGET_API_MAC_CARBON]: Remove function.
- (mac_dialog_show) [TARGET_API_MAC_CARBON]: Use create_and_show_dialog.
-
- * macterm.c (x_free_frame_resources) [USE_CG_DRAWING]:
- Call mac_prepare_for_quickdraw.
- (quit_char, make_ctrl_char) [TARGET_API_MAC_CARBON]: Move externs
- outside #ifdef MAC_OSX.
- (mac_quit_char_key_p) [TARGET_API_MAC_CARBON]: Move function
- outside #ifdef MAC_OSX.
- (mac_check_bundle) [MAC_OSX]: Remove unused function.
-
- * macterm.h (mac_quit_char_key_p): Move extern outside #ifdef MAC_OSX.
- (HOURGLASS_WIDTH, HOURGLASS_HEIGHT): Parenthesize definitions.
-
-2007-01-11 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * alloc.c (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Use pthread_equal,
- block/unblock SIGIO.
-
-2007-01-10 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * editfns.c (Fformat): Allow integer-format to work with floats of size
- larger than most-positive-fixnum (but still smaller than MAXINT).
-
- * dired.c (Ffile_attributes): Use floats for large uids/gids.
-
-2007-01-09 Eli Zaretskii <eliz@gnu.org>
-
- * emacs.c (syms_of_emacs) <path-separator>: Doc fix.
-
-2007-01-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Add BLOCK_INPUT
- around mkstemp.
-
- * image.c (XDrawLine) [MAC_OS]: Remove macro.
- (XCreateGC_pixmap) [!HAVE_NTGUI]: Likewise.
- (x_disable_image) [!HAVE_NTGUI]: Use XCreateGC instead of
- XCreateGC_pixmap.
-
- * macgui.h (Display): Typedef to opaque type.
-
- * macmenu.c (mac_dialog_modal_filter) [MAC_OSX]: New function.
- (Fx_popup_dialog) [MAC_OSX]: Use standard alert if called from
- Fmessage_box, Fyes_or_no_p, or Fy_or_n_p.
- [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030] (menu_quit_handler):
- Use mac_quit_char_key_p.
-
- * macterm.c (XDrawLine): Rename from mac_draw_line_to_pixmap.
- (XCreateGC): Change type of 2nd argument to void *.
- (XFreeGC) [USE_CG_DRAWING && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
- Fix last change.
- (mac_to_emacs_modifiers): Change return type to int.
- [USE_CARBON_EVENTS] (mac_event_to_emacs_modifiers): Likewise.
- (mac_mapped_modifiers): New function.
- (XTread_socket): Use it.
- [USE_TSM] (mac_handle_text_input_event): Likewise.
- (do_window_update) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw.
- (mac_quit_char_modifiers, mac_quit_char_keycode) [MAC_OSX]:
- Remove variables.
- (mac_determine_quit_char_modifiers, init_quit_char_handler)
- [MAC_OSX]: Remove functions.
- (make_ctrl_char) [MAC_OSX]: Add extern.
- (mac_quit_char_key_p) [MAC_OSX]: New function.
- (mac_initialize) [MAC_OSX]: Don't call init_quit_char_handler.
-
- * macterm.h (FONT_MAX_WIDTH): Remove unused macro.
- (XCreateGC): Change type in extern.
- (XDrawLine): Rename from mac_draw_line_to_pixmap.
- (mac_quit_char_key_p) [MAC_OSX]: Add extern.
-
-2007-01-08 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * keyboard.c (init_keyboard): Initialize interrupt_input_blocked and
- interrupt_input_pending.
-
- * xterm.h (x_display_info): New: net_supported_atoms,
- nr_net_supported_atoms and net_supported_window.
-
- * xterm.c (last_user_time): New variable.
- (handle_one_xevent): Set last_user_time from events that have Time.
- Set net_supported_window to 0 when reparented.
- (wm_supports): New function.
- (do_ewmh_fullscreen): Use wm_supports to check for _NET_WM_STATE.
- (x_term_init): Initialize net_supported_atoms, nr_net_supported_atoms
- and net_supported_window.
-
-2007-01-05 Kim F. Storm <storm@cua.dk>
-
- * indent.c (Fvertical_motion): Fix it overshoot check for overlay
- strings without embedded newlines immediately followed by newline.
-
-2007-01-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * editfns.c (Fformat_time_string, Fdecode_time, Fencode_time)
- (Fcurrent_time_string, Fcurrent_time_zone): Add BLOCK_INPUT around
- gmtime/localtime/emacs_memftimeu/mktime.
-
- * mac.c (Fmac_set_file_creator): Use MAC_EMACS_CREATOR_CODE
- instead of 'EMAx'.
- [!MAC_OSX] (sys_open, sys_creat, sys_fopen): Likewise.
-
- * macgui.h (struct _XGC) [USE_CG_DRAWING
- && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]: New members cg_fore_color
- and cg_back_color.
-
- * macmenu.c (Vshow_help_function) [TARGET_API_MAC_CARBON]: Add extern.
- (restore_show_help_function, menu_target_item_handler)
- [TARGET_API_MAC_CARBON]: New functions.
- (install_menu_target_item_handler): New function.
- (add_menu_item) [TARGET_API_MAC_CARBON]: Set help string as menu
- item property.
-
- * macterm.c (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
- (CG_SET_FILL_COLOR_WITH_GC_FOREGROUND)
- (CG_SET_FILL_COLOR_WITH_GC_BACKGROUND)
- (CG_SET_STROKE_COLOR_MAYBE_WITH_CGCOLOR)
- (CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND): New macros.
- (mac_cg_color_space_rgb) [USE_CG_DRAWING]: New variable.
- (mac_cg_color_black) [USE_CG_DRAWING
- && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]: New variable.
- (init_cg_color) [USE_CG_DRAWING]: New function.
- (mac_draw_line, mac_draw_rectangle) [USE_CG_DRAWING]: Use
- CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND instead of CG_SET_STROKE_COLOR.
- (mac_erase_rectangle, mac_clear_window, mac_draw_cg_image)
- (mac_fill_rectangle, mac_draw_image_string_cg) [USE_CG_DRAWING]:
- Use CG_SET_FILL_COLOR_WITH_GC_FOREGROUND or
- CG_SET_FILL_COLOR_WITH_GC_BACKGROUND instead of CG_SET_FILL_COLOR.
- (mac_draw_string_common) [MAC_OSX && USE_ATSUI]: Likewise.
- (XCreateGC, XFreeGC, XSetForeground, XSetBackground) [USE_CG_DRAWING
- && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]: Use gc->cg_fore_color and/or
- gc->cg_back_color.
- (install_drag_handler, remove_drag_handler): Make extern.
- (install_menu_target_item_handler): Add extern.
- (install_window_handler): Call install_menu_target_item_handler.
- [MAC_OS8] (main): Use MAC_EMACS_CREATOR_CODE instead of 'EMAx'.
- (mac_initialize) [USE_CG_DRAWING]: Call init_cg_color.
-
- * macterm.h (MAC_EMACS_CREATOR_CODE): New enumerator.
-
-2007-01-04 Juanma Barranquero <lekktu@gmail.com>
-
- * window.c (Fwindow_end): Fix use of >= operator.
-
-2007-01-03 Richard Stallman <rms@gnu.org>
-
- * window.c (Fwindow_end): Check BUF_OVERLAY_MODIFF like BUF_MODIFF.
-
-2007-01-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.h (xg_menu_item_cb_data_): Remove highlight_id and
- unhighlight_id.
-
- * gtkutil.c (menuitem_highlight_callback): Invoked widget is the
- parent of the menu item. Get menu item widget from event.
- (xg_create_one_menuitem, xg_update_menu_item): highlight_id and
- unhighlight_id has been removed.
- (create_menus): Connect enter/leave-notify-event to the menu instead
- of individual items.
-
-2006-12-31 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (update_frame_tool_bar): Connect create-menu-proxy with
- xg_tool_bar_menu_proxy.
- (xg_tool_bar_menu_proxy): New function.
- (xg_tool_bar_proxy_callback): New function.
-
-2006-12-30 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_tool_bar_button_cb): Save last modifier on widget.
- (xg_tool_bar_callback): Remove check for button.
- (update_frame_tool_bar): Put an event box in the tool bar and a button
- in the event box. Attach enter/leave-notify-event to the event box.
-
-2006-12-30 Richard Stallman <rms@gnu.org>
-
- * keymap.c (Fdefine_key): Doc fix.
-
-2006-12-29 Kim F. Storm <storm@cua.dk>
-
- * frame.h (struct frame): New member minimize_tool_bar_window_p.
-
- * xdisp.c (auto_resize_tool_bars_p): Replace with ...
- (Vauto_resize_tool_bars): ... this.
- (syms_of_xdisp): DEFVAR_LISP and initialize it. Update doc string
- to describe new value `grow-only', and use of C-l.
- (display_tool_bar_line): Only use default face for border below
- toolbar if not grow-only (to get acceptable visual appearence).
- Explicitly set visible_height for empty toolbar lines.
- (redisplay_tool_bar): Handle `grow-only' setting. Check and clear
- minimize_tool_bar_window_p flag.
-
- * window.c (Frecenter): Set minimize_tool_bar_window_p flag
- when called without arg to redraw with minimum toolbar height.
- Update doc string.
-
-2006-12-29 Jason Rumney <jasonr@gnu.org>
-
- * s/ms-w32.h (tzname): Do not define in msvc8.
- (utime): Do not define in msvc8.
-
- * regex.c (regerror): Change parameter name err_code.
-
-2006-12-26 Richard Stallman <rms@gnu.org>
-
- * search.c (Fsearch_forward): Doc fix.
-
- * callint.c (Finteractive): Doc fix.
-
-2006-12-25 Kim F. Storm <storm@cua.dk>
-
- * s/ms-w32.h (BROKEN_DATAGRAM_SOCKETS): Define it.
-
-2006-12-23 Eli Zaretskii <eliz@gnu.org>
-
- * keyboard.c (some_mouse_moved): Fix last change.
-
-2006-12-22 Eli Zaretskii <eliz@gnu.org>
-
- * callproc.c (syms_of_callproc) <shell-file-name>: Doc fix.
-
-2006-12-22 Mark Davies <mark@mcs.vuw.ac.nz>
-
- * m/amdx86-64.h, m/hp800.h: Add support for NetBSD.
- * m/sh3el.h: New file.
-
-2006-12-22 Eli Zaretskii <eliz@gnu.org>
-
- * makefile.w32-in (emacs, temacs): Depend on stamp_BLD instead of
- $(BLD).
- ($(OBJ0) $(OBJ1) $(WIN32OBJ)): New dependency on stamp_BLD.
- (bootstrap-temacs): Pass $(XMFLAGS) to sub-make.
- ($(OBJ0) $(OBJ1) $(WIN32OBJ)): Add lastfile.$(O) and firstfile.$(O).
- (clean): Delete stamp_BLD.
-
-2006-12-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (mac_update_title_bar) [TARGET_API_MAC_CARBON]:
- Call mac_update_proxy_icon also when buffer modification flag changed.
- [TARGET_API_MAC_CARBON] (mac_update_proxy_icon): Don't update alias,
- but compare FSRef/FSSpec of resolved alias.
-
-2006-12-21 Kim F. Storm <storm@cua.dk>
-
- * w32.c (_sys_wait_accept): Fix handle leak.
-
-2006-12-20 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * sound.c: Include <alsa/asoundlib.h> if ALSA_SUBDIR_INCLUDE is
- defined.
-
-2006-12-20 Kim F. Storm <storm@cua.dk>
-
- * s/ms-w32.h (BROKEN_NON_BLOCKING_CONNECT): Define it.
-
-2006-12-19 Juanma Barranquero <lekktu@gmail.com>
-
- * keyboard.c (syms_of_keyboard) <double-click-time>:
- * mac.c (Fmac_code_convert_string):
- * search.c (Fsearch_forward): Doc fixes.
-
-2006-12-19 Kim F. Storm <storm@cua.dk>
-
- Rework 2006-12-04 change. A SIGUSR1 (SIGUSR2) signal now generates
- a sigusr1 event instead of [signal usr1] sequence, and signal events
- are now supposed to be handled via special-event-map.
-
- * keyboard.c (kbd_buffer_store_event_hold): Undo 2006-12-04 change.
- (make_lispy_event): Don't generate Qsignal prefix for code 0.
- Abort if signal code is unknown.
- (store_user_signal_events): Don't make Qsignal prefix (code 0).
- (Qsignal): Move declaration back to process.c.
- (syms_of_keyboard): Don't intern or staticpro it here.
-
- * process.c (Qsignal): Declare here.
- (syms_of_process): Intern or staticpro it.
-
- * emacs.c (main): Rename user signals to sigusr1 and sigusr2.
-
- * .gdbinit: Pass on SIGUSR1 and SIGUSR2 to Emacs.
-
-2006-12-19 Juanma Barranquero <lekktu@gmail.com>
-
- * buffer.c (syms_of_buffer) <buffer-display-table>:
- <scroll-up-aggressively, scroll-down-aggressively>: Doc fixes.
-
-2006-12-17 Richard Stallman <rms@gnu.org>
-
- * fileio.c (Fread_file_name_internal): Pass Vread_file_name_predicate
- to Ffile_name_completion.
-
- * dired.c (file_name_completion): New arg PREDICATE. Some cleanup.
- (Ffile_name_completion): New arg PREDICATE.
-
-2006-12-17 Juanma Barranquero <lekktu@gmail.com>
-
- * buffer.c (Fkill_buffer): Doc fix.
- (syms_of_buffer) <kill-buffer-query-functions>: Doc fix.
-
-2006-12-16 Juanma Barranquero <lekktu@gmail.com>
-
- * minibuf.c (Ftry_completion): Check that obarray buckets are symbols.
-
-2006-12-16 Eli Zaretskii <eliz@gnu.org>
-
- * w32fns.c (w32-window-exists-p): New function.
- (syms_of_w32fns): Defsubr it.
-
- * prefix-args.c [STDC_HEADERS]: Include stdlib.h.
-
-2006-12-16 Juanma Barranquero <lekktu@gmail.com>
-
- * minibuf.c (Ftry_completion): Use `check_obarray' if ALIST is a vector.
-
-2006-12-15 Eli Zaretskii <eliz@gnu.org>
-
- * emacs.c (USAGE3): Clarify documentation of --color.
-
-2006-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c (wakeup_from_rne_enabled_p) [TARGET_API_MAC_CARBON]:
- New variable.
- (ENABLE_WAKEUP_FROM_RNE, DISABLE_WAKEUP_FROM_RNE): New macros.
- [!MAC_OSX] (select): Use them.
- [MAC_OSX] (select_and_poll_event, sys_select): Likewise.
- (mac_wakeup_from_rne) [TARGET_API_MAC_CARBON]: New function.
-
- * macfns.c (mac_atsu_font_face_attributes) [USE_ATSUI]: Add extern.
- (Fmac_atsu_font_face_attributes) [USE_ATSUI]: New function.
- (syms_of_macfns) [USE_ATSUI]: Defsubr it.
-
- * macselect.c [TARGET_API_MAC_CARBON] (mac_do_receive_drag):
- Use mac_wakeup_from_rne instead of mac_post_mouse_moved_event.
-
- * macterm.c (mac_query_char_extents) [USE_ATSUI]: Don't call
- ATSUGetGlyphBounds if not necessary.
- (Vmac_atsu_font_table) [USE_ATSUI]: Remove variable.
- (syms_of_macterm) [USE_ATSUI]: Don't defvar it.
- (fm_get_style_from_font, atsu_find_font_from_family_name)
- (atsu_find_font_family_name, mac_atsu_font_face_attributes)
- [USE_ATSUI]: New functions.
- (init_font_name_table) [USE_ATSUI]: Use atsu_find_font_family_name.
- (mac_load_query_font) [USE_ATSUI]: Use atsu_find_font_from_family_name.
- Don't get metrics for Latin-1 right half characters.
- (mac_load_query_font): Don't load font if space width is not positive.
- [TARGET_API_MAC_CARBON] (mac_store_event_ref_as_apple_event):
- Use mac_wakeup_from_rne instead of mac_post_mouse_moved_event.
- (XTread_socket): Call SelectWindow when unfocused frame is clicked.
-
- * macterm.h (mac_wakeup_from_rne) [TARGET_API_MAC_CARBON]: Add extern.
-
-2006-12-15 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (ignore_mouse_drag_p): New global var.
- (some_mouse_moved): Return 0 if it is non-zero.
- (make_lispy_event): Generate click event on mouse up if
- ignore_mouse_drag_p is non-zero, even if mouse moved.
- Clear ignore_mouse_drag_p on mouse down/up.
-
- * xdisp.c (redisplay_window): Set ignore_mouse_drag_p if tool-bar
- is resized to avoid generating a mouse drag event.
-
-2006-12-14 Juanma Barranquero <lekktu@gmail.com>
-
- * w32fns.c (w32_wnd_proc): Force non-tooltip frames to respect the
- minimum tracking size. Remove non-working old hack to do the same.
-
-2006-12-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * emacs.c (handle_user_signal): Move function to keyboard.c.
- (main): Use add_user_signal for SIGUSR1 and SIGUSR2.
-
- * keyboard.c (make_lispy_event): Use find_user_signal_name.
- (read_avail_input): Store pending user signal events.
- (struct user_signal_info): New struct.
- (user_signals): New variable.
- (add_user_signal, store_user_signal_events)
- (find_user_signal_name): New functions.
- (handle_user_signal): Move function from emacs.c. Don't store
- USER_SIGNAL_EVENT here, but increment number of pending signals.
-
- * keyboard.h (add_user_signals): Add extern.
-
-2006-12-11 Juanma Barranquero <lekktu@gmail.com>
-
- * buffer.c (syms_of_buffer) <cursor-in-non-selected-windows>:
- <default-scroll-up-aggressively, default-scroll-down-aggressively>:
- <line-spacing, left-margin>: Doc fixes.
-
- * xdisp.c (syms_of_xdisp) <mode-line-inverse-video>: Doc fix.
-
-2006-12-10 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (show_mouse_face): Never use text cursor in tool-bar.
-
-2006-12-10 Juanma Barranquero <lekktu@gmail.com>
-
- * abbrev.c (syms_of_abbrev) <last-abbrev-text>:
- * buffer.c (syms_of_buffer) <default-major-mode>:
- * keymap.c (Flookup_key):
- * lread.c (Feval_buffer, Feval_region):
- * macterm.c (syms_of_macterm) <x-use-underline-position-properties>:
- <x-underline-at-descent-line, mac-emulate-three-button-mouse>:
- * marker.c (Fmarker_insertion_type):
- * minibuf.c (syms_of_minibuf) <minibuffer-completion-table>:
- * msdos.c (syms_of_msdos) <delete-exited-processes>:
- * w32term.c (syms_of_w32term) <x-use-underline-position-properties>:
- <x-underline-at-descent-line>:
- * xdisp.c (format-mode-line):
- * xterm.c (syms_of_xterm) <x-use-underline-position-properties>:
- <x-underline-at-descent-line>: Doc fixes.
-
-2006-12-10 Andreas Schwab <schwab@suse.de>
-
- * systime.h (EMACS_GET_TIME): Remove check for
- HAVE_STRUCT_TIMEZONE which is never defined.
-
-2006-12-10 Alan Mackenzie <acm@muc.de>
-
- * syntax.c (Fpartial_parse_sexp): Correct Docco: Elt 8 of the
- result is now neither the last elt nor optional for OLDSTATE.
-
-2006-12-09 Eli Zaretskii <eliz@gnu.org>
-
- * process.c (Fsignal_process): Doc fix. Use XFLOAT_DATA to
- extract the process ID from a Lisp float.
-
-2006-12-09 Chong Yidong <cyd@stupidchicken.com>
-
- * xterm.c (XTframe_raise_lower): Comment out _NET_ACTIVE_WINDOW code.
-
-2006-12-08 Eli Zaretskii <eliz@gnu.org>
-
- * frame.h (PIX_TYPE): Redefine as `unsigned long', for 64-bit
- platforms where long is 64-bit.
-
- * msdos.h (PIX_TYPE): Redefine as `unsigned long'.
-
-2006-12-08 NAKAJI Hiroyuki <nakaji@jp.freebsd.org> (tiny change)
-
- * m/amdx86-64.h: Add support for Solaris 10 on x86-64.
-
-2006-12-08 Kenichi Handa <handa@m17n.org>
-
- * xterm.c (x_query_font): Use xstricmp instead off strcasecmp.
-
-2006-12-08 Juanma Barranquero <lekktu@gmail.com>
-
- * emacs.c (syms_of_emacs) <system-type>: Doc fix.
-
-2006-12-07 Kim F. Storm <storm@cua.dk>
-
- * process.c (parse_signal): Use xstricmp instead of strcasecmp.
- (Fsignal_process): Don't use strncasecmp.
-
-2006-12-05 Glenn Morris <rgm@gnu.org>
-
- * abbrev.c (Qforce): New Lisp_Object.
- (Fdefine_abbrev): Do not overwrite non-system abbrevs with system
- abbrevs, unless 'force is applied.
- (syms_of_abbrev): Add Qforce.
-
-2006-12-04 Kim F. Storm <storm@cua.dk>
-
- * process.c (parse_signal): Rename macro from handle_signal.
- (Fsignal_process): Also accept lower-case variants of signal
- names (to align with signal names generated by Emacs itself).
-
- * emacs.c (handle_USR1_signal, handle_USR2_signal): Replace by...
- (handle_user_signal): ... this, which generates two USER_SIGNAL_EVENTs
- first with code == 0 [signal] and one with code == sig number.
- (main): Use it as handler for SIGUR1 and SIGUSR2.
-
- * keyboard.c (kbd_buffer_store_event_hold): Don't throw-on-input
- if first event in [signal xxx] sequence.
- (lispy_user_signals, Qusr1_signal, Qusr2_signal): Remove.
- (syms_of_keyboard): Don't intern and staticpro them.
- (Qsignal): Declare here.
- (syms_of_keyboard): Intern and staticpro it.
- (make_lispy_event): Use it. Intern symbols on the fly for other
- USER_SIGNAL_EVENTs events.
-
- * process.c (Qsignal): Declare extern.
- (syms_of_process): Don't intern/staticpro it here.
-
- * process.c (read_process_output): Abort if carryover < 0.
-
-2006-12-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * config.in: Regenerate.
-
- * fileio.c [__NetBSD__]: Don't define `unix'.
- (Funix_sync, syms_of_fileio): Use `#ifdef HAVE_SYNC' instead of
- `#ifdef unix'.
-
-2006-12-04 Glenn Morris <rgm@gnu.org>
-
- * Makefile.in (version): New variable, set by configure.
- (bootstrapclean, mostlyclean): Also remove emacs-${version}.
-
-2006-12-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (update_frame_tool_bar): Handle modifying a toolbar item
- without an image.
-
-2006-12-01 Eli Zaretskii <eliz@gnu.org>
-
- * w32fns.c (Fw32_shell_execute): Doc fix.
-
-2006-11-30 Chong Yidong <cyd@stupidchicken.com>
-
- * xdisp.c (move_it_to): Correctly count tab glyphs for continued
- lines ending in tab.
-
-2006-11-30 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_raise_frame): Move setting of _NET_ACTIVE_WINDOW
- property ...
- (XTframe_raise_lower): ... to here.
-
-2006-11-30 Kenichi Handa <handa@m17n.org>
-
- * regex.c (regex_compile): Fix previous change.
-
-2006-11-29 Juanma Barranquero <lekktu@gmail.com>
-
- * sound.c (Fplay_sound_internal): Remove spurious newline in docstring.
-
-2006-11-28 Chong Yidong <cyd@stupidchicken.com>
-
- * config.in: Regenerate.
-
-2006-11-28 Kenichi Handa <handa@m17n.org>
-
- * regex.c (regex_compile): Don't call SET_LIST_BIT with a
- multibyte character.
-
-2006-11-27 Chong Yidong <cyd@stupidchicken.com>
-
- * s/aix4-2.h: Undefine _NO_PROTO. Suggested by Joe Buehler.
-
-2006-11-27 Kim F. Storm <storm@cua.dk>
-
- * window.c (set_window_buffer): Refactor recent changes.
-
-2006-11-27 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (w32_msg_worker): Declare correctly.
- (w32_initialize): Don't cast w32_msg_worker.
-
- * w32fns.c (w32_msg_worker): Define as WINAPI and arg as void pointer.
-
-2006-11-26 Chong Yidong <cyd@stupidchicken.com>
-
- * m/amdx86-64.h: Look for standard libs in /usr/lib64 only if that
- directory exists.
-
-2006-11-25 Eli Zaretskii <eliz@gnu.org>
-
- * w16select.c (Fw16_set_clipboard_data): Fix the call to sit_for
- as per the calling sequence change on 2006-07-11.
-
-2006-11-25 Chong Yidong <cyd@stupidchicken.com>
-
- * window.c (set_window_buffer): Use BLOCK_INPUT.
-
-2006-11-24 Juanma Barranquero <lekktu@gmail.com>
-
- * fns.c (substring_both): Add missing address operator.
-
-2006-11-24 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * fns.c: Use AREF/ASIZE macros.
- (concat): Provide the full ANSI prototype.
-
-2006-11-24 Juanma Barranquero <lekktu@gmail.com>
-
- * buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
-
-2006-11-23 William Smith <William.Smith@global360.com> (tiny change)
-
- * strftime.c (HAVE_SYS__MBSTATE_T_H): Fix typo.
-
-2006-11-22 Alfred M. Szmidt <ams@gnu.org> (tiny change)
-
- * s/openbsd.h (LD_SWITCH_SYSTEM): Remove /usr/pkg/lib and
- /usr/pkg/lib from the library search path.
- (LD_SWITCH_X_DEFAULT): New macro.
-
-2006-11-22 Chong Yidong <cyd@stupidchicken.com>
-
- * window.c (set_window_buffer): Clear mouse highlight if it is in
- this window.
-
-2006-11-21 Chong Yidong <cyd@stupidchicken.com>
-
- * xfaces.c (realize_default_face): Check if the default font name
- exists on this display before trying to use it.
-
-2006-11-21 Richard Stallman <rms@gnu.org>
-
- * fileio.c: Break line before &&, not after.
-
-2006-11-20 Eli Zaretskii <eliz@gnu.org>
-
- * fns.c (concat) [!__GNUC__]: Add prototype.
-
-2006-11-20 Kenichi Handa <handa@m17n.org>
-
- * fileio.c (Fread_file_name_internal): Use SBYTES (not SCHARS) to
- check the tailing slash of a filename.
-
-2006-11-20 KOBAYASHI Yasuhiro <kobayays@otsukakj.co.jp> (tiny change)
-
- * indent.c (Fvertical_motion): Include composition in the case of
- overshoot expected.
-
-2006-11-19 Andreas Schwab <schwab@gnu.org>
-
- * xfaces.c (Fdisplay_supports_face_attributes_p): Initialize supports.
-
- * xmenu.c (Fx_popup_menu): Initialize selection.
-
-2006-11-18 Andreas Schwab <schwab@suse.de>
-
- * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Update call to mark_memory.
-
-2006-11-17 Tetsurou Okazaki <okazaki@be.to> (tiny change)
-
- * xterm.c (do_ewmh_fullscreen): Declare variable before XSETFRAME
- to avoid gcc 2.96 error.
-
-2006-11-17 NIIMI Satoshi <sa2c@sa2c.net> (tiny change)
-
- * search.c (simple_search): In the loop of backward searching,
- check also the byte position against the limit.
-
-2006-11-14 Romain Francoise <romain@orebokech.com>
-
- * minibuf.c (Fcompleting_read): Fix typo in docstring.
-
-2006-11-14 Kenichi Handa <handa@m17n.org>
-
- * coding.c (code_convert_region): Initialize coding->heading_ascii.
- (decode_coding_string, code_convert_region): Likewise.
-
-2006-11-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * config.in: Regenerate.
-
- * macfns.c (Fx_display_mm_height, Fx_display_mm_width)
- [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
- && MAC_OS_X_VERSION_MIN_REQUIRED == 1020]: Check if
- CGDisplayScreenSize is available.
-
- * macmenu.c (menu_quit_handler, install_menu_quit_handler):
- Replace `#ifdef HAVE_CANCELMENUTRACKING' with
- `#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030'.
- (install_menu_quit_handler) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
- && MAC_OS_X_VERSION_MIN_REQUIRED == 1020]: Check if
- CancelMenuTracking is available.
-
- * macterm.c [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
- [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
- && MAC_OS_X_VERSION_MIN_REQUIRED == 1020]: Check if
- CGContextShowGlyphsWithAdvances is available.
-
-2006-11-13 Jason Rumney <jasonr@gnu.org>
-
- * s/ms-w32.h: Define HAVE_INET_SOCKETS.
-
-2006-11-13 Nozomu Ando <nand@mac.com>
-
- * alloc.c (mark_memory): New argument OFFSET. All uses changed.
- Fix address calculations for case END < START.
- (mark_stack): Impose Lisp_Object alignment on jmp_buf.
-
-2006-11-12 Juanma Barranquero <lekktu@gmail.com>
-
- * coding.c (Fencode_sjis_char, Fencode_big5_char):
- Improve argument/docstring consistency.
-
- * editfns.c (Fmessage): Doc fixes.
-
- * process.c (syms_of_process) <delete-exited-processes>: Doc fix.
-
-2006-11-12 Chong Yidong <cyd@stupidchicken.com>
-
- * xmenu.c (popup_activated): Define outside HAVE_MENUS.
-
-2006-11-12 Romain Francoise <romain@orebokech.com>
-
- * xselect.c (selection-coding-system): Fix docstring.
-
-2006-11-12 Juanma Barranquero <lekktu@gmail.com>
-
- * category.c (Fchar_category_set): Improve arg/docstring consistency.
-
- * data.c (Flogxor):
- * fns.c (Frandom, Flength, Fsafe_length, Fstring_bytes)
- (Fstring_equal, Fcompare_strings, Fstring_lessp, Fcopy_sequence)
- (Fstring_make_unibyte): Fix typos in docstrings.
-
-2006-11-10 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.h (struct x_display_info): Fix indentation.
-
- * xterm.c (do_ewmh_fullscreen, XTfullscreen_hook): New functions.
- (x_check_fullscreen): Call do_ewmh_fullscreen.
- (x_initialize): Set fullscreen_hook to XTfullscreen_hook.
-
- * frame.c (x_set_fullscreen): Call fullscreen_hook if set.
-
- * term.c: Define fullscreen_hook.
- (syms_of_term): Initialize fullscreen_hook to NULL.
-
- * termhooks.h: Add fullscreen_hook.
-
-2006-11-08 Juanma Barranquero <lekktu@gmail.com>
-
- * bytecode.c (Fbyte_code):
- * data.c (Fmakunbound): Use SYMBOL_CONSTANT_P macro.
-
-2006-11-06 Juanma Barranquero <lekktu@gmail.com>
-
- * lread.c (syms_of_lread):
- * xsmfns.c (syms_of_xsmfns): Fix typo in docstring.
-
-2006-11-06 Martin Rudalics <rudalics@gmx.at>
-
- * macmenu.c (Fmenu_or_popup_active_p): Define outside HAVE_MENUS.
-
- * w32menu.c (Fmenu_or_popup_active_p): Define outside HAVE_MENUS.
- Return nil if building without menus.
-
- * xmenu.c (Fmenu_or_popup_active_p): Define outside HAVE_MENUS.
- Return nil if building without menus.
-
-2006-11-05 Mark Davies <mark@mcs.vuw.ac.nz> (tiny change)
-
- * s/netbsd.h (POSIX_SIGNALS): Define.
-
-2006-11-05 Martin Rudalics <rudalics@gmx.at>
-
- * macmenu.c (Fmenu_or_popup_active_p): New function.
- (syms_of_macmenu): Defsubr it.
-
- * w32menu.c (Fmenu_or_popup_active_p): New function.
- (syms_of_w32menu): Defsubr it.
- (popup_activated_flag, popup_activated): Remove.
-
- * xdisp.c (note_mouse_highlight) [HAVE_NTGUI]: Don't bother to
- check popup_activated.
-
- * xmenu.c (Fmenu_or_popup_active_p): New function.
- (syms_of_xmenu): Defsubr it.
-
-2006-11-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * unexmacosx.c (malloc_cookie): Remove unused variable.
- (region_list_head, region_list_tail, lca, nlc, infile_lc_highest_addr)
- (text_seg_lowest_offset, mh, curr_header_offset, infd, outfd)
- (emacs_zone, data_segment_old_fileoff, data_segment_scp)
- (num_unexec_regions, unexec_regions): Make variables static.
- (print_regions, find_emacs_zone_regions): Make static.
- (unexec_region_info): New typedef.
- (unexec_regions): Change type from vm_range_t[] to unexec_region_info[].
- All uses changed.
- (unexec_regions_recorder): Subtract size of trailing null pages from
- filesize. Show filesize.
- (unexec_regions_merge): Don't merge if null pages of preceding region
- is not too small. Use long format in printf.
- (copy_segment, copy_data_segment): Show filesize.
- (copy_data_segment): Write filesize bytes of region data.
- Adjust filesize in segment command accordingly.
- (dump_it): Use long format in printf.
-
-2006-11-05 Juanma Barranquero <lekktu@gmail.com>
-
- * dosfns.c (Finsert_startup_screen):
- * fns.c (Ffeaturep, syms_of_fns):
- * frame.c (syms_of_frame): Fix typos in docstrings.
-
- * unexcw.c (unexec): Fix typo in output message.
-
-2006-11-04 Ralf Angeli <angeli@caeruleus.net>
-
- * w32fns.c (w32_createwindow): Remove code for handling -geometry
- command line option and `initial-frame-alist' which is superfluous
- after the last change to `w32_createwindow'.
-
-2006-11-04 Slawomir Nowaczyk <slawek@cs.lth.se> (tiny change)
-
- * w32proc.c (sys_wait): Only wait for processes with fd<0.
- Others should be handled by sys_select instead. Fixes problems
- with (progn (start-process "" nil "ls") (call-process "ls")).
-
-2006-11-04 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change)
-
- * xmenu.c (Fmenu_bar_open): Declare variable before BLOCK_INPUT to
- avoid gcc 2.95 error.
-
-2006-11-04 Chong Yidong <cyd@stupidchicken.com>
-
- * gtkutil.c (update_frame_tool_bar): If icon image is invalid and
- wicon is null, insert an empty button.
-
-2006-11-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_raise_frame): Send _NET_ACTIVE_WINDOW when raising the
- window.
-
-2006-11-02 Juanma Barranquero <lekktu@gmail.com>
-
- * emacs.c (Fkill_emacs): Fix typo in docstring.
-
-2006-11-02 Nozomu Ando <nand@mac.com>
-
- * unexmacosx.c (mach_header, segment_command, vm_region, section)
- [_LP64]: New defines.
- (VM_REGION_BASIC_INFO_COUNT, VM_REGION_BASIC_INFO, LC_SEGMENT)
- (MH_MAGIC) [_LP64]: Redefine.
- (delta): Remove variable.
- (curr_file_offset, pagesize): New variables.
- (ROUNDUP_TO_PAGE_BOUNDARY): New macro.
- (data_segment_old_fileoff): Initialize explicitly.
- (print_region, unexec_regions_recorder, print_load_command_name)
- (copy_segment, copy_data_segment): Use long format in printf.
- (MAX_UNEXEC_REGIONS): Increase to 400.
- (unexec_regions_recorder): Don't warn too many regions here.
- (find_emacs_zone_regions): Warn too many regions here.
- (print_load_command_name) [_LP64]: Show correct load command name.
- (copy_segment, copy_data_segment): Use variable `curr_file_offset'.
- Show starting virtual memory address. Don't show ending file offset.
- (copy_symtab, copy_dysymtab, copy_twolevelhints): New argument DELTA.
- (dump_it): Use new local variable `linkedit_delta' and pass to them.
- Error if trying to handle multiple DATA segments.
- (unexec): Initialize variable `pagesize'.
-
-2006-11-01 Juanma Barranquero <lekktu@gmail.com>
-
- * eval.c (Fcatch): Doc fix.
-
-2006-10-31 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * image.c [MAC_OS] (image_load_qt_1, xpm_scan, xpm_make_color_table_v)
- (xpm_put_color_table_v, xpm_get_color_table_v, xpm_make_color_table_h)
- (xpm_put_color_table_h, xpm_get_color_table_h, xpm_str_to_color_key)
- (xpm_load_image): Add const qualifier to arguments.
- [MAC_OS] (xpm_color_key_strings): Make static const.
-
- * mac.c (create_apple_event_from_event_ref)
- (create_apple_event_from_drag_ref, skip_white_space, parse_comment)
- (parse_include_file, parse_binding, parse_component)
- (parse_resource_name, parse_value, parse_resource_line)
- (xrm_merge_string_database, xrm_get_resource)
- (xrm_get_preference_database): Add const qualifier to arguments.
- [MAC_OSX] (sys_select): Make variable `context' static const.
-
- * macfns.c (mac_color_map): Make static const.
- (mac_color_map_lookup): Add const qualifier to arguments.
-
- * macmenu.c (install_menu_quit_handler): Make variable `typesList'
- static const.
- (name_is_separator): Add const qualifier to arguments.
-
- * macselect.c (init_service_handler): Make variable `specs' static
- const.
-
- * macterm.c (mac_create_bitmap_from_bitmap_data): Make variable
- `swap_nibbles' static const.
- (atsu_get_text_layout_with_text_ptr): Make variables `lengths',
- `tags', `sizes', `values' static const.
- (mac_draw_string_common): Make variables `context' static.
- Make variables `tags', `sizes', and `values' static const.
- (pcm_get_status, x_detect_focus_change, x_scroll_bar_handle_click)
- (xlfdpat_create, xlfdpat_block_match_1, xlfdpat_match)
- (mac_to_x_fontname, parse_x_font_name, add_mac_font_name)
- (mac_do_list_fonts, is_fully_specified_xlfd, do_grow_window)
- (mac_store_event_ref_as_apple_event, mac_make_rdb): Add const
- qualifier to arguments.
- (xlfd_scalable_fields, keycode_to_xkeysym_table)
- (fn_keycode_to_keycode_table): Make static const.
- (mac_load_query_font): Make variables `tags', `sizes', `values',
- `types', and `selectors' static const.
- (mac_handle_command_event, mac_handle_window_event):
- Make variables `names' and `types' static const.
- (init_command_handler, install_window_handler): Make variables
- `specs*' static const.
- (mac_handle_font_event, mac_handle_text_input_event)
- (mac_store_service_event): Make variables `names' and `types'
- const. Make variables `names_*' and `types_*' static const.
-
- * macterm.h (create_apple_event_from_event_ref)
- (create_apple_event_from_drag_ref, xrm_merge_string_database)
- (xrm_get_resource, xrm_get_preference_database): Add const
- qualifier to arguments in externs.
-
-2006-10-31 Kenichi Handa <handa@m17n.org>
-
- * xfns.c (xic_create_xfontset): Fix previous change.
-
-2006-10-30 Chong Yidong <cyd@stupidchicken.com>
-
- * s/openbsd.h (LD_SWITCH_SYSTEM): Add /usr/pkg/lib and
- /usr/pkg/lib to library search path.
-
-2006-10-29 Mark Davies <mark@mcs.vuw.ac.nz> (tiny change)
-
- * ralloc.c (relinquish): Use a long for excess space counter to
- handle 64-bit case correctly.
-
-2006-10-29 Jeramey Crawford <jeramey@jeramey.com>
-
- * m/amdx86-64.h: Add defines for OpenBSD x86-64.
-
-2006-10-29 Juanma Barranquero <lekktu@gmail.com>
-
- * window.c (Fdisplay_buffer): Fix typo in docstring.
-
-2006-10-27 Ben North <ben@redfrontdoor.org> (tiny change)
-
- * w32term.c (x_draw_glyph_string_foreground): Set background mode
- to TRANSPARENT before using overstrike to simulate bold faces.
-
- * xfaces.c (best_matching_font): Fix logic to decide whether to
- use overstriking to simulate bold-face (it was reversed).
-
-2006-10-23 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (remember_mouse_glyph): Do nothing if glyphs are not
- initialized.
-
- * keyboard.c (read_char): Make an element (t . EVENT) in
- unread-command-events add EVENT to the current command's key sequence.
- (syms_of_keyboard) <unread-command-events>: Update doc.
-
-2006-10-21 Richard Stallman <rms@gnu.org>
-
- * minibuf.c (Vread_expression_map): Define here.
- (Qread_expression_history): New variable.
- (syms_of_minibuf): Initialize them.
- (Feval_minibuffer): Use Vread_expression_map and
- Qread_expression_history.
-
-2006-10-21 Kenichi Handa <handa@m17n.org>
-
- * xfns.c (xic_create_fontsetname): If ADSTYLE field is not a wild
- card, change it to "*".
- (xic_create_xfontset): Call XCreateFontSet for each single
- fontname in fontsetname.
-
-2006-10-19 Chong Yidong <cyd@stupidchicken.com>
-
- * callint.c (callint_message): Convert to a Lisp string.
- (syms_of_callint): Initialize it.
- (callint_message_size): Var deleted.
- (Fcall_interactively): Use Fformat instead of doprnt to construct
- prompt string.
-
-2006-10-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * xdisp.c (display_mode_line): Clear enabled_p flag on mode-line row.
-
-2006-10-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (Vmac_carbon_version_string) [TARGET_API_MAC_CARBON]:
- New variable.
- (syms_of_macfns) [TARGET_API_MAC_CARBON]: Defvar it.
-
-2006-10-19 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xselect.c (x_handle_selection_request): If the converted_selection
- is nil or XCDR (converted_selection) is nil, decline the request.
-
-2006-10-16 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (get_utf8_string): Remove warnings with casts.
- (xg_tool_bar_button_cb): Ditto.
- (xg_tool_bar_callback): Ditto.
-
-2006-10-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Remove unused
- variable ch_dim.
- (adjust_frame_glyphs_for_window_redisplay): Likewise. Don't allocate
- menu bar window matrices on non-X systems.
-
- * mac.c (Fmac_get_preference, Fmac_code_convert_string): Add GCPROs.
-
- * macterm.c (mac_query_char_extents): Don't return glyph ID if layout
- adjustment is needed.
- (mac_load_query_font): Check if width and height are positive.
-
-2006-10-14 Richard Stallman <rms@gnu.org>
-
- * sysdep.c (init_sys_modes): Delete DEFVAR_LISP in the wrong place.
-
-2006-10-13 Chong Yidong <cyd@stupidchicken.com>
-
- * xdisp.c (decode_mode_spec): Ignore %c and %l constructs in frame
- title.
-
-2006-10-12 Chong Yidong <cyd@stupidchicken.com>
-
- * keymap.c (Fkey_binding): Check Lisp_Object types before doing
- XCAR and XINT.
-
-2006-10-12 Romain Francoise <romain@orebokech.com>
-
- * image.c (xbm_read_bitmap_data): Delete extra semicolon.
-
-2006-10-10 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * eval.c: Include xterm.h for x_fully_uncatch_errors and friends.
-
- * dispextern.h: Declare x_create_bitmap_from_xpm_data.
-
- * xterm.c (x_check_expected_move): Remove unused var `count'.
-
- * xmenu.c (syms_of_xmenu): Use Ffset rather than Fdefalias, since
- Fdefalias is not declared in any *.h file.
-
-2006-10-09 Chong Yidong <cyd@stupidchicken.com>
-
- * dispnew.c (sit_for): Sit forever if TIMEOUT is t.
-
- * keyboard.c (command_loop_1): Handle non-number values of
- `minibuffer-message-timeout'.
- (Fexecute_extended_command): Fix typo.
-
- * minibuf.c (temp_echo_area_glyphs): Sit for
- `minibuffer-message-timeout' seconds.
-
-2006-10-08 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (mac_draw_image_string, mac_draw_image_string_16):
- Add argument OVERSTRIKE_P.
- (mac_draw_string_common, mac_draw_image_string_cg): Likewise.
- Support overstrike.
- (mac_draw_string, mac_draw_string_16): Remove functions.
- (x_draw_glyph_string_foreground): Use overstrike when needed.
- (x_draw_composite_glyph_string_foreground): Likewise.
- Use mac_draw_image_string_16 instead of mac_draw_string_16.
- (mac_load_query_font): Rename from XLoadQueryFont. Take argument
- F instead of DPY. All uses changed. Don't save/restore font.
-
-2006-10-07 Ralf Angeli <angeli@caeruleus.net>
-
- * w32fns.c (w32_createwindow): Honour left and top positions if
- supplied explicitly.
-
-2006-10-06 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (pos_visible_p): Fix value when EOB is visible.
-
-2006-10-05 Chong Yidong <cyd@stupidchicken.com>
-
- * frame.c (Qinhibit_face_set_after_frame_default): New var.
- (syms_of_frame): Initialize it.
- (x_set_frame_parameters): Avoid resetting :font attributes to the
- new-frame defaults.
-
-2006-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * lisp.h (clear_regexp_cache): Declare.
-
- * search.c (compile_pattern): Only check `cp->syntax_table' if needed.
- (compile_pattern_1): Remember `used_syntax' in `cp->syntax_table'.
- (clear_regexp_cache): Only flush those regexps which depend on
- a syntax-table.
-
- * regex.c (regex_compile): Set the new `used_syntax' bit.
-
- * regex.h: Remove file local variables.
- (struct re_pattern_buffer): New field `used_syntax'.
-
-2006-10-03 Kim F. Storm <storm@cua.dk>
-
- * process.c (list_processes_1): Run sentinels before removing dead
- processes. Also remove `closed' network connections.
-
-2006-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xdisp.c (handle_fontified_prop): Don't fontify at EOB.
-
-2006-09-30 Eli Zaretskii <eliz@gnu.org>
-
- * config.in: Regenerated.
-
-2006-09-29 Juri Linkov <juri@jurta.org>
-
- * buffer.c (syms_of_buffer): Reorder coding systems in the
- docstring of %z to the real order displayed in the modeline.
-
-2006-09-28 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keymap.c (Fdefine_key): Yet another int/Lisp_Object mixup (YAILOM).
-
-2006-09-26 Chong Yidong <cyd@stupidchicken.com>
-
- * indent.c (Fvertical_motion): Do move back if the Lisp string
- being displayed contains newlines.
-
-2006-09-26 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (mac_compute_glyph_string_overhangs, XLoadQueryFont)
- [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw before QDTextBounds.
-
-2006-09-26 Kenichi Handa <handa@m17n.org>
-
- * keymap.c (Fsingle_key_description): For an invalid char, return
- "Invalid char code NNNNN".
-
-2006-09-25 Chong Yidong <cyd@stupidchicken.com>
-
- * callint.c (Fcall_interactively): Doc fix.
-
-2006-09-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (x_underline_at_descent_line): New variable.
- (syms_of_macterm): DEFVAR_BOOL it.
- (x_draw_glyph_string): Use it.
- (XLoadQueryFont): Calculate min_bounds.descent and max_bounds.descent.
-
-2006-09-25 Kenichi Handa <handa@m17n.org>
-
- * keymap.c (Fsingle_key_description): Return unique names for
- generic characters.
-
-2006-09-24 Richard Stallman <rms@gnu.org>
-
- * search.c (compile_pattern_1): Don't BLOCK_INPUT.
-
-2006-09-24 Eli Zaretskii <eliz@gnu.org>
-
- * makefile.w32-in ($(BLD)/fns.$(O), $(BLD)/w32proc.$(O)):
- Depend on nt/inc/langinfo.h and nt/inc/nl_types.h.
-
- * w32proc.c (nl_langinfo): New function.
-
- * w32fns.c (w32-pass-alt-to-system, w32-alt-is-meta)
- (w32-pass-lwindow-to-system, w32-enable-num-lock)
- (w32-enable-caps-lock, w32-scroll-lock-modifier)
- (w32-lwindow-modifier, w32-rwindow-modifier)
- (w32-apps-modifier, w32-mouse-button-tolerance): Doc fix.
-
-2006-09-23 Juanma Barranquero <lekktu@gmail.com>
-
- * minibuf.c (Finternal_complete_buffer, Fread_minibuffer)
- (Fdisplay_completion_list): Fix typos in docstrings.
-
-2006-09-23 Romain Francoise <romain@orebokech.com>
-
- * s/gnu-linux.h (MAIL_USE_FLOCK): Check for HAVE_LIBLOCKFILE too.
-
-2006-09-23 Kenichi Handa <handa@m17n.org>
-
- * keymap.c (Fmap_keymap): Docstring mentions about generic character.
-
-2006-09-22 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * regex.c (analyse_first): For eight-bit-control chars, mark both the
- char's value and its leading byte in the fastmap.
- (re_search_2): When fast-scanning without translation, be careful to
- check that we only match the leading byte of a multibyte char.
-
- * charset.h (PREV_CHAR_BOUNDARY): Make it work from within a char's
- byte sequence.
- (AT_CHAR_BOUNDARY): New macro.
-
-2006-09-22 Kenichi Handa <handa@m17n.org>
-
- * fns.c (optimize_sub_char_table): Don't optimize a sub-char-table
- whose default value is non-nil.
-
-2006-09-22 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_get_file_with_chooser): Only show C-l help for
- Gtk+ versions < 2.10.
-
- * xfns.c (syms_of_xfns): Fix typo in help text for
- x-gtk-file-dialog-help-text.
-
-2006-09-21 Kim F. Storm <storm@cua.dk>
-
- * fns.c (Fmemq): Refill doc string.
- (Fmemql): New defun, like memq but using eql.
- (syms_of_fns): Defsubr it.
-
-2006-09-20 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (pos_visible_p): CHARPOS < 0 means return info for
- last visible glyph in window.
-
- * window.c (Fset_window_hscroll, Fwindow_line_height):
- Doc fix. Use "off-window" instead of "off-screen".
- (Fpos_visible_in_window_p): Likewise.
- If POS is t, return info for last visible glyph in window.
-
-2006-09-19 Chong Yidong <cyd@stupidchicken.com>
-
- * search.c (struct regexp_cache): New entry syntax_table.
- (compile_pattern_1): Set it.
- (syms_of_search): Initialize it.
- (compile_pattern): Require the syntax_table entry of the cache
- element to match the current syntax table entry.
-
-2006-09-19 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * window.c (Fwindow_end): Fix recent change.
-
-2006-09-19 Kim F. Storm <storm@cua.dk>
-
- * window.c (Fset_window_hscroll, Fpos_visible_in_window_p):
- Doc fix. Use "off-screen" instead of "invisible".
- (Fwindow_line_height): Make line numbers 0-based. Make line arg
- optional; if nil, use current cursor row. Handle text terminals
- properly. Return nil if non-interactive or pseudo-window.
-
-2006-09-19 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keymap.c: Include alloca.h if available.
- (Fkey_binding): Only use AREF after checking it's a vector.
- Remove unused var `window'.
-
-2006-09-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * emacs.c (shut_down_emacs) [!subprocesses]: Don't set
- inhibit_sentinels.
-
- * mac.c [!MAC_OSX] (select): Fix argument name.
-
- * macmenu.c (enum mac_menu_kind, min_menu_id): New enumerator and
- menu ID for Apple menu.
- (menubar_selection_callback): Remove function.
- (find_and_call_menu_selection): New function from xmenu.c.
- (x_activate_menubar): Use it.
- (set_frame_menubar): Don't use f->output_data.mac->menubar_active.
-
- * macterm.c (menubar_selection_callback): Remove extern.
- (M_APPLE): Change to 234.
- (do_apple_menu) [!TARGET_API_MAC_CARBON]: Make non-static.
- (do_menu_choice): Remove function.
-
- * macterm.h (struct mac_output): Remove member menubar_active.
- (do_menu_choice): Remove extern.
- (do_apple_menu) [!TARGET_API_MAC_CARBON]: Add extern.
-
-2006-09-18 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (syms_of_xfns): Rename x_gtk_show_chooser_help_text to
- x_gtk_file_dialog_help_text.
-
- * gtkutil.c (xg_uses_old_file_dialog): Rename x-use-old-gtk-file-dialog
- to x-gtk-use-old-file-dialog.
- (xg_get_file_with_chooser): Rename x_gtk_show_chooser_help_text to
- x_gtk_file_dialog_help_text.
-
- * xfns.c (syms_of_xfns): Ditto.
-
-2006-09-18 Kim F. Storm <storm@cua.dk>
-
- * window.c (Fwindow_line_visibility): Remove.
- (Fwindow_line_height): New defun replacing it.
- (syms_of_window): Defsubr it.
-
-2006-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c (SELECT_USE_CFSOCKET) [MAC_OSX]: Set default to 1.
- [MAC_OSX] (sys_select) [SELECT_USE_CFSOCKET]: Fix pointer type.
-
-2006-09-17 Jay Belanger <belanger@truman.edu>
-
- * gmalloc.c:
- * md5.c:
- * md5.h:
- * strftime.c: Replace "GNU Library General Public License" by "GNU
- General Public License" throughout.
-
-2006-09-17 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (update_text_area): Undo 2000-07-18 change.
- Always redrawing whole row if line has mouse-face in it causes
- excessive flickering of the mode line.
-
-2006-09-17 Chong Yidong <cyd@stupidchicken.com>
-
- * search.c (clear_regexp_cache): New function.
-
- * syntax.c (Fmodify_syntax_entry): Clear regexp cache.
-
-2006-09-16 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_get_file_with_chooser):
- Check x-gtk-show-chooser-help-text before adding the help text.
-
- * xfns.c (syms_of_xfns): New variable: x-gtk-show-chooser-help-text.
-
- * gtkutil.c (get_utf8_string): Try harder to convert to UTF8. Gtk+
- will simply crash if we fail.
-
-2006-09-16 Richard Stallman <rms@gnu.org>
-
- * regex.c (re_compile_pattern): Set gl_state.current_syntax_table.
-
-2006-09-15 Kim F. Storm <storm@cua.dk>
-
- * window.c (Fwindow_line_visibility): New defun for line-move-partial.
- (syms_of_window): Defsubr it.
- (Fwindow_end): Use window's buffer rather than current buffer.
-
-2006-09-15 Jay Belanger <belanger@truman.edu>
-
- * COPYING: Replace "Library Public License" by "Lesser Public
- License" throughout.
-
-2006-09-15 David Kastrup <dak@gnu.org>
-
- * Makefile.in (keymap.o): Add "keymap.h" and "window.h" dependencies.
-
- * keymap.c: include "window.h".
- (Fcommand_remapping): New optional POSITION argument.
- (Fkey_binding): New optional POSITION argument. Completely rework
- handling of mouse clicks to get the same order of keymaps as
- `read-key-sequence' and heed POSITION. Also temporarily switch
- buffers to location of mouse click and back.
-
- * keyboard.c (command_loop_1): Adjust call of `Fcommand_remapping'
- for additional argument.
- (parse_menu_item): Adjust call of `Fkey_binding' for additional
- argument.
- (read_key_sequence): If there are both `local-map' and `keymap'
- text properties at some buffer position, heed both.
-
- * keymap.h: Declare additional optional arguments of
- `Fcommand_remapping' and `Fkey_binding'.
-
-2006-09-15 Juanma Barranquero <lekktu@gmail.com>
-
- * indent.c (Fcurrent_column, Findent_to): Fix typos in docstring.
-
-2006-09-14 Andreas Schwab <schwab@suse.de>
-
- * print.c: Whitespace fixup.
-
-2006-09-14 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (produce_image_glyph): Automatically crop wide images at
- right window edge so we can draw the cursor on the same row to
- avoid confusing redisplay by placing the cursor outside the visible
- window area.
-
-2006-09-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * xterm.c (x_initialize): Don't install Xt event timer here.
- (x_timeout_atimer_activated_flag): New var.
- (x_activate_timeout_atimer): New function to install Xt timer.
- (x_send_scroll_bar_event, x_process_timeouts): Use it.
-
- * xmenu.c (x_menu_set_in_use, popup_activate_callback)
- (create_and_show_popup_menu, create_and_show_dialog): Use it.
-
- * xterm.h (x_activate_timeout_atimer): Add prototype.
-
-2006-09-13 Richard Stallman <rms@gnu.org>
-
- * print.c (print_string): When printcharfun is t,
- copy string contents and call strout on the copy.
-
- * keyboard.c (read_char): If end_time specified, don't put the
- event into this_command_keys.
- (read_key_sequence): If Voverriding_terminal_local_map is specified,
- don't check Voverriding_local_map at all.
-
-2006-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * textprop.c (Fnext_property_change, Fnext_single_property_change)
- (Fprevious_property_change, Fprevious_single_property_change):
- Avoid changing limit, so we can correctly catch the case where the
- property is constant up to limit.
-
-2006-09-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (mac_window) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
- * macterm.c (XTread_socket) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
- Undo 2006-09-08 change.
-
-2006-09-11 Chong Yidong <cyd@stupidchicken.com>
-
- * keymap.c (Fkey_binding): Use string position for string objects.
-
-2006-09-11 Kim F. Storm <storm@cua.dk>
-
- * keymap.c (Fkey_binding): Fix last change.
-
- * editfns.c (Fmessage): Recommend using (message "%s" ...).
-
-2006-09-10 Chong Yidong <cyd@stupidchicken.com>
-
- * keymap.c (Fkey_binding): Check for local keymap for mouse click
- events.
-
-2006-09-10 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (Finput_pending_p): Check Vunread_input_method_events
- and Vunread_post_input_method_events.
-
- * dispnew.c (Fredisplay): Document return value.
-
-2006-09-10 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (Fx_close_connection): Call xg_display_close when USE_GTK.
-
- * gtkutil.c (xg_display_close): Always change default display if needed,
- check for < Gtk+ version 2.10 before calling gdk_display_close.
-
-2006-09-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c [MAC_OSX] (sys_select): Check argument `nfds' more rigidly.
- Make variable `ofds' static. Remove variable `maxfd'.
-
- * macfns.c (Fx_file_dialog): Remove unused variable `f'.
- Call check_mac.
-
- * macmenu.c (Vmenu_updating_frame, syms_of_macmenu):
- * w32menu.c (Vmenu_updating_frame, syms_of_w32menu):
- Apply 2006-09-08 change for xmenu.c.
-
- * xfns.c (Fx_file_dialog): Call check_x.
-
-2006-09-10 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (get_window_cursor_type): Use hollow cursor on
- non-transparent images.
-
-2006-09-09 Eli Zaretskii <eliz@gnu.org>
-
- * editfns.c (Fsystem_name): Mention "host" in the doc string.
- (syms_of_editfns) <system-name>: Likewise.
-
-2006-09-08 Martin Rudalics <rudalics@gmx.at>
-
- * xdisp.c (mouse_autoselect_window): Remove.
- (Vmouse_autoselect_window): New variable. DEFVAR_LISP it.
-
- * dispextern.h (mouse_autoselect_window): Remove extern.
- (Vmouse_autoselect_window): Add extern.
-
- * macterm.c (XTread_socket): Test Vmouse_autoselect_window
- instead of mouse_autoselect_window.
-
- * msdos.c (dos_rawgetc): Likewise.
-
- * w32term.c (w32_read_socket): Likewise.
-
- * xterm.c (handle_one_xevent): Likewise.
-
-2006-09-08 Richard Stallman <rms@gnu.org>
-
- * xdisp.c (Vmenu_updating_frame): Define here.
- (syms_of_xdisp): DEFVAR it here.
- (update_menu_bar): Always return hooks_run.
- Set Vmenu_updating_frame.
-
- * xdisp.c (redisplay_internal): Test Vinhibit_redisplay
- before calculating SELECTED_FRAME.
-
- * xmenu.c (Vmenu_updating_frame): Don't define here.
- (syms_of_xmenu): Don't DEFVAR it here.
-
- * xterm.c (x_error_quitter): For BadName error, just return.
-
- * eval.c (find_handler_clause): Give up on debugger if INPUT_BLOCKED_P.
-
- * casetab.c (init_casetab_once): Call set_case_table.
-
- * emacs.c (shut_down_emacs): Set inhibit_sentinels.
-
- * process.c (inhibit_sentinels): New variable.
- (exec_sentinel): Test inhibit_sentinels.
- (init_process): Initialize it.
-
- * process.h (inhibit_sentinels): Add decl.
-
- * search.c (looking_at_1, string_match_1, search_command):
- Make syntax table's canon table point to eqv table.
-
-2006-09-08 Andreas Schwab <schwab@suse.de>
-
- * print.c (strout): Fix whitespace.
-
-2006-09-08 Kim F. Storm <storm@cua.dk>
-
- * xterm.c (x_draw_glyph_string): Fix 2006-08-24 change.
-
-2006-09-08 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c [!MAC_OSX]: Don't include keyboard.h.
- [!MAC_OSX] (select): Try detect_input_pending before ReceiveNextEvent
- in the same BLOCK_INPUT block, in case that some input has already
- been read asynchronously. Pretend to be interrupted by a signal
- if some input is available.
- [MAC_OSX] (select_and_poll_event, sys_select): Likewise.
- (SELECT_POLLING_PERIOD_USEC) [SELECT_USE_CFSOCKET]: Change to 100000.
- Now used for ReceiveNextEvent timeout instead of select timeout.
- (EVENT_CLASS_SOCK) [SELECT_USE_CFSOCKET]: Remove macro.
- [SELECT_USE_CFSOCKET] (socket_callback): Add non-blocking connect
- support. Quit event loop.
- [MAC_OSX] (sys_select) [SELECT_USE_CFSOCKET]: Add non-blocking
- connect support. Reuse previously allocated CFRunLoopSource.
- (Fmac_process_hi_command) [TARGET_API_MAC_CARBON]: New function.
- (syms_of_mac) [TARGET_API_MAC_CARBON]: Defsubr it.
-
- * macfns.c (mac_window) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
- Specify kWindowAsyncDragAttribute.
-
- * macterm.c (mac_handle_origin_change, mac_handle_size_change)
- (mac_get_ideal_size): New functions.
- (x_set_offset, x_set_window_size, x_make_frame_visible)
- (do_zoom_window, mac_handle_window_event, XTread_socket): Use them.
- (install_window_handler, mac_handle_window_event)
- [USE_CARBON_EVENTS]: Handle kEventWindowGetIdealSize and
- kEventWindowBoundsChanged.
- (XTread_socket) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]: Don't call
- DragWindow.
-
-2006-09-07 Andreas Schwab <schwab@suse.de>
-
- * m/ibms390x.h (START_FILES, LIB_STANDARD): Override to
- use lib64 instead of lib.
-
-2006-09-06 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * Makefile.in: Avoid double quotes when possible.
-
-2006-09-06 Kenichi Handa <handa@m17n.org>
-
- * editfns.c (Fformat_time_string): Use make_unibyte_string to make
- a Lisp string from the result of emacs_memftimeu call.
-
-2006-09-06 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (pos_visible_p): Remove exact_mode_line_heights_p arg;
- so calculate heights even when pos-visible-in-window-p is called
- with partially = t. Don't overshoot last_visible_y in move_it_to.
- Return row height and row number in new rowh and vpos args.
- (cursor_row_fully_visible_p): First line is always "fully visible".
- (try_window): Don't clear matrix if vscrolled.
-
- * lisp.h (pos_visible_p): Update prototype.
-
- * window.c (Fpos_visible_in_window_p): Adapt to new pos_visible_p.
- Return row height and row number for partially visible rows.
- Modify return value to a 2 element list for fully visible rows and
- 6 for partially visible row.
- (window_scroll_pixel_based): Use pos_visible_p directly instead of
- Fpos_visible_in_window_p. Fix auto vscrolling for partially
- visible lines. Only vscroll backwards if already vscrolled
- forwards. Unconditionally vscroll forwards if PT is first (and
- only) line. Set new window start instead of scrolling at
- start/end of tall line.
-
-2006-09-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (install_window_handler, mac_handle_window_event)
- [USE_CARBON_EVENTS]: Handle kEventWindowClose.
- [USE_MAC_TSM] (mac_handle_text_input_event): Set modifiers for
- ASCII keystroke event.
-
-2006-09-04 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_get_file_with_chooser): Don't mention specific keys in
- the file chooser message. Only call gtk_file_chooser_set_current_name
- when action is SAVE.
-
-2006-09-04 Andreas Schwab <schwab@suse.de>
-
- * Makefile.in: Double all single and back quotes in C-style
- comments to help fontifier.
-
-2006-09-03 Jason Rumney <jasonr@gnu.org>
-
- * w32.c (shutdown_handler): New function to exit cleanly on shutdown.
- (globals_of_w32): Register it as a signal handler.
-
-2006-09-02 Juri Linkov <juri@jurta.org>
-
- * marker.c (Fmarker_position): Doc fix.
-
-2006-09-03 Eli Zaretskii <eliz@gnu.org>
-
- * window.c (syms_of_window) <split-height-threshold>:
- <window-min-height, window-min-width>: Doc fix.
-
-2006-09-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_get_file_with_chooser): Change file chooser message
- for writing files. Call gtk_file_chooser_set_current_name to keep
- default filename.
-
- * minibuf.c (Finternal_complete_buffer): Move after DEFUN:s it calls
-
-2006-09-02 Jindrich Makovicka <makovick@gmail.com> (tiny change)
-
- * fns.c (concat) [__GNUC__]: Declare with
- `__attribute__((noinline))'.
-
- * eval.c (apply1, call2) [__GNUC__]: Declare with
- `__attribute__((noinline))'.
-
-2006-09-02 Stuart D. Herring <herring@lanl.gov>
-
- * minibuf.c (Finternal_complete_buffer): New function.
- (syms_of_minibuf): Defsubr it.
- (Fread_buffer): Use it, instead of Vbuffer_alist.
-
-2006-09-01 Martin Rudalics <rudalics@gmx.at>
-
- * buffer.h (struct buffer_text): New field chars_modiff.
- (CHARS_MODIFF, BUF_CHARS_MODIFF): New macros.
- * buffer.c (Fbuffer_chars_modified_tick): New function returning
- value of BUF_CHARS_MODIFF.
- (syms_of_buffer): Defsubr it.
- (Fget_buffer_create): Initialize BUF_CHARS_MODIFF.
- * insdel.c (modify_region): New argument preserve_chars_modiff.
- Set CHARS_MODIFF to MODIFF provided preserve_chars_modiff is zero.
- (insert_1_both, insert_from_string_1, insert_from_buffer_1)
- (adjust_after_replace, adjust_after_replace_noundo)
- (replace_range, replace_range_2, del_range_2): Reset CHARS_MODIFF.
- * lisp.h (modify_region): Add fourth argument in extern.
- * casefiddle.c (casify_region): Call modify_region with fourth
- argument zero to assert that CHARS_MODIFF is updated.
- * editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
- (Ftranspose_regions): Likewise.
- * textprop.c (Fadd_text_properties, Fset_text_properties)
- (Fremove_text_properties, Fremove_list_of_text_properties):
- Call modify_region with fourth argument 1 to avoid that
- CHARS_MODIFF is updated.
-
-2006-08-31 Richard Stallman <rms@gnu.org>
-
- * editfns.c (Fformat): Don't sign-extend for %o or %x.
-
-2006-08-29 Chong Yidong <cyd@stupidchicken.com>
-
- * indent.c (Fvertical_motion): Don't move back if we were
- displaying a Lisp string, either.
-
-2006-08-28 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (get_window_cursor_type) [!HAVE_WINDOW_SYSTEM]:
- Don't attempt to replace cursor on image glyphs.
-
-2006-08-28 Kenichi Handa <handa@m17n.org>
-
- * coding.c (Fdetect_coding_region, Fdetect_coding_string):
- Fix docstring about ISO-2022 control characters.
-
-2006-08-28 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (get_window_cursor_type): Replace BOX cursor on images
- with a hollow box cursor if image is larger than 32x32 (or the default
- frame font if that is bigger). Replace any other cursor on images
- with hollow box cursor, as redisplay doesn't support bar and hbar
- cursors on images.
-
-2006-08-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * alloc.c (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Undo previous
- change. Move mutex lock/unlock operations inside BLOCK_INPUT.
-
- * dired.c (directory_files_internal_unwind, directory_files_internal)
- (file_name_completion): Add BLOCK_INPUT around opendir/closedir.
-
- * image.c [MAC_OS] (image_load_qt_1): Use ComponentResult instead
- of OSErr.
-
- * keyboard.c (in_sighandler): Remove variable.
- (Fcurrent_idle_time): Add missing `doc:'.
- (input_available_signal, init_keyboard): Undo previous change.
-
- * keyboard.h (in_sighandler): Remove extern.
-
- * mac.c (create_apple_event_from_event_ref, select)
- (Fmac_get_file_creator, Fmac_get_file_type, Fmac_set_file_creator)
- (Fmac_set_file_type, cfstring_create_normalized)
- (mac_get_system_locale, select_and_poll_event, sys_select):
- Use OSStatus instead of OSErr.
-
- * macfns.c [TARGET_API_MAC_CARBON] (mac_update_proxy_icon):
- Don't use FRAME_FILE_NAME. Use (FS)UpdateAlias.
- (Fx_create_frame): Apply 2006-07-03 for xfns.c.
-
- * macselect.c (get_scrap_from_symbol, clear_scrap, put_scrap_string)
- (put_scrap_private_timestamp, scrap_has_target_type, get_scrap_string)
- (get_scrap_private_timestamp, get_scrap_target_type_list)
- (x_own_selection, x_get_foreign_selection)
- (Fx_disown_selection_internal, Fx_selection_owner_p)
- (Fx_selection_exists_p): Use OSStatus instead of OSErr.
-
- * macterm.c (mac_draw_string_common, mac_query_char_extents)
- (x_iconify_frame, XLoadQueryFont, install_window_handler)
- (mac_handle_command_event, init_command_handler, init_menu_bar):
- Use OSStatus instead of OSErr.
- (x_free_frame_resources) [TARGET_API_MAC_CARBON]: Don't use
- FRAME_FILE_NAME.
- (x_query_font): Apply 2006-08-04 change for xterm.c.
- (Qhi_command): Rename from Qhicommand. All uses changed.
-
- * macterm.h (struct mac_output) [TARGET_API_MAC_CARBON]: Remove member
- file_name.
- (FRAME_FILE_NAME): Remove macro.
- (install_window_handler, create_apple_event_from_event_ref):
- Return OSStatus instead of OSErr.
-
-2006-08-26 Kim F. Storm <storm@cua.dk>
-
- * buffer.c (Fset_buffer_multibyte):
- * editfns.c (Fcurrent_time, Fget_internal_run_time):
- * macfns.c (Fxw_color_values):
- * w32fns.c (Fxw_color_values):
- * xfns.c (Fxw_color_values): Simplify; use list3.
-
- * fileio.c (Fmake_directory_internal, Fdelete_directory)
- (Fdelete_file): Simplify; use list1.
- (Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
- Simplify; remove NO_ARG_ARRAY stuff, use list2.
-
-2006-08-25 Richard Stallman <rms@gnu.org>
-
- * buffer.c (Fswitch_to_buffer): Fix previous change.
-
-2006-08-25 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (Fcurrent_idle_time): Simplify.
-
-2006-08-25 Richard Stallman <rms@gnu.org>
-
- * fns.c (sxhash_string): Rotate properly; don't lose bits.
-
-2006-08-24 Francesc Rocher <francesc.rocher@gmail.com>
-
- * xdisp.c (overline_margin): New variable.
- (x_produce_glyphs): Use it.
- (syms_of_xdisp): DEFVAR_INT it.
-
- * xterm.c (x_underline_at_descent_line): New variable.
- (syms_of_xterm): DEFVAR_BOOL it.
- (x_draw_glyph_string): Use it.
- Draw underline and overline up to the end of line if the face
- extends to the end of line.
-
- * macterm.c: Likewise.
-
- * w32term.c: Likewise.
-
-2006-08-24 Nick Roberts <nickrob@snap.net.nz>
-
- * buffer.c (Fswitch_to_buffer): Move buffer to front of
- buffer-alist if necessary.
-
-2006-08-22 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (update_tool_bar): Redisplay toolbar also when only
- number of items changes.
-
-2006-08-22 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * buffer.c (Fset_buffer_multibyte): Record proper undo entry.
-
-2006-08-21 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * keyboard.c: Clarify difference between in_sighandler and
- handling_signal.
-
-2006-08-21 Kim F. Storm <storm@cua.dk>
-
- * macterm.c (x_draw_stretch_glyph_string):
- * w32term.c (x_draw_stretch_glyph_string):
- * xterm.c (x_draw_stretch_glyph_string): It is ok to draw a
- stretch glyph in left marginal areas on header and mode lines.
-
-2006-08-21 Kenichi Handa <handa@m17n.org>
-
- * keyboard.c (syms_of_keyboard): Docstring of
- Vunread_post_input_method_events and Vunread_input_method_events
- fixed.
-
-2006-08-20 Chong Yidong <cyd@stupidchicken.com>
-
- * keyboard.c (show_help_echo): Preserve mouse movement flag if
- tracking mouse.
-
-2006-08-20 Richard Stallman <rms@gnu.org>
-
- * xfaces.c (load_pixmap): Add quotes in error message.
-
- * keyboard.c (Fcurrent_idle_time): New function.
- (syms_of_keyboard): defsubr it.
-
-2006-08-18 Nick Roberts <nickrob@snap.net.nz>
-
- * window.c (Fset_window_fringes): Do nothing on a tty.
- (Fwindow_fringes): Put ? operator after the line break.
-
-2006-08-16 Andreas Schwab <schwab@suse.de>
-
- * print.c (debug_output_compilation_hack): Fix return type.
-
-2006-08-16 Richard Stallman <rms@gnu.org>
-
- * print.c (debug_output_compilation_hack): New function.
-
-2006-08-16 Kenichi Handa <handa@m17n.org>
-
- * fileio.c (choose_write_coding_system): Use LF for end-of-line
- in auto-saving.
-
-2006-08-15 Chong Yidong <cyd@stupidchicken.com>
-
- * keyboard.c (read_char): Don't change idle timer state at all if
- end_time is supplied.
-
-2006-08-15 Kenichi Handa <handa@m17n.org>
-
- * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New arg RET. If SRC
- is exhausted, return with RET.
- (detect_coding_emacs_mule, detect_coding_iso2022)
- (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
- (detect_coding_utf_16, detect_coding_ccl): Adjusted for the above
- change.
-
-2006-08-14 Chong Yidong <cyd@stupidchicken.com>
-
- * keyboard.c (read_char): Don't reset idle timers if a time limit
- is supplied.
-
-2006-08-14 Kim F. Storm <storm@cua.dk>
-
- * .gdbinit (pitx): Print iterator position.
- Limit stack dump in case iterator is not initialized.
-
-2006-08-12 Eli Zaretskii <eliz@gnu.org>
-
- * frame.c (Fmouse_position, Fmouse_pixel_position)
- (Fset_mouse_position, Fset_mouse_pixel_position): Doc fix.
-
-2006-08-11 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xselect.c (Fx_register_dnd_atom): New function.
- (syms_of_xselect): Defsubr it.
- (x_handle_dnd_message): Check that message_type is in
- dpyinfo->x_dnd_atoms before generating lisp event.
-
- * xterm.h (struct x_display_info): Add x_dnd_atoms* to keep track
- of drag and drop Atoms.
-
- * xterm.c (x_term_init): Initialize dpyinfo->x_dnd_atoms*
-
-2006-08-10 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * keyboard.c: Define in_sighandler.
- (input_available_signal): Set in_sighandler.
- (init_keyboard): Initialize in_sighandler.
-
- * keyboard.h: Declare in_sighandler.
-
- * alloc.c (UNBLOCK_INPUT_ALLOC, BLOCK_INPUT_ALLOC): Use in_sighandler
- to check if mutex should be locked or not.
-
-2006-08-09 Richard Stallman <rms@gnu.org>
-
- * keyboard.c (keyremap_step): No-op if fkey->parent = nil.
- (read_key_sequence): Always start fkey.start and fkey.end at 0,
- and likewise for keytran.
-
-2006-08-09 Kenichi Handa <handa@m17n.org>
-
- * coding.c (syms_of_coding): Improve the docstring
- of file-coding-system-alist.
-
-2006-08-07 Andreas Schwab <schwab@suse.de>
-
- * puresize.h (BASE_PURESIZE): Increase to 1120000.
-
-2006-08-06 Chong Yidong <cyd@stupidchicken.com>
-
- * buffer.c (Vchange_major_mode_hook, Qchange_major_mode_hook): New vars.
- (Fkill_all_local_variables): Use it.
- (syms_of_buffer): Defvar it.
-
-2006-08-05 Eli Zaretskii <eliz@gnu.org>
-
- * w32.c (w32_valid_pointer_p): New function.
-
- * w32.h: Add prototype for w32_valid_pointer_p.
-
- * alloc.c: Include w32.h.
- (valid_lisp_object_p) [WINDOWSNT]: Call w32_valid_pointer_p to do
- the job.
-
- * keyboard.c (kbd_buffer_get_event): Return Qnil when current time
- is exactly equal to end_time, not only when it is past that.
-
-2006-08-04 Chong Yidong <cyd@stupidchicken.com>
-
- * keyboard.c (read_char): Rebalance specpdl after receiving jump.
-
- * process.c: Reapply 2006-08-01 change.
-
-2006-08-04 Eli Zaretskii <eliz@gnu.org>
-
- * w32fns.c (w32_query_font): Fix last change: use stricmp.
-
-2006-08-04 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * editfns.c (Fsubst_char_in_region): Redo the setup work after running
- the before-change-functions since they may have altered the buffer.
-
-2006-08-04 Ralf Angeli <angeli@caeruleus.net>
-
- * w32fns.c (w32_createwindow): Handle -geometry command line option
- and the geometry settings in the Registry.
-
-2006-08-04 Kenichi Handa <handa@m17n.org>
-
- * w32fns.c (w32_query_font): Compare names by ignoring case.
-
- * xterm.c (x_query_font): Compare names by ignoring case.
-
-2006-08-03 Jason Rumney <jasonr@gnu.org>
-
- * w32menu.c (w32_menu_show, w32_dialog_show): Call Fsignal to quit
- when no option selected.
-
-2006-08-03 Chong Yidong <cyd@stupidchicken.com>
-
- * process.c: Revert last change.
-
-2006-08-01 Kim F. Storm <storm@cua.dk>
-
- * process.c (wait_reading_process_output_unwind): New function.
- Restores waiting_for_user_input_p to saved value.
- (wait_reading_process_output): Unwind protect waiting_for_user_input_p
- instead of save/restore old value on stack.
-
-2006-07-30 Thien-Thi Nguyen <ttn@gnu.org>
-
- * editfns.c: Undo 2006-06-27 change.
-
-2006-07-29 Eli Zaretskii <eliz@gnu.org>
-
- * coding.c (Ffind_operation_coding_system): Revert the change from
- 2006-05-29.
-
- * alloc.c [WINDOWSNT]: Include fcntl.h, to fix last change.
-
-2006-07-28 Richard Stallman <rms@gnu.org>
-
- * xfaces.c (lookup_named_face, Fdisplay_supports_face_attributes_p):
- Add conditional aborts for clarity.
-
- * xdisp.c (update_menu_bar): New arg HOOKS_RUN. Callers changed.
- Used to avoid running the hooks over and over for each frame.
- (prepare_menu_bars): Pass value from update_menu_bar
- as HOOKS_RUN of next call.
-
- * keyboard.c (safe_run_hooks_1): Don't crash if Vrun_hooks is nil.
-
-2006-07-28 Kim F. Storm <storm@cua.dk>
-
- * alloc.c (valid_pointer_p): New function (from valid_lisp_object_p).
- (valid_lisp_object_p): Use it to check for valid SUBRP obj.
-
-2006-07-26 Chong Yidong <cyd@stupidchicken.com>
-
- * keyboard.c (read_char): New arg END_TIME specifying timeout.
- All callers changed. Turn off echoing if END_TIME is non-NULL.
- (kbd_buffer_get_event): New arg END_TIME.
-
- * lread.c (read_filtered_event): New arg SECONDS to wait until.
- (Fread_char, Fread_event, Fread_char_exclusive): New arg SECONDS.
-
- * lisp.h: Update read-char, read-event, and read_filtered_event
- prototypes.
-
- * keyboard.h: Include systime.h. Update read_char prototype.
-
-2006-07-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * alloc.c (find_string_data_in_pure): New function.
- (make_pure_string): Use it to reuse existing string data if possible.
-
- * puresize.h (BASE_PURESIZE): Decrease to 1102000.
-
-2006-07-22 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keymap.c (Fdefine_key): If the key binding definition looks like an
- XEmacs-style key sequence, convert it to Emacs's format.
-
-2006-07-22 Ralf Angeli <angeli@caeruleus.net>
-
- * w32fns.c (w32_createwindow): If `left' and/or `top' frame
- parameters are bound to some values, use that instead of
- CW_USEDEFAULT.
-
-2006-07-21 Eli Zaretskii <eliz@gnu.org>
-
- * w32.c (convert_time): Use explicit long double constants to
- ensure long double arithmetics is used throughout.
-
-2006-07-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp): New vars.
- (init_alloc_once): Initialize them.
- (pure_alloc): Allocate non-Lisp objects from the end of pure storage
- without alignment.
-
- * puresize.h (BASE_PURESIZE): Decrease to 1141000.
-
-2006-07-18 Francis Litterio <franl@world.std.com>
-
- * w32term.c (x_calc_absolute_position): Fix frame positioning
- with negative X/Y coordinates.
-
-2006-07-18 Dan Nicolaescu <dann@ics.uci.edu>
-
- * xterm.c (x_connection_closed, x_error_quitter): Mark as NO_RETURN.
-
- * textprop.c (text_read_only): Likewise.
-
- * lread.c (end_of_file_error): Likewise.
-
- * lisp.h (circular_list_error, memory_full, buffer_memory_full):
- Likewise.
-
- * eval.c (unwind_to_catch): Likewise.
-
- * buffer.h (buffer_slot_type_mismatch): Likewise.
-
-2006-07-18 Kim F. Storm <storm@cua.dk>
-
- Cleanup Fsignal calls that never returns; now only use it for Qquit.
-
- * eval.c (xsignal): New func. Like Fsignal, but marked no-return.
- (xsignal0, xsignal1, xsignal2, xsignal3): New no-return functions.
- (signal_error): New no-return function (from xfaces.c).
- (Fthrow): Use xsignal2 instead of Fsignal + abort.
- (error): Use xsignal1 instead of Fsignal + abort.
- (FletX, Flet, grow_specpdl): Use signal_error.
- (Feval, Ffuncall, funcall_lambda): Use xsignal1, xsignal2.
-
- * alloc.c (buffer_memory_full, memory_full): Use xsignal. Remove loop.
- (list1): New function.
-
- * lisp.h (list1): Add EXFUN.
- (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error):
- Add prototypes. Mark them as no-return.
-
- * buffer.c (Fbuffer_local_value, Fbarf_if_buffer_read_only):
- Use xsignal1.
-
- * callint.c (check_mark): Use xsignal0.
-
- * casefiddle.c (casify_object): wrong_type_argument is no-return.
-
- * cmds.c (Fforward_char, Fdelete_char): Use xsignal0.
-
- * coding.c (Fcheck_coding_system): Use xsignal1. Remove loop.
- (Fdefine_coding_system_internal): Use xsignal1.
-
- * data.c (circular_list_error): Use xsignal.
- (wrong_type_argument): Use xsignal2. Don't care about return value.
- (args_out_of_range, args_out_of_range_3): Use xsignal2, xsignal3.
- Remove loop around Fsignal.
- (indirect_variable, Fsymbol_value, set_internal, Fdefault_value)
- (indirect_function, Findirect_function, Fstring_to_number)
- (Fmakunbound, Ffmakunbound, Fsymbol_function, Ffset): Use xsignal1.
- (arith_driver, float_arith_driver, Frem, Fmod, arith_error):
- Use xsignal0.
-
- * doc.c (Fdocumentation): Use xsignal1.
-
- * editfns.c (region_limit, Fget_internal_run_time): Use xsignal0.
-
- * fileio.c (report_file_error): Use xsignal.
- (barf_or_query_if_file_exists, Fcopy_file, Fdelete_file)
- (Finsert_file_contents): Use xsignal2.
- (syms_of_fileio): Use list2, list3.
-
- * floatfns.c (arith_error, range_error, domain_error): Use xsignal2.
- (range_error2, domain_error2): Use xsignal3.
- (rounding_driver, fmod_float): Use xsignal0.
- (float_error): Use xsignal1.
- (matherr): Use xsignal.
-
- * fns.c (Flength): wrong_type_argument is no-return.
- (hashfn_user_defined, Fmake_hash_table): Use signal_error.
- (Fmd5): Use xsignal1.
-
- * frame.c (x_set_line_spacing, x_set_screen_gamma): Use signal_error.
-
- * keyboard.c (recursive_edit_1): Use xsignal1.
-
- * keymap.c (Fmap_keymap): Use xsignal1.
-
- * lread.c (Fload): Use xsignal2, signal_error.
- (end_of_file_error): Use xsignal0, xsignal1.
- (read0): Use xsignal1.
- (invalid_syntax): New error function marked no-return.
- (read_integer, read1, read_list): Use it.
-
- * macselect.c (x_get_local_selection): Use signal_error.
-
- * msdos.c (Fmsdos_set_mouse_buttons): Use xsignal2.
-
- * search.c (compile_pattern_1): Use xsignal1.
- (signal_failure): Remove (was only called once).
- (search_command): Use xsignal1 instead of signal_failure.
-
- * syntax.c (scan_lists): Use xsignal3.
-
- * textprop.c (text_read_only): Use xsignal0, xsignal1.
-
- * unexsol.c (unexec): Use xsignal.
-
- * window.c (window_scroll_pixel_based, window_scroll_line_based):
- Use xsignal0.
-
- * xfaces.c (signal_error): Move to eval.c.
- (resolve_face_name): Use xsignal1.
-
- * xfns.c (x_decode_color): Use signal_error.
-
- * xselect.c (x_get_local_selection, copy_multiple_data)
- (x_get_window_property_as_lisp_data)
- (lisp_data_to_selection_data, CHECK_CUT_BUFFER)
- (Fx_get_cut_buffer_internal): Use signal_error.
-
-2006-07-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (XTread_socket): Undo previous change.
-
-2006-07-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (keycode_to_xkeysym): Remove function. All uses now
- directly lookup keycode_to_xkeysym_table.
- [USE_MAC_TSM] (mac_handle_text_input_event): Don't construct
- ASCII_KEYSTROKE_EVENT for non-zero keycode_to_xkeysym_table entries.
- (XTread_socket): Use character codes to construct keypad key events.
- (mac_initialize_display_info) [MAC_OSX]: Use CGDisplaySamplesPerPixel.
- (x_delete_display): Apply 2006-07-04 change for xterm.c.
-
-2006-07-17 Richard Stallman <rms@gnu.org>
-
- * keyboard.c (Vcommand_error_function): New variable.
- (syms_of_keyboard): Defvar it.
- (cmd_error_internal): Simplify, and handle Vcommand_error_function.
-
- * dispnew.c (init_display): Mention DISPLAY as well as TERM in err msg.
-
-2006-07-17 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (handle_single_display_spec): Ensure the right value of
- it->position is saved by push_it.
- (pop_it): Restore it->object for GET_FROM_BUFFER and GET_FROM_STRING.
- (reseat_1): Don't setup it->object twice.
- (set_iterator_to_next): No need to set it->object after pop_it.
- (move_it_to): Explicitly check to see if last move reached to_charpos.
-
-2006-07-17 Thien-Thi Nguyen <ttn@gnu.org>
-
- * xdisp.c (display_mode_line): Preserve match data.
-
-2006-07-14 Kim F. Storm <storm@cua.dk>
-
- * w32.c (pfn_WSACreateEvent, pfn_WSACloseEvent): New func ptrs.
- (init_winsock): Load them. Use ws2_32.dll.
- (sys_listen): Undo last change. Just set FILE_LISTEN flag.
- (sys_accept): Undo last change. Instead, set child status to
- STATUS_READ_ACKNOWLEDGED and reset char_avail event so next
- sys_select will wakeup the reader thread.
- (_sys_wait_accept): New function used by reader thread to wait for
- an incoming connection on a server socket.
-
- * w32.h (_sys_read_ahead, _sys_wait_accept): Add prototypes.
-
- * w32proc.c (reader_thread): Use _sys_wait_accept to wait on a
- server socket (FILE_LISTEN flag).
-
-2006-07-14 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * sound.c (alsa_init): Call snd_pcm_close after successful snd_pcm_open.
-
-2006-07-14 Kim F. Storm <storm@cua.dk>
-
- * w32.c: Fix high cpu load for server sockets.
- (pfn_WSAEventSelect): New function ptr.
- (init_winsock): Load it.
- (sys_listen): Set FILE_LISTEN flag. Set event mask for socket's
- char_avail event object to FD_ACCEPT.
- (sys_accept): Check FILE_LISTEN flag. Set event mask on new
- socket's char_avail event object to FD_READ|FD_CLOSE.
-
- * w32.h (FILE_LISTEN): New filedesc flag value.
-
-2006-07-13 Kim F. Storm <storm@cua.dk>
-
- * bytecode.c (Fbyte_code): Use CAR, CDR for Bcar, Bcdr.
- Use CAR_SAFE, CDR_SAFE for Bcar_safe, Bcdr_safe.
- Simplify loops and use CAR for Bnth and Belt.
-
- * data.c (Findirect_function): Optimize for no indirection.
-
- * eval.c (Fthrow): Remove loop around Fsignal.
- (Feval, Fapply, Ffuncall): Optimize for no function indirection.
- Use original function name in all signaled errors.
- Simplify Fsignal calls (no return).
- (funcall_lambda): Simplify Fsignal calls (no return).
-
-2006-07-13 Andreas Schwab <schwab@suse.de>
-
- * syntax.c (scan_sexps_forward): Use EMACS_INT for out_bytepos and
- out_charpos.
-
-2006-07-13 Kenichi Handa <handa@m17n.org>
-
- * editfns.c (Fformat): Fix calculation of text property positions
- of format string.
-
-2006-07-12 Kim F. Storm <storm@cua.dk>
-
- * lisp.h (CHECK_TYPE): New macro for generic type checking.
- (CAR_SAFE, CDR_SAFE): New macros.
- (ARRAYP, CHECK_ARRAY): New macros.
- (CHECK_VECTOR_OR_STRING, CHECK_SUBR): New macros.
- (CHECK_WINDOW_CONFIGURATION): New macro.
- (CHECK_LIST_CONS, CHECK_LIST_END): New checks for list traversal.
- (CHECK_STRING_OR_BUFFER, CHECK_HASH_TABLE, CHECK_LIST)
- (CHECK_STRING, CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL)
- (CHECK_CHAR_TABLE, CHECK_VECTOR, CHECK_VECTOR_OR_CHAR_TABLE)
- (CHECK_BUFFER, CHECK_WINDOW, CHECK_LIVE_WINDOW, CHECK_PROCESS)
- (CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, CHECK_OVERLAY)
- (CHECK_NUMBER_COERCE_MARKER, CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT)
- (CHECK_NUMBER_OR_FLOAT_COERCE_MARKER): Use CHECK_TYPE.
-
- * category.h (CHECK_CATEGORY, CHECK_CATEGORY_SET):
- * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Use CHECK_TYPE.
-
- * callint.c (Fcall_interactively):
- * casefiddle.c (casify_object):
- * editfns.c (general_insert_function):
- * fns.c (Flength, Felt, Ffillarray):
- * data.c (Fcar, Fcdr): Remove loop around wrong_type_argument.
-
- * data.c (wrong_type_argument): Remove loop around Fsignal.
- (Farrayp, Fsequencep): Use ARRAYP.
- (Fcar): Use CAR.
- (Fcar_safe): Use CAR_SAFE.
- (Fcdr): Use CDR.
- (Fcdr_safe): Use CDR_SAFE.
- (Fsetcar, Fsetcdr): Use CHECK_CONS.
- (Fsubr_arity, Fsubr_name): Use CHECK_SUBR.
- (Faset): Use CHECK_ARRAY.
-
- * fns.c (Felt): Use CHECK_ARRAY.
- (concat): Use CHECK_NUMBER.
- (Fsubstring, substring_both): Use CHECK_VECTOR_OR_STRING.
- (Fmemq): Use CHECK_LIST.
- (Fassq, Fassoc, Frassq, Frassoc): Use CAR.
- (assq_no_quit): Use CAR_SAFE.
- (Fnthcdr, Fmember, Fdelq, Fdelete, Fnreverse, Fnconc):
- Use CHECK_LIST_CONS.
- (Freverse, Fplist_get, Flax_plist_get): Use CHECK_LIST_END.
-
- * bytecode.c (Fbyte_code): Use CHECK_VECTOR.
-
- * casetab.c (check_case_table):
- * category.c (check_category_table):
- * marker.c (Fcopy_marker):
- * syntax.c (check_syntax_table):
- * xfaces.c (load_pixmap): Use CHECK_TYPE.
-
- * fns.c (Fcopy_sequence, concat):
- * fringe.c (Fdefine_fringe_bitmap):
- * lread.c (check_obarray): Cleanup wrong_type_argument use.
-
- * keyboard.c (access_keymap_keyremap): Use ARRAYP.
-
- * keymap.c (Fdefine_key, Flookup_key):
- * macros.c (Fstart_kbd_macro): Use CHECK_VECTOR_OR_STRING.
-
- * mac.c (Fmac_get_preference): Use CHECK_LIST_END.
-
- * search.c (Fset_match_data): Use CHECK_LIST.
-
- * sunfns.c (sun_item_create): Use CHECK_LIST_CONS.
-
- * window.c (Fwindow_configuration_frame, Fset_window_configuration):
- (compare_window_configurations): Use CHECK_WINDOW_CONFIGURATION.
-
-2006-07-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * Makefile.in (dired.o, editfns.o, fileio.o): Depend on blockinput.h.
-
- * dired.c: Include blockinput.h.
- (Ffile_attributes): Add BLOCK_INPUT around getpwuid/getgrgid.
-
- * editfns.c: Include blockinput.h.
- (Fuser_login_name, Fuser_full_name): Add BLOCK_INPUT around
- getpwuid/getpwnam.
-
- * fileio.c: Include blockinput.h.
- (Fexpand_file_name, search_embedded_absfilename): Add BLOCK_INPUT
- around getpwnam.
- (search_embedded_absfilename): Remove spurious xfree.
-
-2006-07-11 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (sit_for): Reduce number of args from 5 to 3.
- Now just one TIMEOUT arg that can be a Lisp float or Lisp int.
- Combine args DISPLAY and INITIAL_DISPLAY into one arg DO_DISPLAY.
- Signal error if TIMEOUT is not a number.
- Undo 2006-06-14 change for non-preemptive display if TIMEOUT < 0.
- The rework of sit_for args also fixes several incorrect Qt args
- which should have been 1.
- (Fredisplay): Pass 1 instead of Qt to swallow_events and
- detect_input_pending_run_timers.
-
- * lisp.h (sit_for): Update prototype.
- (Fredisplay): Add EXFUN.
-
- * dispextern.h (sit_for): Remove prototype.
-
- * callint.c (Fcall_interactively):
- * minibuf.c (temp_echo_area_glyphs):
- * keyboard.c (command_loop_1, read_char, Fexecute_extended_command):
- * fileio.c (Fdo_auto_save): Update/simplify sit_for calls.
-
-2006-07-11 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * syntax.c (forw_comment): Also use EMACS_INT for buffer positions.
-
-2006-07-11 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (Fredisplay): Add FORCE argument to force redisplay when
- input is available. Fix test for redisplay_dont_pause non-nil.
- Specbind redisplay-dont-pause to t if FORCE non-nil.
-
-2006-07-10 Chong Yidong <cyd@stupidchicken.com>
-
- * puresize.h (BASE_PURESIZE): Increment to 1211000.
-
- * dispnew.c (Fredisplay): New function, equivalent to (sit-for 0).
- (Fsit_for): Function deleted.
-
- * keyboard.c (command_loop_1, Fexecute_extended_command):
- Call sit_for instead of Fsit_for.
-
- * minibuf.c (temp_echo_area_glyphs): Likewise.
-
-2006-07-09 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * syntax.c (Fforward_comment): Revert the reversion.
- (back_comment, scan_lists): Also use EMACS_INT for buffer positions.
-
-2006-07-09 John Paul Wallington <jpw@pobox.com>
-
- * syntax.c (Fforward_comment): Revert previous change.
-
-2006-07-09 Kim F. Storm <storm@cua.dk>
-
- * window.c (Fforce_window_update): Doc fix.
-
-2006-07-08 Stephen Gildea <gildea@stop.mail-abuse.org>
-
- * fileio.c (do_auto_save_make_dir): Make the auto-save-list-file
- directory unreadable for better user privacy.
-
-2006-07-07 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * syntax.c (Fforward_comment): Fix int-32 vs EMACS_INT-64 mixup.
-
- * lread.c (read_filtered_event): Remove `register' qualifier because it
- causes compilation problem with gcc-4.0.2-20051125 on amd64.
- (readevalloop): Remove unused var `bpos'.
- Yet another int/Lisp_Object mixup (YAILOM).
-
-2006-07-07 Eli Zaretskii <eliz@gnu.org>
-
- * keyboard.c (Fexecute_extended_command): Mention the argument
- PREFIXARG in the doc string.
-
-2006-07-07 Kim F. Storm <storm@cua.dk>
-
- * fringe.c (Fdefine_fringe_bitmap): Doc fix.
-
-2006-07-05 Chong Yidong <cyd@stupidchicken.com>
-
- * insdel.c (prepare_to_modify_buffer): For an indirect buffer, do
- clash detection using the base buffer.
-
- * puresize.h (BASE_PURESIZE): Increment to 1210500.
-
-2006-07-04 Kim F. Storm <storm@cua.dk>
-
- * xterm.c (x_delete_display): Don't free or derefence NULL pointers.
-
-2006-07-04 Kenichi Handa <handa@m17n.org>
-
- * fontset.c (Fset_overriding_fontspec_internal): Check if we need
- to update Voverriding_fontspec_alist.
-
-2006-07-03 Richard Stallman <rms@gnu.org>
-
- * xfns.c (Fx_create_frame): Move unwind_create_frame setup down.
-
- * xfaces.c (Fface_attribute_relative_p): Doc fix.
-
- * textprop.c (Fget_char_property_and_overlay): Doc fix.
-
- * eval.c (Fdefvaralias): Doc fix.
-
-2006-07-03 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (sit_for): Fix preempt condition.
-
-2006-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * lread.c (read_filtered_event): Treat select-window just like
- switch-frame.
-
-2006-07-02 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (display_tool_bar_line): Skip glyphs which are too big
- to ever fit the tool-bar,
- (MAX_FRAME_TOOL_BAR_HEIGHT): New macro.
- (tool_bar_lines_needed): Use unused mode-line row as temp_row.
- (redisplay_tool_bar): Only clear desired matrix if we actually
- change the tool-bar window height. Only try to make the tool-bar
- window bigger if there is actually room for it.
-
-2006-06-30 Ralf Angeli <angeli@caeruleus.net>
-
- * w32term.c (x_make_frame_visible): Use SystemParametersInfo with
- SPI_GETWORKAREA to find the dimensions of the screen work area,
- and adjust vertical position of the frame in order to avoid being
- covered by the task bar.
-
- * w32fns.c (w32_createwindow): Use CW_USEDEFAULT instead of
- f->left_pos and SH_SHOW instead of f->top_pos in the call to
- CreateWindow. Record the actual position in f->left_pos and
- f->top_pos.
-
-2006-06-30 John Paul Wallington <jpw@pobox.com>
-
- * w32console.c (syms_of_ntterm) <w32-use-full-screen-buffer>:
- Doc fix - default value has changed.
-
-2006-06-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c [!TARGET_API_MAC_CARBON]: Don't include FixMath.h or Scrap.h.
-
- * macfns.c (Fx_create_frame): Apply 2006-06-24 change for xfns.c.
-
- * macgui.h (USE_MAC_TSM) [TARGET_API_MAC_CARBON]: Set default to 1.
-
- * macterm.c (Qeql): Add extern.
- (x_set_mouse_pixel_position) [MAC_OSX]: Use CGWarpMouseCursorPosition.
- (fm_style_face_attributes_alist) [USE_ATSUI]: New variable.
- (syms_of_macterm) [USE_ATSUI]: Initialize and staticpro it.
- Change keys of Vmac_atsu_font_table from strings to numbers.
- (fm_style_to_face_attributes) [USE_ATSUI]: New function.
- (init_font_name_table) [USE_ATSUI]: Use it.
- (saved_ts_script_language_on_focus) [USE_MAC_TSM]: New variable.
- (syms_of_macterm) [USE_MAC_TSM]: Initialize and staticpro it.
- [USE_MAC_TSM] (mac_tsm_resume): Restore script and language codes
- only when saved_ts_script_language_on_focus coincides with
- Vmac_ts_script_language_on_focus.
- [USE_MAC_TSM] (mac_tsm_suspend): Save value of
- Vmac_ts_script_language_on_focus to saved_ts_script_language_on_focus.
- (XTread_socket) [USE_MAC_TSM]: Add Mac OS Classic support.
- [USE_MAC_TSM] (mac_handle_text_input_event, init_tsm): Likewise.
-
-2006-06-27 Chong Yidong <cyd@stupidchicken.com>
-
- * editfns.c (Fdelete_field, Ffield_string, Ffield_beginning)
- (Ffield_string_no_properties, Ffield_end): Mention
- args-out-of-range error condition in docstring.
-
-2006-06-27 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (handle_composition_prop): Set stop_charpos before push_it.
-
-2006-06-25 Kim F. Storm <storm@cua.dk>
-
- * s/gnu-linux.h (SIGNALS_VIA_CHARACTERS): Define for Linux kernel
- version 2.4 and later.
-
-2006-06-24 Chong Yidong <cyd@stupidchicken.com>
-
- * xfns.c (Fx_create_frame): Set font parameter directly instead of
- using x_default_parameter, since x_get_args clears the parm alist.
-
-2006-06-24 Eli Zaretskii <eliz@gnu.org>
-
- * dired.c (directory_files_internal) [WINDOWSNT]: Find files
- case-insensitively.
-
-2006-06-24 Aidan Kehoe <kehoea@parhasard.net>
-
- * lread.c (read_escape): When an unknown Unicode code point is
- encountered as a string or character escape, signal an error.
-
-2006-06-23 Kim F. Storm <storm@cua.dk>
-
- * .gdbinit (pitx): Dump iterator stack.
-
- * xdisp.c (handle_composition_prop): Push iterator on stack.
- (set_iterator_to_next): Pop iterator at end of composition.
-
-2006-06-23 Martin Rudalics <rudalics@gmx.at>
-
- * fileio.c (Frename_file) [DOS_NT]: Don't try to move directory to
- itself on DOS_NT platforms, if the old and new names are identical
- but for the letter-case.
-
-2006-06-21 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (struct it): Add `position' member to iterator stack.
- Rename `pos' member to `current'. Rearrange and add comments.
-
- * xdisp.c (handle_stop): Set it->ignore_overlay_strings_at_pos_p
- if we get any overlays.
- (set_cursor_from_row): Don't clobber `end' if we rescan from
- start_string.
- (push_it, pop_it): Save it->position.
-
-2006-06-19 Richard Stallman <rms@gnu.org>
-
- * window.c (size_window): New arg FIRST_ONLY. All callers changed.
- (adjust_window_trailing_edge): Specially compute FIRST_PARALLEL
- for the case of a top-level window and the following minibuffer.
- Don't exit because of no `next' when there is a parent.
- Use the FIRST_ONLY feature when resizing following windows.
-
- * syntax.c (init_syntax_once): Give most control chars' syntax Spunct.
-
-2006-06-17 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (update_frame): Check for input pending on entry.
- (update_window, update_frame_1): Break loop if input is detected.
-
-2006-06-16 Francis Litterio <flitterio@gmail.com>
-
- * xterm.c (x_check_expected_move, handle_one_xevent)
- (x_set_offset, x_check_fullscreen): Extensive changes to make
- frame positioning deterministic under X.
-
- * xterm.h (x_output): Add members left_before_move and
- top_before_move. Removed members expected_left and expected_top.
-
-2006-06-16 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (struct it): Add union to iterator stack to save
- image, composition, and stretch specific paramters.
-
- * xdisp.c (next_overlay_string): Fix assert.
- (push_it, pop_it): Handle composition and stretch specific values.
- Only handle it->slice in image (for now).
- (back_to_previous_visible_line_start): Continue search if newline is
- part of a compisition. Simplify.
- (reseat_1): Set it->object to buffer.
- (set_iterator_to_next): Set it->object to string or buffer, when
- setting it->method to GET_FROM_STRING or GET_FROM_BUFFER.
- (next_element_from_composition): Set it->object to buffer if not
- from string.
- (set_cursor_from_row): Only save start of string if not already
- done to handle multiple strings in a row.
-
- * .gdbinit (pitx): Show composition parameters.
- (pgx, pg): New commands to print a glyph structure.
- (pgi, pgn): New commands to print specific/next glyph.
- (pgrowx, pgrow): New commands to print all glyphs in a row.
-
-2006-06-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (Fx_display_mm_height, Fx_display_mm_width)
- [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]: Use CGDisplayScreenSize.
-
- * macterm.c (do_app_resume, do_app_suspend): Remove functions.
- (mac_tsm_resume, mac_tsm_suspend) [USE_MAC_TSM]: New functions.
- (mac_handle_window_event, XTread_socket) [USE_MAC_TSM]: Use them.
- (Vmac_ts_script_language_on_focus) [USE_MAC_TSM]: New variable.
- (syms_of_macterm) [USE_MAC_TSM]: Defvar it.
- (saved_ts_language, saved_ts_component) [USE_MAC_TSM]: New variables.
- (mac_initialize_display_info) [MAC_OSX]: Use Quartz Display
- Services functions to get size of main display in pixels.
-
-2006-06-14 Chong Yidong <cyd@stupidchicken.com>
-
- * xdisp.c (back_to_previous_visible_line_start):
- Reset it->continuation_lines_width.
-
-2006-06-14 Richard Stallman <rms@gnu.org>
-
- * eval.c (Fdefconst): Mark variable as risky.
-
- * callproc.c (Fcall_process): Doc fix.
-
- * window.c (adjust_window_trailing_edge): Don't break out of the loop
- because there's no next window, if there are parallel windows.
- Do break out when WINDOW is nil.
-
-2006-06-14 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (IT_STACK_SIZE): New macro specifying size of
- iterator stack (instead of hardcoded number). Increase from 2 to
- 4 to make room for propertized overlay strings before and after a
- display string, image or composition.
- (struct it): Add image_id and method members to iterator stack.
-
- * xdisp.c (init_from_display_pos): Don't set it->method and
- overlay_string_index after pop_it. Add asserts.
- (handle_stop): Look for overlay strings around a display string,
- image, or composition. Handle properties on those strings.
- (next_overlay_string): Don't set string, pos or method after pop_it.
- (get_overlay_strings_1): Split from get_overlay_strings; don't
- modify it if no overlay strings are found.
- (get_overlay_strings): Use get_overlay_strings_1. Always set
- it->string and it->method.
- (push_it): Push it->image_id and it->method. Push it->object
- instead of it->string if method is GET_FROM_IMAGE.
- (pop_it): Pop it->image_id and it->method. Ppo it->object
- instead of it->string if method is GET_FROM_IMAGE.
- Reset it->current.string_pos if popped it->string is nil.
- (reseat_1): Remove comment dated 19 May 2003. It expressed doubt
- whether a given change was correct; but the change is correct.
- Clear it->string_from_display_prop_p.
- (set_iterator_to_next): Rely on it->method and it->image_id from
- iterator stack, instead of setting them explicitly after pop_it.
-
- * dispnew.c (sit_for): Undo 2006-06-01 change. Instead, a
- negative time forces redisplay even when input is available.
- (Fsit_for): Doc fix.
-
-2006-06-13 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c: Modify preemptive redisplay to be based on periodic
- checks for input.
- (PERIODIC_PREEMPTION_CHECKING): Define to 1 iff EMACS_HAS_USECS.
- (Vredisplay_preemption_period): New variable.
- (syms_of_display): DEFVAR_LISP and initialize it.
- (preemption_period, preemption_next_check): New variables.
- (update_frame, update_single_window): Initialize them based on
- Vredisplay_preemption_period if !force_p.
- (update_window, update_frame_1): Use them to determine when to
- check for input.
-
-2006-06-03 Aidan Kehoe <kehoea@parhasard.net>
-
- * lread.c (read_escape): Provide a Unicode character escape
- syntax; \u followed by exactly four or \U followed by exactly
- eight hex digits in a comment or string is read as a Unicode
- character with that code point.
-
-2006-06-09 Eli Zaretskii <eliz@gnu.org>
-
- * window.c (window_scroll_pixel_based): Signal "Beginning of
- buffer" when scroll-down at the beginning of an empty buffer.
-
-2006-06-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c [USE_MAC_TSM] (mac_handle_text_input_event):
- Exclude 0x7f from ASCII range.
-
-2006-06-05 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (w32_set_scroll_bar_thumb, x_scroll_bar_create)
- (w32_set_vertical_scroll_bar, w32_scroll_bar_handle_click)
- (x_scroll_bar_report_motion): Remove workarounds for
- versions of Windows NT < 3.51.
- [!SIF_ALL]: Remove.
- (pfnSetScrollInfo, pfnGetScrollInfo): Remove.
- (w32_initialize): Don't dynamically load Get/SetScrollInfo.
-
-2006-06-04 David Kastrup <dak@gnu.org>
-
- * dispnew.c: Mention `redisplay-dont-pause' in doc string of
- `sit-for'.
-
-2006-06-03 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (x_set_icon_name): Apply 2006-06-02 change for xfns.c.
-
- * macgui.h (USE_MAC_TSM): Set default to 1 on Mac OS X.
-
- * macterm.c (tsm_document_id) [USE_MAC_TSM]: New variable.
- (Qtext_input, Qupdate_active_input_area, Qunicode_for_key_event)
- [USE_MAC_TSM]: Likewise.
- (syms_of_macterm) [USE_MAC_TSM]: Intern and staticpro them.
- (Qbefore_string) [USE_MAC_TSM]: Add extern.
- (do_app_resume, do_app_suspend) [USE_MAC_TSM]: Call
- ActivateTSMDocument/DeactivateTSMDocument.
- (mac_store_event_ref_as_apple_event): Call mac_post_mouse_moved_event.
- (mac_handle_window_event) [USE_MAC_TSM]: Handle
- kEventWindowFocusAcquired/kEventWindowFocusRelinquish.
- (mac_handle_text_input_event) [USE_MAC_TSM]: New function.
- (install_window_handler) [USE_MAC_TSM]: Install it. Register
- kEventWindowFocusAcquired/kEventWindowFocusRelinquish.
- (keycode_to_xkeysym_table): Add entry for f16.
- (XTread_socket) [USE_MAC_TSM]: Set/reset read_socket_inev
- before/after passing keystroke event to toolbox dispatcher.
- (init_tsm) [USE_MAC_TSM]: New function.
- (mac_initialize) [USE_MAC_TSM]: Call it.
- (Vmac_ts_active_input_overlay) [USE_MAC_TSM]: New defvar.
-
- * macterm.h (EVENT_PARAM_TEXT_INPUT_SEQUENCE_NUMBER): New enumerator.
-
-2006-06-02 John Paul Wallington <jpw@gnu.org>
-
- * xfns.c (x_set_name_internal): Set icon to `text', derived from
- name, when frame's icon_name isn't a string rather than only when
- it is nil.
-
-2006-06-03 Eli Zaretskii <eliz@gnu.org>
-
- * w32fns.c (x_set_icon_name): Don't use arg if it's not a string
- and not nil.
-
-2006-06-02 Chong Yidong <cyd@stupidchicken.com>
-
- * xfns.c (x_set_icon_name): No-op if arg is non-nil and not a
- string.
-
-2006-06-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * xdisp.c (next_element_from_composition): Set it->object to
- it->string if composition is coming from string.
- (set_cursor_from_row): Don't return 0 unless row displays a
- continued line.
- (dump_glyph): Dump composite glyph.
-
-2006-06-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (menu_nav_ended): Check that menubar_widget is not NULL.
-
-2006-06-01 Richard Stallman <rms@gnu.org>
-
- * window.c (Fsplit_window): Doc fix.
-
-2006-06-01 Micha\e,Ak\e(Bl Cadilhac <michael.cadilhac@lrde.org>
-
- * process.c (deleted_pid_list): New variable to store the pids
- of deleted processes. Declare it only if SIGCHLD is defined.
- (init_process): Initialize it.
- (syms_of_process): Staticpro it.
- (Fdelete_process): Add pid of the deleted process to it. Check after
- the addition and before the kill if the process is already stopped,
- in which case it is deleted from the list and not killed.
- (sigchld_handler): Define it only if SIGCHLD is. Search the process
- that signaled Emacs in `deleted_pid_list' before `Vprocess_alist'.
- Original idea by Stefan Monnier.
-
-2006-06-01 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (sit_for): Perform redisplay even if input is pending
- when redisplay-dont-pause is non-nil.
-
-2006-06-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (mac_handle_visibility_change): Set buf.arg to Qnil.
- (XTread_socket): Remove obsolete comment.
-
-2006-06-01 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (syms_of_xmenu): Make accelerate-menu an alias for
- menu-bar-open.
-
-2006-06-01 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (Fmenu_bar_open, syms_of_xmenu): Change menu-bar-start to
- menu-bar-open.
-
- * gtkutil.c (menu_nav_ended): Change x-menu-bar-start to menu-bar-open.
-
-2006-05-31 Juri Linkov <juri@jurta.org>
-
- * minibuf.c (Vhistory_add_new_input): New variable.
- (read_minibuf): Use it.
- (syms_of_minibuf) <history-add-new-input>: New Lisp variable.
- (syms_of_minibuf) <history-delete-duplicates>: Doc fix.
-
-2006-05-31 Kim F. Storm <storm@cua.dk>
-
- * process.c (select_wrapper): Add wrapper around select to work around
- "incomplete backtrace" bug in gdb 5.3, when emacs is stopped inside
- select called from wait_reading_process_output.
-
-2006-05-30 Andreas Schwab <schwab@suse.de>
-
- * xmenu.c (Fmenu_bar_start): Return a value.
-
-2006-05-30 Richard Stallman <rms@gnu.org>
-
- * coding.c (Ffind_operation_coding_system): Doc fix.
-
-2006-05-30 Eli Zaretskii <eliz@gnu.org>
-
- * w32term.c (x_draw_hollow_cursor): Fix last change.
-
-2006-05-29 Kim F. Storm <storm@cua.dk>
-
- * w32term.c (x_draw_stretch_glyph_string): Fix last change.
-
-2006-05-29 Eli Zaretskii <eliz@gnu.org>
-
- * coding.c (Ffind_operation_coding_system): Doc fix.
-
-2006-05-29 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c [USE_MAC_FONT_PANEL] (Fmac_set_font_panel_visibility):
- Call mac_set_font_info_for_selection if font panel is made visible.
-
- * macterm.c (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
- (mac_font_panel_visible_p, mac_show_hide_font_panel)
- [USE_MAC_FONT_PANEL]: New functions.
- [USE_MAC_FONT_PANEL] (mac_set_font_info_for_selection):
- Return immediately if font panel is not visible.
-
- * macterm.h (mac_font_panel_visible_p, mac_show_hide_font_panel):
- Add externs.
-
-2006-05-29 Dan Nicolaescu <dann@ics.uci.edu>
-
- * search.c (matcher_overflow): Mark as NO_RETURN.
-
- * xterm.c (x_connection_closed): Likewise.
-
- * sysdep.c (croak): Likewise.
-
- * sound.c (sound_perror, alsa_sound_perror): Likewise.
-
- * lisp.h (die, nsberror): Likewise.
-
-2006-05-29 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * sound.c (alsa_open, alsa_configure, alsa_write):
- Move assignment to err out of if-statement.
-
- * gtkutil.c (menu_nav_ended): New function.
- (create_menus): Connect menu_nav_ended to "selection-done" to fix
- grabs.
-
- * xmenu.c (Fmenu_bar_start): New function for USE_GTK and USE_X_TOOLKIT.
-
-2006-05-28 Dan Nicolaescu <dann@ics.uci.edu>
-
- * charset.h (invalid_character): Mark as NO_RETURN.
-
-2006-05-29 Kenichi Handa <handa@m17n.org>
-
- * coding.c (Ffind_operation_coding_system): Call a function by
- safe_call1 instead of call1.
-
-2006-05-28 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * window.c (struct saved_window): Add `dedicated'.
- (Fset_window_configuration, save_window_save): Save/restore the
- `dedicated' flag.
-
-2006-05-28 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (set_cursor_from_row): If cursor cannot be set in row,
- don't update w->cursor and return 0. Return 1 on success.
- (try_cursor_movement): Repeat set_cursor_from_row on successive rows
- until it succeeds.
-
- * dispextern.h (set_cursor_from_row): Update prototype.
-
-2006-05-28 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (get_phys_cursor_geometry): Return computed x and y through
- parameters. Adjust x and width in case cursor in on a partially
- visible stretch glyph on the left edge.
- (erase_phys_cursor): Don't erase into left fringe/margin in case
- previous cursor glyph is a partially visible stretch glyph on left.
-
- * dispextern.h (get_phys_cursor_geometry): Update prototype.
-
- * xterm.c (x_draw_stretch_glyph_string): Fix problems with invisible
- cursor and erasing cursor on partially visible stretch glyph on left.
- (x_draw_hollow_cursor): Compute x via get_phys_cursor_geometry.
-
- * macterm.c: Likewise.
-
- * w32term.c: Likewise.
-
-2006-05-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macselect.c (mac_handle_apple_event):
- Return errAEEventNotHandled if key binding is not found.
-
-2006-05-26 Eli Zaretskii <eliz@gnu.org>
-
- * emacs.c (main) [PROFILING]: Enable also for __MINGW32__.
- [__MINGW32__]: MinGW-specific declaration of `etext'.
-
- * w32heap.c (etext, edata): Remove unused definitions.
-
-2006-05-26 Chong Yidong <cyd@stupidchicken.com>
-
- * fileio.c (Fcopy_file): Delete argument MUSTBENEW.
- Incorporate the exclusive file-opening functionality into the behavior
- when OK-IF-ALREADY-EXISTS is nil.
- (Frename_file): Call Fcopy_file without MUSTBENEW argument.
-
-2006-05-26 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * sound.c (alsa_configure): Move get period/buffer_size after
- setting hwparams.
-
-2006-05-26 Kenichi Handa <handa@m17n.org>
-
- * coding.c (Ffind_operation_coding_system): Allow (FILENAME
- . BUFFER) in TARGET.
-
-2006-05-25 Chong Yidong <cyd@stupidchicken.com>
-
- * image.c (png_load): Don't call fclose on NULL.
-
-2006-05-25 Luc Teirlinck <teirllm@auburn.edu>
-
- * fns.c (Fyes_or_no_p):
- * callint.c (Fcall_interactively): Fread_from_minibuffer now takes
- only seven args.
-
-2006-05-25 Juri Linkov <juri@jurta.org>
-
- * lisp.h (Fread_from_minibuffer): Decrement number of args.
-
- * minibuf.c (read_minibuf): Remove arg KEEP_ALL. Callers changed.
- (Fread_from_minibuffer): Remove arg KEEP_ALL. Callers changed.
-
- * buffer.c (mode-line-format): Fix docstring.
-
-2006-05-25 Richard Stallman <rms@gnu.org>
-
- * emacs.c (main, Fdump_emacs): Don't test __linux or __linux__.
-
-2006-05-24 Luc Teirlinck <teirllm@auburn.edu>
-
- * puresize.h (BASE_PURESIZE): Increase to 1210000.
-
-2006-05-24 Alan Mackenzie <acm@muc.de>
-
- * lread.c (Vload_history): Enhance doc-string to say that the file
- is the absolute truename of the loaded file.
-
- * lread.c (Vafter_load_alist): doc-string: state that an element
- now has a regexp to match file names, not a file name as such.
-
- * lread.c (readevalloop): Call file-truename on the name for
- load-history, except at preloading time.
-
- * lread.c (Fload): At preloading time, preserve the extension of
- the filename which goes into load-history. New var hist_file_name.
-
- * lread.c (Fload): Do eval-after-load stuff by calling the lisp
- function do-after-load-evaluation.
-
-2006-05-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c (ae_attr_table): New variable.
- (syms_of_mac): Intern and staticpro its elements.
- (mac_aelist_to_lisp): Also convert Apple event attributes.
- (mac_ae_put_lisp): New function.
- (create_apple_event_from_event_ref) [MAC_OSX]: Use typeUTF8Text.
-
- * macfns.c (Fx_server_version): Use gestaltSystemVersionMajor etc.
-
- * macselect.c (Qemacs_suspension_id): New variable.
- (syms_of_macselect): Intern and staticpro it.
- (struct suspended_ae_info): New struct.
- (deferred_apple_events, defer_apple_events)
- (Fmac_process_deferred_apple_events): Use it.
- (suspended_apple_events): New variable.
- (mac_handle_apple_event_1): New function.
- (mac_handle_apple_event): Use it. Don't process previously
- suspended events.
- (cleanup_suspended_apple_events, get_suspension_id)
- (cleanup_all_suspended_apple_events): New functions.
- (init_apple_event_handler): Call cleanup_all_suspended_apple_events
- at exit.
- (Fmac_cleanup_expired_apple_events, Fmac_ae_set_reply_parameter)
- (Fmac_resume_apple_event): New defuns.
- (syms_of_macselect): Defsubr them.
-
- * macterm.c (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
- Fix last change. Don't map `fn' modifier if pressed with F1 ... F12.
-
- * macterm.h (TYPE_FILE_NAME): Change from macro to enumerator.
- (KEY_EMACS_SUSPENSION_ID_ATTR): New enumerator.
- (keyReplyRequestedAttr) [MAC_OS_X_VERSION_MAX_ALLOWED < 1030]: Likewise.
- (gestaltSystemVersionMajor, gestaltSystemVersionMinor)
- (gestaltSystemVersionBugFix) [MAC_OS_X_VERSION_MAX_ALLOWED < 1040]:
- Likewise.
- (typeUTF8Text, kEventParamWindowMouseLocation)
- [MAC_OSX && MAC_OS_X_VERSION_MAX_ALLOWED < 1020]: Likewise.
- (x_get_focus_frame, mac_ae_put_lisp): Add externs.
-
-2006-05-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
- (fn_keycode_to_keycode_table) [MAC_OSX]: New variable.
- (mac_set_unicode_keystroke_event) [TARGET_API_MAC_CARBON]: New function.
- (XTread_socket) [TARGET_API_MAC_CARBON]: Use it.
- (XTread_socket) [MAC_OSX]: Try 'uchr' Unicode keyboard-layout
- resource to backtranslate key with modifiers.
- (XTread_socket): Don't set read_socket_inev around AEProcessAppleEvent.
-
-2006-05-23 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c: Remove declarations already in xterm.h
-
- * xterm.h: Add extern declarations for x_clear_errors,
- x_fully_uncatch_errors, x_catching_errors and
- x_alloc_lighter_color_for_widget. Remove duplicated declarations.
-
-2006-05-21 Richard Stallman <rms@gnu.org>
-
- * xfaces.c (best_matching_font): Abort for best == NULL
- before we start to use it.
-
- * buffer.c (syms_of_buffer, Fmake_overlay): Doc fixes.
-
-2006-05-20 Kim F. Storm <storm@cua.dk>
-
- * xfaces.c (best_matching_font): Fix crash in 2006-05-17 change.
-
-2006-05-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (convert_fn_keycode): Fix last change.
-
-2006-05-19 Eli Zaretskii <eliz@gnu.org>
-
- * w32.c (init_environment): Perform the processing of environment
- variables on a copy of default variables and their values, not on
- the original. Simplify code that calls ExpandEnvironmentStrings
- and make buf1[] and buf2[] more visible for easier debugging.
-
-2006-05-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * frame.c (x_set_border_width): Remove #ifndef MAC_OS.
-
- * image.c [MAC_OS] (gif_load): Allocate Lisp string first.
-
- * macfns.c (Fx_focus_frame): Don't check dpyinfo->x_focus_frame.
-
- * macterm.c (XTread_socket) [TARGET_API_MAC_CARBON && MAC_OSX]:
- Forward keyUp events to toolbox_dispatcher.
-
- * window.c (foreach_window): Check WINDOWP (FRAME_ROOT_WINDOW (f)).
-
-2006-05-18 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * config.in: Regenerated (HAVE_ALSA).
-
- * sound.c (alsa_sound_perror, alsa_open, alsa_period_size)
- (alsa_configure, alsa_close, alsa_choose_format, alsa_write)
- (snd_error_quiet, alsa_init): New functions.
- (vox_init): Return 0 if unable to open device.
- (Fplay_sound_internal): Test for alsa first and use vox (oss) as
- a fallback.
- (struct sound_device): Add period_size.
- (wav_play, au_play): Use period_size if set.
-
- * Makefile.in (CFLAGS_SOUND): New flags for ALSA.
- (ALL_CFLAGS): Add CFLAGS_SOUND.
-
-2006-05-18 Kenichi Handa <handa@m17n.org>
-
- * callproc.c (Fcall_process): Reject encoding arguments by
- ascii-incompatible coding systems (e.g. utf-16).
-
- * coding.c (Qascii_incompatible): New variable.
- (syms_of_coding): Setup Qascii_incompatible.
- (setup_coding_system): Be sure to initialize coding->common_flags.
- Check `ascii-incompatible' property of the coding system.
-
- * coding.h (CODING_ASCII_INCOMPATIBLE_MASK): New macro.
-
-2006-05-18 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (display_tool_bar_line): Restore entire tool-bar
- geometry when backtracking in case last image doesn't fit on line.
-
-2006-05-18 MIYOSHI Masanori <miyoshi@meadowy.org> (tiny change)
-
- * xdisp.c (display_tool_bar_line): Don't adjust tool-bar height by
- more than height of one frame default line.
-
-2006-05-17 Richard Stallman <rms@gnu.org>
-
- * xfaces.c (better_font_p): Any font beats no font.
- (best_matching_font): Simplify based on above change.
-
- * buffer.c (Fprevious_overlay_change, Fnext_overlay_change): Doc fixes.
-
-2006-05-16 Kim F. Storm <storm@cua.dk>
-
- * xterm.c (handle_one_xevent): Check that f is not NULL before
- calling x_kill_gs_process.
-
-2006-05-14 Richard Stallman <rms@gnu.org>
-
- * textprop.c (Fnext_single_char_property_change)
- (Fprevious_single_char_property_change): Don't allow returning
- value beyond LIMIT in any cases.
- (Fnext_char_property_change, Fprevious_char_property_change): Doc fix.
-
- * intervals.c (get_local_map): Abort if POSITION outside BEGV, ZV.
-
-2006-05-14 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (handle_one_xevent): Check that f is not NULL before
- calling _XEditResCheckMessages.
-
-2006-05-14 Kim F. Storm <storm@cua.dk>
-
- * xterm.c (handle_one_xevent): Fix crash in 2006-03-24 change.
-
-2006-05-13 Eli Zaretskii <eliz@gnu.org>
-
- * frame.c (x_set_border_width): Fix error message to say "frame",
- not "window".
-
- * Makefile.in (SOME_MACHINE_LISP): Add fringe.elc.
-
-2006-05-12 Chong Yidong <cyd@stupidchicken.com>
-
- * intervals.c (set_point_both): Fix mixup before before and after
- in variable names.
-
- * editfns.c (Fline_beginning_position): Inhibit point-motion hooks
- while setting point temporarily.
-
-2006-05-11 Richard Stallman <rms@gnu.org>
-
- * lread.c (readevalloop): Abort if START non-nil for non-buffer input.
-
-2006-05-11 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (redisplay_tool_bar): Handle large tool-bar-border values.
-
-2006-05-11 Kenichi Handa <handa@m17n.org>
-
- * fileio.c (Finsert_file_contents): Fix for the case of IO error
- while handling replace operation.
-
-2006-05-10 Kenichi Handa <handa@m17n.org>
-
- * xfaces.c (realize_default_face) [HAVE_X_WINDOWS]: If the font
- chosen for the default face was different from the frame font,
- adjust the frame font.
-
-2006-05-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * image.c (Qduration) [MAC_OS]: Undo previous change.
- (syms_of_image) [MAC_OS]: Likewise.
- [MAC_OS] (gif_load): Emulate Graphic Control Extension block.
-
- * macfns.c (x_to_mac_color): Fix shift amount change.
- (mac_set_font) [USE_MAC_FONT_PANEL]: Use x_get_focus_frame.
- [USE_MAC_FONT_PANEL] (Fmac_set_font_panel_visibility): Doc fix.
-
- * macselect.c (Vmac_service_selection) [MAC_OSX]: Rename from
- Vmac_services_selection. All uses changed.
- (mac_store_service_event): Rename from mac_store_services_event in
- extern and calls.
-
- * macterm.c (Qservice) [MAC_OSX]: Rename from Qservices. All uses
- changed.
- [MAC_OSX] (mac_store_service_event): Rename from
- mac_store_services_event. All callers changed.
- [USE_MAC_FONT_PANEL] (mac_set_font_info_for_selection): Add args
- FACE_ID and C. All callers changed.
- (x_free_frame_resources) [USE_MAC_FONT_PANEL]: Call
- mac_set_font_info_for_selection when focus frame is destroyed.
- (XTread_socket): Revert to FrontNonFloatingWindow/FrontWindow.
-
- * macterm.h (mac_set_font_info_for_selection): Add 2nd and 3rd
- args in extern.
-
-2006-05-09 Chong Yidong <cyd@stupidchicken.com>
-
- * keymap.c (describe_map): Avoid generating duplicate entries if
- the shadowed binding has the same definition.
-
-2006-05-09 Kenichi Handa <handa@m17n.org>
-
- * keymap.c (push_key_description): Handle invalid character key.
-
-2006-05-08 Kenichi Handa <handa@m17n.org>
-
- * callproc.c (Fcall_process): Use system_eol_type for encoding
- arguments if eol_type is not yet decided.
-
- * coding.h (system_eol_type): Extern it.
-
- * coding.c (setup_coding_system): For invalid coding-system, set
- coding->eol_type to CODING_EOL_UNDECIDED.
- (encode_coding): Cancel previous change.
- (shrink_encoding_region): Likewise.
- (code_convert_region1): Likewise.
- (code_convert_string1): Likewise.
- (code_convert_string_norecord): Likewise.
-
- * fileio.c (choose_write_coding_system): Use system_eol_type for
- encoding if eol_type is not yet decided.
-
- * process.c (setup_process_coding_systems): Use system_eol_type
- for encoding if eol_type is not yet decided.
- (read_process_output): Likewise.
- (send_process): Likewise.
-
-2006-05-07 Juanma Barranquero <lekktu@gmail.com>
-
- * minibuf.c (syms_of_minibuf) <history-length>: Fix typo in doc.
-
-2006-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c (Fmac_clear_font_name_table): Move defun to macfns.c.
- (syms_of_mac): Likewise for defsubr.
-
- * macfns.c (mac_set_font): New function.
- (mac_frame_parm_handlers, syms_of_macfns): Replace x_set_font with it.
- (mac_window) [TARGET_API_MAC_CARBON && MAC_OSX]: Specify
- kWindowToolbarButtonAttribute when creating window.
- (Fmac_clear_font_name_table): Move from macfns.c.
- (syms_of_macfns): Likewise for defsubr.
- [USE_MAC_FONT_PANEL] (Fmac_set_font_panel_visibility): New defun.
- (syms_of_macfns) [USE_MAC_FONT_PANEL]: Defsubr it.
-
- * macgui.h (USE_MAC_FONT_PANEL): Define to 1 if USE_ATSUI is set
- and build is done on Mac OS X 10.2 and later.
-
- * macselect.c (mac_do_receive_drag): Remove unused variable `index'.
- (mac_store_services_event): Change return type in extern.
-
- * macterm.c (XLoadQueryFont) [USE_ATSUI]: Set font->mac_fontnum to
- FMFontFamily value.
- [USE_MAC_FONT_PANEL] (mac_set_font_info_for_selection): New function.
- (x_new_focus_frame) [USE_MAC_FONT_PANEL]: Use it.
- (QCfamily, QCweight, QCslant, Qnormal, Qbold, Qitalic): Add extern.
- (QWindow) [MAC_OSX]: Likewise.
- (Qfont) [USE_MAC_FONT_PANEL]: Likewise.
- (Vmac_atsu_font_table) [USE_ATSUI]: New variable.
- (syms_of_macterm) [USE_ATSUI]: Defvar it.
- (Qtoolbar_switch_mode) [MAC_OSX]: New variable.
- (Qpanel_closed, Qselection) [USE_MAC_FONT_PANEL]: Likewise.
- (syms_of_macterm): Intern and staticpro them.
- (init_font_name_table) [USE_ATSUI]: Add data to Vmac_atsu_font_table.
- [TARGET_API_MAC_CARBON] (mac_store_event_ref_as_apple_event):
- New function.
- [USE_CARBON_EVENTS] (mac_handle_command_event): Use it.
- [MAC_OSX] (mac_store_services_event): Likewise.
- [USE_CARBON_EVENTS] (mac_handle_window_event) [MAC_OSX]: Handle
- kEventWindowToolbarSwitchMode event.
- (install_window_handler) [USE_CARBON_EVENTS && MAC_OSX]: Register it.
- [MAC_OSX] (mac_store_services_event): Change return type to OSStatus.
- [USE_MAC_FONT_PANEL] (mac_handle_font_event): New function.
- (install_window_handler) [USE_MAC_FONT_PANEL]: Install it.
- (XTread_socket): Select window on mouse click if x_focus_frame is NULL.
-
- * macterm.h (mac_set_font_info_for_selection): Add extern.
-
-2006-05-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * image.c (Qduration) [MAC_OS]: New variable.
- (syms_of_image) [MAC_OS]: Intern and staticpro it.
- [MAC_OS] (gif_load): Save image extension data in img->data.lisp_val.
- [MAC_OSX] (image_load_quartz2d): Use cfstring_create_with_utf8_cstring
- instead of cfstring_create_with_string.
-
-2006-05-06 Kim F. Storm <storm@cua.dk>
-
- * .gdbinit (xframe): Print frame name.
- (xlist): New command to print a list (max 10 elements).
- (xpr): Print lisp object of any type.
- (pitx): Print it->pixel_width.
-
-2006-05-05 Kenichi Handa <handa@m17n.org>
-
- * xdisp.c (handle_composition_prop): Fix for the case of empty
- composition component.
-
-2006-05-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * keyboard.c (make_lispy_event) [MAC_OS]: Get Apple event info
- from event->arg.
-
- * termhooks.h (enum event_kind) [MAC_OS]: Update comment for
- MAC_APPLE_EVENT.
-
- * macterm.h (mac_make_lispy_event_code): Remove extern.
- (mac_post_mouse_moved_event): Add extern.
- (mac_aelist_to_lisp, mac_aedesc_to_lisp): Change arg 1 to
- `const AEDesc *' in externs.
- (create_apple_event_from_drag_ref) [TARGET_API_MAC_CARBON]: New extern.
-
- * mac.c (mac_aelist_to_lisp, mac_aedesc_to_lisp): Change arg 1 to
- `const AEDesc *'.
- [TARGET_API_MAC_CARBON] (create_apple_event): New function.
- [TARGET_API_MAC_CARBON] (create_apple_event_from_event_ref): Use it.
- Use xrealloc instead of repeated xmalloc/xfree.
- [TARGET_API_MAC_CARBON] (create_apple_event_from_drag_ref):
- New function.
-
- * macmenu.c (restore_menu_items, cleanup_popup_menu): Return a value.
-
- * macselect.c: Update copyright year.
- (mac_store_apple_event): Change return type to void in extern.
- (mac_handle_apple_event): Don't get return value from
- mac_store_apple_event.
- [TARGET_API_MAC_CARBON] (Vmac_dnd_known_types): New variable.
- (syms_of_macselect) [TARGET_API_MAC_CARBON]: Defvar it.
- [TARGET_API_MAC_CARBON] (mac_do_track_drag): Move function from
- macterm.c. Use Vmac_dnd_known_types as acceptable flavors.
- [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Likewise. New
- implementation using create_apple_event_from_drag_ref.
- [TARGET_API_MAC_CARBON] (mac_do_track_dragUPP)
- (mac_do_receive_dragUPP): Move variables from macterm.c.
- (install_drag_handler, remove_drag_handler): New functions.
-
- * macterm.c (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
- path select also for proxy icon click.
- [TARGET_API_MAC_CARBON] (mac_post_mouse_moved_event): New function.
- [USE_TOOLKIT_SCROLL_BARS] (scroll_bar_timer_callback): Use it.
- (xlfdpat_create): Remove unused label `error' and trailing sentences.
- (mac_do_track_drag, mac_do_receive_drag): Move functions to macselect.c.
- (mac_do_track_dragUPP, mac_do_receive_dragUPP): Move variables to
- macselect.c.
- (install_drag_handler, remove_drag_handler): Add extern.
- (mac_store_apple_event): Change return type to void. All uses changed.
- Create Lisp object from Apple event and store it into input event.
- (mac_make_lispy_event_code): Remove function.
- [TARGET_API_MAC_CARBON] (mac_store_drag_event): New function.
- (install_window_handler): Call install_drag_handler.
- (remove_window_handler): Call remove_drag_handler.
-
-2006-05-03 Richard Stallman <rms@gnu.org>
-
- * sound.c (Fplay_sound_internal): Dynamically allocate
- current_sound_device and current_sound.
- (sound_cleanup): Free them.
-
- * minibuf.c (read_minibuf): Don't use read_minibuf_noninteractive
- when inside a keyboard macro.
-
-2006-05-02 Andreas Schwab <schwab@suse.de>
-
- * xmenu.c (restore_menu_items): Return a value.
-
-2006-05-01 Martin Rudalics <rudalics@gmx.at>
-
- * syntax.c (Fforward_comment): Detect generic comment at beginning of
- buffer when moving backwards.
-
-2006-05-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * dispnew.c (update_window): Don't set changed_p when mode/header
- line is updated.
-
- * xdisp.c (prepare_menu_bars) [MAC_OS]: Call mac_update_title_bar.
- (get_glyph_face_and_encoding, get_char_face_and_encoding):
- Don't distinguish known faces from others.
-
- * mac.c (mac_coerce_file_name_ptr): Try typeFSRef if coercion
- through typeFileURL failed.
-
- * macfns.c (mac_update_title_bar): New function.
- [TARGET_API_MAC_CARBON] (mac_update_proxy_icon): New function.
- (show_hourglass, hide_hourglass) [USE_CG_DRAWING]:
- Call mac_prepare_for_quickdraw.
-
- * macgui.h (USE_ATSUI): Set default to 1 if MAC_OSX is defined.
- (USE_CG_DRAWING): Don't define if compiled on Mac OS X 10.1.
- (enum pcm_status): New enum.
- (XCHARSTRUCTROW_CHAR_VALID_P, XCHARSTRUCTROW_SET_CHAR_VALID)
- (XCharStructRow): Remove. Now validity is represented by
- non-negativeness of sum of ascent and descent.
- (struct MacFontStruct): Change type of member `rows'.
- (struct _XGC) [USE_CG_DRAWING]: Add member `clip_rects'.
-
- * macterm.c (mac_draw_line, mac_draw_line_to_pixmap):
- Adjust endpoints of strictly horizontal/vertical lines.
- (mac_set_clip_rectangles) [USE_CG_DRAWING]: Set clip_rects.
- (pcm_init, pcm_get_status): New functions.
- (x_per_char_metric, XLoadQueryFont): Use them instead of
- XCharStructRow and related macros.
- (x_draw_relief_rect): Don't adjust arguments of mac_draw_line.
- (x_free_frame_resources) [TARGET_API_MAC_CARBON]: Free FRAME_FILE_NAME.
- (XTread_socket) [TARGET_API_MAC_CARBON]: Handle proxy icon drag
- and window path pop-up menu on title bar.
- (mac_use_core_graphics) [USE_CG_DRAWING]: Set default to 1.
-
- * macterm.h (mac_update_title_bar): Add extern.
- (struct mac_output) [TARGET_API_MAC_CARBON]: New member `file_name'.
- (FRAME_FILE_NAME): New macro.
-
- * unexmacosx.c (unexec): Error if trying unexec from dumped executable.
-
-2006-04-30 Richard Stallman <rms@gnu.org>
-
- * keymap.c (Fdefine_key): Improve error message
- when KEY begins with a non-prefix key.
-
-2006-04-30 Martin Rudalics <rudalics@gmx.at>
-
- * syntax.c (Fforward_comment): Don't forget to break out of the loop
- when we skipped backward over a generic comment.
-
-2006-04-27 Nick Roberts <nickrob@snap.net.nz>
-
- * .gdbinit (pp1, pv1): Only print value as expression is now
- printed out by gud-print.
- (pv1): Correct doc string.
-
-2006-04-26 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keymap.c (store_in_keymap): Change `def' arg to not be `register'.
- Seems to trigger a bug in gcc-amd64 4.0.2 20051125 (Red Hat 4.0.2-8):
- keymap.c:895: error: address of register variable `def' requested.
-
-2006-04-26 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (construct_mouse_wheel): Handle negative coordinates.
-
- * w32fns.c (w32_wnd_proc) <WM_LBUTTONDOWN, WM_RBUTTONDOWN>:
- <WM_LBUTTONUP, WM_RBUTTONUP>: Call signal_user_input in the cases
- where we preempt mouse_button_timer.
-
-2006-04-25 Miles Bader <miles@gnu.org>
-
- * editfns.c (Ffield_beginning, find_field): Undo change of 2006-04-23.
-
-2006-04-24 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * process.h: Include headers for pid_t.
-
-2006-04-24 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (fill_stretch_glyph_string): Set s->nchars = 1 for code which
- does last_glyph=s->first_glyph+s->nchars-1, e.g. if stretch has relief.
- (produce_stretch_glyph): Assume that face box height and width is
- already included in stretch glyph size so caller doesn't have to
- consider the extra space otherwise added (fixes problem in ses.el).
-
- * frame.c (x_set_font): Clear f->n_tool_bar_rows and current frame
- matrices to force recalculation of tool-bar height after font change.
-
- * xdisp.c (tool_bar_lines_needed): New local `temp_row' for clarity.
- Clear it when done, so we don't accidentally draw a second copy of
- the tool-bar after resetting f->n_tool_bar_rows.
- (redisplay_tool_bar): Update tool-bar-lines frame parameter whenever
- we recalculate f->n_tool_bar_rows.
-
-2006-04-23 Lars Hansen <larsh@soem.dk>
-
- * editfns.c (find_field): Fix comment.
- (Ffield_beginning): Fix bug when POS is at field beginning.
-
-2006-04-22 Eli Zaretskii <eliz@gnu.org>
-
- * puresize.h (BASE_PURESIZE): Increase to 1205000.
-
-2006-04-21 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (redisplay_window): Fix last change. Don't recenter if
- window start is at BEGV.
-
- * dispextern.h (struct image): New member `corners'.
- (TOP_CORNER, LEFT_CORNER, BOT_CORNER, RIGHT_CORNER): New macros.
-
- * image.c (four_corners_best): New arg CORNERS specifies what pixels
- to look at in case image has margin.
- (x_create_bitmap_mask): Pass NULL for CORNERS to four_corners_best.
- (image_background, image_background_transparent)
- (x_build_heuristic_mask): Pass img->corners to four_corners_best.
- (gif_load): Set img->corners according to image's margin spec.
- Use img->corners values directly where applicable.
- Save image extension data in img->data.lisp_val.
- (gif_clear_image): New function to free img->data.lisp_val.
- (gif_type): Use it instead of generic x_clear_image.
- (Fimage_extension_data): New defun.
- (syms_of_image): Defsubr it.
-
-2006-04-21 John Sullivan <john@wjsullivan.net> (tiny change)
-
- * window.c (Fdisplay_buffer): Doc fix.
-
-2006-04-21 Eli Zaretskii <eliz@gnu.org>
-
- * s/ms-w32.h (SYSTEM_PURESIZE_EXTRA): Increase to 25000.
-
-2006-04-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * image.c [MAC_OS] (xpm_load_image): Fill in background field
- while we have ximg handy.
-
- * macmenu.c (restore_menu_items, save_menu_items): New functions
- from xmenu.c.
- (set_frame_menubar, digest_single_submenu): Apply 2006-04-18
- changes for xmenu.c.
-
- * macterm.c (x_per_char_metric): Return NULL if glyph width is 0.
- (add_mac_font_name): New function.
- (init_font_name_table): Use it. Adopt the first found font from
- those having the same family name.
-
-2006-04-21 Nick Roberts <nickrob@snap.net.nz>
-
- * xdisp.c (note_mouse_highlight): Use build_string.
-
-2006-04-20 Lars Hansen <larsh@soem.dk>
-
- * textprop.c (Fremove_list_of_text_properties):
- Ensure modify_region is called only when buffer is modified and that
- signal_after_change is allways called in that case.
-
- * print.c (PRINTFINISH): Call signal_after_change.
-
-2006-04-20 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (redisplay_window): Fix last change.
-
- * xdisp.c (redisplay_window): If current window start is not at the
- beginning of a line, select a new window start if buffer is modified
- and window start is in the modified region, but the first change is
- before window start.
-
-2006-04-18 Richard Stallman <rms@gnu.org>
-
- * xmenu.c (restore_menu_items, save_menu_items): New fns.
- (set_frame_menubar): Use save_menu_items. Save updated vector in
- the frame before unwinding it. Don't use unuse_menu_items.
- Don't use discard_menu_items.
- (digest_single_submenu): Abort if an item is not in a pane.
- (init_menu_items): Put the error check at the top.
-
- * keymap.c (describe_map): Make "shadowed" warning more verbose.
-
- * window.c (adjust_window_trailing_edge): Correctly distinguish
- series vs parallel cases, even when window has no parent.
-
- * abbrev.c (record_symbol): New function.
- (Finsert_abbrev_table_description): Sort the abbrevs alphabetically.
-
-2006-04-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * image.c (x_create_bitmap_from_data) [MAC_OS]: Don't check return
- value of xmalloc.
-
- * mac.c (mac_coerce_file_name_ptr, mac_coerce_file_name_desc)
- (create_apple_event_from_event_ref, xrm_get_preference_database)
- (cfstring_create_normalized): Don't check return value of xmalloc.
-
- * macselect.c (get_scrap_target_type_list, defer_apple_events)
- (copy_scrap_flavor_data, mac_handle_service_event): Don't check
- return value of xmalloc/xrealloc.
-
- * macterm.c (XCreateGC, x_per_char_metric, xlfdpat_create)
- (init_font_name_table, init_font_name_table, mac_do_list_fonts)
- (XLoadQueryFont, mac_store_apple_event): Don't check return value
- of xmalloc.
-
-2006-04-17 Kim F. Storm <storm@cua.dk>
-
- * window.c (coordinates_in_window): On the vertical border,
- calculate the row number measured from the top of the window, not
- the top of the frame.
- (window_loop): Test w->dedicated with !NILP instead of EQ Qt.
- (window_scroll_pixel_based): Fix off-by-one bug in 2002-12-23 change.
-
-2006-04-16 Eli Zaretskii <eliz@gnu.org>
-
- * s/ms-w32.h (SYSTEM_PURESIZE_EXTRA): Reduce to 24000.
-
-2006-04-16 Romain Francoise <romain@orebokech.com>
-
- * puresize.h (BASE_PURESIZE): Decrement back to 1200000.
-
-2006-04-16 Andreas Schwab <schwab@suse.de>
-
- * puresize.h (PURESIZE_RATIO): Reduce to 10/6.
-
-2006-04-15 Romain Francoise <romain@orebokech.com>
-
- * puresize.h (BASE_PURESIZE): Increment to 1210000.
-
-2006-04-13 Micha\e,Ak\e(Bl Cadilhac <michael.cadilhac@lrde.org>
-
- * print.c (Fprin1_to_string): Mention in the `doc' that the
- behavior is modified by `print-level' and `print-length'.
-
-2006-04-13 Kenichi Handa <handa@m17n.org>
-
- * coding.c (setup_coding_system): If eol-type is not yet decided
- and system_eol_type is not LF, set CODING_REQUIRE_ENCODING_MASK.
- If coding_system is nil, return 0.
- (code_convert_region1): Even if coding_system is nil, don't skip
- conversion if system_eol_type is not LF.
- (code_convert_string1): Likewise.
- (code_convert_string_norecord): Likewise.
-
-2006-04-13 Kenichi Handa <handa@m17n.org>
-
- * coding.c (setup_coding_system): Fix previous change.
- (encode_coding): If eol_type is not yet decided, use system_eol_type.
- (shrink_encoding_region): If eol_type is not yet decided and
- system_eol_type is not LF, don't shrink.
-
-2006-04-13 Nick Roberts <nickrob@snap.net.nz>
-
- * xdisp.c (note_mouse_highlight): Add help echo for dragging vertical
- line.
-
-2006-04-12 Richard Stallman <rms@gnu.org>
-
- * keyboard.c (read_key_sequence): Explicitly avoid keybuf[-1].
-
- * process.c (conv_lisp_to_sockaddr): If FAMILY unknown, just return.
- (Fprocess_send_eof): Abort if fail to open null device.
-
-2006-04-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * fns.c [HAVE_MENUS && MAC_OS]: Include macterm.h.
-
- * image.c [MAC_OS] (xpm_load_image): Add parentheses around
- assignment used as truth value. Add explicit braces to avoid
- ambiguous `else'.
- [MAC_OS] (gif_load): Remove unused variable `gcpro1'.
-
- * lisp.h (syms_of_fontset, Fset_fontset_font): Put extern and
- EXFUN in #ifdef HAVE_WINDOW_SYSTEM.
- (syms_of_xfns, syms_of_xsmfns, syms_of_xselect, syms_of_xterm):
- Put externs in #ifdef HAVE_X_WINDOWS.
- (syms_of_macfns, syms_of_macselect, syms_of_macterm)
- (syms_of_macmenu, syms_of_mac) [MAC_OS]: Add externs.
- (init_mac_osx_environment) [MAC_OSX]: Add extern.
-
- * mac.c (init_process): Remove undef.
- (select) [MAC_OSX]: Undefine before including sysselect.h.
- (posix_pathname_to_fsspec, fsspec_to_posix_pathname) [MAC_OSX]:
- Remove functions and prototypes.
- (parse_value): Add parentheses around + inside shift.
- (path_from_vol_dir_name): Make static.
- (get_temp_dir_name): Remove unused variables `cpb' and `dir_name'.
- [!MAC_OSX] (get_path_to_system_folder): Likewise.
- (Fmac_get_file_creator, Fmac_get_file_type): Remove unused
- variable `cCode'.
- (Fmac_coerce_ae_data): Remove unused variables `fref' and `fs'.
- (Fmac_get_preference): Add explicit braces to avoid ambiguous `else'.
-
- * macfns.c (x_to_mac_color): Remove unused variable `tail'.
- (x_set_mouse_color): Remove unused variable `dpy'.
- (Fx_create_frame): Remove unused variable `x_frame_count'.
- (Fx_server_version): Add explicit braces to avoid ambiguous `else'.
- (x_sync): Move from macterm.c.
- (Fx_file_dialog): Remove unused variable `default_filter_index'.
-
- * macmenu.c (min_menu_id): Make element type explicit.
-
- * macselect.c (get_flavor_type_from_symbol): Remove unused
- variable `val'.
- (get_scrap_private_timestamp, x_get_foreign_selection)
- (copy_scrap_flavor_data): Add explicit braces to avoid ambiguous `else'.
- (Fmac_process_deferred_apple_events): Remove unused variables
- `keyword', `reply', `apple_event', `count', and `err'.
-
- * macterm.c: Don't include gnu.h.
- (x_io_error_quitter, x_draw_image_foreground_1): Remove prototypes.
- (x_sync): Move to macfns.c.
- [USE_CG_DRAWING] (mac_define_fringe_bitmap): Remove unused
- variable `mask_bits'.
- (mac_compute_glyph_string_overhangs): Avoid ambiguous `else'.
- (x_draw_image_glyph_string): Remove unused variable `pixmap'.
- (x_mac_to_emacs_modifiers): Remove function.
- (XTset_vertical_scroll_bar, mac_handle_visibility_change)
- (x_make_frame_visible, xlfdpat_create, mac_handle_command_event):
- Add explicit braces to avoid ambiguous `else'.
- (x_make_frame_visible): Remove unused variables `type',
- `original_top', and `original_left'.
- (mac_do_list_fonts, XTread_socket): Add parentheses around && within ||.
- (x_load_font): Remove unused variables `full_name', and `value'.
- (do_get_menus, do_init_managers, do_check_ram_size) [!MAC_OS8]:
- Remove functions.
- (do_zoom_window): Reorganize variables with respect to conditionals.
- (init_command_handler): Remove unused variable `err'.
- [MAC_OSX] (mac_check_bundle): Remove unused variable `child'.
-
- * macterm.h (x_set_mouse_position, x_set_mouse_pixel_position)
- (x_make_frame_invisible, x_iconify_frame, x_free_frame_resources)
- (x_destroy_window, x_wm_set_size_hint, x_delete_display, XFreeGC)
- (do_menu_choice, have_menus_p, x_real_positions)
- (x_set_menu_bar_lines, x_pixel_width, x_pixel_height, x_char_width)
- (x_char_height, x_sync, x_set_tool_bar_lines, x_activate_menubar)
- (free_frame_menubar): Add externs.
-
- * unexmacosx.c: Include config.h before using HAVE_MALLOC_MALLOC_H.
- (malloc, realloc, free): Add undefs.
- (read_load_commands): Remove unused variable `n' and `j'.
- (copy_data_segment): Remove unused variable `r'.
-
- * xdisp.c (get_glyph_string_clip_rects): Add parentheses around &&
- within ||. Add explicit braces to avoid ambiguous `else'.
- (dump_glyph_row): Remove label for `inverse_p' from legend.
-
- * xfaces.c (Finternal_merge_in_global_face, try_font_list):
- Add explicit braces to avoid ambiguous `else'.
-
-2006-04-11 Micha\e,Ak\e(Bl Cadilhac <michael.cadilhac@lrde.org>
-
- * dispnew.c (init_display): Don't init X display if the user asked
- for a non-X display.
-
-2006-04-12 Kenichi Handa <handa@m17n.org>
-
- * coding.c (setup_coding_system): Use system_eol_type for default
- coding->eol_type.
-
-2006-04-11 Dan Nicolaescu <dann@ics.uci.edu>
-
- * lisp.h (wrong_type_argument): Mark as NO_RETURN.
-
- * data.c (wrong_type_argument): Try to avoid compiler warnings due
- to the fact the function is now marked as NO_RETURN.
-
-2006-04-10 Eli Zaretskii <eliz@gnu.org>
-
- * s/ms-w32.h (pid_t) [_MSC_VER]: New typedef.
-
-2006-04-10 Romain Francoise <romain@orebokech.com>
-
- * xrdb.c (gethomedir): Use xstrdup.
-
-2006-04-10 Andreas Schwab <schwab@suse.de>
-
- * xrdb.c (gethomedir): Make sure to always return a pointer that
- can be passed to free.
-
-2006-04-09 Richard Stallman <rms@gnu.org>
-
- * lisp.h (Fkill_emacs): Undo previous change.
-
-2006-04-08 Richard Stallman <rms@gnu.org>
-
- * search.c (boyer_moore): Test ch >= 0400, not >.
-
-2006-04-09 Dan Nicolaescu <dann@ics.uci.edu>
-
- * puresize.h (pure_write_error): Mark as NO_RETURN.
-
- * lisp.h (args_out_of_range, args_out_of_range_3)
-
-2006-04-08 Eli Zaretskii <eliz@gnu.org>
-
- * w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Ignore mouse movements
- if a menu is active on this frame.
-
-2006-04-08 Dan Nicolaescu <dann@ics.uci.edu>
-
- * lisp.h (report_file_error): Mark as NO_RETURN.
-
-2006-04-08 Eli Zaretskii <eliz@gnu.org>
-
- * alloc.c [STDC_HEADERS]: Include stddef.h.
-
- * lisp.h (PSEUDOVECSIZE): Fix last change.
-
-2006-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * process.h (struct Lisp_Process): Replace Lisp_Objects `pid',
- `raw_status_high', and `raw_status_low' with plain integers, and move
- them to the end of the structure.
-
- * alloc.c (allocate_process): Use PSEUDOVECSIZE to initialize the
- pseudovector's size field so only the Lisp_Object fields get GC'd.
-
- * process.c (update_status, make_process, Fdelete_process)
- (Fprocess_status, list_processes_1, start_process_unwind)
- (create_process, Fmake_network_process, server_accept_connection)
- (wait_reading_process_output, send_process, Fprocess_running_child_p)
- (process_send_signal, proc_encode_coding_system, Fprocess_send_eof)
- (sigchld_handler, status_notify): Adjust to new non-Lisp fields for
- `pid' and `raw_status'.
- (Fprocess_id, Fsignal_process): Same, and additionally use floats when
- representing PIDs that are larger than most-positive-fixnum.
-
- * keymap.c (describe_map): Only use XINT if we checked INTEGERP.
-
- * lisp.h (OFFSETOF, PSEUDOVECSIZE): New macros.
-
-2006-04-08 Eli Zaretskii <eliz@gnu.org>
-
- * w32fns.c (Fx_show_tip): Add 3 to the 5th arg of SetWindowPos.
-
-2006-04-03 Paul Eggert <eggert@cs.ucla.edu>
-
- * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): New macro, identical to
- ../lib-src/b2m.c and ../lib-src/editfns.c.
- (Fcurrent_time_string): Use it.
- Document that the year might not consume 4 columns if it's outside
- the range 1000-9999.
- Check for asctime failure.
- Don't assume that the output string length is always exactly 24.
-
-2006-04-03 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (XTread_socket): Initialize variable `f' before its use.
-
-2006-04-03 Kenichi Handa <handa@m17n.org>
-
- * image.c: Include "charset.h" and "coding.h".
- (x_find_image_file): Return an encoded file name.
-
-2006-04-01 Eli Zaretskii <eliz@gnu.org>
-
- * configure: Regenerated.
-
-2006-03-31 Kenichi Handa <handa@m17n.org>
-
- * xfns.c (xg_set_icon): Delete superfluous UNGCPRO.
-
-2006-03-30 Dan Nicolaescu <dann@ics.uci.edu>
-
- * xdisp.c (syms_of_xdisp): Fix variable name.
-
-2006-03-30 Kenichi Handa <handa@m17n.org>
-
- * xterm.c (x_term_init): Delete superfluous UNGCPRO.
-
-2006-03-29 Juanma Barranquero <lekktu@gmail.com>
-
- * keyboard.c (process_tool_bar_item): Reorder dummy args.
-
-2006-03-29 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keyboard.c (tool_bar_items): Use map_keymap.
- (process_tool_bar_item): Add dummy args to fit the required interface.
-
-2006-03-25 Eli Zaretskii <eliz@gnu.org>
-
- * .gdbinit (pr, pp, pp1, pv, pv1): Force print_output_debug_flag
- to zero before calling debug_print or safe_debug_print.
-
- * print.c (print_output_debug_flag): New global variable.
- (Fexternal_debugging_output) [WINDOWSNT]: Don't call
- OutputDebugString if print_output_debug_flag is zero.
-
-2006-03-24 Paul Eggert <eggert@cs.ucla.edu>
-
- * editfns.c (TM_YEAR_BASE): Move up, so the changes below can use it.
- (Fdecode_time, Fencode_time): Use TM_YEAR_BASE instead of 1900.
- (Fdecode_time): Cast tm_year to EMACS_INT.
- (Fcurrent_time_string): Report an invalid time specification if
- the argument is invalid. Also, check for out-of-range time stamps.
-
-2006-03-24 Kim F. Storm <storm@cua.dk>
-
- * xterm.c (handle_one_xevent):
- * w32term.c (w32_read_socket):
- * macterm.c (XTread_socket): Don't let key-press clear mouse face
- on in toolbar window if mouse-highlight is an integer.
-
- * fns.c (sxhash_list): Include last non-nil CDR in hash.
-
-2006-03-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macmenu.c (enum mac_menu_kind): New enum.
- (min_menu_id): New variable.
- (POPUP_SUBMENU_ID, MIN_POPUP_SUBMENU_ID, MIN_MENU_ID)
- (MIN_SUBMENU_ID): Remove defines. All uses are replaced with
- min_menu_id and enumerators in enum mac_menu_kind.
- (fill_menu, dispose_menus, install_menu_quit_handler): New arg KIND.
- All uses changed. Add range check for menu ID.
- (fill_menubar): Add range check for menu ID.
- [HAVE_CANCELMENUTRACKING] (menu_quit_handler): Check error code of
- GetEventParameter.
- (set_frame_menubar, mac_menu_show): Call install_menu_quit_handler
- for each menu kind.
-
-2006-03-22 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c: Undo 2006-03-21 change.
-
- * term.c: Define aliases for append_glyph and produce_stretch_glyph
- when `static' is defined to avoid name clash with those in xdisp.c.
-
- * process.c (Faccept_process_output): Fix to comply with lisp
- reference. Change arg "timeout" to "seconds" and allow both
- integer and float value. Change arg "timeout-msec" to "millisec"
- and interpret" as milliseconds rather than microseconds. Fix doc
- string accordingly.
-
-2006-03-21 Ken Raeburn <raeburn@raeburn.org>
-
- * xdisp.c (store_next_glyph): Rename from append_glyph.
- (generate_stretch_glyph): Rename from produce_stretch_glyph.
- All callers changed accordingly.
-
-2006-03-21 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c: x_session_initialized new variable.
- (x_term_init): Use x_session_initialized to check if
- x_session_initialize should be called.
- (x_initialize): Initialize x_session_initialized.
-
-2006-03-21 Kim F. Storm <storm@cua.dk>
-
- * fringe.c (draw_fringe_bitmap): Don't calculate default overlay arrow
- bitmap here, but ...
- (update_window_fringes): ... here, so we can test if it has changed.
-
-2006-03-20 Andreas Schwab <schwab@suse.de>
-
- * dispnew.c (init_display): Check DISPLAY here.
-
- * emacs.c (main): Don't check here.
-
- * xterm.c (x_display_ok): Don't use DISPLAY env var.
-
-2006-03-20 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * window.c (window_scroll_pixel_based): Yet another int/Lisp_Object
- mixup (YAILOM).
-
-2006-03-20 Eli Zaretskii <eliz@gnu.org>
-
- * emacs.c (main): Fix last change.
-
-2006-03-20 Kenichi Handa <handa@m17n.org>
-
- * fileio.c (Fwrite_region): Set visit_file to Qnil before GCPRO it.
-
- * keymap.c (map_keymap): Set tail to Qnil before GCPRO it.
-
- * xfns.c (xg_set_icon): Remove unnecessary GCPRO.
-
- * xterm.c (x_term_init): Remove unnecessary GCPRO.
-
-2006-03-19 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (set_cursor_from_row): Fix cursor property on overlay string,
- so it doesn't associate overlay string with following glyph by default.
- Allow integer property value to specify explicit number of buffer
- positions associate with overlay string.
-
-2006-03-18 Chong Yidong <cyd@stupidchicken.com>
-
- * xterm.c (x_display_ok): Fix minor bug and compilation warnings.
-
-2006-03-18 Nozomu Ando <nand@mac.com>
-
- * m/pmax.h (BROKEN_NOCOMBRELOC) [__NetBSD__]: Define.
- (LIB_STANDARD, START_FILES) [__NetBSD__]: Don't define.
- (START_FILES, RUN_TIME_REMAP, UNEXEC) [__NetBSD__, __OpenBSD__]:
- Don't redefine.
-
- * m/mips.h: Don't use unexmips on NetBSD.
- (LIBS_MACHINE): Move definition lower, so it doesn't use
- LD_SWITCH_MACHINE, START_FILES, LIB_STANDARD, LIBS_TERMCAP,
- C_SWITCH_MACHINE, and C_DEBUG_SWITCH.
-
- * unexelf.c [BROKEN_NOCOMBRELOC]: Include assert.h.
- (unexec) [BROKEN_NOCOMBRELOC]: Handle platforms whose nocombreloc
- option is broken (e.g., MIPS/NetBSD).
-
-2006-03-18 Craig McDaniel <craigmcd@gmail.com> (tiny change)
-
- * sheap.c (STATIC_HEAP_SIZE): Enlarge STATIC_HEAP_SIZE to 12MB.
- Remove the HAVE_X_WINDOWS conditional.
-
-2006-03-18 Vivek Dasmohapatra <vivek@etla.org> (tiny change)
-
- * emacs.c (main): If user asks for a display that is unavailable,
- simulate -nw.
-
- * xterm.c (x_display_ok): New function.
-
- * xterm.h: Add prototype for x_display_ok.
-
-2006-03-18 Eli Zaretskii <eliz@gnu.org>
-
- * w32fns.c (Fw32_select_font): Doc fix.
-
-2006-03-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * image.c [MAC_OS] (XPutPixel, XGetPixel)
- [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]: Don't use specialized
- version when depth is 32.
- (mac_create_cg_image_from_image) [MAC_OS && USE_CG_DRAWING]:
- New function.
- (prepare_image_for_display) [MAC_OS && USE_CG_DRAWING]: Use it.
- (x_clear_image_1) [MAC_OS && USE_CG_DRAWING]: Release CGImage.
-
- * macterm.c (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
- Create GWorld in ARGB pixel format.
- (mac_copy_area, mac_copy_area_with_mask) [USE_CG_DRAWING]:
- Remove functions.
- (x_draw_image_foreground) [USE_CG_DRAWING]: Use mac_draw_cg_image
- instead of mac_copy_area/mac_copy_area_with_mask.
-
-2006-03-15 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (extend_face_to_end_of_line): Always add space glyph to
- empty row. Fixes memory corruption revealed by 2006-03-02 change.
- (display_tool_bar_line): Skip empty tool-bar line if HEIGHT < 0.
- (tool_bar_lines_needed): Fix tool-bar display in case the tool-bar
- width is exactly the same as the window width. Don't count a final
- empty tool-bar line (pass HEIGHT = -1 to display_tool_bar_line).
-
-2006-03-15 Juanma Barranquero <lekktu@gmail.com>
-
- * fringe.c (w32_init_fringe, w32_reset_fringes): Revert to being
- conditional on HAVE_NTGUI, not WINDOWS_NT.
-
-2006-03-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * dispextern.h (mac_init_fringe) [MAC_OS]: Add prototype.
-
- * fringe.c (mac_init_fringe) [MAC_OS]: New function.
-
- * macterm.c (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
- (max_fringe_bmp, fringe_bmp) [USE_CG_DRAWING]: New variables.
- (mac_define_fringe_bitmap, mac_destroy_fringe_bitmap)
- (mac_draw_cg_image) [USE_CG_DRAWING]: New functions.
- (mac_draw_bitmap) [USE_CG_DRAWING]: Remove function.
- (x_draw_fringe_bitmap) [USE_CG_DRAWING]: Use mac_draw_cg_image
- instead of mac_draw_bitmap.
- (x_redisplay_interface) [USE_CG_DRAWING]: Set handlers for
- define_fringe_bitmap and destroy_fringe_bitmap.
-
-2006-03-14 Chong Yidong <cyd@stupidchicken.com>
-
- * xterm.c (x_uncatch_errors): Block input for entire function.
-
-2006-03-12 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (Fx_create_frame): Remove call to
- Qface_set_after_frame_default (from xfns.c 2003-05-26).
-
- * w32menu.c (Fx_popup_menu): Call w32_free_menu_strings when
- finished with the menu.
-
- * w32term.c: Sync 2005-10-24 xterm.c changes.
- (last_mouse_glyph_frame): New var.
- (note_mouse_movement): Say mouse moved if current frame differs
- from last_mouse_glyph_frame, and update last_mouse_glyph_frame.
- (w32_mouse_position): Set last_mouse_glyph_frame.
- Remove OLD_REDISPLAY_CODE block.
-
-2006-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macgui.h [USE_ATSUI && MAC_OSX]: Define USE_CG_TEXT_DRAWING to 1.
-
- * macterm.h (struct mac_output) [USE_CG_DRAWING]: New member cg_context.
- (mac_prepare_for_quickdraw) [USE_CG_DRAWING]: Add prototype.
-
- * mac.c (sys_select) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw.
-
- * macfns.c (x_create_tip_frame): Apply 2006-03-11 change for xfns.c.
-
- * macterm.c (mac_draw_rectangle, x_draw_glyph_string_foreground)
- (x_draw_composite_glyph_string_foreground)
- (x_draw_image_foreground): Undo previous changes.
- (x_draw_hollow_cursor): Likewise. Subtract 1 from the last
- argument of mac_draw_rectangle.
- (CG_SET_FILL_COLOR, CG_SET_STROKE_COLOR): New macros.
- (mac_draw_string_common, mac_draw_image_string_cg): Use them.
- (FRAME_CG_CONTEXT) [USE_CG_DRAWING]: New macro.
- (mac_begin_cg_clip, mac_end_cg_clip, mac_prepare_for_quickdraw)
- [USE_CG_DRAWING]: New functions.
- (mac_draw_line, mac_erase_rectangle, mac_clear_window)
- (mac_fill_rectangle, mac_draw_rectangle, mac_draw_string_common)
- (mac_draw_image_string_cg) [USE_CG_DRAWING]: Add Quartz 2D drawing part.
- (mac_draw_bitmap, mac_invert_rectangle, mac_draw_string_common)
- (mac_copy_area, mac_scroll_area, x_scroll_bar_create)
- (x_scroll_bar_remove, XTset_vertical_scroll_bar, x_set_window_size)
- (XTread_socket) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw.
-
-2006-03-12 L\e$,1 q\e(Brentey K\e,Aa\e(Broly <lorentey@elte.hu>
-
- * xfns.c (x_icon): Disable redundant call to `x_wm_set_window_state'.
-
-2006-03-11 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (signal_user_input): New function.
- (post_character_message): Use it for keyboard input.
- (w32_msg_pump): Use it for mouse input.
-
-2006-03-11 Luc Teirlinck <teirllm@auburn.edu>
-
- * window.c: Rename preserve_y to window_scroll_pixel_based_preserve_y.
- (window_scroll_pixel_based, syms_of_window): Adapt to above change.
-
-2006-03-11 Eli Zaretskii <eliz@gnu.org>
-
- * w32fns.c (w32_wnd_proc): Ignore middle and extra button events
- if a menu is already active (the menubar_active flag is on).
-
-2006-03-11 David Ponce <david@dponce.com>
-
- * xfns.c (x_create_tip_frame): Preserve received parms by copying them.
-
-2006-03-11 Eli Zaretskii <eliz@gnu.org>
-
- * w32term.c: Add x_fully_uncatch_errors and x_catching_errors to
- the list of unused display error handling functions.
-
- * eval.c (unwind_to_catch): Call x_fully_uncatch_errors only if
- HAVE_X_WINDOWS.
- (internal_condition_case, internal_condition_case_1)
- (internal_condition_case_2): Call x_catching_errors only if
- HAVE_X_WINDOWS.
-
- * vm-limit.c [HAVE_GETRLIMIT]: Don't define unconditionally.
- Don't include sys/resource.h unless defined.
-
-2006-03-11 Richard Stallman <rms@gnu.org>
-
- * keymap.c (describe_map): Shorten string to indicate shadowed binding.
-
- * vm-limit.c (get_lim_data, lim_data, data_space_start):
- Move from mem-limits.h.
- (enum warnlevel): New data type.
- (check_memory_limits): Rewrite the logic about warnings.
- Use standard `struct rlimit'. Check return values for nonsense.
- (memory_warnings): Always clear lim_data.
-
- * mem-limits.h (get_lim_data, lim_data, data_space_start):
- Move to vm-limit.c.
-
- * xterm.c (x_fully_uncatch_errors, x_catching_errors): New functions.
-
- * eval.c (unwind_to_catch): Call x_fully_uncatch_errors.
- (internal_condition_case_1, internal_condition_case_2):
- Abort if within unclosed x_catch_errors.
-
-2006-03-11 Romain Francoise <romain@orebokech.com>
-
- * process.c (Vprocess_adaptive_read_buffering): Doc fix.
-
-2006-03-11 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change)
-
- * lisp.h: Remove duplicate prototypes. Make the prototype of
- getloadavg be conditioned on HAVE_GETLOADAVG being undefined.
-
-2006-03-11 Eli Zaretskii <eliz@gnu.org>
-
- * xterm.c (x_draw_hollow_cursor): Subtract 1 from the last
- argument of XDrawRectangle.
-
- * xdisp.c (get_phys_cursor_geometry): Don't decrease height by 1.
-
- * macterm.c (mac_draw_rectangle): Don't add 1 to width and height.
- (x_draw_glyph_string_foreground)
- (x_draw_composite_glyph_string_foreground)
- (x_draw_image_foreground): Don't subtract 1 from width and height
- arguments to mac_draw_rectangle.
- (x_draw_hollow_cursor): Add 1 to w->phys_cursor_width.
-
-2006-03-10 Kim F. Storm <storm@cua.dk>
-
- * alloc.c (USE_POSIX_MEMALIGN): Fix last change.
-
-2006-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * alloc.c (USE_POSIX_MEMALIGN): New macro.
- (ABLOCKS_BASE, lisp_align_malloc, lisp_align_free): Use it.
-
-2006-03-09 Kenichi Handa <handa@m17n.org>
-
- * coding.c (DECODE_EMACS_MULE_COMPOSITION_CHAR): Fix decoding
- ASCII component of a composition.
-
-2006-03-08 Luc Teirlinck <teirllm@auburn.edu>
-
- * window.c: Declare preserve_y as a static global variable.
- (window_scroll_pixel_based): No longer declare preserve_y;
- it is global now.
- (syms_of_window): Set preserve_y to -1.
-
-2006-03-08 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * image.c [MAC_OS] (XPutPixel): Set alpha channel bits if pixmap
- depth is 32.
- [MAC_OS] (XGetPixel): Strip off alpha channel bits if pixmap
- depth is 32.
-
-2006-03-06 Chong Yidong <cyd@stupidchicken.com>
-
- * xdisp.c (handle_invisible_prop): Don't update it->position with
- a buffer position if we're in a display string.
-
-2006-03-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.h (MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH)
- (MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH): New defines.
-
- * macfns.c (x_default_scroll_bar_color_parameter)
- (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
- Remove unnecessary prototypes.
- (x_set_scroll_bar_default_width):
- Use MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH.
- (mac_set_scroll_bar_width): New function.
- (mac_frame_parm_handlers): Set it as handler for scroll-bar-width.
-
- * macterm.c (get_control_part_bounds): Fix type of return value.
- (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
- (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]: Don't show
- scroll bar if it is not tall enough to display scroll bar thumb.
- [USE_CARBON_EVENTS] (mac_convert_event_ref)
- (mac_handle_command_event, mac_handle_window_event)
- (mac_handle_mouse_event): Check error code of GetEventParameter.
- (convert_fn_keycode) [MAC_OSX]: Likewise.
-
-2006-03-05 Andreas Schwab <schwab@suse.de>
-
- * xselect.c (x_catch_errors_unwind): Fix missing return value.
-
-2006-03-02 Kim F. Storm <storm@cua.dk>
-
- * frame.h (struct frame): New member n_tool_bar_rows.
-
- * xdisp.c: Minimize the unpleasent visual impact of the requirement
- that non-toolkit tool-bars must occupy an integral number of screen
- lines, by distributing the rows evenly over the tool-bar screen area.
- (Vtool_bar_border): New variable.
- (syms_of_xdisp): DEFVAR_LISP it.
- (display_tool_bar_line): Add HEIGHT arg for desired row height.
- Make tool-bar row the desired height. Use default face for border
- below tool-bar.
- (tool_bar_lines_needed): Add N_ROWS arg. Use it to return number of
- actual tool-bar rows.
- (redisplay_tool_bar): Calculate f->n_tool_bar_rows initially.
- Adjust the height of the tool-bar rows to fill tool-bar screen area.
- (redisplay_tool_bar): Calculate f->n_tool_bar_rows when tool-bar area
- is resized.
-
-2006-03-01 Luc Teirlinck <teirllm@auburn.edu>
-
- * search.c (Fregexp_quote): Do not precede a literal `]' with two
- backslashes to try to make clear that it has a literal meaning; it
- does not do that. (It could close a character alternative
- containing a backslash.)
-
-2006-02-28 Chong Yidong <cyd@stupidchicken.com>
-
- * xselect.c (x_catch_errors_unwind): New function.
- (x_reply_selection_request): Put x_uncatch_errors in an unwind.
- (Fx_get_atom_name): Call x_uncatch_errors earlier.
-
- * window.c (Qscroll_up, Qscroll_down): New syms.
- (window_scroll_pixel_based): Make preserve_y static to avoid
- getting point stuck when scrolling 1 line.
-
-2006-02-26 Chong Yidong <cyd@stupidchicken.com>
-
- * xterm.h, xterm.c (x_uncatch_errors): Delete unneccessary argument.
-
- * xterm.c (x_load_font, x_term_init, XTmouse_position)
- (handle_one_xevent, x_connection_closed, x_list_fonts):
- No arg for x_uncatch_errors.
-
- * xselect.c (x_own_selection, x_decline_selection_request)
- (x_reply_selection_request, x_get_foreign_selection)
- (Fx_get_atom_name, Fx_send_client_event): Likewise.
-
- * xfns.c (x_real_positions, x_set_mouse_color, Fx_focus_frame):
- Likewise.
-
-2006-02-26 Luc Teirlinck <teirllm@auburn.edu>
-
- * lread.c: Declare Vload_file_rep_suffixes instead of
- deleted variable default_suffixes.
- (Fget_load_suffixes): New function.
- (Fload): Use Fget_load_suffixes and Vload_file_rep_suffixes.
- No longer use deleted variable default_suffixes. Update docstring.
- (syms_of_lread): defsubr Sget_load_suffixes.
- Expand `load-suffixes' docstring.
- Delete default_suffixes and DEFVAR_LISP the new variable
- `load-file-rep-suffixes'.
-
- * w32.c (check_windows_init_file): Use Fget_load_suffixes instead
- of Vload_suffixes.
-
- * lisp.h: EXFUN Fget_load_suffixes.
- Extern Vload_file_rep_suffixes.
-
- * eval.c (specpdl_ptr): Remove volatile qualifier for consistency
- with lisp.h.
-
-2006-02-26 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * lisp.h (struct specbinding, specpdl_ptr): Remove the volatile
- qualifier which was trying to avoid the bug that was fixed by
- yesterday's changes to xterm.c.
-
-2006-02-25 Chong Yidong <cyd@stupidchicken.com>
-
- * xterm.h (x_catch_errors) Return value changed to void.
- (x_uncatch_errors): Delete unused count argument.
-
- * xterm.c (x_catch_errors): Don't use record_unwind_protect, since
- it can be called in a signal handler.
- (x_catch_errors_unwind): Function deleted.
- (x_uncatch_errors): Deallocate last x_error_message_stack struct.
- (x_check_errors): Call x_uncatch_errors before signalling error.
-
- (x_load_font, x_term_init, XTmouse_position, handle_one_xevent)
- (x_connection_closed, x_list_fonts): Use new versions of
- x_catch_errors and x_uncatch_errors.
-
- * xselect.c (x_own_selection, x_decline_selection_request)
- (x_reply_selection_request, x_get_foreign_selection)
- (Fx_get_atom_name, Fx_send_client_event): Likewise.
-
- * xfns.c (x_real_positions, x_set_mouse_color, Fx_focus_frame):
- Likewise.
-
- * eval.c (record_unwind_protect): Add an assertion.
-
-2006-02-25 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * process.c (Fmake_network_process): Init the process's mark.
-
-2006-02-25 Kim F. Storm <storm@cua.dk>
-
- * buffer.c (modify_overlay): Force redisplay if we modify an
- overlay at the end of the buffer.
-
-2006-02-24 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_get_image_for_pixmap): If x_find_image_file returns
- nil the image file has been removed, in that case use the (cached)
- pixmap.
-
-2006-02-24 Kenichi Handa <handa@m17n.org>
-
- * fileio.c (Finsert_file_contents): When a text is replaced
- partially, be sure to set point before the inserted characters.
-
-2006-02-23 Zhang Wei <id.brep@gmail.com> (tiny change)
-
- * xfns.c (Fx_file_dialog): Return a decoded file name.
-
-2006-02-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * dispnew.c (update_text_area): Avoid needless redraw of rightmost
- glyph whose face is extended to the text area end.
-
- * macterm.c (x_set_toolkit_scroll_bar_thumb): Don't set control
- values if control is not visible or values are not changed.
-
-2006-02-22 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * window.c (Fwindow_list): Check `window' before doing XWINDOW.
- The default `window' should not be "on a different frame".
-
-2006-02-22 Kim F. Storm <storm@cua.dk>
-
- * indent.c (Fvertical_motion): Only try to move back if we can.
-
-2006-02-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macgui.h (struct _XGC) [!MAC_OSX || !USE_ATSUI]: New member
- n_clip_rects.
-
- * macmenu.c (digest_single_submenu): Apply 2006-02-19 change for
- xmenu.c.
-
- * macterm.c (GC_CLIP_REGION): Remove macro.
- (mac_begin_clip, mac_end_clip): Take arg GC instead of REGION.
- All uses changed. Don't do clipping if n_clip_rects is zero.
- (mac_set_clip_rectangles): Use xassert instead of abort.
- Set n_clip_rects. Don't make clip_region empty when number of
- clipping rectangles is zero.
- (mac_reset_clip_rectangles): Set n_clip_rects directly instead of
- calling mac_set_clip_rectangles.
- (x_set_toolkit_scroll_bar_thumb): Temporarily hide scroll bar to
- avoid multiple redraws.
-
-2006-02-22 Kim F. Storm <storm@cua.dk>
-
- * fringe.c (draw_fringe_bitmap): Fix overlay-arrow display.
-
-2006-02-21 Kim F. Storm <storm@cua.dk>
-
- * fringe.c (syms_of_fringe) <fringe-bitmaps>: Doc fix.
-
-2006-02-21 Zhang Wei <brep@newsmth.org>
-
- * xfns.c (Fx_file_dialog, Motif and GTK): DECODE_FILE before
- returning it.
-
-2006-02-21 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change)
-
- * fringe.c (horizontal_bar_bits): Rename from `horisontal_bar_bits'.
- (standard_bitmaps): Use it.
-
-2006-02-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (mac_draw_string_common): Remove arg MODE. New arg
- BG_WIDTH. All uses changed. Draw background if BG_WIDTH is not zero.
- (mac_draw_image_string, mac_draw_image_string_16): New arg BG_WIDTH.
- [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg): Rename from
- mac_draw_string_cg. New arg BG_WIDTH. All uses changed.
- Draw background if BG_WIDTH is not zero. Use float constants as
- divisors instead of double. Use alloca instead of xmalloc/xfree.
- (x_draw_glyph_string_background, x_draw_glyph_string_foreground)
- [!MAC_OS8 || USE_ATSUI]: Background may be drawn using
- mac_draw_image_string* functions.
- (XLoadQueryFont) [MAC_OS8 && USE_ATSUI]: Don't adjust heights of
- some fonts when srcCopy text transfer mode might be used.
- (mac_begin_clip, mac_end_clip): Check if region is empty.
- (mac_set_clip_rectangles): When resetting clip region, make it
- empty instead of disposing of it.
-
-2006-02-20 Kim F. Storm <storm@cua.dk>
-
- * Makefile.in: Add fringe.elc to WINDOW_SUPPORT.
-
- * buffer.h (struct buffer): New members fringe_indicator_alist and
- fringe_cursor_alist.
-
- * buffer.c (init_buffer_once): Set dummy default values for
- fringe-indicator-alist and fringe-cursor-alist. The proper
- default values are set by pre-loading fringe.el.
- (syms_of_buffer): defvar_per_buffer new fringe-indicator-alist and
- fringe-cursor-alist buffer-local variables and defvar_lisp_nopro
- corresponding default- variables.
-
- * fringe.c (enum fringe_bitmap_type): Remove. Change all uses
- to use `int'.
- (NO_FRINGE_BITMAP, UNDEF_FRINGE_BITMAP, MAX_STANDARD_FRINGE_BITMAPS):
- Define explicitly.
- (Qtruncation, Qcontinuation, Qempty_line, Qtop_bottom)
- (Qhollow_small): New variables.
- (syms_of_fringe): Intern and staticpro them.
- (question_mark_bits): Rename from unknown_bits.
- (left_curly_arrow_bits): Rename from continuation_bits.
- (right_curly_arrow_bits): Rename from continued_bits.
- (left_triangle_bits): Rename from ov_bits.
- (right_triangle_bits): Add.
- (filled_rectangle_bits): Rename from filled_box_cursor_bits.
- (hollow_rectangle_bits): Rename from hollow_box_cursor_bits.
- (filled_square_bits): Add.
- (vertical_bar_bits): Rename from bar_cursor_bits.
- (horizontal_bar_bits): Rename from hbar_cursor_bits.
- (empty_line_bits): Rename from zv_bits.
- (standard_bitmaps): Update to use new names.
- (draw_fringe_bitmap_1): Make static.
- (get_logical_cursor_bitmap, get_logical_fringe_bitmap): New functions
- to map from logical cursors and indicators to physical bitmaps.
- (draw_fringe_bitmap): Resolve fringe cursor and overlay-arrow
- bitmaps using symbol names instead of bitmap numbers.
- (update_window_fringes): Use logical indicator symbol names
- instead of bitmap numbers for logical. Add bitmap cache.
- (LEFT_FRINGE, RIGHT_FRINGE): New helper macros.
-
-2006-02-20 Chong Yidong <cyd@stupidchicken.com>
-
- * regex.c: Revert 2006-02-19 change.
- (xmalloc, xrealloc): Define these when not linked to Emacs.
- Redefine malloc -> xmalloc, realloc -> xrealloc as in Emacs case.
-
-2006-02-19 Luc Teirlinck <teirllm@auburn.edu>
-
- * regex.c (extend_range_table_work_area): Fix typo.
-
-2006-02-19 Richard M. Stallman <rms@gnu.org>
-
- * xterm.c (x_catch_errors): Use xmalloc.
-
- * regex.c (extend_range_table_work_area): Call xmalloc and xrealloc.
- (regex_compile): Likewise.
- (regcomp): Use xmalloc.
-
- * gtkutil.c (malloc_widget_value): Use xmalloc.
-
- * vm-limit.c [HAVE_GETRLIMIT]: Include sys/resource.h.
- (check_memory_limits) [HAVE_GETRLIMIT]: Use getrlimit.
-
- * xmenu.c (digest_single_submenu): When pane_string is empty,
- do initialize save_wv.
-
-2006-02-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * xdisp.c (update_menu_bar) [MAC_OS]: Don't set
- w->update_mode_line if arg F is not the selected frame.
-
- * macmenu.c (popup_activated_flag, submenu_id)
- (next_menubar_widget_id): Remove variables.
- (initialize_frame_menubar): Remove function.
- (pop_down_menu, mac_menu_show): Simplify save value.
- (dispose_menus): New function.
- (pop_down_menu, fill_menubar): Use it.
- (fill_submenu): Remove function. All uses changed to fill_menu.
- (add_menu_item): Remove args SUBMENU and FORCE_DISABLE. New arg
- POS. Don't call SetMenuItemHierarchicalID here.
- (fill_menu): Add arg SUBMENU_ID. Return submenu_id that is to be
- used next. Call SetMenuItemHierarchicalID here.
- (fill_menubar): Add arg DEEP_P. All uses changed. Clean up menu
- objects if needed. Reuse existing menu bar titles if possible.
- (set_frame_menubar): Don't clean up menu objects here.
-
-2006-02-18 Chong Yidong <cyd@stupidchicken.com>
-
- * window.c (window_min_size_1): Ensure room for the scroll bar and
- fringes.
-
-2006-02-17 Romain Francoise <romain@orebokech.com>
-
- * puresize.h (BASE_PURESIZE): Increment to 1200000.
-
-2006-02-17 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * alloc.c (Fmake_symbol): Comment-out left-over assert from before the
- addition of the BLOCK_INPUTs.
-
-2006-02-17 Juanma Barranquero <lekktu@gmail.com>
-
- * window.c (Fset_window_scroll_bars): Doc fix.
-
-2006-02-17 Kenichi Handa <handa@m17n.org>
-
- * xdisp.c (display_mode_element): Call display_string with correct
- PREC arg (which must be a number of characters, not column width).
-
-2006-02-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * frame.c (x_get_arg): Clear out PARAM in ALIST also on Mac.
-
- * macfns.c (x_set_menu_bar_lines): Menu bar is always shown on Mac.
-
- * macmenu.c (set_frame_menubar): Don't call DrawMenuBar.
-
-2006-02-14 Richard M. Stallman <rms@gnu.org>
-
- * frame.c (x_get_arg): Clear out all occurrences of PARAM in ALIST.
-
- * m/ibms390x.h: New file.
-
-2006-02-14 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_tool_bar_detach_callback): Set show-arrow to the
- value of x-gtk-whole-detached-tool-bar.
- (xg_tool_bar_attach_callback): Set show-arrow to TRUE.
-
- * xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar.
-
-2006-02-14 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_x_to_emacs_modifiers): Make non-static.
-
- * xterm.h: Declare x_x_to_emacs_modifiers.
-
- * gtkutil.c (xg_tool_bar_button_cb): New function.
- (xg_tool_bar_callback): Call x_x_to_emacs_modifiers to
- store modifiers in event.
- (update_frame_tool_bar): Connect button-release-event to
- xg_tool_bar_button_cb.
-
-2006-02-13 Richard M. Stallman <rms@gnu.org>
-
- * .gdbinit (xwindow): Update the code to show the window box.
-
-2006-02-13 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (note_mouse_movement): Check for NULL FRAME_X_OUTPUT (frame).
-
-2006-02-12 Richard M. Stallman <rms@gnu.org>
-
- * cmds.c (internal_self_insert): Handle weird auto-fill-function.
-
-2006-02-11 Eli Zaretskii <eliz@gnu.org>
-
- * keyboard.c (Venable_disabled_menus_and_buttons): New variable.
- (syms_of_keyboard): DEVFAR_LISP and initialize it.
- (parse_tool_bar_item, parse_menu_item): If that variable is
- non-nil, don't disable menu items and tool-bar buttons.
-
-2006-02-11 Juanma Barranquero <lekktu@gmail.com>
-
- * doc.c (Fsubstitute_command_keys): Doc fix.
-
-2006-02-10 Thien-Thi Nguyen <ttn@gnu.org>
-
- * data.c (Findirect_function): Rewrite docstring.
- Fix omission bug: Declare new arg NOERROR.
-
-2006-02-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (x_set_mouse_color): Don't call rif->define_frame_cursor
- if window_desc is not set yet.
- (Fx_create_frame): Remove variable x_frame_name. Apply 2005-12-07
- and 2006-01-26 changes for xfns.c. Call x_iconify_frame if frame
- parameter `visibility' is `icon'.
- (Fx_create_frame, x_create_tip_frame): Use "fontset-standard"
- instead of "fontset-mac".
- (Fx_focus_frame): New defun.
- (syms_of_macfns): Defsubr it.
-
- * macterm.c (mac_define_frame_cursor): Don't change pointer shape
- for unfocused frame.
- (x_raise_frame): Call BringToFront instead of SelectWindow.
- (x_lower_frame): Use NULL instead of nil.
- (x_make_frame_visible): Don't call SelectWindow.
- (XTread_socket): Increment handling_signal at the start, decrement
- it at the end.
- [USE_CG_TEXT_DRAWING] (init_cg_text_anti_aliasing_threshold): Use
- CFPreferencesGetAppIntegerValue instead of Fmac_get_preference.
-
-2006-02-10 Kim F. Storm <storm@cua.dk>
-
- * data.c (Findirect_function): Add NOERROR arg. All callers changed
- to pass Qnil for NOERROR.
-
- * keymap.c (current_minor_maps_error): Remove.
- (current_minor_maps): Pass Qt for NOERROR to Findirect_function
- instead of using internal_condition_case_1+current_minor_maps_error.
-
-2006-02-09 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (handle_one_xevent): Must note mouse movement even for nil
- frames for GTK, in that case it is the tool bar. This is so that
- highlighted text get reset properly.
-
-2006-02-09 Juanma Barranquero <lekktu@gmail.com>
-
- * alloc.c (Fmake_bool_vector, Fpurecopy): Doc fixes.
-
-2006-02-08 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * window.c (adjust_window_trailing_edge): Check that shrinking
- does not set a window to size zero or less.
-
-2006-02-08 Miles Bader <miles@gnu.org>
-
- * editfns.c (Fconstrain_to_field): Use Fget_char_property instead
- of Fget_text_property (other field functions work with overlays as
- well as text-properties).
-
-2006-02-07 Kenichi Handa <handa@m17n.org>
-
- * dispextern.h (unibyte_display_via_language_environment): Extern it.
-
- * xterm.h (unibyte_display_via_language_environment):
- * w32term.h (unibyte_display_via_language_environment):
- * macterm.h (unibyte_display_via_language_environment): Delete extern.
-
-2006-02-07 Kenichi Handa <handa@m17n.org>
-
- * term.c (append_glyph): Refer to it->char_to_display instead of it->c.
- (produce_glyphs): Set the character to print in
- it->char_to_display. Handle unibyte-display-via-language-environment.
- (produce_stretch_glyph): Set character to print in it->char_to_display.
-
-2006-02-06 Kenichi Handa <handa@m17n.org>
-
- * lread.c (openp): Initialize encoded_fn before GCPRO it.
-
-2006-02-05 Ken Raeburn <raeburn@raeburn.org>
-
- * editfns.c (Fconstrain_to_field): Fix int/Lisp_Object mixup.
-
- * lisp.h (XPNTR) [!NO_UNION_TYPE && !HAVE_SHM && !DATA_SEG_BITS]:
- Cast bitfield value to EMACS_INT, to suppress gcc warning.
-
- * xrdb.c (malloc, realloc, free) [emacs]: Undefine macros before
- defining.
-
-2006-02-03 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c: Cache last merged escape glyph face.
- (last_escape_glyph_frame, last_escape_glyph_face_id)
- (last_escape_glyph_merged_face_id): New variables.
- (get_next_display_element): Use/update them.
- (redisplay_internal): Reset them before redisplay.
-
- * xdisp.c (set_iterator_to_next): Optimize 2004-12-13 fix.
- Only recheck faces after displaying ellipsis.
-
-2006-02-02 Kenichi Handa <handa@m17n.org>
-
- * coding.c (decode_composition_emacs_mule): Fix handling of
- incorrect format data.
-
-2006-01-31 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (update_frame_tool_bar): Use new tool bar function
- gtk_toolbar_insert() so we can have tool bars of different sizes.
-
-2006-01-30 Luc Teirlinck <teirllm@auburn.edu>
-
- * data.c (Flistp): Doc fix.
-
-2006-01-30 Juanma Barranquero <lekktu@gmail.com>
-
- * window.c (Fother_window, Fwindow_vscroll, Fset_window_vscroll):
- Fix typos in docstrings.
-
-2006-01-28 Luc Teirlinck <teirllm@auburn.edu>
-
- * data.c (Fcar, Fcdr): Add links to Elisp manual to the docstrings.
-
-2006-01-27 Chong Yidong <cyd@stupidchicken.com>
-
- * alloc.c (make_interval, allocate_string)
- (allocate_string_data, make_float, Fcons, allocate_vectorlike)
- (Fmake_symbol, allocate_misc): Use BLOCK_INPUT when accessing
- global variables.
-
-2006-01-27 Eli Zaretskii <eliz@gnu.org>
-
- * dired.c (DIRENTRY_NONEMPTY) [__CYGWIN__]: Don't use d_ino; use
- the MSDOS definition.
-
-2006-01-26 Richard M. Stallman <rms@gnu.org>
-
- * alloc.c (check_pure_size): Make overflow message an "error message".
-
- * keymap.c (Fmap_keymap): Doc fix.
-
- * xfns.c (Fx_create_frame): Put all specified parms into f->param_alist
- unless they were cleared out.
-
- * frame.c (x_get_arg): "Clear out" the parm in ALIST if found there.
-
-2006-01-26 L\e$,1 q\e(Brentey K\e,Aa\e(Broly <lorentey@elte.hu>
-
- * editfns.c (Fconstrain_to_field): Fix behaviour on field boundaries.
- (find_field): Set before_field to after_field when pos is at BEGV.
- (Fline_beginning_position, Fline_end_position):
- Clarify confusing doc string.
-
- * cmds.c (Fbeginning_of_line, Fend_of_line): Clarify confusing doc
- string.
-
-2006-01-26 Kenichi Handa <handa@m17n.org>
-
- * callproc.c (Fcall_process): GCPRO error_file. Encode infile,
- current_dir, and error_file. On reporting an error, decode them
- back.
-
-2006-01-24 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * regex.c (IMMEDIATE_QUIT_CHECK): Use it with SYNC_INPUT as well.
- (re_match_2_internal) <on_failure_jump, on_failure_jump_smart>:
- Don't check for quit, since any loop will go through fail or jump.
-
-2006-01-24 Chong Yidong <cyd@stupidchicken.com>
-
- * alloc.c (allocate_string_data): Update next_free immediately, to
- reduce risk of memory clobberage.
-
-2006-01-24 L\e$,1 q\e(Brentey K\e,Aa\e(Broly <lorentey@elte.hu>
-
- * xdisp.c (handle_invisible_prop): Set it->position to fix cursor
- display when point moves across an ellipsis. If there are
- adjacent invisible texts, don't lose the second one's ellipsis.
- (x_produce_glyphs): Doc fix.
-
-2006-01-23 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xterm.c (x_catch_errors_unwind): Yet another int/Lisp_Object mixup.
-
-2006-01-23 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (handle_single_display_spec): Fix handling of space
- property on char from string: set *position rather than
- it->current.pos.
- (produce_stretch_glyph): Reduce width of stretch glyphs so they
- don't get wider than the window (unless truncate-lines is on).
-
-2006-01-22 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xterm.c: Avoid allocating Lisp data from a signal handler.
- (x_error_message): New var to replace x_error_message_string.
- (x_error_catcher, x_catch_errors, x_catch_errors_unwind)
- (x_check_errors, x_had_errors_p, x_clear_errors, x_error_handler)
- (syms_of_xterm): Use it instead of x_error_message_string.
-
- * alloc.c (lisp_align_free): Add an assertion.
- (make_interval, allocate_string, make_float, Fcons, Fmake_symbol)
- (allocate_misc): If ENABLE_CHECKING is on, check we're not called from
- a signal handler.
-
-2006-01-21 Luc Teirlinck <teirllm@auburn.edu>
-
- * dired.c (syms_of_dired) <completion-ignored-extensions>: Doc fix.
-
-2006-01-21 Romain Francoise <romain@orebokech.com>
-
- * xdisp.c (get_window_cursor_type): Fix last change.
- Update copyright year.
-
-2006-01-20 Eli Zaretskii <eliz@gnu.org>
-
- * lread.c (Fload): Don't leak the file descriptor returned by
- openp if we are going to signal an error.
-
- * w32.c (sys_close): If FD is outside [0..MAXDESC) limits, pass it
- directly to _close.
- (sys_dup): Protect against new_fd larger than fd_info[] can handle.
- (sys_read): If FD is outside [0..MAXDESC) limits, pass it directly
- to _read.
- (sys_write): If FD is outside [0..MAXDESC) limits, pass it
- directly to _write.
-
- * .gdbinit: Don't dereference Vsystem_type's Lisp_Symbol pointer
- if it is NULL.
-
-2006-01-20 Kenichi Handa <handa@m17n.org>
-
- * puresize.h (BASE_PURESIZE): Increment to 1190000.
-
-2006-01-19 Chong Yidong <cyd@stupidchicken.com>
-
- * xdisp.c (get_window_cursor_type): Use cursor type specified by
- the selected buffer for the echo area too.
-
-2006-01-19 Richard M. Stallman <rms@gnu.org>
-
- * keymap.c (Fmap_keymap): Doc fix.
-
- * s/irix6-5.h (GC_SETJMP_WORKS, GC_MARK_STACK): New definitions.
-
- * keyboard.c (echo_char): Don't omit the space between first two
- echoed chars.
-
- * minibuf.c (read_minibuf): Fix previous change.
-
-2006-01-19 Kenichi Handa <handa@m17n.org>
-
- * xterm.c (handle_one_xevent): Handle keysyms 0x1000000..0x10000FF.
-
-2006-01-17 Richard M. Stallman <rms@gnu.org>
-
- * frame.c (x_frame_get_and_record_arg): Don't record Qunbound
- value in f->param_alist.
-
-2006-01-15 Andreas Schwab <schwab@suse.de>
-
- * search.c (Freplace_match): Use UPPERCASEP instead of !NOCASEP.
-
-2006-01-13 Richard M. Stallman <rms@gnu.org>
-
- * Makefile.in: Define new macro WINDOW_SUPPORT.
- (lisp): Use it.
- (SOME_MACHINE_LISP): Add conditionally loaded files.
-
-2006-01-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c [USE_ATSUI] (atsu_get_text_layout_with_text_ptr)
- [MAC_OS_X_VERSION_MAX_ALLOWED >= 1020]: Specify kATSLineUseQDRendering.
- (XLoadQueryFont) [USE_ATSUI]: Display diacritical marks in
- decomposed form.
-
- * process.c [HAVE_INTTYPES_H]: Include inttypes.h.
- (ifflag_table): Fix typo (IFF_OACTIV -> IFF_OACTIVE).
- (Fnetwork_interface_info): Use HAVE_STRUCT_IFREQ_IFR_NETMASK
- macro. Also try member ifr_addr when getting netmask.
-
-2006-01-10 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * fileio.c (Fexpand_file_name): Remove redundant tests.
- Fix elimination of // so that it doesn't prevent elimination of an
- immediately following /. or /..
-
-2006-01-09 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_toggle_notify_cb): New function.
- (xg_toggle_visibility_cb): Move setting of x_gtk_show_hidden_files to
- xg_toggle_notify_cb.
- (xg_get_file_with_chooser): Add callback to xg_toggle_notify_cb when
- parameter value changes so the toggle button gets updated.
-
-2006-01-06 Nick Roberts <nickrob@snap.net.nz>
-
- * .gdbinit: Fix typo.
-
-2006-01-05 Eli Zaretskii <eliz@gnu.org>
-
- * .gdbinit: Fix last change.
-
-2006-01-05 Kim F. Storm <storm@cua.dk>
-
- * process.c (Fmake_network_process): Use AF_INET instead of
- AF_UNSPEC when AF_INET6 is not defined.
-
-2006-01-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c (mac_coerce_file_name_ptr, mac_coerce_file_name_desc):
- Don't check that the other type is known file-related one.
-
- * macfns.c (Fx_server_version): Use gestaltSystemVersionMajor,
- gestaltSystemVersionMinor, and gestaltSystemVersionBugFix on Mac
- OS X 10.4 and later.
-
-2006-01-04 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_get_image_for_pixmap): If the image is from a file,
- let GTK do all image processing. Importing Emacs own pixmaps to GTK
- looks bad for inactive tool bar items with some Gnome themes.
-
-2006-01-04 Eli Zaretskii <eliz@gnu.org>
-
- * .gdbinit: Avoid a warning message when x_error_quitter is not
- compiled in.
-
- * process.c [WINDOWSNT]: Undef AF_INET6 to disable IPv6 support
- for w32.
-
-2006-01-04 Kim F. Storm <storm@cua.dk>
-
- * process.c: Add IPv6 support.
- (Qipv4, Qipv6): New vars.
- (syms_of_process): Intern and staticpro them.
- (Fformat_network_address): Handle 9 or 8 element vector as IPv6 address
- with or without port number. Handle 4 element vector as IPv4 address
- without port number.
- (conv_sockaddr_to_lisp, get_lisp_to_sockaddr_size)
- (conv_lisp_to_sockaddr): Handle IPv6 addresses.
- (Fmake_network_process): Use :family 'ipv4 and 'ipv6 to explicitly
- request that address family only. :family nil or omitted means to
- determine address family from the specified :host and :service.
- (ifflag_table): Add missing OpenBSD IFF_ flags.
- (server_accept_connection): Handle IPv6 addresses.
- (init_process): Add (:family ipv4) and (:family ipv6) sub-features.
-
- * .gdbinit: Undo last change. Instead, look at Vsystem_type to
- determine which breakpoints to set.
-
-2006-01-03 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keymap.c (describe_map_compare): Yet another int/Lisp_Object mixup.
-
- * window.h (Fwindow_minibuffer_p): Declare (for use in minibuf.c).
-
-2006-01-03 Romain Francoise <romain@orebokech.com>
-
- * emacs.c (main): Update copyright year.
-
-2006-01-03 Ken Raeburn <raeburn@gnu.org>
-
- * callproc.c (delete_temp_file): Bind file-name-handler-alist to
- nil for the call to internal_delete_file.
-
-2006-01-01 Ken Raeburn <raeburn@gnu.org>
-
- * callproc.c (Fcall_process_region): Bind file-name-handler-alist
- to nil for the call to Fwrite_region.
-
-2005-12-31 Richard M. Stallman <rms@gnu.org>
-
- * minibuf.c (read_minibuf): Clear out all other minibuffer windows.
-
-2005-12-31 Eli Zaretskii <eliz@gnu.org>
-
- * emacs.c (gdb_pvec_type): A dummy variable for GDB's sake.
-
-2005-12-30 Luc Teirlinck <teirllm@auburn.edu>
-
- * textprop.c (set_text_properties): Reword description of return value.
- Return Qnil if caller wants to remove all text properties from a
- string and the string already has no intervals.
-
-2005-12-30 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * term.c (visible_cursor): New boolean var.
- (set_terminal_modes, tty_show_cursor): Use "vs" or "ve" depending on
- visible_cursor.
- (syms_of_term): Export the new var as "visible-cursor".
-
-2005-12-30 Eli Zaretskii <eliz@gnu.org>
-
- * .gdbinit: Tell users not to worry about GDB warnings that some
- functions do not exist in the binary.
-
-2005-12-30 Andreas Schwab <schwab@suse.de>
-
- * process.c (Fnetwork_interface_info): Correctly terminate the
- loop over ifflag_table.
-
-2005-12-29 Richard M. Stallman <rms@gnu.org>
-
- * lread.c (readevalloop): Test for reading a whole buffer
- before actually reading anything. Handle all cases, including
- START = END = nil and an already-narrowed buffer.
- Convert END to a marker if it is a number.
-
- * keymap.c (describe_map): Put sparse map elements into an array,
- sort them, then output a sequence of identical bindings on one line.
- (struct describe_map_elt): New data type.
- (describe_map_compare): New function.
-
-2005-12-28 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_get_file_with_chooser): Change message shown
- in file chooser.
-
-2005-12-27 Richard M. Stallman <rms@gnu.org>
-
- * lread.c (readevalloop): Set PT and ZV in the proper buffer,
- not the current one.
-
- * minibuf.c (Fminibuffer_message): Doc fix.
- (read_minibuf): Set current_buffer->enable_multibyte_characters sooner.
-
- * eval.c (do_autoload): Ignore elements of Vautoload_queue
- where car is not symbol.
-
-2005-12-27 Kenichi Handa <handa@m17n.org>
-
- * charset.c (lisp_string_width): Check multibyteness of STRING.
-
-2005-12-27 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (x_show_hidden_files): New variable.
- (syms_of_xfns): Defvar it.
-
- * gtkutil.c (xg_toggle_visibility_cb): New function.
- (xg_get_file_with_chooser): Add toggle hidden files and a message
- to the new file chooser dialog. Show hidden files if
- x_show_hidden_files is non-zero.
-
-2005-12-26 Richard M. Stallman <rms@gnu.org>
-
- * keyboard.h: Undo previous change.
-
- * Makefile.in (undo.o): Undo previous change.
-
- * undo.c: Undo previous change.
-
-2005-12-26 Luc Teirlinck <teirllm@auburn.edu>
-
- * keyboard.h: extern last_point_position_window.
-
- * undo.c: include keyboard.h.
-
- * Makefile.in (undo.o): Depend on keyboard.h.
-
-2005-12-26 Richard M. Stallman <rms@gnu.org>
-
- * commands.h (last_point_position_window): Declare.
-
- * undo.c: Depend on window.h.
- (record_point): Save old point from the correct window.
-
- * keyboard.c (last_point_position_window): New variable.
- (command_loop_1): Set last_point_position_window.
- (syms_of_keyboard): Init it.
-
- * Makefile.in (undo.o): Depend on window.h.
-
-2005-12-25 Richard M. Stallman <rms@gnu.org>
-
- * eval.c (un_autoload): Expect (0 . OFEATURES) in Vautoload_queue
- to undo a `provide'.
-
- * fns.c (Fprovide): Store (0 . OFEATURES) in Vautoload_queue.
-
-2005-12-25 Giorgos Keramidas <keramida@ceid.upatras.gr>
-
- * m/amdx86-64.h [__FreeBSD__] (START_FILES, LIB_STANDARD):
- define for FreeBSD on this platform.
-
-2005-12-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.h (TYPE_FILE_NAME): New define.
- (posix_pathname_to_fsspec, fsspec_to_posix_pathname): Remove externs.
-
- * mac.c (posix_pathname_to_fsspec, fsspec_to_posix_pathname):
- Add prototypes. Make static.
- (mac_aedesc_to_lisp): Initialize err to noErr.
- (mac_coerce_file_name_ptr, mac_coerce_file_name_desc)
- (init_coercion_handler): New functions.
- (Fmac_coerce_ae_data): Use coercion of Apple event data for
- translation from/to file names.
-
- * macterm.c: Don't include sys/param.h.
- (init_coercion_handler): Add extern.
- [MAC_OS8] (main): Call init_coercion_handler.
- (mac_initialize) [MAC_OSX]: Likewise.
- [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Use coercion of
- Apple event data for translation from/to file names.
-
- * macfns.c [TARGET_API_MAC_CARBON] (Fx_file_dialog): Likewise.
-
- * image.c [MAC_OS] (find_image_fsspec): Likewise.
-
-2005-12-23 Martin Rudalics <rudalics@gmx.at>
-
- * insdel.c (insert, insert_and_inherit, insert_before_markers)
- (insert_before_markers_and_inherit): Make sure FROM is correct
- when `after-change-functions' are called.
-
-2005-12-23 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (Fx_uses_old_gtk_dialog): New function.
-
- * gtkutil.c (xg_uses_old_file_dialog): New function.
- (xg_get_file_name): Use xg_uses_old_file_dialog.
-
- * gtkutil.h: Declare xg_uses_old_file_dialog.
-
-2005-12-22 Richard M. Stallman <rms@gnu.org>
-
- * xmenu.c (xmenu_show): Call inhibit_garbage_collection.
-
-2005-12-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c (Fmac_coerce_ae_data) [MAC_OSX]: Fix memory leak.
-
- * macgui.h (XCharStruct): Remove member `valid_p'.
- (STORE_XCHARSTRUCT): Don't set member `valid_p'.
- (XCharStructRow): New typedef.
- (XCHARSTRUCTROW_CHAR_VALID_P, XCHARSTRUCTROW_SET_CHAR_VALID):
- New macros.
- (struct MacFontStruct): Add member `bounds'. Remove member
- `per_char'. All uses for QuichDraw Text fonts are changed to
- `bounds.per_char'. ATSUI font bounds are represented as an array
- `bounds.rows' of XCharStructRow's, each of which consists of a
- bitmap of valid entries and an array of char bounds.
-
- * macterm.c (mac_per_char_metric): Add prototype.
- (x_per_char_metric) [USE_CG_TEXT_DRAWING]: Remove prototype.
- (mac_query_char_extents): New function.
- (x_per_char_metric): Use it.
- (XLoadQueryFont): Likewise. Consolidate min/max_bounds calculations.
- [USE_CG_TEXT_DRAWING] (mac_draw_string_cg):
- Use mac_per_char_metric instead of x_per_char_metric.
- (mac_text_extents_16): New function.
- (mac_compute_glyph_string_overhangs): Use it.
- (mac_unload_font): Free member `bounds' in struct MacFontStruct.
-
-2005-12-21 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * minibuf.c (Fdisplay_completion_list): Use XCAR/XCDR.
- (Fminibuffer_completion_help): Remove duplicates before display.
-
-2005-12-21 L\e$,1 q\e(Brentey K\e,Aa\e(Broly <lorentey@elte.hu>
-
- * print.c (print_preprocess): Don't lose print_depth levels while
- iterating.
-
-2005-12-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macmenu.c (Qmac_apple_event): Add extern.
- (set_frame_menubar, mac_menu_show keymp_panes)
- (single_keymap_panes, list_of_panes, list_of_item)
- (single_menu_item): Add argument types to prototypes.
- (mac_dialog_show) [HAVE_DIALOGS]: Likewise.
- (struct skp): New struct (from xmenu.c).
- (single_keymap_panes, single_menu_item, list_of_panes)
- (list_of_item): Sync with xmenu.c.
- (Fx_popup_menu, Fx_popup_dialog): Likewise. Don't get window from
- POSITION if it is mac-apple-event event.
- (menubar_selection_callback): Don't use menu_command_in_progress.
- (set_frame_menubar): First parse all submenus, then make
- widget_value trees from them. Don't allocate any widget_value
- objects until we are done with the parsing.
- (parse_single_submenu, digest_single_submenu): New functions.
- (single_submenu): Function deleted, replaced by those two.
- (install_menu_quit_handler) [HAVE_CANCELMENUTRACKING]: Don't create
- or dispose of EventHandlerUPP. Install hander to all submenus.
- (mac_menu_show) [!HAVE_MULTILINGUAL_MENU]: Use ENCODE_MENU_STRING
- instead of ENCODE_SYSTEM.
- (free_frame_menubar, fill_submenu, fill_menu): Don't use NULL for
- integer values.
- [HAVE_DIALOGS] (mac_dialog_show): Sync with xdialog_show (in xmenu.c).
- (add_menu_item) [TARGET_API_MAC_CARBON]: Use CFString functions to
- format menu item string. Don't use NULL for integer value.
-
- * macterm.h (struct mac_output): Remove unused member
- menu_command_in_progress.
-
-2005-12-20 Juri Linkov <juri@jurta.org>
-
- * xmenu.c (Fx_popup_menu): Set Vmenu_updating_frame to f if
- position is non-nil, else set it to nil.
-
- * macmenu.c (Fx_popup_menu): Add `else' to set
- Vmenu_updating_frame to nil only if position is nil.
-
- * w32menu.c (Fx_popup_menu): Add `else' to set
- Vmenu_updating_frame to nil only if position is nil.
-
-2005-12-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * keyboard.c (make_lispy_event): Drag-and-drop items are now
- stored in member `args' of struct input_event.
-
- * termhooks.h (struct input_event): Fix comment for DRAG_N_DROP_EVENT.
-
- * xselect.c (x_handle_dnd_message): Drag-and-drop items are now
- stored in member `args' of struct input_event.
-
- * w32term.c (construct_drag_n_drop): Likewise.
-
- * macterm.c (mac_do_receive_drag): Likewise.
- (x_use_underline_position_properties): Undo 2005-07-13 change.
- (syms_of_macterm) <x-use-underline-position-properties>: Likewise.
- (mac_use_core_graphics, mac_wheel_button_is_mouse_2)
- (mac_pass_command_to_system, mac_pass_control_to_system):
- New boolean variables renamed from Lisp_Object ones
- Vmac_use_core_graphics, Vmac_wheel_button_is_mouse_2,
- Vmac_pass_command_to_system, and Vmac_pass_control_to_system.
- All uses changed.
- (syms_of_macterm): DEFVAR_BOOL them. Remove previous DEFVAR_LISPs.
- Make them user options.
- (mac_handle_command_event, mac_store_services_event):
- Call create_apple_event_from_event_ref without 5th argument.
- (backtranslate_modified_keycode): Mask off modifier keys that are
- mapped to some Emacs modifiers before passing it to KeyTranslate.
- (syms_of_macterm): Make variables `mac-emulate-three-button-mouse',
- `mac-wheel-button-is-mouse-2', and `mac-*-modifier' user options.
- Fix docstrings of `mac-*-modifier'.
-
- * mac.c (create_apple_event_from_event_ref): Remove arg `types'.
- (do_applescript): Change argument types to Lisp_Object.
- All uses changed.
-
- * macterm.h (create_apple_event_from_event_ref): Remove 5th
- argument from extern.
-
-2005-12-18 Dan Nicolaescu <dann@ics.uci.edu>
-
- * xfns.c (Fx_backspace_delete_keys_p): In case we cannot determine
- the answer, return `lambda', not nil.
-
-2005-12-17 Eli Zaretskii <eliz@gnu.org>
-
- * makefile.w32-in (bootstrap-temacs): Warn that parts of commands
- enclosed in $(ARGQUOTE)s should not be split between two lines, as
- that will break with GNU Make >3.80, when sh.exe is used and
- arg quoting is with '..'.
-
-2005-12-17 Chong Yidong <cyd@stupidchicken.com>
-
- * print.c (print_preprocess): Just signal an error if print_depth
- is exceeded.
-
-2005-12-17 Eli Zaretskii <eliz@gnu.org>
-
- * .gdbinit: Set a breakpoint on w32_abort.
-
-2005-12-16 Juri Linkov <juri@jurta.org>
-
- * minibuf.c (Fminibuffer_completion_contents): New Lisp function
- created from minibuffer_completion_contents.
- (minibuffer_completion_contents): Remove.
- (do_completion, Fminibuffer_complete_word)
- (Fminibuffer_completion_help): Replace minibuffer_completion_contents
- with Fminibuffer_completion_contents.
- (syms_of_minibuf): Add Sminibuffer_completion_contents.
- (Fdisplay_completion_list): Doc fix.
- (display_completion_list_1): Use `nil' for second arg of
- `Fdisplay_completion_list'.
-
-2005-12-14 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (compute_tip_xy): Handle negative dx and dy.
-
- * w32fns.c (compute_tip_xy): Ditto.
-
- * macfns.c (compute_tip_xy): Ditto.
-
-2005-12-14 Chong Yidong <cyd@stupidchicken.com>
-
- * print.c (print_preprocess): Go to a deeper print_depth to avoid
- print_object loop.
-
-2005-12-14 Kyotaro HORIGUCHI <horiguti@meadowy.org> (tiny change)
-
- * coding.c (code_convert_region_unwind): GCPRO arg.
-
-2005-12-12 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (compute_tip_xy): Calculate root_y the same way as root_x,
- i.e. dy is offset from top of frame instead of bottom.
-
- * macfns.c (compute_tip_xy): Ditto.
-
- * w32fns.c (compute_tip_xy): Ditto.
-
- * gtkutil.c (SSDATA): New macro to remove compiler warnings.
- (xg_get_image_for_pixmap, xg_create_frame_widgets)
- (xg_get_file_with_chooser): Use SSDATA instead of SDATA.
-
- * xmenu.c (menubar_selection_callback): Do nothing if the callback
- is for an unselected radio menu item.
-
-2005-12-11 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (syms_of_xdisp) <blink-cursor-alist>: Doc fix.
-
- * lisp.h [! NO_UNION_TYPE] (EQ): Use == so args are computed just once.
-
- * keymap.c (Fset_keymap_parent, store_in_keymap): Use CHECK_IMPURE.
- (Flookup_key): Doc fix.
- (syms_of_keymap) <function-key-map>: Doc fix.
-
- * fns.c (Frequire): Treat evaluating from a source file
- like loading the file.
-
- * floatfns.c (Flog): Doc fix.
-
- * fileio.c (Finsert_file_contents): Set Vdeactivate_mark
- when we change the buffer.
-
-2005-12-11 Juri Linkov <juri@jurta.org>
-
- * minibuf.c (display_completion_list_1):
- Call `minibuffer_completion_contents' instead of using `nil' as
- second arg of `Fdisplay_completion_list'.
- (keys_of_minibuf): Unbind SPC in
- Vminibuffer_local_filename_completion_map (see also related
- change on 2005-12-06).
-
-2005-12-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * emacs.c (main) [MAC_OS8]: Undo previous change.
-
- * macselect.c (syms_of_macselect) <mac-apple-event-map>:
- Initialize to nil. Keymap is now created in lisp/term/mac-win.el.
-
-2005-12-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * Makefile.in (macselect.o): Depend on keymap.h.
-
- * emacs.c (main) [MAC_OS8]: Call syms_of_keymap before
- syms_of_macselect.
-
- * image.c (init_image) [MAC_OS]: Don't call EnterMovies.
- [!HAVE_GIF && MAC_OS] (gif_load): Call EnterMovies.
-
- * keyboard.c (Qmac_apple_event) [MAC_OS]: New variable.
- (syms_of_keyboard) [MAC_OS]: Initialize it.
- (make_lispy_event) [MAC_OS]: Build lisp event for MAC_APPLE_EVENT.
-
- * mac.c (Qundecoded_file_name): New variable.
- (syms_of_mac): Initialize it.
- (mac_aelist_to_lisp, mac_aedesc_to_lisp): New functions.
- [TARGET_API_MAC_CARBON] (create_apple_event_from_event_ref): New fun.
- (Fmac_coerce_ae_data): New defun.
- (syms_of_mac): Defsubr it.
-
- * macselect.c: Include keymap.h.
- (mac_ready_for_apple_events): New variable.
- (Vmac_apple_event_map, Qmac_apple_event_class)
- (Qmac_apple_event_id): New variables.
- (syms_of_macselect): Initialize them.
- (Qundefined, mac_store_apple_event): Add externs.
- (struct apple_event_binding): New struct.
- (find_event_binding_fun, find_event_binding)
- (mac_find_apple_event_spec, defer_apple_events)
- (mac_handle_apple_event, init_apple_event_handler)
- (copy_scrap_flavor_data): New functions.
- (Fmac_process_deferred_apple_events): New defun.
- (syms_of_macselect): Defsubr it.
- (mac_store_services_event): Fix extern.
- (mac_handle_service_event): Don't allocate Lisp objects during
- asynchronous input processing. Use mac_store_services_event
- instead of mac_store_application_menu_event.
-
- * macterm.c (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
- (Qpreferences): Remove variables.
- (syms_of_macterm) : Don't initialize them.
- (Qhicommand) [USE_CARBON_EVENTS]: New variable.
- (syms_of_macterm) [USE_CARBON_EVENTS]: Initialize it.
- (init_required_apple_events, do_ae_open_application)
- (do_ae_print_documents, do_ae_open_documents)
- (do_ae_quit_application): Remove functions and prototypes.
- (mac_ready_for_apple_events, Qundefined, init_apple_event_handler)
- (mac_find_apple_event_spec): Add externs.
- (mac_store_application_menu_event): Remove function.
- (mac_store_apple_event, mac_make_lispy_event_code): New functions.
- (mac_handle_command_event): Create Apple event from Carbon event.
- Use mac_store_apple_event instead of mac_store_application_menu_event.
- [MAC_OSX] (mac_store_services_event): Likewise.
- (struct SelectionRange, SelectionRange): Remove struct and typedef.
- [MAC_OS8] (main): Call init_apple_event_handler instead of
- init_required_apple_events.
- (mac_initialize) [MAC_OSX]: Likewise.
- [!USE_CARBON_EVENTS] (mac_wait_next_event):
- Use mac_ready_for_apple_events instead of Qmac_ready_for_drag_n_drop.
-
- * macterm.h (mac_make_lispy_event_code, mac_aedesc_to_lisp):
- Add externs.
- (create_apple_event_from_event_ref) [TARGET_API_MAC_CARBON]: Likewise.
- (Fmac_get_preference): Add EXFUN.
-
- * termhooks.h (enum event_kind) [MAC_OS]: Add new MAC_APPLE_EVENT
- event.
-
-2005-12-09 Richard M. Stallman <rms@gnu.org>
-
- * xfns.c (Fx_create_frame): Reinstate previous change.
-
-2005-12-09 Eli Zaretskii <eliz@gnu.org>
-
- * w32fns.c (w32_abort) [__GNUC__]: Add instructions for attaching
- GDB to the abort dialog.
-
-2005-12-09 Kyotaro HORIGUCHI <horiguti@meadowy.org> (tiny change)
-
- * indent.c (Fvertical_motion): Force move if starting on
- stretch glyph.
-
-2005-12-08 Richard M. Stallman <rms@gnu.org>
-
- * lread.c (read_escape) <\s>: Don't treat strings specially.
-
- * xfns.c (Fx_create_frame): Comment out previous change.
-
-2005-12-07 L\e$,1 q\e(Brentey K\e,Aa\e(Broly <lorentey@elte.hu>
-
- * xfns.c (Fx_create_frame): Initialize Vdefault_minibuffer_frame,
- when needed.
-
-2005-12-06 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * minibuf.c (keys_of_minibuf): Just unbind SPC in
- Vminibuffer_local_filename_completion_map rather than forcing it
- explicitly to the same binding as the global map.
-
-2005-12-06 Ken Raeburn <raeburn@gnu.org>
-
- * buffer.c (Fkill_buffer): Avoid dangerous side effects in NILP args.
- * bytecode.c (Fbyte_code): Likewise.
- * fileio.c (internal_delete_file, Fread_file_name_internal): Likewise.
- * minibuf.c (Fminibuffer_complete_and_exit): Likewise.
- * undo.c (truncate_undo_list): Likewise.
-
-2005-12-05 Richard M. Stallman <rms@gnu.org>
-
- * window.c (enlarge_window): Eliminate arg preserve_before.
- Assume it is 0. All callers changed.
- (Fenlarge_window, Fshrink_window): Likewise.
-
-2005-12-02 Eli Zaretskii <eliz@gnu.org>
-
- * w32fns.c (compute_tip_xy): Put tip above pointer if it doesn't
- fit below.
-
-2005-12-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.h: Add prototype for xg_set_icon_from_xpm_data.
-
- * xfns.c (x_real_positions): int ign => unsigned int.
- (xg_set_icon_from_xpm_data): Remove unused variable err.
- (x_set_name_internal, Fx_create_frame, xg_set_icon): Add cast
- to remove compiler warning.
- (compute_tip_xy): Put tip above pointer if it doesn't fit below.
-
-2005-12-02 David Reitter <david.reitter@gmail.com>
-
- * minibuf.c (Fcompleting_read): If Vminibuffer_completing_file_name is
- non-nil, use the new keymaps Vminibuffer_local_filename_completion_map
- and Vminibuffer_local_must_match_filename_map keymaps.
- (keys_of_minibuf): Bind SPC in the new file-name completion keymaps.
-
- * keymap.c (Vminibuffer_local_filename_completion_map)
- (Vminibuffer_local_must_match_filename_map): New variables.
- (syms_of_keymap): DEFVAR_LISP them, initialize them, and set their
- parent to be Vminibuffer_local_completion_map and
- Vminibuffer_local_must_match_map, respectively.
-
- * commands.h (Vminibuffer_local_filename_completion_map)
- (Vminibuffer_local_must_match_filename_map): Declare the new keymaps.
-
-2005-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * window.c (Fset_window_configuration): Don't accidentally copy the
- window-point of one window to another.
-
-2005-11-30 L\e$,1 q\e(Brentey K\e,Aa\e(Broly <lorentey@elte.hu>
-
- * buffer.c (Fpop_to_buffer): Remove superfluous call to record_buffer.
-
-2005-11-30 Kim F. Storm <storm@cua.dk>
-
- * alloc.c: Include fcntl.h. Define O_WRONLY if not defined.
- (valid_lisp_object_p) [!GC_MARK_STACK]: Validate pointer by
- passing it to `emacs_write'.
-
-2005-11-29 Ari Roponen <arjuropo@cc.jyu.fi> (tiny change)
-
- * atimer.c (stop_other_atimers): Fix loop to correctly compute `prev'.
-
-2005-11-27 Richard M. Stallman <rms@gnu.org>
-
- * window.c (adjust_window_trailing_edge): New function.
- (Fadjust_window_trailing_edge): New function.
- (syms_of_window): Defsubr it.
- (window_deletion_count): New variable.
- (delete_window): Update window_deletion_count.
-
-2005-11-26 Eli Zaretskii <eliz@gnu.org>
-
- * minibuf.c (syms_of_minibuf): Mention the extension of
- `completion-auto-help's meaning by complete.el.
-
-2005-11-26 Henrik Enberg <henrik.enberg@telia.com>
-
- * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
- Handle :inherit property as a lisp expression.
-
-2005-11-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (Qcontrol): Rename from Qctrl. All uses changed.
- (syms_of_macterm): Staticpro Qcontrol, Qmeta, Qalt, Qhyper,
- Qsuper, and Qmodifier_value.
- (Vmac_control_modifier, Vmac_option_modifier)
- (Vmac_command_modifier, Vmac_function_modifier)
- (Vmac_emulate_three_button_mouse, Vmac_wheel_button_is_mouse_2)
- (Vmac_pass_command_to_system, Vmac_pass_control_to_system)
- (Vmac_charset_info_alist): Doc fixes.
-
-2005-11-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * emacs.c (main) [MAC_OSX]: Change working directory to home
- directory if `-psn_*' option is specified.
-
- * mac.c (DECODE_UTF_8): Remove macro.
- [TARGET_API_MAC_CARBON] (cfstring_to_lisp_nodecode): New function
- created from cfstring_to_lisp.
- [TARGET_API_MAC_CARBON] (cfstring_to_lisp): Use it.
- (xrm_get_preference_database) [TARGET_API_MAC_CARBON]: Likewise.
-
- * macterm.h (cfstring_to_lisp_nodecode) [TARGET_API_MAC_CARBON]:
- Add prototype.
-
-2005-11-21 Ken Raeburn <raeburn@gnu.org>
-
- * keymap.c (shadow_lookup): Use make_number to pass a number to
- Fsubstring.
-
-2005-11-21 Juri Linkov <juri@jurta.org>
-
- * puresize.h (BASE_PURESIZE): Increment to 1180000.
-
-2005-11-20 Chong Yidong <cyd@stupidchicken.com>
-
- * xfaces.c (Finternal_set_lisp_face_attribute):
- Use :ignore-defface for new frame defaults when `unspecified' is
- supplied.
- (Finternal_get_lisp_face_attribute): Hide :ignore-defface.
- (merge_face_vectors): Don't do :ignore-defface overwriting here.
- (Finternal_merge_in_global_face): Do it here.
-
-2005-11-20 Juri Linkov <juri@jurta.org>
-
- * charset.c (invalid_character): Use Lisp-readable syntax
- for octal and hex. Reorder decimal, octal and hex values.
-
-2005-11-20 Nick Roberts <nickrob@snap.net.nz>
-
- * lisp.h: Use typedef when Lisp_Object is EMACS_INT so that
- this type is recognised when debugging.
-
-2005-11-19 Andreas Schwab <schwab@suse.de>
-
- * .gdbinit (nextcons, xcdr, xfloat): Update for changes in
- Lisp_Cons and Lisp_Float.
-
-2005-11-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c [USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold):
- New variable.
- [USE_CG_TEXT_DRAWING] (init_cg_text_anti_aliasing_threshold): New fun.
- (init_font_name_table) [USE_ATSUI && USE_CG_TEXT_DRAWING]: Use it.
- [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): Don't do antialiasing if
- font size is smaller than or equal to cg_text_anti_aliasing_threshold.
-
-2005-11-17 Chong Yidong <cyd@stupidchicken.com>
-
- * image.c (x_create_bitmap_from_xpm_data): Free attributes on fail.
-
- * xfaces.c (Qignore_defface): New variable.
- (syms_of_xfaces): Provide `:ignore-defface'.
- (IGNORE_DEFFACE_P): New macro.
- (check_lface_attrs, lface_fully_specified_p)
- (Finternal_set_lisp_face_attribute)
- (Fface_attribute_relative_p, Fmerge_face_attribute):
- Handle Qignore_defface as a possible value.
- (merge_face_vectors): The merged face is `unspecified' if the
- mergee specifies `:ignore-defface'.
-
-2005-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * lread.c (readevalloop): Add missing GCPROs.
-
-2005-11-16 Chong Yidong <cyd@stupidchicken.com>
-
- * xfns.c (xg_set_icon_from_xpm_data): New function.
-
- * gnu.h (gnu_xpm_bits): Rename from gnu_bits.
- (gnu_xbm_bits): Rename from gnu_bits (xbm version).
-
- * xterm.c (x_bitmap_icon): Use the xpm if available.
-
- * image.c (x_create_bitmap_from_xpm_data): New function.
- (x_create_bitmap_from_xpm_data): Initialize XpmAttributes.
-
-2005-11-15 Luc Teirlinck <teirllm@auburn.edu>
-
- * Makefile.in (lisp, shortlisp): Add rfn-eshadow.
-
-2005-11-16 Nick Roberts <nickrob@snap.net.nz>
-
- * .gdbinit: Make SIGTSTP work like SIGINT normally does.
-
-2005-11-15 Andreas Schwab <schwab@suse.de>
-
- * lisp.h (struct Lisp_Cons): Make cdr a union.
- (XCDR_AS_LVALUE): Adjust.
- (struct Lisp_Float): Make data a union.
- (XFLOAT_DATA): Adjust.
-
- * alloc.c (free_float): Make free list chaining aliasing-safe.
- (make_float): Likewise.
- (free_cons): Likewise.
- (Fcons): Likewise.
- (check_cons_list): Likewise.
- (Fmake_symbol): Likewise.
- (allocate_misc): Likewise.
- (free_misc): Likewise.
- (gc_sweep): Likewise.
-
-2005-11-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c (HASHKEY_QUERY_CACHE): New define.
- (xrm_create_database, xrm_q_put_resource): Empty query cache.
- (xrm_get_resource): Use query cache.
-
- * image.c (init_image) [MAC_OS]: Don't call EnterMovies if
- inhibit_window_system is set.
-
-2005-11-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macgui.h (USE_CG_TEXT_DRAWING): New define.
- (struct MacFontStruct) [USE_CG_TEXT_DRAWING]: New members cg_font
- and cg_glyphs.
-
- * macterm.c [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
- (x_draw_glyph_string_foreground) [USE_CG_TEXT_DRAWING]: Use it.
- (XLoadQueryFont) [USE_CG_TEXT_DRAWING]: Set members cg_font and
- cg_glyphs in struct MacFontStruct if synthesized bold or italic is
- not used and font substitution never occurs for ASCII and Latin-1
- characters.
- (XLoadQueryFont): Maximum and minimum metrics are now those among
- ASCII characters.
- (XLoadQueryFont) [!MAC_OS8 || USE_ATSUI]: Apply WebKit-style
- height adjustments for Courier, Helvetica, and Times.
-
- * s/darwin.h (LIBS_CARBON) [!HAVE_CARBON]: Remove `-framework Carbon'.
-
-2005-11-11 David Reitter <david.reitter@gmail.com>
-
- * macterm.c (syms_of_macterm): Remove macCtrlKey, macShiftKey,
- macMetaKey, macAltKey. Introduce Qctrl, Qmeta,
- Vmac_control_modifier / mac-control-modifier,
- Vmac_option_modifier / mac-option-modifier,
- Vmac_command_modifier / mac-command-modifier.
- (mac_to_emacs_modifiers): Use the new style modifier
- variables. Return UInt32 (modifiers are longs now.)
- (backtranslate_modified_keycode): New function (refactoring).
- (XTread_socket): Use new modifier variables and refactored function.
- (mac_determine_quit_char_modifiers): Remove macMetaKey (there is
- no dedicated meta key. Not in use anyway.)
- (convert_fn_keycode): Map Fn-keys to their original keycode
- using a table (english keyboard only).
-
-2005-11-11 Kim F. Storm <storm@cua.dk>
-
- * .gdbinit (pitx): Fix output format if n_overlay_strings > 0.
- Add post hook to "backtrace" to always dump lisp call stack to
- increase chance of people sending it to us when reporting bugs.
-
- * doc.c (Fsubstitute_command_keys): Doc fix.
-
- * dispextern.h (struct it): New member ignore_overlay_strings_at_pos_p.
-
- * xdisp.c (handle_stop): Skip overlay string handling if
- ignore_overlay_strings_at_pos_p is set.
- (set_iterator_to_next): At end of display vector, set
- ignore_overlay_strings_at_pos_p if dpvec came from an overlay
- string, so we skip those overlay strings at current pos.
-
-2005-11-10 Lars Hansen <larsh@soem.dk>
-
- * fileio.c (file-regular-p): Doc fix.
-
-2005-11-10 Kim F. Storm <storm@cua.dk>
-
- * alloc.c (valid_lisp_object_p): New function to validate that
- an object is really a valid Lisp_Object.
-
- * lisp.h (valid_lisp_object_p): Add prototype.
-
- * print.c (safe_debug_print): New function to be called from gdb
- to print Lisp objects; use valid_lisp_object_p to avoid crashing
- if user tries to print something which is not a Lisp object.
-
- * .gdbinit (pp, pp1): Use safe_debug_print.
- (pv, pv1): New commands to print value of a lisp variable.
-
-2005-11-10 Nick Roberts <nickrob@snap.net.nz>
-
- * .gdbinit (pp1): New user-defined function.
-
-2005-11-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * image.c [MAC_OSX] (image_load_quartz2d): Fix memory leak.
-
- * mac.c [MAC_OSX] (init_mac_osx_environment): Reinitialize locale
- related variables for dumped executable.
-
- * unexmacosx.c (unexec_write_zero): New function.
- (copy_data_segment): Clear uninitialized local variables in
- statically linked libraries.
-
- * s/darwin.h (C_SWITCH_SYSTEM): Remove -fno-common.
-
-2005-11-09 Juri Linkov <juri@jurta.org>
-
- * keymap.c (shadow_lookup): If Flookup_key returns a number,
- call it again with a sub-key-sequence, and if its return value
- is non-nil (sub-key is bound), return nil.
-
-2005-11-08 Kim F. Storm <storm@cua.dk>
-
- * process.c (Fsignal_process): Recognize signal names with and
- without SIG prefix, e.g. SIGHUP and HUP.
-
- * search.c (search_buffer): No need to initialize base_pat.
-
-2005-11-04 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * window.c (Fget_lru_window, Fget_largest_window, window_loop):
- Don't abuse the `mini' arg. Use the `obj' arg instead.
-
-2005-11-04 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (show_mouse_face): Clear mouse face to eol.
-
-2005-11-03 Dan Nicolaescu <dann@ics.uci.edu>
-
- * Makefile.in (lisp, shortlisp): Add emacs-lisp/syntax.elc,
- font-lock.elc and jit-lock.elc.
-
-2005-11-03 Richard M. Stallman <rms@gnu.org>
-
- * window.c (Fenlarge_window): Rename SIDE to HORIZONTAL.
- (enlarge_window): Rename WIDTHFLAG to HORIZ_FLAG.
- (CURBEG, CURSIZE): Use HORIZ_FLAG instead of WIDTHFLAG.
-
- * sheap.c (STATIC_HEAP_SIZE): Increment both definitions.
-
- * alloc.c (refill_memory_reserve): Move decl out of conditionals.
-
-2005-11-03 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * window.c (Fdisplay_buffer): Fix last change to not use
- a dedicated window.
-
-2005-11-01 Kim F. Storm <storm@cua.dk>
-
- * fringe.c (update_window_fringes): Undo 2005-10-27 change.
- Instead, rotate the bottom angle bitmap 180 degrees to indicate
- that the bottom row does not end in a newline.
-
-2005-11-01 Andreas Schwab <schwab@suse.de>
-
- * unexelf.c (unexec): Handle .plt section in BSS segment.
-
-2005-11-01 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * lread.c (readevalloop): Yet another int/Lisp_Object mixup (YAILOM).
-
- * window.c (window_loop): For LRU and LARGEST, let the `mini' argument
- determine whether to consider dedicated windows as well.
- (Fget_lru_window, Fget_largest_window): Add `dedicated' argument.
- (Fdisplay_buffer): Do consider dedicated windows in those cases where
- we will split the window rather than reuse it.
- Don't try to use windows on other displays.
-
-2005-10-31 Dan Nicolaescu <dann@ics.uci.edu>
-
- * puresize.h (BASE_PURESIZE): Increment to 1170000.
-
-2005-10-31 Romain Francoise <romain@orebokech.com>
-
- * macfns.c: Update copyright year.
- * m/gould.h: Likewise.
-
-2005-10-30 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (display_line): Restore it->current_x and call
- extend_face_to_end_of_line when last glyph doesn't fit on line.
- (set_glyph_string_background_width): Remove specific tests here
- to see if face background should extend to end of line. Simplify.
-
-2005-10-30 Richard M. Stallman <rms@gnu.org>
-
- * alloc.c (BYTES_USED): Use uordblks, not arena.
- (bytes_used_when_reconsidered): New variable.
- (emacs_blocked_free): Set that.
-
-2005-10-29 Chong Yidong <cyd@stupidchicken.com>
-
- * alloc.c (emacs_blocked_free): Fix typo.
-
-2005-10-29 Richard M. Stallman <rms@gnu.org>
-
- * data.c (Fmake_variable_frame_local): Doc fix.
-
- * xdisp.c (handle_fontified_prop): Do nothing if memory full.
- (format_mode_line_unwind_data): New arg SAVE_PROPTRANS
- controls whether to save and restore mode_line_proptrans_alist.
- Callers changed.
- (unwind_format_mode_line): Work with that feature.
- (redisplay_internal): Don't call prepare_menu_bars if memory full.
- (move_elt_to_front): New function.
- (display_mode_element): Use move_elt_to_front.
- Don't bother munging text props on a null string.
- Delete obsolete elts from mode_line_proptrans_alist.
- (decode_mode_spec): Test Vmemory_full, not spare_memory.
- (Fformat_mode_line): Clear mode_line_proptrans_alist after saving.
-
- * lisp.h (memory_full_cons_threshold): Declare.
- (internal_lisp_condition_case): Declare.
-
- * alloc.c (syms_of_alloc) <memory-full>: Doc fix.
- (Fmemory_full_p): Function deleted.
- (syms_of_alloc): Don't defsubr it.
- (memory_full_cons_threshold): New variable.
- (spare_memory): Now a vector of 7 elts.
- (buffer_memory_full): Don't set Vmemory_full here.
- (xfree): Don't try to refill here.
- (emacs_blocked_free): Record BYTES_USED in local var.
- (memory_full): Now free all the slots in spare_memory.
- (refill_memory_reserve): Allocate each slot in spare_memory.
- (init_alloc_once): Call refill_memory_reserve.
-
- * keyboard.c (command_loop_1): Don't set Vmemory_full here.
-
- * eval.c (internal_lisp_condition_case): New function.
- (Fcondition_case): Use internal_lisp_condition_case.
- (Feval): Test Vmemory_full and memory_full_cons_threshold.
- (Ffuncall): Likewise.
-
- * bytecode.c (Fbyte_code): Use internal_lisp_condition_case.
-
-2005-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * syntax.c (Fparse_partial_sexp): Fix docstring.
-
-2005-10-28 Romain Francoise <romain@orebokech.com>
-
- * puresize.h (BASE_PURESIZE): Increment to 1130000.
-
-2005-10-28 Richard M. Stallman <rms@gnu.org>
-
- * xfns.c (syms_of_xfns): Provide `x' as feature.
-
- * xdisp.c (decode_mode_spec): Define %e to indicate memory full.
-
- * editfns.c (Fformat): Don't include string padding
- between info[n].start and info[n].end.
-
- * alloc.c (spare_memory): No longer static.
- (xfree) [!SYSTEM_MALLOC]: Call refill_memory_reserve.
-
- * puresize.h (BASE_PURESIZE): Increment to 1120000.
-
-2005-10-27 Chong Yidong <cyd@stupidchicken.com>
-
- * data.c (Fmake_variable_frame_local): Add clarification to docstring.
-
- * fringe.c (update_window_fringes): Handle case where buffer ends
- with a newline.
-
-2005-10-27 Kenichi Handa <handa@m17n.org>
-
- * coding.h (DECODE_SYSTEM): Fix argument name; name->str.
-
-2005-10-24 Kenichi Handa <handa@m17n.org>
-
- * charset.h (charset_mule_unicode_0100_24ff)
- (charset_mule_unicode_2500_33ff, charset_mule_unicode_e000_ffff):
- Extern them.
-
- * charset.c (charset_mule_unicode_0100_24ff)
- (charset_mule_unicode_2500_33ff, charset_mule_unicode_e000_ffff):
- New variables.
- (Fsetup_special_charsets): Initialize them.
-
- * xterm.c (handle_one_xevent): Handle keysyms directly mapped to
- supported Unicode characters.
-
-2005-10-25 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (w32_to_x_font): Avoid forcing font widths.
-
-2005-10-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * image.c [MAC_OS] (image_load_qt_1): Check image size.
- Use GraphicsImportGetImageDescription instead of
- GraphicsImportGetNaturalBounds.
- [MAC_OSX] (image_load_quartz2d): Check image size.
- [MAC_OS] (xpm_load_image): Likewise.
-
- * macterm.c (last_mouse_glyph_frame): New var.
- (note_mouse_movement): Say mouse moved if current frame differs
- from last_mouse_glyph_frame, and update last_mouse_glyph_frame.
- (XTmouse_position): Set last_mouse_glyph_frame.
- (XTread_socket): Clear last_mouse_glyph_frame on mouse up/down event.
- (mac_draw_string_common) [USE_ATSUI && WORDS_BIG_ENDIAN]: Fix typo.
- Use EndianU16_BtoN.
- (mac_draw_string_common) [MAC_OSX]: Don't use ATSUClearLayoutControls.
- (x_per_char_metric, XLoadQueryFont)
- [MAC_OS_X_VERSION_MAX_ALLOWED < 1020]: Use device origins to get
- glyph bounds.
- (mac_to_x_fontname, mac_do_list_fonts)
- (mac_initialize_display_info): Change screen resolutions to 72dpi.
-
-2005-10-25 Masatake YAMATO <jet@gyve.org>
-
- * minibuf.c (Fdisplay_completion_list): Small doc fix.
-
-2005-10-24 Kim F. Storm <storm@cua.dk>
-
- * xterm.c: Undo 2005-10-23 change.
- (last_mouse_glyph_frame): New var.
- (note_mouse_movement): Say mouse moved if current frame differs
- from last_mouse_glyph_frame, and update last_mouse_glyph_frame.
- (XTmouse_position): Set last_mouse_glyph_frame.
- (handle_one_xevent): Clear last_mouse_glyph_frame [instead of
- last_mouse_glyph] on mouse up/down event.
-
- * editfns.c (Fcompare_buffer_substrings): Fix last change.
-
-2005-10-23 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * editfns.c (Fcompare_buffer_substrings): Handle multibyte chars.
-
-2005-10-23 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (note_mouse_movement): Always call note_mouse_highlight
- so tool tips don't interfere with press on tool bar button.
-
-2005-10-23 Richard M. Stallman <rms@gnu.org>
-
- * casetab.c (Fset_case_table): Doc fix.
-
- * lread.c (build_load_history): Replace STREAM arg with ENTIRE.
- (readevalloop): Compute ENTIRE properly.
- (syms_of_lread) <load-history>: Doc fix.
-
-2005-10-21 Richard M. Stallman <rms@gnu.org>
-
- * lread.c (Fload): Simplify gcpro structure.
- Gcpro FOUND as well as FILE, but not EFOUND.
- Unless preloading, record FOUND instead of FILE in Vload_history.
- Rename repeat local FILE to MSG_FILE.
- (syms_of_lread) <load-history>: Doc fix.
-
-2005-10-21 Kenichi Handa <handa@m17n.org>
-
- * search.c (boyer_moore): Add parens to fix and/or precedence bug.
-
-2005-10-20 Kim F. Storm <storm@cua.dk>
-
- * buffer.c (clone_per_buffer_values): Remove unused var tem.
- (init_buffer): Remove unused vars dotstat, pwdstat.
-
- * ccl.c (check_ccl_update): Remove unused var vp.
-
- * fileio.c (auto_save_error): Call SAFE_FREE.
-
- * fns.c (Fchar_table_range): Remove unused var i.
-
- * minibuf.c (display_completion_list_1): New wrapper function
- for Fdisplay_completion_list.
- (Fminibuffer_completion_help): Use it.
-
- * term.c (encode_terminal_code): Remove unused var src_start.
-
- * window.c (Fwindow_tree): Remove unused var alist.
-
- * xterm.c (x_calc_absolute_position): Remove unused vars win_x, win_y.
-
-2005-10-20 Aubrey Jaffer <agj@alum.mit.edu> (tiny change)
-
- * unexelf.c (unexec): Fix calls to `fatal' with less than 3 arguments.
-
-2005-10-20 Olli Savia <ops@iki.fi> (tiny change)
-
- * syssignal.h [__Lynx__]: Undef SIGPOLL along with SIGIO.
-
-2005-10-20 Andreas Schwab <schwab@suse.de>
-
- * minibuf.c (Fdisplay_completion_list): Doc fix.
-
-2005-10-19 Kim F. Storm <storm@cua.dk>
-
- * image.c (check_image_size): Handle integer Vmax_image_size value
- directly as max pixel value. Use default frame size for null frame.
- (syms_of_image) <max-image-size>: Describe integer value.
-
-2005-10-19 Romain Francoise <romain@orebokech.com>
-
- * emacs.c (main): Update copyright year.
-
-2005-10-18 Chong Yidong <cyd@stupidchicken.com>
-
- * image.c (Vmax_image_size): New variable.
- (check_image_size): New function.
- (xbm_read_bitmap_data, pbm_load, png_load, jpeg_load, tiff_load)
- (gif_load, gs_load): Use it.
- (lookup_image): Try loading again if previous load failed.
- (xbm_read_bitmap_data): Add a new argument, a pointer to the frame
- to display in, NULL if none.
- (xbm_load_image, xbm_file_p): Pass xbm_read_bitmap_data the new
- argument.
-
-2005-10-18 Richard M. Stallman <rms@gnu.org>
-
- * search.c (Fstring_match): Doc fix.
-
-2005-10-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (note_mouse_movement): Use PtInRect.
- (XTread_socket): Also ignore mouse motion just before a button
- release event. Don't process button release event when mouse is
- not grabbed.
-
-2005-10-16 Masatake YAMATO <jet@gyve.org>
-
- * minibuf.c (Fdisplay_completion_list): Add new optional
- argument COMMON_SUBSTRING. Bind `completion-common-substring'
- to the optional argument during running `completion-setup-hook'.
-
-2005-10-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c [TARGET_API_MAC_CARBON] (get_cfstring_encoding_from_lisp):
- Allow nil as argument.
- [TARGET_API_MAC_CARBON] (Fmac_code_convert_string): Regard nil
- for encoding arguments as UTF-16 in native byte order, no BOM.
-
- * macfns.c (Fx_create_frame): Add debugging code.
- (Fx_show_tip): Set frame pixel width and height.
-
- * macterm.c (MAC_WINDOW_NORMAL_GC): Remove macro.
- (FRAME_NORMAL_GC): New macro.
- (mac_draw_line, mac_clear_area, mac_clear_window)
- (mac_fill_rectangle, mac_draw_string, mac_draw_string_16)
- (mac_draw_image_string, mac_draw_image_string_16): Rename from
- XDrawLine, XClearArea, XClearWindow, XFillRectangle, XDrawString,
- XDrawString16, XDrawImageString, and XDrawImageString16, respectively.
- All uses changed.
- (mac_draw_line, mac_erase_rectangle, mac_clear_area)
- (mac_clear_window, mac_draw_bitmap, mac_draw_rectangle)
- (mac_invert_rectangle, mac_draw_string_common, mac_draw_string)
- (mac_draw_string_16, mac_draw_image_string)
- (mac_draw_image_string_16, mac_copy_area, mac_copy_area_with_mask)
- (mac_scroll_area): Drawing functions now take frame as destination.
- All uses changed.
- (mac_draw_string_common): Get port height with FRAME_PIXEL_HEIGHT.
- (x_draw_fringe_bitmap): Set clipping area in face->gc.
-
- * macterm.h (mac_clear_area): Add extern.
-
-2005-10-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (note_mouse_movement, XTread_socket): Apply 2005-10-14
- changes for xterm.c.
-
- * w32term.c (note_mouse_movement, w32_read_socket): Likewise.
-
-2005-10-14 Kenichi Handa <handa@m17n.org>
-
- * search.c (search_buffer): Give up BM search on case-fold-search
- if one of a target character has a case-equivalence of different
- charset even if that target charcter is an ASCII.
-
- * casefiddle.c (casify_object): Fix for the case that case
- conversion change the byte length.
-
-2005-10-14 Kim F. Storm <storm@cua.dk>
-
- * xterm.c (note_mouse_movement): Return 1 if mouse moved; 0 otherwise.
- (handle_one_xevent): Only clear help_echo_string; restore it if
- note_mouse_movement didn't record any mouse movement.
-
- * xdisp.c (pos_visible_p): Convert w->hscroll to pixels before use.
- (remember_mouse_glyph): Clear RECT if mouse is over an image glyph.
-
- * keyboard.c (make_lispy_position): Adjust wx for left margin if
- ON_TEXT.
- (Fposn_at_x_y): Fix calculation of x coordinate.
- (Fposn_at_point): Return nil if point is hscrolled out of view.
-
-2005-10-13 Andreas Schwab <schwab@suse.de>
-
- * sysdep.c (request_sigio, unrequest_sigio): Do nothing in
- non-interactive mode.
-
-2005-10-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * xterm.c, w32term.c, macterm.c (note_mouse_movement): Undo last change.
-
-2005-10-12 Kim F. Storm <storm@cua.dk>
-
- * xterm.c (handle_one_xevent): Clear last_mouse_glyph on mouse up/down.
-
-2005-10-12 Romain Francoise <romain@orebokech.com>
-
- * buffer.c (init_buffer): Rename `rc' to `len' for clarity.
-
-2005-10-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * xdisp.c (remember_mouse_glyph): Use MATRIX_BOTTOM_TEXT_ROW to
- get end of text rows. Obtain header-line/mode-line rows directly.
-
- * xterm.c, w32term.c, macterm.c (note_mouse_movement):
- Restore help_echo_string if mouse is moved inside last_mouse_glyph.
-
-2005-10-12 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (remember_mouse_glyph): New generic version based on
- glyph_rect and remember_mouse_glyph from xterm.c enhanced to
- properly handle all different window areas.
-
- * dispextern.h (remember_mouse_glyph): Add prototype.
-
- * xterm.c (glyph_rect, remember_mouse_glyph): Remove X versions.
- (note_mouse_movement, XTmouse_position): Use generic
- remember_mouse_glyph, add last_mouse_glyph arg.
-
- * w32term.c (note_mouse_movement): Fix last_mouse_glyph check.
- (glyph_rect, remember_mouse_glyph): Remove w32 specific versions.
- (note_mouse_movement, w32_mouse_position): Use generic
- remember_mouse_glyph, add last_mouse_glyph arg.
-
- * macterm.c (note_mouse_movement): Add call to remember_mouse_glyph.
- (glyph_rect, remember_mouse_glyph): Remove mac specific versions.
- (XTmouse_position): Adapt to use generic remember_mouse_glyph
- instead of pixel_to_glyph_coords.
-
- * window.c (coordinates_in_window): Fix x position for ON_RIGHT_MARGIN.
- Fix x position for ON_TEXT when left margin width > 0.
-
-2005-10-11 Kim F. Storm <storm@cua.dk>
-
- * window.c (coordinates_in_window): Fix y position for ON_SCROLL_BAR.
-
- * keyboard.c (make_lispy_position): Fix buffer calculations for
- mouse click or movement in right fringe and the margins.
-
-2005-10-11 Juanma Barranquero <lekktu@gmail.com>
-
- * image.c (fn_jpeg_stdio_src): Don't define it.
- (init_jpeg_functions): Don't initialize `fn_jpeg_stdio_src'.
- (our_common_init_source): Rename from `our_init_source'.
- (our_common_term_source): Rename from `our_term_source'.
- (our_memory_fill_input_buffer): Rename from
- `our_fill_input_buffer'.
- (our_memory_skip_input_data): Rename from `our_skip_input_data'.
- (jpeg_memory_src): Use the new names.
- (struct jpeg_stdio_mgr): New struct.
- (JPEG_STDIO_BUFFER_SIZE): New constant.
- (our_stdio_fill_input_buffer, our_stdio_skip_input_data)
- (jpeg_file_src): New functions.
- (jpeg_load): Use `jpeg_file_src' instead of `fn_jpeg_stdio_src'.
-
-2005-10-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (PER_CHAR_METRIC): Remove unused macro.
- (fm_font_family_alist): New variable.
- (syms_of_macterm): Initialize and staticpro it.
- (decode_mac_font_name): Replace '-' in family name with '_' if it
- occurs just once. Lower family name.
- (parse_x_font_name): Rename from x_font_name_to_mac_font_name.
- All uses changed. Remove argument MF and code conversion for it.
- Add argument SIZE. Rename argument MF_DECODED to FAMILY, and CS
- to CHARSET. Parse font size. Lower family name. Return integer
- value for status of parsing.
- (init_font_name_table) [USE_ATSUI]: Use decode_mac_font_name.
- Don't use Fdowncase because family name is already lowered by
- decode_mac_font_name.
- (init_font_name_table): Always call decode_mac_font_name.
- Add pair of family name and its reference to fm_font_family_alist.
- (mac_clear_font_name_table): Clear fm_font_family_alist.
- (XLoadQueryFont): Move font size parsing part to parse_x_font_name.
- Lookup fm_font_family_alist to get font family reference.
- (XLoadQueryFont) [USE_ATSUI]: Don't use Fdowncase because family
- name is already lowered by parse_x_font_name.
-
-2005-10-11 Kim F. Storm <storm@cua.dk>
-
- * xterm.c (glyph_rect): Return 0 if position is outside text area.
-
- * keyboard.c (make_lispy_position): Fix buffer position calculation for
- mouse click or movement in fringe.
-
-2005-10-10 Jason Rumney <jasonr@gnu.org>
-
- * xterm.c (remember_mouse_glyph): New function.
- (note_mouse_movement): Use it to remember the current glyph if changed.
- (XTmouse_position): Fix calculation of fake glyph under mouse.
- Move code to calculate glyph under mouse into remember_mouse_glyph.
-
-2005-10-10 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * emacs.c (USAGE3, standard_args): -nb => -nbi.
-
-2005-10-10 Juanma Barranquero <lekktu@gmail.com>
-
- * frame.c (Fredirect_frame_focus): Fix typos in docstring.
- (next_frame, prev_frame, set_term_frame_name): Make static.
-
- * window.c (Fwindow_tree): Fix spelling.
-
-2005-10-09 Romain Francoise <romain@orebokech.com>
-
- * window.c (Fwindow_end): Don't try to redisplay if non-interactive.
-
-2005-10-09 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * emacs.c (standard_args): Remove options -i, -itype, --icon-type.
- Add options -nb, --no-bitmap-icon.
-
- * xfns.c (Fx_create_frame): Make bitmapIcon have default on.
-
-2005-10-08 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macgui.h (MAX_CLIP_RECTS): New define.
- (struct _XGC): New member clip_region.
- (struct _XGC) [MAC_OSX && USE_ATSUI]: New members n_clip_rects and
- clip_rects.
-
- * macterm.c (GC_CLIP_REGION): New macro.
- (saved_port_clip_region): New variable.
- (mac_begin_clip, mac_end_clip): New functions.
- (XDrawLine, mac_erase_rectangle, mac_draw_bitmap, XFillRectangle)
- (mac_draw_rectangle, mac_draw_string_common, mac_copy_area)
- (mac_copy_area_with_mask, mac_scroll_area): Use them.
- (mac_set_clip_rectangle, mac_reset_clipping): Remove functions.
- [USE_ATSUI] (atsu_get_text_layout_with_text_ptr)
- [MAC_OS_X_VERSION_MAX_ALLOWED < 1020]: Specify kATSLineFractDisable.
- (mac_draw_string_common) [MAC_OSX && USE_ATSUI]: Clip to clipping
- rectangles stored in gc.
- (XFreeGC): Dispose of clipping region.
- (mac_set_clip_rectangles, mac_reset_clip_rectangles): New functions.
- (x_draw_fringe_bitmap, x_set_glyph_string_clipping)
- (x_draw_relief_rect, x_draw_box_rect, x_draw_stretch_glyph_string)
- (x_draw_glyph_string, x_clip_to_row, x_draw_hollow_cursor)
- (x_draw_bar_cursor): Use them.
- (x_set_glyph_string_clipping): Use get_glyph_string_clip_rects to
- get multiple clipping rectangles.
-
- * macterm.h (mac_term_init): Add types to extern.
- (struct mac_output): Remove members mWP and pending_menu_activation.
- Put members scroll_bar_foreground_pixel and
- scroll_bar_background_pixel in #if 0.
- (FRAME_MAC_WINDOW, FRAME_X_WINDOW): Use window_desc.
-
- * xfaces.c (x_create_gc, x_free_gc) [MAC_OS]: Add BLOCK_INPUT.
- Add debugging code.
-
-2005-10-08 Kim F. Storm <storm@cua.dk>
-
- * window.c (window_tree, Fwindow_tree): Rename fns added 2005-10-04.
-
-2005-10-07 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (redraw_overlapped_rows, redraw_overlapping_rows)
- [!HAVE_WINDOW_SYSTEM]: Don't declare them...
- (update_window) [!HAVE_WINDOW_SYSTEM]: ...and don't call them.
-
-2005-10-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * dispextern.h (struct glyph_string): Rename member for_overlaps_p
- to for_overlaps. Now occupy 3 bits.
- (OVERLAPS_PRED, OVERLAPS_SUCC, OVERLAPS_BOTH)
- (OVERLAPS_ERASED_CURSOR): New defines.
- (struct redisplay_interface): Add new OVERLAPS arg to member
- fix_overlapping_area.
- (x_fix_overlapping_area): Add new OVERLAPS arg.
- (get_glyph_string_clip_rects): Add extern.
-
- * dispnew.c (redraw_overlapping_rows):
- Call rif->fix_overlapping_area with new OVERLAPS arg as redrawn part.
-
- * xdisp.c: Rename member for_overlaps_p in struct glyph_string to
- for_overlaps.
- (get_glyph_string_clip_rects): New function created from
- get_glyph_string_clip_rect. Set clipping rectangles according to the
- value of for_overlaps. Enable to store multiple clipping rectangles.
- (get_glyph_string_clip_rect): Use get_glyph_string_clip_rects.
- (fill_composite_glyph_string, fill_glyph_string, draw_glyphs):
- Rename argument OVERLAPS_P to OVERLAPS. All uses in macros changed.
- (x_fix_overlapping_area): Add OVERLAPS arg. Pass it to draw_glyphs.
- (draw_phys_cursor_glyph): Set width of erased cursor to use it for
- calculating clipping rectangles later. Call x_fix_overlapping_area
- with new OVERLAPS arg to draw only erased cursor area.
- (expose_overlaps): Call x_fix_overlapping_area with new OVERLAPS arg
- to draw overlaps in both preceding and succeeding rows.
-
- * xterm.c, w32term.c, macterm.c: Rename member for_overlaps_p in
- struct glyph_string to for_overlaps.
-
-2005-10-04 Richard M. Stallman <rms@gnu.org>
-
- * alloc.c (refill_memory_reserve): Conditionalize the body,
- not the function's existence.
-
-2005-10-04 Kim F. Storm <storm@cua.dk>
-
- * window.c (window_split_tree): New function.
- (Fwindow_split_tree): New defun.
- (syms_of_window): Defsubr it.
-
-2005-10-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (mac_invert_rectangle): New function.
- (XTflash): Use it.
-
-2005-10-04 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * regex.h (re_char): Don't expose it in the interface.
- (re_set_whitespace_regexp): Adjust the arg's type to not use it.
-
- * regex.c (re_char): Move it back here.
- (re_set_whitespace_regexp): Change the arg's type to not use it.
-
- * keyboard.c (make_lispy_event): If point has moved between down and up
- event, make it a drag, not a click, to mirror what
- mouse-drag-region expects.
-
-2005-10-02 Dan Nicolaescu <dann@ics.uci.edu>
-
- * lisp.h (fatal): Undo previous change.
- * term.c (fatal): Undo previous change.
-
-2005-10-01 Richard M. Stallman <rms@gnu.org>
-
- * xfaces.c (face_color_gray_p): Colors close to black count as gray.
-
-2005-10-01 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (try_window): Skip scroll-margin check if ZV is visible.
-
-2005-10-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * keyboard.c (init_keyboard) [MAC_OSX]: Don't install SIGINT handler.
-
- * macfns.c (start_hourglass): Apply 2005-05-07 change for xfns.c.
- (x_create_tip_frame) [GLYPH_DEBUG]: Uncomment debugging code.
- (Fx_create_frame, x_create_tip_frame) [USE_ATSUI]:
- Try ATSUI-compatible 12pt Monaco font first.
-
- * macgui.h (struct _XCharStruct): New member valid_p.
- (STORE_XCHARSTRUCT): Set valid_p.
- (struct MacFontStruct) [USE_ATSUI]: New member mac_style.
-
- * macterm.c (mac_draw_string_common, x_per_char_metric)
- (mac_compute_glyph_string_overhangs, init_font_name_table)
- (XLoadQueryFont, mac_unload_font) [USE_ATSUI]: Add ATSUI support.
- (atsu_get_text_layout_with_text_ptr) [USE_ATSUI]: New function.
- (x_draw_glyph_string_background)
- (x_draw_glyph_string_foreground) [MAC_OS8 && USE_ATSUI]: Don't use
- XDrawImageString. Always draw background and foreground separately.
- (x_draw_glyph_string_foreground) [USE_ATSUI]: Don't use 8-bit
- functions for one-byte chars when using ATSUI-compatible fonts.
- (atsu_font_id_hash) [USE_ATSUI]: New variable.
- (syms_of_macterm) [USE_ATSUI]: Initialize and staticpro it.
- (XLoadQueryFont): Set min_byte1, max_byte1, min_char_or_byte2, and
- max_char_or_byte2 more in detail.
- (quit_char_comp, mac_check_for_quit_char) [MAC_OSX]: Remove functions.
-
-2005-09-30 Dan Nicolaescu <dann@ics.uci.edu>
-
- * image.c (slurp_file, xbm_read_bitmap_data): Cast to the correct type.
- * xterm.c (handle_one_xevent, handle_one_xevent): Likewise.
-
- * unexelf.c (fatal): Fix prototype.
-
- * term.c (fatal): Implement using varargs.
-
- * regex.c (re_char): Move typedef ...
- * regex.h (re_char): ... here.
- (re_iswctype, re_wctype, re_set_whitespace_regexp): New prototypes.
-
- * emacs.c (malloc_set_state): Fix return type.
- (endif): Fix type.
-
- * lisp.h (fatal): Add argument types.
-
- * dispextern.h (fatal): Delete prototype.
-
- * systime.h (make_time): Prototype moved from ...
- * editfns.c (make_time): ... here.
-
- * editfns.c: Move systime.h include after lisp.h.
- * dired.c:
- * xsmfns.c:
- * process.c: Likewise.
-
- * alloc.c (old_malloc_hook, old_realloc_hook, old_realloc_hook):
- Add parameter types.
- (__malloc_hook, __realloc_hook, __free_hook): Fix prototypes.
- (emacs_blocked_free): Change definition to match __free_hook.
- (emacs_blocked_malloc): Change definition to match __malloc_hook.
- (emacs_blocked_realloc): Change definition to match __realloc_hook.
-
-2005-09-30 Romain Francoise <romain@orebokech.com>
-
- * minibuf.c (Fread_buffer): Follow convention for reading from the
- minibuffer with a default value. Doc fix.
-
-2005-09-29 Juri Linkov <juri@jurta.org>
-
- * editfns.c (Fmessage, Fmessage_box, Fmessage_or_box):
- Rename argument name `string' to `format-string'.
- (Fformat): Doc fix.
-
-2005-09-28 Kim F. Storm <storm@cua.dk>
-
- * image.c (gif_load): Fix size of allocated image buffer
- for images where a sub-image may be larger than the image's
- total height/width specifications.
-
-2005-09-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macgui.h (struct _XCharStruct): Each member now takes short value.
-
-2005-09-27 Dan Nicolaescu <dann@ics.uci.edu>
-
- * xfaces.c (lookup_derived_face): Add parameter type.
-
- * xdisp.c (cursor_row_fully_visible_p): Add parameter type.
-
- * marker.c (verify_bytepos): Add parameter type.
-
- * process.c (get_operating_system_release): Move prototype ...
-
- * systime.h (get_operating_system_release): ... here.
-
- * xterm.c (handle_one_xevent): Refer to union field to match the
- type required by the function definition.
- (set_vertical_scroll_bar): Move prototype ...
-
- * xterm.h: ... here.
-
- * fns.c (internal_equal, seed_random): Fix prototypes.
- (internal_equal): Add missing parameter.
-
-2005-09-25 Richard M. Stallman <rms@gnu.org>
-
- * keyboard.c (update_menu_bindings): Variable deleted.
- (syms_of_keyboard): Don't defvar it.
- (parse_menu_item): Don't test it.
-
-2005-09-23 Richard M. Stallman <rms@gnu.org>
-
- * editfns.c (Fformat): Explicitly test for end of format string
- and don't use `index'.
-
-2005-09-23 Dan Nicolaescu <dann@ics.uci.edu>
-
- * s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME):
- Define BROKEN_GET_CURRENT_DIR_NAME.
-
- * sysdep.c (get_current_dir_name): Also define if
- BROKEN_GET_CURRENT_DIR_NAME.
-
- * m/ibmrs6000.h: Test for USG5, not USG5_4.
-
-2005-09-22 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (message_dolog): Add warning about GC and Lisp strings.
- (message2): Fix commentary. Ok to use alloca'ed memory.
- Still not ok to use Lisp string data (because of GC).
- (set_message): Add comment why GC cannot happen.
-
-2005-09-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (xlfdpat_block_match_1): Fix assertion.
- (init_font_name_table) [TARGET_API_MAC_CARBON]: Don't add style
- variants for a scalable font multiple times.
-
-2005-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * process.c (create_process) [RTU || UNIPLUS || DONT_REOPEN_PTY]:
- Setup slave tty options before forking.
-
-2005-09-20 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_set_geometry): Do a gtk_window_move if program
- positions have been set for the frame (as is done for frames in
- special-display-buffer-names).
-
-2005-09-19 Kim F. Storm <storm@cua.dk>
-
- * editfns.c (Fformat): Don't scan past end of format string that
- ends in %. Reported by Johan Bockg\e,Ae\e(Brd.
-
-2005-09-18 Andreas Schwab <schwab@suse.de>
-
- * window.h (struct window): Remove height_fixed_p, no longer set.
-
- * window.c (make_window): Don't initialize height_fixed_p.
- (window_fixed_size_p): Don't use it.
-
-2005-09-18 John Paul Wallington <jpw@pobox.com>
-
- * data.c (Fdefalias): Signal an error if SYMBOL is not a symbol.
-
-2005-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * Makefile.in (SOME_MACHINE_OBJECTS): Undo previous change.
-
- * macfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
- New variables.
- [TARGET_API_MAC_CARBON] (Fx_file_dialog): Don't allow multiple
- file selection.
-
- * sysdep.c [MAC_OS8]: Don't include stdlib.h. Include sys/param.h.
-
-2005-09-17 Eli Zaretskii <eliz@gnu.org>
-
- * Makefile.in (XMENU_OBJ) [!HAVE_CARBON]: Reinstate variable.
- (obj): Use XMENU_OBJ, not a literal xmenu.o.
-
-2005-09-16 Romain Francoise <romain@orebokech.com>
-
- * fileio.c (syms_of_fileio) <write-region-inhibit-fsync>: Doc fix.
-
-2005-09-15 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (overlay_arrow_at_row): Add HAVE_WINDOW_SYSTEM conditional.
- (display_mode_element): Instead of `lisp_string' and `this',
- record `offset' and increment that.
- `last_offset' replaces `last'.
-
- * Makefile.in (XMENU_OBJ): Variable deleted.
- (obj): Use xmenu.o unconditionally.
- (SOME_MACHINE_OBJECTS): Delete xmenu.o.
-
- * emacs.c (main): Don't conditionalize syms_of_xmenu on HAVE_XMENU.
-
-2005-09-15 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (move_it_vertically): Don't try to fetch byte BEGV-1.
- (reseat_at_next_visible_line_start): Likewise (in xassert).
-
-2005-09-14 Romain Francoise <romain@orebokech.com>
-
- * fileio.c (write_region_inhibit_fsync): New variable.
- (Fwrite_region): Use it to skip call to fsync.
- (syms_of_fileio): Initialize it.
-
-2005-09-14 Kenichi Handa <handa@m17n.org>
-
- * coding.c (code_convert_region_unwind): Argument format changed.
- (run_pre_post_conversion_on_str): If pre-write-conversion function
- changed the current buffer, delete the new buffer.
- (run_pre_write_conversin_on_c_str): Likewise.
-
- * fileio.c (Fexpand_file_name): Check multibyteness of
- default_directory.
-
-2005-09-13 Kenichi Handa <handa@m17n.org>
-
- * composite.c (compose_chars_in_text): Delete it.
-
- * composite.h (compose_chars_in_text): Delete extern.
-
-2005-09-13 Kim F. Storm <storm@cua.dk>
-
- * print.c (print_error_message): Fix last change.
-
-2005-09-12 Kim F. Storm <storm@cua.dk>
-
- * composite.c (compose_chars_in_text): Fix setup of `pend'.
- Unconditionally reload `ptr' and `pend' after eval.
-
- * xdisp.c (message3): Pass copy of lisp string to message_dolog.
-
- * print.c (print_error_message): Pass copy of caller name to
- message_dolog.
-
- * fileio.c (auto_save_error): Pass copy of lisp string to message2.
-
-2005-09-12 Kenichi Handa <handa@m17n.org>
-
- * xdisp.c (display_mode_element): Be sure to make variables THIS
- and LISP_STRING point into a string data of ELT.
-
-2005-09-12 Kim F. Storm <storm@cua.dk>
-
- * editfns.c (Ftranslate_region_internal): Reload `tt' after
- signal_after_change that may have GC'ed.
- (Fmessage, Fmessage_box, Fmessage_or_box): Doc fix.
-
- * keymap.c (Fdescribe_buffer_bindings): Reload `translate'
- after insert while runs signal_after_change.
-
- * minibuf.c (Fminibuffer_complete_word): Move `completion_string'
- declaration to where it is used.
-
- * w32.c (check_windows_init_file): Fix allocation of error buffer.
-
- * xfns.c (x_encode_text): Declare static. Add FREEP arg.
- (x_set_name_internal): Call x_encode_text with new FREEP arg to
- know if xfree is needed instead of guessing.
-
- * xterm.h (x_encode_text): Remove prototype.
-
-2005-09-11 Chris Prince <cprince@gmail.com> (tiny change)
-
- * w32term.c (x_bitmap_icon): Load small icons too.
-
-2005-09-10 Romain Francoise <romain@orebokech.com>
-
- * buffer.c (init_buffer): Grow buffer to add directory separator
- and terminal zero. Fix typos.
-
-2005-09-10 Eli Zaretskii <eliz@gnu.org>
-
- * buffer.c (init_buffer): Fix error message for failed call to
- get_current_dir_name.
- (get_current_dir_name): Remove prototype.
-
- * xsmfns.c (get_current_dir_name): Remove prototype.
-
- * lisp.h (get_current_dir_name) [!HAVE_GET_CURRENT_DIR_NAME]:
- Add prototype.
-
- * sysdep.c [WINDOWSNT]: Add prototype for getwd.
- Don't #undef NULL after including blockinput.h.
-
- * config.in: Regenerated.
-
-2005-09-10 Giuseppe Scrivano <gscrivano@gmail.com>
-
- Remove the MAXPATHLEN limitations:
-
- * sysdep.c (get_current_dir_name) [!HAVE_GET_CURRENT_DIR_NAME]:
- New function.
-
- * buffer.c (init_buffer): Use it.
-
- * xsmfns.c (smc_save_yourself_CB): Ditto.
-
-2005-09-09 Kim F. Storm <storm@cua.dk>
-
- * doc.c (Fsubstitute_command_keys): Lookup key binding for
- commands that are remapped from some other command.
-
- * xdisp.c (try_window_reusing_current_matrix): Clear mode_line_p
- flag in disabled rows below the window.
-
- * frame.h (struct frame): New member updated_p.
-
- * xdisp.c (redisplay_internal): Mark updated frames in new updated_p
- member. Remove local `updated' array and associated variables.
-
-2005-09-07 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (handle_display_prop): Respect overlay window property.
-
- * xdisp.c (try_window): Remove superfluous cursor_height calculation.
- Fixes crash reported by YAMAMOTO Mitsuharu.
-
-2005-09-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (struct xlfdpat_block, struct xlfdpat): New structs.
- (xlfdpat_destroy, xlfdpat_create, xlfdpat_exact_p)
- (xlfdpat_block_match_1, xlfdpat_match): New functions.
- (xlfdpat_block_match): New macro.
- (mac_to_x_fontname): Don't use tolower for non-ASCII characters.
- (x_font_name_to_mac_font_name): Set coding.dst_multibyte to 0.
- (add_font_name_table_entry): Increase font_name_table_size more
- rapidly.
- (mac_c_string_match): Remove function.
- (mac_do_list_fonts): Use XLFD pattern match instead of regular
- expression match.
-
- * xfaces.c (xstrlwr): Don't use tolower for non-ASCII characters.
-
-2005-09-03 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (redisplay_internal): Make UPDATED as long as needed.
- (move_it_in_display_line_to): Stop after last char on line even
- on a windowing terminal, if that's the specified stop position.
-
- * fns.c (Fsort): Doc fix.
-
- * editfns.c (Fpropertize): Don't insist that properties be symbols.
-
-2005-09-02 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * dired.c (directory_files_internal_unwind, directory_files_internal)
- (file_name_completion): Use a Save_Value object rather than a cons of
- two 16bit ints to store the DIR*.
- (directory_files_internal, file_name_completion): Handle both EINTR and
- EAGAIN consistently after `readdir'.
-
-2005-09-01 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * intervals.c (update_interval): Add position info in error.
-
- * dispnew.c (window_to_frame_hpos, update_window):
- Avoid gcc warning about unused variable `f'.
-
-2005-08-31 Jason Rumney <jasonr@gnu.org>
-
- * w32menu.c (add_menu_item): If unicode_append_menu returns an
- error, revert to using AppendMenu.
-
-2005-08-31 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * image.c (PIX_MASK_DRAW, PIX_MASK_RETAIN): Remove argument.
- All uses changed.
- [MAC_OS] (XPutPixel, XGetPixel): Add efficient versions for common
- cases.
- (x_create_x_image_and_pixmap) [MAC_OS]: Don't call x_destroy_x_image.
- [MAC_OS] (find_image_fsspec) [!MAC_OSX]: Don't use FSRef.
- Use posix_pathname_to_fsspec.
- [MAC_OS] (xpm_load_image): Fill in background_transparent field
- while we have mask.
-
- * macgui.h [!TARGET_API_MAC_CARBON] (GetPixDepth): New define.
-
- * macterm.h (PIX_MASK_DRAW, PIX_MASK_RETAIN): Move defines to image.c.
-
-2005-08-29 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * syntax.c (update_syntax_table): Properly reproduce the special +1
- setting of e_property at the end of the buffer when bumping into the
- INTERVALS_AT_ONCE limit.
-
-2005-08-27 Eli Zaretskii <eliz@gnu.org>
-
- * emacs.c (USAGE1): Fix the description of the -Q option.
-
-2005-08-26 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xdisp.c (pos_visible_p): Yet another int/Lisp_Object mixup (YAILOM).
-
-2005-08-26 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (resize_mini_window): Fix 2005-08-20 change.
- Don't move PT to new window start.
-
-2005-08-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * keyboard.c (kbd_buffer_get_event) [MAC_OS]: Make events for
- ICONIFY/DEICONIFY_EVENT.
-
- * macterm.c (mac_copy_area, mac_copy_area_with_mask):
- Restore background color.
- (mac_handle_visibility_change): New function.
- (x_make_frame_invisible, x_iconify_frame)
- (XTread_socket) [!USE_CARBON_EVENTS]: Use it.
- [USE_CARBON_EVENTS] (mac_handle_window_event)
- (install_window_handler): Handle visibility change events.
- (x_make_frame_visible): Don't reposition window if it is iconified
- or asked for visible before. Select and uncollapse window when it
- is made visible.
- (x_make_frame_invisible): Don't reset x_highlight_frame.
- (x_iconify_frame): Likewise. Make invisible frame visible before
- it is iconified.
- (read_socket_inev): Move variable outside #if USE_CARBON_EVENTS.
- (do_window_update): Don't change visibility of invisible frame.
-
-2005-08-22 Juri Linkov <juri@jurta.org>
-
- * term.c (turn_on_face): Check for TS_set_foreground and
- TS_set_background depending on standout_mode. Simplify.
-
-2005-08-21 Kim F. Storm <storm@cua.dk>
-
- * fringe.c (update_window_fringes): Only put TOP and BOTTOM
- bitmaps on fully visible rows.
-
- * fringe.c (update_window_fringes): Replace FORCE_P arg with
- KEEP_CURRENT_P arg; if non-zero, don't update current row fringes,
- and return 0.
-
- * xdisp.c (redisplay_window): Call update_window_fringes with
- KEEP_CURRENT_P non-0 if we are going to refresh fringes later.
-
-2005-08-20 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (display_echo_area_1): Get display start pos from w->start.
- (resize_mini_window): Set w->start, and PT, so as to display the tail
- end of the buffer, if it doesn't all fit.
-
-2005-08-18 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (calc_pixel_width_or_height): Use actual display
- resolution when available instead of Vdisplay_pixels_per_inch.
-
-2005-08-17 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (pos_visible_p): Adjust X value if window is hscrolled.
-
- * dispnew.c (buffer_posn_from_coords): Check that target row is
- within matrix.
-
-2005-08-16 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_wm_set_icon_pixmap): Move GTK specific code to
- xg_set_frame_icon and call it.
-
- * gtkutil.c (xg_set_frame_icon): New function.
-
- * gtkutil.h (xg_set_frame_icon): Declare it.
-
-2005-08-16 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (increment_row_positions): Skip non-enabled rows.
-
- * window.c (SAVED_WINDOW_VECTOR_SIZE): Remove dangerous define.
- (Fcurrent_window_configuration): Use VECSIZE macro instead.
-
-2005-08-15 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (message3_nolog): Clear echo_message_buffer.
-
-2005-08-15 Kim F. Storm <storm@cua.dk>
-
- * lisp.h (QUIT) [!SYNC_INPUT]: Throw t to Vthrow_on_input.
-
- * process.c (deactivate_process, status_notify, read_process_output)
- (update_status, status_convert, decode_status, allocate_pty)
- (make_process, remove_process, list_processes_1)
- (create_process_1, unwind_request_sigio, read_process_output)
- (send_process, keyboard_bit_set): Declare static.
- (Fdelete_process): Simplify. Pass process to status_notify, so we
- don't try to read output from it.
- (status_notify): New arg deleting_process--don't try to read
- output from that process.
-
- * lisp.h (deactivate_process, status_notify, read_process_output):
- Remove prototypes.
-
-2005-08-14 Richard M. Stallman <rms@gnu.org>
-
- * image.c (syms_of_image): Init Qxbm, Qpbm before calling
- define_image_type.
-
-2005-08-13 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_get_pixbuf_from_pix_and_mask): New function.
- (xg_get_image_for_pixmap): Move some code to
- xg_get_pixbuf_from_pix_and_mask, and call it.
-
- * gtkutil.h (xg_get_pixbuf_from_pix_and_mask): Declare.
-
- * xterm.c (x_wm_set_icon_pixmap): Call xg_get_pixbuf_from_pix_and_mask
- to get an GTK icon and set it with GTK functions to avoid having GTK
- override an icon set with just X functions.
-
-2005-08-11 Richard M. Stallman <rms@gnu.org>
-
- * image.c (syms_of_image): Init image_types here, and call
- define_image_type.
- (init_image): Not here.
-
-2005-08-09 Richard M. Stallman <rms@gnu.org>
-
- * bytecode.c (BYTE_CODE_QUIT): Throw t to Vthrow_on_input.
-
- * lisp.h (QUIT): Throw t to Vthrow_on_input.
-
-2005-08-09 Thien-Thi Nguyen <ttn@gnu.org>
-
- * floatfns.c (Fexpt): Use floats for negative exponent.
-
-2005-08-08 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_modify_menubar_widgets): Remove semicolon that
- should not be there, causing menu display errors with GTK 2.6.9.
-
-2005-08-07 Richard M. Stallman <rms@gnu.org>
-
- * floatfns.c (Fexpt): Undo previous change.
-
- * dispnew.c (Fframe_or_buffer_changed_p): Take an arg
- so it can be used with various state vectors.
-
- * emacs.c (endif): Convert -script into -scriptload.
- (standard_args): Add -scriptload. Allow -basic-display with one dash.
-
- * fns.c (syms_of_fns): Add `emacs' to features.
-
- * term.c (set_terminal_modes): If no TS_termcap_modes string,
- output newlines to scroll the old screen contents off the screen.
-
-2005-08-06 Thien-Thi Nguyen <ttn@gnu.org>
-
- * floatfns.c (Fexpt): Use floats for negative exponent.
- Reported by D Goel.
-
-2005-08-02 Richard M. Stallman <rms@gnu.org>
-
- * frame.c (Fframe_char_width): Doc fix.
-
-2005-07-30 Juanma Barranquero <lekktu@gmail.com>
-
- * xdisp.c (syms_of_xdisp) <redisplay-end-trigger-functions>:
- Defvar it.
-
-2005-07-28 Juanma Barranquero <lekktu@gmail.com>
-
- * w32fns.c (my_set_window_pos, my_show_window): Don't declare.
- (my_create_window, my_create_tip_window): Make static.
-
- * w32term.c (my_show_window, my_set_window_pos, my_set_focus)
- (my_set_foreground_window, my_destroy_window): Make static.
-
-2005-07-26 Paul Eggert <eggert@cs.ucla.edu>
-
- Merge gnulib getopt implementation into Emacs.
-
- * s/cygwin.h (C_SWITCH_SYSTEM): Remove, since gettext.h is
- now part of lib-src.
-
-2005-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * eval.c (Fdefvar): Allow (defvar enable-multibyte-characters).
-
-2005-07-25 Jason Rumney <jasonr@gnu.org>
-
- * w32menu.c (w32_menu_display_help): Suppress tooltip when
- navigating menus with the keyboard.
-
-2005-07-23 Richard M. Stallman <rms@gnu.org>
-
- * insdel.c (syms_of_insdel): staticpro combine_after_change_buffer.
-
- * bytecode.c (MAYBE_GC): Test gc_cons_threshold and
- gc_relative_threshold, one by one.
-
- * keyboard.c (read_char): Test gc_cons_threshold.
- (syms_of_keyboard): staticpro Qecho_area_clear_hook.
-
- * eval.c (Feval, Ffuncall): Test gc_cons_threshold and
- gc_relative_threshold, one by one.
-
- * alloc.c (gc_cons_threshold): Not static.
- (gc_cons_combined_threshold): Var deleted.
- (gc_relative_threshold): New variable.
- (Fgarbage_collect, init_alloc_once): Compute gc_relative_threshold
- instead of gc_cons_combined_threshold.
-
- * lisp.h (gc_cons_threshold, gc_relative_threshold): Declare.
- (gc_cons_combined_threshold): Declaration deleted.
-
-2005-07-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c: Don't include stdlib.h or string.h.
- (Fdo_applescript, Fmac_file_name_to_posix)
- (Fmac_file_name_to_posix): Doc fixes.
- [TARGET_API_MAC_CARBON] (Fmac_get_preference)
- (Fmac_code_convert_string): Likewise.
- [MAC_OSX] (init_mac_osx_environment): Fall back on terminal mode
- if the executable is not contained in a bundle.
-
- * macfns.c: Don't include stdlib.h or string.h. Include atimer.h.
- (gray_width, gray_height): Remove defines.
- (gray_bits, gray_bitmap_width, gray_bitmap_height)
- (gray_bitmap_bits): Remove variables.
- (lispy_function_keys): Remove extern.
- (free_frame_menubar): Add extern.
- (x_window_to_frame): Remove function.
- (unwind_create_tip_frame): Add declaration.
- (x_set_name_internal): New function.
- (x_set_name, x_set_title): Use it.
- (Fx_create_frame, Fx_display_grayscale_p, Fx_display_pixel_width)
- (Fx_display_pixel_height, Fx_display_planes)
- (Fx_display_color_cells, Fx_server_max_request_size)
- (Fx_server_vendor, Fx_server_version, Fx_display_screens)
- (Fx_display_mm_height, Fx_display_mm_width)
- (Fx_display_backing_store, Fx_display_visual_class)
- (Fx_display_save_under, Fx_synchronize, Fx_show_tip): Doc fixes.
-
- * macmenu.c (Fx_popup_menu, Fx_popup_dialog): Doc fixes.
-
- * macselect.c (Fx_own_selection_internal): Follow error conventions.
- (Fx_get_selection_internal, Fx_selection_owner_p)
- (Fx_selection_exists_p): Doc fixes.
- (syms_of_macselect) <selection-converter-alist>: Likewise.
-
-2005-07-21 Juanma Barranquero <lekktu@gmail.com>
-
- * buffer.c (syms_of_buffer) <cursor-type>: Doc fix.
-
- * ccl.c (Fregister_ccl_program): Fix typos in docstring.
- (Fccl_execute_on_string): Likewise; add usage info.
-
- * composite.c (Fcompose_region_internal)
- (Fcompose_string_internal):
- Improve argument/docstring consistency.
-
- * minibuf.c (Fminibuffer_prompt_end, Feval_minibuffer):
- Fix typos in docstrings.
-
- * textprop.c (Fnext_char_property_change)
- (Fprevious_char_property_change): Doc fixes.
-
- * window.c (Fset_window_margins, Fset_window_fringes):
- Improve argument/docstring consistency.
-
- * xfaces.c (Finternal_lisp_face_p): Doc fix.
-
-2005-07-21 Andreas Schwab <schwab@suse.de>
-
- * eval.c (restore_stack_limits): Return a value.
-
-2005-07-20 Juanma Barranquero <lekktu@gmail.com>
-
- * eval.c (Fdefvar): Doc fix.
-
-2005-07-20 Kim F. Storm <storm@cua.dk>
-
- * fileio.c (Fdo_auto_save, do_auto_save_unwind):
- Use make_save_value to unwind protect stream.
-
- * lread.c (Fload, load_unwind):
- Use make_save_value to unwind protect stream.
-
-2005-07-19 Juanma Barranquero <lekktu@gmail.com>
-
- * eval.c (Fprog2, Fcalled_interactively_p),
- (syms_of_eval) <debug-on-quit>: Doc fixes.
- (syms_of_eval) <max-specpdl-size>:
- (Finteractive_p): Fix typos in docstrings.
-
-2005-07-19 Kim F. Storm <storm@cua.dk>
-
- * w32fns.c (Vx_hand_shape): Variable removed.
- (syms_of_w32fns): Intern and staticpro Qw32_charset_default.
-
-2005-07-19 Kenichi Handa <handa@m17n.org>
-
- * fns.c (Fstring_as_multibyte): Escape backslashes in the docstring.
-
-2005-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * buffer.h (Fgenerate_new_buffer_name): Declare (for use in coding.c).
-
-2005-07-18 Kim F. Storm <storm@cua.dk>
-
- * frame.h (struct frame): New member already_hscrolled_p.
-
- * xdisp.c (redisplay_internal): Only try to hscroll each frame once
- to avoid redisplay looping hscrolling back and forth ad infinitum.
-
-2005-07-18 Juri Linkov <juri@jurta.org>
-
- * buffer.c (scroll-up-aggressively, scroll-down-aggressively):
- * keymap.c (Fminor_mode_key_binding):
- * macterm.c (mac-emulate-three-button-mouse):
- Delete duplicate duplicate words.
-
-2005-07-18 Ken Raeburn <raeburn@gnu.org>
-
- * minibuf.c (Ftest_completion): Fix odd syntax in test.
-
-2005-07-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (x_set_cursor_color): Use XSetBackground and XSetForeground.
-
- * macgui.h (struct _XGC): New struct.
- (GC): Use it.
- (GCForeground, GCBackground, GCFont): Use X11 mask values.
- (XCreateGC, XParseGeometry): Move externs to macterm.h.
-
- * macterm.c (x_bitmap_icon, x_make_frame_visible): Remove declarations.
- (XSetFont): Add declaration.
- (mac_set_forecolor, mac_set_backcolor, mac_set_colors):
- Remove functions.
- (GC_FORE_COLOR, GC_BACK_COLOR, GC_FONT, MAC_WINDOW_NORMAL_GC):
- New defines.
- (XDrawLine, mac_draw_line_to_pixmap, XClearWindow)
- (mac_draw_bitmap, XCreatePixmapFromBitmapData, XFillRectangle)
- (mac_draw_rectangle, mac_draw_string_common, mac_scroll_area):
- Use them.
- (mac_erase_rectangle): New function.
- (XClearArea, x_draw_fringe_bitmap, x_clear_glyph_string_rect)
- (x_draw_stretch_glyph_string): Use it.
- (XChangeGC, XCreateGC, XGetGCValues, XSetForeground)
- (XSetBackground, XSetFont): Adjust for new GC implementation.
- (x_draw_fringe_bitmap, x_draw_box_rect): Use GC to set colors.
- (XTset_vertical_scroll_bar): Clear area under scroll bar.
-
- * macterm.h (struct mac_display_info): Change types of
- scratch_cursor_gc black_relief.gc, and white_relief.gc to GC.
- (XCreateGC, XParseGeometry): Move externs from macgui.h.
-
- * xfaces.c [MAC_OS] (XCreateGC): Remove extern.
-
-2005-07-16 Richard M. Stallman <rms@gnu.org>
-
- * buffer.c (Fmake_overlay): Doc fix.
-
-2005-07-16 Eli Zaretskii <eliz@gnu.org>
-
- * w32proc.c (syms_of_ntproc): staticpro Qhigh, Qlow,
- Vw32_valid_locale_ids, and Vw32_valid_codepages.
-
-2005-07-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c [TARGET_API_MAC_CARBON] (Fmac_code_convert_string):
- Use Fstring_as_unibyte instead of string_make_unibyte.
-
-2005-07-15 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (select_frame_for_redisplay): Use find_symbol_value.
-
-2005-07-15 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c: Fix redisplay loop in last change.
- (IT_POS_VALID_AFTER_MOVE_P): New macro.
- (move_it_vertically_backward, move_it_by_lines): Use it.
-
-2005-07-14 Jason Rumney <jasonr@gnu.org>
-
- * w32.c (init_environment): Default HOME directory to user's
- appdata directory if possible.
-
-2005-07-14 Kim F. Storm <storm@cua.dk>
-
- * .gdbinit (pitx): Fix output format. Print string charpos.
-
- * lread.c (syms_of_lread): Initialize seen_list.
-
- * search.c (syms_of_search): Staticpro searchbuf.whitespace_regexp.
-
- * syntax.c (syms_of_syntax): Staticpro lisp objects in gl_state.
- Staticpro re_match_object.
-
-2005-07-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macselect.c (get_scrap_target_type_list): Avoid NULL pointer
- dereference.
-
- * macterm.c (mac_window_to_frame): Remove duplicate define.
-
-2005-07-14 Kenichi Handa <handa@m17n.org>
-
- * coding.c (code_convert_region_unwind): ARG is changed to a cons.
- (code_convert_region): Adjust for the above change.
- (set_conversion_work_buffer): If the work buffer is already in
- use, generate a new buffer and return it. Otherwise return Qnil.
- (run_pre_post_conversion_on_str): Adjust for the above change.
- (run_pre_write_conversin_on_c_str): Likewise.
-
-2005-07-13 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (start_display): Don't reseat to next visible line start
- if current start position is in a string or image.
- (move_it_vertically_backward): Be sure to move out of strings and
- images when moving it2 forward.
- (move_it_by_lines): When moving forward, move to next buffer
- position if we end up in a string or image. When moving backward,
- count rows moved over when moving to start of current row in case
- row starts in middle of a string or image. Also move further
- backward if we end up in a string or image.
- (try_cursor_movement): If overlay string spans multiple lines,
- move backward to set cursor on start of an overlay string.
- (cursor_row_p): Row is ok if cursor is at newline from string, but
- string starts on this line (so we always position cursor at start
- of string).
-
- * indent.c (Fvertical_motion): If start position is on an image,
- don't move back if we move too far (that's almost certain to happen).
-
- * xdisp.c (cursor_row_fully_visible_p): Allow partially visible
- row in minibuffer windows.
- (try_window): Don't check margins in minibuffer windows.
-
-2005-07-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c: Don't include stdlib.h or composite.h.
- (x_use_underline_position_properties, last_mouse_press_frame)
- (x_noop_count, Qvendor_specific_keysyms): Remove unused variables.
- (syms_of_macterm, mac_initialize): Don't initialize them.
- (waiting_for_input, initial_argv, initial_argc)
- (Vcommand_line_args, Vx_no_window_manager, errno, window_scroll)
- (set_frame_menubar, path_from_vol_dir_name): Remove externs.
- (extra_keyboard_modifiers): Fix type in extern.
- (x_window_to_frame, x_window_to_scroll_bar): Remove declarations.
- (x_scroll_bar_report_motion): Add argument types to declaration.
- (mac_compute_glyph_string_overhangs): Add declaration.
- (disable_mouse_highlight): Remove unused variable.
- [USE_TOOLKIT_SCROLL_BARS] (construct_scroll_bar_click)
- (x_scroll_bar_handle_press, x_scroll_bar_handle_release)
- (x_scroll_bar_handle_drag): Remove argument `timestamp'.
- All callers changed.
- [USE_TOOLKIT_SCROLL_BARS] (construct_scroll_bar_click): Don't set
- timestamp.
- [USE_CARBON_EVENTS] (mac_handle_mouse_event): Likewise.
- (x_scroll_bar_create, XTset_vertical_scroll_bar): Show scroll bar
- only when its width is less than the height.
- (XTredeem_scroll_bar): Sync with xterm.c.
- (font_name_table, font_name_table_size, font_name_count):
- Make static.
- (drag_and_drop_file_list): Remove variable. Previous use is now
- local to function.
- (do_ae_open_documents): Move DRAG_N_DROP event construction part
- from XTread_socket.
- (XTread_socket): Consolidate setting of event timestamp.
- Move DRAG_N_DROP event construction part to do_ae_open_documents.
- Support extra_keyboard_modifiers.
-
- * xfaces.c (try_font_list) [MAC_OS]: Try font family name
- beginning with that for ASCII.
-
-2005-07-13 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * alloc.c (gc_cons_combined_threshold, Vgc_cons_percentage): New vars.
- (Fgarbage_collect, init_alloc_once): Set gc_cons_combined_threshold.
- (syms_of_alloc): Declare gc-cons-percentage.
-
- * eval.c (Feval, Ffuncall):
- * keyboard.c (read_char):
- * bytecode.c (MAYBE_GC): Use gc_cons_combined_threshold.
-
- * lisp.h (gc_cons_combined_threshold): Declare.
-
-2005-07-12 Kim F. Storm <storm@cua.dk>
-
- * coding.c (Qprocess_argument):
- * coding.h (Qprocess_argument): Remove unused var.
-
- * xselect.c (intern): Remove dup. intern and staticpro for QTIMESTAMP.
-
-2005-07-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c [!TARGET_API_MAC_CARBON]: Include charset.h, coding.h, and
- Endian.h.
- [!MAC_OSX] (fchmod, fchown): New functions.
- (mac_get_code_from_arg): Don't accept Lisp integer as argument.
- Use SBYTES and EndianU32_BtoN.
- (mac_get_object_from_code): Return 4 byte string even if argument
- is 0. Use make_unibyte_string and EndianU32_NtoB.
- (Fmac_get_file_creator, Fmac_get_file_type, Fmac_set_file_creator)
- (Fmac_set_file_type): Fix documents and argument declarations.
- Don't specify kFSCatInfoNodeFlags. Support Mac OS Classic.
-
-2005-07-11 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * window.c (Frecenter): Yet another int/Lisp_Object mixup (YAILOM).
-
-2005-07-11 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfaces.c (x_update_menu_appearance): Use fontSet resource for
- Lucid if X_I18N, font otherwise.
-
-2005-07-10 Steven Tamm <steventamm@mac.com>
-
- * mac.c (Fmac_get_file_type, Fmac_get_file_creator): Add.
- (Fmac_set_file_type, Fmac_set_file_creator): Add.
- (mac_get_object_from_code, mac_get_code_from_arg): Add.
-
-2005-07-10 Richard M. Stallman <rms@gnu.org>
-
- * lread.c (Qeval_buffer_list, Veval_buffer_list): New vars.
- (syms_of_lread): Set up eval-buffer-list.
- (Feval_buffer, Feval_region): Bind eval-buffer-list.
-
-2005-07-08 Richard M. Stallman <rms@gnu.org>
-
- * eval.c (Fdefvar): Allow defvaring a constant to itself quoted.
-
-2005-07-08 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (menu_bar_items): Don't GCPRO menu_bar_items_vector here.
- (syms_of_keyboard): Initialize and staticpro menu_bar_items_vector.
-
-2005-07-07 Kim F. Storm <storm@cua.dk>
-
- * window.c (Frecenter): Fix last change (set iarg before use).
-
-2005-07-06 Richard M. Stallman <rms@gnu.org>
-
- * window.c (Frecenter): When arg is inside the scroll margin,
- move it out of the margin.
-
-2005-07-06 Jason Rumney <jasonr@gnu.org>
-
- * w32console.c (initialize_w32_display): Detect when the console
- dimensions are insane, and default to 80x25 instead.
- (w32_use_full_screen_buffer): Default to nil.
-
-2005-07-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (mac_draw_vertical_window_border): Use foreground of
- VERTICAL_BORDER_FACE_ID for vertical border line.
- (mac_encode_char): Call check_ccl_update in advance.
- (mac_to_x_fontname, x_font_name_to_mac_font_name)
- (init_font_name_table, mac_do_list_fonts, XLoadQueryFont):
- Don't assume that font family length is less than 32.
- (x_compute_min_glyph_bounds): Make static.
- (x_load_font): Never set fonts_changed_p to zero.
-
-2005-07-04 Lute Kamstra <lute@gnu.org>
-
- * Update FSF's address in GPL notices.
-
-2005-07-03 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (try_window): Fix previous change in how it handles
- a partially-visible line or one only partly past the margin.
-
- * window.c (window_scroll_pixel_based): Take account
- of this_scroll_margin when finding point when scrolling up.
-
-2005-06-29 Ralf Angeli <angeli@iwi.uni-sb.de>
-
- * window.c (window_scroll_pixel_based, window_scroll_line_based):
- Handle `scroll-preserve-screen-position' non-nil, non-t specially.
- (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
-
-2005-07-02 Juri Linkov <juri@jurta.org>
-
- * w32term.c (w32_draw_vertical_window_border): Use foreground of
- VERTICAL_BORDER_FACE_ID for vertical border line.
-
-2005-07-02 Eli Zaretskii <eliz@gnu.org>
-
- * fileio.c (Fcopy_file): Rearrange the code that calls fchown and
- fchmod so that chmod doesn't get called on MSDOS before the file
- is closed.
-
-2005-07-01 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (cleartype_active): New flag for enabling sub-pixel
- workaround.
- (w32_initialize): Initialize it.
- (w32_native_per_char_metric): Allow a couple of extra pixels when
- Cleartype is active.
-
- * w32term.c (w32_initialize): Move check for screen reader here
- from syms_of_w32term.
-
-2005-06-30 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (handle_one_xevent): bzero compose_status when nbytes
- is not zero.
-
-2005-07-01 Masatake YAMATO <jet@gyve.org>
-
- * emacs.c (main): Passing ADD_NO_RANDOMIZE to `personality'.
-
-2005-06-30 Juri Linkov <juri@jurta.org>
-
- * xdisp.c (x_draw_vertical_border): If left fringe is not present
- decrease x coord of vertical border by 1 pixel to not occupy text
- area of the right window.
-
- * xterm.c (x_draw_vertical_window_border): Use foreground of
- VERTICAL_BORDER_FACE_ID for vertical border line.
-
- * term.c (turn_on_face): In standout mode apply specified
- fg to bg, and specified bg to fg (this makes the logic of
- inversion on terminal consistent with X).
-
-2005-06-29 Juanma Barranquero <lekktu@gmail.com>
-
- * eval.c (user_variable_p_eh): New function.
- (Fuser_variable_p): Use it. Clarify docstring.
- Return t for aliases of user options, nil for alias loops.
-
-2005-06-27 Richard M. Stallman <rms@gnu.org>
-
- * eval.c (Fdefvar): Improve error message.
-
-2005-06-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c [USE_CARBON_EVENTS] (mac_convert_event_ref): Fix last
- change.
-
-2005-06-27 Juanma Barranquero <lekktu@gmail.com>
-
- * eval.c (Fdefvar): Don't try to set constant symbols.
-
-2005-06-25 Richard M. Stallman <rms@gnu.org>
-
- * macfns.c (Fx_show_tip): Pass new arg to try_window.
-
- * w32fns.c (Fx_show_tip): Pass new arg to try_window.
-
- * xfns.c (Fx_show_tip): Pass new arg to try_window.
-
- * xdisp.c (try_window): New arg CHECK_MARGINS. Calls changed.
- (redisplay_window): Handle try_window reporting point in scroll margin.
-
- * dispextern.h (try_window): Declare new arg.
-
- * fileio.c (Fcopy_file): New arg PRESERVE_UID_GID.
- Use fchmod to copy the file modes.
- (Frename_file): Don't copy UID and GID here;
- instead, specify t for PRESERVE_UID_GID when calling Fcopy_file.
-
- * eval.c (call_debugger): Take full care of extending stack limits
- to make space for the debugger, and restore the change afterward.
- Bind debug-on-error to nil.
- (restore_stack_limits): New subroutine.
- (Fsignal): Extend specpdl bound along with eval depth bound,
- for calling edebug. Don't do either one, for calling debugger.
- (find_handler_clause): Don't bind debug-on-error here.
- Don't unbind anything either.
- Temporarily advance max_specpdl_size for calling
- internal_with_output_to_temp_buffer.
- (grow_specpdl): Don't alter max_specpdl_size before signaling
- an error.
- (syms_of_eval) <max-specpdl-size>: Doc fix.
-
- * lread.c (read1): 0.0e+NaN should make a "positive" NaN.
-
-2005-06-24 Eli Zaretskii <eliz@gnu.org>
-
- * fileio.c (Frename_file): Undo last change: no need to ifdef away
- chown on DOS_NT platforms.
-
- * w32.c (sys_chown): New function.
-
- * s/ms-w32.h (chown): New; define to sys_chown.
-
-2005-06-24 Juanma Barranquero <lekktu@gmail.com>
-
- * xdisp.c (syms_of_xdisp) <nobreak-char-display>: Doc fix.
- (syms_of_xdisp) <void-text-area-pointer>: Doc fix.
-
- * fileio.c (Frename_file)[!DOS_NT]: Don't call chown on MSDOS/Windows.
-
-2005-06-23 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (get_next_display_element): Finish reversing the tests of
- Vnobreak_char_display.
-
- * xdisp.c (Vnobreak_char_display): Rename from Vshow_nonbreak_escape.
- All uses changed.
- (Qnobreak_space): Rename from Qno_break_space. All uses changed.
- (syms_of_xdisp): Define nobreak-char-display and nobreak-space.
-
- * fileio.c (Frename_file): Preserve owner and group, if possible,
- when copying.
-
-2005-06-23 Juanma Barranquero <lekktu@gmail.com>
-
- * abbrev.c (Funexpand_abbrev):
- * category.c (Fmake_category_set):
- * dispnew.c (Fsleep_for, Fsit_for):
- * editfns.c (Fsubst_char_in_region):
- * eval.c (Fdefvar, Fdefconst, Feval, Ffuncall):
- * frame.c (make_frame_without_minibuffer):
- * lread.c (read_vector):
- * macfns.c (check_x_frame):
- * process.c (Fstop_process, Fcontinue_process):
- * search.c (Freplace_match):
- * syntax.c (Fstring_to_syntax):
- * w32fns.c (check_x_frame, check_x_display_info):
- * xfaces.c (x_supports_face_attributes_p):
- * xselect.c (Fx_own_selection_internal): Follow error conventions.
-
- * image.c (fn_png_init_io): Don't define it.
- (init_png_functions) [HAVE_NTGUI]: Don't initialize fn_png_init_io.
- (png_read_from_file): New function, based on png_read_from_memory.
- (png_load): Use it, instead of fn_png_init_io.
-
-2005-06-23 Kim F. Storm <storm@cua.dk>
-
- * search.c (Fmatch_data): Remove evaporate option.
- (Fset_match_data): Do not mention evaporate option in doc string.
- Add commentary explaining evaporate arg (for internal use only).
- (unwind_set_match_data): Add comment on evaporate use.
-
-2005-06-22 Miles Bader <miles@gnu.org>
-
- * xfaces.c (Qvertical_border): Rename from `Qvertical_divider'.
- (realize_basic_faces, syms_of_xfaces): Update references to it.
- * dispextern.h (enum face_id): Rename `VERTICAL_DIVIDER_FACE_ID'
- to `VERTICAL_BORDER_FACE_ID'.
- * dispnew.c (build_frame_matrix_from_leaf_window): Update references.
-
-2005-06-21 Juri Linkov <juri@jurta.org>
-
- * dispextern.h: Add extern Qframe_set_background_mode.
-
- * xfaces.c: Rename obsolete function Qframe_update_face_colors to
- Qframe_set_background_mode.
-
- * frame.c (Fmodify_frame_parameters):
- Call frame-set-background-mode after changing the background color
- on non-window non-dos branch.
-
-2005-06-21 Juanma Barranquero <lekktu@gmail.com>
-
- * fns.c (Fchar_table_range):
- * process.c (Fmake_network_process): Fix spellings.
-
-2005-06-20 Kim F. Storm <storm@cua.dk>
-
- * fns.c (Fsort): Doc fix.
-
-2005-06-20 Miles Bader <miles@gnu.org>
-
- * xfaces.c (Qvertical_divider): New variable.
- (realize_basic_faces): Realize its face.
- (syms_of_xfaces): Initialize it.
-
- * dispextern.h (enum face_id): Add `VERTICAL_DIVIDER_FACE_ID'.
-
- * dispnew.c (build_frame_matrix_from_leaf_window): Display vertical
- window-separator on ttys using `vertical-divider' face by default.
-
-2005-06-17 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (get_next_display_element):
- Reverse test of Vshow_nonbreak_escape.
-
- * term.c (produce_special_glyphs): Use spec_glyph_lookup_face.
- (Ftty_no_underline): New function.
- (syms_of_term): defsubr it.
-
- * keyboard.c (read_char): Call restore_getcjmp after jump occurs.
-
- * dispnew.c (spec_glyph_lookup_face): New function.
- (build_frame_matrix_from_leaf_window): Use it.
-
- * dispextern.h (spec_glyph_lookup_face): Add declaration.
-
- * buffer.c (syms_of_buffer) <cursor-type>: Doc fix.
-
-2005-06-12 Richard M. Stallman <rms@gnu.org>
-
- * keyboard.c (read_char): After catching a longjmp,
- call restore_getcjmp.
-
-2005-06-17 Juanma Barranquero <lekktu@gmail.com>
-
- * xselect.c (lisp_data_to_selection_data): Fix spelling.
-
-2005-06-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (mac_compute_glyph_string_overhangs): Don't set
- overhangs unless the given glyph type is noncomposite CHAR_GLYPH.
- [USE_CARBON_EVENTS] (mac_convert_event_ref): Convert dead key down
- events.
- (XTread_socket): Don't pass keyboard events with the option
- modifier to the system when Vmac_command_key_is_meta is nil or
- Vmac_option_modifier is non-nil.
- [USE_CARBON_EVENTS] (read_socket_inev): New variable.
- [USE_CARBON_EVENTS] (init_command_handler): Fix argument.
- [USE_CARBON_EVENTS] (mac_handle_mouse_event): New Carbon event
- handler function.
- (install_window_handler) [USE_CARBON_EVENTS]: Install it.
- (XTread_socket) [USE_CARBON_EVENTS]: Move mouse wheel event
- handler part to mac_handle_mouse_event.
-
-2005-06-14 Juanma Barranquero <lekktu@gmail.com>
-
- * eval.c (Fdefvaralias): Rename arguments SYMBOL and ALIASED to
- NEW-ALIAS and BASE-VARIABLE, respectively.
-
-2005-06-13 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xdisp.c (note_mode_line_or_margin_highlight): Lisp_Object/int mixup.
- (get_phys_cursor_geometry, format_mode_line_unwind_data)
- (get_line_height_property, x_produce_glyphs): Remove unused vars.
-
- * coding.c (run_pre_post_conversion_on_str): Remove unused var `buf'.
-
-2005-06-13 Eli Zaretskii <eliz@gnu.org>
-
- * w32term.c (x_use_underline_position_properties): New variable.
- (x_draw_glyph_string): Remind in a comment to change doc string of
- x-use-underline-position-properties if/when underline positioning
- is implemented.
- (syms_of_w32term): DEFVAR_BOOL x-use-underline-position-properties,
- and initialize it to nil.
-
-2005-06-12 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (NEWOPENFILENAME): New struct.
- (Fx_file_dialog): Use it to trick the system into giving us up to
- date dialogs on systems that are documented to support it.
- Do not set OFN_FILEMUSTEXIST flag if looking for a directory.
-
-2005-06-12 Eli Zaretskii <eliz@gnu.org>
-
- * w32fns.c (w32_abort): Use the MB_YESNO dialog instead of
- MB_ABORTRETRYIGNORE. Never return, even if DebugBreak does.
-
-2005-06-11 Eli Zaretskii <eliz@gnu.org>
-
- * image.c (x_create_x_image_and_pixmap) [HAVE_NTGUI]: Cast 4th arg
- to CreateDIBSection to avoid a compiler warning.
- (pbm_load): Cast 3rd arg to IMAGE_BACKGROUND to avoid a compiler
- warning.
- (png_load): Cast return values of fn_png_create_read_struct and
- fn_png_create_info_struct, to avoid compiler warnings on W32.
- Cast 3rd arg to IMAGE_BACKGROUND and image_background_transparent
- to avoid compiler warnings.
- (jpeg_load): Cast return value of fn_jpeg_std_error to avoid a
- compiler warning on W32. Cast 3rd arg to IMAGE_BACKGROUND to
- avoid a compiler warning.
- (tiff_load): Cast return values of fn_TIFFOpen and
- fn_TIFFClientOpen to avoid compiler warning on W32. Cast 3rd arg
- to IMAGE_BACKGROUND to avoid a compiler warning.
- (gif_load): Cast return values of fn_DGifOpenFileName and
- fn_DGifOpen to avoid compiler warnings on W32. Cast 3rd arg to
- IMAGE_BACKGROUND to avoid a compiler warning.
- (DrawText) [HAVE_NTGUI || MAC_OS]: If already defined, undef
- before redefining.
-
- * w32bdf.c (create_offscreen_bitmap): Cast `bitsp' to `void **' in
- the call to CreateDIBSection, to avoid a compiler warning.
-
-2005-06-11 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (Fx_file_dialog): Unblock input before falling back to
- minibuffer.
- * macfns.c (Fx_file_dialog): Likewise.
-
-2005-06-10 Eli Zaretskii <eliz@gnu.org>
-
- * makefile.w32-in ($(TEMACS)): Depend on addsection.exe.
-
-2005-06-10 Juanma Barranquero <lekktu@gmail.com>
-
- * process.c (syms_of_process) [ADAPTIVE_READ_BUFFERING]:
- * w32fns.c (syms_of_w32fns): Fix spellings.
-
-2005-06-10 Eli Zaretskii <eliz@gnu.org>
-
- * unexw32.c (COPY_CHUNK, COPY_PROC_CHUNK): Add a new argument
- `verbose'; print diagnostic messages only if it is non-zero.
- All callers changed to pass a zero value unless DEBUG_DUMP is defined
- in the environment.
- (copy_executable_and_dump_data): Print section names with %.8s.
-
-2005-06-10 Masatake YAMATO <jet@gyve.org>
-
- * xdisp.c (note_mode_line_or_margin_highlight): Call clear_mouse_face
- when mouse_face is not given.
-
-2005-06-09 Luc Teirlinck <teirllm@auburn.edu>
-
- * window.c (Fselect_window): Adapt call to Fselect_frame.
-
- * lisp.h: Update EXFUN of Fselect_frame.
-
- * keyboard.c (command_loop_1): Adapt call to Fselect_frame.
-
- * frame.c (Fhandle_switch_frame, Fselect_frame): Delete unused arg
- no_enter.
- (Fset_mouse_position, Fset_mouse_pixel_position, Ficonify_frame):
- Adapt to above change.
-
-2005-06-10 Juanma Barranquero <lekktu@gmail.com>
-
- * fns.c (Fmemq, Fmaphash): Doc fixes.
-
-2005-06-09 Juanma Barranquero <lekktu@gmail.com>
-
- * xfaces.c (Fdisplay_supports_face_attributes_p):
- Fix typo in docstring.
-
-2005-06-08 Steven Tamm <steventamm@mac.com>
-
- * unexmacosx.c (copy_data_segment): Copy __la_sym_ptr2 section
- used by gcc4 on intel mac.
-
-2005-06-09 Kim F. Storm <storm@cua.dk>
-
- * search.c (Fmatch_data): Add optional RESEAT arg. Unchain markers
- in REUSE list if non-nil; free them if equal to evaporate.
- (Fset_match_data): Add optional RESEAT arg. Unchain markers in LIST
- if non-nil; free them if equal to evaporate. Use XCAR/XCDR.
- (restore_search_regs): Rename from restore_match_data. Uses changed.
- (unwind_set_match_data): New function.
- (record_unwind_save_match_data): New function like save-match-data.
-
- * lisp.h (Fmatch_data, Fset_match_data): Fix EXFUN.
- (record_unwind_save_match_data): Add prototype.
- (restore_search_regs): Rename from restore_match_data.
-
- * composite.c (compose_chars_in_text):
- * eval.c (do_autoload):
- * macmenu.c (set_frame_menubar):
- * process.c (read_process_output, exec_sentinel):
- * xmenu.c (set_frame_menubar):
- * xdisp.c (prepare_menu_bars, update_menu_bar, update_tool_bar):
- * w32menu.c (set_frame_menubar):
- Use record_unwind_save_match_data.
-
-2005-06-08 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (get_next_display_element): Alter previous change:
- Distinguish Vshow_nonbreak_escape = t or not t.
- For t, use escape_glyph once again, as before previous change.
- Use space or hyphen for display, instead of the non-ASCII char.
- (syms_of_xdisp) <show-nonbreak-escape>: Doc fix.
-
- * process.c (Fstart_process): Don't touch command_channel_p slot.
-
- * process.h (struct process): Delete command_channel_p.
-
-2005-06-07 Masatake YAMATO <jet@gyve.org>
-
- * xdisp.c (note_mode_line_or_margin_highlight):
- Check the overlapping of re-rendering area to avoid flickering.
- (note_mouse_highlight): Call clear_mouse_face if PART
- is not ON_MODE_LINE nor ON_HEADER_LINE.
-
-2005-06-07 Kim F. Storm <storm@cua.dk>
-
- * process.c: Improve commentary for adaptive read buffering.
-
-2005-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xterm.c (x_create_toolkit_scroll_bar): Use XtNarrowScrollbars
- if available.
-
-2005-06-06 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * macmenu.c (menu_quit_handler, install_menu_quit_handler):
- New functions for popping down menus on C-g.
- (set_frame_menubar, mac_menu_show): Call install_menu_quit_handler.
-
- * macterm.c: Make mac_quit_char_modifiers and mac_quit_char_keycode
- non-static.
-
- * config.in: Add HAVE_CANCELMENUTRACKING.
-
-2005-06-06 Eli Zaretskii <eliz@gnu.org>
-
- * w32heap.h (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_PTR): Remove macros.
-
- * unexw32.c (RVA_TO_PTR): Move here from w32heap.h.
-
- * w32proc.c (RVA_TO_PTR): New macro.
-
- * w32heap.c (RVA_TO_PTR): No need to #undef now.
-
- * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/w32select.$(O)):
- Depend on w32heap.h.
-
-2005-06-06 Luc Teirlinck <teirllm@auburn.edu>
-
- * keyboard.c (command_loop_1): Update Vthis_original_command.
-
-2005-06-06 Richard M. Stallman <rms@gnu.org>
-
- * xmenu.c (popup_get_selection): Undo previous change.
-
-2005-06-06 Juri Linkov <juri@jurta.org>
-
- * xdisp.c (Qno_break_space): New variable.
- (syms_of_xdisp): Initialize it.
- (get_next_display_element): Add no-break space and soft hypen
- codes for iso8859-2 and iso8859-5. Don't add `\' for them.
- Use `no-break-space' face for no-break spaces.
-
-2005-06-06 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * window.c (delete_window): Handle the case where a h/vchild has
- a h/vchild.
-
-2005-06-05 Eli Zaretskii <eliz@gnu.org>
-
- * w32.c (sys_setsockopt): Change arg 4 to `const void *'. In the
- call to pfn_setsockopt, cast optval to `const char *'.
-
-2005-06-04 Eli Zaretskii <eliz@gnu.org>
-
- * w32.c (gettimeofday): Use struct _timeb, not struct timeb.
- (open_unc_volume): Cast return value of map_w32_filename, to avoid
- compiler warnings.
-
- * s/ms-w32.h (fileno): Don't define if already defined.
-
- * emacs.c: Include w32heap.h, to avoid compiler warning about sbrk.
-
- * makefile.w32-in (DOC): Define to point to the generated DOC-X.
-
-2005-06-04 Richard M. Stallman <rms@gnu.org>
-
- * xmenu.c (popup_get_selection): Click not in menu deactivates menu.
-
-2005-06-04 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * macmenu.c (cleanup_popup_menu): New function.
- (Fx_popup_menu): Unwind protect cleanup_popup_menu in case
- mac_menu_show Quit:s.
- (mac_menu_show): Quit on cancel if not popped up on click (i.e.
- a dialog).
-
-2005-06-04 Kim F. Storm <storm@cua.dk>
-
- * coding.c (decode_coding_string): Handle CODING_FINISH_INTERRUPT.
-
- * callproc.c (Fcall_process): Don't use alloca to gradually
- increase size of buf, as it effectively uses twice the necessary
- space on the stack. Instead, pre-allocate buf of full size, and
- gradually increase the read size.
-
- * bytecode.c (BYTE_CODE_QUIT): Check Vthrow_on_input.
-
- * eval.c (unbind_to): Preserve value of Vquit_flag.
-
- * xterm.c (handle_one_xevent): Also ignore mouse motion just
- before a button release event.
-
-2005-06-03 Juanma Barranquero <lekktu@gmail.com>
-
- * xfaces.c (Finternal_lisp_face_equal_p): Really report
- on faces in a frame, if the argument FRAME is non-nil.
- Improve argument/docstring consistency.
-
-2005-06-02 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (MODE_LINE_NOPROP_LEN): New macro.
- (x_consider_frame_title, Fformat_mode_line): Save offset into
- mode_line_noprop_buf rather than pointer, in case buffer is relocated.
-
-2005-06-01 Kim F. Storm <storm@cua.dk>
-
- * fns.c (mapcar1): Maybe exit loop if original sequence was modified.
-
-2005-06-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (mac_to_x_fontname, mac_do_list_fonts): Set XLFD
- resolution fields for scalable fonts to 0.
-
- * xfaces.c (build_scalable_font_name): Round pixel size to the
- nearest integer.
-
-2005-06-01 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (display_mode_line): Support nested calls to redisplay
- and format-mode-line. Set mode_line_target to MODE_LINE_DISPLAY.
-
-2005-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * fileio.c (Finsert_file_contents):
- * xdisp.c (note_mode_line_or_margin_highlight): Lisp_Object/int mixup.
-
-2005-05-31 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (mode_line_noprop_buf, mode_line_noprop_buf_end)
- (mode_line_noprop_ptr): Rename from frame_title_*.
- (store_mode_line_noprop_char): Rename from store_frame_title_char.
- (store_mode_line_noprop): Rename from store_frame_title.
- (mode_line_target): New enum to specify current output target
- for mode line formatting.
- (display_mode_element): Test it rather than frame_title_ptr and
- mode_line_string_list to determine where output should go.
- (mode_line_proptrans_alist, mode_line_string_alist): Make static.
- (Vmode_line_unwind_vector): New variable.
- (format_mode_line_unwind_data, unwind_format_mode_line):
- New functions for unwind protection in mode line formatting.
- (x_consider_frame_title): Use them and new local var 'title_start'
- to support nested calls to format-mode-line and redisplay.
- Set mode_line_target to MODE_LINE_TITLE.
- (Fformat_mode_line): Use them and new local var 'string_start' to
- support nested calls to format-mode-line and redisplay.
- Set mode_line_target to MODE_LINE_NOPROP or MODE_LINE_STRING.
- Don't trim trailing dashes.
- (decode_mode_spec): Don't make infinite number of trailing dashes
- for MODE_LINE_NOPROP and MODE_LINE_STRING targets.
- (syms_of_xdisp): Initialize and staticpro mode_line_string_face,
- mode_line_string_face_prop, and Vmode_line_unwind_vector.
- (init_xdisp): Initialize mode_line_noprop_ptr to start of _buf.
- Initialize mode_line_target to MODE_LINE_DISPLAY.
-
-2005-05-29 Richard M. Stallman <rms@gnu.org>
-
- * buffer.c (Fbuffer_local_value): Call indirect_variable.
-
-2005-05-28 Masatake YAMATO <jet@gyve.org>
-
- * xdisp.c (note_mode_line_or_margin_highlight): Change the
- pointer to a hand cursor when hoovering over a mouse-face.
-
-2005-05-27 Kenichi Handa <handa@m17n.org>
-
- * xterm.c (x_encode_char): Call check_ccl_update in advance.
-
- * ccl.c: Now an element of Vccl_program_table is a vector of
- length 4, not 3.
- (ccl_get_compiled_code): New arg idx. Caller changed.
- Adjust for the change of Vccl_program_table.
- (setup_ccl_program): Adjust for the change of Vccl_program_table.
- (check_ccl_update): New function.
- (Fregister_ccl_program): Use ASET to set an element of a vector.
- Adjusted for the change of Vccl_program_table.
-
- * ccl.h (struct ccl_program): New member idx.
- (check_ccl_update): Extern it.
-
-2005-05-27 Juanma Barranquero <lekktu@gmail.com>
-
- * image.c (Vimage_library_alist): Move from image.el.
- (syms_of_image): Defvar it.
- (lookup_image_type): Use it.
-
- * buffer.c (Fbuffer_local_value): Make argument name match its use
- in docstring.
-
-2005-05-26 Juanma Barranquero <lekktu@gmail.com>
-
- * keyboard.c (Frecursive_edit): Fix typo in docstring.
- (Fposn_at_x_y): Make argument name match its use in docstring.
-
-2005-05-26 Lute Kamstra <lute@gnu.org>
-
- * eval.c (Frun_hooks): Mention run-mode-hooks in docstring.
-
-2005-05-24 Masatake YAMATO <jet@gyve.org>
-
- * xdisp.c (note_mode_line_or_margin_highlight): Use b and e
- as loop sentinels.
-
-2005-05-24 Nick Roberts <nickrob@snap.net.nz>
-
- * xmenu.c (Fx_popup_dialog): Add a third boolean argument to
- select frame title ("Question"/"Information").
- (xdialog_show): Use it.
-
- * macmenu.c (Fx_popup_dialog, mac_dialog_show): As for xmenu.c.
-
- * w32menu.c (Fx_popup_dialog, w32_dialog_show): As for xmenu.c.
-
- * fns.c (Fyes_or_no_p, Fy_or_n_p): Call Fx_popup_dialog with
- a third argument (Qnil).
-
- * lisp.h: x-popup-dialog can have three arguments.
-
- * editfns.c (Fmessage_box): Use "Information" for frame title.
-
-2005-05-23 Thien-Thi Nguyen <ttn@gnu.org>
-
- * termcap.c [VMS]: Include <starlet.h>.
-
-2005-05-23 Masatake YAMATO <jet@gyve.org>
-
- * xdisp.c (note_mode_line_or_margin_highlight): Add code
- for mouse-face. Change the type of the first argument from `window'
- to `Lisp_Object'.
- (note_mouse_highlight): Call note_mode_line_or_margin_highlight with
- window instead of w.
-
-2005-05-22 Andreas Schwab <schwab@suse.de>
-
- * process.c (send_process): Move misplaced volatile.
-
-2005-05-21 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (display_mode_element): If we're processing a list and
- padding is specified, put it after the last element.
-
-2005-05-21 Eli Zaretskii <eliz@gnu.org>
-
- * fileio.c (Fexpand_file_name) [DOS_NT]: Don't try to support
- "superroot" on DOS_NT systems.
-
-2005-05-21 David Hunter <hunterd42@comcast.net> (tiny change)
-
- * process.c (send_process): Restore the SIGPIPE handler if we
- catch a SIGPIPE.
-
-2005-05-20 Juanma Barranquero <lekktu@gmail.com>
-
- * image.c (lookup_image, png_read_from_memory): Remove hacks (and
- misleading comments).
- (DEF_IMGLIB_FN): Use C calling convention for image libraries.
-
-2005-05-20 KOBAYASHI Yasuhiro <kobayays@otsukakj.co.jp>
-
- * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges):
- Correct the right value.
-
-2005-05-19 Nick Roberts <nickrob@snap.net.nz>
-
- * keyboard.c (syms_of_keyboard): Remove Lisp variables
- post-command-idle-hook and post-command-idle-delay.
- (command_loop_1): Don't try to execute post-command-idle-hook.
-
-2005-05-16 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (handle_display_prop): Handle empty replacement.
- (handle_single_display_spec): Return -1 for empty replacement.
-
- * keyboard.c (adjust_point_for_property): Skip empty overlay string.
-
- * .gdbinit (pitx): Print more info about iterator.
-
-2005-05-16 Andreas Schwab <schwab@suse.de>
-
- * unexmacosx.c (unexec_realloc): Move declarations before statements.
-
-2005-05-14 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (message3): Call cancel_echoing.
-
- * alloc.c (Fmemory_full_p): New function.
- (syms_of_alloc): defsubr it.
-
- * process.c (send_process_trap): Unblock SIGPIPE.
- (send_process): Reset SIGPIPE handler before reporting error.
-
-2005-05-14 Nick Roberts <nickrob@snap.net.nz>
-
- * emacs.c (syms_of_emacs): Fix doc string for system-type.
-
-2005-05-13 Richard M. Stallman <rms@gnu.org>
-
- * fileio.c (Ffind_file_name_handler): Handle lambda-exp as handler.
- (Finsert_file_contents): If we read 0 bytes from a special file,
- unlock the visited file if we locked it.
- (Fmake_symbolic_link, Frecent_auto_save_p): Doc fixes.
- (Ffile_exists_p, Ffile_symlink_p): Doc fixes.
-
-2005-05-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * emacs.c (main) [MAC_OS8]: Call init_atimer before mac_term_init.
-
- * keyboard.c (readable_events) [USE_TOOLKIT_SCROLL_BARS]:
- Regard toolkit scroll bar thumb drag events as squeezable and prevent
- redisplay from being paused by them.
-
- * mac.c [!MAC_OSX]: Include keyboard.h and syssignal.h.
- [!MAC_OSX] (target_ticks): Remove variable.
- [!MAC_OSX] (check_alarm, pause, index): Remove functions.
- [!MAC_OSX && __MRC__] (sys_strftime): Likewise.
- [!MAC_OSX] (select): If fd 0 is not set in rfds and some input
- event occurs before timeout, behave as if the function were interrupted.
- [!MAC_OSX] (sigblock, sigsetmask, alarm): Simulate SIGALRM
- handling using Time Manager routines.
- [!MAC_OSX] (mac_atimer_task, mac_atimer_qlink, signal_mask):
- New variables.
- [!MAC_OSX] (mac_atimer_handler, set_mac_atimer, remove_mac_atimer)
- (setitimer): New functions.
-
- * macfns.c, macmenu.c: Don't include signal.h.
-
- * macterm.c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
- Rename from get_control_part_bound. All callers changed.
- (x_scroll_bar_clear): New function.
- (x_clear_frame): Use it.
- (XTset_vertical_scroll_bar): Don't call Draw1Control.
- (x_scroll_bar_handle_click): Change type of second argument from
- int to ControlPartCode.
- (check_alarm): Remove declaration.
- (XTread_socket) [!TARGET_API_MAC_CARBON]: Don't call it.
- (XTread_socket): Use ControlPartCode instead of SInt16.
-
-2005-05-13 Nozomu Ando <nand@mac.com>
-
- * unexmacosx.c: Include assert.h.
- (MACOSX_MALLOC_MULT16): New define.
- [MACOSX_MALLOC_MULT16] (ptr_in_unexec_regions): Determine whether
- ptr is in unexec regions by checking it is multiple of 16.
- (unexec_malloc_header_t): New typedef.
- (unexec_malloc, unexec_realloc, unexec_free): Store and use
- allocated size information in unexec_malloc_header.
-
-2005-05-10 Richard M. Stallman <rms@gnu.org>
-
- * xterm.c (noinclude): Add #undef.
-
- * image.c, xfns.c, xmenu.c: Don't include signal.h.
-
-2005-05-09 Juanma Barranquero <lekktu@gmail.com>
-
- * fileio.c (Fexpand_file_name, Frename_file, Fadd_name_to_file)
- (Fmake_symbolic_link, Faccess_file, Frecent_auto_save_p):
- Doc fixes.
-
- * dired.c (Ffile_name_completion): Make argument name
- match its use in docstring.
-
-2005-05-08 Luc Teirlinck <teirllm@auburn.edu>
-
- * eval.c (Fdefvaralias): Remove any pre-existing
- variable-documentation property of the alias.
-
-2005-05-07 Thien-Thi Nguyen <ttn@gnu.org>
-
- * xfns.c (start_hourglass): Do nothing when running on a tty.
-
-2005-05-07 Juanma Barranquero <lekktu@gmail.com>
-
- * fns.c (Fchar_table_range): Fix typos in docstring.
-
-2005-05-06 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * fns.c (Fchar_table_range): Yet Another Int/Lisp_Object Mixup.
-
-2005-05-06 Eli Zaretskii <eliz@gnu.org>
-
- * lread.c (Flocate_file_internal): Doc fix.
-
- * Makefile.in (lisp, shortlisp): Add jka-cmpr-hook.elc.
-
-2005-05-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macselect.c (x_own_selection): Accept Lisp string as result of
- selection converter function.
- (x_clear_frame_selections): Don't call x-lost-selection-functions
- if Emacs is not owner of the selection.
- (Vmac_services_selection): Put variable and initialization in
- #ifdef MAC_OSX.
- (syms_of_macselect) [MAC_OSX]: Set default value of
- Vmac_services_selection to PRIMARY.
-
- * macterm.c (toolkit_scroll_bar_interaction): Remove unused variable.
- (mac_handle_tool_bar_click): Remove unused function and declaration.
- [USE_TOOLKIT_SCROLL_BARS] (scroll_bar_timer_callback)
- (install_scroll_bar_timer, set_scroll_bar_timer)
- (control_part_code_to_scroll_bar_part, construct_scroll_bar_click)
- (get_control_part_bound, x_scroll_bar_handle_press)
- (x_scroll_bar_handle_release, x_scroll_bar_handle_drag)
- (x_set_toolkit_scroll_bar_thumb): New functions and declarations.
- [USE_TOOLKIT_SCROLL_BARS] (last_scroll_bar_part, scroll_bar_timer)
- (scroll_bar_timer_event_posted_p): New variables.
- [USE_TOOLKIT_SCROLL_BARS] (SCROLL_BAR_FIRST_DELAY)
- (SCROLL_BAR_CONTINUOUS_DELAY): New macros.
- (x_scroll_bar_create): Set control reference with NewControl.
- (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]:
- Initialize track_top and track_height to nil.
- (x_scroll_bar_set_handle, x_scroll_bar_note_movement):
- Put functions in #ifndef USE_TOOLKIT_SCROLL_BARS.
- (XTset_vertical_scroll_bar): Don't make space between scroll bar
- and associated window.
- (XTset_vertical_scroll_bar) [MAC_OSX]: Get scroll bar area width
- from window config.
- (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
- Set track_top and track_height to nil when scroll bar size is changed.
- Recalculate them if they are nil.
- (XTread_socket) [MAC_OSX]: Use control kind to determine if the
- clicked control is a scroll bar.
- (XTread_socket) [USE_TOOLKIT_SCROLL_BARS]: Use toolkit scroll bar
- event handler functions. Don't add modifiers to scroll bar click
- events. Call scroll bar release handler when window is deactivated.
- (mac_initialize): Remove unused code for X toolkit.
- (syms_of_macterm) [!USE_TOOLKIT_SCROLL_BARS]:
- Initialize Vx_toolkit_scroll_bars to nil.
-
- * macterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
- New members track_top and track_height.
-
- * sysselect.h [DARWIN || MAC_OSX]: Temporarily undefine
- init_process when including sys/select.h.
-
-2005-05-05 Luc Teirlinck <teirllm@auburn.edu>
-
- * eval.c (Fdefvaralias): Doc fix.
-
- * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Doc fixes.
-
-2005-05-05 Kim F. Storm <storm@cua.dk>
-
- * buffer.c (init_buffer_once): Set cursor_in_non_selected_windows
- default value.
- (syms_of_buffer): Add default-cursor-in-non-selected-windows.
- Fix type of cursor-in-non-selected-windows.
-
-2005-05-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * mac.c: #undef init_process so not to conflict with system headers.
-
-2005-05-02 Richard M. Stallman <rms@gnu.org>
-
- * buffer.c (syms_of_buffer): Define cursor-in-non-selected-windows.
-
- * buffer.h (struct buffer): Add cursor_in_non_selected_windows slot.
-
- * xdisp.c (Vcursor_in_non_selected_windows)
- (Qcursor_in_non_selected_windows): Vars deleted.
- (syms_of_xdisp): Don't initialize them.
- (get_window_cursor_type): Use cursor_in_non_selected_windows
- buffer slot.
-
-2005-05-02 Kim F. Storm <storm@cua.dk>
-
- * macros.c (executing_kbd_macro_index): Rename from
- executing_macro_index. All uses changed.
- (executing_kbd_macro_iterations): Rename from
- executing_macro_iterations. All uses changed.
- (executing_kbd_macro): Rename from executing_macro.
- All uses changed.
- (syms_of_macros): Rename Lisp var executing-macro-index to
- executing-kbd-macro-index.
-
- * xdisp.c (move_it_in_display_line_to): Fix last change.
-
-2005-05-01 Luc Teirlinck <teirllm@auburn.edu>
-
- * xmenu.c (Fx_popup_menu): Doc fix.
-
- * charset.c (syms_of_charset): Delete defsubr for Schars_in_region.
-
-2005-05-02 Jason Rumney <jasonr@gnu.org>
-
- * emacs.c (USAGE3, USAGE4): Keep strings below 2048 bytes.
-
-2005-05-02 Nozomu Ando <nand@mac.com>
-
- * sysselect.h: Fix typo.
-
-2005-05-02 Nick Roberts <nickrob@snap.net.nz>
-
- * charset.c (Fchars_in_region): Remove as obsolete.
-
-2005-05-01 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (move_it_in_display_line_to): Stop if we move beyond
- TO_CHARPOS. This may happen if last glyphs was an image or stretch
- glyph.
-
-2005-05-01 Luc Teirlinck <teirllm@auburn.edu>
-
- * dispnew.c (sit_for): Vexecuting_macro -> Vexecuting_kbd_macro.
-
-2005-05-01 Richard M. Stallman <rms@gnu.org>
-
- * xmenu.c [not HAVE_X_TOOLKIT] (xmenu_show):
- If user cancels the menu, quit unless FOR_CLICK.
-
- * macros.c (Vexecuting_kbd_macro): Rename from Vexecuting_macro.
- All uses changed.
- (syms_of_macros): Define only executing-kbd-macro, not executing-macro.
- * keyboard.c: Change Vexecuting_macro to Vexecuting_kbd_macro.
- * macros.h (Vexecuting_kbd_macro): Declare instead of Vexecuting_macro.
- * commands.h (Vexecuting_kbd_macro): Likewise.
-
-2005-05-01 Thien-Thi Nguyen <ttn@gnu.org>
-
- * sysdep.c (get_frame_size) [VMS]: Use a fresh i/o channel.
-
-2005-04-30 Richard M. Stallman <rms@gnu.org>
-
- * fileio.c (Ffind_file_name_handler): Handle the `operations'
- property of the file name handler.
- (Qoperations): New variable.
- (syms_of_fileio): Initialize and staticpro it.
-
- * xdisp.c (set_message_1): Delete xassert.
-
-2005-04-29 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c: Don't include time.h. Include sysselect.h after systime.h.
-
- * macfns.c (Fx_server_version): Add BLOCK_INPUT around Gestalt.
-
- * macgui.h [HAVE_CARBON && MAC_OSX]: Don't undefine/define mktime
- before/after including Carbon.h if there is a working mktime.
-
-2005-04-28 Kim F. Storm <storm@cua.dk>
-
- * xfaces.c (resolve_face_name): Add arg SIGNAL_P. Calls changed.
- Fix cyclic alias check. If alias loop is detected, signal
- circular-list error if SIGNAL_P, and return Qdefault if !SIGNAL_P.
-
-2005-04-28 Lute Kamstra <lute@gnu.org>
-
- * eval.c (do_autoload): Record only autoloads in the autoload
- property of symbols.
-
-2005-04-28 Nick Roberts <nickrob@snap.net.nz>
-
- * emacs.c (USAGE1): Add --basic-display and --quick options.
-
-2005-04-27 Kim F. Storm <storm@cua.dk>
-
- * data.c (syms_of_data) Staticpro Qcyclic_variable_indirection.
-
-2005-04-26 Richard M. Stallman <rms@gnu.org>
-
- * window.c (Fsame_window_p, Fspecial_display_p): Doc fixes.
- (syms_of_window): Doc fixes.
-
- * indent.c (Fvertical_motion): Undo previous change.
-
-2005-04-26 Kenichi Handa <handa@m17n.org>
-
- * fns.c (char_table_range): New function.
- (Fchar_table_range): Signal an error if characters in the range
- have inconsistent values. Don't check the parent.
-
-2005-04-25 Kenichi Handa <handa@m17n.org>
-
- * fontset.c (fontset_set): Fix previous change.
-
-2005-04-24 Richard M. Stallman <rms@gnu.org>
-
- * indent.c (Fvertical_motion): Bind fontification-functions to nil.
-
-2005-04-24 Eli Zaretskii <eliz@gnu.org>
-
- * regex.c (re_search_2, re_match_2_internal): Convert second arg
- of RE_TRANSLATE to int, to shut up GCC warnings.
-
- * fileio.c (Fcopy_file): Doc fix.
- [MSDOS]: Fix call to emacs_open: buffer_file_type not defined and
- not needed.
-
-2005-04-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * Makefile.in [HAVE_CARBON] (MAC_OBJ): Add macselect.o.
- (SOME_MACHINE_OBJECTS): Likewise.
- (mac.o): Depend on ccl.h.
- (macselect.o): New target.
-
- * emacs.c (main) [MAC_OS8 || MAC_OSX && HAVE_CARBON]:
- Call syms_of_macselect.
-
- * frame.c (Fdelete_frame) [MAC_OS]: Call x_clear_frame_selections.
-
- * mac.c [!TARGET_API_MAC_CARBON]: Don't include charset.h or coding.h.
- (QCLIPBOARD): Remove variable.
- (syms_of_mac): Don't initialize it.
- (Fmac_paste_function, Fmac_cut_function, Fx_selection_exists_p):
- Remove functions.
- (syms_of_mac): Don't defsubr them.
- [TARGET_API_MAC_CARBON] (Qmime_charset, QNFD, QNFKD, QNFC, QNFKC)
- (QHFS_plus_D, QHFS_plus_C): New variables.
- (syms_of_mac) [TARGET_API_MAC_CARBON]: Initialize them.
- [TARGET_API_MAC_CARBON] (get_cfstring_encoding_from_lisp)
- (cfstring_create_normalized): New functions.
- [TARGET_API_MAC_CARBON] (Fmac_code_convert_string): Likewise.
- (syms_of_mac) [TARGET_API_MAC_CARBON]: Defsubr it.
-
- * macterm.c (handling_window_update, terminate_flag):
- Remove variables.
- (do_window_update, do_ae_quit_application, XTread_socket):
- Don't use them.
- (WNE_SLEEP_AT_SUSPEND, WNE_SLEEP_AT_RESUME): Don't define.
- [USE_CARBON_EVENTS && MAC_OSX] (mac_handle_service_event)
- (init_service_handler): Move to macselect.c. Remove declarations.
- [USE_CARBON_EVENTS && MAC_OSX] (init_service_handler): Add extern.
- (Qapplication, Qabout): New variables.
- (syms_of_mac): Initialize them.
- [USE_CARBON_EVENTS && MAC_OSX] (Qpreferences, Qservices, Qpaste)
- (Qperform): New variables.
- (syms_of_mac) [USE_CARBON_EVENTS && MAC_OSX]: Initialize them.
- (do_get_menus) [TARGET_API_MAC_CARBON]: Don't call AppendResMenu.
- (do_menu_choice): Unhighlight menu bar also when menu_id is 0.
- (mac_store_application_menu_event, init_menu_bar): New functions.
- [USE_CARBON_EVENTS] (mac_handle_command_event)
- (init_command_handler): New functions.
- (mac_handle_window_event): Return noErr on window update event.
- (do_ae_quit_application): Call mac_store_application_menu_event.
- (mac_initialize) [USE_CARBON_EVENTS]: Call init_command_handler
- and init_menu_bar.
-
- * macterm.h (x_clear_frame_selections): Add extern.
-
- * macselect.c: New file for selection processing on Mac OS.
-
-2005-04-23 Richard M. Stallman <rms@gnu.org>
-
- * fileio.c (Fcopy_file): New arg MUSTBENEW.
- (Frename_file): Pass new arg to Fcopy_file.
-
- * window.c (window_size_fixed): Variable deleted.
- (syms_of_window): Initialize window-size-fixed to nil.
- But don't DEFVAR window_size_fixed.
-
-2005-04-23 Andreas Schwab <schwab@suse.de>
-
- * m/macppc.h (LD_SWITCH_MACHINE) [LINUX]: Don't define.
- (START_FILES, LIB_STANDARD) [LINUX && _ARCH_PPC64]: Override to
- use lib64 instead of lib.
- (_LP64) [_ARCH_PPC64]: Define if not defined.
-
-2005-04-23 David Hunter <hunterd42@comcast.net> (tiny change)
-
- * s/ms-w32.h (HAVE_PWD_H): Define.
-
-2005-04-22 Kenichi Handa <handa@m17n.org>
-
- * fns.c (copy_sub_char_table): Explicitly copy the default value
- of the sub-chartable.
-
- * fontset.c (fontset_set): When a sub-chartable is created,
- explicitly sets the defalt value.
-
-2005-04-22 Kim F. Storm <storm@cua.dk>
-
- * fns.c (Fplist_get): Replace by Fsafe_plist_get.
- (Fsafe_plist_get): Rename to Fplist_get.
- (Fsafe_get): Remove, as Fget now uses safe Fplist_get.
- (defsubr): Remove defsubr for Fsafe_plist_get and Fsafe_get.
-
- * lisp.h (Fsafe_plist_get, Fsafe_get): Remove EXFUN.
-
- * xdisp.c (store_mode_line_string, produce_stretch_glyph)
- (note_mode_line_or_margin_highlight, note_mouse_highlight):
- Use Fplist_get instead of Fsafe_plist_get.
-
- * xfaces.c (resolve_face_name): Use Fget instead of Fsafe_get.
-
-2005-04-21 Miles Bader <miles@gnu.org>
-
- * xdisp.c (dump_glyph_row): Don't display overlay_arrow_p field.
-
-2005-04-20 Thien-Thi Nguyen <ttn@gnu.org>
-
- * sysdep.c: Remove reference to defunct vms-pwd.h.
- * dired.c: Likewise. Also, for pwd.h, use HAVE_PWD_H, not !VMS.
- * editfns.c, fileio.c, filelock.c, sysdep.c, xrdb.c: Likewise.
-
- * config.in: Regenerate.
-
-2005-04-20 Kenichi Handa <handa@m17n.org>
-
- * lisp.h (CHAR_TABLE_DEFAULT_SLOT_ASCII): New macro.
- (CHAR_TABLE_DEFAULT_SLOT_8_BIT_CONTROL): New macro.
- (CHAR_TABLE_DEFAULT_SLOT_8_BIT_GRAPHIC): New macro.
-
- * alloc.c (make_sub_char_table): Argument changed to initial
- value of the slots.
-
- * data.c (Faref): Handle special slots used as default values of
- ascii, eight-bit-control, eight-bit-control. Don't ignore a
- default value set for a group of characters.
- (Faset): Signal an error if IDXVAL is not a valid character code.
- Make a sub-chartable with correct initial value.
-
- * fns.c (Fset_char_table_range): Don't set slots used as default
- values for ascii, eight-bit-control, eight-bit-graphic.
- Don't call Faref with charset-id.
- (Fset_char_table_default): Document how to treat normal character
- argument. Handle special slots used as default values of ascii,
- eight-bit-control, eight-bit-control. Make a sub chartable if
- necessary.
-
-2005-04-20 Kenichi Handa <handa@m17n.org>
-
- * search.c (boyer_moore): Fix previous change.
-
-2005-04-19 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (setup_for_ellipsis): Reset saved_face_id to use default
- face unless last visible char and first invisible char have the
- same face. Also use default face if saved_face_id is undefined.
-
-2005-04-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macgui.h (MacFontStruct): Remove member `fontname'. Add member
- `full_name'.
- [TARGET_API_MAC_CARBON] (MacFontStruct): Use type int for
- mac_scriptcode member.
-
- * macterm.c (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
- (syms_of_mac): Don't initialize them.
- (Vmac_charset_info_alist): New variable.
- (syms_of_mac): Defvar it.
- (create_text_encoding_info_alist): New function.
- (decode_mac_font_name, mac_to_x_fontname)
- (x_font_name_to_mac_font_name, init_font_name_table): Don't hard
- code the correspondence among XLFD charsets, Mac script codes, and
- Emacs coding systems. Use Vmac_charset_info_alist and result of
- create_text_encoding_info_alist instead.
- (init_font_name_table) [TARGET_API_MAC_CARBON]: Use Font Manager
- routines also on Mac OS Classic.
- (init_font_name_table) [!TARGET_API_MAC_CARBON]:
- Use add_font_name_table_entry.
- (mac_do_list_fonts): Regard 0 in XLFD scaleble fields as
- specified. Derive unspecified scalable fields from specified one.
- (x_list_fonts): Consider Valternate_fontname_alist.
- (kDefaultFontSize): Change value from 9 to 12.
- (XLoadQueryFont): Get decoded font family, font face, and charset
- from x_font_name_to_mac_font_name. Set full name of loaded font.
- (mac_unload_font): Free `full_name' member.
- (x_load_font): Don't try XLoadQueryFont if x_list_fonts returns
- NULL. Copy full_name member of struct MacFontStruct to that of
- struct font_info.
-
-2005-04-19 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (handle_stop): Set saved_face_id to current face if
- selective_display_ellipsis_p so ellipsis will be shown in same
- face as preceding text.
- (setup_for_ellipsis): Don't set saved_face_id here.
- (next_element_from_display_vector): Default to saved_face_id.
-
- * fns.c (Fsafe_get): New function.
- (syms_of_fns): Defsubr it.
-
- * lisp.h (Fsafe_get): EXFUN it.
-
- * xfaces.c (resolve_face_name): Use Fsafe_get to avoid redisplay
- loops in case of bad face property lists. Limit number of face
- alias lookups to 10 (in case of face alias loops).
-
-2005-04-18 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (struct glyph_row): New member overlay_arrow_bitmap.
- It replaces the corresponding member from struct window, as a
- window may now show multiple overlay arrows.
- Remove member overlay_arrow_p, superseeded by overlay_arrow_bitmap.
-
- * dispnew.c (row_equal_p, update_window_line, scrolling_window):
- Compare overlay_arrow_bitmap than overlay_arrow_p members.
-
- * fringe.c (draw_fringe_bitmap): Use overlay_arrow_bitmap from row
- rather than from window.
- (update_window_fringes): Compare overlay_arrow_bitmap rather than
- overlay_arrow_p members.
- (Ffringe_bitmaps_at_pos): Return fringe overlay_arrow_bitmap name
- if not default.
-
- * window.h (struct window): Remove member overlay_arrow_bitmap.
-
- * window.c (make_window): Don't initialize overlay_arrow_bitmap.
-
- * xdisp.c (overlay_arrow_string_or_property): Remove PBITMAP arg.
- Calls changed. Don't check for overlay-arrow-bitmap property here.
- (overlay_arrow_at_row): Remove PBITMAP arg. Instead, if left
- fringe is present, return Lisp integer for bitmap (or -1 for default).
- Fix value of overlay-arrow-bitmap property to be a symbol, use
- lookup_fringe_bitmap to parse it.
- (display_line): Change call to overlay_arrow_at_row. Store integer
- return value as overlay bitmap in row rather than window.
- Only show overlay arrow if row displays text, or if no other overlay
- arrow is seen in window (if overlay marker is at point-max).
-
-2005-04-18 Thien-Thi Nguyen <ttn@gnu.org>
-
- * xfaces.c (realize_x_face) [!HAVE_WINDOW_SYSTEM]: Return NULL.
-
-2005-04-18 Lute Kamstra <lute@gnu.org>
-
- * lread.c (Vloads_in_progress): Static.
- * fns.c (Vloads_in_progress): Remove extern.
- (load_in_progress): Add extern.
- (Frequire): Use load_in_progress instead of Vloads_in_progress.
-
-2005-04-18 Thien-Thi Nguyen <ttn@gnu.org>
-
- * xmenu.c (Fx_popup_menu): Initialize error_name to NULL.
-
-2005-04-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (XTread_socket): Don't beep on keyboard input even if
- no frame is visible.
-
-2005-04-16 Dan Nicolaescu <dann@ics.uci.edu>
-
- * term.c (struct keys): Add support for shifted keys.
-
-2005-04-16 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (with_echo_area_buffer): Delete WHICH < 0 case.
- (set_message): Call with_echo_area_buffer with WHICH = 0.
- (set_message_1): Erase the echo area buffer first thing.
- (echo_area_display): Don't clear echo_message_buffer.
-
-2005-04-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * Makefile.in (mac.o): Depend on charset.h and coding.h.
-
- * mac.c: Include charset.h and coding.h.
- [TARGET_API_MAC_CARBON] (Qutf_8): Remove extern.
- [TARGET_API_MAC_CARBON] (cfstring_create_with_string): New function.
- [TARGET_API_MAC_CARBON] (Fmac_get_preference): Use it.
-
- * macfns.c [TARGET_API_MAC_CARBON] (Fx_file_dialog): Likewise.
-
- * image.c [MAC_OSX] (image_load_quartz2d): Likewise.
-
- * macterm.c (x_autoselect_window_p): Remove variable.
- (last_window): New variable.
- (XTreassert_line_highlight, x_change_line_highlight):
- Remove declarations.
- (mac_focus_changed, x_detect_focus_change): New functions and
- declarations.
- (XTextExtents16, front_emacs_window): Remove function.
- (mac_focus_frame): New function.
- (XTmouse_position, do_menu_choice, do_zoom_window, XTread_socket)
- (mac_check_for_quit_char): Use it instead of front_emacs_window.
- (x_scroll_bar_report_motion): Obtain window from control owner.
- (x_make_frame_invisible): Set window manager size hint.
- (do_mouse_moved): Remove function.
- (XTread_socket): Move its contents here. Generate select-window
- event on mouse movement if needed. Use x_detect_focus_change on
- activate/deactivate events. Don't deiconify frame or invalidate
- window rectangle when dnd items are dropped.
- Don't activate/deactivate root control.
- (frame_highlight, frame_unhighlight): Activate/deactivate root
- control here.
- (syms_of_macterm): Delete DEFVAR_BOOL for x_autoselect_window_p.
-
- * macterm.h (cfstring_create_with_string) [TARGET_API_MAC_CARBON]:
- New extern.
-
-2005-04-15 Luc Teirlinck <teirllm@auburn.edu>
-
- * Makefile.in: Define new macro TOOLTIP_SUPPORT.
- (lisp): Use it.
- (SOME_MACHINE_LISP): Add tooltip.
-
-2005-04-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c [!TARGET_API_MAC_CARBON]: Include MacLocales.h.
- Don't include TextEncodingConverter.h.
- (mac_system_script_code, Vmac_system_locale): New variables.
- (syms_of_mac): Defvar them.
- (mac_get_system_locale): New function.
-
- * macfns.c (x_set_name, x_set_title) [!TARGET_API_MAC_CARBON]:
- Use ENCODE_SYSTEM to encode title bar string.
- (x_create_tip_frame): Apply 2005-03-18 change for xfns.c.
- (Fx_file_dialog) [TARGET_API_MAC_CARBON && !MAC_OSX]:
- Use CFStringGetSystemEncoding to get system default string encoding.
-
- * macterm.c [!TARGET_API_MAC_CARBON]: Don't include
- TextEncodingConverter.h.
-
-2005-04-13 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (syms_of_macterm): Remove redundant definition of
- mac-pass-control-to-system.
-
-2005-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * window.c (Fset_window_configuration): Be careful when you choose
- among several possible points for the new_current_buffer.
-
-2005-04-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * keyboard.c (poll_for_input) [SYNC_INPUT]: Don't call
- poll_for_input_1. Set interrupt_input_pending to 1 instead.
- (Qlanguage_change) [MAC_OS]: New variable.
- (syms_of_keyboard) [MAC_OS]: Intern and staticpro it.
- (kbd_buffer_get_event) [MAC_OS]: Make event for LANGUAGE_CHANGE_EVENT.
-
- * macterm.c (mac_keyboard_text_encoding)
- (current_mac_keyboard_text_encoding): Remove variables.
- (XTread_socket): Store language-change event if keyboard script change
- is detected. Don't convert input to `mac_keyboard_text_encoding'.
- (syms_of_macterm): Delete DEFVAR_INT for mac-keyboard-text-encoding.
-
- * termhooks.h (enum event_kind) [MAC_OS]: Add LANGUAGE_CHANGE_EVENT.
-
-2005-04-10 Richard M. Stallman <rms@gnu.org>
-
- * emacs.c (standard_args): Rename --bare-bones to --quick.
- Add -D aka --basic-display.
-
- * buffer.c (Fmake_indirect_buffer): Clear out some local variables.
-
-2005-04-09 Richard M. Stallman <rms@gnu.org>
-
- * keymap.c (where_is_internal): Convert a string used as event type
- into "(any string)".
-
- * lread.c (Vloads_in_progress): Not static.
- * fns.c (Vloads_in_progress): Add extern.
- (Frequire): Don't do LOADHIST_ATTACH if Vloads_in_progress is nil.
-
-2005-04-09 Thien-Thi Nguyen <ttn@surf.glug.org>
-
- * dispnew.c (mirror_line_dance): Avoid crash if W2 is null.
-
-2005-04-09 Lute Kamstra <lute@gnu.org>
-
- * print.c (PRINTPREPARE): Check if the marker PRINTCHARFUN is
- within the accessible part of the buffer.
-
-2005-04-09 Kim F. Storm <storm@cua.dk>
-
- * lread.c (readevalloop): Add args START and END as region in
- current buffer to read. Callers changed.
- When specified, narrow to this region only when reading,
- not during eval. Track next point to read from during eval.
- Also restore point to "real" buffer position before eval.
- (Feval_region): Don't save excursion and restriction here, and
- don't narrow to region. Just pass region to readevalloop.
- Note: Point is now preserved even when PRINTFLAG is nil.
-
-2005-04-08 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (syms_of_xdisp): Init overlay-arrow-string to "=>".
-
-2005-04-06 Kim F. Storm <storm@cua.dk>
-
- * emacs.c (standard_args): Add -Q, --bare-bones, -bare-bones.
-
-2005-04-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c (cfdate_to_lisp): Add `const' for variable `epoch_gdate'.
- (Fmac_get_preference): Doc fix.
-
- * macfns.c (Fx_create_frame, x_create_tip_frame):
- Add "fontset-mac" to fallback font/fontsets.
-
-2005-04-04 Kim F. Storm <storm@cua.dk>
-
- * alloc.c (Fgarbage_collect): Call CHECK_CONS_LIST before and after gc.
-
- * eval.c (Ffuncall): Always call CHECK_CONS_LIST on entry.
- Call it again after autoload.
-
-2005-04-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * alloc.c (allocate_string_data): Call BLOCK_INPUT before calling
- mallopt.
-
- * ralloc.c (r_alloc_init): Ditto.
-
-2005-04-01 Kenichi Handa <handa@m17n.org>
-
- * lisp.h (Vascii_upcase_table, Vascii_canon_table)
- (Vascii_eqv_table): Extern them.
-
- * casetab.c (set_case_table): If standard is nonzero, setup
- Vascii_upcase_table, Vascii_canon_table, and Vascii_eqv_table.
-
- * search.c (looking_at_1): Use current_buffer->case_canon_table,
- not DOWNCASE_TABLE.
- (string_match_1): Likewise.
- (fast_c_string_match_ignore_case): Use Vascii_canon_table, not
- Vascii_downcase_table.
- (fast_string_match_ignore_case): Likewise.
- (search_buffer): Fix checking of boyer-moore usability.
- (boyer_moore): Calculate translate_prev_byte1/2/3 in advance.
- No need of tranlating characters in PAT. Fix calculation of
- simple_translate.
-
-2005-03-31 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xterm.c [HAVE_XAW3D]: Include ThreeD.h for XtNbeNiceToColormap.
- (x_create_toolkit_scroll_bar): Test XtNbeNiceToColormap before using it.
- Use XtNtopShadowPixel and XtNbottomShadowPixel.
- (x_set_toolkit_scroll_bar_thumb): Remove ugly old hack that didn't
- really work and that breaks with some versions of Xaw3d.
-
-2005-03-31 Kenichi Handa <handa@m17n.org>
-
- * coding.c (syms_of_coding): Fix previous change.
-
-2005-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * fileio.c (search_embedded_absfilename): Fix last change.
-
-2005-03-25 Kenichi Handa <handa@m17n.org>
-
- * coding.c (syms_of_coding): Suggest to use set-coding-category in
- the docstring of coding-category-list.
-
-2005-03-31 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (Qmouse_fixup_help_message): New var.
- (syms_of_keyboard): Intern and staticpro it.
- (show_help_echo): Apply mouse-fixup-help-message to help string.
-
-2005-03-30 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (display_line): Allow multiple overlay arrows in window.
-
-2005-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * fileio.c (Fexpand_file_name): Use IS_DEVICE_SEP.
- (file_name_absolute_p): New fun, extracted from Ffile_name_absolute_p.
- (Ffile_name_absolute_p): Use it.
- (search_embedded_absfilename): New fun, extracted from
- Fsubstitute_in_file_name. Use file_name_absolute_p.
- Free the pw data after use.
- (Fsubstitute_in_file_name): Use it.
- After cutting a prefix, re-check file-name-handler.
-
-2005-03-26 Lennart Borgman <lennart.borgman.073@student.lu.se>
-
- * w32term.h (x_output): Add focus_state.
-
- * w32term.c (x_focus_changed, w32_detect_focus_change): New functions.
- (w32_read_socket) <WM_SETFOCUS>: Call w32_detect_focus_change.
-
-2005-03-25 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * minibuf.c (Fminibuffer_complete_and_exit, Fself_insert_and_exit):
- Use Fexit_minibuffer.
- (Fexit_minibuffer): Mark it as no-return, deactivate the mark.
-
-2005-03-24 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * dired.c (Ffile_attributes): Add a missing gcpro.
-
- * alloc.c (make_number): The arg can be bigger than `int'.
- * lisp.h (make_number): Make prototype more precise.
-
- * process.c, dired.c (Vfile_name_coding_system)
- (Vdefault_file_name_coding_system):
- * callproc.c (Vdoc_file_name, Vfile_name_coding_system)
- (Vdefault_file_name_coding_system): Remove unused declarations.
-
-2005-03-24 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (create_and_show_popup_menu): Just remove menu and return
- if it failed to pop up (Gnome "show pointer on ctrl" option makes
- menus fail to pop up).
-
-2005-03-24 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xdisp.c (get_next_display_element): Also use `\ ' & `\-' for latin-9.
- Just prepend a backslash without replacing the NBSP by an SPC.
-
-2005-03-22 Kim F. Storm <storm@cua.dk>
-
- * xfaces.c (lookup_derived_face): Add arg SIGNAL_P.
- * dispextern.h (lookup_derived_face): Fix prototype.
- * msdos.c (XMenuActivate): Fix call to lookup_derived_face.
-
- * xdisp.c (handle_single_display_spec): Derive left-fringe and
- right-fringe face from fringe face.
-
- * fringe.c (draw_fringe_bitmap_1, Fset_fringe_bitmap_face):
- Derive face from fringe face.
-
-2005-03-22 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xrdb.c (x_load_resources): Undo previous change (2005-03-18).
-
-2005-03-22 David Kastrup <dak@gnu.org>
-
- * textprop.c (Fnext_char_property_change)
- (Fprevious_char_property_change): Allow marker as limit.
- (Fnext_single_char_property_change)
- (Fprevious_single_char_property_change): Check that limit is a
- number in strings.
- (Fnext_single_char_property_change): Coerce position to integer.
- (Fprevious_single_char_property_change): Same here.
-
-2005-03-21 Thien-Thi Nguyen <ttn@gnu.org>
-
- * s/openbsd.h (LD_SWITCH_SYSTEM_tmp): Define if undefined.
-
-2005-03-19 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * frame.c (Fignore_event): Remove.
- (syms_of_frame): Don't defsubr it.
-
- * keyboard.c (keys_of_keyboard): Just use `ignore' instead of the
- redundant `ignore-event'.
-
-2005-03-19 Eli Zaretskii <eliz@gnu.org>
-
- * unexec.c (write_segment, unexec): Move these functions to avoid
- forward references (which cause errors with "gcc -gcoff").
-
-2005-03-18 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (x_create_tip_frame): Remove setting of Vx_resource_name so
- that it doesn't become "tooltip". The specbind is enough.
-
- * xrdb.c (x_load_resources): Use different char *helv when I18N
- is present.
-
-2005-03-17 Kenichi Handa <handa@m17n.org>
-
- * coding.c (syms_of_coding): Docstring of coding-category-list fixed.
-
-2005-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xfaces.c (x_update_menu_appearance) [HAVE_X_I18N]:
- Use xic_create_fontsetname even for non-Motif menus.
- Don't forget to free the fontsetname.
-
- * xfns.c (xic_create_fontsetname): Add a final catch-all font pattern.
-
-2005-03-17 Richard M. Stallman <rms@gnu.org>
-
- * dispnew.c (mirror_line_dance): Set W2 according to FRAME_FROM.
-
- * fileio.c (Fcopy_file, Frename_file, Fadd_name_to_file)
- (Fmake_symbolic_link): Use G to read the new file name.
-
- * callint.c (Finteractive): Document G option.
- (Fcall_interactively): Implement G option.
-
- * buffer.c (buffer_lisp_local_variables): New function,
- broken out from Fbuffer_local_variables.
- (clone_per_buffer_values): Use buffer_lisp_local_variables.
-
-2005-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xfns.c (xic_create_fontsetname): Add `motif' argument.
- Always return a freshly allocated string.
- (xic_create_xfontset): Adjust call.
-
- * xfaces.c (x_update_menu_appearance) [USE_MOTIF]:
- Use xic_create_fontsetname to create a fontset so utf-8 locales work.
- (dump_realized_face): Fix warning.
-
- * emacs.c (Fkill_emacs): YAILOM.
-
- * frame.c (Fignore_event): Fix ancient obscure C-u handling bug.
-
-2005-03-17 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c (HASHKEY_TERMINAL): Remove.
- (HASHKEY_MAX_NID): New macro.
- (xrm_q_get_resource_1): Rename from xrm_q_get_resource. Add extra
- argument.
- (xrm_q_get_resource): Call xrm_q_get_resource_1 with extra argument.
- (xrm_create_database, xrm_q_put_resource)
- (xrm_merge_string_database, xrm_q_get_resource_1)
- (xrm_q_get_resource): Change resource database representation so
- that it may not use multiple hash tables for a single database.
- [TARGET_API_MAC_CARBON] (xrm_cfproperty_list_to_value): YAILOM.
-
-2005-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xmenu.c (ENCODE_MENU_STRING) [HAVE_X_I18N]: Use ENCODE_SYSTEM.
-
- * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [!WINDOWSNT]: Use the
- locale-coding-system, as was already done for WINDOWSNT.
-
- * keyboard.c (read_char): Only do the 7-bit-meta -> 27-bit-meta
- translation for chars in the 0-255 range.
-
-2005-03-16 Lute Kamstra <lute@gnu.org>
-
- * floatfns.c (Ffloor): Doc fix.
-
-2005-03-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c: Include macterm.h instead of directly including Carbon.h.
- [TARGET_API_MAC_CARBON] (Qstring, Qnumber, Qboolean, Qdate, Qdata)
- (Qarray, Qdictionary): New variables.
- (syms_of_mac) [TARGET_API_MAC_CARBON]: Initialize them.
- [TARGET_API_MAC_CARBON] (Qutf_8): Add extern.
- [TARGET_API_MAC_CARBON] (DECODE_UTF_8): New macro.
- [TARGET_API_MAC_CARBON] (struct cfdict_context): New struct used
- in callback for CFDictionaryApplyFunction.
- [TARGET_API_MAC_CARBON] (cfdata_to_lisp, cfstring_to_lisp)
- (cfnumber_to_lisp, cfdate_to_lisp, cfboolean_to_lisp)
- (cfobject_desc_to_lisp, cfdictionary_add_to_list)
- (cfdictionary_puthash, cfproperty_list_to_lisp): New functions.
- [TARGET_API_MAC_CARBON] (Fmac_get_preference): New function.
- (syms_of_mac) [TARGET_API_MAC_CARBON]: Defsubr it.
- (P, LOOSE_BINDING, SINGLE_COMPONENT, HASHKEY_TERMINAL): New macro.
- (skip_white_space, parse_comment, parse_include_file)
- (parse_binding, parse_component, parse_resource_name, parse_value)
- (parse_resource_line, xrm_create_database, xrm_q_put_resource)
- (xrm_merge_string_database, xrm_q_get_resource, xrm_get_resource)
- (xrm_cfproperty_list_to_value, xrm_get_preference_database):
- New functions.
-
- * macfns.c (mac_get_rdb_resource): Remove function.
- (x_get_string_resource): Use xrm_get_resource.
-
- * macgui.h (XrmDatabase): Typedef to Lisp_Object.
-
- * macterm.c (x_list_fonts): FONT-LIST-CACHE is now cadr part of
- name_list_element.
- (mac_make_rdb): Create resource database from preferences and
- argument string.
- (mac_term_init): Save resource database to cddr part of
- name_list_element.
-
- * macterm.h (xrm_merge_string_database, xrm_get_resource)
- (xrm_get_preference_database): Add externs.
- [TARGET_API_MAC_CARBON] (cfdata_to_lisp, cfstring_to_lisp)
- (cfnumber_to_lisp, cfdate_to_lisp, cfboolean_to_lisp)
- (cfobject_desc_to_lisp, cfproperty_list_to_lisp): Likewise.
-
- * process.c (init_process): Change `#ifdef DARWIN' to `#if
- defined (DARWIN) || defined (MAC_OSX)'
-
- * s/darwin.h (DARWIN): Don't define.
-
-2005-03-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift):
- Remove unused variables.
- (syms_of_macfns): Don't initialize them. Likewise for
- Qface_set_after_frame_default. Defvar and initialize
- Vx_window_horizontal_drag_shape.
- (x_set_mouse_color): Change mouse pointer shape.
- (mac_window) [!MAC_OSX]: Create root control.
- (Fx_create_frame): Remove initializations of mouse pointer shapes.
- (hourglass_started): New function (from xfns.c).
- (start_hourglass, cancel_hourglass): Put function body in #ifdef
- MAC_OSX.
- (show_hourglass) [TARGET_API_MAC_CARBON]: Create progress
- indicator for each non-tooltip frame if needed, and show it.
- (hide_hourglass) [TARGET_API_MAC_CARBON]: Hide progress indicators.
-
- * macgui.h [!TARGET_API_MAC_CARBON]: Include Appearance.h and
- Controls.h. Use ThemeCursor instead of CursHandle.
-
- * macterm.c (activate_scroll_bars, deactivate_scroll_bars):
- Remove functions and declarations.
- (mac_set_colors): Take argument for saving background color.
- All callers changed.
- (XDrawLine, XClearArea, mac_draw_bitmap, XFillRectangle)
- (mac_draw_rectangle, mac_draw_string_common): Save and Restore
- background color.
- (x_update_end, mac_do_track_drag): Don't reset background color.
- (mac_define_frame_cursor) [!TARGET_API_MAC_CARBON]:
- Use SetThemeCursor.
- (x_set_window_size) [TARGET_API_MAC_CARBON]: Move progress
- indicator control to the upper-right corner of the window.
- (arrow_cursor) [!TARGET_API_MAC_CARBON]: Remove variable.
- (do_init_managers) [!TARGET_API_MAC_CARBON]: Don't initialize it.
- (do_window_update): Update controls after updating content area.
- (mac_handle_window_event): Remove unused extern.
- (XTread_socket): Check both control handle and control part code
- to determine whether a scroll bar is clicked. Activate/deactivate
- root control instead of contained scroll bar controls.
- (make_mac_terminal_frame): Use ThemeCursor constants.
-
- * macterm.h (struct mac_output) [TARGET_API_MAC_CARBON]:
- New member hourglass_control.
- (HOURGLASS_WIDTH, HOURGLASS_HEIGHT): New defines.
- (activate_scroll_bars, deactivate_scroll_bars): Remove declarations.
-
-2005-03-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (keycode_to_xkeysym_table): Change mapping so that it
- coincides with that in Apple X11 except `clear', `enter' on
- laptops, and fn + `enter' on laptops.
-
-2005-03-12 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xmenu.c (ENCODE_MENU_STRING): Explicitly use string_make_unibyte.
- (list_of_panes, list_of_items, Fx_popup_menu): Use XCAR/XCDR.
- (digest_single_submenu, xmenu_show): Use ENCODE_MENU_STRING.
-
- * xfns.c (xic_defaut_fontset): New constant.
- (xic_create_fontsetname): New function.
- Extracted from create_frame_xic. Try to generate a slightly
- better fontset.
- (xic_create_xfontset): Use it.
- (create_frame_xic): Simplify.
-
-2005-03-11 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * fileio.c (Fmake_symbolic_link): Fix last change.
-
-2005-03-11 Richard M. Stallman <rms@gnu.org>
-
- * fileio.c (Frename_file, Fadd_name_to_file)
- (Fmake_symbolic_link): If NEWNAME or LINKNAME is a directory,
- expand the basename of FILE relative to it.
-
-2005-03-11 Kenichi Handa <handa@m17n.org>
-
- * fileio.c (Finsert_file_contents): Call Fcheck_coding_system
- before calling setup_coding_system so that autoloading of a coding
- system work.
-
-2005-03-10 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (hourglass_started): New function.
-
- * dispextern.h: Declare hourglass_started.
-
- * keyboard.c (Fexecute_extended_command): Restart hourglass
- after call to Fcompleting_read if already started.
-
- * gtkutil.c (xg_update_scrollbar_pos): Call x_sync so that the
- GTK main loop is entered in xterm.c, thus doing the redraw.
-
-2005-03-10 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (pos_visible_p): Fix X value in last line of buffer.
-
-2005-03-08 Kenichi Handa <handa@m17n.org>
-
- * frame.c (x_set_font): Call set_default_ascii_font if an
- available font is found.
-
- * fontset.c (set_default_ascii_font): New function.
- (syms_of_fontset): Don't set FONTSET_ASCII (Vdefault_fontset) here.
-
- * fontset.h (set_default_ascii_font): Extern it.
-
-2005-03-07 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (CLEAR_IMAGE_CACHE_COUNT): New const.
- (clear_image_cache_count): New var.
- (redisplay_internal): Don't clear face and image caches in the
- middle of redisplay; do it afterwards.
-
- * blockinput.h (TOTALLY_UNBLOCK_INPUT): Avoid dangling else.
-
- * xdisp.c (notice_overwritten_cursor): Check that phys_cursor.vpos
- is valid. If not, clear phys_cursor_on_p and return.
-
-2005-03-07 Andreas Schwab <schwab@suse.de>
-
- * blockinput.h (UNBLOCK_INPUT_TO): Always call UNBLOCK_INPUT.
-
-2005-03-06 Richard M. Stallman <rms@gnu.org>
-
- * keyboard.c (Ftop_level): Let Fthrow deal with UNBLOCK_INPUT.
-
- * eval.c (unwind_to_catch): Use UNBLOCK_INPUT_TO.
- (Feval, Ffuncall): Use CHECK_CONS_LIST.
-
- * lisp.h (CHECK_CONS_LIST): New macro (two definitions).
-
- * blockinput.h (UNBLOCK_INPUT_TO): New macro.
- (TOTALLY_UNBLOCK_INPUT): Handle a pending signal if any.
-
-2005-03-05 Juri Linkov <juri@jurta.org>
-
- * emacs.c (USAGE1): Replace Info node name "command arguments"
- with "emacs invocation".
- (USAGE3): Fix usage of `--color=MODE' which actually doesn't
- allow arguments `--color' and `MODE' to be separated by space.
- Add --no-blinking-cursor, -nbc.
- (standard_args): Add -nbc, --no-blinking-cursor.
-
-2005-03-04 Thien-Thi Nguyen <ttn@gnu.org>
-
- * s/vms.h: Define NO_HYPHENS_IN_FILENAMES.
- * s/vms4-4.h, s/vms5-5.h: Undefine NO_HYPHENS_IN_FILENAMES.
- * fileio.c (Fexpand_file_name) [VMS]:
- Use NO_HYPHENS_IN_FILENAMES, not VMS4_4.
- * doc.c (munge_doc_file_name) [VMS]: Likewise.
- (Fsnarf_documentation): Call munge_doc_file_name.
-
-2005-03-04 Thien-Thi Nguyen <ttn@gnu.org>
-
- * s/vms.h (FILE_SYSTEM_CASE): New macro.
- * fileio.c (Fexpand_file_name) [VMS]: Don't upcase the name
- "manually"; this is now handled generally via FILE_SYSTEM_CASE.
-
-2005-03-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * emacs.c (main): Change `#ifdef HAVE_CARBON' to `#if
- defined (MAC_OSX) && defined (HAVE_CARBON)'.
-
- * image.c [!MAC_OSX && TARGET_API_MAC_CARBON]: Include QuickTime.h.
-
- * mac.c [!MAC_OSX && HAVE_CARBON]: Include Carbon.h.
- [!MAC_OSX] (select) [TARGET_API_MAC_CARBON]: Use ReceiveNextEvent.
- (posix_pathname_to_fsspec, fsspec_to_posix_pathname): New functions.
- (mac_clear_font_name_table): Move extern to macterm.h.
-
- * macfns.c (install_window_handler): Move extern to macterm.h.
- (Fx_file_dialog): Check STRINGP (default_filename) to see it is
- valid. Don't check !NILP (dir) because it is already checked with
- CHECK_STRING.
- (Fx_file_dialog) [!MAC_OSX]: Use FSSpec instead of FSRef for
- specifying the default location and obtaining the selected filename.
-
- * macgui.h [!MAC_OSX && HAVE_CARBON]: Include Carbon.h.
-
- * macmenu.c [TARGET_API_MAC_CARBON]: Don't include headers that
- are included via Carbon.h.
-
- * macterm.c [TARGET_API_MAC_CARBON && !MAC_OSX]:
- Define USE_CARBON_EVENTS to 1.
- (qd) [__MRC__ && TARGET_API_MAC_CARBON]: Don't declare.
- (x_free_frame_resources): Call remove_window_handler for
- non-tooltip windows.
- [TARGET_API_MAC_CARBON]: Don't include headers that are included
- via Carbon.h.
- [TARGET_API_MAC_CARBON] (mac_do_track_dragUPP)
- (mac_do_receive_dragUPP): New variables.
- (mac_handle_service_event, init_service_handler): Put declarations
- and definitions in #ifdef MAC_OSX.
- (install_window_handler) [TARGET_API_MAC_CARBON]: Create UPPs for
- drag-and-drop handler functions and register them.
- (remove_window_handler): New function.
- (do_ae_open_documents, mac_do_receive_drag) [!MAC_OSX]:
- Use fsspec_to_posix_pathname.
- (main): Change #if !TARGET_API_MAC_CARBON to #ifdef MAC_OS8.
- (XTread_socket) [!MAC_OSX]: Don't pass keyboard events to TSM.
- [MAC_OS8] (make_mac_terminal_frame) [TARGET_API_MAC_CARBON]:
- Set default cursors.
- (mac_initialize) [USE_CARBON_EVENTS && !MAC_OSX]: Don't call
- init_service_handler or init_quit_char_handler.
- (mac_initialize) [!MAC_OSX]: Don't call MakeMeTheFrontProcess.
-
- * macterm.h (install_window_handler, remove_window_handler)
- (posix_pathname_to_fsspec, fsspec_to_posix_pathname)
- (mac_clear_font_name_table): New externs.
-
-2005-03-03 Thien-Thi Nguyen <ttn@gnu.org>
-
- * fileio.c (FILE_SYSTEM_CASE): Define macro if not already defined.
- (Ffile_name_directory): Use FILE_SYSTEM_CASE unconditionally.
- (Fexpand_file_name): Likewise.
-
-2005-03-03 Thien-Thi Nguyen <ttn@gnu.org>
-
- * emacs.c (Fkill_emacs): Use EXIT_SUCCESS;
- no longer special-case VMS. Add bogus return value.
-
-2005-03-02 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (XASSERTS): Define to 0 if not already defined.
- (xassert) [!XASSERTS]: Define dummy version.
-
-2005-03-02 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (redisplay_window): YABX (yet another bogus xassert).
- Reported by David Kastrup.
-
-2005-03-01 Ehud Karni <ehud@unix.mvs.co.il>
-
- * xdisp.c (get_next_display_element): Fix control and escape
- glyph from display vector.
-
-2005-03-01 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keyboard.c (Fposn_at_x_y): Check integerness of X and Y.
-
-2005-02-27 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (fast_find_position): Rename END to BEG.
- (syms_of_xdisp) <menu-bar-update-hook>: Doc fix.
-
-2005-02-27 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_resize_outer_widget): Remove unneeded call to
- gtk_window_resize and x_wm_set_size_hint.
-
-2005-02-25 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (OVERLAY_STRING_CHUNK_SIZE): Increase from 3 to 16.
-
- * xdisp.c (init_from_display_pos): Don't read past end of
- it->overlay_strings array.
-
-2005-02-25 Stephan Stahl <stahl@eos.franken.de> (tiny change)
-
- * buffer.c (syms_of_buffer): Fix typo.
-
-2005-02-23 Lute Kamstra <lute@gnu.org>
-
- * buffer.c (Foverlay_buffer): Doc fix.
-
-2005-02-22 Kim F. Storm <storm@cua.dk>
-
- * minibuf.c (Ftry_completion, Fall_completions): Allow both string
- and symbol keys in alists and hash tables.
-
- * xdisp.c (fast_find_position): Fix search for start of overlay.
-
-2005-02-21 Kim F. Storm <storm@cua.dk>
-
- * window.c (window_scroll_pixel_based): When scrolling backwards,
- handle partial visible line at end of window even when we hit PT.
-
-2005-02-21 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keymap.h: Declare Fcurrent_active_maps, used in doc.c.
-
-2005-02-21 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (move_it_vertically_backward): Eliminate two xasserts.
- I think those asserts are bogus if buffer contains invisible text
- or images.
-
-2005-02-21 David Kastrup <dak@gnu.org>
-
- * gtkutil.c (xg_create_frame_widgets): UNBLOCK_INPUT on error.
-
-2005-02-20 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (pos_visible_p): Be sure to move to the specified
- position. Always get the full ascent / descent of the
- corresponding row, to return reliable rtop and rbot values.
- (back_to_previous_visible_line_start): Fix 2005-01-18 change.
- Must look one character back, as back_to_previous_line_start
- returns position after the newline.
- (move_it_vertically_backward): Fix heuristic for when to move further
- back in case line_height * 2/3 is larger than window height.
- (cursor_row_fully_visible_p): Rename make_cursor_line_fully_visible_p
- as it does not do anything anymore. Add arg current_matrix_p to
- use current matrix rather than desired matrix when set.
- (try_cursor_movement): Don't scroll to make cursor row fully
- visible if cursor didn't move. This avoids unexpected recentering
- in case of blinking cursor or accepting process output.
- Use current matrix to check cursor row visibility.
- (redisplay_window): Fix whether to recenter or move to top in case
- cursor line is taller than window height.
- (find_first_unchanged_at_end_row): Stop search if we reach a row
- which not enabled (instead of abort).
-
-2005-02-18 Kim F. Storm <storm@cua.dk>
-
- * xfaces.c (Finternal_set_lisp_face_attribute): Allow :color property
- to be nil in a :box attribute value list; customize prints that
- as lisp value when no box color is specified.
-
- * .gdbinit (pitx, pit): Pretty print display iterator.
- (prowx, prow): Pretty print glyph row.
- (pcursorx, pcursor): Pretty print a window cursor.
- (pwinx, pwin): Pretty print struct window.
-
-2005-02-18 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * alloc.c (BLOCK_BYTES): Harmless typo.
-
-2005-02-17 Andreas Schwab <schwab@suse.de>
-
- * xfns.c (hack_wm_protocols): Use correct type for last parameter
- of XGetWindowProperty to avoid aliasing issues.
- (Fx_window_property): Likewise.
-
- * xselect.c (Fx_disown_selection_internal): Use union of struct
- input_event and struct selection_input_event to avoid aliasing issues.
-
- * xterm.c (handle_one_xevent): Use union of struct input_event and
- struct selection_input_event to avoid aliasing issues.
- (SET_SAVED_MENU_EVENT): Adapt reference to inev.
-
-2005-02-17 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (enum it_method): New enum.
- (GET_FROM_*): Its members.
- (struct it): Change member method from function pointer to enum.
-
- * xdisp.c (check_it, init_from_display_pos, handle_stop)
- (setup_for_ellipsis, handle_single_display_spec)
- (handle_composition_prop, next_overlay_string)
- (get_overlay_strings, reseat_1, reseat_to_string)
- (next_element_from_ellipsis, BUFFER_POS_REACHED_P)
- (in_display_vector_p, display_line, get_next_display_element):
- Change it->method from function pointer to enum.
- (get_next_element): New array to map it->method to function.
- (get_next_display_element): Use it.
- (set_iterator_to_next): Use switch instead of if/else chain.
-
-2005-02-15 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
-
- * w32select.c: Summary: Thorough rework to implement Unicode
- clipboard operations and delayed rendering.
-
- Drop last_clipboard_text and related code, keep track of
- ownership via clipboard_owner instead. Drop old #if0 sections.
-
- (DEFAULT_LCID, ANSICP, OEMCP, QUNICODE, QANSICP, QOEMCP)
- (clipboard_owner, modifying_clipboard, cfg_coding_system)
- (cfg_codepage, cfg_lcid, cfg_clipboard_type, current_text)
- (current_coding_system, current_requires_encoding)
- (current_num_nls, current_clipboard_type, current_lcid):
- New static variables.
-
- (convert_to_handle_as_ascii, convert_to_handle_as_coded)
- (render, render_all, run_protected, lisp_error_handler)
- (owner_callback, create_owner, setup_config)
- (enum_locale_callback, cp_from_locale, coding_from_cp):
- New local functions.
-
- (term_w32select, globals_of_w32select): New global functions.
-
- (Fw32_set_clipboard_data): Ignore parameter FRAME, use
- clipboard_owner instead. Use delayed rendering and provide
- all text formats. Provide CF_LOCALE if necessary.
-
- (Fw32_get_clipboard_data): Handle CF_UNICODETEXT and
- CF_LOCALE. Fall back to CF_TEXT, if CF_UNICODETEXT is not
- available. Force DOS line-ends for decoding.
-
- (Fx_selection_exists_p): Handle CF_UNICODETEXT.
-
- (syms_of_w32select): Init and register new variables.
-
- * w32.h: Add prototypes for globals_of_w32select and
- term_w32select. Make the neighboring K&R declarations into
- prototypes, too.
-
- * emacs.c: Include w32.h to get function prototypes.
- (main): Call globals_of_w32select.
-
- * w32.c (term_ntproc): Call term_w32select.
-
- * s/ms-w32.h: Guard MSC-specific #pragmas with an #ifdef.
-
-2005-02-16 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (BUFFER_POS_REACHED_P): Return true if pos reached and
- at end of display vector.
-
-2005-02-15 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (get_next_display_element): Fix escape-glyph criterion
- for mode and header lines.
-
- * lread.c (syms_of_lread) <user-init-file>: Doc fix.
-
- * keymap.h (describe_map_tree): Change decl.
-
- * keyboard.c (command_loop_1): Always use safe_run_hooks
- to run Qdeferred_action_function.
-
- * keymap.c (describe_map_tree): New arg MENTION_SHADOW. Calls changed.
- (describe_map, describe_vector): Likewise. When it's 1,
- don't omit shadowed bindings, instead mark them as shadowed.
-
- * doc.c (Fsubstitute_command_keys): Compute list of shadowing maps
- for describe_map_tree. Pass 1 for MENTION_SHADOW.
-
- * data.c (Fsetq_default): Allow no arg case.
-
-2005-02-14 Kenichi Handa <handa@m17n.org>
-
- * coding.c (encode_coding_string): Always return a unibyte string.
- If NOCOPY is nonzero and there's no need of encoding, make STR
- unibyte directly.
-
- * xselect.c (lisp_data_to_selection_data): If OBJ is a non-ASCII
- multibyte string, signal an error instead of aborting.
-
-2005-02-12 Dan Nicolaescu <dann@ics.uci.edu>
-
- * keyboard.c: If HAVE_FCNTL_H include fcntl.h.
-
-2005-02-12 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (expose_window): Don't fix overlaps for mode lines.
-
-2005-02-10 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (try_window_id): Set first_unchanged_at_end_row to NULL
- if it moves outside window or it doesn't display text.
-
-2005-02-09 Kim F. Storm <storm@cua.dk>
-
- * undo.c (Fprimitive_undo): Check that undo function does not
- switch buffer.
-
-2005-02-08 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xselect.c (selection_data_to_lisp_data): For the special case
- type == XA_ATOM, data contains array of int, not array of Atom.
- (x_property_data_to_lisp, selection_data_to_lisp_data):
- Comment update: data must be array of int for format == 32.
-
-2005-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * undo.c (Fprimitive_undo): Check veracity of delta,start,end.
-
-2005-02-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (Fx_change_window_property): Use long array when format is 32.
- (Fx_window_property): If format is 32 and long is bigger than 32 bits,
- convert long array returned from XGetWindowProperty to an int array.
- (x_set_tool_bar_lines): Check that width and height is greater than
- zero before clearing area.
-
- * xselect.c (x_reply_selection_request): Pass long array to
- XChangeProperty so that 64 bit longs are handeled correctly.
- (x_get_window_property): If format is 32 and long is bigger than 32
- bits convert data from XGetWindowProperty from long array to int array.
- (lisp_data_to_selection_data): When the input is a vector and the
- format is 32, allocate a long array even if long is bigger than 32 bits.
- (x_fill_property_data): Use char, short and long as the man page
- for XChangeProperty specifies. This way the data returned is OK for
- both 32 and 64 bit machines.
- (x_handle_dnd_message): Calculate size correctly even for 64 bit
- machines.
- (Fx_send_client_event): Undo change from 2005-02-05,
- x_fill_property_data now handles that case.
-
- * xfns.c (Fx_backspace_delete_keys_p): Add comment about the
- reason for the approach in the code.
-
-2005-02-07 Kim F. Storm <storm@cua.dk>
-
- * undo.c (Fprimitive_undo): Record max one dummmy apply element.
-
-2005-02-06 Richard M. Stallman <rms@gnu.org>
-
- * eval.c (Frun_hook_with_args)
- (Frun_hook_with_args_until_success)
- (Frun_hook_with_args_until_failure): Doc fixes.
-
-2005-02-05 Andreas Schwab <schwab@suse.de>
-
- * sysdep.c (sys_subshell): Properly terminate execlp argument list.
-
-2005-02-05 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xselect.c (Fx_send_client_event, x_handle_dnd_message): Handle
- the longs in a XClientMessageEvent correctly when long is 64 bits.
-
-2005-02-05 Eli Zaretskii <eliz@gnu.org>
-
- * xfaces.c (face_color_supported_p): Use HAVE_WINDOW_SYSTEM
- instead of HAVE_X_WINDOWS, for non-X windowed sessions.
-
-2005-02-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (menubar_selection_callback): Force out GTK buffered
- events so the menu event comes after them. This is to prevent sit-for
- from exiting on buffered events directly after a menu selection,
- lisp code for Help => About Emacs uses sit-for.
-
- * gtkutil.c (create_menus): Connect selection-done event instead of
- the deactivate event to deactivate_cb. This will make the last
- leave event come before the call to deactivate_cb, so the leave
- event does not make sit-for exit after a menu selection.
-
-2005-02-03 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (build_frame_matrix_from_leaf_window)
- [!GLYPH_DEBUG]: Fix xassert.
-
- * xfaces.c (x_free_gc) [!GLYPH_DEBUG]: Fix xassert.
-
- * xfns.c (unwind_create_frame) [!GLYPH_DEBUG]: Fix xassert.
-
-2005-02-03 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c: Use MAC_OS_X_VERSION_MAX_ALLOWED to conditionalize by
- the compiling OS version.
-
- * macfns.c (x_create_tip_frame): Likewise.
-
- * macterm.c (mac_draw_string_common, x_make_frame_visible): Likewise.
-
-2005-02-03 Richard M. Stallman <rms@gnu.org>
-
- * xterm.c (x_error_quitter): On GCC 3 and up, specify noinline.
-
- * xdisp.c (echo_area_display): Clear echo_message_buffer.
-
- * buffer.c (Fbury_buffer): Doc fix.
-
-2005-02-02 Steven Tamm <steventamm@mac.com>
-
- * macfns.c (unwind_create_frame): Fix compile error due to
- xassert being uncondition, but predicate is.
- * dispnew.c (update_window): Fix compile error due to
- xassert being uncondition, but predicate is.
-
-2005-02-02 Miles Bader <miles@gnu.org>
-
- * dispextern.h (xassert): Enable unconditionally.
-
-2005-02-02 Kim F. Storm <storm@cua.dk>
-
- * undo.c (Fprimitive_undo): Fix dummy apply undo entry.
-
-2005-02-02 Kenichi Handa <handa@m17n.org>
-
- * casefiddle.c (casify_object): Enable changing characters of
- different byte length.
- (casify_region): Fix loop condition, args to replace_range_2, and
- update opoint_byte.
-
- * insdel.c (replace_range_2): Fix bugs in adjusting markers and point.
-
-2005-02-01 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (back_to_previous_visible_line_start): Reset iterator
- stack before calling handle_display_prop.
-
-2005-01-31 Kim F. Storm <storm@cua.dk>
-
- * undo.c (Qapply): New lisp var.
- (syms_of_undo): Intern and staticpro it.
- (Fprimitive_undo): Support formats (apply FUNNAME . ARGS) and
- (apply DELTA BEG END FUNNAME . ARGS) instead of (FUNNAME . ARGS).
-
- * buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
-
-2005-01-30 Jesper Harder <harder@phys.au.dk>
-
- * macterm.c (syms_of_macterm) <mac-reverse-ctrl-meta>
- <mac-emulate-three-button-mouse>: Fix docstring indentation.
-
-2005-01-29 Luc Teirlinck <teirllm@auburn.edu>
-
- * undo.c (syms_of_undo) <undo-outer-limit>: Doc update.
- Increase value to 3 Meg.
-
-2005-01-29 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (show_hourglass): Use FRAME_X_WINDOW as parent for GTK,
- button events are not received otherwise.
-
-2005-01-29 Richard M. Stallman <rms@gnu.org>
-
- * buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
-
- * undo.c (Fprimitive_undo): Handle (FUNNAME . ARGS) by calling FUNNAME.
-
-2005-01-28 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keymap.c (access_keymap): YAILOM.
-
-2005-01-27 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (get_phys_cursor_geometry): New function to calculate
- phys cursor position and size for hollow cursor. Position is
- aligned with get_glyph_string_clip_rect and ensures that a hollow
- cursor is shown, even when the actual glyph is not visible.
-
- * dispextern.h (get_phys_cursor_geometry): Add prototype.
-
- * xterm.c (x_clip_to_row): Ensure y >= 0.
- (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
-
- * w32term.c (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
-
- * macterm.c (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
-
-2005-01-27 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xterm.c (x_error_quitter): Add a prototype. Make it static again.
-
-2005-01-27 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (get_glyph_string_clip_rect): Always show a cursor
- glyph, even when row is only partially visible and actual cursor
- position is not visible.
-
-2005-01-24 Richard M. Stallman <rms@gnu.org>
-
- * xterm.c (x_error_quitter): No longer static, and moved after
- x_error_handler.
-
-2005-01-24 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (move_it_by_lines): If we move forward after going too
- far back, cancel move if end position is same as start position.
-
-2005-01-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * dispextern.h (struct glyph_string): New members clip_head and
- clip_tail.
-
- * xdisp.c (get_glyph_string_clip_rect): Restrict horizontal clip
- region to the area between clip_head and clip_tail.
- (draw_glyphs): Record the area that need to be actually redrawn to
- the new variables clip_head and clip_tail when there are
- overhangs. Set values of these variables to the corresponding
- members in struct glyph_string. Refine x coordinates for
- notice_overwritten_cursor using clip_head and clip_tail.
-
- * macgui.h (STORE_XCHARSETSTRUCT): New macro.
-
- * macterm.c (mac_compute_glyph_string_overhangs): Implement with
- QDTextBounds.
- (x_draw_glyph_string): Don't fill the background of the successor
- of a glyph with a right overhang if the successor will draw a cursor.
- (XLoadQueryFont): Obtain font metrics using QDTextBounds.
- (x_redisplay_interface): Add entry for compute_glyph_string_overhangs.
-
-2005-01-24 Kim F. Storm <storm@cua.dk>
-
- * window.c (window_scroll_pixel_based): Fix scrolling in the wrong
- direction if window height was smaller than next-screen-context-lines.
- Now always scroll at least one line in the requested direction.
- Ensure that we actually do scroll backwards when requested to do so.
-
- * xdisp.c (redisplay_window): Only try to make cursor line fully
- visible once (to avoid redisplay loop).
-
-2005-01-23 Kim F. Storm <storm@cua.dk>
-
- * window.c (Fpos_visible_in_window_p): Simplify return value for
- partially visible rows.
- (window_scroll_pixel_based): Adapt to that change.
-
- * window.c (window_scroll_pixel_based): Force moving to next line
- if scrolling doesn't move start point, e.g. if looking at tall image.
-
- * xdisp.c (pos_visible_p): Return 0 if non-interactive.
- Clear last_height before calling line_bottom_y to get real height.
- Fix calculation of y.
-
-2005-01-22 Steven Tamm <steventamm@mac.com>
-
- * s/darwin.h: Removed PTY_ITERATION from here.
- (DARWIN): Define.
-
- * process.c (init_process): Default process-connection-type to
- nil on darwin 6 or less, t if it is 7 or higher. This way the
- broken pty behavior is still allowed on darwin 6 for interactive
- processes for people that know what they are doing.
-
-2005-01-22 Kim F. Storm <storm@cua.dk>
-
- * window.c (auto_window_vscroll_p): New boolean.
- (syms_of_window): DEFVAR_BOOL it.
- (Fpos_visible_in_window_p): Extend return value to include RTOP
- and RBOT values if FULLY is nil.
- (window_scroll_pixel_based): Adjust vscroll for partially visible
- rows if auto_window_vscroll_p is set.
- (Fset_window_vscroll): Do nothing if vscroll is not modified.
-
- * xdisp.c (pos_visible_p): Replace FULLY arg by RTOP and RBOT args
- to return number of partially invisible pixels at top and bottom
- of the dislay row at POS.
-
- * lisp.h (pos_visible_p): Fix prototype.
-
-2005-01-21 Richard M. Stallman <rms@gnu.org>
-
- * fileio.c (Fcopy_file): Doc fix.
-
-2005-01-21 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_tool_bar_detach_callback): Remove unused variable bw.
- (xg_get_file_name): Move declaration ofx_use_old_gtk_file_dialog to
- start of function for older compilers.
-
-2005-01-20 Richard M. Stallman <rms@gnu.org>
-
- * editfns.c (Fmessage): If arg is "", return "" (as before).
-
- * keymap.c (access_keymap): Protect from bad value of meta_prefix_char.
-
- * .gdbinit (xgetptr, xgetint, xgettype): Copy $arg0 into a temp
- variable.
-
-2005-01-20 Steven Tamm <steventamm@mac.com>
-
- * editfns.c (Voperating_system_release): Add.
- (init_editfns): Assign new variable operating-system-release
- based on call to uname if available.
- (get_operating_system_release): Add function to
- allow c-level access to operating system release.
-
- * config.h: Regenerated.
-
- * s/darwin.h (PTY_ITERATION): Don't allow PTYs on darwin 6 or less.
- (MIN_PTY_KERNEL_VERSION): Define minimum kernel version for
- using ptys as '7'.
-
-2005-01-20 Kim F. Storm <storm@cua.dk>
-
- * alloc.c (STRING_MARKED_P, VECTOR_MARKED_P): Return boolean.
-
- * xterm.c (x_draw_glyph_string_box): Fix last_x for full width rows.
- Thanks to Chong Yidong <cyd@stupidchicken.com> for debugging this.
-
- * macterm.c (x_draw_glyph_string_box): Likewise.
-
- * w32term.c (x_draw_glyph_string_box): Likewise.
-
- * indent.c (Fvertical_motion): Temporarily disable selective display.
-
-2005-01-19 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (note_mode_line_or_margin_highlight): Fix :pointer
- image property.
-
- * fns.c (sweep_weak_table): Advance prev pointer when we keep a pair.
-
-2005-01-18 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (fast_find_position): Backtrack to find first row if
- charpos is inside a display overlay that spans multiple lines.
-
-2005-01-18 Kenichi Handa <handa@m17n.org>
-
- * coding.c (decode_coding_iso2022): Translate invalid codes if
- translation-table is specified.
-
-2005-01-18 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (back_to_previous_visible_line_start): Undo 2004-12-28
- change. If handle_display_prop indicates newline is replaced by
- image or text, move back to start of relevant overlay or interval
- and continue scan from there. Simplify.
-
-2005-01-17 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (mode_line_string, marginal_area_string):
- Fix off-by-one error in search for glyph.
-
-2005-01-16 Kim F. Storm <storm@cua.dk>
-
- * macterm.c (syms_of_macterm) <mac-allow-anti-aliasing>: Doc fix.
-
-2005-01-16 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (mac_to_x_fontname): Remove spurious argument.
-
-2005-01-16 Andreas Schwab <schwab@suse.de>
-
- * macterm.c (mac_draw_string_common): Fix compilation on OSX 10.1.
-
-2005-01-16 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * fringe.c (Fdefine_fringe_bitmap, init_fringe): When assigning
- fringe_faces, cast result from xmalloc/xrealloc to Lisp_Object *.
-
-2005-01-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * keyboard.c (READABLE_EVENTS_DO_TIMERS_NOW)
- (READABLE_EVENTS_FILTER_EVENTS, READABLE_EVENTS_IGNORE_SQUEEZABLES):
- New flags for readable_events.
- (get_filtered_input_pending, readable_filtered_events): Remove.
- (tracking_off): Call readable_events and get_input_pending with
- flag READABLE_EVENTS_DO_TIMERS_NOW.
- (readable_events): Move code from old readable_filtered_events here,
- but check new READABLE_EVENTS_* in argument flags instead of previous
- two boolean arguments do_timers_now and filter_events.
- If we are doing mouse tracking and the mouse moved, return only if
- READABLE_EVENTS_IGNORE_SQUEEZABLES is not set in flags.
- (swallow_events): Call get_input_pending with flag
- READABLE_EVENTS_DO_TIMERS_NOW.
- (get_input_pending): Move code from old get_filtered_input_pending
- here. Replace boolean arguments do_timers_now, filter_events with
- flags, and pass flags to readable_events. Document new
- READABLE_EVENTS_* flags.
- (detect_input_pending_ignore_squeezables): New function.
- (detect_input_pending_run_timers): Call get_input_pending with flag
- READABLE_EVENTS_DO_TIMERS_NOW.
- (Finput_pending_p): Call get_input_pending with flags
- READABLE_EVENTS_DO_TIMERS_NOW and READABLE_EVENTS_FILTER_EVENTS.
-
- * dispnew.c (update_window, update_frame_1): Replace calls to
- detect_input_pending with detect_input_pending_ignore_squeezables
- so that redisplay is not paused if the event queue contains only
- mouse movements.
-
- * lisp.h: Declare detect_input_pending_ignore_squeezables.
-
-2005-01-15 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (Vmac_use_core_graphics): Declare variable for
- mac-allow-anti-aliasing.
- (syms_of_macterm): DEFVAR_LISP and initialize it.
- (mac_draw_string_common): Use core graphics text rendering if
- mac-allow-anti-aliasing is enabled.
-
- * macfns.c (Fx_file_dialog): Save As dialog includes only the
- file name in the text box.
-
-2005-01-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (x_set_foreground_color, x_set_background_color):
- Sync with xfns.c.
- (mac_window, x_create_tip_frame): Use XSetWindowBackground.
- * macterm.c (XSetBackground, XSetWindowBackground): New functions.
- * macterm.h (XSetBackground, XSetWindowBackground): Add externs.
-
-2005-01-14 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (Fposn_at_x_y): Add optional arg WHOLE.
-
-2005-01-13 Richard M. Stallman <rms@gnu.org>
-
- * keymap.c (Fcurrent_active_maps): Ignore Voverriding_local_map
- if Voverriding_terminal_local_map is non-nil.
-
- * keyboard.c (syms_of_keyboard): Doc fix.
-
-2005-01-13 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (Fformat_mode_line): Fix last change. Remove NO_PROPS arg
- (specify 0 for FACE instead). Reorder arg list. Doc fix.
-
-2005-01-12 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (Fformat_mode_line): New arg FACE specifies a default
- face property for characters that don't specify one.
-
- * fns.c (Frequire): Record in load-history unconditionally.
-
-2005-01-10 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (merge_faces): Rename from merge_into_realized_face.
-
- * xfaces.c (merge_faces): Rename from merge_into_realized_face.
- Callers changed.
- Add support to merge with lisp face id too (if face_name is t).
-
- * xdisp.c (get_next_display_element, next_element_from_display_vector):
- Don't lookup lface_id from display table glyphs here; instead use
- merge_faces to merge the lisp face id into current face.
-
-2005-01-09 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (struct it): New member dpvec_face_id.
- (merge_into_realized_face): Add prototype.
-
- * xfaces.c (merge_into_realized_face): New function. Used to
- merge escape-glyph face or face from display table into current face.
-
- * xdisp.c (Vshow_nonbreak_escape): New lisp var.
- (syms_of_xdisp): DEFVAR_LISP it.
- (escape_glyph_face): Remove var.
- (redisplay_window): Don't initialize it.
- (setup_for_ellipsis, get_next_display_element):
- Set it->dpvec_face_id to -1.
- (get_next_display_element): Test Vshow_nonbreak_escape.
- Do not setup escape_glyph_face.
- Properly merge escape-glyph face or face from display table with
- current face for escape and control characters.
- Set it->dpvec_face_id to relevant face id instead of adding it to each
- element of display vector.
- (next_element_from_display_vector): If it->dpvec_face_id is set,
- use that instead of lface_id from glyph itself.
-
-2005-01-08 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.h (struct x_output): New member, toolbar_detached.
-
- * gtkutil.c (xg_create_frame_widgets): Set initial tool bar height to
- 38.
- (xg_tool_bar_detach_callback): Set toolbar_detached to 1.
- (xg_tool_bar_attach_callback): Set toolbar_detached to 0.
- (xg_create_tool_bar): Initialize toolbar_detached.
- (update_frame_tool_bar): Only set FRAME_TOOLBAR_HEIGHT (f) if
- toolbar_detached is zero.
-
-2005-01-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (create_and_show_popup_menu): Pass zero as button to
- gtk_menu_popup if not for_click, so callbacks for the menu are called.
-
- * gtkutil.c (xg_gtk_scroll_destroy, xg_create_scroll_bar)
- (xg_tool_bar_callback, xg_tool_bar_help_callback)
- (update_frame_tool_bar): Cast to EMACS_INT to avoid compiler warning.
-
- * xselect.c (x_get_foreign_selection, x_fill_property_data)
- (Fx_get_atom_name, Fx_send_client_event): Replace XFLOAT with
- XFLOAT_DATA to get extract number from Lisp object.
-
-2005-01-07 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (set_iterator_to_next): Fix 2004-12-13 change.
- Set stop_charpos to current charpos instead of 0.
-
-2005-01-06 Nick Roberts <nickrob@snap.net.nz>
-
- * xdisp.c (Fformat_mode_line): First arg now required.
-
-2005-01-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (XLoadQueryFont): Correctly handle 0 size
- font widths that are returned from some Japanese fonts.
-
-2005-01-06 Kim F. Storm <storm@cua.dk>
-
- * fringe.c (fringe_faces): Change to Lisp_Object pointer.
- (draw_fringe_bitmap_1): Lookup user defined fringe faces here.
- (destroy_fringe_bitmap): Set fringe_faces element to nil.
- (Fdefine_fringe_bitmap, init_fringe): Change allocation of
- fringe_faces array and init elements to nil.
- (Fset_fringe_bitmap_face): Set fringe_faces to face name instead of
- non-persistent face id.
- (mark_fringe_data): New function for GC.
-
- * alloc.c (mark_fringe_data): Declare extern.
- (Fgarbage_collect): Call mark_fringe_data.
-
- * alloc.c (overrun_check_free): Invalidate freed memory if
- XMALLOC_CLEAR_FREE_MEMORY is defined.
-
-2005-01-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c: Include sys/param.h.
- [TARGET_API_MAC_CARBON] (mac_nav_event_callback): New declaration
- and function.
- [TARGET_API_MAC_CARBON] (Fx_file_dialog): Use MAXPATHLEN for size
- of filename string. Set event callback function when creating
- dialog boxes. Add code conversions for filenames. Don't dispose
- of apple event descriptor record if failed to create it.
-
- * macterm.c: Include sys/param.h.
- [USE_CARBON_EVENTS] (mac_handle_window_event): Add handler for
- kEventWindowUpdate.
- (install_window_handler) [USE_CARBON_EVENTS]: Register it.
- (do_ae_open_documents) [TARGET_API_MAC_CARBON]: Get FSRef instead
- of FSSpec from apple event descriptor record.
- (do_ae_open_documents) [TARGET_API_MAC_CARBON]: Use MAXPATHLEN for
- size of filename string.
- [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Likewise.
- [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Return error when a
- file dialog is in action.
- [TARGET_API_MAC_CARBON] (mac_do_track_drag): Likewise.
- Reject only when there are no filename items. Set background color
- before (un)highlighting the window below the dragged items.
- (XTread_socket) [USE_CARBON_EVENTS]: Don't call do_window_update.
-
-2005-01-05 Romain Francoise <romain@orebokech.com>
-
- * term.c (encode_terminal_code): Fix buffer size computation.
-
-2005-01-04 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (Fformat_mode_line): Doc fix.
-
-2005-01-04 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * alloc.c (refill_memory_reserve): Move.
- (emacs_blocked_free, emacs_blocked_malloc, emacs_blocked_realloc)
- (reset_malloc_hooks, uninterrupt_malloc) [SYNC_INPUT]: Don't define.
-
-2005-01-03 Richard M. Stallman <rms@gnu.org>
-
- * window.c (window_scroll_pixel_based): Don't correct preserve_y
- for CURRENT_HEADER_LINE_HEIGHT when moving backwards.
-
-2005-01-03 Jason Rumney <jasonr@gnu.org>
-
- * w32bdf.c (w32_load_bdf_font): Set fontp->average_width and
- fontp->space_width to FONT_WIDTH so they are valid.
-
- * w32fns.c (w32_load_system_font): Set FONT_WIDTH to maximum, not
- average width. Set fontp->average_width and fontp->space_width to
- their appropriate values.
-
- * w32term.c (x_new_font): Set FRAME_COLUMN_WIDTH to
- fontp->average_width, not FONT_WIDTH. Set FRAME_SPACE_WIDTH to
- fontp->space_width.
-
-2005-01-03 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
- (x_font_min_bounds, XLoadQueryFont): Use the correct font width
- metrics for max and min bounds.
- (x_load_font): Correctly calculate average font width metrics.
-
-2005-01-02 Richard M. Stallman <rms@gnu.org>
-
- * alloc.c (Fgarbage_collect): Don't truncate_undo_list on dead buffers.
-
-2004-12-31 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (handle_one_xevent): Clear area in expose event for GTK.
-
-2004-12-31 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (setup_for_ellipsis, get_next_display_element):
- Set it->ellipsis_p to 1 or 0.
- (display_line): Record whether row ends in mid-ellipsis.
- (set_cursor_from_row): If ends in ellipsis, find start of it.
- (cursor_row_p): If PT's at the end of the ellipsis the row
- ends within, don't display cursor on this row.
-
- * dispextern.h (struct it): New element ellipsis_p.
- (struct glyph_row): New element ends_in_ellipsis_p.
-
- * xdisp.c (BUFFER_POS_REACHED_P): We haven't reached the specified
- position if we're reading from something other than the buffer.
-
- * window.c (window_scroll_pixel_based): Only look at
- Vscroll_preserve_screen_position if the old PT can't be kept.
- (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
-
-2004-12-30 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (get_line_height_property): New function extracted from
- original calc_line_height_property.
- (calc_line_height_property): Rework. Handle t and (nil . ratio).
- (x_produce_glyphs): Use them to handle line-height and
- line-spacing according to new height spec.
- (Qtotal): Remove.
- (syms_of_xdisp): Remove intern and staticpro for Qtotal.
-
-2004-12-30 Kenichi Handa <handa@m17n.org>
-
- * fileio.c (Finsert_file_contents): Don't use
- current_buffer->buffer_file_coding_system even if REPLACE is
- non-nil. Call Qafter_insert_file_set_coding with the second arg VISIT.
-
- * fontset.h (struct font_info): New members space_width and
- average_width.
-
- * frame.h (struct frame): New member space_width.
- (FRAME_SPACE_WIDTH): New macro.
-
- * xterm.h (struct x_display_info): New member Xatom_AVERAGE_WIDTH.
-
- * xterm.c (x_new_font): Set FRAME_COLUMN_WIDTH to
- fontp->average_width, not FONT_WIDTH. Set FRAME_SPACE_WIDTH to
- fontp->space_width.
- (x_load_font): Calculate fontp->space_width and fontp->average_width.
- (x_term_init): Initialize dpyinfo->Xatom_AVERAGE_WIDTH.
-
- * xdisp.c (x_produce_glyphs): Calculate tab width by
- FRAME_SPACE_WIDTH, not FRAME_COLUMN_WIDTH.
-
-2004-12-29 Sanghyuk Suh <han9kin@mac.com>
-
- * macterm.c (SelectionRange): Add Xcode position apple event struct.
- (do_ae_open_documents): Handle Xcode-style file position open events.
-
-2004-12-29 Luc Teirlinck <teirllm@auburn.edu>
-
- * buffer.c (syms_of_buffer) <vertical-scroll-bar>: Correct typo.
-
-2004-12-29 Richard M. Stallman <rms@gnu.org>
-
- * buffer.c (syms_of_buffer) <vertical-scroll-bar>: Doc fix.
-
-2004-12-29 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (install_window_handler): Modify extern to return OSErr
- value.
- (mac_window): Handle return value of install_window_handler.
-
- * macterm.c (reflect_byte): Remove function.
- (mac_create_bitmap_from_bitmap_data): Don't call reflect_byte.
- Lookup table instead.
- (mac_do_font_lists): Simplify calculation of the longest
- nonspecial string.
- (init_mac_drag_n_drop): Remove function and declaration.
- (mac_initialize) [TARGET_API_MAC_CARBON]: Don't call
- init_mac_drag_n_drop.
- (mac_do_track_drag): New function and declaration.
- (install_window_handler): Return OSErr value.
- (install_window_handler) [TARGET_API_MAC_CARBON]:
- Register handlers for tracking/receiving drag-and-drop items.
- (do_ae_open_documents): Generate unibyte strings for filenames.
- (mac_do_receive_drag) [TARGET_API_MAC_CARBON]: Likewise.
- Reject only non-filename items. Set event modifiers, and return value.
-
-2004-12-28 Dan Nicolaescu <dann@ics.uci.edu>
-
- * coding.c (decode_coding): Fix previous change.
-
-2004-12-28 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (back_to_previous_visible_line_start):
- Don't call handle_display_prop.
-
-2004-12-28 Dan Nicolaescu <dann@ics.uci.edu>
-
- * coding.c (decode_coding_XXX, decode_composition_emacs_mule)
- (decode_coding_emacs_mule, encode_coding_emacs_mule)
- (decode_coding_iso2022, encode_designation_at_bol)
- (encode_coding_iso2022, decode_coding_sjis_big5, decode_eol)
- (decode_coding): Constify arguments and local vars.
-
-2004-12-27 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (popup_get_selection): Only pop down dialogs
- on C-g and Escape.
- (popup_get_selection): Remove parameter down_on_keypress.
- (create_and_show_popup_menu, create_and_show_dialog):
- Remove parameter down_on_keypress to popup_get_selection.
-
-2004-12-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * dispextern.h: Change HAVE_CARBON to MAC_OS.
- (struct glyph_string): Likewise.
-
- * emacs.c (main) [MAC_OS8]: Call mac_term_init instead of
- mac_initialize.
-
- * fileio.c (Fnext_read_file_uses_dialog_p, Fread_file_name):
- Change TARGET_API_MAC_CARBON to HAVE_CARBON.
-
- * fns.c (vector): Change MAC_OSX to MAC_OS.
-
- * frame.c (x_set_frame_parameters, x_report_frame_params)
- (x_set_fullscreen): Remove #ifndef HAVE_CARBON.
- (x_set_border_width, Vdefault_frame_scroll_bars):
- Change HAVE_CARBON to MAC_OS.
-
- * image.c [MAC_OS]: Include sys/stat.h.
- [MAC_OS && !MAC_OSX]: Include sys/param.h, ImageCompression.h, and
- QuickTimeComponents.h.
-
- * mac.c [!MAC_OSX] (mac_wait_next_event): Add extern.
- [!MAC_OSX] (select): Use mac_wait_next_event.
- [!MAC_OSX] (run_mac_command): Change EXEC_SUFFIXES to Vexec_suffixes.
- [!MAC_OSX] (select, run_mac_command): Change `#ifdef
- TARGET_API_MAC_CARBON' to `#if TARGET_API_MAC_CARBON'.
- (mac_clear_font_name_table): Add extern.
- (Fmac_clear_font_name_table): New defun.
- (syms_of_mac): Defsubr it.
- [MAC_OSX] (SELECT_POLLING_PERIOD_USEC): New define.
- [MAC_OSX] (select_and_poll_event): New function.
- [MAC_OSX] (sys_select): Use it.
- [MAC_OSX && SELECT_USE_CFSOCKET] (socket_callback): New function.
- [MAC_OSX && SELECT_USE_CFSOCKET]
- (SELECT_TIMEOUT_THRESHOLD_RUNLOOP, EVENT_CLASS_SOCK): New defines.
- [MAC_OSX] (sys_select) [SELECT_USE_CFSOCKET]: Use CFSocket and
- RunLoop for simultaneously monitoring two kinds of inputs, window
- events and process outputs, without periodically polling.
-
- * macfns.c (mac_initialized): Remove extern.
- (stricmp): Put in #if 0. All callers changed to use xstricmp in
- xfaces.c.
- (strnicmp): Decrement `n' at the end of each loop, not the beginning.
- (check_mac): Use the term "Mac native windows" instead of "Mac OS".
- (check_x_display_info, x_display_info_for_name): Sync with xfns.c.
- (mac_get_rdb_resource): New function (from w32reg.c).
- (x_get_string_resource): Use it.
- (install_window_handler): Add extern.
- (mac_window): New function.
- (Fx_create_frame): Use it instead of make_mac_frame.
- Set parameter for Qfullscreen. Call x_wm_set_size_hint.
- (Fx_open_connection, Fx_close_connection): New defuns.
- (syms_of_macfns): Defsubr them.
- (x_create_tip_frame) [TARGET_API_MAC_CARBON]:
- Add kWindowNoUpdatesAttribute to the window attribute.
- (x_create_tip_frame) [!TARGET_API_MAC_CARBON]: Use NewCWindow.
- (x_create_tip_frame): Don't call ShowWindow.
- (Fx_show_tip): Call ShowWindow.
- (Fx_file_dialog): Change `#ifdef TARGET_API_MAC_CARBON' to `#if
- TARGET_API_MAC_CARBON'.
- (mac_frame_parm_handlers): Set handlers for Qfullscreen.
- (syms_of_macfns) [MAC_OSX]: Initialize mac_in_use to 0.
-
- * macgui.h [!MAC_OSX]: Don't include Controls.h. Include Windows.h.
- (Window): Typedef to WindowPtr and move outside `#if
- TARGET_API_MAC_CARBON'.
- (XSizeHints): New struct.
-
- * macterm.c (x_update_begin, x_update_end)
- [TARGET_API_MAC_CARBON]: Disable screen updates during update of a
- frame.
- (x_draw_glyph_string_background, x_draw_glyph_string_foreground)
- [MAC_OS8]: Use XDrawImageString/XDrawImageString16.
- (construct_mouse_click): Put in #if 0.
- (x_check_fullscreen, x_check_fullscreen_move): Remove decls.
- (x_scroll_bar_create, x_scroll_bar_handle_click): Change `#ifdef
- TARGET_API_MAC_CARBON' to `#if TARGET_API_MAC_CARBON'.
- (activate_scroll_bars, deactivate_scroll_bars)
- [!TARGET_API_MAC_CARBON]: Use ActivateControl/DeactivateControl.
- (x_make_frame_visible) [TARGET_API_MAC_CARBON]: Reposition window
- if the position is neither user-specified nor program-specified.
- (x_free_frame_resources): Free size_hints.
- (x_wm_set_size_hint): Allocate size_hints if needed. Set size_hints.
- (mac_clear_font_name_table): New function.
- (mac_do_list_fonts): Initialize font_name_table if needed.
- (x_list_fonts): Don't initialize font_name_table. Add BLOCK_INPUT
- around mac_do_list_fonts.
- (mac_unload_font): New function.
- (x_load_font): Add BLOCK_INPUT around XLoadQueryFont.
- (init_mac_drag_n_drop, mac_do_receive_drag): Enclose declarations
- and definitions with #if TARGET_API_MAC_CARBON.
- [USE_CARBON_EVENTS] (mac_handle_window_event): Add decl.
- (install_window_handler): Add decl.
- (do_window_update): Add BeginUpdate/EndUpdate for the tooltip
- window. Use UpdateControls. Get the rectangle that should be
- updated and restrict the target of expose_frame to it.
- (do_grow_window): Set minimum height/width according to size_hints.
- (do_grow_window) [TARGET_API_MAC_CARBON]: Use ResizeWindow.
- (do_zoom_window): Don't use x_set_window_size.
- [USE_CARBON_EVENTS] (mac_handle_window_event): New function.
- (install_window_handler): New function.
- [!USE_CARBON_EVENTS] (mouse_region): New variable.
- [!USE_CARBON_EVENTS] (mac_wait_next_event): New function.
- (XTread_socket) [USE_CARBON_EVENTS]: Move call to
- GetEventDispatcherTarget inside BLOCK_INPUT.
- (XTread_socket) [!USE_CARBON_EVENTS]: Use mac_wait_next_event.
- Update mouse_region when mouse is moved.
- (make_mac_frame): Remove.
- (make_mac_terminal_frame): Put in #ifdef MAC_OS8.
- Initialize mouse pointer shapes. Change values of f->left_pos and
- f->top_pos. Don't use make_mac_frame. Use NewCWindow.
- Don't call ShowWindow.
- (mac_initialize_display_info) [MAC_OSX]: Create mac_id_name from
- Vinvocation_name and Vsystem_name.
- (mac_make_rdb): New function (from w32term.c).
- (mac_term_init): Use it. Add BLOCK_INPUT. Error if display has
- already been opened. Don't pass argument to
- mac_initialize_display_info. Don't set dpyinfo->height/width.
- Add entries to x_display_list and x_display_name_list.
- (x_delete_display): New function.
- (mac_initialize): Don't call mac_initialize_display_info.
- (syms_of_macterm) [!MAC_OSX]: Don't call Fprovide.
-
- * macterm.h (check_mac): Add extern.
- (struct mac_output): New member size_hints.
- (FRAME_SIZE_HINTS): New macro.
- (mac_unload_font): Add extern.
-
- * xdisp.c (expose_window, expose_frame): Remove kludges for Mac.
-
- * xfaces.c (clear_font_table) [MAC_OS]: Call mac_unload_font.
-
-2004-12-27 Richard M. Stallman <rms@gnu.org>
-
- * buffer.c (Fbuffer_disable_undo): Delete (move to simple.el).
- (syms_of_buffer): Don't defsubr it.
-
- * process.c (list_processes_1): Set undo_list instead
- of calling Fbuffer_disable_undo.
-
- * xdisp.c (single_display_spec_string_p): Rename from
- single_display_prop_string_p.
- (single_display_spec_intangible_p): Rename from
- single_display_prop_intangible_p.
- (handle_single_display_spec): Rename from handle_single_display_prop.
- Rewritten to be easier to understand.
-
- Change in load-history format. Functions now get (defun . NAME),
- and variables get just NAME.
-
- * data.c (Fdefalias): Use (defun . FN_NAME) in LOADHIST_ATTACH.
-
- * eval.c (Fdefun, Fdefmacro): Use (defun . FN_NAME) in LOADHIST_ATTACH.
- (Fdefvaralias, Fdefvar, Fdefconst): Use just SYM in LOADHIST_ATTACH.
- (Qdefvar): Var deleted.
- (syms_of_eval): Don't initialze it.
-
- * lread.c (syms_of_lread) <load-history>: Doc fix.
-
-2004-12-27 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (popup_get_selection): Pop down on C-g.
- (set_frame_menubar): Install translations for Lucid/Motif/Lesstif that
- pops down menu on C-g.
- (xdialog_show): If dialog popped down and no button in the dialog was
- pushed, call Fsignal to quit.
- (xmenu_show): In no toolkit version, if menu returns NO_SELECT call
- Fsignal to quit.
-
- * xfns.c (Fx_file_dialog): Motif/Lesstif version: Pop down on C-g.
-
- * gtkutil.c (xg_initialize): Install bindings for C-g so that
- dialogs and menus pop down.
-
-2004-12-27 Kenichi Handa <handa@m17n.org>
-
- * coding.c (code_convert_region): Fix calculation of `ratio'.
-
-2004-12-25 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (update_frame_tool_bar): Make the value of
- tool-bar-button-margin control margins of images in tool bar.
-
- * alloc.c (check_depth): New variable.
- (overrun_check_malloc, overrun_check_realloc): Only add
- overhead and write check pattern if check_depth is 1 (to handle
- recursive calls). Increase/decrease check_depth in entry/exit.
- (overrun_check_free): Only check for overhead if check_depth is 1.
- Increase/decrease check_depth in entry/exit.
-
-2004-12-23 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * keyboard.c (input_available_signal): Call SIGNAL_THREAD_CHECK
- before touching input_available_clear_time, to avoid accessing it
- from multiple threads.
-
-2004-12-23 Jason Rumney <jasonr@gnu.org>
-
- * image.c (__WIN32__) [HAVE_NTGUI]: Define for correct behaviour
- of JPEG library.
-
-2004-12-22 Richard M. Stallman <rms@gnu.org>
-
- * emacs.c (main): If batch mode, set Vundo_outer_limit to nil.
-
- * lisp.h (Vundo_outer_limit): Fix decl.
-
- * undo.c (Vundo_outer_limit): Replaces undo_outer_limit.
- Uses changed.
- (syms_of_undo): Initialize appropriately.
- (truncate_undo_list): If it's nil, there's no limit.
-
-2004-12-22 Kenichi Handa <handa@m17n.org>
-
- * xselect.c (Fx_get_cut_buffer_internal): Return a unibyte string.
-
-2004-12-21 Richard M. Stallman <rms@gnu.org>
-
- * eval.c (unwind_to_catch): Clear immediate_quit.
-
- * xdisp.c (get_next_display_element): Display codes 8a0 and 8ad
- specially as `\ ' and `\-'.
-
- * keyboard.c (kbd_buffer_store_event_hold):
- In the code for while-no-input, handle immediate_quit.
-
- * alloc.c (Fgarbage_collect): Update call to truncate_undo_list.
- Call that at the very start.
- (undo_limit, undo_strong_limit, undo_outer_limit): Move to undo.c.
- (syms_of_alloc): Don't define undo-limit,
- undo-strong-limit and undo-outer-limit here.
-
- * undo.c (truncate_undo_list): Return void.
- Take just one argument, the buffer.
- Make it current, and inhibit recursive GC.
- Access and update the undo list directly; return void.
- Refer to the undo...limit variables directly.
- Test undo_outer_limit only after counting the whole current command.
- When it's exceeded, call the function in undo-outer-limit-function.
- (undo_limit, undo_strong_limit, undo_outer_limit): From alloc.c.
- (Vundo_outer_limit_function): New variable.
- (syms_of_undo): Define undo-limit, undo-strong-limit
- and undo-outer-limit here, and undo-outer-limit-function.
- Doc fixes.
-
- * lisp.h (truncate_undo_list): Update decl.
-
-2004-12-21 Piet van Oostrum <piet@cs.uu.nl>
-
- * fileio.c (Fread_file_name): Delete duplicates in
- file-name-history when history_delete_duplicates is true.
-
-2004-12-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (mac_do_list_fonts): Fix memory leak
-
-2004-12-20 Richard M. Stallman <rms@gnu.org>
-
- * regex.c (re_match_2_internal) <symend, wordend>:
- Fix calls to UPDATE_SYNTAX_TABLE_FORWARD.
-
-2004-12-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (endif, x_font_name_to_mac_font_name):
- Use maccentraleurroman instead of maccentraleuropean
- (mac_c_string_match, mac_do_list_fonts): Speed up font search by
- quickly finding a specific font without needing regexps.
-
-2004-12-15 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * syssignal.h: Declare main_thread.
- (SIGNAL_THREAD_CHECK): New macro.
-
- * keyboard.c (input_available_signal): Move thread checking code
- to macro SIGNAL_THREAD_CHECK and call that macro.
- (interrupt_signal): Call SIGNAL_THREAD_CHECK.
-
- * alloc.c (uninterrupt_malloc): Move main_thread to emacs.c.
-
- * emacs.c: Define main_thread.
- (main): Initialize main_thread.
- (handle_USR1_signal, handle_USR2_signal, fatal_error_signal)
- (memory_warning_signal): Call SIGNAL_THREAD_CHECK.
-
- * floatfns.c (float_error): Call SIGNAL_THREAD_CHECK.
-
- * dispnew.c (window_change_signal): Call SIGNAL_THREAD_CHECK.
-
- * sysdep.c (select_alarm): Call SIGNAL_THREAD_CHECK.
-
- * process.c (send_process_trap, sigchld_handler):
- Call SIGNAL_THREAD_CHECK.
-
- * data.c (arith_error): Call SIGNAL_THREAD_CHECK.
-
- * atimer.c (alarm_signal_handler): Call SIGNAL_THREAD_CHECK.
-
- * xterm.c (xg_scroll_callback): Update XG_LAST_SB_DATA before
- returning when xg_ignore_gtk_scrollbar is true.
-
-2004-12-14 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (read_char): Save and restore echo_string when
- handling input method.
-
-2004-12-13 Richard M. Stallman <rms@gnu.org>
-
- * eval.c (syms_of_eval) <quit-flag>: Doc fix.
-
- * keyboard.c (Vthrow_on_input): New variable.
- (syms_of_keyboard): Defvar and initialize it.
- (kbd_buffer_store_event_hold): Handle Vthrow_on_input.
-
- * lisp.h (QUIT): Check for Vthrow_on_input.
- (Vthrow_on_input): Declare it.
-
-2004-12-13 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (set_iterator_to_next): Reset stop_charpos after display
- vector.
-
-2004-12-12 Richard M. Stallman <rms@gnu.org>
-
- * indent.c (Fvertical_motion): Call move_it_by_lines even if LINES = 0.
-
- * minibuf.c (Fall_completions): Add var `zero' and use it in loop.
- (Ftry_completion): Really use outer `zero'; eliminate inner one.
-
-2004-12-12 Kenichi Handa <handa@m17n.org>
-
- * term.c (encode_terminal_code): Fix previous change.
-
-2004-12-11 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keyboard.c (handle_async_input): Remove pthread mutex handling.
- (input_available_signal): Move pthread thingy to !SYNC_INPUT branch.
-
- * syntax.c (Fforward_word): Avoid non-idempotent side-effects
- in macro arguments.
-
- * minibuf.c (Ftry_completion, Fall_completions): Don't use
- XFASTINT blindly.
-
- * emacs.c (main, Fdump_emacs): Don't touch malloc hooks if SYNC_INPUT.
-
-2004-12-11 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * w32term.c (x_calc_absolute_position): Remove calculation of
- difference between inner and outer window. Don't subtract difference
- for left and top calculations.
-
- * xterm.c (x_calc_absolute_position): Don't subtract outer_pixel_diff
- for left and top calculations. Remove call to x_real_positions.
- [Bug report by Drew Adams in November.]
- (x_check_expected_move): Do not set change_gravity to 1 when calling
- x_set_offset.
-
-2004-12-08 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (get_next_display_element): Use `escape-glyph' for
- control chars and escaped octal codes.
- (Qescape_glyph): New variable.
- (syms_of_xdisp): Initialize it.
- (escape_glyph_face): New variable.
- (redisplay_window): Initialize it.
-
-2004-12-07 Paul Eggert <eggert@cs.ucla.edu>
-
- * image.c (our_fill_input_buffer, jpeg_load, CHECK_LIB_AVAILABLE)
- (init_image): Use 1 rather than TRUE. TRUE's not always defined.
-
-2004-12-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * emacs.c (Fdump_emacs): Add ! defined (SYSTEM_MALLOC) around
- reset_malloc_hooks.
-
- * keyboard.c (handle_async_input, input_available_signal):
- Add ! defined (SYSTEM_MALLOC) around thread code.
-
- * alloc.c: Add comment about the reason for (UN)BLOCK_INPUT_ALLOC.
-
-2004-12-07 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * eval.c (init_eval_once): Increase max_specpdl_size to 1000.
-
- * config.in: Regenerate.
-
-2004-12-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (Fx_popup_menu): Correct documentation about position.
- (xmenu_show): Do not call XTranslateCoordinates. Adjust position
- if not given by a mouse click to correspond with x-popup-menu
- documentation.
-
- * config.in: Regenerate.
-
- * gtkutil.c: Include signal.h and syssignal.h.
- (xg_get_file_name): Block and unblock __SIGRTMIN if defined.
-
- * alloc.c: If HAVE_GTK_AND_PTHREAD, include pthread.h,
- new variables main_thread and alloc_mutex,
- define (UN)BLOCK_INPUT_ALLOC to use alloc_mutex to protect
- emacs_blocked_* calls and only do (UN)BLOCK_INPUT in the main thread.
- If not HAVE_GTK_AND_PTHREAD, (UN)BLOCK_INPUT_ALLOC is the same
- as (UN)BLOCK_INPUT.
- (emacs_blocked_free, emacs_blocked_malloc)
- (emacs_blocked_realloc): Use (UN)BLOCK_INPUT_ALLOC.
- (uninterrupt_malloc): Initialize main_thread and alloc_mutex.
- (reset_malloc_hooks): New function.
-
- * lisp.h: Declare reset_malloc_hooks.
-
- * emacs.c (Fdump_emacs): Call reset_malloc_hooks.
-
- * keyboard.c: Conditionally include pthread.h.
- (handle_async_input, input_available_signalt): If not in the main
- thread, block signal, send signal to main thread and return.
-
- * gtkutil.c (xg_get_file_with_chooser): Handle local files only.
- Set current folder in file chooser if default_filename is a directory.
-
-2004-12-05 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * regex.c (GET_UNSIGNED_NUMBER): Signal an error when reaching the end.
- Remove redundant correctness checks.
- (regex_compile): Fix up error codes for \{..\} expressions.
-
-2004-12-05 Richard M. Stallman <rms@gnu.org>
-
- * regex.c (regex_compile): Fix end-of-pattern case for space.
-
-2004-12-03 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.h (cfstring_create_with_utf8_cstring): Add prototype.
- * mac.c (cfstring_create_with_utf8_cstring): Add to prevent
- crashes with invalid characters.
- * macmenu.c (add_menu_item): Use it.
- * image.c (image_load_quartz2d): Likewise.
- * macfns.c (x_set_name, x_set_title): Likewise.
- (Fx_file_dialog): Likewise. Use constant CFRefs instead of
- creating them each time for labels.
-
-2004-12-02 Richard M. Stallman <rms@gnu.org>
-
- * config.in (RE_TRANSLATE_P): If make_number is not a macro,
- don't use it here.
-
- * eval.c (Fcalled_interactively_p): Don't check INTERACTIVE.
- (interactive_p): Skip Scalled_interactively_p frames
- like Sinteractive_p frames.
- (unwind_to_catch): Clear handling_signal.
-
- * data.c (Fmake_variable_buffer_local): Doc fix.
- (Fmake_local_variable): Doc fix.
-
- * insdel.c (insert_from_string_before_markers)
- (insert_from_string): Don't modify buffer on empty insertion.
-
- * window.c (Fget_lru_window, Fget_largest_window): Doc fixes.
-
-2004-12-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macmenu.c (add_menu_item): Fallback on MacRoman if encoding
- menu text as UTF8 fails.
-
-2004-12-01 Kim F. Storm <storm@cua.dk>
-
- * alloc.c: Add commentary for last change.
- (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): New macros to handle
- sizeof(size_t) != 4.
- (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
- Use them. Also clear header and trailer of freed memory.
- (GC_STRING_OVERRUN_COOKIE_SIZE): Rename from GC_STRING_EXTRA.
- (string_overrun_cookie): Rename from string_overrun_pattern.
- (GC_STRING_EXTRA): Define from GC_STRING_OVERRUN_COOKIE_SIZE.
-
-2004-12-01 Andreas Schwab <schwab@suse.de>
-
- * lisp.h: Declare string_to_multibyte.
-
-2004-12-01 Kenichi Handa <handa@m17n.org>
-
- * w32console.c (w32con_write_glyphs): Decide coding here.
- Adjusted for the change of encode_terminal_code.
-
- * term.c (encode_terminal_code): Don't make it "static".
-
-2004-11-30 Kenichi Handa <handa@m17n.org>
-
- * term.c (encode_terminal_buf, encode_terminal_bufsize): New variables.
- (encode_terminal_code): Argument changed. Encode all
- characters at once, and return a pointer to the result of encoding.
- (write_glyphs): Decide coding here. Adjusted for the above change.
- (insert_glyphs): Likewise.
- (term_init): Initialize encode_terminal_bufsize to 0.
-
- * coding.c (Vcode_conversion_workbuf_name): New variable.
- (syms_of_coding): Initialize and staticpro it.
- (set_conversion_work_buffer): New function.
- (run_pre_post_conversion_on_str): Use it.
- (run_pre_write_conversin_on_c_str): New function.
-
- * coding.h (run_pre_write_conversin_on_c_str): Extern it.
-
-2004-11-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * keyboard.c: Don't undef SIGIO
- * s/darwin.h (NO_SOCK_SIGIO): Define NO_SOCK_SIGIO on carbon
- * Makefile.in (mac.o): Depend on blockinput.h and atimer.h.
- (macfns.o): Don't depend on ccl.h.
- * macfns.c (mac_frame_parm_handlers): Set handlers for
- Qleft_fringe and Qright_fringe.
- * macterm.c (mac_fill_rectangle_to_pixmap)
- (mac_draw_rectangle_to_pixmap, mac_copy_area_to_pixmap)
- (mac_copy_area_with_mask_to_pixmap, x_draw_image_foreground_1):
- Put in #if 0.
- (mac_scroll_area) [TARGET_API_MAC_CARBON]: Use ScrollWindowRect.
- (x_flush) [TARGET_API_MAC_CARBON]: Don't traverse frames.
- (XFlush) [TARGET_API_MAC_CARBON]: Define to an empty replacement.
- (x_draw_glyph_string_background, x_draw_glyph_string_foreground)
- [!MAC_OS8]: Added ifdef'd out code for os8. Don't use
- XDrawImageString. Always draw background and foreground separately.
- (x_draw_image_foreground): Use clipping instead of computing the
- intersection rectangle.
- (x_draw_image_glyph_string): Don't draw an image with mask to a
- pixmap.
- (x_redisplay_interface): Set flush_display_optional member to 0.
- (XTread_socket): Correctly reset the TEConverter
- object.
-
-2004-11-30 Kim F. Storm <storm@cua.dk>
-
- * lisp.h: New defines to enable buffer overrun checking.
- (GC_CHECK_STRING_OVERRUN, GC_CHECK_STRING_FREE_LIST)
- (XMALLOC_OVERRUN_CHECK, GC_CHECK_CONS_LIST): Add.
-
- * alloc.c: Add more checks for buffer overruns.
- (XMALLOC_OVERRUN_CHECK_SIZE, xmalloc_overrun_check_header)
- xmalloc_overrun_check_trailer, overrun_check_malloc)
- overrun_check_realloc, overrun_check_free): Add.
- (GC_STRING_EXTRA, string_overrun_pattern): Add.
- (check_sblock, allocate_string_data, compact_small_strings):
- Set and check string_overrun_pattern if GC_CHECK_STRING_OVERRUN.
- (check_cons_list): Condition on GC_CHECK_CONS_LIST.
- (check_string_free_list): Add.
- (allocate_string, sweep_strings): Call check_string_free_list.
-
- * emacs.c (malloc_initialize_hook): Don't free malloc_state_ptr if
- XMALLOC_OVERRUN_CHECK to avoid crash during load.
-
-2004-11-29 Kim F. Storm <storm@cua.dk>
-
- * fns.c (concat): Use SAFE_ALLOCA.
-
-2004-11-29 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * sysdep.c (emacs_write): Don't use QUIT.
-
-2004-11-29 Kenichi Handa <handa@m17n.org>
-
- * buffer.c (init_buffer): Set current_buffer->directory to a
- multibyte string made by string_to_multibyte.
-
- * emacs.c (init_cmdargs): Set unibyte strings in Vcommand_line_args.
-
-2004-11-27 Andreas Schwab <schwab@suse.de>
-
- * alloc.c (mark_stack): Call GC_MARK_SECONDARY_STACK if defined.
-
- * s/gnu-linux.h: Enable no-op gcpros on ia64.
- (GC_MARK_SECONDARY_STACK) [__ia64__]: Define.
-
- * filelock.c (lock_file_1): Call get_boot_time early.
- Increase buffer size.
-
-2004-11-27 Eli Zaretskii <eliz@gnu.org>
-
- * lisp.h (DECL_ALIGN): Define non-trivially only if NO_DECL_ALIGN
- is not defined.
-
-2004-11-27 Kim F. Storm <storm@cua.dk>
-
- * search.c (syms_of_search) <search-spaces-regexp>: Move 'doc:'
- marker out of doc string.
-
-2004-11-26 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * s/darwin.h (POSIX_SIGNALS): Undo the removal of 2002-08-25,
- which was not mentioned in the log.
-
-2004-11-26 Kim F. Storm <storm@cua.dk>
-
- * fringe.c (update_window_fringes): Prefer truncation bitmaps over
- angle bitmaps at top/bottom line.
-
- * xdisp.c: Undo recent changes for restoring saved_face_id. Instead,
- set it when it->method is set to next_element_from_display_vector.
- (setup_for_ellipsis): Add LEN argument. Callers changed.
- Set it->saved_face_id.
- (get_next_display_element): Use loop instead of recursion.
- Set it->saved_face_id. Combine duplicate code for ctr chars.
- (next_element_from_display_vector): Do not set it->saved_face_id.
- (next_element_from_ellipsis): Use setup_for_ellipsis.
-
-2004-11-26 Eli Zaretskii <eliz@gnu.org>
-
- * eval.c (Fdefvar): Declare pdl from last change as `volatile' to
- prevent compiler warnings.
-
-2004-11-25 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keyboard.c (command_loop_1): Print a message describing the key
- the user just pressed when this key has no binding.
-
- * sysdep.c (sys_signal): Don't use SA_RESTART if SYNC_INPUT is set.
- (emacs_open, emacs_read, emacs_write): Check QUIT when interrupted.
-
- * lread.c (readchar): Check QUIT when `getc' is interrupted.
-
-2004-11-24 Richard M. Stallman <rms@gnu.org>
-
- * coding.c (run_pre_post_conversion_on_str): Bind Qinhibit_read_only.
-
- * buffer.c (syms_of_buffer) <indicate-buffer-boundaries>: Doc fix.
-
-2004-11-24 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (move_it_in_display_line_to, display_line):
- Restore saved_face_id also when truncate-lines or hscrolled.
-
-2004-11-23 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
- x-use-old-gtk-file-dialog.
-
- * xfns.c: Define x_use_old_gtk_file_dialog.
- (syms_of_xfns): Rename use-old-gtk-file-dialog to x-... Move it
- outside ifdef USE_GTK.
-
-2004-11-23 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * coding.h (ENCODE_FILE, DECODE_FILE, ENCODE_SYSTEM, DECODE_SYSTEM):
- Don't use XFASTINT blindly.
-
- * config.in (RE_TRANSLATE_P): Don't use XFASTINT blindly.
-
- * indent.c (skip_invisible): Avoid non-idempotent side-effects
- in macro arguments.
-
- * keymap.c (Flookup_key): Check INTEGERP before XINT.
-
- * lread.c (oblookup): Don't use XFASTINT blindly.
-
- * window.c (Fset_window_scroll_bars): Don't use XINT if it isn't int.
- (decode_next_window_args, window_loop): Don't use XFASTINT blindly.
-
-2004-11-23 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P)
- (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Not if dpvec_index is zero.
-
- * xfaces.c (lookup_named_face): Add signal_p arg. Return -1 if
- signal_p is zero and face name is unknown.
- (Fx_list_fonts): Don't signal error in lookup_named_face.
- (Fface_font): Signal error in lookup_named_face.
- (ascii_face_of_lisp_face): Likewise.
-
- * dispextern.h (lookup_named_face): Fix prototype.
-
- * xdisp.c (handle_single_display_prop): Don't signal error in
- lookup_named_face for unknown fringe face name.
- (highlight_trailing_whitespace): Don't signal error in
- lookup_named_face if trailing-whitespace face unknown.
- (calc_line_height_property): Don't signal error in
- lookup_named_face if specified face name is unknown.
-
- * fringe.c (update_window_fringes): Show top row indicator if
- window has header-line. Don't show arrow at bob and eob
- if the boundary indicators are not used.
- (Fset_fringe_bitmap_face): Signal error in lookup_named_face.
-
- * window.c (set_window_buffer): Clear display_error_modiff.
-
-2004-11-22 Kim F. Storm <storm@cua.dk>
-
- * fringe.c (update_window_fringes): Provide sensible fall-back
- value for non-nil indicate-buffer-boundaries setting.
-
-2004-11-22 Markus Rost <rost@ias.edu>
-
- * minibuf.c (Fminibuffer_complete_and_exit): Fix previous change.
-
-2004-11-22 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * eval.c (Fdefvar): Warn when var is let-bound but globally void.
-
-2004-11-21 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (erase_phys_cursor): Clear hollow cursor inside TEXT_AREA.
-
- * xterm.c (x_clip_to_row): Add area arg. Callers changed.
- (x_draw_hollow_cursor, x_draw_bar_cursor): Clip to TEXT_AREA.
-
- * w32term.c (w32_clip_to_row): Add area arg. Callers changed.
- (x_draw_hollow_cursor, x_draw_bar_cursor): Clip to TEXT_AREA.
-
- * macterm.c (x_clip_to_row): Add area arg. Callers changed.
- (x_draw_hollow_cursor, x_draw_bar_cursor): Clip to TEXT_AREA.
-
- * xdisp.c (move_it_in_display_line_to, display_line):
- Restore saved_face_id if overflow-newline-into-fringe is enabled and
- line is continued before or in middle of element from display vector.
-
- * indent.c (Fvertical_motion): Fix last change. Use another
- method to detect if iterator moved too far ahead after reseat.
-
- * xdisp.c (IT_EXPAND_MATRIX_WIDTH): New macro. Do not
- expand matrix width for overflow in zero-width area.
- (append_glyph, append_composite_glyph, produce_image_glyph)
- (append_stretch_glyph): Use it to avoid loop in redisplay.
- (note_mode_line_or_margin_highlight): Don't let help-echo from
- string override help-echo from image map.
-
-2004-11-20 Luc Teirlinck <teirllm@auburn.edu>
-
- * fns.c (Fyes_or_no_p): Call Fread_from_minibuffer with extra argument.
- * callint.c (Fcall_interactively): Ditto.
-
-2004-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * minibuf.c (Fminibuffer_complete_and_exit):
- Fixup the case of the completed value, for case-indep completion.
-
-2004-11-20 Richard M. Stallman <rms@gnu.org>
-
- * lisp.h (Fread_from_minibuffer): Add arg in decl.
-
- * minibuf.c (read_minibuf): New arg KEEP_ALL. Callers changed.
- (Fread_from_minibuffer): New arg KEEP_ALL. Callers changed.
-
- * search.c (Vsearch_spaces_regexp):
- Rename from Vsearch_whitespace_regexp. All uses changed.
-
-2004-11-20 Thien-Thi Nguyen <ttn@gnu.org>
-
- * eval.c (init_eval_once): Increase `max_specpdl_size' to 650.
-
-2004-11-19 Richard M. Stallman <rms@gnu.org>
-
- * search.c (Vsearch_whitespace_regexp): New variable.
- (syms_of_search): Defvar it.
- (compile_pattern_1): Call re_set_whitespace_regexp with it.
- (search_buffer): No regexp is trivial if Vsearch_whitespace_regexp
- is non-nil.
- (struct regexp_cache): New element whitespace_regexp.
- (syms_of_search): Initialize whitespace_regexp elements.
- (compile_pattern): Compare whitespace_regexp elements.
- (compile_pattern_1): Set whitespace_regexp elements.
-
- * regex.c (regex_compile): Substitute whitespace_regexp
- for spaces, if it is nonzero.
- (whitespace_regexp): New variable.
- (re_set_whitespace_regexp): New function.
-
-2004-11-19 Kim F. Storm <storm@cua.dk>
-
- * indent.c (Fvertical_motion): Fix last change.
-
-2004-11-18 Kim F. Storm <storm@cua.dk>
-
- * indent.c (Fvertical_motion): Undo 2004-11-16 change.
- Instead, move back again if reseating moves too far ahead.
-
-2004-11-17 Luc Teirlinck <teirllm@auburn.edu>
-
- * xdisp.c (message3): Call clear_message.
-
-2004-11-17 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (erase_phys_cursor): Adjust cursor row visible height.
-
-2004-11-16 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_get_file_name): Typo in HAVE_GTK_FILE_SELECTION_NEW.
-
- * xmenu.c (x_menu_in_use): Remove.
- (x_menu_set_in_use): Also set popup_activated_flag.
-
- * xfns.c (Fx_file_dialog): Call popup_activated instead of
- x_menu_in_use. Call x_menu_set_in_use in Motif version also.
-
- * xterm.h (x_menu_in_use): Remove.
-
-2004-11-16 Richard M. Stallman <rms@gnu.org>
-
- * keymap.c (Fmap_keymap): New arg SORT-FIRST.
- Use map-keymap-internal to implement that.
-
- * indent.c (Fvertical_motion): In batch mode, use vmotion directly.
-
-2004-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xdisp.c (get_glyph_string_clip_rect, init_glyph_string): Check it's
- a window before using XWINDOW.
-
- * window.c (make_window, Fselect_window, make_dummy_parent)
- (save_window_save):
- * frame.c (make_frame):
- * fns.c (concat): Avoid side-effects inside XSETFASTINT's arguments.
-
- * lisp.h (NILP): Use EQ rather than XFASTINT.
-
-2004-11-16 Kim F. Storm <storm@cua.dk>
-
- * fringe.c (Fdefine_fringe_bitmap): Always set 'h'. Simplify.
-
- * indent.c (Fvertical_motion): Fix last change. Only reseat when
- moving backwards.
-
-2004-11-16 Luc Teirlinck <teirllm@auburn.edu>
-
- * dispextern.h: Extern reseat_at_previous_visible_line_start.
-
-2004-11-16 Kenichi Handa <handa@m17n.org>
-
- * xdisp.c (display_mode_element): Fix previous change (calculate
- end position of substring to display correctly).
-
-2004-11-16 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (Fposn_at_point): Remove extra */ after doc string.
- Reported by Andrew M. Scott.
-
-2004-11-15 Kim F. Storm <storm@cua.dk>
-
- * fns.c (Fsafe_plist_get): New defun.
- (syms_of_fns): Defsubr it.
-
- * lisp.h (Fsafe_plist_get): Add EXFUN.
-
- * xdisp.c (store_mode_line_string, produce_stretch_glyph):
- Use Fsafe_plist_get.
- (note_mode_line_or_margin_highlight, note_mouse_highlight):
- Fix image map element parsing. Use Fsafe_plist_get.
-
-2004-11-15 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (get_next_display_element): Fix previous change.
-
-2004-11-14 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * window.c (shrink_windows): Handle special case of one window left
- when trying to shrink the final reminder. Grow windows if
- total_removed is less than total_shrink.
-
- * xmenu.c (pop_down_menu): Remove global variable current_menu,
- extract pointer from arg with XSAVE_VALUE.
- (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
- Construct arg to record_unwind_protect with make_save_value.
-
-2004-11-13 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (reseat_at_previous_visible_line_start): No longer static.
- (get_next_display_element): Fix previous change to apply only to \n.
-
- * indent.c (Fvertical_motion): Scan to PT from start of line to
- make iterator consistent.
-
- * minibuf.c (syms_of_minibuf) <completion-ignore-case>: Doc fix.
-
-2004-11-14 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (pop_down_file_dialog): Add BLOCK_INPUT.
-
- * xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
- Record unwind with clean_up_file_dialog.
-
- * xterm.h (x_menu_in_use, x_menu_set_in_use, x_menu_wait_for_event):
- Declare.
-
- * xmenu.c (x_menu_in_use, x_menu_set_in_use): New functions.
-
-2004-11-13 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_file_sel_ok, xg_file_sel_cancel)
- (xg_file_sel_destroy): Remove.
- (xg_file_response_cb, pop_down_file_dialog)
- (xg_get_file_name_from_chooser, xg_get_file_name_from_selector):
- New functions.
- (xg_get_file_with_chooser, xg_get_file_with_selection):
- Take new arg func, set it to xg_get_file_name_from_chooser/selector.
- Move common code to xg_get_file_name. Return widget created.
- (xg_get_file_name): Set name, transient for, modal and destroy
- with parent here. Connect response signal to xg_file_response_cb,
- connect delete-event to gtk_true. Record pop_down_file_dialog
- for unwind. Do event loop and call x_menu_wait_for_event in loop.
- (xg_create_widget): Make dialogs modal.
-
- * xmenu.c (unuse_menu_items, pop_down_menu): Arg is of type
- Lisp_Object.
- (popup_get_selection): Move unwind protect ...
- (create_and_show_popup_menu, create_and_show_dialog): ... to here.
- Move destroy of widget to pop_down_menu.
- (popup_widget_loop): Move unwind protect ...
- (create_and_show_popup_menu, create_and_show_dialog): ... to here.
- Move destroy of widget to pop_down_menu.
- (pop_down_menu): BLOCK_INPUT and destroy widget/window.
- (xmenu_show): Record unwind pop_down_menu. Move XMenuDestroy,
- x_mouse_leave and grabbed = 0 to pop_down_menu.
-
-2004-11-13 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (make_cursor_line_fully_visible_p): New variable.
- (syms_of_xdisp): DEFVAR_BOOL it.
- (make_cursor_line_fully_visible, try_cursor_movement)
- (try_window_id): Use it.
-
-2004-11-12 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (struct glyph_row): New member extra_line_spacing.
- (struct it): New member max_extra_line_spacing.
- (MR_PARTIALLY_VISIBLE, MR_PARTIALLY_VISIBLE_AT_TOP)
- (MR_PARTIALLY_VISIBLE_AT_BOTTOM): New helper macros.
- (MATRIX_ROW_PARTIALLY_VISIBLE_P): Fix to return false if invisible
- part of last line is only extra line spacing (so the text on the
- line is fully visible). Use helper macros.
- Add W arg (to use them). All callers changed.
- (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P)
- (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): Use helper macros.
-
- * window.c (window_scroll_pixel_based, Frecenter):
- Use move_it_vertically_backward directly.
- (Frecenter): Fix calculation of new start pos for negative arg.
- Before, the new start pos was sometimes chosen too far back, so
- the last line became only partially visible, and thus would be
- either only semi-visible or automatically scrolled to the middle
- of the window by redisplay.
-
- * xdisp.c (init_iterator): Clear it.max_extra_line_spacing.
- (move_it_vertically_backward): Don't recure to move further back.
- (move_it_vertically): Remove superfluous condition.
- (move_it_by_lines): Clear last_height when moved 0 lines.
- (resize_mini_window): Use it.max_extra_line_spacing.
- (display_tool_bar_line): Clear row->extra_line_spacing.
- (try_scrolling): Use move_it_vertically_backward directly.
- (redisplay_window): Likewise.
- (compute_line_metrics): Set row->extra_line_spacing.
- (display_line, display_string): Likewise.
- (x_produce_glyphs): Update it->max_extra_line_spacing.
-
- * xmenu.c (pop_down_menu): Return nil.
-
-2004-11-12 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (x_menu_wait_for_event): New function.
- (popup_get_selection, popup_widget_loop): Call x_menu_wait_for_event
- to handle timers.
- (popup_widget_loop): Add argument do_timers.
- (create_and_show_popup_menu, create_and_show_dialog): Pass 1 for
- do_timers to popup_widget_loop.
- (xmenu_show): Call XMenuActivateSetWaitFunction so that
- x_menu_wait_for_event is called by XMenuActivate.
- (create_and_show_popup_menu): Pass 1 for do_timers to
- popup_get_selection.
- (pop_down_menu): New function.
- (popup_get_selection, popup_widget_loop): Unwind protect to
- pop_down_menu.
- (popup_widget_loop): Add argument widget.
- (create_and_show_popup_menu, create_and_show_dialog): Pass new
- argument widget to popup_widget_loop.
-
-2004-11-10 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keymap.c (Fkeymap_prompt): Accept symbol keymaps.
-
-2004-11-09 Kim F. Storm <storm@cua.dk>
-
- * xselect.c: Include <sys/types.h> and <unistd.h> (for getpid).
- Fix various comments referring to XEvents instead of input events.
- (x_queue_event): Fix format strings.
- (x_stop_queuing_selection_requests): Likewise.
-
- * xdisp.c (produce_image_glyph): Remove unused variable 'face_ascent'.
- (pint2hrstr): Add extra braces to silence compiler.
-
- * print.c (print_object): Fix format string.
-
- * lread.c (read1): Fix next_char matching.
-
- * lisp.h (Fdelete): Add EXFUN.
- (replace_range_2): Add prototype.
-
- * keyboard.c (read_avail_input): Remove unused variable 'discard'.
-
- * intervals.h (NULL_INTERVAL_P): Add separate version when
- ENABLE_CHECKING is not defined to silence compiler.
- (compare_string_intervals): Add prototype.
-
- * fringe.c (destroy_fringe_bitmap): Fix return type.
- (Ffringe_bitmaps_at_pos): Remove unused var 'old_buffer'.
-
- * emacs.c (Fdump_emacs): Fix format string.
-
- * doc.c: Include <ctype.h>.
- (Fsubstitute_command_keys): Remove unused variable 'firstkey'.
-
- * data.c (store_symval_forwarding): Remove unused variables.
-
- * callint.c (Fcall_interactively): Remove unused variable 'funcar'.
-
-2004-11-09 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * Makefile.in (stamp-oldxmenu): If HAVE_GTK, don't add dependencies
- to ${OLDXMENU}.
-
-2004-11-09 Kim F. Storm <storm@cua.dk>
-
- * process.c (Fmake_network_process): Remove kludge for interrupted
- connects on BSD. If connect is interrupted, just close socket and
- start over rather than sleeping and retry with same socket.
-
-2004-11-09 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * .cvsignore: Add buildobj.lst.
-
- * doc.c: New variable Vbuild_files.
- (Fsnarf_documentation): If Vbuild_files is nil, populate it with
- file names from buildobj.lst. Only attach docstrings from files
- that are in Vbuild_files.
- (syms_of_doc): Defvar Vbuild_files.
-
- * Makefile.in (SOME_MACHINE_OBJECTS): Add fringe.o, image.o
- and w32*.o.
- (temacs${EXEEXT}): Generate buildobj.lst when temacs is linked.
- (mostlyclean): Rm buildobj.lst
-
- * makefile.w32-in ($(TEMACS)): Generate buildobj.lst when temacs
- is linked.
-
-2004-11-09 Kim F. Storm <storm@cua.dk>
-
- * fringe.c (update_window_fringes): Update fringe bitmaps if
- cur and row ends_at_zv_p differs. If bitmaps of a row is updated,
- also update previous row to get rid of misc. artifacts.
-
-2004-11-08 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (fast_find_position): Fix start pos if header line present.
- (note_mouse_highlight): Clear mouse face if we move out of text area.
-
-2004-11-08 Eli Zaretskii <eliz@gnu.org>
-
- * editfns.c: Move #include "systime.h" before <sys/resource.h>.
- Don't include <sys/time.h> explicitly.
- Include <stdio.h> unconditionally, not just on MacOS.
-
-2004-11-08 Kenichi Handa <handa@m17n.org>
-
- * fontset.c (fontset_pattern_regexp): Cancel my previous change;
- don't pay attention to '\' before '*'.
- (fontset_pattern_regexp): Change the meaning of the second arg.
- (Fnew_fontset): Call fs_query_fontset, not Fquery_fontset.
- (check_fontset_name): Try NAME as literal at first, and if it
- failes, try NAME as pattern.
-
-2004-11-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * emacs.c (Fdump_emacs): Only output warning on GNU/Linux.
-
-2004-11-07 Andreas Schwab <schwab@suse.de>
-
- * lisp.h (Fmsdos_downcase_filename): Declare.
- * dired.c (Fmsdos_downcase_filename): Don't declare here.
- * fileio.c: Likewise.
-
-2004-11-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * dosfns.c (Fdos_memget, Fdos_memput): Use integer variable offs in
- comparisons with integers instead of Lisp_Object address.
- (Fmsdos_set_keyboard): Declare argument allkeys.
-
- * msdos.c (IT_set_frame_parameters): Use EQ, not ==, for Lisp_Object:s.
-
- * dired.c (Fmsdos_downcase_filename): Declare extern on MSDOS to avoid
- int/Lisp_Object mixup.
-
- * fileio.c: Ditto.
-
-2004-11-06 Steven Tamm <steventamm@mac.com>
-
- * editfns.c: Need to include sys/time.h before resource.h on darwin.
-
-2004-11-06 Richard M. Stallman <rms@gnu.org>
-
- * callint.c (Fcall_interactively): Avoid reusing EVENT for other data.
-
- * xfaces.c (merge_named_face): GCPRO the face_name in the
- named_merge_point struct that we make.
- (merge_face_heights): Eliminate GCPRO arg. All callers changed.
-
- * keyboard.c (command_loop_1): Change Vtransient_mark_mode
- before deciding whether to inactivate mark.
-
-2004-11-06 Lars Brinkhoff <lars@nocrew.org>
-
- * config.in: Regenerate (add HAVE_GETRUSAGE).
- * editfns.c (Fget_internal_run_time): New function.
- (syms_of_data): Defsubr it.
- * fns.c (sxhash): As far as possible, merge calculation of
- hash code for symbols and strings.
-
-2004-11-06 Eli Zaretskii <eliz@gnu.org>
-
- * frame.c (syms_of_frame): Fix the example in the doc string.
-
-2004-11-06 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * eval.c (Feval): Remove check for INPUT_BLOCKED_P.
-
- * xmenu.c (popup_get_selection, create_and_show_popup_menu)
- (create_and_show_dialog): Revert change from 2004-10-31.
-
-2004-11-05 Luc Teirlinck <teirllm@auburn.edu>
-
- * macros.c (syms_of_macros) <defining-kbd-macro>: Doc fix.
-
-2004-11-05 Kim F. Storm <storm@cua.dk>
-
- * print.c (print_object): Print Lisp_Misc_Save_Value objects.
-
- * fileio.c (Ffile_modes): Doc fix.
- (auto_save_1): Check for Ffile_modes nil value.
-
-2004-11-05 Kim F. Storm <storm@cua.dk>
-
- * xselect.c (struct selection_event_queue, selection_queue)
- (x_queue_selection_requests, x_queue_event)
- (x_start_queuing_selection_requests)
- (x_stop_queuing_selection_requests): Add new queue for selection
- input events to replace previous XEvent queue in xterm.c.
- (queue_selection_requests_unwind): Adapt to new queue.
- (x_reply_selection_request): Adapt to new queue.
- Unexpect wait_object in case of x errors (memory leak).
- (x_handle_selection_request, x_handle_selection_clear): Make static.
- (x_handle_selection_event): New function. May queue selection events.
- (wait_for_property_change_unwind): Use save_value instead of cons.
- Clear property_change_reply_object.
- (wait_for_property_change): Abort if already waiting.
- Use save_value instead of cons for unwind data.
- (x_handle_property_notify): Skip events already arrived, but don't
- free them, as "arrived" field is checked by wait_for_property_change,
- and it will be freed by unwind or explicit unexpect_property_change.
- (x_get_foreign_selection): Add to new queue.
- (receive_incremental_selection): Don't unexpect wait_object when done
- as it has already been freed by previous wait_for_property_change.
-
- * xterm.h (x_start_queuing_selection_requests)
- (x_stop_queuing_selection_requests, x_handle_selection_request)
- (x_handle_selection_clear): Remove prototypes.
- (x_handle_selection_event): Add prototype.
-
- * xterm.c (handle_one_xevent): Don't queue X selection events
- here, it may be too late if we start queuing after we have already
- stored some selection events into the kbd buffer.
- (struct selection_event_queue, queue, x_queue_selection_requests)
- (x_queue_event, x_unqueue_events, x_start_queuing_selection_requests)
- (x_stop_queuing_selection_requests): Remove/move to xselect.c.
- (x_catch_errors_unwind): Block input around final XSync.
-
- * keyboard.h (kbd_buffer_unget_event): Add prototype.
-
- * keyboard.c (kbd_buffer_store_event_hold): Remove obsolete code.
- (kbd_buffer_unget_event): New function.
- (kbd_buffer_get_event, swallow_events): Combine SELECTION events
- and use x_handle_selection_event.
- (mark_kboards): Don't mark x and y of SELECTION_CLEAR_EVENT.
-
-2004-11-05 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xselect.c (TRACE3): New debug macro.
- (x_reply_selection_request): Use it.
- (receive_incremental_selection): In call to TRACE0, the name of
- a symbol is in xname.
-
-2004-11-05 Kim F. Storm <storm@cua.dk>
-
- * fontset.c (fontset_pattern_regexp): Use unsigned char.
-
-2004-11-04 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * fileio.c (Fnext_read_file_uses_dialog_p): New function.
-
- * gtkutil.h (use_old_gtk_file_dialog): Declare.
-
- * gtkutil.c: Make use_old_gtk_file_dialog non-static.
- (xg_initialize): Move DEFVAR_BOOL for use_old_gtk_file_dialog ...
- * xfns.c (syms_of_xfns): ... to here.
-
- * gtkutil.c (xg_get_file_with_chooser): Expand DEFAULT_FILENAME if
- it doesn't start with /.
-
-2004-11-04 Kenichi Handa <handa@m17n.org>
-
- * fontset.c (fontset_pattern_regexp): If '*' is preceded by '\',
- treat it as a literal character.
-
-2004-11-03 Kim F. Storm <storm@cua.dk>
-
- * .gdbinit (ppt): New function.
-
-2004-11-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_window_to_scroll_bar): Only call
- xg_get_scroll_id_for_window if toolkit scroll bars are used.
-
- * gtkutil.c (xg_get_file_with_chooser): Use GTK_STOCK_OK instead
- of save.
-
-2004-11-02 Andreas Schwab <schwab@suse.de>
-
- * window.c (Fscroll_right): Fix last change.
-
-2004-11-02 Kim F. Storm <storm@cua.dk>
-
- * Makefile.in (callproc.o): Depend on blockinput.h, atimer.h, systime.h.
-
-2004-11-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * callproc.c (Fcall_process): Block input around vfork.
-
-2004-11-02 Kim F. Storm <storm@cua.dk>
-
- * eval.c (Fcalled_interactively_p): Rename from Fcall_interactive_p.
- (syms_of_eval): Defsubr it.
-
-2004-11-02 Richard M. Stallman <rms@gnu.org>
-
- * insdel.c (replace_range_2): New function.
-
- * casefiddle.c (casify_region): Handle changes in byte-length
- using replace_range_2.
-
- * emacs.c (USAGE3): Delete --horizontal-scroll-bars, -hb.
-
- * xdisp.c (back_to_previous_visible_line_start):
- Subtract 1 from pos when checking previous newline for invisibility.
-
- * window.c (window_scroll_pixel_based): Update preserve_y
- for header line if any.
- (Fscroll_left, Fscroll_right): Don't call interactive_p;
- use a new second argument instead.
-
- * eval.c (Fcall_interactive_p): New function.
- (interactive_p): Don't test INTERACTIVE here.
- (Finteractive_p): Doc fix.
-
- * eval.c (Feval): Abort if INPUT_BLOCKED_P.
-
-2004-11-02 KOBAYASHI Yasuhiro <kobayays@otsukakj.co.jp>
-
- * w32fns.c (w32_font_match): Use fast_string_match_ignore_case for
- comparing font names.
-
-2004-11-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * fileio.c (Fread_file_name): Pass Qt as fifth parameter to
- Fx_file_dialog if only directories should be read.
-
- * lisp.h: Fx_file_dialog takes 5 parameters.
-
- * xfns.c (Fx_file_dialog): Both Motif and GTK version:
- Add parameter only_dir_p.
- In Motif version, don't put DEFAULT_FILENAME in filter part of the
- dialog, just text field part. Do not add DEFAULT_FILENAME
- to list of files if it isn't there.
- In GTK version, pass only_dir_p parameter to xg_get_file_name.
-
- * macfns.c (Fx_file_dialog): Add parameter only_dir_p.
- Check only_dir_p instead of comparing prompt to "Dired". When using
- a save dialog, add option kNavDontConfirmReplacement, change title
- to "Enter name", change text for save button to "Ok".
-
- * w32fns.c (Fx_file_dialog): Add parameter only_dir_p.
- Check only_dir_p instead of comparing prompt to "Dired".
-
- * gtkutil.c (xg_get_file_with_chooser, xg_get_file_with_selection):
- New functions, only defined ifdef HAVE_GTK_FILE_CHOOSER_DIALOG_NEW
- and HAVE_GTK_FILE_SELECTION_NEW respectively.
- (xg_get_file_name): Add parameter only_dir_p.
- Call xg_get_file_with_chooser or xg_get_file_with_selection
- depending on HAVE_GTK_FILE* and the value of use_old_gtk_file_dialog.
- (xg_initialize): New DEFVAR_BOOL use_old_gtk_file_dialog.
-
- * gtkutil.h (xg_get_file_name): Add parameter only_dir_p.
-
- * config.in: Rebuild (added HAVE_GTK_FILE_*).
-
-2004-11-01 Kim F. Storm <storm@cua.dk>
-
- * process.c (connect_wait_mask, num_pending_connects):
- Only declare and use them if NON_BLOCKING_CONNECT is defined.
- (init_process): Initialize them if NON_BLOCKING_CONNECT defined.
- (IF_NON_BLOCKING_CONNECT): New helper macro.
- (wait_reading_process_output): Only declare and use local vars
- Connecting and check_connect when NON_BLOCKING_CONNECT is defined.
-
-2004-11-01 Andy Petrusenco <Igrek@star-sw.com> (tiny change)
-
- * w32term.c (x_scroll_run): Delete region objects after use.
-
-2004-10-31 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c: Add prototypes for forward function declarations.
- (popup_get_selection): Remove parameter do_timers, remove call to
- timer_check.
- (create_and_show_popup_menu, create_and_show_dialog):
- Remove parameter do_timers from call to popup_get_selection.
-
- * xdisp.c (update_tool_bar): Pass a copy of f->tool_bar_items to
- tool_bar_items and assign the result to f->tool_bar_items if
- not equal. Move BLOCK/UNBLOCK_INPUT from around call to
- tool_bar_items to assignment of result.
-
- * atimer.c (alarm_signal_handler): Do not call set_alarm if
- pending_atimers is non-zero.
-
-2004-10-31 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (margin_glyphs_to_reserve): Don't use ncols_scale_factor.
-
-2004-10-28 Will <will@glozer.net>
-
- * macterm.c: Allow user to assign key modifiers to the Mac Option
- key via a 'mac-option-modifier' variable.
-
-2004-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xselect.c (Vx_lost_selection_functions, Vx_sent_selection_functions):
- Rename from Vx_lost_selection_hooks and Vx_sent_selection_hooks.
- (x_handle_selection_request, x_handle_selection_clear)
- (x_clear_frame_selections, syms_of_xselect): Adjust accordingly.
-
-2004-10-28 Richard M. Stallman <rms@gnu.org>
-
- * w32fns.c (Fx_server_vendor, Fx_server_version): Doc fixes.
-
- * xfns.c (Fx_server_vendor, Fx_server_version): Doc fixes.
-
-2004-10-27 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * syntax.c (scan_sexps_forward): Give precedence to a 2-char
- comment-starter over a 1-char one.
-
-2004-10-27 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (get_next_display_element): In mode lines,
- treat newline and tab like other control characters.
-
- * editfns.c (Fmessage): Doc fix.
-
- * indent.c (vmotion): When moving up, check the newline before.
- Make prevline an int, not a Lisp_Object.
-
-2004-10-27 Kim F. Storm <storm@cua.dk>
-
- * editfns.c (Fformat): Allocate discarded table with SAFE_ALLOCA.
- Only allocate info and discarded tables once.
-
- * lisp.h (USE_SAFE_ALLOCA): Add and init sa_must_free integer.
- (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Increment it when malloc is used.
- (SAFE_FREE): Test it to determine if we need to unwind to free.
- Remove size arg. All users changed.
- (SAFE_FREE_LISP) Remove. All users changed to use SAFE_FREE.
-
-2004-10-26 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c: Put empty line between comment and function body.
- (xg_destroy_widgets): Rename from remove_from_container.
- Just destroy all widgets in list. Argument wcont removed.
- (xg_update_menubar, xg_update_submenu): Call xg_destroy_widgets
- instead of remove_from_container.
- (xg_display_close, xg_create_tool_bar, update_frame_tool_bar)
- (free_frame_tool_bar): Add comment.
-
- * xfns.c (xic_create_xfontset): Check that FRAME_XIC_BASE_FONTNAME
- is not NULL before strcmp.
-
-2004-10-26 Kim F. Storm <storm@cua.dk>
-
- * callint.c (Fcall_interactively): Add 'U' code to get the
- up-event discarded by a previous 'k' or 'K' argument.
-
-2004-10-26 David Kastrup <dak@gnu.org>
-
- * buffer.c (syms_of_buffer): Fix a few typos.
-
-2004-10-26 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xsmfns.c: Put empty line between comment and function body.
- Use two spaces before comment end.
-
-2004-10-25 Kenichi Handa <handa@m17n.org>
-
- * fontset.c (fontset_pattern_regexp): Optimize for the case that
- PATTERN is full XLFD.
-
-2004-10-24 Kenichi Handa <handa@m17n.org>
-
- * regex.h (enum reg_errcode_t): New value REG_ERANGEX.
-
- * regex.c (re_error_msgid): Add an entry for REG_ERANGEX.
- (regex_compile): Return REG_ERANGEX if appropriate.
-
-2004-10-22 Kenichi Handa <handa@m17n.org>
-
- * editfns.c (Ftranslate_region_internal): New function.
- (syms_of_editfns): Defsubr it.
-
-2004-10-22 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
-
-2004-10-21 K\e,Aa\e(Broly L\e$,1 q\e(Brentey <lorentey@elte.hu>
-
- * xterm.h (x_output): New member `xic_base_fontname'.
- (FRAME_XIC_BASE_FONTNAME): New macro.
- (xic_free_xfontset): Declare.
-
- * xfns.c (xic_create_xfontset): Share fontsets between frames
- based on base_fontname.
- (xic_free_xfontset): New function.
- (free_frame_xic): Use it.
- (xic_set_xfontset): Ditto.
-
- * xterm.c (xim_destroy_callback): Ditto.
-
-2004-10-20 B. Anyos <banyos@freemail.hu> (tiny change)
-
- * w32term.c (x_draw_glyph_string): Use overline_color for overlines.
-
-2004-10-20 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.h (XSync): If USE_GTK, define XSync as process_all and then
- XSync.
-
- * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
- New variables and constant.
- (main): Calculate heap_bss_diff. If we are dumping and the
- heap_bss_diff is greater than MAX_HEAP_BSS_DIFF, set PER_LINUX32
- and exec ourself again.
- (Fdump_emacs): If heap_bss_diff is greater than MAX_HEAP_BSS_DIFF
- print a warning.
-
- * lastfile.c: Make my_endbss and my_endbss_static available on all
- platforms.
-
- * Makefile.in (RUN_TEMACS): Remove @SETARCH@.
- * config.in (HAVE_PERSONALITY_LINUX32): Regenerate.
-
-2004-10-19 Luc Teirlinck <teirllm@auburn.edu>
-
- * data.c (Flocal_variable_if_set_p): Doc fix.
-
-2004-10-19 Jason Rumney <jasonr@gnu.org>
-
- * w32.c (init_environment): Set emacs_dir correctly when running
- emacs from the build directory.
-
-2004-10-19 Richard M. Stallman <rms@gnu.org>
-
- * editfns.c (Fdelete_and_extract_region):
- If region is empty, return null string.
-
-2004-10-19 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.h (xg_update_scrollbar_pos): Remove arguments real_left
- and canon_width.
- (xg_frame_cleared): Remove.
-
- * gtkutil.c (xg_frame_cleared, xg_fixed_handle_expose)
- (xg_find_top_left_in_fixed): Remove.
- (xg_create_scroll_bar): Put an event box widget between
- the scroll bar widget and the edit widget.
- (xg_show_scroll_bar): Show the parent widget (the event box).
- (xg_remove_scroll_bar): Destroy parent (the event box) also.
- (xg_update_scrollbar_pos): Remove arguments real_left and canon_width.
- Move the parent (the event box) widget inside the fixed widget.
- Move window clear to xterm.c.
-
- * gtkutil.h (xg_frame_cleared): Remove.
-
- * xterm.c (x_clear_frame): Remove call to xg_frame_cleared
- (x_scroll_bar_create, XTset_vertical_scroll_bar):
- Remove arguments left and width to xg_update_scrollbar_pos.
- (XTset_vertical_scroll_bar): Do x_clear_area for USE_GTK also.
-
-2004-10-19 Kenichi Handa <handa@m17n.org>
-
- * xdisp.c (display_mode_element): Fix display of wide chars.
-
-2004-10-18 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_update_scrollbar_pos): Change XClearWindow to
- gdk_window_clear and move gdk_window_process_all_updates after
- clear so events are sent to the X server in correct order.
-
-2004-10-18 Kenichi Handa <handa@m17n.org>
-
- * fontset.c (fs_load_font): Use fast_string_match_ignore_case for
- comparing font names.
- (fs_query_fontset): Use fast_string_match for comparing fontset names.
- (list_fontsets): Likewise.
-
- * search.c (fast_string_match_ignore_case): New function.
-
- * lisp.h (fast_string_match_ignore_case): Extern it.
-
-2004-10-17 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (overlay_arrow_at_row): Return overlay string rather
- than bitmap if there is not left fringe.
- (get_overlay_arrow_glyph_row): Also used on windows system.
- (display_line): Display overlay string if no left fringe.
-
-2004-10-16 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (w32_font_match): Encode font name being matched.
-
-2004-10-16 Richard M. Stallman <rms@gnu.org>
-
- * window.c (Fspecial_display_p): Doc fix.
-
-2004-10-15 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * doc.c (Fsubstitute_command_keys): Fix remap-handling.
- Don't ignore menus, because where-is-internal already does it for us.
-
-2004-10-15 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (redisplay_window): Only update fringes and vertical
- border on window frames.
-
-2004-10-14 Andreas Schwab <schwab@suse.de>
-
- * m/ia64.h (DATA_SEG_BITS): Don't define.
-
-2004-10-14 Kim F. Storm <storm@cua.dk>
-
- * xterm.h: Include Xutil.h after keysym.h to work around bug
- in some X versions.
-
-2004-10-13 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * fns.c (map_char_table): Add missing gcpros.
-
-2004-10-13 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keymap.c (get_keymap): An autoload form is not a keymap.
-
- * textprop.c (syms_of_textprop): Make `syntax-table' nonsticky.
-
-2004-10-13 Kim F. Storm <storm@cua.dk>
-
- * callproc.c (Fcall_process): Simplify handling of display arg.
- Resume `display_on_the_fly' once a coding system is determined.
-
- * xdisp.c (redisplay_preserve_echo_area): Fix last change.
-
-2004-10-12 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (redisplay_preserve_echo_area): Flush display in case
- caller, such as call-process, is not going to poll for input.
- (calc_line_height_property): Handle case where it->object is nil.
-
- * xterm.c (x_redisplay_interface): Fix flush_display_optional.
-
-2004-10-12 Kenichi Handa <handa@m17n.org>
-
- * xdisp.c (get_next_display_element):
- If unibyte_display_via_language_environment is zero, display 8-bit
- chars in octal in unibyte buffer.
-
-2004-10-12 Kim F. Storm <storm@cua.dk>
-
- * doc.c (Fsubstitute_command_keys): Ignore remappings unless there
- are no ordinary bindings.
-
-2004-10-11 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (syms_of_xfns): Defsubr x-file-dialog for GTK also.
-
-2004-10-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow.
- (x_lower_frame): Add BLOCK_INPUT around SendBehind.
- (make_mac_frame): Add BLOCK_INPUT around the making of a
- terminal frame.
- (mac_initialize): Add BLOCK_INPUT around carbon initialization.
- * macgui.h (mktime): Use emacs_mktime.
- * macfns.c (Fx_file_dialog): Add BLOCK_INPUT around more code.
- Make a cancel file-open dialog be like C-g.
- * mac.c (mktime): Use emacs_mktime.
- (Fdo_applescript): Add BLOCK_INPUT around do_applescript.
- (Fmac_paste_function): Add better error handling for carbon cut/paste.
-
-2004-10-10 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (timer_resume_idle): New function to resume idle
- timer without resetting timers on the idle list.
- (read_char): Use timer_resume_idle. Remove local var last_idle_start.
- (timer_start_idle, timer_stop_idle): Declare static.
- (read_key_sequence): Use timer_resume_idle instead of timer_start_idle.
-
- * keyboard.h (timer_start_idle, timer_stop_idle): Remove prototypes.
-
-2004-10-08 Steven Tamm <steventamm@mac.com>
-
- * config.in (HAVE_MALLOC_MALLOC_H): Regenerate.
- * macterm.c (mac_check_for_quit_char): Remove warning for using
- NULL where 0 should be used.
- * unexmacosx.c: Use malloc/malloc.h on Tiger instead of
- objc/malloc.h
- * mac.c: Include time.h for Tiger compatibility.
-
-2004-10-07 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (redisplay_window): Fix flicker on vertical line between
- windows. Update vertical line after drawing window fringes, but
- only if actually drawing any bitmaps--or there is no fringe.
-
- * xterm.c (x_update_window_end): Likewise.
- * macterm.c (x_update_window_end): Likewise.
- * w32term.c (x_update_window_end): Likewise.
-
- * fringe.c (draw_window_fringes): Return value now indicates if
- any fringe bitmaps were redrawn (or there are no fringes).
-
- * dispextern.h (draw_window_fringes): Update prototype.
-
-2004-10-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (mac_get_window_bounds): Add extern.
- (x_real_positions): Use mac_get_window_bounds.
-
- * macmenu.c (update_submenu_strings): Apply 2004-09-07 change for
- xmenu.c (YAILOM).
-
- * macterm.c [!MAC_OSX]: Include Windows.h.
- (front_emacs_window): Rename from mac_front_window. All uses
- changed. Return the frontmost non-tooltip emacs window.
- (mac_get_window_bounds): New function.
- (x_calc_absolute_position): Use the difference of width and height
- between the inner and outer window.
- (x_set_offset): Specify window position by the coordinae of the
- outer window. Adjust the position if the title bar is completely
- outside the screen.
- (app_is_suspended, app_sleep_time): Remove unused variables.
- (do_app_resume, do_app_suspend): Remove their contents because
- window-activate/deactivate events will do the job.
- (do_zoom_window): Remove unused variables. Make compliant to the
- standard way of zooming. Set f->left_pos and f->top_pos.
- (XTread_socket): Don't use argument `expected'. Don't use
- FrontWindow to determine the clicked window. Exclude unprocessed
- mouseUp cases in the early stage. Add parentheses to fix operator
- precedence.
- (XTread_socket) [TARGET_API_MAC_CARBON]: Don't specify drag area.
-
-2004-10-05 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * config.in: Regenerate.
-
- * Makefile.in (RUN_TEMACS): Check HAVE_RANDOM_HEAPSTART instead of
- HAVE_EXECSHIELD.
-
-2004-10-05 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_find_modifier_meanings): Ignore any Super or Hyper for
- a row if Alt or Meta has been found for that row. Also stop scanning
- for Keysyms for that row.
-
-2004-10-04 Kim F. Storm <storm@cua.dk>
-
- * fringe.c (Ffringe_bitmaps_at_pos): Change return value from cons
- to list. Include overlay arrow bitmap in return value.
-
- * xterm.c (XTset_vertical_scroll_bar): Improve handling of scroll
- bars with fractional column width. If scroll bar separates two
- windows, move it towards the window it belongs to. Only update
- the padding area below the scroll bar widget when necessary,
- i.e. when scroll bar widget is created, moved, or resized.
-
- * xdisp.c (define_frame_cursor1): Do not change frame cursor
- while tracking/dragging mouse.
- (x_draw_vertical_border): Do not draw line if frame has scroll bars.
-
- * window.c (coordinates_in_window): Relax check for cursor
- on vertial border between mode lines.
- (Fset_window_fringes): Do not allow negative widths.
- (Fset_window_scroll_bars): Likewise.
-
- * .gdbinit (pp): Shorthand for p ARG + pr.
- (ff): New command: flush frame updates (X only).
-
-2004-10-03 Michael Albinus <michael.albinus@gmx.de>
-
- * fileio.c (auto_save_1) Call Ffile_modes for remote files.
-
-2004-09-30 Kenichi Handa <handa@m17n.org>
-
- * process.c (send_process): Free composition data.
-
- * fileio.c (Finsert_file_contents): Free composition data.
-
- * coding.c (code_convert_region): Don't skip ASCIIs if there are
- compositions to encode.
- (encode_coding_string): Likewise. Free composition data.
-
-2004-09-30 Florian Weimer <fw@deneb.enyo.de>
-
- * coding.c (code_convert_region): Free composition data.
-
-2004-09-29 Kim F. Storm <storm@cua.dk>
-
- * fringe.c: Remove limit on number of bitmaps.
- (fringe_bitmaps, fringe_faces): Change to pointers.
- (max_fringe_bitmaps): New var.
- (Fdefine_fringe_bitmap): Expand fringe_bitmaps and fringe_faces.
- (init_fringe): Allocate fringe_bitmaps and fringe_faces.
-
- * dispextern.h (FRINGE_ID_BITS): Increase to 16 bits (64K bitmaps).
- (struct glyph_row): Reorder fringe_bitmap related fields.
- (struct it): Likewise.
-
- * w32term.c (fringe_bmp): Change to pointer.
- (max_fringe_bmp): New var.
- (w32_define_fringe_bitmap): Expand fringe_bmp.
- (w32_draw_fringe_bitmap): Check max_fringe_bmp.
- (w32_destroy_fringe_bitmap): Likewise.
-
-2004-09-29 Kim F. Storm <storm@cua.dk>
-
- * fringe.c: Simplify last change.
- (lookup_fringe_bitmap): New function.
- (valid_fringe_bitmap_p, resolve_fringe_bitmap): Remove.
- (Fdestroy_fringe_bitmap): Use lookup_fringe_bitmap.
- Keep standard bitmaps in Vfringe_bitmaps.
- (Fdefine_fringe_bitmap): Use lookup_fringe_bitmap.
- (Fset_fringe_bitmap_face): Likewise.
-
- * dispextern.h (lookup_fringe_bitmap): Add prototype.
- (valid_fringe_bitmap_p): Remove prototype.
-
- * xdisp.c (handle_single_display_prop): Use lookup_fringe_bitmap.
-
-2004-09-29 Kim F. Storm <storm@cua.dk>
-
- * fringe.c (destroy_fringe_bitmap, init_fringe_bitmap)
- (w32_init_fringe, w32_reset_fringes): Fix bootstrap (NULL rif).
-
- * dispextern.h (valid_fringe_bitmap_p): Fix prototype.
-
- * fringe.c (Vfringe_bitmaps): New variable.
- (syms_of_fringe): DEFVAR_LISP it.
- (valid_fringe_bitmap_p): Rename from valid_fringe_bitmap_id_p.
- Change arg to Lisp_Object and fail if not an integer.
- (get_fringe_bitmap_name, resolve_fringe_bitmap)
- (destroy_fringe_bitmap): New functions.
- (Fdestroy_fringe_bitmap): Change arg to bitmap symbol.
- Use destroy_fringe_bitmap. Remove symbol from Vfringe_bitmaps and
- clear its fringe property.
- (init_fringe_bitmap): Use destroy_fringe_bitmap instead of
- Fdestroy_fringe_bitmap.
- (Fdefine_fringe_bitmap): Add BITMAP arg specifying new or existing
- bitmap symbol; remove WHICH arg. Add symbol to Vfringe_bitmaps
- and set fringe property. Signal error if no free slots.
- (Fset_fringe_bitmap_face): Change arg to bitmap symbol.
- (Ffringe_bitmaps_at_pos): Return bitmap symbols instead of numbers.
-
- * xdisp.c (handle_single_display_prop): Fringe bitmaps are now
- symbols with a fringe property.
-
-2004-09-27 Kim F. Storm <storm@cua.dk>
-
- * buffer.c (syms_of_buffer) <indicate-buffer-boundaries>:
- Doc fix. Format may now be a symbol or alist, not a cons.
-
- * fringe.c (update_window_fringes): Handle new formats of
- indicate-buffer-boundaries (symbol or alist). No longer
- allow a simple cons.
- (Ffringe_bitmaps_at_pos): Use nil value for no bitmap.
-
-2004-09-25 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * config.in: Rebuild.
-
-2004-09-24 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * config.in: Rebuild.
-
- * Makefile.in: Run setarch i386 ./temacs if exec-shield is present.
-
-2004-09-18 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xterm.c (x_term_init): Work around a bug in some X servers.
-
-2004-09-18 Richard M. Stallman <rms@gnu.org>
-
- * buffer.c (syms_of_buffer) <default-major-mode>: Doc fix.
-
- * xdisp.c (try_window_reusing_current_matrix):
- Handle the case where we reach the old displayed text,
- out of sync with the old line boundary.
-
-2004-09-14 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * fileio.c (Finsert_file_contents): Fix case of replacement in a
- narrowed buffer.
-
-2004-09-14 Kim F. Storm <storm@cua.dk>
-
- * puresize.h (PURESIZE_RATIO): Define based on BITS_PER_EMACS_INT.
-
- * xfaces.c (Qface_no_inherit): New var.
- (syms_of_xfaces): Intern and staticpro it.
- (Finternal_make_lisp_face, Finternal_set_lisp_face_attribute)
- (Finternal_copy_lisp_face, update_face_from_frame_parameter):
- Don't increment face_change_count when face has non-nil
- face-no-inherit property.
-
-2004-09-13 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * bytecode.c (BYTE_CODE_QUIT): Add missing AFTER_POTENTIAL_GC.
- (Fbyte_code): Remove dead code after `wrong_type_argument'.
-
- * alloc.c (Fgarbage_collect): Mark keyboards, gtk data, and specpdl
- before doing the mark_stack_check_gcpros since they're not on the stack.
-
-2004-09-12 Kim F. Storm <storm@cua.dk>
-
- * editfns.c (Fformat): Handle format strings with multiple text
- properties. Reverse text property list from the format string,
- so the positions are in increasing order.
-
-2004-09-10 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xselect.c (x_reply_selection_request): XSync and UNBLOCK before
- x_uncatch_errors so that possible protocol errors are delivered.
-
-2004-09-10 Eli Zaretskii <eliz@gnu.org>
-
- * Makefile.in (msdos.o): Depend on buffer.h, commands.h, and
- blockinput.h.
- (dosfns.o): Depend on blockinput.h, window.h, dispextern.h,
- charset.h, and coding.h
- (w16select.o): Depend on buffer.h, charset.h, coding.h, and composite.h.
- (term.o): Depend on window.h and keymap.h.
- (abbrev.o): Depend on syntax.h.
- (callint.o): Depend on keymap.h.
- (casefiddle.o): Depend on charset.h and keymap.h.
- (category.o): Depend on keymap.h.
- (coding.o): Depend on dispextern.h.
- (cmds.o): Depend on keyboard.h and keymap.h.
- (dispnew.o): Depend on indent.h and intervals.h.
- (doc.o): Depend on keymap.h.
- (editfns.o): Depend on frame.h.
- (emacs.o): Depend on dispextern.h.
- (fileio.o): Don't depend on ccl.h.
- (filelock.o): Depend on charset.h and coding.h.
- (frame.o): Depend on w32term.h and macterm.h.
- (insdel.o): Depend on region-cache.h.
- (keyboard.o): Depend on keymap.h, w32term.h, and macterm.h.
- (minibuf.o): Depend on $(INTERVALS_SRC) and keymap.h.
- (search.o): Depend on $(INTERVALS_SRC).
- (syntax.o): Depend on keymap.h, regex.h, and $(INTERVALS_SRC).
- (window.o): Depend on keymap.h, blockinput.h, $(INTERVALS_SRC),
- xterm.h, w32term.h, and macterm.h.
- (xdisp.o): Depend on keyboard.h, $(INTERVALS_SRC), xterm.h,
- w32term.h, and macterm.h.
- (xfaces.o): Depend on keyboard.h, $(INTERVALS_SRC),
- region-cache.h, xterm.h, w32term.h, and macterm.h.
- (bytecode.o): Depend on dispextern.h, frame.h, and xterm.h.
- (data.o): Depend on frame.h.
- (fns.o): Depend on keymap.h, xterm.h, and blockinput.h.
- (print.o): Depend on termchar.h and $(INTERVALS_SRC).
- (lread.o): Depend on $(INTERVALS_SRC), termhooks.h, and coding.h.
- (intervals.o): Depend on keymap.h.
-
- * msdos.c (msdos_set_cursor_shape, IT_display_cursor):
- Add debugging print-out to termscript.
-
-2004-09-09 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (decode_mode_spec): Use current buffer for most purposes.
-
-2004-09-08 Richard M. Stallman <rms@gnu.org>
-
- * window.c (Fset_window_buffer): Doc fix.
-
- * xdisp.c (Fformat_mode_line): New arg BUFFER says which buffer to use.
-
-2004-09-08 Dan Nicolaescu <dann@ics.uci.edu>
-
- * minibuf.c (history_delete_duplicates): New variable.
- (read_minibuf): Use it.
- (syms_of_minibuf): Create the corresponding lisp variable.
-
-2004-09-08 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (set_cursor_from_row): Also look at 'cursor' property in
- overlay just before point.
-
-2004-09-07 Luc Teirlinck <teirllm@auburn.edu>
-
- * buffer.h (struct buffer): Add auto_save_file_format field.
- * buffer.c (reset_buffer, init_buffer_once):
- Handle auto_save_file_format field.
- (syms_of_buffer): Add DEFVAR_PER_BUFFER for
- `buffer-auto-save-file-format'.
- * fileio.c: Delete declaration for removed Vauto_save_file_format.
- (build_annotations): Adapt to replacement of
- `auto-save-file-format' with the new buffer-local variable
- `buffer-auto-save-file-format'.
- (syms_of_fileio): Delete DEFVAR_LISP for auto-save-file-format.
-
-2004-09-07 Jason Rumney <jasonr@gnu.org>
-
- * w32term.h (AppendMenuW_Proc): Move declaration from w32menu.c.
-
- * w32fns.c (w32_wnd_proc) <WM_MEASUREITEM, WM_DRAWITEM>:
- Handle Unicode menu titles.
-
-2004-09-07 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (set_cursor_from_row): Fix last change. Only use 'cursor'
- property from text property or overlay strings at point.
-
-2004-09-07 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xmenu.c (update_submenu_strings): YAILOM.
- (set_frame_menubar): Make sure last_i is initialized.
-
-2004-09-03 Jason Rumney <jasonr@gnu.org>
-
- * w32menu.c (_widget_value): Add lname and lkey.
- (digest_single_submenu): Set lname and lkey in widget_value
- instead of name and key.
- (update_submenu_strings): New function.
- (set_frame_menubar): Remove call to inhibit_garbage_collection,
- call update_submenu_strings.
-
- * w32menu.c (globals_of_w32menu): Check for Unicode API.
- (digest_single_submenu, w32_menu_show): Encode menu strings as
- UTF-8 if Unicode API is available.
- (utf8to16): New function.
- (add_menu_item): Use it when calling Unicode API.
-
-2004-09-03 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (set_cursor_from_row): Look for non-nil `cursor' property
- in overlay or text-property strings; set cursor on corresponding
- glyph rather than at end of the string.
-
-2004-09-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c (x_real_positions): Save the current window port and
- set a new one before obtaining the global coordinate.
- Use FRAME_MAC_WINDOW.
- (x_set_name, x_set_title): Encode title to UTF8.
- Use SetWindowTitleWithCFString.
- (Fx_server_version): Get correct OS version.
-
- * macmenu.c (add_menu_item): Remove unused variable `i'.
- Don't let separator items destroy refence constants of other menu items.
-
- * macterm.c (x_update_end): Move SetPortWindowPort to inside
- BLOCK_INPUT.
- (x_set_offset): Use FRAME_MAC_WINDOW.
-
- * xdisp.c (note_mouse_highlight): Set the mouse pointer shape to
- nontext_cursor if it is on a scroll bar.
-
- * s/darwin.h (LIBS_CARBON): New define to specify libraries for
- Carbon support.
- (LD_SWITCH_SYSTEM_TEMACS): Don't link with unused libstdc++.
- Use LIBS_CARBON.
-
-2004-09-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (x_set_name_internal): New function. Check if we shall call
- xfree before ENCODE_UTF_8.
- (x_set_name, x_set_title): Call x_set_name_internal.
-
-2004-08-31 NAKAMURA Toshikazu <nr-tkz@nifty.com> (tiny change)
-
- * w32fns.c (w32_load_font): If a BDF font is already loaded, do not
- reload it.
-
-2004-08-30 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * macmenu.c (_widget_value): Add lname and lkey.
- (single_submenu): Set lname and lkey in widget_value
- instead of name and key.
- (update_submenu_strings): New function.
- (set_frame_menubar): Remove call to inhibit_garbage_collection,
- call update_submenu_strings.
-
- * xmenu.c (digest_single_submenu): Set lname and lkey in widget_value
- instead of name and key.
- (update_submenu_strings): New function.
- (set_frame_menubar): Remove call to inhibit_garbage_collection,
- call update_submenu_strings.
-
- * gtkutil.h (_widget_value): Added lname and lkey.
-
-2004-08-30 Steven Tamm <steventamm@mac.com>
-
- * macmenu.c (mac_menu_show): Remove shadowing of menu variable
- by using different names for inner loop variables.
-
-2004-08-27 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (set_frame_menubar): Reintroduce inhibit_garbage_collection
- from 2002-07-15T00:01:34Z!raeburn@raeburn.org so that strings from ENCODE_UTF_8 isn't GC:ed before used.
-
- * gtkutil.c (xg_create_frame_widgets): Compensate for tool bar when
- tool bar items is 0.
-
-2004-08-26 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macmenu.c (ENCODE_MENU_STRING): Added to handle multibyte
- strings in menu items.
- (single_submenu): Use ENCODE_MENU_STRING
- (mac_menu_show): Use ENCODE_MENU_STRING. Reset grabbed because
- button release isn't passed to event loop
- (add_menu_item): Use SetMenuItemWithCFString
-
-2004-08-26 Steven Tamm <steventamm@mac.com>
-
- * fileio.c (Fread_file_name): Call x_file_dialog on carbon on
- tool-bar/menu click.
- * macfns.c (Fx_file_dialog): Implement using NavServices.
-
-2004-08-24 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_catch_errors_unwind): Do not XSync if display has closed.
-
- * xfns.c (x_window_to_frame, x_any_window_to_frame)
- (x_non_menubar_window_to_frame, x_menubar_window_to_frame)
- (x_top_window_to_frame): Return 0 if wdesc is None.
-
-2004-08-22 Richard M. Stallman <rms@gnu.org>
-
- * process.c (process_send_signal) [SIGNALS_VIA_CHARACTERS,
- HAVE_TERMIOS]: If there's no char for this signal, drop through
- and use system calls.
-
- * bytecode.c (Fbyte_code) <unwind-protect>: Cannot GC.
-
-2004-08-20 Kim F. Storm <storm@cua.dk>
-
- * process.c (wait_reading_process_output): Rename from
- wait_reading_process_input. All uses changed.
- (wait_reading_process_output_1): Rename from
- wait_reading_process_input_1. All uses changed.
-
- * dispnew.c (Fsleep_for): Remove obsolete code.
-
-2004-08-20 Kenichi Handa <handa@m17n.org>
-
- * syntax.c (skip_chars): Fix for unibyte case.
-
-2004-08-19 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * syntax.c (char_quoted): Mixup byte/char pos.
- (back_comment): Fixup globals in all cases.
-
-2004-08-19 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (x_set_name, x_set_title): Encode title to UTF8 before
- passing it to gtk_window_set_title.
-
-2004-08-19 Kim F. Storm <storm@cua.dk>
-
- * process.c (wait_reading_process_input): Clean up.
- Add wait_for_cell, wait_proc, and just_wait_proc args
- to avoid overloading `read_kbd' and `do_display' args.
- Change read_kbd arg to int. All callers changed.
-
- * process.c (process_send_signal): Use CDISABLE.
-
- * sysdep.c (child_setup_tty, init_sys_modes): Use CDISABLE.
-
-2004-08-18 Kim F. Storm <storm@cua.dk>
-
- * process.c (Faccept_process_output): Add arg JUST-THIS-ONE;
- forward to wait_reading_process_input via DO_DISPLAY arg.
- (wait_reading_process_input): If DO_DISPLAY < 0 for a process
- object, only process output from that process; also inhibit
- running timers if DO_DISPLAY==-2.
-
-2004-08-17 Kim F. Storm <storm@cua.dk>
-
- * process.c (process_send_signal): Fix last change--use
- _POSIX_VDISABLE instead of CVDISABLE when available.
-
-2004-08-16 Richard M. Stallman <rms@gnu.org>
-
- * sysdep.c (child_setup_tty) [SIGNALS_VIA_CHARACTERS]:
- Set VQUIT and VINTR chars to the standard ones if they are unset.
- [AIX]: Don't do that here. And don't force VINTR to standard
- when SIGNALS_VIA_CHARACTERS.
-
- * process.c (process_send_signal)
- [SIGNALS_VIA_CHARACTERS, HAVE_TERMIOS]: Clean up.
- Do nothing if the character is CVDISABLE.
-
- * xfaces.c (merge_face_ref): Specifying `unspecified' is a no-op.
-
- * intervals.c (move_if_not_intangible):
- Force POSITION to be between BEGV and ZV.
-
-2004-08-14 John Paul Wallington <jpw@gnu.org>
-
- * buffer.c (Frestore_buffer_modified_p): Doc fix.
-
- * fileio.c (Fread_file_name): Doc fix.
-
- * minibuf.c (syms_of_minibuf) <completion-ignore-case>: Doc fix.
-
-2004-08-09 Luc Teirlinck <teirllm@auburn.edu>
-
- * keymap.c (Fmake_keymap, Fmap_keymap, Fwhere_is_internal): Doc fixes.
-
-2004-08-08 Luc Teirlinck <teirllm@auburn.edu>
-
- * keyboard.c: Declare Qdisabled_command_function instead of
- Qdisabled_command_hook.
- (Fcommand_execute): Use Qdisabled_command_function instead of
- Qdisabled_command_hook.
- (syms_of_keyboard): Ditto.
-
-2004-08-07 Luc Teirlinck <teirllm@auburn.edu>
-
- * keymap.c (Flocal_key_binding, Fglobal_key_binding)
- (syms_of_keymap) <key-translation-map>: Doc fixes.
-
-2004-08-07 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * window.c (window_list_1): YAILOM.
-
- * fileio.c (make_temp_name): Handle multibyte prefixes.
-
-2004-08-06 Luc Teirlinck <teirllm@auburn.edu>
-
- * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
- Doc fix.
-
-2004-08-03 Kenichi Handa <handa@m17n.org>
-
- * coding.c (decode_coding_string): Adjust coding->consumed, and
- etc. with shrinked_bytes.
-
-2004-08-03 Kim F. Storm <storm@cua.dk>
-
- * indent.c (compute_motion): Fix check for full width window
- in non-window case. Do not count left truncation glyph on
- window systems.
-
-2004-08-02 Luc Teirlinck <teirllm@auburn.edu>
-
- * data.c (Finteractive_form): Doc fix.
-
-2004-08-02 Kim F. Storm <storm@cua.dk>
-
- * indent.c (compute_motion): Use actual window width if WIDTH is -1,
- properly accounting for continuation glyph on non-window systems.
- (Fcompute_motion): Use actual window width if WIDTH is nil, and
- actual window width/height if TOPOS is nil, properly accounting for
- continuation glyphs on non-window systems, and optional header lines.
- (vmotion): Let compute_motion calculate actual window width.
-
- * window.c (window_scroll_line_based): Let compute_motion
- calculate actual window width.
-
-2004-08-02 Kim F. Storm <storm@cua.dk>
-
- * process.c (read_process_output): Use whole read buffer.
- Don't trigger adaptive read buffering on errors.
-
-2004-07-31 Luc Teirlinck <teirllm@auburn.edu>
-
- * keymap.c (Fset_keymap_parent, Fdefine_prefix_command): Doc fixes.
-
- * keyboard.c (syms_of_keyboard) <disable-point-adjustment>: Doc fix.
-
- * callint.c (Fcall_interactively): Doc fix.
-
-2004-07-30 Richard M. Stallman <rms@gnu.org>
-
- * abbrev.c (Fexpand_abbrev): Undo previous change.
-
-2004-07-30 Kim F. Storm <storm@cua.dk>
-
- * editfns.c (Fformat): Allocate extra (dummy) element in info.
-
-2004-07-28 Luc Teirlinck <teirllm@auburn.edu>
-
- * eval.c (Fdefvar, Fdefconst): Doc fixes.
-
-2004-07-27 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (move_it_in_display_line_to): Check BUFFER_POS_REACHED_P after
- we have ensured that the glyph fits on the current line (or returned
- MOVE_LINE_CONTINUED otherwise).
-
-2004-07-26 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (move_it_in_display_line_to): If overflow-newline-into-fringe
- is enabled, return MOVE_LINE_CONTINUED rather than MOVE_POS_MATCH_OR_ZV
- if target position is at end of display line but char is not a newline.
-
-2004-07-25 Richard M. Stallman <rms@gnu.org>
-
- * window.c (coordinates_in_window): Return ON_SCROLL_BAR
- instead of ON_VERTICAL_BORDER, when on scroll bar.
- (Fcoordinates_in_window_p): Handle ON_SCROLL_BAR--return nil.
-
- * dispextern.h (enum window_part): Add ON_SCROLL_BAR.
-
- * window.c (Fcoordinates_in_window_p):
- Take account of FRAME_INTERNAL_BORDER_WIDTH.
-
- * alloc.c (check_cons_list): New function (contents commented out).
-
-2004-07-24 Luc Teirlinck <teirllm@auburn.edu>
-
- * xfaces.c (Fcolor_supported_p): Doc fix.
-
- * frame.c (Fselect_frame, Fset_frame_selected_window)
- (Fframe_visible_p, Fraise_frame): Doc fixes.
-
-2004-07-24 Richard M. Stallman <rms@gnu.org>
-
- * keyboard.h (not_single_kboard_state): Declare.
-
- * fileio.c (Fwrite_region): Doc fix.
-
- * window.c (Fwindow_at): Take account of FRAME_INTERNAL_BORDER_WIDTH.
-
- * abbrev.c (Fexpand_abbrev): Run Qpre_abbrev_expand_hook
- only when a real abbrev is present.
-
- * xfns.c (x_icon_verify): New function.
- (Fx_create_frame): Use it.
-
-2004-07-22 Barry Fishman <barry_fishman@att.net> (tiny change)
-
- * s/gnu-linux.h: Use GC_MARK_STACK if __amd64__ is defined.
-
-2004-07-21 Kim F. Storm <storm@cua.dk>
-
- * window.h (struct glyph_matrix): New members nrows_scale_factor
- and ncols_scale_factor.
-
- * window.c (make_window): Initialize nrows_scale_factor and
- ncols_scale_factor members.
-
- * dispnew.c (margin_glyphs_to_reserve): Apply ncols_scale_factor.
- (allocate_matrices_for_frame_redisplay): Fix left/right margin mix-up.
- (required_matrix_height): Apply nrows_scale_factor.
- (required_matrix_width): Apply ncols_scale_factor.
-
- * xdisp.c (display_line): Increment nrows_scale_factor and set
- fonts_changed_p if past last allocated row.
- (append_glyph, append_composite_glyph, produce_image_glyph)
- (append_stretch_glyph): Increment ncols_scale_factor and set
- fonts_changed_p if current area is full.
-
-2004-07-21 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * widget.c (EmacsFrameDestroy): Don't abort if normal_gc is 0.
-
-2004-07-19 Luc Teirlinck <teirllm@auburn.edu>
-
- * window.c (Fpos_visible_in_window_p, Fset_window_hscroll)
- (Fwindow_inside_pixel_edges, Fwindow_end, Fset_window_point)
- (Fset_window_start, Fscroll_up, Fscroll_down)
- (Fother_window_for_scrolling, Fscroll_other_window)
- (Fsave_window_excursion, Fset_window_vscroll)
- (syms_of_window) <window-size-fixed>: Doc fixes.
-
-2004-07-19 KOBAYASHI Yasuhiro <kobayays@otsukakj.co.jp>
-
- * w32fns.c (Fx_file_dialog): Use ENCODE_FILE instead of
- ENCODE_SYSTEM for filenames.
-
-2004-07-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c (sys_select): Block input around call to
- ReceiveNextEvent to prevent breakage. Correctly handle
- blocking on event queue only by calling ReceiveNextEvent
- instead of select (since GUI events aren't on an fd).
- (sys_read): Remove function
- * sysdep.c: Remove redefine of read to sys_read if HAVE_CARBON
-
-2004-07-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * mac.c (sys_select): Redo sys_select to use alarm-based
- polling instead of 1 sec timeouts (like solaris).
-
- * macterm.c (x_make_frame_visible): Comment in polling on
- frame creation.
-
- * keyboard.c: Undef SIGIO on Carbon
-
- * atimer.c (alarm_signal_handler): Call alarm handlers after
- scheduling.
-
- * eval.c (Feval): Remove quit_char test
-
- * process.c (wait_reading_process_input): Remove clearing
- stdin for select call on process input.
-
-2004-07-18 Luc Teirlinck <teirllm@auburn.edu>
-
- * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Correct
- capitalization error in docstring.
-
-2004-07-17 Juanma Barranquero <lektu@terra.es>
-
- * keyboard.c (not_single_kboard_state): Do nothing unless
- MULTI_KBOARD is defined.
-
-2004-07-17 Richard M. Stallman <rms@gnu.org>
-
- * window.c (coordinates_in_window): Inside the window but outside
- its box to the L or R, return ON_VERTICAL_BORDER.
- (window_list_1): Rotate the list to start with WINDOW.
-
- * print.c (print_preprocess): Test for print_depth at limit
- before entering in being_printed.
-
- * keyboard.c (not_single_kboard_state): New function.
- (stuff_buffered_input): Now no-op only if no SIGTSTP.
-
- * frame.c (Fdelete_frame): If we're in single_bboard_state on
- this kboard, and we delete its last frame, go to any_kboard_state.
-
- * buffer.c (syms_of_buffer) <transient-mark-mode>: Doc fix.
-
-2004-07-15 KOBAYASHI Yasuhiro <kobayays@otsukakj.co.jp>
-
- * w32fns.c (Fx_file_dialog): Encode strings in system coding
- system before passing them to OS functions for display.
-
-2004-07-15 David Kastrup <dak@gnu.org>
-
- * search.c (syms_of_search): Staticpro `saved_last_thing_searched'.
- Apparently fixes an abort condition.
-
-2004-07-14 Luc Teirlinck <teirllm@auburn.edu>
-
- * fileio.c (Fvisited_file_modtime): Return a list of two integers,
- instead of a cons.
-
-2004-07-14 K\e,Aa\e(Broly L\e$,1 q\e(Brentey <lorentey@elte.hu>
-
- * keyboard.c (echo_dash): Do nothing if there already is a dash
- at the end of the echo string.
-
-2004-07-12 Kim F. Storm <storm@cua.dk>
-
- * alloc.c (mark_object): Only look at Lisp_Misc_Save_Value
- if GC_MARK_STACK.
-
-2004-07-10 Luc Teirlinck <teirllm@auburn.edu>
-
- * buffer.c (Fswitch_to_buffer, Fpop_to_buffer): Doc fixes.
-
- * window.c (Fwindow_buffer, Fother_window, Fget_lru_window)
- (Fget_largest_window, Fget_buffer_window, Fdelete_windows_on)
- (Freplace_buffer_in_windows, Fset_window_buffer)
- (Fselect-window, Fdisplay-buffer, Fsplit_window): Doc fixes.
- (syms_of_window): Expand docstring of `display-buffer-function'.
-
-2004-07-09 Luc Teirlinck <teirllm@auburn.edu>
-
- * editfns.c (Ffloat_time, Fformat_time_string, Fdecode_time)
- (Fcurrent_time_string, Fcurrent_time_zone): Mention in docstrings
- that time values of the type (HIGH . LOW) are considered obsolete.
-
-2004-07-06 Luc Teirlinck <teirllm@auburn.edu>
-
- * keyboard.c (syms_of_keyboard): Fix `keyboard-translate-table'
- docstring.
-
- * fns.c (Fclear_string): Declare `len' before call to CHECK_STRING.
-
-2004-07-06 John Paul Wallington <jpw@gnu.org>
-
- * eval.c (Fdefmacro): Signal an error if NAME is not a symbol.
-
- * fns.c (Fclear_string): Signal an error if STRING is not a string.
-
-2004-07-05 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
- instead of CGMainDisplayID (only in OSX 10.2 and later).
-
-2004-07-04 John Paul Wallington <jpw@gnu.org>
-
- * fileio.c (read_file_name_completion_ignore_case): New variable.
- (syms_of_fileio): Declare and initialise it.
- (Fread_file_name): Bind `completion-ignore-case' to respect it.
-
-2004-07-03 Eli Zaretskii <eliz@gnu.org>
-
- * msdos.c (dos_rawgetc): Use make_number to produce Lisp objects
- for event.x and event.y.
-
-2004-07-01 Kenichi Handa <handa@m17n.org>
-
- * w32select.c (Fw32_set_clipboard_data): Update `nbytes' correctly
- after getting a new string by pre-write-conversion.
-
-2004-06-30 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xterm.c (x_detect_focus_change): Remove unused var `nr_events'.
- (x_calc_absolute_position): Remove unused var `child'.
-
- * xfaces.c (x_supports_face_attributes_p)
- (Fdisplay_supports_face_attributes_p): YAILOM.
- (tty_supports_face_attributes_p): Remove unused var `i'.
-
- * syntax.c (skip_chars): Remove unused labels fwd_unibyte_ok and
- back_unibyte_ok.
-
- * search.c (match_limit, Fmatch_data, Fset_match_data): YAILOM.
-
- * fontset.c (Fset_fontset_font): Remove unused vars `family' and
- `registry'.
-
- * Makefile.in (${etc}DOC): Fix file name of make-docfile.
-
-2004-06-30 Andreas Schwab <schwab@suse.de>
-
- * image.c (CHECK_LIB_AVAILABLE): Add third parameter LIBRARIES.
- (Finit_image_library): Pass LIBRARIES through to
- CHECK_LIB_AVAILABLE. Declare parameters. Doc fix.
- (lookup_image_type): Pass Qnil as second argument to
- Finit_image_library.
-
- * lisp.h (Finit_image_library): Declare.
-
-2004-06-29 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (do_window_activate, do_window_deactivate): Remove.
- (XTread_socket): Send mouse button events to the toolbox
- dispatcher even when the mouse is grabbed. Don't process window
- activate events for non-Emacs windows. Replace function calls to
- do_window_activate and do_window_deactivate with their contents.
- Reset mouse grabbing status when a window is deactivated.
-
-2004-06-29 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (mac_get_emulated_btn)
- (mac_event_to_emacs_modifiers): Fix emulated mouse button
- support to correctly mask out modifiers.
-
-2004-06-29 David Kastrup <dak@gnu.org>
-
- * search.c (Fset_match_data): Allow buffer before end of list
- which can happen if set-match-data is using a pre-consed list.
-
-2004-06-28 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (XTread_socket): Correctly set the frame position
- after the window is moved.
-
-2004-06-28 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_get_image_for_pixmap): Call g_object_unref on
- gpix and gmask just before return to avoid memory leak.
- (xg_get_image_for_pixmap): Add workaround for monochrome displays
- so insensitive and activated icons look ok.
-
-2004-06-27 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (file_dialog_callback): Disable edit control if set
- to directories only on CDN_INITDONE message.
- (Fx_file_dialog): Default to directories only when prompt starts
- with "Dired".
-
-2004-06-25 Kim F. Storm <storm@cua.dk>
-
- * alloc.c (allocate_misc): Update total_free_markers.
- (free_misc): New function.
- (safe_alloca_unwind, free_marker): Use it.
-
- * lisp.h (free_misc): Add prototype.
-
- * fns.c (Fmapconcat, Fmapcar): Remove superfluous GCPROs.
-
-2004-06-24 Richard M. Stallman <rms@gnu.org>
-
- * emacs.c (Vsignal_USR1_hook, Vsignal_USR2_hook): Definitions deleted.
- (syms_of_emacs): Lisp variables deleted.
-
-2004-06-23 David Kastrup <dak@gnu.org>
-
- * search.c (Freplace_match): Adjust the match-data more thoroughly
- when replacing strings in the buffer.
- (Fmatch_data): When INTEGERS is non-nil and the last match was in
- a buffer, add the buffer as last element to the match data.
- (Fset_match_data): If an additional element of the match-data is a
- buffer, restore it to last_thing_searched.
- (save_search_regs): Save last_thing_searched as part of the match data.
- (restore_match_data): Restore it again.
-
-2004-06-23 Luc Teirlinck <teirllm@auburn.edu>
-
- * keymap.c (Ftext_char_description): Doc fix.
- * doc.c (Fsnarf_documentation): Doc fix.
-
-2004-06-22 Kim F. Storm <storm@cua.dk>
-
- * fns.c (Fmapcar, Fmapconcat): GCPRO the args array.
-
- * lisp.h (struct Lisp_Save_Value): New member dogc.
- (SAFE_ALLOCA_LISP): Change second arg to number of elements.
- Set dogc member in Lisp_Save_Value object so it will be GC'ed.
- (SAFE_FREE_LISP): New macro.
-
- * alloc.c (safe_alloca_unwind): Clear dogc and pointer members.
- (make_save_value): Init new dogc member.
- (mark_object): Mark Lisp_Save_Value pointer array if dogc is set.
-
- * fns.c (Fmapconcat, Fmapcar): Use new SAFE_ALLOCA_LISP and
- SAFE_FREE_LISP macros.
-
-2004-06-22 Kim F. Storm <storm@cua.dk>
-
- * lisp.h (SAFE_ALLOCA_LISP): New macro to allocate Lisp_Objects.
- Temporarily inhibits GC if memory is xmalloc'ed, as the Lisp_Objects
- in that memory area are unknown to GC. Add comments.
-
- * fns.c (Fmapconcat, Fmapcar): Use SAFE_ALLOCA_LISP.
-
-2004-06-21 Kim F. Storm <storm@cua.dk>
-
- * lisp.h (MAX_ALLOCA): Define here.
- (safe_alloca_unwind): Add prototype.
- (USE_SAFE_ALLOCA, SAFE_ALLOCA, SAFE_FREE): New macros.
-
- * alloc.c (safe_alloca_unwind): New function.
-
- * casefiddle.c (casify_object): Use SAFE_ALLOCA.
-
- * charset.c (Fstring): Use SAFE_ALLOCA.
-
- * coding.c (MAX_ALLOCA): Remove define.
-
- * data.c (MAX_ALLOCA): Remove define.
- (Faset): Use SAFE_ALLOCA.
-
- * editfns.c (Fformat, Ftranspose_regions): Use SAFE_ALLOCA.
-
- * fns.c (string_make_multibyte, string_to_multibyte)
- (string_make_unibyte, Fmapconcat, Fmapcar): Use SAFE_ALLOCA.
- (MAX_ALLOCA): Remove define.
- (Fbase64_encode_region, Fbase64_encode_string)
- (Fbase64_decode_region, Fbase64_decode_string): Use SAFE_ALLOCA.
- (Fbase64_encode_region, Fbase64_encode_string): Fix potential
- memory leak if encoding fails.
-
- * xdisp.c (add_to_log): Use SAFE_ALLOCA.
-
-2004-06-21 Eli Zaretskii <eliz@gnu.org>
-
- * print.c (Fwith_output_to_temp_buffer): Doc fix.
-
-2004-06-20 Richard M. Stallman <rms@gnu.org>
-
- * xfaces.c (Finternal_copy_lisp_face): Small cleanup; doc fix.
-
- * search.c (match_limit): Cleaner err msg when no match data available.
-
- * window.c (syms_of_window): Doc fix.
-
- * keyboard.c (command_loop_1): Handle values `only' and `identity'
- for Vtransient_mark_mode.
-
- * buffer.c (syms_of_buffer): Doc fix.
-
-2004-06-21 David Kastrup <dak@gnu.org>
-
- * minibuf.c (Ftry_completion, Fall_completions): Do lazy binding
- and unbinding of `case-fold-search' according to
- `completion-ignore-case' around calls of string-match and
- predicates, respectively. Should give satisfactory performance
- in all relevant cases.
-
-2004-06-17 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_draw_image_foreground_1): Subtract slice.x/y from
- clip_x/y_origin.
-
- * fns.c (string_to_multibyte): Use xmalloc/xfree instead of alloca.
-
- * macfns.c (Fx_display_color_cells): Do not limit return value to 256.
-
- * macterm.c (mac_initialize_display_info): Initialize n_planes correctly
- on Mac OSX.
-
-2004-06-16 Luc Teirlinck <teirllm@auburn.edu>
-
- * buffer.c (syms_of_buffer): Clarify `fill-column' docstring.
-
-2004-06-16 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (Vimage_types): Remove extern.
-
-2004-06-16 Miles Bader <miles@gnu.org>
-
- * image.c (lookup_image_type): Initialize image type if necessary.
-
-2004-06-15 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (try_cursor_movement): Exclude header line from scroll
- margin at top of window.
- (try_window_reusing_current_matrix): Calculate proper cursor position
- after scrolling up with non-zero scroll margin, as the old cursor
- position corresponds to value of PT before executing this command.
- (try_window_id): Consider scroll margin at bottom of window too;
- otherwise we fail to scroll when hl-line-mode is enabled.
-
- * syntax.c (skip_chars): Only recognize [:class:] when it has the
- proper format and class is a lower-case word.
-
-2004-06-14 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_get_image_for_pixmap): New function.
- (xg_get_gdk_pixmap_and_mask): Remove.
- (update_frame_tool_bar): Call xg_get_image_for_pixmap instead of
- xg_get_gdk_pixmap_and_mask.
-
- * xterm.h (struct x_display_info): Typo in comment fixed.
-
-2004-06-14 Juanma Barranquero <lektu@terra.es>
-
- * dispextern.h (Vimage_types): Make it conditional on
- HAVE_WINDOW_SYSTEM.
-
- * image.c (Vimage_types): Move from xdisp.c.
- (Vimage_type_cache): New variable.
- (define_image_type): New argument indicating whether an image
- library was loaded; cache loaded status and return t on success,
- nil otherwise.
- (CACHE_IMAGE_TYPE, ADD_IMAGE_TYPE): New macros.
- (w32_delayed_load): New function to load an image library from a
- list of possible filenames.
- (init_xpm_functions, init_png_functions, init_jpeg_functions)
- (init_tiff_functions, init_gif_functions): Use `w32_delayed_load'.
- (CHECK_LIB_AVAILABLE): Call `define_image_library' with new argument.
- (Finit_image_library): New function, extracted from `init_image'.
- Try to initialize an image library on demand and cache whether we
- were successful or not.
- (syms_of_image): Initialize `Vimage_types' and
- `Vimage_type_cache'. Add recognized image types to Vimage_types.
- Export `init-image-library'.
- (init_image): Remove initialization of all image types, except xbm
- and pbm.
-
- * xdisp.c (Vimage_types): Delete (moved to image.c).
-
-2004-06-14 Andreas Schwab <schwab@suse.de>
-
- * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
- Avoid calling specbind when completion-regexp-list is empty.
-
-2004-06-13 Richard M. Stallman <rms@gnu.org>
-
- * regex.h (CHAR_CLASS_MAX_LENGTH, re_wctype_t, re_wchar_t)
- (re_wctype, re_iswctype, re_wctype_to_bit):
- Non-function definitions moved here from regex.c.
-
- * regex.c (re_wctype, re_iswctype): Function defs longer static.
- (CHAR_CLASS_MAX_LENGTH, re_wctype_t, re_wchar_t)
- (re_wctype, re_iswctype, re_wctype_to_bit):
- Non-function definitions moved to regex.h.
-
- * window.c (Fselect_window): Doc fix.
-
- * syntax.c: Include regex.h.
- (skip_chars): New arg HANDLE_ISO_CLASSES. Callers changed.
- If requested, make a list of classes, then check the scanned
- chars for membership in them.
- (in_classes): New function.
- Doc fix.
-
- * keyboard.c (cmd_error): Don't call any_kboard_state
- if inside a recursive edit level.
-
-2004-06-13 K\e,Aa\e(Broly L\e$,1 q\e(Brentey <lorentey@elte.hu>
-
- * keyboard.c (command_loop): Call any_kboard_state before
- command_loop_2 when at top level.
-
-2004-06-13 Andreas Schwab <schwab@suse.de>
-
- * print.c (print_object): Always use %ld for printing EMACS_INT.
-
- * keyboard.c (cancel_hourglass_unwind): Return a value.
- (modify_event_symbol): Always use %ld for printing EMACS_INT.
- (Fexecute_extended_command): Likewise.
-
- * syntax.h (SYNTAX_ENTRY_FOLLOW_PARENT): Rename local variable to
- avoid clashes.
- (SYNTAX): Likewise.
- (SYNTAX_WITH_FLAGS): Likewise.
- (SYNTAX_MATCH): Likewise.
-
- * syntax.c (char_quoted): Avoid warning about undefined operation.
- (find_defun_start): Likewise.
- (scan_lists): Likewise.
- (INC_FROM): Likewise.
- (scan_sexps_forward): Likewise.
-
- * image.c: Include <ctype.h>.
-
- * xfaces.c (face_attr_equal_p): Declare parameters.
-
-2004-06-13 Kenichi Handa <handa@m17n.org>
-
- * ccl.c (CCL_READ_CHAR): If hit EOF, set REG to -1.
-
-2004-06-12 Matthew Mundell <matt@mundell.ukfsn.org>
-
- * eval.c (Fdefun): Signal an error if NAME is not a symbol.
-
-2004-06-12 Kenichi Handa <handa@m17n.org>
-
- * ccl.c (CCL_CALL_FOR_MAP_INSTRUCTION): Save eof_ic in
- ccl_prog_stack_struct and update it.
- (CCL_INVALID_CMD): If CCL_DEBUG is defined, call ccl_debug_hook.
- (CCL_READ_CHAR): Get instruction counter from eof_ic, not from
- ccl->eof_ic on EOF.
- (ccl_debug_hook): New function.
- (struct ccl_prog_stack): New member eof_ic.
- (ccl_driver): Handle EOF in subrountine call correctly.
-
-2004-06-11 Kenichi Handa <handa@m17n.org>
-
- * coding.c (encode_coding_string): Check CODING_FINISH_INTERRUPT.
-
-2004-06-11 Kim F. Storm <storm@cua.dk>
-
- * emacs.c (shut_down_emacs): Inhibit redisplay during shutdown.
-
-2004-06-11 Juanma Barranquero <lektu@terra.es>
-
- * keyboard.c (Fposn_at_point): Doc fix.
-
-2004-06-11 David Kastrup <dak@gnu.org>
-
- * search.c (match_limit): Don't flag an error if match-data
- exceeding the allocated search_regs.num_regs gets requested, just
- return Qnil.
-
-2004-06-08 Miles Bader <miles@gnu.org>
-
- * xfaces.c (push_named_merge_point): Return 0 when a cycle is detected.
-
-2004-06-07 Juanma Barranquero <lektu@terra.es>
-
- * editfns.c (Fuser_login_name, Ffloat_time, Fencode_time)
- (Fcurrent_time_string, Fcurrent_time_zone)
- (Finsert_buffer_substring, Ftranspose_regions): Doc fixes.
-
-2004-06-07 Miles Bader <miles@gnu.org>
-
- * xfaces.c (struct named_merge_point): New type.
- (push_named_merge_point): New function.
- (merge_named_face): New function.
- (merge_face_ref, face_at_buffer_position, face_at_string_position):
- Use `merge_named_face'.
- (merge_face_inheritance): Function removed.
- (merge_face_ref): Rename from `merge_face_vector_with_property'.
- Add new `err_msgs' and `named_merge_points' args. Return error
- status. Only print error messages if ERR_MSGS is true. Don't try to
- do :inherit attribute validation.
- (merge_face_heights): Handle `unspecified' in both directions.
- (merge_face_vectors): Rename `cycle_check' arg to `named_merge_points'.
- Call `merge_face_ref' instead of `merge_face_inheritance'.
- (Fdisplay_supports_face_attributes_p, Fface_attributes_as_vector)
- (compute_char_face, face_at_buffer_position)
- (face_at_string_position): Call `merge_face_ref' instead of
- `merge_face_vector_with_property'.
-
-2004-06-07 Kenichi Handa <handa@m17n.org>
-
- * coding.c (find_safe_codings): Check NILP (safe_codings) only at
- the necessary places.
-
-2004-06-07 Kim F. Storm <storm@cua.dk>
-
- * process.c (Fdelete_process): Undo 2004-05-28 change.
- Instead, call status_notify also for network process.
- (status_message): Use process instead of status as arg.
- Give messages "deleted" or "connection broken by remote peer" for
- an exited network process.
- (status_notify): Change call to status_message.
- (read_process_output): Increase readmax to 4096. Do not increase
- buffer size for datagram channels (default is now large enough).
-
-2004-06-06 Steven Tamm <tamm@Steven-Tamms-Computer.local>
-
- * macfns.c (x_create_tip_frame): Fix Mac OS X 10.1 compilation
- problem due to newly defined variable.
-
-2004-06-06 Miles Bader <miles@gnu.org>
-
- * xfaces.c (Fdisplay_supports_face_attributes_p): Give up
- immediately if non-interactive or not initialized.
-
-2004-06-05 Richard M. Stallman <rms@gnu.org>
-
- * minibuf.c (Fcompleting_read): Doc fix.
-
-2004-06-05 Andreas Schwab <schwab@suse.de>
-
- * macfns.c (x_create_tip_frame): Fix declaration after statement.
-
-2004-06-05 Juanma Barranquero <lektu@terra.es>
-
- * keymap.c (Fdescribe_vector): Fix docstring.
- (Fkey_description, Fglobal_key_binding): Fix typo in docstring.
-
-2004-06-05 Miles Bader <miles@gnu.org>
-
- * xfaces.c (tty_supports_face_attributes_p): Make sure the specified
- attributes have different values than the default face.
-
-2004-06-04 Eli Zaretskii <eliz@gnu.org>
-
- * xfaces.c (x_supports_face_attributes_p): Make this function
- conditional on HAVE_WINDOW_SYSTEM.
- (Fdisplay_supports_face_attributes_p) [HAVE_WINDOW_SYSTEM]:
- Don't call x_supports_face_attributes_p if it was not compiled in.
-
-2004-06-04 Miles Bader <miles@gnu.org>
-
- * xfaces.c (tty_supports_face_attributes_p): New function, mostly
- from Ftty_supports_face_attributes_p.
- (x_supports_face_attributes_p): New function.
- (Ftty_supports_face_attributes_p): Function deleted.
- (Fdisplay_supports_face_attributes_p): New function.
- (syms_of_xfaces): Initialize Sdisplay_supports_face_attributes_p.
- (face_attr_equal_p): New function.
- (lface_equal_p): Use it.
-
-2004-06-03 Juanma Barranquero <lektu@terra.es>
-
- * w32fns.c (Fx_display_grayscale_p, Fw32_send_sys_command)
- (Vw32_color_map): Fix typo in docstring.
- (Fx_create_frame, Fw32_find_bdf_fonts, Fx_show_tip)
- (Fw32_unregister_hot_key, Fw32_reconstruct_hot_key):
- Make argument names match their use in docstring.
-
-2004-06-02 Juanma Barranquero <lektu@terra.es>
-
- Work around bugs/problems with MinGW builds of graphics libraries
- called from MSVC builds of Emacs.
-
- * image.c (lookup_image): Make pointer to img static.
- (png_read_from_memory): Disable "global" optimization.
-
-2004-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * eval.c (Fcondition_case): Fix usage. Simplify.
-
- * mem-limits.h (EXCEEDS_LISP_PTR) [USE_LSB_TAG]: Never true.
-
-2004-05-29 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macfns.c: Don't include ccl.h.
- [MAC_OSX]: Don't include QuickTime/QuickTime.h.
- [!MAC_OSX]: Don't include alloca.h, Windows.h, Gestalt.h, or
- TextUtils.h.
- (Fx_create_frame): Sync with xfns.c. Initialize cursor descriptors.
- (Fx_display_mm_height, Fx_display_mm_width): Calculate length from
- display height/width.
- (compute_tip_xy, Vx_max_tooltip_size): Declare.
- (unwind_create_tip_frame, compute_tip_xy): New functions.
- (x_create_tip_frame, Fx_show_tip, Fx_hide_tip): Sync with xfns.c.
- (syms_of_macfns): Initialize Qcancel_timer, Vx_max_tooltip_size,
- and last_show_tip_args.
-
- * macgui.h [!MAC_OSX]: Include Gestalt.h.
- (Cursor, No_Cursor): New defines.
- [!TARGET_API_MAC_CARBON] (SetPortWindowPort): New compatibility macro.
- [!TARGET_API_MAC_CARBON] (arrow_cursor): Declare.
-
- * macmenu.c (mac_menu_show, mac_dialog): Use SetPortWindowPort.
-
- * macterm.c: Don't include Gestalt.h.
- (enum mouse_tracking_type, mouse_tracking_in_progress): Remove.
- (XDrawLine, XClearArea, XClearWindow, mac_draw_bitmap)
- (mac_set_clip_rectangle, mac_reset_clipping, XCreatePixmap)
- (XFillRectangle, mac_draw_rectangle, mac_draw_string_common)
- (mac_copy_area, mac_copy_area_with_mask, x_update_end)
- (construct_mouse_click, XTmouse_position)
- (x_scroll_bar_report_motion, x_calc_absolute_position)
- (do_mouse_moved, do_zoom_window, mac_do_receive_drag)
- (XTread_socket, make_mac_frame): Use SetPortWindowPort.
- (note_mouse_movement): Clear the mouse face and reset the pointer
- shape when the pointer goes outside the frame without grabbing.
- (mac_front_window): New function.
- (mac_window_to_frame): New macro.
- (XTmouse_position, x_scroll_bar_report_motion, do_window_update)
- (do_window_activate, do_window_deactivate, do_app_resume)
- (do_app_suspend, do_mouse_moved, do_menu_choice, do_grow_window)
- (do_zoom_window, mac_do_receive_drag, XTread_socket)
- (mac_check_for_quit_char): Use mac_front_window and/or
- mac_window_to_frame.
- (x_scroll_bar_handle_click): Set `(PORTION . WHOLE)' part in a
- scroll-bar click event.
- (mac_define_frame_cursor): Change the pointer shape.
- (x_free_frame_resources): Reset tip_window to NULL when it is
- disposed of.
- [!TARGET_API_MAC_CARBON] (arrow_cursor): New variable.
- [!TARGET_API_MAC_CARBON] (do_init_managers): Initialize arrow_cursor.
- (do_window_update): Don't do anything if the updated window is the
- tooltip window.
- (do_mouse_moved): Handle mouse movement events here (previously in
- XTread_socket). Clear the mouse face if
- dpyinfo->mouse_face_hidden is set.
- (do_os_event, do_events): Remove (now in XTread_socket).
- (XTread_socket): Immediately return if interrupt_input_blocked.
- Loop until all the events in the queue are processed.
- Rearrange codes for mouse grabbing. Add tooltip support. Include the
- contents of do_os_event and do_events. Remove mouse movement
- handling (now in do_mouse_moved). Add the case where
- Vmouse_highlight has an integer value.
- (NewMacWindow): Remove.
- (make_mac_frame): Do what NewMacWindow previously did. Don't do
- excess initializations.
- (make_mac_terminal_frame): Previous initializations in
- make_mac_frame are moved here.
- (mac_initialize_display_info):
- Initialize dpyinfo->mouse_face_overlay and dpyinfo->mouse_face_hidden.
-
- * xdisp.c [MAC_OS] (No_Cursor): Remove variable.
- (define_frame_cursor1): Don't treat HAVE_CARBON as a special case.
-
-2004-05-29 Richard M. Stallman <rms@gnu.org>
-
- * lisp.h (truncate_undo_list): Update decl.
-
- * alloc.c (undo_outer_limit): New variable.
- (syms_of_alloc): Defvar it.
- (Fgarbage_collect): Pass undo_outer_limit to truncate_undo_list.
-
- * undo.c (truncate_undo_list): New arg LIMITSIZE.
-
- * alloc.c (lisp_align_malloc): Check for base == 0
- regardless of HAVE_POSIX_MEMALIGN.
- Clean up HAVE_POSIX_MEMALIGN handling of `err'.
-
-2004-05-28 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * alloc.c: Undo Kim's recent changes and fix the same bug differently.
- (marker_blocks_pending_free): Remove.
- (Fgarbage_collect): Sweep after cleaning up undo-lists.
- Mark the undo lists after claning them up.
- Don't free block in marker_blocks_pending_free.
- (mark_buffer): Don't mark undo_list.
- (gc_sweep): Sweep hash-tables and strings first.
- Do free marker blocks that are empty.
-
-2004-05-28 Jim Blandy <jimb@redhat.com>
-
- * regex.c (print_partial_compiled_pattern): Add missing 'break'
- after 'case wordend'. For symbeg and symend, print to stderr,
- like the other cases.
-
-2004-05-28 Noah Friedman <friedman@splode.com>
-
- * process.c (Fdelete_process): Do not call remove_process.
-
-2004-05-28 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * alloc.c (struct backtrace): Remove.
- (Fgarbage_collect): Use the new mark_backtrace.
-
- * eval.c (mark_backtrace): New function.
-
- * minibuf.c (run_exit_minibuf_hook): New function.
- (read_minibuf_unwind): Don't run exit-minibuffer-hook any more.
- (read_minibuf): Use separate unwind handler to run exit-minibuf-hook.
-
-2004-05-27 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (back_to_previous_visible_line_start): Skip backwards
- over display properties, e.g. images, that replace buffer text.
-
-2004-05-25 Kim F. Storm <storm@cua.dk>
-
- * alloc.c (marker_blocks_pending_free): New var.
- (gc_sweep): Store free marker blocks on that list.
- (Fgarbage_collect): Free them after undo-list cleanup.
-
- * process.c (wait_reading_process_input): Check connect_wait_mask
- before actually accepting connection in case it has already been
- accepted due to recursion.
-
-2004-05-23 K\e,Aa\e(Broly L\e$,1 q\e(Brentey <lorentey@elte.hu>
-
- * coding.c (Fset_safe_terminal_coding_system_internal):
- Set suppress_error in safe_terminal_coding, not terminal_coding.
-
-2004-05-22 Richard M. Stallman <rms@gnu.org>
-
- * alloc.c (Fmake_string): Doc fix.
-
- * buffer.c (clone_per_buffer_values): Copy the alist of local vars,
- and the alist pairs too.
-
- * casefiddle.c (casify_object): Return OBJ unchanged if not real char.
-
- * emacs.c (main): Update copyright year.
-
- * fileio.c (Fread_file_name): Expand DIR if not absolute.
-
- * insdel.c (del_range_2, replace_range): Don't write an anchor
- if the gap is empty.
-
- * xdisp.c (try_scrolling): If scroll-up-aggressively or
- scroll-down-aggressively is small but positive, put point
- near the screen edge.
-
-2004-05-22 Juanma Barranquero <lektu@terra.es>
-
- * keymap.c (Fdefine_key): Doc fix.
-
-2004-05-22 Kim F. Storm <storm@cua.dk>
-
- * alloc.c (struct backtrace): Add debug_on_exit member.
- (Fgarbage_collect): Clear out buffer undo_list markers after gc_sweep.
- Identify those markers as Lisp_Misc_Free objects. Clear car and cdr of
- the removed cons cells.
- (mark_object): Undo previous change - disallow Lisp_Misc_Free objects.
- (gc_sweep): Clear cons_blocks before sweeping strings, so we don't have
- any cons cells pointing to unallocated stings.
- Do not lisp_free any marker blocks, as there may still be pointers
- to them from buffer undo lists at this stage of GC.
-
- * keyboard.c (struct backtrace): Add debug_on_exit member.
- (Fcommand_execute): Clear it.
-
-2004-05-20 Luc Teirlinck <teirllm@auburn.edu>
-
- * intervals.c (lookup_char_property): Do not prematurely return nil.
-
-2004-05-19 Jim Blandy <jimb@redhat.com>
-
- Add support for new '\_<' and '\_>' regexp operators, matching the
- beginning and end of symbols.
-
- * regex.c (enum syntaxcode): Add Ssymbol.
- (init_syntax_once): Set the syntax for '_' to Ssymbol, not Sword.
- (re_opcode_t): New opcodes `symbeg' and `symend'.
- (print_partial_compiled_pattern): Print the new opcodes properly.
- (regex_compile): Parse the new operators.
- (analyse_first): Skip sym(beg|end) (they match only the empty string).
- (mutually_exclusive_p): `symend' is mutually exclusive with \s_ and
- \sw; `symbeg' is mutually exclusive with \S_ and \Sw.
- (re_match_2_internal): Match symbeg and symend.
-
- * search.c (trivial_regexp_p): \_ is no longer a trivial regexp.
-
-2004-05-19 Kim F. Storm <storm@cua.dk>
-
- * .gdbinit (xsymbol): Fix last change.
-
-2004-05-18 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * .gdbinit (xprintstr): New fun.
- (xstring, xprintsym): Use it.
-
- * w32proc.c (create_child): Use INTMASK.
-
- * alloc.c (Fgarbage_collect): Do all the marking before flushing
- unmarked elements of the undo list.
-
-2004-05-18 David Ponce <david@dponce.com>
-
- * print.c (print): Reset print_depth before to call print_object.
-
-2004-05-18 Jason Rumney <jasonr@gnu.org>
-
- * w32console.c: Prefix RIF functions with w32con_ to avoid
- namespace clash with functions in term.c and w32term.c.
-
- * w32menu.c (add_menu_item, w32_menu_display_help)
- [USE_LISP_UNION_TYPE]: Cast from Lisp_Object using i member.
-
- * w32term.h (display_x_get_resource, vga_stdcolor_name): Add prototype.
-
-2004-05-18 Eli Zaretskii <eliz@gnu.org>
-
- * lisp.h (DECL_ALIGN): Remove restriction on MS-DOS systems.
-
- * msdos.c (syms_of_msdos): Initialize dos-unsupported-char-glyph
- with make_number.
- (IT_write_glyphs): Extract glyph from dos-unsupported-char-glyph
- with XINT.
-
-2004-05-18 Kim F. Storm <storm@cua.dk>
-
- * blockinput.h (INPUT_BLOCKED_P): New macros.
-
- * keyboard.c (Frecursive_edit): Return immediately if input blocked.
- (Ftop_level): Unblock input if blocked.
-
- * buffer.h (GET_OVERLAYS_AT): New macro.
- * msdos.c (IT_note_mouse_highlight): Use it.
- * textprop.c (get_char_property_and_overlay): Use it.
- * xdisp.c (next_overlay_change, note_mouse_highlight): Use it.
- * xfaces.c (face_at_buffer_position): Use it.
-
- * print.c (print_object): Increase buf size.
-
-2004-05-17 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (Fw32_register_hot_key, Fw32_unregister_hot_key)
- (Fw32_toggle_lock_key) [USE_LISP_UNION_TYPE]: Cast from
- Lisp_Object using i member.
- (w32_quit_key): Rename from Vw32_quit_key, and make an int.
- (syms_of_w32fns, globals_of_w32fns): Use Lisp_Object and int
- consistently.
-
- * w32proc.c (create_child): Use make_number instead of masking pid.
-
- * w32fns.c (w32_color_map_lookup): Return a Lisp_Object.
- (x_to_w32_charset, w32_to_x_charset, w32_to_all_x_charsets):
- Use EQ to compare Lisp_Objects.
- (w32_parse_hot_key): Use int for lisp_modifiers consistently.
-
- * w32term.c (w32_num_mouse_buttons): Rename from
- Vw32_num_mouse_buttons and make it an int.
-
- * w32.c (init_environment): Use it.
-
- * w32fns.c (w32_wnd_proc): Likewise.
-
- * w32proc.c (w32_pipe_read_delay): Rename from
- Vw32_pipe_read_delay and make it an int.
-
- * w32.c (_sys_read_ahead): Use it.
-
- * lisp.h (egetenv) [USE_CRT_DLL]: Remove condition.
-
- * w32proc.c (create_child) [USE_LSB_TAG]: Don't try to mask pid.
-
- * w32inevt.c (w32_console_mouse_position, do_mouse_event)
- (key_event): Don't mix Lisp_Object and int.
-
- * w32heap.c (init_heap) [USE_LSB_TAG]: Don't check heap location.
-
- * keyboard.c (kbd_buffer_get_event): Don't use event->code and
- modifiers in language change event.
-
-2004-05-17 Kim F. Storm <storm@cua.dk>
-
- * alloc.c (mark_object): Ignore Lisp_Misc_Free objects.
- Such objects may be freed markers which still exist on an undo list.
-
-2004-05-16 Juanma Barranquero <lektu@terra.es>
-
- * data.c (Fset_default): Make argument names match their use in
- docstring.
-
-2004-05-15 Andreas Schwab <schwab@suse.de>
-
- * emacs.c (gdb_array_mark_flag): Define.
- * .gdbinit: Mask off gdb_array_mark_flag from vector sizes.
-
-2004-05-15 Eli Zaretskii <eliz@gnu.org>
-
- * lisp.h (DECL_ALIGN) [MSDOS]: Don't define DECL_ALIGN to use
- __attribute__((__aligned__)), so that USE_LSB_TAG would not become
- defined for the MS-DOS build.
-
-2004-05-14 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * w32fns.c (Fw32_define_rgb_color): Avoid XSET.
-
-2004-05-14 Kenichi Handa <handa@m17n.org>
-
- * ccl.c (Fccl_execute_on_string): Fix setting elements of STATUS.
-
-2004-05-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * lisp.h (Vx_resource_name, Vx_resource_class): Move from xfns.c
- section to frame.c section.
- (Fxw_display_color_p, Fx_file_dialog): Declare if
- HAVE_WINDOW_SYSTEM defined.
-
- * macfns.c (Fx_create_frame): Fix int/Lisp_Object mixup.
-
- * macmenu.c (set_frame_menubar): Use NILP to test a lisp value.
-
- * macterm.c (mac_get_emulated_btn, mac_event_to_emacs_modifiers)
- (mac_get_mouse_btn): Use NILP and EQ to test/compare lisp values.
- (XTread_socket): Fix int/Lisp_Object mixup.
- (mac_check_for_quit_char): Fix pointer/Lisp_Object mixup.
-
- * macterm.h (struct frame, struct face, struct image)
- (display_x_get_resource, Fx_display_color_p)
- (Fx_display_grayscale_p, Fx_display_planes, x_free_gcs):
- Add prototypes.
-
-2004-05-14 Kim F. Storm <storm@cua.dk>
-
- * process.c (wait_reading_process_input): Make reentrant.
- Make Available and Connecting non-static. Save and restore value
- of waiting_for_user_input_p.
-
-2004-05-13 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (mark_kboards): Don't mark x and y members
- that are overloaded in selection request events.
-
-2004-05-13 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * lisp.h (USE_LSB_TAG): Make it the default when it is known to work.
-
-2004-05-13 Glenn Morris <gmorris@ast.cam.ac.uk>
-
- * window.c (Fdisplay_buffer, Fsplit_window)
- (split-height-threshold): Doc fix.
-
-2004-05-13 Juanma Barranquero <lektu@terra.es>
-
- * xfaces.c (Ftty_supports_face_attributes_p)
- (Finternal_copy_lisp_face): Fix typo in docstring.
- (Finternal_get_lisp_face_attribute): Fix docstring.
-
-2004-05-12 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (syms_of_xfns): Provide x-toolkit also for GTK.
-
-2004-05-11 Steven Tamm <steventamm@mac.com>
-
- * macfns.c (Fx_create_frame): Default to using tool-bar by
- setting tool-bar-lines to 1 in default-frame-alist.
-
-2004-05-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * image.c (xpm_scan, xpm_make_color_table_v, xpm_put_color_table_v)
- (xpm_get_color_table_v, xpm_make_color_table_h)
- (xpm_put_color_table_h, xpm_get_color_table_h)
- (xpm_str_to_color_key, xpm_load_image, xpm_load)
- (syms_of_image): Support XPM on Carbon Emacs. Does not
- depend on libXpm, but only supports XPM version 3 without extensions.
-
-2004-05-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (x_flush, XTframe_up_to_date): Use FRAME_MAC_P
- instead of FRAME_X_P
-
-2004-05-11 Kim F. Storm <storm@cua.dk>
-
- * process.c (read_process_output): Grow decoding_buf when needed;
- this could cause a crash in allocate_string and compact_small_strings.
-
-2004-04-29 Jim Blandy <jimb@redhat.com>
-
- * regex.c (mutually_exclusive_p): In 'case wordbeg', compare op2
- against proper opcode.
-
-2004-05-10 Juanma Barranquero <lektu@terra.es>
-
- * process.c (Fstart_process): Fix docstring.
-
- * charset.c (Fget_unused_iso_final_char): Fix typos in docstring.
- (Fchar_bytes, Fchar_width, Fstring_width, Fchar_direction)
- (Fsplit_char, Fchar_charset): Make argument names match their use
- in docstring.
-
-2004-05-10 Richard M. Stallman <rms@gnu.org>
-
- * print.c (print_preprocess): Use being_printed, loop_count and
- halftail to detect overdeep nesting and cyclic cdr chains.
-
-2004-05-10 Andreas Schwab <schwab@suse.de>
-
- * lisp.h (Fmake_symbolic_link): Declare.
-
- * fileio.c (Frename_file): Remove extra argument in call to
- Fmake_symbolic_link.
-
-2004-05-10 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (calc_line_height_property): Use string position when
- object is a string.
-
-2004-05-10 Kenichi Handa <handa@m17n.org>
-
- * print.c (temp_output_buffer_setup): Bind inhibit-read-only and
- inhibit-modification-hooks to t temporarily before calling
- Ferase_buffer.
-
- * xfns.c (x_create_tip_frame): Bind inhibit-read-only and
- inhibit-modification-hooks to t temporarily before calling
- Ferase_buffer.
-
- * w32fns.c (x_create_tip_frame): Bind inhibit-read-only and
- inhibit-modification-hooks to t temporarily before calling
- Ferase_buffer.
-
- * fns.c (count_combining): Delete it.
- (concat): Don't check combining bytes.
-
-2004-05-09 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (Vw32_ansi_code_page): New Lisp variable.
- (globals_of_w32fns): Set it.
-
-2004-05-09 Piet van Oostrum <piet@cs.uu.nl>
-
- * data.c (Fquo): Simplify.
-
-2004-05-08 Peter Whaite <emacs@whaite.ca> (tiny change)
-
- * data.c (Fquo): If any argument is float, do the computation in
- floating point.
-
-2004-05-08 Juanma Barranquero <lektu@terra.es>
-
- * process.c (Fwaiting_for_user_input_p, Fmake_network_process)
- (Fset_process_query_on_exit_flag, Vprocess_adaptive_read_buffering):
- Fix spelling of Emacs on docstring.
- (Fset_process_coding_system, Fprocess_coding_system)
- (Fset_process_filter_multibyte, Fprocess_filter_multibyte_p):
- Make argument names match their use in docstring.
- (Fprocess_id, Fprocess_query_on_exit_flag, Finterrupt_process):
- Fix docstring.
-
- * editfns.c (Finsert_buffer_substring): Make argument names match their
- use in docstring.
-
- * syntax.c (Fmodify_syntax_entry): Fix docstring.
-
-2004-05-07 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
- around call to ReceiveEvent to avoid certain crashes.
-
-2004-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (mac_draw_line_to_pixmap, XCreatePixmapFromBitmapData)
- (mac_fill_rectangle_to_pixmap, mac_draw_rectangle_to_pixmap)
- (mac_copy_area_to_pixmap, mac_copy_area_with_mask_to_pixmap):
- Save/restore the current graphics port and device handle when
- drawing into an offscreen graphics world.
-
- * image.c [MAC_OS] (XPutPixel, XGetPixel, image_load_qt_1)
- (gif_load): Likewise.
-
-2004-05-07 Juanma Barranquero <lektu@terra.es>
-
- * window.c (Fset_window_buffer): Fix docstring.
-
-2004-05-06 Thien-Thi Nguyen <ttn@gnu.org>
-
- * emacs.c (main) [VMS]: Fix var ref.
-
-2004-05-06 Romain Francoise <romain@orebokech.com>
-
- * data.c (Fsetq_default): Fix docstring.
-
-2004-05-06 Jason Rumney <jasonr@gnu.org>
-
- * image.c (Display) [HAVE_NTGUI]: Redefine while loading xpm.h
- to avoid name clash.
-
-2004-05-04 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * fileio.c (barf_or_query_if_file_exists): Use lstat.
- (Frename_file): Handle renaming of symlinks across file systems.
- (Frename_file): Put symlink handling inside #ifdef S_IFLNK.
-
-2004-05-04 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (Qtotal): New var.
- (syms_of_xdisp): Intern and staticpro it.
- (calc_line_height_property): New arg total. Set it if
- line-spacing property has format (total . VALUE).
- (x_produce_glyphs): Ignore line-spacing if line-height is 0.
- Handle total line-spacing property.
-
-2004-05-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_update_scrollbar_pos): Call XClearWindow to clear
- "under" scroll bar when size/position changes.
-
-2004-05-03 Jason Rumney <jasonr@gnu.org>
-
- * makefile.nt: Remove.
-
-2004-05-02 Eli Zaretskii <eliz@gnu.org>
-
- * syntax.h (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY_INT):
- Avoid compiler warnings.
-
- * Makefile.in (region-cache.o): Depend on config.h.
-
-2004-05-02 Romain Francoise <romain@orebokech.com>
-
- * indent.c (compute_motion): Save vpos in prev_vpos when dealing
- with continuation lines, too.
-
-2004-05-02 Thien-Thi Nguyen <ttn@gnu.org>
-
- * syssignal.h (init_signals): Move decl outside `#ifdef POSIX_SIGNALS'.
-
-2004-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xdisp.c (calc_line_height_property): YAILOM (yet another
- int/Lisp_Object mixup).
-
-2004-05-01 Eli Zaretskii <eliz@gnu.org>
-
- * msdos.c (top-level): Add "#pragma pack(0)" after <dir.h>, to
- undo bad effect of pack(4) in some versions of system headers.
-
-2004-05-01 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (x_draw_hollow_cursor): Sync with xterm.c
-
-2004-04-30 Kim F. Storm <storm@cua.dk>
-
- * buffer.c (syms_of_buffer) <line-spacing>: Allow float value.
- (syms_of_buffer) <cursor-type>: Doc fix.
-
- * dispextern.h (struct it): Remove member use_default_face.
- Add members override_ascent, override_descent, override_boff.
-
- * xdisp.c (init_iterator): Handle line-spacing float value.
- Initialize override_ascent member.
- (append_space_for_newline): Reset override_ascent.
- Remove use_default_face.
- (calc_line_height_property): New function to calculate value of
- line-height and line-spacing properties. Look at overlays, too.
- Set override_ascent, override_descent, override_boff members when
- using another face than the current face. Float values are now
- relative to the frame default font, by default; accept a cons
- of ratio and face name to specify value relative to a specific face.
- (x_produce_glyphs): Use calc_line_height_property.
- Use override_ascent etc. when set to handle different face heights.
- A negative line-spacing property value is interpreted as a total
- line height, rather than inter-line spacing.
- (note_mouse_highlight): Allocate room for 40 overlays initially.
-
-2004-04-29 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * data.c (Fsubr_name): New fun.
- (syms_of_data): Defsubr it.
-
-2004-04-29 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (null_glyph_slice): New var.
- (append_glyph, append_composite_glyph, append_stretch_glyph):
- Use it to initialize glyph slice.
-
-2004-04-27 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xdisp.c (x_produce_glyphs): Fix the proverbial int/Lisp_Object mixup.
- (on_hot_spot_p): Make sure we always return a value.
- (Flookup_image_map): Remove unused var ix and iy.
- (note_mode_line_or_margin_highlight): Remove unused var `image'.
-
-2004-04-27 Eli Zaretskii <eliz@gnu.org>
-
- * msdos.c (init_environment): If one of the TMP... environment
- variables is set to a drive letter without a trailing slash,
- append a slash.
-
-2004-04-27 Matthew Mundell <matt@mundell.ukfsn.org>
-
- * editfns.c (lisp_time_argument): Provide externally.
-
- * fileio.c (Fset_file_times): New function.
- (syms_of_fileio): Intern and staticpro it.
-
-2004-04-27 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (x_produce_glyphs): Fix last change; handle newline in
- header line strings.
-
- * dispextern.h (struct it): New member use_default_face.
-
- * xdisp.c (Qline_height): New variable.
- (syms_of_xdisp): Intern and staticpro it.
- (append_space_for_newline): Partially undo 2004-04-25 change;
- add default_face_p arg, and restore callers.
- Clear it->use_default_face after use.
- (x_produce_glyphs): Set default font for ascii char if
- it->use_default_font is set. Change line-spacing property to set
- just extra line spacing. Handle new line-height property.
-
-2004-04-26 Andreas Schwab <schwab@suse.de>
-
- * print.c (print_object): Print non-ascii characters in bool
- vector representation as octal escapes.
-
- * lisp.h (BOOL_VECTOR_BITS_PER_CHAR): Define.
- * print.c (print_object): Use it instead of BITS_PER_CHAR for
- bool vectors.
- * lread.c (read1): Likewise.
- * alloc.c (Fmake_bool_vector): Likewise.
- * data.c (Faref, Faset): Likewise.
- * fns.c (Fcopy_sequence, concat, internal_equal, Ffillarray)
- (mapcar1): Likewise.
-
-2004-04-26 Steven Tamm <tamm@Steven-Tamms-Computer.local>
-
- * lread.c (init_lread): Fix typo in HAVE_CARBON test logic.
-
-2004-04-26 Miles Bader <miles@gnu.org>
-
- * lisp.h (CYCLE_CHECK): Macro moved from xfaces.c.
-
-2004-04-26 Juanma Barranquero <lektu@terra.es>
-
- * buffer.c (Fpop_to_buffer): Fix docstring.
-
-2004-04-26 Steven Tamm <steventamm@mac.com>
-
- * lread.c (init_lread): Don't display missing lisp directory
- warnings with Carbon Emacs because self-contained bundled Emacs
- may be built without correct installation path.
-
-2004-04-25 Kim F. Storm <storm@cua.dk>
-
- * macterm.c (x_draw_hollow_cursor): Fix height of box for narrow lines.
-
- * xterm.c (x_draw_hollow_cursor): Fix height of box for narrow lines.
-
- * xdisp.c (append_space_for_newline): Rename from append_space.
- Remove DEFAULT_FACE_P arg; always use current face. Callers changed.
- (x_produce_glyphs): Handle line-spacing property on newline char.
- If value is t, adjust ascent and descent to fit current row height.
- If value is an integer or float, set extra_line_spacing to integer
- value, or to float value x current line height.
-
-2004-04-23 Kenichi Handa <handa@m17n.org>
-
- * fontset.c (Finternal_char_font): If POSITION is nil, return
- font for displaying CH with the default face.
-
-2004-04-23 Juanma Barranquero <lektu@terra.es>
-
- * makefile.w32-in: Add "-*- makefile -*-" mode tag.
-
-2004-04-21 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND && !NO_UNION_TYPE]:
- Don't make assumptions about the relative place of i and val.
- (EQ) [!NO_UNION_TYPE]: Don't forget to check the type match as well.
-
-2004-04-21 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (struct glyph_slice): New struct.
- (struct glyph): New member slice.
- (GLYPH_SLICE_EQUAL_P): New macro.
- (GLYPH_EQUAL_P): Use it.
- (struct glyph_string): New member slice.
- (struct it_slice): New struct.
- (struct it): New member slice, add member to stack too.
- New member constrain_row_ascent_descent_p.
- (image_ascent): Add prototype.
-
- * dispnew.c (buffer_posn_from_coords): Return full image width
- and height even for image slices (posn is relative to full image).
- (marginal_area_string): Adjust x0,y0 for image slice.
-
- * image.c (image_ascent): Add slice arg; calculate ascent for
- image slice (or full image).
-
- * keyboard.c (Fposn_at_x_y, Fposn_at_point): New defuns.
- (syms_of_keyboard): Defsubr them.
-
- * lisp.h (pos_visible_p): Fix prototype.
-
- * macterm.c (x_draw_relief_rect): Add top_p and bot_p args.
- (x_draw_glyph_string_box): Fix call to x_draw_relief_rect.
- (x_draw_image_foreground, x_draw_image_relief)
- (x_draw_image_foreground_1, x_draw_image_glyph_string):
- Draw sliced images.
-
- * w32term.c (w32_draw_relief_rect): Add top_p and bot_p args.
- (x_draw_glyph_string_box): Fix call to x_draw_relief_rect.
- (x_draw_image_foreground, x_draw_image_relief)
- (w32_draw_image_foreground_1, x_draw_image_glyph_string):
- Draw sliced images.
-
- * w32term.h (image_ascent): Remove prototype.
-
- * window.c (Fpos_visible_in_window_p): Return pixel position if
- PARTIALLY arg is non-nil. Simplify. Doc fix.
- (Fwindow_vscroll, Fset_window_vscroll): Add optional PIXEL_P arg
- to return/set vscroll in pixels.
-
- * window.h (Fwindow_vscroll, Fset_window_vscroll): Fix EXFUN.
-
- * xdisp.c (Qslice): New variable.
- (syms_of_xdisp): Intern and staticpro it.
- (pos_visible_p): Return pixel position in new x and y args.
- (init_iterator): Reset it->slice info.
- (handle_display_prop): Parse (slice ...) property.
- (push_it, pop_it): Save/restore slice info.
- (make_cursor_line_fully_visible): Fix 2004-04-14 change. Do not
- force repositioning of tall row if window is vscrolled, as that
- would reset vscroll.
- (append_space): Set it->constrain_row_ascent_descent_p to avoid
- increasing row height if row is non-empty.
- (fill_image_glyph_string): Copy slice info.
- (take_vertical_position_into_account): Simplify.
- (produce_image_glyph): Handle iterator slice info, setup glyph
- slice info. Do not force minimum line height.
- (x_produce_glyphs): If it->constrain_row_ascent_descent_p is set,
- do not increase height (ascent/descent) of non-empty row when
- adding normal character glyph; instead reduce glyph ascent/descent
- appropriately; if row is higher than current glyph, adjust glyph
- descent/ascent to reposition glyph within the existing row.
- Likewise, when char is newline, only set ascent/descent if row is
- currently empty.
- (note_mouse_highlight): Handle hotspots with sliced image.
-
- * xterm.c (x_draw_relief_rect): Add top_p and bot_p args.
- (x_draw_glyph_string_box): Fix call to x_draw_relief_rect.
- (x_draw_image_foreground, x_draw_image_relief)
- (x_draw_image_foreground_1, x_draw_image_glyph_string):
- Draw sliced images.
-
- * xterm.h (image_ascent): Remove prototype.
-
-2004-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keymap.c (Fkey_description): Fix the usual int/Lisp_Object mixup.
-
-2004-04-20 John Paul Wallington <jpw@gnu.org>
-
- * fns.c (Fassoc, Feql): Fix indentation.
-
- * fontset.c (regularize_fontname): Rename from regulalize_fontname.
-
-2004-04-19 John Paul Wallington <jpw@gnu.org>
-
- * fns.c (Feql): New function.
- (syms_of_fns): Defsubr it.
-
-2004-04-18 Jason Rumney <jasonr@gnu.org>
-
- * w32select.c (Fw32_set_clipboard_data): Get sequence number
- after closing the clipboard.
-
-2004-04-16 Luc Teirlinck <teirllm@auburn.edu>
-
- * buffer.c (Fbuffer_base_buffer): Doc fix.
-
-2004-04-17 Kim F. Storm <storm@cua.dk>
-
- * keymap.c (Fkey_description): Add optional PREFIX arg.
- Combine prefix with KEYS to make up the full key sequence to describe.
- Correlate meta_prefix_char and following (simple) key to describe
- as meta modifier. All callers changed.
- (describe_map): Rename arg `keys' to `prefix'. Remove local
- `elt_prefix' var. Use Fkey_description with prefix instead of
- elt_prefix combined with Fsingle_key_description.
- (describe_vector): Declare static. Replace arg `elt_prefix' with
- `prefix'. Add KEYMAP_P arg. Add local var `elt_prefix'; use it
- if !KEYMAP_P. Use Fkey_description with prefix instead of
- Fsingle_key_description.
-
- * keymap.h (Fkey_description): Fix prototype.
- (describe_vector): Remove prototype.
-
- * xdisp.c (update_overlay_arrows): Fix handling of up_to_date < 0.
-
- * image.c (PNG_BG_COLOR_SHIFT): Remove.
- (png_load): Fix calculation of transparent background color on X
- and W32 platforms.
-
-2004-04-16 Juanma Barranquero <lektu@terra.es>
-
- * xdisp.c (try_scrolling): Make sure `scroll-conservatively' is
- not too large before computing how much to scroll.
-
-2004-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * dired.c (Ffile_attributes): Don't pass extra nil arg to file-handler.
-
-2004-04-14 Luc Teirlinck <teirllm@auburn.edu>
-
- * fileio.c (Fverify_visited_file_modtime, Fvisited_file_modtime):
- Add hyperlink to Elisp manual to the docstring.
-
-2004-04-14 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * callint.c (fix_command): Use XDCR.
-
-2004-04-14 Nick Roberts <nick@nick.uklinux.net>
-
- * window.c (Fget_lru_window): Doc fix.
-
-2004-04-14 Kim F. Storm <storm@cua.dk>
-
- * editfns.c (Fformat): Fix allocation size of precision array.
-
- * dispnew.c (update_window): Only set changed_p if
- scrolling_window actually did scroll.
- (scrolling_window): Only return 1 if we actually did scroll.
-
- * xdisp.c (get_glyph_string_clip_rect): Fix reduction of cursor
- height to glyph height when cursor row is not fully visible.
- (make_cursor_line_fully_visible): Add FORCE_P arg to return
- failure in case row is higher than window. Callers changed.
- (try_scrolling): Fix loop in scrolling if last_line_misfit (from Gerd).
- Try to scroll partially visible, higher-than-window cursor row.
- (redisplay_window): Always try to scroll partially visible,
- higher-than-window cursor row - both initially and again with
- centering_position = 0.
- Clear desired matrix before retrying with centering_position = 0.
-
-2004-04-13 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * syntax.c (scan_lists): Simplify backward string scan.
- Fix off-by-one boundary check for string and comment fences.
-
-2004-04-13 Joe Buehler <jbuehler@hekimian.com>
-
- * sheap.c, unexcw.c: New files.
-
-2004-04-12 Luc Teirlinck <teirllm@auburn.edu>
-
- * buffer.c (Fmake_indirect_buffer): Throw an error if the intended
- base buffer has been killed. Correct the error message if the
- base buffer does not exist.
-
-2004-04-12 Joe Buehler <jbuehler@hekimian.com>
-
- * s/cygwin.h: Changes for Cygwin unexec() support, changes in
- Cygwin itself. Add support for Xaw3d scrollbars.
-
- * puresize.h: Set up PURE_P() for Cygwin unexec() support.
-
- * lastfile.c: Define my_endbss[] for Cygwin unexec() support.
-
- * gmalloc.c (__default_morecore): Use bss_sbrk(), not __sbrk(),
- before Cygwin unexec.
-
- * Makefile.in: Link changes for Cygwin unexec() support.
-
-2004-04-12 Andreas Schwab <schwab@suse.de>
-
- * buffer.c (Fmake_indirect_buffer): Check that NAME is a string.
-
-2004-04-11 Luc Teirlinck <teirllm@auburn.edu>
-
- * buffer.c (Fgenerate_new_buffer_name): Return NAME argument if
- IGNORE argument equals NAME. Doc fix.
-
-2004-04-11 Masatake YAMATO <jet@gyve.org>
-
- * buffer.c (fix_start_end_in_overlays): Make overlays
- empty if they are backwards.
-
-2004-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * xfaces.c (face_color_supported_p): Fix compilation without X11.
-
-2004-04-07 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * doc.c (Fsnarf_documentation): Ignore new file name entries.
-
-2004-04-06 Kim F. Storm <storm@cua.dk>
-
- * msdos.c (clear_mouse_face): Only clear mouse highlight if not hidden.
- (dos_rawgetc): Set mouse_face_hidden after clearing highlight.
-
- * w32term.c (w32_read_socket): Set mouse_face_hidden after
- clearing highlight.
-
- * xdisp.c (clear_mouse_face): Only clear mouse highlight if not hidden.
-
- * xterm.c (handle_one_xevent): Set mouse_face_hidden after
- clearing highlight.
-
- * indent.c (vmotion): Do not reserve one column for continuation
- marks on window frames.
-
-2004-04-04 Eli Zaretskii <eliz@gnu.org>
-
- * charset.h (SINGLE_BYTE_CHAR_P): Fix macro to avoid warnings
- from GCC.
-
-2004-04-03 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * .gdbinit-union: Remove.
-
- * .gdbinit: Make it work for USE_LSB_TAG and !NO_LISP_UNION.
- (xgetptr, xgetint, xgettype): New funs. Use them everywhere.
- ($nonvalbits): Remove.
- ($valmask): Set it by calling xreload to avoid redundancy.
-
- * emacs.c (gdb_use_union, gdb_use_lsb): New vars.
- (gdb_emacs_intbits): Remove.
-
-2004-03-31 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * data.c (Fbyteorder): Make test work even if unsigned is not 4 bytes.
-
-2004-03-30 Kenichi Handa <handa@m17n.org>
-
- * editfns.c (Fformat): Fix initialization of the array info.
-
-2004-03-30 Kim F. Storm <storm@cua.dk>
-
- * xterm.c (x_mouse_click_focus_ignore_position): New var.
- (syms_of_xterm): DEFVAR_BOOL it.
- (ignore_next_mouse_click_timeout): New var.
- (handle_one_xevent): Clear it on KeyPress, set it on EnterNotify.
- Use it to filter mouse clicks following focus event.
-
-2004-03-29 David Ponce <david@dponce.com>
-
- * callint.c (Fcall_interactively): Fix last change.
-
-2004-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * eval.c (Fcommandp): Simplify.
-
- * data.c (Finteractive_form): Rename from Fsubr_interactive_form.
- Extend to handle all kinds of functions.
-
- * lisp.h (Finteractive_form): Declare.
-
- * callint.c (Fcall_interactively): Use it.
-
-2004-03-26 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (syms_of_xdisp): Include `void-variable' in list_of_error
- to catch errors in calc_pixel_width_or_height during redisplay.
-
-2004-03-26 Masatake YAMATO <jet@gyve.org>
-
- * buffer.c (fix_start_end_in_overlays): Rename fix_overlays_in_range.
-
- * lisp.h (fix_start_end_in_overlays): Likewise.
-
- * insdel.c (adjust_markers_for_insert): Call fix_start_end_in_overlays.
-
- * editfns.c (Ftranspose_regions): Likewise.
-
-2004-03-20 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (handle_one_xevent): Do not pass key press events to GTK.
-
-2004-03-19 Richard M. Stallman <rms@gnu.org>
-
- * s/sol2-6.h: Delete previous change.
-
-2004-03-19 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (move_it_in_display_line_to): Fix MOVE_TO_POS case when
- to_charpos corresponds to newline in right fringe. Use local
- BUFFER_POS_REACHED_P macro.
-
-2004-03-19 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xdisp.c (calc_pixel_width_or_height): Add ifdef HAVE_WINDOW_SYSTEM
- to compile on non-window system.
-
-2004-03-19 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (calc_pixel_width_or_height): Add prototype.
-
- * image.c (Qcenter): Move to xdisp.c.
-
- * xdisp.c (Qcenter): Declare here.
- (syms_of_xdisp): Intern and staticpro it.
- (handle_single_display_prop): Allow space display property on all
- platforms.
- (display_mode_line): Set mode_line_p before displaying line.
- (calc_pixel_width_or_height): Declare extern. Add separate :align-to
- handling. Remove complex cases for fringes and scroll-bars.
- Add left, right, and center alignment positions. Add text (area)
- width/height. Return width or height for image specs.
- (produce_stretch_glyph): Improve handling of :align-to. Is now
- relative to left of text area by default, but other base offsets
- can be specified -- also for text lines.
-
- * term.c (produce_glyphs): Handle IT_STRETCH.
- (produce_stretch_glyph): New function to handle space width and
- align-to display properties on non-window systems.
-
-2004-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * fileio.c (Fread_file_name): Set completion-ignore-case for
- case-insensitive systems.
-
-2004-03-14 Masatake YAMATO <jet@gyve.org>
-
- * xdisp.c (note_mode_line_or_margin_highlight): Accept HEADER_LINE
- when keymap and cursor are setup.
-
-2004-03-14 Steven Tamm <steventamm@mac.com>
-
- * Makefile.in (XMENU_OBJ) [HAVE_CARBON]: Do not include xmenu.o.
-
-2004-03-14 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (x_find_image_file): Add prototype.
-
- * image.c (x_find_image_file): Make extern.
-
- * xfns.c (x_find_image_file): Remove prototype.
-
-2004-03-13 Eli Zaretskii <eliz@gnu.org>
-
- * Makefile.in (XMENU_OBJ): Include xmenu.o if HAVE_MENUS is defined.
-
- * emacs.c (main): Call syms_of_xmenu only if HAVE_MENUS is defined.
-
-2004-03-12 Richard M. Stallman <rms@gnu.org>
-
- * fns.c (internal_equal): New arg PROPS controls comparing
- text properties. All callers changed.
- (Fequal_including_properties): New function.
- (syms_of_fns): defsubr it.
-
-2004-03-12 Kim F. Storm <storm@cua.dk>
-
- Fix image support on MAC. From YAMAMOTO Mitsuharu.
-
- * dispextern.h (XImagePtr, XImagePtr_or_DC): Add typedefs.
- (image_background, image_background_transparent): Fix prototypes.
-
- * image.c (XImagePtr, XImagePtr_or_DC): Move typedefs to dispextern.h.
-
- * macfns.c (x_list_fonts, x_get_font_info, x_load_font)
- (x_query_font, x_find_ccl_program, x_set_window_size)
- (x_make_frame_visible, mac_initialize, XCreatePixmap)
- (XCreatePixmapFromBitmapData, XFreePixmap, XSetForeground)
- (mac_draw_line_to_pixmap): Move prototypes to macterm.h.
-
- * macterm.h (x_list_fonts, x_get_font_info, x_load_font)
- (x_query_font, x_find_ccl_program, x_set_window_size)
- (x_make_frame_visible, mac_initialize, XCreatePixmap)
- (XCreatePixmapFromBitmapData, XFreePixmap, XSetForeground)
- (mac_draw_line_to_pixmap): Add prototypes.
-
-2004-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * macterm.c (XTread_socket): Fix mouse click on tool bar.
-
-2004-03-11 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h: Move image related prototypes from xfns.c section
- to image.c. Condition them by HAVE_WINDOW_SYSTEM rather than
- HAVE_X_WINDOWS.
-
- * Makefile.in (XOBJ): Consolidate into one list. Add image.o.
- Move gtkutil.o to new GTK_OBJ list.
- (XMENU_OBJ) [HAVE_MENUS]: Move declaration to proper place.
- (GTK_OBJ) [USE_GTK]: New declaration.
- (obj): Add $(GTK_OBJ) to list.
-
-2004-03-11 Steven Tamm <steventamm@mac.com>
-
- * image.c [MAC_OSX]: Include sys/stat.h.
-
- * macfns.c (syms_of_macfns): Remove definitions of things now
- defined in image.c.
-
-2004-03-11 Kim F. Storm <storm@cua.dk>
-
- The following changes consolidates the identical/similar image
- support code previously found in xfns.c, w32fns.c, and macfns.c
- into a new file image.c.
-
- * makefile.w32-in (OBJ1): Add image.o.
- ($(BLD)/image.$(O)): Add dependencies.
-
- * Makefile.in (XOBJ, MAC_OBJ): Add image.o.
- (image.o): Add dependencies.
-
- * image.c: New file with consolidated image support code.
- (COLOR_TABLE_SUPPORT): New define to control whether
- color table support is available (X only).
- (Bitmap_Record): Common name for x_bitmap_record,
- w32_bitmap_record, and mac_bitmap_record.
- (XImagePtr): Common name for pointer to XImage or equivalent.
- (XImagePtr_or_DC): New type to simplify code sharing; equivalent
- to XImagePtr on X+MAC, and to HDC on W32.
- (GET_PIXEL): Wrapper for XGetPixel or equivalent.
- (NO_PIXMAP): Common name for "None" or equivalent.
- (PNG_BG_COLOR_SHIFT): Bits to shift PNG background colors.
- (RGB_PIXEL_COLOR): Common type for an integer "pixel color" value.
- (PIX_MASK_RETAIN, PIX_MASK_DRAW): Portability macros (from macfns.c).
- (FRAME_X_VISUAL, x_defined_color, DefaultDepthOfScreen):
- Define with suitable equivalents on W32 and MAC for code sharing.
- (XDrawLine): Define on MAC for code sharing.
- (Destroy_Image, Free_Pixmap): Wrappers for code sharing.
- (IF_LIB_AVAILABLE): Macro to simplify code sharing.
- (Vx_bitmap_file_path, Vimage_cache_eviction_delay)
- (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
- (x_reference_bitmap, x_create_bitmap_from_data)
- (x_create_bitmap_from_file, x_destroy_bitmap)
- (x_destroy_all_bitmaps, x_create_bitmap_mask)
- (XGetImage, XPutPixel, XGetPixel, XDestroyImage)
- (QCascent, QCmargin, QCrelief, QCconversion, QCcolor_symbols)
- (QCheuristic_mask, QCindex, QCmatrix, QCcolor_adjustment, QCmask)
- (Qlaplace, Qemboss, Qedge_detection, Qheuristic, Qcenter)
- (define_image_type, lookup_image_type, valid_image_p)
- (image_error, enum image_value_type, struct image_keyword)
- (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p)
- (make_image, free_image, prepare_image_for_display, image_ascent)
- (four_corners_best, image_background, image_background_transparent)
- (x_clear_image_1, x_clear_image, x_alloc_image_color)
- (make_image_cache, free_image_cache, clear_image_cache)
- (Fclear_image_cache, postprocess_image, lookup_image, cache_image)
- (forall_images_in_image_cache, x_create_x_image_and_pixmap)
- (x_destroy_x_image, x_put_x_image, x_find_image_file, slurp_file)
- (find_image_fsspec, image_load_qt_1, image_load_quicktime)
- (init_image_func_pointer, image_load_quartz2d)
- (struct ct_color, init_color_table, free_color_table)
- (lookup_rgb_color, lookup_pixel_color, colors_in_color_table)
- (cross_disabled_images, x_to_xcolors, x_from_xcolors)
- (x_detect_edges, x_emboss, x_laplace, x_edge_detection)
- (x_disable_image, x_build_heuristic_mask)
- (XBM support, XPM support, PBM support, PNG support, JPEG support)
- (TIFF support, GIF support, Ghostscript support): Consolidate image
- code from xfns.c, w32fns.c, and macfns.c.
- (syms_of_image): Consolidate image related symbol setup here.
- (init_image): Consolidate image related initializations here.
-
- * emacs.c (main) [HAVE_WINDOW_SYSTEM]: Add calls to syms_of_image
- and init_image. Remove call to init_xfns.
-
- * macterm.h (struct mac_bitmap_record): Add file member.
- Not currently used, but simplifies code sharing.
-
- * macfns.c (Vx_bitmap_file_path, Vimage_cache_eviction_delay)
- (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
- (x_reference_bitmap, x_create_bitmap_from_data)
- (x_create_bitmap_from_file, x_destroy_bitmap)
- (x_destroy_all_bitmaps, x_create_bitmap_mask)
- (XGetImage, XPutPixel, XGetPixel, XDestroyImage)
- (QCascent, QCmargin, QCrelief, QCconversion, QCcolor_symbols)
- (QCheuristic_mask, QCindex, QCmatrix, QCcolor_adjustment, QCmask)
- (Qlaplace, Qemboss, Qedge_detection, Qheuristic, Qcenter)
- (define_image_type, lookup_image_type, valid_image_p)
- (image_error, enum image_value_type, struct image_keyword)
- (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p)
- (make_image, free_image, prepare_image_for_display, image_ascent)
- (four_corners_best, image_background, image_background_transparent)
- (x_clear_image_1, x_clear_image, x_alloc_image_color)
- (make_image_cache, free_image_cache, clear_image_cache)
- (Fclear_image_cache, postprocess_image, lookup_image, cache_image)
- (forall_images_in_image_cache, x_create_x_image_and_pixmap)
- (x_destroy_x_image, x_put_x_image, x_find_image_file, slurp_file)
- (find_image_fsspec, image_load_qt_1, image_load_quicktime)
- (init_image_func_pointer, image_load_quartz2d)
- (struct ct_color, init_color_table, free_color_table)
- (lookup_rgb_color, lookup_pixel_color, colors_in_color_table)
- (cross_disabled_images, x_to_xcolors, x_from_xcolors)
- (x_detect_edges, x_emboss, x_laplace, x_edge_detection)
- (x_disable_image, x_build_heuristic_mask)
- (XBM support, XPM support, PBM support, PNG support, JPEG support)
- (TIFF support, GIF support, Ghostscript support): Merge with image
- code from xfns.c and macfns.c into image.c.
- (syms_of_xfns): Move image related symbols to image.c.
- (init_external_image_libraries, init_xfns): Remove; initialization
- moved to init_image in image.c.
-
- * w32fns.c (Vx_bitmap_file_path, Vimage_cache_eviction_delay)
- (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
- (x_reference_bitmap, x_create_bitmap_from_data)
- (x_create_bitmap_from_file, x_destroy_bitmap)
- (x_destroy_all_bitmaps, x_create_bitmap_mask)
- (QCascent, QCmargin, QCrelief, QCconversion, QCcolor_symbols)
- (QCheuristic_mask, QCindex, QCmatrix, QCcolor_adjustment, QCmask)
- (Qlaplace, Qemboss, Qedge_detection, Qheuristic, Qcenter)
- (define_image_type, lookup_image_type, valid_image_p)
- (image_error, enum image_value_type, struct image_keyword)
- (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p)
- (make_image, free_image, prepare_image_for_display, image_ascent)
- (four_corners_best, image_background, image_background_transparent)
- (x_clear_image_1, x_clear_image, x_alloc_image_color)
- (make_image_cache, free_image_cache, clear_image_cache)
- (Fclear_image_cache, postprocess_image, lookup_image, cache_image)
- (forall_images_in_image_cache, x_create_x_image_and_pixmap)
- (x_destroy_x_image, x_put_x_image, x_find_image_file, slurp_file)
- (struct ct_color, init_color_table, free_color_table)
- (lookup_rgb_color, lookup_pixel_color, colors_in_color_table)
- (cross_disabled_images, x_to_xcolors, x_from_xcolors)
- (x_detect_edges, x_emboss, x_laplace, x_edge_detection)
- (x_disable_image, x_build_heuristic_mask)
- (XBM support, XPM support, PBM support, PNG support, JPEG support)
- (TIFF support, GIF support, Ghostscript support): Merge with image
- code from xfns.c and macfns.c into image.c.
- (syms_of_xfns): Move image related symbols to image.c.
- (init_external_image_libraries, init_xfns): Remove; initialization
- moved to init_image in image.c.
-
- * xfns.c (Vx_bitmap_file_path, Vimage_cache_eviction_delay)
- (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
- (x_reference_bitmap, x_create_bitmap_from_data)
- (x_create_bitmap_from_file, x_destroy_bitmap)
- (x_destroy_all_bitmaps, x_create_bitmap_mask)
- (QCascent, QCmargin, QCrelief, QCconversion, QCcolor_symbols)
- (QCheuristic_mask, QCindex, QCmatrix, QCcolor_adjustment, QCmask)
- (Qlaplace, Qemboss, Qedge_detection, Qheuristic, Qcenter)
- (define_image_type, lookup_image_type, valid_image_p)
- (image_error, enum image_value_type, struct image_keyword)
- (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p)
- (make_image, free_image, prepare_image_for_display, image_ascent)
- (four_corners_best, image_background, image_background_transparent)
- (x_clear_image_1, x_clear_image, x_alloc_image_color)
- (make_image_cache, free_image_cache, clear_image_cache)
- (Fclear_image_cache, postprocess_image, lookup_image, cache_image)
- (forall_images_in_image_cache, x_create_x_image_and_pixmap)
- (x_destroy_x_image, x_put_x_image, x_find_image_file, slurp_file)
- (struct ct_color, init_color_table, free_color_table)
- (lookup_rgb_color, lookup_pixel_color, colors_in_color_table)
- (cross_disabled_images, x_to_xcolors, x_from_xcolors)
- (x_detect_edges, x_emboss, x_laplace, x_edge_detection)
- (x_disable_image, x_build_heuristic_mask)
- (XBM support, XPM support, PBM support, PNG support, JPEG support)
- (TIFF support, GIF support, Ghostscript support): Merge with
- w32fns.c and macfns.c image code into image.c.
- (syms_of_xfns): Move image related symbols to image.c.
- (init_xfns): Remove; initialization moved to init_image in image.c.
-
- * lisp.h (syms_of_image, init_image): Add protoypes.
- (init_xfns): Remove prototype.
-
- * dispextern.h (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
- (x_reference_bitmap, x_create_bitmap_from_data)
- (x_create_bitmap_from_file, x_destroy_bitmap)
- (x_create_bitmap_mask): Move prototypes from dispextern.h.
- (gamma_correct) [MAC_OS]: Add prototype.
-
- * xterm.h (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
- (x_reference_bitmap, x_create_bitmap_from_data)
- (x_create_bitmap_from_file, x_destroy_bitmap)
- (x_create_bitmap_mask): Move prototypes to dispextern.h.
-
-2004-03-09 Kenichi Handa <handa@etlken2>
-
- * coding.c (decode_coding_emacs_mule): Handle insufficent source
- correctly.
-
-2004-03-04 Richard M. Stallman <rms@gnu.org>
-
- * s/sol2-6.h (LD_SWITCH_SYSTEM_TEMACS): New definition.
-
- * window.c (Fdisplay_buffer): Doc fix.
-
- * buffer.c (Fpop_to_buffer): Doc fix.
-
-2004-03-03 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (display_line): Fix call to get_overlay_arrow_glyph_row.
-
-2004-03-02 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * editfns.c (Ftranslate_region): Lisp_Object/int mixup.
-
-2004-03-02 Richard M. Stallman <rms@gnu.org>
-
- * indent.c (compute_motion): Save vpos in prev_vpos, like hpos etc.
-
-2004-03-02 Kenichi Handa <handa@m17n.org>
-
- * doc.c (Fsubstitute_command_keys): Fix counding bytes.
-
-2004-03-02 Kim F. Storm <storm@cua.dk>
-
- * window.h (struct window): New member overlay_arrow_bitmap.
-
- * window.c (make_window): Initialize overlay_arrow_bitmap.
-
- * xdisp.c (Voverlay_arrow_variable_list): New variable to properly
- implement and integrate multiple overlay arrows with redisplay.
- (syms_of_xdisp): DEFVAR_LISP and initialize it.
- (last_arrow_position, last_arrow_string): Replace by properties.
- (Qlast_arrow_position, Qlast_arrow_string)
- (Qoverlay_arrow_string, Qoverlay_arrow_bitmap): New variables.
- (syms_of_xdisp): Intern and staticpro them.
- (overlay_arrow_string_or_property, update_overlay_arrows)
- (overlay_arrow_in_current_buffer_p, overlay_arrows_changed_p)
- (overlay_arrow_at_row): New functions for multiple overlay arrows.
- (redisplay_internal): Use them instead of directly accessing
- Voverlay_arrow_position etc. for multiple overlay arrows.
- (mark_window_display_accurate): Use update_overlay_arrows.
- (try_cursor_movement): Use overlay_arrow_in_current_buffer_p.
- (try_window_id): Use overlay_arrows_changed_p.
- (get_overlay_arrow_glyph_row): Add overlay_arrow_string arg.
- (display_line): Use overlay_arrow_at_row to check multiple
- overlay arrows, and get relevant overlay-arrow-string and
- overlay-arrow-bitmap. Set w->overlay_arrow_bitmap accordingly.
- (produce_image_glyph): Set pixel_width = 0 for fringe bitmap.
- (syms_of_xdisp): Remove last_arrow_position and last_arrow_string.
-
- * fringe.c (draw_fringe_bitmap): Use w->overlay_arrow_bitmap if set.
- (update_window_fringes): Remove unused code.
-
-2004-03-01 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (w32_read_socket): Fix last change to ButtonPress handling.
-
-2004-03-01 Juanma Barranquero <lektu@terra.es>
-
- * fringe.c (Fdefine_fringe_bitmap): Fix typo in docstring.
-
- * makefile.w32-in ($(BLD)/fringe.$(O)): Add dependencies.
-
-2004-03-01 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (Fx_display_color_cells): Use number of planes to calculate
- how many colors can be displayed.
-
-2004-03-01 Kenichi Handa <handa@m17n.org>
-
- * editfns.c (Ftranslate_region): Handle multibyte chars in TABLE
- correctly.
-
-2004-02-28 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (update_window): Update header line also if there are
- no other changes in window (move code after set_cursor label).
-
- * lisp.h (mark_window_display_accurate): Remove prototype.
-
- * window.c (window_loop, Fforce_window_update): Force mode line
- updates by setting prevent_redisplay_optimizations_p and
- update_mode_lines.
-
-2004-02-28 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (x_window): Fix indentation.
-
- * xterm.c (x_calc_absolute_position): Call x_real_positions
- to get WM window sizes and use those to calculate position.
- (x_set_offset): Remove code commented out.
-
-2004-02-28 Miles Bader <miles@gnu.org>
-
- * keyboard.c (adjust_point_for_property): #ifdef-out dodgy xassert.
-
-2004-02-28 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (kbd_buffer_store_event_hold): New function to store
- an event into kbd fifo, but with special handling of quit event;
- a quit event is saved for later, and further events are discarded
- until the saved quit event has been processed.
- (kbd_buffer_store_event): Use kbd_buffer_store_event_hold.
- (gen_help_event): Store help event in kbd fifo.
- (NREAD_INPUT_EVENTS): Remove.
- (read_avail_input): Adapt to new read_socket_hook interface.
- Remove allocation and initialization of local input_event buffer,
- as read_socket_hook stores events directly in fifo. Allocate and
- initialize local hold_quit event to handle postponed quit event
- (and store it if set by kbd_buffer_store_event_hold).
-
- * keyboard.h (kbd_buffer_store_event_hold): Add prototype.
- (gen_help_event): Fix prototype.
-
- * macterm.c (XTread_socket): Remove bufp_r and
- numcharsp args. Add hold_quit arg.
- Rework to use just one, local, inev input_event. Store inev
- directly in fifo using kbd_buffer_store_event_hold.
-
- * sysdep.c (BUFFER_SIZE_FACTOR): Remove.
- (read_input_waiting): Adapt to new read_socket_hook interface.
- Remove allocation and initialization of local input_event buffer,
- as read_socket_hook stores events directly in fifo. Allocate and
- initialize local hold_quit event to handle postponed quit event
- (and store it if set by kbd_buffer_store_event_hold).
-
- * term.c (read_socket_hook): Fix arg list.
-
- * termhooks.h (read_socket_hook): Fix prototype.
-
- * w32inevt.c (w32_console_read_socket): Remove bufp_r and
- numcharsp args. Add hold_quit arg.
- Rework to use just one, local, inev input_event. Store inev
- directly in fifo using kbd_buffer_store_event_hold.
-
- * w32inevt.h (w32_console_mouse_position): Fix prototype.
-
- * w32term.c (w32_read_socket): Remove bufp_r and numcharsp args.
- Add hold_quit arg. Rework to use just one, local, inev
- input_event. Store inev directly in fifo using
- kbd_buffer_store_event_hold. Update count in one place.
- Postpone call to gen_help_event until inev is stored; use new
- local do_help for this.
- Remove local emacs_event in handing of ButtonPress event; just use
- inev instead (so no reason to copy it later).
-
- * xsmfns.c (x_session_check_input): Remove numchars arg.
-
- * xterm.c (x_focus_changed, x_detect_focus_change):
- Remove numchars arg. Always store event into bufp arg.
- Return nothing. Callers changed accordingly.
- (glyph_rect): Simplify.
- (STORE_KEYSYM_FOR_DEBUG): New macro.
- (SET_SAVED_MENU_EVENT): Use inev instead of bufp, etc.
- (current_bufp, current_numcharsp) [USE_GTK]: Remove.
- (current_hold_quit) [USE_GTK]: Add.
- (event_handler_gdk): Adapt to new handle_one_xevent.
- (handle_one_xevent): Remove bufp_r and numcharsp args.
- Add hold_quit arg. Rework to use just one, local, inev
- input_event. Store inev directly in fifo using
- kbd_buffer_store_event_hold. Update count in one place.
- Postpone call to gen_help_event until inev is stored; use new
- local do_help for this.
- Simplify handling of keysyms (consolidate common code). Fix bug
- where count was updated with nchars instead of nbytes.
- Remove local emacs_event in handing of ButtonPress event; just use
- inev instead (so no reason to copy it later).
- Remove `out' label. Rename label `ret' to `done'; add various
- `goto done' to clarify code flow in deeply nested blocks.
- (x_dispatch_event): Simplify as handle_one_xevent now calls
- kbd_buffer_store_event itself.
- (XTread_socket): Remove bufp_r and numcharsp args. Add hold_quit
- arg. Call handle_one_xevent with new arglist. Store event from
- x_session_check_input in fifo.
- [USE_GTK]: Setup current_hold_quit.
- Decrement handling_signal before unblocking input.
- (x_initialize) [USE_GTK]: Initialize current_count.
-
- * xterm.h (x_session_check_input): Fix prototype.
-
-2004-02-26 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * s/darwin.h (LD_SWITCH_SYSTEM_TEMACS): Add `-framework QuickTime'.
-
- * dispextern.h [MAC_OSX]: Do not include Carbon/Carbon.h (now in
- macgui.h).
-
- * emacs.c (main) [HAVE_CARBON]: Call init_xfns.
-
- * macgui.h [MAC_OSX]: Include Carbon/Carbon.h.
- (mktime, DEBUG, Z, free, malloc, realloc, max, min)
- (init_process) [MAC_OSX]: Avoid conflicts with Carbon/Carbon.h.
- [!MAC_OSX]: Include QDOffscreen.h and Controls.h.
- (INFINITY) [MAC_OSX]: Avoid conflict with definition in math.h.
- (Bitmap): Remove typedef.
- (Pixmap): Change int to GWorldPtr.
-
- * macmenu.c [MAC_OSX]: Don't include Carbon/Carbon.h (now in macgui.h).
-
- * macterm.h [MAC_OSX]: Don't include Carbon/Carbon.h (now in macgui.h).
- (RED16_FROM_ULONG, GREEN16_FROM_ULONG, BLUE16_FROM_ULONG):
- New #define to extract 16-bit depth color components from unsigned
- long representation.
- (PIX_MASK_DRAW, PIX_MASK_RETAIN): New #define to represent pixel
- colors used for masks.
- (struct mac_display_info): Add color_p. Remove n_cbits.
-
- * macfns.c: Include sys/types.h and sys/stat.h.
- [MAC_OSX]: Do not include Carbon/Carbon.h (now in macgui.h).
- Include QuickTime/QuickTime.h.
- (XCreatePixmap, XCreatePixmapFromBitmapData, XFreePixmap)
- (XSetForeground, mac_draw_line_to_pixmap): Add externs for
- functions defined in macterm.c.
- (XImagePtr): New typedef. Corresponds to XImage * in xfns.c.
- (ZPixmap): New #define for compatibility with xfns.c.
- (XGetImage, XPutPixel, XGetPixel, XDestroyImage)
- (x_create_x_image_and_pixmap, x_destroy_x_image, x_put_x_image)
- (find_image_fsspec, image_load_qt_1, image_load_quicktime):
- New functions.
- (four_corners_best, x_create_x_image_and_pixmap)
- (x_destroy_x_image, unwind_create_frame, x_disable_image)
- (x_edge_detection, init_color_table, colors_in_color_table)
- (lookup_rgb_color, lookup_pixel_color, postprocess_image)
- (x_put_x_image, slurp_file, xbm_scan, xbm_load, xbm_load_image)
- (xbm_image_p, xbm_read_bitmap_data, xbm_file_p, x_to_xcolors)
- (x_from_xcolors, x_detect_edges): New declarations (from xfns.c).
- (mac_color_map_lookup, x_to_mac_color): Fix Lisp_Object/unsigned
- long mixup.
- (mac_defined_color, x_to_x_colors): Use RED16_FROM_ULONG etc.
- (x_decode_color): Don't use n_cbits (in struct mac_display_info).
- (x_set_foreground_color, x_set_cursor_color): Sync with w32fns.c.
- (x_set_cursor_type, Fxw_color_values, valid_image_p)
- (image_value_type, parse_image_spec, image_ascent, x_clear_image)
- (x_alloc_image_color, clear_image_cache, lookup_image)
- (x_find_image_file, xbm_read_bitmap_file_data)
- (enum xbm_keyword_index, xbm_format, xbm_image_p, xbm_scan)
- (xbm_read_bitmap_data, xbm_load, pbm_image_p, pbm_scan_number)
- (enum pbm_keyword_index, pbm_format, enum png_keyword_index)
- (png_format, png_image_p, enum jpeg_keyword_index, jpeg_format)
- (jpeg_image_p, enum tiff_keyword_index, tiff_format, tiff_image_p)
- (enum gif_keyword_index, gif_format, gif_image_p): Sync with xfns.c.
- (x_make_gc): Sync with xfns.c. Enclose unused `border_tile' with
- #if 0.
- (x_free_gcs): Sync with xfns.c. Enclose unused `border_tile' with
- #if 0. Free white_relief.gc and black_relief.gc.
- (unwind_create_frame, x_emboss, x_laplace, x_edge_detection):
- New functions (from xfns.c).
- (Fx_create_frame): Record unwind_create_frame.
- (Fxw_display_color_p): Use dpyinfo->color_p.
- (Fx_display_grayscale_p, Fx_display_planes): Don't use
- dpyinfo->n_cbits.
- (Fx_display_color_cells): Use dpyinfo->n_planes;
- (QCmatrix, QCcolor_adjustment, QCmask, Qemboss, Qedge_detection)
- (Qheuristic, cross_disabled_images, emboss_matrix)
- (laplace_matrix): New variables (from xfns.c).
- (Fimage_size, Fimage_mask_p, four_corners_best, image_background)
- (x_clear_image_1, postprocess_image, slurp_file, xbm_load_image)
- (xbm_file_p, x_to_xcolors, x_from_xcolors, x_detect_edges)
- (image_background_transparent): New function (from xfns.c).
- Use PIX_MASK_DRAW/PIX_MASK_RETAIN.
- (image_load_quicktime): Add declaration.
- [MAC_OSX] (image_load_quartz2d): Likewise.
- [MAC_OSX] (CGImageCreateWithPNGDataProviderProcType): New typedef.
- [MAC_OSX] (MyCGImageCreateWithPNGDataProvider): New variable.
- [MAC_OSX] (init_image_func_pointer, image_load_quartz2d): New funs.
- (xbm_load_image_from_file, x_laplace_read_row)
- (x_laplace_write_row, pbm_read_file): Remove functions.
- [HAVE_XPM] (enum xpm_keyword_index, xpm_format, xpm_image_p)
- (xpm_load): Sync with xfns.c (although XPM is not supported yet).
- (colors_in_color_table): Sync with xfns.c (although not used).
- (lookup_rgb_color): Don't lookup color table. Just do gamma
- correction.
- (COLOR_INTENSITY): New #define (from xfns.c).
- (x_disable_image): New function (from xfns.c).
- Use PIX_MASK_DRAW/PIX_MASK_RETAIN.
- (x_build_heuristic_mask): Sync with xfns.c.
- Use PIX_MASK_DRAW/PIX_MASK_RETAIN.
- (HAVE_PBM): Remove #ifdef.
- (pbm_load): Sync with xfns.c. Set img->width and img->height
- before IMAGE_BACKGROUND.
- (png_image_p, png_load): Don't enclose declarations with #if HAVE_PNG.
- (Qpng, enum png_keyword_index, png_format, png_type, png_image_p):
- Don't enclose with #if HAVE_PNG.
- [!HAVE_PNG] (png_load) [MAC_OSX]: Use image_load_quartz2d if a
- symbol _CGImageCreateWithPNGDataProvider is defined.
- Otherwise use image_load_quicktime.
- [!HAVE_PNG] (png_load) [!MAC_OSX]: Use image_load_quicktime.
- [HAVE_PNG] (png_load): Sync with xfns.c.
- Use PIX_MASK_DRAW/PIX_MASK_RETAIN.
- (jpeg_image_p, jpeg_load): Don't enclose declarations with #if
- HAVE_JPEG.
- (Qjpeg, enum jpeg_keyword_index, jpeg_format, jpeg_type)
- (jpeg_image_p): Don't enclose with #if HAVE_JPEG.
- [!HAVE_JPEG] (jpeg_load) [MAC_OSX]: Use image_load_quartz2d.
- [!HAVE_JPEG] (jpeg_load) [!MAC_OSX]: Use image_load_quicktime.
- [HAVE_JPEG] (jpeg_load): Sync with xfns.c.
- (tiff_image_p, tiff_load): Don't enclose declarations with #if
- HAVE_TIFF.
- (Qtiff, enum tiff_keyword_index, tiff_format, tiff_type)
- (tiff_image_p): Don't enclose with #if HAVE_TIFF.
- [!HAVE_TIFF] (tiff_load): Use image_load_quicktime.
- [HAVE_TIFF] (tiff_error_handler, tiff_warning_handler):
- New functions (from xfns.c).
- [HAVE_TIFF] (tiff_load): Sync with xfns.c.
- (gif_image_p, gif_load): Don't enclose declarations with #if HAVE_GIF.
- (Qgif, enum gif_keyword_index, gif_format, gif_type, gif_image_p):
- Don't enclose with #if HAVE_GIF.
- [!HAVE_GIF] (gif_load): Use Quicktime Movie Toolbox if it is
- animated gif. Otherwise use image_load_quicktime.
- [HAVE_GIF] (gif_lib.h): Temporarily define DrawText as
- gif_DrawText to avoid conflict with QuickdrawText.h.
- [HAVE_GIF] (gif_load): Sync with xfns.c.
- (enum gs_keyword_index, gs_format, gs_image_p, gs_load)
- [HAVE_GHOSTSCRIPT] (x_kill_gs_process): Sync with xfns.c (although
- Ghostscript is not supported yet).
- (syms_of_macfns): Initialize Qemboss, Qedge_detection, Qheuristic,
- QCmatrix, QCcolor_adjustment, and QCmask. Add DEFVAR_BOOL
- cross_disabled_images (from xfns.c). Remove #if 0 for supported
- image types. Remove #if HAVE_JPEG, HAVE_TIFF, HAVE_GIF, and
- HAVE_PNG. Add defsubr for Simage_size and Simage_mask_p.
- (init_xfns): Remove #if HAVE_JPEG, HAVE_TIFF, HAVE_GIF, and
- HAVE_PNG. Call EnterMovies to support animated gifs.
- Call init_image_func_pointer to bind a symbol
- _CGImageCreateWithPNGDataProvider if it is defined.
-
- * macterm.c [MAC_OSX]: Don't include Carbon/Carbon.h (now in macgui.h).
- (x_draw_bar_cursor): Sync declaration with xterm.c.
- (XFreePixmap, mac_draw_rectangle_to_pixmap, mac_copy_area)
- (mac_copy_area_to_pixmap): Implementation with GWorld (offscreen
- graphics).
- (mac_set_forecolor, mac_set_backcolor): Use RED16_FROM_ULONG etc.
- (mac_draw_line_to_pixmap, XCreatePixmap)
- (XCreatePixmapFromBitmapData, mac_fill_rectangle_to_pixmap)
- (mac_copy_area_with_mask, mac_copy_area_with_mask_to_pixmap):
- New functions.
- (mac_draw_bitmap) [TARGET_API_MAC_CARBON]:
- Use GetPortBitMapForCopyBits instead of the cast to Bitmap *.
- Cast bits to char *.
- (reflect_byte): New function (from w32fns.c).
- (mac_create_bitmap_from_bitmap_data): Use it and don't stuff bits
- due to byte alignment.
- (mac_scroll_area) [TARGET_API_MAC_CARBON]:
- Use GetPortBitMapForCopyBits instead of the cast to Bitmap *.
- (XSetForeground): Remove static (now used in macfns.c).
- (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New #define (from w32term.c).
- (mac_alloc_lighter_color, x_destroy_window): Sync with w32term.c.
- (x_setup_relief_color, x_setup_relief_colors, x_draw_box_rect)
- (x_draw_glyph_string_box, x_draw_image_foreground)
- (x_draw_image_foreground_1, x_draw_image_glyph_string)
- (x_draw_stretch_glyph_string, x_draw_glyph_string)
- (x_draw_hollow_cursor, x_draw_bar_cursor, mac_draw_window_cursor):
- Sync with xterm.c.
- (x_draw_relief_rect): Sync with xterm.c. Make 1 pixel shorter
- than the xterm.c version when a strictly horizontal or vertical
- line is drawn.
- (XTset_terminal_window): Add static.
- (x_make_frame_visible): Add UNBLOCK_INPUT.
- (x_free_frame_resources): New funcion (from xterm.c).
- (XTread_socket): Call handle_tool_bar_click if mouse up/down event
- occurs in tool bar area.
- (mac_initialize_display_info): Remove dpyinfo->n_cbits.
- Set dpyinfo->color_p. Determine dpyinfo->n_planes using HasDepth.
- Initialize image cache.
- (stricmp, wildstrieq, mac_font_pattern_match, mac_font_match):
- Enclose unused functions with #if 0.
- (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): New variables.
- (decode_mac_font_name): New function to apply code conversions
- from a mac font name to an XLFD font name according to its script code.
- (x_font_name_to_mac_font_name): Apply code conversion from an XLFD
- font name to a mac font name according to REGISTRY and ENCODING fields.
- (init_font_name_table) [TARGET_API_MAC_CARBON]: Don't use a font
- whose name starts with `.'.
- (init_font_name_table): Use decode_mac_font_name. Add both
- jisx0208.1983-sjis and jisx0201.1976-0 entries if the script code
- of a font is smJapanese.
- (mac_do_list_fonts): New function to list fonts that match a given
- pattern.
- (x_list_fonts, XLoadQueryFont): Use it.
- (XLoadQueryFont): Set rbearing field for each variable width
- character to avoid needless redraw.
- (syms_of_macterm): Initialize Qbig5, Qcn_gb, Qsjis, and Qeuc_kr.
-
-2004-02-26 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (NREAD_INPUT_EVENTS): Temporarily increase to 512
- as read_socket_hook handler on X aborts if buffer is too small
- and W32 handler doesn't always check buffer limit.
-
- * xdisp.c (handle_single_display_prop): Handle left-fringe and
- right-fringe similar to a display margin image. Specifically,
- the characters having the fringe prop are no longer shown, and
- we use IT_IMAGE/next_element_from_image with image_id = -1 to
- do this. Set fringe bitmap face_id in it->face_id.
- (produce_image_glyph): Handle image_id < 0 as "no image" case, but
- still realize it->face (i.e. the fringe bitmap face).
-
-2004-02-25 Miles Bader <miles@gnu.org>
-
- * xdisp.c (check_it): Check string/string_pos consistency.
- (init_iterator): Initialize string-related fields properly.
-
-2004-02-11 Miles Bader <miles@gnu.org>
-
- * xdisp.c (produce_image_glyph): Force negative descents to zero.
-
-2004-02-10 Miles Bader <miles@gnu.org>
-
- * xfns.c (lookup_image): Remove xassert(!interrupt_input_blocked);
- BLOCK_INPUT can be nested, so it doesn't make much sense.
-
-2004-02-24 Michael Mauger <mmaug@yahoo.com>
-
- * w32fns.c (slurp_file, xbm_scan, xbm_load_image)
- (xbm_read_bitmap_data): Use unsigned char for image data.
-
-2004-02-23 Luc Teirlinck <teirllm@auburn.edu>
-
- * abbrev.c (Finsert_abbrev_table_description): Doc fix.
-
-2004-02-22 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (w32_draw_fringe_bitmap): Draw overlaid bitmaps
- correctly over other bitmaps.
-
-2004-02-21 Eli Zaretskii <eliz@gnu.org>
-
- * emacs.c (USAGE1): Split into two halves.
- (USAGE2): Second half of the old USAGE1.
- (USAGE3): Rename from USAGE2.
- (USAGE4): Rename from USAGE3.
-
-2004-02-21 Juri Linkov <juri@jurta.org>
-
- * emacs.c (USAGE1): Add --no-desktop. Move --display from USAGE2.
- Fix --multibyte. Move --help, --version to USAGE2. Add alias
- --file. Fix -f, -l. Sort options. Untabify.
- (USAGE2): Add -hb. Fix --name, --title. Sort options. Untabify.
-
-2004-02-19 Luc Teirlinck <teirllm@auburn.edu>
-
- * category.c (Fdefine_category, Fcategory_docstring)
- (Fget_unused_category, Fset_category_table)
- (Fcategory_set_mnemonics): Doc fixes.
-
-2004-02-20 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c: Undo 2004-02-16 and 2004-02-17 changes.
- The following changes are relative to the 2004-01-21 revision.
- (NREAD_INPUT_EVENTS): Define as max number of input events to read
- in one call to read_socket_hook. Value is 8.
- (read_avail_input): Separate and rework handling of read_socket_hook
- and non-read_socket_hook cases. Use smaller input_event buffer
- in read_socket_hook case, and repeat if full buffer is read.
- Use new local variable 'discard' to skip input after C-g.
- In non-read_socket_hook case, just use a single input_event, and
- call kbd_buffer_store_event on the fly for each character.
-
-2004-02-19 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * lisp.h (union Lisp_Object): Give a more precise type for `type'.
- Remove unused `gu' alternative.
-
-2004-02-19 Andreas Schwab <schwab@suse.de>
-
- * fringe.c (Fdefine_fringe_bitmap): Use && instead of & to avoid
- warning.
-
-2004-02-18 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (get_window_cursor_type, display_and_set_cursor):
- Fix last change.
-
-2004-02-17 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (fast_find_position): Fix return value of new version;
- it was inverted compared to the 21.1 version.
- (get_window_cursor_type): Don't look at glyph if NULL.
- (display_and_set_cursor): Set glyph to NULL if cursor in fringe.
-
- * keyboard.c: Rework previous change; it didn't consider that the
- buf array was allocated on the stack.
- (prev_read): Remove variable.
- (read_avail_input_buf): New static event buffer array.
- (in_read_avail_input): New static variable to handle re-entrancy.
- (read_avail_input): Change buf to pinter to read_avail_input_buf.
- Use in_read_avail_input to handle re-entrance; when re-entered,
- fully initialize and use tmp_buf array instead of read_avail_input_buf.
- Do not initialize read_avail_input_buf in full here; instead assume it
- is always cleared on entry. To ensure that, we clear (just) the
- entries that were used before we return.
- (init_keyboard): Initialize read_avail_input_buf here.
-
-2004-02-16 Jesper Harder <harder@ifa.au.dk>
-
- * cmds.c (Fend_of_line): Doc fix.
-
-2004-02-16 Dmitry Antipov <dmitry.antipov@mail.ru> (tiny change)
-
- * keyboard.c (prev_read): New static variable.
- (read_avail_input): Use it to zero out only those slots in buf[]
- that were used last time we were called.
-
-2004-02-16 Eli Zaretskii <eliz@gnu.org>
-
- * Makefile.in (obj): Move fringe.o from here...
- (XOBJ, MAC_OBJ): ...to here.
-
-2004-02-16 Stephen Eglen <stephen@gnu.org>
-
- * fringe.c (init_fringe_bitmap): Define j in MAC_OS code.
-
-2004-02-15 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * data.c (Fbyteorder):
- * fringe.c (Fdefine_fringe_bitmap):
- * xdisp.c (handle_single_display_prop):
- * xselect.c (x_handle_dnd_message): Lisp_Object/int mixup.
-
-2004-02-16 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (w32_draw_fringe_bitmap): Handle overlay fringe bitmaps.
-
-2004-02-15 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (Vmac_emulate_three_button_mouse): New variable for
- controlling emulation of a three button mouse with option and
- command keys.
- (Qreverse, mac_get_enumlated_btn): Handle the emulation.
- (mac_event_to_emacs_modifiers, XTread_socket): Ditto.
-
-2004-02-15 Kim F. Storm <storm@cua.dk>
-
- * buffer.c (syms_of_buffer): Doc fix for indicate-buffer-boundaries.
-
- * fringe.c (init_fringe_bitmap) [MAC_OS, WORDS_BIG_ENDIAN]:
- Perform byte-swapping.
-
-2004-02-14 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (struct draw_fringe_bitmap_params): Change member
- bits from char to short to facilitate wider bitmaps.
- (struct redisplay_interface): Fix prototype of define_fringe_bitmap
- member.
-
- * fringe.c (struct fringe_bitmap): Change member bits from char to
- short to facilitate 16 bits wide bitmaps. Modify all standard
- bitmaps accordingly.
- (BYTES_PER_BITMAP_ROW, STANDARD_BITMAP_HEIGHT): New macros.
- (FRBITS): Use STANDARD_BITMAP_HEIGHT instead of just sizeof.
- (draw_fringe_bitmap): Ditto.
- (init_fringe_bitmap) [MAC_OS]: Don't bitswap.
- (init_fringe_bitmap) [HAVE_X_WINDOWS]: Enhance bitswapping to
- handle up to 16 bits wide bitmaps.
- (Fdefine_fringe_bitmap): Doc fix. Handle wider bitmaps.
- (Ffringe_bitmaps_at_pos): Add missing arg declarations.
-
- * macterm.c (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
- (x_draw_fringe_bitmap): Use enhanced mac_draw_bitmap, so we no longer
- need to call mac_create_bitmap_from_bitmap_data and mac_free_bitmap.
-
- * w32term.c (w32_define_fringe_bitmap): Bitmaps are now 16 bits wide,
- so it is no longer necessary to expand them here.
-
- * xterm.c (x_draw_fringe_bitmap): Handle wider bitmaps (max 16 bits).
-
-2004-02-12 Kim F. Storm <storm@cua.dk>
-
- * window.c (Fwindow_fringes): Doc fix.
-
-2004-02-10 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xselect.c (x_get_foreign_selection): Add new optional parameter
- time_stamp.
- (Fx_get_selection_internal): Ditto, pass time_stamp to
- x_get_foreign_selection.
-
- * data.c (Fbyteorder): New function.
-
-2004-02-09 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * atimer.c: Move include stdio.h to same place as in other files.
-
- * region-cache.c: Ditto.
-
- * sysdep.c: Ditto.
-
- * xfaces.c: Ditto.
-
-2004-02-09 Sam Steingold <sds@gnu.org>
-
- * w32term.c (w32_draw_fringe_bitmap): Fix a typo in the last patch.
-
-2004-02-09 Kim F. Storm <storm@cua.dk>
-
- * fringe.c: New file. Move original fringe related declarations
- and code from dispextern.h and xdisp.c here.
- Rework code to support user defined fringe bitmaps, redefining
- standard bitmaps, ability to overlay user defined bitmap with
- overlay arrow bitmap, and add faces to bitmaps.
- (Voverflow_newline_into_fringe): Declare here.
- (enum fringe_bitmap_align): New enum.
- (..._bits): All bitmaps are now defined without bitswapping; that
- is now done in init_fringe_once (if necessary).
- (standard_bitmaps): New array with specifications for the
- standard fringe bitmaps.
- (fringe_faces): New array.
- (valid_fringe_bitmap_id_p): New function.
- (draw_fringe_bitmap_1): Rename from draw_fringe_bitmap.
- (draw_fringe_bitmap): New function which draws fringe bitmap,
- possibly overlaying bitmap with cursor in right fringe or the
- overlay arrow in the left fringe.
- (update_window_fringes): Do not handle overlay arrow here.
- Compare and copy fringe bitmap faces.
- (init_fringe_bitmap): New function.
- (Fdefine_fringe_bitmap, Fdestroy_fringe_bitmap): New DEFUNs to
- define and destroy user defined fringe bitmaps.
- (Fset_fringe_bitmap_face): New DEFUN to set face for a fringe bitmap.
- (Ffringe_bitmaps_at_pos): New DEFUN to read current fringe bitmaps.
- (syms_of_fringe): New function. Defsubr new DEFUNs.
- DEFVAR_LISP Voverflow_newline_into_fringe.
- (init_fringe_once, init_fringe): New functions.
- (w32_init_fringe, w32_reset_fringes) [WINDOWS_NT]: New functions.
-
- * Makefile.in (obj): Add fringe.o.
- (fringe.o): New dependencies.
-
- * dispextern.h (FRINGE_ID_BITS): New definition for number of
- bits allocated to hold a fringe number. Increase number of bits
- from 4 to 8 to allow user defined fringe bitmaps.
- (struct glyph_row, struct it): New members left_user_fringe_bitmap,
- left_user_fringe_face_id, right_user_fringe_bitmap,
- right_user_fringe_face_id.
- (enum fringe_bitmap_type, struct fringe_bitmap, fringe_bitmaps):
- Move to new file fringe.c.
- (MAX_FRINGE_BITMAPS): Define here.
- (struct draw_fringe_bitmap_params): New members bits, cursor_p,
- and overlay_p. Change member which to int.
- (struct redisplay_interface): New members define_fringe_bitmap
- and destroy_fringe_bitmap.
- (valid_fringe_bitmap_id_p): Add prototype.
- (w32_init_fringe, w32_reset_fringes) [WINDOWS_NT]: Add prototypes.
-
- * dispnew.c (row_equal_p): Compare fringe bitmap faces and overlay
- arrows.
- (update_frame): Do flush_display if force_flush_display_p to
- ensure display (specifically fringes) are updated in a timely
- manner when resizing the frame by dragging the mouse.
- (update_window_line): Update row if overlay arrow changed.
- (scrolling_window): Redraw fringe bitmaps if fringe bitmap faces
- or overlay arrow changed.
-
- * emacs.c (main) [HAVE_WINDOW_SYSTEM]: Call init_fringe_once,
- syms_of_fringe, and init_fringe.
-
- * frame.h (struct frame): New member force_flush_display_p.
-
- * lisp.h (syms_of_fringe, init_fringe, init_fringe_once):
- Add prototypes.
-
- * macterm.c (mac_draw_bitmap): Add overlay_p arg.
- (x_draw_fringe_bitmap): Handle overlayed fringe bitmaps;
- thanks to YAMAMOTO Mitsuharu for advice on how to do this.
- Use cursor color for displaying cursor in fringe.
- (x_redisplay_interface): Add null handlers for
- define_fringe_bitmap and destroy_fringe_bitmap functions.
-
- * w32term.c (w32_draw_fringe_bitmap): Copy unadapted code from
- xterm.c to handle overlayed fringe bitmaps and to use cursor color
- for displaying cursor in fringe.
- (w32_define_fringe_bitmap, w32_destroy_fringe_bitmap): New W32
- specific functions to define and destroy fringe bitmaps in fringe_bmp.
- (w32_redisplay_interface): Add them to redisplay_interface.
- (w32_term_init): Call w32_init_fringe instead of explicitly
- defining fringe bitmaps in fringe_bmp array.
- (x_delete_display): Call w32_reset_fringes instead of explicitly
- destroying fringe bitmaps in fringe_bmp array.
-
- * xdisp.c (Voverflow_newline_into_fringe, syms_of_xdisp)
- (left_bits, right_bits, up_arrow_bits, down_arrow_bits)
- (continued_bits, continuation_bits, ov_bits, first_line_bits)
- (last_line_bits, filled_box_cursor_bits, hollow_box_cursor_bits)
- (bar_cursor_bits, hbar_cursor_bits, zv_bits, hollow_square_bits)
- (fringe_bitmaps, draw_fringe_bitmap, draw_row_fringe_bitmaps)
- (draw_window_fringes, compute_fringe_widths, update_window_fringes):
- Move fringe handling vars and code to new file fringe.c.
- (handle_display_prop): Handle left-fringe and right-fringe
- display properties; store user fringe bitmaps in iterator.
- (move_it_in_display_line_to): Handle cursor in fringe at eob.
- (clear_garbaged_frames): Set force_flush_display_p if resized.
- (redisplay_window): Redraw fringe bitmaps if not just_this_one_p.
- (display_line): Handle cursor in fringe at eob.
- (display_line): Set row user fringe bitmaps from iterator.
-
- * xterm.c (x_draw_fringe_bitmap): Handle overlayed fringe bitmaps.
- Use cursor color for displaying cursor in fringe.
- (x_redisplay_interface): Add null handlers for
- define_fringe_bitmap and destroy_fringe_bitmap functions.
-
-2004-02-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * macfns.c (Fx_change_window_property): Make doc string and
- parameters same as for X version.
-
- * w32fns.c (Fx_change_window_property): Ditto.
-
-2004-02-07 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (hscroll_window_tree): Position cursor near to right
- margin in hscrolled window when jumping to end of line (rather
- than centering cursor).
-
- * process.c (wait_reading_process_input): Don't do adaptive read
- buffering if waiting for a specific process.
-
-2004-02-05 Luc Teirlinck <teirllm@auburn.edu>
-
- * minibuf.c (Fminibufferp, Fread_from_minibuffer)
- (Fread_minibuffer, Feval_minibuffer)
- (Fread_string, Fread_no_blanks_input)
- (Fcompleting_read): Doc fixes.
- (syms_of_minibuf): Doc fixes for minibuffer-completion-table and
- completion-regexp-list. Define Qcase_fold_search and staticpro it.
- (read_minibuf): Fix initial comment.
- (Ftry_completion, Fall_completions, Ftest_completion): Bind
- case-fold-search to the value of completion-ignore-case when
- checking completion-regexp-list.
- (Fdisplay_completion_list): Make it handle arguments that are
- symbols. Doc fix.
-
-2004-02-05 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.h: Add declaration of free_frame_menubar.
-
- * xfns.c (x_create_bitmap_mask): Removed unused variable depth.
- (x_set_menu_bar_lines): Added ! defined USE_GTK for olines.
- (Fx_change_window_property): Add declaration of parameters type and
- format. Remove unused variable cons.
-
- * xselect.c: Include stdio.h.
-
-2004-02-05 Kenichi Handa <handa@m17n.org>
-
- * fns.c (Fset_char_table_range): Fix previous change.
-
- * buffer.c (Fset_buffer_multibyte): Fix docstring.
-
-2004-02-04 Luc Teirlinck <teirllm@auburn.edu>
-
- * editfns.c (Fchar_after, Fchar_before): Doc fixes.
-
-2004-02-04 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keymap.c (Vmouse_events): Rename from Vmenu_events.
- (syms_of_keymap): Add mouse-[45], header-line, and mode-line to it.
-
-2004-02-04 Kenichi Handa <handa@m17n.org>
-
- * fns.c (Fset_char_table_range): Handle charsets ascii,
- eight-bit-control, and eight-bit-graphic correctly.
-
-2004-02-03 Jason Rumney <jasonr@gnu.org>
-
- * w32select.c (Fw32_set_clipboard_data): Make coding iso2022 safe.
-
- * w32fns.c (x_to_w32_font): Likewise.
-
-2004-02-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.h: Add x_handle_dnd_message, x_check_property_data,
- x_fill_property_data, x_property_data_to_lisp and check_x_display_info.
-
- * xterm.c (handle_one_xevent): Call x_handle_dnd_message for
- ClientMessages.
-
- * xselect.c: Include termhooks.h and X11/Xproto.h.
- (x_check_property_data, x_fill_property_data)
- (x_property_data_to_lisp, mouse_position_for_drop)
- (Fx_get_atom_name, x_handle_dnd_message): New functions for DND support.
- (Fx_send_client_event): Move here from xfns.c.
- (syms_of_xselect): Add Sx_get_atom_name and Sx_send_client_message.
-
- * xfns.c (x-send-client-message): Move to xselect.c.
- (Fx_change_window_property): Add optional arguments TYPE, FORMAT and
- OUTER_P.
- (Fx_window_property): Add optional arguments TYPE, SOURCE, DELETE_P,
- VECTOR_RET_P. Handle AnyPropertyType. Call x_property_data_to_lisp
- if vector_ret_p is true.
- (syms_of_xfns): Sx_send_client_message moved to xselect.c.
-
-2004-02-02 Eli Zaretskii <eliz@gnu.org>
-
- * fileio.c (Fcopy_file): If NEWNAME is a directory, expand the
- basename of FILE relative to it, not FILE itself.
-
-2004-02-02 Kenichi Handa <handa@m17n.org>
-
- * coding.c (coding_restore_composition): Check invalid
- composition data more rigidly.
-
-2004-01-30 Luc Teirlinck <teirllm@auburn.edu>
-
- * fileio.c (Fread_file_name_internal): Correctly handle the case
- where insert-default-directory is nil.
- (Fread_file_name): Always return an empty string if the user exits
- with an empty minibuffer. Adapt the docstring accordingly.
- (syms_of_fileio): Adapt the docstring of insert-default-directory
- to the change in Fread_file_name.
-
-2004-01-29 Eli Zaretskii <eliz@gnu.org>
-
- * alloca.c [!alloca]: Fix the prototype for xfree.
-
-2004-01-29 Kenichi Handa <handa@m17n.org>
-
- * fns.c (string_char_to_byte): Optimize for ASCII only string.
- (string_byte_to_char): Likewise.
-
-2004-01-28 Peter Runestig <peter@runestig.com>
-
- * makefile.w32-in, w32fns.c: Add `default-printer-name' function.
-
-2004-01-27 Steven Tamm <steventamm@mac.com>
-
- * unexmacosx.c (unexec_copy): Do not copy more than was
- requested to prevent overwriting during unexec.
-
-2004-01-27 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * process.c (sigchld_handler): Add comment about not calling malloc.
-
- * process.h: Add extern to synch_process_termsig.
-
-2004-01-27 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (make_mac_frame, make_mac_terminal_frame):
- Move setting of scroll bars from make_mac_frame to
- make_mac_terminal_frame to prevent clobbering of scroll-bar-mode.
-
-2004-01-26 Richard M. Stallman <rms@gnu.org>
-
- * search.c (Freplace_match): Handle nonexistent
- back-references properly.
-
-2004-01-03 Richard M. Stallman <rms@gnu.org>
-
- * window.c (decode_any_window): New function.
- (Fwindow_height, Fwindow_width, Fwindow_edges)
- (Fwindow_pixel_edges, Fwindow_inside_edges)
- (Fwindow_inside_pixel_edges): Use decode_any_window.
-
-2004-01-27 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * process.h: synch_process_termsig new variable.
-
- * callproc.c: Define synch_process_termsig.
- (Fcall_process): Initiate synch_process_termsig to zero and
- check if non-zero and get signal name after subprocess has ended.
-
- * process.c (sigchld_handler): Set synch_process_termsig
- if terminated by a signal. synch_process_death setting removed.
-
- * sysdep.c (mkdir, rmdir): Also check synch_process_termsig.
-
-2004-01-26 Andreas Schwab <schwab@suse.de>
-
- * print.c (print_preprocess): Declare size as EMACS_INT to not
- lose bits.
- (print_object): Likewise.
- * alloc.c (Fpurecopy): Likewise.
-
-2004-01-25 Luc Teirlinck <teirllm@auburn.edu>
-
- * window.c (Fwindow_minibuffer_p): Doc fix.
-
-2004-01-24 Jonathan Yavner <jyavner@member.fsf.org>
-
- * editfns.c (Fformat): Make both passes accept the same set of flags.
-
-2004-01-23 Kenichi Handa <handa@m17n.org>
-
- * fns.c (Fmd5): If OBJECT is a buffer different from the current
- one, set buffer to OBJECT temporarily.
-
-2004-01-21 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * keyboard.c (kbd_buffer_gcpro): Remove.
- (kbd_buffer_store_event, clear_event, Fdiscard_input)
- (stuff_buffered_input, init_keyboard, syms_of_keyboard):
- Don't initialize and/or maintain the variable any more. It was made
- redundant by my commit of 2003-06-15.
-
- * lisp.h [USE_LSB_TAG && !DECL_ALIGN]: Signal an error.
-
-2004-01-21 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * lisp.h: Add undef DECL_ALIGN.
-
-2004-01-21 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * process.c (wait_reading_process_input) [SYNC_INPUT]:
- Check interrupt_input_pending explicitly.
-
- * lisp.h (QUIT) [SYNC_INPUT]: Check interrupt_input_pending as well.
-
- * keyboard.c (handle_async_input): New fun,
- extracted from input_available_signal.
- (input_available_signal, reinvoke_input_signal): Use it.
-
-2004-01-20 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * buffer.c (buffer_defaults, buffer_local_symbols): Use DECL_ALIGN.
-
- * lisp.h [USE_LSB_TAG]: Add definitions for Lisp_Object value
- manipulation macros for when tags are in the lower bits.
- (struct Lisp_Free) [USE_LSB_TAG]: Add padding.
- (DECL_ALIGN): New macro.
- (DEFUN): Use it.
-
- * lisp.h [ENABLE_CHECKING]: Don't force union type.
-
- * s/darwin.h (__attribute__): Remove outdated workaround.
-
- * macterm.c (main) [USE_LSB_TAG]: Don't range check the ram.
-
- * alloc.c (lisp_malloc, lisp_align_malloc) [USE_LSB_TAG]:
- Don't check range of malloc address.
- (pure_alloc) [USE_LSB_TAG]: Enforce alignment.
-
- * process.c (wait_reading_process_input): Lisp_Object/int mixup.
-
- * dired.c (Ffile_attributes): Lisp_Object/int mixup.
-
-2004-01-19 Kenichi Handa <handa@m17n.org>
-
- * fontset.c (fontset_font_pattern): Fix previous change.
-
-2004-01-16 Miles Bader <miles@gnu.ai.mit.edu>
-
- * xdisp.c (Voverflow_newline_into_fringe)
- (move_it_in_display_line_to, redisplay_internal)
- (update_window_fringes, redisplay_window, display_line, window):
- Add `#ifdef HAVE_WINDOW_SYSTEM' around fringe-drawing stuff, so
- that it compiles without a window-system.
- * dispnew.c (direct_output_for_insert, update_window): Likewise.
-
-2004-01-16 Kim F. Storm <storm@cua.dk>
-
- * buffer.h (struct buffer): New member indicate_buffer_boundaries.
-
- * buffer.c (init_buffer_once): Set buffer_defaults and
- buffer_local_flags for indicate_buffer_boundaries.
- (syms_of_buffer): Defvar_per_buffer it, and defvar_lisp_nopro
- default- variable for it.
-
- * dispextern.h (struct glyph_row): New members left_fringe_bitmap,
- right_fringe_bitmap, redraw_fringe_bitmaps_p for new fringe handling.
- New members exact_window_width_line_p and cursor_in_fringe_p for
- overflowing newlines into right fringe.
- New members indicate_bob_p, indicate_top_line_p, indicate_eob_p,
- and indicate_bottom_line_p for buffer boundaries and scrolling.
- (enum fringe_bitmap_type): Add UP_ARROW_BITMAP, DOWN_ARROW_BITMAP,
- FIRST_LINE_BITMAP, LAST_LINE_BITMAP, FILLED_BOX_CURSOR_BITMAP,
- HOLLOW_BOX_CURSOR_BITMAP, BAR_CURSOR_BITMAP, HBAR_CURSOR_BITMAP,
- and HOLLOW_SQUARE_BITMAP.
- (draw_fringe_bitmap, draw_window_fringes, update_window_fringes):
- Add prototypes.
-
- * dispnew.c (row_equal_p, update_window_line): Compare fringe bitmaps
- instead of related indicator fields.
- Compare exact_window_width_line_p and cursor_in_mouse_face_p indicators.
- (direct_output_for_insert): Handle exact width lines like
- contined lines. Call update_window_fringes.
- (update_window): Call update_window_fringes.
- (scrolling_window): Don't skip desired rows with changed bitmaps.
- Check if fringe bitmaps changes when assigning scrolled rows.
-
- * xdisp.c (Voverflow_newline_into_fringe): New variable.
- (IT_OVERFLOW_NEWLINE_INTO_FRINGE): New macro.
- (move_it_in_display_line_to): Overflow newline into fringe for
- rows that are exactly as wide as the window.
- (up_arrow_bits, down_arrow_bits, first_line_bits, last_line_bits)
- (filled_box_cursor_bits, hollow_box_cursor_bits, bar_cursor_bits)
- (hbar_cursor_bits, hollow_square_bits): New fringe bitmaps.
- (fringe_bitmaps): Add new bitmaps.
- (draw_fringe_bitmap): Make extern. Remove WHICH arg.
- Select proper bitmap for cursor in fringe when appropriate.
- Handle alignment of bitmap to top or bottom of row.
- (draw_row_fringe_bitmaps): Don't select bitmaps here; that is now
- done by update_window_fringes.
- (update_window_fringes, draw_window_fringes): New functions.
- (redisplay_internal): Call update_window_fringes in case only
- cursor row is updated.
- (redisplay_window): Call update_window_fringes.
- Explicitly call draw_window_fringes if redisplay was done using
- the current matrix or the overlay arrow is in the window.
- (try_window_reusing_current_matrix): Mark scrolled rows for
- fringe update (to update buffer-boundaries / scrolling icons).
- (find_last_unchanged_at_beg_row): Handle exact width lines line
- continued lines.
- (display_line): Overflow newline into fringe for rows that are
- exactly as wide as the window. Don't append space for newline
- in this case.
- (notice_overwritten_cursor): Explicitly clear cursor bitmap
- in fringe as if it had been overwritten.
- (erase_phys_cursor): Erase cursor bitmap in fringe.
- (syms_of_xdisp): Mark show-trailing-whitespace and
- void-text-area-pointer as user options.
- DEFVAR_LISP Voverflow_newline_into_fringe. Enable by default.
-
- * xterm.c (x_update_window_end): Call draw_window_fringes.
- (x_after_update_window_line): Just set redraw_fringe_bitmaps_p
- in row instead of actually drawing fringe bitmaps.
- (x_draw_fringe_bitmap): Handle bottom aligned bitmaps.
- (x_draw_window_cursor): Draw cursor in fringe.
-
- * w32term.c (x_update_window_end): Call draw_window_fringes.
- (x_after_update_window_line): Just set redraw_fringe_bitmaps_p
- in row instead of actually drawing fringe bitmaps.
- (w32_draw_fringe_bitmap): Handle bottom aligned bitmaps.
- (w32_draw_window_cursor): Draw cursor in fringe.
-
- * macterm.c (x_update_window_end): Call draw_window_fringes.
- (x_after_update_window_line): Just set redraw_fringe_bitmaps_p
- in row instead of actually drawing fringe bitmaps.
- (x_draw_fringe_bitmap): Handle bottom aligned bitmaps.
- (mac_draw_window_cursor): Draw cursor in fringe.
-
-2004-01-16 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (handle_one_xevent): Don't handle characters that are part
- of an old style (XLookupString) compose sequence.
-
-2004-01-15 Kenichi Handa <handa@m17n.org>
-
- * search.c (Freplace_match): Use make_multibyte_string or
- make_unibyte_string according to the buffer multibyteness.
-
-2004-01-14 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * alloc.c (struct interval_block, struct string_block)
- (struct symbol_block, struct marker_block, live_string_p)
- (live_cons_p, live_symbol_p, live_float_p, live_misc_p):
- Better preserve alignment for objects in blocks.
- (FLOAT_BLOCK_SIZE): Adjust for possible alignment padding.
-
- * lread.c (defvar_per_buffer): Remove dead declaration.
-
- * macterm.c (do_check_ram_size): Don't hardcode the lisp address
- space size.
-
-2004-01-12 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (popup_get_selection): Check new parameter down_on_keypress
- if a key press should pop down. Only pop down if a key is pressed
- outside the menu/dialog.
- (create_and_show_popup_menu): Pass 0 for down_on_keypress to
- popup_get_selection.
- (create_and_show_dialog): Pass 1 for down_on_keypress to
- popup_get_selection.
-
-2004-01-11 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * alloc.c (allocate_vectorlike): Surround calls to mallopt with
- BLOCK/UNBLOCK_INPUT.
-
-2004-01-08 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (Fx_popup_dialog): Add an Ok button if no buttons are
- specified.
-
-2004-01-08 Kenichi Handa <handa@m17n.org>
-
- * editfns.c (Fformat): Fix '&' to '&&'.
-
-2004-01-08 Andreas Schwab <schwab@suse.de>
-
- * print.c (print_preprocess) <case Lisp_Vectorlike>: Only mask
- size if PSEUDOVECTOR_FLAG is set.
-
-2004-01-07 Kenichi Handa <handa@m17n.org>
-
- * charset.c (Fdeclare_equiv_charset): Fix docstring.
-
- * fontset.c (fontset_ref_via_base): Fix previous change.
-
-2004-01-07 Kim F. Storm <storm@cua.dk>
-
- * process.c (read_process_output): Only activate adaptive
- buffering if we read less than 256 bytes at a time.
-
-2004-01-06 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (buffer_posn_from_coords): Return both buffer/string
- object and image object. Return glyph width and height.
- (mode_line_string, marginal_area_string): Ditto.
-
- * dispextern.h (buffer_posn_from_coords, mode_line_string)
- (marginal_area_string): Fix prototypes.
-
- * keyboard.h (POSN_POSN, POSN_SET_POSN): Rename macros from
- POSN_BUFFER_POSN and POSN_SET_BUFFER_POSN. All uses changed.
- (POSN_INBUFFER_P, POSN_BUFFER_POSN): New macros.
-
- * keyboard.c (make_lispy_position): Use modified mode_line_string,
- buffer_posn_from_coords, and marginal_area_string functions to
- include both string object and image object in the lispy position.
- Also add actual glyph width and height to position.
- (read_key_sequence): Use real buffer position from mouse
- event to find keymap property even when click is in marginal area.
-
- * xdisp.c (note_mode_line_or_margin_highlight): Use modified
- mode_line_string and marginal_area_string functions to handle
- both string object and image object properties.
-
-2004-01-06 Andreas Schwab <schwab@suse.de>
-
- * syntax.c (skip_chars): Treat '-' at end of string as ordinary
- character.
-
-2004-01-02 Andreas Schwab <schwab@suse.de>
-
- * macterm.c (emacs_options, x_initialized, same_x_server):
- Remove unused (and duplicated) definitions.
-
-2004-01-02 Kim F. Storm <storm@cua.dk>
-
- * process.h (struct Lisp_Process): New members for adaptive read
- buffering: adaptive_read_buffering, read_output_delay, and
- read_output_skip.
-
- * process.c (ADAPTIVE_READ_BUFFERING): New conditional.
- (READ_OUTPUT_DELAY_INCREMENT, READ_OUTPUT_DELAY_MAX)
- (READ_OUTPUT_DELAY_MAX_MAX): New constants.
- (process_output_delay_count, process_output_skip): New vars.
- (Vprocess_adaptive_read_buffering): New variable.
- (make_process): Initialize adaptive read buffering members.
- (Fstart_process): Set adaptive_read_buffering member.
- (deactivate_process): Cleanup adaptive read buffering.
- (wait_reading_process_input): Temporarily omit delayed
- subprocesses from the set of file descriptors to read from;
- adjust the select timeout if we skipped any subprocesses.
- (read_process_output): Increase adaptive read buffering delay if
- we read less than a full buffer; reduce delay when we read a
- full buffer.
- (send_process): Simplify using local Lisp_Process var.
- Reset adaptive read buffering delay after write.
- (init_process): Initialize process_output_delay_count and
- process_output_skip.
- (syms_of_process): DEFVAR_LISP Vprocess_adaptive_read_buffering.
-
-2004-01-01 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (w32_text_out): Use s->font, for consistency with callers.
-
-2003-12-30 Luc Teirlinck <teirllm@auburn.edu>
-
- * print.c (Ferror_message_string): Add hyperlink in the docstring
- to the definition of `signal' in the Elisp manual.
- * eval.c (Fsignal): Ditto.
-
-2003-12-29 James Clark <jjc@jclark.com>
-
- * fns.c (internal_equal): Return t for two NaN arguments.
-
-2003-12-29 Richard M. Stallman <rms@gnu.org>
-
- * data.c (store_symval_forwarding): Handle setting
- default-fill-column, etc., by changing the value in
- buffers that use the default.
-
- * minibuf.c (Fset_minibuffer_window): Doc fix.
-
- * fileio.c (choose_write_coding_system): Ignore auto_saving
- if using the visited file for auto saves.
- (Fwrite_region): Don't update SAVE_MODIFF
- if auto-saving in visited file.
-
-2003-12-29 Kenichi Handa <handa@m17n.org>
-
- * dispextern.h (face_font_available_p): Extern it.
-
- * fontset.c (Voverriding_fontspec_alist): New variable.
- (lookup_overriding_fontspec): New function.
- (fontset_ref_via_base): Call lookup_overriding_fontspec if necessary.
- (fontset_font_pattern): Likewise.
- (regulalize_fontname): New function.
- (Fset_fontset_font): Call regulalize_fontname.
- (Fset_overriding_fontspec_internal): New function.
- (syms_of_fontset): Initialize and staticpro Voverriding_fontspec_alist.
- Defsubr Sset_overriding_fontspec_internal.
-
- * xfaces.c (face_font_available_p): New function.
-
-2003-12-28 Richard M. Stallman <rms@gnu.org>
-
- * buffer.c (Fother_buffer): Don't crash if BUF is nil
- or if its name is nil.
-
- * buffer.c (Fkill_buffer): Don't delete auto-save file
- if it's the same as the visited file.
-
-2003-12-28 Luc Teirlinck <teirllm@auburn.edu>
-
- * coding.c (Fcheck_coding_system): Doc fix.
-
-2003-12-28 Kim F. Storm <storm@cua.dk>
-
- * Makefile.in (eval.o): Depend on dispextern.h.
-
- * dispnew.c (buffer_posn_from_coords): Fix calculation of dy for
- image glyph using image's ascent.
- (mode_line_string): Return image glyph as object clicked on.
- Adjust y0 for image glyph using image's ascent.
-
- * dispextern.h (FACE_ID_BITS, MAX_FACE_ID): New defines.
- (struct glyph): New members, ascent and descent. Used to save
- this glyph's ascent and descent, instead of having.
- (struct glyph): Declare member face_id using FACE_ID_BITS.
- (find_hot_spot): Add prototype.
-
- * keyboard.c (Qimage): Remove extern (now in lisp.h).
- (QCmap): Declare extern.
- (make_lispy_position): When position is inside image hot-spot,
- use hot-spot element's id as posn element.
-
- * lisp.h (IMAGEP): New macro to test for image object type.
- (Qimage): Declare extern.
-
- * macfns.c (Qimage): Remove extern (now in lisp.h).
- (valid_image_p, parse_image_spec): Use IMAGEP macro.
-
- * macterm.c (Qface, Qmouse_face): Remove unused externs.
-
- * w32fns.c (Qimage): Remove extern (now in lisp.h).
- (valid_image_p, parse_image_spec): Use IMAGEP macro.
-
- * w32menu.c (Qmouse_click, Qevent_kind): Remove unused externs.
-
- * w32term.c (Qface, Qmouse_face): Remove unused externs.
-
- * xdisp.c (Qarrow, Qhand, Qtext, Qpointer): New variables for
- pointer types.
- (Qrelative_width, Qalign_to): Remove unused variables.
- (Vvoid_text_area_pointer): Replace Vshow_text_cursor_in_void.
- (QCmap, QCpointer, Qrect, Qcircle, Qpoly): New variables for image
- maps.
- (x_y_to_hpos_vpos): Return glyph relative coordinates through new
- dx and dy args. Remove buffer_only_p arg (always 0). Simplify
- code accordingly.
- (get_glyph_string_clip_rect): Draw cursor using glyph's rather
- than row's ascent and height, to get sensible height on tall rows.
- (build_desired_tool_bar_string): Remove Qimage extern.
- (get_tool_bar_item): Fix call to x_y_to_hpos_vpos.
- (produce_image_glyph): Adjust it.ascent to minimum row ascent if
- image glyph is alone on the last line.
- (append_glyph, append_composite_glyph, produce_image_glyph)
- (append_stretch_glyph): Set glyph's ascent and descent.
- (on_hot_spot_p): New function to check if position is inside an
- rectangular, circular, or polygon-shaped image hot-spot,
- (find_hot_spot): New function to search for image hot-spot.
- (Flookup_image_map): New defun to search for image hot-spot.
- (define_frame_cursor1): New aux function to determine frame
- pointer.
- (note_mode_line_or_margin_highlight, note_mouse_highlight): Handle
- `pointer' text property and :pointer image property to control
- frame pointer shape. Detect image hot-spots for pointer and
- help_echo properties. Use define_frame_cursor1.
- (note_mouse_highlight): Use Vvoid_text_area_pointer.
- (syms_of_xdisp): Defsubr new defun. Intern and staticpro new
- variables. DEFVAR_LISP Vvoid_text_area_pointer instead of
- Vshow_text_cursor_in_void.
-
- * xfaces.c (cache_face): Abort if c->size exceeds MAX_FACE_ID.
-
- * xfns.c (x_set_mouse_color): Remove bogus x_check_errors call.
- (Qimage): Remove extern (now in lisp.h).
- (valid_image_p, parse_image_spec): Use IMAGEP macro.
-
- * xmenu.c (show_help_event): Remove unused code.
-
- * xterm.c (Qface, Qmouse_face): Remove unused externs.
- (x_draw_hollow_cursor): Draw cursor using glyph's rather than
- row's ascent and descent, to get a sensible height on tall rows.
-
-2003-12-25 Luc Teirlinck <teirllm@auburn.edu>
-
- * minibuf.c (Fcompleting_read): Undo previous change.
-
-2003-12-25 Lars Hansen <larsh@math.ku.dk>
-
- * dired.c (Fdirectory_files, Fdirectory_files_and_attributes):
- Arguments GCPRO'ed in call to file name handler.
-
-2003-12-25 Thien-Thi Nguyen <ttn@gnu.org>
-
- * termcap.c (tgetst1): Scan for "%pN"; if all
- N are continuous in [1,9], remove all "%pN".
-
-2003-12-24 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_frame_set_char_size): Call x_wm_set_size_hint.
-
- * xfaces.c (lface_fully_specified_p): Take into account that
- MAC OS always have unspecified stipple.
-
-2003-12-24 Thien-Thi Nguyen <ttn@gnu.org>
-
- * tparam.c (tparam1): Add handling for `%pN', which
- means use param N for the next substitution.
-
-2003-12-24 Thien-Thi Nguyen <ttn@gnu.org>
-
- * xfaces.c (Fcolor_gray_p): Fix omission bug:
- In case `frame' is nil, consult the selected frame.
- (Fcolor_supported_p): Likewise.
-
-2003-12-23 Luc Teirlinck <teirllm@auburn.edu>
-
- * fns.c (Frandom, Fstring_make_multibyte, Fset_char_table_range):
- Doc fixes.
-
- * minibuf.c (read_minibuf): Allow INITIAL to be a cons of a string
- and an integer. Adapt the introductory comment accordingly.
- (Fread_from_minibuffer): Delete code moved into read_minibuf.
- Doc fix.
- (Fread_minibuffer, Fread_no_blanks_input): Adapt to changes in
- read_minibuf.
- (Fcompleting_read): Delete code moved into read_minibuf.
- (Ftest_completion): Make it handle obarrays and hash tables correctly.
-
-2003-12-03 Kenichi Handa <handa@m17n.org>
-
- * coding.c (decode_coding_iso2022): Fix for preserving UTF-8
- encoding sequence.
-
-2003-12-01 Kenichi Handa <handa@m17n.org>
-
- * composite.c (syms_of_composite): Don't make the compostion hash
- table week.
-
-2003-11-30 Luc Teirlinck <teirllm@auburn.edu>
-
- * intervals.h: Add EXFUN for Fget_char_property_and_overlay.
- * textprop.c (Fget_char_property_and_overlay): New function.
- (syms_of_textprop): Defsubr it.
-
-2003-11-29 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * dispnew.c (buffer_posn_from_coords): Add ifdef HAVE_WINDOW_SYSTEM
- to compile on terminal configuration.
-
- * fileio.c (Fread_file_name): Check use_file_dialog also before
- calling Fx_file_dialog.
-
- * fns.c (use_file_dialog): New variable.
- (syms_of_fns): DEFVAR_BOOL use-file-dialog.
-
-2003-11-29 Kim F. Storm <storm@cua.dk>
-
- * msdos.c (Qcursor_type, Qbar, Qhbar): Declare extern.
- (syms_of_msdos): Don't intern and staticpro them.
-
-2003-11-27 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (buffer_posn_from_coords): Calculate and return pixel
- coordinates relative to glyph at posn. If glyph is an image,
- return that as object at posn. Callers changed.
- (mode_line_string, marginal_area_string): Calculate and return
- pixel coordinates relative to glyph. Callers changed.
-
- * dispextern.h (buffer_posn_from_coords, mode_line_string)
- (marginal_area_string): Fix prototypes.
- (window_box_left_offset, window_box_right_offset): Add prototypes.
-
- * frame.h (get_specified_cursor_type, get_window_cursor_type):
- Remove prototypes.
-
- * keyboard.h (EVENT_CLICK_COUNT, POSN_SCROLLBAR_PART): Fix defines.
-
- * keyboard.c (make_lispy_position): Add x and y coordinates
- relative to the current glyph as 7th element of position.
- If glyph is an image, return it in the object element.
- (read_key_sequence): Skip checks for keymap property in cases
- where POSN_STRING is not a string (e.g. an image).
-
- * xdisp.c (Vdisplay_pixels_per_inch): New variable.
- (Vshow_text_cursor_in_void): New variable.
- (glyph_to_pixel_coords): Don't use negative hpos.
- (x_y_to_hpos_vpos): Fix for partially visible first glyph.
- (append_stretch_glyph): Change ascent arg to be actual value
- in pixels rather than ratio to height. Callers changed.
- (calc_pixel_width_or_height): New aux function, implementing
- pixel based artihmetic for glyph widths and heights.
- (produce_stretch_glyph): Use calc_pixel_width_or_height for
- :width, :height, :align-to, and :ascent, thus allowing these to
- be specified in pixels as well as multiples of characters.
- Don't produce stretch glyphs with zero width or height.
- (get_specified_cursor_type): Declare static.
- (get_window_cursor_type): Declare static. Add glyph arg to be
- able to know when cursor is on an image; always substitute
- hollow-box cursor for filled-box cursor on images, to avoid
- negative images and flicker when blinking the cursor.
- (display_and_set_cursor): Pass glyph to get_window_cursor_type.
- (note_mode_line_or_margin_highlight): Use non-text cursor rather
- than vertical scroll-bar cursor in display margins.
- (note_mouse_highlight): Use non-text cursor rather than text
- cursor in fringes and over images in the text area.
- Use non-text cursor when mouse pointer is outside editable text,
- i.e. in the void after end-of-line or end-of-buffer; this was
- already done for W32, but is now standard for all systems --
- user can toggle show-text-cursor-in-void to get old behaviour.
- (syms_of_xdisp): DEFVAR_LISP Vshow_text_cursor_in_void and
- Vdisplay_pixels_per_inch.
-
-2003-11-25 Andreas Schwab <schwab@suse.de>
-
- * fns.c (internal_equal) <case Lisp_Vectorlike>: Declare size as
- EMACS_INT to not lose bits.
- (Ffillarray): Don't set bits beyond the size of a bool vector.
-
-2003-11-25 Kim F. Storm <storm@cua.dk>
-
- * print.c (Fredirect_debugging_output) [!GNU_LINUX]: Do not
- define this defun on systems that cannot use stderr as lvalue.
-
-2003-11-24 Gerd Moellmann <gerd@gnu.org>
-
- * s/freebsd.h (LD_SWITCH_SYSTEM_TEMACS)
- [__FreeBSD_version >= 500042]: Define as -znocombreloc because
- ld's default is incompatible with unexec.
-
-2003-11-23 Kim F. Storm <storm@cua.dk>
-
- * window.c (enum window_loop): Add REDISPLAY_BUFFER_WINDOWS.
- (window_loop): Handle REDISPLAY_BUFFER_WINDOWS.
- (Fforce_window_update): New defun.
- (syms_of_window): Defsubr it.
- (Fset_window_margins, Fset_window_fringes): Doc fix.
-
- * print.c (Fredirect_debugging_output): New defun.
- (syms_of_print): Defsubr it.
-
-2003-11-22 Luc Teirlinck <teirllm@auburn.edu>
-
- * fns.c (Fset_char_table_parent): Doc fix.
-
-2003-11-22 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (buffer_posn_from_coords): Return actual row/column
- for glyph clicked on, rather than (unused) pixel positions.
- (mode_line_string, marginal_area_string): Change X and Y args to
- pointers for returning actual row/column for glyph clicked on.
- Simplify and optimize loops.
-
- * dispextern.h (mode_line_string, marginal_area_string):
- Update prototypes.
-
- * keyboard.c (make_lispy_position): New function for generating
- mouse click positions from frame and pixel coordinates.
- Enhanced to return buffer position and actual row/column for
- events outside the text area using updated mode_line_string and
- marginal_area_string functions.
- Return left-fringe and right-fringe clicks as such, rather than
- clicks in text area.
- (make_lispy_event) [USE_X_TOOLKIT, USE_GTK]: Don't call
- pixel_to_glyph_coords, as we never use the results.
- (make_lispy_event): Use make_lispy_position for MOUSE_CLICK_EVENT,
- WHEEL_EVENT, and DRAG_N_DROP_EVENT to replace redundant code.
- Eliminate unused code in WHEEL_EVENT handling.
- (make_lispy_movement): Use make_lispy_position.
-
- * window.c (coordinates_in_window): Remove redundant tests.
- Fix returned X pixel value for left-margin.
-
- * xdisp.c (note_mode_line_or_margin_highlight): Adapt to new
- mode_line_string and marginal_area_string parameters.
-
-2003-11-22 Lars Hansen <larsh@math.ku.dk>
-
- * w32.c (struct the_group, getgrgid): Add.
- * mac.c (struct my_group, getgrgid): Add.
-
-2003-11-21 Luc Teirlinck <teirllm@auburn.edu>
-
- * fns.c (Fassq, Fassoc, Frassq, Frassoc): Doc fixes.
-
-2003-11-21 Lars Hansen <larsh@math.ku.dk>
-
- * dired.c (Ffile_attributes): Add parameter ID-FORMAT and
- include in call to file name handler. Optionally translate numeric
- UID and GID to strings. Update docstring.
- (directory_files_internal): Add parameter ID-FORMAT.
- (Fdirectory_files_and_attributes): Add parameter ID-FORMAT and
- include in call to file name handler and call to
- directory_files_internal. Update Docstring.
- (Fdirectory_files): Add dummy parameter in call to
- directory_files_internal.
- * lisp.h (Qinteger): Add.
- (Qinteger_or_floatp, Qinteger_or_float_or_marker_p): Remove.
- (Ffile_attributes): Add parameter.
- * data.c (Qinteger): Export.
-
-2003-11-21 Luc Teirlinck <teirllm@auburn.edu>
-
- * fns.c (Freverse, Fnreverse): Doc fixes.
-
-2003-11-19 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (init_iterator): Initialize it->start to position
- before reseating (in case start position is invisible).
- (init_to_row_start): Set it->start to row-start.
- (redisplay_window): Accept optional_new_start if start position
- is invisible (in which case IT_CHARPOS overshoots PT).
- (display_line): Setup row->start from it->start (rather than
- it->current which is wrong if first char on line is invisible).
- When done, reseat it->start to it->current (= start of next row).
- (expose_area): Fix exposure of text area when first char (e.g. TAB)
- is only partially visible.
-
- * dispextern.h (struct it): New member start.
-
-2003-11-17 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * alloc.c (make_float, Fcons): Clear the markbit at init time.
- (make_float, Fcons, Fmake_symbol, allocate_misc): Move the increment
- of block_index outside of the macro call.
- (Fgarbage_collect): Remove null code.
-
- * m/amdx86-64.h: Don't redefine XPNTR.
-
- * keyboard.c (parse_modifiers, apply_modifiers): Use INTMASK instead
- of VALMASK.
-
- * fns.c (hashfn_eq, hashfn_eql, hashfn_equal, hash_put)
- (sxhash_string, sxhash): Use INTMASK instead of VALMASK.
- (maybe_resize_hash_table): Use MOST_POSITIVE_FIXNUM.
-
- * lisp.h (VALMASK): Only define for non-union type.
- (MARKBIT): Remove.
- (ARRAY_MARK_FLAG): Use previous value of MARKBIT.
- (XTYPE): Define unconditionally.
- (XSETTYPE): Remove one more remnant.
- (EQ): Define differently for the union and non-union cases.
- (INTMASK): New bit mask.
- (struct Lisp_Marker): Move down to prepare for upcoming patch.
- (GC_EQ): Delegate to EQ.
-
- * coding.c (coding_restore_composition): Lisp_Object/int mixup.
-
-2003-11-17 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_window_to_scroll_bar): Move check of display to
- where window_id is compared.
-
-2003-11-17 Kim F. Storm <storm@cua.dk>
-
- * dispextern.h (struct it): New member first_vpos.
-
- * xdisp.c (start_display): Set it->first_vpos.
- (try_window_id): Use first_vpos to start display in first _text_
- line if no reusable lines at start of window with header line.
-
-2003-11-16 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * w32fns.c (XPutPixel):
- * w32bdf.c (w32_init_bdf_font):
- * sunfns.c (sel_read):
- * process.c (Fmake_network_process):
- * frame.c (store_frame_param):
- * fontset.c (Fset_fontset_font):
- * emacs.c (shut_down_emacs):
- * ccl.c (ccl_driver): Remove period at end of error message.
-
- * config.in: Regenerate.
-
- * xfns.c (x_window_to_frame, x_any_window_to_frame)
- (x_non_menubar_window_to_frame, x_menubar_window_to_frame)
- (x_top_window_to_frame): Add Display* argument to xg_win_to_widget.
- (x_create_bitmap_mask, xg_set_icon, create_frame_xic)
- (xic_set_statusarea, x_window, gif_load): Formatting adjustments.
-
- * xterm.h (struct x_display_info): New field xg_cursor for GTK.
-
- * xterm.c: Add Display * to x_window_to_scroll_bar declaration.
- (XTmouse_position, handle_one_xevent): Pass Display* to
- x_window_to_scroll_bar.
- (x_window_to_scroll_bar): Take a Display* argument.
- Check that display for frame is equal to Display* argument.
- (event_handler_gdk): Remove current_dpyinfo. Get dpyinfo from
- x_display_info_for_display instead. Use Display in xev instead
- of GDK_DISPLAY.
- (x_dispatch_event): Call x_display_info_for_display.
- (XTread_socket): Move GTK part out of loop. current_dpyinfo removed.
- (x_connection_closed): Call xg_display_close for GTK.
- (x_term_init): Call xg_display_open for additional displays.
- Initiate dpyinfo->xg_cursor with call to xg_create_default_cursor
- for GTK.
-
- * xmenu.c (single_menu_item, mouse_position_for_popup)
- (x_activate_menubar): Formatting adjustments.
-
- * xdisp.c (update_tool_bar, redisplay_tool_bar): Formatting
- adjustments.
-
- * gtkutil.c (xg_get_gdk_display, xg_set_screen, xg_display_open)
- (xg_display_close, xg_create_default_cursor)
- (xg_get_gdk_pixmap_and_mask): New functions for multiple display
- handling.
- (xg_left_ptr_cursor): Remove.
- (xg_set_cursor): Change cursor to GdkCursor*. Do not create
- cursor here.
- (xg_win_to_widget): Take Display* argument, call
- gdk_xid_table_lookup_for_display.
- (xg_create_frame_widgets, xg_get_file_name, create_menus)
- (xg_create_widget, xg_modify_menubar_widgets): Call xg_set_screen.
- (xg_create_widget, xg_create_scroll_bar): Use xg_cursor
- in FRAME_X_DISPLAY_INFO.
- (xg_get_scroll_id_for_window): Take Display* argument.
- (update_frame_tool_bar): Call xg_get_gdk_pixmap_and_mask.
- (xg_initialize): Remove xg_left_ptr_cursor.
-
- * gtkutil.h (xg_get_scroll_id_for_window, xg_win_to_widget): Add
- Display* argument.
- (xg_display_open, xg_display_close, xg_create_default_cursor): Declare.
-
-2003-11-14 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_detect_focus_change): Do not change focus frame for
- Enter/LeaveNotify if the current focus frame has explicit focus.
-
-2003-11-14 Kim F. Storm <storm@cua.dk>
-
- * dispnew.c (update_text_area): Fix redisplay error when hscroll
- is active and first glyph is only partially visible.
-
-2003-11-13 Kenichi Handa <handa@m17n.org>
-
- * xdisp.c (select_frame_for_redisplay): New function.
- (redisplay_internal): Record also selected_frame for
- unwind_redisplay. Call select_frame_for_redisplay before
- redrawing each frame.
- (unwind_redisplay): Argument changed to a cons.
-
-2003-11-12 Luc Teirlinck <teirllm@auburn.edu>
-
- * fns.c (Fstring_to_multibyte): Doc fix.
-
-2003-11-11 Kenichi Handa <handa@m17n.org>
-
- * xterm.c (x_list_fonts): Fix excluding of auto-scaled fonts.
-
-2003-11-09 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (x_window): Set XtNx and XtNy in shell widget for
- program specified positions.
-
-2003-11-08 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (XAW_ARROW_SCROLLBARS): Define it for Xaw 1.5E.
-
-2003-11-08 Kenichi Handa <handa@m17n.org>
-
- * Makefile.in (lisp): Add kannada.el.
- (shortlisp): Likewise.
-
-2003-11-07 Kenichi Handa <handa@m17n.org>
-
- * coding.c (coding_allocate_composition_data):
- Reset coding->composing to COMPOSITION_NO.
- (coding_restore_composition): Detect invalid composition data.
- Give Fstring and Fvector a Lispy integer, not C int.
-
-2003-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * floatfns.c (Flogb): Don't use VALMASK.
-
- * m/amdx86-64.h (VALBITS, XINT, XUINT): Remove.
- * m/ia64.h (VALBITS, XINT, XUINT): Remove.
-
- * lisp.h (XINT): Move the cast to clarify what is going on.
- (GCTYPEMASK, XSETTYPE): Remove.
- (XGCTYPE): Make it an alias of XTYPE.
-
-2003-11-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_term_init): Fix formatting.
-
-2003-11-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.h (xg_have_tear_offs): Declare.
- (xg_keep_popup, xg_did_tearoff): Remove.
-
- * gtkutil.c: Remove variable xg_did_tearoff.
- (xg_have_tear_offs): New function.
- (tearoff_remove): Just decrease xg_detached_menus.
- (tearoff_activate): Increase xg_detached_menus and call
- tearoff_remove when tearoff is removed.
- (xg_keep_popup): Remove function.
- (create_menus): Give add_tearoff_p as argument to recursive
- call to create_menus.
- (xg_create_widget): Use variables instead of multiple
- strcmp. Tell create_menus to create tear off only for
- menu bar menus.
- (xg_update_menubar): Change title for a detached menu also.
- (xg_modify_menubar_widgets): Always call xg_update_menubar, regardless
- of deep_p.
- (xg_initialize): Initialize xg_detached_menus, remove
- initialization of xg_did_tearoff.
-
- * xmenu.c (set_frame_menubar): For GTK, set deep_p if
- xg_have_tear_offs returns non-zero.
- (create_and_show_popup_menu): Remove setting of xg_did_tearoff and
- call to xg_keep_popup.
-
-2003-11-01 Andrew Choi <akochoi@shaw.ca>
-
- * macterm.c (XTread_socket): Handle menubar selection and grow
- window only for mouseDown events.
-
-2003-10-31 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_term_init): For GTK part, increase x_initialized
- to check for more than one display. Use error instead of return 0.
-
-2003-10-31 Andrew Choi <akochoi@shaw.ca>
-
- * unexmacosx.c (unrelocate): New function (contributed by Nozomu Ando).
- (copy_dysymtab): Call it.
-
-2003-10-31 Luc Teirlinck <teirllm@auburn.edu>
-
- * eval.c (Fdefvaralias): Doc fix.
-
-2003-10-26 Luc Teirlinck <teirllm@auburn.edu>
-
- * data.c (Fsetplist): Doc fix.
-
-2003-10-14 Lute Kamstra <lute@gnu.org>
-
- * window.c (Fset_window_fringes): Clarify docstring.
-
-2003-10-14 Kim F. Storm <storm@cua.dk>
-
- * window.c (Fset_window_margins): Simplify arg checking.
-
-2003-10-13 Richard M. Stallman <rms@gnu.org>
-
- * regex.c (MAX_BUF_SIZE): Reduce to 2**15.
- (print_partial_compiled_pattern): Replace assert with a printout.
- (skip_noops, mutually_exclusive_p): Change args, values to re_char *.
-
- * alloc.c (lisp_align_malloc): If BASE is 0, call memory_full.
-
- * window.c (Fset_window_margins): Allow only integers as args.
- (syms_of_window) <special-display-buffer-names,
- special-display-regexps>: Doc fixes.
-
-2003-10-13 Lute Kamstra <lute@gnu.org>
-
- * window.c (Fset_window_fringes): Elaborate docstring.
-
-2003-10-12 Andrew Choi <akochoi@shaw.ca>
-
- * macterm.c (XTread_socket): Call DragWindow only for mouseDown events.
-
- * s/darwin.h (GC_MARK_STACK): Define.
-
-2003-10-12 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * window.c (shrink_windows): New function.
- (size_window): Call shrink_windows to calculate window sizes when
- shrinking frame with more than one window.
-
-2003-10-12 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (compute_fringe_widths): Doc fix.
-
-2003-10-08 Kenichi Handa <handa@m17n.org>
-
- * coding.c (Fcoding_system_p): Return t for auto-loading coding system.
-
-2003-10-07 Kenichi Handa <handa@m17n.org>
-
- * coding.c (Qcoding_system_define_form): New variable.
- (syms_of_coding): Intern and staticpro it.
- (Fcheck_coding_system): Try to autoload the definition of
- CODING-SYSTEM.
-
-2003-10-05 Luc Teirlinck <teirllm@auburn.edu>
-
- * fns.c (Frequire): Doc fix.
-
-2003-10-05 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (Fx_send_client_event): New function as a base for
- manipulating extended window manager hints.
- (Fx_send_client_event): Remove unused variable s.
-
- * w32term.c (w32_read_socket): Remove call to x_check_fullscreen_move,
- that function is removed.
-
- * xterm.c (x_set_offset): Use move_offset_left/top instead of
- x/y_pixels_outer_diff.
- (x_check_expected_move): Calculate move_offset_left/top.
-
- * xterm.h (struct x_output): New members: move_offset_top/left.
-
- * frame.c (x_set_frame_parameters): Remove x_fullscreen_move,
- call x_set_offset directly.
-
- * frame.h (enum): FULLSCREEN_MOVE_WAIT removed.
-
- * frame.c (Fdelete_frame): Free decode_mode_spec_buffer.
-
- * xterm.c (x_delete_display): Free font names and font_encoder
- in dpyinfo->font_table.
-
- * xfns.c (Fx_close_connection): Only call XFreeFont here.
- Move xfree of font names to x_delete_display.
-
- * xterm.h (struct x_display_info): New member, wm_type.
- (struct x_output): New members, expected_top/left and
- check_expected_move.
-
- * xterm.c (handle_one_xevent): Reset wm_type when ReparentNotify
- is received.
- (handle_one_xevent): Rename x_check_expected_move from
- x_check_fullscreen_move.
- (x_set_offset): Only add WM decoration sizes to modified_top/left
- for X_WMTYPE_A. Set check_expected_move when WM type is unknown.
- (x_check_expected_move): Rename from x_check_fullscreen_move.
- Removed fullscreen specific code. Use check_expected_move,
- expected_left/top instead. Also, set wm_type.
- (x_term_init): Initialize wm_type to unknown.
-
- * frame.c (x_fullscreen_move): Remove addition of WM decoration
- sizes to move_x/y.
-
-2003-10-03 Kenichi Handa <handa@m17n.org>
-
- * macterm.c (x_load_font): Clear all members of FONTP before start
- filling them.
-
-2003-10-02 Kenichi Handa <handa@m17n.org>
-
- * fontset.c (fs_load_font): Don't set fontp->font_encoder to NULL
- before calling find_ccl_program_func. Call find_ccl_program_func
- only when fontp->font_encoder is not NULL.
-
- * xterm.c (x_load_font): Clear all members of FONTP before start
- filling them.
-
-2003-10-03 John Paul Wallington <jpw@gnu.org>
-
- * keymap.c (map_keymap): Don't abort when binding is a vector.
-
-2003-10-02 Jason Rumney <jasonr@gnu.org>
-
- * makefile.w32-in (emacs.o, coding.o, bytecode.o):
- Sync dependencies with Makefile.in.
- (alloca.o): Remove.
-
- * w32fns.c (w32_load_system_font): Clear all members of FONTP before
- filling them.
-
- * w32bdf.c (w32_load_bdf_font): Likewise.
-
-2003-09-30 Richard M. Stallman <rms@gnu.org>
-
- * term.c (set_tty_color_mode): Calculate current_mode_spec
- regardless of value of VAL.
-
- * intervals.c (graft_intervals_into_buffer):
- Set BUF_INTERVALS (buffer)->up_obj when appropriate.
- Handle over_used when splitting UNDER.
-
-2003-09-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-
- * regex.c (regex_compile): Free the stack when returning from function.
-
-2003-09-28 Kenichi Handa <handa@m17n.org>
-
- * fontset.c (Finternal_char_font): Change return value to
- cons (FONT-NAME . GLYPH-CODE).
-
-2003-09-28 Eli Zaretskii <eliz@gnu.org>
-
- * term.c (tty_setup_colors): Treat any negative argument as -1.
-
-2003-09-27 Gaute B Strokkenes <biggaute@uwc.net> (tiny change)
-
- * process.c (send_process): Delete unused temp_buf.
-
-2003-09-26 Dave Love <fx@gnu.org>
-
- * xterm.c (x_bitmap_mask): Declare.
-
-2003-09-25 Dave Love <fx@gnu.org>
-
- * Makefile.in (fns.o): Depend on md5.h.
-
-2003-09-25 Kim F. Storm <storm@cua.dk>
-
- * window.c (set_window_buffer): Fix redisplay problems when
- switching between buffers with different display margin widths.
-
-2003-09-23 Kim F. Storm <storm@cua.dk>
-
- * process.c (set_socket_option): Fix :bindtodevice option.
- (Fset_network_process_option): Update process contact list when
- setting option succeeds.
- (Fmake_network_process): Doc fix.
-
-2003-09-23 Dave Love <fx@gnu.org>
-
- * process.c (Fnetwork_interface_info): Use HAVE_STRUCT_IFREQ... macros.
-
-2003-09-22 Eli Zaretskii <eliz@gnu.org>
-
- * term.c (set_tty_color_mode): Use INTEGERP to test whether a
- color mode is an integer number (it could be -1).
-
-2003-09-22 Richard M. Stallman <rms@gnu.org>
-
- * intervals.c (graft_intervals_into_buffer): Correct the main loop
- in the case where OVER is longer than UNDER.
-
-2003-09-22 Masatake YAMATO <jet@gyve.org>
-
- * window.c (Fset_window_scroll_bars): Validate the value of
- `vertical_type'.
-
-2003-09-21 Kim F. Storm <storm@cua.dk>
-
- * frame.c (Vdefault_frame_scroll_bars): New variable.
- (x_set_vertical_scroll_bars): Use it instead of hardcoded values.
- (syms_of_frame): DEFVAR_LISP it, and initialize according to
- window-system default scroll bar position.
-
- * window.c (Fwindow_scroll_bars): Doc fix.
-
-2003-09-19 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_set_offset): Take window manager decorations into account.
-
-2003-09-19 Richard M. Stallman <rms@gnu.org>
-
- * atimer.h: Don't include lisp.h.
- (P_): Define it here (as well as elsewhere).
-
- * print.c (Fprin1_to_string): Move the PRINTPREPARE
- later, so that PRINTFINISH won't unbind Qinhibit_modification_hooks.
-
- * data.c (Fvariable_binding_locus): New function.
- (syms_of_data): defsubr it.
- (Flocal_variable_p): Delete duplicate call to indirect_variable.
-
-2003-09-18 Dave Love <fx@gnu.org>
-
- * alloc.c (GC_MALLOC_CHECK): Move conditional undef after lisp.h.
-
- * process.c (Fnetwork_interface_info): Fix type error.
- (Fnetwork_interface_list): Doc fix.
- (read_process_output, read_process_output): Delete unused var.
-
-2003-09-17 Kim F. Storm <storm@cua.dk>
-
- * process.c (Fnetwork_interface_list, Fnetwork_interface_info):
- Require HAVE_NET_IF_H and HAVE_SYS_IOCTL_H to include these fns.
- (Fnetwork_interface_info): Check that ifreq struct has required
- fields before accessing them; this requires that those fields are
- defined as macros, which may be too restrictive on some platforms,
- but it is better than failing on other platforms.
- (syms_of_process): Only defsubr above fns when included.
-
-2003-09-17 Dave Love <fx@gnu.org>
-
- * unexalpha.c: Don't include varargs.h.
-
-2003-09-17 Kim F. Storm <storm@cua.dk>
-
- * process.c (Fset_process_sentinel): Add sentinel to childp plist
- for network process.
- (socket_options): Add `:' prefix to option names. Add optbit field.
- (set_socket_option): Remove no_error arg and special handling of s < 0.
- Return 1<<optbit for known option, 0 for unknown.
- Do not interpret 0 as false for boolean option (only nil).
- Pass failed option and value to report_file_error.
- (Fset_network_process_options): Replace by Fset_network_process_option.
- (Fset_network_process_option): New function to set just one option.
- (Fmake_network_process): Allow :coding arg to be a cons.
- Allow :server arg to be an integer specifying backlog size.
- Remove :options arg, and allow options to be specified directly
- as :KEY, VALUE pairs. Parse these options before binding socket.
- As before, :reuseaddr t is default for a server process, but this
- can now be disabled by specifying :reuseaddr nil.
- (Fnetwork_interface_info): Rename from Fget_network_interface_info.
- (init_process): Availability of network options is now checked with
- simpler syntax (featurep 'make-network-process :OPTION); use loop to
- setup features.
- (syms_of_process): Fix defsubr's for the replaced functions.
-
-2003-09-16 Dave Love <fx@gnu.org>
-
- * Makefile.in: Depend on coding.h.
-
-2003-09-14 Kim F. Storm <storm@cua.dk>
-
- * process.c [HAVE_SOCKETS]: Include sys/ioctl.h and net/if.h.
- (Fnetwork_interface_list, Fget_network_interface_info): New defuns.
- (syms_of_process): Defsubr them.
-
- * config.in: Regenerate.
-
-2003-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * m/sr2k.h (XMARKBIT, XUNMARK): Remove.
- * m/news-r6.h (XUNMARK): Remove.
- * m/mips.h (XUNMARK): Remove.
- * m/mips-siemens.h (XUNMARK): Remove.
- * m/iris4d.h (XUNMARK): Remove.
- * m/hp800.h (XMARKBIT, XUNMARK): Remove.
-
-2003-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * lisp.h (VALBITS): Don't remove 1 for the markbit.
- (union Lisp_Object): Use unsigned int for types. Remove markbit.
- (MARKBIT): Remove 1 from VALBITS so we still use same old val.
- (XTYPE): Use unsigned right-shift.
- (XMARKBIT, XMARK, XUNMARK): Remove.
-
- * alloc.c (init_intervals, init_symbol, init_marker):
- Don't preallocate anything.
- (Fgarbage_collect, mark_object): Ignore the markbit.
-
- * bytecode.c (mark_byte_stack, unmark_byte_stack): Ignore the markbit.
-
-2003-09-08 Lute Kamstra <lute@gnu.org>
-
- * xdisp.c (pint2hrstr): New function.
- (decode_mode_spec): Add `%i' and `%I' specs.
- * buffer.c (syms_of_buffer): Document `%i' and `%I' constructs
- for `mode-line-format'.
-
-2003-09-07 Andreas Schwab <schwab@suse.de>
-
- * alloc.c: Use long instead of int when casting ABLOCKS_BUSY to
- avoid warning.
-
-2003-09-07 Eli Zaretskii <eliz@gnu.org>
-
- * editfns.c (region_limit): Support any non-zero value of BEGINNINGP.
-
-2003-09-03 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (get_window_cursor_type): Partially undo 2002-03-01
- change (superseded by 2002-08-30 change); the default blink-off
- cursor is now again "no cursor".
-
-2003-09-01 Jason Rumney <jasonr@gnu.org>
-
- * makefile.w32-in (alloca.o): Remove.
- (coding.o): Depend on intervals.h
- (emacs.o, bytecode.o): Depend on window.h
-
-2003-09-01 Dave Love <fx@gnu.org>
-
- * Makefile.in (alloca.o): Remove commands.
- (coding.o): Depend on intervals.h composite.h window.h.
- (emacs.o): Depend on window.h keyboard.h keymap.h.
- (gtkutil.o): Depend on keyboard.h charset.h coding.h.
- (bytecode.o): Depend on window.h.
-
-2003-08-31 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (w32_per_char_metric): Allow cached metrics to be
- returned even when font_type is unknown.
-
- * xdisp.c (init_iterator): Remove old WINDOWSNT conditional.
-
-2003-08-30 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_term_init): Initialize new fields in x_display_info.
-
- * xterm.h (struct x_display_info): Add red/green/blue_bits and
- *_offset.
-
- * xfns.c (lookup_rgb_color): Use new fields in x_display_info to
- calculate pixel value.
-
-2003-08-29 Gerd Moellmann <gerd.moellmann@t-online.de>
-
- * xdisp.c (redisplay_internal): Fix change of 2003-04-30.
- Don't tell redisplay display is accurate when it's actually been
- paused for pending input.
-
-2003-08-29 Richard M. Stallman <rms@gnu.org>
-
- * dispnew.c (adjust_glyph_matrix): Call window_box
- whenever W is nonzero.
-
- * data.c (Fmake_variable_buffer_local, Fmake_local_variable)
- (Fkill_local_variable, Fmake_variable_frame_local)
- (Flocal_variable_p, Flocal_variable_if_set_p):
- Use indirect_variable to trace thru variable aliases.
-
- * config.in: Updated.
-
- * callint.c (Fcall_interactively): Save and restore
- Vthis_command, Vthis_original_command, real_this_command,
- and current_kboard->Vlast_command.
-
- * abbrev.c (Fexpand_abbrev): Insert before deleting.
-
-2003-08-29 Gerd Moellmann <gerd@gnu.org>
-
- * xfns.c (lookup_rgb_color): Handle TrueColor visuals specially.
-
-2003-08-28 David Abrahams <dave@boost-consulting.com> (tiny change)
-
- * coding.c (decode_coding_iso2022): Initialize local variable c2.
- (decode_coding_sjis_big5): Likewise.
-
-2003-08-27 Jason Rumney <jasonr@gnu.org>
-
- * w32.c (sys_pipe): Protect against file descriptor overflow.
-
- * w32fns.c (syms_of_w32fns): Remove non-existent functions.
-
- * w32term.c (w32_read_socket): Fix WM_MOUSEWHEEL assignment.
-
-2003-08-26 Terje Rosten <terjeros@phys.ntnu.no>
-
- * xfns.c (Vgtk_version_string): New variable.
- (syms_of_xfns): DEFVAR_LISP it. Provide gtk.
-
-2003-08-24 Eli Zaretskii <eliz@gnu.org>
-
- * term.c (term_init): Remove `const' from buffer_size's declaration.
-
- * Makefile.in (msdos.o): Depend on intervals.h.
-
- * msdos.c: Include intervals.h, since STRING_INTERVALS requires that.
-
-2003-08-21 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.h (struct x_display_info): New fields: client_leader_window
- and Xatom_wm_client_leader.
-
- * xterm.c (x_initialize): Move call to x_session_initialize to ...
- (x_term_init): ... here. Initialize client_leader fields in dpyinfo.
-
- * xsmfns.c (create_client_leader_window): New function.
- (x_session_initialize): Call create_client_leader_window, take
- dpyinfo as argument.
-
- * xfns.c (Fx_create_frame): Set property WM_CLIENT_LEADER.
-
- * Makefile.in (xsmfns.o): Add more depenedencies.
-
-2003-08-21 Dave Love <fx@gnu.org>
-
- * m/iris4d.h: Use _MIPS_SZLONG, not _LP64.
-
-2003-08-21 Kenichi Handa <handa@m17n.org>
-
- * term.c (term_init): Fix previous change; don't rely on the
- length of `buffer' if TERMINFO is defined.
-
-2003-08-20 Dave Love <fx@gnu.org>
-
- * atimer.h: Include lisp.h.
-
- * lisp.h (EMACS_LISP_H): New.
- (popup_activated_flag): Don't declare.
-
- * alloca.c: Some merging with gnulib. Change logic and doc
- concerning (x)malloc/(x)free -- no longer Emacs-specific.
- [DO_BLOCK_INPUT]: Don't include lisp.h.
- (xmalloc, xfree): Declare.
- (malloc): Don't declare.
-
- * Makefile.in (LWLIB_OPTIONS): Remove (unused).
- (alloca.o): Remove obsolete stuff concerning alloca.s. Depend on
- atimer.h, blockinput.h.
-
- * alloc.c (lisp_align_malloc): Change type of `aligned'.
-
- * alloca.s: Remove.
-
-2003-08-19 Gerd Moellmann <gerd@gnu.org>
-
- * s/freebsd.h [__FreeBSD_version >= 400000]: Define TERMINFO,
- use -lncurses.
-
- * term.c (term_init): Use a buffer of size 4096 for tgetent since
- FreeBSD returns something longer than 2044. Abort if the end of
- the buffer is overwritten.
-
-2003-08-19 Miles Bader <miles@gnu.org>
-
- * xterm.c (x_term_init): Correctly use result of Ffile_readable_p.
-
-2003-08-19 Gerd Moellmann <gerd@gnu.org>
-
- * alloc.c (lisp_align_malloc): Check for memory full when
- allocating ablocks, which also avoids freeing a pointer into an
- ablocks structure.
-
- * puresize.h (BASE_PURESIZE): Increase to 1100000.
-
- * buffer.c (Fmove_overlay): Set overlay's next pointer unconditionally.
-
-2003-08-16 Richard M. Stallman <rms@gnu.org>
-
- * editfns.c (Fencode_time): Doc fix.
-
-2003-08-16 David Ponce <david@dponce.com>
-
- * fileio.c (Fwrite_region): Fix conditional expression to issue
- the right message.
-
-2003-08-16 Juri Linkov <juri@jurta.org>
-
- * syntax.c (Fforward_word): Argument changed to optional.
- Set default value to 1.
-
-2003-08-15 Kenichi Handa <handa@m17n.org>
-
- * xfaces.c (better_font_p): Prefer a real scalable font; i.e. not
- what autoscaled.
- (best_matching_font): Once we find a better scalable font, set
- non_scalable_has_exact_height_p to 1.
- (try_font_list): Call try_alternative_families to try any family
- with the given registry.
-
-2003-08-09 Andreas Schwab <schwab@suse.de>
-
- * alloc.c (mark_object): Handle Lisp_Misc_Save_Value.
-
- * print.c (print_string): Fix printing of multibyte string with
- nontrivial printcharfun.
-
-2003-07-31 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
-
- * xterm.c (x_bitmap_icon): Return if xg_set_icon succeeds.
-
-2003-07-31 Kenichi Handa <handa@m17n.org>
-
- * process.c (read_process_output): Return the actually read bytes
- instead of the result of decoding.
-
-2003-07-31 Kenichi Handa <handa@m17n.org>
-
- * xterm.h (struct x_bitmap_record): New member have_mask.
-
- * xfns.c (x_create_bitmap_from_data): Initialize have_mask member
- to 0.
- (x_create_bitmap_from_file): Likewise.
- (x_destroy_bitmap): Check have_mask member before freeing a mask.
- (x_destroy_all_bitmaps): Likewise.
- (x_create_bitmap_mask): Set have_mask member to 1.
-
-2003-07-30 Richard M. Stallman <rms@gnu.org>
-
- * Makefile.in (CFLAGS) [!OPTIMIZE]: Undo previous change.
-
-2003-07-29 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_mark_data): Update calls to mark_object.
-
-2003-07-29 Richard M. Stallman <rms@gnu.org>
-
- * xterm.c (xim_open_dpy, xim_initialize, xim_close_dpy):
- Conditionalize XIM code on HAVE_XIM.
-
- * fns.c (Fclear_string): New function.
- (syms_of_fns): defsubr it.
-
-2003-07-28 KOBAYASHI Yasuhiro <kobayays@otsukakj.co.jp>
-
- * xfns.c (xic_set_preeditarea): Add the left fringe width to spot.x.
-
-2003-07-22 Stefan Monnier <monnier@cs.yale.edu>
-
- * xfns.c: Don't check HAVE_PNG_H: autoconf doesn't seem to find it.
-
- * buffer.c (delete_all_overlays): New function.
- * buffer.h (delete_all_overlays): Declare.
- * coding.c (run_pre_post_conversion_on_str):
- * print.c (temp_output_buffer_setup):
- * fileio.c (Finsert_file_contents):
- * minibuf.c (get_minibuffer): Use it.
-
-2003-07-22 Andrew Choi <akochoi@shaw.ca>
-
- * unexmacosx.c (unexec_regions_sort_compare):
- (unexec_regions_merge): New functions. Sort and merge unexec
- regions before dumping them.
-
-2003-07-22 Dave Love <fx@gnu.org>
-
- * xfns.c [HAVE_PNG]: Consider both png.h and libpng/png.h.
-
-2003-07-21 Stefan Monnier <monnier@cs.yale.edu>
-
- * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P)
- (GC_STRING_CHARS, string_bytes): Use ARRAY_MARK_FLAG rather than
- MARKBIT as the gcmarkbit for strings.
-
-2003-07-21 Richard M. Stallman <rms@gnu.org>
-
- * s/openbsd.h (LD_SWITCH_SYSTEM_TEMACS): Add undef.
-
- * fns.c (Flocale_info): Rename from Flanginfo. Doc fixes.
- (syms_of_fns): Corresponding change.
-
- * alloc.c (syms_of_alloc): Doc fixes.
-
-2003-07-20 Han Boetes <han@mijncomputer.nl> (tiny change)
-
- * s/netbsd.h: Use -Wl syntax.
-
-2003-07-17 Richard M. Stallman <rms@gnu.org>
-
- * xterm.c (xim_initialize): Redo 6/24 change.
-
-2003-07-15 Stefan Monnier <monnier@cs.yale.edu>
-
- * buffer.c (copy_overlays): Use EMACS_INT for positions.
- (Fswitch_to_buffer): Don't signal an error when switching to the same
- buffer in a dedicated window.
-
- * alloc.c: Use bitmaps for cons, as was done for floats.
- (init_float, init_cons): Let the normal code allocate the first block.
- (CONS_BLOCK_SIZE): Redefine based on BLOCK_BYTES and bitmap size.
- (CONS_BLOCK, CONS_INDEX, CONS_MARKED_P, CONS_MARK, CONS_UNMARK):
- New macros.
- (struct cons_block): Move conses to the beginning. Add gcmarkbits.
- (Fcons): Use lisp_align_malloc and CONS_UNMARK.
- (live_cons_p): Check the pointer is not past the `conses' array.
- (mark_maybe_object, mark_maybe_pointer): Use CONS_MARKED_P.
- (mark_object, mark_buffer): Use CONS_MARKED_P and CONS_MARK.
- (survives_gc_p): Use CONS_MARKED_P and simplify.
- (gc_sweep): Use CONS_MARKED_P, CONS_UNMARK, and lisp_align_free.
-
-2003-07-13 Paul Eggert <eggert@twinsun.com>
-
- GCC 3.3 (sparc) no longer puts "int foo = 0;" into data; it
- puts it into BSS instead, at least on Solaris 8 and 9.
- This is a valid optimization, and it may occur on other platforms,
- so Emacs should not assume that initializing a static variable to
- zero puts it into data.
- * alloc.c (pure, staticvec):
- Initialize these arrays to nonzero, so that they're not
- put into BSS by that optimization.
-
-2003-07-13 Stefan Monnier <monnier@cs.yale.edu>
-
- * alloc.c (BLOCK_PADDING): Rename from ABLOCKS_PADDING. Update users.
- (lisp_align_malloc): Use posix_memalign is available.
- (ABLOCKS_BASE): Use HAVE_POSIX_MEMALIGN as an optimization.
- (STRING_BLOCK_SIZE): Rename from STRINGS_IN_STRING_BLOCK
- for consistency. Update users.
-
-2003-07-13 Richard M. Stallman <rms@gnu.org>
-
- * s/netbsd.h (START_FILES_1, END_FILES_1): Always define them.
-
-2003-07-13 Terje Rosten <terjeros@phys.ntnu.no>
-
- * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap): Modify to add mask,
- and use the Gtk+ function gtk_window_icon_from_file if available.
-
- * xfns.c (x_bitmap_mask, x_create_bitmap_mask): New functions to
- handle mask of bitmaps.
- (x_allocate_bitmap_record, x_destroy_bitmap): Modify to handle the
- mask property.
- (xg_set_icon): New function, wrapper for gtk_window_icon_from_file.
-
- * xterm.h (xg_set_icon): New function.
-
-2003-07-12 Paul Eggert <eggert@twinsun.com>
-
- * unexelf.c (unexec): Consider a section to precede the .bss
- section if its addresses overlap that of .bss.
-
-2003-07-12 Richard M. Stallman <rms@gnu.org>
-
- * Makefile.in (CFLAGS) [!OPTIMIZE]: Set CFLAGS to -g.
-
- * config.in (HAVE_CRTIN): Add #undef.
- (INLINE): Really inline only if OPTIMIZE is defined.
-
- * s/netbsd.h (START_FILES, LIB_STANDARD): Use START_FILES_1,
- END_FILES_1.
- (START_FILES_1, END_FILES_1): New macros (conditional).
- (LD_SWITCH_SYSTEM_TEMACS): Define.
-
- * s/openbsd.h: Don't include bsd4-3.h.
- (TERMINFO): Define.
- (LIBS_TERMCAP): Define.
- (LD_SWITCH_SYSTEM): Define (two definitions).
-
- * xfns.c: Include libpng/png.h instead of png.h.
-
-2003-07-11 Andreas Schwab <schwab@suse.de>
-
- * buffer.c (modify_overlay): Update prototype.
- * lisp.h (adjust_overlays_for_insert, adjust_overlays_for_delete):
- Likewise.
-
-2003-07-09 Stefan Monnier <monnier@cs.yale.edu>
-
- * lisp.h (VALBITS): Define in terms of GCTYPEBITS.
- (struct interval): Move to intervals.h.
- (struct Lisp_Marker): Use EMACS_INT for position info.
- (forward_point): Remove prototype of defunct function.
- (Qmodification_hooks, Qrear_nonsticky, Fnext_property_change)
- (Fget_text_property, Fset_text_properties, Ftext_propertes_not_all)
- (syms_of_textprop, set_text_properties): Remove prototypes that are
- already in intervals.h.
-
- * intervals.h (struct interval): Move from lisp.h.
- Use EMACS_INT for position and size info.
-
- * coding.c: Include intervals.h for Fset_text_properties.
-
- * buffer.h (struct buffer_text, struct buffer): Use EMACS_INT for
- position and length information.
-
-2003-07-09 Stefan Monnier <monnier@cs.yale.edu>
-
- * buffer.h (struct buffer_text, struct buffer): Use EMACS_INT for
- position and length information.
-
-2003-07-09 Stefan Monnier <monnier@cs.yale.edu>
-
- Change overlays_after and overlays_before so the overlays themselves
- are linked into lists, rather than using cons cells. After all each
- Lisp_Misc already occupies 5 words, so we can add a `next' field to
- Lisp_Overlay for free and save up one cons cell per overlay (not
- to mention one indirection when traversing the list of overlay).
-
- * lisp.h (struct Lisp_Overlay): New field `next'.
-
- * buffer.h (struct buffer): Change overlays_before and overlays_after
- from Lisp lists of overlays to pointers to overlays.
-
- * buffer.c (overlay_strings, recenter_overlay_lists):
- Fix typo in eassert in last commit.
- (unchain_overlay): New function.
- (add_overlay_mod_hooklist): Use AREF.
- (copy_overlays, reset_buffer, overlays_at, overlays_in)
- (overlay_touches_p, overlay_strings, recenter_overlay_lists)
- (fix_overlays_in_range, fix_overlays_before, Fmake_overlay)
- (Fmove_overlay, Fdelete_overlay, Foverlay_lists)
- (report_overlay_modification, evaporate_overlays, init_buffer_once):
- Adjust to new type of overlays_(before|after).
-
- * alloc.c (mark_object): Mark the new `next' field of overlays.
- (mark_buffer): Manually mark the overlays_(after|before) fields.
-
- * coding.c (run_pre_post_conversion_on_str):
- * editfns.c (overlays_around):
- * xdisp.c (load_overlay_strings):
- * fileio.c (Finsert_file_contents):
- * indent.c (current_column):
- * insdel.c (signal_before_change, signal_after_change):
- * intervals.c (set_point_both):
- * print.c (temp_output_buffer_setup): Use new type for
- overlays_(before|after).
-
-2003-07-08 Stefan Monnier <monnier@cs.yale.edu>
-
- * buffer.c (report_overlay_modification): Don't run hooks while
- traversing the list of overlays.
-
- * buffer.h (struct buffer): Use an int for overlay_center.
- (overlays_at, evaporate_overlays, recenter_overlay_lists)
- (overlay_strings, fix_overlays_before): Use EMACS_INT for positions.
-
- * buffer.c (reset_buffer, recenter_overlay_lists)
- (adjust_overlays_for_insert, adjust_overlays_for_delete)
- (fix_overlays_in_range, Fmake_overlay, Fmove_overlay)
- (evaporate_overlays, init_buffer_once): Update use of overlay_center.
- (overlays_at, evaporate_overlays, recenter_overlay_lists)
- (overlay_strings, fix_overlays_before): Use EMACS_INT for positions.
-
- * xdisp.c (fast_find_position): Remove unused var.
-
- * cmds.c (Qexpand_abbrev): New sym.
- (syms_of_cmds): Initialize it.
- (internal_self_insert): Use it to call expand-abbrev.
-
-2003-07-09 Kim F. Storm <storm@cua.dk>
-
- * xterm.c (use_xim) [!USE_XIM]: Default to disable XIM if Emacs
- was configured with --without-xim.
- (x_term_init) [!USE_XIM]: Use `useXIM' resource to turn on XIM.
-
-2003-07-07 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (reseat_1): Set it->area to TEXT_AREA.
-
- * alloc.c (Fgarbage_collect): Doc fix.
-
-2003-07-07 Nozomu Ando <nand@mac.com>
-
- * buffer.c (Fkill_buffer): Clear charpos cache if necessary.
-
-2003-07-06 Stefan Monnier <monnier@cs.yale.edu>
-
- * minibuf.c (read_minibuf): UNGCPRO before returning.
- (Ftry_completion, Fall_completions): Doc fix.
-
- * alloc.c (live_float_p): Check that p is not past the `floats' array,
- now that `floats' is not the last element of the struct any more.
-
-2003-07-06 Jason Rumney <jasonr@gnu.org>
-
- * w32term.h (ClipboardSequence_Proc): New type.
-
- * w32fns.c (clipboard_sequence_fn): New variable.
- (globals_of_w32fns): Initialize it.
-
- * w32select.c (last_clipboard_sequence_number): New variable.
- (Fw32_set_clipboard_data, Fw32_get_clipboard_data): Use sequence
- number if possible.
-
-2003-07-06 Stefan Monnier <monnier@cs.yale.edu>
-
- * m/amdx86-64.h (MARKBIT):
- * m/ia64.h (MARKBIT): Remove definition since lisp.h does not compare
- MARKBIT and ARRAY_MARK_FLAG any more.
-
- * m/hp800.h (XSETMARKBIT):
- * m/sr2k.h (XSETMARKBIT):
- * lisp.h (XSETMARKBIT): Remove unused macro.
-
- * lisp.h (mark_object): Change prototype.
-
- * alloc.c (mark_object): Change arg *Lisp_Object -> Lisp_Object.
- (last_marked): Change accordingly.
- (mark_interval, mark_maybe_object, mark_maybe_pointer)
- (Fgarbage_collect, mark_glyph_matrix, mark_face_cache, mark_image)
- (mark_buffer): Update calls to mark_object.
-
- * bytecode.c (mark_byte_stack):
- * fns.c (sweep_weak_table):
- * keyboard.c (mark_kboards): Update calls to mark_object.
-
-2003-07-06 Jason Rumney <jasonr@gnu.org>
-
- * alloc.c (struct ablock): Only include padding when there is some.
-
-2003-07-04 Stefan Monnier <monnier@cs.yale.edu>
-
- * alloc.c (ALIGN): Add casts to simplify usage.
- (BLOCK_ALIGN, BLOCK_BYTES, ABLOCKS_PADDING, ABLOCKS_SIZE)
- (ABLOCKS_BYTES, ABLOCK_ABASE, ABLOCKS_BUSY, ABLOCKS_BASE): New macros.
- (struct ablock, struct ablocks): New types.
- (free_ablock): New global var.
- (lisp_align_malloc, lisp_align_free): New functions.
- (FLOAT_BLOCK_SIZE): Redefine in terms of BLOCK_BYTES.
- (struct float_block): Reorder and add gcmarkbits.
- (GETMARKBIT, SETMARKBIT, UNSETMARKBIT, FLOAT_BLOCK, FLOAT_INDEX)
- (FLOAT_MARKED_P, FLOAT_MARK, FLOAT_UNMARK): New macros.
- (init_float, make_float): Use lisp_align_malloc.
- (free_float, live_float_p): Don't use `type' any more.
- (make_float): Use FLOAT_UNMARK to access to mark bit.
- (mark_maybe_object, mark_maybe_pointer, survives_gc_p):
- Use FLOAT_MARKED_P to access the mark bit.
- (pure_alloc): Simplify use of ALIGN.
- (mark_object): Use FLOAT_MARK to access the mark bit.
- (gc_sweep): Use new macros to access the float's mark bit.
- (init_alloc_once): Init free_ablock.
-
- * lisp.h (struct Lisp_Float): Remove unused field `type'.
-
-2003-06-27 Stefan Monnier <monnier@cs.yale.edu>
-
- * alloc.c (VECTOR_MARK, VECTOR_UNMARK, VECTOR_MARKED_P): New macros.
- (GC_STRING_BYTES): Don't mask markbit (it's only used on `size').
- (allocate_buffer): Move.
- (string_bytes): Don't mask markbit of `size_byte'.
- (mark_maybe_object, mark_maybe_pointer, Fgarbage_collect)
- (mark_object, mark_buffer, survives_gc_p, gc_sweep):
- Use the `size' field of buffers (rather than the `name' field) for
- the mark bit, as is done for all other vectorlike objects.
- Use the new macros to access the mark bit of vectorlike objects.
-
-2003-06-26 Richard M. Stallman <rms@gnu.org>
-
- * puresize.h (BASE_PURESIZE): Increment base size.
-
- * xdisp.c (fast_find_position): Enable Gerd's new definition.
-
- * xterm.c (xim_initialize): Undo previous change.
-
-2003-06-26 Stefan Monnier <monnier@cs.yale.edu>
-
- * alloc.c (survives_gc_p): Simplify.
-
- * buffer.c (set_buffer_internal_1): Test CONSP for lists.
-
- * window.c (Fset_window_dedicated_p): Simplify.
- (display_buffer_1): Don't raise the win from which minibuf was entered.
- (temp_output_buffer_show): Don't assume BEG == 1. Simplify.
- (Fminibuffer_selected_window): Simplify.
-
- * buffer.h (struct buffer_text): Lisp_Object `markers' => Lisp_Marker.
-
- * lisp.h (unchain_marker): Lisp_Object arg => Lisp_Marker.
- (struct Lisp_Marker): Lisp_Object `chain' => Lisp_Marker `next'.
-
- * insdel.c (check_markers, adjust_markers_for_delete)
- (adjust_markers_for_insert, adjust_markers_for_replace)
- (prepare_to_modify_buffer, RESTORE_VALUE):
- * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos)
- (Fset_marker, set_marker_restricted, set_marker_both, unchain_marker)
- (set_marker_restricted_both, Fbuffer_has_markers_at, count_markers):
- * alloc.c (Fmake_marker, free_marker, gc_sweep):
- * buffer.c (Fget_buffer_create, Fkill_buffer, Fset_buffer_multibyte):
- * editfns.c (save_excursion_restore, transpose_markers):
- * window.c (delete_window):
- * xdisp.c (message_dolog): Update for new types.
-
-2003-06-26 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfaces.c (set_font_frame_param): Set default_face_done_p to zero.
- (realize_default_face): Use default_face_done_p for the force_p
- argument to set_lface_from_font_name. Set default_face_done_p to one.
-
- * frame.c (make_frame): Initialize default_face_done_p.
-
- * frame.h (struct frame): Add default_face_done_p.
-
- * config.in: Add XRegisterIMInstantiateCallback_arg6 so it
- will be defined.
-
-2003-06-25 Stefan Monnier <monnier@cs.yale.edu>
-
- * alloc.c (make_interval, Fmake_symbol, allocate_misc):
- Initialize the new field `gcmarkbit'.
- (mark_interval, MARK_INTERVAL_TREE): Use the new `gcmarkbit' field.
- (mark_interval_tree): Don't mark the tree separately from the nodes.
- (UNMARK_BALANCE_INTERVALS): Don't unmark the tree.
- (mark_maybe_object, mark_maybe_pointer, Fgarbage_collect)
- (mark_object, survives_gc_p, gc_sweep): Use new `gcmarkbit' fields.
-
- * lisp.h (struct interval, struct Lisp_Symbol, struct Lisp_Free)
- (struct Lisp_Marker, struct Lisp_Intfwd, struct Lisp_Boolfwd)
- (struct Lisp_Kboard_Objfwd, struct Lisp_Save_Value)
- (struct Lisp_Buffer_Local_Value, struct Lisp_Overlay)
- (struct Lisp_Objfwd, struct Lisp_Buffer_Objfwd): Add `gcmarkbit' field.
-
-2003-06-24 Dave Love <fx@gnu.org>
-
- * xterm.c (xim_initialize): Use XRegisterIMInstantiateCallback_arg6.
-
- * strftime.c: Test HAVE_SYS__MBSTATE_H, not __hpux. Merge changes
- from gnulib.
-
-2003-06-21 Richard M. Stallman <rms@gnu.org>
-
- * fileio.c (Fwrite_region): Alternate messages
- for append and partial write.
-
- * keyboard.c (read_key_sequence): When converting upcase fn key to
- downcase, update fkey and keytran so `backspace' gets translated.
-
- * keyboard.c (read_avail_input): Don't signal SIGHUP in batch mode.
-
- * process.c (wait_reading_process_input): Don't signal SIGIO
- in batch mode.
-
-2003-06-17 Kenichi Handa <handa@m17n.org>
-
- * Makefile.in (xselect.o): Don't depend on charset.h, coding.h,
- composite.h.
-
- * xselect.c: Don't include charset.h, coding.h, composite.h.
- (Qforeign_selection): New variable.
- (syms_of_xselect): Intern and static it.
- (selection_data_to_lisp_data): Return a unibyte string made from
- data with `foreign-selection' text property.
-
-2003-06-15 Stefan Monnier <monnier@cs.yale.edu>
-
- * termhooks.h (EVENT_INIT): New macro.
-
- * keyboard.c (mark_kboards): Move from alloc.c. Mark kbd_buffer.
-
- * alloc.c (mark_kboards): Move to keyboard.c.
-
- * keyboard.c (record_asynch_buffer_change, read_avail_input):
- * xterm.c (x_dispatch_event):
- * xmenu.c (find_and_call_menu_selection):
- * xdisp.c (handle_tool_bar_click):
- * w32menu.c (menubar_selection_callback):
- * sysdep.c (kbd_input_ast, read_input_waiting):
- * msdos.c (dos_rawgetc):
- * macterm.c (mac_check_for_quit_char):
- * macmenu.c (menubar_selection_callback):
- * gtkutil.c (xg_tool_bar_callback): Don't pass uninitialized
- data to kbd_buffer_store_event.
-
-2003-06-15 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (x_fix_overlapping_area): Always use area relative X
- to fix redisplay problem with tall characters (such as \e,AC\e(B).
-
-2003-06-13 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@gmx.net>
-
- * fileio.c (Fcopy_file): Doc fix: copies file modes, too.
-
-2003-06-12 Kenichi Handa <handa@m17n.org>
-
- * fileio.c (Fwrite_region): Save and restore restriction.
-
-2003-06-12 Dave Love <fx@gnu.org>
-
- * alloca.c (alloca): Declare arg as size_t.
-
- * sysdep.c: Remove redundant include of unistd.h, stdlib.h.
- Use HAVE_DECL_SYS_SIGLIST, not SYS_SIGLIST_DECLARED.
-
-2003-06-11 Dave Love <fx@gnu.org>
-
- * search.c (shrink_regexp_cache): Use xrealloc.
- (syms_of_search): Use xmalloc.
-
-2003-06-10 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (phys_cursor_in_rect_p): Fix 2003-05-24 change.
- Adjust phys_cursor.x to be relative to window box, rather than
- text area before checking -- to ensure cursor is redrawn when
- exposing window.
- Note: This also fixes a similar (older) bug if display margins
- are present.
-
-2003-06-06 Kenichi Handa <handa@m17n.org>
-
- * coding.c (encoding_buffer_size): If coding->type is
- coding_type_ccl, double magnification on CRLF encoding.
-
-2003-06-06 Jason Rumney <jasonr@gnu.org>
-
- * w32reg.c (SYSTEM_DEFAULT_RESOURCES): New constant.
- (w32_get_string_resource): Try SYSTEM_DEFAULT_RESOURCES last.
-
- * xfaces.c (Finternal_face_x_get_resource): Do it on Windows and
- Mac too.
-
-2003-06-05 Dave Love <fx@gnu.org>
-
- * strftime.c: Merge changes from gnulib.
-
- * mktime.c (__mktime_internal): Merge changes from gnulib
- involving year 69 and dst2.
-
- Changes to merge with gnulib version and be consistent with the
- autoconf test:
-
- * getloadavg.c: Set NLIST_STRUCT from HAVE_NLIST_H.
- Use HAVE_STRUCT_NLIST_N_UN_N_NAME, not NLIST_NAME_UNION.
- [HAVE_LOCALE_H]: Include locale.h.
- (getloadavg) [HAVE_SETLOCALE]: Run sscanf in C locale.
-
-2003-06-05 Kim F. Storm <storm@cua.dk>
-
- * window.c (coordinates_in_window): Convert X and Y to window
- relative coordinates inside mode-line and header-line parts.
- Convert X and Y to margin area relative coordinates inside left
- and right display margin parts.
-
-2003-06-05 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (add_system_logical_colors_to_map): New function.
- (Fx_open_connection): Use it.
-
-2003-06-04 Stefan Monnier <monnier@cs.yale.edu>
-
- * process.c (allocate_pty): Revert part of the previous patch.
- (Faccept_process_output): Simplify.
-
-2003-06-04 Jason Rumney <jasonr@gnu.org>
-
- * termhooks.h (enum event_kind): Remove MOUSE_WHEEL_EVENT.
-
- * keyboard.c (Qmouse_wheel, mouse_wheel_syms)
- (lispy_mouse_wheel_names): Remove.
- (syms_of_keyboard): Remove Qmouse_wheel and mouse_wheel_syms.
- Always define drag_and_drop_syms.
-
- * macterm.c (XTread_socket): Map mouse wheel events to Emacs
- WHEEL_EVENT events.
-
-2003-06-03 Stefan Monnier <monnier@cs.yale.edu>
-
- * xdisp.c (update_tool_bar): Add missing UNGCPRO.
-
- * buffer.c (init_buffer_once): Make kill-buffer-hook permanent-local.
-
-2003-06-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (make_menu_item): Make sure we don't crash on a NULL
- menu item label.
-
-2003-06-03 Richard M. Stallman <rms@gnu.org>
-
- * window.c (Fwindow_edges): Doc fix.
- (Fwindow_pixel_edges, Fwindow_inside_edges)
- (Fwindow_inside_pixel_edges): New functions.
- (syms_of_window): defsubr them.
-
- * window.h (WINDOW_LEFT_FRINGE_COLS, WINDOW_RIGHT_FRINGE_COLS)
- (WINDOW_MODE_LINE_LINES, WINDOW_HEADER_LINE_LINES): New macros.
-
-2003-06-02 Stefan Monnier <monnier@cs.yale.edu>
-
- * dispnew.c (Fsit_for): Don't lie about the number of args.
-
-2003-06-02 Dave Love <fx@gnu.org>
-
- * callproc.c: Use HAVE_FCNTL_H, not USG5.
- (syms_of_callproc) <process-environment>: Doc fix.
-
- * doc.c: Use HAVE_FCNTL_H, not USG5.
-
- * xfaces.c (font_rescale_ratio): Fix for K&R.
-
- * termcap.c: Use HAVE_FCNTL_H, not _POSIX_VERSION.
-
- * mem-limits.h: Use HAVE_SYS_RESOURCE_H, HAVE_SYS_VLIMIT_H.
-
- * lread.c [HAVE_FCNTL_H]: Include fcntl.h.
-
- * gtkutil.c: Include keyboard.h, charset.h, coding.h.
- (xg_create_frame_widgets): Use ENCODE_UTF_8.
-
- * xterm.c (Qutf_8): Move to coding.c
-
- * xmenu.c (ENCODE_MENU_STRING): New.
- (list_of_panes, list_of_items, digest_single_submenu, xmenu_show):
- Use it.
-
- * coding.h (ENCODE_UTF_8): New.
- (Qutf_8): Declare.
-
- * coding.c (Qutf_8): New.
- (syms_of_coding): Intern it.
-
- * fns.c: Doc fixes.
-
-2003-06-02 Kenichi Handa <handa@m17n.org>
-
- * buffer.c (Fset_buffer_multibyte): Fix previous change.
-
-2003-06-01 Stefan Monnier <monnier@cs.yale.edu>
-
- * lread.c (openp): Make sure STR is a string.
-
-2003-06-01 David Ponce <david@dponce.com>
-
- * termhooks.h (enum event_kind): Add new WHEEL_EVENT event.
- Declare MOUSE_WHEEL_EVENT only if MAC_OSX defined.
-
- * keyboard.c (Qmouse_wheel): Declare only if MAC_OSX defined.
- (mouse_wheel_syms, lispy_mouse_wheel_names): Likewise.
- (discard_mouse_events): Discard WHEEL_EVENT events too.
- (lispy_wheel_names, wheel_syms): New.
- (syms_of_keyboard): Init and staticpro `wheel_syms'. Init and
- staticpro `Qmouse_wheel' and `mouse_wheel_syms' only if MAC_OSX defined.
- (make_lispy_event): Add WHEEL_EVENT handler.
-
- * w32term.c (construct_mouse_wheel): Construct WHEEL_EVENT.
- (w32_read_socket): Map w32 WM_MOUSEWHEEL events to Emacs
- WHEEL_EVENT events.
-
-2003-05-31 John Paul Wallington <jpw@gnu.org>
-
- * Makefile.in (lisp, shortlisp): byte-run, float-sup, map-ynp, and
- timer are in lisp/emacs-lisp.
-
-2003-05-31 Kenichi Handa <handa@m17n.org>
-
- * buffer.c (Fset_buffer_multibyte): Correctly recover a narrowed
- region when a buffer is changed to unibyte.
-
- * charset.h (VALID_LEADING_CODE_P): New macro.
- (UNIBYTE_STR_AS_MULTIBYTE_P): Check more rigidly.
-
- * coding.c (DECODE_EMACS_MULE_COMPOSITION_CHAR): If coding->flags
- is nonzero, accept multibyte form of eight-bit-control chars.
- (decode_composition_emacs_mule): Likewise.
- (decode_coding_emacs_mule): Likewise.
- (encode_coding_emacs_mule): If coding->flags is nonzero, produce
- multibyte form of eight-bit-control chars.
-
- * fileio.c (Qauto_save_coding, auto_save_coding): New variables.
- (Finsert_file_contents): If coding-system-for-read is bound to
- Qauto_save_coding, use the coding system emacs-mule with special
- setting for recovering a file.
- (choose_write_coding_system): On auto saving, use the coding
- system emacs-mule with special setting for auto saving.
- (syms_of_fileio) <Qauto_save_coding>: Intern and staticpro it.
-
-2003-05-30 Kenichi Handa <handa@m17n.org>
-
- * coding.c (ccl_coding_driver): Set ccl->eight_bit_control
- properly before calling ccl_driver.
-
- * ccl.h (struct ccl_program) <eight_bit_control>: Comment fixed.
-
- * ccl.c (CCL_WRITE_CHAR): Increment extra_bytes only when it is nonzero.
- (ccl_driver): Initialize extra_bytes to ccl->eight_bit_control.
- (setup_ccl_program): Initialize ccl->eight_bit_control to zero.
-
-2003-05-29 Glenn Morris <gmorris@ast.cam.ac.uk>
-
- * xfaces.c (realize_default_face): Do not abort if lface is
- non-existent - reverts change from 2003-05-19.
-
-2003-05-29 Kenichi Handa <handa@m17n.org>
-
- * coding.c (decode_coding_iso2022): Pay attention to the byte
- sequence of CTEXT extended segment, and retain those bytes as is.
-
-2003-05-28 Kenichi Handa <handa@m17n.org>
-
- * coding.c (ENCODE_UNSAFE_CHARACTER): Adjust for the name change
- of CODING_REPLACEMENT_CHARACTER.
- (decode_coding_iso2022): If CODING_FLAG_ISO_SAFE, set
- CODING_MODE_INHIBIT_UNENCODABLE_CHAR flag in coding->mode, and
- check this flag on encoding.
- (encode_coding_sjis_big5):
- Check CODING_MODE_INHIBIT_UNENCODABLE_CHAR flag of coding->mode.
- (Fset_terminal_coding_system_internal):
- Set CODING_MODE_INHIBIT_UNENCODABLE_CHAR flag in terminal_coding.mode
- instead of setting CODING_FLAG_ISO_SAFE flag in terminal_coding.flags.
-
- * coding.h (CODING_REPLACEMENT_CHARACTER): Rename from
- CODING_INHIBIT_CHARACTER_SUBSTITUTION.
- (CODING_MODE_INHIBIT_UNENCODABLE_CHAR): New macro.
-
-2003-05-28 Richard M. Stallman <rms@gnu.org>
-
- * print.c (syms_of_print) <print-escape-nonascii>: Doc fix.
-
- * eval.c (unbind_to): Move init of this_binding to separate statement.
-
-2003-05-28 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (expose_window): Fix error in calculation of
- window relative coordinates of area to redisplay.
-
-2003-05-27 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (GET_WHEEL_DELTA_WPARAM): New macro.
-
-2003-05-27 David Ponce <david@dponce.com>
-
- Handle W32 mouse wheel events as mouse click events, like in X.
-
- * keyboard.c (make_lispy_event) [WINDOWSNT]: Don't handle
- MOUSE_WHEEL_EVENT anymore.
-
- * w32term.c (construct_mouse_wheel): Result is a MOUSE_CLICK_EVENT.
- Scrolling down/up the mouse wheel is respectively mapped to mouse
- button 4 and 5.
- (w32_read_socket): Map w32 WM_MOUSEWHEEL events to Emacs
- MOUSE_CLICK_EVENT events. Forward w32 MSH_MOUSEWHEEL events as
- WM_MOUSEWHEEL events.
-
-2003-05-27 Andreas Schwab <schwab@suse.de>
-
- * buffer.c (syms_of_buffer) <default-direction-reversed>: Doc fix.
-
- * xdisp.c (try_window_id): Avoid aborting if PT is inside a
- partially visible line.
-
- * alloc.c (Fgarbage_collect): Fix last change.
-
-2003-05-26 John Paul Wallington <jpw@gnu.org>
-
- * xfns.c (Fx_create_frame): Don't call Qface_set_after_frame_default.
-
-2003-05-25 Stefan Monnier <monnier@cs.yale.edu>
-
- * window.c (Fset_window_buffer): Add type of `keep_margins'.
- (Fset_window_fringes, Fset_window_scroll_bars): Declare before use.
-
- * window.h (window_box_text_cols): Declare.
-
- * xdisp.c (window_text_bottom_y, draw_row_fringe_bitmaps)
- (x_draw_vertical_border): Remove unused var `f'.
-
- * xfaces.c (build_scalable_font_name): Remove `unused var
- pixel_size' warning.
-
- * xfns.c (png_load): Remove `unused vars intent, image_gamma' warning.
-
- * unexelf.c (unexec): Remove `unused var n' warning.
-
- * strftime.c (my_strftime_localtime_r): Remove `defined but
- unused' warning.
-
- * process.c (allocate_pty): Remove `unused var stb' and
- `cp might be used uninitialized' warnings.
-
- * dispnew.c (mode_line_string): Remove unused var `f'.
-
- * coding.c (find_safe_codings): Remove unused var `i'.
-
- * bytecode.c (Fbyte_code): Remove `unused val' warning.
-
- * buffer.c (Fkill_buffer): Remove unused var `list'.
-
- * alloc.c (Fgarbage_collect): Remove `unused var tail' warning.
-
-2003-05-25 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * frame.c (make_frame): Condition want_fullscreen with
- HAVE_WINDOW_SYSTEM.
-
-2003-05-25 Juanma Barranquero <lektu@terra.es>
-
- * window.c (Fset_window_scroll_bars): Fix typo in argument name.
- (Fwindow_scroll_bars): Fix typo in docstring.
-
-2003-05-24 Kim F. Storm <storm@cua.dk>
-
- The following changes serve several purposes:
-
- 1) Swap the position of fringes and display margins in windows, i.e.
- the fringes are now displayed between the margins and the text area
- (by default).
-
- 2) Allow fringe and scroll bar parameters to be set per-buffer and
- per-window (like display margins). Such settings are now stored
- in window configurations, preserved when frames are resized, and
- copied when windows are split vertically or horizontally.
- Several bugs related to display margins have been fixed.
-
- 3) Consistently use FRAME_FONT and FRAME_FONTSET macros.
-
- 4) Use FRAME_COLUMN_WIDTH (f) consistently throughout the code
- rather than FRAME_WIDTH (FRAME_FONT (f)).
-
- 5) Introduce a consistent naming of variables, members and macros
- depending on whether their value is measured in pixels or in
- canonical columns/lines. Pixel dimensions are named *_width and
- *_height, while canonical columns/lines are named *_cols and
- *_lines. Pixel positions are named *_x and *_y, while column/line
- positions are named *_col and *_line.
-
- 6) Consolidate more of the X, W32, and MAC gui code by moving
- common data into struct frame, and generalize it for the non-gui
- case by using suitable defaults.
-
- 7) Cleanup and consolidate the macros controlling frame and window
- layout into frame.h and window.h, and generalize the use of the
- various window_box_* functions (enhanced to handle the new fringe
- position and the per-window fringe and scroll bar settings).
-
- * frame.h (struct frame): Rename members height to text_lines,
- width to text_cols, window_height to total_lines, window_width to
- total_cols, new_height to new_text_lines, new_width to
- new_text_cols. All uses changed.
- (struct frame): New members which consolidate common members of
- x_output, w32_output, and mac_output structures: left_pos,
- top_pos, pixel_height, pixel_width, x_pixels_diff, y_pixels_diff,
- win_gravity, size_hint_flags, border_width, internal_border_width,
- line_height, fringe_cols, left_fringe_width, right_fringe_width,
- want_fullscreen. All uses changed.
- (struct frame): New member column_width contaning the canonical
- column width, analogue to line_height. All uses changed.
- (struct frame): Rename members scroll_bar_pixel_width to
- config_scroll_bar_width, and scroll_bar_cols to
- config_scroll_bar_cols. All uses changed.
- (struct frame): New member scroll_bar_actual_width which
- consolidates and renames the vertical_scroll_bar_extra member of
- x_output, w32_output, and mac_output structures. All uses changed.
- (FRAME_PIXEL_HEIGHT): Rename from PIXEL_HEIGHT and moved
- from x/w32/macterm.h files. All uses changed. Also change code
- which referred to f->output_data...->pixel_height.
- (FRAME_PIXEL_WIDTH): Rename from PIXEL_WIDTH and moved
- from x/w32/macterm.h files. All uses changed. Also change code
- which referred to f->output_data...->pixel_width.
- (FRAME_LINES): Rename from FRAME_HEIGHT. All uses changed.
- Also change code which referred to f->height.
- (FRAME_COLS): Rename from FRAME_WIDTH. All uses changed.
- Also change code which referred to f->width.
- (FRAME_NEW_HEIGHT, FRAME_NEW_WIDTH): Remove macros; change uses
- to update new_text_lines and new_text_cols members directly.
- (FRAME_CONFIG_SCROLL_BAR_WIDTH): Rename from
- FRAME_SCROLL_BAR_PIXEL_WIDTH. All uses changed.
- (FRAME_CONFIG_SCROLL_BAR_COLS): Rename from
- FRAME_SCROLL_BAR_COLS. All uses changed.
- (FRAME_LEFT_SCROLL_BAR_COLS, FRAME_RIGHT_SCROLL_BAR_COLS):
- Rename from FRAME_LEFT_SCROLL_BAR_WIDTH and
- FRAME_RIGHT_SCROLL_BAR_WIDTH, resp. All uses changed.
- (FRAME_SCROLL_BAR_AREA_WIDTH, FRAME_LEFT_SCROLL_BAR_AREA_WIDTH)
- (FRAME_RIGHT_SCROLL_BAR_AREA_WIDTH): New macros.
- (FRAME_TOTAL_COLS): Rename from FRAME_WINDOW_WIDTH.
- (SET_FRAME_COLS): Rename from SET_FRAME_WIDTH.
- (FRAME_TOTAL_COLS_ARG): Rename from FRAME_WINDOW_WIDTH_ARG.
- (WINDOW_VERTICAL_SCROLL_BAR_COLUMN): Remove unused macro.
- (WINDOW_VERTICAL_SCROLL_BAR_HEIGHT): Remove unused macro.
- (FRAME_LINE_HEIGHT): Rename from CANON_Y_UNIT.
- Unconditionally return line_height member (it now has proper value
- also for non-window frames).
- (FRAME_COLUMN_WIDTH): Rename from CANON_X_UNIT. Unconditionally
- return new column_width member (rather than the default font width).
- (FRAME_FRINGE_COLS, FRAME_LEFT_FRINGE_WIDTH)
- (FRAME_RIGHT_FRINGE_WIDTH): Rename from FRAME_X_... and moved
- from x/w32/macterm.h files. Unconditionally return corresponding
- member of frame structure (they now have proper values also for
- non-window frames).
- (FRAME_TOTAL_FRINGE_WIDTH): Rename from FRAME_FRINGE_WIDTH.
- Calculate return value from left and right widths.
- (FRAME_INTERNAL_BORDER_WIDTH): Unconditionally return
- internal_border_width member (has proper value for non-window frame).
- (FRAME_PIXEL_X_FROM_CANON_X): Rename from PIXEL_X_FROM_CANON_X.
- (FRAME_PIXEL_Y_FROM_CANON_Y): Rename from PIXEL_Y_FROM_CANON_Y.
- (FRAME_CANON_X_FROM_PIXEL_X): Rename from CANON_X_FROM_PIXEL_X.
- (FRAME_CANON_Y_FROM_PIXEL_Y): Rename from CANON_Y_FROM_PIXEL_Y.
- (FRAME_LINE_TO_PIXEL_Y): Rename from CHAR_TO_PIXEL_ROW,
- consolidated from xterm.h, macterm.h, and w32term.h.
- (FRAME_COL_TO_PIXEL_X): Rename from CHAR_TO_PIXEL_COL,
- consolidated from xterm.h, macterm.h, and w32term.h.
- (FRAME_TEXT_COLS_TO_PIXEL_WIDTH): Rename from
- CHAR_TO_PIXEL_WIDTH consolidated from x/mac/w32term.h.
- (FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Rename from
- CHAR_TO_PIXEL_HEIGHT consolidated from x/mac/w32term.h.
- (FRAME_PIXEL_Y_TO_LINE): Rename from PIXEL_TO_CHAR_ROW
- consolidated from x/mac/w32term.h.
- (FRAME_PIXEL_X_TO_COL): Rename from PIXEL_TO_CHAR_COL
- consolidated from x/mac/w32term.h.
- (FRAME_PIXEL_WIDTH_TO_TEXT_COLS): Rename from
- PIXEL_TO_CHAR_WIDTH consolidated from x/mac/w32term.h.
- (FRAME_PIXEL_HEIGHT_TO_TEXT_LINES): Rename from
- PIXEL_TO_CHAR_HEIGHT consolidated from x/mac/w32term.h.
-
- * window.h (struct window): Rename members left to left_col,
- top to top_line, height to total_lines, width to total_cols,
- left_margin_width to left_margin_cols, right_margin_width to
- right_margin_cols, orig_height to orig_total_lines, orig_top to
- orig_top_line. All uses changed.
- (struct window): New members left_fringe_width, right_fringe_width,
- fringes_outside_margins, scroll_bar_width, vertical_scroll_bar_type.
- (WINDOW_XFRAME, WINDOW_FRAME_COLUMN_WIDTH, WINDOW_FRAME_LINE_HEIGHT):
- New macros primarily used to simplify other macros.
- (WINDOW_TOTAL_COLS): New macro. Change relevant code that
- referred to XINT (w->width).
- (WINDOW_TOTAL_LINES): New macro. Change relevant code that
- referred to XINT (w->height).
- (WINDOW_TOTAL_WIDTH): New macro. Change relevant code that
- referred to XINT (w->width) * canon_x_unit.
- (WINDOW_TOTAL_HEIGHT): New macro. Change relevant code that
- referred to XINT (w->height) * canon_y_unit.
- (WINDOW_LEFT_EDGE_COL): New macro. Change relevant code that
- referred to XINT (w->left).
- (WINDOW_RIGHT_EDGE_COL): Rename from WINDOW_RIGHT_EDGE. Change
- all uses and code that referred to XINT (w->left) + XINT (w->width).
- (WINDOW_TOP_EDGE_LINE): New macro. Change relevant code that
- referred to XINT (w->top).
- (WINDOW_BOTTOM_EDGE_LINE): New macro. Change relevant code that
- referred to XINT (w->top) + XINT (w->height).
- (WINDOW_LEFT_EDGE_X): New macro. Change relevant code that
- referred to XINT (w->left) * canon_x_unit.
- (WINDOW_RIGHT_EDGE_X): New macro. Change relevant code that
- referred to (XINT (w->left) + XINT (w->width)) * canon_x_unit.
- (WINDOW_TOP_EDGE_Y): New macro. Change relevant code that
- referred to XINT (w->top) * canon_y_unit.
- (WINDOW_BOTTOM_EDGE_Y): New macro. Change relevant code that
- referred to (XINT (w->top) + XINT (w->height)) * canon_y_unit.
- (WINDOW_LEFTMOST_P): New macro.
- (WINDOW_BOX_LEFT_EDGE_COL): Rename from WINDOW_LEFT_MARGIN.
- All uses changed.
- (WINDOW_BOX_RIGHT_EDGE_COL): Rename from WINDOW_RIGHT_MARGIN.
- All uses changed.
- (WINDOW_BOX_LEFT_EDGE_X): Rename from
- WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X, moved from dispextern.h.
- Do not exclude left fringe width.
- (WINDOW_BOX_RIGHT_EDGE_X): Rename from
- WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X, moved from dispextern.h.
- Do not exclude fringe widths.
- (WINDOW_LEFT_FRINGE_WIDTH, WINDOW_RIGHT_FRINGE_WIDTH)
- (WINDOW_FRINGE_COLS, WINDOW_TOTAL_FRINGE_WIDTH): New macros.
- Change relevant code that referred to FRAME_LEFT_FRINGE_WIDTH,
- FRAME_RIGHT_FRINGE_WIDTH, FRAME_FRINGE_COLS, and
- FRAME_TOTAL_FRINGE_WIDTH to allow per-window fringe settings.
- (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS): New macro.
- (WINDOW_VERTICAL_SCROLL_BAR_TYPE, WINDOW_HAS_VERTICAL_SCROLL_BAR)
- (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT)
- (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT)
- (WINDOW_CONFIG_SCROLL_BAR_WIDTH, WINDOW_CONFIG_SCROLL_BAR_COLS):
- New macros. Change code which referenced corresponding
- FRAME_VERTICAL_SCROLL_BAR_TYPE, FRAME_HAS_VERTICAL_SCROLL_BARS,
- FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT,
- FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT,
- FRAME_SCROLL_BAR_PIXEL_WIDTH, and FRAME_SCROLL_BAR_COLS macros to
- allow per-window scroll-bar settings.
- (WINDOW_LEFT_SCROLL_BAR_COLS, WINDOW_RIGHT_SCROLL_BAR_COLS): New macros.
- (WINDOW_LEFT_SCROLL_BAR_AREA_WIDTH): New macro. Change code that
- referred to FRAME_LEFT_SCROLL_BAR_WIDTH.
- (WINDOW_RIGHT_SCROLL_BAR_AREA_WIDTH): New macro. Change code
- that referred to FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT and
- FRAME_SCROLL_BAR_WIDTH.
- (WINDOW_SCROLL_BAR_COLS, WINDOW_SCROLL_BAR_AREA_WIDTH)
- (WINDOW_SCROLL_BAR_AREA_X): New macros.
- (WINDOW_HEADER_LINE_HEIGHT): Rename from
- WINDOW_DISPLAY_HEADER_LINE_HEIGHT, moved from dispextern.h.
- (WINDOW_BOX_HEIGHT_NO_MODE_LINE): Rename from
- WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE, moved from dispextern.h.
- (WINDOW_BOX_TEXT_HEIGHT): Rename from
- WINDOW_DISPLAY_PIXEL_WIDTH, moved from dispextern.h.
- (WINDOW_TO_FRAME_PIXEL_X, WINDOW_TO_FRAME_PIXEL_Y)
- (FRAME_TO_WINDOW_PIXEL_X, FRAME_TO_WINDOW_PIXEL_Y)
- (WINDOW_TEXT_TO_FRAME_PIXEL_X): Move here from dispextern.h.
- (WINDOW_LEFT_MARGIN_WIDTH): Rename from
- WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH, moved from dispextern.h.
- (WINDOW_RIGHT_MARGIN_WIDTH): Rename from
- WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH, moved from dispextern.h.
- (window_from_coordinates): Update prototype.
- (Fset_window_buffer): Update EXFUN.
- (set_window_buffer): Update prototype.
-
- * dispextern.h (struct glyph_matrix): Rename members window_left_x
- to window_left_col, window_top_y to window_top_line. All uses
- changed.
- (FRAME_INTERNAL_BORDER_WIDTH_SAFE): Remove macro; can now safely
- use FRAME_INTERNAL_BORDER_WIDTH macro instead as
- internal_border_width is now set to 0 for non-window frames.
- (WINDOW_DISPLAY_PIXEL_WIDTH, WINDOW_DISPLAY_PIXEL_HEIGHT)
- (WINDOW_DISPLAY_MODE_LINE_HEIGHT, WINDOW_DISPLAY_HEADER_LINE_HEIGHT)
- (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE, WINDOW_DISPLAY_TEXT_HEIGHT)
- (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X, WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X)
- (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y, WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y)
- (WINDOW_TO_FRAME_PIXEL_X, WINDOW_TO_FRAME_PIXEL_Y)
- (FRAME_TO_WINDOW_PIXEL_X, FRAME_TO_WINDOW_PIXEL_Y)
- (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH)
- (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH, WINDOW_WANTS_MODELINE_P):
- Move to window.h and renamed [see window.h changes].
- (WINDOW_AREA_TO_FRAME_PIXEL_X, WINDOW_AREA_PIXEL_WIDTH)
- (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Remove macros.
- (WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P):
- Use WINDOW_TOTAL_LINES.
- (frame_update_line_height): Remove prototype.
-
- * buffer.h (struct buffer): Rename members measured in columns:
- left_margin_width to left_margin_cols, right_margin_width to
- right_margin_cols. All uses changed.
- New members left_fringe_width, right_fringe_width,
- fringes_outside_margins for per-buffer fringe settings.
- New members scroll_bar_width and vertical_scroll_bar_type for
- per-buffer scroll bar settings.
-
- * buffer.c (init_buffer_once): Set buffer_defaults and
- buffer_local_flags for new buffer-local variables
- left_fringe_width, right_fringe_width, fringes_outside_margins,
- scroll_bar_width, and vertical_scroll_bar_type.
- (syms_of_buffer): Defvar_per_buffer them, and defvar_lisp_nopro
- default-* variables for them.
-
- * dispnew.c: Make (many) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
- (mode_line_string): No need to adjust width for mode lines, as it
- is already adjusted by the caller.
- (marginal_area_string): Handle fringes inside/outside margins.
-
- * frame.c: Make (many) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
- (make_frame): Initialize left_fringe_width, right_fringe_width,
- fringe_cols, scroll_bar_actual_width, border_width,
- internal_border_width, column_width, line_height, x_pixels_diff,
- y_pixels_diff, want_fullscreen, size_hint_flags, and win_gravity
- members with values suitable for a non-window frames.
-
- * gtkutil.c: Make (many) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
-
- * indent.c: Make (few) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
-
- * keyboard.c: Make (many) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
- (make_lispy_event): Use window positions returned from
- window_from_coordinates when constructing the lisp event for
- MOUSE_CLICK_EVENT and DRAG_N_DROP_EVENT, rather than calculating
- (incorrect) values locally.
- (make_lispy_movement): Use window positions returned from
- window_from_coordinates when constructing the lisp event, rather
- than calculating (incorrect) values locally.
-
- * scroll.c: Make (some) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
-
- * sunfns.c (Fsun_menu_internal): Adapt to per-window fringes and
- scroll-bars.
-
- * sysdep.c: Make (few) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
-
- * term.c: Make (some) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
-
- * widget.c: Make (few) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
-
- * window.c: Make (many) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
- (make_window): Initialize new members
- left_margin_cols, right_margin_cols, left_fringe_width,
- right_fringe_width, fringes_outside_margins, scroll_bar_width,
- and vertical_scroll_bar_type.
- (coordinates_in_window): Adapt to new fringe/margin positions
- and per-window fringes and scroll-bars.
- Fix bug related to incorrectly adjusting coordinates by
- frame's internal_border_width (the effect normally negible since
- the internal_border_width is typically 0 or 1 pixel, but very
- noticeable for an internal_border_width of e.g. 25 pixels).
- Upon successful return (other than ON_NOTHING), the coordinates
- are now always properly converted to window relative for the
- given display element.
- (window_from_coordinates): Add new parameters wx and wy to
- return the window relative x and y position in the returned
- window and part. A null arg means, don't return the position.
- All callers changed.
- (adjust_window_margins): New function which may reduce the width
- of the display margins if a window's text area is too small after
- resizing or splitting windows.
- (size_window): Fix bug that did not account for display margin
- widths when checking the minimum width of a window; use
- adjust_window_margins.
- (set_window_buffer): Call Fset_window_fringes and
- Fset_window_scroll_bars to setup per-window elements.
- Add new arg KEEP_MARGINS_P. Non-nil means to keep window's
- existing display margin, fringe widths, and scroll bar settings
- (e.g. after splitting a window or resizing the frame).
- All callers changed.
- (Fset_window_buffer): New arg KEEP_MARGINS. All callers changed.
- (Fsplit_window): Duplicate original window's display margin,
- fringe, and scroll-bar settings; then call Fset_window_buffer with
- KEEP_MARGINS non-nil. This fixes a bug which caused a split
- window to only preserve the display margins in one of the windows.
- When splitting horizontally, call adjust_window_margins on both
- windows to ensure that the text area of the new windows is non too
- narrow. This fixes a bug which could cause Emacs to trap if the
- width of the split window was less than the width of the display
- margins.
- (window_box_text_cols): Rename from window_internal_width.
- All uses changed. Adapt to per-window fringes and scroll bars.
- Fix bug that caused vertical separator to be subtracted also on
- window frames. Fix another bug that did not reduce the returned
- value by the columns used for display margins.
- (window_scroll_line_based): Fix bug related to scrolling too much
- when display margins are present (implicitly fixed by the fix to
- window_box_text_cols).
- (scroll_left, scroll_right): Fix bug related to scrolling too far
- by default when display margins are present (implicitly fixed by
- the fix to window_box_text_cols).
- (struct saved_window): Rename members left to left_col, top to
- top_line, width to total_cols, height to total_lines, orig_top to
- orig_top_line, orig_height to orig_total_lines. All uses changed.
- New members left_margin_cols, right_margin_cols,
- left_fringe_width, right_fringe_width, fringes_outside_margins,
- scroll_bar_width, and vertical_scroll_bar_type for saving
- per-window display elements.
- (Fset_window_configuration): Restore display margins, fringes,
- and scroll bar settings. This fixes a bug which caused display
- margins to be discarded when saving and restoring a window
- configuration.
- (save_window_save): Save display margins, fringes, and scroll bar
- settings. This fixes a bug which caused display margins to be
- discarded when saving and restoring a window configuration.
- (Fset_window_margins): Do nothing if display margins are not
- really changed. Otherwise, call adjust_window_margins to ensure
- the text area doesn't get too narrow. This fixes a bug which
- could cause Emacs to trap if setting display margins wider than
- the width of the window.
- (Fset_window_fringes): New defun to allow user to specifically set
- this window's fringe widths and position vs. display margins.
- (Fwindow_fringes): New defun to return window's actual fringe settings.
- (Fset_window_scroll_bars): New defun to allow user to specifically
- set this window's scroll bar width and position.
- (Fwindow_scroll_bars): New defun to return window's actual scroll
- bar settings.
- (compare_window_configurations): Also compare display margins,
- fringes, and scroll bar settings.
- (syms_of_window): Defsubr new defuns for fringe and scroll bars.
-
- * xdisp.c: Make (many) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
- (window_box_width): Adapt to per-window fringes and scroll bars,
- and new fringe vs. display margin position. Note that returned
- value is no longer guaranteed to be a whole multiple of the frame
- column width, since per-window fringes may now be any width.
- (window_box_left_offset): New function like window_box_left, but
- value is relative to left border of window (rather than frame).
- (window_box_right_offset): New function like window_box_right,
- but value is relative to left border of window.
- (window_box_left): Adapt to per-window fringes and scroll bars,
- and new fringe vs. display margin position. Simplify by using
- WINDOW_LEFT_EDGE_X and window_box_left_offset.
- (window_box): Allow null args for unnecessary return values;
- change/simplify relevant callers.
- (x_y_to_hpos_vpos): Adapt to per-window fringes and scroll bars,
- and new fringe vs. display margin position.
- Use window_box_left_offset and window_box_right_offset
- (get_glyph_string_clip_rect): Adapt to per-window fringes and
- scroll bars, and new fringe vs. display margin position.
- Use WINDOW_LEFT_EDGE_X and WINDOW_TOTAL_WIDTH.
- (draw_fringe_bitmap): Rework to handle per-window fringes and new
- fringe vs. display margin position.
- (hscroll_window_tree): Use window_box_width instead of window_box.
- (redisplay_window): Adapt to per-window scroll bars.
- (draw_glyphs): Rework to handle per-window fringes and scroll
- bars, and new fringe vs. display margin position.
- Use WINDOW_LEFT_EDGE_X, WINDOW_TOTAL_WIDTH, and window_box_left.
- (x_clear_end_of_line): Adapt to per-window fringes and scroll
- bars, and new fringe vs. display margin position. Fix bug which
- increased total width of full_width rows by width of scroll bars
- although window's total width already includes that.
- (x_fix_overlapping_area): Simplify using window_box_left_offset.
- (expose_area): Simplify using window_box_left_offset.
- (x_draw_vertical_border): Handle per-window scroll bar settings,
- mixing windows with left, right and no scroll bars.
-
- * xfaces.c [WINDOWSNT]: Move redefinition of FONT_WIDTH macro to
- where it's used in x_list_fonts (for clarity).
- (frame_update_line_height): Remove unused function; functionality
- is now done directly when setting the default font in x_set_font.
-
- * xfns.c: Make (many) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
-
- * xmenu.c: Make (some) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
-
- * xterm.h (struct x_output): Move members left_pos, top_pos,
- border_width, pixel_height, pixel_width, line_height,
- internal_border_width, vertical_scroll_bar_extra,
- left_fringe_width, right_fringe_width, fringe_cols,
- fringes_extra, win_gravity, size_hint_flags, want_fullscreen,
- x_pixels_diff, and y_pixels_diff to struct frame (frame.h).
- (FRAME_INTERNAL_BORDER_WIDTH, FRAME_LINE_HEIGHT): Move to frame.h.
- (FRAME_DEFAULT_FONT_WIDTH): Remove macro.
- (PIXEL_WIDTH, PIXEL_HEIGHT)
- (FRAME_X_FRINGE_COLS, FRAME_X_FRINGE_WIDTH)
- (FRAME_X_LEFT_FRINGE_WIDTH, FRAME_X_RIGHT_FRINGE_WIDTH): Move to
- frame.h and renamed [see frame.h changes].
- (CHAR_TO_PIXEL_ROW, CHAR_TO_PIXEL_COL, CHAR_TO_PIXEL_WIDTH)
- (CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_ROW, PIXEL_TO_CHAR_COL)
- (PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): Move to frame.h
- and renamed [see frame.h changes].
-
- * xterm.c: Make (several) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
- (x_draw_glyph_string_box): Adapt to per-window fringes and scroll-bars.
- (scroll_run): Adapt to new fringe position.
- (glyph_rect): Use window coordinates returned from
- window_from_coordinates rather than frame_to_window_pixel_xy.
- (XTset_vertical_scroll_bar): Adapt to per-window fringes and
- scroll-bars.
- (handle_one_xevent): Simplify a USE_GTK conditional.
- (x_clip_to_row): Remove superfluous whole_line_p arg and code
- (fringes are now inside margins, i.e. always in the clipping area).
- All callers changed.
- (x_new_font): Set FRAME_COLUMN_WIDTH and FRAME_LINE_HEIGHT
- directly, then call compute_fringe_widths. Don't call
- frame_update_line_height.
-
- * w32term.h (struct w32_output): Move members left_pos, top_pos,
- border_width, pixel_height, pixel_width, line_height,
- internal_border_width, vertical_scroll_bar_extra,
- left_fringe_width, right_fringe_width, fringe_cols,
- fringes_extra, win_gravity, size_hint_flags, want_fullscreen,
- x_pixels_diff, and y_pixels_diff to struct frame (frame.h).
- (FRAME_INTERNAL_BORDER_WIDTH, FRAME_LINE_HEIGHT): Move to frame.h.
- (FRAME_DEFAULT_FONT_WIDTH): Remove macro.
- (PIXEL_WIDTH, PIXEL_HEIGHT)
- (FRAME_X_FRINGE_COLS, FRAME_X_FRINGE_WIDTH)
- (FRAME_X_LEFT_FRINGE_WIDTH, FRAME_X_RIGHT_FRINGE_WIDTH): Move to
- frame.h and renamed [see frame.h changes].
- (CHAR_TO_PIXEL_ROW, CHAR_TO_PIXEL_COL, CHAR_TO_PIXEL_WIDTH)
- (CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_ROW, PIXEL_TO_CHAR_COL)
- (PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): Move to frame.h
- and renamed [see frame.h changes].
-
- * w32term.c: Make (several) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
- (x_draw_glyph_string_box): Adapt to per-window fringes and scroll-bars.
- (glyph_rect): Use window coordinates returned from
- window_from_coordinates rather than frame_to_window_pixel_xy.
- (XTset_vertical_scroll_bar): Adapt to per-window fringes and
- scroll-bars.
- (w32_clip_to_row): Remove superfluous whole_line_p arg and code
- (fringes are now inside margins, i.e. always in the clipping area).
- All callers changed.
- (x_new_font): Set FRAME_COLUMN_WIDTH and FRAME_LINE_HEIGHT
- directly, then call compute_fringe_widths. Don't call
- frame_update_line_height.
-
- * w32console.c: Make (few) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
-
- * w32fns.c: Make (many) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
-
- * w32menu.c: Make (few) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
-
- * macterm.h (struct mac_output): Move members left_pos, top_pos,
- border_width, pixel_height, pixel_width, line_height,
- internal_border_width, vertical_scroll_bar_extra,
- left_fringe_width, right_fringe_width, fringe_cols,
- fringes_extra, win_gravity, size_hint_flags, want_fullscreen,
- x_pixels_diff, y_pixels_diff to struct frame (frame.h).
- (FRAME_INTERNAL_BORDER_WIDTH, FRAME_LINE_HEIGHT): Move to frame.h.
- (FRAME_DEFAULT_FONT_WIDTH): Remove macro.
- (PIXEL_WIDTH, PIXEL_HEIGHT)
- (FRAME_X_FRINGE_COLS, FRAME_X_FRINGE_WIDTH)
- (FRAME_X_LEFT_FRINGE_WIDTH, FRAME_X_RIGHT_FRINGE_WIDTH): Move to
- frame.h and renamed [see frame.h changes].
- (CHAR_TO_PIXEL_ROW, CHAR_TO_PIXEL_COL, CHAR_TO_PIXEL_WIDTH)
- (CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_ROW, PIXEL_TO_CHAR_COL)
- (PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): Move to frame.h
- and renamed [see frame.h changes].
-
- * macterm.c: Make (several) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
- (x_draw_glyph_string_box): Adapt to per-window fringes and scroll-bars.
- (glyph_rect): Use window coordinates returned from
- window_from_coordinates rather than frame_to_window_pixel_xy.
- (XTset_vertical_scroll_bar): Adapt to per-window fringes and
- scroll-bars.
- (x_clip_to_row): Remove superfluous whole_line_p arg and code
- (fringes are now inside margins, i.e. always in the clipping area).
- All callers changed.
- (x_new_font): Set FRAME_COLUMN_WIDTH and FRAME_LINE_HEIGHT
- directly, then call compute_fringe_widths. Don't call
- frame_update_line_height.
-
- * macfns.c: Make (several) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
- (x_real_positions): Set f->x_pixels_diff and f->y_pixels_diff to 0.
-
- * macmenu.c: Make (few) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
-
- * msdos.h (struct x_output): Remove members left_pos, top_pos,
- and line_height, and use corresponding new members in struct
- frame. All uses changed.
- (FRAME_LINE_HEIGHT, FRAME_INTERNAL_BORDER_WIDTH): Remove macros;
- superseeded by corresponding macros in frame.h.
-
- * msdos.c: Make (several) trivial substitutions for renamed and
- new macros in dispextern.h, frame.h and window.h.
- (IT_note_mouse_highlight): Use updated window coordinates returned
- by window_from_coordinates, rather than adjusting them locally.
- (internal_terminal_init): No need to initialize line_height here;
- it now defaults to 1.
-
-2003-05-24 Stefan Monnier <monnier@cs.yale.edu>
-
- * keyboard.c (read_key_sequence): Adjust fkey and keytran when
- dropping `down' events.
-
-2003-05-24 Andreas Schwab <schwab@suse.de>
-
- * coding.c (find_safe_codings): Fix last change.
-
-2003-05-24 Istvan Marko <mi@imarko.dhs.org> (tiny change)
-
- * xfns.c (x_window): Fix typo from 2003-05-21 change.
-
-2003-05-23 Stefan Monnier <monnier@cs.yale.edu>
-
- * xdisp.c (display_mode_element): Increase max depth.
- Simplify the error handling code. Use a different error string
- for the case where we hit the depth limit.
-
- * lisp.h (Vfundamental_mode_abbrev_table): Don't declare.
-
- * buffer.c (reset_buffer_local_variables): Remove redundant setting.
-
-2003-05-21 Stefan Monnier <monnier@cs.yale.edu>
-
- * intervals.c (get_local_map): Don't get char-property of previous
- point any more: get_pos_property already does it and better.
-
-2003-05-21 Dave Love <fx@gnu.org>
-
- [Merged from unicode branch.]
-
- * xfns.c (x_window, x_window): Use use_xim.
-
- * xterm.c (use_xim): Initialize.
- (xim_open_dpy, xim_initialize, xim_close_dpy): Use use_xim.
- (x_term_init): Maybe set use_xim.
-
- * xterm.h (use_xim) [HAVE_X_I18N]: Declare.
-
-2003-05-21 Jason Rumney <jasonr@gnu.org>
-
- * unexw32.c (_start): Remove _fmode initialization.
-
- * emacs.c (main) [WINDOWSNT]: Move it here.
-
-2003-05-20 Dave Love <fx@gnu.org>
-
- * s/gnu-linux.h (MAIL_USE_FLOCK): Make it conditional.
-
-2003-05-19 Richard M. Stallman <rms@gnu.org>
-
- * xfaces.c (Finternal_set_lisp_face_attribute): Handle Qunspecified
- as value for QCfont attribute.
- (realize_default_face): lface should already exist; crash if not.
- Specify 0 for FORCE_P when calling set_lface_from_font_name.
-
- * frame.c (Fignore_event): Doc fix.
-
-2003-05-19 Kenichi Handa <handa@m17n.org>
-
- * coding.c (decode_coding_string): Handle post-read-conversion
- even if the coding doesn't require decoding.
-
-2003-05-18 Richard M. Stallman <rms@gnu.org>
-
- * callproc.c (Fcall_process_region): Doc fix.
-
-2003-05-17 Stefan Monnier <monnier@cs.yale.edu>
-
- * lread.c (Fload): Print a message if package is obsolete.
-
- * window.c (Fselect_window): Add optional `norecord' arg.
- (select_window_1): Fold into Fselect_window.
- (select_window_norecord): New function.
- (temp_output_buffer_show): Use it. Preserve current buffer.
-
- * window.h (Fselect_window): Update declaration.
-
- * window.c (delete_window, Fother_window, Fset_window_configuration):
- * minibuf.c (read_minibuf):
- * macterm.c (x_new_focus_frame):
- * frame.c (do_switch_frame, Fset_frame_selected_window, Fdelete_frame):
- * callint.c (Fcall_interactively):
- * xterm.c (x_new_focus_frame): Pass nil as new arg to Fselect_window.
-
- * buffer.c (Fpop_to_buffer): Pass norecord to Fselect_window.
-
-2003-05-17 David Kastrup <dak@gnu.org>
-
- * process.c (read_process_output): Back out change from 2003-03-09.
-
-2003-05-17 Stefan Monnier <monnier@cs.yale.edu>
-
- * editfns.c (get_pos_property): Don't assume that `object' = nil.
-
- * textprop.c (text_property_stickiness): New arg `buffer'.
-
- * intervals.h (text_property_stickiness): New arg `buffer'.
- (get_pos_property): Declare.
-
- * intervals.c (get_local_map): Use get_pos_property, to obey
- stickiness and empty overlays.
- (create_root_interval, graft_intervals_into_buffer): Use BEG.
- (merge_properties, intervals_equal, merge_properties_sticky):
- Use XCAR, XCDR.
- (adjust_for_invis_intang): Pass new arg to text_property_stickiness.
-
-2003-05-17 Richard M. Stallman <rms@gnu.org>
-
- * minibuf.c (read_minibuf): If buffer is empty, record the default
- in the history.
- (Fminibuffer_complete_word): When deleting the overlap, take account
- of its real position.
-
- * fns.c (map_char_table): Fix previous change.
-
- * syntax.c (find_defun_start):
- When open_paren_in_column_0_is_defun_start,
- return beginning of buffer.
-
- * lisp.h (map_char_table): Declare added arg.
-
- * fns.c (map_char_table): New arg TABLE gets the master table.
- All calls changed.
- Process default and inheritance, resorting to Faref if necessary.
-
- * keymap.c (Fset_keymap_parent, map_keymap, Fcopy_keymap)
- (Faccessible_keymaps): Pass new arg to map_char_table.
-
- * fontset.c (Ffontset_info): Pass new arg to map_char_table.
-
- * casetab.c (set_case_table): Pass new arg to map_char_table.
-
- * data.c (let_shadows_buffer_binding_p): Make target of p volatile.
-
- * lisp.h (specbinding_func): New typedef.
- (struct specbinding): Use specbinding_func, to put the `volatile'
- in the right place.
-
- * alloc.c (Fgarbage_collect): Cast pointers into specpdl
- to avoid GCC warning.
-
-2003-05-16 Ralph Schleicher <rs@nunatak.allgaeu.org>
-
- * fileio.c (Fdelete_file): Handle symlinks pointing to directories.
-
-2003-05-15 Stefan Monnier <monnier@cs.yale.edu>
-
- * keyboard.c (apply_modifiers): Don't fill the other cache.
-
-2003-05-14 Stefan Monnier <monnier@cs.yale.edu>
-
- * .gdbinit-union: New file, for USE_LISP_UNION_TYPE users.
-
- * window.h (Qwindowp, Qwindow_live_p, Vwindow_list)
- (Fwindow_end, Fselected_window, Fdelete_window, Fwindow_buffer)
- (Fget_buffer_window, Fsave_window_excursion, Fsplit_window)
- (Fset_window_configuration, Fcurrent_window_configuration)
- (compare_window_configurations, Fcoordinates_in_window_p, Fwindow_at)
- (Fpos_visible_in_window_p, mark_window_cursors_off)
- (window_internal_height, window_internal_width, Frecenter)
- (Fscroll_other_window, Fset_window_start, temp_output_buffer_show)
- (replace_buffer_in_all_windows, init_window_once, init_window)
- (syms_of_window, keys_of_window): Move from lisp.h.
- * lisp.h: Move window.c declarations to window.h.
-
- * bytecode.c: Include window.h.
- * emacs.c: Include window.h.
-
- * keyboard.c (make_lispy_event): Apply modifiers to multibyte-char key.
- (keyremap): Add `parent' field.
- (keyremap_step): Use it. Remove `parent' argument.
- (read_key_sequence): Setup and use the new `parent' field.
-
-2003-05-11 Stefan Monnier <monnier@cs.yale.edu>
-
- * keyboard.c (adjust_point_for_property): Ensure termination.
-
-2003-05-10 Stefan Monnier <monnier@cs.yale.edu>
-
- * keyboard.c (follow_key): Remove dead variable `did_meta'.
- (access_keymap_keyremap, keyremap_step): New funs, extracted from the
- duplicated handling of function-key-map and key-translation-map
- in read_key_sequence.
- (read_key_sequence): Use them.
-
- * keyboard.c (adjust_point_for_property): Try harder to move point
- to the non-sticky end of an invisible property.
-
- * xdisp.c (single_display_prop_intangible_p): Make `space' display
- property intangible as well.
-
-2003-05-10 Andreas Schwab <schwab@suse.de>
-
- * xmenu.c (single_menu_item): Change last parameter to void* to
- avoid warning.
-
-2003-05-09 Richard M. Stallman <rms@gnu.org>
-
- * print.c (Fprin1_to_string): Instead of gcpro, set abort_on_gc.
- Bind Qinhibit_modification_hooks to t so there will be no GC.
- Rename local `tem' to `save_deactivate_mark'.
-
- * eval.c (specpdl_ptr): Declare volatile.
- (unbind_to): Copy the whole binding and decrement specpdl_ptr
- before doing the work of unbinding it.
-
- * lisp.h (struct specbinding): Declare elements volatile.
- (specpdl_ptr): Declare volatile.
-
- * Makefile.in (alloca.o): Specify -DDO_BLOCK_INPUT in compiling.
-
- * alloca.c: Test DO_BLOCK_INPUT rather than `emacs'
- for use of BLOCK_INPUT and inclusion of lisp.h and blockinput.h.
-
-2003-05-08 Dave Love <fx@gnu.org>
-
- * coding.c (Vlast_coding_system_used): Doc fix.
-
-2003-05-07 Jason Rumney <jasonr@gnu.org>
-
- * fileio.c (Ffile_symlink_p): Let handlers handle symlinks even
- when system does not support them.
-
-2003-05-05 Stefan Monnier <monnier@cs.yale.edu>
-
- * fileio.c (Qwrite_region_annotate_functions): New var.
- (build_annotations): Use it to process the global part of the hook.
- (syms_of_fileio): Init and staticpro it.
-
- * keyboard.c (safe_run_hooks_error): Display a message instead of
- silently ignoring the error.
-
-2003-05-03 Stefan Monnier <monnier@cs.yale.edu>
-
- * keyboard.c (input_available_signal): Mark static.
- (menu_bar_items): Use map_keymap.
- (menu_bar_one_keymap): Remove.
- (menu_bar_item): Adjust arglist (for use in map_keymap).
- Properly hide a second binding when not both are keymaps.
-
- * xmenu.c (struct skp): New struct, to pass args through map_keymap.
- (single_keymap_panes): Use it and map_keymap.
- (single_menu_item): Use skp as well.
-
- * keymap.h (map_keymap_function_t): New type.
- (map_keymap): Declare.
-
- * keymap.c (map_keymap_item, map_keymap_char_table_item, map_keymap)
- (map_keymap_call, Fmap_keymap): New functions.
- (syms_of_keymap): Defsubr map-keymap.
-
-2003-05-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (create_dialog, make_widget_for_menu_item)
- (make_menu_item, create_menus, xg_update_menu_item): Don't call
- ..._with_mnemonic functions for menu items.
-
-2003-05-01 Kenichi Handa <handa@m17n.org>
-
- * coding.c (coding_system_accept_latin_extra_p): Delete this
- function.
- (find_safe_codings): Pay attention to
- the property tranlsation-table-for-encode of each codings.
- (syms_of_coding): Give Qtranslation_table the extra slot number 2.
-
-2003-05-01 Stefan Monnier <monnier@cs.yale.edu>
-
- * eval.c (Funwind_protect): Use func=Fprogn rather than symbol=Qnil.
-
-2003-04-30 Stefan Monnier <monnier@cs.yale.edu>
-
- * eval.c (unbind_to): Don't handle symbol = Qnil any more.
-
- * lisp.h (CHECK): Wrap args in parenthesis.
- (specbind): Fix doc: symbol = Qnil is not supported any more.
-
- * bytecode.c (Fbyte_code) <unwind-protect>:
- Use Fprogn rather than 0 and Qnil.
-
- * keyboard.c (parse_modifiers_uncached): Parse `down', `drag',
- `double', and `triple' modifiers as well.
-
-2003-04-30 Richard M. Stallman <rms@gnu.org>
-
- * keyboard.c (echo_char): Don't clear out a dash that follows a space.
-
- * alloc.c (abort_on_gc): New variable.
- (Fgarbage_collect): Abort if abort_on_gc is set.
-
- * lisp.h (abort_on_gc): Add decl.
-
- * eval.c (Fsignal): Clear abort_on_gc.
-
- * editfns.c (Fformat): Set abort_on_gc during first scan of format.
- Reinit FORMAT_START and END before second scan.
-
- * xdisp.c (move_it_vertically_backward): Do the final big else
- even if nlines is 0.
-
- * xdisp.c (redisplay_internal): Finish the per-frame loop
- even if redisplay is suspended by input.
-
-2003-04-24 Andrew Choi <akochoi@shaw.ca>
-
- * macterm.c (x_list_fonts): Return all fonts that match if
- maxnames = -1.
-
-2003-04-25 Kenichi Handa <handa@m17n.org>
-
- * syntax.c (skip_chars): Fix previous change.
-
-2003-04-24 Kenichi Handa <handa@m17n.org>
-
- * syntax.c (skip_chars): Make the code faster by using the common
- technique of *p, *stop, and *endp.
-
-2003-04-23 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xdisp.c (update_tool_bar): BLOCK_INPUT before calling
- tool_bar_items so GTK tool bar expose callback does not access items
- being updated.
-
-2003-04-19 Stefan Monnier <monnier@cs.yale.edu>
-
- * eval.c (Fapply): Undo last change and add a comment about why.
-
-2003-04-18 Miles Bader <miles@gnu.org>
-
- * data.c (Faset): Calculate nbytes earlier, to satisfy the now
- pickier PARSE_MULTIBYTE_SEQ.
-
-2003-04-17 Stefan Monnier <monnier@cs.yale.edu>
-
- * eval.c (For, Fand, Fprogn, un_autoload, do_autoload):
- Use XCDR, XCAR, CONSP.
- (Fdefmacro): Fix docstring. Use XCAR, XCDR.
- (Fapply): Remove unnecessary GCPRO.
-
- * doc.c (Fsubstitute_command_keys): Remove spurious casts.
-
- * charset.h (PARSE_MULTIBYTE_SEQ): Pretend `length' is used.
-
- * buffer.h: Don't hardcode BEG==1.
-
- * abbrev.c (Fdefine_abbrev_table): Use XCAR, XCDR.
-
-2003-04-16 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (try_window, try_window_reusing_current_matrix):
- When at end of window, set window_end_pos to Z-ZV.
-
- * buffer.c (Foverlay_recenter): Doc fix.
-
-2003-04-14 Stefan Monnier <monnier@cs.yale.edu>
-
- * dispnew.c (Fsit_For): Support XEmacs-style arg list.
-
-2003-04-14 Andrew Choi <akochoi@shaw.ca>
-
- * macterm.c (mac_check_for_quit_char): Don't check more often than
- once a second.
-
-2003-04-11 Stefan Monnier <monnier@cs.yale.edu>
-
- * keyboard.c (kbd_buffer_get_event): Don't handle SELECT_WINDOW_EVENT
- specially, so that they can't hide an implicit switch-frame event.
- (make_lispy_event): Handle SELECT_WINDOW_EVENT.
- (head_table): Use switch-frame as event_kind for select-window.
- (keys_of_keyboard): Don't bind [select-window] in special-event-map.
-
- * editfns.c (Fformat): Lisp_Object/int mixup.
- (format2): Remove unused var numargs.
-
-2003-04-11 Kenichi Handa <handa@m17n.org>
-
- * fileio.c (Vafter_insert_file_adjust_coding_function): Delete.
- (Qafter_insert_file_set_coding): New variable.
- (syms_of_fileio): Initialize and staticpro it. Delete declaration
- for after-insert-file-adjust-coding-function.
- (Finsert_file_contents): Call Qafter_insert_file_set_coding
- instead of Vafter_insert_file_adjust_coding_function.
-
-2003-04-11 Kenichi Handa <handa@m17n.org>
-
- * lisp.h (temp_echo_area_glyphs): Adjust prototype.
-
- * minibuf.c (temp_echo_area_glyphs): Change the arg to Lisp
- string. Callers changed.
-
-2003-04-10 Kenichi Handa <handa@m17n.org>
-
- * fileio.c (Vafter_insert_file_adjust_coding_function): New variable.
- (syms_of_fileio): Declare it as a lisp variable.
- (Finsert_file_contents):
- Call Vafter_insert_file_adjust_coding_function before calling
- decode-format.
-
-2003-04-09 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (xg_scroll_callback): Call gtk_range_get_adjustment to
- get GtkAdjustment as widget now is a GtkRange.
-
- * gtkutil.c (xg_create_scroll_bar): Connect to value-changed on
- GtkRange to avoid memory leak.
-
-2003-04-09 Kenichi Handa <handa@m17n.org>
-
- * xfaces.c (Vface_font_rescale_alist): New variable.
- (struct font_name): New member rescale_ratio.
- (font_rescale_ratio): New function.
- (split_font_name): If NUMERIC_P is nonzero, set font->rescale_ratio.
- (better_font_p): On comparing point sized, pay attention to
- recale_ratio member of fonts.
- (build_scalable_font_name): Reflect font->rescale_ratio in the
- font name.
- (syms_of_xfaces): Declare Vface_font_rescale_alist as a Lisp variable.
-
- * lread.c (read1): Before calling index, check if the 2nd
- arguemnt is in ASCII range.
-
-2003-04-08 Richard M. Stallman <rms@gnu.org>
-
- * fileio.c (Ffile_symlink_p): Doc fix.
-
- * editfns.c (Fformat): Translate positions of text properties
- in the format string to apply them to the result.
-
- * fileio.c (Finsert_file_contents): Doc fix.
- (syms_of_fileio) <after-insert-file-functions>: Doc fix.
-
-2003-04-08 Ivan Zakharyaschev <imz@altlinux.org> (tiny change)
-
- * lread.c (openp): Get the Qfile_exists_p handler for STRING, not FN.
-
-2003-04-08 Steven Tamm <steventamm@mac.com>
-
- * mac.c (init_mac_osx_environment): Switch libexec and bin so
- that self-contained application finds libexec files.
-
-2003-04-08 Kenichi Handa <handa@m17n.org>
-
- * coding.c (code_convert_region_unwind):
- Set Vlast_coding_system_used to the argument.
- (code_convert_region): If post-read-conversion function changed
- the value of last-coding-sytem, keep the new value in
- coding->symbol so that it won't be overridden.
- (run_pre_post_conversion_on_str): Likewise.
- (coding_system_accept_latin_extra_p): New function.
- (find_safe_codings): Pay attention to characters registered in
- latin-extra-code-table.
-
-2003-04-07 Thien-Thi Nguyen <ttn@gnu.org>
-
- * Makefile.in (md5.o): Add missing dependency info.
-
-2003-04-06 Richard M. Stallman <rms@gnu.org>
-
- * xselect.c (x_handle_selection_request): Move UNGCPRO to very end.
-
- * marker.c (verify_bytepos): New function.
-
- * intervals.c (set_intervals_multibyte_1): When becoming
- multibyte, adjust right and left child sizes to a whole set of
- characters. If an interval gets zero total-length, delete it.
- If an interval consists of just its children, delete one of them.
-
- * intervals.h (CHECK_TOTAL_LENGTH): New macro.
- * intervals.c: Add many calls to CHECK_TOTAL_LENGTH.
-
- * alloc.c (VALIDATE_LISP_STORAGE): Macro deleted.
- All calls deleted.
- (lisp_malloc): Do the work here directly.
-
-2003-04-06 Gareth Jones <emacs@referential.org.uk> (tiny change)
-
- * fns.c (Flength): Return SUB_CHAR_TABLE_ORDINARY_SLOTS for sub
- char tables.
-
-2003-04-04 Kenichi Handa <handa@m17n.org>
-
- * editfns.c (Fformat): Use a copy of FORMAT string so that we can
- destructively change "%S" to "%s".
-
-2003-04-03 Miles Bader <miles@gnu.org>
-
- * xfaces.c (choose_face_font): Make sure *NEEDS_OVERSTRIKE is
- always set.
-
-2003-04-01 Dave Love <fx@gnu.org>
-
- * xfns.c (xpm_lookup_color): Grok "opaque".
-
-2003-03-31 Andrew Choi <akochoi@shaw.ca>
-
- * frame.c (x_report_frame_params) [HAVE_CARBON]: Do not report
- parent window ID.
-
- * macfns.c (syms_of_macfns): Remove call to init_x_parm_symbols.
-
- * macterm.h (struct mac_output): Define x_pixels_diff and
- y_pixels_diff.
-
-2003-03-31 Juanma Barranquero <lektu@terra.es>
-
- * makefile.w32-in ($(BLD)/frame.$(O)): Add dependency on
- blockinput.h and files included from it.
-
-2003-03-31 Kim F. Storm <storm@cua.dk>
-
- The following changes consolidates the common code related to
- frame-parameter handling from the xfns.c, w32fns.c, and macfns.c
- files into frame.c.
-
- * frame.c: Include blockinput.h.
- (Vx_resource_name, Vx_resource_class, Qx_frame_parameter)
- (Qx_resource_name, Qface_set_after_frame_default): Define vars here.
- (Qauto_raise, Qauto_lower, ...): Define all frame parameter
- related vars here.
- (struct frame_parm_table, frame_parms): New table for describing
- frame parameters and their associated Q-variable.
- The order of the parameters corresponds to the sequence of the
- frame_parm_handlers table in redisplay_interface.
- (x_fullscreen_move, x_set_frame_parameters)
- (x_report_frame_params, x_set_fullscreen, x_set_line_spacing)
- (x_set_screen_gamma, x_set_font, x_set_fringe_width)
- (x_set_border_width, x_set_internal_border_width, x_set_visibility)
- (x_set_autoraise, x_set_autolower, x_set_unsplittable)
- (x_set_vertical_scroll_bars, x_set_scroll_bar_width, x_icon_type):
- Generic functions for processing of frame parameters.
- (validate_x_resource_name, xrdb_get_resource, Fx_get_resource)
- (display_x_get_resource, x_get_resource_string): Functions for
- generic access to X resources.
- (x_get_arg, x_frame_get_arg, x_frame_get_and_record_arg)
- (x_default_parameter, Fx_parse_geometry): Functions for generic
- access to frame parameters.
- (x_figure_window_size): Generic calculation of frame size.
- Fixed to add space needed for tool bar. Also setup size_hint_flags.
- (syms_of_frame): Intern and staticpro frame parameter variables.
- Defvar_lisp Vx_resource_class and Vx_resource_name here.
- Defsubr Sx_get_resource and Sx_parse_geometry.
-
- * frame.h (Qauto_raise, Qauto_lower, ...): Declare extern all frame
- parameter related vars defined in frame.c.
- (EMACS_CLASS): Define here.
- (enum FULLSCREEN_*): Define here.
- (x_set_scroll_bar_default_width, x_wm_set_icon_position)
- (x_set_offset, x_new_font, x_new_fontset): Add prototypes.
- (x_fullscreen_adjust, x_set_frame_parameters, x_report_frame_params)
- (x_set_fullscreen, x_set_line_spacing, x_set_screen_gamma, x_set_font)
- (x_set_fringe_width, x_set_border_width, x_set_internal_border_width)
- (x_set_visibility, x_set_autoraise, x_set_autolower)
- (x_set_unsplittable, x_set_vertical_scroll_bars)
- (x_set_scroll_bar_width, x_icon_type, validate_x_resource_name)
- (x_figure_window_size): Add prototypes.
-
- * dispextern.h (frame_parm_handler): New typedef.
- (struct redisplay_interface): New member frame_parm_handlers.
- (enum resource_types): Move declaration here.
- (x_get_arg, x_frame_get_arg, x_frame_get_and_record_arg)
- (x_default_parameter): Add prototypes.
-
- * window.c: Remove extern decl for frame parameter vars.
- (change_window_heights): New generic function;
- replaces x_change_window_heights. All users changed.
-
- * window.h (change_window_heights): Add prototype.
-
- * xfaces.c: Remove extern decl for frame parameter vars.
-
- * xterm.h (EMACS_CLASS): Remove. Use generic define.
- (struct w32_display_info): Fix type of xrdb member.
- (enum FULLSCREEN_*): Remove.
- Remove prototypes for generic functions (in frame.h).
-
- * xfns.c (Qauto_raise, Qauto_lower, ...): Remove vars for frame
- parameters now defined in frame.h and frame.c.
- (Vx_resource_name): Remove. Use generic var.
- (enum x_frame_parms): Remove (bogus, unused enum).
- (check_x_display_info): Make non-static (for frame.c).
- (struct x_frame_parm_table, x_frame_parms): Remove.
- (init_x_parm_symbols, x_set_frame_parameters, x_report_frame_params)
- (x_set_line_spacing, x_set_screen_gamma, x_icon_type, x_set_font)
- (x_set_border_width, x_set_internal_border_width, x_set_visibility)
- (x_change_window_heights, x_set_autoraise, x_set_autolower)
- (x_set_vertical_scroll_bars, x_set_scroll_bar_width)
- (validate_x_resource_name, Fx_get_resource, x_get_resource_string)
- (x_default_parameter, Fx_parse_geometry, x_figure_window_size):
- Remove. Use generic functions instead.
- (enum resource_types): Remove.
- (x_set_scroll_bar_default_width): New global function (for frame.c).
- (Fx_create_frame): Depend on x_figure_window_size to add space for
- toolbar and setup size_hint_flags.
- (x_frame_parm_handlers): New table for redisplay_interface.
- (syms_of_xfns): Don't intern/staticpro removed vars.
-
- * xterm.c: Remove unnecessary extern declarations.
- (x_fullscreen_adjust): Remove. Use generic instead.
- (x_redisplay_interface): Add x_frame_parm_handlers member.
-
- * w32gui.h (XrmDatabase): New (dummy) typedef.
-
- * w32term.h (EMACS_CLASS): Remove. Use generic define.
- (struct w32_display_info): Fix type of xrdb member.
- (enum FULLSCREEN_*): Remove.
- (x_fullscreen_adjust): Remove prototype.
-
- * w32fns.c (Qauto_raise, Qauto_lower, ...): Remove vars for frame
- parameters now defined in frame.h and frame.c.
- (Vx_resource_name): Remove. Use generic var.
- (enum x_frame_parms): Remove (bogus, unused enum).
- (check_x_display_info): Make non-static (for frame.c).
- (struct x_frame_parm_table, x_frame_parms): Remove.
- (init_x_parm_symbols, x_set_frame_parameters, x_report_frame_params)
- (x_set_line_spacing, x_set_screen_gamma, x_icon_type, x_set_font)
- (x_set_border_width, x_set_internal_border_width, x_set_visibility)
- (x_change_window_heights, x_set_autoraise, x_set_autolower)
- (x_set_vertical_scroll_bars, x_set_scroll_bar_width)
- (validate_x_resource_name, Fx_get_resource, x_get_resource_string)
- (x_default_parameter, Fx_parse_geometry, x_figure_window_size):
- Remove. Use generic functions instead.
- (enum resource_types): Remove.
- (x_set_scroll_bar_default_width): New global function (for frame.c).
- (Fx_create_frame): Depend on x_figure_window_size to add space for
- toolbar and setup size_hint_flags.
- (w32_frame_parm_handlers): New table for redisplay_interface.
- (syms_of_w32fns): Don't intern/staticpro removed vars.
-
- * w32term.c: Remove unnecessary extern declarations.
- (x_fullscreen_adjust): Remove. Use generic instead.
- (x_redisplay_interface): Add w32_frame_parm_handlers member.
-
- * w32reg.c (x_get_string_resource): Use XrmDatabase.
-
- * macgui.h (XrmDatabase): New (dummy) typedef.
-
- * macterm.h (EMACS_CLASS): Remove.
- (struct mac_display_info): Add xrdb member.
- (struct mac_output): Add want_fullscreen member.
-
- * macfns.c (Qauto_raise, Qauto_lower, ...): Remove vars for frame
- parameters now defined in frame.h and frame.c.
- (Vx_resource_name): Remove. Use generic var.
- (check_x_display_info): Make non-static (for frame.c).
- (struct x_frame_parm_table, x_frame_parms): Remove.
- (init_x_parm_symbols, x_set_frame_parameters, x_report_frame_params)
- (x_set_line_spacing, x_set_screen_gamma, x_icon_type, x_set_font)
- (x_set_border_width, x_set_internal_border_width, x_set_visibility)
- (x_change_window_heights, x_set_autoraise, x_set_autolower)
- (x_set_vertical_scroll_bars, x_set_scroll_bar_width)
- (validate_x_resource_name, Fx_get_resource, x_get_resource_string)
- (x_default_parameter, Fx_parse_geometry, x_figure_window_size):
- Remove. Use generic functions instead.
- (enum resource_types): Remove.
- (x_set_scroll_bar_default_width): New global function (for frame.c).
- (mac_frame_parm_handlers): New table for redisplay_interface.
- (syms_of_macfns): Don't intern/staticpro removed vars.
-
- * macterm.c: Remove unnecessary extern declarations.
- (x_redisplay_interface): Add mac_frame_parm_handlers member.
-
- * Makefile.in (frame.o): Add dependency on blockinput.h and files
- included from it (atimer.h and systime.h).
-
-2003-03-30 Andreas Schwab <schwab@suse.de>
-
- * xdisp.c (x_insert_glyphs): Fix swapped width and height
- parameters for shift_glyphs_for_insert.
-
- * macterm.c (x_redisplay_interface): Add missing entry for
- draw_vertical_window_border.
-
-2003-03-29 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@gmx.net>
-
- * fileio.c (Fexpand_file_name): In the no-handler case, after
- expanding, look again for a handler and invoke it. This is needed
- for filenames like "/foo/../user@host:/bar/../baz" -- the first
- expansion produces "/user@host:/bar/../baz" which needs to be
- expanded again for the finame result "/user@host:/baz".
-
-2003-03-28 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_tool_bar_item_expose_callback): Reduce size
- of area to be redrawn for better performance.
-
-2003-03-28 Stefan Monnier <monnier@cs.yale.edu>
-
- * xterm.c (take_vertical_position_into_account): Remove.
- (xt_action_hook): Call set_vertical_scroll_bar if needed.
- (XM_SB_MIN, XM_SB_RANGE): Remove (min is now set to 0).
- (xm_scroll_callback, x_create_toolkit_scroll_bar)
- (x_set_toolkit_scroll_bar_thumb): Simplify.
- (x_scroll_bar_expose): Only compile if !USE_TOOLKIT_SCROLL_BARS.
- (XTread_socket): Remove unused var.
- (x_make_frame_invisible): Replace goto with else.
-
- * xdisp.c (set_vertical_scroll_bar): New fun.
- (redisplay_window): Use it.
-
-2003-03-26 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (update_tool_bar): Recompute tool bar if
- update_mode_lines is set. Set w->update_mode_line
- only if the tool bar contents actually change.
- (update_menu_bar): Undo previous change.
-
-2003-03-26 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_resize_widgets): Don't call xg_frame_cleared.
- (xg_frame_set_char_size): Calculate scroll bar width before frame
- width. Call SET_FRAME_GARBAGED and cancel_mouse_face.
- (xg_separator_p): Check for all documented separator types.
- (xg_update_scrollbar_pos): Variable gheight not needed, use height.
- (update_frame_tool_bar): Don't call gdk_window_process_all_updates.
-
- * xdisp.c (update_menu_bar): Set w->update_mode_line to Qt
- so tool bar gets updated.
-
-2003-03-26 Stefan Monnier <monnier@cs.yale.edu>
-
- * data.c (store_symval_forwarding): Re-instate part of the code
- that was deleted with too much enthusiasm.
-
-2003-03-25 Stefan Monnier <monnier@cs.yale.edu>
-
- * data.c (store_symval_forwarding): Delete special read-only
- hack for type == -1, since we now use ->constant instead.
- (Fkill_local_variable): Don't use XBUFFER if it can be nil.
-
- * buffer.c (overlays_in): Declare static.
- (syms_of_buffer) <enable-multibyte-characters>: Use the symbol's
- `constant' field rather than the variable's `type' field.
-
-2003-03-24 Andrew Choi <akochoi@shaw.ca>
-
- * config.in [MAC_OSX]: Do not redefine bcopy, bzero, and bcmp.
-
- * dispextern.h [HAVE_CARBON]: Include Carbon.h.
-
- * fns.c [MAC_OSX]: Do not redefine vector.
-
- * keyboard.c [MAC_OSX]: Handle SIGINT with interrupt_signal.
-
- * macgui.h: Remove definition of No_Cursor.
-
- * macterm.h: Include Carbon.h. Replace (struct Cursor *) by Cursor.
-
- * xdisp.c: Define No_Cursor.
- (x_write_glyphs, notice_overwritten_cursor)
- (draw_phys_cursor_glyph, note_mode_line_or_margin_highlight)
- (note_mouse_highlight): Remove Mac-specific code.
- (note_mouse_highlight): Use bcmp instead of == to compare Cursors.
-
-2003-03-24 John Paul Wallington <jpw@gnu.org>
-
- * xdisp.c (redisplay_window): If mini window's buffer is not
- empty, then redisplay it like other windows.
-
-2003-03-23 Kim F. Storm <storm@cua.dk>
-
- * w32term.c (w32_draw_window_cursor): Fix last change.
-
-2003-03-23 Kenichi Handa <handa@m17n.org>
-
- * alloc.c (make_string_from_bytes, make_specified_string):
- Add `const' for the arg CONTENTS.
-
- * lisp.h (make_string_from_bytes, make_specified_string):
- Prototypes adjusted.
-
-2003-03-23 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xdisp.c (get_glyph_string_clip_rect): Remove ; at end of #endif.
-
- * gtkutil.h: Take two more arguments to xg_update_scrollbar_pos.
- (XG_SB_RANGE): New define.
-
- * gtkutil.c (xg_fixed_handle_expose): New function.
- (xg_create_frame_widgets): Call xg_fixed_handle_expose for
- expose events.
- (xg_update_scrollbar_pos): Take two more arguments, left and width
- of scroll bar including borders.
- Clear left and right part outside scroll bar separately as some
- themes have bars that are not an even number of pixels.
- Don't set reallocate_redraws, don't call
- gdk_window_process_all_updates.
- (xg_set_toolkit_scroll_bar_thumb): Upper value is fixed,
- so no need to change it. Calculate size and value with XG_SB_RANGE.
-
- * xterm.c (x_scroll_bar_create, XTset_vertical_scroll_bar):
- Pass left and width of scroll bar including borders to
- xg_update_scrollbar_pos.
-
-2003-03-22 Thien-Thi Nguyen <ttn@gnu.org>
-
- * Makefile.in: Make sure space precedes end-of-line backslashes.
-
-2003-03-22 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (pixel_to_glyph_coords, glyph_to_pixel_coords):
- Add generic versions here. Remove system specific versions
- defined elsewhere.
-
- * dispextern.h (pixel_to_glyph_coords, glyph_to_pixel_coords):
- Add prototypes.
-
- * xterm.h (STORE_NATIVE_RECT): New macro.
-
-2003-03-21 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (get_glyph_string_clip_rect):
- Use FRAME_INTERNAL_BORDER_WIDTH.
-
- * dispextern.h (struct redisplay_interface): Add active_p
- argument to draw_window_cursor member. All uses changed.
-
-2003-03-21 Kim F. Storm <storm@cua.dk>
-
- The following changes consolidate code related to writing and
- inserting glyphs, exposing frame, the tool bar, the mouse face,
- the output cursor, and help echo from xterm.c, w32term.c and
- macterm.c into xdisp.c. It also generalizes the use of the
- window_part enum instead of using numeric values throughout.
-
- * xdisp.c: Consolidate gui-independent code here.
- Include keymap.h.
- (Qhelp_echo): Import.
- (mouse_autoselect_window, x_stretch_cursor_p): Declare here.
- (help_echo_string, help_echo_window, help_echo_object)
- (previous_help_echo_string, help_echo_pos): Declare here.
- (output_cursor, last_mouse_frame, last_tool_bar_item): Declare here.
- (estimate_mode_line_height): Define here. Handle windowing
- systems directly (without using estimate_mode_line_height_hook).
- (x_y_to_hpos_vpos, get_tool_bar_item, note_tool_bar_highlight):
- (update_window_cursor, update_cursor_in_window_tree)
- (fast_find_position, fast_find_string_pos)
- (note_mode_line_highlight, note_mode_line_or_margin_highlight)
- (expose_area, expose_line, expose_overlaps, expose_window)
- (expose_window_tree, phys_cursor_in_rect_p): New generic versions;
- declared static as they are only used locally in xdisp.c.
- (draw_glyphs): Rename from x_draw_glyphs and make static.
- (tool_bar_item_info, notice_overwritten_cursor): Make static.
- (frame_to_window_pixel_xy, get_glyph_string_clip_rect)
- (set_output_cursor, x_cursor_to, handle_tool_bar_click)
- (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
- (x_fix_overlapping_area, draw_phys_cursor_glyph, erase_phys_cursor)
- (display_and_set_cursor, x_update_cursor, x_clear_cursor)
- (show_mouse_face, clear_mouse_face, cursor_in_mouse_face_p)
- (note_mouse_highlight, x_clear_window_mouse_face)
- (cancel_mouse_face, x_draw_vertical_border, expose_frame)
- (x_intersect_rectangles): New generic functions for use by xdisp.c
- and GUI front-ends.
- (syms_of_xdisp): Initialize and staticpro help_echo* variables.
- Defvar_bool "x-streach-cursor" and "mouse-autoselect-window" here.
-
- * dispextern.h (Display_Info): Generic typedef for *_display_info.
- (NativeRectangle): Generic typedef for rectangle type.
- (enum window_part): Move here from window.c.
- (struct redisplay_interface): New members flush_display_optional,
- define_frame_cursor, clear_frame_area, draw_window_cursor,
- draw_vertical_window_border, shift_glyphs_for_insert.
- Rename member clear_mouse_face to clear_window_mouse_face.
- (estimate_mode_line_height_hook): Remove hook.
- (auto_raise_tool_bar_buttons_p): Don't declare extern.
- (tool_bar_item_info): Remove prototype.
- (help_echo_string, help_echo_window, help_echo_object)
- (previous_help_echo_string, help_echo_pos)
- (last_mouse_frame, last_tool_bar_item, mouse_autoselect_window):
- (x_stretch_cursor_p, output_cursor): Declare extern.
- (x_draw_glyphs, notice_overwritten_cursor): Remove prototypes.
- (x_write_glyphs), x_insert_glyphs, x_clear_end_of_line)
- (x_fix_overlapping_area, draw_phys_cursor_glyph, erase_phys_cursor)
- (display_and_set_cursor, set_output_cursor, x_cursor_to)
- (x_update_cursor, x_clear_cursor, x_draw_vertical_border)
- (frame_to_window_pixel_xy, get_glyph_string_clip_rect)
- (note_mouse_highlight, x_clear_window_mouse_face, cancel_mouse_face)
- (handle_tool_bar_click, clear_mouse_face, show_mouse_face)
- (cursor_in_mouse_face_p, expose_frame, x_intersect_rectangles):
- Add prototypes.
- (mode_line_string, marginal_area_string): Fix prototypes.
-
- * window.c (enum window_part): Move to dispextern.h.
- (coordinates_in_window): Use enum window_part member names
- instead of numbers to describe return value.
- (struct check_window_data): Change part member to window_part.
- (check_window_containing): Return window_part unaltered.
- (window_from_coordinates): Change part arg from int to enum
- window_part. Allow part arg to be null. All users changed.
-
- * window.h (window_from_coordinates): Fix prototype.
-
- * term.c (estimate_mode_line_height): Move to xdisp.c.
-
- * keyboard.c (make_lispy_event): Use enum window_part.
-
- * dispnew.c (mode_line_string, marginal_area_string): Use enum
- window_part instead of int in arg list. Users changed.
-
- * xterm.h (No_Cursor): Declare as None for X.
- (struct mac_output): Replace member cross_cursor by hand_cursor.
-
- * xterm.c: Remove consolidated defines and code.
- (BETWEEN): Remove unused macro.
- (x_draw_vertical_window_border, x_shift_glyphs_for_insert)
- (x_define_frame_cursor, x_clear_frame_area)
- (x_draw_window_cursor): New X-specific functions for RIF.
- (x_redisplay_interface): Add new members.
-
- * xfns.c: Setup and use hand_cursor instead of cross_cursor.
-
- * w32term.h (struct w32_output): Remove cross_cursor member.
-
- * w32term.c: Remove consolidated defines and code.
- (BETWEEN): Remove unused macro.
- (w32_draw_vertical_window_border, w32_shift_glyphs_for_insert)
- (w32_define_frame_cursor, w32_clear_frame_area)
- (w32_draw_window_cursor): New W32-specific functions for RIF.
- (w32_redisplay_interface): Add new members.
-
- * w32gui.h (No_Cursor): Define as 0 for W32.
- (XRectangle): Add X compatible rectangle type.
- (NativeRectangle): Declare as RECT for W32.
- (CONVERT_TO_XRECT, CONVERT_FROM_XRECT, STORE_NATIVE_RECT): New macros.
-
- * w32fns.c: Remove setup of cross_cursor (already has hand_cursor).
-
- * w32console.c: Remove consolidated defines and code.
-
- * msdos.h (Display_Info): Add generic typedef.
-
- * msdos.c: Remove consolidated defines and code.
- (IT_note_mouse_highlight, dos_rawgetc): Use enum window_part.
-
- * macterm.h (struct mac_output): Replace member cross_cursor by
- hand_cursor.
- (activate_scroll_bars, deactivate_scroll_bars): Add prototypes.
-
- * macterm.c: Remove consolidated defines and code.
- (BETWEEN): Remove unused macro.
- (mac_draw_vertical_window_border, mac_shift_glyphs_for_insert)
- (mac_define_frame_cursor, mac_clear_frame_area)
- (mac_draw_window_cursor): New Mac-specific functions for RIF.
- (x_redisplay_interface): Add new members.
-
- * macgui.h (No_Cursor): Define as 0 for Mac.
- (XRectangle): Add X compatible rectangle type.
- (NativeRectangle): Declare as Rect for Mac.
- (CONVERT_TO_XRECT, CONVERT_FROM_XRECT, STORE_NATIVE_RECT): New macros.
-
- * macfns.c (x_set_mouse_color): Setup hand_cursor.
- (x_set_cursor_color): Use x_display_and_set_cursor.
-
- * Makefile.in (xdisp.o): Add dependency on blockinput.h and files
- included from it. Add dependency on keymap.h.
-
- * makefile.w32-in (xdisp.o): Add dependency on keymap.h.
-
-2003-03-21 Kenichi Handa <handa@m17n.org>
-
- * fileio.c (Fexpand_file_name): Fix previous change.
-
-2003-03-19 Kenichi Handa <handa@m17n.org>
-
- * fileio.c (Ffile_name_directory): Reconstruct file name by
- make_specified_string.
- (Ffile_name_nondirectory, Ffile_name_as_directory)
- (Fdirectory_file_name, Fexpand_file_name)
- (Fsubstitute_in_file_name): Likewise.
- (Fread_file_name): Compare decoded homedir with DIR and
- DEFAULT_FILENAME.
-
- * alloc.c (make_specified_string): If NCHARS is negative, count
- the number of characters.
-
-2003-03-18 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_frame_cleared): Call gtk_widget_queue_draw for
- all widgets.
-
- * gtkutil.h: Removed xg_ignore_next_thumb.
-
-2003-03-18 Kenichi Handa <handa@m17n.org>
-
- * coding.c (Vchar_coding_system_table): Remove this variable.
- (Vcoding_system_safe_chars): New variable.
- (intersection): Remove this function.
- (find_safe_codings): Don't use Vchar_coding_system_table, but try
- all codings in SAFE_CODINGS.
- (Ffind_coding_systems_region_internal): Adjust for the change of
- find_safe_codings. Get generic coding systems from
- Vcoding_system_safe_chars.
- (Fdefine_coding_system_internal): New function.
- (syms_of_coding): Defsubr Sdefine_coding_system_internal.
- Initialize and staticpro Vcoding_system_safe_chars.
-
-2003-03-18 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_set_toolkit_scroll_bar_thumb): Check if new values
- equal old values before updating.
-
- * xterm.c (xg_scroll_callback): Remove xg_ignore_next_thumb.
-
- * gtkutil.c (xg_initialize): Remove xg_ignore_next_thumb.
-
-2003-03-17 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c: Removed handle_fixed_child, struct xg_last_sb_pos.
- (xg_resize_widgets): Don't call foreach(handle_fixed_child).
- (xg_gtk_scroll_destroy): Remove free of struct xg_last_sb_pos.
- (scroll_bar_button_cb): Set bar->dragging to nil on button release.
- (xg_create_scroll_bar): Pass bar to button event callback.
- (xg_find_top_left_in_fixed): New function.
- (xg_update_scrollbar_pos): Don't call gdk_window_clear on
- whole scroll bar area. Get old position with
- xg_find_top_left_in_fixed, calculate and only clear needed areas.
- (xg_set_toolkit_scroll_bar_thumb): Do not adjust scroll bar if
- dragging is in progress. Calculate whole as for Motif.
- Remove code that saved last values. Call gtk_range functions to
- set scroll bar sizes.
-
- * gtkutil.h: Removed xg_ignore_next_thumb.
-
-2003-03-17 Juanma Barranquero <lektu@terra.es>
-
- * makefile.w32-in ($(BLD)/xdisp.$(O)): Add dependency on blockinput.h
- and files included from it.
-
-2003-03-18 Stefan Monnier <monnier@cs.yale.edu>
-
- * keymap.c (accessible_keymaps_1): Break cycles but without preventing
- multiple occurrences of the same keymap under different prefixes.
- (Faccessible_keymaps): Remove code redundant since 1994-08-03T07:39:00Z!rms@gnu.org.
-
-2003-03-16 Jason Rumney <jasonr@gnu.org>
-
- * w32gui.h: Use HDC for Display.
-
- * w32term.c (w32_encode_char): Prevent double-byte chars from
- crashing Emacs.
-
- * w32fns.c (jpeg_load, png_load, slurp_file): Read image files
- as binary.
-
-2003-03-16 Juanma Barranquero <lektu@terra.es>
-
- * xdisp.c (x_produce_glyphs): Use FRAME_BASELINE_OFFSET.
-
-2003-03-16 Kim F. Storm <storm@cua.dk>
-
- The following changes consolidate some of the gui-independent
- parts of the processing and drawing of "glyph strings" from
- xterm.c, w32term.c, and macterm.c into xdisp.c.
-
- * dispextern.h (struct glyph): Reduce face_id member from 22 to
- 21 bits (this reduces number of faces from 4M to 2M).
- Replace W32 specific w32_font_type member (2 bits) by generic
- font_type member (3 bits) for portability.
- (FONT_TYPE_UNKNOWN): New define, default for font_type member.
- (enum draw_glyphs_face): Define here.
- (struct glyph_string): Define here. Merge W32 and X versions.
- (struct redisplay_interface): New members per_char_metric,
- encode_char, compute_glyph_string_overhangs, draw_glyph_string.
- (VCENTER_BASELINE_OFFSET): Define here.
- (dump_glyph_string, x_get_glyph_overhangs, x_produce_glyphs)
- (x_draw_glyphs, notice_overwritten_cursor): Declare prototypes here.
-
- * xdisp.c: Consolidate gui-independent "glyph string" code here.
- (dump_glyph_string): Moved here.
- (init_glyph_string, append_glyph_string_lists, append_glyph_string)
- (prepend_glyph_string_lists, get_glyph_face_and_encoding)
- (fill_composite_glyph_string, fill_glyph_string)
- (fill_image_glyph_string, fill_stretch_glyph_string)
- (left_overwritten, left_overwriting, right_overwritten)
- (right_overwriting, get_char_face_and_encoding)
- (set_glyph_string_background_width, compute_overhangs_and_x)
- (append_glyph, append_composite_glyph, produce_image_glyph)
- (take_vertical_position_into_account, append_stretch_glyph)
- (produce_stretch_glyph): New generic functions (based on X version).
- Call platform specific functions through rif.
- (INIT_GLYPH_STRING): New macro, hides W32 details.
- (BUILD_STRETCH_GLYPH_STRING, BUILD_IMAGE_GLYPH_STRING)
- (BUILD_CHAR_GLYPH_STRINGS, BUILD_COMPOSITE_GLYPH_STRING)
- (BUILD_GLYPH_STRINGS): Generic macros (based on X version).
- (x_draw_glyphs, x_get_glyph_overhangs, x_produce_glyphs)
- (notice_overwritten_cursor):
- Generic functions exported to platform modules. Users changed.
-
- * xterm.h (FONT_DESCENT, FRAME_X_OUTPUT, FRAME_BASELINE_OFFSET)
- (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE)
- (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2):
- New macros for consolidated code.
-
- * xterm.c: Remove consolidated defines and code.
- (x_per_char_metric, x_encode_char)
- (x_compute_glyph_string_overhangs): Adapt to RIF requirements.
- (x_redisplay_interface): Add new members.
-
- * w32gui.h (Display): Add dummy typedef for consolidation.
- (XChar2b): Define alias for wchar_t for consolidation.
- (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): New macros.
-
- * w32term.h (FRAME_X_OUTPUT, FRAME_X_WINDOW, FRAME_X_DISPLAY)
- (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE):
- New macros for consolidation.
-
- * w32term.c: Remove consolidated defines and code.
- (BUILD_WCHAR_T, BYTE1, BYTE2): Macros removed; callers changed
- to use STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2 instead.
- (w32_per_char_metric): Change font_type arg to int for RIF.
- (w32_encode_char): Return int according to RIF requirements.
- (w32_compute_glyph_string_overhangs): Adapt to RIF.
- (w32_get_glyph_overhangs): New function for RIF. Uses generic
- x_get_glyph_overhangs.
- (w32_redisplay_interface): Add new members.
-
- * macgui.h (XChar2b): Move typedef here for consolidation.
- (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): New macros.
-
- * macterm.h (FRAME_X_OUTPUT, FRAME_X_WINDOW, FRAME_X_DISPLAY):
- (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE): New macros for
- consolidation.
-
- * macterm.c: Remove consolidated defines and code.
- (mac_per_char_metric): New function for RIF.
- (mac_encode_char): Adapt to new RIF requirements.
- (mac_compute_glyph_string_overhangs): Adapt for RIF.
- (x_redisplay_interface): Add new members.
-
-2003-03-15 Stefan Monnier <monnier@cs.yale.edu>
-
- * keymap.c (Vmenu_events): New var.
- (syms_of_keymap): Initialize it.
- (where_is_internal): Check more carefully what is a menu event.
-
-2003-03-14 Richard M. Stallman <rms@gnu.org>
-
- * lread.c (read1): After #!, exit loop on eof.
-
-2003-03-14 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.h: Add declaration for xg_frame_cleared.
-
- * xterm.c (x_clear_frame): Call xg_frame_cleared for GTK.
-
- * gtkutil.c (struct xg_last_sb_pos): New structure.
- (handle_fixed_child): New function.
- (xg_resize_widgets): Call handle_fixed_child on all scroll bar widgets
- and force a redraw on them.
- (xg_gtk_scroll_destroy): Free struct xg_last_sb_pos also.
- (xg_create_scroll_bar): Add struct xg_last_sb_pos to scroll bar
- so we can avoid unneeded redraws.
- (xg_update_scrollbar_pos): Invalidate data in xg_last_sb_pos
- and force a redraw on the scroll bar.
- (xg_set_toolkit_scroll_bar_thumb): Do not change/redraw scroll bar
- if xg_last_sb_pos shows the positions are up to date.
- (xg_frame_cleared): New function.
-
-2003-03-13 Kenichi Handa <handa@m17n.org>
-
- * coding.c (Fdetect_coding_region): Fix docstring.
- (Fdetect_coding_string): Fix docstring.
-
-2003-03-13 Andreas Schwab <schwab@suse.de>
-
- * gtkutil.c: Add prototype for create_menus.
-
- * data.c (long_to_cons): Fix type of top.
-
- * xselect.c (selection_data_to_lisp_data): Use int instead of
- long for an integer of size 4.
-
- * gtkutil.c (xg_update_frame_menubar): Add missing return value.
- (xg_tool_bar_help_callback): Likewise.
-
-2003-03-12 Andreas Schwab <schwab@suse.de>
-
- * xterm.c (x_term_init) [USE_GTK]: Fix typo.
-
-2003-03-12 Kim F. Storm <storm@cua.dk>
-
- The following changes consolidate the fringe handling from
- xterm.c, w32term.c, and macterm.c into xdisp.c.
-
- * xdisp.c: Consolidate fringe handling code here.
- (left_bits, right_bits, continued_bits, continuation_bits)
- (ov_bits, zv_bits): Define fringe bitmaps.
- (fringe_bitmaps): New array holding fringe bitmaps.
- (draw_fringe_bitmap): Draw a specific bitmap; call display
- specific drawing routine via rif->draw_fringe_bitmap.
- (draw_row_fringe_bitmaps): Generic replacement for
- x_draw_row_fringe_bitmaps; all callers changed.
- (compute_fringe_widths): Generic replacement for
- x_compute_fringe_widths; all callers changed.
-
- * dispextern.h (enum fringe_bitmap_type): Define here.
- (struct fringe_bitmap, struct draw_fringe_bitmap_params): New.
- (fringe_bitmaps): Declare extern.
- (struct redisplay_interface): New member draw_fringe_bitmap.
- (draw_row_fringe_bitmaps, compute_fringe_widths): Declare extern.
-
- * xterm.c: Remove generic fringe code.
- (x_draw_fringe_bitmap): Only perform actual fringe drawing.
- (x_redisplay_interface): Add x_draw_fringe_bitmap member.
-
- * w32term.c: Remove generic fringe code.
- (w32_draw_fringe_bitmap): Only perform actual fringe drawing.
- (w32_redisplay_interface): Add w32_draw_fringe_bitmap member.
-
- * macterm.c: Remove generic fringe code.
- (x_draw_fringe_bitmap): Only perform actual fringe drawing.
- (x_redisplay_interface): Add x_draw_fringe_bitmap member.
-
-2003-03-11 Stefan Monnier <monnier@cs.yale.edu>
-
- * print.c (Fprin1_to_string): Return unibyte string if possible.
-
-2003-03-09 David Kastrup <dak@gnu.org>
-
- * process.c (read_process_output): We have allocated enough space
- for readmax and carryover, so actually use the alloted space.
-
-2003-03-09 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * keyboard.c (make_lispy_event): Extend mouse_syms if needed for
- toolkit scrollbar click.
-
- * xterm.c (x_window_to_scroll_bar): Call xg_get_scroll_id_for_window
- for USE_GTK.
- (x_scroll_bar_handle_click): Use this function for toolkit scrollbars
- also.
- (handle_one_xevent): ButtonPress/Release: If event is for a toolkit
- scrollbar and control is pressed, call x_scroll_bar_handle_click.
-
- * gtkutil.h (xg_get_scroll_id_for_window): Declare.
-
- * gtkutil.c (xg_get_scroll_id_for_window): New function.
- (xg_tool_bar_item_expose_callback): New function.
- (xg_tool_bar_expose_callback): Call update_frame_tool_bar.
- (xg_create_tool_bar): Connect xg_tool_bar_expose_callback to expose
- on the tool bar widget.
- (update_frame_tool_bar): Connect xg_tool_bar_item_expose_callback
- to expose on the tool bar item widgets.
-
-2003-03-08 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (update_frame_tool_bar): Compare pixmap ID instead of
- struct image* when deciding to update (struct image* may have been
- deleted from the image cache).
-
- * xterm.c (handle_one_xevent): Pass ReparentNotify to Xt even if
- the event isn't for a frame (i.e. for dialogs).
-
-2003-03-07 Kenichi Handa <handa@m17n.org>
-
- * coding.c (CODING_ADD_COMPOSITION_COMPONENT): If the number of
- composition components reaches the limit, terminate composing.
- (COMPOSITION_OK): New macro.
- (detect_coding_iso2022): Use it if an escape sequence for
- composition is found.
- (coding_restore_composition): Adjust the number of composition
- components if it is not sane.
-
-2003-03-06 Juanma Barranquero <lektu@terra.es>
-
- * w32term.h (struct w32_display_info): Add xrdb member to support
- passing resources via -xrm on Windows.
-
- * w32term.c (w32_make_rdb): New function.
- (w32_term_init): Use it to initialize xrdb member of w32_display_info
- struct. Delete leftover code.
-
- * w32fns.c (Fx_get_resource, x_get_resource_string): Pass xrdb to check
- for resources passed on the command line.
-
- * w32reg.c (w32_get_rdb_resource): New function.
- (x_get_string_resource): Use it, so resources passed with -xrm
- supercede the ones in the registry.
-
-2003-03-04 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_detect_focus_change): Call x_any_window_to_frame
- instead of x_top_window_to_frame.
-
-2003-03-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xsmfns.c (smc_save_yourself_CB): Add --no-splash to options
- when restarting Emacs.
-
-2003-03-03 Richard M. Stallman <rms@gnu.org>
-
- * buffer.c (Fkill_buffer): Use Frun_hook_with_args_until_failure
- to run kill-buffer-query-functions.
- (Qkill_buffer_query_functions): New var.
- (syms_of_buffer): Init and staticpro it.
-
-2003-03-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.h (XSync): Define as gdk_window_process_all_updates for GTK.
-
-2003-02-25 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (redisplay_window): Fix infinite loop in redisplay.
- If centering point failed to make whole line visible and vscroll
- is non-zero, disable vscroll and try centering point again.
-
- * lread.c (read1): Accept `single space' syntax like (? x).
-
-2003-02-25 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * keyboard.c (cancel_hourglass_unwind): Surround with
- #ifdef HAVE_X_WINDOWS.
-
-2003-02-25 Kenichi Handa <handa@m17n.org>
-
- * buffer.c (Fset_buffer_multibyte): Pay attention to the buffer
- process only when "subprocesses" is defined.
-
-2003-02-24 Stefan Monnier <monnier@cs.yale.edu>
-
- * syntax.c (back_comment): Only check nestedness of 2nd char if needed.
-
-2003-02-24 Juanma Barranquero <lektu@terra.es>
-
- * callint.c (fix_command): Declare as static void and move before
- Fcall_interactively.
-
- * xdisp.c (Qwhen): Declare external; it's now defined in callint.c.
- (syms_of_xdisp): Don't initialize Qwhen.
-
-2003-02-23 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * keyboard.c (cancel_hourglass_unwind): New function.
- (command_loop_1): Cancel hourglass with unwind-protect.
-
-2003-02-23 Richard M. Stallman <rms@gnu.org>
-
- * callint.c (fix_command): New subroutine, from Fcall_interactively.
- Detect (when ... (region-beginning)) etc.
- (Fcall_interactively): Call fix_command.
- (Qif, Qwhen): New variables.
- (syms_of_callint): Init and staticpro them.
-
- * regex.c (print_partial_compiled_pattern): Output to stderr.
-
-2003-02-23 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@uni-duisburg.de>
-
- * dired.c (directory_files_internal): Don't expand directory.
- (Fdirectory_files, Fdirectory_files_and_attributes): Do it here
- instead. From Lars Hansen <larsh@math.ku.dk>.
-
-2003-02-22 Stefan Monnier <monnier@cs.yale.edu>
-
- * fns.c (string_to_multibyte): Remove unused var i.
- (Flanginfo): Fix int/Lisp_Object mixup.
- (void_call2): New fun.
- (Fmap_char_table): Use it in place of call2.
-
- * xfaces.c (x_face_list_fonts): Fix int/Lisp_Object mixup.
-
- * macros.c (Fstart_kbd_macro): Remove redundant assignment.
-
- * keymap.c (copy_keymap_1): Make it static.
-
- * alloc.c (Fgarbage_collect): Don't use XSETFLOAT.
-
-2003-02-22 David Ponce <david@dponce.com>
-
- * lread.c (Fload): Don't check STRING_MULTIBYTE.
-
-2003-02-21 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * process.h: Removed subtty field from struct Lisp_Process.
-
- * process.c (create_process): Remove setting of subtty.
- (emacs_get_tty_pgrp): New function.
- (Fprocess_running_child_p, process_send_signal):
- Call emacs_get_tty_pgrp instead of ioctl.
- (process_send_signal): Call EMACS_KILLPG if ioctl TIOCSIGSEND fails.
-
-2003-02-21 Kai Gro\e,A_\e(Bjohann <kai.grossjohann@uni-duisburg.de>
-
- * keymap.c (Fdefine_key): Doc fix.
-
-2003-02-21 Juanma Barranquero <lektu@terra.es>
-
- Port of patch for RC by Klaus Zeitler <kzeitler@lucent.com>.
-
- * s/hpux10.h: Define POLL_INTERRUPTED_SYS_CALL, not
- POLLING_PROBLEM_IN_SELECT.
-
- * s/hpux11.h: Include hpux10-20.h instead of hpux10.h.
- Delete #undef of POLLING_PROBLEM_IN_SELECT.
-
- * s/hpux10-20.h: New file.
-
- * process.c (wait_reading_process_input):
- Use POLL_INTERRUPTED_SYS_CALL, not POLLING_PROBLEM_IN_SELECT.
-
-2003-02-20 Kenichi Handa <handa@m17n.org>
-
- * fontset.c (check_fontset_name): If NAME is nil, return the
- default fontset.
- (override_font_info): New function.
- (Fset_fontset_font): Document that NAME nil means the default fontset.
- (Ffontset_info): If FONTSET is not the default fontset, merge
- FONTSET onto the copy of the default fontset, and work on that
- copy. Document that NAME nil means the default fontset.
- (Ffontset_font): Document that NAME nil means the default fontset.
-
- * process.c (setup_process_coding_systems): If the process's
- in/out descriptor is -1, do nothing.
-
-2003-02-19 Andreas Schwab <schwab@suse.de>
-
- * lisp.h (Fcancel_kbd_macro_events, Fstring_to_multibyte):
- Add prototypes.
-
-2003-02-19 Kenichi Handa <handa@m17n.org>
-
- * xfaces.c (try_alternative_families): Try all scalable fonts if
- Vscalable_fonts_allowed is not Qt.
-
-2003-02-19 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfaces.c (x_face_list_fonts): Set *pfonts to 0 if no fonts found.
-
-2003-02-18 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_list_fonts): If maxnames is less than 0, get all font
- names.
-
- * xfaces.c (x_face_list_fonts): Allocate struct font_name here.
- (sorted_font_list): Move allocation of struct font_name to
- x_face_list_fonts.
- (Fx_font_family_list): Set font-list-limit to -1 to get all font names.
- (Fx_list_fonts): Set maxnames to -1 to get all font names.
-
-2003-02-18 Kim F. Storm <storm@cua.dk>
-
- * lread.c (read1): Fix last change.
- "`" is not always special. Allow "?" after a character constant.
-
-2003-02-18 Andrew Choi <akochoi@shaw.ca>
-
- * unexmacosx.c (copy_data_segment): Also copy __cfstring section.
-
-2003-02-18 Andreas Schwab <schwab@suse.de>
-
- * window.c (window_scroll_pixel_based): Move outside a
- multi-glyph character before setting new window start.
-
- * xdisp.c (in_display_vector_p): New function.
- * dispextern.h (in_display_vector_p): Declare.
-
-2003-02-18 Kim F. Storm <storm@cua.dk>
-
- * lread.c (read1): Fix and relax read syntax.
- Recognize "[", ";", "#", and "?" after a dotted-pair dot.
- Only recognize "," after dotted-pair dot if inside backquote.
- Never include "`" or "," (inside backquote) in a symbol.
- Allow dotted-pair dot after a character constant.
- Allow "`" and "," (inside backquote) after a character constant.
-
-2003-02-17 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_tool_bar_expose_callback): New function.
- (xg_create_tool_bar): Force style of tool bar to be horizontal with
- icons. Set name of tool bar to emacs-toolbar.
- (update_frame_tool_bar): Connect expose event to
- xg_tool_bar_expose_callback.
-
-2003-02-17 Richard M. Stallman <rms@gnu.org>
-
- * keyboard.c (this_command_key_count_reset): New variable.
- Initiatize to 0 where this_command_key_count is set.
- (read_char): Save and restore this_command_key_count_reset
- around input method code.
- (read_char): If this_command_key_count_reset, echo reread commands.
- (Freset_this_command_lengths): Set this_command_key_count_reset to 1.
-
-2003-02-17 Kenichi Handa <handa@m17n.org>
-
- * fns.c (string_to_multibyte): Always return a multibyte string.
-
-2003-02-16 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (w32_list_bdf_fonts, w32_list_fonts):
- Negative max_fonts parameter means list all.
-
-2003-02-14 Dave Love <fx@gnu.org>
-
- * fns.c (Flanginfo): Doc fix.
-
-2003-02-13 Kim F. Storm <storm@cua.dk>
-
- * lread.c (read_escape): Interpret \s as a SPACE character, except
- for \s-X in a character constant which still is the super modifier.
- (read1): Signal an `invalid read syntax' error if a character
- constant is immediately followed by a digit or symbol character.
-
- * search.c (Fmatch_data): Doc fix. Explicitly state that
- match-data is undefined if last search failed.
-
- * keymap.c (Fcommand_remapping): Rename from Fremap_command.
- All uses changed.
-
-2003-02-12 Juanma Barranquero <lektu@terra.es>
-
- * eval.c (Fdefmacro): Fix typo.
-
-2003-02-12 Kim F. Storm <storm@cua.dk>
-
- * macros.c (Fstart_kbd_macro): If appending, and last keyboard
- macro is a string, convert meta modifiers in string when copying
- the string into a vector.
-
-2003-02-11 Kim F. Storm <storm@cua.dk>
-
- * keymap.c (Fremap_command): Return nil if arg is not a symbol.
-
-2003-02-11 Kenichi Handa <handa@m17n.org>
-
- * Makefile.in (lisp, shortlisp): Add malayalam.el and tamil.el.
-
-2003-02-10 Kim F. Storm <storm@cua.dk>
-
- * process.c: Doc fixes.
- (syms_of_process): Add `:' prefix to QCfilter_multibyte.
-
-2003-02-10 Kenichi Handa <handa@m17n.org>
-
- * fns.c (Fstring_to_multibyte): Fix typo in the docstring.
-
- * process.c (QCfilter_multibyte): New variable.
- (setup_process_coding_systems): New function.
- (Fset_process_buffer, Fset_process_filter):
- Call setup_process_coding_systems.
- (Fstart_process): Initialize the member `filter_multibyte' of
- struct Lisp_Process.
- (create_process): Call setup_process_coding_systems.
- (Fmake_network_process): New keyward `:filter-multibyte'.
- Initialize the member `filter_multibyte' of struct Lisp_Process.
- Call setup_process_coding_systems.
- (server_accept_connection): Call setup_process_coding_systems.
- (read_process_output): If the process has a filter, decide the
- multibyteness of a string to given to the filter by
- `filter_multibyte' member of the process. If the process doesn't
- have a filter and the result of conversion is unibyte, use
- Fstring_to_multibyte (not Fstring_make_multibyte) to get the
- multibyte form.
- (Fset_process_coding_system): Call setup_process_coding_systems.
- (Fset_process_filter_multibyte): New function.
- (Fprocess_filter_multibyte_p): New function.
- (syms_of_process): Intern and staticpro QCfilter_multibyte.
- Defsubr Sset_process_filter_multibyte and
- Sprocess_filter_multibyte_p.
-
- * process.h (struct Lisp_Process): New member filter_multibyte.
-
- * lisp.h (setup_process_coding_systems): Add prototype.
-
- * buffer.c (Fset_buffer_multibyte): If the current buffer has a
- process, update coding systems for the process.
-
-2003-02-09 Kenichi Handa <handa@m17n.org>
-
- * fns.c (string_to_multibyte): New function.
- (Fstring_to_multibyte): New function.
- (syms_of_fns): Defsubr it.
-
-2003-02-08 Andreas Schwab <schwab@suse.de>
-
- * Makefile.in (EXEEXT): Define to @EXEEXT@ and use this variable
- instead of the substitution.
-
-2003-02-08 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_make_frame_visible): Call gtk_window_deiconify.
-
- * xmenu.c (menu_position_func): Adjust menu popup position so that
- the menu is fully visible.
-
-2003-02-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (x_text_icon, x_raise_frame, x_lower_frame)
- (x_make_frame_invisible, x_wm_set_icon_position):
- Use FRAME_OUTER_WINDOW instead of ifdef X_TOOLKIT/else/endif.
-
- * xfns.c (x_set_name, x_set_title): Ditto.
-
-2003-02-04 Richard M. Stallman <rms@gnu.org>
-
- * keyboard.c (echo_now): Update before_command_echo_length.
- (Freset_this_command_lengths): Reset this_command_key_count etc.
- immediately rather than arranging to do it later.
- (before_command_key_count_1, before_command_echo_length_1)
- (before_command_restore_flag): Vars deleted.
- (add_command_key): Don't handle before_command_restore_flag.
- (read_char, record_menu_key): Don't update before_command_key_count or
- before_command_echo_length.
- (read_char): Don't handle before_command_restore_flag.
-
- * keyboard.c (command_loop_1): Don't call adjust_point_for_property
- in direct-output clauses if it wouldn't be called in the ordinary case.
-
-2003-02-04 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (syms_of_keyboard) <this-original-command>: Doc fix.
-
-2003-02-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (remove_from_container): Copying list is not needed.
- (xg_update_menubar, xg_update_menu_item, xg_update_submenu)
- (xg_modify_menubar_widgets, update_frame_tool_bar): Call g_list_free
- on list returned from gtk_container_get_children to avoid memory leak.
-
-2003-02-01 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (w32_create_pixmap_from_bitmap_data): Use alloca for
- local malloc.
- [HAVE_XPM]: Avoid clashes with XColor, XImage and Pixel
- definitions in xpm.h.
- (init_xpm_functions): New function.
- (xpm_load): Sync with xfns.c. Adapt for Windows version of libXpm.
- (init_external_image_libraries): Try to load libXpm.dll.
-
- * fileio.c (Fcopy_file) [WINDOWSNT]: Reverse logic for setting
- timestamp.
-
-2003-01-31 Dave Love <fx@gnu.org>
-
- * syntax.c (Fskip_chars_forward)
- (open-paren-in-column-0-is-defun-start): Doc fix.
-
-2003-01-31 Joe Buehler <jhpb@draco.hekimian.com>
-
- * fileio.c: Support // at start of name for Cygwin (just added proper
- preprocessor tests).
-
- * keyboard.c: Port to Cygwin (just added proper preprocessor tests).
-
- * Makefile.in: Use @EXEEXT@ for Cygwin.
-
- * mem-limits.h: Added ifdef to define BSD4_2 for Cygwin.
-
- * s/cygwin.h: Added for Cygwin port.
-
-2003-01-31 Juanma Barranquero <lektu@terra.es>
-
- * w32fns.c (DrawText): Kludge to avoid a redefinition on Windows
- when including gif_lib.h.
- (init_gif_functions, init_tiff_functions): New functions.
- (gif_load, tiff_load): Sync with xfns.c version. Adjust colors for
- Windows. Disable color table lookups. Call library functions
- through pointers determined at runtime.
- (init_external_image_libraries): Try to load libungif.dll and
- libtiff.dll.
-
-2003-01-31 Kenichi Handa <handa@m17n.org>
-
- * xdisp.c (SKIP_GLYPHS): New macro.
- (set_cursor_from_row): Skip all glyphs that comes from overlay string.
-
-2003-01-30 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (free_frame_tool_bar): Remove debug printf.
-
-2003-01-30 Dave Love <fx@gnu.org>
-
- * alloc.c (Vgc_elapsed, gcs_done): New variables.
- (Fgarbage_collect): Use them.
- (init_alloc, syms_of_alloc): Set them up.
-
-2003-01-30 Juanma Barranquero <lektu@terra.es>
-
- * w32fns.c (init_external_image_libraries): Add missing operator.
-
-2003-01-29 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (init_external_image_libraries): Allow jpeg-62.dll as
- an alternative name for jpeg.dll.
-
-2003-01-29 Kenichi Handa <handa@m17n.org>
-
- * xdisp.c (set_cursor_from_row): Pay attention to string display
- properties.
-
-2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
-
- * macterm.c (keycode_to_xkeysym_table): Add <tab>, <backspace>,
- <escape>.
- (keycode_to_xkeysym_table): Reformat and add more comments.
- (XTread_socket): Drop special case for backspace.
-
-2003-01-28 Andrew Choi <akochoi@shaw.ca>
-
- * macfns.c (x_to_mac_color): Correct the order for parsing the RGB
- values in old-style RGB specs.
-
-2003-01-27 Juanma Barranquero <lektu@terra.es>
-
- * w32fns.c (init_external_image_libraries): Try alternate names for the
- jpeg dll.
-
-2003-01-27 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (create_dialog, xg_separator_p)
- (xg_item_label_same_p, xg_update_menu_item): Check for NULL string
- before calling strcmp or strlen.
-
-2003-01-26 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (update_frame_tool_bar): Call prepare_image_for_display
- and handle image load failure.
-
-2003-01-26 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (init_jpeg_functions, jpeg_resync_to_restart_wrapper):
- New functions.
- (jpeg_load): Sync with xfns.c version. Adjust colors for Windows.
- Disable color table lookups. Call jpeg library functions
- through pointers determined at runtime.
- (init_external_image_libraries): Try to load jpeg.dll.
-
-2003-01-25 Richard M. Stallman <rms@gnu.org>
-
- * lisp.h: Declare format2 instead of format1.
-
- * fileio.c (barf_or_query_if_file_exists):
- Call format2 instead of format1.
-
- * editfns.c (format2): New function, replaces format1
- but takes exactly two Lisp Objects as format args.
-
- * buffer.c (Fkill_buffer): Call format2 instead of format1.
-
-2003-01-25 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.h: Change to return value of x_dispatch_event to int.
-
- * xterm.c (x_filter_event): New function.
- (event_handler_gdk, XTread_socket): Call x_filter_event.
- (x_dispatch_event): Change to return value of finish.
- (event_handler_gdk): Use return value from x_dispatch_event.
-
- * xfns.c (x_window): Call create_frame_xic for GTK version to
- initialize input methods.
-
- * gtkutil.h: Add (void) prototypes.
-
- * gtkutil.c (create_menus): Remove code that puts the help menu to
- the right.
-
-2003-01-25 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (XPutPixel): Handle monochrome images; used for masks.
- [HAVE_PNG]: Sync with xfns.c version.
- (png_load): Adjust colors for Windows. Use Windows
- bitmaps. Disable color table lookups.
- (DEF_IMGLIB_FN, LOAD_IMGLIB_FN): New macros.
- (init_png_functions): New function.
- (png_read_from_memory, png_load): Call png library functions
- through pointers determined at runtime.
- (QCloader, QCbounding_box, QCpt_width, QCpt_height): Declare.
- (init_external_image_libraries): New function.
- (init_xfns): Call it.
-
-2003-01-24 Andreas Schwab <schwab@suse.de>
-
- * minibuf.c (Fminibuffer_message): Verify type of parameter.
-
-2003-01-24 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_initialize): Initialize id_to_widget here instead
- of static initializer.
-
-2003-01-24 Dave Love <fx@gnu.org>
-
- * s/gnu-linux.h (GC_SETJMP_WORKS, GC_MARK_STACK): Define for more
- architectures.
-
- * alloc.c (mark_stack) [!GC_LISP_OBJECT_ALIGNMENT && __GNUC__]:
- Use __alignof__.
-
-2003-01-24 Kenichi Handa <handa@m17n.org>
-
- * keyboard.c (adjust_point_for_property): New second arg MODIFIED.
- It it is nonzero, don't pretend that an invisible area doesn't exist.
- (command_loop_1): Call adjust_point_for_property with proper
- second arg.
-
-2003-01-22 Jason Rumney <jasonr@gnu.org>
-
- Sync changes with xterm.c and xfns.c.
-
- * w32term.c (x_draw_glyph_string_foreground)
- (x_draw_composite_glyph_string_foreground): Implement overstriking.
-
- * w32term.c (x_write_glyphs): Clear phys_cursor_on_p if current
- phys_cursor's hpos is overwritten. This is still not completely
- correct, as it doesn't really make sense to use hpos at all to
- get the cursor glyph (as that is relative to the width of the
- characters on the line, which may have changed during the update).
-
- * w32term.c (notice_overwritten_cursor): Handle the special case
- of the cursor being in the first blank non-text line at the
- end of a window.
-
- * w32term.c (x_draw_hollow_cursor, x_draw_bar_cursor)
- (x_draw_phys_cursor_glyph): Set phys_cursor_width here.
- Compute from the x position returned by x_draw_glyphs.
-
- (x_display_and_set_cursor): Don't set phys_cursor_width here,
- except for NO_CURSOR and system caret, to make phys_cursor_width
- contain what its name suggests.
- (notice_overwritten_cursor): Consider the cursor image erased if
- the output area intersects the cursor image in y-direction.
-
- * w32term.c (note_mode_line_or_margin_highlight): Rename from
- note_mode_line_highlight and extend.
-
- * w32term.c (last_window): New variable.
- (w32_read_socket) <WM_MOUSEMOVE>: Generate SELECT_WINDOW_EVENTs.
- (note_mouse_movement): Remove reimplemented code in #if 0.
-
- * w32fns.c (x_set_cursor_type): Set cursor_type_changed,
- not update_mode_lines, and always set it to 1.
-
-2003-01-21 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (IDC_HAND): Define it if system headers don't.
-
-2003-01-21 KOBAYASHI Yasuhiro <kobayays@otsukakj.co.jp>
-
- * w32term.h (struct w32_output): New member hand_cursor.
- (WM_EMACS_SETCURSOR): New message definition.
-
- * w32term.c (note_mode_line_highlight): Delete #if 0 to enable
- function w32_define_cursor.
- (note_mouse_highlight): Initialize, setup cursor accoding to mouse
- position, change member name output_data.x to output_data.w32 and
- add function w32_define_cursor.
- (show_mouse_face): Delete #if 0 to enable function w32_define_cursor
- and change member name output_data.x to output_data.w32.
- (w32_initialize_display_info):
- Setup dpyinfo->vertical_scroll_bar_cursor.
-
- * w32fns.c (Vx_hand_shape): New variable.
- (w32_wnd_proc): Add message entries for WM_SETCURSOR and
- WM_EMACS_SETCURSOR.
- (x-create-frame): Setup Cursor types.
-
-2003-01-21 David Ponce <david@dponce.com>
-
- * w32term.c (w32_encode_char): For DIM=1 charset, set
- ccl->reg[2] to -1 before calling ccl_driver.
- (Sync. with xterm.c x_encode_char change by Kenichi Handa
- <handa@m17n.org> on 2002-09-30.)
- (w32_draw_relief_rect): Declare all args.
- (w32_define_cursor): New.
-
- * w32fns.c (w32_load_cursor): New function.
- (w32_init_class): Use it.
- (x_put_x_image): Declare all args.
-
-2003-01-21 Richard Dawe <rich@phekda.freeserve.co.uk>
-
- * Makefile.in (ALL_CFLAGS): Include MYCPPFLAGS, not MYCPPFLAG.
-
-2003-01-21 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c: Must include stdio.h before termhooks.h.
-
-2003-01-21 Dave Love <fx@gnu.org>
-
- * alloc.c (Fgc_status): Print zombie list.
- (mark_maybe_object) [GC_MARK_STACK==GC_USE_GCPROS_CHECK_ZOMBIES]:
- Fix assignment of zombies.
- (Fgarbage_collect) [GC_MARK_STACK==GC_USE_GCPROS_CHECK_ZOMBIES]:
- Don't take car of non-cons.
-
- * s/sol2-5.h (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
-
- * s/sunos4-0.h (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
-
-2003-01-20 David Ponce <david@dponce.com>
-
- * w32menu.c (digest_single_submenu): Declare all args.
-
- Sync with 2002-12-23 Richard M. Stallman <rms@gnu.org>
- changes in xmenu.c:
-
- (parse_single_submenu): Use individual keymap's prompt
- string as pane name, if there is one.
- (set_frame_menubar): Save menu_items_n_panes from each call to
- parse_single_submenu and use it when calling digest_single_submenu.
-
-2003-01-20 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (XTread_socket): Check for valid, visible window
- before sending a scroll-wheel event.
-
-2003-01-20 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (redisplay_window): If mini window's buffer is not
- a minibuffer, then redisplay it like other windows.
-
-2003-01-20 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * gtkutil.c (xg_create_frame_widgets): Check if there is an
- external tool bar before setting tool bar height.
-
-2003-01-19 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (handle_one_xevent): Surround popup_activated
- with #ifdef:s for non-toolkit version.
-
- * Makefile.in (XOBJ): Add gtkutil.o if USE_GTK.
- (gtkutil.o): New file.
- (TOOLKIT_DEFINES): Set to -DUSE_GTK if HAVE_GTK.
- (LIBW): Set to @GTK_LIBS@ if USE_GTK.
-
- * gtkutil.c: New file for GTK version.
-
- * gtkutil.h: New file for GTK version.
-
- * xterm.h: Add xt_or_gtk_widget.
- Include gtk files for USE_GTK.
- (struct x_output): Add toolbar_height.
- (struct x_output): Add GTK widgets and Gdk size_hints.
- (GTK_WIDGET_TO_X_WIN, FRAME_GTK_OUTER_WIDGET, FRAME_GTK_WIDGET)
- (FRAME_OUTER_WINDOW): New macros for USE_GTK.
- (FRAME_OUTER_TO_INNER_DIFF_Y): Add FRAME_TOOLBAR_HEIGHT to calculation.
-
- * xterm.c: Include gtkutil.h for USE_GTK.
- (free_frame_menubar): Declare extern void for USE_GTK.
- (note_mouse_highlight): Check popup_activated for USE_GTK.
- (xt_action_hook): Don't compile if USE_GTK.
- (x_scroll_bar_to_input_event): Use CurrentTime for USE_GTK.
- (xg_scroll_callback): New function.
- (x_create_toolkit_scroll_bar): Call xg_create_scroll_bar for USE_GTK.
- (x_set_toolkit_scroll_bar_thumb): Call xg_set_toolkit_scroll_bar_thumb
- for USE_GTK.
- (x_scroll_bar_create): Call xg_update_scrollbar_pos and
- xg_show_scroll_bar for USE_GTK.
- (x_scroll_bar_remove): Call xg_remove_scroll_bar for USE_GTK.
- (XTset_vertical_scroll_bar): Call xg_update_scrollbar_pos for USE_GTK.
- (event_handler_gdk): New function for USE_GTK.
- (handle_one_xevent): Call xg_resize_widgets for USE_GTK.
- (handle_one_xevent): Make sure widget is mapped before
- calling x_real_positions for USE_GTK.
- (XTread_socket): Add GTK event loop for USE_GTK.
- (x_set_window_size): Call xg_frame_set_char_size for USE_GTK.
- (x_make_frame_visible): Call gtk_widget_show_all for USE_GTK.
- (x_make_frame_invisible): Call gtk_widget_hide for USE_GTK.
- (x_iconify_frame): Add code for USE_GTK.
- (x_free_frame_resources): Call gtk_widget_destroy for USE_GTK.
- (x_wm_set_size_hint): Only compile if not USE_GTK. GTK version
- is in gtkutil.c.
- (x_term_init): Add initialization for GTK.
- (syms_of_xterm): Set Vx_toolkit_scroll_bars for USE_GTK.
-
- * xmenu.c: Include gtkutil.h for USE_GTK.
- (Fx_popup_menu): Use current position if x and y are nil.
- (single_menu_item, single_menu_item, Fx_popup_dialog):
- Check for USE_GTK.
- (popup_widget_loop): New function for USE_GTK.
- (x_activate_menubar): Add code for USE_GTK.
- (popup_activate_callback, popup_deactivate_callback)
- (menu_highlight_callback, menubar_selection_callback):
- Add USE_GTK versions.
- (update_frame_menubar): Call xg_update_frame_menubar for USE_GTK.
- (set_frame_menubar): Call xg_modify_menubar_widgets for USE_GTK.
- (free_frame_menubar): Only compile if not USE_GTK. GTK version
- is in gtkutil.c.
- (popup_selection_callback): New version for USE_GTK.
- (create_and_show_popup_menu): New fuction, one USE_GTK version and
- one USE_X_TOOLKIT version.
- (xmenu_show): Call create_and_show_popup_menu.
- (dialog_selection_callback): New version for USE_GTK.
- (create_and_show_dialog): New fuction, one USE_GTK version and
- one USE_X_TOOLKIT version.
- (xdialog_show): Call create_and_show_dialog.
-
- * xfns.c: Include gtkutil for USE_GTK.
- (x_window_to_frame, x_any_window_to_frame)
- (x_non_menubar_window_to_frame, x_menubar_window_to_frame)
- (x_top_window_to_frame): Add code for USE_GTK.
- (x_set_background_color): Call xg_set_background_color for GTK.
- (x_set_menu_bar_lines): Check for USE_GTK.
- (x_set_tool_bar_lines): Call update_frame_tool_bar for USE_GTK.
- (x_set_name, x_set_title): Call gtk_window_set_title for USE_GTK.
- (x_window): Call xg_create_frame_widgets for USE_GTK.
- (Fx_create_frame): Check for USE_GTK.
- (Fx_file_dialog): New implementation for USE_GTK.
-
- * xdisp.c: Add check for USE_GTK for extern void set_frame_menubar.
- (update_menu_bar): Add check for USE_GTK.
- (update_tool_bar): Add check for USE_GTK and external tool bar.
- (redisplay_tool_bar): Add check for USE_GTK and external tool bar.
- (redisplay_internal): Add check for USE_GTK and popup_activated.
- (redisplay_window): Add check for USE_GTK and FRAME_EXTERNAL_MENU_BAR.
- (redisplay_window): Add check for USE_GTK and FRAME_EXTERNAL_TOOL_BAR.
- (display_menu_bar): Add check for USE_GTK
-
- * lisp.h (Vx_resource_name): Declare extern.
-
- * keyboard.c (kbd_buffer_get_event): Check MENU_BAR_ACTIVATE_EVENT
- for USE_GTK.
- (make_lispy_event): Check MENU_BAR_EVENT for USE_GTK.
-
- * frame.h (struct frame): Add external_tool_bar. Check for USE_GTK.
- (FRAME_EXTERNAL_TOOL_BAR): New macro.
- (FRAME_EXTERNAL_MENU_BAR): Check for USE_GTK.
-
- * fileio.c (Fread_file_name): Add check for USE_GTK.
-
- * dispnew.c (adjust_frame_glyphs_for_window_redisplay):
- Add check for USE_GTK.
-
- * config.in: Added HAVE_GTK.
-
- * alloc.c (Fgarbage_collect): Call xg_mark_data for GTK.
-
-2003-01-18 Stefan Monnier <monnier@cs.yale.edu>
-
- * charset.h (Funibyte_char_to_multibyte): Export.
-
-2003-01-18 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xmenu.c (mouse_position_for_popup): New function.
- (Fx_popup_menu): Call mouse_position_for_popup for X and
- mouse_position_hook for others.
-
-2003-01-17 Kim F. Storm <storm@cua.dk>
-
- * editfns.c (Finsert): Mention `string-make-multibyte' and
- `string-as-multibyte' in doc string.
-
-2003-01-17 Kenichi Handa <handa@m17n.org>
-
- * fontset.c (syms_of_fontset): Setup Vfont_encoding_alist here.
-
- * editfns.c (Fformat): Convert an unibyte char argument that is
- formatted by "%c" to multibyte if the total result must be a
- multibyte string.
-
-2003-01-16 Kim F. Storm <storm@cua.dk>
-
- * process.c (set-process-filter): Document unibyte/multibyte-ness
- of string argument.
-
-2003-01-16 Kenichi Handa <handa@m17n.org>
-
- * charset.h (NEXT_CHAR_BOUNDARY, PREV_CHAR_BOUNDARY): New macros.
-
- * regex.c (GET_CHAR_BEFORE_2): Use PREV_CHAR_BOUNDARY.
- (re_search_2): Likewise.
-
-2003-01-15 Kenichi Handa <handa@m17n.org>
-
- * xdisp.c (message_dolog): Fix bug of the case that *Message*
- buffer is unibyte.
-
-2003-01-15 Francesco Potort\e,Al\e(B <pot@gnu.org>
-
- * fns.c (Fsubstring): Clarify doc string.
-
- * textprop.c (Ftext_properties_at, Fnext_char_property_change)
- (Fprevious_char_property_change)
- (Fnext_single_char_property_change)
- (Fprevious_single_char_property_change, Fnext_property_change)
- (Fnext_single_property_change, Fprevious_property_change)
- (Fprevious_single_property_change, Fadd_text_properties)
- (Fput_text_property, Fset_text_properties)
- (Fremove_text_properties, Fremove_list_of_text_properties)
- (Ftext_property_any, Ftext_property_not_all): Clarify doc strings.
-
-2003-01-14 Kim F. Storm <storm@cua.dk>
-
- * process.h (struct Lisp_Process): New member plist replaces old
- member private_vars. All uses changed.
-
- * process.c: Reworked 2003-01-12 change -- call a plist a plist!
- (QCplist): Rename from QCvars. Change all uses.
- (Fprocess_plist): Replaces Fprocess_variable. Simplified.
- (Fset_process_plist): Replaces Fset_process_variable. Simplify.
- (syms_of_process): Intern, staticpro, defsubr these.
- (Fmake_network_process): Describe :plist arg. Remove :vars arg.
-
-2003-01-14 Francesco Potort\e,Al\e(B <pot@gnu.org>
-
- * m/delta.h: Remove (obsolete).
-
-2003-01-13 Francesco Potort\e,Al\e(B <pot@gnu.org>
-
- * fileio.c (Fdelete_directory, Fdelete_file): Document the
- behaviour in front of symlinks.
- (Fdelete_file): Raise an error on directories.
-
-2003-01-13 Dave Love <fx@gnu.org>
-
- * fns.c (Freverse): Use QUIT.
-
-2003-01-13 Richard M. Stallman <rms@gnu.org>
-
- * minibuf.c (minibuffer_completion_contents):
- Error if point is inside prompt.
-
- * keyboard.c (command_loop_1): Don't redisplay directly
- if there's a post-command-hook.
-
- * fileio.c (syms_of_fileio) <directory-sep-char>: Doc fix.
- (Fdo_auto_save): Add gcpros around Ffile_name_directory.
-
-2003-01-12 Kim F. Storm <storm@cua.dk>
-
- * process.h (struct Lisp_Process): New member private_vars.
-
- * process.c (QCvars): New variable.
- (syms_of_process): Intern and staticpro it.
- (Fset_process_contact): Removed function.
- (Fprocess_variable, Fset_process_variable): New functions.
- (syms_of_process): Defsubr them.
- (Fstart_process): Initialize private_vars plist to nil.
- (Fmake_network_process): New arg :vars to setup the private
- variables for new network process.
- (server_accept_connection): Copy server's private variables to
- client process.
-
- * alloc.c (pure_alloc): Fixed 2003-01-10 changed (caused spurious
- crashes). Code rewritten and simplified. Now directly aligns the
- pointer and recalculates pure_bytes_used, rather than aligning the
- size and adjusting the pointer.
-
-2003-01-11 Kim F. Storm <storm@cua.dk>
-
- * process.c (Fset_process_contact): New function.
- (syms_of_process): defsubr it.
- (make-network-process): Update doc.
-
-2003-01-10 Andreas Schwab <schwab@suse.de>
-
- * alloc.c (pure_alloc): Correct alignment for Lisp_Floats.
- Reported by Berthold Gunreben <b.gunreben@web.de>.
-
-2003-01-10 Dave Love <fx@gnu.org>
-
- * composite.c (syms_of_composite): Make composition_hash_table weak.
-
-2003-01-09 Kim F. Storm <storm@cua.dk>
-
- * process.c (Fmake_network_process): Convert new port number
- to host byte order for `:service t' case. From Mario Lang.
-
-2003-01-08 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xfns.c (Fx_file_dialog): Call XtAppNextEvent and x_dispatch_event
- instead of XtAppProcessEvent.
-
- * xterm.c (handle_one_xevent): New function.
- (x_dispatch_event): New function.
- (XTread_socket): Call handle_one_xevent.
-
- * xterm.h (FRAME_OUTER_TO_INNER_DIFF_X/Y): New.
-
- * xmenu.c (Fx_popup_menu): If popping up at mouse position,
- call XQueryPointer to get coordinates.
- (popup_get_selection): Do not set popup_activated_flag to zero,
- let popup_deactivate_callback do that. Needed for Motif.
- Call x_dispatch_event instead of XtDispatchEvent.
- (xmenu_show): Calculate root coordinate from frame top/left position.
-
-2003-01-08 Kim F. Storm <storm@cua.dk>
-
- * process.c (server_accept_connection): Fix recording of new
- connection's local address in :local property of contact info.
- (Fmake_network_process): Record local network address for new
- client processes in :local property of contact info.
- (format-network-address): Add arg OMIT-PORT. Change callers.
-
-2003-01-07 Dave Love <fx@gnu.org>
-
- * Makefile.in (fns.o): Depend on coding.h.
-
-2003-01-06 Dave Love <fx@gnu.org>
-
- * fns.c: Include coding.h. Use POINTER_TYPE*, not void*.
- (Vlocale_coding_system): Declare.
- (Qcodeset, Qdays, Qmonths, Qpaper): New.
- (Flanginfo): New.
- (syms_of_fns): Initialize new stuff.
-
-2003-01-07 Markus Rost <rost@math.ohio-state.edu>
-
- * minibuf.c (Fread_variable): Doc fix.
-
- * eval.c (Fuser_variable_p): Doc change. For custom variables,
- use the same test as for custom-variable-p.
-
-2003-01-05 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (try_scrolling): New arg LAST_LINE_MISFIT.
- Count LAST_LINE_MISFIT in scroll margin for end of window.
- Move label too_near_end before setting SCROLL_MARGIN_POS.
- Set LAST_LINE_MISFIT before jumping there.
-
- * xdisp.c (try_scrolling): Calculate amount_to_scroll better in
- scroll_conservatively case. If scrolling that much doesn't change
- STARTP, move it down one line.
-
- * xdisp.c (redisplay_window): Pass last_line_misfit arg to
- try_scrolling. Make it 1 after make_cursor_line_fully_visible fails.
-
- * xdisp.c (setup_echo_area_for_printing): Kill Emacs if no
- selected frame.
-
- * keymap.c (apropos_predicate, apropos_accumulate): Make them static.
- (syms_of_keymap): Staticpro them.
- (Fapropos_internal): Initialize them and clear them out.
- Don't GCPRO them.
-
- * buffer.c (syms_of_buffer) <scroll-up|down-aggressively>: Doc fixes.
-
- * lisp.h: New misc type Lisp_Save_Value.
- (enum Lisp_Misc_Type): Add Lisp_Misc_Save_Value.
- (XSAVE_VALUE): New macro.
- (struct Lisp_Save_Value): New data type.
- (union Lisp_Misc): Add u_save_value alternative.
- (make_save_value): Declare.
-
- * alloc.c (make_save_value): New function.
-
- * xterm.c (x_catch_errors): Save dpy using make_save_value.
- (x_catch_errors_unwind): Call XSync.
-
-2003-01-01 Richard M. Stallman <rms@gnu.org>
-
- * window.c (window_scroll_pixel_based): Partially undo last change.
-
- * keyboard.c (command_loop_1): Call adjust_point_for_property
- in direct action cases for Qforward_char and Qbackward_char.
- Set already_adjusted so it won't be done twice.
-
-2002-12-30 Richard Dawe <rich@phekda.freeserve.co.uk>
-
- * src/config.in (!HAVE_SIZE_T): Fix order of arguments in
- type definition of size_t.
-
-2003-01-02 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (syms_of_macterm): Provide the feature "mac-carbon" to
- distinguish Carbon GUI builds from X11 builds on darwin.
-
-2002-12-30 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (syms_of_macterm): Set mac-wheel-button-is-mouse-2
- to default to t.
-
-2002-12-29 Francesco Potort\e,Al\e(B <pot@gnu.org>
-
- * data.c (Fstring_to_number, Fminus): Better English in doc strings.
-
-2002-12-28 Steven Tamm <steventamm@mac.com>
-
- * Makefile.in (macosx-bundle): Fix Mac OS X/Carbon port to
- allow building in a different directory than source. Uses some
- GNU Make extensions, but there is no other make on Mac OS X.
-
-2002-12-26 Francesco Potort\e,Al\e(B <pot@gnu.org>
-
- * data.c (Fmakunbound, Ffmakunbound, Fmake_variable_buffer_local)
- (Fsetq_default, Fmake_local_variable, Fkill_local_variable)
- (Fmake_variable_frame_local, Faset, Fnumber_to_string, Fminus)
- (Fstring_to_number): Mention the returned value in the doc strings.
-
-2002-12-23 Richard M. Stallman <rms@gnu.org>
-
- * buffer.c (syms_of_buffer) <scroll-up-aggressively>
- <scroll-down-aggressively>: Doc fix.
-
- * xmenu.c (parse_single_submenu): Use individual keymap's prompt
- string as pane name, if there is one.
- (set_frame_menubar): Save menu_items_n_panes from each call to
- parse_single_submenu and use it when calling digest_single_submenu.
-
- * window.c (window_scroll_pixel_based): Fix check for reaching BEGV.
- Don't try to make last line fully visible if it is past end of window.
-
-2002-12-22 Steven Tamm <steventamm@mac.com>
-
- * macmenu.c (MIN_POPUP_SUBMENU_ID): Add.
- (mac_menu_show): Add support for hierarchical popup menus.
- (add_menu_item): Remove indentation support.
- (fill_submenu, fill_menu): Create hierarchical menus
- instead of using indentation.
-
-2002-12-22 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (try_cursor_movement): Don't call try_window here.
- (redisplay_window): Never redisplay minibuffer when inactive.
-
- * window.c (select_window_1): Undo 9/21 change.
-
-2002-12-22 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (XTread_socket): Call KeyTranslate for control and
- meta to deal correctly shifted non-alpha characters, like C-S-5
- being treated like C-%. Do not look for shift key to deal
- with masking off control-key with mac-reverse-ctrl-meta.
-
-2002-12-21 Richard M. Stallman <rms@gnu.org>
-
- * xmenu.c (popup_get_selection): Now static. New arg DO_TIMERS.
- If it is non-nil, run timers. Use an unwind-protect to requeue
- the events that were read ahead.
- (popup_get_selection_unwind): New subroutine.
- (popup_get_selection_queue): File-scope variable now holds that queue.
- (xmenu_show): Pass 0 for DO_TIMERS to popup_get_selection.
- (xdialog_show): Pass 1 for DO_TIMERS to popup_get_selection.
- Use an unwind-protect to pop down the dialog box.
- (xdialog_show_unwind): New subroutine implements that.
-
- * xdisp.c (row_containing_pos): Change exit test using last_y.
- (try_window_id): Abort if row_containing_pos returns null.
-
- * lread.c (load_error_handler): New function.
- (Fload): Handle errors in Fsubstitute_in_file_name.
- Don't expect Fsignal to return.
-
- * eval.c: Errors and throws work right with interrupt blocking.
- (struct catchtag): New elt interrupt_input_blocked.
- (unwind_to_catch): Restore interrupt_input_blocked from saved value.
- (internal_catch, Fcondition_case, internal_condition_case)
- (internal_condition_case_1, internal_condition_case_2): Save it.
- (Fsignal): Don't do TOTALLY_UNBLOCK_INPUT.
-
- * editfns.c (Fformat): Add parens.
-
- * dired.c (file_name_completion): Fix that change.
- Delete special quit-handling code; just use QUIT.
-
-2002-12-21 Tak Ota <Takaaki.Ota@am.sony.com>
-
- * dired.c (file_name_completion): Close directory on error
- just as in directory_files_internal.
-
-2002-12-19 David Kastrup <David.Kastrup@t-online.de>
-
- * window.c (Fset_window_configuration): Set old_point to correct
- value when new_current_buffer == current_buffer.
-
-2002-12-17 Ben Key <bkey1@tampabay.rr.com>
-
- Revisited my earlier fix for the following entry in etc/PROBLEMS:
- "Emacs built on Windows 9x/ME crashes at startup on Windows XP,
- or Emacs builtpart of on XP crashes at startup on Windows 9x/ME."
-
- These changes were in part based upon suggestions made by Peter
- 'Luna' Runestig [peter@runestig.com].
-
- * w32.c (g_b_init_is_windows_9x, g_b_init_open_process_token)
- (g_b_init_get_token_information, g_b_init_lookup_account_sid)
- (g_b_init_get_sid_identifier_authority ): Add several static
- global variables.
-
- * w32.c (globals_of_w32): New function. Used to initialize those
- global variables that must always be initialized on startup even
- when the global variable initialized is non zero. Its primary
- purpose at this time is to set the global variables
- g_b_init_is_windows_9x, g_b_init_open_process_token,
- g_b_init_get_token_information, g_b_init_lookup_account_sid, and
- g_b_init_get_sid_identifier_authority to 0 on startup.
- Called from main.
-
- * w32.c (is_windows_9x): Perform initialization only if
- g_b_init_is_windows_9x is equal to 0. On initialization set
- g_b_init_is_windows_9x equal to 1.
-
- * w32.c (open_process_token): Perform initialization only if
- g_b_init_open_process_token is equal to 0. On initialization set
- g_b_init_open_process_token equal to 1.
-
- * w32.c (get_token_information): Perform initialization only if
- g_b_init_get_token_information is equal to 0. On initialization
- set g_b_init_get_token_information equal to 1.
-
- * w32.c (lookup_account_sid): Perform initialization only if
- g_b_init_lookup_account_sid is equal to 0. On initialization
- set g_b_init_lookup_account_sid equal to 1.
-
- * w32.c (get_sid_identifier_authority): Perform initialization
- only if g_b_init_get_sid_identifier_authority is equal to 0.
- On initialization set g_b_init_get_sid_identifier_authority equal to 1.
-
- * w32fns.c (globals_of_w32fns): New function. Used to initialize
- those global variables that must always be initialized on startup
- even when the global variable initialized is non zero.
- Its primary purpose at this time is to initialize the global variable
- track_mouse_event_fn.
-
- * w32fns.c (w32_wnd_proc): Remove initialization of
- track_mouse_event_fn from the handler for the WM_SETFOCUS message.
-
- * w32fns.c (syms_of_w32fns): Call globals_of_w32fns.
-
- * w32menu.c (globals_of_w32menu): New function. Used to
- initialize those global variables that must always be initialized
- on startup even when the global variable initialized is non zero.
- Its primary purpose at this time is to initialize the global
- variables get_menu_item_info and set_menu_item_info.
-
- * w32menu.c (initialize_frame_menubar): Remove initialization of
- get_menu_item_info and set_menu_item_info.
-
- * w32menu.c (syms_of_w32menu): Call globals_of_w32menu.
-
- * w32.h (globals_of_w32, globals_of_w32fns, globals_of_w32menu):
- Declare them.
-
- * emacs.c (main): Call globals_of_w32 prior to calling
- init_environment if WINDOWSNT is defined. Call globals_of_w32fns
- and globals_of_w32menu if initialized is non zero and HAVE_NTGUI
- is defined.
-
- * w32term.c (x_update_window_begin): Fix Windows API error
- detected by BoundsChecker. Test to determine if
- w32_system_caret_hwnd is NULL prior to attempting to use
- SendMessage to send the WM_EMACS_HIDE_CARET message to it.
-
- * w32term.c (x_update_window_end): Fix Windows API error
- detected by BoundsChecker. Test to determine if
- w32_system_caret_hwnd is NULL prior to attempting to use
- SendMessage to send the WM_EMACS_SHOW_CARET message to it.
-
-2002-12-17 Kenichi Handa <handa@m17n.org>
-
- * coding.c (coding_system_require_warning): New variable.
- (syms_of_coding): DEFVAR it.
-
- * coding.h (coding_system_require_warning): Extern it.
-
- * fileio.c (choose_write_coding_system): Even if
- Vcoding_system_for_write is non-nil, if
- coding_system_require_warning is nonzero, call
- Vselect_safe_coding_system_function.
-
-2002-12-17 Markus Rost <rost@math.ohio-state.edu>
-
- * Makefile.in (lisp, shortlisp): Add cus-face and timer.
- (lisp): Add font-core.
-
-2002-12-13 Stefan Monnier <monnier@cs.yale.edu>
-
- * textprop.c (text_read_only): New arg `propval'.
- (get_char_property_and_overlay): Remove unused var `next_overlay'.
- (verify_interval_modification): Use text_read_only's new arg.
-
-2002-12-13 Kenichi Handa <handa@m17n.org>
-
- * coding.c (Funencodable_char_position): Set pend correctly.
-
-2002-12-12 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (last_mousemove_x, last_mousemove_y): New variables.
- (w32_read_socket) <WM_MOUSEMOVE>: Use them to detect non-movement.
- Be more careful about when help_events are generated.
-
-2002-12-12 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (mac_check_for_quit_char): Correctly set the
- modifiers of the event to 0.
- * mac.c (sys_select): Duplicate rfds before calling select to
- ensure that rfds survive the while loop.
-
-2002-12-11 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (try_window_id): Don't call set_cursor_from_row if
- row_containing_pos returned NULL.
-
-2002-12-10 Steven Tamm <steventamm@mac.com>
-
- * mac.c (sys_read): Fix sys_read to not call select if IO is
- non-blocking.
- (sys_select): Fix sys_select to not use a timeout larger than
- the one given.
-
-2002-12-10 Juanma Barranquero <lektu@terra.es>
-
- * editfns.c (Fformat): Use alloca, not _alloca.
-
-2002-12-09 Richard M. Stallman <rms@gnu.org>
-
- * buffer.c (Fget_buffer_create): Call Qucs_set_table_for_input
- as the last thing.
-
-2002-12-09 Dave Love <fx@gnu.org>
-
- * s/sol2-8.h: Removed. (Not necessary.)
-
-2002-12-09 Matthew Swift <swift@alum.mit.edu>
-
- * editfns.c (Fformat): Handle precision in string conversion
- specifiers like libc functions do (ie, print at most that many
- characters).
-
-2002-12-08 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (row_containing_pos): Check more carefully
- whether charpos is really in the row before returning it.
-
-2002-12-07 Steven Tamm <steventamm@mac.com>
-
- * sysdep.c (emacs_read) [HAVE_CARBON]: Have emacs_read use sys_read.
-
- * eval.c (Feval) [HAVE_CARBON]: Calls mac_check_for_quit_char at
- each stack frame. This may change as it could be time consuming.
-
- * macterm.c (mac_check_for_quit_char, quit_char_comp)
- (init_quit_char_handler, mac_determine_quit_char_modifiers)
- (mac_initialize): Add code to check for pressing of quit_char
- in the OS event queue.
-
- * mac.c (sys_select): Call mac_check_for_quit_char every second
- while blocking on select.
-
- * mac.c (sys_read): Use sys_select to test for input first
- before calling read, to allow C-g to break.
-
-2002-12-07 Richard M. Stallman <rms@gnu.org>
-
- * minibuf.c (Fcompleting_read): Doc fix.
-
- * lread.c (syms_of_lread) <load-history>: Doc fix.
-
- * fileio.c (Fcopy_file): Set immediate_quit around emacs_open call.
-
- * eval.c (Fdefun, Fdefmacro): Record in load-history redefining an
- autoload.
-
- * data.c (Fdefalias): Record in load-history redefining an autoload.
-
- * alloca.c: Undo ifdef change accidentally made on 12-04.
-
-2002-12-06 Francesco Potort\e,Al\e(B <pot@gnu.org>
-
- * xfns.c (png_load): Avoid double gamma correction for PNG images.
-
-2002-12-04 Richard M. Stallman <rms@gnu.org>
-
- * sysdep.c (fcntl.h): Test only HAVE_FCNTL_H.
-
- * fileio.c (fcntl.h): Test only HAVE_FCNTL_H.
-
- * alloca.c: Don't use #error.
-
-2002-12-03 Dave Love <fx@gnu.org>
-
- * buffer.c (Qucs_set_table_for_input): New.
- (Fget_buffer_create): Use it.
- (Qset_buffer_major_mode_hook): Deleted.
- (Fset_buffer_major_mode): Revert previous change.
- (init_buffer_once): Intern ucs-set-table-for-input.
- (syms_of_buffer): Delete Qset_buffer_major_mode_hook.
- Add &Qucs_set_table_for_input.
-
-2002-12-03 Andreas Schwab <schwab@suse.de>
-
- * callint.c (Fcall_interactively): Use next_event only if less
- than key_count.
-
-2002-12-02 Andrew Choi <akochoi@shaw.ca>
-
- * macmenu.c (add_menu_item, fill_menubar): Truncate menu item
- names to 255 characters.
-
- * macterm.c (XTread_socket): If all frames have been collapsed,
- expand the first one before handling drag-and-drop events.
-
- * s/darwin.h (GETPGRP_NO_ARG): Delete. Replaced by GETPGRP_VOID,
- which is detected by autoconf.
-
-2002-12-01 Steven Tamm <steventamm@mac.com>
-
- * unexmacosx.c (copy_twolevelhints, dump_it): Now corrects the
- offset in two hints table to allow prebinding to be redone and
- allow the executable to be stripped.
-
-2002-11-29 Dave Love <fx@gnu.org>
-
- * fns.c (Frequire): Don't call LOADHIST_ATTACH if feature was
- already provided.
-
-2002-11-29 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (start_display): Check more intelligently for
- whether the line is continued.
- (move_it_vertically_backward): Clear it->continuation_lines_width.
-
-2002-11-28 Dave Love <fx@gnu.org>
-
- * s/amdahl.h, s/unipl5-0.h, m/sgi3000.h, s/3700.h, s/alliant-2800.h:
- * s/alliant.h, s/altos.h: Deleted. (Unused/empty.)
-
-2002-11-27 Steven Tamm <steventamm@mac.com>
-
- * fns.c (Frequire): Change nesting allowance from 2 to 3 to cause
- more descriptive error output from lread.c:Fload upon most require
- cycles during boostrapping.
-
-2002-11-27 Jason Rumney <jasonr@gnu.org>
-
- * fileio.c (Finsert_file_contents): Give a more appropriate error
- for files bigger than 2Gb when off_t is 32 bit.
-
- * dired.c (Ffile_attributes): Don't return negative file sizes for
- files bigger than 2Gb when off_t is 32 bit.
-
-2002-11-27 Dave Love <fx@gnu.org>
-
- * s/irix6-0.h (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
-
- * systty.h: Don't conditionally define GETPGRP_NO_ARG.
- Test GETPGRP_VOID instead.
- [BSD_TERMIOS]: Remove definitions (never used).
-
- * s/osf5-0.h (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist):
- Don't define.
- (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
-
- * m/mips.h (WORDS_BIG_ENDIAN): Define conditionally.
-
-2002-11-25 Jason Rumney <jasonr@gnu.org>
-
- * w32.c (sys_write): Avoid non-blocking mode, which is not fully
- supported.
-
-2002-11-25 Dave Love <fx@gnu.org>
-
- * unexalpha.c (update_dynamic_symbols): Cast arg of fatal_unexec.
-
- * Makefile.in (TEMACS_LDFLAGS): Update last change.
-
-2002-11-25 Andreas Schwab <schwab@suse.de>
-
- * m/ia64.h: Restore `#ifndef NOT_C_CODE' deleted by last change.
-
-2002-11-24 Steven Tamm <steventamm@mac.com>
-
- * unexmacosx.c (unexec_realloc): Use malloc_default_zone to
- determine the size of pointers alloced in unexed space instead
- of using possibly invalid emacs_zone pointers. This fixes the
- binary incompatibility problems caused by updates to libSystem.B.
-
-2002-11-24 Richard M. Stallman <rms@gnu.org>
-
- * search.c (Fstring_match): Doc fix.
-
- * callint.c (Fcall_interactively): If a command fails because
- `*' detects a read-only buffer, but RECORD_FLAG is set,
- record it anyway if the args don't actually do tty input.
-
-2002-11-22 Dave Love <fx@gnu.org>
-
- * sysdep.c (stuff_char) [PROTOTYPES]: Provide ISO C arglist.
-
- * keyboard.c (interrupt_signal): Provide forward declaration.
- (kbd_buffer_store_event): Don't declare interrupt_signal.
-
- * xdisp.c (store_frame_title_char) [PROTOTYPES]: Provide ISO C arglist.
-
-2002-11-21 Richard M. Stallman <rms@gnu.org>
-
- * eval.c (interactive_p): Skip any number of bytecode
- and special form frames, in any order.
-
-2002-11-20 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (convert_mono_to_color_image): New function.
- (xbm_load, xbm_load_image): Use it when foreground or background
- is explicitly set.
-
-2002-11-19 Dave Love <fx@gnu.org>
-
- * s/usg5-4.h, sco4.h (bcopy, bzero, bcmp): Don't define.
-
-2002-11-18 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (x_build_heuristic_mask): Filter palette info from color.
- (XPutPixel): Swap blue and red.
- (xpm_format, pbm_format, png_format, jpeg_format, tiff_format)
- (gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
- (xpm_image_p, pbm_image_p, png_image_p, jpeg_image_p)
- (tiff_image_p, gif_image_p, gs_image_p): Don't check ascent.
-
-2002-11-18 Dave Love <fx@gnu.org>
-
- * m/orion105.h (HAVE_ALLOCA): Don't define.
-
- * m/m68k.h, m/arm.h, mtekxd88.h, m/tower32v3.h: Don't define alloca.
-
- * m/intel386.h: Don't include alloca.h or define alloca.
-
- * m/ia64.h: Don't include alloca.h, stdlib.h. Don't declare
- malloc, realloc, calloc.
-
- * m/hp800.h, m/sr2k.h, m/ns16000.h, m/wicat.h (bcopy, bzero)
- (bcmp): Don't define.
-
- * m/delta.h (bcopy, bzero, bcmp, alloca): Don't define.
-
- * m/amdahl.h: Don't define LIB_STANDARD.
-
- * m/alpha.h: Move OSF1 stuff from here to s/osf1.h.
-
- * s/osf1.h: Move OSF1 stuff from m/alpha.h to here.
-
- * s/irix4-0.h, s/irix5-0.h, m/powerpcle.h, m/sparc.h:
- Don't include alloca.h.
-
- * s/aix3-2.h (HAVE_FSYNC): Don't define.
-
- * regex.c (_GNU_SOURCE): Don't define.
-
- * process.c (_GNU_SOURCE): Don't define.
-
- * fileio.c (_GNU_SOURCE, HAVE_FSYNC): Don't define.
-
-2002-11-18 Markus Rost <rost@math.ohio-state.edu>
-
- * s/sol2-8.h: Include sol2-6.h.
-
-2002-11-18 Miles Bader <miles@gnu.org>
-
- * dispextern.h (struct face): Add `overstrike' field.
- * xterm.c (x_draw_glyph_string_foreground)
- (x_draw_composite_glyph_string_foreground): Implement overstriking.
- * xfaces.c (load_face_font): Set `face->overstrike' based on
- result from choose_face_font.
- (best_matching_font, choose_face_font): Add `needs_overstrike'
- argument, and use it to return whether overstriking is desirable
- for this face/font combo.
- (set_font_frame_param: Pass new argument to choose_face_font.
-
-2002-11-17 Ben Key <BKey1@tampabay.rr.com>
-
- This change is my fix for the following entry in etc/PROBLEMS:
- "Emacs built on Windows 9x/ME crashes at startup on Windows XP,
- or Emacs builtpart of on XP crashes at startup on Windows 9x/ME."
-
- * w32.c: Added wrapper functions around the win32 API functions
- OpenProcessToken, GetTokenInformation, LookupAccountSid, and
- GetSidIdentifierAuthority. These wrapper functions serve two
- purposes:
- 1. They ensure that the wrapped function can never be called
- when Emacs is running on an operating system on which they are
- not supported (Microsoft Windows 95 / 98 / ME).
- 2. They call the wrapped functions via function pointers rather
- than calling them directly. This avoids taking advantage of the
- undocumented fact that although these functions are not supported
- in the 9x branch of Microsoft Windows, the functions do exist in
- the version of advapi32.dll that is found in the 9x branch of
- Microsoft Windows.
-
- * w32.c (init_user_info): Replace the calls to the win32 API
- functions OpenProcessToken, GetTokenInformation, LookupAccountSid,
- and GetSidIdentifierAuthority with calls to the newly added
- wrapper functions.
-
- * w32.h: Added extern declarations for the following functions:
- syms_of_w32term, syms_of_w32fns, syms_of_w32select,
- syms_of_w32menu, and void syms_of_fontset.
-
- * w32fns.c (w32_wnd_proc): Add code to reinitialize the
- function pointer track_mouse_event_fn in the handler for the
- WM_SETFOCUS message.
-
- * w32menu.c (initialize_frame_menubar): Add code to
- reinitialize the function pointers set_menu_item_info and
- get_menu_item_info.
-
-2002-11-17 Ben Key <BKey1@tampabay.rr.com>
-
- * sound.c: Added a partial implementation of play-sound-internal
- for Microsoft Windows. Added various #ifdef / #else / #endif
- code blocks to separate the code that will compile under
- Microsoft Windows from the code that is specific to GNU/Linux.
- Moved several blocks of code around to make this separation of code
- into Windows compatible and GNU/Linux compatible code blocks easier.
-
- * makefile.w32-in: Include sound.c and link with WinMM.lib.
-
- * s/ms-w32.h: Defined the symbol HAVE_SOUND so that the newly
- added support for play-sound-internal under Windows would be
- included in the build of Emacs.
-
-2002-11-16 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (w32_load_system_font): Don't disable Cleartype.
-
- * w32term.c (w32_get_glyph_string_clip_rect): Clip cursor tightly.
-
-2002-11-15 Stefan Monnier <monnier@cs.yale.edu>
-
- * keyboard.c (command_loop_1): Fix int/Lisp_Object mixup.
- (adjust_point_for_property): Move out of display and invisible even if
- we were already inside before (in case a property was added while
- we weren't looking). Be more careful when handling invisible props.
- Skip invisible text as if it really wasn't there at all.
-
-2002-11-15 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (x_draw_image_foreground)
- (w32_draw_image_foreground_1): Use standard copy and invert
- operations to draw images.
-
- * w32fns.c (x_create_x_image_and_pixmap): Fill in palette for
- depth of 1.
- (xbm_read_bitmap_data): Invert bits as xbm is read in.
- (XPutPixel): Don't invert bits here.
-
-2002-11-15 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (x_draw_image_foreground, x_draw_image_glyph_string)
- (w32_draw_image_foreground_1): Handle image masks.
- (x_draw_image_glyph_string): Don't BitBlt transparently.
-
- * w32fns.c (w32_defined_color): Adjust RGB values for Emacs.
- (x_from_xcolors): Adjust RGB values for W32.
- (image_background, image_background_transparent)
- (postprocess_image, x_to_xcolors, x_disable_image)
- (x_build_heuristic_mask): Adapt for W32 and enable.
- (x_create_x_image_and_pixmap): Mark images with palettes as such.
- (xbm_load): Remove unused variable.
-
-2002-11-14 Richard M. Stallman <rms@gnu.org>
-
- * buffer.c (syms_of_buffer): Doc fix.
-
-2002-11-14 Dave Love <fx@gnu.org>
-
- * alloc.c (SETJMP_WILL_NOT_WORK): Add note.
-
- * xterm.c (x_draw_relief_rect, x_draw_box_rect, x_update_cursor):
- * xmenu.c (unuse_menu_items, digest_single_submenu):
- * xfns.c (x_put_x_image):
- * xdisp.c (message2_nolog, set_message):
- * undo.c (record_point):
- * terminfo.c (tparam):
- * syntax.c (scan_sexps_forward):
- * scroll.c (calculate_scrolling, calculate_direct_scrolling):
- * composite.c (update_compositions):
- * cm.c (calccost, cmgoto):
- * charset.c (c_string_width): Declare all args (per C99).
-
- * frame.h (get_specified_cursor_type, get_window_cursor_type): Declare.
-
- * lisp.h (get_specified_cursor_type, get_window_cursor_type):
- Don't declare.
-
- * emacs.c (main) [!VMS]: Avoid third arg.
-
- * fns.c (Fcopy_sequence): Doc fix.
- (Fmap_char_table): Cast `call2'.
-
-2002-11-14 Francesco Potort\e,Al\e(B <pot@gnu.org>
-
- * s/sol2-8.h: New file.
-
-2002-11-14 Kim F. Storm <storm@cua.dk>
-
- * buffer.c (syms_of_buffer) <mode-line-format>: Document symbol
- dependency on `risky-local-variable' and the :propertize form.
-
-2002-11-12 Stefan Monnier <monnier@cs.yale.edu>
-
- * fns.c (Fmap_char_table): Don't use map_char_table's function arg.
-
- * syntax.c (scan_sexps_forward): Undo last patch.
- Use a more obvious fix: check eob before updating the syntax table.
-
-2002-11-09 Stefan Monnier <monnier@cs.yale.edu>
-
- * syntax.c (scan_sexps_forward): Update syntax table before reading
- a char rather than after so we don't update the table past eob.
-
-2002-11-09 Dave Love <fx@gnu.org>
-
- * buffer.c (Fset_buffer_major_mode): Fix last change.
-
- * regex.c (regexec): Fix pmatch declaration.
-
- * cmds.c (Fself_insert_command): Apply Vtranslation_table_for_input.
-
- * keyboard.c (command_loop_1): Apply Vtranslation_table_for_input
- to self-inserting characters.
- (syms_of_keyboard) <keyboard-translate-table>: Doc fix.
-
- * coding.c (Vtranslation_table_for_input): New.
- (syms_of_coding): DEFVAR it.
-
-2002-11-08 Juanma Barranquero <lektu@terra.es>
-
- * w32term.c (w32_draw_fringe_bitmap): Remove unused local variable
- window.
-
-2002-11-08 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * process.c (Fformat_network_address): Remove unused locals p,
- cp, and i.
-
-2002-11-06 Dave Love <fx@gnu.org>
-
- * buffer.c (Qset_buffer_major_mode_hook): New.
- (Fset_buffer_major_mode): Use it.
-
-2002-11-06 Richard M. Stallman <rms@gnu.org>
-
- * xterm.c (x_term_init): Use turn_on_atimers, not start_polling
- and stop_polling.
-
- * process.c (wait_reading_process_input):
- Test POLLING_PROBLEM_IN_SELECT, not hpux.
- Avoid initialization for auto Lisp_Object var.
-
- * s/hpux11.h (POLLING_PROBLEM_IN_SELECT): Add #undef.
-
- * s/hpux10.h (POLLING_PROBLEM_IN_SELECT): Defined.
-
-2002-11-05 Richard M. Stallman <rms@gnu.org>
-
- * s/sol2-5.h (BROKEN_SIGIO): Turn off the #undef.
-
- * callint.c (Fcall_interactively): New local filter_specs.
- (Fcall_interactively): Check for progn as well as let.
- Add a gcpro.
- (Qprogn): New variable.
- (syms_of_callint): Staticpro and init Qprogn.
-
-2002-11-04 John Paul Wallington <jpw@shootybangbang.com>
-
- * lread.c (Feval_buffer): Doc fix.
-
-2002-11-04 Dave Love <fx@gnu.org>
-
- * keyboard.c (read_char): Always translate iff
- Vkeyboard_translate_table is a char table and c is valid.
-
- * xterm.c (XTread_socket): Check Lisp types for Vx_keysym_table
- and fix C types.
-
-2002-11-03 Stefan Monnier <monnier@cs.yale.edu>
-
- * xdisp.c (single_display_prop_intangible_p): Strings are intangible.
-
- * editfns.c (get_pos_property): Don't hardcode Qfield.
-
- * keyboard.c (adjust_point_for_property): Handle `display' prop on
- overlays. Also handle `invisible' prop.
-
-2002-11-02 Stefan Monnier <monnier@cs.yale.edu>
-
- * coding.c (decode_coding_emacs_mule, decode_coding_iso2022)
- (decode_coding_sjis_big5, decode_eol): Allow lone \r in DOS EOL.
-
-2002-11-01 Andreas Schwab <schwab@suse.de>
-
- * editfns.c (Fmessage): Revert last change to properly handle %%.
-
-2002-11-01 Stefan Monnier <monnier@cs.yale.edu>
-
- * xmenu.c (unuse_menu_items): New fun.
- (menu_items_inuse): New var.
- (syms_of_xmenu): Initialize it.
- (init_menu_items): Use it to detect re-entrance.
- (Fx_popup_menu, Fx_popup_dialog, set_frame_menubar): Reset when done.
- (Fx_popup_menu): Remove spurious XSETFRAME.
-
- * editfns.c (find_field): Make an exception for nil fields.
-
-2002-11-01 Dave Love <fx@gnu.org>
-
- * m/gec63.h: Deleted.
-
-2002-10-31 Dave Love <fx@gnu.org>
-
- * xterm.c (XTread_socket): Fix last change.
- (xaw_scroll_callback): Cast call_data to long to avoid warning.
-
-2002-10-31 Stefan Monnier <monnier@cs.yale.edu>
-
- * process.c (Fformat_network_address): Fix int/Lisp_Object mixup.
-
-2002-10-30 Stefan Monnier <monnier@cs.yale.edu>
-
- * editfns.c (overlays_around, get_pos_property): New funs.
- (find_field): Use them.
- Also be careful not to modify POS before its last use.
- (Fmessage): Don't Fformat if there's nothing to format.
-
-2002-10-30 Dave Love <fx@gnu.org>
-
- * process.c [HAVE_SYS_WAIT]: Include sys/wait.h.
- [HAVE_PTY_H]; Include pty.h.
-
- * lread.c (Fload) <!load_dangerous_libraries>: Close fd.
-
- * xterm.c (Qeql): Declare.
- (Vx_keysym_table): New.
- (syms_of_xterm): Initialize it.
- (XTread_socket): Use it. Deal with ASCII keysyms.
- (XSetIMValues) [HAVE_X11R6]: Prototype.
-
- * keyboard.c (lispy_accent_codes, lispy_accent_keys): Extended.
- (lispy_kana_keys): Comment out.
- (make_lispy_event) [XK_kana_A]: Comment out.
- (modify_event_symbol) <sizeof (long) == sizeof (EMACS_INT)>:
- Fix sprintf call.
-
- * s/osf5-0.h (C_SWITCH_SYSTEM): Revert last change (fixed by
- regexp.h change).
- (TERMINFO, LIBS_TERMCAP): Define.
-
- * s/usg5-4.h (bcopy, bzero): Define conditional on HAVE_BCOPY.
- (bcmp): Define conditional on HAVE_BCMP.
- (NO_SIOCTL_H): Don't define.
- (TIOCSIGSEND): Don't make conditional on IRIX6.
-
- * s/sol2-5.h: Don't include strings.h.
- (bcopy, bzero, bcmp) [HAVE_BCOPY]: Don't undef.
-
- * s/irix6-0.h (IRIX6): Don't define.
- (bcopy, bcmp, bzero): Don't undef.
-
- * s/irix6-5.h: Don't include strings.h.
- (IRIX6): Don't define.
- (bcopy, bcmp, bzero): Don't undef.
-
- * syntax.c (Fforward_comment): Doc fix.
-
-2002-10-29 Kim F. Storm <storm@cua.dk>
-
- * process.c (Fsignal_process): Allow PROCESS to be specified by
- name in addition to pid (as integer or string).
-
-2002-10-28 Harald Maier <Harald.Maier.BW@t-online.de> (tiny change)
-
- * w32heap.c: Don't redefine _heap_init and _heap_term on MSVC 7 build
- environments.
-
-2002-10-27 Kim F. Storm <storm@cua.dk>
-
- * xterm.c (note_mouse_highlight): Don't use mouse-face if hidden.
-
- * w32term.c (note_mouse_highlight): Don't use mouse-face if hidden.
-
- * msdos.c (IT_note_mouse_highlight): Don't use mouse-face if hidden.
-
- * macterm.c (note_mouse_highlight): Don't use mouse-face if hidden.
-
-2002-10-26 Richard M. Stallman <rms@gnu.org>
-
- * editfns.c (Fformat): Detect invalid format letters for floats.
-
-2002-10-25 Kenichi Handa <handa@m17n.org>
-
- * xfns.c (x_set_name): Encode by Qcompound_text unconditionally.
- (x_set_title): Likewise.
-
-2002-10-25 Juanma Barranquero <lektu@terra.es>
-
- * macgui.h:
- * w32gui.h: Remove definition of XColor.
-
- * dispextern.h [!HAVE_X_WINDOWS]: Define XColor.
-
-2002-10-24 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (get_window_cursor_type): New arg ACTIVE_CURSOR.
- Callers changed (supply dummy arg).
-
- * lisp.h (get_window_cursor_type): Update prototype.
-
- * w32term.c (x_display_and_set_cursor): Get active_cursor from
- get_window_cursor_type to track system caret.
-
-2002-10-24 Kim F. Storm <storm@cua.dk>
-
- * process.c (Fformat_network_address): New function.
- (syms_of_process): Defsubr it.
- (list_processes_1): Use it to format :local/:remote address if
- service/host is not set; before Emacs would crash in that case.
- (Fmake_network_process): Don't use Ffind_operation_coding_system
- to setup coding system if host or service is not set.
-
-2002-10-23 Juanma Barranquero <lektu@terra.es>
-
- Patch suggested by Jay Finger <jay_finger@hotmail.com>.
-
- * w32term.c (w32_term_init): Pass XColor to w32_define_color, not
- COLORREF.
-
- * macgui.h:
- * w32gui.h: Add definition of XColor.
-
- * macfns.c:
- * w32fns.c:
- * xfaces.c: Remove definition of XColor.
-
-2002-10-22 Stefan Monnier <monnier@cs.yale.edu>
-
- * xfns.c (x_set_name, x_set_title): `icon.value' has unsigned char.
-
- * window.c (window_loop): For GET_LRU_WINDOW and GET_LARGEST_WINDOW>,
- Only ignore truly dedicated windows. For UNSHOW_BUFFER, delete the
- window if it is dedicated.
- (Fshrink_window): Add preserve_before as was done for enlarge_window.
- (Vspecial_display_function): Update docstring.
-
- * buffer.c (assoc_ignore_text_properties, Fother_buffer, Fkill_buffer)
- (call_overlay_mod_hooks): Use CONSP and XCAR/XCDR.
- (Fget_buffer_create, advance_to_char_boundary): Use BEG and BEG_BYTE;
-
-2002-10-21 Stefan Monnier <monnier@cs.yale.edu>
-
- * casefiddle.c (casify_region): Don't treat a prefix char as part
- of a word when at the beginning.
-
-2002-10-17 Juanma Barranquero <lektu@terra.es>
-
- * lread.c (syms_of_lread): Fix typos.
-
-2002-10-17 Dave Love <fx@gnu.org>
-
- * Makefile.in (TEMACS_LDFLAGS): Add trailing comment.
-
-2002-10-16 Richard M. Stallman <rms@gnu.org>
-
- * fileio.c (Fcopy_file): Fix backward test of KEEP_TIME.
-
-2002-10-14 Juanma Barranquero <lektu@terra.es>
-
- * w16select.c (syms_of_win16select): Fix docstring for
- `selection-coding-system'.
-
- * w32select.c (syms_of_w32select): Likewise.
-
-2002-10-14 Stefan Monnier <monnier@cs.yale.edu>
-
- * syntax.c (scan_lists): Don't get fooled by a symbol ending with
- a backslash-quoted char.
- (scan_lists, scan_sexps_forward): Pacify the compiler.
-
-2002-10-13 Richard M. Stallman <rms@gnu.org>
-
- * window.c (window_scroll): Set immediate_quit.
-
- * print.c (print): When backquote form is the car of a list,
- output in old style. Use old_backquote_output to output all
- comma forms inside it in old style too.
-
- * buffer.h (struct buffer): Move `undo_list' down below `name'.
-
-2002-10-11 Markus Rost <rost@math.ohio-state.edu>
-
- * emacs.c (syms_of_emacs) <kill-emacs-hook>: Doc fix (not run in
- batch mode).
-
- * lread.c (Fload): Doc fix (load-suffixes).
-
-2002-10-10 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (syms_of_macterm, mac_get_mouse_btn):
- Reverse functionality of mac-wheel-button-is-mouse-2 to be correct.
- Also switch the default to Qnil from Qt.
-
-2002-10-08 Kenichi Handa <handa@m17n.org>
-
- * coding.c (code_convert_region): When we need more GAP for
- conversion, pay attention to the case that coding->produced is not
- greater than coding->consumed.
-
-2002-10-07 Richard M. Stallman <rms@gnu.org>
-
- * unexelf.c (unexec): Redo 9/16 change, but only if IRIX6_5.
-
-2002-10-06 Andrew Choi <akochoi@shaw.ca>
-
- * macmenu.c (mac_menu_show): Add j to count menu items; match
- menu_item_selection to it to find selected item.
-
-2002-10-06 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (XTread_socket): Fix from 2002-10-03 didn't cover all
- cases. The correct fix is to pass ReparentNotify to Xt.
- The shell widget interprets ConfigureNotify differently depending
- on if it has been reparented or not.
-
-2002-10-05 Markus Rost <rost@math.ohio-state.edu>
-
- * editfns.c (Fformat_time_string): Doc fix.
-
-2002-10-05 John Paul Wallington <jpw@shootybangbang.com>
-
- * fns.c (Flength): Doc fix.
-
-2002-10-04 Stefan Monnier <monnier@cs.yale.edu>
-
- * keyboard.c (keyremap): New struct.
- (read_key_sequence): Use it: globally replace keytran_foo with
- keytran.foo and fkey_foo with fkey.foo. Rename temp vars
- keytran_next and fkey_next to just `next'.
-
-2002-10-04 Steven Tamm <steventamm@mac.com>
-
- * macterm.c (keycode_to_xkeysym_table): Change return to be
- treated like an X keysym.
-
-2002-10-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.c (XTread_socket): For ConfigureNotify, with x and y == 0,
- and USE_MOTIF, call XTranslateCoordinates to get the real x and y.
- This is to also handle x/y changes that occur because of a resize.
-
-2002-10-02 John Paul Wallington <jpw@shootybangbang.com>
-
- * frame.c (Vdelete_frame_functions): New variable.
- (syms_of_frame): Initialize and defvar it.
- (Fdelete_frame): Use it instead of delete-frame-hook. Don't run
- it when frame's `tooltip' parameter is non-nil.
-
- * xfns.c (x_create_tip_frame): Set `tooltip' frame parameter to t.
-
- * w32fns.c (x_create_tip_frame): Likewise.
-
- * macfns.c (x_create_tip_frame): Likewise.
-
-2002-09-30 Kenichi Handa <handa@m17n.org>
-
- * xterm.c (x_encode_char): For DIM=1 charset, set ccl->reg[2] to
- -1 before calling ccl_driver.
-
- * coding.c (decode_coding_emacs_mule): Check coding->cmp_data.
- Only when it is non-nil, handle composition sequence.
- (setup_coding_system) <0>: Don't force composition handling.
-
- * Makefile.in (lisp, shortlisp): Add utf-16.elc.
-
-2002-09-29 Richard M. Stallman <rms@gnu.org>
-
- * search.c (Freplace_match): Adjust match data for the substitution
- just made in the buffer.
-
- * xdisp.c (STOP_POLLING, RESUME_POLLING): New macros.
- (redisplay_internal): Use them. Do RESUME_POLLING at end of function.
-
-2002-09-27 Richard M. Stallman <rms@gnu.org>
-
- * keyboard.c (STOP_POLLING, RESUME_POLLING): New macros.
- (read_char): Use them. Do all exits thru the end of the function.
-
-2002-09-27 Kenichi Handa <handa@etl.go.jp>
-
- * xfaces.c (try_font_list): Pay attention to the case that FAMILY
- is nil.
-
-2002-09-26 Richard M. Stallman <rms@gnu.org>
-
- * regex.h (__restrict_arr): Don't define if already defined.
-
- * coding.c (run_pre_post_conversion_on_str):
- Save and restore Vdeactivate_mark.
-
-2002-09-26 John Paul Wallington <jpw@shootybangbang.com>
-
- * minibuf.c (Fminibufferp): Add an optional `buffer' argument.
-
-2002-09-26 Kenichi Handa <handa@etl.go.jp>
-
- * xfaces.c (try_font_list): New arg PREFER_FACE_FAMILY. If it is
- nonzero, try face's family at first. Otherwise try FAMILY at first.
- (choose_face_font): If C is a single byte char or latin-1, call
- try_font_list with PREFER_FACE_FAMILY 1.
-
-2002-09-21 Richard M. Stallman <rms@gnu.org>
-
- * window.c (select_window_1): Don't select frame.
- Set frame's selected window only when frame itself is selected.
- (Fselect_window): Doc fix.
-
-2002-09-18 Kim F. Storm <storm@cua.dk>
-
- * process.c (make-network-process): Doc fix (there is no
- network-server-log-function hook).
-
-2002-09-18 Richard M. Stallman <rms@gnu.org>
-
- * print.c (print): Clear out the unused parts of Vprint_number_table.
- (syms_of_print): Doc fix for `print-number-table'.
-
- * unexelf.c (unexec): Undo previous change.
-
-2002-09-17 Andreas Schwab <schwab@suse.de>
-
- * m/alpha.h [LINUX]: Don't define DATA_START.
-
-2002-09-16 Dave Love <fx@gnu.org>
-
- * unexelf.c (unexec): Deal with .got, reinstating change from
- 25-08-1999.
-
-2002-09-13 Richard M. Stallman <rms@gnu.org>
-
- * s/sol2-6.h (UNEXEC): Comment out definition.
-
- * unexsol.c (unexec): Don't downcase first letter of error msg.
-
- * xfaces.c (Fcolor_supported_p): Just one arg is required.
-
-2002-09-12 Markus Rost <rost@math.ohio-state.edu>
-
- * unexsol.c: Include buffer.h, charset.h, coding.h.
-
-2002-09-11 Richard M. Stallman <rms@gnu.org>
-
- * unexsol.c: Don't use report_file_error; do it by hand
- using dlerror.
-
- * process.c (wait_reading_process_input, both versions):
- Before calling turn_on_atimers, call stop_polling.
-
- * emacs.c (syms_of_emacs) <command-line-args>: Doc fix.
-
- * xdisp.c (try_scrolling): If after make_cursor_line_fully_visible
- we go to too_near_end, call clear_glyph_matrix.
- (redisplay_window): After make_cursor_line_fully_visible,
- call clear_glyph_matrix and bypass `goto done'.
-
- * xfns.c (x_report_frame_params): If FRAME_SCROLL_BAR_PIXEL_WIDTH is 0
- and we have non-toolkit scroll bars, return nil for scroll-bar-width.
-
-2002-09-10 Richard M. Stallman <rms@gnu.org>
-
- * fileio.c (Fdo_auto_save): Catch error making directory.
- Only call push_message if we need to.
- At the same time, make an unwind-protect to pop it.
- Rename local message_p to old_message_p.
- (do_auto_save_make_dir, do_auto_save_eh): New functions.
- (do_auto_save_unwind): Don't call pop_message.
-
- * lisp.h (pop_message_unwind): Renamed from push_message_unwind.
-
- * keyboard.c (Fexecute_extended_command): Use pop_message_unwind.
-
- * alloc.c (Fgarbage_collect): Use pop_message_unwind.
-
- * xdisp.c (pop_message_unwind): Renamed from push_message_unwind.
-
-2002-09-10 Stefan Monnier <monnier@cs.yale.edu>
-
- * regex.c (DISCARD_FAILURE_REG_OR_COUNT): Delete.
- (CHECK_INFINITE_LOOP): Don't pop anything: just set `cycle' to 1.
- (re_match_2_internal): Be more careful with infinite loops.
-
-2002-09-10 Kim F. Storm <storm@cua.dk>
-
- * macros.c (end_kbd_macro): New function.
- (Fend_kbd_macro): Use it.
-
- * macros.h (end_kbd_macro): Declare extern.
-
- * keyboard.c (Fdiscard_input): If defining keyboard macro,
- end and save it instead of discarding it.
-
-2002-09-09 Markus Rost <rost@math.ohio-state.edu>
-
- * s/sol2-6.h: Fix typo. Add comment.
-
-2002-09-09 Richard M. Stallman <rms@gnu.org>
-
- * regex.c (regnum_t): Use signed int, not unsigned int.
-
- * s/sol2-6.h: New file.
-
- * s/sol2-5.h (UNEXEC): Definition deleted.
-
-2002-09-08 Kim F. Storm <storm@cua.dk>
-
- * macros.c (executing_macro_index): Change type to EMACS_INT.
- (syms_of_macros): DEFVAR_INT it (needed by kmacro).
-
- * macros.h (executing_macro_index): Change type to EMACS_INT.
-
-2002-09-06 Richard M. Stallman <rms@gnu.org>
-
- * casetab.c (set_case_table): Make canon table point to eqv table.
-
-2002-09-06 Juanma Barranquero <lektu@terra.es>
-
- * coding.c (syms_of_coding): Fix spacing.
-
- * composite.c (Fcompose_region_internal)
- (Fcompose_string_internal): Likewise.
-
- * data.c (Flsh): Likewise.
-
- * fontset.c (Fset_fontset_font): Likewise.
-
- * macfns.c (Fx_server_max_request_size): Likewise.
-
- * w16select.c (syms_of_win16select): Likewise.
-
- * w32select.c (syms_of_w32select): Likewise.
-
- * xselect.c (syms_of_xselect): Likewise.
-
-2002-09-05 Richard M. Stallman <rms@gnu.org>
-
- * regex.c (set_image_of_range_1): In no-TRANSLATE case,
- call EXTEND_RANGE_TABLE and return a proper value.
- (set_image_of_range): Don't call set_image_of_range_1
- if no TRANSLATE or if range includes all of Latin-1.
- Only call it for the Latin-1 part of the range.
- For other cases, make two separate ranges,
- one for the original specified characters and one for
- their case-conversions.
-
-2002-09-04 Richard M. Stallman <rms@gnu.org>
-
- * s/sol2-5.h (UNEXEC): Use unexsol.o.
-
- * window.c (displayed_window_lines): Correct for one-off bug
- in HEIGHT on non-window displays.
-
- * regex.c (set_image_of_range_1): New function.
- (set_image_of_range): Use set_image_of_range_1 for Latin-1.
- Return a value to indicate running out of memory.
- (SET_RANGE_TABLE_WORK_AREA): Check value from set_image_of_range.
- (extend_range_table_work_area): New subroutine.
- (EXTEND_RANGE_TABLE): Replaces EXTEND_RANGE_TABLE_WORK_AREA.
- Different calling conventions, and used from set_image_of_range{,_1}.
- (IMMEDIATE_QUIT_CHECK): Definitions moved.
-
-2002-09-04 Juanma Barranquero <lektu@terra.es>
-
- * makefile.w32-in: All dependencies updated.
-
-2002-09-01 Richard M. Stallman <rms@gnu.org>
-
- * unexsol.c: New file.
-
- * xfns.c (Qbox): Declare external, don't define.
-
- * xdisp.c (redisplay_window) <force-start case>:
- If point is on semi-visible last line, reposition
- it at previous line.
-
- * alloc.c (display_malloc_warning): Use display-warning.
- (malloc_warning_1): Function deleted.
-
- * alloc.c [ALLOC_DEBUG]: #undef INLINE.
-
- * lread.c (read1): Handle #! by skipping the line.
-
-2002-08-31 Richard M. Stallman <rms@gnu.org>
-
- * Makefile.in (TEMACS_LDFLAGS): Renamed from ALL_LDFLAGS.
- Don't include LDFLAGS.
- (temacs): Pass LDFLAGS separately, and not via YMF_PASS_LDFLAGS.
-
-2002-08-31 Eli Zaretskii <eliz@is.elta.co.il>
-
- * xdisp.c (get_window_cursor_type): Don't use x_highlight_frame
- member of x_display_info unless we compile for some window system.
-
-2002-08-31 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (Valternate_cursor_type, Qalternate_cursor_type): Removed.
- (get_window_cursor_type): Don't use them.
- (syms_of_xdisp): Remove intern, staticpro, and defvar for them.
-
-2002-08-30 Kenichi Handa <handa@etl.go.jp>
-
- * xdisp.c (get_next_display_element): Fix previous change.
-
-2002-08-30 Andrew Choi <akochoi@shaw.ca>
-
- * macterm.c (expose_overlaps): New function (merge code from xterm.c).
- (expose_window): Use it to fix the display of overlapping
- rows (merge code from xterm.c).
-
- * macfns.c (Qbox): Add extern declaration.
-
-2002-08-30 Juanma Barranquero <lektu@terra.es>
-
- * w32fns.c (Qbox): Make extern.
- (syms_of_w32fns): Remove initialization of Qbox.
-
-2002-08-30 Rune Kleveland <runekl@viewpoint.no> (tiny change)
-
- * xfns.c (Fx_open_connection): Fix error message.
-
-2002-08-30 Kim F. Storm <storm@cua.dk>
-
- The following changes consolidates the handling of the cursor
- type in xdisp.c, moving duplicate code and functionality from
- xfns.c, xterm.c, w32fns.c, w32term.c, macfns.c, and macterm.c.
-
- * frame.h (enum text_cursor_kinds): Consolidated here.
- Added DEFAULT_CURSOR value.
- (struct frame) <desired_cursor, cursor_width>
- <blink_off_cursor, blink_off_cursor_width>: New fields.
- Consolidated from output_x, output_w32 and output_mac structs.
- (FRAME_DESIRED_CURSOR, FRAME_CURSOR_WIDTH, FRAME_BLINK_OFF_CURSOR)
- (FRAME_BLINK_OFF_CURSOR_WIDTH): Macros consolidated here.
-
- * xdisp.c (Qbar, Qhbar, Qbox, Qhollow, Vblink_cursor_alist):
- Variables consolidated here.
- (Valternate_cursor_type, Qalternate_cursor_type): New variables.
- (Vcursor_in_non_selected_windows): Renamed from
- cursor_in_non_selected_windows and changed to Lisp_Object.
- (syms_of_xdisp): Define and staticpro new and moved variables.
- (get_specified_cursor_type): Renamed from x_specified_cursor_type;
- consolidated here. Recognize Qhollow setting.
- (set_frame_cursor_types): New function to set frame cursor types
- based on the frame parameters.
- (get_window_cursor_type): New function to calculate new cursor
- type and width for the specified window. Based on duplicated
- code consolidated here.
- Enhancements: cursor-in-non-selected-windows may be a cursor type,
- check buffer-local alternate-cursor-type and blink-cursor-alist
- before using built-in blink off methods.
-
- * dispextern.h (cursor_in_non_selected_windows): Extern removed.
-
- * lisp.h (Qcursor_in_non_selected_windows): Extern removed.
- (get_specified_cursor_type, get_window_cursor_type)
- (set_frame_cursor_types): Added prototypes.
-
- * macfns.c (x_specified_cursor_type): Removed.
- (x_set_cursor_type): Use set_frame_cursor_types.
- (Qbar, Qbox): Removed.
- (syms_of_macfns): Don't intern or staticpro them.
-
- * macterm.c (x_specified_cursor_type): Remove prototype.
- (x_draw_bar_cursor): Use FRAME_CURSOR_WIDTH.
- (x_display_and_set_cursor): Use get_window_cursor_type.
- Remove unused local variables cursor_non_selected, active_cursor.
- Redraw cursor if hbar cursor width changes.
- (make_mac_frame): Set FRAME_DESIRED_CURSOR.
-
- * macterm.h (enum text_cursor_kinds): Removed.
- (struct output_mac) <current_cursor, desired_cursor, cursor_width>
- <blink_off_cursor, blink_off_cursor_width>: Members removed.
- (FRAME_DESIRED_CURSOR): Macro removed.
-
- * w32fns.c (Vblink_cursor_alist): Removed.
- (Qbar, Qhbar, Qbox, Qhollow): Removed.
- (syms_of_w32fns): Don't intern, staticpro, or define them.
- (x_specified_cursor_type): Removed.
- (x_set_cursor_type): Use set_frame_cursor_types.
-
- * w32term.c (x_specified_cursor_type): Remove prototype.
- (x_draw_bar_cursor): Use FRAME_CURSOR_WIDTH.
- (x_display_and_set_cursor): Use get_window_cursor_type.
- Remove unused local variables cursor_off_state.
- Redraw cursor if hbar cursor width changes.
- Changed all occurrences of w32_highlight_frame to x_highlight_frame.
-
- * w32term.h (enum text_cursor_kinds): Removed.
- (struct output_w32) <current_cursor, desired_cursor, cursor_width>
- <blink_off_cursor, blink_off_cursor_width>: Members removed.
- (FRAME_DESIRED_CURSOR, FRAME_CURSOR_WIDTH, FRAME_BLINK_OFF_CURSOR)
- (FRAME_BLINK_OFF_CURSOR_WIDTH): Macros removed.
- (struct w32_display_info) <x_highlight_frame>: Renamed member from
- w32_highlight_frame.
-
- * xfns.c (Vblink_cursor_alist): Removed.
- (Qbar, Qhbar, Qbox, Qhollow): Removed.
- (syms_of_xfns): Don't intern, staticpro, or define them.
- (x_specified_cursor_type): Removed.
- (x_set_cursor_type): Use set_frame_cursor_types.
-
- * xterm.c (x_specified_cursor_type): Remove prototype.
- (x_draw_bar_cursor): Use FRAME_CURSOR_WIDTH.
- (x_display_and_set_cursor): Use get_window_cursor_type.
- Remove unused local variables cursor_off_state.
- Redraw cursor if hbar cursor width changes.
-
- * xterm.h (enum text_cursor_kinds): Removed.
- (struct output_x) <current_cursor, desired_cursor, cursor_width>
- <blink_off_cursor, blink_off_cursor_width>: Members removed.
- (FRAME_DESIRED_CURSOR, FRAME_CURSOR_WIDTH, FRAME_BLINK_OFF_CURSOR)
- (FRAME_BLINK_OFF_CURSOR_WIDTH): Macros removed.
- (x_specified_cursor_type): Remove prototype.
-
-2002-08-28 Richard M. Stallman <rms@gnu.org>
-
- * w32fns.c (x_set_cursor_type): Set FRAME_BLINK_OFF_CURSOR and
- FRAME_BLINK_OFF_CURSOR_WIDTH using defaults and Vblink_cursor_alist.
- (Vblink_cursor_alist): New variable.
- (syms_of_w32fns): Initialize and defvar it.
- (x_specified_cursor_type): Recognize Qbox for filled box.
- Exceptions are hollow boxes.
- (Qbox, Qhollow): New variables.
- (syms_of_w32fns): Initialize and staticpro them.
-
- * w32term.h (FRAME_BLINK_OFF_CURSOR, FRAME_BLINK_OFF_CURSOR_WIDTH):
- New macros.
- (struct w32_output): New fields blink_off_cursor,
- blink_off_cursor_width.
- (FRAME_CURSOR_WIDTH): New macro.
-
- * w32term.c (x_display_and_set_cursor): Use FRAME_BLINK_OFF_CURSOR
- and FRAME_BLINK_OFF_CURSOR_WIDTH for blinking cursor off.
-
- * w32term.c (x_display_and_set_cursor): Check FRAME_CURSOR_WIDTH
- for bar cursor.
-
- * w32term.c (expose_overlaps): New function.
- (expose_window): Use it to fix the display of overlapping rows.
-
-2002-08-28 Simon Josefsson <jas@extundo.com>
-
- * xfns.c (Fx_open_connection): Improve help when X connection
- fails, xhost is insecure and xauth is better.
-
-2002-08-28 Juanma Barranquero <lektu@terra.es>
-
- * makefile.w32-in: Add missing dependencies on w32term.h and
- composite.h.
-
- * emacs.c (USAGE1): Add missing newline.
-
-2002-08-27 Andrew Choi <akochoi@shaw.ca>
-
- * s/darwin.h [HAVE_LIBNCURSES]: Define HAVE_TERMINFO.
-
-2002-08-27 Richard M. Stallman <rms@gnu.org>
-
- * xfns.c (x_set_cursor_type): Set FRAME_BLINK_OFF_CURSOR and
- FRAME_BLINK_OFF_CURSOR_WIDTH using defaults and Vblink_cursor_alist.
- (Vblink_cursor_alist): New variable.
- (syms_of_xfns): Initialize and defvar it.
- (x_specified_cursor_type): Recognize Qbox for filled box.
- Exceptions are hollow boxes.
- (Qbox, Qhollow): New variables.
- (syms_of_xfns): Initialize and staticpro them.
-
- * xterm.h (FRAME_BLINK_OFF_CURSOR, FRAME_BLINK_OFF_CURSOR_WIDTH):
- New macros.
- (struct x_output): New fields blink_off_cursor, blink_off_cursor_width.
-
- * xterm.c (x_display_and_set_cursor): Use FRAME_BLINK_OFF_CURSOR
- and FRAME_BLINK_OFF_CURSOR_WIDTH for blinking cursor off.
-
- * emacs.c (main): Handle --script.
- (USAGE1): Mention --script.
- (standard_args): Define sort order for --script.
-
-2002-08-27 Gerd Moellmann <gerd.moellmann@t-online.de>
-
- * xdisp.c (redisplay_updating_p): Variable removed.
- (inhibit_free_realized_faces, Qinhibit_free_realized_faces):
- New variables.
- (init_iterator): Don't free realized faces if
- inhibit_free_realized_faces is set.
- (redisplay_internal): Bind Qinhibit_free_realized_faces to nil.
- (syms_of_xdisp): DEFVAR_BOOL inhibit-free-realized-faces,
- initialize Qinhibit_free_realized_faces.
-
- * dispextern.h (PRODUCE_GLYPHS): Set inhibit_free_realized_faces
- when iterator is adding glyphs to a glyph matrix.
-
-2002-08-27 Kenichi Handa <handa@etl.go.jp>
-
- * xdisp.c (get_next_display_element): In unibyte case, don't use
- octal form for such eight-bit characters that can be converted to
- multibyte char.
-
-2002-08-26 Kim F. Storm <storm@cua.dk>
-
- * frame.c (make_terminal_frame) [CANNOT_DUMP]: Initialize
- foreground and background colors. From Joe Buehler.
-
-2002-08-26 Miles Bader <miles@gnu.org>
-
- * bytecode.c (Fbyte_code): Fsub1 can GC, so protect it.
-
-2002-08-25 Andrew Choi <akochoi@shaw.ca>
-
- * emacs.c (main): Call init_mac_osx_environment if HAVE_CARBON is
- defined instead of MAC_OSX.
-
- * s/darwin.h (select): Define select to sys_select only if
- HAVE_CARBON is defined.
- (HAVE_WORKING_VFORK): #undef it. Define vfork to fork.
- (DONT_REOPEN_PTY): #def it.
-
- * macterm.c (XTread_socket): Remove code to call
- SendEventToEventTarget for keys with command modifiers when
- mac_command_key_is_meta is nil.
-
-2002-08-24 Andreas Schwab <schwab@suse.de>
-
- * eval.c (Fdefvar): Fix last change.
-
-2002-08-23 Richard M. Stallman <rms@gnu.org>
-
- * eval.c (Fdefvar, Fdefconst, Fdefvaralias):
- Record variables in load history as (defvar . VAR).
- (Fdefvar): Don't record in load history if no initial value.
- (Qdefvar): New variable.
- (syms_of_eval): Init and staticpro it.
-
- * lread.c (syms_of_lread): Doc fix.
- (build_load_history): Use Fmember to see if a definition
- is already in the Vload_history element.
-
- * process.c (Fstart_process): Remove /: from program name.
-
- * emacs.c (decode_env_path): Don't add /: if file name handler
- has a `safe-magic' property.
-
- * callproc.c (Fcall_process): Remove /: from program name.
-
-2002-08-23 Stefan Monnier <monnier@cs.yale.edu>
-
- * regex.c (PATFETCH): Remove the translating fetch.
- (PATFETCH_RAW): Rename to PATFETCH.
- (set_image_of_range): New fun.
- (SET_RANGE_TABLE_WORK_AREA): Use it.
- (regex_compile): Don't translate the pattern chars so eagerly.
- Only do it when inserting an `exactn' bytecode or when handling
- a char-range.
- (mutually_exclusive_p): Avoid empty statement.
-
-2002-08-22 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (redisplay_window): Do not `goto try_to_scroll' when we
- end up on a partially visible line; this reverts a specific part
- of the 2002-07-07 change by Richard M. Stallman to "fix" a nasty
- display error which has been reported several times now.
- However it introduces the problem that changes was supposed to fix.
- See my comments in the source if you want to debug this further.
-
-2002-08-20 Kenichi Handa <handa@etl.go.jp>
-
- * abbrev.c (Fexpand_abbrev): Fix for the multibyte case.
-
-2002-08-19 Eli Zaretskii <eliz@is.elta.co.il>
-
- * msdos.c (croak): Add `void' to definition.
-
- * sysdep.c (request_sigio, unrequest_sigio) [MSDOS]:
- Don't define them, they are defined in msdos.c.
-
- * mem-limits.h [MSDOS]: Declare etext.
-
- * fileio.c (Ffile_name_directory) [DOS_NT]: Don't declare `beg'
- `const' since CORRECT_DIR_SEPS modifies its target.
-
-2002-08-19 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (Fclear_this_command_keys): Add optional arg
- KEEP-RECORD to avoid clearing lossage when we just want to clear
- the current key sequence (kmacro needs this).
-
-2002-08-19 Kenichi Handa <handa@localhost>
-
- * composite.c (run_composition_function): Call FUNC if it is fboundp.
-
- * composite.h (COMPOSITION_MODIFICATION_FUNC): If PROP is not a
- cons, return Qnil.
-
-2002-08-17 Richard M. Stallman <rms@gnu.org>
-
- * s/sol2-5.h (BROKEN_SIGIO): Add #undef.
-
- * sysdep.c [!VMS]: Include sys/files.h.
-
- * editfns.c (save_restriction_restore): Defend from unchained marker.
-
- * buffer.c (overlays_at): Handle extending vec uniformly.
- (overlays_in): Handle extending vec from length 0 as in overlays_at.
-
-2002-08-15 Andrew Choi <akochoi@shaw.ca>
-
- * mac.c (init_mac_osx_environment): New function.
-
- * emacs.c (main) [MAC_OSX]: Call init_mac_osx_environment.
-
-2002-08-14 Kim F. Storm <storm@cua.dk>
-
- * macros.c (Fstart_kbd_macro): Added NO-EXEC argument to inhibit
- executing macro before appending to it (when used from Lisp).
- (Fexecute_kbd_macro): Added LOOPFUNC argument to supply function
- which is called prior to each iteration of macro (for kmacro.el).
- (Fend_kbd_macro, Fcall_last_kbd_macro): Likewise.
-
- * lisp.h (Fexecute_kbd_macro): Update prototype.
-
- * keyboard.c (Fcommand_execute): Update call to Fexecute_kbd_macro.
-
-2002-08-14 Kenichi Handa <handa@etl.go.jp>
-
- * xselect.c (QUTF8_STRING): New variable.
- (symbol_to_x_atom): Pay attention to QUTF8_STRING.
- (x_atom_to_symbol): Likewise.
- (x_get_local_selection): New argument local_request. If it is
- nonzero, call handler_fn with the second arg nil.
- (x_handle_selection_request): Call x_get_local_selection with
- local_request 0.
- (lisp_data_to_selection_data): Don't encode the string here.
- (Fx_get_selection_internal): Call x_get_local_selection with
- local_request 1.
- (syms_of_xselect): Intern and staticpro QUTF8_STRING.
-
- * xterm.c (x_term_init): Initialize dpyinfo->Xatom_UTF8_STRING.
-
- * xterm.h (struct x_display_info): New member Xatom_UTF8_STRING.
-
-2002-08-13 Richard M. Stallman <rms@gnu.org>
-
- * minibuf.c (Fminibufferp): New function.
- (syms_of_minibuf): Defsubr it.
- (Fminibuffer_prompt_end): Handle non-minibuffers specially.
-
-2002-08-13 Gerd Moellmann <gerd.moellmann@t-online.de>
-
- * coding.c (Funencodable_char_position): Lisp_Object/int mixup.
-
-2002-08-12 Richard M. Stallman <rms@gnu.org>
-
- * syswait.h: Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
- [!VMS] (WCOREDUMP, WEXITSTATUS, WIFEXITED, WIFSTOPPED, WIFSIGNALED)
- (WSTOPSIG, WTERMSIG): Define each one independently if not defined
- already.
-
- * buffer.c (syms_of_buffer) <fill-column>: Doc fix.
-
-2002-08-11 Andrew Choi <akochoi@shaw.ca>
-
- * macterm.c (XTmouse_position): Check wp with is_emacs_window.
- (Vmac_pass_command_to_system): New variable.
- (Vmac_pass_control_to_system): New variable.
- (do_mouse_moved): Check wp with is_emacs_window.
- (XTread_socket): Check window_ptr with is_emacs_window.
- Call FrontNonFloatingWindow instead of FrontWindow. Send keydown
- events back to Mac Toolbox for processing, depending on values of
- Vmac_pass_command_to_system and Vmac_pass_control_to_system.
- (syms_of_macterm): DEFVAR_LISP Vmac_pass_command_to_system and
- Vmac_pass_control_to_system.
-
-2002-08-10 Kenichi Handa <handa@etl.go.jp>
-
- * coding.c (unencodable_char_position): New function.
- (Funencodable_char_position): New function.
- (syms_of_coding): Defsubr Funencodable_char_position.
-
-2002-08-10 Andrew Choi <akochoi@shaw.ca>
-
- * mac.c (sys_select) [MAC_OSX]: New function.
-
- * macterm.c (MakeMeTheFrontProcess): New function.
- (mac_initialize): Call MakeMeTheFrontProcess.
-
- * s/darwin.h: Define select to sys_select.
-
-2002-08-09 Richard M. Stallman <rms@gnu.org>
-
- * keyboard.c (make_lispy_event): Test WINDOWSNT, not WINDOWS_NT.
-
-2002-08-09 Gerd Moellmann <gerd.moellmann@t-online.de>
-
- * xdisp.c (forward_to_next_line_start): Return 0 when reaching the
- end of the buffer.
-
-2002-08-08 Ken Raeburn <raeburn@gnu.org>
-
- * coding.c (Ffind_operation_coding_system): Fix Lisp_Object/int mixup.
-
- * puresize.h (BASE_PURESIZE): Increase to 910000.
-
-2002-08-08 Kenichi Handa <handa@etl.go.jp>
-
- * coding.c (Ffind_operation_coding_system): For write-region, if
- VISIT is a filename, make it the target.
-
-2002-08-07 Richard M. Stallman <rms@gnu.org>
-
- * alloc.c (mark_object): Detect long lists for debugging.
- (mark_object_loop_halt): New variable.
-
- * s/hpux10.h (C_SWITCH_SYSTEM): #undef it.
-
- * data.c (Fmake_variable_frame_local): Doc fix.
-
-2002-08-01 David Ponce <david@dponce.com>
-
- * w32menu.c (local_heap, local_alloc, local_free): New macros.
- (malloc_widget_value, free_widget_value)
- (w32_free_submenu_strings): Use them.
-
- (push_submenu_start, push_submenu_end, push_left_right_boundary)
- (push_menu_pane, push_menu_item, single_keymap_panes)
- (single_menu_item, Fx_popup_menu, menubar_selection_callback)
- (single_submenu, set_frame_menubar)
- (w32_menu_show, w32_dialog_show): Use AREF, ASET, ASIZE.
-
- (Fx_popup_menu): Don't show pop up menu until preceding one is
- actually cleaned up. Moved UNGCPRO outside #ifdef HAVE_MENUS block.
-
- * w32menu.c: Changes adapted from xmenu.c
- (set_frame_menubar): First parse all submenus,
- then make widget_value trees from them.
- Don't allocate any widget_value objects
- until we are done with the parsing.
- (parse_single_submenu): New function.
- (digest_single_submenu): New function.
- (single_submenu): Function deleted, replaced by those two.
-
-2002-08-04 Andrew Choi <akochoi@shaw.ca>
-
- * macterm.c (XTread_socket): Check that FrontNonFloatingWindow
- returns a valid window pointer before proceeding for keyDown and
- autoKey events.
-
-2002-08-03 Andrew Choi <akochoi@shaw.ca>
-
- * macterm.c (USE_CARBON_EVENTS): New macro.
- (macCtrlKey, macShiftKey, macMetaKey, macAltKey): New macros.
- (x_iconify_frame): Call CollapseWindow.
- (Vmac_reverse_ctrl_meta): New variable.
- (Vmac_wheel_button_is_mouse_2): New variable.
- (init_mac_drag_n_drop): New function.
- (mac_do_receive_drag): New function.
- (mac_handle_service_event): New function.
- (init_service_handler): New function.
- (mac_to_emacs_modifiers): New function.
- (mac_event_to_emacs_modifiers): New function.
- (mac_get_mouse_btn): New function.
- (mac_convert_event_ref): New function.
- (XTread_socket) [USE_CARBON_EVENTS]: Call ReceiveNextEvent,
- SendEventToEventTarget, mac_event_to_emacs_modifiers, and
- mac_get_mouse_btn.
- (mac_initialize): Call init_mac_drag_n_drop and init_service_handler.
-
- * keyboard.c: Define Qmouse_wheel, mouse_wheel_syms, and
- lispy_mouse_wheel_names for MAC_OSX as well as for WINDOWS_NT.
- (kbd_buffer_get_event): Set used_mouse_menu for MENU_BAR_EVENT and
- TOOL_BAR_EVENT for MAC_OS as well.
- (make_lispy_event): Handle MOUSE_WHEEL_EVENT for MAC_OSX as well
- as for WINDOWS_NT.
- (syms_of_keyboard): Initialize Qmouse_wheel for MAC_OSX.
-
- * termhooks.h (event_kind): Define MOUSE_WHEEL_EVENT also for MAC_OSX.
-
-2002-08-03 Gerd Moellmann <gerd.moellmann@t-online.de>
-
- * xdisp.c (forward_to_next_line_start): Fix a condition that
- lead to a newline being skipped.
-
-2002-08-02 Andrew Choi <akochoi@shaw.ca>
-
- * mac.c (syms_of_mac): Defsubr Sx_selection_exists_p.
-
-2002-08-01 Richard M. Stallman <rms@gnu.org>
-
- * Makefile.in (SOME_MACHINE_OBJECTS): Add fontset.o.
-
-2002-07-31 Andrew Choi <akochoi@shaw.ca>
-
- * macfns.c: #undef init_process before #define-ing it.
-
- * s/darwin.h: Define MAC_OS, SYMS_SYSTEM, and OTHER_FILES only if
- HAVE_CARBON is defined.
-
-2002-07-31 Richard M. Stallman <rms@gnu.org>
-
- * xmenu.c (set_frame_menubar): First parse all submenus,
- then make widget_value trees from them.
- Don't allocate any widget_value objects
- until we are done with the parsing.
- (parse_single_submenu): New function.
- (digest_single_submenu): New function.
- (single_submenu): Function deleted, replaced by those two.
-
-2002-07-30 Juanma Barranquero <lektu@terra.es>
-
- * w32proc.c (syms_of_ntproc): Fix docstring of
- `w32-get-true-file-attributes'.
-
-2002-07-28 Richard M. Stallman <rms@gnu.org>
-
- * s/hpux8.h (HPUX8): Define this before including hpux.h.
- (HAVE_SYS_WAIT_H): #define deleted; we let Autoconf decide.
-
- * s/hpux.h (HAVE_SYS_WAIT_H): The #undef is conditional on HPUX8.
-
- * keyboard.c (make_lispy_event):
- Use #ifdef to test USE_TOOLKIT_SCROLL_BARS.
- Explicitly clear up_modifier in event->modifiers.
-
-2002-07-27 Richard M. Stallman <rms@gnu.org>
-
- * xterm.h (FRAME_CURSOR_WIDTH): New macro.
-
- * xterm.c (x_display_and_set_cursor): Check FRAME_CURSOR_WIDTH
- for bar cursor.
-
-2002-07-26 Kenichi Handa <handa@etl.go.jp>
-
- * coding.c (detect_coding_iso2022): While checking a byte sequence
- for CODING_CATEGORY_MASK_ISO_8_2, if we read one extra byte, check
- it in the normal loop.
-
-2002-07-24 Gerd Moellmann <gerd.moellmann@t-online.de>
-
- * xterm.c (expose_overlaps): New function.
- (expose_window): Use it to fix the display of overlapping rows.
-
- * xdisp.c (unwind_redisplay): Clear redisplay_updating_p.
-
-2002-07-23 Ken Raeburn <raeburn@gnu.org>
-
- * lisp.h (XPNTR): Use NO_UNION_TYPE version for union as well,
- since it only depends on XUINT.
-
- * m/alpha.h (BITS_PER_LONG, BITS_PER_EMACS_INT, EMACS_INT,
- EMACS_UINT, SPECIAL_EMACS_INT, DATA_SEG_BITS,
- PNTR_COMPARISON_TYPE, VALBITS, MARKBIT, XINT, XUINT, XPNTR):
- Macros deleted.
-
- * mem-limits.h (start_of_data): If DATA_START is defined, prefer
- its value over other approaches.
- * sysdep.c (start_of_data): Don't define the function if a macro
- form has been defined.
-
-2002-07-23 Gerd Moellmann <gerd.moellmann@t-online.de>
-
- * xdisp.c (redisplay_updating_p): New variable.
- (init_iterator): Don't free realized faces when
- redisplay_updating_p is set.
- (redisplay_internal): Set redisplay_updating_p while updating
- the display.
-
-2002-07-23 Richard M. Stallman <rms@gnu.org>
-
- * editfns.c (Fmessage): Treat "" like nil.
-
-2002-07-23 Kenichi Handa <handa@etl.go.jp>
-
- * xdisp.c (face_before_or_after_it_pos):
- Call FETCH_MULTIBYTE_CHAR with byte postion, not char position.
-
-2002-07-22 Juanma Barranquero <lektu@terra.es>
-
- * callproc.c (init_callproc) [DOS_NT]:
- Initialize Vshared_game_score_directory to nil.
- (syms_of_callproc) [DOS_NT]: Likewise.
-
-2002-07-22 Gerd Moellmann <gerd.moellmann@t-online.de>
-
- * xdisp.c (display_line): Replace an abort with xassert.
-
-2002-07-21 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (redisplay_window): Don't test BEG_UNCHANGED
- and END_UNCHANGED when setting buffer_unchanged_p.
- Use current_matrix_up_to_date_p to decide whether to use
- try_cursor_movement.
-
- * config.in (HAVE_SHARED_GAME_DIR): Undef deleted.
-
- * epaths.in (PATH_GAME): New macro, edited by ../Makefile.in.
-
- * callproc.c (init_callproc): Set up Vshared_game_score_directory.
- Set to nil if dir does not exist.
- (syms_of_callproc): Init unconditionally and simply.
-
- * buffer.c (Fbuffer_list): Doc fix.
-
-2002-07-21 Ken Raeburn <raeburn@gnu.org>
-
- * sysdep.c (end_of_text, end_of_data): Unused functions deleted.
-
- * buffer.c (mmap_realloc): When shrinking, make sure number of
- pages to unmap is rounded towards zero.
-
- * m/mips-siemens.h (XSETUINT, XSETPNTR): Unused macros deleted.
- (XSETINT): Deleted.
-
- * m/att3b.h (XINT): Don't define.
- (VALBITS, VALMASK, XTYPE): Deleted.
- (DATA_SEG_BITS): Define.
- * m/gec63.h (VALBITS, VALAMASK, XTYPE, XSETTYPE, XPNTR, XSET,
- ARRAY_MARK_FLAG): Deleted.
- (DATA_SEG_BITS): Define.
- * m/pfa50.h (VALBITS, VALMASK, XTYPE): Deleted.
- (DATA_SEG_BITS): Define.
-
-2002-07-20 Richard M. Stallman <rms@gnu.org>
-
- * print.c (print_error_message): New args CONTEXT and CALLER.
- Calls changed.
-
- * lisp.h (print_error_message): Declare new args.
-
- * keyboard.c (cmd_error_internal): Pass Vsignaling_function
- and CONTEXT to print_error_message, don't print them here.
- For a Quit, don't use Vsignaling_function.
- Call message_log_maybe_newline.
-
- * Makefile.in (xsmfns.o): Don't depend on lisp.h.
-
-2002-07-20 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (redisplay_window): Test MODIFF to set buffer_unchanged_p.
-
-2002-07-19 Ken Raeburn <raeburn@gnu.org>
-
- * bytecode.c (struct byte_stack): Pointers into byte string now
- point to const.
- * callproc.c (Fcall_process): Make NEW_ARGV array hold pointer to
- const.
- * charset.h (BCOPY_SHORT): Source pointer now points to const.
- * coding.c (encode_eol, detect_coding, detect_eol):
- (decode_coding, encode_coding, detect_coding_system):
- Source strings now treated as const.
- (decode_coding_string, encode_coding_string): Use STRING_COPYIN to
- modify Lisp string contents.
- * coding.h (decode_coding, encode_coding, detect_coding,
- detect_eol): Declarations updated.
- * composite.c (compose_chars_in_text): Treat Lisp string contents
- as const.
- * dispnew.c (safe_bcopy): Source pointer now points to const.
- * lisp.h (STRING_COPYIN): New macro.
- (detect_coding_system, safe_bcopy, temp_output_buffer_setup):
- (internal_with_output_to_temp_buffer): Declarations updated.
- * print.c (temp_output_buffer_setup):
- (internal_with_output_to_temp_buffer): Buffer name argument is now
- pointer to const.
- * sound.c (struct sound_device): Function pointer field "write"
- buffer argument now points to const.
- (vox_write): Buffer argument points to const.
- * syntax.c (Fstring_to_syntax, skip_chars): Treat Lisp string
- contents as const.
- * sysdep.c (emacs_write): Buffer pointer now const.
- * term.c (encode_terminal_code): Buffer pointer now const.
- * xfaces.c (may_use_scalable_font_p): Argument now points to const.
- (x_face_list_fonts, x_update_menu_appearance):
- (hash_string_case_insensitive): Treat Lisp string contents as const.
-
-2002-07-19 Juanma Barranquero <lektu@terra.es>
-
- * xdisp.c (syms_of_xdisp): Remove redundant deprecation info.
-
- * fileio.c (syms_of_fileio): Likewise.
- (Ffile_name_as_directory): Fix argument name in docstring.
- (file_name_as_directory): Use literal '/' instead of DIRECTORY_SEP.
-
-2002-07-18 Richard M. Stallman <rms@gnu.org>
-
- * data.c (Fdefalias): Doc fix.
-
-2002-07-17 Dave Love <fx@gnu.org>
-
- * intervals.h (text_property_stickiness): Use P_.
-
- * ccl.c: Remove `emacs' conditionals.
- (ccl_backtrace_table): Fix size spec.
- (ccl_driver): Fix type errors.
-
-2002-07-16 Ken Raeburn <raeburn@gnu.org>
-
- * alloc.c (xstrdup, make_string, make_unibyte_string)
- (make_multibyte_string, build_string): String pointer args now
- point to const.
- * charset.c (find_charset_in_text, c_string_width):
- (chars_in_text, multibyte_chars_in_text, parse_str_as_multibyte):
- * fileio.c (report_file_error):
- * insdel.c (copy_text, count_size_as_multibyte, insert_1):
- (count_combining_before, count_combining_after, insert_1_both):
- (insert, insert_and_inherit, insert_string):
- (insert_before_markers, insert_before_markers_and_inherit):
- * lread.c (intern, oblookup, hash_string):
- * minibuf.c (temp_echo_area_glyphs):
- * search.c (fast_c_string_match_ignore_case):
- * sysdep.c (emacs_open, set_file_times):
- * xfaces.c (xstricmp):
- * xdisp.c (store_frame_title, string_char_and_length):
- (message_dolog, message2, message2_nolog, set_message): Likewise.
- (set_message_1): Cast message string argument to const pointer.
- * editfns.c (general_insert_function): Insertion function now
- takes pointer to const for input data.
- * charset.h (find_charset_in_text, c_string_width):
- (parse_str_as_multibyte): Declarations updated.
- * dispextern.h (xstricmp): Declaration updated.
- * lisp.h (chars_in_text, multibyte_chars_in_text, copy_text):
- (count_size_as_multibyte, count_combining_before):
- (count_combining_after, insert_1, insert_1_both, message_dolog):
- (insert, insert_and_inherit, insert_before_markers)
- (insert_before_markers_and_inherit, set_message, message2):
- (message2_dolog, build_string, make_string, make_unibyte_string):
- (make_multibyte_string, intern, oblookup, report_file_error):
- (fast_c_string_match_ignore_case, temp_echo_area_glyphs):
- (emacs_open, xstrdup): Declarations updated.
- * systime.h (set_file_times): Declaration updated.
-
- * charset.c (find_charset_in_text, lisp_string_width): Use const
- for pointer to lisp string data.
- * charset.h (FETCH_STRING_CHAR_ADVANCE):
- (FETCH_STRING_CHAR_ADVANCE_NO_CHECK):
- * coding.c (Ffind_coding_systems_region_interval):
- * fileio.c (Ffile_name_directory, Ffile_name_nondirectory):
- (Fmake_directory_internal, Fdelete_directory):
- (Ffile_name_absolute_p, Fwrite_region, double_dollars):
- * fontset.c (font_family_registry, fs_query_fontset):
- (list_fontsets):
- * frame.c (Fframe_parameter):
- * keyboard.c (cmd_error_internal):
- * keymap.c (Fdescribe_buffer_bindings):
- * lread.c (complete_filename_p, openp):
- * minibuf.c (Fminibuffer_complete_word):
- * xdisp.c (string_pos_nchars_ahead, init_from_display_pos):
- (face_before_or_after_it_pos, next_element_from_string):
- (get_overlay_arrow_glyph_row, display_mode_element):
- (decode_mode_spec_coding):
- * xterm.c (same_x_server): Likewise.
-
- * buffer.c (reset_buffer_local_variables): Delete "#if 0"
- settings of non-existent fields.
-
- * editfns.c (Fstring_to_char): Don't use XSTRING/XSETSTRING to
- copy a lisp value.
-
- * lread.c (Fintern_soft): Use string macros instead of
- Lisp_String fields.
- * keyboard.c (echo_char, parse_modifiers_uncached):
- (parse_solitary_modifier, Fexecute_extended_command): Likewise.
- * textprop.c (validate_interval_range, interval_of): Likewise.
-
- * fontset.c (Fset_fontset_font): Use SDATA instead of XSTRING()->data.
-
- * charset.h (FETCH_STRING_CHAR_ADVANCE)
- (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): Use SBYTES instead of
- XSTRING()->size_byte.
-
- * lisp.h (SDATA, SREF): Produce rvalue.
- (SSET): New macro.
- * alloc.c (make_event_array): Use SSET for storing into a string.
- * buffer.c (Fother_buffer): Use SREF when retrieving a byte from
- a string.
- * casefiddle.c (casify_object): Use SSET.
- * charset.h (FETCH_STRING_CHAR_ADVANCE)
- (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): Use SDATA when getting
- address of string contents.
- * data.c (Faref): Use SDATA.
- (Faset): Use SDATA, SSET.
- * dired.c (directory_files_internal): Use SSET.
- * fileio.c (Fmake_symbolic_link, Fexpand_file_name): Use SSET.
- (Fread_file_name): Use SREF, SSET.
- * fns.c (concat): Use SSET.
- (concat, Fdelete): Use SDATA.
- * insdel.c (insert_from_string_1): Use SDATA.
- * keyboard.c (Fevent_convert_list): Use SREF.
- * lread.c (Fload): Use SDATA, SSET.
- * macfns.c (validate_x_resource_name): Use SSET.
- * process.c (status_message): Use SSET.
- * search.c (wordify): Use SDATA.
- (Freplace_match): Use SREF.
- * w32fns.c (validate_x_resource_name): Use SSET.
- * xfns.c (validate_x_resource_name): Use SSET.
- * xterm.c (x_catch_errors, x_clear_errors): Use SSET.
-
-2002-07-16 Richard M. Stallman <rms@gnu.org>
-
- * s/hpux11.h (USG_SUBTTY_WORKS): Defined.
-
- * xdisp.c (reconsider_clip_changes):
- Don't test prevent_redisplay_optimizations_p.
- (redisplay_internal): Test prevent_redisplay_optimizations_p
- along with clip_changed in some cases.
- (try_window_id): Likewise.
- (redisplay_window): New local var buffer_unchanged_p.
-
- * keyboard.c (cmd_error) [HAVE_X_WINDOWS]: Maybe call cancel_houglass.
-
- * process.c (create_process): Test USG_SUBTTY_WORKS.
- (process_send_signal): Clean up handling of GID.
- Detect errors in ioctls meant to set GID.
-
- * window.c (temp_output_buffer_show):
- Don't set prevent_redisplay_optimizations_p.
-
-2002-07-15 Juanma Barranquero <lektu@terra.es>
-
- * eval.c (Fdefvaralias): Add docstring argument.
-
-2002-07-15 Ken Raeburn <raeburn@gnu.org>
-
- * lisp.h (STRING_INTERVALS): Produce rvalue.
- (STRING_SET_INTERVALS): New macro.
- * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use it.
- * fns.c (Fstring_as_multibyte): Likewise.
- * intervals.c (balance_possible_root_interval, delete_interval)
- (create_root_interval, copy_intervals_to_string): Likewise.
- * textprop.c (set_text_properties): Likewise. Use NULL_INTERVAL
- instead of 0.
-
-2002-07-14 Ken Raeburn <raeburn@gnu.org>
-
- * lisp.h (STRING_SET_CHARS): New macro.
- (SCHARS, SBYTES): Produce rvalues.
- * dired.c (directory_files_internal): Use STRING_SET_CHARS.
- * fns.c (concat): Likewise.
- * lread.c (read_vector): Likewise.
-
- * lisp.h (SMBP): Delete. All uses changed to STRING_MULTIBYTE.
- (STRING_SET_UNIBYTE): New macro.
- (SET_STRING_BYTES): Delete. Callers (all of which supplied a
- length of -1) changed to use STRING_SET_UNIBYTE.
- * abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c,
- casefiddle.c, category.c, ccl.c, charset.c, charset.h, coding.c,
- composite.c, data.c, dired.c, dispnew.c, disptab.h, doc.c,
- dosfns.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fn.c,
- fontset.c, frame.c, indent.c, insdel.c, intervals.c, keyboard.c,
- keymap.c, lread.c, mac.c, macfns.c, macmenu.c, macterm.c,
- minibuf.c, msdos.c, print.c, process.c, search.c, sound.c,
- sunfns.c, syntax.c, syntax.h, sysdep.c, textprop.c, undo.c,
- w16select.c, w32.c, w32fns.c, w32menu.c, w32proc.c, w32select.c,
- w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c,
- xselect.c, xsmfns.c, xterm.c: Most uses of XSTRING combined with
- STRING_BYTES or indirection changed to SCHARS, SBYTES,
- STRING_INTERVALS, SREF, SDATA; explicit size_byte references left
- unchanged for now.
-
-2002-07-13 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (command_loop_1): Invert check on Vmemory_full.
-
-2002-07-12 Richard M. Stallman <rms@gnu.org>
-
- * fileio.c (Fwrite_region): Doc fix.
-
- * print.c (print_error_message): Don't handle Vsignaling_function here.
-
- * keyboard.c (cmd_error_internal): Handle Vsignaling_function here.
- (command_loop_1): Avoid certain actions after memory-full error.
-
- * eval.c (Fsignal): Don't call cancel_hourglass.
- For a memory-full error, don't call Vsignal_hook_function
- and don't set Vsignaling_function.
-
- * process.c (process_send_signal): Add abort call.
-
-2002-07-11 Markus Rost <rost@math.ohio-state.edu>
-
- * keymap.c (Fkey_binding): Fix typo.
-
-2002-07-11 Richard M. Stallman <rms@gnu.org>
-
- * alloc.c (Vmemory_full): New variable.
- (Vmemory_signal_data): Rename from memory_signal_data.
- Uses changed.
- (syms_of_alloc): Defvar them.
- (memory_full, buffer_memory_full): Set Vmemory_full.
-
- * lisp.h (Vmemory_full): Add declaration.
- (current_column, indented_beyond_p): Change declaration.
-
- * indent.c (last_known_column): Declare as double, not float.
- (current_column, current_column_1, string_display_width)
- (position_indentation): Return `double'.
- (indented_beyond_p): Arg `column' is `double'. Callers changed.
-
- * xdisp.c (message_dolog): Do nothing if Vmemory_full is non-nil.
- (back_to_previous_visible_line_start)
- (reseat_at_next_visible_line_start, next_element_from_buffer):
- Use `double', not `float', when calling indented_beyond_p.
-
- * s/hpux11.h (BROKEN_SA_RESTART): Define.
-
- * sysdep.c (sys_signal): Test BROKEN_SA_RESTART.
-
-2002-07-11 Juanma Barranquero <lektu@terra.es>
-
- * alloc.c, buffer.c, bytecode.c, callint.c, callproc.c, coding.c,
- * composite.c, dired.c, dispnew.c, editfns.c, emacs.c, eval.c,
- * fileio.c, fns.c, insdel.c, keyboard.c, keymap.c, lread.c, macfns.c,
- * macmenu.c, macros.c, minibuf.c, print.c, process.c, sound.c,
- * textprop.c, w32fns.c, w32menu.c, window.c, xfaces.c, xfns.c,
- * xmenu.c, xselect.c, xterm.c: Use SPECPDL_INDEX wherever makes sense.
-
-2002-07-10 Juanma Barranquero <lektu@terra.es>
-
- * lisp.h (SPECPDL_INDEX): Rename from BINDING_STACK_SIZE.
- All callers changed.
-
-2002-07-09 Stefan Monnier <monnier@cs.yale.edu>
-
- * data.c (Fdefalias): Add an optional `docstring' argument.
- (set_internal, Fsetq_default): Use XCAR/XCDR.
-
- * composite.c (HASH_VALUE, HASH_KEY):
- * ccl.c (HASH_VALUE): Remove (it's in lisp.h now).
-
-2002-07-09 Kenichi Handa <handa@etl.go.jp>
-
- * callproc.c (Fcall_process): Fix previous change.
-
-2002-07-07 Stefan Monnier <monnier@cs.yale.edu>
-
- * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
- Add support for hash-tables.
- (Ftry_completion): Return t even if the string appears multiple times.
-
- * fns.c (Fnconc): Use XCDR.
- (Fprovide): Use CONSP and XCDR.
- (HASH_KEY, HASH_VALUE, HASH_NEXT, HASH_HASH, HASH_INDEX)
- (HASH_TABLE_SIZE): Delete: moved to lisp.h.
- (Fmake_hash_table): Accept `:size nil'.
- (Fmakehash): Delete: moved to subr.el.
- (syms_of_fns): Don't defsubr makehash.
-
- * lisp.h (HASH_KEY, HASH_VALUE, HASH_NEXT, HASH_HASH, HASH_INDEX)
- (HASH_TABLE_SIZE): Move from fns.c.
-
-2002-07-07 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (make_cursor_line_fully_visible): Don't try short scrolls.
- Instead just return 0 when there is something to be done.
- (try_scrolling): If make_cursor_line_fully_visible returns 0,
- retry scrolling as if cursor were off the bottom.
- (try_cursor_movement): If make_cursor_line_fully_visible returns 0,
- return CURSOR_MOVEMENT_MUST_SCROLL.
- (redisplay_window): If make_cursor_line_fully_visible returns 0,
- go to try_to_scroll.
-
- * buffer.c (Fbuffer_local_value): Store current value into its binding
- so we get the up-to-date value for the binding that is loaded.
-
- * eval.c (Fdefmacro): Doc fix.
-
-2002-07-05 Dave Love <fx@gnu.org>
-
- * keyboard.c (read_key_sequence): Set initial_idleness_start_time
- correctly.
-
- * ccl.c (Vtranslation_hash_table_vector, GET_HASH_TABLE)
- (HASH_VALUE, CCL_LookupIntConstTbl, CCL_LookupCharConstTbl): New.
- (ccl_driver): Add cases for CCL_LookupIntConstTbl,
- CCL_LookupCharConstTbl.
- (syms_of_ccl): Defvar translation-hash-table-vector.
-
-2002-07-05 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * xdisp.c: Remove unused variable `face'.
-
-2002-07-04 Juanma Barranquero <lektu@terra.es>
-
- * keyboard.c (post_command_idle_hook): Remove redundant (and inexact)
- obsolescence information.
-
-2002-07-03 Andrew Choi <akochoi@shaw.ca>
-
- * macterm.c (x_list_fonts): Fix comment. Cache fonts matching
- pattern. Search cache first.
- (init_font_name_table): Also add entry for jisx0201.1976-0 coding
- for Japanese font.
- (XLoadQueryFont): Use it.
-
-2002-07-02 Richard M. Stallman <rms@gnu.org>
-
- * keymap.c (Fdefine_key): Doc fix.
-
- * xterm.c (x_term_init): Turn off polling around XtOpenDisplay.
-
-2002-07-02 Juanma Barranquero <lektu@terra.es>
-
- * keymap.c (syms_of_keymap): Fix typo.
-
-2002-07-01 Andrew Choi <akochoi@shaw.ca>
-
- * s/darwin.h: Define POSIX_SIGNALS.
-
- * macterm.c (do_ae_open_documents) [MAC_OSX]: Call FSpMakeFSRef
- and FSRefMakePath to convert FSSpec returned with Apple Event to
- Posix pathname.
- (mac_initialize) [TARGET_API_MAC_CARBON]:
- Call init_required_apple_events and disable the `Quit' menu item
- provided automatically by the Carbon Toolbox.
-
-2002-07-01 Dave Love <fx@gnu.org>
-
- * keyboard.c (kbd_buffer_store_event): Fix interrupt_signal decl
- for K&R.
-
- * xterm.c: Fix prototype for K&R.
-
- * term.c (costs_set): Declare static, non-initialized for pcc.
-
-2002-07-01 Richard M. Stallman <rms@gnu.org>
-
- * keyboard.c (timer_last_idleness_start_time): New variable.
- (timer_start_idle): Set that.
- (read_key_sequence): Use that to reset timer_idleness_start_time
- to previous value.
-
- * window.c (Frecenter): With arg, set optional_new_start.
-
- * xdisp.c (redisplay_internal): Make optional_new_start really work.
-
- * minibuf.c (Fminibuffer_complete_and_exit): Move to end of
- buffer for completion.
-
-2002-06-29 Ken Raeburn <raeburn@gnu.org>
-
- * xdisp.c (store_mode_line_string): Lisp_Object/int mixup.
-
-2002-06-28 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * keyboard.c (readable_filtered_events): New function that filters
- FOCUS_IN_EVENT depending on parameter.
- (readable_events): Calls readable_filtered_events, not filtering
- FOCUS_IN_EVENT.
- (get_filtered_input_pending): New function, filtering parameter passed
- to readable_filtered_events.
- (get_input_pending): Calls get_filtered_input_pending, not filtering
- FOCUS_IN_EVENT.
- (Finput_pending_p): Calls get_filtered_input_pending, DO filter
- FOCUS_IN_EVENT.
-
- * xterm.h (struct x_output): Add focus_state.
-
- * xterm.c (x_focus_changed): New function.
- (x_detect_focus_change): New function.
- (XTread_socket): Call x_detect_focus_change for FocusIn/FocusOut
- EnterNotify and LeaveNotify to track X focus changes.
-
-2002-06-28 Andreas Schwab <schwab@suse.de>
-
- * lisp.h: Remove duplicate declaration of code_convert_string_norecord.
-
-2002-06-27 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (mode_line_string_list, mode_line_string_face)
- (mode_line_string_face_prop): New variables.
- (store_mode_line_string): New function.
- (display_mode_element): Use store_mode_line_string to
- add mode-line string elements to mode_line_string_list
- when mode_line_string_list is non-nil.
- (Fformat_mode_line): Now returns propertized string by
- default. New arg NO-PROPS to ignore properties.
- (decode_mode_spec): Only add two dashes for %- in propertized
- mode-line string.
- (syms_of_xdisp): Init and staticpro mode_line_string_list.
-
-2002-06-27 Stefan Monnier <monnier@cs.yale.edu>
-
- * minibuf.c (minibuffer_completion_contents): Add return type.
-
-2002-06-27 Juanma Barranquero <lektu@terra.es>
-
- * charset.c (Fchar_bytes): Remove obsolescence info from docstring.
-
-2002-06-26 Juanma Barranquero <lektu@terra.es>
-
- * fileio.c (read_file_name_cleanup): Add missing return.
-
-2002-06-26 Richard M. Stallman <rms@gnu.org>
-
- * window.c (Frecenter): Don't set force_start flag.
-
- * minibuf.c (do_completion, Fminibuffer_complete_word)
- (Fminibuffer_completion_help): Complete just the text before point.
- (minibuffer_completion_contents): New function.
-
- * buffer.c (Fbury_buffer): Use frames_discard_buffer.
-
- * frame.c (frames_bury_buffer): Function deleted.
-
-2002-06-25 Miles Bader <miles@gnu.org>
-
- * callint.c (Fcall_interactively): When checking to see if doprnt hit
- the end of callint_message, allow for a terminating '\0'.
-
-2002-06-24 Juanma Barranquero <lektu@terra.es>
-
- * w32select.c: Include composite.h.
-
- * w16select.c: Likewise.
-
-2002-06-24 Kenichi Handa <handa@etl.go.jp>
-
- * callproc.c (Fcall_process): If code detection is necessary,
- call detect_coding directly here.
-
- * coding.c (detect_eol): Preserve coding->cmp_data.
-
- * w16select.c (Fw16_get_clipboard_data):
- * w32fns.c (w32_to_x_font):
- * w32select.c (Fw32_get_clipboard_data):
- * xselect.c (selection_data_to_lisp_data):
- * xterm.c (XTread_socket): Disable composition handling.
-
-2002-06-24 Stefan Monnier <monnier@cs.yale.edu>
-
- * print.c (temp_output_buffer_setup): Kill all local variables.
-
-2002-06-22 Stefan Monnier <monnier@cs.yale.edu>
-
- * lread.c (Fread): Remove redundant and imprecise declaration.
-
- * xfns.c (check_x_display_info): Use check_x_frame.
-
- * .gdbinit (xprintsym): Use the new `xname' field.
- (xsymbol): Use it.
-
-2002-06-22 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (file_dialog_callback): New function.
- (Fx_file_dialog): Allow selecting directories as well as files.
-
-2002-06-21 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * m/pmax.h (START_FILES): Define START_FILES for NetBSD and
- OpenBSD. Add support for mipseb-*-netbsd* machines.
-
-2002-06-17 Andrew Choi <akochoi@shaw.ca>
-
- * macterm.c (mac_scroll_area): Set foreground and backcolor to
- black and white before scrolling. Restore frame background and
- foreground color after scrolling.
- (do_window_update): Call XClearWindow before calling expose_frame.
- (make_mac_frame): Don't set FRAME_BACKGROUND_PIXEL and
- FRAME_FOREGROUND_PIXEL of frame.
-
- * macterm.c (XTread_socket): If Vmac_command_key_is_meta is nil,
- test Mac command key as <ALT> key.
-
-2002-06-17 Stefan Monnier <monnier@cs.yale.edu>
-
- * window.c (Fset_window_configuration): Lisp_Object/int mixup.
-
- * keyboard.c (read_key_sequence): Be more careful with first_unbound.
- Lookup keys in function-key-map immediately so that key-translation-map
- can be applied earlier.
- Remove function_key_possible and key_translation_possible, replaced
- by checking `keytran_start < t'.
-
- * .gdbinit (xsymbol): Use the new `xname' field.
-
-2002-06-17 Andrew Choi <akochoi@shaw.ca>
-
- * macterm.c (XTread_socket): If Vmac_command_key_is_meta is nil,
- test Mac command key as <ALT> key.
-
- * mac.c (do_applescript): Call initialize_applescript if necessary
- when first called. Dispose of result_desc only when there is no error.
- (Fdo_applescript): Use %d format specifier instead of %ld.
-
-2002-06-16 Andrew Choi <akochoi@shaw.ca>
-
- * macterm.c (XTread_socket): Call FrontNonFloatingWindow instead
- of FrontWindow for cases keyDown and autoKey.
-
- * fontset.c (syms_of_fontset) [MAC_OS]: Set ASCII font of
- Vdefault_fontset to Monaco with mac-roman coding.
-
- * mac.c, macfns.c, macmenu.c, macterm.c: Undefine and redefine
- init_process before and after inclusion of Carbon/Carbon.h, resp.
-
- * macterm.c (x_new_font): Set font for normal_gc, reverse_gc, and
- cursor_gc.
- (add_font_name_table_entry): New function.
- (init_font_name_table): Use add_font_name_table_entry; add italic,
- bold, and bold-italic entries for truetype fonts.
-
- * xfaces.c (init_frame_faces) [MAC_OS]: Call realize_basic_faces
- for Mac too.
- (try_font_list) [MAC_OS]: If no font matches given registry, try
- fonts with any registry matching face_family.
- (realize_x_face) [MAC_OS]: Remove old ad-hoc fix to load font here.
-
- * s/darwin.h: If autoconf detects the Ncurses library, define
- LIBS_TERMCAP to -lncurses to use it.
-
-2002-06-16 Eli Zaretskii <eliz@is.elta.co.il>
-
- * strftime.c [__hpux]: Include sys/_mbstate_t.h.
-
-2002-06-15 Richard M. Stallman <rms@gnu.org>
-
- * window.c (Fset_window_configuration): Explicitly preserve
- the point value that new_current_buffer had at the start.
-
-2002-06-14 Juanma Barranquero <lektu@terra.es>
-
- * composite.c (Fcompose_region_internal, Fcompose_string_internal):
- Fix typos.
-
-2002-06-14 Kim F. Storm <storm@cua.dk>
-
- * insdel.c (insert_1_both, insert_from_string_1)
- (insert_from_buffer_1): Recalculate END_UNCHANGED in case the
- insert happened in the end_unchanged region. Otherwise, the
- redisplay may be confused and duplicate the last line in the
- buffer [seen after save-buffer when require-final-newline==t].
-
-2002-06-13 Jason Rumney <jasonr@gnu.org>
-
- * w32.c (init_environment): Remove EMACSLOCKDIR.
- (stat): Swap _S_IFDIR and _S_IFREG.
-
-2002-06-13 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * keyboard.c, macterm.c, macmenu.c, msdos.c, sysdep.c
- * termhooks.h, xmenu.c, xsmfns.c, xterm.h, xterm.c, w32term.c,
- * w32menu.c, w32inevt.c: Rename enum event_kind as follows:
- ascii_keystroke to ASCII_KEYSTROKE_EVENT, multibyte_char_keystroke
- to MULTIBYTE_CHAR_KEYSTROKE_EVENT, non_ascii_keystroke to
- NON_ASCII_KEYSTROKE_EVENT, timer_event to TIMER_EVENT, mouse_click
- to MOUSE_CLICK_EVENT, mouse_wheel to MOUSE_WHEEL_EVENT,
- language_change_event to LANGUAGE_CHANGE_EVENT, scroll_bar_click
- to SCROLL_BAR_CLICK_EVENT, w32_scroll_bar_click to
- W32_SCROLL_BAR_CLICK_EVENT, selection_request_event to
- SELECTION_REQUEST_EVENT, selection_clear_event to
- SELECTION_CLEAR_EVENT, buffer_switch_event to BUFFER_SWITCH_EVENT,
- delete_window_event to DELETE_WINDOW_EVENT, iconify_event to
- ICONIFY_EVENT, deiconify_event to DEICONIFY_EVENT,
- menu_bar_activate_event to MENU_BAR_ACTIVATE_EVENT, drag_n_drop to
- DRAG_N_DROP_EVENT, save_session_event to SAVE_SESSION_EVENT and
- no_event to NO_EVENT.
-
-2002-06-12 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * macmenu.c: Remove declaration of Qmouse_click and Qevent_kind.
-
-2002-06-12 Stefan Monnier <monnier@cs.yale.edu>
-
- * intervals.c (textget): Don't forget to `return'.
- (lookup_char_property): Use XCAR/XCDR.
-
-2002-06-12 Juanma Barranquero <lektu@terra.es>
-
- * xdisp.c (Fformat_mode_line): Fix typo.
-
-2002-06-12 Kim F. Storm <storm@cua.dk>
-
- * xdisp.c (Fformat_mode_line): New function.
- (frame_title_buf, frame_title_buf_end, frame_title_ptr)
- (store_frame_title_char, store_frame_title): Use unconditionally.
- (init_xdisp): Defsubr Fformat_mode_line.
- Initialize frame_title_buf etc. unconditionally.
-
-2002-06-11 Stefan Monnier <monnier@cs.yale.edu>
-
- * keyboard.c (read_key_sequence):
- Remove prev_(fkey|keytran}_(map|start|end) since we don't want to pass
- things through those maps after downcasing events.
- Enforce that keytran_end <= fkey_start, i.e. that key-translation-map
- applies after function-key-map.
- Make sure that keytran can be done in the middle in the sequence.
- Be careful not to throw away events past the one we downcase.
-
- * lread.c (read_integer): Remove unused var `tem'.
- (read1): Fix int/Lisp_Object mixup.
-
- * xfaces.c (tty_lookup_color): Type bool/Lisp_Object mismatch fixed.
-
-2002-06-11 Richard M. Stallman <rms@gnu.org>
-
- * keyboard.c (readable_events): Ignore any number of
- FOCUS_IN_EVENT events and return 0 if nothing else in buffer.
-
-2002-06-09 Miles Bader <miles@gnu.org>
-
- * xfaces.c (Ftty_supports_face_attributes_p): New function.
- (parse_rgb_list, tty_lookup_color): New functions.
- (tty_defined_color): Use `tty_lookup_color' to do all the work.
- (color_distance, Fcolor_distance): New functions.
- (TTY_SAME_COLOR_THRESHOLD): New macro.
- (Qtty_color_standard_values): New variable.
- (syms_of_xfaces): Initialize new vars & functions.
-
-2002-06-08 Colin Walters <walters@verbum.org>
-
- * textprop.c (Vchar_property_alias_alist): New variable.
- (syms_of_textprop) <Vchar_property_alias_alist>: DEFVAR_LISP.
-
- * intervals.c (lookup_char_property): New function for looking up
- overlay and text properties, created from textget.
- (textget): Use it.
-
- * intervals.h (lookup_char_property): Declare.
- (Vchar_property_alias_alist): Declare.
-
- * buffer.c (Foverlay_get): Use lookup_char_property.
-
-2002-06-07 Sam Steingold <sds@gnu.org>
-
- * xselect.c (lisp_data_to_selection_data): Fix last change:
- *data_ret is not a Lisp string, while unibyte_string is.
-
-2002-06-07 Eli Zaretskii <eliz@is.elta.co.il>
-
- * xselect.c (lisp_data_to_selection_data): Fix last change:
- set size_ret.
-
-2002-06-07 Andreas Schwab <schwab@suse.de>
-
- * m/amdx86-64.h: New file.
-
-2002-06-05 Eli Zaretskii <eliz@is.elta.co.il>
-
- * fns.c (Fstring_make_unibyte): Doc fix.
-
- * xselect.c (lisp_data_to_selection_data): If the requested type
- is STRING, call string_make_unibyte to encode the selected text
- as a string.
-
- * window.c (Fset_window_hscroll): Doc fix.
-
-2002-06-05 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * fileio.c (choose_write_coding_system):
- Call select-safe-coding-system properly.
-
-2002-06-03 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (message_with_string): Error if STRING is not a string.
-
- * fns.c (md5): Pass FILE arg to Vselect_safe_coding_system_function.
-
- * fileio.c (choose_write_coding_system): Pass FILE arg to
- Vselect_safe_coding_system_function.
-
-2002-06-03 Ken Raeburn <raeburn@gnu.org>
-
- * buffer.c (fix_overlays_before): Fix list-walking bug in 05-19 change.
-
-2002-06-02 Thien-Thi Nguyen <ttn@gnu.org>
-
- * bytecode.c (Fbyte_code): Cast `current_column' return value to int.
- * cmds.c (Fdelete_backward_char, internal_self_insert): Likewise.
- * keymap.c (describe_command): Likewise.
- * minibuf.c (read_minibuf): Likewise.
-
- * xdisp.c (redisplay_internal, redisplay_window, decode_mode_spec):
- Cast `current_column' return value to int.
- (back_to_previous_visible_line_start)
- (reseat_at_next_visible_line_start, next_element_from_buffer):
- Cast `indented_beyond_p' 3rd arg to float.
-
- * indent.c (last_known_column): Now a float.
- (current_column_1, position_indentation, current_column)
- (string_display_width): Return float.
- (Fcurrent_column): Cast `current_column' return value to int.
- (Fcurrent_indentation): Cast `position_indentation' retval to int.
- (indented_beyond_p): Third arg now a float.
- (compute_motion, vmotion): Cast `indented_beyond_p' 3rd arg to float.
-
- * lisp.h (current_column): Now returns float.
- (indented_beyond_p): 3rd arg now a float.
-
-2002-05-31 Eli Zaretskii <eliz@is.elta.co.il>
-
- * xfns.c (x_encode_text): Return stringp non-NULL if coding_system
- is Qcompound_text_with_extensions.
-
- * xselect.c (lisp_data_to_selection_data): Always set selection
- type as string if x_encode_text returns streingp non-NULL.
-
- * s/netbsd.h: Include /usr/pkg in the run time shared library path.
-
-2002-05-30 Richard M. Stallman <rms@gnu.org>
-
- * window.c (Fset_window_configuration): Correct the handling
- of point in current buffer, to work with multiple windows.
-
-2002-05-29 Colin Walters <walters@verbum.org>
-
- * lread.c (Fread_from_string): Don't depend on order of evaluation
- for C function parameters.
-
-2002-05-28 Richard M. Stallman <rms@gnu.org>
-
- * xterm.c (x_display_and_set_cursor): Change the cursor in the same
- way for blinked-off state and for a nonselected window.
-
- * window.c (window_scroll_pixel_based): Don't call Fbolp;
- instead, see if the new start pos is at beginning of line.
-
- * fileio.c (Fwrite_region): If START is a string, don't
- make any annotations.
-
- * eval.c (syms_of_eval): Doc fix.
-
-2002-05-28 Colin Walters <walters@debian.org>
-
- * emacs.c (USAGE1): Add --no-splash.
- (standard_args): Ditto.
-
-2002-05-28 Colin Walters <walters@gnu.org>
-
- * lread.c (readchar_count): New variable.
- (readchar): Increment it.
- (unreadchar): Decrement it.
- (read_multibyte): Decrement it.
- (Vread_with_symbol_positions): New variable.
- (Vread_symbol_positions_list): New variable.
- (read_internal_start): New function, created from Fread and
- Fread_from_string. Handle Vread_symbol_positions_list and
- Vread_with_symbol_positions.
- (readevalloop, Fread, Fread_from_string): Use it.
- (read1): Use readchar_count to add symbol positions to
- Vread_symbol_positions_list if Vread_with_symbol_positions is non-nil.
- (syms_of_lread): DEFVAR_LISP and initialize them.
-
- * lread.c (read0, read1, read_list, read_vector, read_multibyte)
- (substitute_object_recurse, substitute_object_in_subtree)
- (substitute_in_interval): Prototype.
- (read_multibyte): Return c if it's less than zero.
-
-2002-05-28 Kim F. Storm <storm@cua.dk>
-
- * fileio.c (Fread_file_name_internal): Added brute-force
- speed up for using predicate file-directory-p.
-
-2002-05-28 Kim F. Storm <storm@cua.dk>
-
- * fileio.c (Vread_file_name_function, Vread_file_name_predicate):
- New variables.
- (syms_of_fileio): DEFVAR_LISP them.
- (read_file_name_cleanup): New unwind function.
- (Fread_file_name_internal): Only return completions satifying
- Vread_file_name_predicate. Temporarily unwind protect and rebind
- default-directory while checking completions against the predicate.
- (Fread_file_name): Added PREDICATE argument. Specbind it to
- Vread_file_name_predicate during completion.
- Call Vread_file_name_function to read the file name if non-nil.
-
- * lisp.h (Fread_file_name): Now has 6 args.
-
- * callint.c (Fcall_interactively) <"D">: Supply Qfile_directory_p
- predicate for Fread_file_name when reading directory name.
- Supply Qnil for predicate in other calls to Fread_file_name.
-
-2002-05-26 Miles Bader <miles@gnu.org>
-
- * term.c (tty_capable_p): New function.
- * dispextern.h (tty_capable_p): New function declaration.
- (TTY_CAP_INVERSE, TTY_CAP_UNDERLINE, TTY_CAP_BOLD, TTY_CAP_DIM)
- (TTY_CAP_BLINK, TTY_CAP_ALT_CHARSET): New macros.
-
-2002-05-23 Stefan Monnier <monnier@cs.yale.edu>
-
- * fileio.c (read_non_regular, Finsert_file_contents): Use BEG_BYTE.
- (Finsert_file_contents, build_annotations): Use XCAR, XCDR.
- (Vwrite_region_annotate_functions): Docstring fix.
-
-2002-05-23 Kim F. Storm <storm@cua.dk>
-
- * xterm.c (x_write_glyphs): Clear phys_cursor_on_p if current
- phys_cursor's hpos is overwritten. This is still not completely
- correct, as it doesn't really make sense to use hpos at all to
- get the cursor glyph (as that is relative to the width of the
- characters on the line, which may have changed during the update).
-
-2002-05-22 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (enumfont_t): Remove tail, make pattern a normal
- Lisp_Object.
- (enum_font_cb2, enum_font_maybe_add_to_list, w32_list_fonts):
- Use modified enumfont_t struct.
-
- * w32term.h (text_cursor_kinds): New enumeration member HBAR_CURSOR.
-
- * w32term.c (x_draw_bar_cursor): New argument KIND; callers changed.
- Handle the `hbar' cursor type.
- (x_display_and_set_cursor): Handle the HBAR_CURSOR case.
-
- * w32fns.c (Qhbar): New variable.
- (x_specified_cursor_type): Use it.
-
-2002-05-21 Ken Raeburn <raeburn@gnu.org>
-
- * w32fns.c (enum_font_maybe_add_to_list): Use XCDR_AS_LVALUE for
- now, when the address is needed.
-
-2002-05-21 Colin Walters <walters@gnu.org>
-
- * Makefile.in (shortlisp): Add font-core.el.
-
-2002-05-20 Richard M. Stallman <rms@gnu.org>
-
- * buffer.c (syms_of_buffer) <cursor-type>: Doc fix.
-
- * keyboard.c (read_char_minibuf_menu_prompt): Don't list
- equivalent key bindings here.
-
-2002-05-20 Ken Raeburn <raeburn@gnu.org>
-
- Change symbol structure to contain a lisp object for the symbol
- name:
- * lisp.h (struct Lisp_Symbol): Replace field "name" with a lisp
- object field named "xname".
- (SYMBOL_NAME): New macro.
- * abbrev.c (write_abbrev): Use SYMBOL_NAME instead of XSYMBOL and
- name field.
- * alloc.c (Fmake_symbol): Set symbol xname field instead of name.
- (mark_object, gc_sweep): Use symbol xname field and XSTRING
- instead of name field.
- * buffer.c (buffer_slot_type_mismatch): Use XSTRING and
- SYMBOL_NAME instead of XSYMBOL and name field.
- * callint.c (Fcall_interactively): Use XSTRING and SYMBOL_NAME
- instead of XSYMBOL and name field.
- * charset.c (Fdefine_charset, Fdeclare_equiv_charset): Use XSTRING
- and SYMBOL_NAME instead of XSYMBOL and name field.
- * coding.c (Fread_coding_system, code_convert_region1)
- (code_convert_string1, code_convert_string_norecord)
- (Ffind_operation_coding_system): Use SYMBOL_NAME instead of
- XSYMBOL and name field.
- * data.c (Fkeywordp, Fsymbol_name, store_symval_forwarding)
- (Fmake_variable_buffer_local, Fmake_local_variable)
- (Fmake_variable_frame_local): Use SYMBOL_NAME and XSTRING instead
- of XSYMBOL and name field.
- * editfns.c (Fformat): Use SYMBOL_NAME and XSTRING instead of
- XSYMBOL and name field.
- * emacs.c (shut_down_emacs) [#if 0]: Use SYMBOL_NAME and XSTRING
- instead of XSYMBOL and name field.
- * eval.c (do_autoload): Use SYMBOL_NAME and XSTRING instead of
- XSYMBOL and name field.
- * fns.c (Fstring_equal, Fstring_lessp, Frequire, sxhash):
- Use SYMBOL_NAME and XSTRING instead of XSYMBOL and name field.
- * fontset.c (Fset_fontset_font): Use SYMBOL_NAME and XSTRING
- instead of XSYMBOL and name field.
- * keyboard.c (echo_char, record_char, parse_modifiers_uncached)
- (parse_modifiers, apply_modifiers, Fevent_convert_list)
- (parse_solitary_modifier, Fexecute_extended_command):
- Use SYMBOL_NAME and XSTRING instead of XSYMBOL and name field.
- * keymap.c (silly_event_symbol_error, Fsingle_key_description)
- (Fdescribe_buffer_bindings): Use SYMBOL_NAME and XSTRING instead
- of XSYMBOL and name field.
- (describe_command, describe_translation): Use SYMBOL_NAME and
- assignment instead of XSYMBOL and name field and XSETSTRING.
- * lread.c (Fintern_soft, oblookup): Use SYMBOL_NAME and XSTRING
- instead of XSYMBOL and name field.
- (Funintern): Use SYMBOL_NAME and assignment instead of XSYMBOL and
- name field and XSETSTRING.
- * macfns.c (parse_image_spec): Use SYMBOL_NAME and XSTRING instead
- of XSYMBOL and name field.
- * minibuf.c (Fread_command, Fread_variable): Use SYMBOL_NAME and
- assignment instead of XSYMBOL and name field and XSETSTRING.
- * print.c (print_error_message, print_object): Use SYMBOL_NAME and
- XSTRING instead of XSYMBOL and name field.
- * process.c (set_socket_options, Fsignal_process): Use SYMBOL_NAME
- and XSTRING instead of XSYMBOL and name field.
- * w32fns.c (parse_image_spec, w32_parse_hot_key): Use SYMBOL_NAME
- and XSTRING instead of XSYMBOL and name field.
- * xfaces.c (merge_face_vector_with_property): Use SYMBOL_NAME and
- XSTRING instead of XSYMBOL and name field.
- * xfns.c (parse_image_spec): Use SYMBOL_NAME and XSTRING instead
- of XSYMBOL and name field.
- * xselect.c (symbol_to_x_atom, x_get_foreign_selection):
- Use SYMBOL_NAME and XSTRING instead of XSYMBOL and name field.
-
-2002-05-19 Ken Raeburn <raeburn@gnu.org>
-
- * lisp.h (LISP_MAKE_RVALUE): Delete disabled version, making XCAR
- and XCDR real rvalues in most configurations.
-
- * buffer.c (fix_overlays_in_range, fix_overlays_before):
- Don't take the address of the cdr part of a cons cell; instead, track
- the parent cell and call XSETCDR, or set the variable for the head
- of the list if we haven't started down the list yet.
-
-2002-05-19 Richard M. Stallman <rms@gnu.org>
-
- * doc.c (reread_doc_file): Don't ask for confirmation.
-
-2002-05-18 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (w32_create_pixmap_from_bitmap_data): New function.
- (xbm_load_image): Use it.
- (xbm_load): Ditto.
- (xbm_read_bitmap_data): Reverted to xfns.c version.
- From David Ponce <david@dponce.com>.
-
-2002-05-17 Eli Zaretskii <eliz@is.elta.co.il>
-
- * msdos.c (sig_suspender, sigprocmask): Don't define for DJGPP
- 2.02 and later.
-
-2002-05-16 Juanma Barranquero <lektu@terra.es>
-
- * keyboard.c (Fthis_command_keys, Fthis_command_keys_vector): Fix typo.
-
-2002-05-15 Stefan Monnier <monnier@cs.yale.edu>
-
- * keyboard.c (read_char_x_menu_prompt): Use an equivalent but more
- meaningful test.
- (read_char_minibuf_menu_prompt): Fix typo.
-
-2002-05-15 Eli Zaretskii <eliz@is.elta.co.il>
-
- * eval.c (Fcommandp): Doc fix.
-
-2002-05-13 Stefan Monnier <monnier@cs.yale.edu>
-
- * keymap.c (keymap_parent): New fun, extracted from Fkeymap_parent.
- (Fkeymap_parent, keymap_memberp, fix_submap_inheritance): Use it.
- (Fset_keymap_parent): Gcpro a bit more.
- (access_keymap): Gcpro around meta_map call and around the main loop.
- (get_keyelt): Gcpro when following indirect references.
- (copy_keymap_item): New fun, extracted from Fcopy_keymap.
- (copy_keymap_1, Fcopy_keymap): Use it. Don't copy the parent map.
- (Fdefine_key, Flookup_key): Gcpro before calling get_keymap.
- Remove useless ad-hoc remap code.
-
-2002-05-13 Richard M. Stallman <rms@gnu.org>
-
- * search.c (search_buffer): Give up boyer moore search if inverse
- translation change charset_base.
-
-2002-05-12 Eli Zaretskii <eliz@is.elta.co.il>
-
- * coding.c (decode_coding) <coding_type_ccl>: If a lone CR
- characters is carried over from the previous block of text, adjust
- coding->produced to account for the extra character.
-
-2002-05-11 Andreas Schwab <schwab@suse.de>
-
- * coding.c (intersection): Keep the elements of the returned list
- in the same order as in the first list.
-
-2002-05-11 Kim F. Storm <storm@cua.dk>
-
- * keymap.c (current_minor_maps): Fix resizing of cmm_maps;
- only update cmm_size if realloc actually succeeds.
- Testing with initial size of 2 elements revealed that using
- realloc on GNU/Linux would cause a random trap in xmalloc
- later on, so I rewrote the code to use malloc/bcopy/free instead
- of realloc.
-
-2002-05-10 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (enum_font_cb2): Avoid DBCS raster fonts.
-
-2002-05-10 Eli Zaretskii <eliz@is.elta.co.il>
-
- * coding.c (encode_coding_sjis_big5): Enclose bitwise AND in
- parens, to ensure correct evaluation order.
-
-2002-05-10 Kim F. Storm <storm@cua.dk>
-
- * keymap.c (Vemulation_mode_map_alists): New variable.
- (syms_of_keymap): DEFVAR_LISP it.
- (current_minor_maps): Process keymap alists in that list before
- minor-mode-overriding-map-alist and minor-mode-map-alist.
-
-2002-05-09 Richard M. Stallman <rms@gnu.org>
-
- * search.c (Freplace_match): Doc fix.
-
-2002-05-09 Kim F. Storm <storm@cua.dk>
-
- * macterm.c (x_draw_image_foreground, x_draw_image_foreground_1):
- Enlarge cursor rectangle drawn around image with non-zero relief.
-
- * w32term.c (x_draw_image_foreground, w32_draw_image_foreground_1):
- Enlarge cursor rectangle drawn around image with non-zero relief.
-
- * xterm.c (x_draw_image_foreground, x_draw_image_foreground_1):
- Enlarge cursor rectangle drawn around image with non-zero relief.
-
-2002-05-07 Eli Zaretskii <eliz@is.elta.co.il>
-
- * xselect.c (lisp_data_to_selection_data): Don't set selection
- type if comes from the Lisp object's car. If the selection
- contains a pure ASCII text, always return QSTRING as its type.
-
-2002-05-06 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * mac.c (mac-cut-function): Doc fix.
-
-2002-05-05 Richard M. Stallman <rms@gnu.org>
-
- * s/gnu.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
-
-2002-05-04 Jason Rumney <jasonr@gnu.org>
-
- * keyboard.c (make_lispy_event) <mouse-wheel>: Set count to 1
- for event-click-count.
-
- * process.c (init_process): Only add server subfeature if we can
- use non-blocking I/O.
-
-2002-05-04 Andrew Choi <akochoi@shaw.ca>
-
- * macterm.c (XTread_socket): Call WaitNextEvent once instead of
- repeatedly.
-
-2002-05-03 Jason Rumney <jasonr@gnu.org>
-
- * process.c (Fmake_network_process): Only support server sockets
- when we can make them non-blocking.
-
- * s/ms-w32.h (HAVE_SELECT): Define.
-
- * w32.h (FILE_NDELAY): New flag.
-
- * w32.c (sys_getpeername, fcntl): New functions.
- (_sys_read_ahead): Temporarily block on non-blocking sockets.
-
- * w32proc.c: Include sys/file.h.
-
-2002-05-03 Colin Walters <walters@verbum.org>
-
- * callproc.c (Vgame_score_directory): Renamed to
- Vshared_game_score_directory.
-
-2002-04-30 Richard M. Stallman <rms@gnu.org>
-
- * s/gnu.h [emacs]: Include stdio.h.
- (GNU_LIBRARY_PENDING_OUTPUT_COUNT): New definition, conditional.
-
- * eval.c (do_autoload): Error if called while preparing to dump.
-
- * fns.c (Frequire): Error if need to load while preparing to dump.
-
-2002-04-28 Colin Walters <walters@verbum.org>
-
- * callproc.c (Vgame_score_directory) [!HAVE_SHARED_GAME_DIR]:
- Default to "~/.emacs.d/games".
-
-2002-04-29 Stefan Monnier <monnier@cs.yale.edu>
-
- * lread.c (openp): Change arg exec_only to predicate.
- (build_load_history): Use XCAR/XCDR.
- (Flocate_file_internal): New fun.
- (syms_of_lread): Defsubr it.
- (Fload): Update call to openp.
-
- * lisp.h (openp): Update prototype.
-
- * xfns.c (x_create_bitmap_from_file, x_find_image_file):
- * w32proc.c (sys_spawnve):
- * w32fns.c (x_create_bitmap_from_file, x_find_image_file):
- * w32.c (check_windows_init_file):
- * sound.c (Fplay_sound_internal):
- * process.c (Fstart_process):
- * macfns.c (x_create_bitmap_from_file, x_find_image_file):
- * mac.c (run_mac_command):
- * emacs.c (init_cmdargs):
- * callproc.c (Fcall_process): Update call to openp.
-
- * textprop.c (remove_properties): Don't use XCAR without CONSP.
-
- * xterm.c (XTread_socket): Disable the Xutf8LookupString code.
-
-2002-04-29 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * dispextern.h (DEFAULT_TOOL_BAR_BUTTON_MARGIN)
- (DEFAULT_TOOL_BAR_BUTTON_RELIEF): Change default values.
-
-2002-04-28 Richard M. Stallman <rms@gnu.org>
-
- * minibuf.c (Fall_completions, Ftry_completion): New arg to Fcommandp.
-
- * eval.c (Fcommandp): New arg for_call_interactively.
- * lisp.h (Fcommandp): Declare new arg.
-
-2002-04-28 Jason Rumney <jasonr@gnu.org>
-
- * w32proc.c (syms_of_w32proc): Get true file attributes by default.
-
- * w32.c (stat, fstat): Use file index information to generate
- inodes for directories where available.
-
-2002-04-26 Andrew Choi <akochoi@shaw.ca>
-
- * Makefile.in (C_SWITCH_SYSTEM_TEMACS): Add.
- [HAVE_CARBON]: Include Mac object files.
-
- * alloc.c, callproc.c, dispextern.h, dispnew.c, emacs.c,
- fontset.c, frame.c, frame.h, keyboard.c, sysdep.c, term.c,
- termcap.c, window.c, xdisp.c, xfaces.c: Use macros MAC_OS8,
- MAC_OSX, and MAC_OS instead of macintosh.
-
- * editfns.c [MAC_OS8]: Include stdio.h.
-
- * emacs.c [MAC_OS8]: Call mac_initialize instead of x_term_init.
-
- * fontset.c [MAC_OS]: Set Vdefault_fontset to ETL Fixed instead of
- Apple Monaco.
-
- * process.c (QCfamily, QCfilte): Declare extern.
- (wait_reading_process_input) [MAC_OSX]: Clear bit for stdin before
- calling select.
-
- * termcap.c [MAC_OSX]: Don't define tgetnum, PC, tputs, and tgetent.
-
- * tparam.c [MAC_OSX]: Don't define BC and UP.
-
- * config.in [HAVE_CARBON]: Add.
-
- * mac.c, macgui.h, macfns.c, macmenu.c, macterm.c, macterm.h:
- Move here from mac/src and mac/inc.
-
- * s/darwin.h, m/powermac.h, unexmacosx.c: New files.
-
-2002-04-26 Gerd Moellmann <gerd@gnu.org>
-
- * xterm.c (x_draw_phys_cursor_glyph): Undo last change.
- Compute phys_cursor_width from the x position returned
- by x_draw_glyhs, which is cheaper.
- (x_display_and_set_cursor): Compute the buffer-local value
- of `cursor-in-non-selected-windows' only when needed.
-
-2002-04-25 Gerd Moellmann <gerd@gnu.org>
-
- * xterm.c (x_draw_phys_cursor_glyph): Take into account that a box
- cursor on a stretch glyph has a width that depends on
- x_stretch_cursor_p.
-
-2002-04-25 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * abbrev.c (abbrev-start-location): Doc fix.
-
- * indent.c (Fvertical_motion): Fix last change.
-
-2002-04-25 Gerd Moellmann <gerd@gnu.org>
-
- * indent.c (Fvertical_motion): Move to the start of the line
- containing PT before moving up or down.
-
-2002-04-24 Gerd Moellmann <gerd@gnu.org>
-
- * dispnew.c (update_text_area): Set phys_cursor_on_p to 0 in the
- case of writing a whole row, more or less analogous to the case of
- writing only parts of a row.
-
- * xterm.c (x_display_and_set_cursor): Set phys_cursor_width to
- 0 for NO_CURSOR.
-
- * xterm.c (notice_overwritten_cursor): Fix an off by 1 error.
-
-2002-04-23 Colin Walters <walters@verbum.org>
-
- * buffer.c (syms_of_buffer): Doc fix.
-
-2002-04-23 Gerd Moellmann <gerd@gnu.org>
-
- * xterm.c (notice_overwritten_cursor): Handle the special case
- of the cursor being in the first blank non-text line at the
- end of a window.
-
- * xterm.c (x_draw_hollow_cursor, x_draw_bar_cursor)
- (x_draw_phys_cursor_glyph): Set phys_cursor_width here.
- (x_display_and_set_cursor): Don't set phys_cursor_width here, for
- bar cursors only, to make phys_cursor_width contain what its name
- suggests.
- (notice_overwritten_cursor): Consider the cursor image erased if
- the output area intersects the cursor image in y-direction.
-
-2002-04-23 Simon Marshall <simon@gnu.org>
-
- * xfns.c (x_set_mouse_color): Change default for cross_cursor
- to XC_hand2.
-
-2002-04-23 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * xdisp.c: Remove unused global variable `minibuf_prompt_pixel_width'.
-
-2002-04-22 Kim F. Storm <storm@cua.dk>
-
- * textprop.c (remove_properties): Fixed trap for malformed plist.
-
-2002-04-22 Richard M. Stallman <rms@gnu.org>
-
- * cmds.c (Fend_of_line): Handle intangible text in mid line.
-
- * window.c (make_window): Initialize height_fixed_p,
- last_cursor_off_p, and p->cursor_off_p slots.
-
-2002-04-20 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * fns.c (use-dialog-box): Doc fix.
-
-2002-04-19 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * xterm.c (note_mode_line_or_margin_highlight): Remove unused
- variables `row', `i' and `area'.
- (XTread_socket) <KeyPress>: Pass KeyPress events when in menu to
- toolkit library.
-
-2002-04-19 Stefan Monnier <monnier@cs.yale.edu>
-
- * xfaces.c (clear_font_table): Don't free the default font of
- a frame even if it's on another display.
- (Finternal_set_lisp_face_attribute): Don't use XFRAME on something
- that could be Qt.
-
-2002-04-19 Juanma Barranquero <lektu@terra.es>
-
- * indent.c (Fmove_to_column): Remove unused local variable
- `next_boundary_byte'.
- (current_column_1): Likewise.
-
-2002-04-19 Eli Zaretskii <eliz@is.elta.co.il>
-
- * msdos.c (Qhbar): New variable.
- (syms_of_msdos): Intern and staticpro it.
- (IT_set_cursor_type, IT_set_frame_parameters): Handle the `hbar'
- cursor type.
-
-2002-04-19 Dave Lambert <dlambert@acm.org>
-
- Theses change implement an underscore-like (`hbar') cursor.
-
- * xterm.h (text_cursor_kinds): New enumeration member HBAR_CURSOR.
-
- * xterm.c (x_draw_bar_cursor): New argument KIND; callers changed.
- Handle the `hbar' cursor type.
- (x_display_and_set_cursor): Handle the HBAR_CURSOR case.
-
- * xfns.c (Qhbar): New variable.
- (syms_of_xfns): Intern and staticpro it.
- (x_specified_cursor_type): Handle `hbar' cursor.
-
- * s/sol2-5.h (bcopy, bzero, bcmp): Define only if HAVE_BCOPY is
- not defined.
-
-2002-04-18 Richard M. Stallman <rms@gnu.org>
-
- * textprop.c (remove_properties): New arg LIST allows scanning
- either a list or a plist.
- (interval_has_some_properties_list): New function, like
- interval_has_some_properties using list instead of plist.
- All callers changed.
- (Fremove_list_of_text_properties): New function.
- (syms_of_textprop): Defsubr it.
-
-2002-04-17 Eli Zaretskii <eliz@is.elta.co.il>
-
- * s/sol2.h (HAVE_LIBKSTAT): Define only if not already defined.
-
-2002-04-17 Juanma Barranquero <lektu@terra.es>
-
- * indent.c (Fmove_to_column): Remove unused local variable `end_byte'.
-
-2002-04-17 Eli Zaretskii <eliz@is.elta.co.il>
-
- * window.c (coordinates_in_window): Don't report on margin area
- if its width is zero.
-
-2002-04-16 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (Fx_file_dialog): Decode file name before using.
-
- * w32term.c (construct_drag_n_drop): Likewise.
-
-2002-04-16 Eli Zaretskii <eliz@is.elta.co.il>
-
- * puresize.h (BASE_PURESIZE): Increase to 830000, since we now
- store load-history in pure space.
-
- * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 50000.
-
-2002-04-16 Stefan Monnier <monnier@cs.yale.edu>
-
- * xterm.c (Qlatin_1, Qutf_8): New vars.
- (syms_of_xterm): Initialize them.
- (XTread_socket): Eliminate incorrect optimization that tried to avoid
- decoding the output of X*LookupString.
- Always use latin-1 to decode the output of XLookupString.
- Try Xutf8LookupString if XmbLookupString failed.
-
- * region-cache.c (new_region_cache): Use BEG.
-
-2002-04-16 Gerd Moellmann <gerd@gnu.org>
-
- * buffer.c (MMAP_ALLOCATED_P): New macro to be set from system
- configuration files.
- (mmap_enlarge): Enlarge mapped regions only if MMAP_ALLOCATED_P
- returns 0.
-
-2002-04-15 Andreas Schwab <schwab@suse.de>
-
- * config.in: Regenerated using autoheader.
-
- * m/7300.h, m/acorn.h, m/alliant-2800.h, m/alliant.h, m/alpha.h,
- m/altos.h, m/amdahl.h, m/apollo.h, m/arm.h, m/att3b.h, m/aviion.h,
- m/celerity.h, m/clipper.h, m/cnvrgnt.h, m/convex.h, m/cydra5.h,
- m/delta.h, m/delta88k.h, m/dpx2.h, m/elxsi.h, m/gec63.h,
- m/gould.h, m/hp800.h, m/hp9000s300.h, m/i860.h, m/ia64.h,
- m/ibmps2-aix.h, m/ibmrs6000.h, m/ibmrt-aix.h, m/ibmrt.h,
- m/ibms390.h, m/intel386.h, m/iris4d.h, m/irist.h, m/isi-ov.h,
- m/m68k.h, m/macppc.h, m/masscomp.h, m/mg1.h, m/mips-siemens.h,
- m/mips.h, m/news-r6.h, m/news.h, m/next.h, m/nh3000.h, m/nh4000.h
- m/ns32000.h, m/orion.h, m/pfa50.h, m/plexus.h, m/pmax.h,
- m/powerpcle.h, m/pyrmips.h, m/sequent-ptx.h, m/sequent.h,
- m/sparc.h, m/sr2k.h, m/symmetry.h, m/tad68k.h, m/tahoe.h,
- m/targon31.h, m/tek4300.h, m/tekxd88.h, m/template.h, m/tower32.h,
- m/tower32v3.h, m/ustation.h, m/vax.h, m/wicat.h, m/windowsnt.h,
- m/xps100.h, s/aix3-2.h, s/aix4-2.h, s/irix4-0.h, s/irix5-0.h,
- s/sco5.h, s/unixware.h: Don't set HAVE_ALLOCA, C_ALLOCA and
- STACK_DIRECTION, now set by autoconf.
-
-2002-04-14 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * dispnew.c (marginal_area_string): Sort arguments.
-
- * dispextern.h (marginal_area_string): Add prototype.
-
-2002-04-13 Richard M. Stallman <rms@gnu.org>
-
- * fileio.c (Finsert_file_contents):
- Don't call temp_output_buffer_setup--do just part, by hand.
-
- * coding.c (run_pre_post_conversion_on_str):
- Don't call temp_output_buffer_setup--do just part, by hand.
-
- * keyboard.c (command_loop_1): Don't call start_hourglass
- or cancel_hourglass when executing a macro.
-
- * marker.c (count_markers): New function.
-
- * xdisp.c (display_mode_element): Don't let mode_line_proptrans_alist
- grow without limit. Move recently used elements to the front.
-
-2002-04-13 Eli Zaretskii <eliz@is.elta.co.il>
-
- * unexelf.c (unexec) [__sgi]: Undo the change from 2002-01-20.
-
-2002-04-12 Gerd Moellmann <gerd@gnu.org>
-
- * xdisp.c (sync_frame_with_window_matrix_rows): Don't give frame
- rows marginal areas.
- (Fdump_frame_glyph_matrix) [GLYPH_DEBUG]: New function.
- (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
-
- * dispnew.c (marginal_area_string): Check that glyph row is enabled.
-
-2002-04-12 Dave Love <fx@gnu.org>
-
- * dispnew.c (marginal_area_string): New.
-
- * window.c (window_part): Add ON_LEFT_MARGIN, ON_RIGHT_MARGIN.
- (Qleft_margin, Qright_margin): Declare.
- (coordinates_in_window, (Fcoordinates_in_window_p): Deal with margins.
-
- * xterm.c (note_mode_line_or_margin_highlight): Renamed from
- note_mode_line_highlight and extended.
-
- * keyboard.c (Qleft_margin, Qright_margin): Declare.
- (make_lispy_event): Deal with mouse events in margins.
-
-2002-04-12 Stefan Monnier <monnier@cs.yale.edu>
-
- * msdos.c (dos_rawgetc): Use a single event for HELP_EVENT.
-
- * keyboard.c (command_loop_1): Turn off transient-mark-mode rather
- than deactivating the mark if tmm is set to `lambda'.
- (gen_help_event, kbd_buffer_store_help_event, kbd_buffer_get_event):
- Use a single event for HELP_EVENT.
- (Fexecute_extended_command): Save last_point_position.
-
-2002-04-12 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * lisp.h (Fpropertize): Add prototype.
-
- * fns.c (Fy_or_n_p): Use `minibuffer-prompt' face for prompt.
-
-2002-04-10 Colin Walters <walters@verbum.org>
-
- * config.in: Add HAVE_SHARED_GAME_DIR.
-
- * callproc.c (Vgame_score_directory): New variable.
- (syms_of_callproc) <Vgame_score_directory>: DEFVAR_LISP.
-
-2002-04-10 Richard M. Stallman <rms@gnu.org>
-
- * puresize.h (BASE_PURESIZE): Reduce again to avoid big excess.
-
-2002-04-09 Stefan Monnier <monnier@cs.yale.edu>
-
- * minibuf.c (read_minibuf): Use empty_string.
- (Ftry_completion): Allow lambda forms and lists of strings for `alist'.
- Short-circuit the search as soon as it "failed".
- (Fall_completions): Allow lambda forms and lists of strings for alist.
- (Fcompleting_read): Set Qminibuffer_completion_confirm to nil
- when require_match is nil.
- (Ftest_completion): Rename from `test_completion' and export to elisp.
- Call the predicate also when alist is a list.
- Obey Vcompletion_regexp_list.
- (do_completion, Fminibuffer_complete_and_exit): Use it.
- (Fassoc_string): Rename from `assoc_for_completion'.
- Allow list of strings as well and export to elisp.
-
-2002-04-08 Stefan Monnier <monnier@cs.yale.edu>
-
- * puresize.h (BASE_PURESIZE): Increase to 900KB.
-
-2002-04-08 Juanma Barranquero <lektu@terra.es>
-
- * w32.c (sys_accept): Don't hide variable `s'.
-
-2002-04-05 Gerd Moellmann <gerd@gnu.org>
-
- * callint.c (Fcall_interactively): Use INTEGERP instead of
- NUMBERP for checking Vhistory_length.
-
-2002-04-05 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * sound.c (Fplay_sound_internal): Renamed from Fplay_sound.
- Doc fix to reflect it.
-
-2002-04-04 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (display_mode_element): New arg RISKY.
- Disregard text props found or specified within a variable
- that isn't marked risky-local-variable.
- (Qrisky_local_variable): New variable.
- (syms_of_xdisp): Init and staticpro it.
-
-2002-04-04 Stefan Monnier <monnier@cs.yale.edu>
-
- * undo.c (record_point): New fun.
- (record_delete, record_insert): Use it.
-
-2002-04-03 Juanma Barranquero <lektu@terra.es>
-
- * doc.c (Fdocumentation): Add missing parentheses.
- (Fdocumentation_property): Likewise.
-
-2002-04-03 Stefan Monnier <monnier@cs.yale.edu>
-
- * doc.c (Fdocumentation, Fdocumentation_property): When the doc
- data is 0, just return nil.
-
-2002-04-03 Eli Zaretskii <eliz@is.elta.co.il>
-
- * msdos.c (syms_of_msdos): Fix last change with
- mouse_autoselect_window.
-
-2002-04-03 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * w32term.c, xterm.c, msdos.c: Rename autoselect_window_p to
- mouse_autoselect_window.
-
-2002-04-02 Stefan Monnier <monnier@cs.yale.edu>
-
- * keyboard.c (make_lispy_event): Handle unknown keysyms together
- with system-specific keysyms. Use it also for unknown function keys.
-
- * doc.c (reread_doc_file): Return whether reload was attempted.
- (Fdocumentation, Fdocumentation_property): Don't try to reload
- if the doc is 0 and only ask once.
-
- * Makefile.in (lisp, shortlisp): Add ucs-tables.elc.
-
-2002-04-02 Eli Zaretskii <eliz@is.elta.co.il>
-
- * keyboard.c (read_char): If the event was Qselect_window,
- restore timer_idleness_start_time to its previous value.
-
- * msdos.c (dos_rawgetc): Generate SELECT_WINDOW_EVENTs when required.
-
-2002-04-01 Stefan Monnier <monnier@cs.yale.edu>
-
- * region-cache.c (new_region_cache): Use BEG.
-
- * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
- Use BEG and BEG_BYTE.
-
- * doc.c (get_doc_string): Return nil if the location is wrong.
- (reread_doc_file): New fun.
- (Fdocumentation, Fdocumentation_property):
- Call it if get_doc_string fails.
- (Fsnarf_documentation): Make it work for a dumped Emacs.
-
- * charset.h (DEC_POS, BUF_DEC_POS): Use BEG_BYTE.
- Bound the search with MAX_MULTIBYTE_LENGTH to avoid pathological case.
-
- * charset.c (Fstring): Allow 0 arguments.
-
- * xterm.c (XTread_socket): Fix int/Lisp_Object confusion.
-
- * process.c (DATAGRAM_CONN_P, list_processes_1)
- (Fprocess_datagram_address, Fset_process_datagram_address)
- (Fset_network_process_options, server_accept_connection):
- Fix some int/Lisp_Object confusions (thank you union types).
-
-2002-04-01 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * msdos.c: Rename x_autoselect_window_p to autoselect_window_p.
-
- * w32term.c: Likewise.
- (note_mouse_movement): Put code for x_autoselect_window_p in #if 0.
-
- * keyboard.c (Qselect_window): New symbol.
- (head_table): Use it.
- (keys_of_keyboard): Bound select-window event to handle-select-window.
- (kbd_buffer_get_event): Make a Lisp event from SELECT_WINDOW_EVENT.
-
- * xterm.c: Rename x_autoselect_window_p to autoselect_window_p.
- (last_window): New variable.
- (XTread_socket): Generate SELECT_WINDOW_EVENTs.
- (note_mouse_movement): Remove reimplemented code in #if 0.
- (XTread_socket): Generate SELECT_WINDOW_EVENTs only for
- Emacs windows.
-
- * termhooks.h (enum event_kind): New event type `SELECT_WINDOW_EVENT'.
-
-2002-03-31 Gerd Moellmann <gerd@gnu.org>
-
- * xterm.c (x_get_char_face_and_encoding): Add parameter DISPLAY_P.
- Callers changed.
-
-2002-03-30 Richard M. Stallman <rms@gnu.org>
-
- * window.c (window_scroll_pixel_based): Exit the move_it_by_lines
- loop whenever it stops making progress.
-
- * widget.c (set_frame_size): Don't call change_frame_size.
-
-2002-03-30 Gerd Moellmann <gerd@gnu.org>
-
- * dispnew.c (direct_output_for_insert):
- Call mark_window_display_accurate.
-
-2002-03-29 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (w32_draw_relief_rect): Fix calculations of line lengths.
-
-2002-03-29 Eli Zaretskii <eliz@is.elta.co.il>
-
- * Makefile.in (lread.o): Depend on coding.h.
-
- * lread.c (openp, Fload): Encode the file name before passing it
- to `stat', `access', and `emacs_open'.
- (openp): GCPRO the encoded file name. Don't recompute Lisp
- strings unnecessarily.
-
-2002-03-29 Kim F. Storm <storm@cua.dk>
-
- * fns.c (Flax_plist_put): Doc fix.
-
-2002-03-28 Miles Bader <miles@gnu.org>
-
- * process.c (DATAGRAM_CONN_P): Make sure PROC is really a process.
-
-2002-03-27 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * process.c (set-network-process-options): Add usage.
- (make-network-process): Doc fix.
-
-2002-03-26 Eli Zaretskii <eliz@is.elta.co.il>
-
- * emacs.c (Fdump_emacs): Fix a typo in "command-line-processed".
-
-2002-03-26 Richard M. Stallman <rms@gnu.org>
-
- * fns.c (Fsubstring_no_properties): New function.
- (Flax_plist_get, Flax_plist_put): New functions.
- (syms_of_fns): defsubr them.
-
- * xdisp.c (update_menu_bar): Test only update_mode_lines;
- don't test or alter w->update_mode_line.
-
- * window.c (Fdisplay_buffer): Doc fix.
-
-2002-03-24 Richard M. Stallman <rms@gnu.org>
-
- * regex.c (GET_UNSIGNED_NUMBER): Give proper error for spaces.
-
-2002-03-24 Gerd Moellmann <gerd@gnu.org>
-
- * eval.c (Qdeclare, Vmacro_declaration_function): New variables.
- (Fdefmacro): Handle `(declare ...)'.
- (syms_of_eval) <Qdeclare>: Initialize and staticpro.
- (syms_of_eval) <Vmacro_declaration_function>: DEFVAR_LISP.
-
-2002-03-24 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (xbm_scan, xbm_load_image, xbm_read_bitmap_data)
- (xbm_file_p): Add prototypes.
- (xbm_format, xbm_image_p): Sync with xfns.c.
- (reflect_byte): New function.
- (xbm_read_bitmap_data): Sync with xfns.c, adapt for Windows.
- (xbm_load_image): Create bitmaps with a depth of 1.
- (init_xfns): Enable XBM images.
-
-2002-03-23 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (w32_handle_tool_bar_click): Detect up and down events
- correctly. Do not pass up_modifier to keyboard buffer.
-
- * w32fns.c [HAVE_IMAGES, HAVE_PBM]: Remove conditionals.
-
-2002-03-22 Stefan Monnier <monnier@cs.yale.edu>
-
- * Makefile.in (bootstrapclean): New target.
- (bootstrap-temacs, bootstrap-doc): Remove.
- (bootstrap-emacs): Use a bog-standard `temacs'.
- Don't bother to build a DOC file.
-
- * sysdep.c (wait_for_termination): Use sigsuspend rather than sigpause.
-
- * emacs.c (main): Handle --unibyte, --multibyte, and --no-loadup
- in temacs even if !CANNOT_DUMP.
- (standard_args): Keep --no-loadup even if !CANNOT_DUMP.
-
- * alloc.c (check_pure_size): Only output a warning.
-
-2002-03-22 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (Fx_create_frame): Enable tool-bar when images are
- supported.
-
- * w32term.c (zv_bits): Declare as short, for word alignment.
- (w32_read_socket) <WM_XBUTTONUP>: Fix last change.
- (syms_of_w32term): Define x-use-underline-position-properties.
-
- * w32fns.c (x_set_cursor_color): Set cursor_gc as well.
- (clear_image_cache): Block input, fix logic, clear matrices in
- all frames that share this cache.
-
-2002-03-22 Eli Zaretskii <eliz@is.elta.co.il>
-
- * emacs.c (main): Update the Copyright year in the blurb printed
- by "emacs --version".
-
- * xdisp.c (message_with_string): Fix syntax of a call to GCPRO2.
-
- * xterm.c (XTread_socket): If XK_ISO_Lock and
- XK_ISO_Last_Group_Lock are defined, handle keysyms between
- XK_ISO_Lock and XK_ISO_Last_Group_Lock similarly to Mode_switch.
-
-2002-03-21 Kim F. Storm <storm@cua.dk>
-
- * keyboard.c (menu_bar_items): Mostly undo 2002-02-20 patch, so
- menu-bar bindings in keymap and local-map properties _are_ used.
- But try keymap property first in accordance with 2002-01-03 patch.
- Added comment describing why this is not always reliable.
- (tool_bar_items): Ditto for tool-bar.
-
-2002-03-21 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (x_clear_image_1): Disable color table code.
-
-2002-03-21 Kim F. Storm <storm@cua.dk>
-
- * lisp.h (DEFUN) [USE_NONANSI_DEFUN]: The 2001-10-17 patch
- removed the wrong version of the DEFUN macro; fixed it.
-
- * fns.c (Ffeaturep): Allow subfeature to be a list (test using
- Fmember rather than Fmemq).
- (Fprovide): Check that subfeatures is a list.
-
- * process.c (QCfeature, QCdatagram): Removed variables.
- (QCtype, Qdatagram): New variables.
- (network_process_featurep): Removed function.
- (Fmake_network_process): Removed :feature check.
- Use :type 'datagram instead of :datagram t to create a datagram
- socket. This allows us to add other connection types (e.g. raw
- sockets) later in a consistent manner.
- (init_process) [subprocess, HAVE_SOCKETS]: Provide list of
- supported subfeatures for feature make-network-process.
- (syms_of_process) [subprocess]: Remove QCfeature and QCdatagram.
- Intern and staticpro QCtype and Qdatagram.
- (syms_of_process) [!subprocess]: Intern and staticpro QCtype.
-
- * xfns.c (QCtype): Remove duplicate declaration and
- initialization (is now declared in process.c).
-
- * w32fns.c (QCtype): Remove duplicate declaration and
- initialization (is now declared in process.c).
-
-2002-03-21 Richard M. Stallman <rms@gnu.org>
-
- * regex.c (DISCARD_FAILURE_REG_OR_COUNT): New macro.
- (CHECK_INFINITE_LOOP): Use DISCARD_FAILURE_REG_OR_COUNT
- when jumping to `fail' to avoid undoing reg changes in the
- last iteration of the loop.
- (GET_UNSIGNED_NUMBER): Skip spaces around the number.
-
- * Makefile.in (dispnew.o, sysdep.o, xdisp.o, xselect.o, alloc.o):
- Depend on process.h.
-
-2002-03-20 Jason Rumney <jasonr@gnu.org>
-
- Most of the following changes are still conditional on HAVE_IMAGES
- which is not set by default on Windows.
-
- * emacs.c (main) [WINDOWSNT]: Call init_xfns.
-
- * w32fns.c (x_set_cursor_color): Set foreground of cursor, not frame.
- (Fimage_size, Fimage_mask_p, XPutPixel): New functions.
- (four_corners_best, x_clear_image_1, x_clear_image)
- (x_alloc_image_color, postprocess_image)
- (x_create_x_image_and_pixmap, x_destroy_x_image, xbm_load_image)
- (x_from_x_colors, x_disable_image, pbm_load): Adapt for Windows.
- (init_xfns, syms_of_w32fns): Initialize image functions and constants.
-
- * w32gui.h (struct XImage): Define.
-
- * w32term.c (w32_read_socket) <WM_XBUTTONUP>: Use XFASTINT to
- extract mouse co-ordinates.
-
-2002-03-20 Jason Rumney <jasonr@gnu.org>
-
- * w32.c (init_winsock): Dynamically load new server and UDP
- socket functions.
- (socket_to_fd): New function.
- (sys_socket): Use it.
- (sys_setsockopt, sys_listen, sys_getsockname, sys_accept)
- (sys_recvfrom, sys_sendto): New wrapper functions.
-
- * process.c (QCfamily, QCfilter): Remove duplicate declaration
- and initialization.
-
- * makefile.w32-in (LIBS): Remove $(WSOCK32).
-
-2002-03-20 Eli Zaretskii <eliz@is.elta.co.il>
-
- * process.c (conv_sockaddr_to_lisp, conv_lisp_to_sockaddr):
- Don't use "sun" as a variable, it's a predefined constant on Sun
- machines.
-
-2002-03-20 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * bytecode.c (Fbyte_code): Revert last change.
-
-2002-03-19 Kim F. Storm <storm@cua.dk>
-
- * makefile.w32-in (LIBS): Add $(WSOCK32).
- From David Ponce <dponce@voila.fr>.
-
-2002-03-18 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * process.c (wait_reading_process_input): Move variables `pname'
- and `pnamelen' down where they are used.
-
- * bytecode.c (Fbyte_code): Discard unused computed value to
- prevent gcc warning.
-
- * lisp.h (Fplist_member): Add prototype.
-
-2002-03-18 Kim F. Storm <storm@cua.dk>
-
- * config.in: Add HAVE_SENDTO, HAVE_RECVFROM, HAVE_SETSOCKOPT,
- HAVE_GETSOCKOPT, HAVE_GETPEERNAME, HAVE_GETSOCKNAME, and HAVE_SYS_UN_H.
-
- * process.c: Define HAVE_LOCAL_SOCKETS based on HAVE_SYS_UN_H.
- Remove explicit GNU_LINUX settings for datagram support.
-
-2002-03-18 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * process.c (Fmake_network_process): Remove unused variable `sa'.
- Doc fix. Add usage:.
- (set_socket_options): Remove unused variables `optnum' and `opttype'.
-
-2002-03-17 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (cursor_type_changed): New variable.
- (redisplay_internal): Redisplay all windows if cursor_type_changed.
- Clear it when clearing windows_or_buffers_changed.
- (try_cursor_movement, redisplay_window, try_window_id)
- (try_window_reusing_current_matrix): Test cursor_type_changed
- along with windows_or_buffers_changed.
-
- * window.h (cursor_type_changed): New variable.
-
- * xfns.c (x_set_cursor_type): Set cursor_type_changed,
- not update_mode_lines, and always set it to 1.
-
- * xdisp.c (clear_garbaged_frames): Don't set windows_or_buffers_changed
- if no frames needed redrawing.
-
-2002-03-17 Kim F. Storm <storm@cua.dk>
-
- The following changes add support for network server processes,
- datagram connections, and local (unix) sockets.
-
- * process.h (struct Lisp_Process): New member log.
- Doc fix: Member command used to indicate stopped network process.
- Doc fix: Member childp contains plist for network process.
- Doc fix: Member kill_without_query is inverse of query-on-exit flag.
-
- * process.c (Qlocal, QCname, QCbuffer, QChost, QCservice, QCfamily)
- (QClocal, QCremote, QCserver, QCdatagram, QCnowait, QCnoquery, QCstop)
- (QCcoding, QCoptions, QCfilter, QCsentinel, QClog, QCfeature): New
- variables.
- (NETCONN1_P): New macro.
- (DATAGRAM_SOCKETS): New conditional symbol.
- (datagram_address): New array.
- (DATAGRAM_CONN_P, DATAGRAM_CHAN_P): New macros.
- (status_message): Use concat3.
- (Fprocess_status): Add `listen' status to doc string. Return
- `stop' for a stopped network process.
- (Fset_process_buffer): Update contact plist for network process.
- (Fset_process_filter): Ditto. Don't enable input for stopped
- network processes. Server must listen, even if filter is t.
- (Fset_process_query_on_exit_flag, Fprocess_query_on_exit_flag):
- New functions.
- (Fprocess_kill_without_query): Removed. Now defined in simple.el.
- (Fprocess_contact): Added KEY argument. Handle datagrams.
- (list_processes_1): Optionally show only processes with the query
- on exit flag set. Dynamically adjust column widths. Omit tty
- column if not needed. Report stopped network processes. Identify
- server and datagram network processes.
- (Flist_processes): New optional arg `query-only'.
- (conv_sockaddr_to_lisp, get_lisp_to_sockaddr_size)
- (conv_lisp_to_sockaddr, set_socket_options)
- (network_process_featurep, unwind_request_sigio): New helper
- functions.
- (Fprocess_datagram_address, Fset_process_datagram_address):
- (Fset_network_process_options): New lisp functions.
- (Fopen_network_stream): Removed. Now defined in simple.el.
- (Fmake_network_process): New lisp function. Code is based on
- previous Fopen_network_stream, but heavily reworked with new
- property list based argument list, support for datagrams, server
- processes, and local sockets in addition to old client-only
- functionality.
- (server_accept_connection): New function.
- (wait_reading_process_input): Use it to handle incoming connects.
- Do not enable input on a new connection if process is stopped.
- (read_process_output): Handle datagram sockets. Use 2k buffer for
- them.
- (send_process): Handle datagram sockets.
- (Fstop_process, Fcontinue_process): Apply to network processes. A
- stopped network process is indicated by setting command field to t.
- (Fprocess_send_eof): No-op if datagram connection.
- (Fstatus_notify): Don't read input for a stream server socket or a
- stopped network process.
- (init_process): Initialize datagram_address array.
- (syms_of_process): Intern and staticpro new variables, defsubr new
- functions.
-
-2002-03-16 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (w32_to_all_x_charsets): Return correct type in
- startup case.
-
-2002-03-16 Richard M. Stallman <rms@gnu.org>
-
- * xdisp.c (redisplay_internal, redisplay_windows):
- Use list_of_error to call internal_condition_case_1.
- (safe_eval, safe_call): Pass Qt to internal_condition_case_{1,2}
- so as to catch all errors with no possibility of debugger redisplay.
- (list_of_error): New variable.
- (syms_of_xdisp): Init and staticpro it.
-
- * print.c (print_object): Delete `\ ' from printed rep of frame.
-
-2002-03-15 Eli Zaretskii <eliz@is.elta.co.il>
-
- * msdos.c (dos_rawgetc): Disable the x-autoselect-window feature,
- until its implementation is fixed.
-
-2002-03-14 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * xfns.c (png_load): Remove unused variable `gamma_str'.
-
-2002-03-14 Richard M. Stallman <rms@gnu.org>
-
- * xfns.c (x_real_positions): Handle failure in XQueryTree.
-
-2002-03-14 Miles Bader <miles@gnu.org>
-
- * intervals.c (adjust_for_invis_intang): New function.
- (set_point_both): Use `adjust_for_invis_intang' to do most of the
- work for dealing with invisible+intangible regions. Do so before
- and after both forward and backward movements, to handle both
- front-sticky and rear-sticky cases.
- * textprop.c (text_property_stickiness): Function moved here from
- `editfns.c'.
- * intervals.h (text_property_stickiness): New declaration.
- * editfns.c (char_property_eq): Function removed.
- (text_property_stickiness): Function moved to `textprop.c'.
-
-2002-03-13 Jason Rumney <jasonr@gnu.org>
-
- * config.in: Add STRFTIME_NO_POSIX2.
-
- * strftime.c (my_strftime) [STRFTIME_NO_POSIX2]: Handle %h, %EX
- and %OX when underlying strftime does not.
-
-2002-03-13 Stefan Monnier <monnier@cs.yale.edu>
-
- * xterm.c (x_set_toolkit_scroll_bar_thumb) <USE_MOTIF>:
- Use a fixed-size thumb (based on an ad-hoc estimate of 30 chars per
- line) to avoid annoying flicker.
- (xm_scroll_callback): Get rid of the now unnecessary kludge.
- (XTread_socket): Mark it static.
-
- * xdisp.c (display_mode_element): Fix int/Lisp_Object mixup.
-
-2002-03-13 Kim F. Storm <storm@cua.dk>
-
- * puresize.h (BASE_PURESIZE): Increase to 775000.
-
-2002-03-12 Juanma Barranquero <lektu@terra.es>
-
- * editfns.c (syms_of_editfns): Fix typo.
-
-2002-03-12 Gerd Moellmann <gerd@gnu.org>
-
- * xsmfns.c: Include stdio.h because termhooks.h needs it.
- Include termopt.h for interrupt_input.
-
-2002-03-11 Andreas Schwab <schwab@suse.de>
-
- * coding.c (syms_of_coding) <file-coding-system-alist>: Doc fix.
-
-2002-03-11 Gerd Moellmann <gerd@gnu.org>
-
- * xterm.c (note_mouse_movement): Put code for
- x_autoselect_window_p in #if 0.
-
- * lread.c (Fload): Don't assume that message_with_string uses the
- string it is given like a C string.
-
-2002-03-10 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-
- * xterm.h (x_session_check_input, x_session_initialize): Declare.
-
- * xterm.c (XTread_socket): Add call to x_session_check_input and
- x_session_have_connection.
- (x_initialize): Add call to x_session_initialize.
-
- * termhooks.h (enum event_kind): Add save_session_event.
-
- * keyboard.c: Add Emacs event save_session_event.
-
- * emacs.c (main): Add call to syms_of_xsmfns.
-
- * lisp.h (syms_of_xsmfns): Declare extern.
-
- * config.in: Add HAVE_X_SM.
-
- * Makefile.in (LIBXT): Add -lSM -lICE
- if HAVE_X_SM and not USE_X_TOOLKIT.
- (XOBJ): New file xsmfns.c added.
-
- * xsmfns.c: New file for X session management.
-
-2002-03-09 Jason Rumney <jasonr@gnu.org>
-
- * fileio.c (Fcopy_file) [WINDOWS_NT]: Ensure file is not
- read-only when setting modified time.
-
-2002-03-08 Gerd Moellmann <gerd@gnu.org>
-
- * xdisp.c (move_it_vertically_backward): At the end of the function,
- when moving forward by lines, treat terminal frames specially.
-
- * keyboard.c (echo_char): Make sure to add a separator between
- keys even if echo_dash hasn't been called.
-
- * xdisp.c: Use new string macros.
- (update_echo_area): Pass number of bytes to message3 instead of
- number of chars.
- (set_message_1): Don't access a string's size_byte directly.
- (decode_mode_spec_coding): Use number of bytes of eoltype string
- instead number of chars.
-
- * lisp.h (SREF, SDATA, SCHARS, SBYTES, SMBP): New macros.
-
-2002-03-08 Juanma Barranquero <lektu@terra.es>
-
- * w32fns.c (Fx_display_color_cells): Force 24+ bit color depths to
- 24-bit.
-
-2002-03-06 Jason Rumney <jasonr@gnu.org>
-
- * w32term.c (x_draw_hollow_cursor): Draw same size as block cursor.
-
-2002-03-06 Gerd Moellmann <gerd@gnu.org>
-
- * keyboard.c (echo_prompt, echo_char, echo_dash, echo_now)
- (cancel_echoing, echo_length, echo_truncate): Changed to
- work with new kboard definition.
- (echo_now): Use message3_nolog instead of message2_nolog.
-
- * alloc.c (mark_kboards): Mark echo_string.
-
- * keyboard.h (ECHOBUFSIZE): Removed.
- (struct kboard): Member echoptr removed, member echobuf renamed
- to echo_string.
-
- * xdisp.c (message_with_string): Use Fformat instead of doprnt and
- message3 instead of message2 to display the message using STRING's
- text properties.
-
-2002-03-05 Andreas Schwab <schwab@suse.de>
-
- * xdisp.c (hscroll_margin): Change to EMACS_INT.
-
-2002-03-05 Per Abrahamsen <abraham@dina.kvl.dk>
-
- * frame.c (default-frame-alist): Explain that setting it doesn't
- affect existing frames.
-
-2002-03-05 Stefan Monnier <monnier@cs.yale.edu>
-
- * indent.c (skip_invisible): Fix my brain fart.
-
- * dispnew.c (sit_for): Don't wait if executing a kbd macro.
-
-2002-03-04 Stefan Monnier <monnier@cs.yale.edu>
-
- * dosfns.c, dosfns.h, dispnew.c, dispextern.h, commands.h, charset.c,
- * alloc.c, abbrev.c, emacs.c, eval.c, keyboard.c, keyboard.h,
- * lisp.h, lread.c, sysdep.c, termcap.c, termchar.h, w32term.c,
- * window.c, xdisp.c, xselect.c, xterm.c: Change defvar_int definition
- and variables to use EMACS_INT instead of just int.
-
- * buffer.c (syms_of_buffer): Allow non-string `mode-name'.
-
-2002-03-04 Eli Zaretskii <eliz@is.elta.co.il>
-
- * sysdep.c (sys_subshell) [MSDOS]: If PWD is set in the
- environment, pass it down with corrected value.
-
-2002-03-04 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * lread.c (read_filtered_event): Do not call start_hourglass
- before returning.
-
-2002-03-04 Juanma Barranquero <lektu@terra.es>
-
- * w32term.c (x_display_and_set_cursor): Fix typo.
-
-2002-03-03 Richard M. Stallman <rms@gnu.org>
-
- * fileio.c (Fmake_temp_name): Doc fix.
-
-2002-03-03 Gary Wong <gtw@gnu.org>
-
- * termcap.c [!emacs]: Replace ospeed for building standalone
- libtermcap, for binary compatibility.
-
- * tparam.c [!emacs]: Move #define of bcopy to after string.h.
-
-2002-03-03 Richard M. Stallman <rms@gnu.org>
+ 2007-12-22 Eli Zaretskii <eliz@gnu.org>
+
- * xrdb.c (file_p): Rename arg `path' to `filename'.
++ * callint.c (syms_of_callint) <command-history>: Add reference to
++ history-length in the doc string.
+
- * abbrev.c (Fexpand_abbrev): Increment plist as use count
- only if it is an integer.
++2007-12-17 Jason Rumney <jasonr@gnu.org>
+
- * xfns.c (png_load): Set screen_gamma based on f->gamma.
- If png_get_sRGB gives an answer, call png_set_gamma
- using the default image gamma value.
++ * w32fns.c (w32_wnd_proc) <WM_KEYDOWN>: Cast char to unsigned
++ before passing as wParam.
+
+2007-12-22 Michael Albinus <michael.albinus@gmx.de>
- * lread.c (read1): When reading from a file, default string to
- multibyte only if it has some multibyte characters.
+ * dbusbind.c (xd_retrieve_arg): Handle DBUS_TYPE_BYTE,
+ DBUS_TYPE_INT16, DBUS_TYPE_UINT16, DBUS_TYPE_INT64,
+ DBUS_TYPE_UINT64, DBUS_TYPE_DOUBLE and DBUS_TYPE_SIGNATURE.
+ Return float when DBUS_TYPE_INT32 or DBUS_TYPE_UINT32 do not fit
+ as number.
+ (Fdbus_call_method): Fix docstring.
- * print.c (print_object): Output multibyte chars 128...255
- using \x even if ! print_escape_multibyte.
+2007-12-21 Michael Albinus <michael.albinus@gmx.de>
- * xdisp.c (display_mode_element): Move the places where
- bytepos, charpos, this, and lisp_string are set.
- Use lisp_string to set bytepos.
+ * dbusbind.c (XD_BASIC_DBUS_TYPE, XD_DBUS_TYPE_P, XD_NEXT_VALUE):
+ New macros.
+ (XD_SYMBOL_TO_DBUS_TYPE): Renamed from
+ XD_LISP_SYMBOL_TO_DBUS_TYPE.
+ (XD_OBJECT_TO_DBUS_TYPE): Renamed from
+ XD_LISP_OBJECT_TO_DBUS_TYPE. Simplify.
+ (xd_signature): New function.
+ (xd_append_arg): Compute also signatures. Major rewrite.
+ (xd_retrieve_arg): Make debug messages friendly.
+ (Fdbus_call_method, Fdbus_send_signal): Extend docstring. Check
+ for signatures of arguments.
+
+2007-12-19 Michael Albinus <michael.albinus@gmx.de>
+
+ * dbusbind.c (QCdbus_type_byte, QCdbus_type_boolean)
+ (QCdbus_type_int16, QCdbus_type_uint16, QCdbus_type_int32)
+ (QCdbus_type_uint32, QCdbus_type_int64, QCdbus_type_uint64)
+ (QCdbus_type_double, QCdbus_type_string, QCdbus_type_object_path)
+ (QCdbus_type_signature, QCdbus_type_array, QCdbus_type_variant)
+ (QCdbus_type_struct, QCdbus_type_dict_entry): New D-Bus type
+ symbols.
+ (XD_LISP_SYMBOL_TO_DBUS_TYPE): New macro.
+ (XD_LISP_OBJECT_TO_DBUS_TYPE): Add compound types.
+ (xd_retrieve_value): Removed. Functionality included in ...
+ (xd_append_arg): New function.
+ (Fdbus_call_method, Fdbus_send_signal): Apply it.
+
+2007-12-16 Michael Albinus <michael.albinus@gmx.de>
+
+ * dbusbind.c (top): Include <stdio.h>.
+ (Fdbus_call_method, Fdbus_send_signal): Apply type cast in
+ dbus_message_new_method_call and dbus_message_new_signal.
+ (Fdbus_register_signal): Rename unique_name to uname. Check
+ handler for FUNCTIONP instead of CHECK_SYMBOL. Handle case of
+ non-existing unique name. Fix typos in matching rule. Return an
+ object which is useful in Fdbus_unregister_signal.
+ (Fdbus_unregister_signal): Reimplementation, in order to remove
+ only the corresponding entry.
+ (Vdbus_registered_functions_table): Change the order of entries.
+ Apply these changes in xd_read_message and Fdbus_register_signal.
+
+2007-12-16 Andreas Schwab <schwab@suse.de>
+
+ * fileio.c (Finsert_file_contents): Fix overflow check to not
+ depend on undefined integer overflow.
- * xdisp.c (redisplay_internal):
- Call clear_image_cache only if HAVE_WINDOW_SYSTEM.
+2007-12-14 Jason Rumney <jasonr@gnu.org>
- * xdisp.c (display_mode_element): Merge properties specified with
- :propertize onto those that come with the string.
+ * w32term.c (w32_read_socket): Use MULTIBYTE_CHAR_KEYSTROKE_EVENT
+ for characters above 127.
-2002-03-03 Eli Zaretskii <eliz@is.elta.co.il>
+2007-12-13 Jason Rumney <jasonr@gnu.org>
- * xdisp.c (syms_of_xdisp) <auto-hscroll-mode>: Renamed from
- automatic-hscrolling. Users changed.
- <hscroll-margin>: Renamed from automatic-hscroll-margin.
- Users changed.
- <hscroll-step>: Renamed from automatic-hscroll-step. Users changed.
+ * w32fns.c (w32_wnd_proc, Fw32_reconstruct_hot_key): Range check
+ before dereferencing array.
+ (lookup_vk_code): Remove zero comparison.
-2002-03-02 Eli Zaretskii <eliz@is.elta.co.il>
+2007-12-14 Michael Albinus <michael.albinus@gmx.de>
- * buffer.c (syms_of_buffer) <buffer-file-coding-system>: Doc fix.
+ * dbusbind.c (xd_retrieve_value, xd_retrieve_arg)
+ (Fdbus_call_method, Fdbus_send_signal, xd_read_message): Use
+ `unsigned int' instead of `uint'.
+ (xd_read_message, Fdbus_register_signal): Split expressions into
+ multiple lines before operators "&&" and "||", according to the
+ GNU Coding Standards.
-2002-03-02 Kim F. Storm <storm@cua.dk>
+2007-12-14 Eli Zaretskii <eliz@gnu.org>
- * window.c (Fminibuffer_selected_window): New function.
- (syms_of_window): Defsubr it.
+ * dispextern.h (WINDOWS_NT): Fix incorrect spelling of WINDOWSNT.
-2002-03-01 Kim F. Storm <storm@cua.dk>
+2007-12-12 Juri Linkov <juri@jurta.org>
- * window.h (struct window): New member phys_cursor_width.
+ * buffer.c (Frename_buffer): In interactive spec replace
+ `read-buffer' with `read-string' that uses `buffer-name-history'
+ as history, and the current buffer's name as default.
- * window.c (make_window, replace_window): Init phys_cursor_width.
+2007-12-10 Stefan Monnier <monnier@iro.umontreal.ca>
- * xterm.c (x_display_and_set_cursor): Blink box cursor using
- hollow box cursor. Blink bar cursor using 1 pixel wide bar.
+ * keyboard.c (Fcommand_execute): Call Qcall_interactively instead of
+ manipulating the backtrace manually.
+ (make_lispy_event): Merge the ASCII and MULTIBYTE cases.
+ (struct backtrace, backtrace_list): Remove.
+ (command_loop_1): Remove dead var `no_direct'.
- * w32term.c (x_display_and_set_cursor): Blink box cursor using
- hollow box cursor. Blink bar cursor using 1 pixel wide bar.
+ * buffer.c (reset_buffer_local_variables): If permanent_too is 0, also
+ preserve non-built-in buffer-local variables.
+ (Fkill_all_local_variables): Don't re-create&re-set permanent
+ buffer-local variables.
- * lisp.h (GCPRO6): New macro.
+2007-12-09 Juri Linkov <juri@jurta.org>
- * process.c (Fopen_network_stream): Use GCPRO6.
+ * buffer.c (Frename_buffer): Change interactive spec from "s" to
+ Lisp code that uses `read-buffer' with current buffer as default.
-2002-03-01 Kim F. Storm <storm@cua.dk>
+2007-12-08 Michael Albinus <michael.albinus@gmx.de>
- * process.c (Qconnect, Qfailed): New variables.
- (syms_of_process): Intern and staticpro them.
- (Fprocess_status): Document connect and failed return values.
- [NON_BLOCKING_CONNECT]: New conditional.
- (connect_wait_mask, num_pending_connects): New variables.
- (status_message): Convert Qfailed status.
- (Fopen_network_stream): Added support for non-blocking connect.
- New optional args: filter, sentinel, non_blocking. Doc updated.
- [HAVE_GETADDRINFO, !HAVE_GETADDRINFO]: Merged common code.
- (deactivate_process): Handle pending non-blocking connect.
- (wait_reading_process_input): Poll for status of non-blocking
- connects. Exec sentinel directly when connect succeeds.
- (status_notify): Don't read process output if not yet connected.
+ * dbusbind.c (xd_read_message): Generate an event for every
+ registered handler. There might be several handlers registered
+ for the same signal.
+ (Fdbus_register_signal): Don't overwrite a registration for the
+ same signal. Add a new registration if handlers are different.
+ (Vdbus_registered_functions_table): Rework doc string.
-2002-02-28 Kim F. Storm <storm@cua.dk>
+2007-12-07 Michael Albinus <michael.albinus@gmx.de>
- * window.c (minibuf_selected_window): Renamed from
- Vminibuf_selected_window. Users changed.
- (syms_of_window): Staticpro it.
+ * dbusbind.c (Fdbus_get_unique_name, xd_read_message)
+ (Fdbus_register_signal): Use DBUS_MAXIMUM_NAME_LENGTH and
+ DBUS_MAXIMUM_MATCH_RULE_LENGTH for string lengths.
+ (Fdbus_call_method, Fdbus_send_signal, Fdbus_register_signal):
+ Unify argument lists.
+ (xd_read_message, Fdbus_register_signal) Reorder and extend event
+ arguments and hash table keys. Use unique name for service.
+ (Fdbus_unregister_signal): Remove checks.
+ (Vdbus_registered_functions_table): Fix doc string.
-2002-02-26 Kim F. Storm <storm@cua.dk>
+2007-12-05 Magnus Henoch <mange@freemail.hu>
- The following changes add a new Vminibuf_selected_window variable
- which is similar to Vminibuf_scroll_window, but which is only set
- on entry to the minibuffer (from a non-minibuffer window):
+ * process.c (make_process): Initialize pty_flag to 0.
- * window.c (Vminibuf_selected_window): New variable.
- (struct save_window_data): New member minibuf_selected_window.
- (Fset_window_configuration): Restore Vminibuf_selected_window.
- (Fcurrent_window_configuration): Save Vminibuf_selected_window.
- Set minibuf_scroll_window member to nil if minibuf_level is 0.
- (compare_window_configurations): Compare minibuf_selected_window.
+2007-12-05 Jason Rumney <jasonr@gnu.org>
- * window.h (Vminibuf_selected_window): Declare extern.
+ * image.c (xbm_load) [WINDOWSNT]: Shuffle the bits of directly
+ specified XBMs.
- * minibuf.c (read_minibuf): Set Vminibuf_selected_window on first
- entry to minibuffer or on entry from a non-minibuffer window.
+2007-12-05 Richard Stallman <rms@gnu.org>
- * dispextern.h (CURRENT_MODE_LINE_FACE_ID_3): Compare with
- Vminibuf_selected_window instead of Vminibuf_scroll_window.
+ * xdisp.c (syms_of_xdisp) <scroll-conservatively>: Doc fix.
- * xdisp.c (init_iterator): Compare with Vminibuf_selected_window
- instead of Vminibuf_scroll_window when deciding in which window
- the region should be highlighted. Consequently, the region remains
- highlighteded even when a completion buffer is also displayed.
+2007-12-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-2002-02-26 Eli Zaretskii <eliz@is.elta.co.il>
+ * mac.c (cfsockets_for_select) [MAC_OSX && SELECT_USE_CFSOCKET]:
+ New variable.
+ (mac_try_close_socket) [MAC_OSX]: New function.
+ [MAC_OSX] (sys_select) [SELECT_USE_CFSOCKET]:
+ Update cfsockets_for_select. Replace invalid CFRunLoop source.
- * fileio.c (Fsubstitute_in_file_name): Fix the change from 2002-02-08.
+ * sysdep.c (emacs_close) [MAC_OSX && HAVE_CARBON]:
+ Use mac_try_close_socket.
- * xselect.c (Qcompound_text_with_extensions): Renamed from
- Qcompound_text_no_extensions.
- (lisp_data_to_selection_data, syms_of_xselect): Use the new name.
+2007-12-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-2002-02-26 Juanma Barranquero <lektu@terra.es>
+ * unexmacosx.c (unrelocate): New argument BASE. Use it instead of
+ reloc_base.
+ (copy_dysymtab): Compute relocation base here.
+ (rebase_reloc_address) [__ppc64__]: New function.
+ (copy_dysymtab) [__ppc64__]: Use it if relocation base needs to be
+ changed.
- * w32proc.c (syms_of_ntproc): Doc fix.
+2007-12-05 Jason Rumney <jasonr@gnu.org>
-2002-02-24 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * w32proc.c (sys_spawnve): Quote args with wildcards.
- * intervals.h: Include "dispextern.h" unconditionally.
+2007-12-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-2002-02-24 Jason Rumney <jasonr@gnu.org>
+ * unexmacosx.c (copy_data_segment): Also copy __gcc_except_tab and
+ __objc_* sections.
+ (unrelocate) [_LP64]: Set relocation base to address of data segment.
- * Makefile.in (WINNT_SUPPORT) [WINDOWSNT]: Add w32-vars.elc
- and disp-table.elc.
- (lisp): Add emacs-lisp/backquote.elc.
+2007-12-05 Michael Albinus <michael.albinus@gmx.de>
-2002-02-24 Kim F. Storm <storm@cua.dk>
+ * dbusbind.c (xd_read_message): Return value is a Lisp_Object.
+ Move check for Vdbus_registered_functions_table to
+ xd_read_queued_messages.
+ (xd_read_queued_messages): Protect xd_read_message calls by
+ internal_condition_case_1.
- * keymap.c (Flookup_key): Fix problem in 2001-12-28 patch:
- The validation of the event type was too strict as it didn't
- allow string events; buffer names are used in bindings for
- menu-bar-select-buffer (see `menu-bar-update-buffers').
+2007-12-04 Michael Albinus <michael.albinus@gmx.de>
-2002-02-23 Kim F. Storm <storm@cua.dk>
+ * dbusbind.c (QCdbus_system_bus, QCdbus_session_bus): Renamed from
+ Qdbus_system_bus and Qdbus_session_bus, respectively.
+ (Vdbus_intern_symbols): Removed.
+ (Vdbus_registered_functions_table): New hash table.
+ (XD_SYMBOL_INTERN_SYMBOL): Removed.
+ (xd_read_message, Fdbus_register_signal, Fdbus_unregister_signal):
+ Rewritten in order to manage registered functions by hash table
+ Vdbus_registered_functions_table.
- The following changes rework my patch of 2002-02-06 which
- added command remapping by entering the commands directly into
- the keymaps. Now, command remapping uses an explicit `remap'
- prefix in the keymaps, i.e. [remap COMMAND].
+2007-12-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
- * keymap.c (Qremap, remap_command_vector): New variables.
- (is_command_symbol): Remove function.
- (Fdefine_key): No longer accept a symbol for KEY.
- Added validation of [remap COMMAND] argument for KEY.
- The DEF is no longer required to be a symbol when remapping a command.
- (Fremap_command): New function to remap command through keymaps.
- (Flookup_key): Perform command remapping initiated by
- Fremap_command directly for speed.
- (Fkey_binding): Use Fremap_command for command remapping.
- (where_is_internal): Handle new command remapping representation.
- (syms_of_keymap): Intern Qremap, initialize remap_command_vector,
- staticpro them. Defsubr Fremap_command.
+ * xterm.c: Update URL to Window Manager Specification in comment.
- * keymap.h (Fremap_command): Declare extern.
- (is_command_symbol): Remove extern.
+2007-12-02 Michael Albinus <michael.albinus@gmx.de>
- * keyboard.c (command_loop_1): Use Fremap_command for command
- remapping; now try command remapping for all symbols.
+ * config.in (HAVE_DBUS): Add.
-2002-02-23 Eli Zaretskii <eliz@is.elta.co.il>
+ * Makefile.in: (HAVE_DBUS): Add D-Bus definitions if defined.
+ (ALL_CFLAGS): Add ${DBUS_CFLAGS}.
+ (obj): Add $(DBUS_OBJ).
+ (LIBES): Add $(DBUS_LIBS).
+ (dbusbind.o): New target.
- * coding.h (run_pre_post_conversion_on_str): Add prototype.
+ * dbusbind.c: New file.
-2002-02-23 Jason Rumney <jasonr@gnu.org>
+ * emacs.c (main): Call syms_of_dbusbind when HAVE_DBUS is defined.
- * w32select.c (Fw32_set_clipboard_data): Run pre-write-conversion
- on the string before encoding it.
- (Fw32_get_clipboard_data): Run post-read-conversion on the string
- after decoding it.
+ * keyboard.c: All D-Bus related code is wrapped by "#ifdef HAVE_DBUS".
+ (Qdbus_event) New Lisp symbol.
+ (kbd_buffer_get_event, make_lispy_event): Handle DBUS_EVENT.
+ (gobble_input): Call xd_read_queued_messages, reading D-Bus
+ messages.
+ (keys_of_keyboard ): Define dbus-event.
- * w32fns.c (w32_wnd_proc) <WM_TIMER>: Fix last change.
+ * termhooks.h (event_kind): Add DBUS_EVENT when HAVE_DBUS is defined.
-2002-02-23 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-12-01 Richard Stallman <rms@gnu.org>
- * w32term.c (enter_timestamp): Remove unused static variable to
- prevent warning.
+ * search.c (syms_of_search) <inhibit-changing-match-data>: Doc fix.
- * xterm.c (enter_timestamp): Put in #if 0 to prevent warning.
+2007-11-30 Jason Rumney <jasonr@gnu.org>
-2002-02-23 Eli Zaretskii <eliz@is.elta.co.il>
+ * w32console.c (w32con_ins_del_lines, scroll_line): Clip to window.
+ (w32con_reset_terminal_modes): Clear screen buffer.
+ (w32_face_attributes): Don't use color indexes that are out of range.
+ Only reverse the default colors.
- * w16select.c (Fw16_get_clipboard_data): Fix last change.
+ * xfaces.c (map_tty_color, tty_color_name): Remove special case for
+ WINDOWSNT.
- * xselect.c (selection_data_to_lisp_data): Fix last change.
+ * w32console.c, w32term.h (vga_stdcolor_name): Remove.
-2002-02-22 Jason Rumney <jasonr@gnu.org>
+2007-11-29 Jason Rumney <jasonr@gnu.org>
- * w32term.h (struct w32_output): New member menu_command_in_progress.
+ * w32console.c: Leave HAVE_WINDOW_SYSTEM defined.
+ (w32_face_attributes): Use Vtty_defined_color_alist to determine
+ if the terminal colors are initialized.
+ (unspecified_fg, unspecified_bg): Remove unused declarations.
- * w32menu.c (menubar_selection_callback): Free the menu and
- clear the menu_command_in_progress flag.
+2007-11-29 Andreas Schwab <schwab@suse.de>
- * w32fns.c (mouse_move_timer, mouse_button_timer): Initialize.
- (menu_free_timer): New variable.
- (MENU_FREE_ID, MENU_FREE_DELAY): New constants.
- (w32_wnd_proc) <WM_TIMER>: Handle menu_free_timer.
- <WM_EXITMENULOOP>: Delay before freeing menu. Do nothing if a
- menu command is in progress.
- <WM_COMMAND>: Set the menu_command_in_progress flag.
- Kill any menu_free_timer that is running.
+ * keyboard.c (apply_modifiers): Fix typo.
- * w32term.c (w32_text_out): Renamed from W32_TEXTOUT.
- Call ExtTextOutA rather than ExtTextOut.
+2007-11-29 Richard Stallman <rms@gnu.org>
-2002-02-22 Eli Zaretskii <eliz@gnu.org>
+ * keymap.c (Fcurrent_local_map): Doc fix.
- * puresize.h (BASE_PURESIZE): Increase to 755000.
+2007-11-28 Petr Salinger <Petr.Salinger@seznam.cz> (tiny change)
-2002-02-22 Eli Zaretskii <eliz@is.elta.co.il>
+ * s/gnu-kfreebsd.h: New file.
- * w16select.c (Fw16_set_clipboard_data): Run pre-write-conversion
- on the string before encoding it.
- (Fw16_get_clipboard_data): Run post-read-conversion on the string
- after decoding it.
+2007-11-28 Stefan Monnier <monnier@iro.umontreal.ca>
-2002-02-22 Eli Zaretskii <eliz@is.elta.co.il>
+ * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
+ Don't cast redundantly.
- Support for ICCCM Extended Segments in X selections:
+ * keyboard.c (KEY_TO_CHAR): New macro.
+ (parse_modifiers, apply_modifiers): Accept integer arguments.
+ (read_key_sequence): Use them to unify the "shift->unshift" mapping
+ for chars and symbol keys.
+ After doing such remapping, apply function-key-map again.
- * xselect.c <Qcompound_text_no_extensions>: New variable.
- (syms_of_xselect): Intern and staticpro it.
- (selection_data_to_lisp_data): Run post-read-conversion on decoded
- selection text.
- (lisp_data_to_selection_data): If next-selection-coding-system is
- compound-text-no-extensions, set the type of selection to be
- compound-text.
+2007-11-27 Dan Nicolaescu <dann@ics.uci.edu>
- * xterm.h (x_encode_text): Update prototype.
+ * Makefile.in (SOME_MACHINE_LISP): Remove VMS files, they are not
+ compiled anymore.
- * xfns.c (x_encode_text): Accept additional arg SELECTIONP; all
- callers changed. If SELECTIONP is non-zero, run the
- pre-write-conversion function before encoding the selection text.
+2007-11-26 Andreas Schwab <schwab@suse.de>
-2002-02-21 Kim F. Storm <storm@cua.dk>
+ * process.c (list_processes_1): Fix indentation level of the
+ command column.
- * frame.c (syms_of_frame): Change mouse-highlight default to t.
+2007-11-23 Andreas Schwab <schwab@suse.de>
- * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]:
- Correct composing of language-change event.
+ * editfns.c (Fformat): Handle %c specially since it requires the
+ argument to be of type int.
-2002-02-20 Kim F. Storm <storm@cua.dk>
+2007-11-23 Markus Triska <markus.triska@gmx.at>
- * keyboard.c (menu_bar_items): Don't include keymap or local-map
- bindings at PT when building menu (the menu is not updated often
- enough for this to work reliable).
- (tool_bar_items): Likewise.
- (current_active_maps): Removed unused (and buggy) function.
+ * emacs.c (main): Call init_editfns before init_process, since
+ init_process sets Vprocess_connection_type depending on OS release
-2002-02-20 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-11-22 Stefan Monnier <monnier@iro.umontreal.ca>
- * xfns.c (gif_load): Use correct width and height for GIF images.
+ * data.c (do_symval_forwarding): Use same code as in find_symbol_value.
+ (find_symbol_value): Use do_symval_forwarding.
-2002-02-19 Eli Zaretskii <eliz@is.elta.co.il>
+ * data.c (set_internal): Set the value in the `cons-cell' (for
+ Buffer_Local_values) not only for frame-local variables.
- * floatfns.c (Fatan): Accept an optional second arg and call
- atan2 if passed 2 args.
+2007-11-22 Andreas Schwab <schwab@suse.de>
-2002-02-18 Jason Rumney <jasonr@gnu.org>
+ * data.c (Fnumber_to_string): Add cast when passing EMACS_INT
+ values to sprintf.
+ * keymap.c (Fsingle_key_description): Likewise.
+ * print.c (print_object): Likewise.
- * w32term.c (glyph_rect): Determine the row and glyph more precisely.
+2007-11-22 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-2002-02-17 Jason Rumney <jasonr@gnu.org>
+ * gtkutil.c (update_frame_tool_bar): Don't call x-gtk-map-stock if
+ file for image is nil.
- * w32term.c (x_autoselect_window_p): New variable.
- (syms_of_w32term): DEFVAR_BOOL and initialize it.
- (note_mouse_movement): Use it.
+2007-11-22 Dan Nicolaescu <dann@ics.uci.edu>
- * w32fns.c (w32_load_system_font): Never set fonts_changed_p to zero.
+ * term.c: Include stdarg.h.
+ (fatal): Implement using varargs.
+ * lisp.h (fatal): Add argument types. (Restore 2005-09-30 change).
- * w32bdf.c (w32_load_bdf_font): Maybe set fonts_changed_p.
+2007-11-21 Stefan Monnier <monnier@iro.umontreal.ca>
- * w32fns.c (Qfullscreen, Qfullwidth, Qfullheight, Qfullboth):
- New variables.
- (syms_of_w32fns): Intern and staticpro them.
- (x_frame_parms) <"fullscreen">: New parameter.
- (x_fullscreen_move, x_set_fullscreen): New functions.
- (x_set_frame_parameters): Support Qfullscreen.
- (x_real_positions): Save x/y_pixels_diff frame params.
- (x_figure_window_size): Support full-screen frames.
- (Fx_create_frame): Default the fullscreen parameter.
+ * lisp.h (struct Lisp_Buffer_Objfwd): Add a `slottype' field.
+ * data.c (store_symval_forwarding): Get type from buffer_objfwd.
+ Update call to buffer_slot_type_mismatch.
+ * buffer.h (buffer_local_types, PER_BUFFER_TYPE): Remove.
+ (buffer_slot_type_mismatch): Update.
+ * buffer.c (buffer_local_types): Remove.
+ (buffer_slot_type_mismatch): Get the symbol and type as arguments.
+ (defvar_per_buffer): Set the type in the buffer_objfwd.
- * w32term.c (x_check_fullscreen, x_check_fullscreen_move)
- (x_fullscreen_adjust): New functions.
- (w32_read_socket) <WM_WINDOWPOSCHANGED>: Don't resize to
- fullscreen. Call x_check_fullscreen_move, and set the
- want_fullscreen member of output_data.w32
- <WM_ACTIVATE, WM_ACTIVATEAPP>: Call x_check_fullscreen.
+2007-11-21 Jason Rumney <jasonr@gnu.org>
- * w32term.h: New enum for FULLSCREEN_* constants.
- (struct w32_output): New members want_fullscreen, x_pixels_diff,
- y_pixels_diff, x_pixels_outer_diff, and y_pixels_outer_diff.
- (x-fullscreen-adjust): New prototype.
+ * w32bdf.c (w32_init_bdf_font, w32_BDF_to_x_font):
+ CreateFileMapping returns NULL on failure.
-2002-02-17 Kim F. Storm <storm@cua.dk>
+2007-11-21 Stefan Monnier <monnier@iro.umontreal.ca>
- * frame.c (Vmouse_highlight): New variable.
- (syms_of_frame): DEFVAR_LISP it.
+ * search.c (Fset_match_data): Remove the `evaporate' feature.
+ (unwind_set_match_data): Don't use the `evaporate' feature.
- * frame.h (Vmouse_highlight): Declare extern.
+2007-11-21 Jason Rumney <jasonr@gnu.org>
- * xterm.h (struct x_display_info): Add mouse_face_hidden.
+ * dispnew.c (init_display) [WINDOWSNT]: Hardcode terminal_type.
- * xterm.c (disable_mouse_highlight): Removed variable.
- (note_mouse_highlight): Don't highlight if Vmouse_highlight is nil.
- (show_mouse_face): Don't show highlight if mouse_face_hidden is set.
- (XTread_socket): Turn mouse_face_hidden off after mouse movement,
- and on after keyboard input.
- (x_term_init): Initialize mouse_face_hidden.
+ * w32console.c (w32con_write_glyphs): Remove unused variables.
- * msdos.h (struct display_info): Add mouse_face_hidden.
+2007-11-20 Dan Nicolaescu <dann@ics.uci.edu>
- * msdos.c (disable_mouse_highlight): Removed variable.
- (show_mouse_face): Don't show highlight if mouse_face_hidden is set.
- (IT_note_mouse_highlight): Don't highlight if Vmouse_highlight is nil.
- (internal_terminal_init): Initialize mouse_face_hidden.
- (dos_rawgetc): Turn mouse_face_hidden off after mouse movement,
- and on after keyboard input.
+ * macterm.c (mac_term_init): Call add_keyboard_wait_descriptor.
- * w32term.h (struct w32_display_info): Add mouse_face_hidden.
+ * s/darwin.h (MULTI_KBOARD): Remove.
- * w32term.c (disable_mouse_highlight): Removed variable.
- (note_mouse_highlight): Disable highlight if Vmouse_highlight is nil.
- (show_mouse_face): Don't show highlight if mouse_face_hidden is set.
- (w32_read_socket): Turn mouse_face_hidden off after mouse movement,
- and on after keyboard input.
- (w32_initialize_display_info): Initialize mouse_face_hidden.
+ * macfns.c (x_create_tip_frame, Fx_create_frame)
+ (x_create_tip_frame): Don't deal with MULTI_KBOARD.
-2002-02-16 Eli Zaretskii <eliz@is.elta.co.il>
+2007-11-19 Stefan Monnier <monnier@iro.umontreal.ca>
- * msdos.c (last_mouse_window): New variable.
- (dos_rawgetc): Fix last change--if the mouse is in the same window
- as recorded in last_mouse_window, don't select this window.
+ * buffer.c (Fbuffer_local_value): Remove redundant test.
+ (swap_out_buffer_local_variables): Swap out binding in `buffer' rather
+ than in `current-buffer' to match the comment.
+ Do the swap using swap_in_global_binding.
- * Makefile.in (lisp, shortlisp): Use cus-start.elc, not cus-start.el.
+ * data.c (store_symval_forwarding, set_internal):
+ * eval.c (specbind): Remove dead code.
- * msdos.c (x_autoselect_window_p): New variable.
- (syms_of_msdos): Defvar it.
- (dos_rawgetc): If x_autoselect_window_p is set, select the window in
- which the last mouse movement occured, unless it is already selected.
+ * coding.c (detect_coding, Fupdate_coding_systems_internal):
+ * fns.c (Fmd5): Use find_symbol_value rather than SYMBOL_VALUE
+ Since we do not want to see internal Lisp_*fwd objects here.
- * xdisp.c (automatic_hscroll_margin, Vautomatic_hscroll_step):
- New variables.
- (syms_of_xdisp): DEVFAR them.
- (hscroll_window_tree): Use automatic_hscroll_margin and
- Vautomatic_hscroll_step to compute the amount of window scrolling.
+2007-11-18 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-2002-02-16 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * sysdep.c (init_system_name): Use getaddrinfo if available.
- * xterm.c (x-autoselect-window): New variable.
- (note_mouse_movement): Use it.
+ * xterm.c (x_scroll_bar_set_handle, x_scroll_bar_handle_click)
+ (x_scroll_bar_note_movement): start, end, with, height in struct
+ scroll_bar are integers and not Lisp_Object, so remove XINT for them.
- * keyboard.c: Do not include "systime.h" twice.
+2007-11-17 Dan Nicolaescu <dann@ics.uci.edu>
-2002-02-15 Andreas Schwab <schwab@suse.de>
+ * puresize.h (BASE_PURESIZE): Increase to 1190000.
- * puresize.h (PURESIZE_RATIO): Increase to 9/5.
+2007-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
- * alloc.c (NSTATICS): Increase to 1280.
+ * buffer.h (struct buffer): Move `undo_list' back to before `name'.
+ This undoes Richard's change of 14-Oct-2002.
+
+ * alloc.c (allocate_other_vector):
+ * lisp.h (allocate_other_vector): Remove.
+
+ * window.c (struct save_window_data): Move non-lisp data to the end
+ and make it `int' rather than Lisp_Object.
+ (Fcurrent_window_configuration): Use ALLOCATE_PSEUDOVECTOR.
+ Done wrap/unwrap integer values.
+ (Fset_window_configuration, compare_window_configurations):
+ Update use of fields to their new types.
+
+ * xterm.h (struct scroll_bar): Only use Lisp_Object for lisp data.
+ Turn integer fields into `int'. Merge x_window_low and x_window_high.
+ (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK, SCROLL_BAR_X_WINDOW)
+ (SET_SCROLL_BAR_X_WINDOW): Remove.
+ (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET):
+ Access the new x_window field directly.
+ * xterm.c (x_scroll_bar_create): Use a pseudovector.
+ Don't wrap/unwrap integers into Lisp_Objects.
+ (XTset_vertical_scroll_bar, x_scroll_bar_handle_click)
+ (x_scroll_bar_report_motion):
+ Don't wrap/unwrap integers into Lisp_Objects.
+ (x_term_init): Use SDATA.
+ (x_window_to_scroll_bar, x_create_toolkit_scroll_bar)
+ (x_scroll_bar_set_handle, x_scroll_bar_remove)
+ (XTset_vertical_scroll_bar, x_scroll_bar_expose)
+ (x_scroll_bar_report_motion, x_scroll_bar_clear):
+ * xfns.c (x_set_background_color):
+ * gtkutil.c (xg_create_scroll_bar, xg_set_toolkit_scroll_bar_thumb):
+ Access the new x_window field directly.
+
+ * alloc.c (ALLOCATE_PSEUDOVECTOR): Move to lisp.h.
+ (allocate_pseudovector): Make non-static.
+
+ * lisp.h (enum pvec_type): New tag PVEC_OTHER.
+ (allocate_pseudovector): Declare.
+ (ALLOCATE_PSEUDOVECTOR): Move from alloc.c
-2002-02-15 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2007-11-15 Andreas Schwab <schwab@suse.de>
- * alloc.c (NSTATICS): Bump to 1026.
+ * editfns.c (Fformat): Correctly format EMACS_INT values.
+ Also take precision into account when formatting an integer.
- * xterm.c (Vx_alt_keysym, Vx_hyper_keysym, Vx_meta_keysym)
- (Vx_super_keysym): New variables.
- (syms_of_xterm): DEFVAR_LISP them.
- (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Use the
- variables to determine which keys to use for the various modifiers.
+ * keyboard.c (Fevent_symbol_parse_modifiers): Fix declaration.
-2002-02-13 Kim F. Storm <storm@cua.dk>
+2007-11-15 Stefan Monnier <monnier@iro.umontreal.ca>
- * window.c (Vmode_line_in_non_selected_windows): Removed.
- (mode_line_in_non_selected_windows): New variable.
- (syms_of_window): DEFVAR_BOOL it.
+ * keyboard.c (Fevent_symbol_parse_modifiers): New function.
+ (syms_of_keyboard): Defsubr it.
- * dispextern.h (CURRENT_MODE_LINE_FACE_ID_3):
- Use mode_line_in_non_selected_windows.
- (mode_line_in_non_selected_windows): Declare extern.
- (Vmode_line_in_non_selected_windows): Removed extern.
+ * data.c (swap_in_global_binding): Fix longstanding bug where
+ store_symval_forwarding was not called with the right second argument,
+ thus causing objfwd-ing from being dropped.
-2002-02-13 Richard M. Stallman <rms@gnu.org>
+2007-11-14 Juanma Barranquero <lekktu@gmail.com>
- * keyboard.c (Fthis_command_keys, Fthis_command_keys_vector)
- (Fthis_single_command_keys, Fthis_single_command_raw_keys)
- (Fclear_this_command_keys): Doc fixes.
+ * macfns.c (Fx_create_frame, Fx_display_pixel_width)
+ (Fx_display_pixel_height, Fx_display_planes)
+ (Fx_display_color_cells, Fx_server_max_request_size)
+ (Fx_server_vendor, Fx_server_version, Fx_display_backing_store)
+ (Fx_display_visual_class, Fx_display_save_under):
+ * w32fns.c (Fx_create_frame, Fx_display_pixel_width)
+ (Fx_display_pixel_height, Fx_display_planes)
+ (Fx_display_color_cells, Fx_server_max_request_size)
+ (Fx_server_vendor, Fx_server_version, Fx_display_screens)
+ (Fx_display_mm_height, Fx_display_mm_width)
+ (Fx_display_backing_store, Fx_display_visual_class)
+ (Fw32_select_font, Fx_display_save_under):
+ * xfns.c (Fx_create_frame, Fx_display_pixel_width)
+ (Fx_display_pixel_height, Fx_display_planes)
+ (Fx_display_color_cells, Fx_server_max_request_size)
+ (Fx_server_vendor, Fx_server_version, Fx_display_backing_store)
+ (Fx_display_save_under): Fix typos in docstrings.
- * xfaces.c (Finternal_make_lisp_face, Finternal_copy_lisp_face)
- (update_face_from_frame_parameter): Increment face_change_count
- and windows_or_buffers_changed to force redisplay using changed faces.
+2007-11-14 Juanma Barranquero <lekktu@gmail.com>
- * xdisp.c (QCpropertize): New variable.
- (mode_line_proptrans_alist): New variable.
- (display_mode_element): New arg PROPS; all calls changed.
- Implement this, for strings.
- Handle literal output of strings by sharing the
- main-line code for strings, using local var `literal'.
- Handle :propertize feature.
- (syms_of_xdisp): Initialze and staticpro QCpropertize and
- mode_line_proptrans_alist.
+ * w32fns.c (Fw32_registered_hot_keys): Don't return the nil values
+ corresponding to deleted entries; they are an implementation detail.
+ (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits):
+ Remove variables.
+ (w32_pass_extra_mouse_buttons_to_system, w32_strict_fontnames)
+ (w32_pass_multimedia_buttons_to_system, w32_strict_painting)
+ (Vw32_charset_info_alist, w32_to_x_color, w32_init_class)
+ (w32_createscrollbar, w32_createwindow, my_post_msg, w32_get_modifiers)
+ (w32_grabbed_keys, cancel_all_deferred_msgs): Make static.
+ (Fw32_define_rgb_color, Fw32_load_color_file)
+ (syms_of_w32fns) <w32-pass-multimedia-buttons-to-system>:
+ Fix typos in docstrings.
+ (Fx_server_version): Reflow docstring.
+ (Fw32_shell_execute): Doc fixes.
-2002-02-11 Kim F. Storm <storm@cua.dk>
+2007-11-13 Juanma Barranquero <lekktu@gmail.com>
- * window.c (Vmode_line_in_non_selected_windows): New variable.
- (syms_of_window): DEFVAR_LISP it.
+ * w32fns.c (Fw32_register_hot_key): Don't try to register hot key
+ if w32_parse_hot_key returned nil.
- * dispextern.h (CURRENT_MODE_LINE_FACE_ID_3): New macro.
- (CURRENT_MODE_LINE_FACE_ID): Use it.
- (Vmode_line_in_non_selected_windows): Declare extern.
+2007-11-10 Stefan Monnier <monnier@iro.umontreal.ca>
- * xdisp.c (display_mode_lines): Use CURRENT_MODE_LINE_FACE_ID_3
- to get mode line face.
+ * xdisp.c (load_overlay_strings): Fix copy&paste typo.
-2002-02-11 Eli Zaretskii <eliz@is.elta.co.il>
+2007-11-09 Jason Rumney <jasonr@gnu.org>
- * msdos.c (Vx_bitmap_file_path, x_stretch_cursor_p): Remove these
- variables; cus-start.el doesn't need them anymore.
+ * s/ms-w32.c (USE_TOOLKIT_SCROLL_BARS): Define.
-2002-02-09 Kim F. Storm <storm@cua.dk>
+ * w32term.c (w32_scroll_bar_handle_click): Use SCROLL_BAR_CLICK_EVENT.
- * insdel.c (make_gap_smaller): Preserve BEG_UNCHANGED during gap
- reduction. This fixes a display problem where stray newlines were
- inserted in the window (corrected by C-l). Clarified code (IMHO).
+ * keyboard.c (discard_mouse_events, make_lispy_event) [WINDOWSNT]:
+ Remove W32_SCROLL_BAR_CLICK_EVENT.
-2002-02-09 Eli Zaretskii <eliz@is.elta.co.il>
+ * termhooks.h (enum event_kind) [WINDOWSNT]: Likewise.
+ Add MULTIMEDIA_KEY_EVENT.
- * dispextern.h (CURRENT_MODE_LINE_FACE_ID): Fix last change.
+ * keyboard.c (lispy_function_keys) [WINDOWSNT]: Add more keys.
+ (lispy_multimedia_keys) [WINDOWSNT]: New array.
+ (make_lispy_event) [WINDOWSNT]: Use it to translate
+ MULTIMEDIA_KEY_EVENT.
- * xdisp.c (display_mode_lines): Fix last change.
+ * w32term.h (WM_APPCOMMAND): Define if not already.
+ (GET_APPCOMMAND_LPARAM): Likewise.
-2002-02-09 Jason Rumney <jasonr@gnu.org>
+ * w32term.c (w32_read_socket): Generate MULTIMEDIA_KEY_EVENT from
+ WM_APPCOMMAND.
- * w32fns.c (enum_font_cb2): Don't let charsets unknown to Windows
- match each other.
- (w32_load_system_font): Prevent Cleartype fonts from loading.
- (Fx_show_tip): Ensure tip frames are above other topmost windows.
+ * w32fns.c (w32_pass_multimedia_buttons_to_system): New user option.
+ (syms_of_w32fns): Export and initialize it.
+ (w32_wnd_proc): Pass WM_APPCOMMAND on to w32_read_socket.
-2002-02-09 Kim F. Storm <storm@cua.dk>
+2007-11-09 Chong Yidong <cyd@stupidchicken.com>
- * dispextern.h (CURRENT_MODE_LINE_FACE_ID): New macro.
- (CURRENT_MODE_LINE_HEIGHT): Use it.
- (enum face_id): Add MODE_LINE_INACTIVE_FACE_ID.
+ * dispextern.h (struct it): Don't define OVERLAY_STRING_CHUNK_SIZE
+ twice.
- * xdisp.c (window_box_height): Use CURRENT_MODE_LINE_FACE_ID.
- (pos_visible_p, handle_face_prop): Likewise.
- (display_mode_lines): Likewise, but for the real selected window.
- (init_iterator) [row == NULL]: Handle MODE_LINE_INACTIVE_FACE_ID.
+ * xdisp.c (handle_face_prop): Fix last change.
- * xfaces.c (Qmode_line_inactive): New face variable for mode-line
- in non-selected windows.
- (realize_basic_faces): Realize it.
- (syms_of_term): Intern and staticpro it.
+2007-11-09 Richard Stallman <rms@gnu.org>
-2002-02-08 Kim F. Storm <storm@cua.dk>
+ * xdisp.c (handle_face_prop): Test for strings that came from overlays,
+ not just for after-strings and before-strings.
+ Call face_for_overlay_string and pass the overlay to it.
+ (handle_display_prop): Determine whether property came from an overlay.
+ Pass OVERLAY arg to handle_single_display_spec.
+ (handle_single_display_spec): New arg OVERLAY sets it->from_overlay.
+ (load_overlay_strings): Fill in it->string_overlays.
+ (get_overlay_strings_1, push_it, pop_it): Handle it->from_overlays.
- * alloc.c (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK):
- Changed mail addresses to emacs-devel@gnu.org.
+ * xfaces.c (face_for_overlay_string): Function renamed from
+ face_at_buffer_position_no_overlays, and add arg OVERLAY.
-2002-02-08 Eli Zaretskii <eliz@is.elta.co.il>
+ * dispextern.h (struct it): New elt string_overlays.
+ New elt from_overlay, also in stack.
+ Rearrange a few elements.
+ (face_for_overlay_string): Decl renamed from
+ face_at_buffer_position_no_overlays, and add argument.
- * fileio.c (Fsubstitute_in_file_name): If the file name includes
- ~user, and there's no such user, don't discard everything before ~user.
+2007-11-09 Richard Stallman <rms@gnu.org>
- * floatfns.c (Fround): Doc fix.
+ * xdisp.c (handle_face_prop): Use face_at_buffer_position_no_overlays
+ to get the base face for an overlay string.
-2002-02-08 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * dispextern.h (face_at_buffer_position_no_overlays): Add decl.
- * sysdep.c (init_system_name): Put unused variable `p' in #if 0.
+ * xfaces.c (face_at_buffer_position_no_overlays): New function.
-2002-02-07 Stefan Monnier <monnier@cs.yale.edu>
+ * xdisp.c (handle_stop): Move some code out of loop.
- * lisp.h (Fx_file_dialog): Add extern decl (used in fileio.c).
+2007-11-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-2002-02-07 Kim F. Storm <storm@cua.dk>
+ * macfns.c [USE_ATSUI] (Fmac_atsu_font_face_attributes):
+ Fix conversion from Lisp object to ATSUFontID.
- * keymap.c (where_is_internal): Only check whether definition is
- remapped if it fulfills is_command_symbol.
+2007-11-09 Jason Rumney <jasonr@gnu.org>
-2002-02-07 Andreas Schwab <schwab@suse.de>
+ * xdisp.c (Fformat_mode_line): Do nothing when noninteractive.
- * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT): Define to 2 for m68k.
+2007-11-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * alloc.c (mark_stack): Don't assume sizeof (Lisp_Object) is 4.
+ * unexmacosx.c (unexec_regions_recorder, unexec_regions_merge):
+ Don't assume regions are aligned to page boundary.
+ (print_load_command_name): Add LC_UUID if defined.
-2002-02-06 Kim F. Storm <storm@cua.dk>
+2007-11-09 Richard Stallman <rms@gnu.org>
- * keymap.c (Fdefine_key): Allow symbol as KEY argument for
- defining command remapping. Doc updated.
- (Flookup_key): Remap command through keymap if KEY is a symbol.
- (is_command_symbol): New function.
- (Fkey_binding): Use it. New optional argument NO-REMAP.
- Doc updated. Callers changed. Perform command remapping via
- recursive call unless that arg is non-nil.
- (where_is_internal): New argument no_remap. Callers changed.
- Call recursively to find original key bindings for a remapped
- comand unless that arg is non-nil.
- (Fwhere_is_internal): New optional argument NO-REMAP.
- Doc updated. Callers changed. Pass arg to where_is_internal.
+ * emacs.c (syms_of_emacs) <installation-directory>: Reflow docstring.
- * keymap.h (Fkey_binding, Fwhere_is_internal): Update prototype.
- (is_command_symbol): Add prototype.
+2007-11-07 Jason Rumney <jasonr@gnu.org>
- * keyboard.c (Vthis_original_command): New variable.
- (syms_of_keyboard): DEFVAR_LISP it.
- (command_loop_1): Set it, and perform command remapping.
+ * s/windows95.h: Remove.
-2002-02-06 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-11-06 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
- * keyboard.c (recursive_edit_1): Call cancel_hourglass unconditionally.
+ * gtkutil.c (xg_tool_bar_menu_proxy): Handle GTK_IMAGE_ICON_NAME and
+ abort with a message on unhandled store_type values.
-2002-02-06 Jason Rumney <jasonr@gnu.org>
+2007-11-01 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
- * w32term.c (w32_native_per_char_metric): Disable 2002-01-20 change.
+ * xterm.c, xfns.c, xselect.c, xterm.h, s/msdos.h, s/sco4.h, s/sco5.h:
+ Remove HAVE_X11R5 and HAVE_X11R4.
-2002-02-06 Eli Zaretskii <eliz@is.elta.co.il>
+2007-11-01 Dan Nicolaescu <dann@ics.uci.edu>
- * charset.c (get_charset_id): Use if-else instead of ?:.
+ * Makefile.in: Remove references to sunfns.c and sunfns.o.
-2002-02-06 Richard M. Stallman <rms@gnu.org>
+2007-11-01 Johan Bockg\e,Ae\e(Brd <bojohan@gnu.org>
- * filelock.c (S_ISLNK): Define if not defined.
+ * macterm.c, w32term.c, xterm.c (x_draw_stretch_glyph_string):
+ Don't set s->stippled_p here, since it has already been set by
+ x_set_glyph_string_gc from x_draw_glyph_string.
-2002-02-03 Richard M. Stallman <rms@gnu.org>
+2007-11-01 Dan Nicolaescu <dann@ics.uci.edu>
- * fileio.c (Fdo_auto_save): Improve "auto save disabled" msg.
+ * sunfns.c: Remove file
- * lread.c (read1): Redesign strategy for force_multibyte and
- force_singlebyte. Now is_multibyte records whether read_buffer
- is multibyte. Encountering any multibyte character makes it so.
+ * m/sun386.h:
+ * m/sun2.h:
+ * m/sparc.h: Remove Sun windows code.
-2002-02-02 Stefan Monnier <monnier@cs.yale.edu>
+2007-10-31 Stefan Monnier <monnier@iro.umontreal.ca>
- * term.c (term_get_fkeys_1): If `k0' and `k;' are both specified and
- with the same sequence, map that sequence to f10 rather than f0.
+ * keyboard.c (syms_of_keyboard): Initialize the initial_kboard.
+ (init_keyboard): Set current_kboard's window-system to nil.
+ (tty_read_avail_input): Typo.
+ * frame.c (make_initial_frame): Don't initialize the initial_kboard.
-2002-02-03 Andreas Schwab <schwab@suse.de>
+2007-10-31 Dan Nicolaescu <dann@ics.uci.edu>
- * s/gnu-linux.h: Check for __mc68000__ instead of __m68k__, the
- latter never being defined on GNU/Linux.
+ * s/usg5-4.h:
+ * s/usg5-3.h:
+ * s/ptx.h:
+ * m/is386.h:
+ * m/ibmps2-aix.h:
+ * Makefile.in: Remove all mentions of X10
-2002-02-02 Eli Zaretskii <eliz@is.elta.co.il>
+ * dispnew.c (syms_of_display): Don't mention version 10.
- * xfaces.c (realize_default_face): Don't set the weight and slant of
- the default face to Qnormal, unless these attributes are unspecified.
+2007-10-28 Juanma Barranquero <lekktu@gmail.com>
-2002-02-02 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * makefile.w32-in (OBJ1): Remove abbrev.$(O).
+ ($(BLD)/abbrev.$(O)): Remove.
- * keyboard.c (command_loop_1) [HAVE_X_WINDOWS]:
- Call cancel_hourglass unconditionally.
+2007-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
- * eval.c (Fsignal): Remove duplicated declaration of
- the variable `display_hourglass_p'.
+ Rewrite abbrev.c in Elisp.
+ * image.c (Qcount): Don't declare as extern.
+ (syms_of_image): Initialize and staticpro `Qcount'.
+ * puresize.h (BASE_PURESIZE): Increase for the new abbrev.el functions.
+ * emacs.c (main): Don't call syms_of_abbrev.
+ * Makefile.in (obj): Remove abbrev.o.
+ (abbrev.o): Remove.
+ * abbrev.c: Remove.
-2002-01-31 Richard M. Stallman <rms@gnu.org>
+2007-10-26 Martin Rudalics <rudalics@gmx.at>
- * editfns.c (region_limit): Nicer error message.
+ * window.c (window_min_size_2): Don't count header-line.
- * coding.c (decode_composition_emacs_mule):
- Give up if NCOMPONENT gets too large to index `component'.
+2007-10-26 Dan Nicolaescu <dann@ics.uci.edu>
- * callint.c (check_mark): New arg to specify clearer error message.
- Callers changed.
+ * frame.h (struct frame): Move all bit fields after the first bit
+ field to take advantage of the available space. Group all the
+ chars together to reduce wasted space due to padding.
-2002-01-27 Richard M. Stallman <rms@gnu.org>
+2007-10-26 Juanma Barranquero <lekktu@gmail.com>
- * minibuf.c (Fcompleting_read): Doc fix.
+ * minibuf.c (Fread_minibuffer, Feval_minibuffer): Reflow docstrings.
-2002-01-27 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * alloc.c (spare_memory, stack_copy, stack_copy_size, ignore_warnings)
+ (Vdead, dont_register_blocks, staticvec, staticidx, interval_block)
+ (n_interval_blocks, init_strings, check_string_bytes, check_sblock)
+ (init_float, free_float, n_cons_blocks, init_cons, all_vectors)
+ (n_vectors, symbol_block, symbol_block_index, symbol_free_list)
+ (n_symbol_blocks, init_symbol, marker_block, marker_free_list)
+ (n_marker_blocks, init_marker, valid_pointer_p, make_pure_float)
+ (last_marked, mark_object_loop_halt): Make static.
- * minibuf.c (Fread_from_minibuffer, Fread_command, Fread_function)
- (Fread_variable, Fread_buffer, minibuffer-completion-confirm):
- Fix doc-strings.
+ * frame.c (syms_of_frame) <delete-frame-functions>:
+ Fix typo in docstring.
-2002-01-26 Richard M. Stallman <rms@gnu.org>
+2007-10-25 Juanma Barranquero <lekktu@gmail.com>
- * buffer.c (syms_of_buffer): Doc fixes for scroll-...-aggressively.
+ * w32.c (init_environment): Fix tiny memory leak.
+ (w32_get_resource): Remove unused variable `ok'.
- * xdisp.c (try_scrolling): Exchange uses of scroll_down_aggressively
- and scroll_up_aggressively.
+2007-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
-2002-01-26 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ Make `window-system' into a keyboard-local variable (rather than
+ frame-local as done originally by multi-tty).
- * keyboard.c (parse_tool_bar_item): Remove duplicated prototypes.
+ * keyboard.h (struct kboard): Add Vwindow_system.
+ * keyboard.c (init_kboard): Set a default for Vwindow_system.
+ (mark_kboards): Mark Vwindow_system.
-2002-01-25 Stefan Monnier <monnier@cs.yale.edu>
+ * dispnew.c (syms_of_display) <window-system>: Declare terminal-local.
+ (init_display): Don't set the obsolete `window-system' frame-param.
- * textprop.c (Fnext_property_change, Fnext_single_property_change)
- (Fprevious_property_change, Fprevious_single_property_change):
- Stay within the narrowed-buffer boundaries.
+ * xterm.c (x_term_init):
+ * w32term.c (w32_create_terminal):
+ * term.c (init_tty): Set Vwindow_system.
+ * macterm.c (mac_create_terminal): Set a keyboard (missing piece of the
+ multi-tty merge maybe?), copied from w32term.c. Set Vwindow_system.
-2002-01-25 Eli Zaretskii <eliz@is.elta.co.il>
+ * xfns.c (Fx_create_frame, x_create_tip_frame):
+ * w32fns.c (Fx_create_frame, x_create_tip_frame):
+ * macfns.c (Fx_create_frame):
+ Don't set the obsolete `window-system' frame-param.
- * term.c (Ftty_display_color_cells): New function.
- (syms_of_term): Defsubr it.
- (Ftty_display_color_cells, Ftty_display_color_p): Change the
- argument name to DISPLAY. Doc fix.
+ * frame.h (Qwindow_system): Remove.
+ * frame.c (Qwindow_system): Remove. In `syms_of_frame' as well.
+ (Fmake_terminal_frame): Don't set obsolete `window-system' frame-param.
- * dispextern.h: Add prototype for set_tty_color_mode and
- tty_setup_colors.
+2007-10-24 Richard Stallman <rms@gnu.org>
-2002-01-24 Jason Rumney <jasonr@gnu.org>
+ * frame.c (x_figure_window_size): For fullscreen case,
+ set USPosition | PPosition without clobbering rest of window_prompting.
- * w32term.c (x_scroll_run): Use ScrollWindowEx in place of BitBlt.
- If region left to draw is not what was expected, mark the frame as
- garbaged.
+ * keyboard.c (Fcurrent_idle_time): Doc fix.
- * w32fns.c (w32_wnd_proc) <WM_PAINT>: Initialize update_rect.
- Combine the regions returned by BeginPaint and GetUpdateRect.
+ * print.c (Fwith_output_to_temp_buffer): Doc fix.
-2002-01-23 Jason Rumney <jasonr@gnu.org>
+2007-10-23 Stefan Monnier <monnier@iro.umontreal.ca>
- * w32term.c (x_update_window_begin): Only hide caret if
- w32_use_visible_system_caret is set.
- (x_update_window_end): Only show caret if
- w32_use_visible_system_caret is set.
- (syms_of_w32term): Handle SystemParametersInfo call failing.
+ * process.c (unwind_request_sigio): Only define if __ultrix__.
- * w32fns.c (syms_of_w32fns): Initialize w32_visible_system_caret_hwnd.
+ * callproc.c (child_setup): Remove spurious *.
-2002-01-22 Richard M. Stallman <rms@gnu.org>
+ * lisp.h (Fget_text_property): Declare.
+ (have_menus_p): Declare it here rather than in sys-dep header files.
+ * macterm.h (have_menus_p):
+ * msdos.h (have_menus_p):
+ * xterm.h (have_menus_p): Remove.
- * unexelf.c (unexec): Define n so as to cause compilation error
- for the code where people have often written n instead of nn.
+ * data.c (Fmake_variable_buffer_local, Fmake_local_variable)
+ (Fmake_variable_frame_local): Just check the variable's const-ness
+ rather than checking nil or t.
- * .gdbinit (hookpost-run): Defined.
+2007-10-22 Jason Rumney <jasonr@gnu.org>
-2002-01-22 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+ * w32fns.c: Include math.h.
+ (w32_abort): Declaration moved to nt/config.nt.
- * xfns.c (x_set_frame_parameters): Typo in previous fix corrected.
+ * s/ms-w32.h (HAVE_STDLIB_H): Define.
+ (abort): Redefinition moved to nt/config.nt.
-2002-01-21 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+ * m/windowsnt.h: Remove.
- * xfns.c (x_set_frame_parameters): Just call x_fullscreen_adjust
- if fullscreen is being set.
+2007-10-22 Juanma Barranquero <lekktu@gmail.com>
-2002-01-21 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * emacs.c (Fdump_emacs): Fix typo in message.
+ (syms_of_emacs) <kill-emacs-hook>: Fix typo in docstring.
+ <installation-directory>: Reflow docstring.
- * minibuf.c (Fminibuffer_contents)
- (Fminibuffer_contents_no_properties, Fread_from_minibuffer)
- (Fread_string, Fread_no_blanks_input, Fcompleting_read): Doc fixes.
+2007-10-22 Juri Linkov <juri@jurta.org>
-2002-01-21 Richard M. Stallman <rms@gnu.org>
+ * minibuf.c: Allow minibuffer default to be a list of default values.
+ With empty input use the first element of this list as returned default.
+ (string_to_object)
+ (read_minibuf_noninteractive): If defalt is cons, set val to its car.
+ (read_minibuf): If defalt is cons, set histstring to its car.
+ (Fread_string): If default_value is cons, set val to its car.
+ (Fread_buffer): If def is cons, use its car.
+ (Fcompleting_read): If defalt is cons, set val to its car.
- * window.c (check_frame_size): Fix minimum height calculation.
+2007-10-21 Michael Albinus <michael.albinus@gmx.de>
-2002-01-20 Ken Raeburn <raeburn@gnu.org>
+ * fileio.c (Fcopy_file): Call file name handler with preserve_uid_gid.
- * dispextern.h (WINDOW_WANTS_MODELINE_P): Use XFASTINT on window
- height before comparison.
- (WINDOW_WANTS_HEADER_LINE_P): Likewise.
+2007-10-20 Juanma Barranquero <lekktu@gmail.com>
-2002-01-20 Jason Rumney <jasonr@gnu.org>
+ * doc.c (Fdocumentation): Check for advice in all cases.
- * w32term.c (w32_system_caret_width): Remove.
- (w32_use_visible_system_caret): New user flag.
- (syms_of_w32term): DEFVAR_BOOL it. Initialize based on whether
- Windows reports a screen reader running.
- (x_update_window_begin): Hide the system caret.
- (x_update_window_end): Show the system caret.
- (x_display_and_set_cursor): Don't draw a cursor when
- w32_use_visible_system_caret is set. Do not adjust width.
+2007-10-19 Chong Yidong <cyd@stupidchicken.com>
- * w32fns.c (w32_visible_system_caret_hwnd): New static variable.
- (w32_wnd_proc) <WM_KILL_FOCUS, WM_EMACS_DESTROY_CARET>: Set it.
- <WM_EMACS_TRACK_CARET>: Arrange for system caret to be visible if
- the user requests it. Use system default width when creating.
- <WM_EMACS_HIDE_CARET, WM_EMACS_SHOW_CARET>: Handle new messages.
+ * Makefile.in [HAVE_LIBRESOLV]: Add -lresolv to linker flags.
- * w32term.h (WM_EMACS_SHOW_CARET, WM_EMACS_HIDE_CARET):
- New window messages.
+2007-10-19 Richard Stallman <rms@gnu.org>
-2002-01-20 Richard M. Stallman <rms@gnu.org>
+ * doc.c (Fdocumentation): Check for and handle an advised function.
- * window.c (MIN_SAFE_WINDOW_HEIGHT): Value now 1.
+2007-10-19 Juanma Barranquero <lekktu@gmail.com>
-2002-01-20 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * process.c (Fset_process_filter): Doc fix.
- * doprnt.c (doprnt1): Fix typos in error call.
+2007-10-18 Stefan Monnier <monnier@iro.umontreal.ca>
-2002-01-20 Eli Zaretskii <eliz@is.elta.co.il>
+ * keyboard.c (read_key_sequence): Undo a change introduced by multi-tty
+ which caused key-translation-map to applied repeatedly (thus breaking
+ double-mode).
- * unexelf.c (unexec) [__sgi]: Support the .got sections.
+2007-10-17 Stefan Monnier <monnier@iro.umontreal.ca>
-2002-01-20 Jason Rumney <jasonr@gnu.org>
+ * xselect.c (x_own_selection, x_handle_selection_clear)
+ (x_clear_frame_selections):
+ * w32menu.c (list_of_panes, list_of_items):
+ * w32fns.c (w32_color_map_lookup, Fx_create_frame, Fx_display_list):
+ * textprop.c (validate_plist, interval_has_all_properties)
+ (interval_has_some_properties, interval_has_some_properties_list)
+ (add_properties, text_property_list):
+ * process.c (Fget_buffer_process, list_processes_1, status_notify):
+ * minibuf.c (Fassoc_string):
+ * macselect.c (x_own_selection, x_clear_frame_selections)
+ (Fx_disown_selection_internal):
+ * keymap.c (Fcommand_remapping, where_is_internal, describe_map_tree):
+ Use CONSP rather than !NILP and XC[AD]R rather than Fc[ad]r.
- * w32term.c (w32_native_per_char_metric): Don't trust the metrics
- that Windows returns. If a double check fails, try to guess how
- ExtTextOut is going to act.
+2007-10-17 Chong Yidong <cyd@stupidchicken.com>
- * w32fns.c (w32_load_system_font, w32_to_x_charset): Use strnicmp
- in place of stricmp.
- (w32_list_synthesized_fonts): Removed.
- (w32_to_all_x_charsets, enum_font_maybe_add_to_list): New functions.
- (struct enumfont_t): New element; list.
- (enum_font_cb2): List all style and charset variations of a font.
- (Fw32_select_font): New optional argument; include_proportional.
- Exclude vertical fonts. Exclude proportional fonts unless
- include_proportional is non-nil.
- (w32_enable_synthesized_fonts): Change to a boolean.
- (Fw32_send_sys_command): Doc fix.
+ * process.c: Link to libs for calling res_init() if available.
+ (Fmake_network_process): Call res_init() before getaddrinfo or
+ gethostbyname, if possible.
-2002-01-19 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-10-17 Stefan Monnier <monnier@iro.umontreal.ca>
- * dispnew.c (update_frame): Move the variable `tem' to the block
- where it is used.
+ * lread.c (read1): Set pvectype for char_tables.
-2002-01-19 Jason Rumney <jasonr@gnu.org>
+ * lisp.h (XMISCANY, XMARKER, XINTFWD, XBOOLFWD, XOBJFWD, XOVERLAY)
+ (XBUFFER_OBJFWD, XBUFFER_LOCAL_VALUE, XKBOARD_OBJFWD, XSAVE_VALUE):
+ Add type checks.
+ (SOME_BUFFER_LOCAL_VALUEP, GC_SOME_BUFFER_LOCAL_VALUEP): Remove.
- * w32fns.c (Fx_create_frame): Bind redisplay-dont-pause around
- call to face-set-after-frame-default.
+ * alloc.c (free_misc): Use XMISCTYPE.
+ (live_misc_p, gc_sweep): Use Lisp_Misc_Any.
-2002-01-18 Richard M. Stallman <rms@gnu.org>
+2007-10-17 Glenn Morris <rgm@gnu.org>
- * dispextern.h (WINDOW_WANTS_MODELINE_P): Check window height > 1.
- (WINDOW_WANTS_HEADER_LINE_P): Check window height provides room.
+ * minibuf.c (Qcompletion_ignore_case): New Lisp_Object.
+ (syms_of_minibuf): Add Qcompletion_ignore_case.
+ * dired.c (Qcompletion_ignore_case): Change to external.
+ (syms_of_dired) [VMS]: Remove Qcompletion_ignore_case.
+ * fileio.c (Qcompletion_ignore_case): New external Lisp_Object.
+ (Fread_file_name): Use it rather than intern'ing.
-2002-01-17 Richard M. Stallman <rms@gnu.org>
+ * coding.c (Qcompletion_ignore_case): New external Lisp_Object.
+ (Fread_coding_system): Ignore case of user input.
- * window.c (enlarge_window): When exceeding size of parent,
- directly delete all the siblings instead of trying to resize it.
+2007-10-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-2002-01-17 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * xdisp.c (handle_display_prop): Ignore display specs after
+ replacing one when string text is being replaced.
+ (handle_single_display_spec): Pretend as if characters with display
+ property haven't been consumed only when buffer text is being replaced.
- * term.c (set_tty_color_mode): Remove unused variable `tem'.
+2007-10-16 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * xfns.c (Fx_create_frame, Fx_display_list):
+ * window.c (window_fixed_size_p, enlarge_window)
+ (shrink_window_lowest_first):
+ * macterm.c (init_font_name_table):
+ * macfns.c (Fx_create_frame, Fx_display_list):
+ * lread.c (close_load_descs):
+ * keyboard.c (read_char_x_menu_prompt):
+ * fns.c (Fmember, Fmemql, Fdelete, Fset_char_table_parent):
+ * coding.c (code_convert_region_unwind): Test the type of an object
+ rather than just !NILP before extracting data from it.
+
+ * alloc.c (Fpurecopy): Set the pvec tag on pseudo vectors.
+
+ * lisp.h (enum Lisp_Misc_Type): Del Lisp_Misc_Some_Buffer_Local_Value.
+ (XMISCANY): New macro.
+ (XMISCTYPE): Use it.
+ (struct Lisp_Misc_Any): New type.
+ (union Lisp_Misc): Use it.
+ (struct Lisp_Buffer_Local_Value): Add `local_if_set' bit.
+ * data.c (Fboundp, store_symval_forwarding, swap_in_global_binding)
+ (find_symbol_value, set_internal, default_value, Fset_default)
+ (Fmake_variable_buffer_local, Fmake_local_variable)
+ (Fkill_local_variable, Fmake_variable_frame_local, Flocal_variable_p)
+ (Flocal_variable_if_set_p, Fvariable_binding_locus):
+ The SOME_BUFFER_LOCAL_VALUEP distinction is replaced by local_if_set.
+ * alloc.c (allocate_buffer): Set the size and tag.
+ (allocate_misc, mark_maybe_object, mark_object, survives_gc_p):
+ Use XMISCANY.
+ (die): Follow the GNU convention for error messages.
+ * print.c (print_object): SOME_BUFFER_LOCAL_VALUEP -> local_if_set.
+ * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Don't set the
+ tag any more.
+ (set_buffer_internal_1):
+ * frame.c (store_frame_param):
+ * eval.c (specbind):
+ * xdisp.c (select_frame_for_redisplay): Drop SOME_BUFFER_LOCAL_VALUEP.
-2002-01-16 Henrik Enberg <henrik@enberg.org>
+ * doc.c (Fsnarf_documentation): Simplify.
- * lread.c (init_lread): Move the installed-lisp dirs later in the path.
+2007-10-14 Juanma Barranquero <lekktu@gmail.com>
-2002-01-16 Kim F. Storm <storm@cua.dk>
+ * w32term.c (w32_font_is_double_byte, my_create_scrollbar): Make static.
+ (syms_of_w32term) <w32-enable-unicode-output>: Fix typo in docstring.
- * xterm.c (x_erase_phys_cursor): Don't erase cursor if cursor row
- is invisible. This can happen if cursor is on top line of a
- window, and we switch to a buffer with a header line.
+2007-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
- * w32term.c (x_erase_phys_cursor): Ditto.
+ * buffer.c (Fmake_indirect_buffer): Set the buffer's tag.
-2002-01-16 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-10-14 Juanma Barranquero <lekktu@gmail.com>
- * xterm.c (XTread_socket) [!USE_X_TOOLKIT]: Compute the value of
- `dont_resize' only when used.
+ * eval.c (do_autoload): Don't save autoloads.
- * xdisp.c: Remove forgotten extern declaration of `Qimage'.
+ * data.c (Ffset): Save autoload of the function being set.
-2002-01-15 Eli Zaretskii <eliz@is.elta.co.il>
+2007-10-07 John Paul Wallington <jpw@pobox.com>
- * xdisp.c (display_mode_element): When computing charpos, depend
- on multibyteness of elt, not the text in field.
+ * xfns.c (x_create_tip_frame): Set the `display-type' frame
+ parameter before setting up faces.
-2002-01-15 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-10-13 Eli Zaretskii <eliz@gnu.org>
- * buffer.c (Fkill_all_local_variables):
- Increment `update_mode_lines' only once.
+ * ccl.c (Fregister_code_conversion_map):
+ * keyboard.c (append_tool_bar_item): Reformat last change.
-2002-01-14 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * lisp.h (eabs): Rename from `abs'. All callers changed.
- * lisp.h (adjust_after_replace_noundo)
- (Fupdate_coding_systems_internal): Add prototypes.
+2007-10-05 Dmitry Antipov <dmantipov@yandex.ru>
- * sound.c (Fplay_sound): Initialize header_size also for :data case.
+ * buffer.c (add_overlay_mod_hooklist):
+ * ccl.c (Fregister_ccl_program, Fregister_code_conversion_map):
+ * fontset.c (make_fontset):
+ * keyboard.c (GROW_RAW_KEYBUF, menu_bar_items, menu_bar_item)
+ (append_tool_bar_item):
+ * macmenu.c (grow_menu_items):
+ * w32menu.c (grow_menu_items):
+ * xmenu.c (grow_menu_items): Use larger_vector.
-2002-01-14 Eli Zaretskii <eliz@is.elta.co.il>
+2007-10-13 Eli Zaretskii <eliz@gnu.org>
- Support for the --color command-line argument and tty-color-mode
- frame parameter:
+ * msdos.c (dos_rawgetc): Undo last change (there's no ``leaving
+ selected frame'' on MSDOS).
- * term.c (tty_default_color_capabilities, tty_setup_colors)
- (set_tty_color_mode): New functions.
- (term_init): Call tty_default_color_capabilities.
- (Qtty_color_mode_alist): New variable.
- (syms_of_term): Intern and staticpro it.
+2007-10-12 Martin Rudalics <rudalics@gmx.at>
- * frame.c (store_frame_param): Call set_tty_color_mode for termcap
- frames.
- (do_switch_frame): For termcap frames, switch the tty
- color mode as specified by the frame's parameters.
- (Qtty_color_mode): New variable.
+ * frame.c (Qexplicit_name): New variable.
+ (x_report_frame_params): Report it in parameter alist.
(syms_of_frame): Intern and staticpro it.
- * emacs.c (USAGE2): Add the --color option.
- (standard_args): Ditto.
-
-2002-01-13 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+2007-10-10 Patrick Mahan <mahan@mahan.org> (tiny change)
- * xterm.h (struct x_output): New members want_fullscreen,
- x_pixels_diff, y_pixels_diff, x_pixels_outer_diff, and
- y_pixels_outer_diff.
- New enum for FULLSCREEN_* constants.
- (FRAME_OUTER_WINDOW): Handle the case where output_data.x->widget
- is NULL.
- (x_fullscreen_adjust): Add prototype.
+ * macfns.c (x_create_tip_frame): Set terminal for frame.
- * emacs.c (USAGE2): Add the new full-screen arguments.
- (standard_args): Ditto.
+2007-10-10 Stefan Monnier <monnier@iro.umontreal.ca>
- * xfns.c (Qfullscreen, Qfullwidth, Qfullheight, Qfullboth):
- New variables.
- (syms_of_xfns): Intern and staticpro them.
- (x_frame_parms) <"fullscreen">: New parameter.
- (x_fullscreen_move, x_set_fullscreen): New functions.
- (x_set_frame_parameters): Support for Qfullscreen.
- (x_real_positions): More accurate computation of the frame position.
- (x_figure_window_size): Support full-screen frames.
- (Fx_create_frame): Default the fullscreen parameter.
+ * frame.c (Qenvironment): Remove.
+ (syms_of_frame) <Qenvironment>: Don't initialize.
+ (Fdelete_frame): Don't treat the `environment' param specially.
+ * frame.h (Qenvironment): Don't declare.
+ * callproc.c (set_initial_environment): Don't set unused frame param.
- * xterm.c (x_check_fullscreen, x_fullscreen_adjust): New functions.
- (XTread_socket) <Expose>: Call x_check_fullscreen.
- <ConfigureNotify>: Don't resize to fullscreen.
- Call x_check_fullscreen_move, and set the want_fullscreen member of
- output_data.x.
+ * frame.c (Fframe_with_environment): Remove.
+ (syms_of_frame) <Sframe_with_environment>: Don't declare.
-2002-01-13 Jason Rumney <jasonr@gnu.org>
+ * lisp.h (Fframe_with_environment): Don't declare.
- * w32term.h (WM_XBUTTONDOWN, WM_XBUTTONUP): New window messages
- for mice with more than 3 buttons.
+2007-10-10 Juanma Barranquero <lekktu@gmail.com>
- * w32term.c (parse_button): New parameter xbutton. Callers changed.
- (w32_read_socket): Handle new "XBUTTON" messages.
+ * indent.c (indent_tabs_mode, last_known_column)
+ (last_known_column_modified): Make static.
+ (syms_of_indent) <indent-tabs-mode>: Remove redundant info in docstring.
- * w32fns.c (w32_pass_extra_mouse_buttons_to_system): New user option.
- (syms_of_w32fns): DEFVAR_BOOL it.
- (w32_wnd_proc): Handle new "XBUTTON" messages.
+2007-10-10 Katsumi Yamaoka <yamaoka@jpl.org>
-2002-01-13 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * puresize.h (BASE_PURESIZE): Increase to 1170000.
- * keyboard.c (read_key_sequence): Remove unused variable `extra_maps'.
-
-2002-01-13 Andreas Schwab <schwab@suse.de>
-
- * xterm.c (x_load_font): Never set fonts_changed_p to zero.
-
-2002-01-12 Andreas Schwab <schwab@suse.de>
-
- * .gdbinit (xbuffer): Remove address operator since data is now a
- pointer.
-
-2002-01-11 Richard M. Stallman <rms@gnu.org>
-
- * insdel.c (adjust_after_replace_noundo): New function.
-
- * coding.c (code_convert_region): Don't copy old text if undo disabled.
+2007-10-09 Jason Rumney <jasonr@gnu.org>
-2002-01-09 Jason Rumney <jasonr@gnu.org>
+ * w32term.c (x_set_window_size): Disable code that attempts to tell
+ Lisp code about a size change before it actually happens.
- * xdisp.c (x_consider_frame_title): Don't count the tooltip frame
- when checking for multiple frames.
+2007-10-09 Richard Stallman <rms@gnu.org>
-2002-01-08 Richard M. Stallman <rms@gnu.org>
+ * xdisp.c (handle_invisible_prop): After setting up an ellipsis,
+ return HANDLED_RETURN.
- * window.c (delete_window): Rewrite the code for changing the
- selected window to handle the case where WINDOW is not a leaf.
+2007-10-08 Martin Rudalics <rudalics@gmx.at>
-2002-01-07 Eli Zaretskii <eliz@is.elta.co.il>
+ * keyboard.c (kbd_buffer_get_event): Break loop waiting for input
+ when there's an unread command event.
- * process.c (send_process): Set src_multibyte to 1 after the call
- top setup_coding_system, not before the call.
+ * frame.c (focus_follows_mouse): Move here from frame.el to allow
+ window autoselection act appropriately when leaving selected frame.
+ (syms_of_frame): Initialize focus_follows_mouse.
+ * frame.h (focus_follows_mouse): Extern it.
+ * macterm.c (XTread_socket): When focus_follows_mouse is nil
+ make SELECT_WINDOW_EVENT only if we don't leave the selected frame.
+ * msdos.c (dos_rawgetc): Likewise.
+ * w32term.c (w32_read_socket): Likewise.
+ * xterm.c (handle_one_xevent): Likewise.
+ * xdisp.c (syms_of_xdisp): In doc-string of
+ mouse-autoselect-window mention focus-follows-mouse.
-2002-01-07 Jason Rumney <jasonr@gnu.org>
+2007-10-08 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * xmenu.c (set_frame_menubar, xmenu_show):
- (xdialog_show): Initialize wv->help to Qnil.
+ * macterm.c (mac_load_query_font): Fix missing return value.
+ [USE_CG_DRAWING] (mac_define_fringe_bitmap, mac_destroy_fringe_bitmap):
+ Add BLOCK_INPUT.
- * w32menu.c (single_submenu, set_frame_menubar, w32_menu_show):
- (w32_dialog_show): Initialize wv->help to Qnil.
+2007-10-08 Richard Stallman <rms@gnu.org>
-2002-01-06 Jason Rumney <jasonr@gnu.org>
+ * xdisp.c (get_window_cursor_type): Implement documented behavior
+ for cursor-in-non-selected-windows = t.
- * xmenu.c (single_submenu): Initialize wv->help to Qnil.
+2007-10-08 Jason Rumney <jasonr@gnu.org>
- * w32menu.c (w32_menu_display_help): Revert last change.
+ * w32.c (w32_get_resource): Always close registry keys.
- * xmenu.c (menu_highlight_callback): Revert last change.
+2007-10-08 Jason Rumney <jasonr@gnu.org>
-2002-01-06 Andreas Schwab <schwab@suse.de>
+ * makefile.w32-in (LIBS): Add COMCTL32.
- * insdel.c (make_gap_larger): Make sure buffer size does not
- overflow range of int.
+ * w32fns.c (globals_of_w32fns): Init common controls.
-2002-01-05 Jason Rumney <jasonr@gnu.org>
+2007-10-08 Richard Stallman <rms@gnu.org>
- * w32term.c (x_draw_glyphs): Don't call notice_overwritten_cursor if
- OVERLAPS_P.
+ * image.c (our_memory_buffer): Rename from omfib_buffer.
- * w32menu.c (w32_menu_display_help): Hide any tooltip window.
+2007-10-08 Richard Stallman <rms@gnu.org>
- * w32fns.c (compute_tip_xy): If tooltip won't fit on the screen
- to the left or to the right of the pointer, put it against
- the left screen edge.
- (x_frame_parms): Add missing braces around initializer.
+ * buffer.c (Foverlays_at): Doc fix.
- * w32term.c (x_setup_relief_colors): Don't compute an image's
- background color if it doesn't have a Pixmap.
- (notice_overwritten_cursor): Don't depend on
- output_cursor and updated_area. Compare pixel coordinates with
- window's cursor pixel coordinates.
- (x_draw_glyphs, x_clear_end_of_line, show_mouse_face):
- Call notice_overwritten_cursor with new arg list.
- (show_mouse_face): Fix bug setting a row's mouse_face_p flag
- unconditionally.
- (x_draw_image_relief): Use predefined macro instead of
- constant when the value of `tool_bar_button_relief' is negative.
+2007-10-08 Stefan Monnier <monnier@iro.umontreal.ca>
- * w32term.c (x_display_and_set_cursor): Fix PostMessage arg types.
+ * fns.c (Fplist_put): Preserve uneven tail data.
-2002-01-04 Richard M. Stallman <rms@gnu.org>
+2007-10-08 Peter O'Gorman <bug-gnu-emacs@mlists.thewrittenword.com> (tiny change)
- * xmenu.c (menu_highlight_callback): Hide any tooltip window.
+ * termhooks.h (enum event_kind): Remove trailing comma.
-2002-01-03 Richard M. Stallman <rms@gnu.org>
+ * frame.h (enum): Remove trailing comma.
- * keymap.c (Fcurrent_active_maps): Put the `keymap' property map first.
- (Fkey_binding): Try the `keymap' property map first.
- (Fdescribe_buffer_bindings): Show `keymap' property bindings before
- minor mode bindings.
+2007-10-08 Dhuvra Krishnamurthy <dhuvrakm@gmail.com> (tiny change)
-2002-01-03 Kim F. Storm <storm@cua.dk>
+ * w32proc.c (delete_child): Don't terminate threads of zombies.
- * keyboard.c (read_key_sequence): Fix cast of submaps arg to bcopy.
+2007-10-08 Martin Rudalics <rudalics@gmx.at>
-2002-01-02 Richard M. Stallman <rms@gnu.org>
+ * keyboard.h (struct kboard): New elt Vlast_repeatable_command.
- * keyboard.c (read_key_sequence): Handle the keymap property
- before minor mode maps.
+ * keyboard.c (syms_of_keyboard): Set up new Lisp variable
+ last-repeatable-command.
+ (init_kboard): Initialize Vlast_repeatable_command.
+ (command_loop_1): Set it to real_this_command unless that was
+ bound to an input event.
+ (mark_kboards): Mark it.
- * editfns.c (Fformat): Update thissize from field_width
- based on the actual width, in the string case.
+2007-10-08 Richard Stallman <rms@gnu.org>
-2002-01-01 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * eval.c (condition-case): Doc fix.
- * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Parenthesize assignment
- when used as truth value to prevent gcc warnings.
+2007-10-08 Masatake YAMATO <jet@gyve.org>
- * sysdep.c, unexapollo.c, w32.c, w32bdf.c, w32heap.c, w32inevt.c,
- * w32proc.c: Include <config.h>.
+ * xfaces.c (tty_supports_face_attributes_p): Fix code
+ for LFACE_INVERSE_INDEX and LFACE_BACKGROUND_INDEX; code
+ was copied and not edited.
-2002-01-01 Andreas Schwab <schwab@suse.de>
+2007-10-09 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ Add new `input-decode-map' keymap and use it for terminal
+ escape sequences.
+ * keyboard.h (struct kboard): Add Vinput_decode_map.
+ Remove Vlocal_key_translation_map.
+ * keyboard.c (read_key_sequence): Add support for input-decode-map.
+ (init_kboard): Init input-decode-map.
+ Replace local-key-translation-map back with key-translation-map.
+ (syms_of_keyboard): Declare input-decode-map.
+ Remove local-key-translation-map. Update docstrings.
+ (mark_kboards): Mark Vinput_decode_map.
+ Don't mark Vlocal_key_translation_map.
+ * keymap.c (Fdescribe_buffer_bindings): Describe input-decode-map.
+ Replace local-key-translation-map back with key-translation-map.
+ * term.c (term_get_fkeys_1, CONDITIONAL_REASSIGN):
+ Bind in input-decode-map rather than function-key-map.
+
+ * lisp.h (XSETPSEUDOVECTOR): Don't set the tag anymore.
+ This was made redundant by the previous introduction of XSETPVECTYPE.
- * eval.c (max_specpdl_size, max_lisp_eval_depth): Define as int,
- not EMACS_INT, to make them compatible with DEFVAR_INT.
- * lisp.h (max_specpdl_size): Adjust declaration.
+2007-10-09 Richard Stallman <rms@gnu.org>
-2002-01-01 Richard M. Stallman <rms@gnu.org>
+ * image.c (free_bitmap_record): Rename from Free_Bitmap_Record.
- * print.c (print_object): Test print_escape_nonascii only for
- unibyte strings.
- (PRINTPREPARE): Once again bind Qprint_escape_nonascii
- when outputting to a multibyte buffer.
+2007-09-29 Richard Stallman <rms@gnu.org>
-2001-12-29 Richard M. Stallman <rms@gnu.org>
+ * eval.c (internal_condition_case_2, internal_condition_case_1)
+ (internal_condition_case): Reenable abort if x_catching_errors ()
+ to see if that really happens and why.
- * print.c (print_object): In multibyte string, use hex escapes.
- Use octal only for unibyte strings.
- (PRINTPREPARE): Don't ever set Qprint_escape_nonascii.
+2007-10-06 Andreas Schwab <schwab@suse.de>
- * lread.c (read_escape): New arg BYTEREP for reporting whether
- escape forces unibyte or multibyte.
- (read1): When reading a string, take note of that info.
+ * fileio.c (Fwrite_region): Ignore EINVAL error from fsync.
-2001-12-29 Ken Raeburn <raeburn@gnu.org>
+2007-10-04 Juanma Barranquero <lekktu@gmail.com>
- * abbrev.c (Fexpand_abbrev): Use NILP instead of implicit zero
- comparison to test lisp value returned by Fget.
+ * image.c (syms_of_image) <image-types>: Fix typo in docstring.
-2001-12-29 Richard M. Stallman <rms@gnu.org>
+2007-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
- * lisp.h (max_specpdl_size): Add declaration.
+ * frame.h (struct frame): Don't try to GC-mark menu_bar_items_used.
- * fileio.c (Fdo_auto_save): If NO_MESSAGE, don't call push_message.
+2007-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
- * keymap.c (silly_event_symbol_error): New subrtn, from Fdefine_key.
- Handle modifier bits. Correct typo in error message.
+ * window.h (struct window):
+ * window.c (struct save_window_data, struct saved_window):
+ * termhooks.h (struct terminal):
+ * process.h (struct Lisp_Process):
+ * frame.h (struct frame):
+ * buffer.h (struct buffer):
+ * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table)
+ (struct Lisp_Bool_Vector, struct Lisp_Subr, struct Lisp_Hash_Table):
+ The size field of (pseudo)vectors is now unsigned.
+ (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG): Simplify accordingly.
-2001-12-28 Richard M. Stallman <rms@gnu.org>
+ * lisp.h (struct Lisp_Hash_Table): Move non-traced elements at the end.
+ Turn `count' into an integer.
- * abbrev.c: Use the plist of an abbrev for multiple params if nec.
- (Fdefine_abbrev): New arg SYSTEM-FLAG for a system abbrev.
- (Fdefine_global_abbrev, Fdefine_mode_abbrev):
- Update calls to Fdefine_abbrev.
- (write_abbrev): Update for changed data format.
- Don't list "system" abbrevs.
- (Fexpand_abbrev): Update use count with new data format.
- (describe_abbrev): Update for changed data format.
- (Fdefine_abbrev_table): Handle the new SYSTEM-FLAG.
+ * fns.c (make_hash_table, hash_put, hash_remove, hash_clear)
+ (sweep_weak_table, sweep_weak_hash_tables, Fhash_table_count):
+ * print.c (print_object) <HASH_TABLE_P>: `count' is an int.
+ * alloc.c (allocate_hash_table): Use ALLOCATE_PSEUDOVECTOR.
+ (mark_object) <HASH_TABLE_P>: Use mark_vectorlike.
- * config.in (HAVE_MBSINIT): Add #undef.
+ * alloc.c (allocate_pseudovector): New fun.
+ (ALLOCATE_PSEUDOVECTOR): New macro.
+ (allocate_window, allocate_terminal, allocate_frame)
+ (allocate_process): Use it.
+ (mark_vectorlike): New function.
+ (mark_object) <FRAMEP, WINDOWP, BOOL_VECTOR_P, VECTORP>: Use it.
+ (mark_terminals): Use it.
+ (Fmake_bool_vector, Fmake_char_table, make_sub_char_table)
+ (Fmake_byte_code): Use XSETPVECTYPE.
- * strftime.c (mbsinit): Define as no-op if not available.
+ * frame.c (Fframe_parameters): Minor simplification.
- * s/sco5.h (LIBX11_SYSTEM) [MOTIF]: Add -lgen.
- (sigprocmask_set): Conditionalize decl on ! NOT_C_CODE.
+ * insdel.c (adjust_markers_for_insert): Generalize assertion checks.
- * keymap.c (Flookup_key): Error message if key has wrong data type.
- (Fdefine_key): Add error message for trying to bind [DEL], [RET], etc.
- (exclude_key): New variable.
+ * marker.c (Fmarker_buffer): Make test for odd case into a failure.
-2001-12-28 Gerd Moellmann <gerd@gnu.org>
+ * buffer.c (Fget_buffer_create, init_buffer_once):
+ * lread.c (defsubr):
+ * window.c (Fcurrent_window_configuration): Use XSETPVECTYPE.
- * xterm.c (x_setup_relief_colors): Don't compute an image's
- background color if it doesn't have a Pixmap.
+ * lisp.h (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG): Don't let them be
+ defined differently in the m/*.h files.
+ (XCHAR_TABLE, XBOOL_VECTOR): Add assertion checking.
+ (XSETPVECTYPE): New macro.
+ (XSETPSEUDOVECTOR): Use it.
- * xterm.c (notice_overwritten_cursor): Don't depend on
- output_cursor and updated_area. Compare pixel coordinates with
- window's cursor pixel coordinates.
- (x_draw_glyphs, x_clear_end_of_line, show_mouse_face):
- Call notice_overwritten_cursor with new arg list.
- (show_mouse_face): Fix bug setting a row's mouse_face_p flag
- unconditionally.
+ * buffer.c (syms_of_buffer) <local-abbrev-table>: Move from abbrev.c.
+ (DEFVAR_PER_BUFFER, defvar_per_buffer): Move from lisp.h and lread.c.
- * xdisp.c (try_scrolling) <PT below scroll margin>: Add the
- height of the cursor line to the amount to scroll.
+ * lisp.h (defvar_per_buffer, DEFVAR_PER_BUFFER):
+ * lread.c (defvar_per_buffer):
+ * abbrev.c (syms_of_abbrev) <local-abbrev-tabl>: Move to buffer.c.
-2001-12-27 Richard M. Stallman <rms@gnu.org>
+ * window.c (candidate_window_p): Only consider as visible frames that
+ are on the same terminal.
- * intervals.c (set_point_both): The position after an invisible,
- intangible character is not an acceptable stopping point.
+ * m/ibms390x.h (MARKBIT): Remove unused macro.
-2001-12-27 Ken Raeburn <raeburn@gnu.org>
+2007-10-01 Juanma Barranquero <lekktu@gmail.com>
- * window.c (enlarge_window): In new preserve_before code, convert
- CURBEG from lisp object to integer before doing arithmetic.
+ * lread.c (Fload): Fix typo in docstring.
-2001-12-27 Richard M. Stallman <rms@gnu.org>
+2007-10-01 Micha\e,Ak\e(Bl Cadilhac <michael@cadilhac.name>
- * bytecode.c (Fbyte_code): Undo previous change.
+ * floatfns.c (Fexpt): Manually check for overflows, so that a power
+ of a non-zero value can't yield zero.
-2001-12-26 Kim F. Storm <storm@cua.dk>
+2007-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
- * keyboard.c (record_char): Ignore duplicate help-echo events only
- separated by mouse-movement. When tracking mouse, only record
- first and last mouse-movement event in same window.
- Don't record mouse-movement events in keyboard macros.
+ * term.c (term_clear_mouse_face, term_mouse_highlight)
+ (tty_write_glyphs_with_face): Only define is HAVE_GPM.
-2001-12-25 Richard M. Stallman <rms@gnu.org>
+ * print.c (safe_debug_print): Use XHASH.
- * window.c (enlarge_window): New arg PRESERVE_BEFORE. Callers changed.
- (Fenlarge_window): New arg PRESERVE_BEFORE.
+ * lisp.h (DECL_ALIGN, USE_LSB_TAG): Move logic to before definition of
+ Lisp elements such as tags.
+ (XHASH): New macro.
+ (EQ): Use it.
+ (SREF, SSET, STRING_COPYIN): Use SDATA.
+ (VOID_TO_LISP, CVOID_TO_LISP, LISP_TO_VOID, LISP_TO_CVOID): Remove.
- * bytecode.c (Fbyte_code): Use Fstring_make_unibyte
- instead of Fstring_as_unibyte.
+ * alloc.c (mark_terminal): Remove left-over declaration.
+ (enum mem_type): Replace all vector subtypes -> MEM_TYPE_VECTORLIKE.
+ (allocate_vectorlike): Remove type argument. Adjust callers.
+ (live_vector_p, mark_maybe_pointer, valid_lisp_object_p):
+ Only handle the one remaining MEM_TYPE_VECTORLIKE.
-2001-12-22 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * alloc.c (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): New macros
+ to avoid unnecessary BLOCK_INPUTs when SYNC_INPUT is used.
+ (xmalloc, xrealloc, xfree, lisp_malloc, lisp_free, lisp_align_malloc)
+ (lisp_align_free, make_interval, allocate_string, allocate_string_data)
+ (make_float, Fcons, allocate_vectorlike, Fmake_symbol, allocate_misc):
+ Use them.
- The following changes remove mocklisp support:
+ * xfaces.c (load_face_font, free_realized_face, clear_face_gcs):
+ Don't let signal handlers run when a GC is freed but not yet NULL'ed.
+ (x_free_gc): Remove BLOCK_INPUT since it's now redundant.
- * mocklisp.h, mocklisp.c: Files removed.
+2007-09-28 Dan Nicolaescu <dann@ics.uci.edu>
- * lisp.h: Remove declarations of variables `Vmocklisp_arguments',
- `Qmocklisp' and `Qmocklisp_arguments'.
- Remove prototype of syms_of_mocklisp.
+ * Makefile.in (lisp, shortlisp): Delete server.elc, it is not
+ loaded by default.
- * makefile.nt, makefile.w32-in, Makefile.in: Remove mocklisp files.
+2007-09-28 Stefan Monnier <monnier@iro.umontreal.ca>
- * callint.c: Do not include mocklisp.h.
- (Fcall_interactively): Do not test for mocklisp case.
+ * term.c (Fgpm_mouse_start): Don't signal an error if already activated
+ on this tty.
+ (Fgpm_mouse_stop): Only deactivate if it was activated on this tty.
- * eval.c: Remove variables `Qmocklisp_arguments',
- `Vmocklisp_arguments' and `Qmocklisp'. Remove prototype of ml_apply.
- (Fprogn, Fwhile, Fcommandp, Feval, Ffuncall, funcall_lambda):
- Do not test for mocklisp case.
- (Fwhile): Remove unused variable `tem'.
- (syms_of_eval): Remove variable `moclisp-arguments'.
+ * term.c (mouse_face_window): Rename from Qmouse_face_window.
+ Update all users.
+ (handle_one_term_event): Use Gpm_DrawPointer.
+ (Fgpm_mouse_start): Rename from Fterm_open_connection.
+ Signal errors instead of returning nil. Always return nil.
+ (Fgpm_mouse_stop): Rename from Fterm_close_connection.
+ Make it a noop if gpm-mouse was not activated.
+ (syms_of_term): Update names.
- * data.c (wrong_type_argument): Remove mocklisp case.
+2007-09-27 Stefan Monnier <monnier@iro.umontreal.ca>
- * doc.c (Fdocumentation): Remove mocklisp case.
+ * sysdep.c (narrow_foreground_group, widen_foreground_group): Static.
+ (init_sys_modes): Check that gpm_tty is the current tty.
- * emacs.c (main): Do not call syms_of_mocklisp.
+ * alloc.c (allocate_terminal): Set the vector size to only count the
+ lisp fields. Initialize those to nil.
+ (mark_object): Don't treat terminals specially.
+ (mark_terminal): Remove.
+ (mark_terminals): Use mark_object instead.
-2001-12-21 Richard M. Stallman <rms@gnu.org>
+ * termhooks.h (struct terminal): Move all Lisp_Object fields traced by
+ the GC to the beginning.
- * xfns.c (compute_tip_xy): If tooltip won't fit on the screen
- to the left or to the right of the pointer, put it against
- the left screen edge.
+ * indent.h:
+ * indent.c: Use EMACS_INT for ints coming from Elisp data.
-2001-12-21 Eli Zaretskii <eliz@is.elta.co.il>
+ * indent.c (Fmove_to_column): Use EMACS_INT for buffer positions.
- * Makefile.in (distclean): Remove .gdbinit if we are building
- outside the source tree.
+2007-09-25 Jason Rumney <jasonr@gnu.org>
-2001-12-19 Eli Zaretskii <eliz@is.elta.co.il>
+ * frame.c (make_terminal_frame): Remove special case for WINDOWSNT.
- * w32.c (emacs_root_dir): New function.
+ * w32console.c (create_w32cons_output): Remove.
- * msdos.c (emacs_root_dir): New function.
+ * term.c (init_tty): Call init_sys_modes on WINDOWSNT also.
- * fileio.c (Fexpand_file_name) [DOS_NT]: Use the root directory
- of the current drive as the fallback for default_directory.
+ * sysdep.c (init_sys_modes): Use set_terminal_modes_hook.
+ (reset_sys_modes): Use reset_terminal_modes_hook.
- * dired.c (file_name_completion): Run the elements of
- completion-ignored-extensions through ENCODE_FILE.
+2007-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
- * lisp.h (scmp): Remove prototype, since it's now a static
- function private to dired.c.
+ * eval.c (do_autoload): Don't output any message.
-2001-12-18 Richard M. Stallman <rms@gnu.org>
+2007-09-24 Juri Linkov <juri@jurta.org>
- * dired.c (scmp): Function moved from minibuf.c.
- Delete multibyte handling--used only on encoded strings.
+ * emacs.c (standard_args): Change priority of "--no-splash"
+ from 40 to 3. Add "--no-desktop" with the same priority.
- * minibuf.c (scmp): Function moved to dired.c.
+2007-09-23 Dmitry Antipov <dmantipov@yandex.ru>
- * fns.c (merge): Add QUIT call.
+ * alloc.c (gc_sweep): Check cons cell mark bits word by word
+ and optimize the case where they are all 1.
-2001-12-18 Dave Love <fx@gnu.org>
+2007-09-23 Johannes Weiner <hannes@saeurebad.de>
- * Makefile.in (lisp, shortlisp): Add language/utf-8-lang.el,
- language/georgian.el.
+ * lisp.h (abs): Define if not defined.
+ * keyboard.c, sound.c, w32term.c, xfaces.c, xterm.c:
+ Don't define `abs', since it's defined in lisp.h.
-2001-12-18 Eli Zaretskii <eliz@is.elta.co.il>
+2007-09-22 Eli Zaretskii <eliz@gnu.org>
- * Makefile.in (lisp, shortlisp): Synchronize with changes to
- lisp/Makefile.in:DONTCOMPILE.
+ * term.c (DEV_TTY): New macro. Provide a definition for MS-Windows.
+ (FRAME_TERMCAP_P) [WINDOWSNT]: Don't define to zero.
+ (Fcontrolling_tty_p, Fresume_tty, dissociate_if_controlling_tty)
+ (init_tty): Use DEV_TTY instead of "/dev/tty".
+ [WINDOWSNT]: No need to protect from NAME arg being null.
-2001-12-18 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-09-21 Dan Nicolaescu <dann@ics.uci.edu>
- * xdisp.c (window_box_height): Do not return negative values.
- From Gerd Moellmann <gerd@gnu.org>.
+ * term.c (Fsuspend_tty): Run suspend-tty-functions before cleaning
+ up the tty state.
- * keyboard.c (head_table): Add missing braces around initializer.
+2007-09-21 Stefan Monnier <monnier@iro.umontreal.ca>
- * term.c (keys): Likewise.
+ * termhooks.h (term_gpm): Delete. Use gpm_tty's NULLness instead.
+ (gpm_tty): Change its type.
+ * term.c (term_gpm): Delete. Use gpm_tty's NULLness instead.
+ (gpm_tty): Change its type and initialize it.
+ (Fterm_open_connection): Check the frame is indeed a tty.
+ Use the new gpm_tty.
+ (Fterm_close_connection): Use the new gpm_tty.
+ * keyboard.c (tty_read_avail_input): Use the new gpm_tty.
+ * sysdep.c (init_sys_modes): term_gpm -> gpm_tty.
- * xfns.c (x_frame_parms, visual_classes): Likewise.
+2007-09-21 Juanma Barranquero <lekktu@gmail.com>
-2001-12-17 Sam Steingold <sds@gnu.org>
+ * w32term.c (x_draw_glyph_string): Use strike_through_color, not
+ underline_color, to draw strike-through.
- * coding.c (DECODE_COMPOSITION_END): Fixed a typo in the last
- patch (COMPOSING_P, not COMPOSING).
+2007-09-21 Stefan Monnier <monnier@iro.umontreal.ca>
-2001-12-17 Richard M. Stallman <rms@gnu.org>
+ * lisp.h (allocate_terminal): Declare.
- * editfns.c (Fcompare_buffer_substrings): Add QUIT to main loop.
+ * window.c (candidate_window_p): Consider frames that are being placed
+ by the user as somewhere between visible and iconified.
+ (window_loop): Prefer windows on the current frame.
+ (Fselect_window): Move the use of select-frame to the beginning so we
+ can just delegate all the work (it'll call us back anyway).
- * coding.c (code_convert_region): Update coding->cmp_data->char_offset
- before calling decode_coding.
+ * frame.c (Qdisplay_environment_variable):
+ * frame.h (Qdisplay_environment_variable): Delete.
- * charset.c (Fdefine_charset): Call Fupdate_coding_systems_internal.
+ * .gdbinit (xbacktrace): Print the arg's address rather than the value
+ of the first arg, since that value may be a union.
- * coding.c (DECODE_COMPOSITION_END): Check for ! COMPOSING_P (coding)
- instead of only for COMPOSITION_DISABLED.
+ * callproc.c (child_setup, getenv_internal): Use the frame's `display'
+ parameter rather than Qdisplay_environment_variable. If all else
+ fails, look for DISPLAY in initial-environment.
-2001-12-16 Richard M. Stallman <rms@gnu.org>
+2007-09-21 Glenn Morris <rgm@gnu.org>
- * alloc.c (pure_alloc): After overflow, allocate just a small block.
+ * Makefile.in (emacstool): Remove target.
+ (lisp, shortlisp): Remove termdev.elc.
- * Makefile.in (xmenu.o, xterm.o, fontset.o): Depend on buffer.h.
+2007-09-21 Markus Triska <markus.triska@gmx.at>
- * buffer.h (struct buffer): New field `display_error_modiff'.
- * buffer.c (reset_buffer): Initialize `display_error_modiff'.
+ * xterm.c (x_delete_display): Compile session management conditionally.
- * window.c (Frecenter): Clear display_error_modiff field.
+2007-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
- * xdisp.c (redisplay_window_0, redisplay_window_1): New functions.
- Call redisplay_window, but not if display_error_modiff field says no.
- (redisplay_window_error): New function.
- (displayed_buffer): New variable.
- (redisplay_internal, redisplay_windows): Call the new functions
- instead of redisplay_window directly.
+ * callproc.c (getenv_internal_1): New function.
+ (getenv_internal): Use it.
+ (Fgetenv_internal): Use it. Accept an env-list as optional arg.
-2001-12-15 Richard M. Stallman <rms@gnu.org>
+ * terminal.c (get_terminal): Don't accept ints to represent terminals.
+ (Fterminal_name, Fterminal_parameters, Fterminal_parameter)
+ (Fset_terminal_parameter): Work with dead terminals as well.
+ (Fmodify_terminal_parameters): Remove.
- * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Doc fix.
+ * terminal.c (get_terminal): Handle terminals.
+ Make sure the terminal returned is live.
+ (create_terminal): Use allocate_terminal.
+ (mark_terminals): Move to alloc.c.
+ (delete_terminal): Use terminal->name as liveness status.
+ NULL out fields after freeing their contents.
+ Don't deallocate the object.
+ (Fframe_terminal): Use FRAME_TERMINAL. Return the terminal object
+ rather than an int.
+ (Fterminal_live_p): Accept non-integer arguments.
+ (Fterminal_list): Return terminal objects rather than an ints.
-2001-12-14 Andrew Innes <andrewi@gnu.org>
+ * alloc.c (enum mem_type): New member for `terminal' objects.
+ (allocate_terminal): New function.
+ (mark_maybe_pointer, valid_lisp_object_p, mark_object):
+ Handle terminals.
+ (mark_terminal): New fun.
+ (mark_terminals): Move from terminal.c.
- * makefile.w32-in (EMACSLOADPATH): Define.
- ($(EMACS)): Run `list-load-path-shadows' after dumping Emacs.
- (bootstrap-temacs): Remove dependency on bootstrap-clean.
+ * term.c (get_tty_terminal): Don't treat output_initial specially.
+ (Fsuspend_tty, Fresume_tty): Use terminal objects rather than ints.
+ (delete_tty): Use terminal->name as liveness status.
-2001-12-13 Eli Zaretskii <eliz@is.elta.co.il>
+ * termhooks.h (struct terminal): Make it into a pseudovector.
+ Remove `deleted' replaced by checking `name's nullness.
- * xfns.c (x_report_frame_params): Make the scroll-bar-width frame
- parameter have a numeric value all the time.
+ * print.c (print_object): Handle terminals.
- * w32fns.c (x_report_frame_params): Likewise.
+ * lisp.h (enum pvec_type): New `terminal' pseudovector.
+ (XTERMINAL, XSETTERMINAL, TERMINALP, GC_TERMINALP): New macros.
-2001-12-12 Richard M. Stallman <rms@gnu.org>
+ * frame.c (make_terminal_frame):
+ * keyboard.c (tty_read_avail_input):
+ * w32term.c (x_delete_terminal):
+ * xfns.c (Fx_create_frame, x_create_tip_frame):
+ * xterm.c (x_delete_terminal): Use terminal->name as liveness status.
- * fileio.c (Fwrite_region): Doc fix.
+2007-09-20 Glenn Morris <rgm@gnu.org>
- * xdisp.c (CLEAR_FACE_CACHE_COUNT): Redefine as 500.
- (redisplay_internal): Call clear_image_cache only for window terminals.
+ * process.c (Fmake_network_process): Doc fix.
-2001-12-12 Gerd Moellmann <gerd@gnu.org>
+2007-09-19 Jason Rumney <jasonr@gnu.org>
- * xdisp.c (move_it_vertically_backward): Change heuristic
- for the case that we didn't move far enough initially.
+ * dispextern.h (w32_init_fringe, mac_init_fringe): Declare rif argument.
- * window.c (Frecenter): Simplify computation in the case of window
- system frames and ARG < 0; use window_box_height.
+2007-09-19 Micha\e,Ak\e(Bl Cadilhac <michael@cadilhac.name>
-2001-12-11 Richard M. Stallman <rms@gnu.org>
+ * coding.c (detect_eol_type, detect_eol_type_in_2_octet_form):
+ Fix a C warning regarding variable constness.
- * Makefile.in, mem-limits.h, dispnew.c, emacs.c, fileio.c:
- * process.c, sysdep.c, unexec.c: Test GNU_LINUX, not LINUX.
+ * xterm.c (handle_one_xevent): Fix a C warning.
-2001-12-11 Andrew Innes <andrewi@gnu.org>
+2007-09-18 Jason Rumney <jasonr@gnu.org>
- * insdel.c (make_gap) [DOUG_LEA_MALLOC]: Call make_gap_smaller if
- arg is negative.
+ * w32fns.c (Fx_focus_frame): Rename from Fw32_focus_frame.
-2001-12-11 Richard M. Stallman <rms@gnu.org>
+2007-09-17 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
- * m/hp800.h: Split the __hpux conditional into the parts
- that are right for GNU/Linux too and the parts that are not.
- Use the former if GNU_LINUX.
- (HAVE_ALLOCA, LOAD_AVE_TYPE, LOAD_AVE_CVT): New defs for GNU/Linux.
+ * gtkutil.c (gdpy_def): New variable.
+ (xg_initialize): Initialize gdpy_def.
+ (xg_display_close): If no other display exists, set gdpy_def to a
+ new connection.
- * s/gnu-linux.h (GNU_LINUX): Defined.
+2007-09-16 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-2001-12-11 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * gtkutil.c (xg_get_image_for_pixmap): Always create a GdkPixbuf
+ when we have no file name for the icon.
+ (xg_tool_bar_expose_callback): Remove.
+ (xg_create_tool_bar): Don't connect expose signal to
+ xg_tool_bar_expose_callback.
+ (xg_get_file_with_chooser): Move GCPRO1 after declarations.
- * macros.c, msdos.c, w16select.c: Change doc-string comments to
- `new style' [w/`doc:' keyword].
+2007-09-16 Andreas Schwab <schwab@suse.de>
-2001-12-10 Jason Rumney <jasonr@gnu.org>
+ * alloc.c (reset_malloc_hooks): Set the hooks to the previous
+ values instead of zapping them.
- * w32menu.c (w32_free_submenu_strings): Clear menu item struct
- before using.
+2007-09-14 Glenn Morris <rgm@gnu.org>
-2001-12-09 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * fringe.c (init_fringe_bitmap) <swap_nibble>: Move to file scope.
+ * gtkutil.c (xg_separator_p) <separator_names>: Move to file scope.
+ * image.c (our_memory_fill_input_buffer) <buffer>: Move to file
+ scope and rename to omfib_buffer for clarity.
+ (gif_load) <interlace_start, interlace_increment>: Move to file scope.
- * dosfns.c: Change doc-string comments to `new style' [w/`doc:'
- keyword].
+2007-09-14 Kenichi Handa <handa@m17n.org>
-2001-12-09 Eli Zaretskii <eliz@is.elta.co.il>
+ * xterm.c (handle_one_xevent): Skip decoding if nbytes is zero.
- * dosfns.c (dos-display-scancodes, dos-decimal): Doc fix.
+2007-09-13 Jason Rumney <jasonr@gnu.org>
- * s/hpux10.h (srand48): Don't undefine.
+ * fringe.c (w32_init_fringe, mac_init_fringe): Add rif argument.
-2001-12-09 Jason Rumney <jasonr@gnu.org>
+ * w32term.c (w32_term_init): Pass rif to w32_init_fringe.
- * w32menu.c (_widget_value): Make `help' field a Lisp_Object.
- Add comment to explain where the struct came from.
- (single_submenu, w32_menu_show): Set `help' field as Lisp_Object.
- (add_menu_item): Process pop-up menus first to avoid memory leak.
- (add_menu_item, w32_menu_display_help): Use `help' field as
- Lisp_Object.
- (w32_free_submenu_strings): Only free owner-drawn strings.
+ * macterm.c (mac_initialize): Don't call mac_init_fringe here.
+ (mac_term_init): Call here instead, passing rif.
-2001-12-09 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-09-13 Glenn Morris <rgm@gnu.org>
- * COPYING: Moved back.
+ * s/hpux.h: No longer define `static' as nothing.
- * charset.c (char_to_string_1, translate_char, Fdefine_charset):
- Add parentheses around && within ||.
+2007-09-13 Johan Bockg\e,Ae\e(Brd <bojohan@gnu.org>
- * indent.c (compute_motion): Likewise.
+ * callint.c (Fcall_interactively): Remove unused var `fun'.
- * intervals.c (merge_properties_sticky): Likewise.
+2007-09-12 Romain Francoise <romain@orebokech.com>
- * coding.c (setup_coding_system, shrink_encoding_region)
- (Fdecode_sjis_char): Likewise.
+ * window.c (prefer_window_split_horizontally, display_buffer):
+ Revert 2007-09-08 change.
-2001-12-07 Andreas Schwab <schwab@suse.de>
+2007-09-12 Glenn Morris <rgm@gnu.org>
- * xdisp.c (display_mode_element): Don't read past end of string if
- it ends with '%'.
+ * alloca.c: Remove file.
+ * Makefile.in (alloca): Do not undef.
+ (allocaobj, alloca.o): Remove.
+ (otherobj): Remove allocaobj.
+ * keyboard.c (command_loop_1): Remove #ifdef C_ALLOCA block.
+ * regex.c (C_ALLOCA): Remove all references and code that was only
+ used when this was defined.
+ * search.c (boyer_moore): Remove #ifdef C_ALLOCA block.
+ * xmenu.c (xmenu_show): Remove #ifdef C_ALLOCA block.
+ * m/ibms390x.h, m/sh3el.h (C_ALLOCA): Remove references to this.
- * alloc.c (inhibit_garbage_collection): Don't exceed value an int
- can hold.
+ * Makefile.in (SOURCES, unlock, relock): Delete.
- * data.c (Vmost_positive_fixnum, Vmost_negative_fixnum):
- Rename from most_positive_fixnum and most_negative_fixnum, resp., and
- type changed to Lisp_Object.
- (syms_of_data): DEFVAR_LISP them.
+ * gtkutil.c (cnt): Rename to menu_grab_callback_cnt for clarity.
+ (menu_grab_callback): All uses changed.
-2001-12-07 Richard M. Stallman <rms@gnu.org>
+ * xselect.c (cnt): Rename to x_reply_selection_request_cnt for clarity.
+ (x_reply_selection_request): All uses changed.
- * callproc.c (init_callproc): Set Vdata_directory based on the source
- location whenever Emacs was run uninstalled.
+2007-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
-2001-12-06 Paul Eggert <eggert@twinsun.com>
+ * lread.c (load_warn_old_style_backquotes): Change message to look
+ better when it appears in the middle of byte-compiler messages.
- * config.in (HAVE_WORKING_VFORK): New #undefs.
- * process.c (create_process):
- Use HAVE_WORKING_VFORK, not HAVE_VFORK.
- * m/cnvrgnt.h (HAVE_VFORK): Remove #define.
- * m/ibm370aix.h (HAVE_VFORK): Remove #undef.
- * m/ibmps2-aix.h (HAVE_VFORK): Remove #define.
- * m/intel386.h (HAVE_VFORK): Likewise.
- * m/mips-siemens.h (HAVE_VFORK): Likewise.
- * m/mips.h (HAVE_VFORK): Likewise.
- * s/freebsd.h (vfork): Remove #define.
- * s/lynxos.h (HAVE_VFORK): Remove #undef.
- * s/usg5-4-2.h: Fix comment about vfork.
+2007-09-10 Dan Nicolaescu <dann@ics.uci.edu>
-2001-12-06 Richard M. Stallman <rms@gnu.org>
+ * s/darwin.h (MULTI_KBOARD): Only define for Carbon.
- * s/hpux10.h (random): Add undef.
- (HAVE_RANDOM): Define it just once.
+ * xterm.c (x_create_terminal): Add comment.
-2001-12-06 Stefan Monnier <monnier@cs.yale.edu>
+ * term.c (clear_tty_hooks, set_tty_hooks): Add comments.
- * eval.c: Undo last change: the standard syntax is not wanted.
+2007-09-10 Richard Stallman <rms@gnu.org>
-2001-12-06 Eli Zaretskii <eliz@is.elta.co.il>
+ * xterm.c (x_term_init): Give error if can't open DISPLAY_NAME.
- * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]: Remove all the
- scroll bars of the frame before deleting the frame itself. If the
- frame has a widget, delete the frame with XtDestroyWidget, and do
- not call XDestroyWindow before that.
+2007-09-10 Micha\e,Ak\e(Bl Cadilhac <michael@cadilhac.name>
-2001-12-06 Kim F. Storm <storm@cua.dk>
+ * lisp.h (struct Lisp_Subr): Rename `prompt' field to `intspec'.
+ (DEFUN): Document `intspec', use it instead of `prompt'.
- * xfns.c (x_report_frame_params): Return actual fringe widths.
+ * eval.c (Fcommandp): Change `->prompt' to `->intspec'.
- * w32fns.c (x_report_frame_params): Return actual fringe widths.
+ * data.c (Finteractive_form): If the interactive specification starts
+ with a `(', use it as a Lisp form.
-2001-12-05 Andrew Innes <andrewi@gnu.org>
+ * fileio.c (Fset_file_modes): Add an interactive spec that reads a file
+ name and file modes.
- * alloc.c (Fgarbage_collect): Shrink buffer gaps that are
- excessively large.
+ * callint.c (Fcall_interactively): Comment fixes.
- * insdel.c (make_gap_larger): New function.
- (make_gap_smaller): New function.
- (make_gap) [USE_MMAP_FOR_BUFFERS || REL_ALLOC]:
- Call make_gap_smaller if arg is negative.
+2007-09-10 Stefan Monnier <monnier@iro.umontreal.ca>
-2001-12-04 Stefan Monnier <monnier@cs.yale.edu>
+ * callint.c (Fcall_interactively): Use Finteractive_form also for subrs
+ and compiled functions.
- * keyboard.c (kbd_buffer_store_event): Fix interrupt_signal prototype.
- Pass a dummy argument when calling interrupt_signal.
- (parse_menu_item): Mark disabled items before checking for empty def.
- (read_char_minibuf_menu_prompt): Make safety more visible.
- (read_key_sequence): Add a `first_unbound' variable.
- Use it to detect C-c ESC ESC ESC ESC ... cases and drop the
- unbound prefix as soon as we can detect it.
+2007-09-08 Fredrik Axelsson <f.axelsson@gmail.com>
- * doc.c (Fsnarf_documentation): Add prototype.
- (get_doc_string): Handle negative arguments.
- (Fdocumentation): Use AREF and ASIZE.
- Move the calls to get_doc_string to a single place.
- Don't confuse an interactive-spec for a docstring reference.
- (Fdocumentation_property): Take advantage of the fact that
- get_doc_string now ignores the sign of the docstring position.
+ * window.c (prefer_window_split_horizontally): New variable.
+ (display_buffer): Consider splitting window horizontally depending
+ on prefer_window_split_horizontally.
- * eval.c: Use standard syntax for usage in docstrings.
+2007-09-08 Eli Zaretskii <eliz@gnu.org>
-2001-12-03 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * sysdep.c [WINDOWSNT]: Don't include sysselect.h.
- * xdisp.c (syms_of_xdisp): Make `tool-bar-button-relief' an option.
+2007-09-07 Stefan Monnier <monnier@iro.umontreal.ca>
-2001-12-02 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * s/cygwin.h (GC_MARK_STACK): Enable conservative stack marking.
- * xterm.c (x_draw_image_relief): Use predefined macro instead of
- constant when the value of `tool_bar_button_relief' is negative.
+ * frame.c (x_set_frame_parameters): Check number is positive before
+ using XFASTINT.
-2001-12-02 Richard M. Stallman <rms@gnu.org>
+ * window.c (freeze_window_start): Don't presume selected_window holds
+ a window object.
+ (Fdisplay_buffer): Remove `register' since `buffer' needs to be gcpro'd.
- * xmenu.c (menu_highlight_callback): Use `help' field as Lisp_Object.
- (single_submenu, xmenu_show): Set `help' field as Lisp_Object.
+2007-09-07 Angelo Graziosi <Angelo.Graziosi@roma1.infn.it> (tiny change)
- * fileio.c (read_non_regular): Delete Fsignal call.
+ * term.c (dissociate_if_controlling_tty): Call setsid on CYGWIN.
-2001-12-01 Stefan Monnier <monnier@cs.yale.edu>
+2007-09-07 Stefan Monnier <monnier@iro.umontreal.ca>
- * lisp.h (run_hook_list_with_args): Undo last change.
+ * window.c (Vsplit_window_preferred_function): New var.
+ (Fdisplay_buffer): Use it.
+ (syms_of_window): Export, and initialize it.
-2001-12-01 Gerd Moellmann <gerd@gnu.org>
+2007-09-06 Pixel <pixel@mandriva.com> (tiny change)
- * xterm.c (x_draw_fringe_bitmap): Always undo clipping.
+ * image.c (gif_load): Fix bug: Handle nonexistent colormap.
-2001-12-01 Jason Rumney <jasonr@gnu.org>
+2007-09-06 Glenn Morris <rgm@gnu.org>
- * window.c (Qleft_fringe, Qright_fringe): Remove. Now in frame.c.
+ * gtkutil.c (menu_grab_callback) <cnt>:
+ * xselect.c (x_reply_selection_request) <cnt>: Move static
+ variable to file scope.
- * w32term.h (WM_MOUSELEAVE, TME_LEAVE, TRACKMOUSEEVENT)
- [!WM_MOUSELEAVE]: Define.
+2007-09-06 Stefan Monnier <monnier@iro.umontreal.ca>
- * w32menu.c (current_popup_menu, get_menu_item_info):
- (set_menu_item_info): New vars.
- (set_frame_menubar): Doc fix clarifying GC interaction with menus.
- (w32_menu_show): Set current_popup_menu.
- (add_menu_item): Allocate new strings for owner-drawn menu items
- and help strings.
- Use owner-draw for disabled menu items again.
- (w32_menu_display_help): Ignore owner-drawn items and popup menus.
- (w32_free_submenu_strings, w32_free_menu_strings): New functions.
+ * xdisp.c (redisplay_internal): Make sure Elisp code always sees
+ consistent values of selected_frame and selected_window.
- * w32fns.c (trackmouse_window, track_mouse_event_fn): New vars.
- (w32_wnd_proc) <WM_MOUSEMOVE>: Notice when mouse enters frame.
- <WM_EXITMENULOOP>: Free menu strings.
- <WM_MOUSELEAVE>: Stop tracking mouse.
- (x_create_tip_frame): Specify no minibuffer, modeline or fringes.
+2007-09-04 Jason Rumney <jasonr@gnu.org>
- * w32term.c (w32_read_socket) <WM_MOUSELEAVE>: Cancel help echo
- and mouse face.
+ * w32console.c (initialize_w32_display): Zero unused hooks.
-2001-12-01 Kim F. Storm <storm@cua.dk>
+2007-09-04 Dan Nicolaescu <dann@ics.uci.edu>
- The following changes add left-fringe and right-fringe
- frame parameters to adjust fringe widths, or remove one or
- both fringes.
+ * term.c (Vsuspend_tty_functions, Vresume_tty_functions)
+ (syms_of_term, Fsuspend_tty, Fresume_tty): Undo previous change.
- * frame.h (struct frame): Remove trunc_area_pixel_width and
- trunc_area_cols fields.
- (Qleft_fringe, Qright_fringe): Declare.
- (FRAME_RIGHT_FRINGE_WIDTH): New macro.
+2007-09-04 Jason Rumney <jasonr@gnu.org>
- * frame.c (Qleft_fringe, Qright_fringe): New vars.
- (syms_of_frame): Initialize them.
+ * term.c (init_tty) [WINDOWSNT]: Add hooks that are not accessible
+ in w32console.c. Set up input. Remove XXX comments that have been
+ confirmed as correct.
- * window.c (coordinates_in_window): Handle separate left and right
- fringe widths.
+ * s/ms-w32.h (MULTI_KBOARD): Define.
- * xterm.h (struct x_output): Add left_fringe_width, right_fringe_width,
- and fringe_cols fields.
- (FRAME_FRINGE_BITMAP_WIDTH, FRAME_FRINGE_BITMAP_HEIGHT): Remove macros.
- (FRAME_X_FRINGE_COLS): Use fringe_cols field.
- (FRAME_X_FRINGE_WIDTH): Use fringes_extra field.
- (FRAME_X_LEFT_FRINGE_WIDTH): Use left_fringe_width field.
- (FRAME_X_RIGHT_FRINGE_WIDTH): Use right_fringe_width field.
- (x_compute_fringe_widths): Add prototype.
+ * w32console.c (one_and_only_w32cons): Remove.
+ (initialize_w32_display): Take terminal argument.
- * xterm.c (zv_height, zv_bits, zv_period): Changed zv bitmap to
- fill fringe evenly with small dashes.
- (x_draw_fringe_bitmap): Clear background if necessary. Align and
- clip the new ZV bitmap to avoid jitter between rows.
- (x_draw_row_fringe_bitmaps): Rely on x_draw_fringe_bitmap to clear
- background. Don't draw fringe bitmaps if fringe width is zero.
- (x_compute_fringe_widths): New function.
- (x_new_font, x_set_window_size_1): Use it.
+ * term.c (init_tty) [WINDOWSNT]: Pass terminal to
+ initialize_w32_display.
+ (init_tty) [MULTI_KBOARD]: Include this code on WINDOWSNT too.
- * xfns.c (x_frame_parms): Add `left-fringe' and `right-fringe' parms.
- (x_set_frame_parameters): Process `font' parameter before other
- parameters as fringe widths depend on it.
- (x_set_fringe_width): New function.
- (x_figure_window_size): Use x_compute_fringe_widths.
- (Fx_create_frame): Process `left-fringe' and `right-fringe' frame
- parameters.
+ * termhooks.h (enum event_kind) <HORIZ_WHEEL_EVENT>: New event.
- * widget.c (set_frame_size): Use x_compute_fringe_widths.
- (EmacsFrameSetCharSize): Ditto.
+ * keyboard.c (discard_mouse_events): Discard it.
+ (make_lispy_event): Translate it to a lisp event.
+ (lispy_wheel_names): Add wheel-left and right events.
+ (syms_of_keyboard): Enlarge wheel_syms.
- * w32term.h: Merged changes from xterm.h.
- * w32term.c: Merged changes from xterm.c.
- * w32fns.c: Merged changes from xfns.c.
+ * w32fns.c (w32_wnd_proc) <WM_DROPFILES>: Merge with WM_MOUSEWHEEL.
+ <WM_MOUSEHWHEEL>: Pass new system message to lisp.
-2001-11-29 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * w32term.h (WM_MOUSEHWHEEL): Define if system headers don't.
- * COPYING: Removed.
+ * w32term.c (construct_mouse_wheel): Make HORIZ_WHEEL_EVENT
+ from WM_MOUSEHWHEEL.
+ (w32_read_socket) <WM_MOUSEHWHEEL>: Treat as WM_MOUSEWHEEL.
-2001-11-29 Dave Love <fx@gnu.org>
+ * w32fns.c (x_create_tip_frame) [MULTI_KBOARD]: Get keyboard from
+ terminal.
- * coding.c (syms_of_coding) <Qchar_coding_system>: Give it an
- extra extra slot.
- (detect_coding_mask): Fix call of detect_coding_iso2022.
+ * w32term.c (w32_create_terminal) [MULTI_KBOARD]: Create a new
+ keyboard for the terminal.
-2001-11-29 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-09-04 Dan Nicolaescu <dann@ics.uci.edu>
- * fileio.c (file-name-coding-system)
- (default-file-name-coding-system): Doc fix (links to referenced
- variables added).
+ * term.c (Vsuspend_tty_hook): Rename from Vsuspend_tty_functions.
+ (Vresume_tty_hook): Rename from Vresume_tty_functions.
+ (syms_of_term): Rename suspend-tty-functions to suspend-tty-hook
+ and resume-tty-function to resume-tty-hook.
+ (Fsuspend_tty, Fresume_tty): Use new names.
-2001-11-28 Stefan Monnier <monnier@cs.yale.edu>
+2007-09-02 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
- * lisp.h (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
- Add dummy uses of gcproN variables.
+ * gtkutil.c (update_frame_tool_bar): Handle stock name as a named icon
+ if it starts with "n:".
- * category.c (describe_category, describe_category_1)
- (Fdescribe_categories): Remove. (Moved to lisp/help-fns.el.)
- (syms_of_category): Don't defsubr Sdescribe_categories.
+2007-08-31 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-2001-11-28 Richard M. Stallman <rms@gnu.org>
+ * gtkutil.c (update_frame_tool_bar): Initialize wbutton to NULL.
- * fileio.c (Ffind_file_name_handler): Avoid initializer for `result'.
+2007-08-31 Stefan Monnier <monnier@iro.umontreal.ca>
- * Makefile.in (lispdir): New variable, referring to build dir.
- (TAGS-LISP): Find Makefile in $(lispdir), not $(lispsource).
+ * frame.h:
+ * frame.c (Qterm_environment_variable): Remove.
+ (syms_of_frame): Don't init and staticpro it.
-2001-11-28 Andrew Innes <andrewi@gnu.org>
+ * callproc.c (getenv_internal): Remove special case for $TERM.
- * w32menu.c (w32_menu_display_help): Actually add the new argument
- OWNER.
+ * callproc.c (Vinitial_environment): New variable.
+ (set_initial_environment): Initialize it.
+ (syms_of_callproc): Declare it.
+ (child_setup): Don't mess with TERM via Qterm_environment_variable; the
+ TERM under which a process runs is never related to the TERM in which
+ Emacs is running.
-2001-11-28 Jason Rumney <jasonr@gnu.org>
+2007-08-29 Dan Nicolaescu <dann@ics.uci.edu>
- * w32menu.c (add_menu_item): Do not use owner-draw for disabled
- menu items. From David Ponce <dponce@wanadoo.fr>.
- (w32_dialog_show) [HAVE_DIALOGS]: Compile whole function
- conditionally.
- (w32_menu_display_help): New argument OWNER. Rewritten to store a
- help event in the owner frame's keyboard buffer.
+ * config.in (HAVE_WINDOW_SYSTEM): Don't undef MULTI_KBOARD here...
+ * s/darwin.h: ... do it here.
- * w32fns.c (w32_wnd_proc) <WM_MENUSELECT>: Display help directly.
- (Fx_show_tip): Don't subtract last width from row width.
+2007-08-29 Stefan Monnier <monnier@iro.umontreal.ca>
- * w32term.c (w32_read_socket) <WM_MENUSELECT>: Remove.
- (w32_read_socket): Use EQ to compare frames.
+ * lisp.h (set_initial_environment): Rename from set_global_environment.
-2001-11-28 Gerd Moellmann <gerd@gnu.org>
+ * Makefile.in (${etc}DOC): Re-add a ${EXEEXT} which seems to have been
+ removed by mistake on the multi-tty branch.
- * xterm.c (x_draw_glyphs): Don't call notice_overwritten_cursor if
- OVERLAPS_P.
+ * frame.c (make_terminal_frame): Yet Another Int/Lisp_Object Mixup.
+ (Fmodify_frame_parameters): Return a value.
-2001-11-28 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * image.c (png_load): Comment-out var only used in commented-out code.
- * xdisp.c (message_dolog): Remove unused variables `gcpro2',
- `gcpro3' and `gcpro4'.
+ * term.c (mark_ttys): Don't bother checking top_frame (incorrectly)
+ before passing it to mark_object.
- * coding.c (decode_coding_string): Remove unused variable `gcpro1'.
+ * xfaces.c (internal_resolve_face_name): Return a value.
+ (internal_resolve_face_name, resolve_face_name_error): Comment out.
-2001-11-28 Stefan Monnier <monnier@cs.yale.edu>
+ * xfns.c (check_x_display_info): Yet Another Int/Lisp_Object Mixup.
+ (x_icon): Comment-out var only used in commented-out code.
- * ccl.c: Use AREF and ASIZE.
+2007-08-29 Romain Francoise <romain@orebokech.com>
-2001-11-27 Stefan Monnier <monnier@cs.yale.edu>
+ * keyboard.c (Fset_input_mode): Don't call `Fset_quit_char' if
+ QUIT hasn't been provided.
- * lisp.h (run_hook_list_with_args): Remove.
- (LIST_END_P): Fix call to wrong_type_argument.
- (make_fixnum_or_float): Use EMACS_INT rather than int.
+2007-08-29 Dan Nicolaescu <dann@ics.uci.edu>
-2001-11-26 Stefan Monnier <monnier@cs.yale.edu>
+ * callproc.c (child_setup, getenv_internal): Use the
+ display-environment-variable and term-environment-variable frame
+ params.
+ (set_initial_environment): Initialise Vprocess_environment.
- * syntax.c (syms_of_syntax): Remove defsubr of Sdescribe_syntax.
- (describe_syntax, describe_syntax_1, Fdescribe_syntax): Remove.
+ * config.in: Disable multi-keyboard support on a mac.
- * eval.c: Use AREF and ASIZE.
- (Ffetch_bytecode): Add the file name to the error message.
+ * frame.c (Qterm_environment_variable)
+ (Qdisplay_environment_variable): New variables.
+ (syms_of_frame): Intern and staticpro them.
+ (Fmake_terminal_frame): Disable output method test.
- * fileio.c (Ffind_file_name_handler): Give precedence to handlers
- which match the end of the file-name.
- (Fsubstitute_in_file_name): Don't signal an error if $ENVVAR
- is not a valid env var, but leave it as is instead.
+ * frame.h: Declare them here.
- * keymap.c (access_keymap): Handle t bindings like nil bindings.
- Make nil bindings in char-tables transparent.
- (store_in_keymap): Turn a nil binding into a t binding for char-tables.
+ * macfns.c (x_set_mouse_color): Get rif from the frame.
+ (x_set_tool_bar_lines): Don't use updating_frame.
+ (mac_window): Add 2 new parameters for consistency with other systems.
+ (Fx_create_frame): Fix doc string. Rename the parameter. Set the
+ frame parameters following what is done in X11 and w32. Don't use
+ FRAME_MAC_DISPLAY_INFO.
+ (Fx_open_connection, start_hourglass): Remove window-system check.
+ (x_create_tip_frame): Get the keyboard from the terminal.
-2001-11-26 Richard M. Stallman <rms@gnu.org>
+ * macmenu.c: Reorder includes.
+ (Fx_popup_menu): Use terminal specific mouse_position_hook.
- * textprop.c (set_text_properties_1): Allow START, END in either order.
- Do nothing if range is empty.
+ * macterm.c (XTset_terminal_modes, XTreset_terminal_modes): Add a
+ terminal parameter.
+ (x_clear_frame): Add a frame parameter.
+ (note_mouse_movement): Get rif from the frame.
+ (mac_term_init): Initialize the terminal.
+ (mac_initialize): Make static and move terminal initialization ...
+ (mac_create_terminal): ... to this new function.
- * Makefile.in (mallocobj): Simplify logic using auxiliary vars.
+ * macterm.h (struct mac_display_info): Add terminal.
+ (mac_initialize): Delete declaration.
- * Makefile.in (mostlyclean): Delete bootstrap-emacs here.
- (clean): Not here.
+ * puresize.h (BASE_PURESIZE): Increase base value to 1164000.
-2001-11-25 Stefan Monnier <monnier@cs.yale.edu>
+ * sysdep.c: Comment out text after #endif.
- * textprop.c (set_text_properties_1): Clearly mark that the
- interval should not be empty.
+ * term.c (init_tty): Only use terminal->kboard when MULTI_KBOARD
+ is defined. Better initialize ttys in windows. Use terminal
+ specific mouse_position_hook.
- * intervals.c (graft_intervals_into_buffer):
- Don't call set_text_properties_1 on an empty interval.
+ * termhooks.h (union display_info): Add mac_display_info.
-2001-11-25 Richard M. Stallman <rms@gnu.org>
+ * w32fns.c (Fx_create_frame): Use kboard from the terminal.
+ Set the default minibuffer frame, window_system and the rest of the
+ frame parameters following what is done in X11.
- * unexelf.c (unexec): Index by n, not nn, when checking for ".sbss".
+ * w32term.c (w32_initialize): Make static.
- * callproc.c (Fcall_process): When we make a bigger buffer for bufptr,
- don't lose the data in it.
+ * xselect.c (x_handle_selection_clear): Only access
+ terminal->kboard when MULTI_KBOARD is defined.
-2001-11-25 Juanma Barranquero <lektu@terra.es>
+ * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
+ (SYSTEM_PURESIZE_EXTRA): Only define on Carbon.
- * abbrev.c (Fexpand_abbrev): Use Frun_hooks instead of Vrun_hooks.
+2007-08-29 Jason Rumney <jasonr@gnu.org>
- * buffer.c (Fkill_buffer): Likewise.
+ * frame.c (Fdelete_frame): Only get kboard when MULTI_KBOARD defined.
+ (make_terminal_frame) [WINDOWSNT]: Initialize terminal.
- * print.c (temp_output_buffer_setup): Likewise.
+ * fringe.c (w32_init_fringe w32_reset_fringes) [HAVE_NTGUI]:
+ (mac_init_fringe) [MAC_OS]: Get rif from selected_frame.
-2001-11-25 Stefan Monnier <monnier@cs.yale.edu>
+ * keyboard.c (restore_kboard_configuration): Only define when
+ MULTI_KBOARD defined.
- * xfaces.c (merge_face_heights): Coerce back to int explicitly.
+ * makefile.w32-in: Update dependancies from Makefile.in.
+ (OBJ1): Add terminal.$(O)
-2001-11-25 Eli Zaretskii <eliz@is.elta.co.il>
+ * term.c (dissociate_if_controlling_tty) [WINDOWSNT]:
+ Don't define function body.
+ (init_tty) [WINDOWSNT]: Use selected_frame for initializing.
- * window.c (Fset_window_vscroll): Doc fix. From Kalle Olavi
- Niemitalo <kon@iki.fi>.
+ * termhooks.h (display_info) [WINDOWSNT]: Add w32.
-2001-11-25 Jason Rumney <jasonr@gnu.org>
+ * w32.c (request_sigio, unrequest_sigio): Remove.
- * w32term.h (FRAME_X_FRINGE_COLS): No fringe on tip frames.
+ * w32console.c (w32con_move_cursor, w32con_clear_to_end)
+ (w32con_clear_frame, w32con_clear_end_of_line)
+ (w32con_ins_del_lines, w32con_insert_glyphs, w32con_write_glyphs)
+ (w32con_delete_glyphs, w32con_set_terminal_window)
+ (scroll_line, w32_sys_ring_bell): Add frame arg.
+ (w32con_set_terminal_modes, w32con_reset_terminal_modes):
+ Add terminal arg.
+ (PICK_FRAME): Remove.
+ (w32con_write_glyphs): Use frame specific terminal coding.
+ (one_and_only_w32cons): New global variable.
+ (initialize_w32_display): Use it for storing hooks.
+ (create_w32cons_output): New function.
- * w32fns.c (x_create_tip_frame): Set frame's fringes_extra to 0.
- (Fx_show_tip): Block input during frame creation.
- (Fx_show_tip, Fx_hide_tip): Enable.
+ * w32inevt.c, w32inevt.h (w32_console_read_socket): Make first
+ arg a frame.
-2001-11-24 Richard M. Stallman <rms@gnu.org>
+ * w32fns.c (x_create_tip_frame): Set terminal and ref count.
+ Set window_system.
+ (x_set_tool_bar_lines): Don't use updating_frame.
+ (Fx_create_frame): Set terminal and ref count.
+ (Fx_open_connection): Remove window-system check.
- * lread.c (Fload): Detect recursive load error for more than 3
- nestings of the same file.
- (Vrecursive_load_depth_limit): Variable deleted.
- (syms_of_lread) <recursive-load-depth-limit>: Variable deleted.
+ * w32menu.c (Fx_popup_menu): Use terminal specific mouse_position_hook.
-2001-11-24 Jason Rumney <jasonr@gnu.org>
+ * w32term.c (w32_term_init): Call add_keyboard_wait_descriptor.
+ (w32_set_terminal_modes, w32_reset_terminal_modes): Add terminal arg.
+ (x_clear_frame, x_delete_glyphs, w32_ring_bell, x_ins_del_lines):
+ Add frame arg.
+ (x_delete_terminal, w32_create_terminal): New functions.
+ (w32_term_init): Create a terminal.
+ (w32_initialize): Move terminal specific initialization to
+ w32_create_terminal.
- * xfns.c (compute_tip_xy): Initialize root_x and root_y from
- mouse position if either left or top is not specified.
+ * w32term.h (x_output): Remove foreground_pixel and background_pixel.
+ (w32_clear_rect, w32_clear_area): Use background from frame.
+ (w32_display_info): Add terminal.
+ (w32_sys_ring_bell, x_delete_display): Declare here.
- * w32fns.c (w32_wnd_proc) <WM_MENUSELECT>: Revert last change.
- <WM_WINDOWPOSCHANGING>: Let tip frames resize without restriction.
- (my_create_tip_window, Fx_show_tip): Adjust size for external border.
- (my_create_tip_window): Assign tip_window.
- (x_create_tip_frame): Use same defaults as X.
- (compute_tip_xy): Remove unused variable. Use full screen width.
- (Fx_show_tip): Do not double height. Call ShowWindow directly.
+ * xdisp.c (display_menu_bar) [HAVE_NTGUI]: Check frame type.
- * w32term.c (x_after_update_window_line): Doc fix.
- (w32_read_socket): Doc fix. Avoid SET_FRAME_GARBAGED for tip
- frames.
- <WM_SHOWWINDOW>: Redo mouse highlight when hiding tip frame.
+ * s/ms-w32.h (SYSTEM_PURESIZE_EXTRA): Bump to 50k.
- * xdisp.c (prepare_menu_bars) [HAVE_WINDOW_SYSTEM]: Use tip_frame
- for all Windowed systems.
+2007-08-29 Kalle Olavi Niemitalo <kon@iki.fi> (tiny change)
-2001-11-23 Eli Zaretskii <eliz@is.elta.co.il>
+ * keyboard.c (interrupt_signal, handle_interrupt, Fset_quit_char):
+ Fix get_named_tty calls for the controlling tty.
- * msdos.c (IT_clear_screen): If the frame's faces are not yet
- realized, use the initial screen colors to clear the screen.
+2007-08-29 ARISAWA Akihiro <ari@mbf.ocn.ne.jp> (tiny change)
-2001-11-23 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * term.c (dissociate_if_controlling_tty)[USG]: Fix parse error.
- * textprop.c (Fset_text_properties): Remove unused variables
- `unchanged', `prev_changed', `s' and `len'.
+2007-08-29 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
- * search.c (Freplace_match): Remove unused variable `inslen'.
-
- * keymap.c (access_keymap): Remove unused variables `c1' and `c2'.
-
-2001-11-22 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (x_window_to_frame): Remove irrelevant TODO comment.
- (w32_wnd_proc) <WM_MENUSELECT>: Show help echo directly.
- (my_create_tip_window): New function.
- (x_create_tip_frame, compute_tip_xy): Adapt for Windows.
- (Fx_show_tip, Fx_hide_tip) [TEST_TOOLTIPS]: Adapt for Windows.
-
-2001-11-20 Jason Rumney <jasonr@gnu.org>
-
- * coding.h (Vw32_system_coding_system) [WINDOWSNT]: Remove.
- (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: Use Vlocale_coding_system.
-
- * w32fns.c (Vw32_system_coding_system): Remove.
- (w32_to_x_font, x_to_w32_font): Use Vlocale_coding_system.
-
-2001-11-19 Stefan Monnier <monnier@cs.yale.edu>
-
- * fileio.c (Fwrite_region): Move choose_write_coding_system to
- after build_annotations.
-
- * syntax.c (describe_syntax): Add dummy arg.
- (describe_syntax_1): Update call to describe_vector.
-
- * category.c (describe_category): Add dummy arg.
- (describe_category_1): Update call to describe_vector.
-
- * keymap.c (Fdescribe_vector): Add `describer' parameter.
- (describe_command, describe_translation): Add dummy second param.
- (describe_map): Call elt_describer with two arguments.
- (describe_vector_princ): Add `fun' parameter.
- Call it instead of the hardcoded `princ'.
- (describe_vector): Add arg `args'.
- Pass it as a new second argument to elt_describer.
+ * term.c (tty_insert_glyphs): Add missing first parameter.
- * keymap.h (describe_vector): Update prototype.
+2007-08-29 K\e,Aa\e(Broly L\e$,1 q\e(Brentey <karoly@lorentey.hu>
- * frame.c: Don't include keymap.h any more.
- (keys_of_frame): Remove.
+ * buffer.c (Fbuffer_list, Fbury_buffer):
+ Take frame->buried_buffer_list into account.
- * lisp.h (keys_of_frame): Remove declaration.
+ * cm.c (current_tty): New variable, for cmputc().
+ (cmputc): Use it.
+ (cmcheckmagic): Add tty parameter, look up terminal streams there.
+ (calccost): Add tty parameter. Use emacs_tputs() instead of tputs().
+ (cmgoto): Add tty parameter. Pass it on to calccost().
+ Use emacs_tputs() instead of tputs().
- * emacs.c (main): Don't call `keys_of_frame' any more.
+ * cm.h (emacs_tputs): New macro to set current_tty, and then call
+ tputs().
+ (current_tty): New variable, for cmputc().
+ (cmcheckmagic, cmputc, cmgoto): Add prototypes.
-2001-11-14 Andreas Schwab <schwab@suse.de>
+ * eval.c (unwind_to_catch): Don't call x_fully_uncatch_errors.
+ (internal_condition_case, internal_condition_case_1)
+ (internal_condition_case_2): Don't abort when x_catching_errors.
- * unexelf.c [!defined MAP_ANON]: Define MAP_ANON to MAP_ANONYMOUS
- if defined, 0 otherwise.
- (MAP_FAILED): Define if not defined and use it to test mmap failure.
- (unexec) [!MAP_ANON]: Use /dev/zero as file to map.
+ * fns.c (Fyes_or_no_p): Don't try to open an X dialog on tty terminals.
+ (Fy_or_n_p): Likewise. Use temporarily_switch_to_single_kboard to
+ prevent crashes caused by bogus longjmps in read_char.
-2001-11-19 Richard M. Stallman <rms@gnu.org>
+ * keymap.h (Fset_keymap_parent): Add EXFUN.
- * indent.c (current_column_1): Fix handling of scan_bytes for mb chars.
+ * macterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
+ * w32term.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL):
+ Remove redundant definition.
-2001-11-18 Jason Rumney <jasonr@gnu.org>
+ * macfns.c (x_set_mouse_color, x_make_gc):
+ Use FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL.
- * w32term.c (note_mouse_highlight): Fix type of variable `ignore'.
- (x_draw_bar_cursor): If the background color of the glyph under
- the cursor equals the frame's cursor color, use the glyph's
- foreground color for drawing the bar cursor.
- (x_after_update_window_line): Clear internal border in different
- circumstances.
- (w32_set_vertical_scroll_bar): Check for width and height > 0.
- (w32_draw_relief_rect): Correct relief by 1 pixel.
- (x_set_glyph_string_background_width):
- Set extends_to_end_of_line_p if the row's fill_line_p is set and
- drawing the last glyph with DRAW_IMAGE_{RAISED,SUNKEN}.
- (x_display_and_set_cursor): If cursor_in_echo_area, use NO_CURSOR
- if cursor_in_non_selected_windows is false.
- (show_mouse_face): Clean up. Recognize overwritten cursor differently.
- (x_draw_glyphs): Remove parameters REAL_START and REAL_END.
- Notice if cursor gets overwritten.
- (notice_overwritten_cursor): Renamed from
- note_overwritten_text_cursor. Rewritten to take glyph widths
- into account, and to take X positions as parameters.
- (x_draw_phys_cursor_glyph): Save state of w->phys_cursor_on_p
- around call to x_draw_glyphs.
- (x_setup_relief_colors): Use `IMAGE_BACKGROUND' and
- `IMAGE_BACKGROUND_TRANSPARENT' to calculate the correct background
- color to use for image glyph reliefs.
- (x_draw_image_relief): Accept zero tool_bar_button_relief.
- (glyph_rect): Remove unused variable `area'.
+ * w32term.c (x_free_frame_resources):
+ Use FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL.
+ (w32_initialize): Use the accessor macros for terminal characteristics.
- * w32fns.c (x_set_frame_parameters): Avoid infinite recursion for
- some items.
- (x_set_internal_border_width): Set frame garbaged when window
- doesn't exist yet.
- (Fx_create_frame): Accept zero tool_bar_button_relief.
- (x_clear_image_1, four_corners_best, image_background)
- (image_background_transparent): New functions.
- (xpm_format, png_format, jpeg_format, tiff_format, gif_format)
- (gs_format): Add `:background' entry.
- (lookup_image): Set IMG's background color if specified.
- (pbm_load, xbm_load_image, png_load): Set IMG's background field
- when appropriate.
- (x_clear_image_1): Reset `background_valid' and
- `background_transparent_valid' fields.
- (x_build_heuristic_mask): Use IMAGE_BACKGROUND instead of
- calculating it here. Set IMG's background_transparent field.
- (enum xpm_keyword_index): Add XPM_BACKGROUND.
- (enum png_keyword_index): Add PNG_BACKGROUND.
- (enum jpeg_keyword_index): Add JPEG_BACKGROUND.
- (enum tiff_keyword_index): Add TIFF_BACKGROUND.
- (enum gif_keyword_index): Add GIF_BACKGROUND.
- (enum gs_keyword_index): Add GS_BACKGROUND.
- (pbm_load, png_load, jpeg_load, tiff_load, gif_load):
- Pre-calculate image background color where necessary.
- (x_create_x_image_and_pixmap, xbm_load, gs_load):
- Use display info's n_cbits entry for screen depth.
- (Fx_show_tip): Remove unused variables `buffer', `top',
- `left', `max_width' and `max_height'.
+ * macterm.c (mac_initialize): Use Fset_input_interrupt_mode.
+ Use the accessor macros for terminal characteristics.
+ * msdos.c (internal_terminal_init): Use the accessor macros for
+ terminal characteristics.
+ (ScreenVisualBell, internal_terminal_init):
+ Use FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL.
- * w32menu.c (w32_menu_show, push_menu_pane): Doc fixes.
+ * termopts.h (no_redraw_on_reenter): Declare.
-2001-11-18 Gerd Moellmann <gerd@gnu.org>
+ * alloc.c (emacs_blocked_malloc): Disable mallopt call.
+ (mark_terminals, mark_ttys): Declare.
+ (Fgarbage_collect): Call them.
+ (mark_object): Mark buried_buffer_list.
- * puresize.h (BASE_PURESIZE): Increase to 750000.
+ * prefix-args.c: Include stdlib.h for exit.
-2001-11-18 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * syssignal.h: Add comment.
- * frame.c (Fframe_live_p): Doc fix.
+ * indent.c: Include stdio.h.
-2001-11-18 Richard M. Stallman <rms@gnu.org>
+ * window.h (Vinitial_window_system): Declare.
+ (Vwindow_system): Delete declaration.
- * xdisp.c (message_dolog_marker1, message_dolog_marker2)
- (message_dolog_marker3): New static variables hold three markers.
- (syms_of_xdisp): Initialize and staticpro them.
- (message_dolog): Use message_dolog_marker1..3 instead of
- allocating markers each time. Unchain them when done.
+ * fontset.c (Finternal_char_font): Use FRAME_RIF.
-2001-11-17 Richard M. Stallman <rms@gnu.org>
+ * image.c (lookup_image): Don't initialize `c' until the xasserts
+ have been run.
- * doc.c (Fsnarf_documentation): Doc fix.
+ * gtkutil.c (xg_create_frame_widgets): Use FRAME_BACKGROUND_PIXEL and
+ FRAME_FOREGROUND_PIXEL.
-2001-11-17 Andreas Schwab <schwab@suse.de>
+ * print.c (print_preprocess): Don't lose print_depth levels while
+ iterating.
- * xterm.c (note_mouse_highlight): Fix type of variable `ignore'.
+ * widget.c (update_from_various_frame_slots):
+ Use FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL.
-2001-11-17 Richard M. Stallman <rms@gnu.org>
+ * window.c (set_window_buffer): Don't call clear_mouse_face on tty
+ frames.
+ (window_internal_height): Remove bogus make_number call.
+ (init_window_once): Call make_terminal_frame with two zero parameters.
- * fileio.c (Fwrite_region): Avoid initializer for Lisp_Object.
+ * fileio.c (Fread_file_name): Update comment.
-2001-11-17 Jason Rumney <jasonr@gnu.org>
+ * callint.c (Fcall_interactively):
+ Use temporarily_switch_to_single_kboard instead of single_kboard_state.
+ Make sure it is correctly unwound.
+
+ * xsmfns.c (x_session_close): New function.
+
+ * coding.h (terminal_coding, safe_terminal_coding, keyboard_coding):
+ Delete declarations.
+
+ * xterm.h: Remove declaration for x_fully_uncatch_errors.
+ (x_output): Remove background_pixel and foreground_pixel fields.
+ (x_display_info): Add new field TERMINAL. Remove KBOARD field.
+ (x_delete_device):
+ (x_session_close): Declare.
+
+ * lread.c: Include setjmp.h. Update declaration of `read_char'.
+ (read_filtered_event): Call `read_char' with a local
+ `wrong_kboard_jmpbuf'.
+
+ * minibuf.c (read_minibuf): Call temporarily_switch_to_single_kboard.
+ Don't call single_kboard_state. Use FRAME_RIF.
+
+ * process.c (Fmake_network_process): Don't unrequest_sigio on modern
+ systems.
+
+ * lisp.h (set_process_environment): Rename to `set_global_environment'.
+ (Fframe_with_environment, Fset_input_meta_mode)
+ (Fset_quit_char): EXFUN.
+ (x_create_device, tty_output, terminal, tty_display_info): Declare.
+ (init_sys_modes, reset_sys_modes): Update prototypes.
+ (init_all_sys_modes, reset_all_sys_modes): New prototypes.
+
+ * keyboard.h (struct kboard): Add new fields Vlocal_function_key_map,
+ Vlocal_key_translation_map, and Vkeyboard_translate_table.
+ (Vfunction_key_map, Vkeyboard_translate_table, single_kboard_state):
+ Delete declarations.
+ (Vfunction_key_map, Vkey_translation_map, push_kboard, pop_kboard)
+ (temporarily_switch_to_single_kboard, tty_read_avail_input):
+ New declarations.
+
+ * emacs.c (main): Don't call init_sys_modes(), the new term_init()
+ already does that during init_display(). Call syms_of_keymap
+ before syms_of_keyboard. Call `syms_of_terminal'.
+ Call set_initial_environment, not set_process_environment.
+ (shut_down_emacs): Call reset_all_sys_modes() instead of
+ reset_sys_modes().
+
+ * xfaces.c (x_free_gc): Protect xassert with GLYPH_DEBUG.
+ (internal_resolve_face_name, resolve_face_name_error): New functions.
+ (resolve_face_name): Protect against loops and errors thrown by Fget.
+ (realize_default_face): Don't use FRAME_FONT unless frame is an X frame.
+ (Ftty_supports_face_attributes_p): Update tty_capable_p call.
+
+ * scroll.c: Replace CURTTY() with local variables throughout the
+ file (where applicable).
+ (calculate_scrolling, calculate_direct_scrolling)
+ (scrolling_1, scroll_cost): Use the accessor macros for terminal
+ characteristics.
+
+ * keymap.c (Vfunction_key_map): Remove.
+ (Fdescribe_buffer_bindings): Update references to Vfunction_key_map.
+ (syms_of_keymap): Remove DEFVAR for Vfunction_key_map.
+ (Vkey_translation_map): Remove.
+ (syms_of_keymap): Remove DEFVAR for key-translation-map.
+ (Fdescribe_buffer_bindings):
+ (read_key_sequence, init_kboard, syms_of_keyboard, mark_kboards):
+ Update for terminal-local key-translation-map.
+
+ * Makefile.in (callproc.o): Update dependencies.
+ (lisp, shortlisp): Add termdev.elc.
+ (obj): Add terminal.o.
+ (terminal.o): Add dependencies.
+ [HAVE_CARBON]: Make terminal.o depend on macgui.h.
+ (data.o, fns.o): Add termhooks.h dependency.
+ (SOME_MACHINE_LISP): Add dnd.elc.
+ (minibuf.o): Fix typo.
+ Update dependencies.
+
+ * data.c (do_symval_forwarding, store_symval_forwarding)
+ (find_symbol_value): Use the selected frame's keyboard, not
+ current_kboard.
+
+ * .gdbinit (init_sys_modes): Use Vinitial_window_system instead of
+ Vwindow_system.
+
+ * xmenu.c (Fx_menu_bar_open) [USE_X_TOOLKIT, USE_GTK]: Rename from
+ Fmenu_bar_open.
+ (syms_of_xmenu): Update defsubr.
+ (mouse_position_for_popup, Fx_popup_menu)
+ (Fx_popup_dialog, x_activate_menubar, update_frame_menubar)
+ (set_frame_menubar, free_frame_menubar)
+ (create_and_show_popup_menu, xmenu_show, )
+ (create_and_show_dialog, xdialog_show, xmenu_show): Abort if not
+ an X frame.
+
+ * xselect.c (x_own_selection): Abort if not an X frame.
+ (some_frame_on_display): Check if it is an X frame.
+ (x_handle_selection_clear): Deal with MULTI_KBOARD.
+
+ * coding.c: Include frame.h and termhooks.h.
+ (terminal_coding, keyboard_coding): Delete.
+ (Fset_terminal_coding_system_internal):
+ (Fset_keyboard_coding_system_internal):
+ (Fkeyboard_coding_system):
+ (Fterminal_coding_system): Add a terminal parameter.
+ Get terminal_coding from the terminal.
+ (init_coding_once): Don't call setup_coding_system here.
+
+ * dispextern.h (set_scroll_region, turn_off_insert)
+ (turn_off_highlight, background_highlight, clear_end_of_line_raw)
+ (tty_clear_end_of_line, tty_setup_colors)
+ (delete_tty, updating_frame)
+ (produce_special_glyphs, produce_glyphs, write_glyphs)
+ (insert_glyphs): Remove.
+ (raw_cursor_to, clear_to_end, tty_turn_off_insert)
+ (tty_turn_off_highlight, get_tty_size): Add declaration.
+ (tabs_safe_p, init_baud_rate, get_tty_terminal): Update prototypes.
+
+ * frame.h (enum output_method): Add output_initial.
+ (struct x_output): Delete.
+ (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL):
+ Access foreground_pixel and background_pixel directly from the frame.
+ (tty_display): Delete.
+ (struct frame): Add buried_buffer_list, foreground_pixel,
+ background_pixel and terminal. Delete kboard
+ (union output_data): Add tty.
+ (FRAME_KBOARD): Get the kboard from the terminal.
+ (FRAME_INITIAL_P): New macro.
+ (Qtty, Qtty_type, Qterminal, Qterminal_live_p, Qenvironment)
+ (Qterm_environment_variable, Qdisplay_environment_variable)
+ (make_terminal_frame, Qburied_buffer_list, Qwindow_system):
+ New declarations.
+
+ * termchar.h (tty_output, tty_display_info): New structures.
+ (tty_list): Declare.
+ (FRAME_TTY, CURTTY): New macros.
+ (must_write_spaces, min_padding_speed, fast_clear_end_of_line)
+ (line_ins_del_ok, char_ins_del_ok, scroll_region_ok)
+ (scroll_region_cost, memory_below_frame, fast_clear_end_of_line)
+ (dont_calculate_costs, no_redraw_on_reenter): Remove declarations.
+
+ * callproc.c: Include frame.h and termhooks.h, for terminal
+ parameters.
+ (add_env): New function.
+ (child_setup): Use it.
+ (child_setup, getenv_internal): Handle the new Vprocess_environment.
+ (getenv_internal): Fix get_terminal_param call.
+ (Fgetenv_internal, egetenv): Update doc.
+ (syms_of_callproc): Initialize Vprocess_environment to nil.
+ Register and initialize them. Remove obsolete defvars. Update doc
+ strings.
+ (child_setup): Handle Vlocal_environment_variables.
+ (getenv_internal): Add terminal parameter.
+ Handle Vlocal_environment_variables.
+ (Fgetenv_internal): Add terminal parameter.
+ (child_setup, getenv_internal, Fgetenv_internal): Store the local
+ environment in a frame (not terminal) parameter. Update doc strings.
+ (set_initial_environment): Rename from set_global_environment.
+ Store Emacs environment in initial frame parameter.
+
+ * xdisp.c (redisplay_internal): Update references to
+ `previous_terminal_frame'.
+ (display_mode_line, Fformat_mode_line): Replace calls to
+ `push_frame_kboard' with `push_kboard'.
+ (get_glyph_string_clip_rects): Add extra parentheses and
+ braces to prevent compiler warnings.
+ (calc_pixel_width_or_height): Add xassert to check that the
+ frame is alive. Don't call `lookup_image' on a termcap frame.
+ (message2_nolog, message3_nolog, redisplay_internal)
+ (set_vertical_scroll_bar, redisplay_window, check_x_display_info)
+ (x_set_scroll_bar_foreground, x_set_scroll_bar_background)
+ (Fx_create_frame, Fxw_display_color_p, Fx_display_grayscale_p)
+ (Fx_display_pixel_width, Fx_display_pixel_height)
+ (Fx_display_planes, Fx_display_color_cells)
+ (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
+ (Fx_display_screens, Fx_display_mm_height, Fx_display_mm_width)
+ (Fx_display_backing_store, Fx_display_visual_class)
+ (Fx_display_save_under, Fx_close_connection, x_create_tip_frame):
+ Use FRAME_TERMINAL_P, FRAME_WINDOW_P, FRAME_TTY and FRAME_RIF.
+
+ * xfns.c (x_set_foreground_color x_set_background_color)
+ (x_set_mouse_color, x_set_cursor_color, x_make_gc):
+ Use FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL.
+ (Fx_create_frame, x_create_tip_frame, build_string, x_window)
+ (Fx_create_frame, x_create_tip_frame): Don't create frames on a
+ terminal that is being deleted.
+ (Fx_create_frame): Use `store_frame_param' to set `window-system'
+ frame parameter, and make sure it overrides any user-supplied setting.
+ (Fx_close_connection, Fx_synchronize): Unify argument names with
+ the rest of the DEFUNs.
+
+ * dispnew.c (Fsend_string_to_terminal): Update call to
+ `get_tty_terminal'.
+ (Fredraw_frame, Fsend_string_to_terminal)
+ (Fsend_string_to_terminal, init_display): Use FRAME_RIF,
+ FRAME_TERMCAP_P and FRAME_TTY.
+ (window_change_signal): Don't believe width/height values that are
+ impossibly small.
+ (Vinitial_window_system): Rename from Vwindow_system.
+ (termscript, Wcm, rif): Delete.
+
+ * termhooks.h (struct terminal): New struct containing the
+ previously global text display hooks and new members NAME,
+ DELETED and PARAM_ALIST.
+ (FRAME_TERMINAL, TERMINAL_TERMINAL_CODING)
+ (TERMINAL_KEYBOARD_CODING, TERMINAL_ACTIVE_P, FRAME_WINDOW_P)
+ (FRAME_RIF): New macros.
+ (get_terminal_param, get_device): New declarations.
+ (termscript): Delete declaration.
+
+ * xterm.c (x_initialize): Use Fset_input_interrupt_mode.
+ (XTflash, x_free_frame_resources, x_scroll_bar_create)
+ (x_scroll_bar_set_handle): Use FRAME_BACKGROUND_PIXEL and
+ FRAME_FOREGROUND_PIXEL.
+ (x_fully_uncatch_errors): Disable definition.
+ (x_scroll_bar_expose): Fix reference to foreground pixel.
+ (XTread_socket): Disable loop on all X displays.
+ (x_delete_terminal): Don't set terminal->deleted and let
+ delete_terminal delete the frames on the terminal.
+ (x_delete_display): Doc update to reflect changes in
+ delete_terminal.
+ (x_display_info) <terminal>: Move member earlier in the struct.
+ (deleting_tty): Remove old variable.
+ (Fsuspend_tty): Call clear_tty_hooks.
+ (Fresume_tty, init_tty): Call set_tty_hooks.
+ (Ftty_display_color_p, Ftty_display_color_cells): Don't throw
+ errors on X frames.
+ (x_catch_errors_unwind): Abort if x_error_message is NULL.
+ (handle_one_xevent): Initialize `f' to NULL.
+ (x_delete_terminal, x_create_terminal): New functions.
+ (XTset_terminal_modes, XTreset_terminal_modes)
+ (XTread_socket, x_connection_closed, x_term_init)
+ (x_term_init, x_delete_display): Add terminal parameter.
+ (x_term_init) [!HAVE_GTK_MULTIDISPLAY]: Refuse to create secondary
+ X connections.
+
+ * frame.c (Fframep): Deal with output_initial.
+ (Qbuffer_predicate, Qbuffer_list, Qburied_buffer_list, Qtty)
+ (Qtty_type, Qwindow_system, Qenvironment)
+ (Qterm_environment_variable, Qdisplay_environment_variable): New vars.
+ (x_set_screen_gamma, store_frame_param): Fix compilation errors.
+ (make_terminal_frame): Don't create frames on a terminal that is
+ being deleted.
+ (make_terminal_frame): Use FRAME_BACKGROUND_PIXEL and
+ FRAME_FOREGROUND_PIXEL.
+ (store_frame_param): Check for found_for_frame before calling XFRAME.
+ (Fmake_terminal_frame): Handle NULL tty names correctly.
+ (syms_of_frame): Enhance doc string of `default-frame-alist'.
+ (Fdelete_frame): Remove unused variable `count'.
+ (Qenvironment): New variable.
+ (Fdelete_frame): Don't allow other frames to refer to a deleted
+ frame in their 'environment parameter.
+ (Fframe_with_environment): New function.
+ (syms_of_frame): Defsubr it. Initialize and staticpro Qenvironment.
+ (get_future_frame_param): New function.
+ (Fmake_terminal_frame): Use it.
+ (x_set_frame_parameters, x_set_screen_gamma): Use FRAME_RIF.
+
+ * sysdep.c (init_sys_modes, reset_sys_modes): Update for renames.
+ * sysdep.c (reset_sys_modes): Update for renames.
+
+ * keyboard.c (tty_read_avail_input): New function.
+ (Fset_input_interrupt_mode, Fset_output_flow_control): New functions.
+ (syms_of_keyboard): Defsubr them.
+ (Fset_input_meta_mode, Fset_quit_char): New functions.
+ (Fset_input_mode): Split to above functions.
+
+ (read_char_minibuf_menu_prompt): Add wrong_kboard_jmpbuf
+ parameter. Use it in call to `read_char'.
+ (read_char): Declare. Update call to `read_char_minibuf_menu_prompt'.
+ Set wrong_kboard_jmpbuf correctly in recursive calls.
+ Use current_kboard to access Vkeyboard_translate_table.
+ Enhance comment before extra longjmp to wrong_kboard_jmpbuf.
+ Add wrong_kboard_jmpbuf parameter to allow for recursive calls.
+ Update longjmp invocations. Remember the original current_kboard,
+ and longjmp to `wrong_kboard_jmpbuf' when a filter, timer or sentinel
+ changes it. Comment out unnecessary calls to
+ `record_single_kboard_state' and `any_kboard_state'.
+ Update recursive calls.
+ (wrong_kboard_jmpbuf): Remove global variable.
+ (read_key_sequence): Remove unused variable wrong_kboard_jmpbuf.
+ Handle deleted interrupted_kboards correctly; that is a legal
+ case. Add `wrong_kboard_jmpbuf' local variable. Update setjmp
+ and read_char calls. Abort if interrupted_kboard died in read_char.
+ (any_kboard_state, single_kboard_state)
+ (push_frame_kboard): Remove function.
+ (pop_kboard): Switch out of single_kboard mode if the kboard has
+ been deleted. Remove unused variable. Help debugging by not
+ changing current_kboard unnecessarily. Set current_kboard to the
+ kboard of the selected frame when the stored kboard object has
+ been deleted before pop_kboard.
+ (temporarily_switch_to_single_kboard): Change first parameter to a
+ frame pointer. Throw an error when caller wants to change kboards
+ while in single_kboard mode. Don't push_kboard if we weren't in
+ single kboard state. Don't pop_kboard if we popped into any
+ kboard state.
+ (restore_kboard_configuration): Abort if pop_kboard changed the
+ kboard in single_kboard mode. Call pop_kboard only after setting
+ up single_kboard mode.
+ (Frecursive_edit): Switch to single_kboard mode only in nested
+ command loops.
+ (cmd_error, command_loop, command_loop_1, timer_check):
+ Comment out unnecessary call to `any_kboard_state' and
+ `record_single_kboard_state'.
+ (delete_kboard): Exit single_kboard mode if we have just deleted
+ that kboard. Use FRAME_KBOARD.
+ (interrupt_signal): Use `Fkill_emacs' to exit Emacs, not
+ `fatal_error_signal'.
+ (record_single_kboard_state): Don't push_kboard if we weren't in
+ single kboard state. Don't pop_kboard if we popped into any
+ kboard state.
+ (push_frame_kboard): Rename to push_kboard.
+ (kbd_buffer_get_event): Use FRAME_TERMINAL.
+ (read_avail_input): Read input from all terminals.
+ (mark_kboards): Also mark Vkeyboard_translate_table.
+ (kbd_buffer_store_event_hold): Simplify condition.
+ (read_key_sequence): Reinitialize fkey and keytran at each replay.
+ (Vkeyboard_translate_table): Move to struct kboard.
+ (init_kboard): Initialize Vkeyboard_translate_table.
+ (syms_of_keyboard): Use DEFVAR_KBOARD to define
+ Vkeyboard_translate_table. Update doc strings. Update docs of
+ local-function-key-map and function-key-map.
+
+ * terminal.c: New file.
+
+ * term.c: Include errno.h.
+ (Vring_bell_function, device_list, initial_device)
+ (next_device_id, ring_bell, update_begin, update_end)
+ (set_terminal_window, cursor_to, raw_cursor_to)
+ (clear_to_end, clear_frame, clear_end_of_line)
+ (write_glyphs, insert_glyphs, delete_glyphs, ins_del_lines)
+ (Fdisplay_name, create_device, delete_device): Move to terminal.c.
+ (syms_of_term): Move their initialization to terminal.c.
+ (get_tty_terminal, Fdisplay_tty_type, Ftty_display_color_p)
+ (Ftty_display_color_cells)
+ (Ftty_no_underline, Fsuspend_tty, Fresume_tty, create_tty_output)
+ (clear_tty_hooks, set_tty_hooks)
+ (init_tty, maybe_fatal): New functions.
+ (Ftty_type): Return nil if terminal is not on a tty instead of
+ throwing an error. Doc update.
+ (syms_of_term) <Vsuspend_tty_functions, Vresume_tty_functions>:
+ Doc update. Initialize new subrs and variables.
+ (delete_tty): Use terminal->deleted.
+ (tty_set_terminal_modes): Rename from set_terminal_modes.
+ (tty_reset_terminal_modes): Rename from reset_terminal_modes.
+ (set_scroll_region): Rename to `tty_set_scroll_region'.
+ (turn_on_insert): Rename to `tty_turn_on_insert'.
+ (turn_off_insert): Rename to `tty_turn_off_insert'.
+ (turn_off_highlight): Rename to `tty_turn_off_highlight'.
+ (turn_on_highlight): Rename to `tty_turn_on_highlight'.
+ (toggle_highligh): Rename to `tty_toggle_highlight'.
+ (background_highlight): Rename to `tty_background_highlight'.
+ (highlight_if_desired): Rename to `tty_highlight_if_desired'.
+ (tty_ring_bell, tty_update_end, tty_set_terminal_window)
+ (tty_set_scroll_region, tty_background_highlight)
+ (tty_cursor_to, tty_raw_cursor_to, tty_clear_to_end)
+ (tty_clear_frame, tty_clear_end_of_line, tty_write_glyphs)
+ (tty_insert_glyphs, tty_delete_glyphs, tty_ins_del_lines)
+ (term_get_fkeys, tty_setup_colors, dissociate_if_controlling_tty):
+ Add static modifier.
+ (tty_reset_terminal_modes, tty_set_terminal_window)
+ (tty_set_scroll_region, tty_background_highlight)
+ (tty_highlight_if_desired, tty_cursor_to)
+ (tty_raw_cursor_to, tty_clear_to_end, tty_clear_frame)
+ (tty_clear_end_of_line, tty_write_glyphs, tty_insert_glyphs)
+ (tty_delete_glyphs, tty_ins_del_lines, turn_on_face): Update for
+ renames.
- * xterm.c (notice_overwritten_cursor): Take care of end < 0 case.
+2007-08-28 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-2001-11-17 Gerd Moellmann <gerd@gnu.org>
+ * keyboard.c: Qrtl is new.
+ (parse_tool_bar_item): Handle :rtl keyword.
+ (syms_of_keyboard): Intern :rtl keyword.
- * xdisp.c (tool_bar_item_info): Avoid calling Fget_text_property
- with invalid position.
+ * dispextern.h (enum tool_bar_item_idx): Add TOOL_BAR_ITEM_RTL_IMAGE.
-2001-11-16 Richard M. Stallman <rms@gnu.org>
+ * gtkutil.c (xg_tool_bar_expose_callback): Just do SET_FRAME_GARBAGED
+ so no Lisp code is executed.
+ (file_for_image, find_rtl_image): New functions.
+ (xg_get_image_for_pixmap): Use file_for_image
+ (update_frame_tool_bar): If direction is RTL, use RTL image if
+ defined. Use Gtk stock images if defined.
- * syswait.h: Delete conditionals for HPUX7, ISC 4.1, and convex.
+2007-08-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * s/isc4-1.h (HAVE_SYS_WAIT_H): Add #undef.
- * s/hpux.h (HAVE_SYS_WAIT_H): Add #undef.
- * s/hpux8.h (HAVE_SYS_WAIT_H): Define it.
+ * macterm.c (x_draw_composite_glyph_string_foreground): Draw rectangle
+ for nonexistent or zero-width glyph in composition glyph.
- * m/convex.h (HAVE_SYS_WAIT_H): Add #undef.
+2007-08-25 Stefan Monnier <monnier@iro.umontreal.ca>
-2001-11-16 Stefan Monnier <monnier@cs.yale.edu>
+ * m/amdx86-64.h: Redirect to intel386.h if compiling for i386.
- * fileio.c (build_annotations): Split off the tail.
- (build_annotations_2): New fun. Extracted from build_annotations.
- (Fwrite_region): Split the call to build_annotations into two
- calls to build_annotations and build_annotations_2.
+ * xdisp.c (Finvisible_p): New function.
+ (syms_of_xdisp): defsubr it.
-2001-11-16 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-08-24 Juanma Barranquero <lekktu@gmail.com>
- * sysdep.c (wait_for_kbd_input) [VMS]: Do not call
- clear_waiting_for_input with argument.
+ * image.c (syms_of_image) <image-library-alist, cross-disabled-images>:
+ Doc fixes.
- * xterm.h (x_update_cursor): Remove duplicated prototype.
+2007-08-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * keyboard.h (clear_waiting_for_input): Remove duplicated prototype.
+ * mac.c [MAC_OSX] (select_and_poll_event, sys_select): Fix last changes.
- * xterm.c (waiting_for_input): Remove unnecessary declaration.
+2007-08-24 Martin Rudalics <rudalics@gmx.at>
- * data.c (Ftimes, Fquo, Frem, Fmod): Doc fix.
+ * fileio.c (Finsert_file_contents): Consult CHARS_MODIFF to tell
+ whether decoding has modified buffer contents.
-2001-11-16 Stefan Monnier <monnier@cs.yale.edu>
+2007-08-24 Jason Rumney <jasonr@gnu.org>
- * fileio.c (choose_write_coding_system): New fun, extracted
- from Fwrite_region.
- (Fwrite_region): Use it.
+ * image.c [HAVE_NTGUI]: Define dynamic loaded functions for SVG.
+ (Qgdk_pixbuf, Qglib) [HAVE_NTGUI]: New symbols.
+ (syms_of_image) [HAVE_NTGUI]: Intern and staticpro them.
+ (init_svg_functions) [HAVE_NTGUI]: New function.
+ (fn_g_type_init, fn_g_object_unref, fn_g_error_free): New #defines.
+ (svg_load_image): Use them.
+ (svg_load_image) [HAVE_NTGUI]: Implement background.
- * eval.c (max_specpdl_size, max_lisp_eval_depth): Use EMACS_INT.
- (funcall_lambda, run_hook_with_args): Make static and add prototype.
- (ml_apply, find_handler_clause): Add prototype.
+2007-08-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-2001-11-16 Eli Zaretskii <eliz@gnu.org>
+ * Makefile.in (RSVG_LIBS, RSVG_CFLAGS): New variables.
+ (ALL_CFLAGS): Use ${RSVG_CFLAGS} instead of @RSVG_CFLAGS@.
+ (LIBX): Remove @RSVG_LIBS@.
+ (LIBES): Add $(RSVG_LIBS).
- * config.in: Add #undef HAVE_COFF_H.
+ * image.c (svg_load_image): Blend with specified background if exists.
+ Use IMAGE_BACKGROUND. Add Mac OS Support.
- * unexec.c (coff.h): Don't include unless HAVE_COFF_H is defined.
- Required for ISC 4.1.
+ * mac.c (wakeup_from_rne_enabled_p) [MAC_OSX]: Remove variable.
+ (ENABLE_WAKEUP_FROM_RNE, DISABLE_WAKEUP_FROM_RNE) [MAC_OSX]:
+ Remove macros.
+ [MAC_OSX] (socket_callback): Do nothing.
+ [MAC_OSX] (select_and_poll_event): Use CFRunLoopRunInMode instead of
+ ReceiveNextEvent.
+ [MAC_OSX] (sys_select): Likewise. Don't set context as argument to
+ socket_callback.
+ (mac_wakeup_from_rne) [MAC_OSX]: Do nothing.
-2001-11-16 Eli Zaretskii <eliz@is.elta.co.il>
+2007-08-22 Glenn Morris <rgm@gnu.org>
- * syswait.h (HAVE_SYS_WAIT_H): Undef for ISC 4.1. Reported by
- Andrew Wiseman <a.wiseman@btclick.com>.
+ * image.c (x_find_image_file): Search in etc/images/ rather than etc/.
-2001-11-16 Kim F. Storm <storm@cua.dk>
+2007-08-22 Paul Pogonyshev <pogonyshev@gmx.net>
- The following changes are made to clean up the various internal
- references to the fringes to actually use the term `fringe' for
- them. Previously, they were called `flags areas', `bitmap areas',
- `left/right side of windows', or implicitly as `flags' or
- `bitmaps':
+ * Makefile.in (ALL_CFLAGS, LIBX): Add RSVG_LIBS.
- * dispextern.h (FRINGE_FACE_ID): Renamed from BITMAP_AREA_FACE_ID.
- Comments fixed. Use renamed symbols.
+ * image.c: Add support for SVG images. Some additional comments
+ by Joakim Verona <joakim@verona.se>. When HAVE_RSVG is defined:
+ (svg_image_p): New function to test for SVG image.
+ (svg_load): New function to load SVG image.
+ (svg_load_image): New function, helper for svg_load.
+ (Qsvg): New Lisp_object.
+ (svg_keyword_index): New enum.
+ (svg_format): New static `image_keyword' struct.
+ (svg_type): New static `image_type' struct.
+ (librsvg/rsvg.h): Include it.
- * dispnew.c: Comment fix. Use renamed symbols.
+2007-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
- * frame.h (FRAME_FRINGE_COLS): Renamed from FRAME_FLAGS_AREA_COLS.
- (FRAME_FRINGE_WIDTH): Renamed from FRAME_FLAGS_AREA_WIDTH.
- (FRAME_LEFT_FRINGE_WIDTH): Renamed from FRAME_LEFT_FLAGS_AREA_WIDTH.
+ * lread.c (load_warn_old_style_backquotes): Fix up array size typo.
- * msdos.c: Comment fix.
+2007-08-22 Stefan Monnier <monnier@iro.umontreal.ca>
- * w32fns.c: Use renamed symbols.
+ * lread.c (Qold_style_backquotes): New var.
+ (syms_of_lread): Init and staticpro it.
+ (load_warn_old_style_backquotes): New fun.
+ (Fload): Use them to warn about old style backquotes.
+ (end_of_file_error, Fload): Remove unused vars.
- * w32term.c: Comment fixes. Use renamed symbols.
- (fringe_bitmap_type): Renamed from bitmap_type.
- (NO_FRINGE_BITMAP): Renamed from NO_BITMAP.
- (w32_draw_fringe_bitmap): Renamed from w32_draw_bitmap.
- (x_draw_row_fringe_bitmaps): Renamed from x_draw_row_bitmaps.
+ * lisp.h (Fclear_face_cache, Fx_send_client_event): Declare.
- * w32term.h: Comment fixes. Use renamed symbols.
- (fringes_extra): Renamed from flags_areas_extra.
- (FRAME_FRINGE_BITMAP_WIDTH): Renamed from FRAME_FLAGS_BITMAP_WIDTH.
- (FRAME_FRINGE_BITMAP_HEIGHT): Renamed from FRAME_FLAGS_BITMAP_HEIGHT.
- (FRAME_X_FRINGE_COLS): Renamed from FRAME_X_FLAGS_AREA_COLS.
- (FRAME_X_FRINGE_WIDTH): Renamed from FRAME_X_FLAGS_AREA_WIDTH.
- (FRAME_X_LEFT_FRINGE_WIDTH):
- Renamed from FRAME_X_LEFT_FLAGS_AREA_WIDTH.
- (FRAME_X_RIGHT_FRINGE_WIDTH):
- Renamed from FRAME_X_RIGHT_FLAGS_AREA_WIDTH.
+ * lread.c (Vold_style_backquotes): New var.
+ (syms_of_lread): Init and export it to Elisp.
+ (read1): Set it when we find an old-style (back)quote.
- * widget.c: Use renamed symbols.
+2007-08-22 Jason Rumney <jasonr@gnu.org>
- * window.c: Comment fixes. Use renamed symbols.
- (coordinates-in-window-p): Doc fix.
+ * w32reg.c (SYSTEM_DEFAULT_RESOURCES): Add missing NULL terminator.
- * xdisp.c: Comment fixes. Use renamed symbols.
+2007-08-22 Katsumi Yamaoka <yamaoka@jpl.org>
- * xfaces.c (realize_basic_faces): Use FRINGE_FACE_ID.
+ * puresize.h (BASE_PURESIZE): Increase to 1140000.
- * xfns.c: Use renamed symbols.
+2007-08-19 Richard Stallman <rms@gnu.org>
- * xterm.c: Comment fixes. Use renamed symbols.
- (fringe_bitmap_type): Renamed from bitmap_type.
- (NO_FRINGE_BITMAP): Renamed from NO_BITMAP.
- (x_draw_fringe_bitmap): Renamed from x_draw_bitmap.
- (x_draw_row_fringe_bitmaps): Renamed from x_draw_row_bitmaps.
+ * eval.c (Ffunction, Fquote): Signal error if not 1 argument.
- * xterm.h: Comment fixes. Use renamed symbols.
- (fringes_extra): Renamed from flags_areas_extra.
- (FRAME_FRINGE_BITMAP_WIDTH): Renamed from FRAME_FLAGS_BITMAP_WIDTH.
- (FRAME_FRINGE_BITMAP_HEIGHT): Renamed from FRAME_FLAGS_BITMAP_HEIGHT.
- (FRAME_X_FRINGE_COLS): Renamed from FRAME_X_FLAGS_AREA_COLS.
- (FRAME_X_FRINGE_WIDTH): Renamed from FRAME_X_FLAGS_AREA_WIDTH.
- (FRAME_X_LEFT_FRINGE_WIDTH):
- Renamed from FRAME_X_LEFT_FLAGS_AREA_WIDTH.
- (FRAME_X_RIGHT_FRINGE_WIDTH):
- Renamed from FRAME_X_RIGHT_FLAGS_AREA_WIDTH.
+2007-08-19 Andreas Schwab <schwab@suse.de>
-2001-11-15 Jason Rumney <jasonr@gnu.org>
+ * alloc.c (pure): Round PURESIZE up.
- * w32menu.c (add-menu-item): Make help_echo and radio buttons
- work for most menu items. From David Ponce
- <david.ponce@wanadoo.fr>.
+2007-08-17 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-2001-11-15 Gerd Moellmann <gerd@gnu.org>
+ * xterm.c (handle_one_xevent): Remove check that mouse click is in
+ active frame.
- * xfns.c (x_set_frame_parameters): Revert change of 2001-11-07.
- Some x_set_* function expect to be called even if old and new
- value are equal.
+2007-08-16 Richard Stallman <rms@gnu.org>
- * xdisp.c (build_desired_tool_bar_string): Accept zero
- tool_bar_button_relief.
+ * eval.c (Fcommandp): Add parens to clarify.
- * xfns.c (Fx_create_frame): Accept zero tool_bar_button_relief.
+ * minibuf.c (Fall_completions): Use enum for type of table.
- * xterm.c (x_draw_image_relief): Accept zero tool_bar_button_relief.
+ * emacs.c (USAGE2): Improve text.
- * xterm.c (x_draw_bar_cursor): If the background color of the
- glyph under the cursor equals the frame's cursor color, use
- the glyph's foreground color for drawing the bar cursor.
+2007-08-15 Philippe Waroquiers <philippe.waroquiers@eurocontrol.int>
- * dispnew.c (direct_output_forward_char): Fix character/byte
- position comparison.
+ * term.c (tty_default_color_capabilities): Declare static
+ variables in file scope, to avoid HPUX compiler problem.
-2001-11-15 Miles Bader <miles@gnu.org>
+2007-08-13 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
- * editfns.c (find_field): Add BEG_LIMIT and END_LIMIT parameters.
- (Fdelete_field, Ffield_string, Ffield_string_no_properties):
- Update arguments to find_field.
- (Ffield_beginning, Ffield_end): Add LIMIT param, pass to find_field.
- (Fconstrain_to_field): Use LIMIT arg to shorten search time.
- * lisp.h (Ffield_beginning, Ffield_end): Update EXFUN decl.
- * minibuf.c (Fminibuffer_prompt_end): Update args to Ffield_end.
+ * gtkutil.c (update_frame_tool_bar): Use -1 as index
+ to gtk_toolbar_insert.
-2001-11-14 Richard M. Stallman <rms@gnu.org>
+2007-08-13 Stefan Monnier <monnier@iro.umontreal.ca>
- * editfns.c (Fpropertize): Allow call with 1 arg.
+ * fileio.c (Finsert_file_contents): Yet Another Int/Lisp_Object Mixup.
- * dispextern.h (image_background, image_background_transparent):
- Conditionalize on HAVE_X_WINDOWS.
+ * insdel.c (reset_var_on_error): New fun.
+ (signal_before_change, signal_after_change):
+ Use it to reset (after|before)-change-functions to nil in case of error.
+ Bind inhibit-modification-hooks to t.
+ Don't bind (after|before)-change-functions to nil while they run.
-2001-11-13 Richard M. Stallman <rms@gnu.org>
+2007-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * print.c (Fprin1_to_string): Doc fix.
+ * xterm.c (x_draw_image_glyph_string): Adjust stipple origin when
+ filling pixmap with stippled background.
- * sunfns.c (Fsun_change_cursor_icon): Doc fix.
+2007-08-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * floatfns.c (Fceiling, Ffloor): Doc fixes.
+ * macterm.c [TARGET_API_MAC_CARBON] (mac_handle_window_event):
+ Don't use invisible frame as parent window for repositioning.
- * filelock.c (Funlock_buffer, Ffile_locked_p): Doc fixes.
+2007-08-10 Stefan Monnier <monnier@iro.umontreal.ca>
- * fileio.c (Ffile_accessible_directory_p): Doc fix.
+ * print.c (new_backquote_output): Rename from old_backquote_output.
+ (print): Inverse its logic (according to its name) so as to match the
+ behavior of new_backquote_flag in lread.c.
- * eval.c (syms_of_eval): Doc fix.
+2007-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * coding.c (syms_of_coding): Doc fix.
+ * gmalloc.c (posix_memalign): New function.
- * doc.c (Fsnarf_documentation): Doc fix.
+ * macterm.c (frame_highlight, frame_unhighlight): Don't call
+ ActivateControl/DeactivateControl here.
+ [USE_MAC_TOOLBAR] (free_frame_tool_bar): Suppress animation when
+ frame-notice-user-settings is non-nil.
+ [USE_MAC_FONT_PANEL] (mac_handle_font_event): Also record parameter
+ for kEventParamFMFontStyle.
+ [TARGET_API_MAC_CARBON] (mac_handle_keyboard_event): Don't check
+ mac_pass_command_to_system and mac_pass_control_to_system here.
+ (XTread_socket): Call ActivateControl/DeactivateControl here.
+ (XTread_socket) [TARGET_API_MAC_CARBON]:
+ Check mac_pass_command_to_system and mac_pass_control_to_system here.
+ (mac_handle_window_event) [USE_MAC_TOOLBAR]: Add further workaround
+ for window repositioning.
- * dispnew.c (syms_of_display): Doc fix.
+2007-08-08 Glenn Morris <rgm@gnu.org>
- * category.c (Fget_unused_category): Doc fix.
+ * Replace `iff' in doc-strings and comments.
- * buffer.c (syms_of_buffer): Doc fixes.
+2007-08-07 Chong Yidong <cyd@stupidchicken.com>
-2001-11-14 Eli Zaretskii <eliz@is.elta.co.il>
+ * xdisp.c (move_it_by_lines): Remove incorrect optimization.
- * print.c (prin1, print): Doc fix.
+2007-08-07 Martin Rudalics <rudalics@gmx.at>
-2001-11-14 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * fileio.c (Finsert_file_contents): Run format-decode and
+ after_insert_file_functions on entire buffer when REPLACE is
+ non-nil and inhibit modification_hooks and point_motion_hooks.
+ For consistency, run after_insert_file_functions iff something
+ got inserted. Move signal_after_change and update_compositions
+ after code running after_insert_file_functions. Make sure that
+ undo_list doesn't record intermediate steps of the decoding process.
- * fontset.h: Remove declarations of variables
- `Vhighlight_wrong_size_font' and `Vclip_large_size_font'.
+2007-08-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * fontset.c: Remove variables `Vhighlight_wrong_size_font' and
- `Vclip_large_size_font'.
+ * emacs.c (main)
+ [HAVE_GTK_AND_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
+ Call malloc_enable_thread on interactive startup.
-2001-11-13 Jason Rumney <jasonr@gnu.org>
+ * gmalloc.c (_malloc_thread_enabled_p) [USE_PTHREAD]: New variable.
+ (LOCK, UNLOCK, LOCK_ALIGNED_BLOCKS, UNLOCK_ALIGNED_BLOCKS)
+ [USE_PTHREAD]: Conditionalize with it.
+ (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
+ (malloc_atfork_handler_child, malloc_enable_thread) [USE_PTHREAD]:
+ New functions.
- * w32fns.c: Doc fix.
+2007-08-06 Chong Yidong <cyd@stupidchicken.com>
-2001-11-13 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * xdisp.c (redisplay_window): When restoring original buffer
+ position, make sure it is still valid.
- * xfaces.c (Fface_attributes_as_vector): Doc fix.
+ * image.c (png_load): Ignore png-supplied background color.
- * fns.c: Doc fix.
+2007-08-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * emacs.c: Doc fix.
+ * mac.c [TARGET_API_MAC_CARBON] (cfdate_to_lisp): Obtain microsec value.
+ Use kCFAbsoluteTimeIntervalSince1970.
- * coding.c: Doc fix.
+ * macmenu.c (quit_dialog_event_loop) [TARGET_API_MAC_CARBON]:
+ New variable.
+ [TARGET_API_MAC_CARBON] (mac_handle_dialog_event): Set it if dialog
+ event loop should be quit.
+ [TARGET_API_MAC_CARBON] (create_and_show_dialog) [!MAC_OSX]:
+ Quit dialog event loop if quit_dialog_event_loop is set.
+
+ * macselect.c [!TARGET_API_MAC_CARBON]: Include Scrap.h.
+ (Selection): New typedef. Use instead of ScrapRef.
+ (mac_get_selection_from_symbol): Rename from get_scrap_from_symbol.
+ (mac_valid_selection_target_p): Rename from valid_scrap_target_type_p.
+ (mac_clear_selection): Rename from clear_scrap.
+ (get_flavor_type_from_symbol): New argument SEL and subsume function of
+ scrap_has_target_type. All uses changed.
+ (mac_get_selection_ownership_info, mac_valid_selection_value_p)
+ (mac_selection_has_target_p): New functions.
+ (mac_put_selection_value): Rename from put_scrap_string.
+ (mac_get_selection_value): Rename from get_scrap_string.
+ (mac_get_selection_target_list): Rename from get_scrap_target_type_list.
+ (put_scrap_private_timestamp, scrap_has_target_type)
+ (get_scrap_private_timestamp): Remove functions.
+ (SCRAP_FLAVOR_TYPE_EMACS_TIMESTAMP): Remove define.
+ (x_own_selection, x_get_local_selection):
+ Use mac_valid_selection_value_p.
+ (x_own_selection): Don't use put_scrap_private_timestamp.
+ Record OWNERSHIP-INFO into Vselection_alist instead.
+ (x_get_local_selection): Don't check type if request is local.
+ (Fx_selection_owner_p): Don't use get_scrap_private_timestamp.
+ Detect ownership change with OWNERSHIP-INFO in Vselection_alist instead.
+
+2007-08-04 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (xg_tool_bar_callback): Generate two TOOL_BAR_EVENT:s,
+ add comment explaining why.
- * cmds.c, composite.c, dired.c, doc.c, filelock.c, floatfns.c,
- * fontset.c, insdel.c, keymap.c: Change doc-string comments to
- `new style' [w/`doc:' keyword].
+2007-08-03 Richard Stallman <rms@gnu.org>
-2001-11-12 Richard M. Stallman <rms@gnu.org>
+ * fileio.c (Fvisited_file_modtime): Use make_time.
- * xterm.c (XTread_socket): Don't update focus for EnterNotify or
- LeaveNotify events. Only FocusIn and FocusOut do that now.
- (x_display_and_set_cursor): Do display hollow cursors in active
- minibuffer windows when they are not selected.
+2007-08-01 Ryo Yoshitake <ryo@shiftmode.net> (tiny change)
-2001-11-12 Jason Rumney <jasonr@gnu.org>
+ * mac.c (init_mac_osx_environment): Adjust load-path on self-contained
+ build.
- * w32console.c, w32fns.c, w32menu.c, w32proc.c, w32select.c,
- * w32term.c: Change doc-string comments to `new style'
- [w/`doc:' keyword]. Doc fixes.
+2007-07-31 Stefan Monnier <monnier@iro.umontreal.ca>
- * w32fns.c: Don't define max.
- (Fx_open_connection): Only execute once.
+ * gtkutil.c (xg_tool_bar_callback): Generate a single TOOL_BAR_EVENT.
-2001-11-12 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-07-30 Katsumi Yamaoka <yamaoka@jpl.org>
- * ccl.c: Change macros to use do-while block instead of if-else.
- Use braces to follow GNU Coding Standards.
+ * puresize.h (BASE_PURESIZE): Increase to 1130000.
-2001-11-11 Richard M. Stallman <rms@gnu.org>
+2007-07-30 Richard Stallman <rms@gnu.org>
- * sysdep.c (child_setup_tty): Don't clear ICRNL or INLCR.
+ * lread.c (readevalloop, read1): Treat NBSP as whitespace.
- * lread.c (read_escape): Use end_of_file_error for reporting eof.
+2007-07-29 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
- * insdel.c (replace_range): Use adjust_markers_for_replace
- instead of adjust_markers_for_delete and adjust_markers_for_insert.
+ * gmalloc.c (__malloc_initialize): Remove pthread_once. Not needed.
- * intervals.h (set_text_properties, set_text_properties_1): Declare.
+2007-07-28 Nick Roberts <nickrob@snap.net.nz>
- * textprop.c (set_text_properties_1): New subroutine
- broken out of set_text_properties.
- (set_text_properties): Use set_text_properties_1.
+ * xdisp.c (decode_mode_spec): Use '@' instead of 'R' to test for
+ remote default-directory.
- * intervals.c (graft_intervals_into_buffer):
- Use set_text_properties_1 to clear out properties.
+ * buffer.c (mode-line-format): Update doc string.
- * search.c (Freplace_match): Use replace_range to insert
- and delete. Don't request property inheritance from
- surrounding text.
+2007-07-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-2001-11-10 Jason Rumney <jasonr@gnu.org>
+ * w32term.c (w32_draw_fringe_bitmap): Extend fringe background to
+ scroll bar gap.
+ (x_scroll_bar_create): Set bar->fringe_extended_p.
+ (w32_set_vertical_scroll_bar): Put leftmost/rightmost scroll bars
+ on frame edge. Check fringe background extension. Don't clear
+ extended fringe background area.
- * w32fns.c (enum_font_cb2): Use leading @ on face name to detect
- vertical fonts. Allow them if face name is explicitly specified.
- Do not give up if we find a font that cannot be converted to an xlfd.
+ * w32term.h (struct scroll_bar): New member fringe_extended_p.
+ (w32_fill_area): Enclose multiple statements with do ... while (0).
-2001-11-10 Gerd Moellmann <gerd@gnu.org>
+ * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
+ Extend fringe background to scroll bar gap.
+ (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]:
+ Set bar->fringe_extended_p.
+ (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
+ Put leftmost/rightmost scroll bars on frame edge. Check fringe
+ background extension. Don't clear extended fringe background area.
- * unexelf.c (unexec): Use mmap/munmap to allocate buffers
- instead of malloc/free.
+ * xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
+ New member fringe_extended_p.
-2001-11-09 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-07-25 Glenn Morris <rgm@gnu.org>
- * xfaces.c (merge_face_vectors): Use braces to follow GNU
- Coding Standards.
- (Finternal_set_lisp_face_attribute): Likewise.
+ * Relicense all FSF files to GPLv3 or later.
- * buffer.c (Fbury_buffer): Likewise.
+ * COPYING: Switch to GPLv3.
- * indent.c (current_column_1): Remove unused variable `prev_col'.
+2007-07-25 Stefan Monnier <monnier@iro.umontreal.ca>
- * coding.c (encode_coding): Use precomputed value of `src'.
- (encode_coding): Remove unused variable `src_end'.
- (code_convert_region): Remove unused variables `count'.
+ * eval.c (Fcommandp): Pay attention to the `interactive-form' property.
-2001-11-07 Jason Rumney <jasonr@gnu.org>
+ * data.c (Finteractive_form): Check for the presence of an
+ `interactive-form' symbol property more thoroughly.
- * w32term.c (x_display_and_set_cursor): Do not move system caret
- if cursor_glyph is NULL.
+ * data.c (Finteractive_form): Use an `interactive-form' property if
+ present, analogous to the function-documentation property.
-2001-11-07 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-07-24 Jason Rumney <jasonr@gnu.org>
- * keymap.c (access_keymap): Fix compilation error.
+ * w32fns.c (x_real_positions): Get real position from OS instead of
+ calculating it.
-2001-11-07 Miles Bader <miles@gnu.org>
+2007-07-23 Jason Rumney <jasonr@gnu.org>
- * xfns.c (x_set_frame_parameters): Avoid infinite recursion.
+ * filelock.c (current_lock_owner): Allow for @ sign in username.
-2001-11-07 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-07-22 Nick Roberts <nickrob@snap.net.nz>
- * intervals.c (graft_intervals_into_buffer):
- Remove #ifdef'd-out code.
- (graft_intervals_into_buffer): Remove unused variable `middle'.
+ * xdisp.c (decode_mode_spec): Add case 'R' for to test for
+ remote default-directory.
- * lread.c (Feval_region): Remove obsolete #ifdef'd-out
- code (eval-current-buffer).
- Change doc-string comments to `new style' [w/`doc:' keyword].
+ * buffer.c (mode-line-format): Describe above case in doc string.
-2001-11-06 Richard M. Stallman <rms@gnu.org>
+2007-07-20 Eli Zaretskii <eliz@gnu.org>
- * keymap.c (access_keymap): Don't use initializers on Lisp_Object.
+ * w32proc.c (IMAGE_NT_OPTIONAL_HDR32_MAGIC, IMAGE_OPTIONAL_HEADER32):
+ Define if not defined.
-2001-11-06 Stefan Monnier <monnier@cs.yale.edu>
+2007-07-18 Jason Rumney <jasonr@gnu.org>
- * lread.c (read1): Fix behavior with nested backquoting.
+ * w32proc.c (w32_executable_type): Handle 64 bit executables.
- * keyboard.c (make_lispy_event): Check integerness and fix
- Lisp_Object/int mixup.
+2007-07-18 Richard Stallman <rms@gnu.org>
-2001-11-06 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * data.c (Fsetq_default): Doc fix.
- * fns.c (copy_hash_table): Remove unused variable `v'.
+ * eval.c (Fsetq): Doc fix.
- * fontset.c (fontset_font_pattern): Remove unused variable
- `family_registry'.
+2007-07-18 Juanma Barranquero <lekktu@gmail.com>
- * indent.c (current_column_1): Remove unused variable `prev_col'.
+ * coding.c (Ffind_operation_coding_system):
+ * eval.c (For, Fand): Doc fixes.
+ Reported by Johan Bockg\e,Ae\e(Brd.
-2001-11-05 Richard M. Stallman <rms@gnu.org>
+2007-07-18 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
- * m/news-risc.h (BROKEN_PROTOTYPES): Defined.
+ * xfns.c (Fx_focus_frame): Call x_ewmh_activate_frame.
- * buffer.c (Fkill_buffer): Don't delete auto save file
- if buffer is modified.
+ * xterm.h: Declare x_ewmh_activate_frame.
-2001-11-05 Andrew Innes <andrewi@gnu.org>
+ * xterm.c (x_ewmh_activate_frame): New function.
+ (XTframe_raise_lower): Move code to x_ewmh_activate_frame.
- * w32proc.c (Fw32_set_keyboard_layout): Use CHECK_NUMBER_CAR and
- CHECK_NUMBER_CDR.
+2007-07-17 Martin Rudalics <rudalics@gmx.at>
-2001-11-05 Richard M. Stallman <rms@gnu.org>
+ * window.c (Fdisplay_buffer): If largest or LRU window is the
+ only window, split it even if it is not eligible for splitting.
+ This restores the original behavior broken by the 2007-07-15
+ change.
- * unexelf.c (unexec): Minor changes; clean up comments.
+2007-07-17 Glenn Morris <rgm@gnu.org>
-2001-11-05 Sam Steingold <sds@gnu.org>
+ * abbrev.c (abbrev_check_chars): New function.
+ (Fdefine_global_abbrev, Fdefine_mode_abbrev):
+ Call abbrev_check_chars to check abbrev characters are word
+ constituents. Doc fix.
- * w32term.c (x_display_and_set_cursor): Fix w32 compilation error.
+2007-07-17 Stefan Monnier <monnier@iro.umontreal.ca>
-2001-11-05 Andreas Schwab <schwab@suse.de>
+ * process.c (Fstart_process, Fmake_network_process)
+ (read_process_output): Fix up last changes.
- * sound.c (sound_perror): Save errno from being clobbered.
+2007-07-16 Eli Zaretskii <eliz@gnu.org>
-2001-11-05 Dale Hagglund <rdh@yottayotta.com>
+ * makefile.w32-in (clean): Don't delete *~.
- * unexelf.c (unexec): Don't use `mmap'. Instead, read and write
- the program image directly.
+2007-07-16 Andreas Schwab <schwab@suse.de>
-2001-11-05 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * window.c (Fdisplay_buffer): Use NILP.
+ (Fset_window_scroll_bars): Likewise.
- * buffer.h (Fbuffer_local_value): Add prototype.
+2007-07-15 Martin Rudalics <rudalics@gmx.at>
-2001-11-04 Richard M. Stallman <rms@gnu.org>
+ * window.c (window_min_size_2): New function.
+ (window_min_size_1, size_window, Fdisplay_buffer)
+ (Fsplit_window, adjust_window_trailing_edge): Use it to avoid
+ windows without mode- or header-lines when window-min-height is
+ too small.
+ (size_window): Reset nodelete_p after testing it, following an
+ earlier note by Kim F. Storm.
+ (display_buffer): Do not set split_height_threshold to twice the
+ value of window_min_height to avoid changing the value of a
+ customizable variable. Rather explicitly check whether the
+ height of the window that shall be splitted is at least as large
+ as split_height_threshold.
+ (Fwindow_full_width_p): New defun.
+ (syms_of_window): Defsubr it.
- * buffer.c (Fbuffer_local_value): Remove extra args from CHECK_SYMBOL
- and CHECK_BUFFER.
+ * window.h: Add EXFUN for Fwindow_full_width_p.
- * keyboard.c (read_char): Use Fcar and Fcdr, not Fnth.
- (record_char): Likewise.
+2007-07-14 Jason Rumney <jasonr@gnu.org>
- * keyboard.c (make_lispy_event): Don't insist a drag event must
- move to a different buffer position. Instead, check for moving at
- least double_click_fuzz.
+ * process.c [WINDOWSNT]: Don't undefine AF_INET6.
- * fns.c (Fmake_hash_table): Use XCAR and XCDR, not Fnth and Flength.
+2007-07-14 Richard Stallman <rms@gnu.org>
- * keyboard.c (echo-area-clear-hook): Undo Oct 29 change.
+ * eval.c (maybe_call_debugger): New function.
+ (find_handler_clause): Use maybe_call_debugger.
+ Call it when the handler says `debug'.
+ Eliminate DEBUGGER_VALUE_PTR.
+ (Fsignal): Eliminate debugger_value.
+ (Qdebug): New variable.
+ (syms_of_eval): Initialize it.
- * indent.c (current_column_1, Fmove_to_column): Separate the code
- for display-table glyphs from the code for buffer text, to fix
- bugs in the former.
+2007-07-14 Juanma Barranquero <lekktu@gmail.com>
-2001-11-04 Michael Welsh Duggan <md5i@cs.cmu.edu>
+ * eval.c (Fprogn):
+ * keyboard.c (Ftrack_mouse):
+ * print.c (Fwith_output_to_temp_buffer):
+ * window.c (Fsave_window_excursion): Doc fix.
- * buffer.c (Fbuffer_local_value): New function.
- (syms_of_buffer): Defsubr it.
+2007-07-13 Stefan Monnier <monnier@iro.umontreal.ca>
- * xterm.c, w32term.c (x_display_and_set_cursor): Use buffer-local
- value of `cursor-in-non-selected-windows'.
+ * eval.c (init_eval_once): Bump max_lisp_eval_depth to 400.
- * lisp.h (Qcursor_in_non_selected_windows): New declaration.
- * xdisp.c (Qcursor_in_non_selected_windows): New variable.
- (syms_of_xdisp): Initialize it.
+2007-07-12 Stefan Monnier <monnier@iro.umontreal.ca>
-2001-11-04 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * process.h (struct Lisp_Process): Turn slots infd, outfd,
+ kill_without_query, pty_flag, tick, update_tick, decoding_carryover,
+ inherit_coding_system_flag, filter_multibyte, adaptive_read_buffering,
+ read_output_delay, and read_output_skip from Lisp_Objects to ints.
+ Remove unused encoding_carryover.
+ * process.c: Adjust all functions accordingly.
- * xfns.c (Fx_create_frame): Doc fix.
+2007-07-12 Richard Stallman <rms@gnu.org>
- * coding.c: Change doc-string comments to `new style' [w/`doc:'
- keyword].
+ * term.c: Include unistd.h only if HAVE_UNISTD_H.
- * eval.c (top_level_value, top_level_set): Remove commented and
- #ifdef'd-out code.
- (Fdefvar): Fix usage in doc-string.
+2007-07-11 Jason Rumney <jasonr@gnu.org>
-2001-11-03 Richard M. Stallman <rms@gnu.org>
+ * makefile.w32-in (LIBS): Include OLE32.
- * xfns.c: Include unistd.h, if it exists.
+ * w32fns.c (w32_msg_pump) <WM_EMACS_CREATEWINDOW>: Initialize COM.
+ (w32_msg_pump) <WM_DESTROY>: Uninitialize COM.
- * editfns.c: Move the include of ctype.h after unistd.h.
+2007-07-11 Stefan Monnier <monnier@iro.umontreal.ca>
- * gmalloc.c: Test BROKEN_PROTOTYPES.
+ * lisp.h (struct Lisp_Hash_Table): Turn next_weak into a bare pointer.
+ * fns.c (weak_hash_tables): Rename from Vweak_hash_tables and turned
+ from a Lisp_Object into a bare pointer.
+ (make_hash_table, copy_hash_table, sweep_weak_hash_tables, init_fns):
+ Adjust the code correspondingly.
-2001-11-03 Ken Raeburn <raeburn@gnu.org>
+ * alloc.c (emacs_blocked_free): Remove unused var `bytes_used_now'.
- * lisp.h (CHECK_STRING_CAR): New macro.
- * lread.c (Fload): Use XSETCARFASTINT, XSETCDRFASTINT instead of
- treating XCAR and XCDR as lvalues.
- (openp): Use CHECK_STRING_CAR.
- (read_list): Use XSETCDR instead of treating XCDR as lvalue.
+ * term.c: Include unistd.h for ttyname, used in handle_one_term_event.
+ (term_show_mouse_face): Remove unused var `j'.
+ (handle_one_term_event): Remove unused vars `i' and `j'.
+ Don't cast return value of ttyname since it's not necessary.
-2001-11-03 Eli Zaretskii <eliz@is.elta.co.il>
+2007-07-10 Stefan Monnier <monnier@iro.umontreal.ca>
- * s/sco5.h (sigprocmask_set): Declare as extern SIGMASKTYPE.
- (SIGMASKTYPE): Define.
+ * alloc.c (mark_maybe_pointer): Enforce mult-of-8 alignment when using
+ USE_LSB_TAG. Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
- * syssignal.h (sigunblock): Don't define if already defined.
+ * fns.c (map_char_table): Use an array of int for `indices' rather than
+ an array of Lisp_Objects (which are only ever integers anyway).
+ (Fmap_char_table): Update caller.
+ * lisp.h: Update prototype.
+ * keymap.c (Fset_keymap_parent, map_keymap, Fcopy_keymap):
+ * fontset.c (Ffontset_info):
+ * casetab.c (set_case_table): Update callers.
-2001-11-02 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * editfns.c (Ftranspose_regions): Use EMACS_INT for positions.
- * eval.c (debugger_may_continue, Vdebug_ignored_errors)
- (call_debugger, Fcondition_case, skip_debugger, unbind_to):
- Fix typos in comments.
+ * keymap.c (struct accessible_keymaps_data)
+ (struct where_is_internal_data): New structures.
+ (accessible_keymaps_1, where_is_internal_1): Use them to change
+ interface to adhere to the one used by map_keymap.
+ (Faccessible_keymaps, where_is_internal): Use map_keymap.
+ (accessible_keymaps_char_table, where_is_internal_2): Remove.
- * mocklisp.c (Fml_defun, Fml_while, Fml_substr): Remove commented
- and #ifdef'd-out code.
- Fix and reindent comments.
+ * keymap.h (map_keymap_function_t): More informative prototype.
- * mocklisp.h: Remove comment which is a copy of comment in mocklisp.c.
+2007-07-10 Guanpeng Xu <herberteuler@hotmail.com>
- * category.h (CHECK_CATEGORY, CHECK_CATEGORY_SET): Remove unused
- argument `i' in macros.
+ * search.c (Vinhibit_changing_match_data, search_regs_1): New vars.
+ (looking_at_1): Don't change search_regs and last_thing_searched
+ if `inhibit-changing-match-data' is non-nil.
+ (string_match_1, search_buffer, set_search_regs): Likewise.
+ (syms_of_search): Add Lisp level definition for
+ `inhibit-changing-match-data' and set it to nil.
+ (boyer_moore): If `inhibit-changing-match-data' is non-nil, compute
+ start and end of the match, instead of using values in search_regs.
- * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Remove unused argument
- `i' in macros.
+2007-07-01 Stefan Monnier <monnier@iro.umontreal.ca>
- * lisp.h (CHECK_STRING_OR_BUFFER, CHECK_HASH_TABLE, CHECK_LIST)
- (CHECK_STRING, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
- (CHECK_VECTOR, CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER)
- (CHECK_WINDOW, CHECK_LIVE_WINDOW, CHECK_PROCESS, CHECK_NUMBER)
- (CHECK_NATNUM, CHECK_MARKER, CHECK_NUMBER_COERCE_MARKER)
- (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT)
- (CHECK_NUMBER_OR_FLOAT_COERCE_MARKER, CHECK_OVERLAY)
- (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): Remove unused argument `i'
- in macros.
+ * minibuf.c (Fcompleting_read): New value `confirm-only'
+ for `require-match'.
- * abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c,
- * casefiddle.c, category.c, ccl.c, charset.c, cmds.c, coding.c,
- * composite.c, data.c, dired.c, dispnew.c, doc.c, dosfns.c, emacs.c,
- * eval.c, fileio.c, filelock.c, fns.c, fontset.c, frame.c, frame.h,
- * indent.c, keyboard.c, keymap.c, lread.c, macros.c, marker.c,
- * minibuf.c, mocklisp.c, msdos.c, print.c, process.c, search.c,
- * sunfns.c, syntax.c, textprop.c, undo.c, w16select.c, w32console.c,
- * w32fns.c, w32menu.c, w32proc.c, w32select.c, window.c, xdisp.c,
- * xfaces.c, xmenu.c, xselect.c: Update usage of CHECK_ macros
- (remove unused second argument).
+2007-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
-2001-11-02 Stefan Monnier <monnier@cs.yale.edu>
+ * fileio.c (Fdo_auto_save): Revert last patch installed unwillingly as
+ part of the 2007-06-27 change to syms_of_fileio.
- * syntax.c (describe_syntax): New wrapper.
- (Finternal_describe_syntax_value): Rename from describe_syntax.
- Don't insert space at front and \n at the end.
- (syms_of_syntax): Defsubr Sinternal_describe_syntax_value.
+2007-06-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * regex.c (re_wctype): Try to fix some warnings.
- (regcomp, regexec): Don't forget the __restrict.
+ * macterm.c [USE_MAC_TSM] (mac_handle_text_input_event):
+ Check WINDOWP before using XWINDOW. Consolidate return statements.
-2001-11-02 Richard M. Stallman <rms@gnu.org>
+2007-06-27 Richard Stallman <rms@gnu.org>
- * textprop.c (Fget_char_property): Doc fix.
+ * fileio.c (syms_of_fileio) <after-insert-file-functions>: Doc fix.
-2001-11-02 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-06-27 Juanma Barranquero <lekktu@gmail.com>
- * process.c (Fstart_process): Add usage to doc-string.
+ * buffer.c (syms_of_buffer) <selective-display>: Fix typo in docstring.
- * data.c (Fsetq_default): Ditto.
+2007-06-26 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * callint.c (Finteractive): Ditto.
+ * gmalloc.c [HAVE_GTK_AND_PTHREAD]: Check this after including config.h.
+ (_aligned_blocks_mutex) [USE_PTHREAD]: New variable.
+ (LOCK_ALIGNED_BLOCKS, UNLOCK_ALIGNED_BLOCKS): New macros.
+ (_free_internal, memalign): Use them.
+ (_malloc_mutex, _aligned_blocks_mutex) [USE_PTHREAD]:
+ Initialize to PTHREAD_MUTEX_INITIALIZER.
+ (malloc_initialize_1) [USE_PTHREAD]: Don't use recursive mutex.
+ (morecore_nolock): Rename from morecore. All uses changed.
+ Use only nolock versions of internal allocation functions.
+ (_malloc_internal_nolock, _realloc_internal_nolock)
+ (_free_internal_nolock): New functions created from
+ _malloc_internal, _realloc_internal, and _free_internal.
+ (_malloc_internal, _realloc_internal, _free_internal): Use them.
+ Copy hook value to automatic variable before its use.
+ (memalign): Copy hook value to automatic variable before its use.
-2001-11-01 Stefan Monnier <monnier@cs.yale.edu>
+2007-06-26 Kenichi Handa <handa@m17n.org>
- * macros.c: Don't include keymap.h any more.
+ * coding.c (Ffind_operation_coding_system): Docstring improved.
+ (syms_of_coding): Docstring of `file-coding-system-alist' improved.
-2001-11-01 Richard M. Stallman <rms@gnu.org>
+2007-06-25 David Kastrup <dak@gnu.org>
- * data.c (Fmake_local_variable): Doc fix.
+ * keymap.c (Fcurrent_active_maps): Add `position' argument.
+ (Fwhere_is_internal): Adjust call to `current-active-maps' to
+ cater for additional parameter.
- * eval.c (Frun_hooks, Frun_hook_with_args_until_failure): Doc fix.
- (Frun_hook_with_args_until_success, Frun_hook_with_args): Doc fix.
+ * keymap.h: Adjust number of parameters to `current-active-maps'.
- * keymap.c (Fdescribe_buffer_bindings): Print character property
- bindings along with or instead of the buffer local map.
- Make the overriding maps override what they should.
+ * doc.c (Fsubstitute_command_keys): Adjust call of
+ `current-active-maps'.
-2001-11-01 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-06-25 David Kastrup <dak@gnu.org>
- * window.c (grow_mini_window): Fix typo in comment.
+ * callint.c (Fcall_interactively): Make the parsing of interactive
+ specs somewhat more readable.
-2001-11-01 Gerd Moellmann <gerd@gnu.org>
+2007-06-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * xterm.c (x_scroll_bar_create): Check for width and height > 0.
- (XTset_vertical_scroll_bar): Likewise.
+ * macterm.c (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
+ to scroll bar gap also when bitmap fills fringe. Draw only foreground
+ if extended background has already been filled.
- * xfns.c (x_build_heuristic_mask): Use four_corners_best
- instead of IMAGE_BACKGROUND.
+2007-06-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * xfns.c (four_corners_best): Reindent.
+ * macgui.h (USE_CG_DRAWING): Don't require USE_ATSUI.
+ (USE_MAC_TOOLBAR): Require USE_CG_DRAWING.
- * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
- Handle :box so that it is possible to specify sexprs.
+ * macmenu.c (mac_dialog_modal_filter, Fx_popup_dialog) [MAC_OSX]:
+ Put special treatment for Fmessage_box, Fyes_or_no_p, and Fy_or_n_p
+ in #if 0 as it is not compatible with y-or-n-p-with-timeout.
+ (timer_check) [TARGET_API_MAC_CARBON]: Add extern.
+ [TARGET_API_MAC_CARBON] (mac_handle_dialog_event): Use QuitEventLoop
+ instead of QuitAppModalLoopForWindow. Consolidate QuitEventLoop calls.
+ (pop_down_dialog) [TARGET_API_MAC_CARBON]: New function.
+ [TARGET_API_MAC_CARBON] (create_and_show_dialog): Use it for unwind.
+ Run timers during dialog popup.
+ (Fmenu_or_popup_active_p) [TARGET_API_MAC_CARBON]: Use popup_activated.
-2001-10-31 Eli Zaretskii <eliz@is.elta.co.il>
+2007-06-21 Jason Rumney <jasonr@gnu.org>
- * s/hpux11.h: New file.
+ * image.c (convert_mono_to_color_image): Swap fore and background.
-2001-10-31 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-06-20 Jason Rumney <jasonr@gnu.org>
- * emacs.c (USAGE1): Show command line option --no-window-system
- instead of --no-windows in usage.
- (standard_args): Rename --no-windows to --no-window-system.
- (bug_reporting_address): Follow Emacs coding conventions.
+ * w32bdf.c (w32_BDF_to_x_font): Unmap memory when finished.
+ (w32_free_bdf_font): Unmap memory not handle.
- * eval.c (Fcommandp): Doc fix.
- Change doc-string comments to `new style' [w/`doc:' keyword].
+2007-06-20 Sam Steingold <sds@gnu.org>
- * frame.c (Fframe_live_p): Doc fix.
+ * gmalloc.c (__morecore): Fix the declaration to comply with the
+ definition.
- * buffer.c (selective-display-ellipses): Doc fix.
+2007-06-20 Juanma Barranquero <lekktu@gmail.com>
-2001-10-31 Gerd Moellmann <gerd@gnu.org>
+ * w32term.c (w32_delete_display): Remove leftover declaration.
+ (w32_define_cursor, w32_initialize): Make static.
- * lread.c (to_multibyte): Fix computation of new read_buffer_size.
+ * w32.c (_wsa_errlist): Fix typo in error message.
+ (init_environment): Ignore any environment variable from the
+ registry having a null value.
- * xfaces.c (realize_x_face): If C is not a single-byte character,
- set the face's colors_copied_bitwise_p instead of the defaulted_p
- members which have a different meaning.
- (free_face_colors): Do nothing for a face whose colors have been
- copied bitwise.
+2007-06-20 Glenn Morris <rgm@gnu.org>
- * dispextern.h (struct face) <colors_copied_bitwise_p>: New member.
+ * Makefile.in (LIBGIF): Default to -lgif.
-2001-10-31 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-06-17 Jason Rumney <jasonr@gnu.org>
- * marker.c, mocklisp.c: Change doc-string comments to `new style'
- [w/`doc:' keyword].
+ * w32menu.c (add_menu_item): Don't use multibyte string functions on
+ unicode strings.
-2001-10-31 Gerd Moellmann <gerd@gnu.org>
+2007-06-16 Juanma Barranquero <lekktu@gmail.com>
- * fns.c (require_unwind): Return Lisp_Object.
+ * xdisp.c (syms_of_xdisp) <auto-resize-tool-bars>:
+ Fix typo in docstring.
-2001-10-31 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-06-16 Eli Zaretskii <eliz@gnu.org>
- * keyboard.c (lucid-menu-bar-dirty-flag): Doc fix.
- (last-input-char): Revert doc-string to be the same as the
- doc-string of `last-input-event'.
+ * w32menu.c (add_menu_item): Escape `&' characters in menu items
+ and their keybindings.
- * xdisp.c: Fix typos in comments.
+2007-06-15 Chong Yidong <cyd@stupidchicken.com>
-2001-10-31 Gerd Moellmann <gerd@gnu.org>
+ * composite.c (update_compositions): Fix last fix.
- * window.c (grow_mini_window): Handle case that the root
- window is already smaller than the nominal mininum height.
+2007-06-14 Jason Rumney <jasonr@gnu.org>
-2001-10-30 Stefan Monnier <monnier@cs.yale.edu>
+ * w32.c (get_process_times_fn): New function pointer.
+ (globals_of_w32): Intialize it if present in kernel32.dll.
+ (w32_get_internal_run_time): New function.
- * emacs.c (main): Don't call keys_of_macros any more.
+ * editfns.c (Fget_internal_run_time) [WINDOWSNT]: Use it.
- * lisp.h (keys_of_macros): Remove.
+2007-06-14 Kenichi Handa <handa@etlken.m17n.org>
- * macros.c (keys_of_macros): Remove.
+ * composite.c (update_compositions): Check the validness of
+ compositions.
- * xfaces.c (Fface_attribute_relative_p): Declare args.
+2007-06-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-2001-10-30 Jason Rumney <jasonr@gnu.org>
+ * frame.h (struct frame) [MAC_OS]: New member external_tool_bar.
+ (FRAME_EXTERNAL_TOOL_BAR) [MAC_OS]: Use it.
- * w32fns.c (w32_to_x_charset): Increase size of XLFD charset buffer.
- (enum_font_cb2): Ignore fonts with vertical orientation.
+ * macfns.c (mac_window) [USE_MAC_TOOLBAR]: Set toolbar_win_gravity.
+ (x_set_tool_bar_lines) [USE_MAC_TOOLBAR]: Set FRAME_EXTERNAL_TOOL_BAR.
-2001-10-30 Richard M. Stallman <rms@gnu.org>
+ * macgui.h (USE_MAC_TOOLBAR): New define.
- * keyboard.c (Finput_pending_p): Doc fix.
+ * macmenu.c [TARGET_API_MAC_CARBON] (menu_target_item_handler):
+ Return immediately unless popup is activated.
-2001-10-30 Gerd Moellmann <gerd@gnu.org>
+ * macterm.c (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
+ background to scroll bar gap.
+ (x_scroll_bar_create) [MAC_OSX]: Set bar->fringe_extended_p.
+ (XTset_vertical_scroll_bar) [MAC_OSX]: Put leftmost/rightmost
+ scroll bars on frame edge. Check fringe background extension.
+ Don't clear extended fringe background area.
+ (TOOLBAR_IDENTIFIER, TOOLBAR_ICON_ITEM_IDENTIFIER)
+ (TOOLBAR_ITEM_COMMAND_ID_OFFSET, TOOLBAR_ITEM_COMMAND_ID_P)
+ (TOOLBAR_ITEM_COMMAND_ID_VALUE, TOOLBAR_ITEM_MAKE_COMMAND_ID):
+ [USE_MAC_TOOLBAR]: New macros.
+ (mac_move_window_with_gravity, mac_get_window_origin_with_gravity)
+ (mac_handle_toolbar_event, mac_image_spec_to_cg_image)
+ (mac_create_frame_tool_bar, update_frame_tool_bar, free_frame_tool_bar)
+ (mac_tool_bar_note_mouse_movement, mac_handle_toolbar_command_event)
+ [USE_MAC_TOOLBAR]: New functions.
+ (mac_handle_window_event) [USE_MAC_TOOLBAR]: Reposition window
+ manually if previous repositioning has failed.
+ (mac_handle_keyboard_event): Use precomputed event kind.
+ (XTread_socket) [USE_MAC_TOOLBAR]: Handle click in structure region
+ as tool bar item click. Handle mouse movement over tool bar items.
- * xterm.c (x_after_update_window_line): Don't run the code
- clearing in borders for rows whose visible height is 0.
+ * macterm.h (struct mac_output) [USE_MAC_TOOLBAR]: New member
+ toolbar_win_gravity.
+ (struct scroll_bar) [MAC_OSX]: New member fringe_extended_p.
+ (update_frame_tool_bar, free_frame_tool_bar) [USE_MAC_TOOLBAR]:
+ Add externs.
- * xdisp.c (clear_garbaged_frames): Redraw the frame only if its
- resized_p flag is set. If not set, use the much less flickering
- method previously used.
+ * xdisp.c (update_tool_bar, redisplay_tool_bar, redisplay_window)
+ [USE_MAC_TOOLBAR]: Sync with GTK+ tool bar display.
- * dispnew.c (change_frame_size_1): Set frame's resized_p.
+2007-06-14 Chong Yidong <cyd@stupidchicken.com>
- * frame.h (struct frame) <resized_p>: New member.
+ * image.c (search_image_cache): Remove unused variable.
- * lread.c (to_multibyte): Ensure read_buffer is at least twice
- as large as the number of bytes to convert.
+2007-06-13 Chong Yidong <cyd@stupidchicken.com>
- * lread.c (to_multibyte): New function.
- (read1): Use it.
+ * xfns.c, xmenu.c: Link to xaw3d if available.
-2001-10-30 Eli Zaretskii <eliz@is.elta.co.il>
+2007-06-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * msdos.h (FRAME_LINE_HEIGHT): Define (it's used by xmenu.c).
+ * dispextern.h (struct image) [HAVE_WINDOW_SYSTEM]: New members
+ frame_foreground and frame_background.
-2001-10-30 Gerd Moellmann <gerd@gnu.org>
+ * image.c (lookup_image): Save frame foreground and background colors.
+ (search_image_cache): Check if saved and current frame colors match.
- * xterm.c (x_draw_relief_rect): Correct bottom relief by 1 pixel.
- (x_set_glyph_string_background_width): Set extends_to_end_of_line_p
- if the row's fill_line_p is set and drawing the last glyph with
- DRAW_IMAGE_{RAISED,SUNKEN}.
+2007-06-12 Stefan Monnier <monnier@iro.umontreal.ca>
- * xdisp.c (clear_garbaged_frames): Call Fredraw_frame.
+ * regex.c (regex_compile): Remove the `regnum' counter.
+ Use bufp->re_nsub instead. Add support for \(?N:RE\).
-2001-10-29 Stefan Monnier <monnier@cs.yale.edu>
+2007-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
- * xmenu.c: Include coding.h and charset.h.
- (Fx_popup_menu): Use FRAME_PTR and FRAME_FONT and FRAME_LINE_HEIGHT.
- (Fx_popup_dialog): Use FRAME_PTR and enum scroll_bar_part.
- (single_submenu, xmenu_show): Use ENCODE_SYSTEM.
- Explicitly set wv->help. Use `TRUE' rather than `True'.
- (menu_help_callback): Use empty_string.
+ * term.c: Include intervals.h to declare Fget_text_property.
- * w32menu.c (Fx_popup_menu): Explicitly init f, xpos, and ypos.
- (Fx_popup_dialog): Explicitly init f.
- (w32_menu_display_help): Use empty_string.
+2007-06-10 Jason Rumney <jasonr@gnu.org>
-2001-10-29 Richard M. Stallman <rms@gnu.org>
+ * w32fns.c (Fx_file_dialog): Take size from struct not pointer.
- * fns.c (Frequire): Detect recursive try to require the same
- feature 3 or more levels deep, and get error.
- (require_unwind): New subroutine.
- (require_nesting_list): New variable.
- (syms_of_fns): Init and staticpro it.
+2007-06-08 Juanma Barranquero <lekktu@gmail.com>
- * print.c (print_object): Clarify indication of insertion type.
+ * callint.c (Fcall_interactively):
+ * editfns.c (Fdelete_and_extract_region):
+ * fileio.c (Fread_file_name):
+ * fns.c (Fmapconcat):
+ * keyboard.c (cmd_error_internal):
+ * keymap.c (Fkey_description):
+ * lread.c (openp):
+ * minibuf.c (read_minibuf):
+ * search.c (wordify):
+ * sunfns.c (sel_read):
+ * xdisp.c (Fformat_mode_line, syms_of_xdisp):
+ * xfns.c (x_default_scroll_bar_color_parameter):
+ * xmenu.c (menu_help_callback):
+ * xselect.c (Fx_get_atom_name):
+ * xterm.c (x_term_init): Use empty_unibyte_string.
-2001-10-29 Eli Zaretskii <eliz@is.elta.co.il>
+2007-06-08 Dmitry Antipov <dmantipov@yandex.ru> (tiny change)
- * coding.c (syms_of_coding): Document that locale-coding-system is
- used for decoding input on X.
+ * alloc.c (init_strings): Initialize canonical empty strings.
+ (make_uninit_string, make_uninit_multibyte_string): Return appropriate
+ canonical empty string when the requested size is 0.
- * window.c (Fscroll_left, Fscroll_right): Doc fix.
+ * emacs.c (empty_unibyte_string): Rename from empty_string.
+ (empty_multibyte_string): New canonical empty string.
+ (syms_of_emacs): Don't initialize empty_string.
-2001-10-29 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * lisp.h (STRING_SET_UNIBYTE): Return the canonical empty unibyte
+ string, if appropriate.
+ (empty_unibyte_string, empty_multibyte_string): New externs.
+ (empty_string): Remove extern.
- * keyboard.c (Finput_pending_p): Fix typo in doc-string.
- (echo-area-clear-hook): Properly DEFVAR_LISP and staticpro it.
+ * lread.c (syms_of_lread): Use empty_unibyte_string.
-2001-10-29 Gerd Moellmann <gerd@gnu.org>
+2007-06-07 Jason Rumney <jasonr@gnu.org>
- * xterm.c (x_display_and_set_cursor): If cursor_in_echo_area,
- use NO_CURSOR if cursor_in_non_selected_windows is false.
+ * s/ms-w32.h: Don't define HAVE_TZNAME.
- * xfaces.c (Fface_font): Use UNSPECIFIEDP instead of NILP for
- the slant attribute if FRAME is t.
+ * editfns.c (Fcurrent_time_zone): Remove hack for Japanese Windows.
- * xfns.c (x_set_internal_border_width): Set frame garbaged
- when X window doesn't exist yet.
+2007-06-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * xterm.c (x_after_update_window_line): Clear internal border
- in different circumstances.
+ * mac.c (xrm_get_preference_database): Remove BLOCK_INPUT.
- * xterm.c (XTread_socket) <KeyPress>: Don't use
- STRING_CHAR_AND_LENGTH if nchars == nbytes. From Kenichi Handa
- <handa@etl.go.jp>.
+ * macfns.c (mac_get_window_bounds): Move extern to macterm.h.
+ (compute_tip_xy) [TARGET_API_MAC_CARBON]: Use GetGlobalMouse.
-2001-10-28 Eli Zaretskii <eliz@is.elta.co.il>
+ * macmenu.c [TARGET_API_MAC_CARBON] (menu_target_item_handler):
+ Don't call next handler.
+ [TARGET_API_MAC_CARBON] (install_menu_target_item_handler):
+ Remove argument. Install handler to application.
+ (set_frame_menubar): Don't change deep_p.
+ (mac_menu_show): Use FRAME_OUTER_TO_INNER_DIFF_X and
+ FRAME_OUTER_TO_INNER_DIFF_Y.
+ (DIALOG_BUTTON_COMMAND_ID_OFFSET, DIALOG_BUTTON_COMMAND_ID_P)
+ (DIALOG_BUTTON_COMMAND_ID_VALUE, DIALOG_BUTTON_MAKE_COMMAND_ID)
+ [HAVE_DIALOGS]: New macros.
+ [HAVE_DIALOGS] (mac_handle_dialog_event, create_and_show_dialog):
+ Use them.
+ (fill_menubar) [TARGET_API_MAC_CARBON]: Use CFString.
+
+ * macselect.c [MAC_OSX] (install_service_handler): Rename from
+ init_service_handler. All callers changed. Return OSStatus value.
+
+ * macterm.c (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
+ All callers changed so as not to call SetPortWindowPort.
+ (mac_begin_cg_clip) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw.
+ (mac_draw_image_string_atsui) [USE_ATSUI]: New function created from
+ mac_draw_string_common.
+ (mac_draw_image_string_qd): Likewise.
+ (mac_draw_string_common): Use them. Add INLINE.
+ (XTmouse_position, x_scroll_bar_report_motion) [TARGET_API_MAC_CARBON]:
+ Use FRAME_OUTER_TO_INNER_DIFF_X, FRAME_OUTER_TO_INNER_DIFF_Y, and
+ GetGlobalMouse.
+ (x_set_mouse_pixel_position) [MAC_OSX]: Use FRAME_OUTER_TO_INNER_DIFF_X
+ and FRAME_OUTER_TO_INNER_DIFF_Y.
+ [TARGET_API_MAC_CARBON] (mac_handle_mouse_event): Likewise.
+ [USE_MAC_TSM] (mac_handle_text_input_event): Likewise.
+ (x_make_frame_visible) [TARGET_API_MAC_CARBON]: Move code for
+ repositioning window to mac_handle_window_event.
+ (x_make_frame_invisible) [TARGET_API_MAC_CARBON]: Move code for
+ saving window location to mac_handle_window_event
+ [USE_MAC_FONT_PANEL] (mac_show_hide_font_panel): Install handler here.
+ (install_menu_target_item_handler): Remove argument in extern.
+ [TARGET_API_MAC_CARBON] (mac_event_to_emacs_modifiers):
+ Also accept command events.
+ (do_keystroke): New function created from XTread_socket.
+ (init_command_handler): Remove functions.
+ [TARGET_API_MAC_CARBON] (mac_handle_window_event): Reposition window
+ and save window location by kEventWindowShowing and kEventWindowHiding
+ handlers here. Don't call next handler for window state change and
+ focus events.
+ (mac_handle_application_event, mac_handle_keyboard_event)
+ [TARGET_API_MAC_CARBON]: New functions.
+ (install_window_handler) [TARGET_API_MAC_CARBON]: Register handlers for
+ kEventWindowShowing and kEventWindowHiding events. Move installation
+ of mouse, font, text input and menu target item handlers to
+ install_application_handler.
+ (install_application_handler) [TARGET_API_MAC_CARBON]: New function.
+ (mac_handle_cg_display_reconfig) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
+ New function.
+ (init_dm_notification_handler) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
+ Register it.
+ (XTread_socket) [TARGET_API_MAC_CARBON]:
+ Consolidate SendEventToEventTarget calls.
+ Use FRAME_OUTER_TO_INNER_DIFF_X and FRAME_OUTER_TO_INNER_DIFF_Y.
+ Move application activation handler to mac_handle_application_event.
+ Move keyboard handler to mac_handle_keyboard_event.
+ (XTread_socket) [!TARGET_API_MAC_CARBON]: Use do_keystroke.
+ (mac_initialize) [TARGET_API_MAC_CARBON]: Don't call
+ init_command_handler. Call install_application_handler.
- * m/ibms390.h: New file. From Adam Thornton
- <athornton@sinenomine.net>.
+ * macterm.h (mac_get_window_bounds): Move extern from macfns.c.
+ (FRAME_OUTER_TO_INNER_DIFF_X, FRAME_OUTER_TO_INNER_DIFF_Y): New macros.
-2001-10-28 Gerd Moellmann <gerd@gnu.org>
+2007-06-07 Glenn Morris <rgm@gnu.org>
- * xfns.c (x_build_heuristic_mask): Use x_alloc_image_color.
+ * emacs.c (main): Use `emacs-copyright' in --version output.
- * xfns.c (x_build_heuristic_mask): Fix a bug not incrementing
- a loop counter.
+2007-06-06 Chong Yidong <cyd@stupidchicken.com>
-2001-10-28 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * image.c (xpm_load): Remove spurious call to xpm_init_color_cache.
- * emacs.c: Use argv[0] instead of "emacs" when -t was specified.
+2007-06-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * keyboard.c: Change doc-string comments to `new style' [w/`doc:'
- keyword].
- Fix typos in comments.
+ * macfns.c (mac_window): Replace WindowPtr with WindowRef.
- * emacs.c (bug_reporting_address): New function.
- Use it when displaying usage message.
+ * macgui.h: Replace WindowPtr with WindowRef.
- * minibuf.c (read_minibuf): Remove unused external declaration of
- variable `Qread_only'.
+ * macmenu.c: Replace MenuHandle and GetMenuHandle with MenuRef and
+ GetMenuRef, respectively. Replace WindowPtr with WindowRef.
+ Replace ControlHandle with ControlRef.
+ (install_menu_quit_handler): Rename arg MENU_HANDLE to ROOT_MENU.
- * keymap.c (access_keymap): Remove unused variable `charset'.
+ * macterm.c: Replace MenuHandle and GetMenuHandle with MenuRef and
+ GetMenuRef, respectively. Replace WindowPtr with WindowRef.
+ Replace ControlHandle with ControlRef.
+ (USE_CARBON_EVENTS): Remove. Use TARGET_API_MAC_CARBON instead.
+ [MAC_OS8] (do_get_menus): Rename variable `menu_handle' to `menu'.
-2001-10-28 Miles Bader <miles@gnu.org>
+ * macterm.h (struct scroll_bar): Rename member control_handle_low
+ and control_handle_high to control_ref_low and control_ref_high.
+ All uses changed.
+ (SCROLL_BAR_CONTROL_REF, SET_SCROLL_BAR_CONTROL_REF): Rename from
+ SCROLL_BAR_CONTROL_HANDLE and SET_SCROLL_BAR_CONTROL_HANDLE,
+ respectively. All uses changed.
+ (XCreatePixmap, XCreatePixmapFromBitmapData, XSetWindowBackground)
+ (install_window_handler, remove_window_handler): Replace WindowPtr
+ with WindowRef in externs.
- * xfaces.c (merge_face_heights): Handle TO being relative as well.
- Remove #ifdef'd-out code.
- (Fface_attribute_relative_p, Fmerge_face_attribute): New functions.
- (syms_of_xfaces): Initialize them.
+2007-06-05 Juanma Barranquero <lekktu@gmail.com>
-2001-10-27 Jason Rumney <jasonr@gnu.org>
+ * xfaces.c (Finternal_lisp_face_p): Signal error for face alias loops.
- * w32fns.c (w32_wnd_proc) <WM_KILLFOCUS>: Destroy the system caret.
- <WM_EMACS_DESTROY_CARET, WM_EMACS_TRACK_CARET>: Track cursor
- position using the system caret.
+2007-06-03 Nick Roberts <nickrob@snap.net.nz>
- * w32term.c (w32_system_caret_hwnd, w32_system_caret_width)
- (w32_system_caret_height, w32_system_caret_x)
- (w32_system_caret_y): New variables for tracking system caret.
- (w32_initialize): Initialize them.
- (x_display_and_set_cursor): Make system caret follow the active cursor.
+ * keyboard.c (discard_mouse_events): Add GPM_CLICK_EVENT case.
- * w32term.h (WM_EMACS_TRACK_CARET, WM_EMACS_DESTROY_CARET):
- New messages types.
+ * frame.c (Fmouse_position, Fmouse_pixel_position):
+ Condition on HAVE_GPM too.
- * w32term.c (note_mouse_highlight): Clear old help_echo.
+ * term.c (term_mouse_highlight): Remove unused variables.
+ (Fterm_open_connection): Set gpm_zerobased to 1.
+ (term_mouse_movement, term_mouse_click, handle_one_term_event):
+ Use zero based co-ordinates.
+ (handle_one_term_event): Report a drag as mouse movement too.
-2001-10-27 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * Makefile.in (MOUSE_SUPPORT): Define for HAVE_GPM.
- * xterm.c: Fix typo in a comment.
+2007-06-03 Chong Yidong <cyd@stupidchicken.com>
- * emacs.c: Fix typos in comments.
- Remove unnecessary spaces.
- Change doc-string comments to `new style' [w/`doc:' keyword].
- (USAGE2): Fix typos in usage string.
+ * image.c (search_image_cache): New function. Require background
+ color match if background color is unspecified in the image spec.
+ (uncache_image, lookup_image): Use it.
- * xterm.c: Fix typo in a comment.
+2007-06-01 Juanma Barranquero <lekktu@gmail.com>
- * lisp.h (gdb_lisp_params): Remove code in #if 0 which is now in
- emacs.c.
+ * window.c (Fshrink_window): Reflow docstring.
-2001-10-27 Gerd Moellmann <gerd@gnu.org>
+2007-06-02 Chong Yidong <cyd@stupidchicken.com>
- * xdisp.c (move_it_vertically_backward): Use 2/3 line_height
- instead of 1/2 line_height in the heuristic for skipping
- farther backward when target_y was not reached.
+ * Version 22.1 released.
- * sound.c (sound_perror): Unblock SIGIO, turn on atimers.
- Display errno only if non-zero.
- (sound_warning): New function.
- (vox_configure): Don't treat failing to set sample rate as error.
- (various places): Improve error messages.
+2007-06-01 Richard Stallman <rms@gnu.org>
-2001-10-26 Eli Zaretskii <eliz@is.elta.co.il>
+ * xfns.c (x_encode_text): Add GCPRO.
- * fileio.c (Faccess_file): Run the argument filename through
- Fexpand_file_name, before using it.
+2007-06-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * dispnew.c (syms_of_display) <visible-bell>: Add a reference to
- ring-bell-function. Suggested by Alf-Ivar Holm <alfh@ifi.uio.no>
+ * xfns.c (x_set_name_internal): Save encoded name before
+ x_encode_text in case string data is relocated.
-2001-10-26 Gerd Moellmann <gerd@gnu.org>
+2007-05-31 Richard Stallman <rms@gnu.org>
- * insdel.c (insert_1_both): Do nothing if NCHARS == 0.
+ * buffer.c (syms_of_buffer): Doc fix.
- * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
- Fix clearing in the case of scroll bars on the right.
+2007-05-30 Nick Roberts <nickrob@snap.net.nz>
-2001-10-26 Juanma Barranquero <lektu@terra.es>
+ * sysdep.c (init_sys_modes): Add rather than replace with
+ O_NONBLOCK.
- * w32gui.h (XImage): Add a dummy typedef.
+ * frame.c [HAVE_GPM] (Fset_mouse_pixel_position): Add call to
+ term_mouse_moveto.
-2001-10-26 Gerd Moellmann <gerd@gnu.org>
+ * termhooks.h (term_mouse_moveto): New extern.
- * xfns.c (XScreenNumberOfScreen): Fix struct to pointer comparison.
+ * term.c (mouse_face_window): Rename...
+ (Qmouse_face_window): ...to this.
+ (term_show_mouse_face, term_clear_mouse_face)
+ (term_mouse_highlight): Use Qmouse_face_window.
+ (term_mouse_moveto): New function.
+ (term_mouse_position): Make it work.
+ (syms_of_term): Uncomment assignment to mouse_position_hook.
+ Staticpro Qmouse_face_window.
-2001-10-25 Eli Zaretskii <eliz@is.elta.co.il>
+2007-05-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * frame.c (Fframe_parameter): Fix last change.
+ * xdisp.c (redisplay_internal): Bind inhibit-point-motion-hooks to t
+ around current_column call.
- * fileio.c: Revert last change (which removed old commented-out
- version of expand-file-name). Add a comment that explains why
- this old version should not be removed.
+2007-05-26 Dan Nicolaescu <dann@ics.uci.edu>
-2001-10-25 Gerd Moellmann <gerd@gnu.org>
+ * xfaces.c (syms_of_xfaces): Delete stray semicolon.
+ * xdisp.c (next_element_from_buffer):
+ * window.c (delete_window):
+ * term.c (term_mouse_highlight):
+ * msdos.c (getdefdir):
+ * macterm.c (mac_create_bitmap_from_bitmap_data)
+ (init_font_name_table):
+ * fns.c (Fsxhash):
+ * data.c (Fmake_local_variable):
+ * ccl.c (ccl_driver): Likewise.
- * frame.c (Fframe_parameter): Fix a bug whereby some
- ``artificial'' frame parameters, like `minibuffer' were not
- obtained by calling Fframe_parameters.
+2007-05-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * xterm.c (show_mouse_face): Clean up. Recognize overwritten
- cursor differently.
+ * macterm.c [USE_CARBON_EVENTS] (mac_handle_window_event):
+ Call mac_wakeup_from_rne on window size change.
- * xdisp.c (move_it_vertically_backward): Compute line height
- differently. Add heuristic to try to be more compatible to 20.x.
+2007-05-25 Chong Yidong <cyd@stupidchicken.com>
-2001-10-25 Stefan Monnier <monnier@cs.yale.edu>
+ * image.c (uncache_image): Fix typo.
- * lisp.h (make_fixnum_or_float): Coerce double to int explicitly.
+2007-05-23 Johannes Weiner <hannes@saeurebad.de> (tiny change)
- * editfns.c (text_property_stickiness): Fix Lisp_Object used as
- boolean.
+ * keyboard.c (make_lispy_movement): Condition on HAVE_GPM too.
-2001-10-25 Miles Bader <miles@gnu.org>
+2007-05-22 Richard Stallman <rms@gnu.org>
- * xfns.c (png_load): Make sure SPECIFIED_BG is a string.
- BG is a pointer to a structure, not a structure.
- (gif_format, png_format): Add missing commas.
+ * xterm.c (x_connection_closed): Remove NO_RETURN.
-2001-10-24 Richard M. Stallman <rms@gnu.org>
+2007-05-22 Martin Rudalics <rudalics@gmx.at>
- * xfaces.c (Fface_attributes_as_vector): New function.
- (syms_of_xfaces): Defsubr it.
+ * syntax.c (scan_words): Fix arg to UPDATE_SYNTAX_TABLE_BACKWARD.
-2001-10-24 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-05-21 Chong Yidong <cyd@stupidchicken.com>
- * dispnew.c (sync_window_with_frame_matrix_rows): Remove unused
- variable `area'.
+ * image.c (uncache_image): New function.
+ (Fimage_refresh): New function.
-2001-10-25 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-05-20 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
- * search.c (scan_newline): Remove unused variable `selective_display'.
+ * Makefile.in: Move GPM check outside HAVE_X_WINDOWS.
-2001-10-25 Miles Bader <miles@gnu.org>
+2007-05-20 Nick Roberts <nickrob@snap.net.nz>
- * dispextern.h (struct image): Add `background',
- `background_valid', and `background_transparent' fields.
- (image_background, image_background_transparent): New declarations.
- (IMAGE_BACKGROUND, IMAGE_BACKGROUND_TRANSPARENT): New macros.
- * xfns.c (image_background, image_background_transparent)
- (four_corners_best): New functions.
- (xpm_format, png_format, jpeg_format, tiff_format, gif_format)
- (gs_format): Add `:background' entry.
- (lookup_image): Set IMG's background color if specified.
- (pbm_load, xbm_load_image, png_load): Set IMG's background field
- when appropriate.
- (x_clear_image_1): Reset `background_valid' and
- `background_transparent_valid' fields.
- (x_build_heuristic_mask): Use IMAGE_BACKGROUND instead of
- calculating it here. Set IMG's background_transparent field.
- (enum xpm_keyword_index): Add XPM_BACKGROUND.
- (enum png_keyword_index): Add PNG_BACKGROUND.
- (enum jpeg_keyword_index): Add JPEG_BACKGROUND.
- (enum tiff_keyword_index): Add TIFF_BACKGROUND.
- (enum gif_keyword_index): Add GIF_BACKGROUND.
- (enum gs_keyword_index): Add GS_BACKGROUND.
- (pbm_load, png_load, jpeg_load, tiff_load, gif_load):
- Pre-calculate image background color where necessary.
- * xterm.c (x_setup_relief_colors): Use `IMAGE_BACKGROUND' and
- `IMAGE_BACKGROUND_TRANSPARENT' to calculate the correct background
- color to use for image glyph reliefs.
+ * config.in, keyboard.c, Makefile.in, sysdep.c, term.c,
+ * termhooks.h: Use HAVE_GPM instead of HAVE_GPM_H.
-2001-10-24 Gerd Moellmann <gerd@gnu.org>
+2007-05-20 Nick Roberts <nickrob@snap.net.nz>
- * xterm.c (x_draw_glyphs): Don't check for cursor overwriting
- in full-width rows.
+ * keyboard.c (make_lispy_event): Make case GPM_CLICK_EVENT
+ conditional on [HAVE_GPM_H].
- * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
- Fix clearing of area not covered by scroll bar.
+2007-05-19 Stefan Monnier <monnier@iro.umontreal.ca>
-2001-10-24 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+ * syntax.c (skip_chars): Update syntax-table only after we checked that
+ the new location is valid.
- * xterm.c (x_insert_glyphs): Remove unused variables `real_end'
- and `real_start'.
- (x_draw_image_foreground): Remove unused variables `mask' and `xgcv'.
- (glyph_rect): Remove unused variable `area'.
+2007-05-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
-2001-10-24 Gerd Moellmann <gerd@gnu.org>
+ * macterm.c (x_calc_absolute_position): Add BLOCK_INPUT around
+ mac_get_window_bounds.
- * xdisp.c: Change #ifdef GLYPH_DEBUG to #if.
+2007-05-20 Nick Roberts <nickrob@snap.net.nz>
- * xdisp.c (try_window_reusing_current_matrix): Use row_containing_pos.
- (row_containing_pos): Take additional argument DY.
- Treat rows ending in middle of char differently.
- (display_line): Handle tabs on window systems differently.
+ * Makefile.in (LIBGPM): Allow it to be set from configure.
+ If set then link Emacs with it.
- * xterm.c, w32term.c (fast_find_position): Call row_containing_pos
- with additional argument.
+ * config.in: Regenerate.
- * dispextern.h (row_containing_pos): Adjust prototype.
+ * lisp.h (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
+ New externs.
+
+ * termhooks.h [HAVE_GPM_H] (enum event_kind): Add GPM_CLICK_EVENT.
+ Include gpm.h.
+ (handle_one_term_event, term_gpm): New externs.
+
+ * sysdep.c [HAVE_GPM_H] (init_sys_modes): Make gpm_fd nonblocking
+ and allow it to be interrupted by SIGIO.
+
+ * process.c (gpm_wait_mask, max_gpm_desc): New variables.
+ (wait_reading_process_output): Wait on gpm_fd too.
+ (add_gpm_wait_descriptor, delete_gpm_wait_descriptor)): New functions.
+ (add_gpm_wait_descriptor_called_flag): New variable.
+ (delete_keyboard_wait_descriptor): Check gpm_wait_mask.
+
+ * keyboard.c [HAVE_GPM_H] (Qmouse_fixup_help_message)
+ (make_lispy_movement, tracking_off, Ftrack_mouse, some_mouse_moved)
+ (show_help_echo, readable_events, kbd_buffer_get_event, init_keyboard):
+ Extend HAVE_MOUSE ifdefs to HAVE_GPM_H.
+ (make_lispy_event): Add case GPM_CLICK_EVENT.
+ (read_avail_input): Handle mouse input.
+
+ * term.c (write_glyphs_with_face): New function.
+ [HAVE_GPM_H]: Include buffer.h, sys/fcntl.h.
+ (mouse_face_beg_row, mouse_face_beg_col, mouse_face_end_row)
+ (mouse_face_end_col, mouse_face_past_end, mouse_face_window)
+ (mouse_face_face_id, term_gpm, pos_x, pos_y)
+ (last_mouse_x, last_mouse_y): New variables.
+ (term_show_mouse_face, term_clear_mouse_face, fast_find_position)
+ (term_mouse_highlight, term_mouse_movement, term_mouse_position)
+ (term_mouse_click, handle_one_term_event, Fterm_open_connection)
+ (Fterm_close_connection): New functions.
+ (term_init): Initialise mouse_face_window.
+
+2007-05-19 Chong Yidong <cyd@stupidchicken.com>
- * xdisp.c (inhibit_try_window_id, inhibit_try_window_reusing)
- (inhibit_try_cursor_movement) [GLYPH_DEBUG]: New variables.
- (try_window_id, try_window_reusing_current_matrix)
- (try_cursor_movement) [GLYPH_DEBUG]: Don't run if inhibited.
- (syms_of_xdisp) [GLYPH_DEBUG]: DEFVAR_BOOL the variables.
+ * xdisp.c (redisplay_window): If first window line is a
+ continuation line, recompute the new window start instead of
+ recentering.
-2001-10-24 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-05-18 Glenn Morris <rgm@gnu.org>
- * xmenu.c: Spell the name of Emacs properly (GNU Emacs instead of
- gnuemacs).
- (HAVE_BOXES): Fix typo in comment.
- (push_menu_pane): Fix typo in comment.
+ * m/alpha.h (ORDINARY_LINK): No longer define on OpenBSD.
+ Suggested by Alfred M. Szmidt <ams@gnu.org>.
- * xdisp.c (display_prop_string_p): Remove unused local declaration
- of `Qwhen'.
- (single_display_prop_string_p): Remove unused local declarations
- of `Qwhen' and `Qmargin'.
- (string_buffer_position): Remove unused variable `around'.
- (store_frame_title): Remove unused variable `width'.
+2007-05-17 Glenn Morris <rgm@gnu.org>
- * window.c: Don't define max.
- (coordinates_in_window): Remove unused variable `uy'.
+ * m/macppc.h (ORDINARY_LINK): No longer define on OpenBSD.
- * widget.c: Don't define max.
+2007-05-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * process.c: Don't define max.
- (create_process): Remove unused variable `buffer'.
+ * macterm.c [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
+ dead key repeat and up events.
-2001-10-23 Gerd Moellmann <gerd@gnu.org>
+2007-05-14 Chong Yidong <cyd@stupidchicken.com>
- * xfaces.c (Finternal_set_lisp_face_attribute): Fix compilation error.
+ * image.c (pbm_load): Check image size for monochrome pbm.
-2001-10-23 Eli Zaretskii <eliz@is.elta.co.il>
+2007-05-13 Chong Yidong <cyd@stupidchicken.com>
- * xfaces.c (Finternal_set_lisp_face_attribute)
- [HAVE_WINDOW_SYSTEM]: Don't do anything for QCfont unless the
- frame is on a windowed display.
+ * xterm.c (XTread_socket): Revert last change.
-2001-10-23 Gerd Moellmann <gerd@gnu.org>
+2007-05-12 Chong Yidong <cyd@stupidchicken.com>
- * dispnew.c (sync_window_with_frame_matrix_rows):
- Fix handling of windows which aren't full-width, fix handling
- of marginal areas.
+ * image.c (pbm_load): Correctly check image size for greyscale pbm.
- * lread.c (syms_of_lread) <recursive-load-depth-limit>: Raise to 50.
+ * xterm.c (XTread_socket): Yet Another Uncaught X Error Crash (YAUXEC).
-2001-10-23 Andreas Schwab <schwab@suse.de>
+2007-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
- * m/macppc.h [LINUX]: Undef LD_SWITCH_SYSTEM_TEMACS and override
- LD_SWITCH_MACHINE_TEMACS with "-Xlinker -znocombreloc".
+ * editfns.c (Ftranspose_regions): Yet another int/Lisp_Object
+ mixup (YAILOM).
-2001-10-23 Gerd Moellmann <gerd@gnu.org>
+2007-05-07 Andreas Schwab <schwab@suse.de>
- * xterm.c (x_draw_glyphs): Remove parameters READ_START and
- REAL_END. Notice if cursor gets overwritten.
- (notice_overwritten_cursor): Take X positions as parameters.
- (x_draw_phys_cursor_glyph): Save state of w->phys_cursor_on_p
- around call to x_draw_glyphs.
+ * keymap.c (Flookup_key): Fix typo in last change.
-2001-10-23 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
- * syntax.c (modify-syntax-entry): Fix argument names (use CHAR
- instead of C) and usage.
+ * keymap.c (Fdefine_key, Flookup_key): Only do the 0x80->meta_modifier
+ mapping for unibyte strings.
- * editfns.c (char-to-string): Fix argument names (use CHAR instead
- of C) and usage.
+2007-05-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * xfns.c (Fx_show_tip): Remove unused variables `buffer', `top',
- `left', `max_width' and `max_height'.
+ * macmenu.c (mac_dialog_show): Apply 2007-04-27 change for xmenu.c.
+ (Fx_popup_dialog) [MAC_OSX]: Likewise.
-2001-10-23 Gerd Moellmann <gerd@gnu.org>
+2007-04-29 Richard Stallman <rms@gnu.org>
- * xdisp.c (display_line): For a tab continued to the next line,
- set row's ends_in_middle_of_char_p.
+ * insdel.c (replace_range): For undo, record insertion first.
-2001-10-22 Gerd Moellmann <gerd@gnu.org>
+2007-04-29 Andreas Schwab <schwab@suse.de>
- * xdisp.c (display_line): Fix computation of continuation lines
- width for TABs.
+ * lisp.h (VECSIZE): Use OFFSETOF.
-2001-10-22 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
+2007-04-29 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * xdisp.c (build_desired_tool_bar_string): Remove unused variable
- `Qlaplace'.
+ * xdisp.c (try_window_reusing_current_matrix): Fix number of
+ disabled lines.
- * fileio.c: Remove unused code.
+2007-04-28 Richard Stallman <rms@gnu.org>
-2001-10-22 Miles Bader <miles@gnu.org>
+ * lread.c (read_escape): In a string, \s is always space.
- * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
- (DEFVAR_INT, DEFVAR_PER_BUFFER, DEFVAR_KBOARD):
- Remove `DOC_STRINGS_IN_COMMENTS' cases.
+2007-04-27 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
-2001-10-21 Jason Rumney <jasonr@gnu.org>
+ * xmenu.c (xdialog_show): Call Fredisplay before showing the dialog.
- * w32term.c (x_erase_phys_cursor): Remove inverse_p again.
+ * gtkutil.c (xg_update_menubar, create_menus): Create empty
+ submenu for menu bar items.
-2001-10-21 Eli Zaretskii <eliz@is.elta.co.il>
-
- * mocklisp.c (Fml_if, Fml_provide_prefix_argument)
- (Finsert_string): Avoid the multi-line string literals warning.
-
-2001-10-22 Miles Bader <miles@gnu.org>
-
- * doc.c (Vhelp_manyarg_func_alist): Variable removed.
- (Fdocumentation): Don't use it.
- (syms_of_doc): Don't initialize it.
-
- * keyboard.c (Ftrack_mouse): Add usage: string to doc string.
- * print.c (Fwith_output_to_temp_buffer): Likewise.
- * window.c (Fsave_window_excursion): Likewise.
- * editfns.c (Fsave_excursion, Fsave_current_buffer)
- (Fsave_restriction): Likewise.
- * eval.c (Frun_hooks, Frun_hook_with_args)
- (Frun_hook_with_args_until_failure)
- (Frun_hook_with_args_until_success, Ffuncall, For, Fand, Fif)
- (Fcond, Fprogn, Fprog1, Fprog2, Fsetq, Fquote, Ffunction, Fdefun)
- (Fdefmacro, Fdefvar, Fdefconst, FletX, Flet, Fwhile, Fcatch)
- (Funwind_protect, Fcondition_case): Likewise.
- * coding.c (Ffind_operation_coding_system): Likewise.
- * keyboard.c (Ftrack_mouse): Likewise.
-
-2001-10-21 Miles Bader <miles@gnu.org>
-
- * fns.c (Fappend, Fconcat, Fvconcat, Fnconc, Fwidget_apply)
- (Fmake_hash_table): Add usage: string to doc string.
- * editfns.c (Finsert, Finsert_and_inherit, Finsert_before_markers)
- (Fmessage, Fmessage_box, Fmessage_or_box, Fpropertize, Fformat)
- (Fencode_time, Finsert_and_inherit_before_markers): Likewise.
- * mocklisp.c (Finsert_string, Fml_if, Fml_provide_prefix_argument)
- (Fml_prefix_argument_loop): Likewise.
-
-2001-10-21 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * fileio.c (Finsert_file_contents): Remove unused variable `gap_size'.
-
- * sysdep.c (init_sys_modes): Change doc-string comments to `new
- style' [w/`doc:' keyword].
-
- * data.c, fileio.c, indent.c, print.c, search.c, sound.c,
- * sunfns.c, textprop.c, undo.c, xselect.c: Change doc-string
- comments to `new style' [w/`doc:' keyword].
-
-2001-10-21 Jason Rumney <jasonr@gnu.org>
-
- * w32fns.c (Fx_file_dialog): Pass a filter to GetOpenFileName.
-
- * w32term.c (remember_mouse_glyph): New function.
- (w32_mouse_position): Use it.
- (note_mouse_movement): If the mouse moved off the glyph, remember
- its new position.
-
- * w32term.h (struct w32_output): Correct spelling of x_compatible.
- (w32_display_info): Add mouse_face_overlay.
-
- * w32term.c (notice_overwritten_cursor): Renamed from
- note_overwritten_text_cursor. Rewritten to take glyph widths into
- account.
- (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
- (fast_find_string_pos): New function.
- (fast_find_position): Return the correct vpos. Add parameter
- STOP. In the final row, stop before glyphs having STOP as object.
- Don't consider glyphs that are not from a buffer.
- (fast_find_position) [0]: Add a presumably more correct version
- for after 21.1.
- (expose_window_tree, expose_frame): Don't compute intersections here.
- (expose_window): Do it here instead.
- (expose_window_tree, expose_window, expose_line): Return 1 when
- overwriting mouse-face.
- (expose_window): If W is the window currently being updated, mark
- the frame garbaged.
- (expose_frame): If mouse-face was overwritten, redo it.
- (x_use_underline_position_properties): New variable.
- (syms_of_xterm): DEFVAR_BOOL it.
- (x_draw_glyph_string): Add comment to use it in future.
- (x_draw_glyph_string): Restore clipping after drawing box.
- Fix a computation of the underline position.
- (w32_get_glyph_string_clip_rect): Minor cleanup.
- (x_fill_stretch_glyph_string): Remove an assertion.
- (x_produce_glyphs): Don't convert multibyte characters
- to unibyte characters in unibyte buffers.
- (cursor_in_mouse_face_p): New function.
- (x_draw_stretch_glyph_string): Use it to choose a different GC
- when drawing a cursor within highlighted text. Don't draw
- background again if it has already been drawn.
- (x_draw_glyph_string_box): Don't draw a full-width
- box just because the glyph row's full_width_p flag is set.
- (x_draw_glyphs): Fix computation of rightmost x for
- full-width rows.
- (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
- (w32_draw_relief_rect): Extend left shadow to the bottom and left;
- change bottom shadow accordingly. Some cleanup.
- (x_update_window_end): Handle overwritten mouse face
- also for tool bar windows.
- (show_mouse_face): Set the glyph row's mouse_face_p flag also when
- DRAW is DRAW_IMAGE_RAISED.
- (clear_mouse_face): Return 1 if text with mouse face was
- actually redrawn. Make the function static.
- Reset dpyinfo->mouse_face_overlay otherwise note_mouse_highlight might
- optimize away highlighting if we pass over that same overlay again.
- (note_mouse_highlight): Call mouse_face_overlay_overlaps
- to detect a case where we have to highlight a different region
- despite not having left the currently highlighted region.
- Set mouse_face_overlay in the x_display_info. Avoid changing the
- mouse pointer shape when show_mouse_face has already done it, or
- there is no need. Handle mouse-face and help-echo in strings.
- (glyph_rect): New function.
- (w32_mouse_position): Use it to raise the threshold for mouse
- movement event generation.
- (w32_initialize_display_info): Initialize the x_display_info's
- mouse_face_overlay.
- (w32_set_vertical_scroll_bar): Don't clear a zero height
- or width area.
- (w32_set_vertical_scroll_bar, x_scroll_bar_create): Don't configure
- a widget to zero height.
-
- * w32menu.c (single_submenu, w32_menu_show) [!HAVE_MULTILINGUAL_MENU]:
- Protect unibyte strings created by replacing their multibyte
- equivalents in menu_items.
- (w32_menu_show): Don't overwrite an item's name with its key
- description in case the description is a multibyte string.
- (single_submenu): Some cleanup.
-
- * w32fns.c (x_laplace_read_row, x_laplace_write_row): Removed.
- (postprocess_image): New function.
- (lookup_image): Call it for all image types except PostScript.
- (x_kill_gs_process): Call postprocess_image.
- (tiff_error_handler, tiff_warning_handler): New functions.
- (tiff_load): Install them as handlers.
- (x_kill_gs_process): Recognize if someone has cleared the image
- cache under us.
- (valid_image_p): Protect better against invalid image
- specifications. Previous code could signal an error.
- (Fx_hide_tip, Fshow_tip): Doc fix.
- (Fv_max_tooltip_size): New variable.
- (syns_of_xfns): DEFVAR_LISP it.
- (Fx_show_tip): Add parameter TEXT. Set the tip frame's root
- window buffer to *tip* right after creating the frame. Set frame's
- window_width. Use a maximum tooltip size specified by
- Vx_max_tooltip_size, if that has valid contents.
- (compute_tip_xy): Add parameters WIDTH and HEIGHT.
- Make sure the tooltip is completely visible.
- (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
- (Fx_create_frame): Adjust the frame's height for presence
- of the tool bar before calling x_figure_window_size.
- (x_set_tool_bar_lines): Clear the tool bar window's current matrix
- when the window gets smaller.
- (x_set_foreground_color): Set frame's cursor_pixel.
- (x_set_foreground_color, x_set_background_color): Cleaned up.
- (x_set_font): Handle case of x_new_fontset returning the same name
- as before, although there was a change in fontsets.
-
-2001-10-21 Miles Bader <miles@gnu.org>
-
- * data.c (Fplus, Fminus, Fmax, Ftimes, Fquo, Flogand, Flogior)
- (Flogxor): Add usage: string to doc string.
- * charset.c (Fstring): Likewise.
- * callproc.c (Fcall_process_region, Fcall_process): Likewise.
- * alloc.c (Fmake_byte_code, Fvector, Flist): Likewise.
-
-2001-10-21 Pavel Jan\e,Am\e(Bk <Pavel@Janik.cz>
-
- * buffer.c: Reindent DEFUNs and DEFVARs with doc: keywords.
-
- * alloc.c: Reindent DEFUNs with doc: keywords.
-
- * abbrev.c (Finsert_abbrev_table_description): Reindent.
-
- * frame.c: Change doc-string comments to `new style' [w/`doc:'
- keyword].
-
-See ChangeLog.9 for earlier changes.
+See ChangeLog.10 for earlier changes.
;; Local Variables:
;; coding: iso-2022-7bit
}
#endif /* !TARGET_API_MAC_CARBON */
}
- else
+
+ if (!menu)
{
+#if TARGET_API_MAC_CARBON
+ err = CreateNewMenu (id, 0, &menu);
+ if (err == noErr)
+ err = SetMenuTitleWithCFString (menu, title);
+#else
menu = NewMenu (id, title);
- InsertMenu (menu, 0);
+#endif
+ if (err == noErr)
+ {
+ InsertMenu (menu, 0);
#if !TARGET_API_MAC_CARBON
- title_changed_p = 1;
+ title_changed_p = 1;
#endif
+ }
}
+#if TARGET_API_MAC_CARBON
+ CFRelease (title);
+#endif
- if (wv->contents)
- submenu_id = fill_menu (menu, wv->contents, MAC_MENU_MENU_BAR_SUB,
- submenu_id);
+ if (err == noErr)
+ if (wv->contents)
+ submenu_id = fill_menu (menu, wv->contents, MAC_MENU_MENU_BAR_SUB,
+ submenu_id);
}
- if (id < min_menu_id[MAC_MENU_MENU_BAR + 1] && GetMenuHandle (id))
+ if (id < min_menu_id[MAC_MENU_MENU_BAR + 1] && GetMenuRef (id))
{
dispose_menus (MAC_MENU_MENU_BAR, id);
#if !TARGET_API_MAC_CARBON
p = allocate_process ();
- XSETINT (p->infd, -1);
- XSETINT (p->outfd, -1);
- XSETFASTINT (p->tick, 0);
- XSETFASTINT (p->update_tick, 0);
+ p->infd = -1;
+ p->outfd = -1;
+ p->tick = 0;
+ p->update_tick = 0;
p->pid = 0;
- p->pty_flag = 0;
+ p->pty_flag = Qnil;
p->raw_status_new = 0;
p->status = Qrun;
p->mark = Fmake_marker ();