Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-351 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-352 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-353 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-354 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-355 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-356 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-357 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-358 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-359 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-360 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-361 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-362 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-363 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-364 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-365 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-366 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-367 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-368 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-369 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-370 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-115 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-116 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-117 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-118 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-119 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-120 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-573
This commit is contained in:
commit
251bc578cc
189 changed files with 9111 additions and 3493 deletions
|
|
@ -1,3 +1,9 @@
|
|||
2006-07-14 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* configure.in (PKG_CHECK_MODULES): Redirect the output of
|
||||
$PKG_CONFIG --exists "$2" to config.log.
|
||||
* configure: Regenerated.
|
||||
|
||||
2006-07-14 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* AUTHORS: Regenerate.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,11 @@
|
|||
2006-07-17 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* FOR-RELEASE: Update refcard section.
|
||||
|
||||
2006-07-14 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* FOR-RELEASE (BUGS): High cpu load on windows server sockets fixed.
|
||||
|
||||
2006-07-09 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* README: Use outline format. Add FOR-RELEASE.
|
||||
|
|
@ -56,7 +64,7 @@
|
|||
|
||||
2006-01-27 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* FOR-RELEASE: string allocation bugs fixed.
|
||||
* FOR-RELEASE: String allocation bugs fixed.
|
||||
|
||||
2005-12-13 Bill Wohler <wohler@newt.com>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@ Tasks needed before the next release.
|
|||
|
||||
** Update release dates of manuals.
|
||||
|
||||
** Get rid of overfull and underfull boxes in manuals.
|
||||
|
||||
** Check for widow and orphan lines in manuals;
|
||||
make sure all the pages really look ok in the manual as formatted.
|
||||
|
||||
|
|
@ -18,12 +16,12 @@ make sure all the pages really look ok in the manual as formatted.
|
|||
Requests to have been sent out on 2006-05-23 (Reiner Steib).
|
||||
|
||||
LANG Translator Status
|
||||
cs Pavel Janík No response
|
||||
cs Pavel Janík Can't work on it now.
|
||||
de Sven Joachim Done
|
||||
fr Eric Jacoboni Done (layout might be improved)
|
||||
pl Włodek Bzyl Done
|
||||
pt-br Rodrigo Real Done
|
||||
ru Alex Ott Working
|
||||
ru Alex Ott Done
|
||||
sk Miroslav Vaško No response
|
||||
|
||||
Reminders sent out on 2006-06-08.
|
||||
|
|
@ -41,21 +39,12 @@ and KDE projects, to use the new Emacs icons in etc/images/icons.
|
|||
'(hscroll-step 1)
|
||||
)
|
||||
|
||||
** TCP server processes do not work on Windows.
|
||||
** David Kastrup's report on strange scrolling of large images.
|
||||
|
||||
TCP/IP server processes created with `make-network-process' consume
|
||||
excesive CPU on some Windows environments. Usages of 50% and 100%
|
||||
CPU time have been observed on different Window XP configurations.
|
||||
Seems to be a problem in sys_select in w32proc.c.
|
||||
|
||||
In its current form, it sys_select says the socket is ready, so we
|
||||
call server_accept_connection which again calls accept() which returns
|
||||
-1 with errno == WSAEWOULDBLOCK (10035) indicating that there is no
|
||||
pending connection to accept.
|
||||
|
||||
It seems that to fix this, w32 server sockets must use WSAAsyncSelect
|
||||
+ FD_ACCEPT to request notifications of incoming connections...
|
||||
** Jorgen Schaefer <forcer@forcix.cx>'s June 18 bug report about
|
||||
fields and invisible overlays needs attention from a field expert.
|
||||
|
||||
** Implement buffer-chars-modified-tick.
|
||||
|
||||
* DOCUMENTATION
|
||||
|
||||
|
|
@ -69,16 +58,16 @@ people who have checked it.
|
|||
SECTION READERS
|
||||
----------------------------------
|
||||
lispref/abbrevs.texi "Luc Teirlinck" Chong Yidong
|
||||
lispref/advice.texi joakim@verona.se Chong Yidong
|
||||
lispref/anti.texi Chong Yidong
|
||||
lispref/advice.texi Joakim Verona Chong Yidong
|
||||
lispref/anti.texi Chong Yidong Kim F. Storm
|
||||
lispref/backups.texi "Luc Teirlinck" Chong Yidong
|
||||
lispref/buffers.texi "Luc Teirlinck" Chong Yidong
|
||||
lispref/calendar.texi Joakim Verona <joakim@verona.se> Chong Yidong
|
||||
lispref/calendar.texi Joakim Verona Chong Yidong
|
||||
lispref/commands.texi "Luc Teirlinck" Chong Yidong
|
||||
lispref/compile.texi "Luc Teirlinck" Chong Yidong
|
||||
lispref/control.texi "Luc Teirlinck" Chong Yidong
|
||||
lispref/customize.texi Chong Yidong "Luc Teirlinck"
|
||||
lispref/debugging.texi Joakim Verona <joakim@verona.se> Lute Kamstra
|
||||
lispref/debugging.texi Joakim Verona Lute Kamstra
|
||||
lispref/display.texi Chong Yidong Jason Rumney
|
||||
lispref/edebug.texi Chong Yidong "Luc Teirlinck"
|
||||
lispref/elisp.texi "Luc Teirlinck" Lute Kamstra
|
||||
|
|
@ -97,7 +86,7 @@ lispref/lists.texi "Luc Teirlinck" Chong Yidong
|
|||
lispref/loading.texi "Luc Teirlinck" Chong Yidong
|
||||
lispref/locals.texi Chong Yidong Nick Roberts
|
||||
lispref/macros.texi "Luc Teirlinck" Chong Yidong
|
||||
lispref/maps.texi Chong Yidong
|
||||
lispref/maps.texi Chong Yidong Kim F. Storm
|
||||
lispref/markers.texi "Luc Teirlinck" Chong Yidong
|
||||
lispref/minibuf.texi "Luc Teirlinck" Chong Yidong
|
||||
lispref/modes.texi Chong Yidong
|
||||
|
|
|
|||
4
configure
vendored
4
configure
vendored
|
|
@ -5675,7 +5675,7 @@ fi
|
|||
echo "$as_me:$LINENO: checking for $ALSA_MODULES" >&5
|
||||
echo $ECHO_N "checking for $ALSA_MODULES... $ECHO_C" >&6
|
||||
|
||||
if $PKG_CONFIG --exists "$ALSA_MODULES" 2> /dev/null; then
|
||||
if $PKG_CONFIG --exists "$ALSA_MODULES" 2>&5; then
|
||||
echo "$as_me:$LINENO: result: yes" >&5
|
||||
echo "${ECHO_T}yes" >&6
|
||||
succeeded=yes
|
||||
|
|
@ -10319,7 +10319,7 @@ echo "$as_me: error:
|
|||
echo "$as_me:$LINENO: checking for $GTK_MODULES" >&5
|
||||
echo $ECHO_N "checking for $GTK_MODULES... $ECHO_C" >&6
|
||||
|
||||
if $PKG_CONFIG --exists "$GTK_MODULES" 2> /dev/null; then
|
||||
if $PKG_CONFIG --exists "$GTK_MODULES" 2>&5; then
|
||||
echo "$as_me:$LINENO: result: yes" >&5
|
||||
echo "${ECHO_T}yes" >&6
|
||||
succeeded=yes
|
||||
|
|
|
|||
|
|
@ -1500,7 +1500,7 @@ AC_DEFUN([PKG_CHECK_MODULES], [
|
|||
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
|
||||
AC_MSG_CHECKING(for $2)
|
||||
|
||||
if $PKG_CONFIG --exists "$2" 2> /dev/null; then
|
||||
if $PKG_CONFIG --exists "$2" 2>&5; then
|
||||
AC_MSG_RESULT(yes)
|
||||
succeeded=yes
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,19 @@
|
|||
2006-07-17 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* ru-refcard.ps: Regenerate.
|
||||
|
||||
2006-07-17 Alex Ott <alexott@gmail.com>
|
||||
|
||||
* ru-refcard.tex: Update for Emacs 22.
|
||||
|
||||
2006-07-14 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* PROBLEMS: Emacs now requires ws2_32.dll on Windows.
|
||||
|
||||
2006-07-14 K,Aa(Broly L,Bu(Brentey <lorentey@elte.hu>
|
||||
|
||||
* HELLO: Update Hungarian sample.
|
||||
|
||||
2006-07-12 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* ERC-NEWS: Update for ERC 5.1.3.
|
||||
|
|
|
|||
37
etc/NEWS
37
etc/NEWS
|
|
@ -238,6 +238,11 @@ automatically at startup, if it exists. When Emacs offers to save
|
|||
modified buffers, it saves the abbrevs too if they have changed. It
|
||||
can do this either silently or asking for confirmation first,
|
||||
according to the value of `save-abbrevs'.
|
||||
|
||||
+++
|
||||
** If the environment variable EMAIL is defined, Emacs now uses its value
|
||||
to compute the default value of `use-mail-address', in preference to
|
||||
concatenation of `user-login-name' with the name of your host machine.
|
||||
|
||||
* Incompatible Editing Changes in Emacs 22.1
|
||||
|
||||
|
|
@ -2011,10 +2016,22 @@ discretionary handling of edits of concealed text, undo concerns, etc.
|
|||
- repaired retention of topic body hanging indent upon topic depth shifts
|
||||
- refuse to create "containment discontinuities", where a
|
||||
topic is shifted deeper than the offspring-depth of its' container
|
||||
- auto-fill-mode is now left inactive when allout-mode starts, if it
|
||||
already was inactive. also, `allout-inhibit-auto-fill' custom
|
||||
configuration variable makes it easy to disable auto fill in allout
|
||||
outlines in general or on a per-buffer basis.
|
||||
- new hook `allout-mode-deactivate-hook', for coordinating with
|
||||
deactivation of allout-mode.
|
||||
- bulleting variation is simpler and more accommodating, both in the
|
||||
default behavior and in ability to vary when creating new topics
|
||||
- many internal fixes and refinements
|
||||
- many module and function docstring clarifications
|
||||
- mode deactivation now does cleans up effectively, more properly
|
||||
restoring affected variables and hooks to former state, removing
|
||||
overlays, etc.
|
||||
- included a few unit-tests for interior functionality. developers can
|
||||
have them automatically run at the end of module load by customizing
|
||||
the option `allout-run-unit-tests-on-load'.
|
||||
- many, many minor tweaks and fixes. many internal fixes and
|
||||
refinements of docstrings.
|
||||
- version number incremented to 2.2
|
||||
|
||||
** The variable `woman-topic-at-point' was renamed
|
||||
|
|
@ -3828,6 +3845,12 @@ If it is non-nil, the function lists only faces matching this regexp.
|
|||
`string-or-null-p' returns non-nil iff OBJECT is a string or nil.
|
||||
`booleanp' returns non-nil iff OBJECT is a t or nil.
|
||||
|
||||
+++
|
||||
*** New hook `command-error-function'.
|
||||
|
||||
By setting this variable to a function, you can control
|
||||
how the editor command loop shows the user an error message.
|
||||
|
||||
** Lisp code indentation features:
|
||||
|
||||
+++
|
||||
|
|
@ -4385,6 +4408,12 @@ name handlers. This will be exploited for remote files mainly.
|
|||
|
||||
** Input changes:
|
||||
|
||||
+++
|
||||
*** The functions `read-event', `read-char', and `read-char-exclusive'
|
||||
have a new optional argument SECONDS. If non-nil, this specifies a
|
||||
maximum time to wait for input, in seconds. If no input arrives after
|
||||
this time elapses, the functions stop waiting and return nil.
|
||||
|
||||
+++
|
||||
*** An interactive specification can now use the code letter 'U' to get
|
||||
the up-event that was discarded in case the last key sequence read for a
|
||||
|
|
@ -4506,6 +4535,8 @@ example,
|
|||
|
||||
(kbd "C-x C-f") => "\^x\^f"
|
||||
|
||||
Actually, this format has existed since Emacs 20.1.
|
||||
|
||||
*** Interactive commands can be remapped through keymaps.
|
||||
|
||||
This is an alternative to using `defadvice' or `substitute-key-definition'
|
||||
|
|
@ -4592,6 +4623,8 @@ Lisp packages using many minor mode keymaps can now maintain their own
|
|||
keymap alist separate from `minor-mode-map-alist' by adding their
|
||||
keymap alist to this list.
|
||||
|
||||
*** The definition of a key-binding passed to define-key can use XEmacs-style
|
||||
key-sequences, such as [(control a)].
|
||||
** Abbrev changes:
|
||||
|
||||
+++
|
||||
|
|
|
|||
17
etc/PROBLEMS
17
etc/PROBLEMS
|
|
@ -929,12 +929,12 @@ make it compiled by the latest Emacs.
|
|||
+ ;; The only way the function is used in this package is included
|
||||
+ ;; in `mucs-package-definition-end-hook' value, where it must
|
||||
+ ;; return (possibly empty) *list* of forms. Do this. Do not rely
|
||||
+ ;; on byte compiler to remove extra `progn's in `(progn ...)'
|
||||
+ ;; on byte compiler to remove extra `progn's in `(progn ...)'
|
||||
+ ;; form.
|
||||
+ `((setq mucs-ccl-facility-alist
|
||||
+ (quote ,mucs-ccl-facility-alist))
|
||||
+ ,@result)))
|
||||
|
||||
|
||||
;;; Add hook for embedding translation informations to a package.
|
||||
(add-hook 'mucs-package-definition-end-hook
|
||||
|
||||
|
|
@ -2023,6 +2023,15 @@ to allocate ptys reliably.
|
|||
|
||||
* Runtime problems specific to MS-Windows
|
||||
|
||||
** Windows 95 and networking.
|
||||
|
||||
To support server sockets, Emacs 22.1 loads ws2_32.dll. If this file
|
||||
is missing, all Emacs networking features are disabled.
|
||||
|
||||
Old versions of Windows 95 may not have the required DLL. To use
|
||||
Emacs' networking features on Windows 95, you must install the
|
||||
"Windows Socket 2" update available from MicroSoft's support Web.
|
||||
|
||||
** Emacs exits with "X protocol error" when run with an X server for MS-Windows.
|
||||
|
||||
A certain X server for Windows had a bug which caused this.
|
||||
|
|
@ -2463,7 +2472,7 @@ command when running temacs like this:
|
|||
|
||||
setarch i386 ./temacs --batch --load loadup [dump|bootstrap]
|
||||
|
||||
|
||||
|
||||
*** Fedora Core 4 GNU/Linux: Segfault during dumping.
|
||||
|
||||
In addition to exec-shield explained above "Linux: Segfault during
|
||||
|
|
@ -2477,7 +2486,7 @@ command:
|
|||
|
||||
or
|
||||
|
||||
setarch i386 -R make bootstrap
|
||||
setarch i386 -R make bootstrap
|
||||
|
||||
*** Fatal signal in the command temacs -l loadup inc dump.
|
||||
|
||||
|
|
|
|||
6943
etc/ru-refcard.ps
6943
etc/ru-refcard.ps
File diff suppressed because it is too large
Load diff
|
|
@ -19,7 +19,7 @@
|
|||
\newlength{\ColThreeWidth}
|
||||
\setlength{\ColThreeWidth}{25mm}
|
||||
|
||||
\newcommand{\versionnumber}[0]{2.2}
|
||||
\newcommand{\versionnumber}[0]{2.3}
|
||||
\newcommand{\nyear}[0]{2006}
|
||||
|
||||
\newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill
|
||||
|
|
@ -29,9 +29,9 @@
|
|||
\newcommand\copyrightnotice[0]{
|
||||
\vskip 1ex plus 2 fill\begingroup\footnotesize
|
||||
\centerline{Copyright \copyright\ \nyear\ Free Software Foundation, Inc.}
|
||||
\centerline{v\versionnumber{} for GNU Emacs version 21, June \nyear}
|
||||
\centerline{v\versionnumber{} for GNU Emacs version 22, June \nyear}
|
||||
\centerline{designed by Stephen Gildea}
|
||||
\centerline{Перевод Alex Ott <ottalex at narod.ru>}
|
||||
\centerline{Перевод Alex Ott <alexott@gmail.com>}
|
||||
|
||||
Permission is granted to make and distribute copies of
|
||||
this card provided the copyright notice and this permission notice
|
||||
|
|
@ -53,14 +53,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
|
||||
%\begin{multicols}{3}
|
||||
|
||||
\centerline{Справочная карта по GNU Emacs}
|
||||
\centerline{(для версии 21)}
|
||||
\centerline{Справочник команд GNU Emacs}
|
||||
\centerline{(для версии 22)}
|
||||
|
||||
\section{Запуск Emacs}
|
||||
|
||||
Для запуска GNU Emacs 21, просто наберите имя программы: \kbd{emacs}
|
||||
|
||||
О том, как открывать файлы, читайте далее в разделе Файлы.
|
||||
Для запуска GNU Emacs 22, просто наберите имя программы: \kbd{emacs}
|
||||
|
||||
\section{Выход из Emacs}
|
||||
|
||||
|
|
@ -72,28 +70,28 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
\section{Файлы}
|
||||
|
||||
\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
|
||||
{\bf открыть} файл в буфере Emacs & \kbd{C-x C-f} \\
|
||||
{\bf открыть} файл в Emacs & \kbd{C-x C-f} \\
|
||||
{\bf сохранить} файл обратно на диск & \kbd{C-x C-s} \\
|
||||
сохранить {\bf все} файлы & \kbd{C-x s} \\
|
||||
{\bf вставить} содержимое другого файла в текущий буфер & \kbd{C-x i} \\
|
||||
открыть нужный вам файл вместо текущего & \kbd{C-x C-v} \\
|
||||
сохранить буфер в указанном файле & \kbd{C-x C-w} \\
|
||||
Включить/выключить состояние буфера ``только для чтения'' & \kbd{C-x C-q} \\
|
||||
Переключить состояние буфера ``только для чтения'' & \kbd{C-x C-q} \\
|
||||
\end{tabular}
|
||||
|
||||
\section{Получение помощи}
|
||||
|
||||
Справочная система достаточно проста. Hажмите \kbd{C-h} (или \kbd{F1}) и
|
||||
следуйте инструкциям. Если вы в первый раз работаете с Emacs, наберите
|
||||
следуйте инструкциям. Если вы в первый раз работаете с Emacs, то наберите
|
||||
\kbd{C-u C-h t Russian RET} для вызова {\bf учебника}.
|
||||
|
||||
\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
|
||||
Закрыть окно справки & \kbd{C-x 1} \\
|
||||
Скрыть окно справки & \kbd{C-x 1} \\
|
||||
Прокрутить окно справки & \kbd{C-M-v} \\
|
||||
|
||||
apropos: показать команды, соответствующие строке & \kbd{C-h a} \\
|
||||
показать имя функции, которая запускается клавишей & \kbd{C-h c} \\
|
||||
описать функцию & \kbd{C-h f} \\
|
||||
показать имя функции, которая запускается клавишей & \kbd{C-h k} \\
|
||||
получить информацию о функции & \kbd{C-h f} \\
|
||||
получить информацию о режиме & \kbd{C-h m} \\
|
||||
\end{tabular}
|
||||
|
||||
|
|
@ -102,7 +100,7 @@ apropos:
|
|||
\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
|
||||
{\bf прервать} частично набранную или исполняемую команду & \kbd{C-g} \\
|
||||
{\bf восстановить} файл, потерянный при крахе системы & \kbd{M-x recover-file} \\
|
||||
{\bf отменить} нежелательные изменения & \kbd{C-x u {\rm или} C-\_} \\
|
||||
{\bf отменить} нежелательные изменения & \kbd{C-x u, C-\_ {\rm или} C-/} \\
|
||||
восстановить буфер в первоначальное состояние & \kbd{M-x revert-buffer} \\
|
||||
перерисовать заполненный мусором экран & \kbd{C-l} \\
|
||||
\end{tabular}
|
||||
|
|
@ -112,7 +110,7 @@ apropos:
|
|||
\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
|
||||
поиск вперед & \kbd{C-s} \\
|
||||
поиск назад & \kbd{C-r} \\
|
||||
поиск по регулярному выражению & \kbd{C-M-s} \\
|
||||
поиск по регулярному выражению вперед & \kbd{C-M-s} \\
|
||||
поиск по регулярному выражению назад & \kbd{C-M-r} \\
|
||||
|
||||
выбрать предыдущую строку поиска & \kbd{M-p} \\
|
||||
|
|
@ -124,7 +122,7 @@ apropos:
|
|||
|
||||
Для повтора поиска в любом направлении используйте клавиши \kbd{C-s} или
|
||||
\kbd{C-r}. Если Emacs все еще производит поиск, \kbd{C-g} отменит только
|
||||
несделанную часть.
|
||||
не выполненную часть.
|
||||
|
||||
\section{Перемещение}
|
||||
|
||||
|
|
@ -148,7 +146,7 @@ apropos:
|
|||
прокрутка экрана вверх & \kbd{M-v} \\
|
||||
прокрутка влево & \kbd{C-x <} \\
|
||||
прокрутка вправо & \kbd{C-x >} \\
|
||||
прокрутка текущей строки в центр экрана & \kbd{C-u C-l} \\
|
||||
установка текущей строки в центр экрана & \kbd{C-u C-l} \\
|
||||
\end{tabular}
|
||||
|
||||
\section{Уничтожение и удаление}
|
||||
|
|
@ -175,8 +173,8 @@ apropos:
|
|||
\section{Пометка}
|
||||
|
||||
\begin{tabular}{p{\ColWidth}l}
|
||||
установить пометки & \kbd{C-@ {\rm or} C-SPC} \\
|
||||
обменять местами курсор и пометку & \kbd{C-x C-x} \\
|
||||
установить пометки & \kbd{C-@ {\rm или} C-SPC} \\
|
||||
поменять местами курсор и пометку & \kbd{C-x C-x} \\
|
||||
|
||||
пометить {\it arg\/} {\bf слов} & \kbd{M-@} \\
|
||||
пометить {\bf параграф} & \kbd{M-h} \\
|
||||
|
|
@ -193,7 +191,7 @@ apropos:
|
|||
с использованием регулярных выражений & \kbd{M-x query-replace-regexp} \\
|
||||
\end{tabular}
|
||||
|
||||
В режиме интерактивной замены пользователю доступны следующие ответы:
|
||||
В режиме интерактивной замены пользователю доступны следующие команды:
|
||||
|
||||
\begin{tabular}{p{\ColWidth}l}
|
||||
{\bf заменить} данное соответствие, перейти к следующему & \kbd{SPC} \\
|
||||
|
|
@ -201,14 +199,14 @@ apropos:
|
|||
{\bf пропустить} соответствие без замены & \kbd{DEL} \\
|
||||
заменить все оставшиеся соответствия & \kbd{!} \\
|
||||
{\bf вернуться} к предыдущему соответствию & \kbd{\^} \\
|
||||
{\bf выйти} из режима замена с запросом & \kbd{RET} \\
|
||||
{\bf выйти} из режима ``замена с запросом'' & \kbd{RET} \\
|
||||
войти в режим рекурсивного редактирования (для выхода используется \kbd{C-M-c}) & \kbd{C-r} \\
|
||||
\end{tabular}
|
||||
|
||||
\section{Множество окон}
|
||||
\section{Использование нескольких окон}
|
||||
|
||||
Команды, приведенные во втором столбце, применяются к другому
|
||||
(неактивному) окну.
|
||||
фрэйму (окну используемой оконной системы).
|
||||
|
||||
\begin{tabular}{p{\ColWidth}l}
|
||||
удалить все остальные окна & \kbd{C-x 1} \\
|
||||
|
|
@ -256,11 +254,11 @@ apropos:
|
|||
удалить пустое пространство вокруг курсора & \kbd{M-$\backslash$} \\
|
||||
поместить только один пробел в позиции курсора & \kbd{M-SPC} \\
|
||||
|
||||
заполнить текущий параграф & \kbd{M-q} \\
|
||||
отформатировать текущий параграф & \kbd{M-q} \\
|
||||
установить столбец заполнения & \kbd{C-x f} \\
|
||||
установить префикс заполнения каждой строки & \kbd{C-x .} \\
|
||||
|
||||
установить начертание & \kbd{M-g} \\
|
||||
установить начертание (face) & \kbd{M-g} \\
|
||||
\end{tabular}
|
||||
|
||||
\section{Изменение регистра}
|
||||
|
|
@ -283,8 +281,8 @@ apropos:
|
|||
дополнить до одного слова & \kbd{SPC} \\
|
||||
дополнить и выполнить & \kbd{RET} \\
|
||||
показать возможные дополнения & \kbd{?} \\
|
||||
выбрать предыдущий ввод в минибуфер & \kbd{M-p} \\
|
||||
выбрать следующий ввод в минибуфер & \kbd{M-n} \\
|
||||
выбрать предыдущую строку из истории ввода & \kbd{M-p} \\
|
||||
выбрать следующую строку из истории ввода & \kbd{M-n} \\
|
||||
поиск в истории по регулярному выражению в обратном напрвлении & \kbd{M-r} \\
|
||||
поиск в истории по регулярному выражению в прямом напрвлении & \kbd{M-s} \\
|
||||
прервать команду & \kbd{C-g} \\
|
||||
|
|
@ -302,7 +300,7 @@ apropos:
|
|||
уничтожить буфер & \kbd{C-x k} \\
|
||||
\end{tabular}
|
||||
|
||||
\section{Обмен местами}
|
||||
\section{Перестановка данных}
|
||||
|
||||
\begin{tabular}{p{\ColWidth}l}
|
||||
обменять местами {\bf символы} & \kbd{C-t} \\
|
||||
|
|
@ -311,7 +309,7 @@ apropos:
|
|||
обменять местами {\bf выражения} & \kbd{C-M-t} \\
|
||||
\end{tabular}
|
||||
|
||||
\section{Проверка грамматики}
|
||||
\section{Проверка правописания}
|
||||
|
||||
\begin{tabular}{p{\ColWidth}l}
|
||||
проверить текущее слово & \kbd{M-\$} \\
|
||||
|
|
@ -324,7 +322,7 @@ apropos:
|
|||
\begin{tabular}{p{\ColWidth}l}
|
||||
найти определение тега & \kbd{M-.} \\
|
||||
найти следующее вхождение тега & \kbd{C-u M-.} \\
|
||||
указать новый файл с тегами & \kbd{M-x visit-tags-table} \\
|
||||
использовать новый файл с тегами & \kbd{M-x visit-tags-table} \\
|
||||
|
||||
поиск по шаблону по всей таблице тегов & \kbd{M-x tags-search} \\
|
||||
выполнить query-replace над всеми файлами & \kbd{M-x tags-query-replace} \\
|
||||
|
|
@ -395,7 +393,7 @@ apropos:
|
|||
\section{Международные наборы символов}
|
||||
|
||||
\begin{tabular}{p{\ColWidth}l}
|
||||
выбрать язык & \kbd{M-x set-language-environment} \\
|
||||
выбрать язык & \kbd{C-x RET l} \\
|
||||
показать все возможные методы ввода & \kbd{M-x list-input-methods} \\
|
||||
разрешить или запретить метод ввода & \kbd{C-$\backslash$} \\
|
||||
установить систему кодирования для следующей команды & \kbd{C-x RET c} \\
|
||||
|
|
@ -407,7 +405,7 @@ apropos:
|
|||
|
||||
\begin{tabular}{p{\ColWidth}l}
|
||||
запустить систему доступа к документации & \kbd{C-h i} \\
|
||||
найти указанную функцию или переменную в документации & \kbd{C-h C-i} \\
|
||||
найти указанную функцию или переменную в документации & \kbd{C-h S} \\
|
||||
\end{tabular}
|
||||
|
||||
Перемещение внутри узла (нодами):
|
||||
|
|
@ -424,11 +422,12 @@ apropos:
|
|||
{\bf следующий} узел & \kbd{n} \\
|
||||
{\bf предыдущий} узел & \kbd{p} \\
|
||||
перейти к {\bf верхнему} узлу & \kbd{u} \\
|
||||
выбрать меню по имени & \kbd{m} \\
|
||||
выбрать пункт меню по имени & \kbd{m} \\
|
||||
выбрать {\it n\/}-й пункт меню по номеру (1--9) & \kbd{{\it n}} \\
|
||||
перейти по ссылке (возврат с помощью \kbd{l}) & \kbd{f} \\
|
||||
перейти по ссылке (возврат с помощью \kbd{l}) & \kbd{f} \\
|
||||
возвратится к последнему просмотренному узлу & \kbd{l} \\
|
||||
возвратится к узлу-каталогу & \kbd{d} \\
|
||||
Перейти к верхему узлу файла & \kbd{t} \\
|
||||
перейти к узлу, заданному именем & \kbd{g} \\
|
||||
\end{tabular}
|
||||
|
||||
|
|
@ -436,8 +435,8 @@ apropos:
|
|||
|
||||
\begin{tabular}{p{\ColWidth}l}
|
||||
запустить {\bf учебник} по системе документации & \kbd{h} \\
|
||||
поиск темы в индексе & \kbd{i} \\
|
||||
поиск в узлах с помощью регулярных выражений & \kbd{s} \\
|
||||
% look up a subject in the indices & \kbd{i} % FIXME
|
||||
{\bf прекратить работу} с документацией & \kbd{q} \\
|
||||
\end{tabular}
|
||||
|
||||
|
|
@ -481,7 +480,7 @@ apropos:
|
|||
% The intended audience here is the person who wants to make simple
|
||||
% customizations and knows Lisp syntax.
|
||||
|
||||
Создать глобальное назначение ключей на Emacs Lisp (пример):
|
||||
Создание глобальных привязок клавиш (ключей) на Emacs Lisp (примеры):
|
||||
|
||||
\begin{verbatim}
|
||||
(global-set-key "\C-cg" 'goto-line)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,14 @@
|
|||
2006-07-20 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* fakemail.c (fatal): Drop second parameter and treat first
|
||||
parameter as a plain string. Callers changed.
|
||||
|
||||
2006-07-18 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
* ebrowse.c (usage, version): Mark as NO_RETURN.
|
||||
|
||||
* emacsclient.c (print_help_and_exit): Likewise.
|
||||
|
||||
2006-07-10 Francesco Potort,Al(B <pot@gnu.org>
|
||||
|
||||
* etags.c (absolute_filename): Free unused space (cosmetic change).
|
||||
|
|
|
|||
|
|
@ -533,6 +533,8 @@ struct sym *parse_qualified_ident_or_type P_ ((char **));
|
|||
void parse_qualified_param_ident_or_type P_ ((char **));
|
||||
int globals P_ ((int));
|
||||
void yyerror P_ ((char *, char *));
|
||||
void usage P_ ((int)) NO_RETURN;
|
||||
void version P_ (()) NO_RETURN;
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ const char * alternate_editor = NULL;
|
|||
/* If non-NULL, the filename of the UNIX socket. */
|
||||
char *socket_name = NULL;
|
||||
|
||||
void print_help_and_exit ();
|
||||
void print_help_and_exit () NO_RETURN;
|
||||
|
||||
struct option longopts[] =
|
||||
{
|
||||
|
|
|
|||
|
|
@ -175,10 +175,10 @@ error (s1, s2)
|
|||
/* Print error message and exit. */
|
||||
|
||||
static void
|
||||
fatal (s1, s2)
|
||||
char *s1, *s2;
|
||||
fatal (s1)
|
||||
char *s1;
|
||||
{
|
||||
error (s1, s2);
|
||||
error ("%s", s1);
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
|
|
@ -190,7 +190,7 @@ xmalloc (size)
|
|||
{
|
||||
long *result = (long *) malloc (((unsigned) size));
|
||||
if (result == ((long *) NULL))
|
||||
fatal ("virtual memory exhausted", 0);
|
||||
fatal ("virtual memory exhausted");
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -377,7 +377,7 @@ make_file_preface ()
|
|||
tm = localtime (&idiotic_interface);
|
||||
if (! (tm && TM_YEAR_IN_ASCTIME_RANGE (tm->tm_year)
|
||||
&& (the_date = asctime (tm))))
|
||||
fatal ("current time is out of range", 0);
|
||||
fatal ("current time is out of range");
|
||||
/* the_date has an unwanted newline at the end */
|
||||
date_length = strlen (the_date) - 1;
|
||||
the_date[date_length] = '\0';
|
||||
|
|
|
|||
425
lisp/ChangeLog
425
lisp/ChangeLog
|
|
@ -1,3 +1,393 @@
|
|||
2006-07-28 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* Makefile.in (recompile): Update comment to reflect change
|
||||
on 2004-04-21.
|
||||
|
||||
2006-07-27 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* cus-edit.el (customize-package-emacs-version-alist): Doc fix.
|
||||
(customize-package-emacs-version): Change msg when pkg has no entry.
|
||||
(custom-no-edit): On a button, do like widget-button-press.
|
||||
|
||||
2006-07-27 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
* term/xterm.el (terminal-init-xterm): Fix bindings for C-tab,
|
||||
S-tab and C-S-tab.
|
||||
|
||||
2006-07-28 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* progmodes/which-func.el (which-function): Fix documentation/
|
||||
comment typo.
|
||||
|
||||
2006-07-26 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* textmodes/ispell.el (ispell-word): If we replace the word,
|
||||
move point to the end. Insert before deleting.
|
||||
|
||||
2006-07-26 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* subr.el (sit-for): Use new SECONDS arg of read-event instead of
|
||||
a timer.
|
||||
|
||||
2006-07-26 Mathias Dahl <mathias.dahl@gmail.com>
|
||||
|
||||
* tumme.el (tumme-backward-image): Add prefix argument. Add error
|
||||
when at first image.
|
||||
(tumme-forward-image): Add prefix argument. Add error when at last
|
||||
image.
|
||||
|
||||
2006-07-25 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* tabify.el (tabify-regexp): Use more specific regexps.
|
||||
(tabify): Avoid modifying the buffer unnecessarily.
|
||||
|
||||
2006-07-25 Mathias Dahl <mathias.dahl@gmail.com>
|
||||
|
||||
* tumme.el (tumme-track-original-file): Add `buffer-live-p' check.
|
||||
(tumme-format-properties-string): Handle empty `buf'.
|
||||
(tumme-get-comment): Change variable names inside `let'. Add
|
||||
missing `let' variable that cause font-lock problems.
|
||||
(tumme-write-comments): Change variable names inside `let'. Add
|
||||
missing `let' variable that cause font-lock problems.
|
||||
(tumme-forward-image): Rename from `tumme-forward-char'.
|
||||
(tumme-backward-image): Rename from `tumme-backward-char'.
|
||||
|
||||
2006-07-25 Masatake YAMATO <jet@gyve.org>
|
||||
|
||||
* progmodes/ld-script.el (ld-script-keywords)
|
||||
(ld-script-font-lock-keywords, ld-script-builtins): Update keywords
|
||||
and add comments.
|
||||
|
||||
2006-07-25 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* progmodes/gdb-ui.el (gdb-set-gud-minor-mode-existing-buffers)
|
||||
(gdb-resync, gdb-prompt, gdb-starting, gdb-exited, gdb-stopped)
|
||||
(gdb-set-gud-minor-mode-existing-buffers-1): Use different faces
|
||||
for status indicator.
|
||||
|
||||
2006-07-24 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* xml.el (xml-parse-file): Clean up, and use with-temp-buffer.
|
||||
|
||||
* subr.el (dolist, dotimes): Use interned symbols for locals.
|
||||
(--dotimes-limit--, --dolist-tail--): New defvars.
|
||||
(looking-back): Doc fix.
|
||||
|
||||
* replace.el (replace-match-string-symbols): Handle dotted lists.
|
||||
|
||||
2006-07-24 mathias <mathias@mattis>
|
||||
|
||||
* tumme.el (tumme-write-tags): Add.
|
||||
(tumme-write-comments): Add.
|
||||
(tumme-tag-files): Change to use `tumme-write-tags'.
|
||||
(tumme-tag-thumbnail): Change to use `tumme-write-tags'.
|
||||
(tumme-dired-comment-files): Change to use `tumme-write-comments'.
|
||||
(tumme-save-information-from-widgets): Change to use
|
||||
`tumme-write-comments' and `tumme-write-tags'.
|
||||
(tumme-comment-thumbnail): Change to use `tumme-write-comments'.
|
||||
(tumme-write-tag): Remove.
|
||||
(tumme-write-comment): Remove.
|
||||
(tumme-display-previous-thumbnail-original): Remove empty line.
|
||||
(tumme-widget-list): Add punctuation.
|
||||
|
||||
2006-07-24 mathias <mathias.dahl@gmail.com>
|
||||
|
||||
* tumme.el (tumme-line-up): Add an extra check for end of buffer.
|
||||
|
||||
2006-07-24 Daiki Ueno <ueno@unixuser.org>
|
||||
|
||||
* pgg-def.el (pgg-truncate-key-identifier): Truncate the key ID to 8
|
||||
letters from the end. Thanks to "David Smith" <davidsmith@acm.org> and
|
||||
andreas@altroot.de (Andreas V,Av(Bgele)
|
||||
|
||||
2006-07-23 Thien-Thi Nguyen <ttn@gnu.org>
|
||||
|
||||
* mouse.el (mouse-on-link-p): Doc fix.
|
||||
|
||||
2006-07-23 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* emacs-lisp/find-func.el (find-function-search-for-symbol):
|
||||
Handle "C-h f `".
|
||||
|
||||
2006-07-22 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
* ibuffer.el (ibuffer-formats): Use left alignment for the mode
|
||||
column.
|
||||
|
||||
2006-07-22 Matt Hodges <MPHodges@member.fsf.org>
|
||||
|
||||
* textmodes/table.el: Add move-beginning-of-line and
|
||||
move-end-of-line to Point Motion Only Group.
|
||||
|
||||
2006-07-22 Eric Hanchrow <offby1@blarg.net>
|
||||
|
||||
* progmodes/delphi.el (delphi-fill-comment): Use save-restriction.
|
||||
|
||||
2006-07-22 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org>
|
||||
|
||||
* startup.el (user-mail-address): Initialize from the `EMAIL'
|
||||
environment variable first. Document this.
|
||||
(command-line): Ditto.
|
||||
|
||||
2006-07-22 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* help-mode.el (help-function-def, help-variable-def)
|
||||
(help-face-def): Print a message in the minibuffer.
|
||||
|
||||
2006-07-21 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
* term/xterm.el (terminal-init-xterm): Fix key bindings
|
||||
syntax. Bind S-return, C-M-., C-TAB, S-TAB and C-S-TAB.
|
||||
|
||||
2006-07-21 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* dos-w32.el (find-buffer-file-type-coding-system): Support calls
|
||||
where `(nth 1 command)' is a cons cell. Doc fix.
|
||||
|
||||
* textmodes/po.el (po-find-charset): Doc fix.
|
||||
|
||||
2006-07-21 Ken Manheimer <ken.manheimer@gmail.com>
|
||||
|
||||
* allout.el (allout-unprotected, allout-e-o-prefix-p)
|
||||
(allout-beginning-of-current-line, allout-end-of-current-line)
|
||||
(allout-next-visible-heading, allout-open-topic)
|
||||
(allout-kill-topic, allout-yank-processing, allout-resolve-xref)
|
||||
(allout-flag-current-subtree, allout-show-to-offshoot)
|
||||
(allout-hide-current-entry, allout-show-current-branches)
|
||||
(allout-hide-region-body, allout-old-expose-topic)
|
||||
(allout-listify-exposed, allout-latex-verbatim-quote-curr-line)
|
||||
(allout-mark-topic, allout-adjust-file-variable): Enclose scopes
|
||||
containing `beginning-of-line' and `end-of-line' with
|
||||
`inhibit-field-text-motion' t.
|
||||
|
||||
2006-07-21 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* frame.el (focus-follows-mouse): Document that it doesn't have
|
||||
any effect on MS-Windows.
|
||||
|
||||
2006-07-20 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* progmodes/sh-script.el (sh-quoted-subshell): Further fix last change.
|
||||
|
||||
2006-07-20 Jay Belanger <belanger@truman.edu>
|
||||
|
||||
* calc.el (calc-previous-alg-entry): Remove variable.
|
||||
|
||||
* calc-aent.el (calc-alg-entry-history, calc-quick-calc-history):
|
||||
New variables.
|
||||
(calc-alg-entry): Use `calc-alg-entry-history'.
|
||||
(calc-do-quick-calc): Use `calc-quick-calc-history'.
|
||||
Remove reference to `calc-previous-alg-entry'.
|
||||
(calcAlg-edit, calcAlg-enter): Remove reference to
|
||||
`calc-previous-alg-entry'.
|
||||
(calcAlg-previous): Use `previous-history-element' instead of
|
||||
`calc-previous-alg-entry'.
|
||||
(calc-do-alg-entry): Use history when calling `read-from-minibuffer'.
|
||||
Change keybinding for `calcAlg-plus-minus', add keybindings for
|
||||
`previous-history-element' and `next-history-element'.
|
||||
|
||||
* calc-rewr.el (calc-match): Remove reference to
|
||||
`calc-previous-alg-entry'.
|
||||
|
||||
* calc-sel.el (calc-selection-history): New variable.
|
||||
(calc-enter-selection, calc-sel-mult-both-sides)
|
||||
(calc-sel-add-both-sides): Use `calc-selection-history'.
|
||||
|
||||
* calc-map.el (calc-get-operator-history): New variable.
|
||||
(calc-get-operator): Use `calc-get-operator-history'.
|
||||
|
||||
* calcalg3.el (calc-curve-fit-history): New variable.
|
||||
(calc-curve-fit): Use `calc-curve-fit-history'.
|
||||
|
||||
2006-07-20 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* international/mule-cmds.el (select-safe-coding-system): Fix the
|
||||
way of deciding eol-type of the coding system.
|
||||
|
||||
2006-07-20 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
* progmodes/cc-langs.el (c-emacs-variable-inits): New variable.
|
||||
(c-lang-setvar): New macro.
|
||||
(c-make-init-lang-vars-fun): Use the initialization forms in
|
||||
c-emacs-variable-inits in addition to those in c-lang-variable-inits.
|
||||
(comment-start, comment-end, comment-start-skip): Change these from
|
||||
c-lang-defvar's to c-lang-setvar's.
|
||||
|
||||
* progmodes/cc-mode.el (c-make-emacs-variables-local): New macro,
|
||||
which calls make-local-variable on the elements of
|
||||
c-emacs-variable-inits.
|
||||
(c-init-language-vars-for): Call this new macro.
|
||||
|
||||
2006-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* progmodes/compile.el (compilation-error-regexp-alist-alist) <gnu>:
|
||||
Try to rule out false positives due to time stamps.
|
||||
(compilation-mode-font-lock-keywords): Remove rules made redundant
|
||||
because of the above change. Add `segmentation fault' to the known and
|
||||
highlighted compilation termination messages.
|
||||
|
||||
2006-07-19 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* progmodes/grep.el (grep-find-ignored-directories):
|
||||
Add .svn and _darcs to list.
|
||||
|
||||
2006-07-19 Mathias Dahl <mathias.dahl@gmail.com>
|
||||
|
||||
* dired.el (dired-mode-map): Add key binding `C-te' for
|
||||
`tumme-dired-edit-comment-and-tags'.
|
||||
|
||||
* tumme.el (tumme-display-thumbnail-original-image): Make sure
|
||||
image display buffer is displayed before call to
|
||||
`tumme-display-image.
|
||||
(tumme-dired-display-image): Make sure image display buffer is
|
||||
displayed before call to `tumme-display-image.
|
||||
(tumme-mouse-display-image): Make sure image display buffer is
|
||||
displayed before call to `tumme-display-image.
|
||||
(tumme-widget-list): Add.
|
||||
(tumme-dired-edit-comment-and-tags): Add.
|
||||
(tumme-save-information-from-widgets): Add.
|
||||
|
||||
2006-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* progmodes/sh-script.el (sh-quoted-subshell): Fix last change.
|
||||
|
||||
2006-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* progmodes/sh-script.el (sh-font-lock-keywords-1):
|
||||
Revert inadvertently installed patch hunk.
|
||||
|
||||
* progmodes/compile.el (compilation-find-file): Handle the
|
||||
cases where the user selects a non-existent file.
|
||||
|
||||
2006-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* bindings.el (minibuffer-local-map): Rebind TAB so it inserts a \t.
|
||||
|
||||
2006-07-17 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* subr.el (sit-for): Just sleep-for if noninteractive.
|
||||
|
||||
2006-07-17 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp/autoload.el (make-autoload): Use new arg.
|
||||
|
||||
* custom.el (custom-autoload): Add `noset' argument.
|
||||
(custom-push-theme): Don't autoload the variable, let callers do it.
|
||||
(custom-theme-set-variables): Autoload the variable if necessary.
|
||||
|
||||
* cus-edit.el (custom-variable-state-set): If the variable was
|
||||
originally set outside custom, but to the same value as the default,
|
||||
consider it to be standard.
|
||||
|
||||
* Makefile.in (mh-loaddefs.el): Finish setting up the default empty
|
||||
file *before* telling Emacs to add the autoloads, in case it fails.
|
||||
|
||||
* progmodes/sh-script.el (sh-quoted-subshell): Don't match escaped `.
|
||||
Use `cond', push', and `dolist'.
|
||||
|
||||
2006-07-17 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* image-mode.el (tar-superior-buffer, archive-superior-buffer):
|
||||
Add defvars to silence warnings.
|
||||
|
||||
2006-07-17 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* progmodes/compile.el (compilation-mode-font-lock-keywords):
|
||||
Don't highlight "Compiling file" messages as error.
|
||||
|
||||
* dired-aux.el (dired-compress-file): Confirm again if gzipped
|
||||
file already exists.
|
||||
|
||||
2006-07-16 Thien-Thi Nguyen <ttn@gnu.org>
|
||||
|
||||
* find-file.el (ff-special-constructs): Doc fix. Also, for C/C++
|
||||
entry, don't assign to free var; simply return the extracted filename.
|
||||
(ff-treat-as-special): Incorporate common preamble from callers.
|
||||
(ff-other-file-name, ff-find-the-other-file):
|
||||
Update call to ff-treat-as-special.
|
||||
|
||||
* progmodes/ada-mode.el (ada-mode): Rewrite ff-special-constructs init.
|
||||
|
||||
2006-07-16 Mathias Dahl <mathias.dahl@gmail.com>
|
||||
|
||||
* tumme.el (tumme-get-comment): Fix bug.
|
||||
|
||||
2006-07-16 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* files.el: Remove spurious * in docstrings.
|
||||
|
||||
2006-07-14 Ken Manheimer <ken.manheimer@gmail.com>
|
||||
|
||||
* allout.el (allout-run-unit-tests-on-load): Rectify docstring
|
||||
grammar.
|
||||
(allout-beginning-of-current-line): Beware beginning of buffer.
|
||||
Also, a comment is simplified.
|
||||
(allout-hotspot-key-handler): Only set allout-post-goto-bullet
|
||||
when appropriate. (This fix enables use for other than
|
||||
bullet-hotspot operation.)
|
||||
(allout-hide-current-subtree): While escalating to sibling-close,
|
||||
make sure to situate on a topic.
|
||||
|
||||
2006-07-14 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* emulation/cua-base.el (cua-delete-selection)
|
||||
(cua-toggle-set-mark): New defcustoms.
|
||||
(cua-rectangle-modifier-key): Add `alt' modifier.
|
||||
(cua-replace-region): Don't delete if cua-delete-selection is nil.
|
||||
(cua-set-mark): Don't clear mark if cua-toggle-set-mark is nil.
|
||||
Suggested by Klaus Zeitler <kzeitler@lucent.com>.
|
||||
|
||||
* emulation/cua-rect.el (cua-help-for-rectangle): Add `alt' modifier.
|
||||
|
||||
2006-07-14 Ken Manheimer <ken.manheimer@gmail.com>
|
||||
|
||||
* allout.el: Require 'cl during byte-compilation/interactive load,
|
||||
for the `assert' macro.
|
||||
(allout-mode-deactivate-hook): New hook, run when allout mode
|
||||
deactivates.
|
||||
(allout-developer): New allout customization subgroup.
|
||||
(allout-run-unit-tests-on-load): New allout-developer
|
||||
customization variable, when true allout unit tests are run towards
|
||||
end of file load/eval.
|
||||
(allout-inhibit-auto-fill): Disable auto-fill activity even during
|
||||
auto-fill-mode.
|
||||
(allout-resumptions): Remove, to be replaced by...
|
||||
(allout-add-resumptions): Register variable settings to be
|
||||
reinstated by `allout-do-resumptions'. The settings are made
|
||||
buffer-local, but the locality/globality of the suspended setting
|
||||
is restored on resumption.
|
||||
(allout-do-resumptions): Reinstate all settings suspended using
|
||||
`allout-add-resumptions'.
|
||||
(allout-test-resumptions): Unit tests (and intermediate variables)
|
||||
for resumptions.
|
||||
(allout-tests-globally-unbound, allout-tests-globally-true)
|
||||
(allout-tests-locally-true): Intermediate variables for
|
||||
resumptions unit tests.
|
||||
(allout-overlay-preparations): Replaces `allout-set-overlay-category'.
|
||||
(allout-exposure-category): Replaces 'allout-overlay-category variable.
|
||||
(allout-mode): Use `allout-add-resumptions' and `allout-do-resumptions'
|
||||
instead of retired `allout-resumptions'. For hook functions, use
|
||||
`local' parameter so hook settings are created and removed as
|
||||
buffer-local settings. Revise (resumptions) setting
|
||||
auto-fill-function so it is set only if already active. (The
|
||||
related fill-function settings are all made in either case, so
|
||||
that activating auto-fill-mode activity will have the custom
|
||||
allout-mode behaviors (hanging indent on topics, if configured for it).
|
||||
Remove all allout-exposure-category overlays on mode deactivation.
|
||||
(allout-hotspot-key-handler): New function extracted from
|
||||
`allout-pre-command-business', so the functionality can be used
|
||||
for other purposes, eg as a binding in an overlay.
|
||||
(allout-pre-command-business): Use new `allout-hotspot-key-handler'.
|
||||
(allout-auto-fill): Respect new `allout-inhibit-auto-fill'
|
||||
customization variable.
|
||||
(allout-run-unit-tests): Run the (currently quite small)
|
||||
repertoire of unit tests. Called just before the provide iff user
|
||||
has customized `allout-run-unit-tests-on-load' non-nil.
|
||||
|
||||
2006-07-14 K,Aa(Broly L,Bu(Brentey <lorentey@elte.hu>
|
||||
|
||||
* emacs-lisp/authors.el (authors-aliases): Update.
|
||||
|
||||
2006-07-14 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* progmodes/gdb-ui.el (gdb-display-buffer): Check for
|
||||
|
|
@ -6,7 +396,7 @@
|
|||
(gdb-display-breakpoints-buffer, gdb-display-stack-buffer)
|
||||
(gdb-display-threads-buffer, gdb-display-memory-buffer)
|
||||
(gdb-display-locals-buffer): Use it.
|
||||
|
||||
|
||||
* progmodes/gud.el (gud-display-line): Use gdb-display-buffer.
|
||||
Set gdb-source-window.
|
||||
|
||||
|
|
@ -51,10 +441,9 @@
|
|||
|
||||
2006-07-12 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* tumme.el (tumme-create-thumb)
|
||||
(tumme-thumbnail-display-external, tumme-display-image)
|
||||
(tumme-rotate-thumbnail, tumme-rotate-original)
|
||||
(tumme-set-exif-data, tumme-get-exif-data): Use shell-command-switch.
|
||||
* tumme.el (tumme-create-thumb, tumme-thumbnail-display-external)
|
||||
(tumme-display-image, tumme-rotate-thumbnail, tumme-rotate-original)
|
||||
(tumme-set-exif-data, tumme-get-exif-data): Use shell-command-switch.
|
||||
|
||||
* thumbs.el (thumbs-call-convert): Use shell-command-switch.
|
||||
|
||||
|
|
@ -90,20 +479,16 @@
|
|||
|
||||
2006-07-11 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* tumme.el (tumme-create-thumb)
|
||||
(tumme-thumbnail-display-external, tumme-display-image)
|
||||
(tumme-rotate-thumbnail, tumme-rotate-original)
|
||||
* tumme.el (tumme-create-thumb, tumme-thumbnail-display-external)
|
||||
(tumme-display-image, tumme-rotate-thumbnail, tumme-rotate-original)
|
||||
(tumme-set-exif-data, tumme-get-exif-data): Use call-process
|
||||
instead of shell-command.
|
||||
(tumme-create-thumbnail-buffer)
|
||||
(tumme-create-display-image-buffer, tumme-display-thumbs)
|
||||
(tumme-modify-mark-on-thumb-original-file, tumme-display-image)
|
||||
(tumme-get-exif-data): Use with-current-buffer.
|
||||
(tumme-display-properties-format)
|
||||
(tumme-dired-insert-marked-thumbs, tumme-rotate-original)
|
||||
(tumme-get-exif-file-name)
|
||||
(tumme-thumbnail-set-image-description, tumme-gallery-generate):
|
||||
Fit to 80 columns.
|
||||
(tumme-create-thumbnail-buffer, tumme-create-display-image-buffer)
|
||||
(tumme-display-thumbs, tumme-modify-mark-on-thumb-original-file)
|
||||
(tumme-display-image, tumme-get-exif-data): Use with-current-buffer.
|
||||
(tumme-display-properties-format, tumme-dired-insert-marked-thumbs)
|
||||
(tumme-thumbnail-set-image-description, tumme-gallery-generate)
|
||||
(tumme-rotate-original, tumme-get-exif-file-name): Fit to 80 columns.
|
||||
|
||||
2006-07-11 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
|
|
@ -414,8 +799,8 @@
|
|||
2006-06-25 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* net/rcompile.el (remote-compile): Replace ange-ftp based
|
||||
implementation by Tramp functions. Based on a patch published by
|
||||
Marc Abramowitz <msabramo@gmail.com>.
|
||||
implementation by Tramp functions.
|
||||
Suggested by Marc Abramowitz <msabramo@gmail.com>.
|
||||
|
||||
* net/tramp.el (tramp-unload-tramp): Provide a doc string.
|
||||
|
||||
|
|
@ -2090,8 +2475,6 @@
|
|||
to `ispell-local-dictionary'.
|
||||
(ispell-internal-change-dictionary): Check for a change in
|
||||
personal dictionary use too.
|
||||
Cosmetic changes from Agustin Martin
|
||||
<agustin.martin@hispalinux.es>.
|
||||
|
||||
2006-05-05 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
|
|
|
|||
|
|
@ -204,9 +204,8 @@ backup-compiled-files:
|
|||
|
||||
compile-after-backup: backup-compiled-files compile-always
|
||||
|
||||
# Recompile all Lisp files which are newer than their .elc files.
|
||||
# Note that this doesn't create .elc files. It only recompiles if an
|
||||
# .elc is present.
|
||||
# Recompile all Lisp files which are newer than their .elc files and compile
|
||||
# new ones.
|
||||
|
||||
recompile: doit mh-autoloads $(lisp)/progmodes/cc-mode.elc
|
||||
$(EMACS) $(EMACSOPT) --eval "(batch-byte-recompile-directory 0)" $(lisp)
|
||||
|
|
@ -247,12 +246,6 @@ $(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC)
|
|||
echo ";;; Commentary:" >> $@
|
||||
echo ";;; Change Log:" >> $@
|
||||
echo ";;; Code:" >> $@
|
||||
$(EMACS) $(EMACSOPT) \
|
||||
-l autoload \
|
||||
--eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \
|
||||
--eval "(setq generated-autoload-file \"$(lisp)/mh-e/mh-loaddefs.el\")" \
|
||||
--eval "(setq make-backup-files nil)" \
|
||||
-f batch-update-autoloads $(lisp)/mh-e
|
||||
echo "" >> $@
|
||||
echo "(provide 'mh-loaddefs)" >> $@
|
||||
echo ";; Local Variables:" >> $@
|
||||
|
|
@ -261,6 +254,12 @@ $(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC)
|
|||
echo ";; no-update-autoloads: t" >> $@
|
||||
echo ";; End:" >> $@
|
||||
echo ";;; mh-loaddefs.el ends here" >> $@
|
||||
$(EMACS) $(EMACSOPT) \
|
||||
-l autoload \
|
||||
--eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \
|
||||
--eval "(setq generated-autoload-file \"$(lisp)/mh-e/mh-loaddefs.el\")" \
|
||||
--eval "(setq make-backup-files nil)" \
|
||||
-f batch-update-autoloads $(lisp)/mh-e
|
||||
|
||||
# Prepare a bootstrap in the lisp subdirectory.
|
||||
#
|
||||
|
|
|
|||
736
lisp/allout.el
736
lisp/allout.el
File diff suppressed because it is too large
Load diff
|
|
@ -870,10 +870,14 @@ using `make-temp-file', and the generated name is returned."
|
|||
(save-excursion
|
||||
(funcall set-auto-coding-function
|
||||
filename (- (point-max) (point-min)))))
|
||||
;; dos-w32.el defines find-operation-coding-system for
|
||||
;; DOS/Windows systems which preserves the coding-system
|
||||
;; of existing files. We want it to act here as if the
|
||||
;; extracted file existed.
|
||||
;; dos-w32.el defines the function
|
||||
;; find-buffer-file-type-coding-system for DOS/Windows
|
||||
;; systems which preserves the coding-system of existing files.
|
||||
;; (That function is called via file-coding-system-alist.)
|
||||
;; Here, we want it to act as if the extracted file existed.
|
||||
;; The following let-binding of file-name-handler-alist forces
|
||||
;; find-file-not-found-set-buffer-file-coding-system to ignore
|
||||
;; the file's name (see dos-w32.el).
|
||||
(let ((file-name-handler-alist
|
||||
'(("" . archive-file-name-handler))))
|
||||
(car (find-operation-coding-system
|
||||
|
|
|
|||
|
|
@ -683,7 +683,11 @@ language you are using."
|
|||
(define-key map [prior] 'previous-history-element)
|
||||
(define-key map [up] 'previous-history-element)
|
||||
(define-key map "\es" 'next-matching-history-element)
|
||||
(define-key map "\er" 'previous-matching-history-element))
|
||||
(define-key map "\er" 'previous-matching-history-element)
|
||||
;; Override the global binding (which calls indent-relative via
|
||||
;; indent-for-tab-command). The alignment that indent-relative tries to
|
||||
;; do doesn't make much sense here since the prompt messes it up.
|
||||
(define-key map "\t" 'self-insert-command))
|
||||
|
||||
(define-key global-map "\C-u" 'universal-argument)
|
||||
(let ((i ?0))
|
||||
|
|
|
|||
|
|
@ -32,7 +32,11 @@
|
|||
(require 'calc)
|
||||
(require 'calc-macs)
|
||||
|
||||
(defvar calc-quick-calc-history nil
|
||||
"The history list for quick-calc.")
|
||||
|
||||
(defun calc-do-quick-calc ()
|
||||
(require 'calc-ext)
|
||||
(calc-check-defines)
|
||||
(if (eq major-mode 'calc-mode)
|
||||
(calc-algebraic-entry t)
|
||||
|
|
@ -45,23 +49,12 @@
|
|||
(enable-recursive-minibuffers t)
|
||||
(calc-language (if (memq calc-language '(nil big))
|
||||
'flat calc-language))
|
||||
(entry (calc-do-alg-entry "" "Quick calc: " t))
|
||||
(alg-exp (mapcar (function
|
||||
(lambda (x)
|
||||
(if (and (not (featurep 'calc-ext))
|
||||
calc-previous-alg-entry
|
||||
(string-match
|
||||
"\\`[-0-9._+*/^() ]+\\'"
|
||||
calc-previous-alg-entry))
|
||||
(calc-normalize x)
|
||||
(require 'calc-ext)
|
||||
(math-evaluate-expr x))))
|
||||
entry)))
|
||||
(entry (calc-do-alg-entry "" "Quick calc: " t 'calc-quick-calc-history))
|
||||
(alg-exp (mapcar 'math-evaluate-expr entry)))
|
||||
(when (and (= (length alg-exp) 1)
|
||||
(eq (car-safe (car alg-exp)) 'calcFunc-assign)
|
||||
(= (length (car alg-exp)) 3)
|
||||
(eq (car-safe (nth 1 (car alg-exp))) 'var))
|
||||
(require 'calc-ext)
|
||||
(set (nth 2 (nth 1 (car alg-exp))) (nth 2 (car alg-exp)))
|
||||
(calc-refresh-evaltos (nth 2 (nth 1 (car alg-exp))))
|
||||
(setq alg-exp (list (nth 2 (car alg-exp)))))
|
||||
|
|
@ -264,13 +257,16 @@ T means abort and give an error message.")
|
|||
(math-expr-opers (if prefix math-standard-opers math-expr-opers)))
|
||||
(calc-alg-entry (and auto (char-to-string last-command-char))))))
|
||||
|
||||
(defvar calc-alg-entry-history nil
|
||||
"History for algebraic entry.")
|
||||
|
||||
(defun calc-alg-entry (&optional initial prompt)
|
||||
(let* ((sel-mode nil)
|
||||
(calc-dollar-values (mapcar 'calc-get-stack-element
|
||||
(nthcdr calc-stack-top calc-stack)))
|
||||
(calc-dollar-used 0)
|
||||
(calc-plain-entry t)
|
||||
(alg-exp (calc-do-alg-entry initial prompt t)))
|
||||
(alg-exp (calc-do-alg-entry initial prompt t 'calc-alg-entry-history)))
|
||||
(if (stringp alg-exp)
|
||||
(progn
|
||||
(require 'calc-ext)
|
||||
|
|
@ -301,7 +297,7 @@ T means abort and give an error message.")
|
|||
|
||||
(defvar calc-alg-exp)
|
||||
|
||||
(defun calc-do-alg-entry (&optional initial prompt no-normalize)
|
||||
(defun calc-do-alg-entry (&optional initial prompt no-normalize history)
|
||||
(let* ((calc-buffer (current-buffer))
|
||||
(blink-paren-function 'calcAlg-blink-matching-open)
|
||||
(calc-alg-exp 'error))
|
||||
|
|
@ -319,15 +315,17 @@ T means abort and give an error message.")
|
|||
(define-key calc-alg-ent-map "\e" nil)
|
||||
(if (eq calc-algebraic-mode 'total)
|
||||
(define-key calc-alg-ent-map "\e" calc-alg-ent-esc-map)
|
||||
(define-key calc-alg-ent-map "\ep" 'calcAlg-plus-minus)
|
||||
(define-key calc-alg-ent-map "\e+" 'calcAlg-plus-minus)
|
||||
(define-key calc-alg-ent-map "\em" 'calcAlg-mod)
|
||||
(define-key calc-alg-ent-map "\e=" 'calcAlg-equals)
|
||||
(define-key calc-alg-ent-map "\e\r" 'calcAlg-equals)
|
||||
(define-key calc-alg-ent-map "\ep" 'previous-history-element)
|
||||
(define-key calc-alg-ent-map "\en" 'next-history-element)
|
||||
(define-key calc-alg-ent-map "\e%" 'self-insert-command))
|
||||
(setq calc-aborted-prefix nil)
|
||||
(let ((buf (read-from-minibuffer (or prompt "Algebraic: ")
|
||||
(or initial "")
|
||||
calc-alg-ent-map nil)))
|
||||
calc-alg-ent-map nil history)))
|
||||
(when (eq calc-alg-exp 'error)
|
||||
(when (eq (car-safe (setq calc-alg-exp (math-read-exprs buf))) 'error)
|
||||
(setq calc-alg-exp nil)))
|
||||
|
|
@ -355,9 +353,7 @@ T means abort and give an error message.")
|
|||
(defun calcAlg-previous ()
|
||||
(interactive)
|
||||
(if (calc-minibuffer-contains "\\'")
|
||||
(if calc-previous-alg-entry
|
||||
(insert calc-previous-alg-entry)
|
||||
(beep))
|
||||
(previous-history-element 1)
|
||||
(insert "'")))
|
||||
|
||||
(defun calcAlg-equals ()
|
||||
|
|
@ -384,7 +380,6 @@ T means abort and give an error message.")
|
|||
"\\`\\([^\"]*\"[^\"]*\"\\)*[^\"]*\"[^\"]*\\'"))
|
||||
(insert "`")
|
||||
(setq calc-alg-exp (minibuffer-contents))
|
||||
(and (> (length calc-alg-exp) 0) (setq calc-previous-alg-entry calc-alg-exp))
|
||||
(exit-minibuffer)))
|
||||
|
||||
(defvar calc-buffer)
|
||||
|
|
@ -407,7 +402,6 @@ T means abort and give an error message.")
|
|||
(setq calc-alg-exp (if (calc-minibuffer-contains "\\` *\\[ *\\'")
|
||||
'((incomplete vec))
|
||||
exp))
|
||||
(and (> (length str) 0) (setq calc-previous-alg-entry str))
|
||||
(exit-minibuffer))))
|
||||
|
||||
(defun calcAlg-blink-matching-open ()
|
||||
|
|
|
|||
|
|
@ -498,6 +498,9 @@
|
|||
|
||||
|
||||
;;; Return a list of the form (nargs func name)
|
||||
(defvar calc-get-operator-history nil
|
||||
"History for calc-get-operator.")
|
||||
|
||||
(defun calc-get-operator (msg &optional nargs)
|
||||
(setq calc-aborted-prefix nil)
|
||||
(let ((inv nil) (hyp nil) (prefix nil) (forcenargs nil)
|
||||
|
|
@ -583,7 +586,8 @@
|
|||
(let* ((calc-dollar-values calc-arg-values)
|
||||
(calc-dollar-used 0)
|
||||
(calc-hashes-used 0)
|
||||
(func (calc-do-alg-entry "" "Function: ")))
|
||||
(func (calc-do-alg-entry "" "Function: " nil
|
||||
'calc-get-operator-history)))
|
||||
(setq record-entry t)
|
||||
(or (= (length func) 1)
|
||||
(error "Bad format"))
|
||||
|
|
|
|||
|
|
@ -154,7 +154,6 @@
|
|||
(setq expr (calc-top-n 2)
|
||||
pat (calc-top-n 1)
|
||||
n 2)
|
||||
(if interactive (setq calc-previous-alg-entry pat))
|
||||
(setq pat (if (stringp pat) (math-read-expr pat) pat))
|
||||
(if (eq (car-safe pat) 'error)
|
||||
(error "Bad format in expression: %s" (nth 1 pat)))
|
||||
|
|
|
|||
|
|
@ -633,6 +633,9 @@
|
|||
(setcar (nthcdr 2 entry) (and (not (eq sel (car entry))) sel))
|
||||
(calc-delete-selection num))))
|
||||
|
||||
(defvar calc-selection-history nil
|
||||
"History for calc selections.")
|
||||
|
||||
(defun calc-enter-selection ()
|
||||
(interactive)
|
||||
(calc-wrapper
|
||||
|
|
@ -645,7 +648,8 @@
|
|||
alg)
|
||||
(let ((calc-dollar-values (list sel))
|
||||
(calc-dollar-used 0))
|
||||
(setq alg (calc-do-alg-entry "" "Replace selection with: "))
|
||||
(setq alg (calc-do-alg-entry "" "Replace selection with: " nil
|
||||
'calc-selection-history))
|
||||
(and alg
|
||||
(progn
|
||||
(setq alg (calc-encase-atoms (car alg)))
|
||||
|
|
@ -765,7 +769,8 @@
|
|||
(car (calc-do-alg-entry ""
|
||||
(if divide
|
||||
"Divide both sides by: "
|
||||
"Multiply both sides by: ")))))
|
||||
"Multiply both sides by: ")
|
||||
nil 'calc-selection-history))))
|
||||
(and alg
|
||||
(progn
|
||||
(if (and (or (eq func '/)
|
||||
|
|
@ -830,7 +835,8 @@
|
|||
(car (calc-do-alg-entry ""
|
||||
(if subtract
|
||||
"Subtract from both sides: "
|
||||
"Add to both sides: ")))))
|
||||
"Add to both sides: ")
|
||||
nil 'calc-selection-history))))
|
||||
(and alg
|
||||
(progn
|
||||
(if (and (assq func calc-tweak-eqn-table)
|
||||
|
|
|
|||
|
|
@ -886,7 +886,6 @@ If nil, selections displayed but ignored.")
|
|||
"Formatting function used for non-decimal numbers.")
|
||||
|
||||
(defvar calc-last-kill nil) ; Last number killed in calc-mode.
|
||||
(defvar calc-previous-alg-entry nil) ; Previous algebraic entry.
|
||||
(defvar calc-dollar-values nil) ; Values to be used for '$'.
|
||||
(defvar calc-dollar-used nil) ; Highest order of '$' that occurred.
|
||||
(defvar calc-hashes-used nil) ; Highest order of '#' that occurred.
|
||||
|
|
|
|||
|
|
@ -103,6 +103,9 @@
|
|||
(defvar calc-curve-model)
|
||||
(defvar calc-curve-coefnames)
|
||||
|
||||
(defvar calc-curve-fit-history nil
|
||||
"History for calc-curve-fit.")
|
||||
|
||||
(defun calc-curve-fit (arg &optional calc-curve-model
|
||||
calc-curve-coefnames calc-curve-varnames)
|
||||
(interactive "P")
|
||||
|
|
@ -259,7 +262,8 @@
|
|||
(let* ((calc-dollar-values calc-arg-values)
|
||||
(calc-dollar-used 0)
|
||||
(calc-hashes-used 0))
|
||||
(setq calc-curve-model (calc-do-alg-entry "" "Model formula: "))
|
||||
(setq calc-curve-model (calc-do-alg-entry "" "Model formula: "
|
||||
nil 'calc-curve-fit-history))
|
||||
(if (/= (length calc-curve-model) 1)
|
||||
(error "Bad format"))
|
||||
(setq calc-curve-model (car calc-curve-model)
|
||||
|
|
|
|||
|
|
@ -1087,18 +1087,24 @@ Show the buffer in another window, but don't select it."
|
|||
;; Packages will update this variable, so make it available.
|
||||
;;;###autoload
|
||||
(defvar customize-package-emacs-version-alist nil
|
||||
"Alist mapping versions of Emacs to versions of a package.
|
||||
These package versions are listed in the :package-version
|
||||
keyword used in `defcustom', `defgroup', and `defface'. Its
|
||||
elements look like this:
|
||||
"Alist mapping versions of a package to Emacs versions.
|
||||
We use this for packages that have their own names, but are released
|
||||
as part of Emacs itself.
|
||||
|
||||
Each elements looks like this:
|
||||
|
||||
(PACKAGE (PVERSION . EVERSION)...)
|
||||
|
||||
For each PACKAGE, which is a symbol, there are one or more
|
||||
elements that contain a package version PVERSION with an
|
||||
associated Emacs version EVERSION. These versions are strings.
|
||||
For example, the MH-E package updates this alist with the
|
||||
following:
|
||||
Here PACKAGE is the name of a package, as a symbol. After
|
||||
PACKAGE come one or more elements, each associating a
|
||||
package version PVERSION with the first Emacs version
|
||||
EVERSION in which it (or a subsequent version of PACKAGE)
|
||||
was first released. Both PVERSION and EVERSION are strings.
|
||||
PVERSION should be a string that this package used in
|
||||
the :package-version keyword for `defcustom', `defgroup',
|
||||
and `defface'.
|
||||
|
||||
For example, the MH-E package updates this alist as follows:
|
||||
|
||||
(add-to-list 'customize-package-emacs-version-alist
|
||||
'(MH-E (\"6.0\" . \"22.1\") (\"6.1\" . \"22.1\")
|
||||
|
|
@ -1173,11 +1179,10 @@ that were added or redefined since that version."
|
|||
since-version))))
|
||||
|
||||
(defun customize-package-emacs-version (symbol package-version)
|
||||
"Return Emacs version of SYMBOL.
|
||||
PACKAGE-VERSION has the form (PACKAGE . VERSION). The VERSION of
|
||||
PACKAGE is looked up in the associated list
|
||||
"Return the Emacs version in which SYMBOL's meaning last changed.
|
||||
PACKAGE-VERSION has the form (PACKAGE . VERSION). We use
|
||||
`customize-package-emacs-version-alist' to find the version of
|
||||
Emacs that is associated with it."
|
||||
Emacs that is associated with version VERSION of PACKAGE."
|
||||
(let (package-versions emacs-version)
|
||||
;; Use message instead of error since we want user to be able to
|
||||
;; see the rest of the symbols even if a package author has
|
||||
|
|
@ -1193,9 +1198,9 @@ Emacs that is associated with it."
|
|||
(cdr package-version)
|
||||
"customize-package-emacs-version-alist")))
|
||||
(t
|
||||
(message "Package %s neglected to update %s"
|
||||
(message "Package %s version %s lists no corresponding Emacs version"
|
||||
(car package-version)
|
||||
"customize-package-emacs-version-alist")))
|
||||
(cdr package-version))))
|
||||
emacs-version))
|
||||
|
||||
(defun customize-version-lessp (version1 version2)
|
||||
|
|
@ -2668,7 +2673,18 @@ Otherwise, look up symbol in `custom-guess-type-alist'."
|
|||
(error nil))
|
||||
(cond
|
||||
((eq (caar tmp) 'user) 'saved)
|
||||
((eq (caar tmp) 'changed) 'changed)
|
||||
((eq (caar tmp) 'changed)
|
||||
(if (condition-case nil
|
||||
(and (null comment)
|
||||
(equal value
|
||||
(eval
|
||||
(car (get symbol 'standard-value)))))
|
||||
(error nil))
|
||||
;; The value was originally set outside
|
||||
;; custom, but it was set to the standard
|
||||
;; value (probably an autoloaded defcustom).
|
||||
'standard
|
||||
'changed))
|
||||
(t 'themed))
|
||||
'changed))
|
||||
((setq tmp (get symbol 'standard-value))
|
||||
|
|
@ -4433,10 +4449,13 @@ The format is suitable for use with `easy-menu-define'."
|
|||
map)
|
||||
"Keymap for `custom-mode'.")
|
||||
|
||||
(defun custom-no-edit ()
|
||||
"Refuse to allow editing of Custom buffer."
|
||||
(interactive)
|
||||
(error "You can't edit this part of the Custom buffer"))
|
||||
(defun custom-no-edit (pos &optional event)
|
||||
"Invoke button at POS, or refuse to allow editing of Custom buffer."
|
||||
(interactive "@d")
|
||||
(let ((button (get-char-property pos 'button)))
|
||||
(if button
|
||||
(widget-apply-action button event)
|
||||
(error "You can't edit this part of the Custom buffer"))))
|
||||
|
||||
(easy-menu-define Custom-mode-menu
|
||||
custom-mode-map
|
||||
|
|
|
|||
|
|
@ -558,9 +558,10 @@ LOAD should be either a library file name, or a feature name."
|
|||
(unless (member load loads)
|
||||
(put symbol 'custom-loads (cons (purecopy load) loads)))))
|
||||
|
||||
(defun custom-autoload (symbol load)
|
||||
"Mark SYMBOL as autoloaded custom variable and add dependency LOAD."
|
||||
(put symbol 'custom-autoload t)
|
||||
(defun custom-autoload (symbol load &optional noset)
|
||||
"Mark SYMBOL as autoloaded custom variable and add dependency LOAD.
|
||||
If NOSET is non-nil, don't bother autoloading LOAD when setting the variable."
|
||||
(put symbol 'custom-autoload (if noset 'noset t))
|
||||
(custom-add-load symbol load))
|
||||
|
||||
;; This test is also in the C code of `user-variable-p'.
|
||||
|
|
@ -699,10 +700,10 @@ Return non-nil iff the `customized-value' property actually changed."
|
|||
(customized (get symbol 'customized-value))
|
||||
(old (or (get symbol 'saved-value) (get symbol 'standard-value))))
|
||||
;; Mark default value as set iff different from old value.
|
||||
(if (or (null old)
|
||||
(not (equal value (condition-case nil
|
||||
(eval (car old))
|
||||
(error nil)))))
|
||||
(if (not (and old
|
||||
(equal value (condition-case nil
|
||||
(eval (car old))
|
||||
(error nil)))))
|
||||
(progn (put symbol 'customized-value (list (custom-quote value)))
|
||||
(custom-push-theme 'theme-value symbol 'user 'set
|
||||
(custom-quote value)))
|
||||
|
|
@ -827,13 +828,9 @@ See `custom-known-themes' for a list of known themes."
|
|||
(if (and (eq prop 'theme-value)
|
||||
(boundp symbol))
|
||||
(let ((sv (get symbol 'standard-value)))
|
||||
(when (and (null sv) (custom-variable-p symbol))
|
||||
(custom-load-symbol symbol)
|
||||
(setq sv (get symbol 'standard-value)))
|
||||
(if (or (null sv)
|
||||
(not (equal (eval (car (get symbol 'standard-value)))
|
||||
(symbol-value symbol))))
|
||||
(setq old (list (list 'changed (symbol-value symbol))))))
|
||||
(unless (and sv
|
||||
(equal (eval (car sv)) (symbol-value symbol)))
|
||||
(setq old (list (list 'changed (symbol-value symbol))))))
|
||||
(if (and (facep symbol)
|
||||
(not (face-spec-match-p symbol (get symbol 'face-defface-spec))))
|
||||
(setq old (list (list 'changed (list
|
||||
|
|
@ -907,6 +904,10 @@ in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
|
|||
(when requests
|
||||
(put symbol 'custom-requests requests)
|
||||
(mapc 'require requests))
|
||||
(unless (or (get symbol 'standard-value)
|
||||
(memq (get symbol 'custom-autoload) '(nil noset)))
|
||||
;; This symbol needs to be autoloaded, even just for a `set'.
|
||||
(custom-load-symbol symbol))
|
||||
(setq set (or (get symbol 'custom-set) 'custom-set-default))
|
||||
(put symbol 'saved-value (list value))
|
||||
(put symbol 'saved-variable-comment comment)
|
||||
|
|
@ -926,6 +927,8 @@ in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
|
|||
(setq args (cdr args))
|
||||
(and (or now (default-boundp symbol))
|
||||
(put symbol 'variable-comment comment)))
|
||||
;; I believe this is dead-code, because the `sort' code above would
|
||||
;; have burped before we could get here. --Stef
|
||||
;; Old format, a plist of SYMBOL VALUE pairs.
|
||||
(message "Warning: old format `custom-set-variables'")
|
||||
(ding)
|
||||
|
|
|
|||
|
|
@ -745,19 +745,22 @@ Otherwise, the rule is a compression rule, and compression is done with gzip.")
|
|||
;;; We don't recognize the file as compressed, so compress it.
|
||||
;;; Try gzip; if we don't have that, use compress.
|
||||
(condition-case nil
|
||||
(if (not (dired-check-process (concat "Compressing " file)
|
||||
"gzip" "-f" file))
|
||||
(let ((out-name
|
||||
(if (file-exists-p (concat file ".gz"))
|
||||
(concat file ".gz")
|
||||
(concat file ".z"))))
|
||||
;; Rename the compressed file to NEWNAME
|
||||
;; if it hasn't got that name already.
|
||||
(if (and newname (not (equal newname out-name)))
|
||||
(progn
|
||||
(rename-file out-name newname t)
|
||||
newname)
|
||||
out-name)))
|
||||
(let ((out-name (concat file ".gz")))
|
||||
(and (or (not (file-exists-p out-name))
|
||||
(y-or-n-p
|
||||
(format "File %s already exists. Really compress? "
|
||||
out-name)))
|
||||
(not (dired-check-process (concat "Compressing " file)
|
||||
"gzip" "-f" file))
|
||||
(or (file-exists-p out-name)
|
||||
(setq out-name (concat file ".z")))
|
||||
;; Rename the compressed file to NEWNAME
|
||||
;; if it hasn't got that name already.
|
||||
(if (and newname (not (equal newname out-name)))
|
||||
(progn
|
||||
(rename-file out-name newname t)
|
||||
newname)
|
||||
out-name)))
|
||||
(file-error
|
||||
(if (not (dired-check-process (concat "Compressing " file)
|
||||
"compress" "-f" file))
|
||||
|
|
|
|||
|
|
@ -1260,6 +1260,7 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
|
|||
(define-key map "\C-tc" 'tumme-dired-comment-files)
|
||||
(define-key map "\C-tf" 'tumme-mark-tagged-files)
|
||||
(define-key map "\C-t\C-t" 'tumme-dired-insert-marked-thumbs)
|
||||
(define-key map "\C-te" 'tumme-dired-edit-comment-and-tags)
|
||||
|
||||
;; Make menu bar items.
|
||||
|
||||
|
|
|
|||
|
|
@ -88,10 +88,13 @@ against the file name, and TYPE is nil for text, t for binary.")
|
|||
(setq-default buffer-file-coding-system 'undecided-dos)
|
||||
|
||||
(defun find-buffer-file-type-coding-system (command)
|
||||
"Choose a coding system for a file operation.
|
||||
If COMMAND is `insert-file-contents', the coding system is chosen based
|
||||
upon the filename, the contents of `untranslated-filesystem-list' and
|
||||
`file-name-buffer-file-type-alist', and whether the file exists:
|
||||
"Choose a coding system for a file operation in COMMAND.
|
||||
COMMAND is a list that specifies the operation, and I/O primitive as its
|
||||
CAR, and the arguments that might be given to that operation as its CDR.
|
||||
If operation is `insert-file-contents', the coding system is chosen based
|
||||
upon the filename (the CAR of the arguments beyond the operation), the contents
|
||||
of `untranslated-filesystem-list' and `file-name-buffer-file-type-alist',
|
||||
and whether the file exists:
|
||||
|
||||
If it matches in `untranslated-filesystem-list':
|
||||
If the file exists: `undecided'
|
||||
|
|
@ -103,7 +106,7 @@ upon the filename, the contents of `untranslated-filesystem-list' and
|
|||
If the file exists: `undecided'
|
||||
If the file does not exist: default-buffer-file-coding-system
|
||||
|
||||
If COMMAND is `write-region', the coding system is chosen based upon
|
||||
If operation is `write-region', the coding system is chosen based upon
|
||||
the value of `buffer-file-coding-system' and `buffer-file-type'. If
|
||||
`buffer-file-coding-system' is non-nil, its value is used. If it is
|
||||
nil and `buffer-file-type' is t, the coding system is `no-conversion'.
|
||||
|
|
@ -126,6 +129,13 @@ set to the appropriate coding system, and the value of
|
|||
(undecided nil) (undecided-unix nil))
|
||||
(cond ((eq op 'insert-file-contents)
|
||||
(setq target (nth 1 command))
|
||||
;; If TARGET is a cons cell, it has the form (FILENAME . BUFFER),
|
||||
;; where BUFFER is a buffer into which the file was already read,
|
||||
;; but its contents were not yet decoded. (This form of the
|
||||
;; arguments is used, e.g., in arc-mode.el.) This function
|
||||
;; doesn't care about the contents, it only looks at the file's
|
||||
;; name, which is the CAR of the cons cell.
|
||||
(if (consp target) (setq target (car target)))
|
||||
;; First check for a file name that indicates
|
||||
;; it is truly binary.
|
||||
(setq binary (find-buffer-file-type target))
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ files.")
|
|||
"Kai.Grossjohann@Cs.Uni-Dortmund.De"
|
||||
"Kai.Grossjohann@Gmx.Net")
|
||||
("Karl Berry" "K. Berry")
|
||||
("K,Aa(Broly L$,1 q(Brentey" "K,Aa(Broly L,Bu(Brentey" "L$,1 q(Brentey K,Aa(Broly")
|
||||
("Kazushi Marukawa" "Kazushi")
|
||||
("Ken Manheimer" "Kenneth Manheimer")
|
||||
("Kenichi Handa" "Ken'ichi Handa" "Kenichi HANDA")
|
||||
|
|
|
|||
|
|
@ -124,7 +124,10 @@ or macro definition or a defcustom)."
|
|||
)
|
||||
`(progn
|
||||
(defvar ,varname ,init ,doc)
|
||||
(custom-autoload ',varname ,file))))
|
||||
(custom-autoload ',varname ,file
|
||||
,(condition-case nil
|
||||
(null (cadr (memq :set form)))
|
||||
(error nil))))))
|
||||
|
||||
((eq car 'defgroup)
|
||||
;; In Emacs this is normally handled separately by cus-dep.el, but for
|
||||
|
|
|
|||
|
|
@ -226,7 +226,12 @@ The search is done in the source for library LIBRARY."
|
|||
(regexp-symbol (cdr (assq type find-function-regexp-alist))))
|
||||
(with-current-buffer (find-file-noselect filename)
|
||||
(let ((regexp (format (symbol-value regexp-symbol)
|
||||
(regexp-quote (symbol-name symbol))))
|
||||
;; Entry for ` (backquote) macro in loaddefs.el,
|
||||
;; (defalias (quote \`)..., has a \ but
|
||||
;; (symbol-name symbol) doesn't. Add an
|
||||
;; optional \ to catch this.
|
||||
(concat "\\\\?"
|
||||
(regexp-quote (symbol-name symbol)))))
|
||||
(case-fold-search))
|
||||
(with-syntax-table emacs-lisp-mode-syntax-table
|
||||
(goto-char (point-min))
|
||||
|
|
|
|||
|
|
@ -305,11 +305,23 @@ If the value is nil, use a shifted prefix key to inhibit the override."
|
|||
(const :tag "No delay" nil))
|
||||
:group 'cua)
|
||||
|
||||
(defcustom cua-delete-selection t
|
||||
"*If non-nil, typed text replaces text in the active selection."
|
||||
:type '(choice (const :tag "Disabled" nil)
|
||||
(other :tag "Enabled" t))
|
||||
:group 'cua)
|
||||
|
||||
(defcustom cua-keep-region-after-copy nil
|
||||
"If non-nil, don't deselect the region after copying."
|
||||
:type 'boolean
|
||||
:group 'cua)
|
||||
|
||||
(defcustom cua-toggle-set-mark t
|
||||
"*In non-nil, the `cua-set-mark' command toggles the mark."
|
||||
:type '(choice (const :tag "Disabled" nil)
|
||||
(other :tag "Enabled" t))
|
||||
:group 'cua)
|
||||
|
||||
(defcustom cua-enable-register-prefix 'not-ctrl-u
|
||||
"*If non-nil, registers are supported via numeric prefix arg.
|
||||
If the value is t, any numeric prefix arg in the range 0 to 9 will be
|
||||
|
|
@ -391,7 +403,8 @@ and after the region marked by the rectangle to search."
|
|||
On non-window systems, always use the meta modifier.
|
||||
Must be set prior to enabling CUA."
|
||||
:type '(choice (const :tag "Meta key" meta)
|
||||
(const :tag "Hyper key" hyper )
|
||||
(const :tag "Alt key" alt)
|
||||
(const :tag "Hyper key" hyper)
|
||||
(const :tag "Super key" super))
|
||||
:group 'cua)
|
||||
|
||||
|
|
@ -783,7 +796,7 @@ Save a copy in register 0 if `cua-delete-copy-to-register-0' is non-nil."
|
|||
(defun cua-replace-region ()
|
||||
"Replace the active region with the character you type."
|
||||
(interactive)
|
||||
(let ((not-empty (cua-delete-region)))
|
||||
(let ((not-empty (and cua-delete-selection (cua-delete-region))))
|
||||
(unless (eq this-original-command this-command)
|
||||
(let ((overwrite-mode
|
||||
(and overwrite-mode
|
||||
|
|
@ -1001,7 +1014,7 @@ With a double \\[universal-argument] prefix argument, unconditionally set mark."
|
|||
(arg
|
||||
(setq this-command 'pop-to-mark-command)
|
||||
(pop-to-mark-command))
|
||||
(mark-active
|
||||
((and cua-toggle-set-mark mark-active)
|
||||
(cua--deactivate)
|
||||
(message "Mark Cleared"))
|
||||
(t
|
||||
|
|
|
|||
|
|
@ -1361,6 +1361,7 @@ With prefix arg, indent to that column."
|
|||
(interactive)
|
||||
(let ((M (cond ((eq cua--rectangle-modifier-key 'hyper) " H-")
|
||||
((eq cua--rectangle-modifier-key 'super) " s-")
|
||||
((eq cua--rectangle-modifier-key 'alt) " A-")
|
||||
(t " M-"))))
|
||||
(message
|
||||
(concat (if help "C-?:help" "")
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
|
||||
|
||||
(defcustom delete-auto-save-files t
|
||||
"*Non-nil means delete auto-save file when a buffer is saved or killed.
|
||||
"Non-nil means delete auto-save file when a buffer is saved or killed.
|
||||
|
||||
Note that the auto-save file will not be deleted if the buffer is killed
|
||||
when it has unsaved changes."
|
||||
|
|
@ -53,7 +53,7 @@ when it has unsaved changes."
|
|||
|
||||
(defcustom directory-abbrev-alist
|
||||
nil
|
||||
"*Alist of abbreviations for file directories.
|
||||
"Alist of abbreviations for file directories.
|
||||
A list of elements of the form (FROM . TO), each meaning to replace
|
||||
FROM with TO when it appears in a directory name. This replacement is
|
||||
done when setting up the default directory of a newly visited file.
|
||||
|
|
@ -74,7 +74,7 @@ the name it is linked to."
|
|||
|
||||
;; Turn off backup files on VMS since it has version numbers.
|
||||
(defcustom make-backup-files (not (eq system-type 'vax-vms))
|
||||
"*Non-nil means make a backup of a file the first time it is saved.
|
||||
"Non-nil means make a backup of a file the first time it is saved.
|
||||
This can be done by renaming the file or by copying.
|
||||
|
||||
Renaming means that Emacs renames the existing file so that it is a
|
||||
|
|
@ -103,20 +103,20 @@ But it is local only if you make it local.")
|
|||
(put 'backup-inhibited 'permanent-local t)
|
||||
|
||||
(defcustom backup-by-copying nil
|
||||
"*Non-nil means always use copying to create backup files.
|
||||
"Non-nil means always use copying to create backup files.
|
||||
See documentation of variable `make-backup-files'."
|
||||
:type 'boolean
|
||||
:group 'backup)
|
||||
|
||||
(defcustom backup-by-copying-when-linked nil
|
||||
"*Non-nil means use copying to create backups for files with multiple names.
|
||||
"Non-nil means use copying to create backups for files with multiple names.
|
||||
This causes the alternate names to refer to the latest version as edited.
|
||||
This variable is relevant only if `backup-by-copying' is nil."
|
||||
:type 'boolean
|
||||
:group 'backup)
|
||||
|
||||
(defcustom backup-by-copying-when-mismatch nil
|
||||
"*Non-nil means create backups by copying if this preserves owner or group.
|
||||
"Non-nil means create backups by copying if this preserves owner or group.
|
||||
Renaming may still be used (subject to control of other variables)
|
||||
when it would not result in changing the owner or group of the file;
|
||||
that is, for files which are owned by you and whose group matches
|
||||
|
|
@ -126,7 +126,7 @@ This variable is relevant only if `backup-by-copying' is nil."
|
|||
:group 'backup)
|
||||
|
||||
(defcustom backup-by-copying-when-privileged-mismatch 200
|
||||
"*Non-nil means create backups by copying to preserve a privileged owner.
|
||||
"Non-nil means create backups by copying to preserve a privileged owner.
|
||||
Renaming may still be used (subject to control of other variables)
|
||||
when it would not result in changing the owner of the file or if the owner
|
||||
has a user id greater than the value of this variable. This is useful
|
||||
|
|
@ -142,7 +142,7 @@ This variable is relevant only if `backup-by-copying' and
|
|||
Called with an absolute file name as argument, it returns t to enable backup.")
|
||||
|
||||
(defcustom buffer-offer-save nil
|
||||
"*Non-nil in a buffer means always offer to save buffer on exit.
|
||||
"Non-nil in a buffer means always offer to save buffer on exit.
|
||||
Do so even if the buffer is not visiting a file.
|
||||
Automatically local in all buffers."
|
||||
:type 'boolean
|
||||
|
|
@ -150,7 +150,7 @@ Automatically local in all buffers."
|
|||
(make-variable-buffer-local 'buffer-offer-save)
|
||||
|
||||
(defcustom find-file-existing-other-name t
|
||||
"*Non-nil means find a file under alternative names, in existing buffers.
|
||||
"Non-nil means find a file under alternative names, in existing buffers.
|
||||
This means if any existing buffer is visiting the file you want
|
||||
under another name, you get the existing buffer instead of a new buffer."
|
||||
:type 'boolean
|
||||
|
|
@ -165,7 +165,7 @@ both at the file level and at the levels of the containing directories."
|
|||
(put 'find-file-visit-truename 'safe-local-variable 'boolean)
|
||||
|
||||
(defcustom revert-without-query nil
|
||||
"*Specify which files should be reverted without query.
|
||||
"Specify which files should be reverted without query.
|
||||
The value is a list of regular expressions.
|
||||
If the file name matches one of these regular expressions,
|
||||
then `revert-buffer' reverts the file without querying
|
||||
|
|
@ -226,7 +226,7 @@ have fast storage with limited space, such as a RAM disk."
|
|||
"Regexp recognizing file names which aren't allowed by the filesystem.")
|
||||
|
||||
(defcustom file-precious-flag nil
|
||||
"*Non-nil means protect against I/O errors while saving files.
|
||||
"Non-nil means protect against I/O errors while saving files.
|
||||
Some modes set this non-nil in particular buffers.
|
||||
|
||||
This feature works by writing the new contents into a temporary file
|
||||
|
|
@ -241,7 +241,7 @@ breaks any hard links between it and other files."
|
|||
:group 'backup)
|
||||
|
||||
(defcustom version-control nil
|
||||
"*Control use of version numbers for backup files.
|
||||
"Control use of version numbers for backup files.
|
||||
t means make numeric backup versions unconditionally.
|
||||
nil means make them for files that have some already.
|
||||
`never' means do not make them."
|
||||
|
|
@ -254,13 +254,13 @@ nil means make them for files that have some already.
|
|||
'(lambda (x) (or (booleanp x) (equal x 'never))))
|
||||
|
||||
(defcustom dired-kept-versions 2
|
||||
"*When cleaning directory, number of versions to keep."
|
||||
"When cleaning directory, number of versions to keep."
|
||||
:type 'integer
|
||||
:group 'backup
|
||||
:group 'dired)
|
||||
|
||||
(defcustom delete-old-versions nil
|
||||
"*If t, delete excess backup versions silently.
|
||||
"If t, delete excess backup versions silently.
|
||||
If nil, ask confirmation. Any other value prevents any trimming."
|
||||
:type '(choice (const :tag "Delete" t)
|
||||
(const :tag "Ask" nil)
|
||||
|
|
@ -268,20 +268,20 @@ If nil, ask confirmation. Any other value prevents any trimming."
|
|||
:group 'backup)
|
||||
|
||||
(defcustom kept-old-versions 2
|
||||
"*Number of oldest versions to keep when a new numbered backup is made."
|
||||
"Number of oldest versions to keep when a new numbered backup is made."
|
||||
:type 'integer
|
||||
:group 'backup)
|
||||
(put 'kept-old-versions 'safe-local-variable 'integerp)
|
||||
|
||||
(defcustom kept-new-versions 2
|
||||
"*Number of newest versions to keep when a new numbered backup is made.
|
||||
"Number of newest versions to keep when a new numbered backup is made.
|
||||
Includes the new backup. Must be > 0"
|
||||
:type 'integer
|
||||
:group 'backup)
|
||||
(put 'kept-new-versions 'safe-local-variable 'integerp)
|
||||
|
||||
(defcustom require-final-newline nil
|
||||
"*Whether to add a newline automatically at the end of the file.
|
||||
"Whether to add a newline automatically at the end of the file.
|
||||
|
||||
A value of t means do this only when the file is about to be saved.
|
||||
A value of `visit' means do this right after the file is visited.
|
||||
|
|
@ -299,7 +299,7 @@ from `mode-require-final-newline'."
|
|||
:group 'editing-basics)
|
||||
|
||||
(defcustom mode-require-final-newline t
|
||||
"*Whether to add a newline at end of file, in certain major modes.
|
||||
"Whether to add a newline at end of file, in certain major modes.
|
||||
Those modes set `require-final-newline' to this value when you enable them.
|
||||
They do so because they are often used for files that are supposed
|
||||
to end in newlines, and the question is how to arrange that.
|
||||
|
|
@ -322,12 +322,12 @@ a final newline, whenever you save a file that really needs one."
|
|||
:version "22.1")
|
||||
|
||||
(defcustom auto-save-default t
|
||||
"*Non-nil says by default do auto-saving of every file-visiting buffer."
|
||||
"Non-nil says by default do auto-saving of every file-visiting buffer."
|
||||
:type 'boolean
|
||||
:group 'auto-save)
|
||||
|
||||
(defcustom auto-save-visited-file-name nil
|
||||
"*Non-nil says auto-save a buffer in the file it is visiting, when practical.
|
||||
"Non-nil says auto-save a buffer in the file it is visiting, when practical.
|
||||
Normally auto-save files are written under other names."
|
||||
:type 'boolean
|
||||
:group 'auto-save)
|
||||
|
|
@ -337,7 +337,7 @@ Normally auto-save files are written under other names."
|
|||
;; Don't put "\\2" inside expand-file-name, since it will be
|
||||
;; transformed to "/2" on DOS/Windows.
|
||||
,(concat temporary-file-directory "\\2") t))
|
||||
"*Transforms to apply to buffer file name before making auto-save file name.
|
||||
"Transforms to apply to buffer file name before making auto-save file name.
|
||||
Each transform is a list (REGEXP REPLACEMENT UNIQUIFY):
|
||||
REGEXP is a regular expression to match against the file name.
|
||||
If it matches, `replace-match' is used to replace the
|
||||
|
|
@ -364,19 +364,19 @@ ignored."
|
|||
:version "21.1")
|
||||
|
||||
(defcustom save-abbrevs t
|
||||
"*Non-nil means save word abbrevs too when files are saved.
|
||||
"Non-nil means save word abbrevs too when files are saved.
|
||||
If `silently', don't ask the user before saving."
|
||||
:type '(choice (const t) (const nil) (const silently))
|
||||
:group 'abbrev)
|
||||
|
||||
(defcustom find-file-run-dired t
|
||||
"*Non-nil means allow `find-file' to visit directories.
|
||||
"Non-nil means allow `find-file' to visit directories.
|
||||
To visit the directory, `find-file' runs `find-directory-functions'."
|
||||
:type 'boolean
|
||||
:group 'find-file)
|
||||
|
||||
(defcustom find-directory-functions '(cvs-dired-noselect dired-noselect)
|
||||
"*List of functions to try in sequence to visit a directory.
|
||||
"List of functions to try in sequence to visit a directory.
|
||||
Each function is called with the directory name as the sole argument
|
||||
and should return either a buffer or nil."
|
||||
:type '(hook :options (cvs-dired-noselect dired-noselect))
|
||||
|
|
@ -448,7 +448,7 @@ use `before-save-hook'.")
|
|||
'write-contents-functions "22.1")
|
||||
|
||||
(defcustom enable-local-variables t
|
||||
"*Control use of local variables in files you visit.
|
||||
"Control use of local variables in files you visit.
|
||||
The value can be t, nil, :safe, or something else.
|
||||
|
||||
A value of t means file local variables specifications are obeyed
|
||||
|
|
@ -506,7 +506,7 @@ nil means ignore them; anything else means query."
|
|||
(defalias 'file-locked-p 'ignore))
|
||||
|
||||
(defcustom view-read-only nil
|
||||
"*Non-nil means buffers visiting files read-only do so in view mode.
|
||||
"Non-nil means buffers visiting files read-only do so in view mode.
|
||||
In fact, this means that all read-only buffers normally have
|
||||
View mode enabled, including buffers that are read-only because
|
||||
you visit a file you cannot alter, and buffers you make read-only
|
||||
|
|
@ -1324,7 +1324,7 @@ removes automounter prefixes (see the variable `automount-dir-prefix')."
|
|||
filename)))
|
||||
|
||||
(defcustom find-file-not-true-dirname-list nil
|
||||
"*List of logical names for which visiting shouldn't save the true dirname.
|
||||
"List of logical names for which visiting shouldn't save the true dirname.
|
||||
On VMS, when you visit a file using a logical name that searches a path,
|
||||
you may or may not want the visited file name to record the specific
|
||||
directory where the file was found. If you *do not* want that, add the logical
|
||||
|
|
@ -1373,7 +1373,7 @@ If there is no such live buffer, return nil."
|
|||
found))))
|
||||
|
||||
(defcustom find-file-wildcards t
|
||||
"*Non-nil means file-visiting commands should handle wildcards.
|
||||
"Non-nil means file-visiting commands should handle wildcards.
|
||||
For example, if you specify `*.c', that would visit all the files
|
||||
whose names match the pattern."
|
||||
:group 'files
|
||||
|
|
@ -1381,7 +1381,7 @@ whose names match the pattern."
|
|||
:type 'boolean)
|
||||
|
||||
(defcustom find-file-suppress-same-file-warnings nil
|
||||
"*Non-nil means suppress warning messages for symlinked files.
|
||||
"Non-nil means suppress warning messages for symlinked files.
|
||||
When nil, Emacs prints a warning when visiting a file that is already
|
||||
visited, but with a different name. Setting this option to t
|
||||
suppresses this warning."
|
||||
|
|
@ -2303,7 +2303,7 @@ symbol and VAL is a value that is considered safe."
|
|||
:type 'alist)
|
||||
|
||||
(defcustom safe-local-eval-forms nil
|
||||
"*Expressions that are considered safe in an `eval:' local variable.
|
||||
"Expressions that are considered safe in an `eval:' local variable.
|
||||
Add expressions to this list if you want Emacs to evaluate them, when
|
||||
they appear in an `eval' local variable specification, without first
|
||||
asking you for confirmation."
|
||||
|
|
@ -2765,7 +2765,7 @@ It is dangerous if either of these conditions are met:
|
|||
|
||||
|
||||
(defcustom change-major-mode-with-file-name t
|
||||
"*Non-nil means \\[write-file] should set the major mode from the file name.
|
||||
"Non-nil means \\[write-file] should set the major mode from the file name.
|
||||
However, the mode will not be changed if
|
||||
\(1) a local variables list or the `-*-' line specifies a major mode, or
|
||||
\(2) the current major mode is a \"special\" mode,
|
||||
|
|
@ -4500,7 +4500,7 @@ by `sh' are supported."
|
|||
|
||||
(defcustom list-directory-brief-switches
|
||||
(if (eq system-type 'vax-vms) "" "-CF")
|
||||
"*Switches for `list-directory' to pass to `ls' for brief listing."
|
||||
"Switches for `list-directory' to pass to `ls' for brief listing."
|
||||
:type 'string
|
||||
:group 'dired)
|
||||
|
||||
|
|
@ -4508,7 +4508,7 @@ by `sh' are supported."
|
|||
(if (eq system-type 'vax-vms)
|
||||
"/PROTECTION/SIZE/DATE/OWNER/WIDTH=(OWNER:10)"
|
||||
"-l")
|
||||
"*Switches for `list-directory' to pass to `ls' for verbose listing."
|
||||
"Switches for `list-directory' to pass to `ls' for verbose listing."
|
||||
:type 'string
|
||||
:group 'dired)
|
||||
|
||||
|
|
@ -4639,7 +4639,7 @@ PATTERN that already quotes some of the special characters."
|
|||
"Absolute or relative name of the `ls' program used by `insert-directory'.")
|
||||
|
||||
(defcustom directory-free-space-program "df"
|
||||
"*Program to get the amount of free space on a file system.
|
||||
"Program to get the amount of free space on a file system.
|
||||
We assume the output has the format of `df'.
|
||||
The value of this variable must be just a command name or file name;
|
||||
if you want to specify options, use `directory-free-space-args'.
|
||||
|
|
@ -4653,7 +4653,7 @@ preference to the program given by this variable."
|
|||
|
||||
(defcustom directory-free-space-args
|
||||
(if (eq system-type 'darwin) "-k" "-Pk")
|
||||
"*Options to use when running `directory-free-space-program'."
|
||||
"Options to use when running `directory-free-space-program'."
|
||||
:type 'string
|
||||
:group 'dired)
|
||||
|
||||
|
|
|
|||
|
|
@ -189,12 +189,16 @@ To override this, give an argument to `ff-find-other-file'."
|
|||
;; C/C++ include, for NeXTSTEP too
|
||||
("^\#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]" .
|
||||
(lambda ()
|
||||
(setq fname (buffer-substring (match-beginning 2) (match-end 2)))))
|
||||
(buffer-substring (match-beginning 2) (match-end 2))))
|
||||
)
|
||||
"*A list of regular expressions for `ff-find-file'.
|
||||
Specifies how to recognize special constructs such as include files
|
||||
etc. and an associated method for extracting the filename from that
|
||||
construct.")
|
||||
;; We include `ff-treat-as-special' documentation here so that autoload
|
||||
;; can make it available to be read prior to loading this file.
|
||||
"*List of special constructs for `ff-treat-as-special' to recognize.
|
||||
Each element, tried in order, has the form (REGEXP . EXTRACT).
|
||||
If REGEXP matches the current line (from the beginning of the line),
|
||||
`ff-treat-as-special' calls function EXTRACT with no args.
|
||||
If EXTRACT returns nil, keep trying. Otherwise, return the
|
||||
filename that EXTRACT returned.")
|
||||
|
||||
(defvaralias 'ff-related-file-alist 'ff-other-file-alist)
|
||||
(defcustom ff-other-file-alist 'cc-other-file-alist
|
||||
|
|
@ -405,9 +409,7 @@ If optional IN-OTHER-WINDOW is non-nil, find the file in another window."
|
|||
(ff-list-replace-env-vars (symbol-value ff-search-directories))
|
||||
(ff-list-replace-env-vars ff-search-directories)))
|
||||
|
||||
(save-excursion
|
||||
(beginning-of-line 1)
|
||||
(setq fname (ff-treat-as-special)))
|
||||
(setq fname (ff-treat-as-special))
|
||||
|
||||
(cond
|
||||
((and (not ff-ignore-include) fname)
|
||||
|
|
@ -540,9 +542,7 @@ the `ff-ignore-include' variable."
|
|||
(ff-list-replace-env-vars (symbol-value ff-search-directories))
|
||||
(ff-list-replace-env-vars ff-search-directories)))
|
||||
|
||||
(save-excursion
|
||||
(beginning-of-line 1)
|
||||
(setq fname (ff-treat-as-special)))
|
||||
(setq fname (ff-treat-as-special))
|
||||
|
||||
(cond
|
||||
((and (not ff-ignore-include) fname)
|
||||
|
|
@ -771,20 +771,22 @@ The value used comes from `ff-case-fold-search'."
|
|||
|
||||
(defun ff-treat-as-special ()
|
||||
"Return the file to look for if the construct was special, else nil.
|
||||
The construct is defined in the variable `ff-special-constructs'."
|
||||
(let* (fname
|
||||
(list ff-special-constructs)
|
||||
(elem (car list))
|
||||
(regexp (car elem))
|
||||
(match (cdr elem)))
|
||||
(while (and list (not fname))
|
||||
(if (and (looking-at regexp) match)
|
||||
(setq fname (funcall match)))
|
||||
(setq list (cdr list))
|
||||
(setq elem (car list))
|
||||
(setq regexp (car elem))
|
||||
(setq match (cdr elem)))
|
||||
fname))
|
||||
See variable `ff-special-constructs'."
|
||||
(save-excursion
|
||||
(beginning-of-line 1)
|
||||
(let* (fname
|
||||
(list ff-special-constructs)
|
||||
(elem (car list))
|
||||
(regexp (car elem))
|
||||
(match (cdr elem)))
|
||||
(while (and list (not fname))
|
||||
(if (and (looking-at regexp) match)
|
||||
(setq fname (funcall match)))
|
||||
(setq list (cdr list))
|
||||
(setq elem (car list))
|
||||
(setq regexp (car elem))
|
||||
(setq match (cdr elem)))
|
||||
fname)))
|
||||
|
||||
(defun ff-basename (string)
|
||||
"Return the basename of pathname STRING."
|
||||
|
|
|
|||
|
|
@ -776,7 +776,9 @@ the user during startup."
|
|||
"*Non-nil if window system changes focus when you move the mouse.
|
||||
You should set this variable to tell Emacs how your window manager
|
||||
handles focus, since there is no way in general for Emacs to find out
|
||||
automatically."
|
||||
automatically.
|
||||
|
||||
This variable does not have any effect on MS-Windows."
|
||||
:type 'boolean
|
||||
:group 'frames
|
||||
:version "20.3")
|
||||
|
|
|
|||
|
|
@ -1,3 +1,38 @@
|
|||
2006-07-19 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
|
||||
|
||||
* mm-url.el (mm-url-insert-file-contents): Inhibit Connection: close
|
||||
workaround for the url package included with Emacs.
|
||||
|
||||
* nnweb.el (nnweb-google-create-mapping): Update regexp.
|
||||
|
||||
2006-07-18 Karl Fogel <kfogel@red-bean.com>
|
||||
|
||||
* nnmail.el (nnmail-article-group): If splitting raises an error, give
|
||||
some information about the error when saying that the `bogus' mail
|
||||
group will be used.
|
||||
|
||||
2006-07-18 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
|
||||
|
||||
[ Backported bug fixes from No Gnus. ]
|
||||
|
||||
* nnweb.el (nnweb-google-parse-1): Update regexp for author and date.
|
||||
(nnweb-google-search): Respect nnweb-max-hits as upper bound.
|
||||
(nnweb-request-article): Do proper xwfu encoding when fetching articles
|
||||
by message-id.
|
||||
|
||||
* gnus-srvr.el (gnus-browse-unsubscribe-group): Don't subscribe
|
||||
unsubscribed groups as if they were killed ones. It causes duplicate
|
||||
entries in gnus-newsrc-alist.
|
||||
|
||||
2006-07-17 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus-sum.el (gnus-summary-delete-article): Don't use TAB in doc
|
||||
string.
|
||||
|
||||
2006-07-16 NAKAJI Hiroyuki <nakaji@heimat.jp> (tiny change)
|
||||
|
||||
* mm-util.el (mm-charset-synonym-alist): Map windows-31j to cp932.
|
||||
|
||||
2006-07-14 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
|
||||
|
||||
* gnus-start.el (gnus-subscribe-options-newsgroup-method): Doc fix.
|
||||
|
|
@ -131,8 +166,7 @@
|
|||
(mm-display-part): Simplify.
|
||||
(mm-inlinable-p): Add optional arg `type'.
|
||||
|
||||
* gnus-art.el (gnus-mime-view-part-as-type): Add optional PRED
|
||||
argument.
|
||||
* gnus-art.el (gnus-mime-view-part-as-type): Add optional PRED arg.
|
||||
(gnus-mime-view-part-externally, gnus-mime-view-part-internally):
|
||||
Try harder to show the attachment internally or externally using
|
||||
gnus-mime-view-part-as-type.
|
||||
|
|
@ -142,8 +176,7 @@
|
|||
* gnus-art.el (gnus-mime-view-part-as-type-internal): Try to fetch
|
||||
`filename' from Content-Disposition if Content-Type doesn't
|
||||
provide `name'.
|
||||
(gnus-mime-view-part-as-type): Set default instead of
|
||||
initial-input.
|
||||
(gnus-mime-view-part-as-type): Set default instead of initial-input.
|
||||
|
||||
2006-04-28 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
|
|
@ -166,8 +199,8 @@
|
|||
|
||||
* mml-sec.el (mml-secure-method): New internal variable.
|
||||
(mml-secure-sign, mml-secure-encrypt, mml-secure-message-sign)
|
||||
(mml-secure-message-sign-encrypt, mml-secure-message-encrypt): New
|
||||
functions using mml-secure-method. Sync from the trunk.
|
||||
(mml-secure-message-sign-encrypt, mml-secure-message-encrypt):
|
||||
New functions using mml-secure-method. Sync from the trunk.
|
||||
|
||||
* mml.el (mml-mode-map): Add key bindings for those functions.
|
||||
(mml-menu): Simplify security menu entries. Suggested by Jesper
|
||||
|
|
@ -211,8 +244,8 @@
|
|||
|
||||
2006-04-20 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus-util.el (gnus-replace-in-string): Prefer
|
||||
replace-regexp-in-string over of replace-in-string.
|
||||
* gnus-util.el (gnus-replace-in-string):
|
||||
Prefer replace-regexp-in-string over of replace-in-string.
|
||||
|
||||
2006-04-20 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
|
|
@ -220,8 +253,8 @@
|
|||
|
||||
* gnus-sum.el: Ditto.
|
||||
|
||||
* gnus-util.el (gnus-select-frame-set-input-focus): Use
|
||||
select-frame-set-input-focus if it is available in XEmacs; use
|
||||
* gnus-util.el (gnus-select-frame-set-input-focus):
|
||||
Use select-frame-set-input-focus if it is available in XEmacs; use
|
||||
definition defined in Emacs 22 for old Emacsen.
|
||||
|
||||
2006-04-17 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
|
@ -233,13 +266,13 @@
|
|||
(mm-charset-to-coding-system): Use it.
|
||||
(mm-codepage-setup): New helper function.
|
||||
(mm-charset-eval-alist): New variable.
|
||||
(mm-charset-to-coding-system): Use mm-charset-eval-alist. Warn
|
||||
about unknown charsets. Add allow-override. Use
|
||||
`mm-charset-override-alist' only when decoding.
|
||||
(mm-charset-to-coding-system): Use mm-charset-eval-alist.
|
||||
Warn about unknown charsets. Add allow-override.
|
||||
Use `mm-charset-override-alist' only when decoding.
|
||||
(mm-detect-mime-charset-region): Use :mime-charset.
|
||||
|
||||
* mm-bodies.el (mm-decode-body, mm-decode-string): Call
|
||||
`mm-charset-to-coding-system' with allow-override argument.
|
||||
* mm-bodies.el (mm-decode-body, mm-decode-string):
|
||||
Call `mm-charset-to-coding-system' with allow-override argument.
|
||||
|
||||
* message.el (message-tool-bar-zap-list, message-tool-bar)
|
||||
(message-tool-bar-gnome, message-tool-bar-retro): New variables.
|
||||
|
|
@ -255,8 +288,8 @@
|
|||
`gmm-tool-bar-from-list'.
|
||||
|
||||
* gnus-group.el (gnus-group-tool-bar, gnus-group-tool-bar-gnome)
|
||||
(gnus-group-tool-bar-retro, gnus-group-tool-bar-zap-list): New
|
||||
variables.
|
||||
(gnus-group-tool-bar-retro, gnus-group-tool-bar-zap-list):
|
||||
New variables.
|
||||
(gnus-group-make-tool-bar): Complete rewrite using
|
||||
`gmm-tool-bar-from-list'.
|
||||
(gnus-group-tool-bar-update): New function.
|
||||
|
|
@ -270,8 +303,8 @@
|
|||
|
||||
2006-04-12 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus-art.el (gnus-article-mode): Set
|
||||
cursor-in-non-selected-windows to nil.
|
||||
* gnus-art.el (gnus-article-mode):
|
||||
Set cursor-in-non-selected-windows to nil.
|
||||
|
||||
2006-04-12 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
|
|
@ -302,8 +335,7 @@
|
|||
|
||||
2006-04-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* nnslashdot.el (nnslashdot-retrieve-headers-1): Fix up to new
|
||||
layout.
|
||||
* nnslashdot.el (nnslashdot-retrieve-headers-1): Fix up to new layout.
|
||||
|
||||
* rfc2047.el (rfc2047-decode-encoded-words): Don't message about
|
||||
unknown charset.
|
||||
|
|
@ -365,13 +397,12 @@
|
|||
|
||||
* gnus-agent.el (gnus-agent-queue-mail): Fix custom tag for `t'.
|
||||
|
||||
* spam.el (spam-mark-new-messages-in-spam-group-as-spam): Add
|
||||
comment on version.
|
||||
* spam.el (spam-mark-new-messages-in-spam-group-as-spam):
|
||||
Add comment on version.
|
||||
|
||||
2006-03-20 Teodor Zlatanov <tzz@lifelogs.com>
|
||||
|
||||
* spam.el (spam-mark-new-messages-in-spam-group-as-spam): New
|
||||
variable.
|
||||
* spam.el (spam-mark-new-messages-in-spam-group-as-spam): New variable.
|
||||
(spam-mark-junk-as-spam-routine): Use it. Allow to disable
|
||||
assigning the spam-mark to new messages.
|
||||
|
||||
|
|
@ -402,14 +433,14 @@
|
|||
|
||||
* gnus-art.el (gnus-article-only-boring-p):
|
||||
Bind inhibit-point-motion-hooks to avoid infinite loop when entering
|
||||
intangible text. Reported by Ralf Wachinger
|
||||
<rwnewsmampfer@geekmail.de>.
|
||||
intangible text.
|
||||
Reported by Ralf Wachinger <rwnewsmampfer@geekmail.de>.
|
||||
|
||||
2006-03-14 Simon Josefsson <jas@extundo.com>
|
||||
|
||||
* message.el (message-unique-id): Don't use message-number-base36
|
||||
if (user-uid) is a float. Reported by Bjorn Solberg
|
||||
<bjorn_ding1@hekneby.org>.
|
||||
if (user-uid) is a float.
|
||||
Reported by Bjorn Solberg <bjorn_ding1@hekneby.org>.
|
||||
|
||||
2006-03-13 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
|
|
|
|||
|
|
@ -943,19 +943,23 @@ If NUMBER, fetch this number of articles."
|
|||
(progn
|
||||
;; Make sure the group has been properly removed before we
|
||||
;; subscribe to it.
|
||||
(gnus-kill-ephemeral-group group)
|
||||
(if (gnus-ephemeral-group-p group)
|
||||
(gnus-kill-ephemeral-group group))
|
||||
;; We need to discern between killed/zombie groups and
|
||||
;; just unsubscribed ones.
|
||||
(gnus-group-change-level
|
||||
(list t group gnus-level-default-subscribed
|
||||
nil nil (if (gnus-server-equal
|
||||
gnus-browse-current-method "native")
|
||||
nil
|
||||
(gnus-method-simplify
|
||||
gnus-browse-current-method)))
|
||||
(or (gnus-group-entry group)
|
||||
(list t group gnus-level-default-subscribed
|
||||
nil nil (if (gnus-server-equal
|
||||
gnus-browse-current-method "native")
|
||||
nil
|
||||
(gnus-method-simplify
|
||||
gnus-browse-current-method))))
|
||||
gnus-level-default-subscribed (gnus-group-level group)
|
||||
(and (car (nth 1 gnus-newsrc-alist))
|
||||
(gnus-gethash (car (nth 1 gnus-newsrc-alist))
|
||||
gnus-newsrc-hashtb))
|
||||
t)
|
||||
(null (gnus-group-entry group)))
|
||||
(delete-char 1)
|
||||
(insert ? ))
|
||||
(gnus-group-change-level
|
||||
|
|
|
|||
|
|
@ -9510,7 +9510,7 @@ deleted forever, right now."
|
|||
;; Suggested by Jack Vinson <vinson@unagi.cis.upenn.edu>.
|
||||
(defun gnus-summary-delete-article (&optional n)
|
||||
"Delete the N next (mail) articles.
|
||||
This command actually deletes articles. This is not a marking
|
||||
This command actually deletes articles. This is not a marking
|
||||
command. The article will disappear forever from your life, never to
|
||||
return.
|
||||
|
||||
|
|
|
|||
|
|
@ -301,7 +301,13 @@ If `mm-url-use-external' is non-nil, use `mm-url-program'."
|
|||
(list url (buffer-size)))
|
||||
(mm-url-load-url)
|
||||
(let ((name buffer-file-name)
|
||||
(url-request-extra-headers (list (cons "Connection" "Close")))
|
||||
(url-request-extra-headers
|
||||
;; ISTM setting a Connection header was a workaround for
|
||||
;; older versions of url included with w3, but it does more
|
||||
;; harm than good with the one shipped with Emacs. --ansel
|
||||
(if (not (and (boundp 'url-version)
|
||||
(equal url-version "Emacs")))
|
||||
(list (cons "Connection" "Close"))))
|
||||
(url-package-name (or mm-url-package-name
|
||||
url-package-name))
|
||||
(url-package-version (or mm-url-package-version
|
||||
|
|
|
|||
|
|
@ -204,19 +204,19 @@ the alias. Else windows-NUMBER is used."
|
|||
`(
|
||||
;; Not in XEmacs, but it's not a proper MIME charset anyhow.
|
||||
,@(unless (mm-coding-system-p 'x-ctext)
|
||||
'((x-ctext . ctext)))
|
||||
'((x-ctext . ctext)))
|
||||
;; ISO-8859-15 is very similar to ISO-8859-1. But it's _different_!
|
||||
,@(unless (mm-coding-system-p 'iso-8859-15)
|
||||
'((iso-8859-15 . iso-8859-1)))
|
||||
'((iso-8859-15 . iso-8859-1)))
|
||||
;; BIG-5HKSCS is similar to, but different than, BIG-5.
|
||||
,@(unless (mm-coding-system-p 'big5-hkscs)
|
||||
'((big5-hkscs . big5)))
|
||||
;; Windows-1252 is actually a superset of Latin-1. See also
|
||||
;; `gnus-article-dumbquotes-map'.
|
||||
,@(unless (mm-coding-system-p 'windows-1252)
|
||||
(if (mm-coding-system-p 'cp1252)
|
||||
'((windows-1252 . cp1252))
|
||||
'((windows-1252 . iso-8859-1))))
|
||||
(if (mm-coding-system-p 'cp1252)
|
||||
'((windows-1252 . cp1252))
|
||||
'((windows-1252 . iso-8859-1))))
|
||||
;; Windows-1250 is a variant of Latin-2 heavily used by Microsoft
|
||||
;; Outlook users in Czech republic. Use this to allow reading of their
|
||||
;; e-mails. cp1250 should be defined by M-x codepage-setup.
|
||||
|
|
@ -232,6 +232,10 @@ the alias. Else windows-NUMBER is used."
|
|||
(if (mm-coding-system-p 'cp949)
|
||||
'((ks_c_5601-1987 . cp949))
|
||||
'((ks_c_5601-1987 . euc-kr))))
|
||||
;; Windows-31J is Windows Codepage 932.
|
||||
,@(if (and (not (mm-coding-system-p 'windows-31j))
|
||||
(mm-coding-system-p 'cp932))
|
||||
'((windows-31j . cp932)))
|
||||
)
|
||||
"A mapping from unknown or invalid charset names to the real charset names.")
|
||||
|
||||
|
|
|
|||
|
|
@ -1131,7 +1131,7 @@ FUNC will be called with the group name to determine the article number."
|
|||
(if (and (symbolp nnmail-split-methods)
|
||||
(fboundp nnmail-split-methods))
|
||||
(let ((split
|
||||
(condition-case nil
|
||||
(condition-case error-info
|
||||
;; `nnmail-split-methods' is a function, so we
|
||||
;; just call this function here and use the
|
||||
;; result.
|
||||
|
|
@ -1139,7 +1139,7 @@ FUNC will be called with the group name to determine the article number."
|
|||
'("bogus"))
|
||||
(error
|
||||
(nnheader-message
|
||||
5 "Error in `nnmail-split-methods'; using `bogus' mail group")
|
||||
5 "Error in `nnmail-split-methods'; using `bogus' mail group: %S" error-info)
|
||||
(sit-for 1)
|
||||
'("bogus")))))
|
||||
(setq split (mm-delete-duplicates split))
|
||||
|
|
|
|||
|
|
@ -171,7 +171,8 @@ Valid types include `google', `dejanews', and `gmane'.")
|
|||
(when (string-match "^<\\(.*\\)>$" article)
|
||||
(setq art (match-string 1 article)))
|
||||
(when (and fetch art)
|
||||
(setq url (format fetch art))
|
||||
(setq url (format fetch
|
||||
(mm-url-form-encode-xwfu art)))
|
||||
(mm-with-unibyte-current-buffer
|
||||
(mm-url-insert url))
|
||||
(if (nnweb-definition 'reference t)
|
||||
|
|
@ -365,7 +366,7 @@ Valid types include `google', `dejanews', and `gmane'.")
|
|||
(mm-url-decode-entities)
|
||||
(search-backward " - ")
|
||||
(when (looking-at
|
||||
" - \\([a-zA-Z]+\\) \\([0-9]+\\)\\(?: \\([0-9]\\{4\\}\\)\\)?, [^\n]+by \\([^<\n]+\\)\n")
|
||||
" - \\([a-zA-Z]+\\) \\([0-9]+\\)\\(?: \\([0-9]\\{4\\}\\)\\)?[^\n]+by ?\n?\\([^<\n]+\\)\n")
|
||||
(setq From (match-string 4)
|
||||
Date (format "%s %s 00:00:00 %s"
|
||||
(match-string 1)
|
||||
|
|
@ -415,7 +416,7 @@ Valid types include `google', `dejanews', and `gmane'.")
|
|||
(goto-char (point-min))
|
||||
(incf i 100)
|
||||
(if (or (not (re-search-forward
|
||||
"<a href=\"\n\\([^>\" \n\t]+\\)[^<]*<img src=[^>]+next"
|
||||
"<a [^>]+href=\"\n?\\([^>\" \n\t]+\\)[^<]*<img[^>]+src=[^>]+next"
|
||||
nil t))
|
||||
(>= i nnweb-max-hits))
|
||||
(setq more nil)
|
||||
|
|
@ -437,7 +438,8 @@ Valid types include `google', `dejanews', and `gmane'.")
|
|||
"?"
|
||||
(mm-url-encode-www-form-urlencoded
|
||||
`(("q" . ,search)
|
||||
("num" . "100")
|
||||
("num" . ,(number-to-string
|
||||
(min 100 nnweb-max-hits)))
|
||||
("hq" . "")
|
||||
("hl" . "en")
|
||||
("lr" . "")
|
||||
|
|
|
|||
|
|
@ -157,8 +157,9 @@ The format is (FUNCTION ARGS...).")
|
|||
(let ((location
|
||||
(find-function-search-for-symbol fun nil file)))
|
||||
(pop-to-buffer (car location))
|
||||
(when (cdr location)
|
||||
(goto-char (cdr location)))))
|
||||
(if (cdr location)
|
||||
(goto-char (cdr location))
|
||||
(message "Unable to find location in file"))))
|
||||
'help-echo (purecopy "mouse-2, RET: find function's definition"))
|
||||
|
||||
(define-button-type 'help-variable-def
|
||||
|
|
@ -168,8 +169,9 @@ The format is (FUNCTION ARGS...).")
|
|||
(setq file (help-C-file-name var 'var)))
|
||||
(let ((location (find-variable-noselect var file)))
|
||||
(pop-to-buffer (car location))
|
||||
(when (cdr location)
|
||||
(goto-char (cdr location)))))
|
||||
(if (cdr location)
|
||||
(goto-char (cdr location))
|
||||
(message "Unable to find location in file"))))
|
||||
'help-echo (purecopy "mouse-2, RET: find variable's definition"))
|
||||
|
||||
(define-button-type 'help-face-def
|
||||
|
|
@ -181,8 +183,9 @@ The format is (FUNCTION ARGS...).")
|
|||
(let ((location
|
||||
(find-function-search-for-symbol fun 'defface file)))
|
||||
(pop-to-buffer (car location))
|
||||
(when (cdr location)
|
||||
(goto-char (cdr location)))))
|
||||
(if (cdr location)
|
||||
(goto-char (cdr location))
|
||||
(message "Unable to find location in file"))))
|
||||
'help-echo (purecopy "mouse-2, RET: find face's definition"))
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ the ability to filter the displayed buffers by various criteria."
|
|||
|
||||
(defcustom ibuffer-formats '((mark modified read-only " " (name 18 18 :left :elide)
|
||||
" " (size 9 -1 :right)
|
||||
" " (mode 16 16 :right :elide) " " filename-and-process)
|
||||
" " (mode 16 16 :left :elide) " " filename-and-process)
|
||||
(mark " " (name 16 -1) " " filename))
|
||||
"A list of ways to display buffer lines.
|
||||
|
||||
|
|
|
|||
|
|
@ -118,6 +118,9 @@ information on these modes."
|
|||
(if (get-text-property (point-min) 'display)
|
||||
(image-toggle-display)))
|
||||
|
||||
(defvar archive-superior-buffer)
|
||||
(defvar tar-superior-buffer)
|
||||
|
||||
(defun image-toggle-display ()
|
||||
"Start or stop displaying an image file as the actual image.
|
||||
This command toggles between showing the text of the image file
|
||||
|
|
|
|||
|
|
@ -831,7 +831,7 @@ re-visited and edited.)
|
|||
Optional 3rd arg DEFAULT-CODING-SYSTEM specifies a coding system or a
|
||||
list of coding systems to be prepended to the default coding system
|
||||
list. However, if DEFAULT-CODING-SYSTEM is a list and the first
|
||||
element is t, the cdr part is used as the defualt coding system list,
|
||||
element is t, the cdr part is used as the default coding system list,
|
||||
i.e. `buffer-file-coding-system', `default-buffer-file-coding-system',
|
||||
and the most preferred coding system are not used.
|
||||
|
||||
|
|
@ -898,9 +898,6 @@ It is highly recommended to fix it before writing to a file."
|
|||
(rassq base default-coding-system)
|
||||
(push (cons auto-cs base) default-coding-system))))
|
||||
|
||||
;; From now on, the list of defaults is reversed.
|
||||
(setq default-coding-system (nreverse default-coding-system))
|
||||
|
||||
(unless no-other-defaults
|
||||
;; If buffer-file-coding-system is not nil nor undecided, append it
|
||||
;; to the defaults.
|
||||
|
|
@ -908,8 +905,9 @@ It is highly recommended to fix it before writing to a file."
|
|||
(let ((base (coding-system-base buffer-file-coding-system)))
|
||||
(or (eq base 'undecided)
|
||||
(rassq base default-coding-system)
|
||||
(push (cons buffer-file-coding-system base)
|
||||
default-coding-system))))
|
||||
(setq default-coding-system
|
||||
(append default-coding-system
|
||||
(list (cons buffer-file-coding-system base)))))))
|
||||
|
||||
;; If default-buffer-file-coding-system is not nil nor undecided,
|
||||
;; append it to the defaults.
|
||||
|
|
@ -917,8 +915,10 @@ It is highly recommended to fix it before writing to a file."
|
|||
(let ((base (coding-system-base default-buffer-file-coding-system)))
|
||||
(or (eq base 'undecided)
|
||||
(rassq base default-coding-system)
|
||||
(push (cons default-buffer-file-coding-system base)
|
||||
default-coding-system))))
|
||||
(setq default-coding-system
|
||||
(append default-coding-system
|
||||
(list (cons default-buffer-file-coding-system
|
||||
base)))))))
|
||||
|
||||
;; If the most preferred coding system has the property mime-charset,
|
||||
;; append it to the defaults.
|
||||
|
|
@ -930,18 +930,40 @@ It is highly recommended to fix it before writing to a file."
|
|||
(setq base (coding-system-base preferred))
|
||||
(coding-system-get preferred 'mime-charset)
|
||||
(not (rassq base default-coding-system))
|
||||
(push (cons preferred base)
|
||||
default-coding-system))))
|
||||
(setq default-coding-system
|
||||
(append default-coding-system
|
||||
(list (cons preferred base)))))))
|
||||
|
||||
(if select-safe-coding-system-accept-default-p
|
||||
(setq accept-default-p select-safe-coding-system-accept-default-p))
|
||||
|
||||
;; Decide the eol-type from the top of the default codings,
|
||||
;; buffer-file-coding-system, or
|
||||
;; default-buffer-file-coding-system.
|
||||
(if default-coding-system
|
||||
(let ((default-eol-type (coding-system-eol-type
|
||||
(caar default-coding-system))))
|
||||
(if (and (vectorp default-eol-type) buffer-file-coding-system)
|
||||
(setq default-eol-type (coding-system-eol-type
|
||||
buffer-file-coding-system)))
|
||||
(if (and (vectorp default-eol-type) default-buffer-file-coding-system)
|
||||
(setq default-eol-type (coding-system-eol-type
|
||||
default-buffer-file-coding-system)))
|
||||
(if (and default-eol-type (not (vectorp default-eol-type)))
|
||||
(dolist (elt default-coding-system)
|
||||
(setcar elt (coding-system-change-eol-conversion
|
||||
(car elt) default-eol-type))))))
|
||||
|
||||
(let ((codings (find-coding-systems-region from to))
|
||||
(coding-system nil)
|
||||
safe rejected unsafe)
|
||||
(if (eq (car codings) 'undecided)
|
||||
;; Any coding system is ok.
|
||||
(setq coding-system t)
|
||||
(setq coding-system (caar default-coding-system))
|
||||
;; Reverse the list so that elements are accumulated in safe,
|
||||
;; rejected, and unsafe in the correct order.
|
||||
(setq default-coding-system (nreverse default-coding-system))
|
||||
|
||||
;; Classify the defaults into safe, rejected, and unsafe.
|
||||
(dolist (elt default-coding-system)
|
||||
(if (memq (cdr elt) codings)
|
||||
|
|
@ -958,14 +980,6 @@ It is highly recommended to fix it before writing to a file."
|
|||
(setq coding-system (select-safe-coding-system-interactively
|
||||
from to codings unsafe rejected (car codings))))
|
||||
|
||||
(if (vectorp (coding-system-eol-type coding-system))
|
||||
(let ((eol (coding-system-eol-type buffer-file-coding-system)))
|
||||
(if (numberp eol)
|
||||
(setq coding-system
|
||||
(coding-system-change-eol-conversion coding-system eol)))))
|
||||
|
||||
(if (eq coding-system t)
|
||||
(setq coding-system buffer-file-coding-system))
|
||||
;; Check we're not inconsistent with what `coding:' spec &c would
|
||||
;; give when file is re-read.
|
||||
;; But don't do this if we explicitly ignored the cookie
|
||||
|
|
|
|||
|
|
@ -777,8 +777,8 @@ If the click is in the echo area, display the `*Messages*' buffer."
|
|||
|
||||
(defun mouse-on-link-p (pos)
|
||||
"Return non-nil if POS is on a link in the current buffer.
|
||||
POS must be a buffer position in the current buffer or an mouse
|
||||
event location in the selected window, see `event-start'.
|
||||
POS must be a buffer position in the current buffer or a mouse
|
||||
event location in the selected window (see `event-start').
|
||||
However, if `mouse-1-click-in-non-selected-windows' is non-nil,
|
||||
POS may be a mouse event location in any window.
|
||||
|
||||
|
|
@ -798,7 +798,7 @@ is a non-nil `mouse-face' property at POS. Return t in this case.
|
|||
|
||||
- If the value is a function, FUNC, POS is inside a link if
|
||||
the call \(FUNC POS) returns non-nil. Return the return value
|
||||
from that call. Arg is \(posn-point POS) if POS is a mouse event,
|
||||
from that call. Arg is \(posn-point POS) if POS is a mouse event.
|
||||
|
||||
- Otherwise, return the value itself.
|
||||
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ Whether the passphrase is cached at all is controlled by
|
|||
"If t, inform the recipient that the input is text.")
|
||||
|
||||
(defmacro pgg-truncate-key-identifier (key)
|
||||
`(if (> (length ,key) 8) (substring ,key 8) ,key))
|
||||
`(if (> (length ,key) 8) (substring ,key -8) ,key))
|
||||
|
||||
(provide 'pgg-def)
|
||||
|
||||
|
|
|
|||
|
|
@ -1208,60 +1208,36 @@ If you use ada-xref.el:
|
|||
ff-file-created-hook 'ada-make-body)
|
||||
(add-hook 'ff-pre-load-hook 'ada-which-function-are-we-in)
|
||||
|
||||
;; Some special constructs for find-file.el
|
||||
;; We do not need to add the construction for 'with', which is in the
|
||||
;; standard find-file.el
|
||||
;; Some special constructs for find-file.el.
|
||||
(make-local-variable 'ff-special-constructs)
|
||||
|
||||
;; Go to the parent package :
|
||||
(add-to-list 'ff-special-constructs
|
||||
(cons (eval-when-compile
|
||||
(concat "^\\(private[ \t]\\)?[ \t]*package[ \t]+"
|
||||
"\\(body[ \t]+\\)?"
|
||||
"\\(\\(\\sw\\|[_.]\\)+\\)\\.\\(\\sw\\|_\\)+[ \t\n]+is"))
|
||||
(lambda ()
|
||||
(if (fboundp 'ff-get-file)
|
||||
(if (boundp 'fname)
|
||||
(set 'fname (ff-get-file
|
||||
ada-search-directories-internal
|
||||
(ada-make-filename-from-adaname
|
||||
(match-string 3))
|
||||
ada-spec-suffixes)))))))
|
||||
;; Another special construct for find-file.el : when in a separate clause,
|
||||
;; go to the correct package.
|
||||
(add-to-list 'ff-special-constructs
|
||||
(cons "^separate[ \t\n]*(\\(\\(\\sw\\|[_.]\\)+\\))"
|
||||
(lambda ()
|
||||
(if (fboundp 'ff-get-file)
|
||||
(if (boundp 'fname)
|
||||
(setq fname (ff-get-file
|
||||
ada-search-directories-internal
|
||||
(ada-make-filename-from-adaname
|
||||
(match-string 1))
|
||||
ada-spec-suffixes)))))))
|
||||
|
||||
;; Another special construct, that redefines the one in find-file.el. The
|
||||
;; old one can handle only one possible type of extension for Ada files
|
||||
;; remove from the list the standard "with..." that is put by find-file.el,
|
||||
;; since it uses the old ada-spec-suffix variable
|
||||
;; This one needs to replace the standard one defined in find-file.el (with
|
||||
;; Emacs <= 20.4), since that one uses the old variable ada-spec-suffix
|
||||
(let ((old-construct
|
||||
(assoc "^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)" ff-special-constructs))
|
||||
(new-cdr
|
||||
(lambda ()
|
||||
(if (fboundp 'ff-get-file)
|
||||
(if (boundp 'fname)
|
||||
(set 'fname (ff-get-file
|
||||
ada-search-directories-internal
|
||||
(ada-make-filename-from-adaname
|
||||
(match-string 1))
|
||||
ada-spec-suffixes)))))))
|
||||
(if old-construct
|
||||
(setcdr old-construct new-cdr)
|
||||
(add-to-list 'ff-special-constructs
|
||||
(cons "^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)"
|
||||
new-cdr))))
|
||||
(mapc (lambda (pair)
|
||||
(add-to-list 'ff-special-constructs pair))
|
||||
`(
|
||||
;; Go to the parent package.
|
||||
(,(eval-when-compile
|
||||
(concat "^\\(private[ \t]\\)?[ \t]*package[ \t]+"
|
||||
"\\(body[ \t]+\\)?"
|
||||
"\\(\\(\\sw\\|[_.]\\)+\\)\\.\\(\\sw\\|_\\)+[ \t\n]+is"))
|
||||
. ,(lambda ()
|
||||
(ff-get-file
|
||||
ada-search-directories-internal
|
||||
(ada-make-filename-from-adaname (match-string 3))
|
||||
ada-spec-suffixes)))
|
||||
;; A "separate" clause.
|
||||
("^separate[ \t\n]*(\\(\\(\\sw\\|[_.]\\)+\\))"
|
||||
. ,(lambda ()
|
||||
(ff-get-file
|
||||
ada-search-directories-internal
|
||||
(ada-make-filename-from-adaname (match-string 1))
|
||||
ada-spec-suffixes)))
|
||||
;; A "with" clause.
|
||||
("^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)"
|
||||
. ,(lambda ()
|
||||
(ff-get-file
|
||||
ada-search-directories-internal
|
||||
(ada-make-filename-from-adaname (match-string 1))
|
||||
ada-spec-suffixes)))
|
||||
))
|
||||
|
||||
;; Support for outline-minor-mode
|
||||
(set (make-local-variable 'outline-regexp)
|
||||
|
|
|
|||
|
|
@ -134,12 +134,18 @@
|
|||
|
||||
(eval-and-compile
|
||||
;; These are used to collect the init forms from the subsequent
|
||||
;; `c-lang-defvar'. They are used to build the lambda in
|
||||
;; `c-make-init-lang-vars-fun' below.
|
||||
;; `c-lang-defvar' and `c-lang-setvar'. They are used to build the
|
||||
;; lambda in `c-make-init-lang-vars-fun' below, and to build `defvar's
|
||||
;; and `make-variable-buffer-local's in cc-engine and
|
||||
;; `make-local-variable's in `c-init-language-vars-for'.
|
||||
(defvar c-lang-variable-inits nil)
|
||||
(defvar c-lang-variable-inits-tail nil)
|
||||
(setq c-lang-variable-inits (list nil)
|
||||
c-lang-variable-inits-tail c-lang-variable-inits))
|
||||
c-lang-variable-inits-tail c-lang-variable-inits)
|
||||
(defvar c-emacs-variable-inits nil)
|
||||
(defvar c-emacs-variable-inits-tail nil)
|
||||
(setq c-emacs-variable-inits (list nil)
|
||||
c-emacs-variable-inits-tail c-emacs-variable-inits))
|
||||
|
||||
(defmacro c-lang-defvar (var val &optional doc)
|
||||
"Declares the buffer local variable VAR to get the value VAL. VAL is
|
||||
|
|
@ -172,6 +178,25 @@ the evaluated constant value at compile time."
|
|||
;; Return the symbol, like the other def* forms.
|
||||
`',var)
|
||||
|
||||
(defmacro c-lang-setvar (var val)
|
||||
"Causes the variable VAR to be made buffer local and to get set to the
|
||||
value VAL. VAL is evaluated and assigned at mode initialization. More
|
||||
precisely, VAL is evaluated and bound to VAR when the result from the
|
||||
macro `c-init-language-vars' is evaluated. VAR is typically a standard
|
||||
Emacs variable like `comment-start'.
|
||||
|
||||
`c-lang-const' is typically used in VAL to get the right value for the
|
||||
language being initialized, and such calls will be macro expanded to
|
||||
the evaluated constant value at compile time."
|
||||
(let ((elem (assq var (cdr c-emacs-variable-inits))))
|
||||
(if elem
|
||||
(setcdr elem (list val)) ; Maybe remove "list", sometime. 2006-07-19
|
||||
(setcdr c-emacs-variable-inits-tail (list (list var val)))
|
||||
(setq c-emacs-variable-inits-tail (cdr c-emacs-variable-inits-tail))))
|
||||
|
||||
;; Return the symbol, like the other def* forms.
|
||||
`',var)
|
||||
|
||||
(put 'c-lang-defvar 'lisp-indent-function 'defun)
|
||||
; (eval-after-load "edebug" ; 2006-07-09: def-edebug-spec is now in subr.el.
|
||||
; '
|
||||
|
|
@ -1103,8 +1128,7 @@ properly."
|
|||
;; In C we still default to the block comment style since line
|
||||
;; comments aren't entirely portable.
|
||||
c "/* ")
|
||||
(c-lang-defvar comment-start (c-lang-const comment-start)
|
||||
'dont-doc)
|
||||
(c-lang-setvar comment-start (c-lang-const comment-start))
|
||||
|
||||
(c-lang-defconst comment-end
|
||||
"String that ends comments inserted with M-; etc.
|
||||
|
|
@ -1117,8 +1141,7 @@ properly."
|
|||
(c-lang-const comment-start))
|
||||
(concat " " (c-lang-const c-block-comment-ender))
|
||||
""))
|
||||
(c-lang-defvar comment-end (c-lang-const comment-end)
|
||||
'dont-doc)
|
||||
(c-lang-setvar comment-end (c-lang-const comment-end))
|
||||
|
||||
(c-lang-defconst comment-start-skip
|
||||
"Regexp to match the start of a comment plus everything up to its body.
|
||||
|
|
@ -1134,8 +1157,7 @@ properly."
|
|||
(c-lang-const c-block-comment-starter)))
|
||||
"\\|")
|
||||
"\\)\\s *"))
|
||||
(c-lang-defvar comment-start-skip (c-lang-const comment-start-skip)
|
||||
'dont-doc)
|
||||
(c-lang-setvar comment-start-skip (c-lang-const comment-start-skip))
|
||||
|
||||
(c-lang-defconst c-syntactic-ws-start
|
||||
;; Regexp matching any sequence that can start syntactic whitespace.
|
||||
|
|
@ -2806,9 +2828,10 @@ way."
|
|||
;;; Wrap up the `c-lang-defvar' system.
|
||||
|
||||
;; Compile in the list of language variables that has been collected
|
||||
;; with the `c-lang-defvar' macro. Note that the first element is
|
||||
;; nil.
|
||||
;; with the `c-lang-defvar' and `c-lang-setvar' macros. Note that the
|
||||
;; first element of each is nil.
|
||||
(defconst c-lang-variable-inits (cc-eval-when-compile c-lang-variable-inits))
|
||||
(defconst c-emacs-variable-inits (cc-eval-when-compile c-emacs-variable-inits))
|
||||
|
||||
(defun c-make-init-lang-vars-fun (mode)
|
||||
"Create a function that initializes all the language dependent variables
|
||||
|
|
@ -2841,12 +2864,16 @@ accomplish that conveniently."
|
|||
;; `c-lang-const' will expand to the evaluated
|
||||
;; constant immediately in `cl-macroexpand-all'
|
||||
;; below.
|
||||
(mapcan
|
||||
(lambda (init)
|
||||
`(current-var ',(car init)
|
||||
,(car init) ,(cl-macroexpand-all
|
||||
(elt init 1))))
|
||||
(cdr c-lang-variable-inits))))
|
||||
(mapcan
|
||||
(lambda (init)
|
||||
`(current-var ',(car init)
|
||||
,(car init) ,(cl-macroexpand-all
|
||||
(elt init 1))))
|
||||
;; Note: The following `append' copies the
|
||||
;; first argument. That list is small, so
|
||||
;; this doesn't matter too much.
|
||||
(append (cdr c-emacs-variable-inits)
|
||||
(cdr c-lang-variable-inits)))))
|
||||
|
||||
;; This diagnostic message isn't useful for end
|
||||
;; users, so it's disabled.
|
||||
|
|
@ -2859,7 +2886,8 @@ accomplish that conveniently."
|
|||
|
||||
(require 'cc-langs)
|
||||
(setq source-eval t)
|
||||
(let ((init (cdr c-lang-variable-inits)))
|
||||
(let ((init (append (cdr c-emacs-variable-inits)
|
||||
(cdr c-lang-variable-inits))))
|
||||
(while init
|
||||
(setq current-var (caar init))
|
||||
(set (caar init) (eval (cadar init)))
|
||||
|
|
@ -2867,7 +2895,7 @@ accomplish that conveniently."
|
|||
|
||||
(error
|
||||
(if current-var
|
||||
(message "Eval error in the `c-lang-defvar' for `%s'%s: %S"
|
||||
(message "Eval error in the `c-lang-defvar' or `c-lang-setvar' for `%s'%s: %S"
|
||||
current-var
|
||||
(if source-eval
|
||||
(format "\
|
||||
|
|
@ -2883,7 +2911,8 @@ accomplish that conveniently."
|
|||
`(lambda ()
|
||||
(require 'cc-langs)
|
||||
(let ((c-buffer-is-cc-mode ',mode)
|
||||
(init (cdr c-lang-variable-inits))
|
||||
(init (append (cdr c-emacs-variable-inits)
|
||||
(cdr c-lang-variable-inits)))
|
||||
current-var)
|
||||
(condition-case err
|
||||
|
||||
|
|
@ -2895,7 +2924,7 @@ accomplish that conveniently."
|
|||
(error
|
||||
(if current-var
|
||||
(message
|
||||
"Eval error in the `c-lang-defvar' for `%s' (source eval): %S"
|
||||
"Eval error in the `c-lang-defvar' or `c-lang-setver' for `%s' (source eval): %S"
|
||||
current-var err)
|
||||
(signal (car err) (cdr err)))))))
|
||||
))
|
||||
|
|
|
|||
|
|
@ -153,12 +153,21 @@
|
|||
(defun c-leave-cc-mode-mode ()
|
||||
(setq c-buffer-is-cc-mode nil))
|
||||
|
||||
;; Make the `c-lang-setvar' variables buffer local in the current buffer.
|
||||
;; These are typically standard emacs variables such as `comment-start'.
|
||||
(defmacro c-make-emacs-variables-local ()
|
||||
`(progn
|
||||
,@(mapcan (lambda (init)
|
||||
`((make-local-variable ',(car init))))
|
||||
(cdr c-emacs-variable-inits))))
|
||||
|
||||
(defun c-init-language-vars-for (mode)
|
||||
"Initialize the language variables for one of the language modes
|
||||
directly supported by CC Mode. This can be used instead of the
|
||||
`c-init-language-vars' macro if the language you want to use is one of
|
||||
those, rather than a derived language defined through the language
|
||||
variable system (see \"cc-langs.el\")."
|
||||
(c-make-emacs-variables-local)
|
||||
(cond ((eq mode 'c-mode) (c-init-language-vars c-mode))
|
||||
((eq mode 'c++-mode) (c-init-language-vars c++-mode))
|
||||
((eq mode 'objc-mode) (c-init-language-vars objc-mode))
|
||||
|
|
|
|||
|
|
@ -226,14 +226,19 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
|
|||
;; I have no idea what this first line is supposed to match, but it
|
||||
;; makes things ambiguous with output such as "foo:344:50:blabla" since
|
||||
;; the "foo" part can match this first line (in which case the file
|
||||
;; name as "344"). To avoid this, we disallow filenames exclusively
|
||||
;; composed of digits. --Stef
|
||||
;; name as "344"). To avoid this, the second line disallows filenames
|
||||
;; exclusively composed of digits. --Stef
|
||||
;; Similarly, we get lots of false positives with messages including
|
||||
;; times of the form "HH:MM:SS" where MM is taken as a line number, so
|
||||
;; the last line tries to rule out message where the info after the
|
||||
;; line number starts with "SS". --Stef
|
||||
"^\\(?:[[:alpha:]][-[:alnum:].]+: ?\\)?\
|
||||
\\([0-9]*[^0-9\n].*?\\): ?\
|
||||
\\([0-9]+\\)\\(?:\\([.:]\\)\\([0-9]+\\)\\)?\
|
||||
\\(?:-\\([0-9]+\\)?\\(?:\\3\\([0-9]+\\)\\)?\\)?:\
|
||||
\\(?: *\\(\\(?:Future\\|Runtime\\)?[Ww]arning\\|W:\\)\\|\
|
||||
*\\([Ii]nfo\\(?:\\>\\|rmationa?l?\\)\\|I:\\|instantiated from\\)\\)?"
|
||||
*\\([Ii]nfo\\(?:\\>\\|rmationa?l?\\)\\|I:\\|instantiated from\\)\\|\
|
||||
\[0-9]?\\(?:[^0-9\n]\\|$\\)\\|[0-9][0-9][0-9]\\)"
|
||||
1 (2 . 5) (4 . 6) (7 . 8))
|
||||
|
||||
(lcc
|
||||
|
|
@ -405,10 +410,7 @@ you may also want to change `compilation-page-delimiter'.")
|
|||
"Value of `page-delimiter' in Compilation mode.")
|
||||
|
||||
(defvar compilation-mode-font-lock-keywords
|
||||
'(;; Don't highlight this as a compilation message.
|
||||
("^Compilation started at.*"
|
||||
(0 '(face nil message nil help-echo nil mouse-face nil) t))
|
||||
;; configure output lines.
|
||||
'(;; configure output lines.
|
||||
("^[Cc]hecking \\(?:[Ff]or \\|[Ii]f \\|[Ww]hether \\(?:to \\)?\\)?\\(.+\\)\\.\\.\\. *\\(?:(cached) *\\)?\\(\\(yes\\(?: .+\\)?\\)\\|no\\|\\(.*\\)\\)$"
|
||||
(1 font-lock-variable-name-face)
|
||||
(2 (compilation-face '(4 . 3))))
|
||||
|
|
@ -419,7 +421,7 @@ you may also want to change `compilation-page-delimiter'.")
|
|||
("^Compilation \\(finished\\).*"
|
||||
(0 '(face nil message nil help-echo nil mouse-face nil) t)
|
||||
(1 compilation-info-face))
|
||||
("^Compilation \\(exited abnormally\\|interrupt\\|killed\\|terminated\\)\\(?:.*with code \\([0-9]+\\)\\)?.*"
|
||||
("^Compilation \\(exited abnormally\\|interrupt\\|killed\\|terminated\\|segmentation fault\\)\\(?:.*with code \\([0-9]+\\)\\)?.*"
|
||||
(0 '(face nil message nil help-echo nil mouse-face nil) t)
|
||||
(1 compilation-error-face)
|
||||
(2 compilation-error-face nil t)))
|
||||
|
|
@ -1823,28 +1825,44 @@ Pop up the buffer containing MARKER and scroll to MARKER if we ask the user."
|
|||
(find-file-noselect name))
|
||||
fmts (cdr fmts)))
|
||||
(setq dirs (cdr dirs)))
|
||||
(or buffer
|
||||
;; The file doesn't exist. Ask the user where to find it.
|
||||
(save-excursion ;This save-excursion is probably not right.
|
||||
(let ((pop-up-windows t))
|
||||
(compilation-set-window (display-buffer (marker-buffer marker))
|
||||
marker)
|
||||
(let ((name (expand-file-name
|
||||
(read-file-name
|
||||
(format "Find this %s in (default %s): "
|
||||
compilation-error filename)
|
||||
spec-dir filename t))))
|
||||
(if (file-directory-p name)
|
||||
(setq name (expand-file-name filename name)))
|
||||
(setq buffer (and (file-exists-p name)
|
||||
(find-file-noselect name)))))))
|
||||
(while (null buffer) ;Repeat until the user selects an existing file.
|
||||
;; The file doesn't exist. Ask the user where to find it.
|
||||
(save-excursion ;This save-excursion is probably not right.
|
||||
(let ((pop-up-windows t))
|
||||
(compilation-set-window (display-buffer (marker-buffer marker))
|
||||
marker)
|
||||
(let* ((name (read-file-name
|
||||
(format "Find this %s in (default %s): "
|
||||
compilation-error filename)
|
||||
spec-dir filename t nil
|
||||
;; Try to make sure the user can only select
|
||||
;; a valid answer. This predicate may be ignored,
|
||||
;; tho, so we still have to double-check afterwards.
|
||||
;; TODO: We should probably fix read-file-name so
|
||||
;; that it never ignores this predicate, even when
|
||||
;; using popup dialog boxes.
|
||||
(lambda (name)
|
||||
(if (file-directory-p name)
|
||||
(setq name (expand-file-name filename name)))
|
||||
(file-exists-p name))))
|
||||
(origname name))
|
||||
(cond
|
||||
((not (file-exists-p name))
|
||||
(message "Cannot find file `%s'" name)
|
||||
(ding) (sit-for 2))
|
||||
((and (file-directory-p name)
|
||||
(not (file-exists-p
|
||||
(setq name (expand-file-name filename name)))))
|
||||
(message "No `%s' in directory %s" filename origname)
|
||||
(ding) (sit-for 2))
|
||||
(t
|
||||
(setq buffer (find-file-noselect name))))))))
|
||||
;; Make intangible overlays tangible.
|
||||
;; This is very weird: it's not even clear which is the current buffer,
|
||||
;; so the code below can't be expected to DTRT here. --Stef
|
||||
(mapcar (function (lambda (ov)
|
||||
(when (overlay-get ov 'intangible)
|
||||
(overlay-put ov 'intangible nil))))
|
||||
(overlays-in (point-min) (point-max)))
|
||||
;; This is weird: it's not even clear which is the current buffer,
|
||||
;; so the code below can't be expected to DTRT here. -- Stef
|
||||
(dolist (ov (overlays-in (point-min) (point-max)))
|
||||
(when (overlay-get ov 'intangible)
|
||||
(overlay-put ov 'intangible nil)))
|
||||
buffer))
|
||||
|
||||
(defun compilation-get-file-structure (file &optional fmt)
|
||||
|
|
|
|||
|
|
@ -1767,6 +1767,7 @@ it is a routine."
|
|||
An error is raised if not in a comment."
|
||||
(interactive)
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
(let* ((comment (delphi-current-token))
|
||||
(comment-kind (delphi-token-kind comment)))
|
||||
(if (not (delphi-is comment-kind delphi-comments))
|
||||
|
|
@ -1845,7 +1846,7 @@ An error is raised if not in a comment."
|
|||
;; React to the entire fill change as a whole.
|
||||
(delphi-progress-start)
|
||||
(delphi-parse-region comment-start comment-end)
|
||||
(delphi-progress-done))))))
|
||||
(delphi-progress-done)))))))
|
||||
|
||||
(defun delphi-new-comment-line ()
|
||||
"If in a // comment, does a newline, indented such that one is still in the
|
||||
|
|
|
|||
|
|
@ -434,7 +434,8 @@ With arg, use separate IO iff arg is positive."
|
|||
(make-local-variable 'gdb-define-alist)
|
||||
(gdb-create-define-alist)
|
||||
(add-hook 'after-save-hook 'gdb-create-define-alist nil t))))))
|
||||
(gdb-force-mode-line-update "ready"))
|
||||
(gdb-force-mode-line-update
|
||||
(propertize "ready" 'face font-lock-variable-name-face)))
|
||||
|
||||
(defun gdb-find-watch-expression ()
|
||||
(let* ((var (nth (- (line-number-at-pos (point)) 2) gdb-var-list))
|
||||
|
|
@ -1209,7 +1210,8 @@ This filter may simply queue input for a later time."
|
|||
(defun gdb-resync()
|
||||
(setq gdb-flush-pending-output t)
|
||||
(setq gud-running nil)
|
||||
(gdb-force-mode-line-update "stopped")
|
||||
(gdb-force-mode-line-update
|
||||
(propertize "stopped"'face font-lock-warning-face))
|
||||
(setq gdb-output-sink 'user)
|
||||
(setq gdb-input-queue nil)
|
||||
(setq gdb-pending-triggers nil)
|
||||
|
|
@ -1249,7 +1251,8 @@ happens to be in effect."
|
|||
"An annotation handler for `prompt'.
|
||||
This sends the next command (if any) to gdb."
|
||||
(when gdb-first-prompt
|
||||
(gdb-force-mode-line-update "initializing...")
|
||||
(gdb-force-mode-line-update
|
||||
(propertize "initializing..." 'face font-lock-variable-name-face))
|
||||
(gdb-init-1)
|
||||
(setq gdb-first-prompt nil))
|
||||
(let ((sink gdb-output-sink))
|
||||
|
|
@ -1287,7 +1290,8 @@ not GDB."
|
|||
(progn
|
||||
(setq gud-running t)
|
||||
(setq gdb-inferior-status "running")
|
||||
(gdb-force-mode-line-update gdb-inferior-status)
|
||||
(gdb-force-mode-line-update
|
||||
(propertize gdb-inferior-status 'face font-lock-type-face))
|
||||
(gdb-remove-text-properties)
|
||||
(setq gud-old-arrow gud-overlay-arrow-position)
|
||||
(setq gud-overlay-arrow-position nil)
|
||||
|
|
@ -1300,7 +1304,8 @@ not GDB."
|
|||
|
||||
(defun gdb-signal (ignored)
|
||||
(setq gdb-inferior-status "signal")
|
||||
(gdb-force-mode-line-update gdb-inferior-status)
|
||||
(gdb-force-mode-line-update
|
||||
(propertize gdb-inferior-status 'face font-lock-warning-face))
|
||||
(gdb-stopping ignored))
|
||||
|
||||
(defun gdb-stopping (ignored)
|
||||
|
|
@ -1327,7 +1332,8 @@ directives."
|
|||
(setq gdb-overlay-arrow-position nil)
|
||||
(setq gud-old-arrow nil)
|
||||
(setq gdb-inferior-status "exited")
|
||||
(gdb-force-mode-line-update gdb-inferior-status)
|
||||
(gdb-force-mode-line-update
|
||||
(propertize gdb-inferior-status 'face font-lock-warning-face))
|
||||
(gdb-stopping ignored))
|
||||
|
||||
(defun gdb-signalled (ignored)
|
||||
|
|
@ -1375,7 +1381,8 @@ sink to `user' in `gdb-stopping', that is fine."
|
|||
'delete)))))
|
||||
(unless (member gdb-inferior-status '("exited" "signal"))
|
||||
(setq gdb-inferior-status "stopped")
|
||||
(gdb-force-mode-line-update gdb-inferior-status))
|
||||
(gdb-force-mode-line-update
|
||||
(propertize gdb-inferior-status 'face font-lock-warning-face)))
|
||||
(let ((sink gdb-output-sink))
|
||||
(cond
|
||||
((eq sink 'inferior)
|
||||
|
|
@ -3268,7 +3275,8 @@ is set in them."
|
|||
(make-local-variable 'gdb-define-alist)
|
||||
(gdb-create-define-alist)
|
||||
(add-hook 'after-save-hook 'gdb-create-define-alist nil t)))))
|
||||
(gdb-force-mode-line-update "ready"))
|
||||
(gdb-force-mode-line-update
|
||||
(propertize "ready" 'face font-lock-variable-name-face)))
|
||||
|
||||
; Uses "-var-list-children --all-values". Needs GDB 6.1 onwards.
|
||||
(defun gdb-var-list-children-1 (varnum)
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ The following place holders should be present in the string:
|
|||
:type 'alist
|
||||
:group 'grep)
|
||||
|
||||
(defcustom grep-find-ignored-directories '("CVS" ".hg" "{arch}")
|
||||
(defcustom grep-find-ignored-directories '("CVS" ".svn" "{arch}" ".hg" "_darcs")
|
||||
"*List of names of sub-directories which `rgrep' shall not recurse into."
|
||||
:type '(repeat string)
|
||||
:group 'grep)
|
||||
|
|
|
|||
|
|
@ -4384,7 +4384,7 @@ idlwave-shell-electric-debug-mode-map)
|
|||
["Edit Default Cmd" idlwave-shell-edit-default-command-line t])
|
||||
("Breakpoints"
|
||||
["Set Breakpoint" idlwave-shell-break-here
|
||||
:keys "C-c C-d C-c" :active (eq major-mode 'idlwave-mode)]
|
||||
:keys "C-c C-d C-b" :active (eq major-mode 'idlwave-mode)]
|
||||
("Set Special Breakpoint"
|
||||
["Set After Count Breakpoint"
|
||||
(progn
|
||||
|
|
|
|||
|
|
@ -74,25 +74,55 @@
|
|||
"Syntax table used while in `ld-script-mode'.")
|
||||
|
||||
;; Font lock keywords
|
||||
;; (The section number comes from ld's info.)
|
||||
(defvar ld-script-keywords
|
||||
'("ENTRY" "INCLUDE" "INPUT" "GROUP"
|
||||
"OUTPUT" "SEARCH_DIR" "STARTUP"
|
||||
'(
|
||||
;; 3.4.1 Setting the Entry Point
|
||||
"ENTRY"
|
||||
;; 3.4.2 Commands Dealing with Files
|
||||
"INCLUDE" "INPUT" "GROUP" "AS_NEEDED" "OUTPUT" "SEARCH_DIR" "STARTUP"
|
||||
;; 3.4.3 Commands Dealing with Object File Formats
|
||||
"OUTPUT_FORMAT" "TARGET"
|
||||
"ASSERT" "EXTERN" "FORCE_COMMON_ALLOCATION" "NOCROSSREFS" "OUTPUT_ARCH"
|
||||
;; 3.4.3 Other Linker Script Commands
|
||||
"ASSERT" "EXTERN" "FORCE_COMMON_ALLOCATION"
|
||||
"INHIBIT_COMMON_ALLOCATION" "NOCROSSREFS" "OUTPUT_ARCH"
|
||||
;; 3.5.2 PROVIDE
|
||||
"PROVIDE"
|
||||
"SECTIONS" "SORT" "COMMON" "KEEP"
|
||||
"BYTE" "SHORT" "LONG" "QUAD" "SQAD"
|
||||
"FILL"
|
||||
"CREATE_OBJECT_SYMBOLS"
|
||||
"CONSTRUCTORS"
|
||||
;; 3.5.3 PROVIDE_HIDDEN
|
||||
"PROVIDE_HIDEN"
|
||||
;; 3.6 SECTIONS Command
|
||||
"SECTIONS"
|
||||
;; 3.6.4.2 Input Section Wildcard Patterns
|
||||
"SORT" "SORT_BY_NAME" "SORT_BY_ALIGNMENT"
|
||||
;; 3.6.4.3 Input Section for Common Symbols
|
||||
"COMMON"
|
||||
;; 3.6.4.4 Input Section and Garbage Collection
|
||||
"KEEP"
|
||||
;; 3.6.5 Output Section Data
|
||||
"BYTE" "SHORT" "LONG" "QUAD" "SQUAD" "FILL"
|
||||
;; 3.6.6 Output Section Keywords
|
||||
"CREATE_OBJECT_SYMBOLS" "CONSTRUCTORS"
|
||||
"__CTOR_LIST__" "__CTOR_END__" "__DTOR_LIST__" "__DTOR_END__"
|
||||
;; 3.6.7 Output Section Discarding
|
||||
;; See `ld-script-font-lock-keywords'
|
||||
;; 3.6.8.1 Output Section Type
|
||||
"NOLOAD" "DSECT" "COPY" "INFO" "OVERLAY"
|
||||
;; 3.6.8.2 Output Section LMA
|
||||
"AT"
|
||||
;; 3.6.8.4 Forced Input Alignment
|
||||
"SUBALIGN"
|
||||
;; 3.6.8.6 Output Section Phdr
|
||||
":PHDR"
|
||||
;; 3.7 MEMORY Command
|
||||
"MEMORY"
|
||||
;; 3.8 PHDRS Command
|
||||
"PHDRS" "FILEHDR" "FLAGS"
|
||||
"PT_NULL" "PT_LOAD" "PT_DYNAMIC" "PT_INTERP" "PT_NONE" "PT_SHLIB" "PT_PHDR"
|
||||
;; 3.9 VERSION Command
|
||||
"VERSION")
|
||||
"Keywords used of GNU ld script.")
|
||||
|
||||
;; 3.10.8 Builtin Functions
|
||||
(defvar ld-script-builtins
|
||||
'("ABSOLUTE"
|
||||
"ADDR"
|
||||
|
|
@ -102,12 +132,12 @@
|
|||
"DATA_SEGMENT_END"
|
||||
"DATA_SEGMENT_RELRO_END"
|
||||
"DEFINED"
|
||||
"LENGTH"
|
||||
"LENGTH" "len" "l"
|
||||
"LOADADDR"
|
||||
"MAX"
|
||||
"MIN"
|
||||
"NEXT"
|
||||
"ORIGIN"
|
||||
"ORIGIN" "org" "o"
|
||||
"SEGMENT_START"
|
||||
"SIZEOF"
|
||||
"SIZEOF_HEADERS"
|
||||
|
|
@ -120,7 +150,10 @@
|
|||
1 font-lock-keyword-face)
|
||||
(,(regexp-opt ld-script-builtins 'words)
|
||||
1 font-lock-builtin-face)
|
||||
("/DISCARD/" . font-lock-warning-face)
|
||||
;; 3.6.7 Output Section Discarding
|
||||
;; 3.6.4.1 Input Section Basics
|
||||
;; 3.6.8.6 Output Section Phdr
|
||||
("/DISCARD/\\|EXCLUDE_FILE\\|:NONE" . font-lock-warning-face)
|
||||
("\\W\\(\\.\\)\\W" 1 ld-script-location-counter-face)
|
||||
)
|
||||
cpp-font-lock-keywords)
|
||||
|
|
|
|||
|
|
@ -980,47 +980,55 @@ Point is at the beginning of the next line."
|
|||
(re-search-forward sh-here-doc-re limit t))
|
||||
|
||||
(defun sh-quoted-subshell (limit)
|
||||
"Search for a subshell embedded in a string. Find all the unescaped
|
||||
\" characters within said subshell, remembering that subshells can nest."
|
||||
(if (re-search-forward "\"\\(?:.\\|\n\\)*?\\(\\$(\\|`\\)" limit t)
|
||||
;; bingo we have a $( or a ` inside a ""
|
||||
(let ((char (char-after (point)))
|
||||
(continue t)
|
||||
(pos (point))
|
||||
(data nil) ;; value to put into match-data (and return)
|
||||
(last nil) ;; last char seen
|
||||
(bq (equal (match-string 1) "`")) ;; ` state flip-flop
|
||||
(seen nil) ;; list of important positions
|
||||
(nest 1)) ;; subshell nesting level
|
||||
(while (and continue char (<= pos limit))
|
||||
;; unescaped " inside a $( ... ) construct.
|
||||
;; state machine time...
|
||||
;; \ => ignore next char;
|
||||
;; ` => increase or decrease nesting level based on bq flag
|
||||
;; ) [where nesting > 0] => decrease nesting
|
||||
;; ( [where nesting > 0] => increase nesting
|
||||
;; ( [preceeded by $ ] => increase nesting
|
||||
;; " [nesting <= 0 ] => terminate, we're done.
|
||||
;; " [nesting > 0 ] => remember this, it's not a proper "
|
||||
(if (eq ?\\ last) nil
|
||||
(if (eq ?\` char) (setq nest (+ nest (if bq -1 1)) bq (not bq))
|
||||
(if (and (> nest 0) (eq ?\) char)) (setq nest (1- nest))
|
||||
(if (and (eq ?$ last) (eq ?\( char)) (setq nest (1+ nest))
|
||||
(if (and (> nest 0) (eq ?\( char)) (setq nest (1+ nest))
|
||||
(if (eq char ?\")
|
||||
(if (>= 0 nest) (setq continue nil)
|
||||
(setq seen (cons pos seen)) ) ))))))
|
||||
;;(message "POS: %d [%d]" pos nest)
|
||||
(setq last char
|
||||
pos (1+ pos)
|
||||
char (char-after pos)) )
|
||||
(when seen
|
||||
;;(message "SEEN: %S" seen)
|
||||
(setq data (list (current-buffer)))
|
||||
(mapc (lambda (P)
|
||||
(setq data (cons P (cons (1+ P) data)) ) ) seen)
|
||||
(store-match-data data))
|
||||
data) ))
|
||||
"Search for a subshell embedded in a string.
|
||||
Find all the unescaped \" characters within said subshell, remembering that
|
||||
subshells can nest."
|
||||
;; FIXME: This can (and often does) match multiple lines, yet it makes no
|
||||
;; effort to handle multiline cases correctly, so it ends up being
|
||||
;; rather flakey.
|
||||
(when (re-search-forward "\"\\(?:\\(?:.\\|\n\\)*?[^\\]\\(?:\\\\\\\\\\)*\\)??\\(\\$(\\|`\\)" limit t)
|
||||
;; bingo we have a $( or a ` inside a ""
|
||||
(let ((char (char-after (point)))
|
||||
(continue t)
|
||||
(pos (point))
|
||||
(data nil) ;; value to put into match-data (and return)
|
||||
(last nil) ;; last char seen
|
||||
(bq (equal (match-string 1) "`")) ;; ` state flip-flop
|
||||
(seen nil) ;; list of important positions
|
||||
(nest 1)) ;; subshell nesting level
|
||||
(while (and continue char (<= pos limit))
|
||||
;; unescaped " inside a $( ... ) construct.
|
||||
;; state machine time...
|
||||
;; \ => ignore next char;
|
||||
;; ` => increase or decrease nesting level based on bq flag
|
||||
;; ) [where nesting > 0] => decrease nesting
|
||||
;; ( [where nesting > 0] => increase nesting
|
||||
;; ( [preceeded by $ ] => increase nesting
|
||||
;; " [nesting <= 0 ] => terminate, we're done.
|
||||
;; " [nesting > 0 ] => remember this, it's not a proper "
|
||||
;; FIXME: don't count parens that appear within quotes.
|
||||
(cond
|
||||
((eq ?\\ last) nil)
|
||||
((eq ?\` char) (setq nest (+ nest (if bq -1 1)) bq (not bq)))
|
||||
((and (> nest 0) (eq ?\) char)) (setq nest (1- nest)))
|
||||
((and (eq ?$ last) (eq ?\( char)) (setq nest (1+ nest)))
|
||||
((and (> nest 0) (eq ?\( char)) (setq nest (1+ nest)))
|
||||
((eq char ?\")
|
||||
(if (>= 0 nest) (setq continue nil) (push pos seen))))
|
||||
;;(message "POS: %d [%d]" pos nest)
|
||||
(setq last char
|
||||
pos (1+ pos)
|
||||
char (char-after pos)) )
|
||||
;; FIXME: why construct a costly match data to pass to
|
||||
;; sh-apply-quoted-subshell rather than apply the highlight
|
||||
;; directly here? -- Stef
|
||||
(when seen
|
||||
;;(message "SEEN: %S" seen)
|
||||
(setq data (list (current-buffer)))
|
||||
(dolist(P seen)
|
||||
(setq data (cons P (cons (1+ P) data))))
|
||||
(store-match-data data))
|
||||
data) ))
|
||||
|
||||
(defun sh-is-quoted-p (pos)
|
||||
(and (eq (char-before pos) ?\\)
|
||||
|
|
|
|||
|
|
@ -262,11 +262,11 @@ It calls them sequentially, and if any returns non-nil,
|
|||
|
||||
(defun which-function ()
|
||||
"Return current function name based on point.
|
||||
Uses `which-function-functions', `imenu--index-alist'
|
||||
Uses `which-func-functions', `imenu--index-alist'
|
||||
or `add-log-current-defun-function'.
|
||||
If no function name is found, return nil."
|
||||
(let ((name
|
||||
;; Try the `which-function-functions' functions first.
|
||||
;; Try the `which-func-functions' functions first.
|
||||
(run-hook-with-args-until-success 'which-func-functions)))
|
||||
|
||||
;; If Imenu is loaded, try to make an index alist with it.
|
||||
|
|
|
|||
|
|
@ -1283,8 +1283,8 @@ N (match-string N) (where N is a string of digits)
|
|||
# replace-count
|
||||
|
||||
Note that these symbols must be preceeded by a backslash in order to
|
||||
type them."
|
||||
(while n
|
||||
type them using Lisp syntax."
|
||||
(while (consp n)
|
||||
(cond
|
||||
((consp (car n))
|
||||
(replace-match-string-symbols (car n))) ;Process sub-list
|
||||
|
|
|
|||
|
|
@ -254,14 +254,16 @@ this variable usefully is to set it while building and dumping Emacs."
|
|||
:group 'mail)
|
||||
|
||||
(defcustom user-mail-address (if command-line-processed
|
||||
(concat (user-login-name) "@"
|
||||
(or mail-host-address
|
||||
(system-name)))
|
||||
(or (getenv "EMAIL")
|
||||
(concat (user-login-name) "@"
|
||||
(or mail-host-address
|
||||
(system-name))))
|
||||
;; Empty string means "not set yet".
|
||||
"")
|
||||
"*Full mailing address of this user.
|
||||
This is initialized based on `mail-host-address',
|
||||
after your init file is read, in case it sets `mail-host-address'."
|
||||
This is initialized with environment variable `EMAIL' or, as a
|
||||
fallback, using `mail-host-address'. This is done after your
|
||||
init file is read, in case it sets `mail-host-address'."
|
||||
:type 'string
|
||||
:group 'mail)
|
||||
|
||||
|
|
@ -984,9 +986,10 @@ opening the first frame (e.g. open a connection to an X server).")
|
|||
|
||||
;; Do this here in case the init file sets mail-host-address.
|
||||
(if (equal user-mail-address "")
|
||||
(setq user-mail-address (concat (user-login-name) "@"
|
||||
(or mail-host-address
|
||||
(system-name)))))
|
||||
(setq user-mail-address (or (getenv "EMAIL")
|
||||
(concat (user-login-name) "@"
|
||||
(or mail-host-address
|
||||
(system-name))))))
|
||||
|
||||
;; Originally face attributes were specified via
|
||||
;; `font-lock-face-attributes'. Users then changed the default
|
||||
|
|
|
|||
48
lisp/subr.el
48
lisp/subr.el
|
|
@ -108,6 +108,9 @@ change the list."
|
|||
(declare (indent 1) (debug t))
|
||||
(cons 'if (cons cond (cons nil body))))
|
||||
|
||||
(defvar --dolist-tail-- nil
|
||||
"Temporary variable used in `dolist' expansion.")
|
||||
|
||||
(defmacro dolist (spec &rest body)
|
||||
"Loop over a list.
|
||||
Evaluate BODY with VAR bound to each car from LIST, in turn.
|
||||
|
|
@ -115,16 +118,22 @@ Then evaluate RESULT to get return value, default nil.
|
|||
|
||||
\(fn (VAR LIST [RESULT]) BODY...)"
|
||||
(declare (indent 1) (debug ((symbolp form &optional form) body)))
|
||||
(let ((temp (make-symbol "--dolist-temp--")))
|
||||
;; It would be cleaner to create an uninterned symbol,
|
||||
;; but that uses a lot more space when many functions in many files
|
||||
;; use dolist.
|
||||
(let ((temp '--dolist-tail--))
|
||||
`(let ((,temp ,(nth 1 spec))
|
||||
,(car spec))
|
||||
(while ,temp
|
||||
(setq ,(car spec) (car ,temp))
|
||||
(setq ,temp (cdr ,temp))
|
||||
,@body)
|
||||
,@body
|
||||
(setq ,temp (cdr ,temp)))
|
||||
,@(if (cdr (cdr spec))
|
||||
`((setq ,(car spec) nil) ,@(cdr (cdr spec)))))))
|
||||
|
||||
(defvar --dotimes-limit-- nil
|
||||
"Temporary variable used in `dotimes' expansion.")
|
||||
|
||||
(defmacro dotimes (spec &rest body)
|
||||
"Loop a certain number of times.
|
||||
Evaluate BODY with VAR bound to successive integers running from 0,
|
||||
|
|
@ -133,7 +142,10 @@ the return value (nil if RESULT is omitted).
|
|||
|
||||
\(fn (VAR COUNT [RESULT]) BODY...)"
|
||||
(declare (indent 1) (debug dolist))
|
||||
(let ((temp (make-symbol "--dotimes-temp--"))
|
||||
;; It would be cleaner to create an uninterned symbol,
|
||||
;; but that uses a lot more space when many functions in many files
|
||||
;; use dotimes.
|
||||
(let ((temp '--dotimes-limit--)
|
||||
(start 0)
|
||||
(end (nth 1 spec)))
|
||||
`(let ((,temp ,end)
|
||||
|
|
@ -1721,22 +1733,13 @@ floating point support.
|
|||
(when (or obsolete (numberp nodisp))
|
||||
(setq seconds (+ seconds (* 1e-3 nodisp)))
|
||||
(setq nodisp obsolete))
|
||||
(unless nodisp
|
||||
(redisplay))
|
||||
(or (<= seconds 0)
|
||||
(let ((timer (timer-create))
|
||||
(echo-keystrokes 0))
|
||||
(if (catch 'sit-for-timeout
|
||||
(timer-set-time timer (timer-relative-time
|
||||
(current-time) seconds))
|
||||
(timer-set-function timer 'with-timeout-handler
|
||||
'(sit-for-timeout))
|
||||
(timer-activate timer)
|
||||
(push (read-event) unread-command-events)
|
||||
nil)
|
||||
t
|
||||
(cancel-timer timer)
|
||||
nil))))
|
||||
(if noninteractive
|
||||
(progn (sleep-for seconds) t)
|
||||
(unless nodisp (redisplay))
|
||||
(or (<= seconds 0)
|
||||
(let ((read (read-event nil nil seconds)))
|
||||
(or (null read)
|
||||
(progn (push read unread-command-events) nil))))))
|
||||
|
||||
;;; Atomic change groups.
|
||||
|
||||
|
|
@ -2547,8 +2550,9 @@ STRING should be given if the last search was by `string-match' on STRING."
|
|||
(defun looking-back (regexp &optional limit greedy)
|
||||
"Return non-nil if text before point matches regular expression REGEXP.
|
||||
Like `looking-at' except matches before point, and is slower.
|
||||
LIMIT if non-nil speeds up the search by specifying how far back the
|
||||
match can start.
|
||||
LIMIT if non-nil speeds up the search by specifying a minimum
|
||||
starting position, to avoid checking matches that would start
|
||||
before LIMIT.
|
||||
|
||||
If GREEDY is non-nil, extend the match backwards as far as possible,
|
||||
stopping when a single additional previous character cannot be part
|
||||
|
|
|
|||
|
|
@ -50,10 +50,10 @@ The variable `tab-width' controls the spacing of tab stops."
|
|||
(delete-region tab-beg (point))
|
||||
(indent-to column))))))
|
||||
|
||||
(defvar tabify-regexp "[ \t][ \t]+"
|
||||
(defvar tabify-regexp " [ \t]+"
|
||||
"Regexp matching whitespace that tabify should consider.
|
||||
Usually this will be \"[ \\t][ \\t]+\" to match two or more spaces or tabs.
|
||||
\"^[ \\t]+\" is also useful, for tabifying only initial whitespace.")
|
||||
Usually this will be \" [ \\t]+\" to match two or more spaces or tabs.
|
||||
\"^\\t* [ \\t]+\" is also useful, for tabifying only initial whitespace.")
|
||||
|
||||
;;;###autoload
|
||||
(defun tabify (start end)
|
||||
|
|
@ -72,13 +72,24 @@ The variable `tab-width' controls the spacing of tab stops."
|
|||
(beginning-of-line)
|
||||
(narrow-to-region (point) end)
|
||||
(goto-char start)
|
||||
(while (re-search-forward tabify-regexp nil t)
|
||||
(let ((column (current-column))
|
||||
(indent-tabs-mode t))
|
||||
(delete-region (match-beginning 0) (point))
|
||||
(indent-to column))))))
|
||||
(let ((indent-tabs-mode t))
|
||||
(while (re-search-forward tabify-regexp nil t)
|
||||
;; The region between (match-beginning 0) and (match-end 0) is just
|
||||
;; spacing which we want to adjust to use TABs where possible.
|
||||
(let ((end-col (current-column))
|
||||
(beg-col (save-excursion (goto-char (match-beginning 0))
|
||||
(skip-chars-forward "\t")
|
||||
(current-column))))
|
||||
(if (= (/ end-col tab-width) (/ beg-col tab-width))
|
||||
;; The spacing (after some leading TABs which we wouldn't
|
||||
;; want to touch anyway) does not straddle a TAB boundary,
|
||||
;; so it neither contains a TAB, nor will we be able to use
|
||||
;; a TAB here anyway: there's nothing to do.
|
||||
nil
|
||||
(delete-region (match-beginning 0) (point))
|
||||
(indent-to end-col))))))))
|
||||
|
||||
(provide 'tabify)
|
||||
|
||||
;;; arch-tag: c83893b1-e0cc-4e57-8a09-73fd03466416
|
||||
;; arch-tag: c83893b1-e0cc-4e57-8a09-73fd03466416
|
||||
;;; tabify.el ends here
|
||||
|
|
|
|||
|
|
@ -160,13 +160,21 @@
|
|||
(define-key xterm-function-map "\e[29~" [print])
|
||||
|
||||
;; These keys are available in xterm starting from version 214
|
||||
;; if the modifyOtherKeys resource is set.
|
||||
(define-key xterm-function-map "\e[27;5;9~" [(control ?\t)])
|
||||
;; if the modifyOtherKeys resource is set to 1.
|
||||
(define-key xterm-function-map "\e[27;5;9~" [C-tab])
|
||||
(define-key xterm-function-map "\e[27;5;13~" [C-return])
|
||||
(define-key xterm-function-map "\e[27;5;44~" [(control ?\,)])
|
||||
(define-key xterm-function-map "\e[27;5;46~" [(control ?\.)])
|
||||
(define-key xterm-function-map "\e[27;5;47~" [(control ?\/)])
|
||||
(define-key xterm-function-map "\e[27;5;92~" [(control ?\\)])
|
||||
(define-key xterm-function-map "\e[27;5;44~" [?\C-,])
|
||||
(define-key xterm-function-map "\e[27;5;46~" [?\C-.])
|
||||
(define-key xterm-function-map "\e[27;5;47~" [?\C-/])
|
||||
(define-key xterm-function-map "\e[27;5;92~" [?\C-\\)])
|
||||
|
||||
(define-key xterm-function-map "\e[27;2;9~" [S-tab])
|
||||
(define-key xterm-function-map "\e[27;2;13~" [S-return])
|
||||
|
||||
(define-key xterm-function-map "\e[27;6;9~" [(C-S-tab)])
|
||||
|
||||
(define-key xterm-function-map "\e[27;13;46~" [?\C-\M-.])
|
||||
|
||||
|
||||
;; Other versions of xterm might emit these.
|
||||
(define-key xterm-function-map "\e[A" [up])
|
||||
|
|
|
|||
|
|
@ -1650,9 +1650,15 @@ quit spell session exited."
|
|||
cursor-location))
|
||||
(if (not (equal new-word (car poss)))
|
||||
(progn
|
||||
(delete-region start end)
|
||||
(setq start (point))
|
||||
(goto-char start)
|
||||
;; Insert first and then delete,
|
||||
;; to avoid collapsing markers before and after
|
||||
;; into a single place.
|
||||
(ispell-insert-word new-word)
|
||||
(delete-region (point) (+ (point) (- end start)))
|
||||
;; It is meaningless to preserve the cursor position
|
||||
;; inside a word that has changed.
|
||||
(setq cursor-location (point))
|
||||
(setq end (point))))
|
||||
(if (not (atom replace)) ;recheck spelling of replacement
|
||||
(progn
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ Contains canonical charset names that don't correspond to coding systems.")
|
|||
|
||||
(defun po-find-charset (filename)
|
||||
"Return PO charset value for FILENAME.
|
||||
If FILENAME is a cons, the cdr part is a buffer that already contains
|
||||
If FILENAME is a cons cell, its CDR is a buffer that already contains
|
||||
the PO file (but not yet decoded)."
|
||||
(let ((charset-regexp
|
||||
"^\"Content-Type:[ \t]*text/plain;[ \t]*charset=\\(.*\\)\\\\n\"")
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
;; Keywords: wp, convenience
|
||||
;; Author: Takaaki Ota <Takaaki.Ota@am.sony.com>
|
||||
;; Created: Sat Jul 08 2000 13:28:45 (PST)
|
||||
;; Revised: Tue May 30 2006 10:01:43 (PDT)
|
||||
;; Revised: Thu Jul 20 2006 17:30:09 (PDT)
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -1394,7 +1394,9 @@ the last cache point coordinate."
|
|||
(setq table-command-remap-alist
|
||||
(cons (cons command func-symbol)
|
||||
table-command-remap-alist))))
|
||||
'(beginning-of-line
|
||||
'(move-beginning-of-line
|
||||
beginning-of-line
|
||||
move-end-of-line
|
||||
end-of-line
|
||||
beginning-of-buffer
|
||||
end-of-buffer
|
||||
|
|
|
|||
364
lisp/tumme.el
364
lisp/tumme.el
|
|
@ -84,7 +84,7 @@
|
|||
;; USAGE
|
||||
;; =====
|
||||
;;
|
||||
;; This information has been moved to the manual. Type `C-h r' to open
|
||||
;; This information has been moved to the manual. Type `C-h r' to open
|
||||
;; the Emacs manual and go to the node Thumbnails by typing `g
|
||||
;; Thumbnails RET'.
|
||||
;;
|
||||
|
|
@ -161,6 +161,10 @@
|
|||
|
||||
(require 'dired)
|
||||
(require 'format-spec)
|
||||
(require 'widget)
|
||||
|
||||
(eval-when-compile
|
||||
(require 'wid-edit))
|
||||
|
||||
(defgroup tumme nil
|
||||
"Use dired to browse your images as thumbnails, and more."
|
||||
|
|
@ -644,7 +648,7 @@ according to the Thumbnail Managing Standard."
|
|||
;; Can't use (overlays-at (point)), BUG?
|
||||
(overlays-in (point) (1+ (point)))))
|
||||
(put-image thumb-file image-pos)
|
||||
(setq
|
||||
(setq
|
||||
overlay
|
||||
(car (delq nil (mapcar (lambda (o) (and (overlay-get o 'put-image) o))
|
||||
(overlays-in (point) (1+ (point)))))))
|
||||
|
|
@ -864,32 +868,27 @@ displayed."
|
|||
;;;###autoload
|
||||
(defalias 'tumme 'tumme-show-all-from-dir)
|
||||
|
||||
(defun tumme-write-tag (files tag)
|
||||
"For all FILES, writes TAG to the image database."
|
||||
(save-excursion
|
||||
(let (end buf)
|
||||
(setq buf (find-file tumme-db-file))
|
||||
(if (not (listp files))
|
||||
(if (stringp files)
|
||||
(setq files (list files))
|
||||
(error "Files must be a string or a list of strings!")))
|
||||
(mapcar
|
||||
(lambda (file)
|
||||
(goto-char (point-min))
|
||||
(if (search-forward-regexp
|
||||
(format "^%s" file) nil t)
|
||||
(progn
|
||||
(end-of-line)
|
||||
(setq end (point))
|
||||
(beginning-of-line)
|
||||
(when (not (search-forward (format ";%s" tag) end t))
|
||||
(end-of-line)
|
||||
(insert (format ";%s" tag))))
|
||||
(goto-char (point-max))
|
||||
(insert (format "\n%s;%s" file tag))))
|
||||
files)
|
||||
(save-buffer)
|
||||
(kill-buffer buf))))
|
||||
(defun tumme-write-tags (file-tags)
|
||||
"Write file tags to database.
|
||||
Write each file and tag in FILE-TAGS to the database. FILE-TAGS
|
||||
is an alist in the following form:
|
||||
((FILE . TAG) ... )"
|
||||
(let (end file tag)
|
||||
(with-temp-file tumme-db-file
|
||||
(insert-file-contents tumme-db-file)
|
||||
(dolist (elt file-tags)
|
||||
(setq file (car elt)
|
||||
tag (cdr elt))
|
||||
(goto-char (point-min))
|
||||
(if (search-forward-regexp (format "^%s.*$" file) nil t)
|
||||
(progn
|
||||
(setq end (point))
|
||||
(beginning-of-line)
|
||||
(when (not (search-forward (format ";%s" tag) end t))
|
||||
(end-of-line)
|
||||
(insert (format ";%s" tag))))
|
||||
(goto-char (point-max))
|
||||
(insert (format "\n%s;%s" file tag)))))))
|
||||
|
||||
(defun tumme-remove-tag (files tag)
|
||||
"For all FILES, remove TAG from the image database."
|
||||
|
|
@ -951,15 +950,19 @@ displayed."
|
|||
(let ((tag (read-string "Tags to add (separate tags with a semicolon): "))
|
||||
curr-file files)
|
||||
(if arg
|
||||
(setq files (dired-get-filename))
|
||||
(setq files (list (dired-get-filename)))
|
||||
(setq files (dired-get-marked-files)))
|
||||
(tumme-write-tag files tag)))
|
||||
(tumme-write-tags
|
||||
(mapcar
|
||||
(lambda (x)
|
||||
(cons x tag))
|
||||
files))))
|
||||
|
||||
(defun tumme-tag-thumbnail ()
|
||||
"Tag current thumbnail."
|
||||
(interactive)
|
||||
(let ((tag (read-string "Tags to add (separate tags with a semicolon): ")))
|
||||
(tumme-write-tag (tumme-original-file-name) tag))
|
||||
(tumme-write-tags (list (cons (tumme-original-file-name) tag))))
|
||||
(tumme-update-property
|
||||
'tags (tumme-list-tags (tumme-original-file-name))))
|
||||
|
||||
|
|
@ -1006,7 +1009,7 @@ use only useful if `tumme-track-movement' is nil."
|
|||
(let ((old-buf (current-buffer))
|
||||
(dired-buf (tumme-associated-dired-buffer))
|
||||
(file-name (tumme-original-file-name)))
|
||||
(when (and dired-buf file-name)
|
||||
(when (and (buffer-live-p dired-buf) file-name)
|
||||
(setq file-name (file-name-nondirectory file-name))
|
||||
(set-buffer dired-buf)
|
||||
(goto-char (point-min))
|
||||
|
|
@ -1069,32 +1072,46 @@ move ARG lines."
|
|||
(if tumme-track-movement
|
||||
(tumme-track-thumbnail)))
|
||||
|
||||
(defun tumme-forward-char ()
|
||||
"Move to next image and display properties."
|
||||
(interactive)
|
||||
;; Before we move, make sure that there is an image two positions
|
||||
;; forward.
|
||||
(when (save-excursion
|
||||
(forward-char 2)
|
||||
(tumme-image-at-point-p))
|
||||
(forward-char)
|
||||
(while (and (not (eobp))
|
||||
(not (tumme-image-at-point-p)))
|
||||
(forward-char))
|
||||
(if tumme-track-movement
|
||||
(tumme-track-original-file)))
|
||||
(defun tumme-forward-image (&optional arg)
|
||||
"Move to next image and display properties.
|
||||
Optional prefix ARG says how many images to move; default is one
|
||||
image."
|
||||
(interactive "p")
|
||||
(let (pos (steps (or arg 1)))
|
||||
(dotimes (i steps)
|
||||
(if (and (not (eobp))
|
||||
(save-excursion
|
||||
(forward-char)
|
||||
(while (and (not (eobp))
|
||||
(not (tumme-image-at-point-p)))
|
||||
(forward-char))
|
||||
(setq pos (point))
|
||||
(tumme-image-at-point-p)))
|
||||
(goto-char pos)
|
||||
(error "At last image"))))
|
||||
(when tumme-track-movement
|
||||
(tumme-track-original-file))
|
||||
(tumme-display-thumb-properties))
|
||||
|
||||
(defun tumme-backward-char ()
|
||||
"Move to previous image and display properties."
|
||||
(interactive)
|
||||
(when (not (bobp))
|
||||
(backward-char)
|
||||
(while (and (not (bobp))
|
||||
(not (tumme-image-at-point-p)))
|
||||
(backward-char))
|
||||
(if tumme-track-movement
|
||||
(tumme-track-original-file)))
|
||||
(defun tumme-backward-image (&optional arg)
|
||||
"Move to previous image and display properties.
|
||||
Optional prefix ARG says how many images to move; default is one
|
||||
image."
|
||||
(interactive "p")
|
||||
(let (pos (steps (or arg 1)))
|
||||
(dotimes (i steps)
|
||||
(if (and (not (bobp))
|
||||
(save-excursion
|
||||
(backward-char)
|
||||
(while (and (not (bobp))
|
||||
(not (tumme-image-at-point-p)))
|
||||
(backward-char))
|
||||
(setq pos (point))
|
||||
(tumme-image-at-point-p)))
|
||||
(goto-char pos)
|
||||
(error "At first image"))))
|
||||
(when tumme-track-movement
|
||||
(tumme-track-original-file))
|
||||
(tumme-display-thumb-properties))
|
||||
|
||||
(defun tumme-next-line ()
|
||||
|
|
@ -1103,7 +1120,7 @@ move ARG lines."
|
|||
(next-line 1)
|
||||
;; If we end up in an empty spot, back up to the next thumbnail.
|
||||
(if (not (tumme-image-at-point-p))
|
||||
(tumme-backward-char))
|
||||
(tumme-backward-image))
|
||||
(if tumme-track-movement
|
||||
(tumme-track-original-file))
|
||||
(tumme-display-thumb-properties))
|
||||
|
|
@ -1118,7 +1135,7 @@ move ARG lines."
|
|||
;; thumbnail and did not refresh, so it is not very common. But we
|
||||
;; can handle it in a good manner, so why not?
|
||||
(if (not (tumme-image-at-point-p))
|
||||
(tumme-backward-char))
|
||||
(tumme-backward-image))
|
||||
(if tumme-track-movement
|
||||
(tumme-track-original-file))
|
||||
(tumme-display-thumb-properties))
|
||||
|
|
@ -1131,7 +1148,7 @@ comment."
|
|||
(format-spec
|
||||
tumme-display-properties-format
|
||||
(list
|
||||
(cons ?b buf)
|
||||
(cons ?b (or buf ""))
|
||||
(cons ?f file)
|
||||
(cons ?t (or (princ props) ""))
|
||||
(cons ?c (or comment "")))))
|
||||
|
|
@ -1187,19 +1204,19 @@ dired."
|
|||
"Mark original image file in associated dired buffer."
|
||||
(interactive)
|
||||
(tumme-modify-mark-on-thumb-original-file 'mark)
|
||||
(tumme-forward-char))
|
||||
(tumme-forward-image))
|
||||
|
||||
(defun tumme-unmark-thumb-original-file ()
|
||||
"Unmark original image file in associated dired buffer."
|
||||
(interactive)
|
||||
(tumme-modify-mark-on-thumb-original-file 'unmark)
|
||||
(tumme-forward-char))
|
||||
(tumme-forward-image))
|
||||
|
||||
(defun tumme-flag-thumb-original-file ()
|
||||
"Flag original image file for deletion in associated dired buffer."
|
||||
(interactive)
|
||||
(tumme-modify-mark-on-thumb-original-file 'flag)
|
||||
(tumme-forward-char))
|
||||
(tumme-forward-image))
|
||||
|
||||
(defun tumme-toggle-mark-thumb-original-file ()
|
||||
"Toggle mark on original image file in associated dired buffer."
|
||||
|
|
@ -1247,12 +1264,12 @@ You probably want to use this together with
|
|||
"Define keymap for `tumme-thumbnail-mode'."
|
||||
|
||||
;; Keys
|
||||
(define-key tumme-thumbnail-mode-map [right] 'tumme-forward-char)
|
||||
(define-key tumme-thumbnail-mode-map [left] 'tumme-backward-char)
|
||||
(define-key tumme-thumbnail-mode-map [right] 'tumme-forward-image)
|
||||
(define-key tumme-thumbnail-mode-map [left] 'tumme-backward-image)
|
||||
(define-key tumme-thumbnail-mode-map [up] 'tumme-previous-line)
|
||||
(define-key tumme-thumbnail-mode-map [down] 'tumme-next-line)
|
||||
(define-key tumme-thumbnail-mode-map "\C-f" 'tumme-forward-char)
|
||||
(define-key tumme-thumbnail-mode-map "\C-b" 'tumme-backward-char)
|
||||
(define-key tumme-thumbnail-mode-map "\C-f" 'tumme-forward-image)
|
||||
(define-key tumme-thumbnail-mode-map "\C-b" 'tumme-backward-image)
|
||||
(define-key tumme-thumbnail-mode-map "\C-p" 'tumme-previous-line)
|
||||
(define-key tumme-thumbnail-mode-map "\C-n" 'tumme-next-line)
|
||||
|
||||
|
|
@ -1655,7 +1672,8 @@ See also `tumme-line-up-dynamic'."
|
|||
(insert "\n")
|
||||
(insert " ")
|
||||
(setq count (1+ count))
|
||||
(when (= count (- tumme-thumbs-per-row 1))
|
||||
(when (and (= count (- tumme-thumbs-per-row 1))
|
||||
(not (eobp)))
|
||||
(forward-char)
|
||||
(insert "\n")
|
||||
(setq count 0)))))
|
||||
|
|
@ -1798,8 +1816,10 @@ With prefix argument ARG, display image in its original size."
|
|||
(message "No thumbnail at point")
|
||||
(if (not file)
|
||||
(message "No original file name found")
|
||||
(tumme-display-image file arg)
|
||||
(display-buffer tumme-display-image-buffer))))))
|
||||
(tumme-create-display-image-buffer)
|
||||
(display-buffer tumme-display-image-buffer)
|
||||
(tumme-display-image file arg))))))
|
||||
|
||||
|
||||
;;;###autoload
|
||||
(defun tumme-dired-display-image (&optional arg)
|
||||
|
|
@ -1807,8 +1827,9 @@ With prefix argument ARG, display image in its original size."
|
|||
See documentation for `tumme-display-image' for more information.
|
||||
With prefix argument ARG, display image in its original size."
|
||||
(interactive "P")
|
||||
(tumme-display-image (dired-get-filename) arg)
|
||||
(display-buffer tumme-display-image-buffer))
|
||||
(tumme-create-display-image-buffer)
|
||||
(display-buffer tumme-display-image-buffer)
|
||||
(tumme-display-image (dired-get-filename) arg))
|
||||
|
||||
(defun tumme-image-at-point-p ()
|
||||
"Return true if there is a tumme thumbnail at point."
|
||||
|
|
@ -2000,49 +2021,49 @@ function. The result is a couple of new files in
|
|||
(defun tumme-display-next-thumbnail-original ()
|
||||
"In thubnail buffer, move to next thumbnail and display the image."
|
||||
(interactive)
|
||||
(tumme-forward-char)
|
||||
(tumme-forward-image)
|
||||
(tumme-display-thumbnail-original-image))
|
||||
|
||||
(defun tumme-display-previous-thumbnail-original ()
|
||||
"Move to previous thumbnail and display image."
|
||||
|
||||
(interactive)
|
||||
(tumme-backward-char)
|
||||
(tumme-backward-image)
|
||||
(tumme-display-thumbnail-original-image))
|
||||
|
||||
(defun tumme-write-comment (file comment)
|
||||
"For FILE, write comment COMMENT in database."
|
||||
(save-excursion
|
||||
(let (end buf comment-beg)
|
||||
(setq buf (find-file tumme-db-file))
|
||||
(goto-char (point-min))
|
||||
(if (search-forward-regexp
|
||||
(format "^%s" file) nil t)
|
||||
(progn
|
||||
(end-of-line)
|
||||
(setq end (point))
|
||||
(beginning-of-line)
|
||||
;; Delete old comment, if any
|
||||
(cond ((search-forward ";comment:" end t)
|
||||
(setq comment-beg (match-beginning 0))
|
||||
;; Any tags after the comment?
|
||||
(if (search-forward ";" end t)
|
||||
(setq comment-end (- (point) 1))
|
||||
(setq comment-end end))
|
||||
;; Delete comment tag and comment
|
||||
(delete-region comment-beg comment-end)))
|
||||
;; Insert new comment
|
||||
(beginning-of-line)
|
||||
(if (not (search-forward ";" end t))
|
||||
(progn
|
||||
(end-of-line)
|
||||
(insert ";")))
|
||||
(insert (format "comment:%s;" comment)))
|
||||
;; File does not exist in databse - add it.
|
||||
(goto-char (point-max))
|
||||
(insert (format "\n%s;comment:%s" file comment)))
|
||||
(save-buffer)
|
||||
(kill-buffer buf))))
|
||||
(defun tumme-write-comments (file-comments)
|
||||
"Write file comments to database.
|
||||
Write file comments to one or more files. FILE-COMMENTS is an alist on
|
||||
the following form:
|
||||
((FILE . COMMENT) ... )"
|
||||
(let (end comment-beg-pos comment-end-pos file comment)
|
||||
(with-temp-file tumme-db-file
|
||||
(insert-file-contents tumme-db-file)
|
||||
(dolist (elt file-comments)
|
||||
(setq file (car elt)
|
||||
comment (cdr elt))
|
||||
(goto-char (point-min))
|
||||
(if (search-forward-regexp (format "^%s.*$" file) nil t)
|
||||
(progn
|
||||
(setq end (point))
|
||||
(beginning-of-line)
|
||||
;; Delete old comment, if any
|
||||
(when (search-forward ";comment:" end t)
|
||||
(setq comment-beg-pos (match-beginning 0))
|
||||
;; Any tags after the comment?
|
||||
(if (search-forward ";" end t)
|
||||
(setq comment-end-pos (- (point) 1))
|
||||
(setq comment-end-pos end))
|
||||
;; Delete comment tag and comment
|
||||
(delete-region comment-beg-pos comment-end-pos))
|
||||
;; Insert new comment
|
||||
(beginning-of-line)
|
||||
(unless (search-forward ";" end t)
|
||||
(end-of-line)
|
||||
(insert ";"))
|
||||
(insert (format "comment:%s;" comment)))
|
||||
;; File does not exist in database - add it.
|
||||
(goto-char (point-max))
|
||||
(insert (format "\n%s;comment:%s" file comment)))))))
|
||||
|
||||
(defun tumme-update-property (prop value)
|
||||
"Update text property PROP with value VALUE at point."
|
||||
|
|
@ -2056,19 +2077,19 @@ function. The result is a couple of new files in
|
|||
(defun tumme-dired-comment-files ()
|
||||
"Add comment to current or marked files in dired."
|
||||
(interactive)
|
||||
(let ((files (dired-get-marked-files))
|
||||
(comment (tumme-read-comment)))
|
||||
(mapcar
|
||||
(lambda (curr-file)
|
||||
(tumme-write-comment curr-file comment))
|
||||
files)))
|
||||
(let ((comment (tumme-read-comment)))
|
||||
(tumme-write-comments
|
||||
(mapcar
|
||||
(lambda (curr-file)
|
||||
(cons curr-file comment))
|
||||
(dired-get-marked-files)))))
|
||||
|
||||
(defun tumme-comment-thumbnail ()
|
||||
"Add comment to current thumbnail in thumbnail buffer."
|
||||
(interactive)
|
||||
(let* ((file (tumme-original-file-name))
|
||||
(comment (tumme-read-comment file)))
|
||||
(tumme-write-comment file comment)
|
||||
(tumme-write-comments (list (cons file comment)))
|
||||
(tumme-update-property 'comment comment))
|
||||
(tumme-display-thumb-properties))
|
||||
|
||||
|
|
@ -2085,21 +2106,21 @@ as initial value."
|
|||
(defun tumme-get-comment (file)
|
||||
"Get comment for file FILE."
|
||||
(save-excursion
|
||||
(let (end buf comment-beg comment (base-name (file-name-nondirectory file)))
|
||||
(let (end buf comment-beg-pos comment-end-pos comment)
|
||||
(setq buf (find-file tumme-db-file))
|
||||
(goto-char (point-min))
|
||||
(when (search-forward-regexp
|
||||
(format "^%s" base-name) nil t)
|
||||
(format "^%s" file) nil t)
|
||||
(end-of-line)
|
||||
(setq end (point))
|
||||
(beginning-of-line)
|
||||
(cond ((search-forward ";comment:" end t)
|
||||
(setq comment-beg (point))
|
||||
(setq comment-beg-pos (point))
|
||||
(if (search-forward ";" end t)
|
||||
(setq comment-end (- (point) 1))
|
||||
(setq comment-end end))
|
||||
(setq comment-end-pos (- (point) 1))
|
||||
(setq comment-end-pos end))
|
||||
(setq comment (buffer-substring
|
||||
comment-beg comment-end)))))
|
||||
comment-beg-pos comment-end-pos)))))
|
||||
(kill-buffer buf)
|
||||
comment)))
|
||||
|
||||
|
|
@ -2153,6 +2174,8 @@ non-nil."
|
|||
(setq file (tumme-original-file-name))
|
||||
(if tumme-track-movement
|
||||
(tumme-track-original-file))
|
||||
(tumme-create-display-image-buffer)
|
||||
(display-buffer tumme-display-image-buffer)
|
||||
(tumme-display-image file)))
|
||||
|
||||
(defun tumme-mouse-select-thumbnail (event)
|
||||
|
|
@ -2421,6 +2444,107 @@ when using per-directory thumbnail file storage"))
|
|||
(error nil))
|
||||
(kill-buffer buffer)))
|
||||
|
||||
(defvar tumme-widget-list nil
|
||||
"List to keep track of meta data in edit buffer.")
|
||||
|
||||
;;;###autoload
|
||||
(defun tumme-dired-edit-comment-and-tags ()
|
||||
"Edit comment and tags of current or marked image files.
|
||||
Edit comment and tags for all marked image files in an
|
||||
easy-to-use form."
|
||||
(interactive)
|
||||
(setq tumme-widget-list nil)
|
||||
;; Setup buffer.
|
||||
(let ((files (dired-get-marked-files)))
|
||||
(switch-to-buffer "*Tumme Edit Meta Data*")
|
||||
(kill-all-local-variables)
|
||||
(make-local-variable 'widget-example-repeat)
|
||||
(let ((inhibit-read-only t))
|
||||
(erase-buffer))
|
||||
(remove-overlays)
|
||||
;; Some help for the user.
|
||||
(widget-insert
|
||||
"\nEdit comments and tags for each image. Separate multiple tags
|
||||
with a comma. Move forward between fields using TAB or RET.
|
||||
Move to the previous field using backtab (S-TAB). Save by
|
||||
activating the Save button at the bottom of the form or cancel
|
||||
the operation by activating the Cancel button.\n\n")
|
||||
;; Here comes all images and a comment and tag field for each
|
||||
;; image.
|
||||
(let (thumb-file img comment-widget tag-widget)
|
||||
|
||||
(dolist (file files)
|
||||
|
||||
(setq thumb-file (tumme-thumb-name file)
|
||||
img (create-image thumb-file))
|
||||
|
||||
(insert-image img)
|
||||
(widget-insert "\n\nComment: ")
|
||||
(setq comment-widget
|
||||
(widget-create 'editable-field
|
||||
:size 60
|
||||
:format "%v "
|
||||
:value (or (tumme-get-comment file) "")))
|
||||
(widget-insert "\nTags: ")
|
||||
(setq tag-widget
|
||||
(widget-create 'editable-field
|
||||
:size 60
|
||||
:format "%v "
|
||||
:value (or (mapconcat
|
||||
(lambda (tag)
|
||||
tag)
|
||||
(tumme-list-tags file)
|
||||
",") "")))
|
||||
;; Save information in all widgets so that we can use it when
|
||||
;; the user saves the form.
|
||||
(setq tumme-widget-list
|
||||
(append tumme-widget-list
|
||||
(list (list file comment-widget tag-widget))))
|
||||
(widget-insert "\n\n")))
|
||||
|
||||
;; Footer with Save and Cancel button.
|
||||
(widget-insert "\n")
|
||||
(widget-create 'push-button
|
||||
:notify
|
||||
(lambda (&rest ignore)
|
||||
(tumme-save-information-from-widgets)
|
||||
(bury-buffer)
|
||||
(message "Done."))
|
||||
"Save")
|
||||
(widget-insert " ")
|
||||
(widget-create 'push-button
|
||||
:notify
|
||||
(lambda (&rest ignore)
|
||||
(bury-buffer)
|
||||
(message "Operation canceled."))
|
||||
"Cancel")
|
||||
(widget-insert "\n")
|
||||
(use-local-map widget-keymap)
|
||||
(widget-setup)
|
||||
;; Jump to the first widget.
|
||||
(widget-forward 1)))
|
||||
|
||||
(defun tumme-save-information-from-widgets ()
|
||||
"Save information found in `tumme-widget-list'.
|
||||
Use the information in `tumme-widget-list' to save comments and
|
||||
tags to their respective image file. Internal function used by
|
||||
`tumme-dired-edit-comment-and-tags'."
|
||||
(let (file comment tag-string tag-list lst)
|
||||
(tumme-write-comments
|
||||
(mapcar
|
||||
(lambda (widget)
|
||||
(setq file (car widget)
|
||||
comment (widget-value (cadr widget)))
|
||||
(cons file comment))
|
||||
tumme-widget-list))
|
||||
(tumme-write-tags
|
||||
(dolist (widget tumme-widget-list lst)
|
||||
(setq file (car widget)
|
||||
tag-string (widget-value (car (cddr widget)))
|
||||
tag-list (split-string tag-string ","))
|
||||
(dolist (tag tag-list)
|
||||
(push (cons file tag) lst))))))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;;;;;; TEST-SECTION ;;;;;;;;;;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
|
|
|||
29
lisp/xml.el
29
lisp/xml.el
|
|
@ -165,22 +165,19 @@ If FILE is already visited, use its buffer and don't kill it.
|
|||
Returns the top node with all its children.
|
||||
If PARSE-DTD is non-nil, the DTD is parsed rather than skipped.
|
||||
If PARSE-NS is non-nil, then QNAMES are expanded."
|
||||
(let ((keep))
|
||||
(if (get-file-buffer file)
|
||||
(progn
|
||||
(set-buffer (get-file-buffer file))
|
||||
(setq keep (point)))
|
||||
(let (auto-mode-alist) ; no need for xml-mode
|
||||
(find-file file)))
|
||||
|
||||
(let ((xml (xml-parse-region (point-min)
|
||||
(point-max)
|
||||
(current-buffer)
|
||||
parse-dtd parse-ns)))
|
||||
(if keep
|
||||
(goto-char keep)
|
||||
(kill-buffer (current-buffer)))
|
||||
xml)))
|
||||
(if (get-file-buffer file)
|
||||
(with-current-buffer (get-file-buffer file)
|
||||
(save-excursion
|
||||
(xml-parse-region (point-min)
|
||||
(point-max)
|
||||
(current-buffer)
|
||||
parse-dtd parse-ns)))
|
||||
(with-temp-buffer
|
||||
(insert-file-contents file)
|
||||
(xml-parse-region (point-min)
|
||||
(point-max)
|
||||
(current-buffer)
|
||||
parse-dtd parse-ns))))
|
||||
|
||||
|
||||
(defvar xml-name-re)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,130 @@
|
|||
2006-07-28 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* commands.texi (Reading One Event): Fix last change.
|
||||
|
||||
2006-07-26 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* commands.texi (Reading One Event): Document SECONDS argument for
|
||||
read-event, read-char, and read-char-exclusive.
|
||||
|
||||
2006-07-25 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* modes.texi (Multiline Font Lock): Can't use jit-lock-defer-multiline
|
||||
to ensure correct identification.
|
||||
|
||||
2006-07-24 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* text.texi (Clickable Text): Clarify.
|
||||
|
||||
* sequences.texi (Vector Functions): Delete duplicate xref.
|
||||
|
||||
* objects.texi (Function Type): Clarify.
|
||||
|
||||
* modes.texi (Keymaps and Minor Modes): List punct chars for minor
|
||||
modes.
|
||||
|
||||
* lists.texi (List Variables): New node.
|
||||
Material moved from other nodes.
|
||||
|
||||
* variables.texi (Setting Variables): add-to-list and
|
||||
add-to-ordered-list moved to List Variables node.
|
||||
|
||||
2006-07-23 Thien-Thi Nguyen <ttn@gnu.org>
|
||||
|
||||
* text.texi (Links and Mouse-1):
|
||||
For mouse-on-link-p, expand on arg POS.
|
||||
|
||||
2006-07-21 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* display.texi (Forcing Redisplay): Don't mention systems which
|
||||
don't support sub-second timers for redisplay-preemption-period.
|
||||
|
||||
* os.texi (Terminal Output): Clarify text vs graphical terminal.
|
||||
|
||||
2006-07-21 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* frames.texi (Input Focus): Document that focus-follows-mouse has
|
||||
no effect on MS-Windows.
|
||||
|
||||
2006-07-18 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* display.texi (Forcing Redisplay): Cleanups in previous change.
|
||||
|
||||
* processes.texi (Low-Level Network): Make menu more convenient.
|
||||
|
||||
2006-07-18 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* display.texi (Forcing Redisplay): redisplay-preemption-period
|
||||
only used on window systems. Add xref to Terminal Output.
|
||||
|
||||
* os.texi (Terminal Output): baud-rate only controls preemption on
|
||||
non-window systems. Add xref to Forcing Redisplay.
|
||||
|
||||
* processes.texi (Low-Level Network): Rename node "Make Network"
|
||||
to "Network Processes".
|
||||
|
||||
2006-07-18 Karl Berry <karl@gnu.org>
|
||||
|
||||
* variables.texi, functions.texi, customize.texi, loading.texi:
|
||||
* edebug.texi, minibuf.texi: Fix page breaks through chapter 20.
|
||||
|
||||
2006-07-17 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* commands.texi (Waiting): Document batch-mode sit-for behavior.
|
||||
|
||||
2006-07-17 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* eval.texi, elisp.texi, text.texi: Use real doublequote inside menus.
|
||||
Put period and comma inside quotes.
|
||||
|
||||
* loading.texi, markers.texi: Use real doublequote inside menus.
|
||||
|
||||
* windows.texi: Put point and comma inside quotes.
|
||||
(Textual Scrolling): Use @samp for error message.
|
||||
|
||||
* variables.texi, tips.texi, syntax.texi, symbols.texi:
|
||||
* strings.texi, streams.texi, processes.texi, os.texi:
|
||||
* objects.texi, numbers.texi, modes.texi, minibuf.texi:
|
||||
* lists.texi, keymaps.texi, intro.texi, hash.texi, internals.texi:
|
||||
* gpl.texi, functions.texi, files.texi, frames.texi, doclicense.texi:
|
||||
* display.texi, control.texi, commands.texi, buffers.texi, anti.texi:
|
||||
Put point and comma inside quotes.
|
||||
|
||||
* control.texi (Processing of Errors): Add command-error-function.
|
||||
|
||||
* variables.texi (File Local Variables): Clarify that
|
||||
file local variables make buffer-local bindings.
|
||||
|
||||
* modes.texi (Syntactic Font Lock): Give default for
|
||||
font-lock-syntax-table.
|
||||
|
||||
2006-07-17 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* text.texi (Special Properties): Clean up previous change.
|
||||
|
||||
2006-07-16 Karl Berry <karl@gnu.org>
|
||||
|
||||
* objects.texi, numbers.texi, strings.texi, lists.texi, hash.texi:
|
||||
* control.texi: Fix bad page breaks through chapter 10 (control).
|
||||
|
||||
* anti.texi (Antinews): Reorder face-attribute fns to avoid
|
||||
underfull hbox.
|
||||
|
||||
2006-07-15 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* text.texi (Special Properties): Describe fontified text property
|
||||
in relation to a character (not text).
|
||||
|
||||
2006-07-15 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* maps.texi (Standard Keymaps): Add xref for minibuffer maps.
|
||||
Add apropos-mode-map, custom-mode-map, esc-map, global-map,
|
||||
grep-mode-map, help-map, help-mode-map, kmacro-map, and tool-bar-map.
|
||||
|
||||
* anti.texi (Antinews): Mention redisplay function.
|
||||
The kbd macro existed, but was not documented, before 22.x.
|
||||
Function pos-visible-in-window-p is not new in 22.x, just enhanced.
|
||||
|
||||
2006-07-14 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* display.texi (Displaying Messages): Add anchor.
|
||||
|
|
|
|||
|
|
@ -23,6 +23,12 @@ earlier major release, Emacs 20, will have a completely rewritten
|
|||
redisplay engine, which will be even simpler.)
|
||||
|
||||
@itemize @minus
|
||||
@item
|
||||
The function @code{redisplay} has been removed. To update the display
|
||||
without delay, call @code{(sit-for 0)}. Since it is generally
|
||||
considered wasteful to update the display if there are any pending
|
||||
input events, no replacement for @code{(redisplay t)} is provided.
|
||||
|
||||
@item
|
||||
The function @code{force-window-update} has been removed. It
|
||||
shouldn't be needed, since changes in window contents are detected
|
||||
|
|
@ -80,8 +86,8 @@ removed. In @code{defface} specifications, the @code{supports}
|
|||
predicate is no longer supported.
|
||||
|
||||
@item
|
||||
@code{face-attribute-relative-p} and @code{merge-face-attribute} have
|
||||
been removed.
|
||||
The functions @code{merge-face-attribute} and
|
||||
@code{face-attribute-relative-p} have been removed.
|
||||
|
||||
@item
|
||||
The priority of faces in a list supplied by the @code{:inherit} face
|
||||
|
|
@ -91,7 +97,7 @@ in a while, to keep Emacs Lisp programmers on their toes.
|
|||
@item
|
||||
The @code{min-colors} face attribute, used for tailoring faces to
|
||||
limited-color displays, does not exist. If in doubt, use colors like
|
||||
``white'' and ``black'', which ought to be defined everywhere.
|
||||
``white'' and ``black,'' which ought to be defined everywhere.
|
||||
|
||||
@item
|
||||
The @code{tty-color-mode} frame parameter does not exist. You should
|
||||
|
|
@ -126,9 +132,9 @@ and key sequences:
|
|||
|
||||
@itemize @minus
|
||||
@item
|
||||
The @code{kbd} macro has been removed. It isn't that difficult to
|
||||
write key sequences using the string and vector representations, and
|
||||
we want to encourage users to learn.
|
||||
The @code{kbd} macro is now obsolete and is no longer documented.
|
||||
It isn't that difficult to write key sequences using the string and
|
||||
vector representations, and we want to encourage users to learn.
|
||||
|
||||
@item
|
||||
Emacs no longer supports key remapping. You can do pretty much the
|
||||
|
|
@ -164,7 +170,7 @@ the sentinel.
|
|||
|
||||
@item
|
||||
Many programming shortcuts have been deleted, to provide you with the
|
||||
enjoyment of ``rolling your own''. The macros @code{while-no-input},
|
||||
enjoyment of ``rolling your own.'' The macros @code{while-no-input},
|
||||
@code{with-local-quit}, and @code{with-selected-window}, along with
|
||||
@code{dynamic-completion-table} and @code{lazy-completion-table} no
|
||||
longer exist. Also, there are no built-in progress reporters;
|
||||
|
|
@ -304,7 +310,7 @@ In @code{replace-match}, the replacement text now inherits properties
|
|||
from the surrounding text.
|
||||
|
||||
@item
|
||||
@code{mode-line-format} no longer supports the @code{:propertize},
|
||||
The variable @code{mode-line-format} no longer supports the @code{:propertize},
|
||||
@code{%i}, and @code{%I} constructs. The function
|
||||
@code{format-mode-line} has been removed.
|
||||
|
||||
|
|
@ -319,8 +325,9 @@ The functions @code{window-pixel-edges} and
|
|||
think in terms of lines and columns, not pixel coordinates. (Sometime
|
||||
in the distant past, we will do away with graphical terminals
|
||||
entirely, in favor of text terminals.) For similar reasons, the
|
||||
functions @code{posn-at-point}, @code{posn-at-x-y}, and
|
||||
@code{pos-visible-in-window-p} have been removed.
|
||||
functions @code{posn-at-point} and @code{posn-at-x-y} have been removed, and
|
||||
@code{pos-visible-in-window-p} no longer worries about partially
|
||||
visible rows.
|
||||
|
||||
@item
|
||||
The macro @code{save-selected-window} only saves the selected window
|
||||
|
|
|
|||
|
|
@ -484,7 +484,7 @@ correspond to the new file name, unless the new name is already in
|
|||
use.
|
||||
|
||||
If @var{filename} is @code{nil} or the empty string, that stands for
|
||||
``no visited file''. In this case, @code{set-visited-file-name} marks
|
||||
``no visited file.'' In this case, @code{set-visited-file-name} marks
|
||||
the buffer as having no visited file, without changing the buffer's
|
||||
modified flag.
|
||||
|
||||
|
|
|
|||
|
|
@ -2165,7 +2165,7 @@ same symbol that would normally represent that combination of mouse
|
|||
button and modifier keys. The information about the window part is kept
|
||||
elsewhere in the event---in the coordinates. But
|
||||
@code{read-key-sequence} translates this information into imaginary
|
||||
``prefix keys'', all of which are symbols: @code{header-line},
|
||||
``prefix keys,'' all of which are symbols: @code{header-line},
|
||||
@code{horizontal-scroll-bar}, @code{menu-bar}, @code{mode-line},
|
||||
@code{vertical-line}, and @code{vertical-scroll-bar}. You can define
|
||||
meanings for mouse clicks in special window parts by defining key
|
||||
|
|
@ -2199,7 +2199,7 @@ single event.
|
|||
|
||||
None of the three functions below suppresses quitting.
|
||||
|
||||
@defun read-event &optional prompt inherit-input-method
|
||||
@defun read-event &optional prompt inherit-input-method seconds
|
||||
This function reads and returns the next event of command input, waiting
|
||||
if necessary until an event is available. Events can come directly from
|
||||
the user or from a keyboard macro.
|
||||
|
|
@ -2220,6 +2220,15 @@ If @code{cursor-in-echo-area} is non-@code{nil}, then @code{read-event}
|
|||
moves the cursor temporarily to the echo area, to the end of any message
|
||||
displayed there. Otherwise @code{read-event} does not move the cursor.
|
||||
|
||||
If @var{seconds} is non-@code{nil}, it should be a number specifying
|
||||
the maximum time to wait for input, in seconds. If no input arrives
|
||||
within that time, @code{read-event} stops waiting and returns
|
||||
@code{nil}. A floating-point value for @var{seconds} means to wait
|
||||
for a fractional number of seconds. Some systems support only a whole
|
||||
number of seconds; on these systems, @var{seconds} is rounded down.
|
||||
If @var{seconds} is @code{nil}, @code{read-event} waits as long as
|
||||
necessary for input to arrive.
|
||||
|
||||
If @code{read-event} gets an event that is defined as a help character,
|
||||
then in some cases @code{read-event} processes the event directly without
|
||||
returning. @xref{Help Functions}. Certain other events, called
|
||||
|
|
@ -2237,7 +2246,7 @@ right-arrow function key:
|
|||
@end example
|
||||
@end defun
|
||||
|
||||
@defun read-char &optional prompt inherit-input-method
|
||||
@defun read-char &optional prompt inherit-input-method seconds
|
||||
This function reads and returns a character of command input. If the
|
||||
user generates an event which is not a character (i.e. a mouse click or
|
||||
function key event), @code{read-char} signals an error. The arguments
|
||||
|
|
@ -2269,7 +2278,7 @@ the echo area.
|
|||
@end example
|
||||
@end defun
|
||||
|
||||
@defun read-char-exclusive &optional prompt inherit-input-method
|
||||
@defun read-char-exclusive &optional prompt inherit-input-method seconds
|
||||
This function reads and returns a character of command input. If the
|
||||
user generates an event which is not a character,
|
||||
@code{read-char-exclusive} ignores it and reads another event, until it
|
||||
|
|
@ -2410,7 +2419,7 @@ individual events, which you can put in @code{unread-command-events}.
|
|||
|
||||
@defvar unread-command-char
|
||||
This variable holds a character to be read as command input.
|
||||
A value of -1 means ``empty''.
|
||||
A value of -1 means ``empty.''
|
||||
|
||||
This variable is mostly obsolete now that you can use
|
||||
@code{unread-command-events} instead; it exists only to support programs
|
||||
|
|
@ -2534,9 +2543,10 @@ screen.
|
|||
@defun sit-for seconds &optional nodisp
|
||||
This function performs redisplay (provided there is no pending input
|
||||
from the user), then waits @var{seconds} seconds, or until input is
|
||||
available. The value is @code{t} if @code{sit-for} waited the full
|
||||
time with no input arriving (see @code{input-pending-p} in @ref{Event
|
||||
Input Misc}). Otherwise, the value is @code{nil}.
|
||||
available. The usual purpose of @code{sit-for} is to give the user
|
||||
time to read text that you display. The value is @code{t} if
|
||||
@code{sit-for} waited the full time with no input arriving
|
||||
(@pxref{Event Input Misc}). Otherwise, the value is @code{nil}.
|
||||
|
||||
The argument @var{seconds} need not be an integer. If it is a floating
|
||||
point number, @code{sit-for} waits for a fractional number of seconds.
|
||||
|
|
@ -2551,8 +2561,9 @@ If @var{nodisp} is non-@code{nil}, then @code{sit-for} does not
|
|||
redisplay, but it still returns as soon as input is available (or when
|
||||
the timeout elapses).
|
||||
|
||||
The usual purpose of @code{sit-for} is to give the user time to read
|
||||
text that you display.
|
||||
In batch mode (@pxref{Batch Mode}), @code{sit-for} cannot be
|
||||
interrupted, even by input from the standard input descriptor. It is
|
||||
thus equivalent to @code{sleep-for}, which is described below.
|
||||
|
||||
It is also possible to call @code{sit-for} with three arguments,
|
||||
as @code{(sit-for @var{seconds} @var{millisec} @var{nodisp})},
|
||||
|
|
@ -2898,7 +2909,7 @@ using the minibuffer. Usually it is more convenient for the user if you
|
|||
change the major mode of the current buffer temporarily to a special
|
||||
major mode, which should have a command to go back to the previous mode.
|
||||
(The @kbd{e} command in Rmail uses this technique.) Or, if you wish to
|
||||
give the user different text to edit ``recursively'', create and select
|
||||
give the user different text to edit ``recursively,'' create and select
|
||||
a new buffer in a special mode. In this mode, define a command to
|
||||
complete the processing and go back to the previous buffer. (The
|
||||
@kbd{m} command in Rmail does this.)
|
||||
|
|
|
|||
|
|
@ -221,7 +221,7 @@ non-@code{nil}, the clause ``succeeds''; then @code{cond} evaluates its
|
|||
@var{body-forms}, and the value of the last of @var{body-forms} becomes
|
||||
the value of the @code{cond}. The remaining clauses are ignored.
|
||||
|
||||
If the value of @var{condition} is @code{nil}, the clause ``fails'', so
|
||||
If the value of @var{condition} is @code{nil}, the clause ``fails,'' so
|
||||
the @code{cond} moves on to the following clause, trying its
|
||||
@var{condition}.
|
||||
|
||||
|
|
@ -623,7 +623,7 @@ error is signaled with data @code{(@var{tag} @var{value})}.
|
|||
@subsection Examples of @code{catch} and @code{throw}
|
||||
|
||||
One way to use @code{catch} and @code{throw} is to exit from a doubly
|
||||
nested loop. (In most languages, this would be done with a ``go to''.)
|
||||
nested loop. (In most languages, this would be done with a ``go to.'')
|
||||
Here we compute @code{(foo @var{i} @var{j})} for @var{i} and @var{j}
|
||||
varying from 0 to 9:
|
||||
|
||||
|
|
@ -783,8 +783,11 @@ undesirable results. Instead, use @code{(error "%s" @var{string})}.
|
|||
@end defun
|
||||
|
||||
@defun signal error-symbol data
|
||||
This
|
||||
@anchor{Definition of signal}
|
||||
This function signals an error named by @var{error-symbol}. The
|
||||
@c unfortunately, a page break is allowed if the anchor immediately
|
||||
@c follows the @defun, due to hard-to-fix TeXnicalities.
|
||||
function signals an error named by @var{error-symbol}. The
|
||||
argument @var{data} is a list of additional Lisp objects relevant to the
|
||||
circumstances of the error.
|
||||
|
||||
|
|
@ -846,11 +849,22 @@ executes in the environment of the @code{condition-case} that
|
|||
established it; all functions called within that @code{condition-case}
|
||||
have already been exited, and the handler cannot return to them.
|
||||
|
||||
If there is no applicable handler for the error, the current command is
|
||||
terminated and control returns to the editor command loop, because the
|
||||
command loop has an implicit handler for all kinds of errors. The
|
||||
If there is no applicable handler for the error, it terminates the
|
||||
current command and returns control to the editor command loop. (The
|
||||
command loop has an implicit handler for all kinds of errors.) The
|
||||
command loop's handler uses the error symbol and associated data to
|
||||
print an error message.
|
||||
print an error message. You can use the variable
|
||||
@code{command-error-function} to control how this is done:
|
||||
|
||||
@defvar command-error-function
|
||||
This variable, if non-@code{nil}, specifies a function to use to
|
||||
handle errors that return control to the Emacs command loop. The
|
||||
function should take three arguments: @var{data}, a list of the same
|
||||
form that @code{condition-case} would bind to its variable;
|
||||
@var{context}, a string describing the situation in which the error
|
||||
occurred, or (more often) @code{nil}; and @code{caller}, the Lisp
|
||||
function which called the primitive that signaled the error.
|
||||
@end defvar
|
||||
|
||||
@cindex @code{debug-on-error} use
|
||||
An error that has no explicit handler may call the Lisp debugger. The
|
||||
|
|
|
|||
|
|
@ -699,7 +699,7 @@ that you specify for it.
|
|||
|
||||
@item (list @var{element-types}@dots{})
|
||||
The value must be a list with exactly as many elements as the
|
||||
@var{element-types} you have specified; and each element must fit the
|
||||
@var{element-types} given; and each element must fit the
|
||||
corresponding @var{element-type}.
|
||||
|
||||
For example, @code{(list integer string function)} describes a list of
|
||||
|
|
@ -718,7 +718,7 @@ The value must fit at least one of @var{alternative-types}.
|
|||
For example, @code{(choice integer string)} allows either an
|
||||
integer or a string.
|
||||
|
||||
In the customization buffer, the user selects one of the alternatives
|
||||
In the customization buffer, the user selects an alternative
|
||||
using a menu, and can then edit the value in the usual way for that
|
||||
alternative.
|
||||
|
||||
|
|
|
|||
|
|
@ -103,8 +103,8 @@ processes the available input before trying again to redisplay.
|
|||
If this variable is @code{nil}, Emacs does not check for input during
|
||||
redisplay, and redisplay cannot be preempted by input.
|
||||
|
||||
@emph{Note} that this variable is only available if Emacs is built
|
||||
with support for sub-second timers.
|
||||
This variable is only obeyed on graphical terminals. For
|
||||
text terminals, see @ref{Terminal Output}.
|
||||
@end defvar
|
||||
|
||||
@defvar redisplay-dont-pause
|
||||
|
|
@ -141,7 +141,7 @@ boundary. @xref{Filling}.
|
|||
indicate truncated and continued lines (@pxref{Fringes}). On a text
|
||||
terminal, a @samp{$} in the rightmost column of the window indicates
|
||||
truncation; a @samp{\} on the rightmost column indicates a line that
|
||||
``wraps''. (The display table can specify alternate characters to use
|
||||
``wraps.'' (The display table can specify alternate characters to use
|
||||
for this; @pxref{Display Tables}).
|
||||
|
||||
@defopt truncate-lines
|
||||
|
|
@ -1189,7 +1189,7 @@ The return value is @var{overlay}.
|
|||
This is the only valid way to change the endpoints of an overlay. Do
|
||||
not try modifying the markers in the overlay by hand, as that fails to
|
||||
update other vital data structures and can cause some overlays to be
|
||||
``lost''.
|
||||
``lost.''
|
||||
@end defun
|
||||
|
||||
@defun remove-overlays &optional start end name value
|
||||
|
|
@ -2013,7 +2013,7 @@ A non-@code{nil} value specifies a bold font.
|
|||
A non-@code{nil} value specifies an italic font.
|
||||
@end table
|
||||
|
||||
For compatibility, you can still set these ``attributes'', even
|
||||
For compatibility, you can still set these ``attributes,'' even
|
||||
though they are not real face attributes. Here is what that does:
|
||||
|
||||
@table @code
|
||||
|
|
@ -3767,7 +3767,7 @@ $$\pmatrix{ 2 & -1 & 0 \cr
|
|||
@end ifnottex
|
||||
|
||||
@item disabled
|
||||
Specifies transforming the image so that it looks ``disabled''.
|
||||
Specifies transforming the image so that it looks ``disabled.''
|
||||
@end table
|
||||
|
||||
@item :mask @var{mask}
|
||||
|
|
@ -4804,7 +4804,7 @@ Any @var{args} are passed to @var{map-function}.
|
|||
@subsection Abstract Display Example
|
||||
|
||||
Here is a simple example using functions of the ewoc package to
|
||||
implement a ``color components display'', an area in a buffer that
|
||||
implement a ``color components display,'' an area in a buffer that
|
||||
represents a vector of three integers (itself representing a 24-bit RGB
|
||||
value) in various ways.
|
||||
|
||||
|
|
@ -5320,7 +5320,7 @@ variable.
|
|||
@section Window Systems
|
||||
|
||||
Emacs works with several window systems, most notably the X Window
|
||||
System. Both Emacs and X use the term ``window'', but use it
|
||||
System. Both Emacs and X use the term ``window,'' but use it
|
||||
differently. An Emacs frame is a single window as far as X is
|
||||
concerned; the individual Emacs windows are not known to X at all.
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ Secondarily, this License preserves for the author and publisher a way
|
|||
to get credit for their work, while not being considered responsible
|
||||
for modifications made by others.
|
||||
|
||||
This License is a kind of ``copyleft'', which means that derivative
|
||||
This License is a kind of ``copyleft,'' which means that derivative
|
||||
works of the document must themselves be free in the same sense. It
|
||||
complements the GNU General Public License, which is a copyleft
|
||||
license designed for free software.
|
||||
|
|
@ -45,9 +45,9 @@ This License applies to any manual or other work, in any medium, that
|
|||
contains a notice placed by the copyright holder saying it can be
|
||||
distributed under the terms of this License. Such a notice grants a
|
||||
world-wide, royalty-free license, unlimited in duration, to use that
|
||||
work under the conditions stated herein. The ``Document'', below,
|
||||
work under the conditions stated herein. The ``Document,'' below,
|
||||
refers to any such manual or work. Any member of the public is a
|
||||
licensee, and is addressed as ``you''. You accept the license if you
|
||||
licensee, and is addressed as ``you.'' You accept the license if you
|
||||
copy, modify or distribute the work in a way requiring permission
|
||||
under copyright law.
|
||||
|
||||
|
|
@ -114,8 +114,8 @@ preceding the beginning of the body of the text.
|
|||
A section ``Entitled XYZ'' means a named subunit of the Document whose
|
||||
title either is precisely XYZ or contains XYZ in parentheses following
|
||||
text that translates XYZ in another language. (Here XYZ stands for a
|
||||
specific section name mentioned below, such as ``Acknowledgements'',
|
||||
``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title''
|
||||
specific section name mentioned below, such as ``Acknowledgements,''
|
||||
``Dedications,'' ``Endorsements,'' or ``History.'') To ``Preserve the Title''
|
||||
of such a section when you modify the Document means that it remains a
|
||||
section ``Entitled XYZ'' according to this definition.
|
||||
|
||||
|
|
@ -211,7 +211,7 @@ F. Include, immediately after the copyright notices, a license notice
|
|||
G. Preserve in that license notice the full lists of Invariant Sections
|
||||
and required Cover Texts given in the Document's license notice.@*
|
||||
H. Include an unaltered copy of this License.@*
|
||||
I. Preserve the section Entitled ``History'', Preserve its Title, and add
|
||||
I. Preserve the section Entitled ``History,'' Preserve its Title, and add
|
||||
to it an item stating at least the title, year, new authors, and
|
||||
publisher of the Modified Version as given on the Title Page. If
|
||||
there is no section Entitled ``History'' in the Document, create one
|
||||
|
|
@ -225,7 +225,7 @@ J. Preserve the network location, if any, given in the Document for
|
|||
You may omit a network location for a work that was published at
|
||||
least four years before the Document itself, or if the original
|
||||
publisher of the version it refers to gives permission.@*
|
||||
K. For any section Entitled ``Acknowledgements'' or ``Dedications'',
|
||||
K. For any section Entitled ``Acknowledgements'' or ``Dedications,''
|
||||
Preserve the Title of the section, and preserve in the section all
|
||||
the substance and tone of each of the contributor acknowledgements
|
||||
and/or dedications given therein.@*
|
||||
|
|
@ -245,7 +245,7 @@ of these sections as invariant. To do this, add their titles to the
|
|||
list of Invariant Sections in the Modified Version's license notice.
|
||||
These titles must be distinct from any other section titles.
|
||||
|
||||
You may add a section Entitled ``Endorsements'', provided it contains
|
||||
You may add a section Entitled ``Endorsements,'' provided it contains
|
||||
nothing but endorsements of your Modified Version by various
|
||||
parties--for example, statements of peer review or that the text has
|
||||
been approved by an organization as the authoritative definition of a
|
||||
|
|
@ -286,7 +286,7 @@ Invariant Sections in the license notice of the combined work.
|
|||
|
||||
In the combination, you must combine any sections Entitled ``History''
|
||||
in the various original documents, forming one section Entitled
|
||||
``History''; likewise combine any sections Entitled ``Acknowledgements'',
|
||||
``History''; likewise combine any sections Entitled ``Acknowledgements,''
|
||||
and any sections Entitled ``Dedications.'' You must delete all sections
|
||||
Entitled ``Endorsements.''
|
||||
@sp 1
|
||||
|
|
@ -340,8 +340,8 @@ of those notices and disclaimers. In case of a disagreement between
|
|||
the translation and the original version of this License or a notice
|
||||
or disclaimer, the original version will prevail.
|
||||
|
||||
If a section in the Document is Entitled ``Acknowledgements'',
|
||||
``Dedications'', or ``History'', the requirement (section 4) to Preserve
|
||||
If a section in the Document is Entitled ``Acknowledgements,''
|
||||
``Dedications,'' or ``History,'' the requirement (section 4) to Preserve
|
||||
its Title (section 1) will typically require changing the actual
|
||||
title.
|
||||
@sp 1
|
||||
|
|
@ -390,7 +390,7 @@ under the terms of the GNU Free Documentation License, Version 1.2
|
|||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled ``GNU
|
||||
Free Documentation License''.
|
||||
Free Documentation License.''
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
|
|
|
|||
|
|
@ -1541,12 +1541,10 @@ The default value is @code{step}.
|
|||
@end defopt
|
||||
|
||||
@defopt edebug-trace
|
||||
Non-@code{nil} means display a trace of function entry and exit.
|
||||
If this is non-@code{nil}, trace each function entry and exit.
|
||||
Tracing output is displayed in a buffer named @samp{*edebug-trace*}, one
|
||||
function entry or exit per line, indented by the recursion level.
|
||||
|
||||
The default value is @code{nil}.
|
||||
|
||||
Also see @code{edebug-tracing}, in @ref{Trace Buffer}.
|
||||
@end defopt
|
||||
|
||||
|
|
|
|||
|
|
@ -47,10 +47,10 @@ Inc.
|
|||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.2 or
|
||||
any later version published by the Free Software Foundation; with the
|
||||
Invariant Sections being ``GNU General Public License'', with the
|
||||
Front-Cover texts being ``A GNU Manual'', and with the Back-Cover
|
||||
Invariant Sections being ``GNU General Public License,'' with the
|
||||
Front-Cover texts being ``A GNU Manual,'' and with the Back-Cover
|
||||
Texts as in (a) below. A copy of the license is included in the
|
||||
section entitled ``GNU Free Documentation License''.
|
||||
section entitled ``GNU Free Documentation License.''
|
||||
|
||||
(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
|
||||
this GNU Manual, like GNU software. Copies published by the Free
|
||||
|
|
@ -338,7 +338,7 @@ Kinds of Forms
|
|||
we find the real function via the symbol.
|
||||
* Function Forms:: Forms that call functions.
|
||||
* Macro Forms:: Forms that call macros.
|
||||
* Special Forms:: ``Special forms'' are idiosyncratic primitives,
|
||||
* Special Forms:: "Special forms" are idiosyncratic primitives,
|
||||
most of them extremely important.
|
||||
* Autoloading:: Functions set up to load files
|
||||
containing their real definitions.
|
||||
|
|
@ -457,7 +457,7 @@ Loading
|
|||
* Repeated Loading:: Precautions about loading a file twice.
|
||||
* Named Features:: Loading a library if it isn't already loaded.
|
||||
* Where Defined:: Finding which file defined a certain symbol.
|
||||
* Unloading:: How to ``unload'' a library that was loaded.
|
||||
* Unloading:: How to "unload" a library that was loaded.
|
||||
* Hooks for Loading:: Providing code to be run when
|
||||
particular libraries are loaded.
|
||||
|
||||
|
|
@ -741,7 +741,7 @@ Buffers
|
|||
is visited.
|
||||
* Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved.
|
||||
* Modification Time:: Determining whether the visited file was changed
|
||||
``behind Emacs's back''.
|
||||
"behind Emacs's back".
|
||||
* Read Only Buffers:: Modifying text is not allowed in a
|
||||
read-only buffer.
|
||||
* The Buffer List:: How to look at all the existing buffers.
|
||||
|
|
@ -830,8 +830,8 @@ Markers
|
|||
* Marker Insertion Types:: Two ways a marker can relocate when you
|
||||
insert where it points.
|
||||
* Moving Markers:: Moving the marker to a new buffer or position.
|
||||
* The Mark:: How ``the mark'' is implemented with a marker.
|
||||
* The Region:: How to access ``the region''.
|
||||
* The Mark:: How "the mark" is implemented with a marker.
|
||||
* The Region:: How to access "the region".
|
||||
|
||||
Text
|
||||
|
||||
|
|
@ -862,8 +862,8 @@ Text
|
|||
* Registers:: How registers are implemented. Accessing
|
||||
the text or position stored in a register.
|
||||
* Base 64:: Conversion to or from base 64 encoding.
|
||||
* MD5 Checksum:: Compute the MD5 ``message digest''/``checksum''.
|
||||
* Atomic Changes:: Installing several buffer changes ``atomically''.
|
||||
* MD5 Checksum:: Compute the MD5 "message digest"/"checksum".
|
||||
* Atomic Changes:: Installing several buffer changes "atomically".
|
||||
* Change Hooks:: Supplying functions to be run when text is changed.
|
||||
|
||||
The Kill Ring
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ described below (@pxref{Forms}).
|
|||
A Lisp object that is intended to be evaluated is called a @dfn{form}.
|
||||
How Emacs evaluates a form depends on its data type. Emacs has three
|
||||
different kinds of form that are evaluated differently: symbols, lists,
|
||||
and ``all other types''. This section describes all three kinds, one by
|
||||
and ``all other types.'' This section describes all three kinds, one by
|
||||
one, starting with the ``all other types'' which are self-evaluating
|
||||
forms.
|
||||
|
||||
|
|
@ -118,7 +118,7 @@ forms.
|
|||
we find the real function via the symbol.
|
||||
* Function Forms:: Forms that call functions.
|
||||
* Macro Forms:: Forms that call macros.
|
||||
* Special Forms:: ``Special forms'' are idiosyncratic primitives,
|
||||
* Special Forms:: "Special forms" are idiosyncratic primitives,
|
||||
most of them extremely important.
|
||||
* Autoloading:: Functions set up to load files
|
||||
containing their real definitions.
|
||||
|
|
|
|||
|
|
@ -658,7 +658,7 @@ The file lock is really a file, a symbolic link with a special name,
|
|||
stored in the same directory as the file you are editing.
|
||||
|
||||
When you access files using NFS, there may be a small probability that
|
||||
you and another user will both lock the same file ``simultaneously''.
|
||||
you and another user will both lock the same file ``simultaneously.''
|
||||
If this happens, it is possible for the two users to make changes
|
||||
simultaneously, but Emacs will still warn the user who saves second.
|
||||
Also, the detection of modification of a buffer visiting a file changed
|
||||
|
|
@ -1681,7 +1681,7 @@ return value, but backup version numbers are kept.
|
|||
@end defun
|
||||
|
||||
@defun file-name-extension filename &optional period
|
||||
This function returns @var{filename}'s final ``extension'', if any,
|
||||
This function returns @var{filename}'s final ``extension,'' if any,
|
||||
after applying @code{file-name-sans-versions} to remove any
|
||||
version/backup part. The extension, in a file name, is the part that
|
||||
starts with the last @samp{.} in the last name component (minus
|
||||
|
|
@ -2653,7 +2653,7 @@ unlocking the buffer if it is locked.
|
|||
possibly others to be added in the future. It need not implement all
|
||||
these operations itself---when it has nothing special to do for a
|
||||
certain operation, it can reinvoke the primitive, to handle the
|
||||
operation ``in the usual way''. It should always reinvoke the primitive
|
||||
operation ``in the usual way.'' It should always reinvoke the primitive
|
||||
for an operation it does not recognize. Here's one way to do this:
|
||||
|
||||
@smallexample
|
||||
|
|
|
|||
|
|
@ -641,7 +641,7 @@ This variable specifies how to blink the cursor. Each element has the
|
|||
form @code{(@var{on-state} . @var{off-state})}. Whenever the cursor
|
||||
type equals @var{on-state} (comparing using @code{equal}), the
|
||||
corresponding @var{off-state} specifies what the cursor looks like
|
||||
when it blinks ``off''. Both @var{on-state} and @var{off-state}
|
||||
when it blinks ``off.'' Both @var{on-state} and @var{off-state}
|
||||
should be suitable values for the @code{cursor-type} frame parameter.
|
||||
|
||||
There are various defaults for how to blink each type of cursor, if
|
||||
|
|
@ -967,7 +967,7 @@ internals of Emacs.
|
|||
@defun visible-frame-list
|
||||
This function returns a list of just the currently visible frames.
|
||||
@xref{Visibility of Frames}. (Terminal frames always count as
|
||||
``visible'', even though only the selected one is actually displayed.)
|
||||
``visible,'' even though only the selected one is actually displayed.)
|
||||
@end defun
|
||||
|
||||
@defun next-frame &optional frame minibuf
|
||||
|
|
@ -1189,7 +1189,9 @@ change it.
|
|||
This option is how you inform Emacs whether the window manager transfers
|
||||
focus when the user moves the mouse. Non-@code{nil} says that it does.
|
||||
When this is so, the command @code{other-frame} moves the mouse to a
|
||||
position consistent with the new selected frame.
|
||||
position consistent with the new selected frame. (This option has no
|
||||
effect on MS-Windows, where the mouse pointer is always automatically
|
||||
moved by the OS to the selected frame.)
|
||||
@end defopt
|
||||
|
||||
@node Visibility of Frames
|
||||
|
|
@ -1251,7 +1253,7 @@ changes. @xref{Misc Events}.
|
|||
Most window systems use a desktop metaphor. Part of this metaphor is
|
||||
the idea that windows are stacked in a notional third dimension
|
||||
perpendicular to the screen surface, and thus ordered from ``highest''
|
||||
to ``lowest''. Where two windows overlap, the one higher up covers
|
||||
to ``lowest.'' Where two windows overlap, the one higher up covers
|
||||
the one underneath. Even a window at the bottom of the stack can be
|
||||
seen if no other window overlaps it.
|
||||
|
||||
|
|
@ -1259,7 +1261,7 @@ seen if no other window overlaps it.
|
|||
@cindex lowering a frame
|
||||
A window's place in this ordering is not fixed; in fact, users tend
|
||||
to change the order frequently. @dfn{Raising} a window means moving
|
||||
it ``up'', to the top of the stack. @dfn{Lowering} a window means
|
||||
it ``up,'' to the top of the stack. @dfn{Lowering} a window means
|
||||
moving it to the bottom of the stack. This motion is in the notional
|
||||
third dimension only, and does not change the position of the window
|
||||
on the screen.
|
||||
|
|
@ -1519,7 +1521,7 @@ the menu keymap as necessary.
|
|||
A dialog box is a variant of a pop-up menu---it looks a little
|
||||
different, it always appears in the center of a frame, and it has just
|
||||
one level and one or more buttons. The main use of dialog boxes is
|
||||
for asking questions that the user can answer with ``yes'', ``no'',
|
||||
for asking questions that the user can answer with ``yes,'' ``no,''
|
||||
and a few other alternatives. With a single button, they can also
|
||||
force the user to acknowledge important information. The functions
|
||||
@code{y-or-n-p} and @code{yes-or-no-p} use dialog boxes instead of the
|
||||
|
|
@ -1780,7 +1782,7 @@ colors.)
|
|||
These functions provide a way to determine which color names are
|
||||
valid, and what they look like. In some cases, the value depends on the
|
||||
@dfn{selected frame}, as described below; see @ref{Input Focus}, for the
|
||||
meaning of the term ``selected frame''.
|
||||
meaning of the term ``selected frame.''
|
||||
|
||||
@defun color-defined-p color &optional frame
|
||||
This function reports whether a color name is meaningful. It returns
|
||||
|
|
@ -2150,7 +2152,7 @@ software (as a string). Really this means whoever distributes the X
|
|||
server.
|
||||
|
||||
When the developers of X labelled software distributors as
|
||||
``vendors'', they showed their false assumption that no system could
|
||||
``vendors,'' they showed their false assumption that no system could
|
||||
ever be developed and distributed noncommercially.
|
||||
@end defun
|
||||
|
||||
|
|
|
|||
|
|
@ -485,7 +485,7 @@ more convenient than making the function definition point to itself
|
|||
practice).
|
||||
|
||||
We often identify functions with the symbols used to name them. For
|
||||
example, we often speak of ``the function @code{car}'', not
|
||||
example, we often speak of ``the function @code{car},'' not
|
||||
distinguishing between the symbol @code{car} and the primitive
|
||||
subr-object that is its function definition. For most purposes, the
|
||||
distinction is not important.
|
||||
|
|
@ -766,12 +766,10 @@ in turn, and returns a list of the results.
|
|||
The argument @var{sequence} can be any kind of sequence except a
|
||||
char-table; that is, a list, a vector, a bool-vector, or a string. The
|
||||
result is always a list. The length of the result is the same as the
|
||||
length of @var{sequence}.
|
||||
length of @var{sequence}. For example:
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
@exdent @r{For example:}
|
||||
|
||||
(mapcar 'car '((a b) (c d) (e f)))
|
||||
@result{} (a c e)
|
||||
(mapcar '1+ [1 2 3])
|
||||
|
|
@ -846,7 +844,7 @@ bool-vector, or a string.
|
|||
|
||||
In Lisp, a function is a list that starts with @code{lambda}, a
|
||||
byte-code function compiled from such a list, or alternatively a
|
||||
primitive subr-object; names are ``extra''. Although usually functions
|
||||
primitive subr-object; names are ``extra.'' Although usually functions
|
||||
are defined with @code{defun} and given names at the same time, it is
|
||||
occasionally more concise to use an explicit lambda expression---an
|
||||
anonymous function. Such a list is valid wherever a function name is.
|
||||
|
|
|
|||
|
|
@ -75,13 +75,13 @@ modification follow.
|
|||
@item
|
||||
This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The ``Program'', below,
|
||||
under the terms of this General Public License. The ``Program,'' below,
|
||||
refers to any such program or work, and a ``work based on the Program''
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term ``modification''.) Each licensee is addressed as ``you''.
|
||||
the term ``modification.'') Each licensee is addressed as ``you.''
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
|
|
@ -274,7 +274,7 @@ address new problems or concerns.
|
|||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and ``any
|
||||
later version'', you have the option of following the terms and conditions
|
||||
later version,'' you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
|
|
|
|||
|
|
@ -79,13 +79,13 @@ alternatives:
|
|||
Keys which are numbers are ``the same'' if they are @code{equal}, that
|
||||
is, if they are equal in value and either both are integers or both
|
||||
are floating point numbers; otherwise, two distinct objects are never
|
||||
``the same''.
|
||||
``the same.''
|
||||
|
||||
@item eq
|
||||
Any two distinct Lisp objects are ``different'' as keys.
|
||||
|
||||
@item equal
|
||||
Two Lisp objects are ``the same'', as keys, if they are equal
|
||||
Two Lisp objects are ``the same,'' as keys, if they are equal
|
||||
according to @code{equal}.
|
||||
@end table
|
||||
|
||||
|
|
@ -269,7 +269,6 @@ compared case-insensitively.
|
|||
@example
|
||||
(defun case-fold-string= (a b)
|
||||
(compare-strings a nil nil b nil nil t))
|
||||
|
||||
(defun case-fold-string-hash (a)
|
||||
(sxhash (upcase a)))
|
||||
|
||||
|
|
|
|||
|
|
@ -1270,7 +1270,7 @@ Non-@code{nil} means current value of @code{start} was the beginning of a line
|
|||
when it was chosen.
|
||||
|
||||
@item too_small_ok
|
||||
Non-@code{nil} means don't delete this window for becoming ``too small''.
|
||||
Non-@code{nil} means don't delete this window for becoming ``too small.''
|
||||
|
||||
@item height_fixed_p
|
||||
This field is temporarily set to 1 to fix the height of the selected
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ printer'' refer to those routines in Lisp that convert textual
|
|||
representations of Lisp objects into actual Lisp objects, and vice
|
||||
versa. @xref{Printed Representation}, for more details. You, the
|
||||
person reading this manual, are thought of as ``the programmer'' and are
|
||||
addressed as ``you''. ``The user'' is the person who uses Lisp
|
||||
addressed as ``you.'' ``The user'' is the person who uses Lisp
|
||||
programs, including those you write.
|
||||
|
||||
@cindex fonts in this manual
|
||||
|
|
@ -233,7 +233,7 @@ the examples in this manual, this is indicated with @samp{@result{}}:
|
|||
@end example
|
||||
|
||||
@noindent
|
||||
You can read this as ``@code{(car '(1 2))} evaluates to 1''.
|
||||
You can read this as ``@code{(car '(1 2))} evaluates to 1.''
|
||||
|
||||
When a form is a macro call, it expands into a new form for Lisp to
|
||||
evaluate. We show the result of the expansion with
|
||||
|
|
|
|||
|
|
@ -2232,7 +2232,7 @@ Next we define the menu items:
|
|||
Note the symbols which the bindings are ``made for''; these appear
|
||||
inside square brackets, in the key sequence being defined. In some
|
||||
cases, this symbol is the same as the command name; sometimes it is
|
||||
different. These symbols are treated as ``function keys'', but they are
|
||||
different. These symbols are treated as ``function keys,'' but they are
|
||||
not real function keys on the keyboard. They do not affect the
|
||||
functioning of the menu itself, but they are ``echoed'' in the echo area
|
||||
when the user selects from the menu, and they appear in the output of
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ the whole list.
|
|||
* List-related Predicates:: Is this object a list? Comparing two lists.
|
||||
* List Elements:: Extracting the pieces of a list.
|
||||
* Building Lists:: Creating list structure.
|
||||
* List Variables:: Modifying lists stored in variables.
|
||||
* Modifying Lists:: Storing new pieces into an existing list.
|
||||
* Sets And Lists:: A list can represent a finite mathematical set.
|
||||
* Association Lists:: A list can represent a finite relation or mapping.
|
||||
|
|
@ -431,20 +432,6 @@ used in this example and the function named @code{list} described below;
|
|||
any symbol can serve both purposes.
|
||||
@end defun
|
||||
|
||||
@defmac push newelt listname
|
||||
This macro provides an alternative way to write
|
||||
@code{(setq @var{listname} (cons @var{newelt} @var{listname}))}.
|
||||
|
||||
@example
|
||||
(setq l '(a b))
|
||||
@result{} (a b)
|
||||
(push 'c l)
|
||||
@result{} (c a b)
|
||||
l
|
||||
@result{} (c a b)
|
||||
@end example
|
||||
@end defmac
|
||||
|
||||
@defun list &rest objects
|
||||
This function creates a list with @var{objects} as its elements. The
|
||||
resulting list is always @code{nil}-terminated. If no @var{objects}
|
||||
|
|
@ -704,6 +691,124 @@ Some examples:
|
|||
@end example
|
||||
@end defun
|
||||
|
||||
@node List Variables
|
||||
@section Modifying List Variables
|
||||
|
||||
These functions, and one macro, provide convenient ways
|
||||
to modify a list which is stored in a variable.
|
||||
|
||||
@defmac push newelt listname
|
||||
This macro provides an alternative way to write
|
||||
@code{(setq @var{listname} (cons @var{newelt} @var{listname}))}.
|
||||
|
||||
@example
|
||||
(setq l '(a b))
|
||||
@result{} (a b)
|
||||
(push 'c l)
|
||||
@result{} (c a b)
|
||||
l
|
||||
@result{} (c a b)
|
||||
@end example
|
||||
@end defmac
|
||||
|
||||
Two functions modify lists that are the values of variables.
|
||||
|
||||
@defun add-to-list symbol element &optional append
|
||||
This function sets the variable @var{symbol} by consing @var{element}
|
||||
onto the old value, if @var{element} is not already a member of that
|
||||
value. It returns the resulting list, whether updated or not. The
|
||||
value of @var{symbol} had better be a list already before the call.
|
||||
Membership is tested using @code{equal}.
|
||||
|
||||
Normally, if @var{element} is added, it is added to the front of
|
||||
@var{symbol}, but if the optional argument @var{append} is
|
||||
non-@code{nil}, it is added at the end.
|
||||
|
||||
The argument @var{symbol} is not implicitly quoted; @code{add-to-list}
|
||||
is an ordinary function, like @code{set} and unlike @code{setq}. Quote
|
||||
the argument yourself if that is what you want.
|
||||
@end defun
|
||||
|
||||
Here's a scenario showing how to use @code{add-to-list}:
|
||||
|
||||
@example
|
||||
(setq foo '(a b))
|
||||
@result{} (a b)
|
||||
|
||||
(add-to-list 'foo 'c) ;; @r{Add @code{c}.}
|
||||
@result{} (c a b)
|
||||
|
||||
(add-to-list 'foo 'b) ;; @r{No effect.}
|
||||
@result{} (c a b)
|
||||
|
||||
foo ;; @r{@code{foo} was changed.}
|
||||
@result{} (c a b)
|
||||
@end example
|
||||
|
||||
An equivalent expression for @code{(add-to-list '@var{var}
|
||||
@var{value})} is this:
|
||||
|
||||
@example
|
||||
(or (member @var{value} @var{var})
|
||||
(setq @var{var} (cons @var{value} @var{var})))
|
||||
@end example
|
||||
|
||||
@defun add-to-ordered-list symbol element &optional order
|
||||
This function sets the variable @var{symbol} by inserting
|
||||
@var{element} into the old value, which must be a list, at the
|
||||
position specified by @var{order}. If @var{element} is already a
|
||||
member of the list, its position in the list is adjusted according
|
||||
to @var{order}. Membership is tested using @code{eq}.
|
||||
This function returns the resulting list, whether updated or not.
|
||||
|
||||
The @var{order} is typically a number (integer or float), and the
|
||||
elements of the list are sorted in non-decreasing numerical order.
|
||||
|
||||
@var{order} may also be omitted or @code{nil}. Then the numeric order
|
||||
of @var{element} stays unchanged if it already has one; otherwise,
|
||||
@var{element} has no numeric order. Elements without a numeric list
|
||||
order are placed at the end of the list, in no particular order.
|
||||
|
||||
Any other value for @var{order} removes the numeric order of @var{element}
|
||||
if it already has one; otherwise, it is equivalent to @code{nil}.
|
||||
|
||||
The argument @var{symbol} is not implicitly quoted;
|
||||
@code{add-to-ordered-list} is an ordinary function, like @code{set}
|
||||
and unlike @code{setq}. Quote the argument yourself if that is what
|
||||
you want.
|
||||
|
||||
The ordering information is stored in a hash table on @var{symbol}'s
|
||||
@code{list-order} property.
|
||||
@end defun
|
||||
|
||||
Here's a scenario showing how to use @code{add-to-ordered-list}:
|
||||
|
||||
@example
|
||||
(setq foo '())
|
||||
@result{} nil
|
||||
|
||||
(add-to-ordered-list 'foo 'a 1) ;; @r{Add @code{a}.}
|
||||
@result{} (a)
|
||||
|
||||
(add-to-ordered-list 'foo 'c 3) ;; @r{Add @code{c}.}
|
||||
@result{} (a c)
|
||||
|
||||
(add-to-ordered-list 'foo 'b 2) ;; @r{Add @code{b}.}
|
||||
@result{} (a b c)
|
||||
|
||||
(add-to-ordered-list 'foo 'b 4) ;; @r{Move @code{b}.}
|
||||
@result{} (a c b)
|
||||
|
||||
(add-to-ordered-list 'foo 'd) ;; @r{Append @code{d}.}
|
||||
@result{} (a c b d)
|
||||
|
||||
(add-to-ordered-list 'foo 'e) ;; @r{Add @code{e}}.
|
||||
@result{} (a c b e d)
|
||||
|
||||
foo ;; @r{@code{foo} was changed.}
|
||||
@result{} (a c b e d)
|
||||
@end example
|
||||
|
||||
@node Modifying Lists
|
||||
@section Modifying Existing List Structure
|
||||
@cindex destructive list operations
|
||||
|
|
@ -1412,8 +1517,8 @@ the value @code{cones}; the key @code{oak} is associated with
|
|||
@end group
|
||||
@end example
|
||||
|
||||
The associated values in an alist may be any Lisp objects; so may the
|
||||
keys. For example, in the following alist, the symbol @code{a} is
|
||||
Both the values and the keys in an alist may be any Lisp objects.
|
||||
For example, in the following alist, the symbol @code{a} is
|
||||
associated with the number @code{1}, and the string @code{"b"} is
|
||||
associated with the @emph{list} @code{(2 3)}, which is the @sc{cdr} of
|
||||
the alist element:
|
||||
|
|
@ -1439,7 +1544,7 @@ below) to find the element containing a given value. When neither of
|
|||
these considerations is important, the choice is a matter of taste, as
|
||||
long as you are consistent about it for any given alist.
|
||||
|
||||
Note that the same alist shown above could be regarded as having the
|
||||
The same alist shown above could be regarded as having the
|
||||
associated value in the @sc{cdr} of the element; the value associated
|
||||
with @code{rose} would be the list @code{(red)}.
|
||||
|
||||
|
|
@ -1503,7 +1608,7 @@ a @sc{cdr} @code{equal} to @var{value}.
|
|||
|
||||
@code{rassoc} is like @code{assoc} except that it compares the @sc{cdr} of
|
||||
each @var{alist} association instead of the @sc{car}. You can think of
|
||||
this as ``reverse @code{assoc}'', finding the key for a given value.
|
||||
this as ``reverse @code{assoc},'' finding the key for a given value.
|
||||
@end defun
|
||||
|
||||
@defun assq key alist
|
||||
|
|
@ -1544,7 +1649,7 @@ a @sc{cdr} @code{eq} to @var{value}.
|
|||
|
||||
@code{rassq} is like @code{assq} except that it compares the @sc{cdr} of
|
||||
each @var{alist} association instead of the @sc{car}. You can think of
|
||||
this as ``reverse @code{assq}'', finding the key for a given value.
|
||||
this as ``reverse @code{assq},'' finding the key for a given value.
|
||||
|
||||
For example:
|
||||
|
||||
|
|
@ -1557,7 +1662,7 @@ For example:
|
|||
@result{} nil
|
||||
@end smallexample
|
||||
|
||||
Note that @code{rassq} cannot search for a value stored in the @sc{car}
|
||||
@code{rassq} cannot search for a value stored in the @sc{car}
|
||||
of the @sc{cdr} of an element:
|
||||
|
||||
@smallexample
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ containing Lisp code.
|
|||
* Repeated Loading:: Precautions about loading a file twice.
|
||||
* Named Features:: Loading a library if it isn't already loaded.
|
||||
* Where Defined:: Finding which file defined a certain symbol.
|
||||
* Unloading:: How to ``unload'' a library that was loaded.
|
||||
* Unloading:: How to "unload" a library that was loaded.
|
||||
* Hooks for Loading:: Providing code to be run when
|
||||
particular libraries are loaded.
|
||||
@end menu
|
||||
|
|
@ -155,8 +155,10 @@ file, and it is @code{nil} otherwise.
|
|||
@end defvar
|
||||
|
||||
@defvar load-read-function
|
||||
This
|
||||
@anchor{Definition of load-read-function}
|
||||
This variable specifies an alternate expression-reading function for
|
||||
@c do not allow page break at anchor; work around Texinfo deficiency.
|
||||
variable specifies an alternate expression-reading function for
|
||||
@code{load} and @code{eval-region} to use instead of @code{read}.
|
||||
The function should accept one argument, just as @code{read} does.
|
||||
|
||||
|
|
|
|||
|
|
@ -12,11 +12,17 @@ Some of these exist when Emacs is first started, others are
|
|||
loaded only when their respective mode is used. This is not
|
||||
an exhaustive list.
|
||||
|
||||
Several keymaps are used in the minibuffer. @xref{Completion Commands}.
|
||||
|
||||
Almost all of these maps are used as local maps. Indeed, of the modes
|
||||
that presently exist, only Vip mode and Terminal mode ever change the
|
||||
global keymap.
|
||||
|
||||
@table @code
|
||||
@item apropos-mode-map
|
||||
@vindex apropos-mode-map
|
||||
A sparse keymap for @code{apropos} buffers.
|
||||
|
||||
@item Buffer-menu-mode-map
|
||||
@vindex Buffer-menu-mode-map
|
||||
A full keymap used by Buffer Menu mode.
|
||||
|
|
@ -38,6 +44,9 @@ A sparse keymap for subcommands of the prefix @kbd{C-x 5}.
|
|||
@item ctl-x-map
|
||||
A full keymap for @kbd{C-x} commands.
|
||||
|
||||
@item custom-mode-map
|
||||
A full keymap for Custom mode.
|
||||
|
||||
@item debugger-mode-map
|
||||
@vindex debugger-mode-map
|
||||
A full keymap used by Debugger mode.
|
||||
|
|
@ -66,6 +75,10 @@ A full keymap used by Electric Command History mode.
|
|||
@vindex emacs-lisp-mode-map
|
||||
A sparse keymap used by Emacs Lisp mode.
|
||||
|
||||
@item esc-map
|
||||
@vindex esc-map
|
||||
A full keymap for @kbd{ESC} (or @kbd{Meta}) commands.
|
||||
|
||||
@item facemenu-menu
|
||||
@vindex facemenu-menu
|
||||
The sparse keymap that displays the Text Properties menu.
|
||||
|
|
@ -109,6 +122,21 @@ If there are none, then it contains an empty sparse keymap.
|
|||
The sparse keymap for Fundamental mode.@*
|
||||
It is empty and should not be changed.
|
||||
|
||||
@item global-map
|
||||
The full keymap containing default global key bindings.@*
|
||||
Modes should not modify the Global map.
|
||||
|
||||
@item grep-mode-map
|
||||
@vindex grep-mode-map
|
||||
The keymap for @code{grep-mode} buffers.
|
||||
|
||||
@item help-map
|
||||
The sparse keymap for the keys that follow the help character @kbd{C-h}.
|
||||
|
||||
@item help-mode-map
|
||||
@vindex help-mode-map
|
||||
The sparse keymap for Help mode.
|
||||
|
||||
@item Helper-help-map
|
||||
@vindex Helper-help-map
|
||||
A full keymap used by the help utility package.@*
|
||||
|
|
@ -132,6 +160,11 @@ search.
|
|||
A keymap for translating keys. This one overrides ordinary key
|
||||
bindings, unlike @code{function-key-map}. @xref{Translating Input}.
|
||||
|
||||
@item kmacro-map
|
||||
@vindex kmacro-map
|
||||
A sparse keymap for keys that follows the @kbd{C-x C-k} prefix
|
||||
search.
|
||||
|
||||
@item lisp-interaction-mode-map
|
||||
@vindex lisp-interaction-mode-map
|
||||
A sparse keymap used by Lisp Interaction mode.
|
||||
|
|
@ -184,6 +217,9 @@ time.
|
|||
@vindex text-mode-map
|
||||
A sparse keymap used by Text mode.
|
||||
|
||||
@item tool-bar-map
|
||||
The keymap defining the contents of the tool bar.
|
||||
|
||||
@item view-mode-map
|
||||
@vindex view-mode-map
|
||||
A full keymap used by View mode.
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ deleted, so that it stays with the two characters on either side of it.
|
|||
* Marker Insertion Types:: Two ways a marker can relocate when you
|
||||
insert where it points.
|
||||
* Moving Markers:: Moving the marker to a new buffer or position.
|
||||
* The Mark:: How ``the mark'' is implemented with a marker.
|
||||
* The Region:: How to access ``the region''.
|
||||
* The Mark:: How "the mark" is implemented with a marker.
|
||||
* The Region:: How to access "the region".
|
||||
@end menu
|
||||
|
||||
@node Overview of Markers
|
||||
|
|
|
|||
|
|
@ -208,8 +208,10 @@ properties unconditionally, regardless of the value of this variable.
|
|||
@end defvar
|
||||
|
||||
@defvar minibuffer-local-map
|
||||
This
|
||||
@anchor{Definition of minibuffer-local-map}
|
||||
This is the default local keymap for reading from the minibuffer. By
|
||||
@c avoid page break at anchor; work around Texinfo deficiency
|
||||
is the default local keymap for reading from the minibuffer. By
|
||||
default, it makes the following bindings:
|
||||
|
||||
@table @asis
|
||||
|
|
@ -1509,7 +1511,7 @@ the call.
|
|||
This function asks the user a question, expecting input in the echo
|
||||
area. It returns @code{t} if the user types @kbd{y}, @code{nil} if the
|
||||
user types @kbd{n}. This function also accepts @key{SPC} to mean yes
|
||||
and @key{DEL} to mean no. It accepts @kbd{C-]} to mean ``quit'', like
|
||||
and @key{DEL} to mean no. It accepts @kbd{C-]} to mean ``quit,'' like
|
||||
@kbd{C-g}, because the question might look like a minibuffer and for
|
||||
that reason the user might try to use @kbd{C-]} to get out. The answer
|
||||
is a single character, with no @key{RET} needed to terminate it. Upper
|
||||
|
|
@ -1699,7 +1701,7 @@ answer); @var{function} is a function of one argument (an object from
|
|||
|
||||
When the user responds with @var{char}, @code{map-y-or-n-p} calls
|
||||
@var{function}. If it returns non-@code{nil}, the object is considered
|
||||
``acted upon'', and @code{map-y-or-n-p} advances to the next object in
|
||||
``acted upon,'' and @code{map-y-or-n-p} advances to the next object in
|
||||
@var{list}. If it returns @code{nil}, the prompt is repeated for the
|
||||
same object.
|
||||
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ If @var{function} is already present in @var{hook} (comparing using
|
|||
|
||||
It is best to design your hook functions so that the order in which they
|
||||
are executed does not matter. Any dependence on the order is ``asking
|
||||
for trouble''. However, the order is predictable: normally,
|
||||
for trouble.'' However, the order is predictable: normally,
|
||||
@var{function} goes at the front of the hook list, so it will be
|
||||
executed first (barring another @code{add-hook} call). If the optional
|
||||
argument @var{append} is non-@code{nil}, the new hook function goes at
|
||||
|
|
@ -1139,7 +1139,7 @@ it should not use @code{after-change-major-mode-hook} as of yet.
|
|||
|
||||
When you defined a major mode using @code{define-derived-mode}, it
|
||||
automatically makes sure these conventions are followed. If you
|
||||
define a major mode ``from scratch'', not using
|
||||
define a major mode ``from scratch,'' not using
|
||||
@code{define-derived-mode}, make sure the major mode command follows
|
||||
these and other conventions. @xref{Major Mode Conventions}. You use
|
||||
these functions to do it properly.
|
||||
|
|
@ -1354,9 +1354,8 @@ substituting your own definition of @code{self-insert-command} for the
|
|||
standard one. The editor command loop handles this function specially.)
|
||||
|
||||
The key sequences bound in a minor mode should consist of @kbd{C-c}
|
||||
followed by a punctuation character @emph{other than} @kbd{@{},
|
||||
@kbd{@}}, @kbd{<}, @kbd{>}, @kbd{:}, and @kbd{;}. (Those few punctuation
|
||||
characters are reserved for major modes.)
|
||||
followed by one of @kbd{.,/?`'"[]\|~!#$%^&*()-_+=}. (The other
|
||||
punctuation characters are reserved for major modes.)
|
||||
|
||||
@node Defining Minor Modes
|
||||
@subsection Defining Minor Modes
|
||||
|
|
@ -1456,7 +1455,7 @@ See the command \\[hungry-electric-delete]."
|
|||
@end smallexample
|
||||
|
||||
@noindent
|
||||
This defines a minor mode named ``Hungry mode'', a command named
|
||||
This defines a minor mode named ``Hungry mode,'' a command named
|
||||
@code{hungry-mode} to toggle it, a variable named @code{hungry-mode}
|
||||
which indicates whether the mode is enabled, and a variable named
|
||||
@code{hungry-mode-map} which holds the keymap that is active when the
|
||||
|
|
@ -2918,7 +2917,8 @@ way for a mode to set this variable to @code{t} is with
|
|||
@defvar font-lock-syntax-table
|
||||
This variable holds the syntax table to use for fontification of
|
||||
comments and strings. Specify it using @var{syntax-alist} in
|
||||
@code{font-lock-defaults}.
|
||||
@code{font-lock-defaults}. If this is @code{nil}, fontification uses
|
||||
the buffer's syntax table.
|
||||
@end defvar
|
||||
|
||||
@defvar font-lock-beginning-of-syntax-function
|
||||
|
|
@ -3049,7 +3049,7 @@ constructs:
|
|||
|
||||
@itemize
|
||||
@item
|
||||
Place a @code{font-lock-multiline} or @code{jit-lock-defer-multiline}
|
||||
Place a @code{font-lock-multiline}
|
||||
property on the construct when it is added to the buffer.
|
||||
@item
|
||||
Use @code{font-lock-fontify-region-function} hook to extend the scan
|
||||
|
|
@ -3076,7 +3076,6 @@ this can be an attractive solution.
|
|||
Place a @code{jit-lock-defer-multiline} property on the construct.
|
||||
This works only if @code{jit-lock-contextually} is used, but it can
|
||||
handle the case where highlighting depends on subsequent lines.
|
||||
@item
|
||||
@end itemize
|
||||
|
||||
@menu
|
||||
|
|
|
|||
|
|
@ -606,12 +606,11 @@ otherwise, it signals an @code{arith-error} error.
|
|||
@result{} 2.5
|
||||
(/ 25 3 2)
|
||||
@result{} 4
|
||||
@group
|
||||
(/ -17 6)
|
||||
@result{} -2
|
||||
@result{} -2 @r{(could in theory be @minus{}3 on some machines)}
|
||||
@end group
|
||||
@end example
|
||||
|
||||
The result of @code{(/ -17 6)} could in principle be -3 on some
|
||||
machines.
|
||||
@end defun
|
||||
|
||||
@defun % dividend divisor
|
||||
|
|
@ -738,7 +737,7 @@ and returns that value as a floating point number.
|
|||
sequence of @dfn{bits} (digits which are either zero or one). A bitwise
|
||||
operation acts on the individual bits of such a sequence. For example,
|
||||
@dfn{shifting} moves the whole sequence left or right one or more places,
|
||||
reproducing the same pattern ``moved over''.
|
||||
reproducing the same pattern ``moved over.''
|
||||
|
||||
The bitwise operations in Emacs Lisp apply only to integers.
|
||||
|
||||
|
|
|
|||
|
|
@ -632,7 +632,7 @@ come to refer to any structure made out of cons cells.
|
|||
|
||||
@cindex atom
|
||||
Because cons cells are so central to Lisp, we also have a word for
|
||||
``an object which is not a cons cell''. These objects are called
|
||||
``an object which is not a cons cell.'' These objects are called
|
||||
@dfn{atoms}.
|
||||
|
||||
@cindex parenthesis
|
||||
|
|
@ -1195,18 +1195,19 @@ Hash tables have no read syntax, and print using hash notation.
|
|||
@node Function Type
|
||||
@subsection Function Type
|
||||
|
||||
Just as functions in other programming languages are executable,
|
||||
@dfn{Lisp function} objects are pieces of executable code. However,
|
||||
functions in Lisp are primarily Lisp objects, and only secondarily the
|
||||
text which represents them. These Lisp objects are lambda expressions:
|
||||
lists whose first element is the symbol @code{lambda} (@pxref{Lambda
|
||||
Expressions}).
|
||||
Lisp functions are executable code, just like functions in other
|
||||
programming languages. In Lisp, unlike most languages, functions are
|
||||
also Lisp objects. A non-compiled function in Lisp is a lambda
|
||||
expression: that is, a list whose first element is the symbol
|
||||
@code{lambda} (@pxref{Lambda Expressions}).
|
||||
|
||||
In most programming languages, it is impossible to have a function
|
||||
without a name. In Lisp, a function has no intrinsic name. A lambda
|
||||
expression is also called an @dfn{anonymous function} (@pxref{Anonymous
|
||||
Functions}). A named function in Lisp is actually a symbol with a valid
|
||||
function in its function cell (@pxref{Defining Functions}).
|
||||
expression can be called as a function even though it has no name; to
|
||||
emphasize this, we also call it an @dfn{anonymous function}
|
||||
(@pxref{Anonymous Functions}). A named function in Lisp is just a
|
||||
symbol with a valid function in its function cell (@pxref{Defining
|
||||
Functions}).
|
||||
|
||||
Most of the time, functions are called when their names are written in
|
||||
Lisp expressions in Lisp programs. However, you can construct or obtain
|
||||
|
|
@ -1238,7 +1239,7 @@ without qualification, we mean a Lisp macro, not a keyboard macro.
|
|||
A @dfn{primitive function} is a function callable from Lisp but
|
||||
written in the C programming language. Primitive functions are also
|
||||
called @dfn{subrs} or @dfn{built-in functions}. (The word ``subr'' is
|
||||
derived from ``subroutine''.) Most primitive functions evaluate all
|
||||
derived from ``subroutine.'') Most primitive functions evaluate all
|
||||
their arguments when they are called. A primitive function that does
|
||||
not evaluate all its arguments is called a @dfn{special form}
|
||||
(@pxref{Special Forms}).@refill
|
||||
|
|
@ -1822,12 +1823,14 @@ This function returns a symbol naming the primitive type of
|
|||
@example
|
||||
(type-of 1)
|
||||
@result{} integer
|
||||
@group
|
||||
(type-of 'nil)
|
||||
@result{} symbol
|
||||
(type-of '()) ; @r{@code{()} is @code{nil}.}
|
||||
@result{} symbol
|
||||
(type-of '(x))
|
||||
@result{} cons
|
||||
@end group
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
|
|
|
|||
|
|
@ -1836,10 +1836,11 @@ tells you what Emacs thinks is the output speed of the terminal.
|
|||
This variable's value is the output speed of the terminal, as far as
|
||||
Emacs knows. Setting this variable does not change the speed of actual
|
||||
data transmission, but the value is used for calculations such as
|
||||
padding. It also affects decisions about whether to scroll part of the
|
||||
screen or repaint---even when using a window system. (We designed it
|
||||
this way despite the fact that a window system has no true ``output
|
||||
speed'', to give you a way to tune these decisions.)
|
||||
padding.
|
||||
|
||||
It also affects decisions about whether to scroll part of the
|
||||
screen or repaint on text terminals. @xref{Forcing Redisplay},
|
||||
for the corresponding functionality on graphical terminals.
|
||||
|
||||
The value is measured in baud.
|
||||
@end defvar
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue