Merge from emacs-23
This commit is contained in:
commit
0235128c15
68 changed files with 1155 additions and 419 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,9 +1,21 @@
|
|||
2010-05-08 Štěpán Němec <stepnem@gmail.com> (tiny change)
|
||||
|
||||
* INSTALL: Fix typos.
|
||||
|
||||
2010-05-08 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* configure.in: Add check for buggy version of GCC (Bug#6031).
|
||||
|
||||
2010-05-08 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* configure.in (HAVE_LIBNCURSES): New local variable.
|
||||
(TERMINFO, LIBS_TERMCAP, TERMCAP_OBJ): New output variables,
|
||||
replacing cpp in src/s/*.h and src/Makefile.in.
|
||||
|
||||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* configure.in: Add tests for `isnan' and `copysign'.
|
||||
|
|
6
INSTALL
6
INSTALL
|
@ -408,7 +408,7 @@ to look in `/bar/mylib' for libraries, pass the -O3 optimization
|
|||
switch to the compiler, and link against libfoo.a and libbar.a
|
||||
libraries in addition to the standard ones.
|
||||
|
||||
For some libraries, like Gtk+, fontconfig and ALSA, `configure' use
|
||||
For some libraries, like Gtk+, fontconfig and ALSA, `configure' uses
|
||||
pkg-config to find where those libraries are installed.
|
||||
If you want pkg-config to look in special directories, you have to set
|
||||
the environment variable PKG_CONFIG_PATH to point to the directories
|
||||
|
@ -466,7 +466,7 @@ site-load.el for additional libraries if you arrange for their
|
|||
documentation strings to be in the etc/DOC file (see
|
||||
src/Makefile.in if you wish to figure out how to do that). For all
|
||||
else, use site-init.el. Do not load byte-compiled code which
|
||||
was build with a non-nil value of `byte-compile-dynamic'.
|
||||
was built with a non-nil value of `byte-compile-dynamic'.
|
||||
|
||||
If you set load-path to a different value in site-init.el or
|
||||
site-load.el, Emacs will use *precisely* that value when it starts up
|
||||
|
@ -491,7 +491,7 @@ named `src/emacs'. You can execute this file "in place" without
|
|||
copying it, if you wish; then it automatically uses the sibling
|
||||
directories ../lisp, ../lib-src, ../info.
|
||||
|
||||
Or you can "install" the executable and the other Emacs into their
|
||||
Or you can "install" the executable and the other files into their
|
||||
installed locations, with `make install'. By default, Emacs's files
|
||||
are installed in the following directories:
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-04-01 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* CPP-DEFINES (__DJGPP__, __GO32__): Remove, no longer used.
|
||||
|
|
10
configure
vendored
10
configure
vendored
|
@ -26209,6 +26209,16 @@ fi
|
|||
CFLAGS="$REAL_CFLAGS"
|
||||
CPPFLAGS="$REAL_CPPFLAGS"
|
||||
|
||||
## Hack to detect a buggy GCC version.
|
||||
if test "x$GCC" = xyes \
|
||||
&& test x"`$CC --version 2> /dev/null | grep 'gcc.* 4.5.0'`" != x \
|
||||
&& test x"`echo $CFLAGS | grep '\-O[23]'`" != x \
|
||||
&& test x"`echo $CFLAGS | grep '\-fno-optimize-sibling-calls'`" = x; then
|
||||
{ { $as_echo "$as_me:$LINENO: error: GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'." >&5
|
||||
$as_echo "$as_me: error: GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'." >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi
|
||||
|
||||
#### Find out which version of Emacs this is.
|
||||
version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \
|
||||
| sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
|
||||
|
|
|
@ -2923,6 +2923,14 @@ dnl Fixme: Use AC_FUNC_MEMCMP since memcmp is used. (Needs libobj replacement.)
|
|||
CFLAGS="$REAL_CFLAGS"
|
||||
CPPFLAGS="$REAL_CPPFLAGS"
|
||||
|
||||
## Hack to detect a buggy GCC version.
|
||||
if test "x$GCC" = xyes \
|
||||
&& test x"`$CC --version 2> /dev/null | grep 'gcc.* 4.5.0'`" != x \
|
||||
&& test x"`echo $CFLAGS | grep '\-O@<:@23@:>@'`" != x \
|
||||
&& test x"`echo $CFLAGS | grep '\-fno-optimize-sibling-calls'`" = x; then
|
||||
AC_MSG_ERROR([GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'.])
|
||||
fi
|
||||
|
||||
#### Find out which version of Emacs this is.
|
||||
[version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \
|
||||
| sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`]
|
||||
|
|
|
@ -1,3 +1,28 @@
|
|||
2010-05-08 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* building.texi (GDB Graphical Interface): Remove misleading comparison
|
||||
to an IDE (Bug#6128).
|
||||
|
||||
2010-05-08 Štěpán Němec <stepnem@gmail.com> (tiny change)
|
||||
|
||||
* programs.texi (Man Page):
|
||||
* misc.texi (Invoking emacsclient):
|
||||
* mini.texi (Repetition):
|
||||
* mark.texi (Setting Mark): Fix typos.
|
||||
|
||||
2010-05-08 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* misc.texi (Printing): Document htmlfontify-buffer.
|
||||
|
||||
2010-05-08 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* calendar.texi (Displaying the Diary, Format of Diary File):
|
||||
Fix external cross-references for TeX format output.
|
||||
|
||||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-02 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* cmdargs.texi (Initial Options): Mention --chdir.
|
||||
|
|
|
@ -836,12 +836,11 @@ Fully qualified class name derived from the expression surrounding point
|
|||
@subsection GDB Graphical Interface
|
||||
|
||||
The command @code{gdb} starts GDB in a graphical interface, using
|
||||
Emacs windows for display program state information. In effect, this
|
||||
makes Emacs into an IDE (interactive development environment). With
|
||||
it, you do not need to use textual GDB commands; you can control the
|
||||
debugging session with the mouse. For example, you can click in the
|
||||
fringe of a source buffer to set a breakpoint there, or on a stack
|
||||
frame in the stack buffer to select that frame.
|
||||
Emacs windows for display program state information. With it, you do
|
||||
not need to use textual GDB commands; you can control the debugging
|
||||
session with the mouse. For example, you can click in the fringe of a
|
||||
source buffer to set a breakpoint there, or on a stack frame in the
|
||||
stack buffer to select that frame.
|
||||
|
||||
This mode requires telling GDB that its ``screen size'' is
|
||||
unlimited, so it sets the height and width accordingly. For correct
|
||||
|
|
|
@ -1082,7 +1082,7 @@ of the new window shows the date of the diary entries. Holidays are
|
|||
shown either in the buffer or in the mode line, depending on the display
|
||||
method you choose
|
||||
@iftex
|
||||
(@pxref{Diary Display,, emacs-xtra}).
|
||||
(@pxref{Diary Display,,, emacs-xtra, Specialized Emacs Features}).
|
||||
@end iftex
|
||||
@ifnottex
|
||||
(@pxref{Diary Display}).
|
||||
|
@ -1186,7 +1186,7 @@ punctuation). For example:
|
|||
This entry will have a different appearance if you use the simple diary
|
||||
display
|
||||
@iftex
|
||||
(@pxref{Diary Display,, emacs-xtra}).
|
||||
(@pxref{Diary Display,,, emacs-xtra, Specialized Emacs Features}).
|
||||
@end iftex
|
||||
@ifnottex
|
||||
(@pxref{Diary Display}).
|
||||
|
|
|
@ -80,7 +80,7 @@ Set the mark at point if the mark is inactive, then move point.
|
|||
character in @acronym{ASCII}; usually, typing @kbd{C-@key{SPC}} on a
|
||||
text terminal gives the character @kbd{C-@@}. This key is also bound
|
||||
to @code{set-mark-command}, so unless you are unlucky enough to have
|
||||
an text terminal that behaves differently, you might as well think of
|
||||
a text terminal that behaves differently, you might as well think of
|
||||
@kbd{C-@@} as @kbd{C-@key{SPC}}.}. This sets the mark where point is,
|
||||
and activates it. You can then move point away, leaving the mark
|
||||
behind.
|
||||
|
|
|
@ -601,7 +601,7 @@ repetition. If you type just @key{RET}, that repeats the command
|
|||
unchanged. You can also change the command by editing the Lisp
|
||||
expression before you execute it. The repeated command is added to
|
||||
the front of the command history unless it is identical to the most
|
||||
recently item.
|
||||
recent item.
|
||||
|
||||
Once inside the minibuffer for @kbd{C-x @key{ESC} @key{ESC}}, you can
|
||||
use the minibuffer history commands (@kbd{M-p}, @kbd{M-n}, @kbd{M-r},
|
||||
|
|
|
@ -1528,7 +1528,7 @@ still use Emacs to edit the file.
|
|||
@kbd{C-x #} (@code{server-edit}) in its buffer. This saves the file
|
||||
and sends a message back to the @command{emacsclient} program, telling
|
||||
it to exit. Programs that use @env{EDITOR} usually wait for the
|
||||
``editor''---in the case @command{emacsclient}---to exit before doing
|
||||
``editor''---in this case @command{emacsclient}---to exit before doing
|
||||
something else.
|
||||
|
||||
You can also call @command{emacsclient} with multiple file name
|
||||
|
@ -1701,8 +1701,14 @@ process, type @kbd{M-x kill-emacs}.
|
|||
Emacs provides commands for printing hard copies of either an entire
|
||||
buffer or just part of one, with or without page headers. You can
|
||||
invoke the printing commands directly, as detailed in the following
|
||||
section, or using the @samp{File} menu on the menu bar. See also the
|
||||
hardcopy commands of Dired (@pxref{Misc File Ops}) and the diary
|
||||
section, or using the @samp{File} menu on the menu bar.
|
||||
|
||||
@findex htmlfontify-buffer
|
||||
Aside from the commands described in this section, you can also
|
||||
``print'' an Emacs buffer to HTML with @kbd{M-x htmlfontify-buffer}.
|
||||
This command converts the current buffer to a HTML file, replacing
|
||||
Emacs faces with CSS-based markup. In addition, see the hardcopy
|
||||
commands of Dired (@pxref{Misc File Ops}) and the diary
|
||||
(@pxref{Displaying the Diary}).
|
||||
|
||||
@table @kbd
|
||||
|
|
|
@ -1202,7 +1202,7 @@ completion based on the list of manual pages that are installed on
|
|||
your machine; the list of available manual pages is computed
|
||||
automatically the first time you invoke @code{woman}. The word at
|
||||
point in the current buffer is used to suggest the default for the
|
||||
name the manual page.
|
||||
name of the manual page.
|
||||
|
||||
With a numeric argument, @kbd{M-x woman} recomputes the list of the
|
||||
manual pages used for completion. This is useful if you add or delete
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-03-10 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Branch for 23.2.
|
||||
|
@ -13,8 +17,7 @@
|
|||
|
||||
2009-12-09 David Robinow <drobinow@gmail.com> (tiny change)
|
||||
|
||||
* makefile.w32-in: Use parenthesis for macros for nmake
|
||||
compatibility.
|
||||
* makefile.w32-in: Use parenthesis for macros for nmake compatibility.
|
||||
|
||||
2009-12-03 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
|
@ -72,7 +75,7 @@
|
|||
|
||||
2009-02-22 Karl Berry <karl@gnu.org>
|
||||
|
||||
* emacs-lisp-intro.texi (Default Configuration): fix dup word "by by".
|
||||
* emacs-lisp-intro.texi (Default Configuration): Fix dup word "by by".
|
||||
|
||||
2009-02-20 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
|
|
|
@ -1,8 +1,37 @@
|
|||
2010-05-08 Štěpán Němec <stepnem@gmail.com> (tiny change)
|
||||
|
||||
* windows.texi (Textual Scrolling):
|
||||
* tips.texi (Coding Conventions):
|
||||
* minibuf.texi (Minibuffer History):
|
||||
* maps.texi (Standard Keymaps):
|
||||
* loading.texi (Where Defined):
|
||||
* edebug.texi (Instrumenting): Fix typos.
|
||||
|
||||
2010-05-08 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* keymaps.texi (Menu Bar): Document :advertised-binding property.
|
||||
|
||||
* functions.texi (Obsolete Functions):
|
||||
Document set-advertised-calling-convention.
|
||||
|
||||
* minibuf.texi (Basic Completion): Document completion-in-region.
|
||||
(Programmed Completion): Document completion-annotate-function.
|
||||
|
||||
* commands.texi (Reading One Event): Document read-key.
|
||||
(Distinguish Interactive): Document KIND arg to
|
||||
called-interactively-p. Delete obsolete interactive-p.
|
||||
|
||||
* elisp.texi (Top): Update node description.
|
||||
|
||||
2010-05-08 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* nonascii.texi (Character Properties): Document
|
||||
unicode-category-table. Add an index entry for Unicode general
|
||||
category.
|
||||
* nonascii.texi (Character Properties):
|
||||
Document unicode-category-table. Add an index entry for Unicode
|
||||
general category.
|
||||
|
||||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-04-20 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
|
|
|
@ -696,71 +696,67 @@ message when called from a keyboard macro.
|
|||
because it allows callers to say ``treat this call as interactive.''
|
||||
But you can also do the job by testing @code{called-interactively-p}.
|
||||
|
||||
@defun called-interactively-p
|
||||
@defun called-interactively-p kind
|
||||
This function returns @code{t} when the calling function was called
|
||||
using @code{call-interactively}.
|
||||
|
||||
If the containing function was called by Lisp evaluation (or with
|
||||
@code{apply} or @code{funcall}), then it was not called interactively.
|
||||
The argument @var{kind} should be either the symbol @code{interactive}
|
||||
or the symbol @code{any}. If it is @code{interactive}, then
|
||||
@code{called-interactively-p} returns @code{t} only if the call was
|
||||
made directly by the user---e.g., if the user typed a key sequence
|
||||
bound to the calling function, but @emph{not} if the user ran a
|
||||
keyboard macro that called the function (@pxref{Keyboard Macros}). If
|
||||
@var{kind} is @code{any}, @code{called-interactively-p} returns
|
||||
@code{t} for any kind of interactive call, including keyboard macros.
|
||||
|
||||
If in doubt, use @code{any}; the only known proper use of
|
||||
@code{interactive} is if you need to decide whether to display a
|
||||
helpful message while a function is running.
|
||||
|
||||
A function is never considered to be called interactively if it was
|
||||
called via Lisp evaluation (or with @code{apply} or @code{funcall}).
|
||||
@end defun
|
||||
|
||||
Here's an example of using @code{called-interactively-p}:
|
||||
@noindent
|
||||
Here is an example of using @code{called-interactively-p}:
|
||||
|
||||
@example
|
||||
@group
|
||||
(defun foo ()
|
||||
(interactive)
|
||||
(when (called-interactively-p)
|
||||
(message "foo"))
|
||||
'haha)
|
||||
@result{} foo
|
||||
(when (called-interactively-p 'any)
|
||||
(message "Interactive!")
|
||||
'foo-called-interactively))
|
||||
@end group
|
||||
|
||||
@group
|
||||
;; @r{Type @kbd{M-x foo}.}
|
||||
@print{} foo
|
||||
@print{} Interactive!
|
||||
@end group
|
||||
|
||||
@group
|
||||
(foo)
|
||||
@result{} haha
|
||||
@result{} nil
|
||||
@end group
|
||||
@end example
|
||||
|
||||
Here is another example that contrasts direct and indirect
|
||||
calls to @code{called-interactively-p}.
|
||||
@noindent
|
||||
Here is another example that contrasts direct and indirect calls to
|
||||
@code{called-interactively-p}.
|
||||
|
||||
@example
|
||||
@group
|
||||
(defun bar ()
|
||||
(interactive)
|
||||
(setq foobar (list (foo) (called-interactively-p))))
|
||||
@result{} bar
|
||||
(message "%s" (list (foo) (called-interactively-p 'any))))
|
||||
@end group
|
||||
|
||||
@group
|
||||
;; @r{Type @kbd{M-x bar}.}
|
||||
;; @r{This does not display a message.}
|
||||
@end group
|
||||
|
||||
@group
|
||||
foobar
|
||||
@result{} (nil t)
|
||||
@print{} (nil t)
|
||||
@end group
|
||||
@end example
|
||||
|
||||
If you want to treat commands run in keyboard macros just like calls
|
||||
from Lisp programs, test @code{interactive-p} instead of
|
||||
@code{called-interactively-p}.
|
||||
|
||||
@defun interactive-p
|
||||
This function returns @code{t} if the containing function (the one
|
||||
whose code includes the call to @code{interactive-p}) was called in
|
||||
direct response to user input. This means that it was called with the
|
||||
function @code{call-interactively}, and that a keyboard macro is
|
||||
not running, and that Emacs is not running in batch mode.
|
||||
@end defun
|
||||
|
||||
@node Command Loop Info
|
||||
@comment node-name, next, previous, up
|
||||
@section Information from the Command Loop
|
||||
|
@ -2309,10 +2305,8 @@ and key sequences read from keyboard macros being executed.
|
|||
@cindex reading a single event
|
||||
@cindex event, reading only one
|
||||
|
||||
The lowest level functions for command input are those that read a
|
||||
single event.
|
||||
|
||||
None of the three functions below suppresses quitting.
|
||||
The lowest level functions for command input are @code{read-event},
|
||||
@code{read-char}, and @code{read-char-exclusive}.
|
||||
|
||||
@defun read-event &optional prompt inherit-input-method seconds
|
||||
This function reads and returns the next event of command input, waiting
|
||||
|
@ -2409,11 +2403,31 @@ user generates an event which is not a character,
|
|||
gets a character. The arguments work as in @code{read-event}.
|
||||
@end defun
|
||||
|
||||
None of the above functions suppress quitting.
|
||||
|
||||
@defvar num-nonmacro-input-events
|
||||
This variable holds the total number of input events received so far
|
||||
from the terminal---not counting those generated by keyboard macros.
|
||||
@end defvar
|
||||
|
||||
We emphasize that, unlike @code{read-key-sequence}, the functions
|
||||
@code{read-event}, @code{read-char}, and @code{read-char-exclusive} do
|
||||
not perform the translations described in @ref{Translation Keymaps}.
|
||||
If you wish to read a single key taking these translations into
|
||||
account, use the function @code{read-key}:
|
||||
|
||||
@defun read-key &optional prompt
|
||||
This function reads a single key. It is ``intermediate'' between
|
||||
@code{read-key-sequence} and @code{read-event}. Unlike the former, it
|
||||
reads a single key, not a key sequence. Unlike the latter, it does
|
||||
not return a raw event, but decodes and translates the user input
|
||||
according to @code{input-decode-map}, @code{local-function-key-map},
|
||||
and @code{key-translation-map} (@pxref{Translation Keymaps}).
|
||||
|
||||
The argument @var{prompt} is either a string to be displayed in the
|
||||
echo area as a prompt, or @code{nil}, meaning not to display a prompt.
|
||||
@end defun
|
||||
|
||||
@node Event Mod
|
||||
@subsection Modifying and Translating Input Events
|
||||
|
||||
|
|
|
@ -186,7 +186,7 @@ instrument any top-level form regardless of the values of
|
|||
|
||||
While Edebug is active, the command @kbd{I}
|
||||
(@code{edebug-instrument-callee}) instruments the definition of the
|
||||
function or macro called by the list form after point, if is not already
|
||||
function or macro called by the list form after point, if it is not already
|
||||
instrumented. This is possible only if Edebug knows where to find the
|
||||
source for that function; for this reason, after loading Edebug,
|
||||
@code{eval-region} records the position of every definition it
|
||||
|
|
|
@ -649,7 +649,6 @@ Minibuffers
|
|||
Completion
|
||||
|
||||
* Basic Completion:: Low-level functions for completing strings.
|
||||
(These are too low level to use the minibuffer.)
|
||||
* Minibuffer Completion:: Invoking the minibuffer with completion.
|
||||
* Completion Commands:: Minibuffer commands that do completion.
|
||||
* High-Level Completion:: Convenient special cases of completion
|
||||
|
|
|
@ -1197,7 +1197,7 @@ was first made obsolete---for example, a date or a release number.
|
|||
@end defun
|
||||
|
||||
You can define a function as an alias and declare it obsolete at the
|
||||
same time using the macro @code{define-obsolete-function-alias}.
|
||||
same time using the macro @code{define-obsolete-function-alias}:
|
||||
|
||||
@defmac define-obsolete-function-alias obsolete-name current-name &optional when docstring
|
||||
This macro marks the function @var{obsolete-name} obsolete and also
|
||||
|
@ -1210,6 +1210,33 @@ equivalent to the following:
|
|||
@end example
|
||||
@end defmac
|
||||
|
||||
In addition, you can mark a certain a particular calling convention
|
||||
for a function as obsolete:
|
||||
|
||||
@defun set-advertised-calling-convention function signature
|
||||
This function specifies the argument list @var{signature} as the
|
||||
correct way to call @var{function}. This causes the Emacs byte
|
||||
compiler to issue a warning whenever it comes across an Emacs Lisp
|
||||
program that calls @var{function} any other way (however, it will
|
||||
still allow the code to be byte compiled).
|
||||
|
||||
For instance, in old versions of Emacs the @code{sit-for} function
|
||||
accepted three arguments, like this
|
||||
|
||||
@smallexample
|
||||
(sit-for seconds milliseconds nodisp)
|
||||
@end smallexample
|
||||
|
||||
However, calling @code{sit-for} this way is considered obsolete
|
||||
(@pxref{Waiting}). The old calling convention is deprecated like
|
||||
this:
|
||||
|
||||
@smallexample
|
||||
(set-advertised-calling-convention
|
||||
'sit-for '(seconds &optional nodisp))
|
||||
@end smallexample
|
||||
@end defun
|
||||
|
||||
@node Inline Functions
|
||||
@section Inline Functions
|
||||
@cindex inline functions
|
||||
|
|
|
@ -2470,9 +2470,13 @@ can do it this way:
|
|||
@cindex menu bar
|
||||
|
||||
Most window systems allow each frame to have a @dfn{menu bar}---a
|
||||
permanently displayed menu stretching horizontally across the top of the
|
||||
frame. The items of the menu bar are the subcommands of the fake
|
||||
``function key'' @code{menu-bar}, as defined in the active keymaps.
|
||||
permanently displayed menu stretching horizontally across the top of
|
||||
the frame. (In order for a frame to display a menu bar, its
|
||||
@code{menu-bar-lines} parameter must be greater than zero.
|
||||
@xref{Layout Parameters}.)
|
||||
|
||||
The items of the menu bar are the subcommands of the fake ``function
|
||||
key'' @code{menu-bar}, as defined in the active keymaps.
|
||||
|
||||
To add an item to the menu bar, invent a fake ``function key'' of your
|
||||
own (let's call it @var{key}), and make a binding for the key sequence
|
||||
|
@ -2490,13 +2494,6 @@ determining the menu bar contents. That is, the menu bar is computed
|
|||
from the keymaps that would be active if @code{overriding-local-map}
|
||||
were @code{nil}. @xref{Active Keymaps}.
|
||||
|
||||
In order for a frame to display a menu bar, its @code{menu-bar-lines}
|
||||
parameter must be greater than zero. Emacs uses just one line for the
|
||||
menu bar itself; if you specify more than one line, the other lines
|
||||
serve to separate the menu bar from the windows in the frame. We
|
||||
recommend 1 or 2 as the value of @code{menu-bar-lines}. @xref{Layout
|
||||
Parameters}.
|
||||
|
||||
Here's an example of setting up a menu bar item:
|
||||
|
||||
@example
|
||||
|
@ -2535,8 +2532,8 @@ bar item:
|
|||
@end example
|
||||
|
||||
@noindent
|
||||
@code{edit} is the fake function key used by the global map for the
|
||||
@samp{Edit} menu bar item. The main reason to suppress a global
|
||||
Here, @code{edit} is the fake function key used by the global map for
|
||||
the @samp{Edit} menu bar item. The main reason to suppress a global
|
||||
menu bar item is to regain space for mode-specific items.
|
||||
|
||||
@defvar menu-bar-final-items
|
||||
|
@ -2557,6 +2554,23 @@ advise you to ensure that the functions it calls do not take much time
|
|||
in the usual case.
|
||||
@end defvar
|
||||
|
||||
Next to every menu bar item, Emacs displays a key binding that runs
|
||||
the same command (if such a key binding exists). This serves as a
|
||||
convenient hint for users who do not know the key binding. If a
|
||||
command has multiple bindings, Emacs normally displays the first one
|
||||
it finds. You can specify one particular key binding by assigning an
|
||||
@code{:advertised-binding} symbol property to the command. For
|
||||
instance, the following tells Emacs to show @kbd{C-/} for the
|
||||
@code{undo} menu item:
|
||||
|
||||
@smallexample
|
||||
(put 'undo :advertised-binding [?\C-/])
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
If the @code{:advertised-binding} property specifies a key binding
|
||||
that the command does not actually have, it is ignored.
|
||||
|
||||
@node Tool Bar
|
||||
@subsection Tool bars
|
||||
@cindex tool bar
|
||||
|
|
|
@ -823,7 +823,7 @@ without extension.
|
|||
@code{load-history}.
|
||||
|
||||
@defvar load-history
|
||||
This value of this variable is an alist that associates the names of
|
||||
The value of this variable is an alist that associates the names of
|
||||
loaded library files with the names of the functions and variables
|
||||
they defined, as well as the features they provided or required.
|
||||
|
||||
|
|
|
@ -85,6 +85,9 @@ Minor mode variables will not be listed here.
|
|||
@item case-fold-search
|
||||
@xref{Searching and Case}.
|
||||
|
||||
@item comment-column
|
||||
@xref{Comments,,, emacs, The GNU Emacs Manual}.
|
||||
|
||||
@item ctl-arrow
|
||||
@xref{Usual Display}.
|
||||
|
||||
|
@ -94,9 +97,6 @@ Minor mode variables will not be listed here.
|
|||
@item cursor-type
|
||||
@xref{Cursor Parameters}.
|
||||
|
||||
@item comment-column
|
||||
@xref{Comments,,, emacs, The GNU Emacs Manual}.
|
||||
|
||||
@item default-directory
|
||||
@xref{File Name Expansion}.
|
||||
|
||||
|
|
|
@ -163,7 +163,7 @@ search.
|
|||
|
||||
@item key-translation-map
|
||||
A keymap for translating keys. This one overrides ordinary key
|
||||
bindings, unlike @code{local- function-key-map}. @xref{Translation
|
||||
bindings, unlike @code{local-function-key-map}. @xref{Translation
|
||||
Keymaps}.
|
||||
|
||||
@item kmacro-map
|
||||
|
|
|
@ -511,7 +511,7 @@ set to a non-@code{nil} value.
|
|||
@defopt history-length
|
||||
The value of this variable specifies the maximum length for all
|
||||
history lists that don't specify their own maximum lengths. If the
|
||||
value is @code{t}, that means there no maximum (don't delete old
|
||||
value is @code{t}, that means there is no maximum (don't delete old
|
||||
elements). The value of @code{history-length} property of the history
|
||||
list variable's symbol, if set, overrides this variable for that
|
||||
particular history list.
|
||||
|
@ -626,7 +626,6 @@ for reading certain kinds of names with completion.
|
|||
|
||||
@menu
|
||||
* Basic Completion:: Low-level functions for completing strings.
|
||||
(These are too low level to use the minibuffer.)
|
||||
* Minibuffer Completion:: Invoking the minibuffer with completion.
|
||||
* Completion Commands:: Minibuffer commands that do completion.
|
||||
* High-Level Completion:: Convenient special cases of completion
|
||||
|
@ -640,31 +639,23 @@ for reading certain kinds of names with completion.
|
|||
@node Basic Completion
|
||||
@subsection Basic Completion Functions
|
||||
|
||||
The completion functions @code{try-completion},
|
||||
@code{all-completions} and @code{test-completion} have nothing in
|
||||
themselves to do with minibuffers. We describe them in this chapter
|
||||
so as to keep them near the higher-level completion features that do
|
||||
use the minibuffer.
|
||||
|
||||
If you store a completion alist in a variable, you should mark the
|
||||
variable as ``risky'' with a non-@code{nil}
|
||||
@code{risky-local-variable} property.
|
||||
The following completion functions have nothing in themselves to do
|
||||
with minibuffers. We describe them here to keep them near the
|
||||
higher-level completion features that do use the minibuffer.
|
||||
|
||||
@defun try-completion string collection &optional predicate
|
||||
This function returns the longest common substring of all possible
|
||||
completions of @var{string} in @var{collection}. The value of
|
||||
@var{collection} must be a list of strings or symbols, an alist, an
|
||||
obarray, a hash table, or a function that implements a virtual set of
|
||||
strings (see below).
|
||||
obarray, a hash table, or a completion function (@pxref{Programmed
|
||||
Completion}).
|
||||
|
||||
Completion compares @var{string} against each of the permissible
|
||||
completions specified by @var{collection}; if the beginning of the
|
||||
permissible completion equals @var{string}, it matches. If no permissible
|
||||
completions match, @code{try-completion} returns @code{nil}. If only
|
||||
one permissible completion matches, and the match is exact, then
|
||||
@code{try-completion} returns @code{t}. Otherwise, the value is the
|
||||
longest initial sequence common to all the permissible completions that
|
||||
match.
|
||||
completions specified by @var{collection}. If no permissible
|
||||
completions match, @code{try-completion} returns @code{nil}. If there
|
||||
is just one matching completion, and the match is exact, it returns
|
||||
@code{t}. Otherwise, it returns the longest initial sequence common
|
||||
to all possible matching completions.
|
||||
|
||||
If @var{collection} is an alist (@pxref{Association Lists}), the
|
||||
permissible completions are the elements of the alist that are either
|
||||
|
@ -688,13 +679,13 @@ Also, you cannot intern a given symbol in more than one obarray.
|
|||
If @var{collection} is a hash table, then the keys that are strings
|
||||
are the possible completions. Other keys are ignored.
|
||||
|
||||
You can also use a symbol that is a function as @var{collection}. Then
|
||||
the function is solely responsible for performing completion;
|
||||
You can also use a symbol that is a function as @var{collection}.
|
||||
Then the function is solely responsible for performing completion;
|
||||
@code{try-completion} returns whatever this function returns. The
|
||||
function is called with three arguments: @var{string}, @var{predicate}
|
||||
and @code{nil}. (The reason for the third argument is so that the same
|
||||
and @code{nil} (the reason for the third argument is so that the same
|
||||
function can be used in @code{all-completions} and do the appropriate
|
||||
thing in either case.) @xref{Programmed Completion}.
|
||||
thing in either case). @xref{Programmed Completion}.
|
||||
|
||||
If the argument @var{predicate} is non-@code{nil}, then it must be a
|
||||
function of one argument, unless @var{collection} is a hash table, in
|
||||
|
@ -823,6 +814,10 @@ the values @var{string}, @var{predicate} and @code{lambda}; whatever
|
|||
it returns, @code{test-completion} returns in turn.
|
||||
@end defun
|
||||
|
||||
If you store a completion alist in a variable, you should mark the
|
||||
variable as ``risky'' with a non-@code{nil}
|
||||
@code{risky-local-variable} property. @xref{File Local Variables}.
|
||||
|
||||
@defvar completion-ignore-case
|
||||
If the value of this variable is non-@code{nil}, Emacs does not
|
||||
consider case significant in completion. Note, however, that this
|
||||
|
@ -855,6 +850,23 @@ Here is an example of use:
|
|||
@end smallexample
|
||||
@end defmac
|
||||
|
||||
The function @code{completion-in-region} provides a convenient way to
|
||||
perform completion on an arbitrary stretch of text in an Emacs buffer:
|
||||
|
||||
@defun completion-in-region start end collection &optional predicate
|
||||
This function completes the text in the current buffer between the
|
||||
positions @var{start} and @var{end}, using @var{collection}. The
|
||||
argument @var{collection} has the same meaning as in
|
||||
@code{try-completion} (@pxref{Basic Completion}).
|
||||
|
||||
This function inserts the completion text directly into the current
|
||||
buffer. Unlike @code{completing-read} (@pxref{Minibuffer
|
||||
Completion}), it does not activate the minibuffer.
|
||||
|
||||
For this function to work, point must be somewhere between @var{start}
|
||||
and @var{end}.
|
||||
@end defun
|
||||
|
||||
@node Minibuffer Completion
|
||||
@subsection Completion and the Minibuffer
|
||||
@cindex minibuffer completion
|
||||
|
@ -869,12 +881,12 @@ providing completion. It activates the minibuffer with prompt
|
|||
@var{prompt}, which must be a string.
|
||||
|
||||
The actual completion is done by passing @var{collection} and
|
||||
@var{predicate} to the function @code{try-completion}. This happens
|
||||
in certain commands bound in the local keymaps used for completion.
|
||||
Some of these commands also call @code{test-completion}. Thus, if
|
||||
@var{predicate} is non-@code{nil}, it should be compatible with
|
||||
@var{collection} and @code{completion-ignore-case}. @xref{Definition
|
||||
of test-completion}.
|
||||
@var{predicate} to the function @code{try-completion} (@pxref{Basic
|
||||
Completion}). This happens in certain commands bound in the local
|
||||
keymaps used for completion. Some of these commands also call
|
||||
@code{test-completion}. Thus, if @var{predicate} is non-@code{nil},
|
||||
it should be compatible with @var{collection} and
|
||||
@code{completion-ignore-case}. @xref{Definition of test-completion}.
|
||||
|
||||
The value of the optional argument @var{require-match} determines how
|
||||
the user may exit the minibuffer:
|
||||
|
@ -1603,8 +1615,10 @@ which performs completion according to the rules used in Emacs 21; and
|
|||
|
||||
Sometimes it is not possible to create an alist or an obarray
|
||||
containing all the intended possible completions. In such a case, you
|
||||
can supply your own function to compute the completion of a given string.
|
||||
This is called @dfn{programmed completion}.
|
||||
can supply your own function to compute the completion of a given
|
||||
string. This is called @dfn{programmed completion}. Emacs uses
|
||||
programmed completion when completing file names (@pxref{File Name
|
||||
Completion}).
|
||||
|
||||
To use this feature, pass a symbol with a function definition as the
|
||||
@var{collection} argument to @code{completing-read}. The function
|
||||
|
@ -1659,9 +1673,6 @@ unreliable to treat one differently just because it is also a possible
|
|||
function. So you must arrange for any function you wish to use for
|
||||
completion to be encapsulated in a symbol.
|
||||
|
||||
Emacs uses programmed completion when completing file names.
|
||||
@xref{File Name Completion}.
|
||||
|
||||
@defun completion-table-dynamic function
|
||||
This function is a convenient way to write a function that can act as
|
||||
programmed completion function. The argument @var{function} should be
|
||||
|
@ -1671,6 +1682,19 @@ possible completions of it. You can think of
|
|||
and the interface for programmed completion functions.
|
||||
@end defun
|
||||
|
||||
@defvar completion-annotate-function
|
||||
The value of this variable, if non-@code{nil}, should be a function
|
||||
for ``annotating'' the entries in the @samp{*Completions*} buffer.
|
||||
The function should accept a single argument, the completion string
|
||||
for an entry. It should return an additional string to display next
|
||||
to that entry in the @samp{*Completions*} buffer, or @code{nil} if no
|
||||
additional string is to be displayed.
|
||||
|
||||
The function can determine the collection used for the current
|
||||
completion via the variable @code{minibuffer-completion-table}
|
||||
(@pxref{Completion Commands}).
|
||||
@end defvar
|
||||
|
||||
@node Yes-or-No Queries
|
||||
@section Yes-or-No Queries
|
||||
@cindex asking the user questions
|
||||
|
|
|
@ -90,7 +90,7 @@ Put a call to @code{provide} at the end of each separate Lisp file.
|
|||
If a file requires certain other Lisp programs to be loaded
|
||||
beforehand, then the comments at the beginning of the file should say
|
||||
so. Also, use @code{require} to make sure they are loaded.
|
||||
x@xref{Named Features}.
|
||||
@xref{Named Features}.
|
||||
|
||||
@item
|
||||
If a file @var{foo} uses a macro defined in another file @var{bar},
|
||||
|
|
|
@ -1661,8 +1661,8 @@ point should be placed from the bottom of the window; thus, as with
|
|||
@end defopt
|
||||
|
||||
@defopt scroll-step
|
||||
This variable is an older variant of @code{scroll-conservatively}. The
|
||||
difference is that it if its value is @var{n}, that permits scrolling
|
||||
This variable is an older variant of @code{scroll-conservatively}.
|
||||
The difference is that if its value is @var{n}, that permits scrolling
|
||||
only by precisely @var{n} lines, not a smaller number. This feature
|
||||
does not work with @code{scroll-margin}. The default value is zero.
|
||||
@end defopt
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-03-10 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Branch for 23.2.
|
||||
|
||||
2010-01-09 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* emacs.1: Copyedits. Update options -Q, -mm and --daemon. Remove
|
||||
deprecated --unibyte option.
|
||||
* emacs.1: Copyedits. Update options -Q, -mm and --daemon.
|
||||
Remove deprecated --unibyte option.
|
||||
|
||||
2009-06-21 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
|
|
|
@ -1,11 +1,28 @@
|
|||
2010-05-08 Štěpán Němec <stepnem@gmail.com> (tiny change)
|
||||
|
||||
* url.texi (HTTP language/coding, Customization):
|
||||
* message.texi (Header Commands, Responses):
|
||||
* cl.texi (Argument Lists): Fix typos.
|
||||
|
||||
2010-05-08 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* ede.texi (EDE Mode): Refer to init file rather than `.emacs'.
|
||||
Note that Development menu is always available.
|
||||
(Creating a project): Fix terminology.
|
||||
(Add/Remove files): Fix typo.
|
||||
|
||||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-01 Daniel E. Doherty <ddoherty03@gmail.com> (tiny change)
|
||||
|
||||
* calc.texi (Tutorial): Use "^{\prime}" to indicate primes.
|
||||
|
||||
2010-05-01 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* tramp.texi (Inline methods, Default Method): Mention
|
||||
`tramp-inline-compress-start-size'.
|
||||
* tramp.texi (Inline methods, Default Method):
|
||||
Mention `tramp-inline-compress-start-size'.
|
||||
|
||||
2010-04-18 Teodor Zlatanov <tzz@lifelogs.com>
|
||||
|
||||
|
|
|
@ -356,7 +356,7 @@ is defined is automatically proclaimed @code{inline}, i.e.,
|
|||
calls to it may be expanded into in-line code by the byte compiler.
|
||||
This is analogous to the @code{defsubst} form;
|
||||
@code{defsubst*} uses a different method (compiler macros) which
|
||||
works in all version of Emacs, and also generates somewhat more
|
||||
works in all versions of Emacs, and also generates somewhat more
|
||||
efficient inline expansions. In particular, @code{defsubst*}
|
||||
arranges for the processing of keyword arguments, default values,
|
||||
etc., to be done at compile-time whenever possible.
|
||||
|
|
|
@ -129,27 +129,26 @@ information.
|
|||
@node EDE Mode, Creating a project, EDE Project Concepts, top
|
||||
@chapter @ede{} Mode
|
||||
|
||||
@ede{} is implemented as a minor-mode, which augments other modes such
|
||||
@ede{} is implemented as a minor mode, which augments other modes such
|
||||
as C mode, and Texinfo mode. You can enable @ede{} for all buffers by
|
||||
running the command @code{global-ede-mode}, or by putting this in your
|
||||
@file{~/.emacs} file:
|
||||
init file:
|
||||
|
||||
@example
|
||||
(global-ede-mode t)
|
||||
@end example
|
||||
|
||||
When @ede{} is active for a given buffer, the menu item
|
||||
``Development'' appears. This menu provides several menu items for
|
||||
high-level @ede{} commands. These menu items, and their corresponding
|
||||
keybindings, are independent of the type of project you are actually
|
||||
working on.
|
||||
Activating @ede{} adds a menu named @samp{Development} to the menu
|
||||
bar. This menu provides several menu items for high-level @ede{}
|
||||
commands. These menu items, and their corresponding keybindings, are
|
||||
independent of the type of project you are actually working on.
|
||||
|
||||
@node Creating a project, Modifying your project, EDE Mode, top
|
||||
@chapter Creating a project
|
||||
|
||||
To create a new project, first visit a file that you want to include
|
||||
in that project. If you have a hierarchy of directories, choose a
|
||||
file in the topmost directory first. From this buffer, type @kbd{M-x
|
||||
in that project. If you have a hierarchy of directories, first visit
|
||||
a file in the topmost directory. From this buffer, type @kbd{M-x
|
||||
ede-new}, or click on the @samp{Create Project} item in the
|
||||
@samp{Development} menu.
|
||||
|
||||
|
@ -220,8 +219,8 @@ detailed information about exactly what these features do.
|
|||
@node Add/Remove target, Add/Remove files, Modifying your project, Modifying your project
|
||||
@section Add/Remove target
|
||||
|
||||
To create a new target, type @kbd{C-c . t} (@code{M-x ede-new-target})
|
||||
or use the @samp{Add Target} menu item in the @samp{Project Options}
|
||||
To create a new target, type @kbd{C-c . t} (@code{ede-new-target}) or
|
||||
use the @samp{Add Target} menu item in the @samp{Project Options}
|
||||
submenu. This prompts for a target name, and adds the current buffer
|
||||
to that target.
|
||||
|
||||
|
@ -237,7 +236,7 @@ Options} submenu.
|
|||
@section Add/Remove files
|
||||
|
||||
To add the current file to an existing target, type @kbd{C-c . a}
|
||||
(@code{ede-add-file}), or or use the @samp{Add File} menu item in the
|
||||
(@code{ede-add-file}), or use the @samp{Add File} menu item in the
|
||||
@samp{Target Options} submenu.
|
||||
|
||||
You can add a file to more than one target; this is OK.
|
||||
|
|
|
@ -659,7 +659,7 @@ address from @code{To:} and @code{Cc:} headers.
|
|||
@findex message-insert-disposition-notification-to
|
||||
Insert a request for a disposition
|
||||
notification. (@code{message-insert-disposition-notification-to}).
|
||||
This means that if the recipient support RFC 2298 she might send you a
|
||||
This means that if the recipient supports RFC 2298 she might send you a
|
||||
notification that she received the message.
|
||||
|
||||
@item M-x message-insert-importance-high
|
||||
|
@ -2387,7 +2387,7 @@ consulted, in turn:
|
|||
|
||||
@item wide reply
|
||||
A @dfn{wide reply} is a mail response that includes @emph{all} entities
|
||||
mentioned in the message you are responded to. All mailboxes from the
|
||||
mentioned in the message you are responding to. All mailboxes from the
|
||||
following headers will be concatenated to form the outgoing
|
||||
@code{To}/@code{Cc} headers:
|
||||
|
||||
|
|
|
@ -313,7 +313,7 @@ encoding of documents which servers may honor. For each of these
|
|||
variables, the value is a string; it can specify a single choice, or
|
||||
it can be a comma-separated list.
|
||||
|
||||
Normally this list ordered by descending preference. However, each
|
||||
Normally, this list is ordered by descending preference. However, each
|
||||
element can be followed by @samp{;q=@var{priority}} to specify its
|
||||
preference level, a decimal number from 0 to 1; e.g., for
|
||||
@code{url-mime-language-string}, @w{@code{"de, en-gb;q=0.8,
|
||||
|
@ -1120,11 +1120,11 @@ general operation of the package.
|
|||
|
||||
@defopt url-debug
|
||||
@cindex debugging
|
||||
Specifies the types of debug messages the library which are logged to
|
||||
Specifies the types of debug messages which are logged to
|
||||
the @code{*URL-DEBUG*} buffer.
|
||||
@code{t} means log all messages.
|
||||
A number means log all messages and show them with @code{message}.
|
||||
If may also be a list of the types of messages to be logged.
|
||||
It may also be a list of the types of messages to be logged.
|
||||
@end defopt
|
||||
@defopt url-personal-mail-address
|
||||
@end defopt
|
||||
|
|
38
etc/AUTHORS
38
etc/AUTHORS
|
@ -92,7 +92,7 @@ Alex Shinn: changed files.el
|
|||
|
||||
Alexander Becher: changed vc-annotate.el
|
||||
|
||||
Alexander Klimov: changed man.el
|
||||
Alexander Klimov: changed calc-graph.el man.el
|
||||
|
||||
Alexander Kreuzer: changed nnrss.el
|
||||
|
||||
|
@ -167,9 +167,9 @@ Andreas Luik: changed xfns.c xterm.c
|
|||
Andreas Politz: changed editfns.c elp.el ido.el term.el
|
||||
|
||||
Andreas Schwab: changed Makefile.in configure.in lisp.h xdisp.c files.el
|
||||
coding.c alloc.c process.c print.c editfns.c fileio.c fns.c dired.el
|
||||
coding.c alloc.c process.c fileio.c print.c editfns.c fns.c dired.el
|
||||
xterm.c keyboard.c simple.el eval.c info.el buffer.c sysdep.c emacs.c
|
||||
and 483 other files
|
||||
and 485 other files
|
||||
|
||||
Andreas Seltenreich: changed nnweb.el gnus.texi message.el gnus.el
|
||||
nnslashdot.el gnus-util.el mm-url.el mm-uu.el url-http.el xterm.c
|
||||
|
@ -435,8 +435,8 @@ Chong Yidong: wrote redisplay-testsuite.el
|
|||
and co-wrote longlines.el
|
||||
and changed xdisp.c simple.el files.el display.texi frames.texi
|
||||
files.texi emacs.texi keyboard.c cus-edit.el faces.el xterm.c
|
||||
Makefile.in xfaces.c font.c startup.el xfns.c misc.texi image.c
|
||||
compile.el custom.texi text.texi and 633 other files
|
||||
Makefile.in misc.texi xfaces.c font.c startup.el xfns.c compile.el
|
||||
image.c custom.texi configure.in and 635 other files
|
||||
|
||||
Chris Chase: co-wrote idlw-shell.el idlwave.el
|
||||
|
||||
|
@ -868,7 +868,7 @@ Eli Zaretskii: wrote rxvt.el tty-colors.el
|
|||
and changed msdos.c makefile.w32-in Makefile.in files.el info.el rmail.el
|
||||
fileio.c mainmake.v2 pc-win.el startup.el config.bat simple.el msdos.h
|
||||
dired.c w32.c frame.c internal.el menu-bar.el process.c INSTALL
|
||||
xfaces.c and 602 other files
|
||||
xfaces.c and 603 other files
|
||||
|
||||
Elias Oltmanns: changed tls.el gnus-agent.el gnus-int.el gnus-srvr.el
|
||||
gnus.el
|
||||
|
@ -1002,7 +1002,7 @@ Flemming Hoejstrup Hansen: changed forms.el
|
|||
Florian Weimer: changed message.el gnus.el coding.c gnus-sum.el gnus.texi
|
||||
mm-decode.el mm-util.el
|
||||
|
||||
Francesc Rocher: changed startup.el MORE.STUFF cus-start.el gnus.el
|
||||
Francesc Rocher: changed MORE.STUFF startup.el cus-start.el gnus.el
|
||||
gnus.png gnus.svg macterm.c splash.png splash.svg splash8.xpm w32term.c
|
||||
xdisp.c xterm.c
|
||||
|
||||
|
@ -1131,9 +1131,9 @@ Giuseppe Scrivano: changed buffer.c configure.in sysdep.c xsmfns.c
|
|||
Glenn Morris: wrote check-declare.el
|
||||
and changed Makefile.in calendar.el diary-lib.el rmail.el f90.el
|
||||
cal-menu.el cal-hebrew.el fortran.el holidays.el configure.in
|
||||
cal-islam.el bytecomp.el calendar.texi cal-bahai.el files.el appt.el
|
||||
cal-china.el emacs.texi rmailsum.el simple.el startup.el
|
||||
and 975 other files
|
||||
cal-islam.el bytecomp.el calendar.texi cal-bahai.el emacs.texi files.el
|
||||
appt.el cal-china.el rmailsum.el simple.el startup.el
|
||||
and 976 other files
|
||||
|
||||
Glynn Clements: wrote gamegrid.el snake.el tetris.el
|
||||
|
||||
|
@ -1346,7 +1346,7 @@ Jan Djärv: wrote dnd.el font-setting.el x-dnd.el
|
|||
and changed gtkutil.c xterm.c xfns.c configure.in xterm.h xmenu.c
|
||||
x-win.el Makefile.in gtkutil.h keyboard.c frame.c frames.texi config.in
|
||||
emacs.c xselect.c xresources.texi startup.el alloc.c cus-start.el
|
||||
xlwmenu.c process.c and 203 other files
|
||||
xlwmenu.c frame.h and 203 other files
|
||||
|
||||
Jan Moringen: co-wrote cpp.el
|
||||
|
||||
|
@ -1635,7 +1635,7 @@ and changed files.el perl-mode.el
|
|||
Juanma Barranquero: changed makefile.w32-in subr.el files.el faces.el
|
||||
bs.el help-fns.el w32fns.c org.el server.el simple.el emacsclient.c
|
||||
desktop.el buffer.c mule-cmds.el ido.el window.c xdisp.c allout.el
|
||||
keyboard.c replace.el eval.c and 930 other files
|
||||
keyboard.c replace.el eval.c and 932 other files
|
||||
|
||||
Juergen Hoetzel: changed url-handlers.el
|
||||
|
||||
|
@ -1657,7 +1657,7 @@ Juri Linkov: wrote files-x.el misearch.el
|
|||
and changed info.el isearch.el simple.el replace.el dired-aux.el
|
||||
startup.el grep.el compile.el dired.el files.el faces.el display.texi
|
||||
menu-bar.el descr-text.el cus-edit.el bindings.el man.el image-mode.el
|
||||
ispell.el text.texi dired-x.el and 280 other files
|
||||
ispell.el text.texi dired-x.el and 281 other files
|
||||
|
||||
Justin Bogner: changed fortune.el
|
||||
|
||||
|
@ -1770,7 +1770,7 @@ Kenichi Handa: wrote composite.el cyrillic.el isearch-x.el ps-bdf.el
|
|||
and co-wrote ps-def.el ps-mule.el ps-print.el ps-samp.el quail.el
|
||||
and changed coding.c mule-cmds.el mule.el fontset.c charset.c fontset.el
|
||||
xdisp.c xterm.c font.c fileio.c Makefile.in mule-conf.el characters.el
|
||||
fns.c mule-diag.el ccl.c charset.h ftfont.c xfaces.c coding.h
|
||||
fns.c mule-diag.el ftfont.c ccl.c charset.h xfaces.c coding.h
|
||||
japanese.el and 377 other files
|
||||
|
||||
Kenichi Okada: co-wrote sasl-cram.el sasl-digest.el
|
||||
|
@ -1969,7 +1969,7 @@ Maciek Pasternacki: changed nnrss.el
|
|||
Magnus Henoch: changed url-http.el ispell.el url.el dbusbind.c dns.el
|
||||
url-gw.el url-parse.el url-proxy.el autoinsert.el cl.texi configure.in
|
||||
cyrillic.el dbus.el gnus.texi hashcash.el log-edit.el message.el
|
||||
org-latex.el org-table.el process.c rcirc.el and 7 other files
|
||||
org-latex.el org-table.el process.c rcirc.el and 8 other files
|
||||
|
||||
Malcolm Purvis: changed spam-stat.el
|
||||
|
||||
|
@ -2432,7 +2432,7 @@ Oscar Figueiredo: wrote eudc-bob.el eudc-export.el eudc-hotlist.el
|
|||
eudc-vars.el eudc.el eudcb-bbdb.el eudcb-ldap.el eudcb-ph.el ldap.el
|
||||
and changed ph.el
|
||||
|
||||
Óscar Fuentes: changed emacsclient.c ido.el vc-bzr.el
|
||||
Óscar Fuentes: changed ido.el emacsclient.c vc-bzr.el
|
||||
|
||||
P. E. Jareth Hein: changed gnus-util.el
|
||||
|
||||
|
@ -2951,7 +2951,9 @@ Stefan Wiens: changed gnus-sum.el
|
|||
|
||||
Steinar Bang: changed imap.el
|
||||
|
||||
Štěpán Němec: changed subr.el vc-git.el
|
||||
Štěpán Němec: changed INSTALL cl.texi edebug.texi loading.texi maps.texi
|
||||
mark.texi message.texi mini.texi minibuf.texi misc.texi programs.texi
|
||||
subr.el tips.texi url.texi vc-git.el windows.texi
|
||||
|
||||
Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi
|
||||
ediff-mult.el
|
||||
|
@ -3080,7 +3082,7 @@ Teodor Zlatanov: wrote auth-source.el gnus-registry.el imap-hash.el
|
|||
and changed spam.el gnus.el gnus-sum.el gnus.texi nnimap.el netrc.el
|
||||
spam-stat.el gnus-start.el gnus-util.el nnmail.el encrypt.el message.el
|
||||
gnus-encrypt.el mail-source.el assistant.el auth.texi imap.el
|
||||
nnbabyl.el nnfolder.el nnmbox.el nnmh.el and 48 other files
|
||||
nnbabyl.el nnfolder.el nnmbox.el nnmh.el and 51 other files
|
||||
|
||||
Terje Rosten: changed xfns.c version.el xterm.c xterm.h
|
||||
|
||||
|
|
|
@ -1,3 +1,15 @@
|
|||
2010-05-08 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* PROBLEMS: Document gcc-4.5 bug (Bug#6031).
|
||||
|
||||
2010-05-08 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* HELLO: Adjust Burmese for Unicode 5.2 encoding.
|
||||
|
||||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-07 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* HELLO: Reorder Arabic greetings into logical order (they were
|
||||
|
|
|
@ -7,7 +7,7 @@ Non-ASCII examples:
|
|||
Middle/Near East: ,Hylem(B, ,GGdSqdGe(B ,GYdjce(B
|
||||
South Asia: $,19h9n9x:-9d:'(B, $,15h5n5x6-5d6'(B, $,1?(?.?8?M>u?>?0(B, $,1@H@N@X@m@5@^@P@"(B, $,1;6;A;#;?;,;G(B,
|
||||
$,1AFAzB4AvB=B AqB*(B, $,1<U<C<5<m<5<N<m(B, $,1=h=n=x>-=U=~=p=B(B, $(7"7"!#C!;"E"S"G!;"7"2"[!;"D"["#"G!>(B
|
||||
South East Asia: $,1\'\f\:\V\4\?\]\:(B, (1JP:R-4U(B, $,1H9H$HYrmH"H<HLH5HL(B, ,TJGQJ4U$CQ:(B, Ch,1`(Bo b,1U(Bn
|
||||
South East Asia: $,1\'\f\:\V\4\?\]\:(B, (1JP:R-4U(B, $,1H9H$HZHYH"H<HLH5HK(B, ,TJGQJ4U$CQ:(B, Ch,1`(Bo b,1U(Bn
|
||||
East Asia: $ADc:C(B, $(0*/=((B, $B$3$s$K$A$O(B, $(C>H3gGO<<?d(B
|
||||
Misc: E,C6(Bo,C~(Ban,Cx(Bo ,Cf(Biu,C<(Ba,C}(Bde, $,2(3(1('('(5(B, $,1x (B p $,1x((B world $,1s"(B hello p $,2!a(B
|
||||
CJK variety: GB($AT*Fx(B,$A?*7"(B), BIG5($(0&x86(B,$(0DeBv(B), JIS($B855$(B,$B3+H/(B), KSC($(Cj*Q((B,$(CKR[!(B)
|
||||
|
@ -19,7 +19,7 @@ Amharic ($,1O M[MmN{(B) $,1M`MKM](B
|
|||
Arabic $,1ro(B(,GGdYQHjqI(B) ,GGdSqdGe(B ,GYdjce(B
|
||||
Bengali ($,17,7>6b727>(B) $,17(7.787M6u7>70(B
|
||||
Braille $,2(3(1('('(5(B
|
||||
Burmese ($,1H9HYH;H4HYrlH9HL(B) $,1H9H$HYrmH"H<HLH5HL(B
|
||||
Burmese ($,1H9H\H4HZH9HL(B) $,1H9H$HZHYH"H<HLH5HK(B
|
||||
C printf ("Hello, world!\n");
|
||||
Czech (,Bh(Be,B9(Btina) Dobr,A}(B den
|
||||
Danish (dansk) Hej / Goddag / Hall,Ax(Bj
|
||||
|
|
250
etc/NEWS.23
250
etc/NEWS.23
|
@ -14,97 +14,80 @@ 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.
|
||||
|
||||
|
||||
Temporary note:
|
||||
+++ indicates that the appropriate manual has already been updated.
|
||||
--- means no change in the manuals is called for.
|
||||
When you add a new item, please add it without either +++ or ---
|
||||
so we will look at it and add it to the manual.
|
||||
|
||||
|
||||
* Installation Changes in Emacs 23.2
|
||||
|
||||
---
|
||||
** New configure options for Emacs developers
|
||||
** New configure options for Emacs developers.
|
||||
These are not new features; only the configure flags are new.
|
||||
---
|
||||
|
||||
*** --enable-profiling builds Emacs with profiling enabled.
|
||||
This might not work on all platforms.
|
||||
---
|
||||
|
||||
*** --enable-checking[=OPTIONS] builds emacs with extra runtime checks.
|
||||
|
||||
---
|
||||
** `make install' now consistently ignores umask, creating a
|
||||
world-readable install.
|
||||
|
||||
+++
|
||||
** Emacs compiles with Gconf support, if it is detected.
|
||||
Use the configure option --without-gconf to disable this.
|
||||
This is used by the `font-use-system-font' feature (see below).
|
||||
|
||||
* Startup Changes in Emacs 23.2
|
||||
+++
|
||||
|
||||
** The command-line option -Q (--quick) also inhibits loading X resources.
|
||||
However, if Emacs is compiled with the Lucid or Motif toolkit, X
|
||||
resource settings for the graphical widgets are still applied.
|
||||
On Windows, the -Q option causes Emacs to ignore Registry settings,
|
||||
but environment variables set on the Registry are still honored.
|
||||
+++
|
||||
|
||||
*** The new variable `inhibit-x-resources' shows whether X resources
|
||||
were loaded.
|
||||
|
||||
+++
|
||||
** New command-line option -mm (--maximized) maximizes the initial frame.
|
||||
|
||||
* Changes in Emacs 23.2
|
||||
|
||||
+++
|
||||
** The maximum size of buffers (and the largest fixnum) is doubled.
|
||||
On typical 32bit systems, buffers can now be up to 512MB.
|
||||
|
||||
---
|
||||
** The default value of `trash-directory' is now nil.
|
||||
This means that `move-file-to-trash' trashes files according to
|
||||
freedesktop.org specifications, the same method used by the Gnome,
|
||||
KDE, and XFCE desktops. (This change has no effect on Windows, which
|
||||
uses `system-move-file-to-trash' for trashing.)
|
||||
|
||||
+++
|
||||
** The pointer now becomes invisible when typing.
|
||||
Customize `make-pointer-invisible' to disable this feature.
|
||||
|
||||
** Font changes
|
||||
+++
|
||||
|
||||
*** Emacs can use the system default monospaced font in Gnome.
|
||||
To enable this feature, set `font-use-system-font' to non-nil (it is
|
||||
nil by default). If the system default changes, Emacs changes also.
|
||||
This feature requires Gconf support, which is automatically included
|
||||
at compile-time if configure detects the gconf libraries (you can
|
||||
disable this with the configure option --without-gconf).
|
||||
---
|
||||
|
||||
*** On X11, Emacs reacts to Xft changes made by configuration tools,
|
||||
via the XSETTINGS mechanism. This includes antialias, hinting,
|
||||
hintstyle, RGBA, DPI and lcdfilter changes.
|
||||
|
||||
+++
|
||||
** Killing a buffer with a running process now asks for confirmation.
|
||||
To remove this query, remove `process-kill-buffer-query-function' from
|
||||
`kill-buffer-query-functions', or set the appropriate process flag
|
||||
with `set-process-query-on-exit-flag'.
|
||||
|
||||
** File-local variable changes
|
||||
+++
|
||||
|
||||
*** Specifying a minor mode as a local variables enables that mode,
|
||||
unconditionally. The previous behavior, toggling the mode, was
|
||||
neither reliable nor generally desirable.
|
||||
|
||||
+++
|
||||
*** There are new commands for adding and removing file-local variables:
|
||||
`add-file-local-variable', `delete-file-local-variable',
|
||||
`add-file-local-variable-prop-line', and
|
||||
`delete-file-local-variable-prop-line'.
|
||||
|
||||
+++
|
||||
*** There are new commands for adding and removing directory-local variables,
|
||||
and copying them to and from file-local variable lists:
|
||||
`add-dir-local-variable', `delete-dir-local-variable',
|
||||
|
@ -113,55 +96,63 @@ and copying them to and from file-local variable lists:
|
|||
`copy-file-locals-to-dir-locals'.
|
||||
|
||||
** Internationalization changes
|
||||
+++
|
||||
|
||||
*** Unibyte sessions are now considered obsolete.
|
||||
This refers to the EMACS_UNIBYTE environment variable as well as the
|
||||
--unibyte, --multibyte, --no-multibyte, and --no-unibyte command line
|
||||
arguments. Customizing enable-multibyte-characters and setting
|
||||
default-enable-multibyte-characters are also deprecated.
|
||||
---
|
||||
|
||||
*** New coding system `utf-8-hfs'.
|
||||
This is suitable for default-file-name-coding-system on Mac OS X; see
|
||||
international/ucs-normalize.el.
|
||||
|
||||
---
|
||||
** Function arguments in *Help* buffers are now shown in upper-case.
|
||||
Customize `help-downcase-arguments' to t to show them in lower-case.
|
||||
|
||||
** New command `async-shell-command', bound globally to `M-&'.
|
||||
This executes the command asynchronously, similar to calling `M-!' and
|
||||
manually adding an ampersand to the end of the command. With `M-&',
|
||||
you don't need the ampersand. The output appears in the buffer
|
||||
`*Async Shell Command*'.
|
||||
|
||||
** When running in a new enough xterm (newer than version 242), Emacs
|
||||
asks xterm what the background color is and it sets up faces
|
||||
accordingly for a dark background if needed (the current default is to
|
||||
consider the background light).
|
||||
|
||||
|
||||
* Editing Changes in Emacs 23.2
|
||||
|
||||
** Kill-ring and selection changes
|
||||
+++
|
||||
|
||||
*** If `select-active-regions' is t, any active region automatically
|
||||
becomes the primary selection (for interaction with other window
|
||||
applications). If you enable this, you might want to bind
|
||||
`mouse-yank-primary' to Mouse-2.
|
||||
+++
|
||||
|
||||
*** When `save-interprogram-paste-before-kill' is non-nil, the kill
|
||||
commands save the interprogram-paste selection into the kill ring
|
||||
before doing anything else. This avoids losing the selection.
|
||||
+++
|
||||
|
||||
*** When `kill-do-not-save-duplicates' is non-nil, identical
|
||||
subsequent kills are not duplicated in the `kill-ring'.
|
||||
|
||||
** Completion changes
|
||||
|
||||
*** The new command `completion-at-point' provides mode-sensitive completion.
|
||||
+++
|
||||
|
||||
*** tab-always-indent set to `complete' lets TAB do completion as well.
|
||||
+++
|
||||
|
||||
*** The new completion-style `initials' is available.
|
||||
For instance, this can complete M-x lch to list-command-history.
|
||||
---
|
||||
|
||||
*** The new variable `completions-format' determines how completions
|
||||
are displayed in the *Completions* buffer. If you set it to
|
||||
`vertical', completions are sorted vertically in columns.
|
||||
|
||||
+++
|
||||
** The default value of `blink-matching-paren-distance' is increased.
|
||||
|
||||
---
|
||||
** M-n provides more default values in the minibuffer for commands
|
||||
that read file names. These include the file name at point (when ffap
|
||||
is loaded without ffap-bindings), the file name on the current line
|
||||
|
@ -169,59 +160,44 @@ is loaded without ffap-bindings), the file name on the current line
|
|||
(for Dired commands that operate on several directories, such as copy,
|
||||
rename, or diff).
|
||||
|
||||
+++
|
||||
** M-r is bound to the new `move-to-window-line-top-bottom'.
|
||||
This moves point to the window center, top and bottom on successive
|
||||
invocations, in the same spirit as the C-l (recenter-top-bottom)
|
||||
command.
|
||||
|
||||
+++
|
||||
** The new variable `recenter-positions' determines the default
|
||||
cycling order of C-l (`recenter-top-bottom').
|
||||
|
||||
+++
|
||||
** The abbrevs file is now a file named abbrev_defs in
|
||||
user-emacs-directory; but the old location, ~/.abbrev_defs, is used if
|
||||
that file exists.
|
||||
|
||||
|
||||
* Changes in Specialized Modes and Packages in Emacs 23.2
|
||||
|
||||
---
|
||||
** The bookmark menu has a narrowing search via bookmark-bmenu-search.
|
||||
|
||||
** LaTeX mode now provides completion (via completion-at-point).
|
||||
|
||||
---
|
||||
** sym-comp.el is now declared obsolete, superseded by completion-at-point.
|
||||
|
||||
---
|
||||
** lucid.el and levents.el are now declared obsolete.
|
||||
|
||||
---
|
||||
** pcomplete provides a new command `pcomplete-std-completion' which
|
||||
is similar to `pcomplete' but using the standard completion UI code.
|
||||
|
||||
** Calc
|
||||
+++
|
||||
|
||||
*** The Calc settings file is now a file named calc.el in
|
||||
user-emacs-directory; but the old location, ~/.calc.el, is used if
|
||||
that file exists.
|
||||
---
|
||||
|
||||
*** Graphing commands (`g f' etc.) now work on MS-Windows, if you have
|
||||
the native Windows port of Gnuplot version 3.8 or later installed.
|
||||
|
||||
** Calendar and diary
|
||||
+++
|
||||
|
||||
*** Fancy diary display is now the default.
|
||||
If you prefer the simple display, customize `diary-display-function'.
|
||||
+++
|
||||
|
||||
*** The diary's fancy display now enables view-mode.
|
||||
---
|
||||
|
||||
*** The command `calendar-current-date' accepts an optional argument
|
||||
giving an offset from today.
|
||||
|
||||
** Desktop
|
||||
---
|
||||
|
||||
*** The default value for `desktop-buffers-not-to-save' is nil.
|
||||
This means Desktop will try restoring all buffers, when you restart
|
||||
your Emacs session. Also, `desktop-buffers-not-to-save' is only
|
||||
|
@ -230,37 +206,50 @@ exempt buffers that do correspond to files, customize the value of
|
|||
`desktop-files-not-to-save' instead.
|
||||
|
||||
** Dired
|
||||
+++
|
||||
|
||||
*** The new variable `dired-auto-revert-buffer', if non-nil, causes
|
||||
Dired buffers to be reverted automatically on revisiting them.
|
||||
|
||||
** DocView
|
||||
+++
|
||||
|
||||
*** When `doc-view-continuous' is non-nil, scrolling a line
|
||||
on the page edge advances to the next/previous page.
|
||||
|
||||
** Elint
|
||||
|
||||
*** Elint now uses compilation-mode.
|
||||
|
||||
*** Elint can now scan individual files and whole directories,
|
||||
and can be run in batch mode.
|
||||
|
||||
*** Elint does a more thorough initialization, and recognizes more built-in
|
||||
functions and variables. Customize `elint-scan-preloaded' if you want
|
||||
to sacrifice some accuracy for a faster startup.
|
||||
|
||||
*** Elint attempts some basic understanding of featurep and (f)boundp tests.
|
||||
|
||||
*** Customize `elint-ignored-warnings' to suppress some warnings.
|
||||
|
||||
** GDB-UI
|
||||
|
||||
+++
|
||||
*** Toolbar functionality for reverse debugging. Display of STL
|
||||
collections as watch expressions. These features require GDB 7.0 or later.
|
||||
|
||||
** Grep
|
||||
+++
|
||||
|
||||
*** A new command `zrgrep' searches recursively in gzipped files.
|
||||
|
||||
** Info
|
||||
|
||||
+++
|
||||
*** The new command `Info-virtual-index' bound to "I" displays a menu of
|
||||
matched topics found in the index.
|
||||
|
||||
+++
|
||||
*** The new command `info-finder' replaces finder.el with a virtual Info
|
||||
manual that generates an Info file which gives the same information
|
||||
through a menu structure.
|
||||
|
||||
+++
|
||||
** LaTeX mode now provides completion (via completion-at-point).
|
||||
|
||||
** Message mode is now the default mode for composing mail.
|
||||
|
||||
The default for `mail-user-agent' is now message-user-agent, so the
|
||||
|
@ -270,7 +259,6 @@ Message mode has been included in Emacs, as part of the Gnus package,
|
|||
for several years. It provides several features that are absent in
|
||||
Mail mode, such as MIME handling.
|
||||
|
||||
---
|
||||
*** If the user has not customized mail-user-agent, `compose-mail'
|
||||
checks for Mail mode customizations, and issues a warning if these
|
||||
customizations are found. This alerts users who may otherwise be
|
||||
|
@ -278,110 +266,87 @@ unaware that their mail configuration has changed.
|
|||
|
||||
To disable this check, set compose-mail-user-agent-warnings to nil.
|
||||
|
||||
---
|
||||
** The default value of mail-interactive is t, since Emacs 23.1.
|
||||
(This was not announced at the time.) It means that when sending mail,
|
||||
Emacs will wait for the process sending mail to return. If you
|
||||
experience delays when sending mail, you may wish to set this to nil.
|
||||
|
||||
+++
|
||||
** nXML mode is now the default for editing XML files.
|
||||
|
||||
** pcomplete provides a new command `pcomplete-std-completion' which
|
||||
is similar to `pcomplete' but using the standard completion UI code.
|
||||
|
||||
** Shell (and other comint modes)
|
||||
+++
|
||||
|
||||
*** M-s is no longer bound to `comint-next-matching-input'.
|
||||
+++
|
||||
|
||||
*** M-r is now bound to `comint-history-isearch-backward-regexp'.
|
||||
This starts an incremental search of the comint/shell input history.
|
||||
+++
|
||||
|
||||
*** ansi-color is now enabled by default in Shell mode.
|
||||
To disable it, set ansi-color-for-comint-mode to nil.
|
||||
|
||||
** Tramp
|
||||
+++
|
||||
|
||||
*** New connection methods "rsyncc", "imap" and "imaps".
|
||||
On systems which support GVFS-Fuse, Tramp offers also the new
|
||||
connection methods "dav", "davs", "obex" and "synce".
|
||||
|
||||
** VC and related modes
|
||||
+++
|
||||
|
||||
*** When using C-x v v or C-x v i on a unregistered file that is in a
|
||||
directory not controlled by any VCS, ask the user what VC backend to
|
||||
use to create a repository, create a new repository and register the
|
||||
file.
|
||||
+++
|
||||
|
||||
*** New command `vc-root-print-log', bound to `C-x v L'.
|
||||
This displays a `*vc-change-log*' buffer showing the history of the
|
||||
version-controlled directory tree as a whole.
|
||||
+++
|
||||
|
||||
*** New command `vc-root-diff', bound to `C-x v D'.
|
||||
This is similar to `vc-diff', but compares the entire directory tree
|
||||
of the current VC directory with its working revision.
|
||||
+++
|
||||
|
||||
*** `C-x v l' and `C-x v L' do not show the full log by default.
|
||||
The number of entries shown can be chosen interactively with a prefix
|
||||
argument, or by customizing vc-log-show-limit. The `*vc-change-log*'
|
||||
buffer now contains buttons at the end of the buffer, which can be
|
||||
used to increase the number of entries shown. RCS, SCCS, and CVS do
|
||||
not support this feature.
|
||||
---
|
||||
|
||||
*** vc-annotate supports annotations through file copies and renames,
|
||||
it displays the old names for the files and it can show logs/diffs for
|
||||
the corresponding lines. Currently only Git and Mercurial take
|
||||
advantage of this feature.
|
||||
---
|
||||
|
||||
*** The log command in vc-annotate can display a single log entry
|
||||
instead of redisplaying the full log. The RCS, CVS and SCCS VC
|
||||
backends do not support this.
|
||||
---
|
||||
|
||||
*** When a file is not found, VC will not try to check it out of RCS anymore.
|
||||
+++
|
||||
|
||||
*** Diff and log operations can be used from Dired buffers.
|
||||
|
||||
*** vc-git changes
|
||||
|
||||
---
|
||||
**** The short log format for git makes use of the graph display,
|
||||
so it's not supported on git versions earlier than 1.5.6.
|
||||
|
||||
---
|
||||
**** vc-dir uses the --relative option of git, and so requires at least
|
||||
git version 1.5.5.
|
||||
|
||||
+++
|
||||
**** Support for operating with stashes has been added to vc-dir:
|
||||
the stash list is displayed in the *vc-dir* header, stashes can be
|
||||
created, removed, applied and their content displayed.
|
||||
|
||||
+++
|
||||
*** vc-bzr supports operating with shelves: the shelve list is
|
||||
displayed in the *vc-dir* header, shelves can be created, removed and applied.
|
||||
---
|
||||
|
||||
*** log-edit-strip-single-file-name controls whether or not single filenames
|
||||
are stripped when copying text from the ChangeLog to the *VC-Log* buffer.
|
||||
|
||||
** Elint
|
||||
---
|
||||
*** Elint now uses compilation-mode.
|
||||
---
|
||||
*** Elint can now scan individual files and whole directories,
|
||||
and can be run in batch mode.
|
||||
---
|
||||
*** Elint does a more thorough initialization, and recognizes more built-in
|
||||
functions and variables. Customize `elint-scan-preloaded' if you want
|
||||
to sacrifice some accuracy for a faster startup.
|
||||
---
|
||||
*** Elint attempts some basic understanding of featurep and (f)boundp tests.
|
||||
---
|
||||
*** Customize `elint-ignored-warnings' to suppress some warnings.
|
||||
|
||||
** Miscellaneous
|
||||
+++
|
||||
*** The new command `async-shell-command' bound globally to `M-&' executes
|
||||
the command asynchronously without the need to manually add ampersand to
|
||||
the end of the command. Its output appears in the buffer `*Async Shell
|
||||
Command*'.
|
||||
+++
|
||||
|
||||
*** Interactively `multi-isearch-buffers' and `multi-isearch-buffers-regexp'
|
||||
read buffer names to search, one by one, ended with RET. With a prefix
|
||||
argument, they ask for a regexp, and search in buffers whose names match
|
||||
|
@ -389,19 +354,20 @@ the specified regexp. Interactively `multi-isearch-files' and
|
|||
`multi-isearch-files-regexp' read file names to search, one by one,
|
||||
ended with RET. With a prefix argument, they ask for a wildcard, and
|
||||
search in file buffers whose file names match the specified wildcard.
|
||||
+++
|
||||
|
||||
*** Autorevert Tail mode now works also for remote files.
|
||||
+++
|
||||
*** The new built-in commands `su' and `sudo' support Tramp.
|
||||
That means, they change `default-directory' to the new users value,
|
||||
and let commands run under that user permissions. It works even when
|
||||
|
||||
*** The new eshell built-in commands `su' and `sudo' support Tramp.
|
||||
Thus, they change `default-directory' to reflect the new user id, and
|
||||
let commands run under that user's permissions. This works even when
|
||||
`default-directory' is already remote. Calling the external commands
|
||||
is possible by `*su' or `*sudo', respectively.
|
||||
---
|
||||
*** When running in a new enough xterm (newer than version 242), Emacs
|
||||
asks xterm what the background color is and it sets up faces
|
||||
accordingly for a dark background if needed (the current default is to
|
||||
consider the background light).
|
||||
is possible via `*su' or `*sudo', respectively.
|
||||
|
||||
** Obsolete packages
|
||||
|
||||
*** sym-comp.el is now obsolete, superseded by completion-at-point.
|
||||
|
||||
*** lucid.el and levents.el are now obsolete.
|
||||
|
||||
|
||||
* New Modes and Packages in Emacs 23.2
|
||||
|
@ -410,7 +376,6 @@ consider the background light).
|
|||
This is a collection of packages to aid with using Emacs as an IDE
|
||||
(integrated development environment):
|
||||
|
||||
+++
|
||||
*** The Semantic package allows the use of parsers to intelligently
|
||||
edit and navigate source code. Parsers for C/C++, Java, Javascript,
|
||||
and several other languages are included by default, and Semantic can
|
||||
|
@ -419,7 +384,6 @@ also interface with external tools such as GNU Global and GNU Idutils.
|
|||
To enable Semantic, use the global minor mode `semantic-mode'.
|
||||
See the Semantic manual for details.
|
||||
|
||||
+++
|
||||
*** EDE (Emacs Development Environment) is a package for managing code
|
||||
projects, including features such as automatic Makefile generation.
|
||||
|
||||
|
@ -430,25 +394,20 @@ See the EDE manual for details.
|
|||
code. It is currently used by some parts of Semantic and EDE; in the
|
||||
future, it may be used for code generation features.
|
||||
|
||||
+++
|
||||
*** The EIEIO library implements a subset of the Common Lisp Object
|
||||
System (CLOS). It is used by the other CEDET packages.
|
||||
|
||||
---
|
||||
** mpc.el is a front end for the Music Player Daemon. Run it with M-x mpc.
|
||||
|
||||
** htmlfontify.el turns a fontified Emacs buffer into an HTML page.
|
||||
|
||||
+++
|
||||
** js.el is a new major mode for JavaScript files.
|
||||
|
||||
---
|
||||
** imap-hash.el is a new library to address IMAP mailboxes as hashtables.
|
||||
|
||||
|
||||
* Incompatible Lisp Changes in Emacs 23.2
|
||||
|
||||
+++
|
||||
** The Lisp reader turns integers that are too large/small into floats.
|
||||
For instance, on machines where `536870911' is the largest integer,
|
||||
reading `536870912' gives the floating-point object `536870912.0'.
|
||||
|
@ -456,7 +415,6 @@ reading `536870912' gives the floating-point object `536870912.0'.
|
|||
This change only concerns the Lisp reader; it does not affect how
|
||||
actual integer objects overflow.
|
||||
|
||||
---
|
||||
** Several obsolete functions removed.
|
||||
The functions have been obsolete since Emacs 19, and are unlikely to
|
||||
be in use:
|
||||
|
@ -466,11 +424,9 @@ be in use:
|
|||
time-stamp-yyyy-mm-dd, time-stamp-yymmdd, time-stamp-hh:mm:ss,
|
||||
time-stamp-hhmm, baud-rate
|
||||
|
||||
---
|
||||
** Support for generating Emacs 18 compatible bytecode (by setting
|
||||
the variable `byte-compile-compatibility') has been removed.
|
||||
|
||||
---
|
||||
** In image-mode.el `image-mode-maybe' is obsolete.
|
||||
Instead, you can either use `image-mode' (which displays an image file
|
||||
as the actual image initially), or `image-mode-as-text' (when you want
|
||||
|
@ -484,7 +440,7 @@ key binding to toggle image display.
|
|||
|
||||
|
||||
* Lisp changes in Emacs 23.2
|
||||
---
|
||||
|
||||
** All the default-FOO variables that hold the default value of the FOO
|
||||
variable, are now declared obsolete.
|
||||
|
||||
|
@ -492,10 +448,10 @@ variable, are now declared obsolete.
|
|||
It reads a single key, but obeys input and escape sequence decoding.
|
||||
|
||||
** Frame parameter changes
|
||||
+++
|
||||
|
||||
*** You can give the `fullscreen' frame parameter the value `maximized'.
|
||||
This maximizes the frame.
|
||||
+++
|
||||
|
||||
*** The new frame parameter `sticky' makes Emacs frames sticky in
|
||||
virtual desktops.
|
||||
|
||||
|
@ -509,23 +465,23 @@ argument is now always nil.
|
|||
|
||||
*** New function `completion-in-region' to use the standard completion
|
||||
facilities on a particular region of text.
|
||||
+++
|
||||
|
||||
*** The 4th arg to all-completions (aka hide-spaces) is declared obsolete.
|
||||
|
||||
*** completion-annotate-function specifies how to compute annotations
|
||||
for completions displayed in *Completions*.
|
||||
|
||||
** Minibuffer changes
|
||||
---
|
||||
|
||||
*** read-file-name-predicate is obsolete. It was used to pass the predicate
|
||||
to read-file-name-internal because read-file-name-internal abused its `pred'
|
||||
argument to pass the current directory, but this hack is not needed
|
||||
any more.
|
||||
|
||||
** Changes to file-manipulation functions
|
||||
+++
|
||||
|
||||
*** `delete-directory' has an optional parameter RECURSIVE.
|
||||
+++
|
||||
|
||||
*** New function `copy-directory', which copies a directory recursively.
|
||||
|
||||
** called-interactively-p now takes one argument and replaces interactive-p
|
||||
|
@ -540,34 +496,33 @@ command's symbol. That property can hold a single binding or a list
|
|||
of bindings.
|
||||
|
||||
** Network and process changes
|
||||
+++
|
||||
|
||||
*** start-process-shell-command and start-file-process-shell-command
|
||||
now only take a single `command' argument.
|
||||
+++
|
||||
|
||||
*** The new variable `process-file-side-effects' should be set to nil
|
||||
if a `process-file' call does not change a remote file. This allows
|
||||
file name handlers such as Tramp to optimizations.
|
||||
+++
|
||||
|
||||
*** make-network-process can now also create `seqpacket' Unix sockets.
|
||||
|
||||
** Loading changes
|
||||
---
|
||||
|
||||
*** eval-next-after-load is obsolete.
|
||||
+++
|
||||
|
||||
*** New hook `after-load-functions' run after loading an Elisp file.
|
||||
|
||||
** Byte compilation changes
|
||||
---
|
||||
|
||||
*** Changing the file-names generated by byte-compilation by redefining
|
||||
the function `byte-compile-dest-file' before loading bytecomp.el is obsolete.
|
||||
Instead, customize byte-compile-dest-file-function.
|
||||
---
|
||||
|
||||
*** `byte-compile-warnings' has new members, `constants' and `suspicious'.
|
||||
|
||||
** New macro with-silent-modifications to tweak text properties without
|
||||
affecting the buffer's modification state.
|
||||
|
||||
+++
|
||||
** Hash tables have a new printed representation that is readable.
|
||||
The feature `hashtable-print-readable' identifies this new
|
||||
functionality.
|
||||
|
@ -580,17 +535,14 @@ ucs-normalize-NFKC-region, ucs-normalize-NFKC-string,
|
|||
ucs-normalize-HFS-NFD-region, ucs-normalize-HFS-NFD-string,
|
||||
ucs-normalize-HFS-NFC-region, ucs-normalize-HFS-NFC-string.
|
||||
|
||||
+++
|
||||
** Face aliases can now be marked as obsolete, using the macro
|
||||
`define-obsolete-face-alias'.
|
||||
|
||||
+++
|
||||
** New function `window-full-height-p', analogous to the full-width version.
|
||||
|
||||
|
||||
* Changes in Emacs 23.2 on non-free operating systems
|
||||
|
||||
---
|
||||
** On MS-Windows, `display-time' now displays the system load average
|
||||
as well as the time, as it does on GNU and Unix.
|
||||
|
||||
|
@ -1398,11 +1350,11 @@ rather than fortran-indent-comment.
|
|||
** Gnus
|
||||
|
||||
*** The Gnus package has been updated
|
||||
There are many news features, bug fixes and improvements; see the file
|
||||
There are many new features, bug fixes and improvements; see the file
|
||||
GNUS-NEWS or the node "No Gnus" in the Gnus manual for details.
|
||||
|
||||
*** In Emacs 23, Gnus uses Emacs' new internal coding system `utf-8-emacs' for
|
||||
saving articles drafts and ~/.newsrc.eld. These file may not be read
|
||||
saving articles, drafts, and ~/.newsrc.eld. These file may not be read
|
||||
correctly in Emacs 22 and below. If you want to Gnus across different Emacs
|
||||
versions, you may set `mm-auto-save-coding-system' to `emacs-mule'.
|
||||
|
||||
|
@ -1455,8 +1407,8 @@ for buff-menu.el and ibuffer.el are bound to the keys `M-s a C-s' and
|
|||
*** `C-h C-h' in Isearch mode displays isearch-specific Help screen,
|
||||
`C-h b' displays all Isearch key bindings, `C-h k' displays the full
|
||||
documentation of the given Isearch key sequence, `C-h m' displays
|
||||
documentation of Isearch mode. All the rest Help commands exit Isearch mode
|
||||
and execute their global definitions.
|
||||
documentation for Isearch mode. All the other Help commands exit
|
||||
Isearch mode and execute their global definitions.
|
||||
|
||||
*** When started in the minibuffer, Isearch searches in the minibuffer
|
||||
history. See `Minibuffer changes', above.
|
||||
|
|
11
etc/PROBLEMS
11
etc/PROBLEMS
|
@ -167,6 +167,17 @@ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=239344
|
|||
|
||||
* Crash bugs
|
||||
|
||||
** Emacs crashes when running in a terminal, if compiled with GCC 4.5.0
|
||||
This version of GCC is buggy: see
|
||||
|
||||
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6031
|
||||
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43904
|
||||
|
||||
You can work around this error in gcc-4.5 by omitting sibling call
|
||||
optimization. To do this, configure Emacs with
|
||||
|
||||
CFLAGS="-g -O2 -fno-optimize-sibling-calls" ./configure
|
||||
|
||||
** Emacs crashes in x-popup-dialog.
|
||||
|
||||
This can happen if the dialog widget cannot find the font it wants to
|
||||
|
|
|
@ -219,7 +219,7 @@ in the distribution.</indent>
|
|||
paragraph properly filled all the time, without slowing down
|
||||
editing too much. Refill mode is a start at this, but needs
|
||||
|
||||
</indent></indent> <indent>improvment.
|
||||
</indent></indent> <indent>improvement.
|
||||
|
||||
+ Refill after yank. [Refill mode does that.]
|
||||
|
||||
|
@ -272,4 +272,4 @@ COPYING PERMISSIONS:
|
|||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
along with this program. If not, see <<http://www.gnu.org/licenses/>.
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-04-06 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* quail/vntelex.el: Fix "af" rule (Bug#5836).
|
||||
|
|
|
@ -1,7 +1,16 @@
|
|||
2010-05-08 Christoph <cschol2112@googlemail.com> (tiny change)
|
||||
|
||||
* makefile.w32-in (OTHER_PLATFORM_SUPPORT): Use parenthesis
|
||||
for macros for nmake compatibility.
|
||||
|
||||
2010-05-08 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (THIS_IS_MAKEFILE): Remove, unused.
|
||||
|
||||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-06 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in: Minimize blessmail-related cpp usage.
|
||||
|
|
|
@ -1,3 +1,95 @@
|
|||
2010-05-08 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* international/mule.el (auto-coding-alist): Only purecopy
|
||||
car of each item, not the whole list (Bug#6083).
|
||||
|
||||
2010-05-08 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* progmodes/js.el (js-mode): Make paragraph variables local before
|
||||
calling c-setup-paragraph-variables (Bug#6071).
|
||||
|
||||
2010-05-08 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* composite.el (compose-region, reference-point-alist): Fix typos
|
||||
in the doc strings.
|
||||
|
||||
2010-05-08 Alexander Klimov <alserkli@inbox.ru> (tiny change)
|
||||
|
||||
* calc/calc-graph.el (calc-graph-plot): Use the proper form for
|
||||
gnuplot's "set" command.
|
||||
|
||||
2010-05-08 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* abbrev.el (last-abbrev-text): Doc fix.
|
||||
(abbrev-prefix-mark): Don't escape parenthesis.
|
||||
|
||||
2010-05-08 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* composite.el (find-composition): Doc fix.
|
||||
|
||||
2010-05-08 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* progmodes/sql.el (sql-electric-stuff): Fix typo in tag.
|
||||
(sql-oracle-program, sql-sqlite-options)
|
||||
(sql-query-placeholders-and-send): Doc fixes.
|
||||
(sql-set-product, sql-interactive-mode): Reflow docstrings.
|
||||
(sql-imenu-generic-expression, sql-buffer)
|
||||
(sql-mode-ansi-font-lock-keywords, sql-mode-oracle-font-lock-keywords)
|
||||
(sql-mode-postgres-font-lock-keywords, sql-mode-ms-font-lock-keywords)
|
||||
(sql-mode-sybase-font-lock-keywords)
|
||||
(sql-mode-informix-font-lock-keywords)
|
||||
(sql-mode-interbase-font-lock-keywords)
|
||||
(sql-mode-ingres-font-lock-keywords, sql-mode-solid-font-lock-keywords)
|
||||
(sql-mode-mysql-font-lock-keywords, sql-mode-sqlite-font-lock-keywords)
|
||||
(sql-mode-db2-font-lock-keywords, sql-mode-font-lock-keywords)
|
||||
(sql-product-feature, sql-highlight-product)
|
||||
(comint-line-beginning-position, sql-rename-buffer)
|
||||
(sql-toggle-pop-to-buffer-after-send-region sql-oracle)
|
||||
(sql-sybase, sql-informix, sql-sqlite, sql-mysql, sql-solid)
|
||||
(sql-ingres, sql-ms, sql-postgres, sql-interbase, sql-db2, sql-linter):
|
||||
Fix typos in docstrings.
|
||||
|
||||
2010-05-08 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* info.el (Info-fontify-node): Put Info-breadcrumbs to the `display'
|
||||
property instead of `invisible' and `after-string' (bug#5998).
|
||||
|
||||
2010-05-08 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* image-mode.el (image-mode-as-text): Fix typo in docstring.
|
||||
|
||||
2010-05-08 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* filecache.el (file-cache-add-directory-list)
|
||||
(file-cache-add-directory-recursively): Fix typos in docstrings.
|
||||
|
||||
2010-05-08 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* language/indian.el (gurmukhi-composable-pattern): Fix typo.
|
||||
(gujarati-composable-pattern): Fix typo.
|
||||
|
||||
2010-05-08 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* language/indian.el (oriya-composable-pattern)
|
||||
(tamil-composable-pattern, malayalam-composable-pattern):
|
||||
Add two-part vowels to "v" (vowel sign).
|
||||
|
||||
2010-05-08 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* files.el (copy-directory): Handle symlinks (Bug#5982).
|
||||
|
||||
2010-05-08 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
* vc-hg.el (vc-hg-state): Use HGRCPATH, not HGRC.
|
||||
(vc-hg-working-revision): Likewise. Use hg parents, not hg parent
|
||||
(Bug#5846).
|
||||
|
||||
2010-05-08 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* emacs-lisp/lisp.el (lisp-completion-at-point): Give it a doc string.
|
||||
|
||||
* minibuffer.el (completion-at-point): Doc fix.
|
||||
|
||||
2010-05-08 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* electric.el (Electric-command-loop): Minor tweak.
|
||||
|
@ -5,6 +97,10 @@
|
|||
* ebuff-menu.el (electric-buffer-list): Try and make it behave a bit
|
||||
better with dedicated windows.
|
||||
|
||||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-07 Deniz Dogan <deniz.a.m.dogan@gmail.com> (tiny change)
|
||||
Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
|
|
|
@ -338,7 +338,7 @@ Expands the abbreviation after defining it."
|
|||
Abbrev to be expanded starts here rather than at beginning of word.
|
||||
This way, you can expand an abbrev with a prefix: insert the prefix,
|
||||
use this command, then insert the abbrev. This command inserts a
|
||||
temporary hyphen after the prefix \(until the intended abbrev
|
||||
temporary hyphen after the prefix (until the intended abbrev
|
||||
expansion occurs).
|
||||
If the prefix is itself an abbrev, this command expands it, unless
|
||||
ARG is non-nil. Interactively, ARG is the prefix argument."
|
||||
|
@ -460,7 +460,7 @@ Trying to expand an abbrev in any other buffer clears `abbrev-start-location'.")
|
|||
|
||||
(defvar last-abbrev-text nil
|
||||
"The exact text of the last abbrev expanded.
|
||||
nil if the abbrev has already been unexpanded.")
|
||||
It is nil if the abbrev has already been unexpanded.")
|
||||
|
||||
(defvar last-abbrev-location 0
|
||||
"The location of the start of the last abbrev expanded.")
|
||||
|
|
|
@ -345,7 +345,7 @@
|
|||
"set xlabel\nset ylabel\nset title\n"
|
||||
"set noclip points\nset clip one\nset clip two\n"
|
||||
"set format \"%g\"\nset tics\nset xtics\nset ytics\n"
|
||||
"set data style linespoints\n"
|
||||
"set style data linespoints\n"
|
||||
"set nogrid\nset nokey\nset nopolar\n"))
|
||||
(if (>= ver 3)
|
||||
(insert "set surface\nset nocontour\n"
|
||||
|
|
|
@ -628,11 +628,12 @@ considered."
|
|||
(minibuffer-message "Nothing to complete")
|
||||
(let ((completion-annotate-function
|
||||
(plist-get plist :annotate-function)))
|
||||
(completion-in-region (nth 0 data) (nth 1 data) (nth 2 data)
|
||||
(completion-in-region (nth 0 data) (nth 1 data) (nth 2 data)
|
||||
(plist-get plist :predicate))))))
|
||||
|
||||
|
||||
|
||||
(defun lisp-completion-at-point (&optional predicate)
|
||||
"Function used for `completion-at-point-functions' in `emacs-lisp-mode'."
|
||||
;; FIXME: the `end' could be after point?
|
||||
(let* ((pos (point))
|
||||
(beg (with-syntax-table emacs-lisp-mode-syntax-table
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-03-10 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Branch for 23.2.
|
||||
|
@ -12,8 +16,8 @@
|
|||
(erc-server-reconnect): Use it to reconnect via old
|
||||
connector (Bug#4958).
|
||||
|
||||
* erc.el (erc-determine-parameters): Save
|
||||
erc-server-connect-function to erc-session-connector.
|
||||
* erc.el (erc-determine-parameters):
|
||||
Save erc-server-connect-function to erc-session-connector.
|
||||
|
||||
2009-11-03 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
|
|
|
@ -296,8 +296,8 @@ be added to the cache."
|
|||
(defun file-cache-add-directory-list (directory-list &optional regexp)
|
||||
"Add DIRECTORY-LIST (a list of directory names) to the file cache.
|
||||
If the optional REGEXP argument is non-nil, only files which match it
|
||||
will be added to the cache. Note that the REGEXP is applied to the files
|
||||
in each directory, not to the directory list itself."
|
||||
will be added to the cache. Note that the REGEXP is applied to the
|
||||
files in each directory, not to the directory list itself."
|
||||
(interactive "XAdd files from directory list: ")
|
||||
(mapcar
|
||||
(lambda (dir) (file-cache-add-directory dir regexp))
|
||||
|
@ -370,10 +370,10 @@ STRING is passed as an argument to the locate command."
|
|||
;;;###autoload
|
||||
(defun file-cache-add-directory-recursively (dir &optional regexp)
|
||||
"Adds DIR and any subdirectories to the file-cache.
|
||||
This function does not use any external programs
|
||||
This function does not use any external programs.
|
||||
If the optional REGEXP argument is non-nil, only files which match it
|
||||
will be added to the cache. Note that the REGEXP is applied to the files
|
||||
in each directory, not to the directory list itself."
|
||||
will be added to the cache. Note that the REGEXP is applied to the
|
||||
files in each directory, not to the directory list itself."
|
||||
(interactive "DAdd directory: ")
|
||||
(require 'find-lisp)
|
||||
(mapcar
|
||||
|
|
|
@ -4753,10 +4753,14 @@ this happens by default."
|
|||
(mapc
|
||||
(lambda (file)
|
||||
(let ((target (expand-file-name
|
||||
(file-name-nondirectory file) newname)))
|
||||
(if (file-directory-p file)
|
||||
(copy-directory file target keep-time parents)
|
||||
(copy-file file target t keep-time))))
|
||||
(file-name-nondirectory file) newname))
|
||||
(attrs (file-attributes file)))
|
||||
(cond ((file-directory-p file)
|
||||
(copy-directory file target keep-time parents))
|
||||
((stringp (car attrs)) ; Symbolic link
|
||||
(make-symbolic-link (car attrs) target t))
|
||||
(t
|
||||
(copy-file file target t keep-time)))))
|
||||
;; We do not want to copy "." and "..".
|
||||
(directory-files directory 'full directory-files-no-dot-files-regexp))
|
||||
|
||||
|
|
|
@ -392,7 +392,7 @@ displays an image file as text. `image-minor-mode' provides the key
|
|||
to display an image file as the actual image.
|
||||
|
||||
You can use `image-mode-as-text' in `auto-mode-alist' when you want
|
||||
to display an image file as text inititally.
|
||||
to display an image file as text initially.
|
||||
|
||||
See commands `image-mode' and `image-minor-mode' for more information
|
||||
on these modes."
|
||||
|
|
|
@ -4343,8 +4343,7 @@ the variable `Info-file-list-for-emacs'."
|
|||
(cond
|
||||
((> Info-breadcrumbs-depth 0)
|
||||
(let ((ov (make-overlay (point-min) (1+ header-end))))
|
||||
(overlay-put ov 'invisible t)
|
||||
(overlay-put ov 'after-string (Info-breadcrumbs))
|
||||
(overlay-put ov 'display (Info-breadcrumbs))
|
||||
(overlay-put ov 'evaporate t)))
|
||||
((not (bobp))
|
||||
;; Hide the punctuation at the end, too.
|
||||
|
|
|
@ -1690,7 +1690,8 @@ and convert it in the temporary buffer. Otherwise, convert in-place."
|
|||
(defcustom auto-coding-alist
|
||||
;; .exe and .EXE are added to support archive-mode looking at DOS
|
||||
;; self-extracting exe archives.
|
||||
(purecopy '(("\\.\\(\
|
||||
(mapcar (lambda (arg) (cons (purecopy (car arg)) (cdr arg)))
|
||||
'(("\\.\\(\
|
||||
arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|rar\\|7z\\|\
|
||||
ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|7Z\\)\\'"
|
||||
. no-conversion-multibyte)
|
||||
|
|
|
@ -198,15 +198,14 @@ South Indian language Malayalam is supported in this language environment."))
|
|||
|
||||
(defconst gurmukhi-composable-pattern
|
||||
(let ((table
|
||||
'(("a" . "[\u0A01-\u0A02]") ; SIGN ADAK BINDI .. BINDI
|
||||
("A" . "\u0A03]") ; SIGN VISARGA
|
||||
'(("a" . "[\u0A01-\u0A02\u0A70]") ; SIGN ADAK BINDI .. BINDI, TIPPI
|
||||
("A" . "\u0A03") ; SIGN VISARGA
|
||||
("V" . "[\u0A05-\u0A14]") ; independent vowel
|
||||
("C" . "[\u0A15-\u0A39\u0A59-\u0A5E]") ; consonant
|
||||
("Y" . "[\u0A2F\u0A30\u0A35\u0A39]") ; YA, RA, VA, HA
|
||||
("Y" . "[\u0A2F-u0A30\u0A35\u0A39]") ; YA, RA, VA, HA
|
||||
("n" . "\u0A3C") ; NUKTA
|
||||
("v" . "[\u0A3E-\u0A4C]") ; vowel sign
|
||||
("H" . "\u0A4D") ; VIRAMA
|
||||
("a" . "\u0A70") ; TIPPI
|
||||
("N" . "\u200C") ; ZWNJ
|
||||
("J" . "\u200D") ; ZWJ
|
||||
("X" . "[\u0A00-\u0A7F]")))) ; all coverage
|
||||
|
@ -226,7 +225,7 @@ South Indian language Malayalam is supported in this language environment."))
|
|||
(defconst gujarati-composable-pattern
|
||||
(let ((table
|
||||
'(("a" . "[\u0A81-\u0A82]") ; SIGN CANDRABINDU .. ANUSVARA
|
||||
("A" . "\u0A83]") ; SIGN VISARGA
|
||||
("A" . "\u0A83") ; SIGN VISARGA
|
||||
("V" . "[\u0A85-\u0A94\u0AE0-\u0AE1]") ; independent vowel
|
||||
("C" . "[\u0A95-\u0AB9]") ; consonant
|
||||
("R" . "\u0AB0") ; RA
|
||||
|
@ -258,7 +257,7 @@ South Indian language Malayalam is supported in this language environment."))
|
|||
("B" . "[\u0B15-\u0B17\u0B1B-\u0B1D\u0B1F-\u0B21\u0B23-\u0B24\u0B27-\u0B30\u0B32-\u0B35\u0B38-\u0B39]") ; consonant with below form
|
||||
("R" . "\u0B30") ; RA
|
||||
("n" . "\u0B3C") ; NUKTA
|
||||
("v" . "[\u0B3E-\u0B44\u0B47\u0B56-\u0B57\u0B62-\u0B63]") ; vowel sign
|
||||
("v" . "[\u0B3E-\u0B4C\u0B56-\u0B57\u0B62-\u0B63]") ; vowel sign
|
||||
("H" . "\u0B4D") ; VIRAMA
|
||||
("N" . "\u200C") ; ZWNJ
|
||||
("J" . "\u200D") ; ZWJ
|
||||
|
@ -281,7 +280,7 @@ South Indian language Malayalam is supported in this language environment."))
|
|||
'(("a" . "\u0B82") ; SIGN ANUSVARA
|
||||
("V" . "[\u0B85-\u0B94]") ; independent vowel
|
||||
("C" . "[\u0B95-\u0BB9]") ; consonant
|
||||
("v" . "[\u0BBE-\u0BC8\u0BD7]") ; vowel sign
|
||||
("v" . "[\u0BBE-\u0BCC\u0BD7]") ; vowel sign
|
||||
("H" . "\u0BCD") ; VIRAMA
|
||||
("N" . "\u200C") ; ZWNJ
|
||||
("J" . "\u200D") ; ZWJ
|
||||
|
@ -351,7 +350,7 @@ South Indian language Malayalam is supported in this language environment."))
|
|||
("V" . "[\u0D05-\u0D14\u0D60-\u0D61]") ; independent vowel
|
||||
("C" . "[\u0D15-\u0D39]") ; consonant
|
||||
("Y" . "[\u0D2F-\u0D30\u0D32\u0D35]") ; YA, RA, LA, VA
|
||||
("v" . "[\u0D3E-\u0D48\u0D57\u0D62-\u0D63]") ; postbase matra
|
||||
("v" . "[\u0D3E-\u0D4C\u0D57\u0D62-\u0D63]") ; postbase matra
|
||||
("H" . "\u0D4D") ; SIGN VIRAMA
|
||||
("N" . "\u200C") ; ZWNJ
|
||||
("J" . "\u200D") ; ZWJ
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-03 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* mh-show.el (mh-showing-mode): Move function to mh-e.el.
|
||||
|
|
|
@ -1169,7 +1169,7 @@ Currently supported properties are:
|
|||
`:predicate' a predicate that completion candidates need to satisfy.
|
||||
`:annotation-function' the value to use for `completion-annotate-function'.")
|
||||
|
||||
(defun complete-symbol (&optional arg)
|
||||
(defun completion-at-point (&optional arg)
|
||||
"Perform completion on the text around point.
|
||||
The completion method is determined by `completion-at-point-functions'.
|
||||
|
||||
|
@ -1193,7 +1193,7 @@ language you are using."
|
|||
(completion-in-region start end (nth 2 res)
|
||||
(plist-get plist :predicate))))))))
|
||||
|
||||
(defalias 'completion-at-point 'complete-symbol)
|
||||
(define-obsolete-function-alias 'complete-symbol 'completion-at-point "24.1")
|
||||
|
||||
;;; Key bindings.
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-05 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* org-table.el (orgtbl-setup):
|
||||
|
@ -40,8 +44,7 @@
|
|||
* org-latex.el (org-export-latex-classes): Update docstring.
|
||||
|
||||
* org.el (org-format-latex-header): Add cookies to the header.
|
||||
(org-splice-latex-header): Implement placement according to
|
||||
cookies.
|
||||
(org-splice-latex-header): Implement placement according to cookies.
|
||||
|
||||
2010-04-10 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
|
@ -54,8 +57,8 @@
|
|||
|
||||
2010-04-10 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org-latex.el (org-export-latex-make-header): Use
|
||||
`org-splice-latex-header' to build the header.
|
||||
* org-latex.el (org-export-latex-make-header):
|
||||
Use `org-splice-latex-header' to build the header.
|
||||
(org-export-latex-classes): Update docstring.
|
||||
|
||||
* org.el (org-splice-latex-header): New function.
|
||||
|
|
|
@ -3327,6 +3327,13 @@ Key bindings:
|
|||
comment-start-skip "\\(//+\\|/\\*+\\)\\s *")
|
||||
|
||||
(let ((c-buffer-is-cc-mode t))
|
||||
;; FIXME: These are normally set by `c-basic-common-init'. Should
|
||||
;; we call it instead? (Bug#6071)
|
||||
(make-local-variable 'paragraph-start)
|
||||
(make-local-variable 'paragraph-separate)
|
||||
(make-local-variable 'paragraph-ignore-fill-prefix)
|
||||
(make-local-variable 'adaptive-fill-mode)
|
||||
(make-local-variable 'adaptive-fill-regexp)
|
||||
(c-setup-paragraph-variables))
|
||||
|
||||
(set (make-local-variable 'syntax-begin-function)
|
||||
|
|
|
@ -419,7 +419,7 @@ send current input in the SQLi buffer to the process.
|
|||
If set to nil, then you must use \\[comint-send-input] in order to send
|
||||
current input in the SQLi buffer to the process."
|
||||
:type '(choice (const :tag "Nothing" nil)
|
||||
(const :tag "The semikolon `;'" semicolon)
|
||||
(const :tag "The semicolon `;'" semicolon)
|
||||
(const :tag "The string `go' by itself" go))
|
||||
:version "20.8"
|
||||
:group 'SQL)
|
||||
|
@ -450,9 +450,9 @@ buffer is shown using `display-buffer'."
|
|||
"Define interesting points in the SQL buffer for `imenu'.
|
||||
|
||||
This is used to set `imenu-generic-expression' when SQL mode is
|
||||
entered. Subsequent changes to sql-imenu-generic-expression will not
|
||||
affect existing SQL buffers because imenu-generic-expression is a
|
||||
local variable.")
|
||||
entered. Subsequent changes to `sql-imenu-generic-expression' will
|
||||
not affect existing SQL buffers because imenu-generic-expression is
|
||||
a local variable.")
|
||||
|
||||
;; history file
|
||||
|
||||
|
@ -516,7 +516,7 @@ is changed."
|
|||
|
||||
Starts `sql-interactive-mode' after doing some setup.
|
||||
|
||||
Under NT, \"sqlplus\" usually starts the sqlplus \"GUI\". In order to
|
||||
On Windows, \"sqlplus\" usually starts the sqlplus \"GUI\". In order to
|
||||
start the sqlplus console, use \"plus33\" or something similar. You
|
||||
will find the file in your Orant\\bin directory.
|
||||
|
||||
|
@ -542,9 +542,7 @@ The program can also specify a TCP connection. See `make-comint'."
|
|||
:group 'SQL)
|
||||
|
||||
(defcustom sql-sqlite-options nil
|
||||
"*List of additional options for `sql-sqlite-program'.
|
||||
The following list of options is reported to make things work
|
||||
on Windows: \"-C\" \"-t\" \"-f\" \"-n\"."
|
||||
"*List of additional options for `sql-sqlite-program'."
|
||||
:type '(repeat string)
|
||||
:version "20.8"
|
||||
:group 'SQL)
|
||||
|
@ -727,7 +725,7 @@ Starts `sql-interactive-mode' after doing some setup."
|
|||
(defvar sql-buffer nil
|
||||
"Current SQLi buffer.
|
||||
|
||||
The global value of sql-buffer is the name of the latest SQLi buffer
|
||||
The global value of `sql-buffer' is the name of the latest SQLi buffer
|
||||
created. Any SQL buffer created will make a local copy of this value.
|
||||
See `sql-interactive-mode' for more on multiple sessions. If you want
|
||||
to change the SQLi buffer a SQL mode sends its SQL strings to, change
|
||||
|
@ -992,8 +990,8 @@ statement. The format of variable should be a valid
|
|||
This variable is used by `sql-mode' and `sql-interactive-mode'. The
|
||||
regular expressions are created during compilation by calling the
|
||||
function `regexp-opt'. Therefore, take a look at the source before
|
||||
you define your own sql-mode-ansi-font-lock-keywords. You may want to
|
||||
add functions and PL/SQL keywords.")
|
||||
you define your own `sql-mode-ansi-font-lock-keywords'. You may want
|
||||
to add functions and PL/SQL keywords.")
|
||||
|
||||
(defvar sql-mode-oracle-font-lock-keywords
|
||||
(let ((oracle-functions (sql-keywords-re
|
||||
|
@ -1208,7 +1206,7 @@ add functions and PL/SQL keywords.")
|
|||
This variable is used by `sql-mode' and `sql-interactive-mode'. The
|
||||
regular expressions are created during compilation by calling the
|
||||
function `regexp-opt'. Therefore, take a look at the source before
|
||||
you define your own sql-mode-oracle-font-lock-keywords. You may want
|
||||
you define your own `sql-mode-oracle-font-lock-keywords'. You may want
|
||||
to add functions and PL/SQL keywords.")
|
||||
|
||||
(defvar sql-mode-postgres-font-lock-keywords
|
||||
|
@ -1296,7 +1294,7 @@ to add functions and PL/SQL keywords.")
|
|||
This variable is used by `sql-mode' and `sql-interactive-mode'. The
|
||||
regular expressions are created during compilation by calling the
|
||||
function `regexp-opt'. Therefore, take a look at the source before
|
||||
you define your own sql-mode-postgres-font-lock-keywords.")
|
||||
you define your own `sql-mode-postgres-font-lock-keywords'.")
|
||||
|
||||
(defvar sql-mode-linter-font-lock-keywords
|
||||
(let ((linter-keywords (sql-keywords-re
|
||||
|
@ -1482,7 +1480,7 @@ function `regexp-opt'.")
|
|||
This variable is used by `sql-mode' and `sql-interactive-mode'. The
|
||||
regular expressions are created during compilation by calling the
|
||||
function `regexp-opt'. Therefore, take a look at the source before
|
||||
you define your own sql-mode-ms-font-lock-keywords.")
|
||||
you define your own `sql-mode-ms-font-lock-keywords'.")
|
||||
|
||||
(defvar sql-mode-sybase-font-lock-keywords nil
|
||||
"Sybase SQL keywords used by font-lock.
|
||||
|
@ -1490,7 +1488,7 @@ you define your own sql-mode-ms-font-lock-keywords.")
|
|||
This variable is used by `sql-mode' and `sql-interactive-mode'. The
|
||||
regular expressions are created during compilation by calling the
|
||||
function `regexp-opt'. Therefore, take a look at the source before
|
||||
you define your own sql-mode-sybase-font-lock-keywords.")
|
||||
you define your own `sql-mode-sybase-font-lock-keywords'.")
|
||||
|
||||
(defvar sql-mode-informix-font-lock-keywords nil
|
||||
"Informix SQL keywords used by font-lock.
|
||||
|
@ -1498,7 +1496,7 @@ you define your own sql-mode-sybase-font-lock-keywords.")
|
|||
This variable is used by `sql-mode' and `sql-interactive-mode'. The
|
||||
regular expressions are created during compilation by calling the
|
||||
function `regexp-opt'. Therefore, take a look at the source before
|
||||
you define your own sql-mode-informix-font-lock-keywords.")
|
||||
you define your own `sql-mode-informix-font-lock-keywords'.")
|
||||
|
||||
(defvar sql-mode-interbase-font-lock-keywords nil
|
||||
"Interbase SQL keywords used by font-lock.
|
||||
|
@ -1506,7 +1504,7 @@ you define your own sql-mode-informix-font-lock-keywords.")
|
|||
This variable is used by `sql-mode' and `sql-interactive-mode'. The
|
||||
regular expressions are created during compilation by calling the
|
||||
function `regexp-opt'. Therefore, take a look at the source before
|
||||
you define your own sql-mode-interbase-font-lock-keywords.")
|
||||
you define your own `sql-mode-interbase-font-lock-keywords'.")
|
||||
|
||||
(defvar sql-mode-ingres-font-lock-keywords nil
|
||||
"Ingres SQL keywords used by font-lock.
|
||||
|
@ -1514,7 +1512,7 @@ you define your own sql-mode-interbase-font-lock-keywords.")
|
|||
This variable is used by `sql-mode' and `sql-interactive-mode'. The
|
||||
regular expressions are created during compilation by calling the
|
||||
function `regexp-opt'. Therefore, take a look at the source before
|
||||
you define your own sql-mode-interbase-font-lock-keywords.")
|
||||
you define your own `sql-mode-interbase-font-lock-keywords'.")
|
||||
|
||||
(defvar sql-mode-solid-font-lock-keywords nil
|
||||
"Solid SQL keywords used by font-lock.
|
||||
|
@ -1522,7 +1520,7 @@ you define your own sql-mode-interbase-font-lock-keywords.")
|
|||
This variable is used by `sql-mode' and `sql-interactive-mode'. The
|
||||
regular expressions are created during compilation by calling the
|
||||
function `regexp-opt'. Therefore, take a look at the source before
|
||||
you define your own sql-mode-solid-font-lock-keywords.")
|
||||
you define your own `sql-mode-solid-font-lock-keywords'.")
|
||||
|
||||
(defvar sql-mode-mysql-font-lock-keywords
|
||||
(let ((mysql-funcs (sql-keywords-re
|
||||
|
@ -1599,7 +1597,7 @@ you define your own sql-mode-solid-font-lock-keywords.")
|
|||
This variable is used by `sql-mode' and `sql-interactive-mode'. The
|
||||
regular expressions are created during compilation by calling the
|
||||
function `regexp-opt'. Therefore, take a look at the source before
|
||||
you define your own sql-mode-mysql-font-lock-keywords.")
|
||||
you define your own `sql-mode-mysql-font-lock-keywords'.")
|
||||
|
||||
(defvar sql-mode-sqlite-font-lock-keywords nil
|
||||
"SQLite SQL keywords used by font-lock.
|
||||
|
@ -1607,7 +1605,7 @@ you define your own sql-mode-mysql-font-lock-keywords.")
|
|||
This variable is used by `sql-mode' and `sql-interactive-mode'. The
|
||||
regular expressions are created during compilation by calling the
|
||||
function `regexp-opt'. Therefore, take a look at the source before
|
||||
you define your own sql-mode-sqlite-font-lock-keywords.")
|
||||
you define your own `sql-mode-sqlite-font-lock-keywords'.")
|
||||
|
||||
(defvar sql-mode-db2-font-lock-keywords nil
|
||||
"DB2 SQL keywords used by font-lock.
|
||||
|
@ -1615,14 +1613,14 @@ you define your own sql-mode-sqlite-font-lock-keywords.")
|
|||
This variable is used by `sql-mode' and `sql-interactive-mode'. The
|
||||
regular expressions are created during compilation by calling the
|
||||
function `regexp-opt'. Therefore, take a look at the source before
|
||||
you define your own sql-mode-db2-font-lock-keywords.")
|
||||
you define your own `sql-mode-db2-font-lock-keywords'.")
|
||||
|
||||
(defvar sql-mode-font-lock-keywords nil
|
||||
"SQL keywords used by font-lock.
|
||||
|
||||
Setting this variable directly no longer has any affect. Use
|
||||
`sql-product' and `sql-add-product-keywords' to control the
|
||||
highlighting rules in sql-mode.")
|
||||
highlighting rules in SQL mode.")
|
||||
|
||||
|
||||
|
||||
|
@ -1631,7 +1629,7 @@ highlighting rules in sql-mode.")
|
|||
(defun sql-product-feature (feature &optional product)
|
||||
"Lookup `feature' needed to support the current SQL product.
|
||||
|
||||
See \[sql-product-alist] for a list of products and supported features."
|
||||
See `sql-product-alist' for a list of products and supported features."
|
||||
(plist-get
|
||||
(cdr (assoc (or product sql-product)
|
||||
sql-product-alist))
|
||||
|
@ -1720,8 +1718,7 @@ adds a fontification pattern to fontify identifiers ending in
|
|||
;;; Functions to switch highlighting
|
||||
|
||||
(defun sql-highlight-product ()
|
||||
"Turns on the appropriate font highlighting for the SQL product
|
||||
selected."
|
||||
"Turn on the appropriate font highlighting for the SQL product selected."
|
||||
(when (derived-mode-p 'sql-mode)
|
||||
;; Setup font-lock
|
||||
(sql-product-font-lock nil t)
|
||||
|
@ -1730,8 +1727,7 @@ selected."
|
|||
(setq mode-name (concat "SQL[" (prin1-to-string sql-product) "]"))))
|
||||
|
||||
(defun sql-set-product (product)
|
||||
"Set `sql-product' to product and enable appropriate
|
||||
highlighting."
|
||||
"Set `sql-product' to product and enable appropriate highlighting."
|
||||
(interactive
|
||||
(list (completing-read "Enter SQL product: "
|
||||
(mapcar (lambda (info) (symbol-name (car info)))
|
||||
|
@ -1752,7 +1748,7 @@ highlighting."
|
|||
(if (not (fboundp 'comint-line-beginning-position))
|
||||
;; comint-line-beginning-position is defined in Emacs 21
|
||||
(defun comint-line-beginning-position ()
|
||||
"Returns the buffer position of the beginning of the line, after any prompt.
|
||||
"Return the buffer position of the beginning of the line, after any prompt.
|
||||
The prompt is assumed to be any text at the beginning of the line matching
|
||||
the regular expression `comint-prompt-regexp', a buffer local variable."
|
||||
(save-excursion (comint-bol nil) (point))))
|
||||
|
@ -1974,7 +1970,7 @@ This is used to set `sql-alternate-buffer-name' within
|
|||
sql-database)))
|
||||
|
||||
(defun sql-rename-buffer ()
|
||||
"Renames a SQLi buffer."
|
||||
"Rename a SQLi buffer."
|
||||
(interactive)
|
||||
(rename-buffer (format "*SQL: %s*" sql-alternate-buffer-name) t))
|
||||
|
||||
|
@ -2007,8 +2003,8 @@ Inserts SELECT or commas if appropriate."
|
|||
(insert column)
|
||||
(message "%s" column))))
|
||||
|
||||
;; On NT, SQL*Plus for Oracle turns on full buffering for stdout if it
|
||||
;; is not attached to a character device; therefore placeholder
|
||||
;; On Windows, SQL*Plus for Oracle turns on full buffering for stdout
|
||||
;; if it is not attached to a character device; therefore placeholder
|
||||
;; replacement by SQL*Plus is fully buffered. The workaround lets
|
||||
;; Emacs query for the placeholders.
|
||||
|
||||
|
@ -2017,8 +2013,9 @@ Inserts SELECT or commas if appropriate."
|
|||
|
||||
(defun sql-query-placeholders-and-send (proc string)
|
||||
"Send to PROC input STRING, maybe replacing placeholders.
|
||||
Placeholders are words starting with and ampersand like &this.
|
||||
This function is used for `comint-input-sender' if using `sql-oracle' on NT."
|
||||
Placeholders are words starting with an ampersand like &this.
|
||||
This function is used for `comint-input-sender' if using
|
||||
`sql-oracle' on Windows."
|
||||
(while (string-match "&\\(\\sw+\\)" string)
|
||||
(setq string (replace-match
|
||||
(read-from-minibuffer
|
||||
|
@ -2104,7 +2101,7 @@ Every newline in STRING will be preceded with a space and a backslash."
|
|||
"Toggle `sql-pop-to-buffer-after-send-region'.
|
||||
|
||||
If given the optional parameter VALUE, sets
|
||||
sql-toggle-pop-to-buffer-after-send-region to VALUE."
|
||||
`sql-toggle-pop-to-buffer-after-send-region' to VALUE."
|
||||
(interactive "P")
|
||||
(if value
|
||||
(setq sql-pop-to-buffer-after-send-region value)
|
||||
|
@ -2187,8 +2184,8 @@ you must tell Emacs. Here's how to do that in your `~/.emacs' file:
|
|||
"Major mode to use a SQL interpreter interactively.
|
||||
|
||||
Do not call this function by yourself. The environment must be
|
||||
initialized by an entry function specific for the SQL interpreter. See
|
||||
`sql-help' for a list of available entry functions.
|
||||
initialized by an entry function specific for the SQL interpreter.
|
||||
See `sql-help' for a list of available entry functions.
|
||||
|
||||
\\[comint-send-input] after the end of the process' output sends the
|
||||
text from the end of process to the end of the current line.
|
||||
|
@ -2360,7 +2357,7 @@ the variables `sql-user', `sql-password', and `sql-database' as
|
|||
defaults, if set. Additional command line parameters can be stored in
|
||||
the list `sql-oracle-options'.
|
||||
|
||||
The buffer is put in sql-interactive-mode, giving commands for sending
|
||||
The buffer is put in SQL interactive mode, giving commands for sending
|
||||
input. See `sql-interactive-mode'.
|
||||
|
||||
To specify a coding system for converting non-ASCII characters
|
||||
|
@ -2392,7 +2389,7 @@ parameters and command options."
|
|||
(nconc (list parameter) sql-oracle-options)
|
||||
sql-oracle-options))
|
||||
(set-buffer (apply 'make-comint "SQL" sql-oracle-program nil parameter))
|
||||
;; SQL*Plus is buffered on WindowsNT; this handles &placeholders.
|
||||
;; SQL*Plus is buffered on Windows; this handles &placeholders.
|
||||
(if (eq window-system 'w32)
|
||||
(setq comint-input-sender 'sql-query-placeholders-and-send))))
|
||||
|
||||
|
@ -2411,7 +2408,7 @@ the variables `sql-server', `sql-user', `sql-password', and
|
|||
`sql-database' as defaults, if set. Additional command line parameters
|
||||
can be stored in the list `sql-sybase-options'.
|
||||
|
||||
The buffer is put in sql-interactive-mode, giving commands for sending
|
||||
The buffer is put in SQL interactive mode, giving commands for sending
|
||||
input. See `sql-interactive-mode'.
|
||||
|
||||
To specify a coding system for converting non-ASCII characters
|
||||
|
@ -2455,7 +2452,7 @@ If buffer exists and a process is running, just switch to buffer
|
|||
Interpreter used comes from variable `sql-informix-program'. Login uses
|
||||
the variable `sql-database' as default, if set.
|
||||
|
||||
The buffer is put in sql-interactive-mode, giving commands for sending
|
||||
The buffer is put in SQL interactive mode, giving commands for sending
|
||||
input. See `sql-interactive-mode'.
|
||||
|
||||
To specify a coding system for converting non-ASCII characters
|
||||
|
@ -2494,7 +2491,7 @@ the variables `sql-user', `sql-password', `sql-database', and
|
|||
`sql-server' as defaults, if set. Additional command line parameters
|
||||
can be stored in the list `sql-sqlite-options'.
|
||||
|
||||
The buffer is put in sql-interactive-mode, giving commands for sending
|
||||
The buffer is put in SQL interactive mode, giving commands for sending
|
||||
input. See `sql-interactive-mode'.
|
||||
|
||||
To specify a coding system for converting non-ASCII characters
|
||||
|
@ -2538,7 +2535,7 @@ the variables `sql-user', `sql-password', `sql-database', and
|
|||
`sql-server' as defaults, if set. Additional command line parameters
|
||||
can be stored in the list `sql-mysql-options'.
|
||||
|
||||
The buffer is put in sql-interactive-mode, giving commands for sending
|
||||
The buffer is put in SQL interactive mode, giving commands for sending
|
||||
input. See `sql-interactive-mode'.
|
||||
|
||||
To specify a coding system for converting non-ASCII characters
|
||||
|
@ -2585,7 +2582,7 @@ Interpreter used comes from variable `sql-solid-program'. Login uses
|
|||
the variables `sql-user', `sql-password', and `sql-server' as
|
||||
defaults, if set.
|
||||
|
||||
The buffer is put in sql-interactive-mode, giving commands for sending
|
||||
The buffer is put in SQL interactive mode, giving commands for sending
|
||||
input. See `sql-interactive-mode'.
|
||||
|
||||
To specify a coding system for converting non-ASCII characters
|
||||
|
@ -2627,7 +2624,7 @@ If buffer exists and a process is running, just switch to buffer
|
|||
Interpreter used comes from variable `sql-ingres-program'. Login uses
|
||||
the variable `sql-database' as default, if set.
|
||||
|
||||
The buffer is put in sql-interactive-mode, giving commands for sending
|
||||
The buffer is put in SQL interactive mode, giving commands for sending
|
||||
input. See `sql-interactive-mode'.
|
||||
|
||||
To specify a coding system for converting non-ASCII characters
|
||||
|
@ -2664,7 +2661,7 @@ variables `sql-user', `sql-password', `sql-database', and `sql-server'
|
|||
as defaults, if set. Additional command line parameters can be stored
|
||||
in the list `sql-ms-options'.
|
||||
|
||||
The buffer is put in sql-interactive-mode, giving commands for sending
|
||||
The buffer is put in SQL interactive mode, giving commands for sending
|
||||
input. See `sql-interactive-mode'.
|
||||
|
||||
To specify a coding system for converting non-ASCII characters
|
||||
|
@ -2717,7 +2714,7 @@ the variables `sql-database' and `sql-server' as default, if set.
|
|||
Additional command line parameters can be stored in the list
|
||||
`sql-postgres-options'.
|
||||
|
||||
The buffer is put in sql-interactive-mode, giving commands for sending
|
||||
The buffer is put in SQL interactive mode, giving commands for sending
|
||||
input. See `sql-interactive-mode'.
|
||||
|
||||
To specify a coding system for converting non-ASCII characters
|
||||
|
@ -2768,7 +2765,7 @@ Interpreter used comes from variable `sql-interbase-program'. Login
|
|||
uses the variables `sql-user', `sql-password', and `sql-database' as
|
||||
defaults, if set.
|
||||
|
||||
The buffer is put in sql-interactive-mode, giving commands for sending
|
||||
The buffer is put in SQL interactive mode, giving commands for sending
|
||||
input. See `sql-interactive-mode'.
|
||||
|
||||
To specify a coding system for converting non-ASCII characters
|
||||
|
@ -2810,7 +2807,7 @@ If buffer exists and a process is running, just switch to buffer
|
|||
Interpreter used comes from variable `sql-db2-program'. There is not
|
||||
automatic login.
|
||||
|
||||
The buffer is put in sql-interactive-mode, giving commands for sending
|
||||
The buffer is put in SQL interactive mode, giving commands for sending
|
||||
input. See `sql-interactive-mode'.
|
||||
|
||||
If you use \\[sql-accumulate-and-indent] to send multiline commands to
|
||||
|
@ -2859,7 +2856,7 @@ local connections, `sql-server' refers to the server name from the
|
|||
for this to work). If `sql-password' is an empty string, inl will use
|
||||
an empty password.
|
||||
|
||||
The buffer is put in sql-interactive-mode, giving commands for sending
|
||||
The buffer is put in SQL interactive mode, giving commands for sending
|
||||
input. See `sql-interactive-mode'.
|
||||
|
||||
\(Type \\[describe-mode] in the SQL buffer for a list of commands.)"
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-03 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* url-dired.el (url-dired-minor-mode): Use define-minor-mode.
|
||||
|
@ -62,8 +66,8 @@
|
|||
2009-09-12 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* url-methods.el (url-scheme--registering-proxy): New variable.
|
||||
(url-scheme-register-proxy, url-scheme-get-property): Avoid
|
||||
calling url-scheme-register-proxy in an infloop (Bug#4191).
|
||||
(url-scheme-register-proxy, url-scheme-get-property):
|
||||
Avoid calling url-scheme-register-proxy in an infloop (Bug#4191).
|
||||
|
||||
2009-08-22 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
|
|
|
@ -168,12 +168,13 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
|
|||
(condition-case nil
|
||||
;; Ignore all errors.
|
||||
(let ((process-environment
|
||||
;; Avoid localization of messages so we can parse the output.
|
||||
(append (list "TERM=dumb" "LANGUAGE=C" "HGRC=") process-environment)))
|
||||
|
||||
(process-file
|
||||
"hg" nil t nil
|
||||
"status" "-A" (file-relative-name file)))
|
||||
;; Avoid localization of messages so we
|
||||
;; can parse the output.
|
||||
(append (list "TERM=dumb" "LANGUAGE=C" "HGRCPATH=")
|
||||
process-environment)))
|
||||
(process-file
|
||||
"hg" nil t nil
|
||||
"status" "-A" (file-relative-name file)))
|
||||
;; Some problem happened. E.g. We can't find an `hg'
|
||||
;; executable.
|
||||
(error nil)))))))
|
||||
|
@ -197,7 +198,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
|
|||
((status nil)
|
||||
(default-directory (file-name-directory file))
|
||||
;; Avoid localization of messages so we can parse the output.
|
||||
(avoid-local-env (append (list "TERM=dumb" "LANGUAGE=C" "HGRC=")
|
||||
(avoid-local-env (append (list "TERM=dumb" "LANGUAGE=C" "HGRCPATH=")
|
||||
process-environment))
|
||||
(out
|
||||
(with-output-to-string
|
||||
|
@ -209,7 +210,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
|
|||
;; Ignore all errors.
|
||||
(process-file
|
||||
"hg" nil t nil
|
||||
"parent" "--template" "{rev}" (file-relative-name file)))
|
||||
"parents" "--template" "{rev}" (file-relative-name file)))
|
||||
;; Some problem happened. E.g. We can't find an `hg'
|
||||
;; executable.
|
||||
(error nil)))))))
|
||||
|
|
|
@ -3,6 +3,10 @@
|
|||
* xlwmenu.c (XlwMenuDestroy): Remove XtDestroyWidget on subwidgets
|
||||
(Bug #6127).
|
||||
|
||||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-06 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (CPP, LN_S, TOP, LN): Remove unused variables.
|
||||
|
@ -28,17 +32,16 @@
|
|||
XlwMenuRedisplay.
|
||||
(display_menu_item): Replace ws->window with ws->pixmap, remove
|
||||
call to XftDrawRect.
|
||||
(display_menu): Remove this and that argument. Remove
|
||||
just_compute_this_one_p. Fill pixmap at start and copy it to window
|
||||
at end.
|
||||
(display_menu): Remove this and that argument.
|
||||
Remove just_compute_this_one_p. Fill pixmap at start and copy it to
|
||||
window at end.
|
||||
(expose_cb): New function.
|
||||
(make_windows_if_needed): Replace XCreateWindow with XtCreatePopup.
|
||||
Add eventhandler for expose to expose_cb. Remove creation of
|
||||
xft_draw.
|
||||
Add eventhandler for expose to expose_cb. Remove creation of xft_draw.
|
||||
(create_pixmap_for_menu): New function.
|
||||
(remap_menubar): Pop down menus that aren't the same as in old_stack.
|
||||
Set width, heigh, x, y on widget with XtVaSetValues. Call
|
||||
create_pixmap_for_menu.
|
||||
Set width, heigh, x, y on widget with XtVaSetValues.
|
||||
Call create_pixmap_for_menu.
|
||||
Replace XUnmapWindow with XtPopdown.
|
||||
Remowe two last parameters to display_menu.
|
||||
(map_event_to_widget_value, XlwMenuRedisplay, Key, Select)
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-08 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* sed1v2.inp (LIBS_TERMCAP): Edit to empty.
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-03-10 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Branch for 23.2.
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-04 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* config.nt (LD_SWITCH_X_SITE_AUX): Remove.
|
||||
|
@ -55,8 +59,8 @@
|
|||
|
||||
2009-01-26 Jason Rumney <jasonr@gnu.org>
|
||||
|
||||
* emacsclient.rc, emacs.rc: Swap name and description. Remove
|
||||
Windows versions.
|
||||
* emacsclient.rc, emacs.rc: Swap name and description.
|
||||
Remove Windows versions.
|
||||
|
||||
2009-01-15 Jason Rumney <jasonr@gnu.org>
|
||||
|
||||
|
|
|
@ -1,15 +1,19 @@
|
|||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-06 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (RANLIB): Let configure set it.
|
||||
(libXMenu11.a): configure sets RANLIB = : on systems without it.
|
||||
(libXMenu11.a): Configure sets RANLIB = : on systems without it.
|
||||
|
||||
* Makefile.in (CPP, LN_S, AS, LD, MV, LS, LINTOPTS, LINTLIBFLAG, MAKE)
|
||||
(STD_DEFINES, CDEBUGFLAGS, RM_CMD): Remove unused variables.
|
||||
|
||||
2010-05-04 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (C_SWITCH_SYSTEM, C_SWITCH_MACHINE): Use
|
||||
@C_SWITCH_SYSTEM@, @C_SWITCH_MACHINE@ rather than
|
||||
* Makefile.in (C_SWITCH_SYSTEM, C_SWITCH_MACHINE):
|
||||
Use @C_SWITCH_SYSTEM@, @C_SWITCH_MACHINE@ rather than
|
||||
@c_switch_system@, @c_switch_machine@.
|
||||
|
||||
2010-04-27 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
|
|
@ -1,3 +1,31 @@
|
|||
2010-05-08 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-05-08 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* composite.c (autocmp_chars): Save point as marker before calling
|
||||
auto-composition-function (Bug#5984).
|
||||
|
||||
* lisp.h (restore_point_unwind): Add prototype.
|
||||
|
||||
* fileio.c (restore_point_unwind): Remove static attribute.
|
||||
|
||||
2010-05-08 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* ftfont.c (M17N_FLT_USE_NEW_FEATURE): Define it if we can use the
|
||||
new feature of libotf and m17n-flt.
|
||||
(ftfont_check_otf) [M17N_FLT_USE_NEW_FEATURE]:
|
||||
Call OTF_check_features even if no specific feature is given.
|
||||
(PACK_OTF_TAG) [M17N_FLT_USE_NEW_FEATURE]: New macro.
|
||||
(ftfont_drive_otf) [M17N_FLT_USE_NEW_FEATURE]: Handle the case
|
||||
that OUT is NULL. Use OTF_drive_gsub_with_log and
|
||||
OTF_drive_gpos_with_log instead of OTF_drive_gsub and
|
||||
OTF_drive_gpos.
|
||||
(ftfont_try_otf) [M17N_FLT_USE_NEW_FEATURE]: New function.
|
||||
(ftfont_shape_by_flt) [M17N_FLT_USE_NEW_FEATURE]:
|
||||
Setup mflt_enable_new_feature and mflt_try_otf.
|
||||
|
||||
2010-05-08 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* xsettings.c (Ftool_bar_get_system_style): Correct comment.
|
||||
|
|
|
@ -990,6 +990,14 @@ autocmp_chars (cft_element, charpos, bytepos, limit, win, face, string)
|
|||
{
|
||||
Lisp_Object args[6];
|
||||
|
||||
/* Save point as marker before calling out to lisp. */
|
||||
if (NILP (string))
|
||||
{
|
||||
Lisp_Object m = Fmake_marker ();
|
||||
set_marker_both (m, Qnil, pt, pt_byte);
|
||||
record_unwind_protect (restore_point_unwind, m);
|
||||
}
|
||||
|
||||
args[0] = Vauto_composition_function;
|
||||
args[1] = AREF (elt, 2);
|
||||
args[2] = pos;
|
||||
|
@ -998,8 +1006,10 @@ autocmp_chars (cft_element, charpos, bytepos, limit, win, face, string)
|
|||
args[5] = string;
|
||||
gstring = safe_call (6, args);
|
||||
}
|
||||
if (NILP (string))
|
||||
TEMP_SET_PT_BOTH (pt, pt_byte);
|
||||
else if (NILP (string))
|
||||
{
|
||||
TEMP_SET_PT_BOTH (pt, pt_byte);
|
||||
}
|
||||
return unbind_to (count, gstring);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -299,7 +299,7 @@ close_file_unwind (fd)
|
|||
|
||||
/* Restore point, having saved it as a marker. */
|
||||
|
||||
static Lisp_Object
|
||||
Lisp_Object
|
||||
restore_point_unwind (location)
|
||||
Lisp_Object location;
|
||||
{
|
||||
|
|
370
src/ftfont.c
370
src/ftfont.c
|
@ -1578,6 +1578,14 @@ ftfont_otf_capability (font)
|
|||
|
||||
#ifdef HAVE_M17N_FLT
|
||||
|
||||
#if ((LIBOTF_MAJOR_VERSION > 1) || (LIBOTF_RELEASE_NUMBER >= 10) \
|
||||
&& (M17NLIB_MAJOR_VERSION > 1) || (M17NLIB_MINOR_VERSION >= 6))
|
||||
/* We can use the new feature of libotf and m17n-flt to handle the
|
||||
character encoding scheme introduced in Unicode 5.1 and 5.2 for
|
||||
some Agian scripts. */
|
||||
#define M17N_FLT_USE_NEW_FEATURE
|
||||
#endif
|
||||
|
||||
struct MFLTFontFT
|
||||
{
|
||||
MFLTFont flt_font;
|
||||
|
@ -1696,10 +1704,16 @@ ftfont_check_otf (MFLTFont *font, MFLTOtfSpec *spec)
|
|||
else
|
||||
tags[n] = spec->features[i][n];
|
||||
}
|
||||
#ifdef M17N_FLT_USE_NEW_FEATURE
|
||||
if (OTF_check_features (otf, i == 0, spec->script, spec->langsys,
|
||||
tags, n - negative) != 1)
|
||||
return 0;
|
||||
#else /* not M17N_FLT_USE_NEW_FEATURE */
|
||||
if (n - negative > 0
|
||||
&& OTF_check_features (otf, i == 0, spec->script, spec->langsys,
|
||||
tags, n - negative) != 1)
|
||||
return 0;
|
||||
#endif /* not M17N_FLT_USE_NEW_FEATURE */
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
@ -1757,6 +1771,356 @@ setup_otf_gstring (int size)
|
|||
memset (otf_gstring.glyphs, 0, sizeof (OTF_Glyph) * size);
|
||||
}
|
||||
|
||||
#ifdef M17N_FLT_USE_NEW_FEATURE
|
||||
|
||||
/* Pack 32-bit OTF tag (0x7F7F7F7F) into 28-bit (0x0FFFFFFF). */
|
||||
#define PACK_OTF_TAG(TAG) \
|
||||
((((TAG) & 0x7F000000) >> 3) \
|
||||
| (((TAG) & 0x7F0000) >> 2) \
|
||||
| (((TAG) & 0x7F00) >> 1) \
|
||||
| ((TAG) & 0x7F))
|
||||
|
||||
/* Assuming that FONT is an OpenType font, apply OpenType features
|
||||
specified in SPEC on glyphs between FROM and TO of IN, and record
|
||||
the lastly applied feature in each glyph of IN. If OUT is not
|
||||
NULL, append the resulting glyphs to OUT while storing glyph
|
||||
position adjustment information in ADJUSTMENT. */
|
||||
|
||||
static int
|
||||
ftfont_drive_otf (font, spec, in, from, to, out, adjustment)
|
||||
MFLTFont *font;
|
||||
MFLTOtfSpec *spec;
|
||||
MFLTGlyphString *in;
|
||||
int from, to;
|
||||
MFLTGlyphString *out;
|
||||
MFLTGlyphAdjustment *adjustment;
|
||||
{
|
||||
struct MFLTFontFT *flt_font_ft = (struct MFLTFontFT *) font;
|
||||
FT_Face ft_face = flt_font_ft->ft_face;
|
||||
OTF *otf = flt_font_ft->otf;
|
||||
int len = to - from;
|
||||
int i, j, gidx;
|
||||
OTF_Glyph *otfg;
|
||||
char script[5], *langsys = NULL;
|
||||
char *gsub_features = NULL, *gpos_features = NULL;
|
||||
OTF_Feature *features;
|
||||
|
||||
if (len == 0)
|
||||
return from;
|
||||
OTF_tag_name (spec->script, script);
|
||||
if (spec->langsys)
|
||||
{
|
||||
langsys = alloca (5);
|
||||
OTF_tag_name (spec->langsys, langsys);
|
||||
}
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
char *p;
|
||||
|
||||
if (spec->features[i] && spec->features[i][1] != 0xFFFFFFFF)
|
||||
{
|
||||
for (j = 0; spec->features[i][j]; j++);
|
||||
if (i == 0)
|
||||
p = gsub_features = alloca (6 * j);
|
||||
else
|
||||
p = gpos_features = alloca (6 * j);
|
||||
for (j = 0; spec->features[i][j]; j++)
|
||||
{
|
||||
if (spec->features[i][j] == 0xFFFFFFFF)
|
||||
*p++ = '*', *p++ = ',';
|
||||
else
|
||||
{
|
||||
OTF_tag_name (spec->features[i][j], p);
|
||||
p[4] = ',';
|
||||
p += 5;
|
||||
}
|
||||
}
|
||||
*--p = '\0';
|
||||
}
|
||||
}
|
||||
|
||||
setup_otf_gstring (len);
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
otf_gstring.glyphs[i].c = in->glyphs[from + i].c;
|
||||
otf_gstring.glyphs[i].glyph_id = in->glyphs[from + i].code;
|
||||
}
|
||||
|
||||
OTF_drive_gdef (otf, &otf_gstring);
|
||||
gidx = out ? out->used : from;
|
||||
|
||||
if (gsub_features && out)
|
||||
{
|
||||
if (OTF_drive_gsub_with_log (otf, &otf_gstring, script, langsys,
|
||||
gsub_features) < 0)
|
||||
goto simple_copy;
|
||||
if (out->allocated < out->used + otf_gstring.used)
|
||||
return -2;
|
||||
features = otf->gsub->FeatureList.Feature;
|
||||
for (i = 0, otfg = otf_gstring.glyphs; i < otf_gstring.used; )
|
||||
{
|
||||
MFLTGlyph *g;
|
||||
int min_from, max_to;
|
||||
int j;
|
||||
int feature_idx = otfg->positioning_type >> 4;
|
||||
|
||||
g = out->glyphs + out->used;
|
||||
*g = in->glyphs[from + otfg->f.index.from];
|
||||
if (g->code != otfg->glyph_id)
|
||||
{
|
||||
g->c = 0;
|
||||
g->code = otfg->glyph_id;
|
||||
g->measured = 0;
|
||||
}
|
||||
out->used++;
|
||||
min_from = g->from;
|
||||
max_to = g->to;
|
||||
if (otfg->f.index.from < otfg->f.index.to)
|
||||
{
|
||||
/* OTFG substitutes multiple glyphs in IN. */
|
||||
for (j = from + otfg->f.index.from + 1;
|
||||
j <= from + otfg->f.index.to; j++)
|
||||
{
|
||||
if (min_from > in->glyphs[j].from)
|
||||
min_from = in->glyphs[j].from;
|
||||
if (max_to < in->glyphs[j].to)
|
||||
max_to = in->glyphs[j].to;
|
||||
}
|
||||
g->from = min_from;
|
||||
g->to = max_to;
|
||||
}
|
||||
if (feature_idx)
|
||||
{
|
||||
unsigned int tag = features[feature_idx - 1].FeatureTag;
|
||||
tag = PACK_OTF_TAG (tag);
|
||||
g->internal = (g->internal & ~0x1FFFFFFF) | tag;
|
||||
}
|
||||
for (i++, otfg++; (i < otf_gstring.used
|
||||
&& otfg->f.index.from == otfg[-1].f.index.from);
|
||||
i++, otfg++)
|
||||
{
|
||||
g = out->glyphs + out->used;
|
||||
*g = in->glyphs[from + otfg->f.index.to];
|
||||
if (g->code != otfg->glyph_id)
|
||||
{
|
||||
g->c = 0;
|
||||
g->code = otfg->glyph_id;
|
||||
g->measured = 0;
|
||||
}
|
||||
feature_idx = otfg->positioning_type >> 4;
|
||||
if (feature_idx)
|
||||
{
|
||||
unsigned int tag = features[feature_idx - 1].FeatureTag;
|
||||
tag = PACK_OTF_TAG (tag);
|
||||
g->internal = (g->internal & ~0x1FFFFFFF) | tag;
|
||||
}
|
||||
out->used++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (gsub_features)
|
||||
{
|
||||
/* Just for checking which features will be applied. */
|
||||
if (OTF_drive_gsub_with_log (otf, &otf_gstring, script, langsys,
|
||||
gsub_features) < 0)
|
||||
goto simple_copy;
|
||||
features = otf->gsub->FeatureList.Feature;
|
||||
for (i = 0, otfg = otf_gstring.glyphs; i < otf_gstring.used; i++,
|
||||
otfg++)
|
||||
{
|
||||
int feature_idx = otfg->positioning_type >> 4;
|
||||
|
||||
if (feature_idx)
|
||||
{
|
||||
unsigned int tag = features[feature_idx - 1].FeatureTag;
|
||||
tag = PACK_OTF_TAG (tag);
|
||||
for (j = otfg->f.index.from; j <= otfg->f.index.to; j++)
|
||||
{
|
||||
MFLTGlyph *g = in->glyphs + (from + j);
|
||||
g->internal = (g->internal & ~0x1FFFFFFF) | tag;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (out)
|
||||
{
|
||||
if (out->allocated < out->used + len)
|
||||
return -2;
|
||||
for (i = 0; i < len; i++)
|
||||
out->glyphs[out->used++] = in->glyphs[from + i];
|
||||
}
|
||||
|
||||
if (gpos_features && out)
|
||||
{
|
||||
MFLTGlyph *base = NULL, *mark = NULL, *g;
|
||||
int x_ppem, y_ppem, x_scale, y_scale;
|
||||
|
||||
if (OTF_drive_gpos_with_log (otf, &otf_gstring, script, langsys,
|
||||
gpos_features) < 0)
|
||||
return to;
|
||||
features = otf->gpos->FeatureList.Feature;
|
||||
x_ppem = ft_face->size->metrics.x_ppem;
|
||||
y_ppem = ft_face->size->metrics.y_ppem;
|
||||
x_scale = ft_face->size->metrics.x_scale;
|
||||
y_scale = ft_face->size->metrics.y_scale;
|
||||
|
||||
for (i = 0, otfg = otf_gstring.glyphs, g = out->glyphs + gidx;
|
||||
i < otf_gstring.used; i++, otfg++, g++)
|
||||
{
|
||||
MFLTGlyph *prev;
|
||||
int feature_idx = otfg->positioning_type >> 4;
|
||||
|
||||
if (feature_idx)
|
||||
{
|
||||
unsigned int tag = features[feature_idx - 1].FeatureTag;
|
||||
tag = PACK_OTF_TAG (tag);
|
||||
g->internal = (g->internal & ~0x1FFFFFFF) | tag;
|
||||
}
|
||||
|
||||
if (! otfg->glyph_id)
|
||||
continue;
|
||||
switch (otfg->positioning_type & 0xF)
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case 1: /* Single */
|
||||
case 2: /* Pair */
|
||||
{
|
||||
int format = otfg->f.f1.format;
|
||||
|
||||
if (format & OTF_XPlacement)
|
||||
adjustment[i].xoff
|
||||
= otfg->f.f1.value->XPlacement * x_scale / 0x10000;
|
||||
if (format & OTF_XPlaDevice)
|
||||
adjustment[i].xoff
|
||||
+= DEVICE_DELTA (otfg->f.f1.value->XPlaDevice, x_ppem);
|
||||
if (format & OTF_YPlacement)
|
||||
adjustment[i].yoff
|
||||
= - (otfg->f.f1.value->YPlacement * y_scale / 0x10000);
|
||||
if (format & OTF_YPlaDevice)
|
||||
adjustment[i].yoff
|
||||
-= DEVICE_DELTA (otfg->f.f1.value->YPlaDevice, y_ppem);
|
||||
if (format & OTF_XAdvance)
|
||||
adjustment[i].xadv
|
||||
+= otfg->f.f1.value->XAdvance * x_scale / 0x10000;
|
||||
if (format & OTF_XAdvDevice)
|
||||
adjustment[i].xadv
|
||||
+= DEVICE_DELTA (otfg->f.f1.value->XAdvDevice, x_ppem);
|
||||
if (format & OTF_YAdvance)
|
||||
adjustment[i].yadv
|
||||
+= otfg->f.f1.value->YAdvance * y_scale / 0x10000;
|
||||
if (format & OTF_YAdvDevice)
|
||||
adjustment[i].yadv
|
||||
+= DEVICE_DELTA (otfg->f.f1.value->YAdvDevice, y_ppem);
|
||||
adjustment[i].set = 1;
|
||||
}
|
||||
break;
|
||||
case 3: /* Cursive */
|
||||
/* Not yet supported. */
|
||||
break;
|
||||
case 4: /* Mark-to-Base */
|
||||
case 5: /* Mark-to-Ligature */
|
||||
if (! base)
|
||||
break;
|
||||
prev = base;
|
||||
goto label_adjust_anchor;
|
||||
default: /* i.e. case 6 Mark-to-Mark */
|
||||
if (! mark)
|
||||
break;
|
||||
prev = mark;
|
||||
|
||||
label_adjust_anchor:
|
||||
{
|
||||
int base_x, base_y, mark_x, mark_y;
|
||||
int this_from, this_to;
|
||||
|
||||
base_x = otfg->f.f4.base_anchor->XCoordinate * x_scale / 0x10000;
|
||||
base_y = otfg->f.f4.base_anchor->YCoordinate * y_scale / 0x10000;
|
||||
mark_x = otfg->f.f4.mark_anchor->XCoordinate * x_scale / 0x10000;
|
||||
mark_y = otfg->f.f4.mark_anchor->YCoordinate * y_scale / 0x10000;
|
||||
|
||||
if (otfg->f.f4.base_anchor->AnchorFormat != 1)
|
||||
adjust_anchor (ft_face, otfg->f.f4.base_anchor,
|
||||
prev->code, x_ppem, y_ppem, &base_x, &base_y);
|
||||
if (otfg->f.f4.mark_anchor->AnchorFormat != 1)
|
||||
adjust_anchor (ft_face, otfg->f.f4.mark_anchor, g->code,
|
||||
x_ppem, y_ppem, &mark_x, &mark_y);
|
||||
adjustment[i].xoff = (base_x - mark_x);
|
||||
adjustment[i].yoff = - (base_y - mark_y);
|
||||
adjustment[i].back = (g - prev);
|
||||
adjustment[i].xadv = 0;
|
||||
adjustment[i].advance_is_absolute = 1;
|
||||
adjustment[i].set = 1;
|
||||
this_from = g->from;
|
||||
this_to = g->to;
|
||||
for (j = 0; prev + j < g; j++)
|
||||
{
|
||||
if (this_from > prev[j].from)
|
||||
this_from = prev[j].from;
|
||||
if (this_to < prev[j].to)
|
||||
this_to = prev[j].to;
|
||||
}
|
||||
for (; prev <= g; prev++)
|
||||
{
|
||||
prev->from = this_from;
|
||||
prev->to = this_to;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (otfg->GlyphClass == OTF_GlyphClass0)
|
||||
base = mark = g;
|
||||
else if (otfg->GlyphClass == OTF_GlyphClassMark)
|
||||
mark = g;
|
||||
else
|
||||
base = g;
|
||||
}
|
||||
}
|
||||
else if (gpos_features)
|
||||
{
|
||||
if (OTF_drive_gpos_with_log (otf, &otf_gstring, script, langsys,
|
||||
gpos_features) < 0)
|
||||
return to;
|
||||
features = otf->gpos->FeatureList.Feature;
|
||||
for (i = 0, otfg = otf_gstring.glyphs; i < otf_gstring.used;
|
||||
i++, otfg++)
|
||||
if (otfg->positioning_type & 0xF)
|
||||
{
|
||||
int feature_idx = otfg->positioning_type >> 4;
|
||||
|
||||
if (feature_idx)
|
||||
{
|
||||
unsigned int tag = features[feature_idx - 1].FeatureTag;
|
||||
tag = PACK_OTF_TAG (tag);
|
||||
for (j = otfg->f.index.from; j <= otfg->f.index.to; j++)
|
||||
{
|
||||
MFLTGlyph *g = in->glyphs + (from + j);
|
||||
g->internal = (g->internal & ~0x1FFFFFFF) | tag;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return to;
|
||||
|
||||
simple_copy:
|
||||
if (! out)
|
||||
return to;
|
||||
if (out->allocated < out->used + len)
|
||||
return -2;
|
||||
font->get_metrics (font, in, from, to);
|
||||
memcpy (out->glyphs + out->used, in->glyphs + from,
|
||||
sizeof (MFLTGlyph) * len);
|
||||
out->used += len;
|
||||
return to;
|
||||
}
|
||||
|
||||
static int
|
||||
ftfont_try_otf (MFLTFont *font, MFLTOtfSpec *spec,
|
||||
MFLTGlyphString *in, int from, int to)
|
||||
{
|
||||
return ftfont_drive_otf (font, spec, in, from, to, NULL, NULL);
|
||||
}
|
||||
|
||||
#else /* not M17N_FLT_USE_NEW_FEATURE */
|
||||
|
||||
static int
|
||||
ftfont_drive_otf (font, spec, in, from, to, out, adjustment)
|
||||
|
@ -2011,6 +2375,8 @@ ftfont_drive_otf (font, spec, in, from, to, out, adjustment)
|
|||
return to;
|
||||
}
|
||||
|
||||
#endif /* not M17N_FLT_USE_NEW_FEATURE */
|
||||
|
||||
static MFLTGlyphString gstring;
|
||||
|
||||
static int m17n_flt_initialized;
|
||||
|
@ -2034,6 +2400,10 @@ ftfont_shape_by_flt (lgstring, font, ft_face, otf, matrix)
|
|||
if (! m17n_flt_initialized)
|
||||
{
|
||||
M17N_INIT ();
|
||||
#ifdef M17N_FLT_USE_NEW_FEATURE
|
||||
mflt_enable_new_feature = 1;
|
||||
mflt_try_otf = ftfont_try_otf;
|
||||
#endif /* M17N_FLT_USE_NEW_FEATURE */
|
||||
m17n_flt_initialized = 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -3059,6 +3059,7 @@ EXFUN (Ffile_readable_p, 1);
|
|||
EXFUN (Ffile_executable_p, 1);
|
||||
EXFUN (Fread_file_name, 6);
|
||||
extern Lisp_Object close_file_unwind P_ ((Lisp_Object));
|
||||
extern Lisp_Object restore_point_unwind P_ ((Lisp_Object));
|
||||
extern void report_file_error P_ ((const char *, Lisp_Object)) NO_RETURN;
|
||||
extern int internal_delete_file P_ ((Lisp_Object, Lisp_Object));
|
||||
extern void syms_of_fileio P_ ((void));
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2010-05-07 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 23.2 released.
|
||||
|
||||
2010-03-29 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* cedet/semantic-ia-utest.el
|
||||
|
|
Loading…
Add table
Reference in a new issue