mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-18 02:47:36 +00:00
merge trunk
This commit is contained in:
commit
c194970e15
294 changed files with 8085 additions and 4708 deletions
19
ChangeLog
19
ChangeLog
|
|
@ -1,3 +1,22 @@
|
|||
2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Merge from gnulib, incorporating:
|
||||
2012-09-28 extern-inline: provide a -Wundef safe config.h
|
||||
|
||||
2012-09-27 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Check more robustly for timer_settime.
|
||||
This should fix an OS X build problem reported by Ivan Andrus in
|
||||
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00671.html>.
|
||||
* configure.ac (gl_THREADLIB): Define to empty, since Emacs
|
||||
does threads its own way.
|
||||
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
|
||||
|
||||
2012-09-23 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* Makefile.in (bootstrap): Set MAKEFILE_NAME when building Makefile,
|
||||
to avoid problems with recursion when using GNU make.
|
||||
|
||||
2012-09-22 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* Makefile.in (bootstrap): Simplify build procedure.
|
||||
|
|
|
|||
|
|
@ -355,6 +355,10 @@ blessmail: Makefile src FRC
|
|||
# config.status overrides MAKEFILE_NAME with a bogus name when creating
|
||||
# src/epaths.h, so that 'make epaths-force' does not recursively invoke
|
||||
# config.status and overwrite config.status while executing it (Bug#11214).
|
||||
#
|
||||
# 'make bootstrap' overrides MAKEFILE_NAME to a nonexistent file but
|
||||
# then attempts to build that file. This forces 'Makefile', 'lib/Makefile',
|
||||
# etc. to be built without running into similar recursion problems.
|
||||
MAKEFILE_NAME = Makefile
|
||||
$(MAKEFILE_NAME): config.status $(srcdir)/src/config.in \
|
||||
$(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN)
|
||||
|
|
@ -895,7 +899,7 @@ dvi:
|
|||
# * Do the actual build.
|
||||
bootstrap: bootstrap-clean FRC
|
||||
cd $(srcdir) && { ./autogen.sh || autogen/copy_autogen; }
|
||||
$(MAKE) $(MFLAGS) Makefile
|
||||
$(MAKE) $(MFLAGS) MAKEFILE_NAME=force-Makefile force-Makefile
|
||||
$(MAKE) $(MFLAGS) info all
|
||||
|
||||
.PHONY: check-declare
|
||||
|
|
|
|||
|
|
@ -1,3 +1,17 @@
|
|||
2012-09-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (set-version): Set msdos.c's Vwindow_system_version.
|
||||
|
||||
2012-09-27 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Check more robustly for timer_settime.
|
||||
* merge-gnulib (GNULIB_MODULES): Add timer-time.
|
||||
|
||||
2012-09-26 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* unidata/BidiMirroring.txt:
|
||||
* unidata/UnicodeData.txt: Update to Unicode 6.2.
|
||||
|
||||
2012-09-17 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (add-log-time-format): Declare.
|
||||
|
|
|
|||
|
|
@ -129,8 +129,12 @@ Root must be the root of an Emacs source tree."
|
|||
(rx (and "\"ProductVersion\"" (0+ space) ?,
|
||||
(0+ space) ?\" (submatch (1+ (in "0-9, ")))
|
||||
"\\0\"")))
|
||||
;; Major version only.
|
||||
(when (string-match "\\([0-9]\\{2,\\}\\)" version)
|
||||
(setq version (match-string 1 version))
|
||||
(set-version-in-file root "src/msdos.c" version
|
||||
(rx (and "Vwindow_system_version" (1+ not-newline)
|
||||
?\( (submatch (1+ (in "0-9"))) ?\))))
|
||||
(set-version-in-file root "etc/refcards/ru-refcard.tex" version
|
||||
"\\\\newcommand{\\\\versionemacs}\\[0\\]\
|
||||
{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ GNULIB_MODULES='
|
|||
manywarnings mktime pselect pthread_sigmask readlink
|
||||
socklen stat-time stdalign stdarg stdbool stdio
|
||||
strftime strtoimax strtoumax symlink sys_stat
|
||||
sys_time time timespec-add timespec-sub utimens
|
||||
sys_time time timer-time timespec-add timespec-sub utimens
|
||||
warnings
|
||||
'
|
||||
|
||||
|
|
|
|||
|
|
@ -610,7 +610,7 @@ An /etc/aliases entry redirects it to the real emacs-bug-tracker address.
|
|||
All discarded messages are stored in /var/lib/mailman/spam.
|
||||
If a non-spam message accidentally gets discarded, just do:
|
||||
|
||||
cat /var/lib/mailman/spam/not-really-spam.msg | /usr/lib/debbugs/receive
|
||||
/usr/lib/debbugs/receive < /var/lib/mailman/spam/not-really-spam.msg
|
||||
chown Debian-debbugs:Debian-debbugs /var/lib/debbugs/spool/incoming/*
|
||||
... check it works ...
|
||||
mv /var/lib/mailman/spam/not-really-spam.msg /var/lib/mailman/not-spam/
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
# BidiMirroring-6.1.0.txt
|
||||
# Date: 2011-12-20, 19:31:00 GMT [KW, LI]
|
||||
# BidiMirroring-6.2.0.txt
|
||||
# Date: 2012-05-15, 24:19:00 GMT [KW, LI]
|
||||
#
|
||||
# Bidi_Mirroring_Glyph Property
|
||||
#
|
||||
# This file is an informative contributory data file in the
|
||||
# Unicode Character Database.
|
||||
#
|
||||
# Copyright (c) 1991-2011 Unicode, Inc.
|
||||
# Copyright (c) 1991-2012 Unicode, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# This data file lists characters that have the Bidi_Mirrored=Yes property
|
||||
# value, for which there is another Unicode character that typically has a glyph
|
||||
# that is the mirror image of the original character's glyph.
|
||||
#
|
||||
# The repertoire covered by the file is Unicode 6.1.0.
|
||||
# The repertoire covered by the file is Unicode 6.2.0.
|
||||
#
|
||||
# The file contains a list of lines with mappings from one code point
|
||||
# to another one for character-based mirroring.
|
||||
|
|
@ -30,16 +30,8 @@
|
|||
# characters exist with mirrored glyphs, are
|
||||
# listed as comments at the end of the file.
|
||||
#
|
||||
# Note: (2011-12-19) There is an inconsistency between the
|
||||
# following statement about the default value
|
||||
# of the Bidi_Mirroring_Glyph property and the
|
||||
# value of the @missing line for Bidi_Mirroring_Glyph in
|
||||
# PropertyValueAliases.txt. This inconsistency was discovered too
|
||||
# late in the release process to be resolved by
|
||||
# the UTC. The inconsistency will be resolved in a future revision.
|
||||
#
|
||||
# Formally, the default value of the Bidi_Mirroring_Glyph property
|
||||
# for each code point is the code point itself, unless a mapping to
|
||||
# for each code point is <none>, unless a mapping to
|
||||
# some other character is specified in this data file. When a code
|
||||
# point has the default value for the Bidi_Mirroring_Glyph property,
|
||||
# that means that no other character exists whose glyph is suitable
|
||||
|
|
@ -50,12 +42,13 @@
|
|||
#
|
||||
# This file was originally created by Markus Scherer.
|
||||
# Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler,
|
||||
# and for Unicode 6.1 by Ken Whistler and Laurentiu Iancu.
|
||||
# and for Unicode 6.1 and 6.2 by Ken Whistler and Laurentiu Iancu.
|
||||
#
|
||||
# ############################################################
|
||||
#
|
||||
# Property: Bidi_Mirroring_Glyph
|
||||
#
|
||||
# @missing: 0000..10FFFF; <none>
|
||||
|
||||
0028; 0029 # LEFT PARENTHESIS
|
||||
0029; 0028 # RIGHT PARENTHESIS
|
||||
|
|
|
|||
|
|
@ -7190,6 +7190,7 @@
|
|||
20B7;SPESMILO SIGN;Sc;0;ET;;;;;N;;;;;
|
||||
20B8;TENGE SIGN;Sc;0;ET;;;;;N;;;;;
|
||||
20B9;INDIAN RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
|
||||
20BA;TURKISH LIRA SIGN;Sc;0;ET;;;;;N;;;;;
|
||||
20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;;
|
||||
20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;;
|
||||
20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;;
|
||||
|
|
@ -18703,8 +18704,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
|
|||
1242F;CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM;Nl;0;L;;;;3;N;;;;;
|
||||
12430;CUNEIFORM NUMERIC SIGN FOUR SHARU;Nl;0;L;;;;4;N;;;;;
|
||||
12431;CUNEIFORM NUMERIC SIGN FIVE SHARU;Nl;0;L;;;;5;N;;;;;
|
||||
12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;;N;;;;;
|
||||
12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;;N;;;;;
|
||||
12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;216000;N;;;;;
|
||||
12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;432000;N;;;;;
|
||||
12434;CUNEIFORM NUMERIC SIGN ONE BURU;Nl;0;L;;;;1;N;;;;;
|
||||
12435;CUNEIFORM NUMERIC SIGN TWO BURU;Nl;0;L;;;;2;N;;;;;
|
||||
12436;CUNEIFORM NUMERIC SIGN THREE BURU;Nl;0;L;;;;3;N;;;;;
|
||||
|
|
@ -18739,8 +18740,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
|
|||
12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;;
|
||||
12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;;
|
||||
12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;;
|
||||
12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;;N;;;;;
|
||||
12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;;N;;;;;
|
||||
12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;-1;N;;;;;
|
||||
12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;-1;N;;;;;
|
||||
12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;;
|
||||
12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;;
|
||||
1245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;;
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
# the same distribution terms as the rest of that program.
|
||||
#
|
||||
# Generated by gnulib-tool.
|
||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timespec-add timespec-sub utimens warnings
|
||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub utimens warnings
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
|
|
@ -95,11 +95,11 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
|||
$(top_srcdir)/m4/sys_socket_h.m4 \
|
||||
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
|
||||
$(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
|
||||
$(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \
|
||||
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/utimbuf.m4 \
|
||||
$(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \
|
||||
$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_t.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/timer_time.m4 $(top_srcdir)/m4/timespec.m4 \
|
||||
$(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/unistd_h.m4 \
|
||||
$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
|
||||
$(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/warnings.m4 \
|
||||
$(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
|
|
@ -566,6 +566,7 @@ LIB_MATH = @LIB_MATH@
|
|||
LIB_PTHREAD = @LIB_PTHREAD@
|
||||
LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@
|
||||
LIB_STANDARD = @LIB_STANDARD@
|
||||
LIB_TIMER_TIME = @LIB_TIMER_TIME@
|
||||
LN_S = @LN_S@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
|
|
|
|||
1
autogen/aclocal.m4
vendored
1
autogen/aclocal.m4
vendored
|
|
@ -1043,6 +1043,7 @@ m4_include([m4/sys_stat_h.m4])
|
|||
m4_include([m4/sys_time_h.m4])
|
||||
m4_include([m4/time_h.m4])
|
||||
m4_include([m4/time_r.m4])
|
||||
m4_include([m4/timer_time.m4])
|
||||
m4_include([m4/timespec.m4])
|
||||
m4_include([m4/tm_gmtoff.m4])
|
||||
m4_include([m4/unistd_h.m4])
|
||||
|
|
|
|||
|
|
@ -958,6 +958,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* Define to 1 if you have the tiff library (-ltiff). */
|
||||
#undef HAVE_TIFF
|
||||
|
||||
/* Define to 1 if you have the `timer_settime' function. */
|
||||
#undef HAVE_TIMER_SETTIME
|
||||
|
||||
/* Define if struct tm has the tm_gmtoff member. */
|
||||
#undef HAVE_TM_GMTOFF
|
||||
|
||||
|
|
@ -1519,7 +1522,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>.
|
||||
_GL_INLINE_HEADER_END contains useful stuff to put
|
||||
in the same include file, after uses of _GL_INLINE. */
|
||||
#if __GNUC__ ? __GNUC_STDC_INLINE__ : 199901L <= __STDC_VERSION__
|
||||
#if (__GNUC__ \
|
||||
? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
|
||||
: 199901L <= __STDC_VERSION__)
|
||||
# define _GL_INLINE inline
|
||||
# define _GL_EXTERN_INLINE extern inline
|
||||
#elif 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
|
||||
|
|
@ -1536,7 +1541,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
#endif
|
||||
|
||||
#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
|
||||
# if __GNUC_STDC_INLINE__
|
||||
# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
|
||||
# define _GL_INLINE_HEADER_CONST_PRAGMA
|
||||
# else
|
||||
# define _GL_INLINE_HEADER_CONST_PRAGMA \
|
||||
|
|
|
|||
160
autogen/configure
vendored
160
autogen/configure
vendored
|
|
@ -631,6 +631,7 @@ WINDOWS_64_BIT_OFF_T
|
|||
HAVE_UNISTD_H
|
||||
NEXT_AS_FIRST_DIRECTIVE_UNISTD_H
|
||||
NEXT_UNISTD_H
|
||||
LIB_TIMER_TIME
|
||||
PTHREAD_H_DEFINES_STRUCT_TIMESPEC
|
||||
SYS_TIME_H_DEFINES_STRUCT_TIMESPEC
|
||||
TIME_H_DEFINES_STRUCT_TIMESPEC
|
||||
|
|
@ -5723,6 +5724,9 @@ else
|
|||
test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
|
||||
fi
|
||||
|
||||
# Avoid gnulib's threadlib module, as we do threads our own way.
|
||||
|
||||
|
||||
# Initialize gnulib right after choosing the compiler.
|
||||
|
||||
ac_ext=c
|
||||
|
|
@ -7006,6 +7010,7 @@ esac
|
|||
# Code from module sys_time:
|
||||
# Code from module time:
|
||||
# Code from module time_r:
|
||||
# Code from module timer-time:
|
||||
# Code from module timespec:
|
||||
# Code from module timespec-add:
|
||||
# Code from module timespec-sub:
|
||||
|
|
@ -19229,6 +19234,7 @@ done
|
|||
|
||||
|
||||
|
||||
|
||||
ac_fn_c_check_type "$LINENO" "sigset_t" "ac_cv_type_sigset_t" "
|
||||
#include <signal.h>
|
||||
/* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>. */
|
||||
|
|
@ -21655,11 +21661,61 @@ $as_echo "$gl_cv_sig_pselect" >&6; }
|
|||
LIB_PTHREAD_SIGMASK=
|
||||
|
||||
|
||||
if test $ac_cv_func_pthread_sigmask = yes; then
|
||||
:
|
||||
|
||||
|
||||
if test "$gl_threads_api" = posix; then
|
||||
if test $ac_cv_func_pthread_sigmask = yes; then
|
||||
:
|
||||
else
|
||||
if test -n "$LIBMULTITHREAD"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_sigmask in $LIBMULTITHREAD" >&5
|
||||
$as_echo_n "checking for pthread_sigmask in $LIBMULTITHREAD... " >&6; }
|
||||
if test "${gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
gl_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $LIBMULTITHREAD"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <pthread.h>
|
||||
#include <signal.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return pthread_sigmask (0, (sigset_t *) 0, (sigset_t *) 0);
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=yes
|
||||
else
|
||||
gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS="$gl_save_LIBS"
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&5
|
||||
$as_echo "$gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&6; }
|
||||
if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then
|
||||
LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD"
|
||||
else
|
||||
HAVE_PTHREAD_SIGMASK=0
|
||||
fi
|
||||
else
|
||||
HAVE_PTHREAD_SIGMASK=0
|
||||
fi
|
||||
fi
|
||||
else
|
||||
HAVE_PTHREAD_SIGMASK=0
|
||||
REPLACE_PTHREAD_SIGMASK=1
|
||||
if test $ac_cv_func_pthread_sigmask = yes; then
|
||||
REPLACE_PTHREAD_SIGMASK=1
|
||||
else
|
||||
HAVE_PTHREAD_SIGMASK=0
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
|
@ -23576,6 +23632,102 @@ $as_echo "$gl_cv_time_r_posix" >&6; }
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
LIB_TIMER_TIME=
|
||||
|
||||
gl_saved_libs=$LIBS
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing timer_settime" >&5
|
||||
$as_echo_n "checking for library containing timer_settime... " >&6; }
|
||||
if test "${ac_cv_search_timer_settime+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_func_search_save_LIBS=$LIBS
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char timer_settime ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return timer_settime ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
for ac_lib in '' rt posix4; do
|
||||
if test -z "$ac_lib"; then
|
||||
ac_res="none required"
|
||||
else
|
||||
ac_res=-l$ac_lib
|
||||
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
|
||||
fi
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_search_timer_settime=$ac_res
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext
|
||||
if test "${ac_cv_search_timer_settime+set}" = set; then :
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test "${ac_cv_search_timer_settime+set}" = set; then :
|
||||
|
||||
else
|
||||
ac_cv_search_timer_settime=no
|
||||
fi
|
||||
rm conftest.$ac_ext
|
||||
LIBS=$ac_func_search_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_timer_settime" >&5
|
||||
$as_echo "$ac_cv_search_timer_settime" >&6; }
|
||||
ac_res=$ac_cv_search_timer_settime
|
||||
if test "$ac_res" != no; then :
|
||||
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
|
||||
test "$ac_cv_search_timer_settime" = "none required" ||
|
||||
LIB_TIMER_TIME=$ac_cv_search_timer_settime
|
||||
fi
|
||||
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#include <features.h>
|
||||
#ifdef __GNU_LIBRARY__
|
||||
#if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || (__GLIBC__ > 2)) \
|
||||
&& !defined __UCLIBC__
|
||||
Thread emulation available
|
||||
#endif
|
||||
#endif
|
||||
|
||||
_ACEOF
|
||||
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||
$EGREP "Thread" >/dev/null 2>&1; then :
|
||||
LIB_TIMER_TIME="$LIB_TIMER_TIME $LIBMULTITHREAD"
|
||||
fi
|
||||
rm -f conftest*
|
||||
|
||||
for ac_func in timer_settime
|
||||
do :
|
||||
ac_fn_c_check_func "$LINENO" "timer_settime" "ac_cv_func_timer_settime"
|
||||
if test "x$ac_cv_func_timer_settime" = x""yes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_TIMER_SETTIME 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
done
|
||||
|
||||
LIBS=$gl_saved_libs
|
||||
|
||||
:
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -571,6 +571,9 @@ else
|
|||
test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
|
||||
fi
|
||||
|
||||
# Avoid gnulib's threadlib module, as we do threads our own way.
|
||||
AC_DEFUN([gl_THREADLIB])
|
||||
|
||||
# Initialize gnulib right after choosing the compiler.
|
||||
gl_EARLY
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,42 @@
|
|||
2012-09-30 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* killing.texi (Rectangles): Document copy-rectangle-as-kill.
|
||||
|
||||
* search.texi (Special Isearch): Document the lax space search
|
||||
feature and M-s SPC.
|
||||
(Regexp Search): Move main search-whitespace-regexp description to
|
||||
Special Isearch.
|
||||
(Replace): Document replace-lax-whitespace.
|
||||
|
||||
* basic.texi (Position Info): Document C-u M-=.
|
||||
(Moving Point): Document move-to-column.
|
||||
|
||||
* display.texi (Useless Whitespace): Add delete-trailing-lines.
|
||||
|
||||
* misc.texi (emacsclient Options): Document the effect of
|
||||
initial-buffer-choice on client frames. Document server-auth-dir.
|
||||
Do not document server-host, which is bad security practice.
|
||||
|
||||
* building.texi (Lisp Libraries): Docstring lookups can trigger
|
||||
autoloading. Document help-enable-auto-load.
|
||||
|
||||
* mini.texi (Yes or No Prompts): New node.
|
||||
|
||||
* ack.texi (Acknowledgments): Remove obsolete packages.
|
||||
|
||||
2012-09-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cal-xtra.texi (Advanced Calendar/Diary Usage):
|
||||
Rename the section to be more general.
|
||||
* emacs.texi: Update menu.
|
||||
|
||||
2012-09-23 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* buffers.texi (Misc Buffer): Replace toggle-read-only with
|
||||
read-only-mode.
|
||||
|
||||
* files.texi (Visiting): Likewise.
|
||||
|
||||
2012-09-22 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* trouble.texi (Crashing): Document ulimit -c.
|
||||
|
|
|
|||
|
|
@ -644,10 +644,9 @@ statically scoped Emacs lisp.
|
|||
@item
|
||||
Daniel LaLiberte wrote @file{edebug.el}, a source-level debugger for
|
||||
Emacs Lisp; @file{cl-specs.el}, specifications to help @code{edebug}
|
||||
debug code written using David Gillespie's Common Lisp support;
|
||||
@file{cust-print.el}, a customizable package for printing lisp
|
||||
objects; and @file{isearch.el}, Emacs's incremental search minor mode.
|
||||
He also co-wrote @file{hideif.el} (q.v.@:).
|
||||
debug code written using David Gillespie's Common Lisp support; and
|
||||
@file{isearch.el}, Emacs's incremental search minor mode. He also
|
||||
co-wrote @file{hideif.el} (q.v.@:).
|
||||
|
||||
@item
|
||||
Karl Landstrom and Daniel Colascione wrote @file{js.el}, a mode for
|
||||
|
|
@ -1301,15 +1300,14 @@ providing electric accent keys.
|
|||
Colin Walters wrote Ibuffer, an enhanced buffer menu.
|
||||
|
||||
@item
|
||||
Barry Warsaw wrote @file{assoc.el}, a set of utility functions for
|
||||
working with association lists; @file{cc-mode.el}, a mode for editing
|
||||
C, C@t{++}, and Java code, based on earlier work by Dave Detlefs,
|
||||
Stewart Clamen, and Richard Stallman; @file{elp.el}, a profiler for
|
||||
Emacs Lisp programs; @file{man.el}, a mode for reading Unix manual
|
||||
pages; @file{regi.el}, providing an AWK-like functionality for use in
|
||||
lisp programs; @file{reporter.el}, providing customizable bug
|
||||
reporting for lisp packages; and @file{supercite.el}, a minor mode for
|
||||
quoting sections of mail messages and news articles.
|
||||
Barry Warsaw wrote @file{cc-mode.el}, a mode for editing C, C@t{++},
|
||||
and Java code, based on earlier work by Dave Detlefs, Stewart Clamen,
|
||||
and Richard Stallman; @file{elp.el}, a profiler for Emacs Lisp
|
||||
programs; @file{man.el}, a mode for reading Unix manual pages;
|
||||
@file{regi.el}, providing an AWK-like functionality for use in lisp
|
||||
programs; @file{reporter.el}, providing customizable bug reporting for
|
||||
lisp packages; and @file{supercite.el}, a minor mode for quoting
|
||||
sections of mail messages and news articles.
|
||||
|
||||
@item
|
||||
Christoph Wedler wrote @file{antlr-mode.el}, a major mode for ANTLR
|
||||
|
|
@ -1351,9 +1349,8 @@ Directory Client; and @code{eshell}, a command shell implemented
|
|||
entirely in Emacs Lisp. He also contributed to Org mode (q.v.@:).
|
||||
|
||||
@item
|
||||
Mike Williams wrote @file{mouse-sel.el}, providing enhanced mouse
|
||||
selection; and @file{thingatpt.el}, a library of functions for finding
|
||||
the ``thing'' (word, line, s-expression) containing point.
|
||||
Mike Williams wrote @file{thingatpt.el}, a library of functions for
|
||||
finding the ``thing'' (word, line, s-expression) at point.
|
||||
|
||||
@item
|
||||
Roland Winkler wrote @file{proced.el}, a system process editor.
|
||||
|
|
|
|||
|
|
@ -267,7 +267,8 @@ necessary (@code{scroll-up-command}). @xref{Scrolling}.
|
|||
Scroll one screen backward, and move point onscreen if necessary
|
||||
(@code{scroll-down-command}). @xref{Scrolling}.
|
||||
|
||||
@item M-x goto-char
|
||||
@item M-g c
|
||||
@kindex M-g c
|
||||
@findex goto-char
|
||||
Read a number @var{n} and move point to buffer position @var{n}.
|
||||
Position 1 is the beginning of the buffer.
|
||||
|
|
@ -285,6 +286,13 @@ also specify @var{n} by giving @kbd{M-g M-g} a numeric prefix argument.
|
|||
@xref{Select Buffer}, for the behavior of @kbd{M-g M-g} when you give it
|
||||
a plain prefix argument.
|
||||
|
||||
@item M-g @key{TAB}
|
||||
@kindex M-g TAB
|
||||
@findex move-to-column
|
||||
Read a number @var{n} and move to column @var{n} in the current line.
|
||||
Column 0 is the leftmost column. If called with a prefix argument,
|
||||
move to the column number specified by the argument's numeric value.
|
||||
|
||||
@item C-x C-n
|
||||
@kindex C-x C-n
|
||||
@findex set-goal-column
|
||||
|
|
@ -619,12 +627,16 @@ narrowed region and the line number relative to the whole buffer.
|
|||
|
||||
@kindex M-=
|
||||
@findex count-words-region
|
||||
@findex count-words
|
||||
@kbd{M-=} (@code{count-words-region}) displays a message reporting
|
||||
the number of lines, words, and characters in the region. @kbd{M-x
|
||||
count-words} displays a similar message for the entire buffer, or for
|
||||
the region if the region is @dfn{active}. @xref{Mark}, for an
|
||||
explanation of the region.
|
||||
the number of lines, words, and characters in the region
|
||||
(@pxref{Mark}, for an explanation of the region). With a prefix
|
||||
argument, @kbd{C-u M-=}, the command displays a count for the entire
|
||||
buffer.
|
||||
|
||||
@findex count-words
|
||||
The command @kbd{M-x count-words} does the same job, but with a
|
||||
different calling convention. It displays a count for the region if
|
||||
the region is active, and for the buffer otherwise.
|
||||
|
||||
@kindex C-x =
|
||||
@findex what-cursor-position
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ unless they visit files: such buffers are used internally by Emacs.
|
|||
|
||||
@table @kbd
|
||||
@item C-x C-q
|
||||
Toggle read-only status of buffer (@code{toggle-read-only}).
|
||||
Toggle read-only status of buffer (@code{read-only-mode}).
|
||||
@item M-x rename-buffer @key{RET} @var{name} @key{RET}
|
||||
Change the name of the current buffer.
|
||||
@item M-x rename-uniquely
|
||||
|
|
@ -231,9 +231,9 @@ buffers are usually made by subsystems such as Dired and Rmail that
|
|||
have special commands to operate on the text; also by visiting a file
|
||||
whose access control says you cannot write it.
|
||||
|
||||
@findex toggle-read-only
|
||||
@findex read-only-mode
|
||||
@vindex view-read-only
|
||||
The command @kbd{C-x C-q} (@code{toggle-read-only}) makes a read-only
|
||||
The command @kbd{C-x C-q} (@code{read-only-mode}) makes a read-only
|
||||
buffer writable, and makes a writable buffer read-only. This works by
|
||||
setting the variable @code{buffer-read-only}, which has a local value
|
||||
in each buffer and makes the buffer read-only if its value is
|
||||
|
|
|
|||
|
|
@ -1393,13 +1393,21 @@ putting a line like this in your init file (@pxref{Init File}):
|
|||
@end example
|
||||
|
||||
@cindex autoload
|
||||
Some commands are @dfn{autoloaded}: when you run them, Emacs
|
||||
Some commands are @dfn{autoloaded}; when you run them, Emacs
|
||||
automatically loads the associated library first. For instance, the
|
||||
@kbd{M-x compile} command (@pxref{Compilation}) is autoloaded; if you
|
||||
call it, Emacs automatically loads the @code{compile} library first.
|
||||
In contrast, the command @kbd{M-x recompile} is not autoloaded, so it
|
||||
is unavailable until you load the @code{compile} library.
|
||||
|
||||
@vindex help-enable-auto-load
|
||||
Automatic loading can also occur when you look up the documentation
|
||||
of an autoloaded command (@pxref{Name Help}), if the documentation
|
||||
refers to other functions and variables in its library (loading the
|
||||
library lets Emacs properly set up the hyperlinks in the @file{*Help*}
|
||||
buffer). To disable this feature, change the variable
|
||||
@code{help-enable-auto-load} to @code{nil}.
|
||||
|
||||
@vindex load-dangerous-libraries
|
||||
@cindex Lisp files byte-compiled by XEmacs
|
||||
By default, Emacs refuses to load compiled Lisp files which were
|
||||
|
|
|
|||
|
|
@ -7,10 +7,12 @@
|
|||
|
||||
@c Moved here from the Emacs Lisp Reference Manual, 2005-03-26.
|
||||
@node Advanced Calendar/Diary Usage
|
||||
@section Customizing the Calendar and Diary
|
||||
@section More advanced features of the Calendar and Diary
|
||||
|
||||
There are many ways in which you can customize the calendar and
|
||||
diary to suit your personal tastes.
|
||||
This section describes some of the more advanced/specialized
|
||||
features of the calendar and diary. It starts with some of the
|
||||
many ways in which you can customize the calendar and diary to suit
|
||||
your personal tastes.
|
||||
|
||||
@menu
|
||||
* Calendar Customizing:: Calendar layout and hooks.
|
||||
|
|
|
|||
|
|
@ -1044,9 +1044,9 @@ the left fringe, but no arrow bitmaps, use @code{((top . left)
|
|||
@cindex whitespace, trailing
|
||||
@vindex show-trailing-whitespace
|
||||
It is easy to leave unnecessary spaces at the end of a line, or
|
||||
empty lines at the end of a file, without realizing it. In most
|
||||
cases, this @dfn{trailing whitespace} has no effect, but there are
|
||||
special circumstances where it matters, and it can be a nuisance.
|
||||
empty lines at the end of a buffer, without realizing it. In most
|
||||
cases, this @dfn{trailing whitespace} has no effect, but sometimes it
|
||||
can be a nuisance.
|
||||
|
||||
You can make trailing whitespace at the end of a line visible by
|
||||
setting the buffer-local variable @code{show-trailing-whitespace} to
|
||||
|
|
@ -1061,9 +1061,13 @@ the location of point is enough to show you that the spaces are
|
|||
present.
|
||||
|
||||
@findex delete-trailing-whitespace
|
||||
@vindex delete-trailing-lines
|
||||
Type @kbd{M-x delete-trailing-whitespace} to delete all trailing
|
||||
whitespace within the buffer. If the region is active, it deletes all
|
||||
trailing whitespace in the region instead.
|
||||
whitespace. This command deletes all extra spaces at the end of each
|
||||
line in the buffer, and all empty lines at the end of the buffer; to
|
||||
ignore the latter, change the varaible @code{delete-trailing-lines} to
|
||||
@code{nil}. If the region is active, the command instead deletes
|
||||
extra spaces at the end of each line in the region.
|
||||
|
||||
@vindex indicate-empty-lines
|
||||
@cindex unused lines
|
||||
|
|
|
|||
|
|
@ -267,6 +267,7 @@ The Minibuffer
|
|||
* Minibuffer History:: Reusing recent minibuffer arguments.
|
||||
* Repetition:: Re-executing commands that used the minibuffer.
|
||||
* Passwords:: Entering passwords in the echo area.
|
||||
* Yes or No Prompts:: Replying yes or no in the echo area.
|
||||
|
||||
Completion
|
||||
|
||||
|
|
@ -953,7 +954,7 @@ The Diary
|
|||
* Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc.
|
||||
|
||||
@ifnottex
|
||||
Customizing the Calendar and Diary
|
||||
More advanced features of the Calendar and Diary
|
||||
|
||||
* Calendar Customizing:: Calendar layout and hooks.
|
||||
* Holiday Customizing:: Defining your own holidays.
|
||||
|
|
|
|||
|
|
@ -79,11 +79,6 @@ non-@code{nil} value. (In that case, even if you specify one or more
|
|||
files on the command line, Emacs opens but does not display them.)
|
||||
The value of @code{initial-buffer-choice} should be the name of
|
||||
the desired file or directory.
|
||||
@ignore
|
||||
@c I do not think this should be mentioned. AFAICS it is just a dodge
|
||||
@c around inhibit-startup-screen not being settable on a site-wide basis.
|
||||
or @code{t}, which means to display the @file{*scratch*} buffer.
|
||||
@end ignore
|
||||
|
||||
@node Exiting
|
||||
@section Exiting Emacs
|
||||
|
|
|
|||
|
|
@ -246,7 +246,7 @@ Archives}, for more about these features.
|
|||
or that is marked read-only, Emacs makes the buffer read-only too, so
|
||||
that you won't go ahead and make changes that you'll have trouble
|
||||
saving afterward. You can make the buffer writable with @kbd{C-x C-q}
|
||||
(@code{toggle-read-only}). @xref{Misc Buffer}.
|
||||
(@code{read-only-mode}). @xref{Misc Buffer}.
|
||||
|
||||
@kindex C-x C-r
|
||||
@findex find-file-read-only
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ by the innermost Lisp expression in the buffer around point,
|
|||
(That name appears as the default while you enter the argument.) For
|
||||
example, if point is located following the text @samp{(make-vector
|
||||
(car x)}, the innermost list containing point is the one that starts
|
||||
with @samp{(make-vector}, so @kbd{C-h f @key{RET}} will describe the
|
||||
with @samp{(make-vector}, so @kbd{C-h f @key{RET}} describes the
|
||||
function @code{make-vector}.
|
||||
|
||||
@kbd{C-h f} is also useful just to verify that you spelled a
|
||||
|
|
|
|||
|
|
@ -709,6 +709,9 @@ rectangle, depending on the command that uses them.
|
|||
@item C-x r k
|
||||
Kill the text of the region-rectangle, saving its contents as the
|
||||
``last killed rectangle'' (@code{kill-rectangle}).
|
||||
@item C-x r M-w
|
||||
Save the text of the region-rectangle as the ``last killed rectangle''
|
||||
(@code{copy-rectangle-as-kill}).
|
||||
@item C-x r d
|
||||
Delete the text of the region-rectangle (@code{delete-rectangle}).
|
||||
@item C-x r y
|
||||
|
|
@ -757,6 +760,12 @@ yanking a rectangle is so different from yanking linear text that
|
|||
different yank commands have to be used. Yank-popping is not defined
|
||||
for rectangles.
|
||||
|
||||
@kindex C-x r M-w
|
||||
@findex copy-rectangle-as-kill
|
||||
@kbd{C-x r M-w} (@code{copy-rectangle-as-kill}) is the equivalent of
|
||||
@kbd{M-w} for rectangles: it records the rectangle as the ``last
|
||||
killed rectangle'', without deleting the text from the buffer.
|
||||
|
||||
@kindex C-x r y
|
||||
@findex yank-rectangle
|
||||
To yank the last killed rectangle, type @kbd{C-x r y}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ do not echo.
|
|||
* Minibuffer History:: Reusing recent minibuffer arguments.
|
||||
* Repetition:: Re-executing commands that used the minibuffer.
|
||||
* Passwords:: Entering passwords in the echo area.
|
||||
* Yes or No Prompts:: Replying yes or no in the echo area.
|
||||
@end menu
|
||||
|
||||
@node Minibuffer File
|
||||
|
|
@ -733,3 +734,53 @@ password (@pxref{Killing}). You may type either @key{RET} or
|
|||
@key{ESC} to submit the password. Any other self-inserting character
|
||||
key inserts the associated character into the password, and all other
|
||||
input is ignored.
|
||||
|
||||
@node Yes or No Prompts
|
||||
@section Yes or No Prompts
|
||||
|
||||
An Emacs command may require you to answer a ``yes or no'' question
|
||||
during the course of its execution. Such queries come in two main
|
||||
varieties.
|
||||
|
||||
@cindex y or n prompt
|
||||
For the first type of ``yes or no'' query, the prompt ends with
|
||||
@samp{(y or n)}. Such a query does not actually use the minibuffer;
|
||||
the prompt appears in the echo area, and you answer by typing either
|
||||
@samp{y} or @samp{n}, which immediately delivers the response. For
|
||||
example, if you type @kbd{C-x C-w} (@kbd{write-file}) to save a
|
||||
buffer, and enter the name of an existing file, Emacs issues a prompt
|
||||
like this:
|
||||
|
||||
@smallexample
|
||||
File `foo.el' exists; overwrite? (y or n)
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
Because this query does not actually use the minibuffer, the usual
|
||||
minibuffer editing commands cannot be used. However, you can perform
|
||||
some window scrolling operations while the query is active: @kbd{C-l}
|
||||
recenters the selected window; @kbd{M-v} (or @key{PageDown} or
|
||||
@key{next}) scrolls forward; @kbd{C-v} (or @key{PageUp}, or
|
||||
@key{prior}) scrolls backward; @kbd{C-M-v} scrolls forward in the next
|
||||
window; and @kbd{C-M-S-v} scrolls backward in the next window. Typing
|
||||
@kbd{C-g} dismisses the query, and quits the command that issued it
|
||||
(@pxref{Quitting}).
|
||||
|
||||
@cindex yes or no prompt
|
||||
The second type of ``yes or no'' query is typically employed if
|
||||
giving the wrong answer would have serious consequences; it uses the
|
||||
minibuffer, and features a prompt ending with @samp{(yes or no)}. For
|
||||
example, if you invoke @kbd{C-x k} (@code{kill-buffer}) on a
|
||||
file-visiting buffer with unsaved changes, Emacs activates the
|
||||
minibuffer with a prompt like this:
|
||||
|
||||
@smallexample
|
||||
Buffer foo.el modified; kill anyway? (yes or no)
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
To answer, you must type @samp{yes} or @samp{no} into the minibuffer,
|
||||
followed by @key{RET}. The minibuffer behaves as described in the
|
||||
previous sections; you can switch to another window with @kbd{C-x o},
|
||||
use the history commands @kbd{M-p} and @kbd{M-f}, etc. Type @kbd{C-g}
|
||||
to quit the minibuffer and the querying command.
|
||||
|
|
|
|||
|
|
@ -1509,15 +1509,11 @@ precedence.
|
|||
@cindex client frame
|
||||
@item -c
|
||||
Create a new graphical @dfn{client frame}, instead of using an
|
||||
existing Emacs frame. If you omit a filename argument while supplying
|
||||
the @samp{-c} option, the new frame displays the @file{*scratch*}
|
||||
buffer (@pxref{Buffers}). See below for the special behavior of
|
||||
@kbd{C-x C-c} in a client frame.
|
||||
|
||||
If Emacs is unable to create a new graphical frame (e.g.@: if it is
|
||||
unable to connect to the X server), it tries to create a text terminal
|
||||
client frame, as though you had supplied the @samp{-t} option instead
|
||||
(see below).
|
||||
existing Emacs frame. See below for the special behavior of @kbd{C-x
|
||||
C-c} in a client frame. If Emacs cannot create a new graphical frame
|
||||
(e.g.@: if it cannot connect to the X server), it tries to create a
|
||||
text terminal client frame, as though you had supplied the @samp{-t}
|
||||
option instead.
|
||||
|
||||
On MS-Windows, a single Emacs session cannot display frames on both
|
||||
graphical and text terminals, nor on multiple text terminals. Thus,
|
||||
|
|
@ -1525,6 +1521,11 @@ if the Emacs server is running on a text terminal, the @samp{-c}
|
|||
option, like the @samp{-t} option, creates a new frame in the server's
|
||||
current text terminal. @xref{Windows Startup}.
|
||||
|
||||
If you omit a filename argument while supplying the @samp{-c} option,
|
||||
the new frame displays the @file{*scratch*} buffer by default. If
|
||||
@code{initial-buffer-choice} is a string (@pxref{Entering Emacs}), the
|
||||
new frame displays that file or directory instead.
|
||||
|
||||
@item -F @var{alist}
|
||||
@itemx --frame-parameters=@var{alist}
|
||||
Set the parameters for a newly-created graphical frame
|
||||
|
|
@ -1545,38 +1546,24 @@ evaluate, @emph{not} as a list of files to visit.
|
|||
@item -f @var{server-file}
|
||||
@itemx --server-file=@var{server-file}
|
||||
@cindex @env{EMACS_SERVER_FILE} environment variable
|
||||
@cindex server file
|
||||
@vindex server-use-tcp
|
||||
@vindex server-host
|
||||
Specify a @dfn{server file} for connecting to an Emacs server via TCP.
|
||||
|
||||
An Emacs server usually uses an operating system feature called a
|
||||
``local socket'' to listen for connections. Some operating systems,
|
||||
such as Microsoft Windows, do not support local sockets; in that case,
|
||||
Emacs uses TCP instead. When you start the Emacs server, Emacs
|
||||
creates a server file containing some TCP information that
|
||||
@command{emacsclient} needs for making the connection. By default,
|
||||
the server file is in @file{~/.emacs.d/server/}. On Microsoft
|
||||
Windows, if @command{emacsclient} does not find the server file there,
|
||||
it looks in the @file{.emacs.d/server/} subdirectory of the directory
|
||||
pointed to by the @env{APPDATA} environment variable. You can tell
|
||||
@command{emacsclient} to use a specific server file with the @samp{-f}
|
||||
or @samp{--server-file} option, or by setting the
|
||||
@env{EMACS_SERVER_FILE} environment variable.
|
||||
|
||||
Even if local sockets are available, you can tell Emacs to use TCP by
|
||||
setting the variable @code{server-use-tcp} to @code{t}. One advantage
|
||||
of TCP is that the server can accept connections from remote machines.
|
||||
For this to work, you must (i) set the variable @code{server-host} to
|
||||
the hostname or IP address of the machine on which the Emacs server
|
||||
runs, and (ii) provide @command{emacsclient} with the server file.
|
||||
(One convenient way to do the latter is to put the server file on a
|
||||
networked file system such as NFS.)
|
||||
the server communicates with @command{emacsclient} via TCP.
|
||||
|
||||
@vindex server-auth-dir
|
||||
@cindex server file
|
||||
@vindex server-port
|
||||
When the Emacs server is using TCP, the variable @code{server-port}
|
||||
determines the port number to listen on; the default value,
|
||||
@code{nil}, means to choose a random port when the server starts.
|
||||
When you start a TCP Emacs server, Emacs creates a @dfn{server file}
|
||||
containing the TCP information to be used by @command{emacsclient} to
|
||||
connect to the server. The variable @code{server-auth-dir} specifies
|
||||
the directory containing the server file; by default, this is
|
||||
@file{~/.emacs.d/server/}. To tell @command{emacsclient} to connect
|
||||
to the server over TCP with a specific server file, use the @samp{-f}
|
||||
or @samp{--server-file} option, or set the @env{EMACS_SERVER_FILE}
|
||||
environment variable.
|
||||
|
||||
@item -n
|
||||
@itemx --no-wait
|
||||
|
|
@ -1606,19 +1593,14 @@ server it finds. (This option is not supported on MS-Windows.)
|
|||
@itemx --tty
|
||||
@itemx -nw
|
||||
Create a new client frame on the current text terminal, instead of
|
||||
using an existing Emacs frame. This is similar to the @samp{-c}
|
||||
option, above, except that it creates a text terminal frame
|
||||
(@pxref{Non-Window Terminals}). If you omit a filename argument while
|
||||
supplying this option, the new frame displays the @file{*scratch*}
|
||||
buffer (@pxref{Buffers}). See below for the special behavior of
|
||||
@kbd{C-x C-c} in a client frame.
|
||||
using an existing Emacs frame. This behaves just like the @samp{-c}
|
||||
option, described above, except that it creates a text terminal frame
|
||||
(@pxref{Non-Window Terminals}).
|
||||
|
||||
On MS-Windows, a single Emacs session cannot display frames on both
|
||||
graphical and text terminals, nor on multiple text terminals. Thus,
|
||||
if the Emacs server is using the graphical display, @samp{-t} behaves
|
||||
like @samp{-c} (see above); whereas if the Emacs server is running on
|
||||
a text terminal, it creates a new frame in its current text terminal.
|
||||
@xref{Windows Startup}.
|
||||
On MS-Windows, @samp{-t} behaves just like @samp{-c} if the Emacs
|
||||
server is using the graphical display, but if the Emacs server is
|
||||
running on a text terminal, it creates a new frame in the current text
|
||||
terminal.
|
||||
@end table
|
||||
|
||||
The new graphical or text terminal frames created by the @samp{-c}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ thing, but search for patterns instead of fixed strings.
|
|||
(@pxref{Operating on Files}), or ask the @code{grep} program to do it
|
||||
(@pxref{Grep Searching}).
|
||||
|
||||
|
||||
@menu
|
||||
* Incremental Search:: Search happens as you type the string.
|
||||
* Nonincremental Search:: Specify entire string and then search.
|
||||
|
|
@ -218,6 +217,24 @@ search.
|
|||
Some of the characters you type during incremental search have
|
||||
special effects.
|
||||
|
||||
@cindex lax space matching
|
||||
@kindex M-s SPC @r{(Incremental search)}
|
||||
@kindex SPC @r{(Incremental search)}
|
||||
@findex isearch-toggle-lax-whitespace
|
||||
@vindex search-whitespace-regexp
|
||||
By default, incremental search performs @dfn{lax space matching}:
|
||||
each space, or sequence of spaces, matches any sequence of one or more
|
||||
spaces in the text. Hence, @samp{foo bar} matches @samp{foo bar},
|
||||
@samp{foo bar}, @samp{foo bar}, and so on (but not @samp{foobar}).
|
||||
More precisely, Emacs matches each sequence of space characters in the
|
||||
search string to a regular expression specified by the variable
|
||||
@code{search-whitespace-regexp}. For example, set it to
|
||||
@samp{"[[:space:]\n]+"} to make spaces match sequences of newlines as
|
||||
well as spaces. To toggle lax space matching, type @kbd{M-s SPC}
|
||||
(@code{isearch-toggle-lax-whitespace}). To disable this feature
|
||||
entirely, change @code{search-whitespace-regexp} to @code{nil}; then
|
||||
each space in the search string matches exactly one space
|
||||
|
||||
If the search string you entered contains only lower-case letters,
|
||||
the search is case-insensitive; as long as an upper-case letter exists
|
||||
in the search string, the search becomes case-sensitive. If you
|
||||
|
|
@ -492,12 +509,12 @@ Incremental regexp and non-regexp searches have independent defaults.
|
|||
They also have separate search rings, which you can access with
|
||||
@kbd{M-p} and @kbd{M-n}.
|
||||
|
||||
@vindex search-whitespace-regexp
|
||||
If you type @key{SPC} in incremental regexp search, it matches any
|
||||
sequence of whitespace characters, including newlines. If you want to
|
||||
match just a space, type @kbd{C-q @key{SPC}}. You can control what a
|
||||
bare space matches by setting the variable
|
||||
@code{search-whitespace-regexp} to the desired regexp.
|
||||
Just as in ordinary incremental search, any @key{SPC} typed in
|
||||
incremental regexp search matches any sequence of one or more
|
||||
whitespace characters. The variable @code{search-whitespace-regexp}
|
||||
specifies the regexp for the lax space matching, and @kbd{M-s SPC}
|
||||
(@code{isearch-toggle-lax-whitespace}) toggles the feature.
|
||||
@xref{Special Isearch}.
|
||||
|
||||
In some cases, adding characters to the regexp in an incremental
|
||||
regexp search can make the cursor move back and start again. For
|
||||
|
|
@ -974,6 +991,13 @@ instead (@pxref{Mark}). The basic replace commands replace one
|
|||
is possible to perform several replacements in parallel, using the
|
||||
command @code{expand-region-abbrevs} (@pxref{Expanding Abbrevs}).
|
||||
|
||||
@vindex replace-lax-whitespace
|
||||
Unlike incremental search, the replacement commands do not use lax
|
||||
space matching (@pxref{Special Isearch}) by default. To enable lax
|
||||
space matching for replacement, change the variable
|
||||
@code{replace-lax-whitespace} to @code{t}. (This only affects how
|
||||
Emacs finds the text to replace, not the replacement text.)
|
||||
|
||||
@menu
|
||||
* Unconditional Replace:: Replacing all matches for a string.
|
||||
* Regexp Replace:: Replacing all matches for a regexp.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,59 @@
|
|||
2012-09-30 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* commands.texi (Click Events): Define "mouse position list".
|
||||
Remove mention of unimplemented horizontal scroll bars.
|
||||
(Drag Events, Motion Events): Refer to "mouse position list".
|
||||
(Accessing Mouse): Document posnp.
|
||||
|
||||
* errors.texi (Standard Errors): Tweak arith-error description.
|
||||
Tweak markup. Remove domain-error and friends, which seem to be
|
||||
unused after the floating-point code revamp.
|
||||
|
||||
* functions.texi (Obsolete Functions): Obsolescence also affects
|
||||
documentation commands. Various clarifications.
|
||||
(Declare Form): New node.
|
||||
|
||||
* strings.texi (String Basics): Copyedits.
|
||||
|
||||
* os.texi (Idle Timers): Minor clarifications.
|
||||
(User Identification): Add system-users and system-groups.
|
||||
|
||||
* macros.texi (Defining Macros): Move description of `declare' to
|
||||
Declare Form node.
|
||||
|
||||
* loading.texi (Autoload):
|
||||
* help.texi (Documentation Basics): The special sequences can
|
||||
trigger autoloading.
|
||||
|
||||
* numbers.texi (Integer Basics): Copyedits.
|
||||
(Float Basics): Consider IEEE floating point always available.
|
||||
(Random Numbers): Document actual limits.
|
||||
(Arithmetic Operations): Clarify division by zero. Don't mention
|
||||
the machine-independence of negative division since it does not
|
||||
happen in practice.
|
||||
|
||||
2012-09-28 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* os.texi (Startup Summary): Document leim-list.el change.
|
||||
|
||||
2012-09-25 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* functions.texi (Defining Functions): defun is now a macro.
|
||||
|
||||
2012-09-28 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
* files.texi (Files): Fix typo.
|
||||
|
||||
2012-09-23 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* buffers.texi (Read Only Buffers): Document read-only-mode.
|
||||
|
||||
* keymaps.texi (Alias Menu Items): Replace toggle-read-only with
|
||||
read-only-mode.
|
||||
|
||||
* backups.texi (Auto-Saving): Refer to Minor Mode Conventions for
|
||||
calling conventions.
|
||||
|
||||
2012-09-22 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* searching.texi (Replacing Match): Minor clarification.
|
||||
|
|
|
|||
|
|
@ -441,12 +441,14 @@ buffer-auto-save-file-name
|
|||
@end defvar
|
||||
|
||||
@deffn Command auto-save-mode arg
|
||||
When used interactively without an argument, this command is a toggle
|
||||
switch: it turns on auto-saving of the current buffer if it is off,
|
||||
and vice versa. When called from Lisp with no argument, it turns
|
||||
auto-saving on. With an argument @var{arg}, it turns auto-saving on
|
||||
if the value of @var{arg} is @code{t}, a nonempty list, or a positive
|
||||
integer; otherwise, it turns auto-saving off.
|
||||
This is the mode command for Auto Save mode, a buffer-local minor
|
||||
mode. When Auto Save mode is enabled, auto-saving is enabled in the
|
||||
buffer. The calling convention is the same as for other minor mode
|
||||
commands (@pxref{Minor Mode Conventions}).
|
||||
|
||||
Unlike most minor modes, there is no @code{auto-save-mode} variable.
|
||||
Auto Save mode is enabled if @code{buffer-auto-save-file-name} is
|
||||
non-@code{nil} and @code{buffer-saved-size} (see below) is non-zero.
|
||||
@end deffn
|
||||
|
||||
@defun auto-save-file-name-p filename
|
||||
|
|
|
|||
|
|
@ -740,31 +740,25 @@ properties have no effect. If @code{inhibit-read-only} is a list, then
|
|||
of the list (comparison is done with @code{eq}).
|
||||
@end defvar
|
||||
|
||||
@deffn Command toggle-read-only &optional arg message
|
||||
This command toggles whether the current buffer is read-only, by
|
||||
setting the variable @code{buffer-read-only}. If @var{arg} is
|
||||
non-@code{nil}, it should be a raw prefix argument; the command then
|
||||
makes the buffer read-only if the numeric value of that prefix
|
||||
argument is positive, and makes the buffer writable otherwise.
|
||||
@xref{Prefix Command Arguments}.
|
||||
@deffn Command read-only-mode &optional arg
|
||||
This is the mode command for Read Only minor mode, a buffer-local
|
||||
minor mode. When the mode is enabled, @code{buffer-read-only} is
|
||||
non-@code{nil} in the buffer; when disabled, @code{buffer-read-only}
|
||||
is @code{nil} in the buffer. The calling convention is the same as
|
||||
for other minor mode commands (@pxref{Minor Mode Conventions}).
|
||||
|
||||
If called interactively, or if called from Lisp with @var{message} is
|
||||
non-@code{nil}, the command prints a message reporting the buffer's
|
||||
new read-only status.
|
||||
This minor mode mainly serves as a wrapper for
|
||||
@code{buffer-read-only}; unlike most minor modes, there is no separate
|
||||
@code{read-only-mode} variable. Even when Read Only mode is disabled,
|
||||
characters with non-@code{nil} @code{read-only} text properties remain
|
||||
read-only. To temporarily ignore all read-only states, bind
|
||||
@code{inhibit-read-only}, as described above.
|
||||
|
||||
When making the buffer read-only, this command also enables View mode
|
||||
When enabling Read Only mode, this mode command also enables View mode
|
||||
if the option @code{view-read-only} is non-@code{nil}. @xref{Misc
|
||||
Buffer,,Miscellaneous Buffer Operations, emacs, The GNU Emacs Manual}.
|
||||
When making the buffer writable, it disables View mode if View mode
|
||||
was enabled.
|
||||
|
||||
Lisp programs should only call @code{toggle-read-only} if they really
|
||||
intend to do the same thing as the user command, including possibly
|
||||
enabling or disabling View mode. Note also that this command works by
|
||||
setting @code{buffer-read-only}, so even if you make the buffer
|
||||
writable, characters with non-@code{nil} @code{read-only} text
|
||||
properties will remain read-only. To temporarily ignore all read-only
|
||||
states, bind @code{inhibit-read-only}, as described above.
|
||||
When disabling Read Only mode, it disables View mode if View mode was
|
||||
enabled.
|
||||
@end deffn
|
||||
|
||||
@defun barf-if-buffer-read-only
|
||||
|
|
|
|||
|
|
@ -1275,12 +1275,21 @@ describe events by their types; thus, if there is a key binding for
|
|||
@var{event-type} is @code{mouse-1}.
|
||||
|
||||
@item @var{position}
|
||||
This is the position where the mouse click occurred. The actual
|
||||
format of @var{position} depends on what part of a window was clicked
|
||||
on.
|
||||
@cindex mouse position list
|
||||
This is a @dfn{mouse position list} specifying where the mouse click
|
||||
occurred; see below for details.
|
||||
|
||||
For mouse click events in the text area, mode line, header line, or in
|
||||
the marginal areas, @var{position} has this form:
|
||||
@item @var{click-count}
|
||||
This is the number of rapid repeated presses so far of the same mouse
|
||||
button. @xref{Repeat Events}.
|
||||
@end table
|
||||
|
||||
To access the contents of a mouse position list in the
|
||||
@var{position} slot of a click event, you should typically use the
|
||||
functions documented in @ref{Accessing Mouse}. The explicit format of
|
||||
the list depends on where the click occurred. For clicks in the text
|
||||
area, mode line, header line, or in the fringe or marginal areas, the
|
||||
mouse position list has the form
|
||||
|
||||
@example
|
||||
(@var{window} @var{pos-or-area} (@var{x} . @var{y}) @var{timestamp}
|
||||
|
|
@ -1289,18 +1298,16 @@ the marginal areas, @var{position} has this form:
|
|||
@end example
|
||||
|
||||
@noindent
|
||||
The meanings of these list elements are documented below.
|
||||
@xref{Accessing Mouse}, for functions that let you easily access these
|
||||
elements.
|
||||
The meanings of these list elements are as follows:
|
||||
|
||||
@table @asis
|
||||
@item @var{window}
|
||||
This is the window in which the click occurred.
|
||||
The window in which the click occurred.
|
||||
|
||||
@item @var{pos-or-area}
|
||||
This is the buffer position of the character clicked on in the text
|
||||
area, or if clicked outside the text area, it is the window area in
|
||||
which the click occurred. It is one of the symbols @code{mode-line},
|
||||
The buffer position of the character clicked on in the text area; or,
|
||||
if the click was outside the text area, the window area where it
|
||||
occurred. It is one of the symbols @code{mode-line},
|
||||
@code{header-line}, @code{vertical-line}, @code{left-margin},
|
||||
@code{right-margin}, @code{left-fringe}, or @code{right-fringe}.
|
||||
|
||||
|
|
@ -1310,22 +1317,23 @@ happens after the imaginary prefix keys for the event are registered
|
|||
by Emacs. @xref{Key Sequence Input}.
|
||||
|
||||
@item @var{x}, @var{y}
|
||||
These are the relative pixel coordinates of the click. For clicks in
|
||||
the text area of a window, the coordinate origin @code{(0 . 0)} is
|
||||
taken to be the top left corner of the text area. @xref{Window
|
||||
Sizes}. For clicks in a mode line or header line, the coordinate
|
||||
origin is the top left corner of the window itself. For fringes,
|
||||
margins, and the vertical border, @var{x} does not have meaningful
|
||||
data. For fringes and margins, @var{y} is relative to the bottom edge
|
||||
of the header line. In all cases, the @var{x} and @var{y} coordinates
|
||||
increase rightward and downward respectively.
|
||||
The relative pixel coordinates of the click. For clicks in the text
|
||||
area of a window, the coordinate origin @code{(0 . 0)} is taken to be
|
||||
the top left corner of the text area. @xref{Window Sizes}. For
|
||||
clicks in a mode line or header line, the coordinate origin is the top
|
||||
left corner of the window itself. For fringes, margins, and the
|
||||
vertical border, @var{x} does not have meaningful data. For fringes
|
||||
and margins, @var{y} is relative to the bottom edge of the header
|
||||
line. In all cases, the @var{x} and @var{y} coordinates increase
|
||||
rightward and downward respectively.
|
||||
|
||||
@item @var{timestamp}
|
||||
This is the time at which the event occurred, in milliseconds.
|
||||
The time at which the event occurred, as an integer number of
|
||||
milliseconds since a system-dependent initial time.
|
||||
|
||||
@item @var{object}
|
||||
This is either @code{nil} if there is no string-type text property at
|
||||
the click position, or a cons cell of the form (@var{string}
|
||||
Either @code{nil} if there is no string-type text property at the
|
||||
click position, or a cons cell of the form (@var{string}
|
||||
. @var{string-pos}) if there is one:
|
||||
|
||||
@table @asis
|
||||
|
|
@ -1371,8 +1379,7 @@ These are the pixel width and height of @var{object} or, if this is
|
|||
@code{nil}, those of the character glyph clicked on.
|
||||
@end table
|
||||
|
||||
@sp 1
|
||||
For mouse clicks on a scroll-bar, @var{position} has this form:
|
||||
For clicks on a scroll bar, @var{position} has this form:
|
||||
|
||||
@example
|
||||
(@var{window} @var{area} (@var{portion} . @var{whole}) @var{timestamp} @var{part})
|
||||
|
|
@ -1380,32 +1387,35 @@ For mouse clicks on a scroll-bar, @var{position} has this form:
|
|||
|
||||
@table @asis
|
||||
@item @var{window}
|
||||
This is the window whose scroll-bar was clicked on.
|
||||
The window whose scroll bar was clicked on.
|
||||
|
||||
@item @var{area}
|
||||
This is the scroll bar where the click occurred. It is one of the
|
||||
symbols @code{vertical-scroll-bar} or @code{horizontal-scroll-bar}.
|
||||
This is the symbol @code{vertical-scroll-bar}.
|
||||
|
||||
@item @var{portion}
|
||||
This is the distance of the click from the top or left end of
|
||||
the scroll bar.
|
||||
The number of pixels from the top of the scroll bar to the click
|
||||
position. On some toolkits, including GTK+, Emacs cannot extract this
|
||||
data, so the value is always @code{0}.
|
||||
|
||||
@item @var{whole}
|
||||
This is the length of the entire scroll bar.
|
||||
The total length, in pixels, of the scroll bar. On some toolkits,
|
||||
including GTK+, Emacs cannot extract this data, so the value is always
|
||||
@code{0}.
|
||||
|
||||
@item @var{timestamp}
|
||||
This is the time at which the event occurred, in milliseconds.
|
||||
The time at which the event occurred, in milliseconds. On some
|
||||
toolkits, including GTK+, Emacs cannot extract this data, so the value
|
||||
is always @code{0}.
|
||||
|
||||
@item @var{part}
|
||||
This is the part of the scroll-bar which was clicked on. It is one
|
||||
of the symbols @code{above-handle}, @code{handle}, @code{below-handle},
|
||||
@code{up}, @code{down}, @code{top}, @code{bottom}, and @code{end-scroll}.
|
||||
The part of the scroll bar on which the click occurred. It is one of
|
||||
the symbols @code{handle} (the scroll bar handle), @code{above-handle}
|
||||
(the area above the handle), @code{below-handle} (the area below the
|
||||
handle), @code{up} (the up arrow at one end of the scroll bar), or
|
||||
@code{down} (the down arrow at one end of the scroll bar).
|
||||
@c The `top', `bottom', and `end-scroll' codes don't seem to be used.
|
||||
@end table
|
||||
|
||||
@item @var{click-count}
|
||||
This is the number of rapid repeated presses so far of the same mouse
|
||||
button. @xref{Repeat Events}.
|
||||
@end table
|
||||
|
||||
@node Drag Events
|
||||
@subsection Drag Events
|
||||
|
|
@ -1429,10 +1439,9 @@ For a drag event, the name of the symbol @var{event-type} contains the
|
|||
prefix @samp{drag-}. For example, dragging the mouse with button 2
|
||||
held down generates a @code{drag-mouse-2} event. The second and third
|
||||
elements of the event give the starting and ending position of the
|
||||
drag. They have the same form as @var{position} in a click event
|
||||
(@pxref{Click Events}) that is not on the scroll bar part of the
|
||||
window. You can access the second element of any mouse event in the
|
||||
same way, with no need to distinguish drag events from others.
|
||||
drag, as mouse position lists (@pxref{Click Events}). You can access
|
||||
the second element of any mouse event in the same way, with no need to
|
||||
distinguish drag events from others.
|
||||
|
||||
The @samp{drag-} prefix follows the modifier key prefixes such as
|
||||
@samp{C-} and @samp{M-}.
|
||||
|
|
@ -1575,13 +1584,14 @@ represented by lists that look like this:
|
|||
(mouse-movement POSITION)
|
||||
@end example
|
||||
|
||||
The second element of the list describes the current position of the
|
||||
mouse, just as in a click event (@pxref{Click Events}).
|
||||
@noindent
|
||||
@var{position} is a mouse position list (@pxref{Click Events}),
|
||||
specifying the current position of the mouse cursor.
|
||||
|
||||
The special form @code{track-mouse} enables generation of motion events
|
||||
within its body. Outside of @code{track-mouse} forms, Emacs does not
|
||||
generate events for mere motion of the mouse, and these events do not
|
||||
appear. @xref{Mouse Tracking}.
|
||||
The special form @code{track-mouse} enables generation of motion
|
||||
events within its body. Outside of @code{track-mouse} forms, Emacs
|
||||
does not generate events for mere motion of the mouse, and these
|
||||
events do not appear. @xref{Mouse Tracking}.
|
||||
|
||||
@node Focus Events
|
||||
@subsection Focus Events
|
||||
|
|
@ -1648,13 +1658,11 @@ frame has already been made visible, Emacs has no work to do.
|
|||
@cindex @code{wheel-up} event
|
||||
@cindex @code{wheel-down} event
|
||||
@item (wheel-up @var{position})
|
||||
@item (wheel-down @var{position})
|
||||
These kinds of event are generated by moving a mouse wheel. Their
|
||||
usual meaning is a kind of scroll or zoom.
|
||||
|
||||
The element @var{position} is a list describing the position of the
|
||||
event, in the same format as used in a mouse-click event (@pxref{Click
|
||||
Events}).
|
||||
@itemx (wheel-down @var{position})
|
||||
These kinds of event are generated by moving a mouse wheel. The
|
||||
@var{position} element is a mouse position list (@pxref{Click
|
||||
Events}), specifying the position of the mouse cursor when the event
|
||||
occurred.
|
||||
|
||||
@vindex mouse-wheel-up-event
|
||||
@vindex mouse-wheel-down-event
|
||||
|
|
@ -1922,14 +1930,8 @@ must be the last element of the list. For example,
|
|||
This section describes convenient functions for accessing the data in
|
||||
a mouse button or motion event.
|
||||
|
||||
These two functions return the starting or ending position of a
|
||||
mouse-button event, as a list of this form (@pxref{Click Events}):
|
||||
|
||||
@example
|
||||
(@var{window} @var{pos-or-area} (@var{x} . @var{y}) @var{timestamp}
|
||||
@var{object} @var{text-pos} (@var{col} . @var{row})
|
||||
@var{image} (@var{dx} . @var{dy}) (@var{width} . @var{height}))
|
||||
@end example
|
||||
The following two functions return a mouse position list
|
||||
(@pxref{Click Events}), specifying the position of a mouse event.
|
||||
|
||||
@defun event-start event
|
||||
This returns the starting position of @var{event}.
|
||||
|
|
@ -1948,9 +1950,15 @@ event, the value is actually the starting position, which is the only
|
|||
position such events have.
|
||||
@end defun
|
||||
|
||||
@defun posnp object
|
||||
This function returns non-@code{nil} if @var{object} is a mouse
|
||||
oposition list, in either of the formats documented in @ref{Click
|
||||
Events}); and @code{nil} otherwise.
|
||||
@end defun
|
||||
|
||||
@cindex mouse position list, accessing
|
||||
These functions take a position list as described above, and
|
||||
return various parts of it.
|
||||
These functions take a mouse position list as argument, and return
|
||||
various parts of it:
|
||||
|
||||
@defun posn-window position
|
||||
Return the window that @var{position} is in.
|
||||
|
|
|
|||
|
|
@ -516,6 +516,7 @@ Functions
|
|||
* Obsolete Functions:: Declaring functions obsolete.
|
||||
* Inline Functions:: Defining functions that the compiler
|
||||
will expand inline.
|
||||
* Declare Form:: Adding additional information about a function.
|
||||
* Declaring Functions:: Telling the compiler that a function is defined.
|
||||
* Function Safety:: Determining whether a function is safe to call.
|
||||
* Related Topics:: Cross-references to specific Lisp primitives
|
||||
|
|
|
|||
|
|
@ -37,78 +37,69 @@ handled.
|
|||
|
||||
@table @code
|
||||
@item error
|
||||
@code{"error"}@*
|
||||
@xref{Errors}.
|
||||
The message is @samp{error}. @xref{Errors}.
|
||||
|
||||
@item quit
|
||||
@code{"Quit"}@*
|
||||
@xref{Quitting}.
|
||||
The message is @samp{Quit}. @xref{Quitting}.
|
||||
|
||||
@item args-out-of-range
|
||||
@code{"Args out of range"}@*
|
||||
This happens when trying to access an element beyond the range of a
|
||||
sequence or buffer.@*
|
||||
@xref{Sequences Arrays Vectors}, @xref{Text}.
|
||||
The message is @samp{Args out of range}. This happens when trying to
|
||||
access an element beyond the range of a sequence, buffer, or other
|
||||
container-like object. @xref{Sequences Arrays Vectors}, and
|
||||
@xref{Text}.
|
||||
|
||||
@item arith-error
|
||||
@code{"Arithmetic error"}@*
|
||||
The message is @samp{Arithmetic error}. This occurs when trying to
|
||||
perform integer division by zero. @xref{Numeric Conversions}, and
|
||||
@xref{Arithmetic Operations}.
|
||||
|
||||
@item beginning-of-buffer
|
||||
@code{"Beginning of buffer"}@*
|
||||
@xref{Character Motion}.
|
||||
The message is @samp{Beginning of buffer}. @xref{Character Motion}.
|
||||
|
||||
@item buffer-read-only
|
||||
@code{"Buffer is read-only"}@*
|
||||
@xref{Read Only Buffers}.
|
||||
The message is @samp{Buffer is read-only}. @xref{Read Only Buffers}.
|
||||
|
||||
@item circular-list
|
||||
@code{"List contains a loop"}@*
|
||||
This happens when some operations (e.g. resolving face names)
|
||||
encounter circular structures.@*
|
||||
@xref{Circular Objects}.
|
||||
The message is @samp{List contains a loop}. This happens when a
|
||||
circular structure is encountered. @xref{Circular Objects}.
|
||||
|
||||
@item cl-assertion-failed
|
||||
@code{"Assertion failed"}@*
|
||||
This happens when the @code{assert} macro fails a test.@*
|
||||
@xref{Assertions,,, cl, Common Lisp Extensions}.
|
||||
The message is @samp{Assertion failed}. This happens when the
|
||||
@code{assert} macro fails a test. @xref{Assertions,,, cl, Common Lisp
|
||||
Extensions}.
|
||||
|
||||
@item coding-system-error
|
||||
@code{"Invalid coding system"}@*
|
||||
@xref{Lisp and Coding Systems}.
|
||||
The message is @samp{Invalid coding system}. @xref{Lisp and Coding
|
||||
Systems}.
|
||||
|
||||
@item cyclic-function-indirection
|
||||
@code{"Symbol's chain of function indirections contains a loop"}@*
|
||||
@xref{Function Indirection}.
|
||||
The message is @samp{Symbol's chain of function indirections contains
|
||||
a loop}. @xref{Function Indirection}.
|
||||
|
||||
@item cyclic-variable-indirection
|
||||
@code{"Symbol's chain of variable indirections contains a loop"}@*
|
||||
@xref{Variable Aliases}.
|
||||
The message is @samp{Symbol's chain of variable indirections contains
|
||||
a loop}. @xref{Variable Aliases}.
|
||||
|
||||
@item dbus-error
|
||||
@code{"D-Bus error"}@*
|
||||
This is only defined if Emacs was compiled with D-Bus support.@*
|
||||
@xref{Errors and Events,,, dbus, D-Bus integration in Emacs}.
|
||||
The message is @samp{D-Bus error}. This is only defined if Emacs was
|
||||
compiled with D-Bus support. @xref{Errors and Events,,, dbus, D-Bus
|
||||
integration in Emacs}.
|
||||
|
||||
@item end-of-buffer
|
||||
@code{"End of buffer"}@*
|
||||
@xref{Character Motion}.
|
||||
The message is @samp{End of buffer}. @xref{Character Motion}.
|
||||
|
||||
@item end-of-file
|
||||
@code{"End of file during parsing"}@*
|
||||
Note that this is not a subcategory of @code{file-error},
|
||||
because it pertains to the Lisp reader, not to file I/O.@*
|
||||
@xref{Input Functions}.
|
||||
The message is @samp{End of file during parsing}. Note that this is
|
||||
not a subcategory of @code{file-error}, because it pertains to the
|
||||
Lisp reader, not to file I/O. @xref{Input Functions}.
|
||||
|
||||
@item file-already-exists
|
||||
This is a subcategory of @code{file-error}.@*
|
||||
@xref{Writing to Files}.
|
||||
This is a subcategory of @code{file-error}. @xref{Writing to Files}.
|
||||
|
||||
@item file-date-error
|
||||
This is a subcategory of @code{file-error}. It occurs when
|
||||
@code{copy-file} tries and fails to set the last-modification time of
|
||||
the output file.@*
|
||||
@xref{Changing Files}.
|
||||
the output file. @xref{Changing Files}.
|
||||
|
||||
@item file-error
|
||||
We do not list the error-strings of this error and its subcategories,
|
||||
|
|
@ -116,122 +107,109 @@ because the error message is normally constructed from the data items
|
|||
alone when the error condition @code{file-error} is present. Thus,
|
||||
the error-strings are not very relevant. However, these error symbols
|
||||
do have @code{error-message} properties, and if no data is provided,
|
||||
the @code{error-message} property @emph{is} used.@*
|
||||
@xref{Files}.
|
||||
the @code{error-message} property @emph{is} used. @xref{Files}.
|
||||
|
||||
@c jka-compr.el
|
||||
@item compression-error
|
||||
This is a subcategory of @code{file-error}, which results from
|
||||
problems handling a compressed file.@*
|
||||
@xref{How Programs Do Loading}.
|
||||
problems handling a compressed file. @xref{How Programs Do Loading}.
|
||||
|
||||
@c userlock.el
|
||||
@item file-locked
|
||||
This is a subcategory of @code{file-error}.@*
|
||||
@xref{File Locks}.
|
||||
This is a subcategory of @code{file-error}. @xref{File Locks}.
|
||||
|
||||
@c userlock.el
|
||||
@item file-supersession
|
||||
This is a subcategory of @code{file-error}.@*
|
||||
@xref{Modification Time}.
|
||||
This is a subcategory of @code{file-error}. @xref{Modification Time}.
|
||||
|
||||
@c net/ange-ftp.el
|
||||
@item ftp-error
|
||||
This is a subcategory of @code{file-error}, which results from problems
|
||||
in accessing a remote file using ftp.@*
|
||||
@xref{Remote Files,,, emacs, The GNU Emacs Manual}.
|
||||
This is a subcategory of @code{file-error}, which results from
|
||||
problems in accessing a remote file using ftp. @xref{Remote Files,,,
|
||||
emacs, The GNU Emacs Manual}.
|
||||
|
||||
@item invalid-function
|
||||
@code{"Invalid function"}@*
|
||||
@xref{Function Indirection}.
|
||||
The message is @samp{Invalid function}. @xref{Function Indirection}.
|
||||
|
||||
@item invalid-read-syntax
|
||||
@code{"Invalid read syntax"}@*
|
||||
@xref{Printed Representation}.
|
||||
The message is @samp{Invalid read syntax}. @xref{Printed
|
||||
Representation}.
|
||||
|
||||
@item invalid-regexp
|
||||
@code{"Invalid regexp"}@*
|
||||
@xref{Regular Expressions}.
|
||||
The message is @samp{Invalid regexp}. @xref{Regular Expressions}.
|
||||
|
||||
@c simple.el
|
||||
@item mark-inactive
|
||||
@code{"The mark is not active now"}@*
|
||||
@xref{The Mark}.
|
||||
The message is @samp{The mark is not active now}. @xref{The Mark}.
|
||||
|
||||
@item no-catch
|
||||
@code{"No catch for tag"}@*
|
||||
@xref{Catch and Throw}.
|
||||
The message is @samp{No catch for tag}. @xref{Catch and Throw}.
|
||||
|
||||
@ignore
|
||||
@c Not actually used for anything? Probably definition should be removed.
|
||||
@item protected-field
|
||||
@code{"Attempt to modify a protected field"}
|
||||
The message is @samp{Attempt to modify a protected fiel.
|
||||
@end ignore
|
||||
|
||||
@item scan-error
|
||||
@code{"Scan error"}@*
|
||||
This happens when certain syntax-parsing functions
|
||||
find invalid syntax or mismatched parentheses.@*
|
||||
@xref{List Motion}, and @ref{Parsing Expressions}.
|
||||
The message is @samp{Scan error}. This happens when certain
|
||||
syntax-parsing functions find invalid syntax or mismatched
|
||||
parentheses. @xref{List Motion}, and @xref{Parsing Expressions}.
|
||||
|
||||
@item search-failed
|
||||
@code{"Search failed"}@*
|
||||
@xref{Searching and Matching}.
|
||||
The message is @samp{Search failed}. @xref{Searching and Matching}.
|
||||
|
||||
@item setting-constant
|
||||
@code{"Attempt to set a constant symbol"}@*
|
||||
The values of the symbols @code{nil} and @code{t},
|
||||
and any symbols that start with @samp{:},
|
||||
may not be changed.@*
|
||||
@xref{Constant Variables, , Variables that Never Change}.
|
||||
The message is @samp{Attempt to set a constant symbol}. This happens
|
||||
when attempting to assign values to @code{nil}, @code{t}, and keyword
|
||||
symbols. @xref{Constant Variables}.
|
||||
|
||||
@c simple.el
|
||||
@item text-read-only
|
||||
@code{"Text is read-only"}@*
|
||||
This is a subcategory of @code{buffer-read-only}.@*
|
||||
@xref{Special Properties}.
|
||||
The message is @samp{Text is read-only}. This is a subcategory of
|
||||
@code{buffer-read-only}. @xref{Special Properties}.
|
||||
|
||||
@item undefined-color
|
||||
@code{"Undefined color"}@*
|
||||
@xref{Color Names}.
|
||||
The message is @samp{Undefined color}. @xref{Color Names}.
|
||||
|
||||
@item void-function
|
||||
@code{"Symbol's function definition is void"}@*
|
||||
The message is @samp{Symbol's function definition is void}.
|
||||
@xref{Function Cells}.
|
||||
|
||||
@item void-variable
|
||||
@code{"Symbol's value as variable is void"}@*
|
||||
The message is @samp{Symbol's value as variable is void}.
|
||||
@xref{Accessing Variables}.
|
||||
|
||||
@item wrong-number-of-arguments
|
||||
@code{"Wrong number of arguments"}@*
|
||||
@xref{Classifying Lists}.
|
||||
The message is @samp{Wrong number of arguments}. @xref{Classifying
|
||||
Lists}.
|
||||
|
||||
@item wrong-type-argument
|
||||
@code{"Wrong type argument"}@*
|
||||
@xref{Type Predicates}.
|
||||
The message is @samp{Wrong type argument}. @xref{Type Predicates}.
|
||||
@end table
|
||||
|
||||
@ignore The following seem to be unused now.
|
||||
The following kinds of error, which are classified as special cases of
|
||||
@code{arith-error}, can occur on certain systems for invalid use of
|
||||
mathematical functions. @xref{Math Functions}.
|
||||
|
||||
@table @code
|
||||
@item domain-error
|
||||
@code{"Arithmetic domain error"}
|
||||
The message is @samp{Arithmetic domain error}.
|
||||
|
||||
@item overflow-error
|
||||
@code{"Arithmetic overflow error"}@*
|
||||
This is a subcategory of @code{domain-error}.
|
||||
The message is @samp{Arithmetic overflow error}. This is a subcategory
|
||||
of @code{domain-error}.
|
||||
|
||||
@item range-error
|
||||
@code{"Arithmetic range error"}
|
||||
The message is @code{Arithmetic range error}.
|
||||
|
||||
@item singularity-error
|
||||
@code{"Arithmetic singularity error"}@*
|
||||
This is a subcategory of @code{domain-error}.
|
||||
The mssage is @samp{Arithmetic singularity error}. This is a
|
||||
subcategory of @code{domain-error}.
|
||||
|
||||
@item underflow-error
|
||||
@code{"Arithmetic underflow error"}@*
|
||||
This is a subcategory of @code{domain-error}.
|
||||
The message is @samp{Arithmetic underflow error}. This is a
|
||||
subcategory of @code{domain-error}.
|
||||
@end table
|
||||
@end ignore
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ arguments, except where noted. @xref{Magic File Names}, for details.
|
|||
When file I/O functions signal Lisp errors, they usually use the
|
||||
condition @code{file-error} (@pxref{Handling Errors}). The error
|
||||
message is in most cases obtained from the operating system, according
|
||||
to locale @code{system-message-locale}, and decoded using coding system
|
||||
to locale @code{system-messages-locale}, and decoded using coding system
|
||||
@code{locale-coding-system} (@pxref{Locales}).
|
||||
|
||||
@menu
|
||||
|
|
|
|||
|
|
@ -1529,24 +1529,14 @@ track of such changes. @xref{Misc Events}.
|
|||
@node Raising and Lowering
|
||||
@section Raising and Lowering Frames
|
||||
|
||||
Most window systems use a desktop metaphor. Part of this metaphor is
|
||||
the idea that windows are stacked in a notional third dimension
|
||||
perpendicular to the screen surface, and thus ordered from ``highest''
|
||||
to ``lowest''. Where two windows overlap, the one higher up covers
|
||||
the one underneath. Even a window at the bottom of the stack can be
|
||||
seen if no other window overlaps it.
|
||||
|
||||
@c @cindex raising a frame redundant with raise-frame
|
||||
@cindex raising a frame
|
||||
@cindex lowering a frame
|
||||
A window's place in this ordering is not fixed; in fact, users tend
|
||||
to change the order frequently. @dfn{Raising} a window means moving
|
||||
it ``up'', to the top of the stack. @dfn{Lowering} a window means
|
||||
moving it to the bottom of the stack. This motion is in the notional
|
||||
third dimension only, and does not change the position of the window
|
||||
on the screen.
|
||||
|
||||
With Emacs, frames constitute the windows in the metaphor sketched
|
||||
above. You can raise and lower frames using these functions:
|
||||
Most window systems use a desktop metaphor. Part of this metaphor
|
||||
is the idea that system-level windows (e.g.@: Emacs frames) are
|
||||
stacked in a notional third dimension perpendicular to the screen
|
||||
surface. Where two overlap, the one higher up covers the one
|
||||
underneath. You can @dfn{raise} or @dfn{lower} a frame using the
|
||||
functions @code{raise-frame} and @code{lower-frame}.
|
||||
|
||||
@deffn Command raise-frame &optional frame
|
||||
This function raises frame @var{frame} (default, the selected frame).
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ define them.
|
|||
* Closures:: Functions that enclose a lexical environment.
|
||||
* Obsolete Functions:: Declaring functions obsolete.
|
||||
* Inline Functions:: Functions that the compiler will expand inline.
|
||||
* Declare Form:: Adding additional information about a function.
|
||||
* Declaring Functions:: Telling the compiler that a function is defined.
|
||||
* Function Safety:: Determining whether a function is safe to call.
|
||||
* Related Topics:: Cross-references to specific Lisp primitives
|
||||
|
|
@ -521,7 +522,7 @@ Scheme.)
|
|||
is called @dfn{defining a function}, and it is done with the
|
||||
@code{defun} special form.
|
||||
|
||||
@defspec defun name argument-list body-forms...
|
||||
@defmac defun name argument-list body-forms...
|
||||
@code{defun} is the usual way to define new Lisp functions. It
|
||||
defines the symbol @var{name} as a function that looks like this:
|
||||
|
||||
|
|
@ -578,7 +579,7 @@ without any hesitation or notification. Emacs does not prevent you
|
|||
from doing this, because redefining a function is sometimes done
|
||||
deliberately, and there is no way to distinguish deliberate
|
||||
redefinition from unintentional redefinition.
|
||||
@end defspec
|
||||
@end defmac
|
||||
|
||||
@cindex function aliases
|
||||
@defun defalias name definition &optional docstring
|
||||
|
|
@ -1132,29 +1133,46 @@ examining or altering the structure of closure objects.
|
|||
@node Obsolete Functions
|
||||
@section Declaring Functions Obsolete
|
||||
|
||||
You can use @code{make-obsolete} to declare a function obsolete. This
|
||||
indicates that the function may be removed at some stage in the future.
|
||||
You can mark a named function as @dfn{obsolete}, meaning that it may
|
||||
be removed at some point in the future. This causes Emacs to warn
|
||||
that the function is obsolete whenever it byte-compiles code
|
||||
containing that function, and whenever it displays the documentation
|
||||
for that function. In all other respects, an obsolete function
|
||||
behaves like any other function.
|
||||
|
||||
The easiest way to mark a function as obsolete is to put a
|
||||
@code{(declare (obsolete @dots{}))} form in the function's
|
||||
@code{defun} definition. @xref{Declare Form}. Alternatively, you can
|
||||
use the @code{make-obsolete} function, described below.
|
||||
|
||||
A macro (@pxref{Macros}) can also be marked obsolete with
|
||||
@code{make-obsolete}; this has the same effects as for a function. An
|
||||
alias for a function or macro can also be marked as obsolete; this
|
||||
makes the alias itself obsolete, not the function or macro which it
|
||||
resolves to.
|
||||
|
||||
@defun make-obsolete obsolete-name current-name &optional when
|
||||
This function makes the byte compiler warn that the function
|
||||
@var{obsolete-name} is obsolete. If @var{current-name} is a symbol, the
|
||||
warning message says to use @var{current-name} instead of
|
||||
@var{obsolete-name}. @var{current-name} does not need to be an alias for
|
||||
@var{obsolete-name}; it can be a different function with similar
|
||||
functionality. If @var{current-name} is a string, it is the warning
|
||||
message.
|
||||
This function marks @var{obsolete-name} as obsolete.
|
||||
@var{obsolete-name} should be a symbol naming a function or macro, or
|
||||
an alias for a function or macro.
|
||||
|
||||
If @var{current-name} is a symbol, the warning message says to use
|
||||
@var{current-name} instead of @var{obsolete-name}. @var{current-name}
|
||||
does not need to be an alias for @var{obsolete-name}; it can be a
|
||||
different function with similar functionality. @var{current-name} can
|
||||
also be a string, which serves as the warning message. The message
|
||||
should begin in lower case, and end with a period. It can also be
|
||||
@code{nil}, in which case the warning message provides no additional
|
||||
details.
|
||||
|
||||
If provided, @var{when} should be a string indicating when the function
|
||||
was first made obsolete---for example, a date or a release number.
|
||||
@end defun
|
||||
|
||||
You can define a function as an alias and declare it obsolete at the
|
||||
same time using the macro @code{define-obsolete-function-alias}:
|
||||
|
||||
@defmac define-obsolete-function-alias obsolete-name current-name &optional when docstring
|
||||
This macro marks the function @var{obsolete-name} obsolete and also
|
||||
defines it as an alias for the function @var{current-name}. It is
|
||||
equivalent to the following:
|
||||
This convenience macro marks the function @var{obsolete-name} obsolete
|
||||
and also defines it as an alias for the function @var{current-name}.
|
||||
It is equivalent to the following:
|
||||
|
||||
@example
|
||||
(defalias @var{obsolete-name} @var{current-name} @var{docstring})
|
||||
|
|
@ -1236,6 +1254,63 @@ body uses the arguments, as you do for macros.
|
|||
After an inline function is defined, its inline expansion can be
|
||||
performed later on in the same file, just like macros.
|
||||
|
||||
@node Declare Form
|
||||
@section The @code{declare} Form
|
||||
@findex declare
|
||||
|
||||
@code{declare} is a special macro which can be used to add ``meta''
|
||||
properties to a function or macro: for example, marking it as
|
||||
obsolete, or giving its forms a special @key{TAB} indentation
|
||||
convention in Emacs Lisp mode.
|
||||
|
||||
@anchor{Definition of declare}
|
||||
@defmac declare @var{specs}@dots{}
|
||||
This macro ignores its arguments and evaluates to @code{nil}; it has
|
||||
no run-time effect. However, when a @code{declare} form occurs as the
|
||||
@emph{very first form} in the body of a @code{defun} function
|
||||
definition or a @code{defmacro} macro definition (@pxref{Defining
|
||||
Macros}, for a description of @code{defmacro}), it appends the
|
||||
properties specified by @var{specs} to the function or macro. This
|
||||
work is specially performed by the @code{defun} and @code{defmacro}
|
||||
macros.
|
||||
|
||||
Note that if you put a @code{declare} form in an interactive function,
|
||||
it should go before the @code{interactive} form.
|
||||
|
||||
Each element in @var{specs} should have the form @code{(@var{property}
|
||||
@var{args}@dots{})}, which should not be quoted. These have the
|
||||
following effects:
|
||||
|
||||
@table @code
|
||||
@item (advertised-calling-convention @var{signature} @var{when})
|
||||
This acts like a call to @code{set-advertised-calling-convention}
|
||||
(@pxref{Obsolete Functions}); @var{signature} specifies the correct
|
||||
argument list for calling the function or macro, and @var{when} should
|
||||
be a string indicating when the variable was first made obsolete.
|
||||
|
||||
@item (debug @var{edebug-form-spec})
|
||||
This is valid for macros only. When stepping through the macro with
|
||||
Edebug, use @var{edebug-form-spec}. @xref{Instrumenting Macro Calls}.
|
||||
|
||||
@item (doc-string @var{n})
|
||||
Use element number @var{n}, if any, as the documentation string.
|
||||
|
||||
@item (indent @var{indent-spec})
|
||||
Indent calls to this function or macro according to @var{indent-spec}.
|
||||
This is typically used for macros, though it works for functions too.
|
||||
@xref{Indenting Macros}.
|
||||
|
||||
@item (obsolete @var{current-name} @var{when})
|
||||
Mark the function or macro as obsolete, similar to a call to
|
||||
@code{make-obsolete} (@pxref{Obsolete Functions}). @var{current-name}
|
||||
should be a symbol (in which case the warning message says to use that
|
||||
instead), a string (specifying the warning message), or @code{nil} (in
|
||||
which case the warning message gives no extra details). @var{when}
|
||||
should be a string indicating when the function or macro was first
|
||||
made obsolete.
|
||||
@end table
|
||||
@end defmac
|
||||
|
||||
@node Declaring Functions
|
||||
@section Telling the Compiler that a Function is Defined
|
||||
@cindex function declaration
|
||||
|
|
|
|||
|
|
@ -58,11 +58,17 @@ use @kbd{C-h f} (@code{describe-function}) or @kbd{C-h v}
|
|||
are many other conventions for documentation strings; see
|
||||
@ref{Documentation Tips}.
|
||||
|
||||
Documentation strings can contain several special substrings, which
|
||||
stand for key bindings to be looked up in the current keymaps when the
|
||||
documentation is displayed. This allows documentation strings to refer
|
||||
to the keys for related commands and be accurate even when a user
|
||||
rearranges the key bindings. (@xref{Keys in Documentation}.)
|
||||
Documentation strings can contain several special text sequences,
|
||||
referring to key bindings which are looked up in the current keymaps
|
||||
when the user views the documentation. This allows the help commands
|
||||
to display the correct keys even if a user rearranges the default key
|
||||
bindings. @xref{Keys in Documentation}.
|
||||
|
||||
In the documentation string of an autoloaded command
|
||||
(@pxref{Autoload}), these special text sequences have an additional
|
||||
special effect: they cause @kbd{C-h f} (@code{describe-function}) on
|
||||
the command to trigger autoloading. (This is needed for correctly
|
||||
setting up the hyperlinks in the @file{*Help*} buffer).
|
||||
|
||||
@vindex emacs-lisp-docstring-fill-column
|
||||
Emacs Lisp mode fills documentation strings to the width
|
||||
|
|
|
|||
|
|
@ -2288,12 +2288,12 @@ command but with different enable conditions. The best way to do this
|
|||
in Emacs now is with extended menu items; before that feature existed,
|
||||
it could be done by defining alias commands and using them in menu
|
||||
items. Here's an example that makes two aliases for
|
||||
@code{toggle-read-only} and gives them different enable conditions:
|
||||
@code{read-only-mode} and gives them different enable conditions:
|
||||
|
||||
@example
|
||||
(defalias 'make-read-only 'toggle-read-only)
|
||||
(defalias 'make-read-only 'read-only-mode)
|
||||
(put 'make-read-only 'menu-enable '(not buffer-read-only))
|
||||
(defalias 'make-writable 'toggle-read-only)
|
||||
(defalias 'make-writable 'read-only-mode)
|
||||
(put 'make-writable 'menu-enable 'buffer-read-only)
|
||||
@end example
|
||||
|
||||
|
|
@ -2310,7 +2310,7 @@ itself). To request this, give the alias symbol a non-@code{nil}
|
|||
|
||||
@noindent
|
||||
causes menu items for @code{make-read-only} and @code{make-writable} to
|
||||
show the keyboard bindings for @code{toggle-read-only}.
|
||||
show the keyboard bindings for @code{read-only-mode}.
|
||||
|
||||
@node Toolkit Differences
|
||||
@subsubsection Toolkit Differences
|
||||
|
|
|
|||
|
|
@ -384,11 +384,13 @@ non-@acronym{ASCII} characters written as @code{?v@var{literal}}.
|
|||
@section Autoload
|
||||
@cindex autoload
|
||||
|
||||
The @dfn{autoload} facility allows you to register the existence of
|
||||
a function or macro, but put off loading the file that defines it.
|
||||
The first call to the function automatically reads the proper file, in
|
||||
The @dfn{autoload} facility lets you register the existence of a
|
||||
function or macro, but put off loading the file that defines it. The
|
||||
first call to the function automatically loads the proper library, in
|
||||
order to install the real definition and other associated code, then
|
||||
runs the real definition as if it had been loaded all along.
|
||||
Autoloading can also be triggered by looking up the documentation of
|
||||
the function or macro (@pxref{Documentation Basics}).
|
||||
|
||||
There are two ways to set up an autoloaded function: by calling
|
||||
@code{autoload}, and by writing a special ``magic'' comment in the
|
||||
|
|
|
|||
|
|
@ -235,43 +235,8 @@ of constants and nonconstant parts. To make this easier, use the
|
|||
@end example
|
||||
|
||||
The body of a macro definition can include a @code{declare} form,
|
||||
which can specify how @key{TAB} should indent macro calls, and how to
|
||||
step through them for Edebug.
|
||||
|
||||
@defmac declare @var{specs}@dots{}
|
||||
@anchor{Definition of declare}
|
||||
A @code{declare} form is used in a macro definition to specify various
|
||||
additional information about it. The following specifications are
|
||||
currently supported:
|
||||
|
||||
@table @code
|
||||
@item (debug @var{edebug-form-spec})
|
||||
Specify how to step through macro calls for Edebug.
|
||||
@xref{Instrumenting Macro Calls}.
|
||||
|
||||
@item (indent @var{indent-spec})
|
||||
Specify how to indent calls to this macro. @xref{Indenting Macros},
|
||||
for more details.
|
||||
|
||||
@item (doc-string @var{number})
|
||||
Specify which element of the macro is the documentation string, if
|
||||
any.
|
||||
@end table
|
||||
|
||||
A @code{declare} form only has its special effect in the body of a
|
||||
@code{defmacro} form if it immediately follows the documentation
|
||||
string, if present, or the argument list otherwise. (Strictly
|
||||
speaking, @emph{several} @code{declare} forms can follow the
|
||||
documentation string or argument list, but since a @code{declare} form
|
||||
can have several @var{specs}, they can always be combined into a
|
||||
single form.) When used at other places in a @code{defmacro} form, or
|
||||
outside a @code{defmacro} form, @code{declare} just returns @code{nil}
|
||||
without evaluating any @var{specs}.
|
||||
@end defmac
|
||||
|
||||
No macro absolutely needs a @code{declare} form, because that form
|
||||
has no effect on how the macro expands, on what the macro means in the
|
||||
program. It only affects the secondary features listed above.
|
||||
which specifies additional properties about the macro. @xref{Declare
|
||||
Form}.
|
||||
|
||||
@node Problems with Macros
|
||||
@section Common Problems Using Macros
|
||||
|
|
|
|||
|
|
@ -48,9 +48,8 @@ to
|
|||
@tex
|
||||
@math{2^{29}-1}),
|
||||
@end tex
|
||||
but some machines provide a wider range. Many examples in this
|
||||
chapter assume that an integer has 30 bits and that floating point
|
||||
numbers are IEEE double precision.
|
||||
but many machines provide a wider range. Many examples in this
|
||||
chapter assume the minimum integer width of 30 bits.
|
||||
@cindex overflow
|
||||
|
||||
The Lisp reader reads an integer as a sequence of digits with optional
|
||||
|
|
@ -160,8 +159,9 @@ The value of this variable is the smallest integer that Emacs Lisp can
|
|||
handle. It is negative.
|
||||
@end defvar
|
||||
|
||||
@xref{Character Codes, max-char}, for the maximum value of a valid
|
||||
character codepoint.
|
||||
In Emacs Lisp, text characters are represented by integers. Any
|
||||
integer between zero and the value of @code{max-char}, inclusive, is
|
||||
considered to be valid as a character. @xref{String Basics}.
|
||||
|
||||
@node Float Basics
|
||||
@section Floating Point Basics
|
||||
|
|
@ -171,8 +171,8 @@ character codepoint.
|
|||
not integral. The precise range of floating point numbers is
|
||||
machine-specific; it is the same as the range of the C data type
|
||||
@code{double} on the machine you are using. Emacs uses the
|
||||
@acronym{IEEE} floating point standard where possible (the standard is
|
||||
supported by most modern computers).
|
||||
@acronym{IEEE} floating point standard, which is supported by all
|
||||
modern computers.
|
||||
|
||||
The read syntax for floating point numbers requires either a decimal
|
||||
point (with at least one digit following), an exponent, or both. For
|
||||
|
|
@ -316,17 +316,16 @@ compare them, then you test whether two values are the same
|
|||
@emph{object}. By contrast, @code{=} compares only the numeric values
|
||||
of the objects.
|
||||
|
||||
At present, each integer value has a unique Lisp object in Emacs Lisp.
|
||||
In Emacs Lisp, each integer value is a unique Lisp object.
|
||||
Therefore, @code{eq} is equivalent to @code{=} where integers are
|
||||
concerned. It is sometimes convenient to use @code{eq} for comparing an
|
||||
unknown value with an integer, because @code{eq} does not report an
|
||||
error if the unknown value is not a number---it accepts arguments of any
|
||||
type. By contrast, @code{=} signals an error if the arguments are not
|
||||
numbers or markers. However, it is a good idea to use @code{=} if you
|
||||
can, even for comparing integers, just in case we change the
|
||||
representation of integers in a future Emacs version.
|
||||
concerned. It is sometimes convenient to use @code{eq} for comparing
|
||||
an unknown value with an integer, because @code{eq} does not report an
|
||||
error if the unknown value is not a number---it accepts arguments of
|
||||
any type. By contrast, @code{=} signals an error if the arguments are
|
||||
not numbers or markers. However, it is better programming practice to
|
||||
use @code{=} if you can, even for comparing integers.
|
||||
|
||||
Sometimes it is useful to compare numbers with @code{equal}; it
|
||||
Sometimes it is useful to compare numbers with @code{equal}, which
|
||||
treats two numbers as equal if they have the same data type (both
|
||||
integers, or both floating point) and the same value. By contrast,
|
||||
@code{=} can treat an integer and a floating point number as equal.
|
||||
|
|
@ -439,15 +438,16 @@ If @var{number} is already a floating point number, @code{float} returns
|
|||
it unchanged.
|
||||
@end defun
|
||||
|
||||
There are four functions to convert floating point numbers to integers;
|
||||
they differ in how they round. All accept an argument @var{number}
|
||||
and an optional argument @var{divisor}. Both arguments may be
|
||||
integers or floating point numbers. @var{divisor} may also be
|
||||
There are four functions to convert floating point numbers to
|
||||
integers; they differ in how they round. All accept an argument
|
||||
@var{number} and an optional argument @var{divisor}. Both arguments
|
||||
may be integers or floating point numbers. @var{divisor} may also be
|
||||
@code{nil}. If @var{divisor} is @code{nil} or omitted, these
|
||||
functions convert @var{number} to an integer, or return it unchanged
|
||||
if it already is an integer. If @var{divisor} is non-@code{nil}, they
|
||||
divide @var{number} by @var{divisor} and convert the result to an
|
||||
integer. An @code{arith-error} results if @var{divisor} is 0.
|
||||
integer. integer. If @var{divisor} is zero (whether integer or
|
||||
floating-point), Emacs signals an @code{arith-error} error.
|
||||
|
||||
@defun truncate number &optional divisor
|
||||
This returns @var{number}, converted to an integer by rounding towards
|
||||
|
|
@ -524,14 +524,12 @@ depending on your machine.
|
|||
@section Arithmetic Operations
|
||||
@cindex arithmetic operations
|
||||
|
||||
Emacs Lisp provides the traditional four arithmetic operations:
|
||||
addition, subtraction, multiplication, and division. Remainder and modulus
|
||||
functions supplement the division functions. The functions to
|
||||
add or subtract 1 are provided because they are traditional in Lisp and
|
||||
commonly used.
|
||||
|
||||
All of these functions except @code{%} return a floating point value
|
||||
if any argument is floating.
|
||||
Emacs Lisp provides the traditional four arithmetic operations
|
||||
(addition, subtraction, multiplication, and division), as well as
|
||||
remainder and modulus functions, and functions to add or subtract 1.
|
||||
Except for @code{%}, each of these functions accepts both integer and
|
||||
floating point arguments, and returns a floating point number if any
|
||||
argument is a floating point number.
|
||||
|
||||
It is important to note that in Emacs Lisp, arithmetic functions
|
||||
do not check for overflow. Thus @code{(1+ 536870911)} may evaluate to
|
||||
|
|
@ -620,40 +618,49 @@ quotient. If there are additional arguments @var{divisors}, then it
|
|||
divides @var{dividend} by each divisor in turn. Each argument may be a
|
||||
number or a marker.
|
||||
|
||||
If all the arguments are integers, then the result is an integer too.
|
||||
This means the result has to be rounded. On most machines, the result
|
||||
is rounded towards zero after each division, but some machines may round
|
||||
differently with negative arguments. This is because the Lisp function
|
||||
@code{/} is implemented using the C division operator, which also
|
||||
permits machine-dependent rounding. As a practical matter, all known
|
||||
machines round in the standard fashion.
|
||||
|
||||
@cindex @code{arith-error} in division
|
||||
If you divide an integer by 0, an @code{arith-error} error is signaled.
|
||||
(@xref{Errors}.) Floating point division by zero returns either
|
||||
infinity or a NaN if your machine supports @acronym{IEEE} floating point;
|
||||
otherwise, it signals an @code{arith-error} error.
|
||||
If all the arguments are integers, the result is an integer, obtained
|
||||
by rounding the quotient towards zero after each division.
|
||||
(Hypothetically, some machines may have different rounding behavior
|
||||
for negative arguments, because @code{/} is implemented using the C
|
||||
division operator, which permits machine-dependent rounding; but this
|
||||
does not happen in practice.)
|
||||
|
||||
@example
|
||||
@group
|
||||
(/ 6 2)
|
||||
@result{} 3
|
||||
@end group
|
||||
@group
|
||||
(/ 5 2)
|
||||
@result{} 2
|
||||
@end group
|
||||
@group
|
||||
(/ 5.0 2)
|
||||
@result{} 2.5
|
||||
@end group
|
||||
@group
|
||||
(/ 5 2.0)
|
||||
@result{} 2.5
|
||||
@end group
|
||||
@group
|
||||
(/ 5.0 2.0)
|
||||
@result{} 2.5
|
||||
@end group
|
||||
@group
|
||||
(/ 25 3 2)
|
||||
@result{} 4
|
||||
@end group
|
||||
@group
|
||||
(/ -17 6)
|
||||
@result{} -2 @r{(could in theory be @minus{}3 on some machines)}
|
||||
@result{} -2
|
||||
@end group
|
||||
@end example
|
||||
|
||||
@cindex @code{arith-error} in division
|
||||
If you divide an integer by the integer 0, Emacs signals an
|
||||
@code{arith-error} error (@pxref{Errors}). If you divide a floating
|
||||
point number by 0, or divide by the floating point number 0.0, the
|
||||
result is either positive or negative infinity (@pxref{Float Basics}).
|
||||
@end defun
|
||||
|
||||
@defun % dividend divisor
|
||||
|
|
@ -661,22 +668,6 @@ otherwise, it signals an @code{arith-error} error.
|
|||
This function returns the integer remainder after division of @var{dividend}
|
||||
by @var{divisor}. The arguments must be integers or markers.
|
||||
|
||||
For negative arguments, the remainder is in principle machine-dependent
|
||||
since the quotient is; but in practice, all known machines behave alike.
|
||||
|
||||
An @code{arith-error} results if @var{divisor} is 0.
|
||||
|
||||
@example
|
||||
(% 9 4)
|
||||
@result{} 1
|
||||
(% -9 4)
|
||||
@result{} -1
|
||||
(% 9 -4)
|
||||
@result{} 1
|
||||
(% -9 -4)
|
||||
@result{} -1
|
||||
@end example
|
||||
|
||||
For any two integers @var{dividend} and @var{divisor},
|
||||
|
||||
@example
|
||||
|
|
@ -687,7 +678,19 @@ For any two integers @var{dividend} and @var{divisor},
|
|||
@end example
|
||||
|
||||
@noindent
|
||||
always equals @var{dividend}.
|
||||
always equals @var{dividend}. If @var{divisor} is zero, Emacs signals
|
||||
an @code{arith-error} error.
|
||||
|
||||
@example
|
||||
(% 9 4)
|
||||
@result{} 1
|
||||
(% -9 4)
|
||||
@result{} -1
|
||||
(% 9 -4)
|
||||
@result{} 1
|
||||
(% -9 -4)
|
||||
@result{} -1
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
@defun mod dividend divisor
|
||||
|
|
@ -697,10 +700,9 @@ in other words, the remainder after division of @var{dividend}
|
|||
by @var{divisor}, but with the same sign as @var{divisor}.
|
||||
The arguments must be numbers or markers.
|
||||
|
||||
Unlike @code{%}, @code{mod} returns a well-defined result for negative
|
||||
arguments. It also permits floating point arguments; it rounds the
|
||||
quotient downward (towards minus infinity) to an integer, and uses that
|
||||
quotient to compute the remainder.
|
||||
Unlike @code{%}, @code{mod} permits floating point arguments; it
|
||||
rounds the quotient downward (towards minus infinity) to an integer,
|
||||
and uses that quotient to compute the remainder.
|
||||
|
||||
If @var{divisor} is zero, @code{mod} signals an @code{arith-error}
|
||||
error if both arguments are integers, and returns a NaN otherwise.
|
||||
|
|
@ -1086,8 +1088,8 @@ numbers as arguments.
|
|||
@defun sin arg
|
||||
@defunx cos arg
|
||||
@defunx tan arg
|
||||
These are the ordinary trigonometric functions, with argument measured
|
||||
in radians.
|
||||
These are the basic trigonometric functions, with argument @var{arg}
|
||||
measured in radians.
|
||||
@end defun
|
||||
|
||||
@defun asin arg
|
||||
|
|
@ -1154,20 +1156,6 @@ This function returns the logarithm of @var{arg}, with base
|
|||
returns a NaN.
|
||||
@end defun
|
||||
|
||||
@ignore
|
||||
@defun expm1 arg
|
||||
This function returns @code{(1- (exp @var{arg}))}, but it is more
|
||||
accurate than that when @var{arg} is negative and @code{(exp @var{arg})}
|
||||
is close to 1.
|
||||
@end defun
|
||||
|
||||
@defun log1p arg
|
||||
This function returns @code{(log (1+ @var{arg}))}, but it is more
|
||||
accurate than that when @var{arg} is so small that adding 1 to it would
|
||||
lose accuracy.
|
||||
@end defun
|
||||
@end ignore
|
||||
|
||||
@defun log10 arg
|
||||
This function returns the logarithm of @var{arg}, with base 10:
|
||||
@code{(log10 @var{x})} @equiv{} @code{(log @var{x} 10)}.
|
||||
|
|
@ -1201,20 +1189,20 @@ The mathematical constant @math{pi} (3.14159@dots{}).
|
|||
@section Random Numbers
|
||||
@cindex random numbers
|
||||
|
||||
A deterministic computer program cannot generate true random numbers.
|
||||
For most purposes, @dfn{pseudo-random numbers} suffice. A series of
|
||||
pseudo-random numbers is generated in a deterministic fashion. The
|
||||
numbers are not truly random, but they have certain properties that
|
||||
mimic a random series. For example, all possible values occur equally
|
||||
often in a pseudo-random series.
|
||||
A deterministic computer program cannot generate true random
|
||||
numbers. For most purposes, @dfn{pseudo-random numbers} suffice. A
|
||||
series of pseudo-random numbers is generated in a deterministic
|
||||
fashion. The numbers are not truly random, but they have certain
|
||||
properties that mimic a random series. For example, all possible
|
||||
values occur equally often in a pseudo-random series.
|
||||
|
||||
In Emacs, pseudo-random numbers are generated from a ``seed''.
|
||||
Starting from any given seed, the @code{random} function always
|
||||
generates the same sequence of numbers. Emacs typically starts with a
|
||||
different seed each time, so the sequence of values of @code{random}
|
||||
typically differs in each Emacs run.
|
||||
Pseudo-random numbers are generated from a ``seed''. Starting from
|
||||
any given seed, the @code{random} function always generates the same
|
||||
sequence of numbers. By default, Emacs initializes the random seed at
|
||||
startup, in such a way that the sequence of values of @code{random}
|
||||
(with overwhelming likelihood) differs in each Emacs run.
|
||||
|
||||
Sometimes you want the random number sequence to be repeatable. For
|
||||
Sometimes you want the random number sequence to be repeatable. For
|
||||
example, when debugging a program whose behavior depends on the random
|
||||
number sequence, it is helpful to get the same behavior in each
|
||||
program run. To make the sequence repeat, execute @code{(random "")}.
|
||||
|
|
@ -1227,8 +1215,10 @@ This function returns a pseudo-random integer. Repeated calls return a
|
|||
series of pseudo-random integers.
|
||||
|
||||
If @var{limit} is a positive integer, the value is chosen to be
|
||||
nonnegative and less than @var{limit}. Otherwise, the value
|
||||
might be any integer representable in Lisp.
|
||||
nonnegative and less than @var{limit}. Otherwise, the value might be
|
||||
any integer representable in Lisp, i.e.@: an integer between
|
||||
@code{most-negative-fixnum} and @code{most-positive-fixnum}
|
||||
(@pxref{Integer Basics}).
|
||||
|
||||
If @var{limit} is @code{t}, it means to choose a new seed based on the
|
||||
current time of day and on Emacs's process @acronym{ID} number.
|
||||
|
|
|
|||
|
|
@ -70,13 +70,11 @@ in their turn. The files @file{subdirs.el} are normally generated
|
|||
automatically when Emacs is installed.
|
||||
|
||||
@item
|
||||
It registers input methods by loading any @file{leim-list.el} file
|
||||
found in the @code{load-path}.
|
||||
|
||||
@c It removes PWD from the environment if it is not accurate.
|
||||
@c It abbreviates default-directory.
|
||||
|
||||
@c Now normal-top-level calls command-line.
|
||||
If the library @file{leim-list.el} exists, Emacs loads it. This
|
||||
optional library is intended for registering input methods; Emacs
|
||||
looks for it in @code{load-path} (@pxref{Library Search}), skipping
|
||||
those directories containing the standard Emacs libraries (since
|
||||
@file{leim-list.el} should not exist in those directories).
|
||||
|
||||
@vindex before-init-time
|
||||
@item
|
||||
|
|
@ -1159,6 +1157,20 @@ This function returns the effective @acronym{UID} of the user.
|
|||
The value may be a floating point number.
|
||||
@end defun
|
||||
|
||||
@defun system-users
|
||||
This function returns a list of strings, listing the user names on the
|
||||
system. If Emacs cannot retrieve this information, the return value
|
||||
is a list containing just the value of @code{user-real-login-name}.
|
||||
@end defun
|
||||
|
||||
@cindex user groups
|
||||
@defun system-groups
|
||||
This function returns a list of strings, listing the names of user
|
||||
groups on the system. If Emacs cannot retrieve this information, the
|
||||
return value is @code{nil}.
|
||||
@end defun
|
||||
|
||||
|
||||
@node Time of Day
|
||||
@section Time of Day
|
||||
|
||||
|
|
@ -1812,43 +1824,6 @@ minutes, and even if there have been garbage collections and autosaves.
|
|||
input. Then it becomes idle again, and all the idle timers that are
|
||||
set up to repeat will subsequently run another time, one by one.
|
||||
|
||||
@defun current-idle-time
|
||||
If Emacs is idle, this function returns the length of time Emacs has
|
||||
been idle, as a list of four integers: @code{(@var{sec-high}
|
||||
@var{sec-low} @var{microsec} @var{picosec})}, using the same format as
|
||||
@code{current-time} (@pxref{Time of Day}).
|
||||
|
||||
When Emacs is not idle, @code{current-idle-time} returns @code{nil}.
|
||||
This is a convenient way to test whether Emacs is idle.
|
||||
|
||||
The main use of this function is when an idle timer function wants to
|
||||
``take a break'' for a while. It can set up another idle timer to
|
||||
call the same function again, after a few seconds more idleness.
|
||||
Here's an example:
|
||||
|
||||
@smallexample
|
||||
(defvar resume-timer nil
|
||||
"Timer that `timer-function' used to reschedule itself, or nil.")
|
||||
|
||||
(defun timer-function ()
|
||||
;; @r{If the user types a command while @code{resume-timer}}
|
||||
;; @r{is active, the next time this function is called from}
|
||||
;; @r{its main idle timer, deactivate @code{resume-timer}.}
|
||||
(when resume-timer
|
||||
(cancel-timer resume-timer))
|
||||
...@var{do the work for a while}...
|
||||
(when @var{taking-a-break}
|
||||
(setq resume-timer
|
||||
(run-with-idle-timer
|
||||
;; Compute an idle time @var{break-length}
|
||||
;; more than the current value.
|
||||
(time-add (current-idle-time)
|
||||
(seconds-to-time @var{break-length}))
|
||||
nil
|
||||
'timer-function))))
|
||||
@end smallexample
|
||||
@end defun
|
||||
|
||||
Do not write an idle timer function containing a loop which does a
|
||||
certain amount of processing each time around, and exits when
|
||||
@code{(input-pending-p)} is non-@code{nil}. This approach seems very
|
||||
|
|
@ -1864,16 +1839,50 @@ It blocks out any idle timers that ought to run during that time.
|
|||
@end itemize
|
||||
|
||||
@noindent
|
||||
For similar reasons, do not write an idle timer function that sets
|
||||
up another idle time (including the same idle timer) with the
|
||||
@var{secs} argument less or equal to the current idleness time. Such
|
||||
a timer will run almost immediately, and continue running again and
|
||||
again, instead of waiting for the next time Emacs becomes idle.
|
||||
Similarly, do not write an idle timer function that sets up another
|
||||
idle timer (including the same idle timer) with @var{secs} argument
|
||||
less than or equal to the current idleness time. Such a timer will
|
||||
run almost immediately, and continue running again and again, instead
|
||||
of waiting for the next time Emacs becomes idle. The correct approach
|
||||
is to reschedule with an appropriate increment of the current value of
|
||||
the idleness time, as described below.
|
||||
|
||||
@noindent
|
||||
The correct approach is for the idle timer to reschedule itself after
|
||||
a brief pause, using the method in the @code{timer-function} example
|
||||
above.
|
||||
@defun current-idle-time
|
||||
If Emacs is idle, this function returns the length of time Emacs has
|
||||
been idle, as a list of four integers: @code{(@var{sec-high}
|
||||
@var{sec-low} @var{microsec} @var{picosec})}, using the same format as
|
||||
@code{current-time} (@pxref{Time of Day}).
|
||||
|
||||
When Emacs is not idle, @code{current-idle-time} returns @code{nil}.
|
||||
This is a convenient way to test whether Emacs is idle.
|
||||
@end defun
|
||||
|
||||
The main use of @code{current-idle-time} is when an idle timer
|
||||
function wants to ``take a break'' for a while. It can set up another
|
||||
idle timer to call the same function again, after a few seconds more
|
||||
idleness. Here's an example:
|
||||
|
||||
@example
|
||||
(defvar my-resume-timer nil
|
||||
"Timer for `my-timer-function' to reschedule itself, or nil.")
|
||||
|
||||
(defun my-timer-function ()
|
||||
;; @r{If the user types a command while @code{my-resume-timer}}
|
||||
;; @r{is active, the next time this function is called from}
|
||||
;; @r{its main idle timer, deactivate @code{my-resume-timer}.}
|
||||
(when my-resume-timer
|
||||
(cancel-timer my-resume-timer))
|
||||
...@var{do the work for a while}...
|
||||
(when @var{taking-a-break}
|
||||
(setq my-resume-timer
|
||||
(run-with-idle-timer
|
||||
;; Compute an idle time @var{break-length}
|
||||
;; more than the current value.
|
||||
(time-add (current-idle-time)
|
||||
(seconds-to-time @var{break-length}))
|
||||
nil
|
||||
'my-timer-function))))
|
||||
@end example
|
||||
|
||||
@node Terminal Input
|
||||
@section Terminal Input
|
||||
|
|
@ -1907,7 +1916,6 @@ If @var{flow} is non-@code{nil}, then Emacs uses @sc{xon/xoff}
|
|||
(@kbd{C-q}, @kbd{C-s}) flow control for output to the terminal. This
|
||||
has no effect except in @sc{cbreak} mode.
|
||||
|
||||
@c Emacs 19 feature
|
||||
The argument @var{meta} controls support for input character codes
|
||||
above 127. If @var{meta} is @code{t}, Emacs converts characters with
|
||||
the 8th bit set into Meta characters. If @var{meta} is @code{nil},
|
||||
|
|
@ -1916,7 +1924,6 @@ it as a parity bit. If @var{meta} is neither @code{t} nor @code{nil},
|
|||
Emacs uses all 8 bits of input unchanged. This is good for terminals
|
||||
that use 8-bit character sets.
|
||||
|
||||
@c Emacs 19 feature
|
||||
If @var{quit-char} is non-@code{nil}, it specifies the character to
|
||||
use for quitting. Normally this character is @kbd{C-g}.
|
||||
@xref{Quitting}.
|
||||
|
|
@ -1925,7 +1932,6 @@ use for quitting. Normally this character is @kbd{C-g}.
|
|||
The @code{current-input-mode} function returns the input mode settings
|
||||
Emacs is currently using.
|
||||
|
||||
@c Emacs 19 feature
|
||||
@defun current-input-mode
|
||||
This function returns the current mode for reading keyboard input. It
|
||||
returns a list, corresponding to the arguments of @code{set-input-mode},
|
||||
|
|
|
|||
|
|
@ -35,28 +35,31 @@ keyboard character events.
|
|||
@node String Basics
|
||||
@section String and Character Basics
|
||||
|
||||
Characters are represented in Emacs Lisp as integers;
|
||||
whether an integer is a character or not is determined only by how it is
|
||||
used. Thus, strings really contain integers. @xref{Character Codes},
|
||||
for details about character representation in Emacs.
|
||||
A character is a Lisp object which represents a single character of
|
||||
text. In Emacs Lisp, characters are simply integers; whether an
|
||||
integer is a character or not is determined only by how it is used.
|
||||
@xref{Character Codes}, for details about character representation in
|
||||
Emacs.
|
||||
|
||||
The length of a string (like any array) is fixed, and cannot be
|
||||
altered once the string exists. Strings in Lisp are @emph{not}
|
||||
terminated by a distinguished character code. (By contrast, strings in
|
||||
C are terminated by a character with @acronym{ASCII} code 0.)
|
||||
A string is a fixed sequence of characters. It is a type of
|
||||
sequence called a @dfn{array}, meaning that its length is fixed and
|
||||
cannot be altered once it is created (@pxref{Sequences Arrays
|
||||
Vectors}). Unlike in C, Emacs Lisp strings are @emph{not} terminated
|
||||
by a distinguished character code.
|
||||
|
||||
Since strings are arrays, and therefore sequences as well, you can
|
||||
operate on them with the general array and sequence functions.
|
||||
(@xref{Sequences Arrays Vectors}.) For example, you can access or
|
||||
change individual characters in a string using the functions @code{aref}
|
||||
and @code{aset} (@pxref{Array Functions}). However, note that
|
||||
@code{length} should @emph{not} be used for computing the width of a
|
||||
string on display; use @code{string-width} (@pxref{Width}) instead.
|
||||
operate on them with the general array and sequence functions
|
||||
documented in @ref{Sequences Arrays Vectors}. For example, you can
|
||||
access or change individual characters in a string using the functions
|
||||
@code{aref} and @code{aset} (@pxref{Array Functions}). However, note
|
||||
that @code{length} should @emph{not} be used for computing the width
|
||||
of a string on display; use @code{string-width} (@pxref{Width})
|
||||
instead.
|
||||
|
||||
There are two text representations for non-@acronym{ASCII} characters in
|
||||
Emacs strings (and in buffers): unibyte and multibyte (@pxref{Text
|
||||
Representations}). For most Lisp programming, you don't need to be
|
||||
concerned with these two representations.
|
||||
There are two text representations for non-@acronym{ASCII}
|
||||
characters in Emacs strings (and in buffers): unibyte and multibyte.
|
||||
For most Lisp programming, you don't need to be concerned with these
|
||||
two representations. @xref{Text Representations}, for details.
|
||||
|
||||
Sometimes key sequences are represented as unibyte strings. When a
|
||||
unibyte string is a key sequence, string elements in the range 128 to
|
||||
|
|
@ -88,7 +91,7 @@ for information about the syntax of characters and strings.
|
|||
representations and to encode and decode character codes.
|
||||
|
||||
@node Predicates for Strings
|
||||
@section The Predicates for Strings
|
||||
@section Predicates for Strings
|
||||
|
||||
For more information about general sequence and array predicates,
|
||||
see @ref{Sequences Arrays Vectors}, and @ref{Arrays}.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
2012-09-30 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* NEWS: The NS port supports fullscreen.
|
||||
|
||||
2012-09-17 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* refcards/emacsver.tex: New file.
|
||||
|
|
|
|||
147
etc/NEWS
147
etc/NEWS
|
|
@ -76,6 +76,7 @@ You can explicitly require a specific version by passing
|
|||
|
||||
* Startup Changes in Emacs 24.3
|
||||
|
||||
+++
|
||||
** Emacs no longer searches for `leim-list.el' files beneath the standard
|
||||
lisp/ directory. There should not be any there anyway. If you have
|
||||
been adding them there, put them somewhere else, eg site-lisp.
|
||||
|
|
@ -86,15 +87,20 @@ been adding them there, put them somewhere else, eg site-lisp.
|
|||
|
||||
* Changes in Emacs 24.3
|
||||
|
||||
** minibuffer-electric-default-mode can rewrite (default ...) to [...].
|
||||
Just set minibuffer-eldef-shorten-default to t before enabling the mode.
|
||||
|
||||
+++
|
||||
** Most y-or-n prompts now allow you to scroll the selected window.
|
||||
Typing C-v or M-v at a y-or-n prompt scrolls forward or backward
|
||||
respectively, without exiting from the prompt.
|
||||
|
||||
---
|
||||
** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
|
||||
next and previous path separator, respectively.
|
||||
|
||||
** Mode line changes
|
||||
|
||||
---
|
||||
*** New option `mode-line-default-help-echo' specifies the help text
|
||||
(shown in a tooltip or in the echo area) for any part of the mode line
|
||||
that does not have its own specialized help text.
|
||||
|
|
@ -104,12 +110,14 @@ invokes `set-buffer-file-coding-system'.
|
|||
|
||||
** Help changes
|
||||
|
||||
+++
|
||||
*** `C-h f' (describe-function) can now perform autoloading.
|
||||
When this command is called for an autoloaded function whose docstring
|
||||
contains a key substitution construct, that function's library is
|
||||
automatically loaded, so that the documentation can be shown
|
||||
correctly. To disable this, set `help-enable-auto-load' to nil.
|
||||
|
||||
---
|
||||
*** `C-h f' now reports previously-autoloaded functions as "autoloaded",
|
||||
even after their associated libraries have been loaded (and the
|
||||
autoloads have been redefined as functions).
|
||||
|
|
@ -133,16 +141,17 @@ treated as images.
|
|||
:background image spec property.
|
||||
|
||||
** Server and client changes
|
||||
|
||||
+++
|
||||
*** emacsclient now obeys string values for `initial-buffer-choice',
|
||||
if it is told to open a new frame without specifying any file to visit
|
||||
or expression to evaluate.
|
||||
|
||||
---
|
||||
*** New option `server-auth-key' specifies a shared server key.
|
||||
|
||||
** In the Package Menu, newly-available packages are listed as "new",
|
||||
and sorted above the other "available" packages by default.
|
||||
|
||||
+++
|
||||
** `C-x C-q' is now bound to the new minor mode `read-only-mode'.
|
||||
This minor mode replaces `toggle-read-only', which is now obsolete.
|
||||
|
||||
|
|
@ -151,6 +160,7 @@ On encountering a fatal error, Emacs now outputs a textual description
|
|||
of the fatal signal, and a short backtrace on platforms like glibc
|
||||
that support backtraces.
|
||||
|
||||
---
|
||||
** If your Emacs was built from a bzr checkout, the new variable
|
||||
`emacs-bzr-version' contains information about the bzr revision used.
|
||||
|
||||
|
|
@ -177,9 +187,39 @@ The PCL-CVS commands are still available via the keyboard.
|
|||
---
|
||||
*** New input method `vietnamese-vni'.
|
||||
|
||||
** The NS port supports fullscreen.
|
||||
|
||||
|
||||
* Editing Changes in Emacs 24.3
|
||||
|
||||
** Navigation command changes
|
||||
+++
|
||||
*** New binding `M-g c' for `goto-char'.
|
||||
+++
|
||||
*** New binding `M-g TAB' for `move-to-column'.
|
||||
+++
|
||||
*** `M-g TAB' (`move-to-column') prompts for a column number if called
|
||||
interactively with no prefix arg. Previously, it moved to column 1.
|
||||
|
||||
** Search and Replace changes
|
||||
+++
|
||||
*** Non-regexp Isearch now performs "lax" space matching.
|
||||
Each sequence of spaces in the supplied search string may match any
|
||||
sequence of one or more whitespace characters, as specified by the
|
||||
variable `search-whitespace-regexp'. (This variable is also used by a
|
||||
similar existing feature for regexp Isearch).
|
||||
+++
|
||||
*** New Isearch command `M-s SPC' toggles lax space matching.
|
||||
This applies to both ordinary and regexp Isearch.
|
||||
+++
|
||||
*** New option `replace-lax-whitespace'.
|
||||
If non-nil, `query-replace' uses flexible whitespace matching too.
|
||||
The default is nil.
|
||||
|
||||
*** Global `M-s _' starts a symbol (identifier) incremental search,
|
||||
and `M-s _' in Isearch toggles symbol search mode.
|
||||
`M-s c' in Isearch toggles search case-sensitivity.
|
||||
|
||||
+++
|
||||
** `C-x 8 RET' is now bound to `insert-char', which is now a command.
|
||||
`ucs-insert' is now an obsolete alias for `insert-char'.
|
||||
|
|
@ -189,29 +229,11 @@ The PCL-CVS commands are still available via the keyboard.
|
|||
It used to be bound to `kill-this-buffer', but `z' is too easy to
|
||||
accidentally type.
|
||||
|
||||
+++
|
||||
** New option `delete-trailing-lines' specifies whether
|
||||
M-x delete-trailing-whitespace should delete trailing lines at the end
|
||||
of the buffer. It defaults to t.
|
||||
|
||||
** Search and Replace changes
|
||||
|
||||
*** Non-regexp Isearch now performs "lax" space matching.
|
||||
Each sequence of spaces in the supplied search string may match any
|
||||
sequence of one or more whitespace characters, as specified by the
|
||||
variable `search-whitespace-regexp'. (This variable is also used by a
|
||||
similar existing feature for regexp Isearch).
|
||||
|
||||
*** New Isearch command `M-s SPC' toggles lax space matching.
|
||||
This applies to both ordinary and regexp Isearch.
|
||||
|
||||
*** New option `replace-lax-whitespace'.
|
||||
If non-nil, `query-replace' uses flexible whitespace matching too.
|
||||
The default is nil.
|
||||
|
||||
*** Global `M-s _' starts a symbol (identifier) incremental search,
|
||||
and `M-s _' in Isearch toggles symbol search mode.
|
||||
`M-s c' in Isearch toggles search case-sensitivity.
|
||||
|
||||
** Register changes
|
||||
+++
|
||||
*** `C-x r +' is now overloaded to invoke `append-to-register.
|
||||
|
|
@ -220,13 +242,10 @@ and `M-s _' in Isearch toggles symbol search mode.
|
|||
the text to put between collected texts for use with M-x
|
||||
append-to-register and M-x prepend-to-register.
|
||||
|
||||
+++
|
||||
** `C-u M-=' now counts lines/words/characters in the entire buffer.
|
||||
|
||||
** New binding `M-g c' for `goto-char'.
|
||||
|
||||
** M-x move-to-column, if called interactively with no prefix arg, now
|
||||
prompts for a column number.
|
||||
|
||||
+++
|
||||
** New command `C-x r M-w' (copy-rectangle-as-kill).
|
||||
It copies the region-rectangle as the last rectangle kill.
|
||||
|
||||
|
|
@ -238,17 +257,17 @@ just removing them, as done by `yank-excluded-properties'.
|
|||
* Changes in Specialized Modes and Packages in Emacs 24.3
|
||||
|
||||
** Apropos
|
||||
|
||||
---
|
||||
*** The faces used by Apropos are now directly customizable.
|
||||
These faces are named `apropos-symbol', `apropos-keybinding', and so on;
|
||||
see the `apropos' Custom group for details.
|
||||
|
||||
**** The old options whose values specified faces to use were removed
|
||||
---
|
||||
*** The old options whose values specified faces to use were removed
|
||||
(i.e. `apropos-symbol-face', `apropos-keybinding-face', etc.).
|
||||
|
||||
** Buffer Menu
|
||||
This package has been rewritten to use Tabulated List mode.
|
||||
|
||||
---
|
||||
*** Option `Buffer-menu-buffer+size-width' is now obsolete.
|
||||
Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead.
|
||||
|
||||
|
|
@ -410,6 +429,8 @@ server properties.
|
|||
** In Perl mode, new option `perl-indent-parens-as-block' causes non-block
|
||||
closing brackets to be aligned with the line of the opening bracket.
|
||||
|
||||
** In Proced mode, new command `proced-renice' renices marked processes.
|
||||
|
||||
** Python mode
|
||||
|
||||
A new version of python.el, which provides several new features, including:
|
||||
|
|
@ -562,27 +583,30 @@ in case that is not properly encoded.
|
|||
|
||||
** which-function-mode now applies to all applicable major modes by default.
|
||||
|
||||
---
|
||||
** winner-mode-hook now runs when the mode is disabled, as well as when it is
|
||||
enabled.
|
||||
|
||||
** FIXME something happened to ses.el, 2012-04-17.
|
||||
|
||||
|
||||
** Obsolete packages:
|
||||
|
||||
+++
|
||||
*** assoc.el
|
||||
In most cases, assoc+member+push+delq work just as well.
|
||||
And in any case it's just a terrible package: ugly semantics, terrible
|
||||
inefficiency, and not namespace-clean.
|
||||
|
||||
---
|
||||
*** bruce.el
|
||||
|
||||
---
|
||||
*** ledit.el
|
||||
|
||||
---
|
||||
*** mailpost.el
|
||||
|
||||
+++
|
||||
*** mouse-sel.el
|
||||
|
||||
---
|
||||
*** patcomp.el
|
||||
|
||||
+++
|
||||
*** cust-print.el
|
||||
|
||||
|
||||
|
|
@ -590,11 +614,13 @@ inefficiency, and not namespace-clean.
|
|||
|
||||
* Incompatible Lisp Changes in Emacs 24.3
|
||||
|
||||
+++
|
||||
** (random) by default now returns a different random sequence in
|
||||
every Emacs run. Use (random S), where S is a string, to set the
|
||||
random seed to a value based on S, in order to get a repeatable
|
||||
sequence in later calls.
|
||||
|
||||
---
|
||||
** The function `x-select-font' can return a font spec, instead of a
|
||||
font name as a string. Whether it returns a font spec or a font name
|
||||
depends on the graphical library.
|
||||
|
|
@ -615,6 +641,7 @@ and are now undefined. For backwards compatibility, defun and
|
|||
defmacro currently return the name of the newly defined function/macro
|
||||
but this should not be relied upon.
|
||||
|
||||
---
|
||||
** `face-spec-set' no longer sets frame-specific attributes when the
|
||||
third argument is a frame (that usage was obsolete since Emacs 22.2).
|
||||
|
||||
|
|
@ -652,15 +679,34 @@ are deprecated and will be removed eventually.
|
|||
**** inactivate-current-input-method-function ->
|
||||
deactivate-current-input-method-function
|
||||
|
||||
** Some obsolete variables and variable aliases were removed:
|
||||
** Some obsolete functions and variables were removed:
|
||||
|
||||
*** `facemenu-unlisted-faces'
|
||||
*** `rmail-decode-mime-charset'
|
||||
*** `last-input-char', `last-command-char', `unread-command-char'.
|
||||
*** `iswitchb-read-buffer'
|
||||
*** `sc-version', `sc-submit-bug-report'
|
||||
*** `set-char-table-default'
|
||||
*** `string-to-sequence' (use `string-to-list' or `string-to-vector').
|
||||
*** `compile-internal'
|
||||
*** `mode-line-inverse-video'
|
||||
*** `cvs-commit-buffer-require-final-newline'
|
||||
(use `'log-edit-require-final-newline'instead)
|
||||
*** `cvs-changelog-full-paragraphs'
|
||||
(use `log-edit-changelog-full-paragraphs' instead)
|
||||
*** `cvs-diff-ignore-marks', `cvs-diff-buffer-name'
|
||||
*** `vc-ignore-vc-files' (use `vc-handled-backends' instead)
|
||||
*** `vc-master-templates' (use `vc-handled-backends' instead)
|
||||
*** `vc-checkout-carefully'
|
||||
|
||||
|
||||
* Lisp changes in Emacs 24.3
|
||||
|
||||
** New sampling-based Elisp profiler.
|
||||
Try M-x profiler-start ... M-x profiler-stop; and then M-x profiler-report.
|
||||
The sampling rate can be based on CPU time (only supported on some
|
||||
systems), or based on memory allocations.
|
||||
|
||||
** CL-style generalized variables are now in core Elisp.
|
||||
`setf' is autoloaded; `push' and `pop' accept generalized variables.
|
||||
|
||||
|
|
@ -706,14 +752,11 @@ now accept a third argument to avoid choosing the selected window.
|
|||
|
||||
*** New macro `with-temp-buffer-window'.
|
||||
|
||||
*** New options `temp-buffer-resize-frames' and
|
||||
`temp-buffer-resize-regexps'.
|
||||
|
||||
*** `temp-buffer-resize-mode' no longer resizes windows that have been
|
||||
reused.
|
||||
|
||||
*** New function `fit-frame-to-buffer' and new option
|
||||
`fit-frame-to-buffer-bottom-margin'.
|
||||
*** New function `fit-frame-to-buffer' and new options
|
||||
`fit-frame-to-buffer' and `fit-frame-to-buffer-bottom-margin'.
|
||||
|
||||
*** New display action functions `display-buffer-below-selected',
|
||||
`display-buffer-at-bottom' and `display-buffer-in-previous-window'.
|
||||
|
|
@ -728,6 +771,9 @@ non-nil, specifies frame parameters to give any newly-created frame.
|
|||
*** New display action alist entry `previous-window', if non-nil,
|
||||
specifies window to reuse in `display-buffer-in-previous-window'.
|
||||
|
||||
*** New display action alist entries `window-height' and `window-width'
|
||||
to specify size of new window created by `display-buffer'.
|
||||
|
||||
*** The following variables are obsolete, as they can be replaced by
|
||||
appropriate entries in the `display-buffer-alist' function introduced
|
||||
in Emacs 24.1:
|
||||
|
|
@ -740,23 +786,24 @@ in Emacs 24.1:
|
|||
**** `display-buffer-function'
|
||||
|
||||
** Time
|
||||
|
||||
---
|
||||
*** `current-time-string' no longer requires that its argument's year
|
||||
must be in the range 1000..9999. It now works with any year supported
|
||||
by the underlying C implementation.
|
||||
|
||||
---
|
||||
*** `current-time' now returns extended-format time stamps
|
||||
(HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds.
|
||||
PSEC is typically a multiple of 1000 on current machines. Other
|
||||
functions that use this format, such as file-attributes and
|
||||
format-time-string, have been changed accordingly. Old-format time
|
||||
stamps are still accepted.
|
||||
|
||||
---
|
||||
*** The format of timers in timer-list and timer-idle-list is now
|
||||
[TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS].
|
||||
The PSECS slot is new, and uses picosecond resolution. It can be
|
||||
accessed via the new timer--psecs accessor.
|
||||
|
||||
+++
|
||||
** Floating point functions now always return special values like NaN,
|
||||
instead of signaling errors, if given invalid args, e.g. (log -1.0).
|
||||
Previously, they returned NaNs on some platforms but signaled errors
|
||||
|
|
@ -774,18 +821,22 @@ result in a warning describing the cycle.
|
|||
|
||||
*** `autoloadp'
|
||||
*** `autoload-do-load'.
|
||||
+++
|
||||
*** `buffer-narrowed-p' tests if the buffer is narrowed.
|
||||
*** `file-name-base' returns a file name sans directory and extension.
|
||||
*** `function-get' fetches a function property, following aliases.
|
||||
+++
|
||||
*** `posnp' tests if an object is a `posn'.
|
||||
*** `set-temporary-overlay-map' sets up a temporary overlay map.
|
||||
+++
|
||||
*** `system-users' returns the user names on the system.
|
||||
+++
|
||||
*** `system-groups' returns the group names on the system.
|
||||
*** `tty-top-frame' returns the topmost frame of a text terminal.
|
||||
|
||||
** New macros `setq-local' and `defvar-local'.
|
||||
|
||||
** New fringe bitmap exclamation-mark.
|
||||
** New fringe bitmap `exclamation-mark'.
|
||||
|
||||
** Face underlining can now use a wave.
|
||||
See the "Face Attributes" section of the Elisp manual.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
2012-09-26 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* makefile.w32-in (obj): Add profiler.o.
|
||||
|
||||
2012-09-17 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* ebrowse.c (version):
|
||||
|
|
@ -1038,7 +1042,7 @@
|
|||
(Asm_help, default_C_suffixes, default_C_help, Cplusplus_suffixes)
|
||||
(Cplusplus_help, Cjava_suffixes, Cobol_suffixes, Cstar_suffixes)
|
||||
(Erlang_suffixes, Erlang_help, Forth_suffixes, Forth_help)
|
||||
(Fortran_suffixes, Fortran_help, HTML_suffixes, HTML_help)
|
||||
(Fortran_suffixes, Fortran_help, HTML_suffixes, HTML_help)
|
||||
(Lisp_suffixes, Lisp_help, Lua_suffixes, Lua_help)
|
||||
(Makefile_filenames, Makefile_help, Objc_suffixes, Objc_help)
|
||||
(Pascal_suffixes, Pascal_help, Perl_suffixes, Perl_interpreters)
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ obj = dosfns.o msdos.o \
|
|||
process.o callproc.o unexw32.o \
|
||||
region-cache.o sound.o atimer.o \
|
||||
doprnt.o intervals.o textprop.o composite.o \
|
||||
gnutls.o xml.o
|
||||
gnutls.o xml.o profiler.o
|
||||
|
||||
#
|
||||
# These are the lisp files that are loaded up in loadup.el
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
# the same distribution terms as the rest of that program.
|
||||
#
|
||||
# Generated by gnulib-tool.
|
||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timespec-add timespec-sub utimens warnings
|
||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub utimens warnings
|
||||
|
||||
|
||||
MOSTLYCLEANFILES += core *.stackdump
|
||||
|
|
|
|||
495
lisp/ChangeLog
495
lisp/ChangeLog
|
|
@ -1,3 +1,484 @@
|
|||
2012-09-30 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* ido.el (ido-max-directory-size): Default to nil; the current
|
||||
default is small for POSIX systems, and impractical on Windows 7
|
||||
now that lstat returns directory sizes for NTFS.
|
||||
|
||||
2012-09-30 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
In buffer display functions handle window-height/window-width
|
||||
alist entries. Suggested by Juri Linkov as fix for Bug#1806.
|
||||
* window.el (window--display-buffer): New argument ALIST. Obey
|
||||
window-height and window-width alist entries.
|
||||
(window--try-to-split-window): New argument ALIST. Bind
|
||||
window-combination-limit to t when the window's size shall be
|
||||
changed and window-combination-limit equals `window-size'.
|
||||
(display-buffer-in-atom-window)
|
||||
(display-buffer-in-major-side-window)
|
||||
(display-buffer-in-side-window, display-buffer-same-window)
|
||||
(display-buffer-reuse-window, display-buffer-pop-up-frame)
|
||||
(display-buffer-pop-up-window, display-buffer-below-selected)
|
||||
(display-buffer-at-bottom, display-buffer-in-previous-window)
|
||||
(display-buffer-use-some-window): Adjust all callers of
|
||||
window--display-buffer and window--try-to-split-window.
|
||||
(fit-frame-to-buffer): New option.
|
||||
(fit-window-to-buffer): Can resize frames if fit-frame-to-buffer
|
||||
is non-nil.
|
||||
(display-buffer-in-major-side-window): Evaluate window-height /
|
||||
window-width alist entries.
|
||||
|
||||
* help.el (temp-buffer-resize-frames)
|
||||
(temp-buffer-resize-regexps): Remove options.
|
||||
(temp-buffer-resize-mode): Adjust doc-string.
|
||||
(resize-temp-buffer-window): Don't consult
|
||||
temp-buffer-resize-regexps. Use fit-frame-to-buffer instead of
|
||||
temp-buffer-resize-frames.
|
||||
|
||||
* dired.el (dired-mark-pop-up): Call
|
||||
display-buffer-below-selected with a fit-window-to-buffer alist
|
||||
entry.
|
||||
|
||||
2012-09-30 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* server.el (server-host): Document the security implications.
|
||||
(server-auth-key): Doc fix.
|
||||
|
||||
* startup.el (initial-buffer-choice): Doc fix.
|
||||
|
||||
* minibuffer.el (minibuffer-local-filename-syntax): Doc fix.
|
||||
|
||||
* simple.el (delete-trailing-whitespace): Avoid an unnecessary
|
||||
restriction change.
|
||||
|
||||
* bindings.el (goto-map): Bind M-g TAB to move-to-column.
|
||||
|
||||
* help-fns.el (help-fns--obsolete): Fix last change.
|
||||
|
||||
2012-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* winner.el (winner-mode-map): Obey winner-dont-bind-my-keys here.
|
||||
(minor-mode-map-alist): Remove redundant code.
|
||||
|
||||
* vc/pcvs.el (cvs-cleanup-collection): Keep entries that are currently
|
||||
visited in a buffer.
|
||||
(cvs-insert-visited-file): New function.
|
||||
(find-file-hook): Use it.
|
||||
|
||||
* vc/pcvs-info.el (cvs-fileinfo-pp): Don't use non-existent faces.
|
||||
|
||||
* vc/log-edit.el (log-edit-font-lock-keywords): Ignore case to
|
||||
chose face.
|
||||
(log-edit-empty-buffer-p): Don't require a space after a header.
|
||||
|
||||
* vc/ediff-util.el (ediff-diff-at-point): Don't assume point-min==1.
|
||||
|
||||
* tutorial.el (help-with-tutorial): Use minibuffer-with-setup-hook.
|
||||
|
||||
* textmodes/text-mode.el (paragraph-indent-minor-mode): Make it
|
||||
a proper minor-mode.
|
||||
|
||||
* textmodes/tex-mode.el (tex-mode-map): Don't bind paren keys.
|
||||
|
||||
2012-09-29 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* winner.el (winner-mode): Remove variable (let define-minor-mode
|
||||
handle it).
|
||||
(winner-dont-bind-my-keys, winner-boring-buffers, winner-mode-hook):
|
||||
Doc fixes.
|
||||
(winner-mode-leave-hook): Rename to winner-mode-off-hook.
|
||||
(winner-mode): Use define-minor-mode.
|
||||
|
||||
* vc/vc-sccs.el (vc-sccs-registered): Use the progn trick to get
|
||||
the full definition in loaddefs, rather than duplicating it.
|
||||
|
||||
* help-macro.el (three-step-help): No need to autoload defcustom.
|
||||
|
||||
* progmodes/inf-lisp.el (inferior-lisp-filter-regexp)
|
||||
(inferior-lisp-program, inferior-lisp-load-command)
|
||||
(inferior-lisp-prompt, inferior-lisp-mode-hook):
|
||||
No need to autoload defcustoms.
|
||||
|
||||
* hippie-exp.el (hippie-expand-try-functions-list)
|
||||
(hippie-expand-verbose, hippie-expand-dabbrev-skip-space)
|
||||
(hippie-expand-dabbrev-as-symbol, hippie-expand-no-restriction)
|
||||
(hippie-expand-max-buffers, hippie-expand-ignore-buffers)
|
||||
(hippie-expand-only-buffers): No need to autoload defcustoms.
|
||||
* progmodes/vhdl-mode.el (vhdl-line-expand):
|
||||
Explicitly load hippie-exp, so it does not get autoloaded
|
||||
while hippie-expand-try-functions-list is let-bound.
|
||||
|
||||
2012-09-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* emacs-lisp/cl.el (flet): Fix case of obsolescence message.
|
||||
|
||||
* emacs-lisp/bytecomp.el (byte-compile-cl-file-p):
|
||||
Only "cl.el" counts as cl these days.
|
||||
|
||||
2012-09-28 Juri Linkov <juri@jurta.org>
|
||||
|
||||
Display archive errors in the echo area instead of inserting
|
||||
to the file buffer.
|
||||
|
||||
* arc-mode.el (archive-extract-by-stdout): Change arg STDERR-FILE
|
||||
to STDERR-TEST that can be a regexp matching a successful output.
|
||||
Create a temporary file and redirect stderr to it. Search for
|
||||
STDERR-TEST in the stderr output and display it in the echo area
|
||||
if no match is found.
|
||||
(archive-extract-by-file): New function like
|
||||
`archive-extract-by-stdout' but extracting archives to files
|
||||
and looking for successful matches in stdout. Function body is
|
||||
mostly copied from `archive-rar-extract'.
|
||||
(archive-rar-extract): Use `archive-extract-by-file'.
|
||||
(archive-7z-extract): Use `archive-extract-by-stdout'. (Bug#10347)
|
||||
|
||||
2012-09-28 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
* pcomplete.el (pcomplete-show-completions): Use
|
||||
minibuffer-message to make pcomplete usable in minibuffer.
|
||||
|
||||
* ido.el (ido-set-matches-1): Fix 2012-09-11 change.
|
||||
|
||||
2012-09-28 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* type-break.el: Use lexical-binding.
|
||||
(type-break-mode): Use define-minor-mode.
|
||||
|
||||
* emacs-lisp/pcase.el (pcase--mark-used): New.
|
||||
(pcase--u1): Use it (bug#12512).
|
||||
|
||||
* custom.el (load-theme): Set buffer-file-name so the load is recorded
|
||||
in load-history with the right file name.
|
||||
|
||||
2012-09-28 Tassilo Horn <tsdh@gnu.org>
|
||||
|
||||
* doc-view.el (doc-view-current-cache-doc-pdf): New function.
|
||||
(doc-view-doc->txt, doc-view-convert-current-doc): Use it.
|
||||
(doc-view-get-bounding-box): Make bounding box slicing work for
|
||||
ODF and DVI documents.
|
||||
|
||||
2012-09-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* type-break.el (type-break-mode, type-break-interval)
|
||||
(type-break-good-rest-interval, type-break-keystroke-threshold):
|
||||
No need to autoload.
|
||||
(type-break-good-rest-interval, type-break-keystroke-threshold):
|
||||
Add :set-after.
|
||||
|
||||
2012-09-28 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* progmodes/verilog-mode.el (verilog-auto-inst-interfaced-ports):
|
||||
Add :version tag.
|
||||
|
||||
2012-09-27 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* json.el (json-encode-char): Codes 127-160 aren't "ASCII printable".
|
||||
|
||||
2012-09-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* faces.el (x-display-name): Declare (for without-x builds).
|
||||
|
||||
* linum.el (linum-format): Don't autoload it. Improve :type.
|
||||
|
||||
* progmodes/tcl.el: Don't require outline when compiling.
|
||||
(outline-regexp, outline-level): Declare.
|
||||
* textmodes/sgml-mode.el: Don't require outline when compiling.
|
||||
(outline-regexp, outline-heading-end-regexp, outline-level): Declare.
|
||||
|
||||
* term.el (term-ansi-reset):
|
||||
Try setting term-ansi-face-already-done to nil. (Bug#11785)
|
||||
|
||||
* vc/vc.el (vc-next-action): Only gripe about committing read-only
|
||||
files for RCS and SCCS. (Bug#9781)
|
||||
|
||||
2012-09-27 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* progmodes/verilog-mode.el (verilog-mode-release-emacs): Fix last
|
||||
change; value should be t.
|
||||
|
||||
2012-09-27 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* image-mode.el: Use lexical-binding.
|
||||
(image-mode-winprops): Use t to stand for the window of
|
||||
a buffer that's not displayed.
|
||||
* doc-view.el (doc-view-new-window-function): Handle the new
|
||||
t in winprops.
|
||||
(doc-view-enlarge): Make it a real nop if the size is not changed.
|
||||
(doc-view-display): Handle the case where the buffer is not (yet?)
|
||||
displayed in any window.
|
||||
(doc-view-saved-settings): New var.
|
||||
(doc-view-mode): Use it.
|
||||
(doc-view-fallback-mode): Set it.
|
||||
|
||||
* minibuf-eldef.el: Make it possible to replace (default ...) with [...].
|
||||
Set lexical-binding.
|
||||
(minibuffer-eldef-shorten-default): New var.
|
||||
(minibuffer-default-in-prompt-regexps): Use it for new default.
|
||||
(minibuf-eldef-setup-minibuffer): Add replacement functionality.
|
||||
|
||||
2012-09-26 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* international/uni-bidi.el:
|
||||
* international/uni-category.el:
|
||||
* international/uni-name.el:
|
||||
* international/uni-numeric.el: Regenerate.
|
||||
|
||||
2012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
|
||||
Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* profiler.el: New file.
|
||||
|
||||
2012-09-26 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp/testcover.el (testcover-after): Add gv-expander.
|
||||
(testcover-reinstrument): Simplify with CSE.
|
||||
|
||||
2012-09-26 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* window.el (temp-buffer-window-setup): Fix typo in docstring.
|
||||
|
||||
2012-09-25 Wilson Snyder <wsnyder@wsnyder.org>
|
||||
|
||||
* verilog-mode.el (verilog-auto-ascii-enum, verilog-auto-inout)
|
||||
(verilog-auto-input, verilog-auto-insert-lisp)
|
||||
(verilog-auto-output, verilog-auto-output-every, verilog-auto-reg)
|
||||
(verilog-auto-reg-input, verilog-auto-tieoff, verilog-auto-undef)
|
||||
(verilog-auto-unused, verilog-auto-wire)
|
||||
(verilog-forward-or-insert-line): Fix AUTOs with no trailing
|
||||
newline. Reported by Andrew Jones.
|
||||
(verilog-auto-inst) Support expanding $clog2 in AUTOINST.
|
||||
Reported by Brad Dobbie.
|
||||
(verilog-batch-delete-trailing-whitespace):
|
||||
Create verilog-batch-delete-trailing-whitespace.
|
||||
Reported by Brad Dobbie.
|
||||
(verilog-auto-inout-param): Support AUTOINOUTPARAM for copying
|
||||
parameters from another module. Reported by Dan Katz.
|
||||
(verilog-auto, verilog-auto-assign-modport)
|
||||
(verilog-auto-inout-modport): Add AUTOASSIGNMODPORT and
|
||||
AUTOINOUTMODPORT for UVM interface module shell generation.
|
||||
Reported by Brad Dobbie.
|
||||
(verilog-auto-inst-interfaced-ports): Make default nil, as more
|
||||
standard behavior.
|
||||
(verilog-auto): Fix AUTO parameters with parenthesis arguments.
|
||||
Reported by Matt Martin.
|
||||
|
||||
2012-09-25 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* window.el (window--resize-child-windows): When resizing child
|
||||
windows proportionally, process them in reverse order to
|
||||
preserve the "when splitting a window the new one gets the odd
|
||||
line" behavior.
|
||||
(window--resize-root-window-vertically): When resizing the
|
||||
minibuffer window try to affect only windows at the bottom of the
|
||||
frame. (Bug#12419)
|
||||
|
||||
2012-09-25 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* subr.el (declare): Doc fix.
|
||||
|
||||
* help-fns.el (help-fns--obsolete): Handle macros properly.
|
||||
|
||||
2012-09-25 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* bookmark.el (bookmark-jump-noselect): Use a declare form to mark
|
||||
this function obsolete.
|
||||
|
||||
* calendar/cal-x.el (calendar-two-frame-setup)
|
||||
(calendar-only-one-frame-setup, calendar-one-frame-setup):
|
||||
* calendar/calendar.el (american-calendar, european-calendar)
|
||||
(calendar-for-loop):
|
||||
* comint.el (comint-dynamic-simple-complete)
|
||||
(comint-dynamic-complete-as-filename, comint-unquote-filename):
|
||||
* desktop.el (desktop-load-default):
|
||||
* dired-x.el (dired-omit-here-always)
|
||||
(dired-hack-local-variables, dired-default-directory):
|
||||
* emacs-lisp/derived.el (derived-mode-class):
|
||||
* emacs-lisp/timer.el (timer-set-time-with-usecs):
|
||||
* emacs-lock.el (toggle-emacs-lock):
|
||||
* epa.el (epa-display-verify-result):
|
||||
* epg.el (epg-sign-keys, epg-start-sign-keys)
|
||||
(epg-passphrase-callback-function):
|
||||
* eshell/esh-util.el (eshell-for):
|
||||
* eshell/eshell.el (eshell-remove-from-window-buffer-names)
|
||||
(eshell-add-to-window-buffer-names):
|
||||
* files.el (locate-file-completion):
|
||||
* imenu.el (imenu-example--create-c-index)
|
||||
(imenu-example--create-lisp-index)
|
||||
(imenu-example--lisp-extract-index-name)
|
||||
(imenu-example--name-and-position):
|
||||
* international/mule-cmds.el (princ-list):
|
||||
* international/mule-diag.el (decode-codepage-char):
|
||||
* international/mule-util.el (detect-coding-with-priority):
|
||||
* iswitchb.el (iswitchb-read-buffer):
|
||||
* mail/mailalias.el (mail-complete):
|
||||
* mail/sendmail.el (mail-sent-via):
|
||||
* mouse.el (mouse-popup-menubar-stuff, mouse-popup-menubar)
|
||||
(mouse-major-mode-menu):
|
||||
* password-cache.el (password-read-and-add):
|
||||
* pcomplete.el (pcomplete-parse-comint-arguments):
|
||||
* progmodes/sh-script.el (sh-maybe-here-document):
|
||||
* replace.el (query-replace-regexp-eval):
|
||||
* savehist.el (savehist-load):
|
||||
* simple.el (choose-completion-delete-max-match):
|
||||
* term.el (term-dynamic-simple-complete):
|
||||
* vc/ediff-init.el (ediff-check-version):
|
||||
* vc/ediff-wind.el (ediff-choose-window-setup-function-automatically):
|
||||
* vc/vc.el (vc-diff-switches-list):
|
||||
* view.el (view-return-to-alist-update): Likewise.
|
||||
|
||||
* subr.el (eval-next-after-load, makehash, insert-string)
|
||||
(assoc-ignore-representation, assoc-ignore-case): Use declare to
|
||||
mark obsolete.
|
||||
(mode-line-inverse-video): Variable deleted.
|
||||
|
||||
* international/mule-util.el (string-to-sequence): Remove.
|
||||
|
||||
* calendar/calendar.el (calendar-version):
|
||||
* calendar/icalendar.el (icalendar-extract-ical-from-buffer)
|
||||
(icalendar-convert-diary-to-ical):
|
||||
* cus-edit.el (custom-mode):
|
||||
* ansi-color.el (ansi-color-unfontify-region):
|
||||
* international/latin1-disp.el (latin1-char-displayable-p):
|
||||
* progmodes/cwarn.el (turn-on-cwarn-mode):
|
||||
* progmodes/which-func.el (which-func-update-1):
|
||||
Use define-obsolete-function-alias.
|
||||
|
||||
* net/newst-backend.el (newsticker-cache-filename):
|
||||
* net/newst-treeview.el (newsticker-groups-filename):
|
||||
Fix incorrect obsolescence declaration.
|
||||
|
||||
* allout.el (allout-passphrase-hint-string): Likewise.
|
||||
(allout-init): Use a declare form to mark obsolete.
|
||||
|
||||
* emacs-lisp/byte-run.el (make-obsolete): Doc fix; emphasize that
|
||||
this applies to functions.
|
||||
|
||||
* iswitchb.el (iswitchb-read-buffer): Move code of
|
||||
iswitchb-define-mode-map here, and delete that obsolete function.
|
||||
|
||||
* net/snmp-mode.el (snmp-font-lock-keywords-3): Don't use obsolete
|
||||
font-lock-reference-face.
|
||||
|
||||
2012-09-25 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* buff-menu.el (Buffer-menu-name-width, Buffer-menu-size-width):
|
||||
Doc fixes.
|
||||
|
||||
* eshell/em-term.el (eshell-term-name):
|
||||
Default to term-term-name. (Bug#12485)
|
||||
|
||||
2012-09-24 Fabián Ezequiel Gallina <fgallina@cuca>
|
||||
|
||||
* progmodes/python.el (python-shell-send-buffer): Better handling
|
||||
of "if __name__ == '__main__':" conditionals when sending the buffer.
|
||||
|
||||
2012-09-24 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* eshell/esh-cmd.el (eshell-find-alias-function):
|
||||
Tighten up file-name regexp. (Bug#12499)
|
||||
|
||||
2012-09-24 Fabián Ezequiel Gallina <fgallina@cuca>
|
||||
|
||||
Enhancements for triple-quote string syntax.
|
||||
* progmodes/python.el (python-quote-syntax): Remove.
|
||||
(python-syntax-propertize-function): New value.
|
||||
(python-syntax-count-quotes, python-syntax-stringify):
|
||||
New functions.
|
||||
|
||||
2012-09-24 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* mail/supercite.el (sc-version): Remove obsolete function.
|
||||
(sc-describe): Don't mark as obsolete, since it is bound.
|
||||
(sc-submit-bug-report): Remove.
|
||||
|
||||
* vc/log-edit.el (cvs-changelog-full-paragraphs)
|
||||
(cvs-commit-buffer-require-final-newline): Remove.
|
||||
(log-edit-require-final-newline)
|
||||
(log-edit-changelog-full-paragraphs): Default to t.
|
||||
|
||||
* vc/pcvs-defs.el (cvs-diff-buffer-name, cvs-diff-ignore-marks)
|
||||
* vc/vc-hooks.el (vc-ignore-vc-files, vc-master-templates)
|
||||
* vc/vc.el (vc-checkout-carefully): Likewise.
|
||||
|
||||
* vc/emerge.el (emerge-mode): Make it an obsolete alias.
|
||||
(emerge-version): Remove.
|
||||
|
||||
* progmodes/compile.el (compile-internal): Remove.
|
||||
(compilation-parse-errors-function): Fix typo.
|
||||
|
||||
* international/mule.el (set-char-table-default): Remove.
|
||||
(set-coding-priority, make-coding-system, generic-char-p)
|
||||
(charset-list, charset-bytes, charset-id): Use declare to mark
|
||||
functions as obsolete.
|
||||
|
||||
* vc/pcvs-defs.el (cvs-buffer-name-alist)
|
||||
(cvs-invert-ignore-marks): Remove references to obsolete vars.
|
||||
* vc/vc-hooks.el (vc-default-registered): Don't use
|
||||
vc-master-templates.
|
||||
|
||||
* font-lock.el (font-lock-reference-face):
|
||||
Use define-obsolete-variable-alias.
|
||||
|
||||
* generic-x.el (rul-generic-mode): Use font-lock-constant-face.
|
||||
* calendar/calendar.el (calendar-font-lock-keywords):
|
||||
* calendar/diary-lib.el (diary-font-lock-keywords)
|
||||
(diary-fancy-font-lock-keywords):
|
||||
* textmodes/reftex-sel.el (reftex-insert-docstruct):
|
||||
* textmodes/reftex-index.el (reftex-insert-index):
|
||||
* textmodes/reftex-cite.el (reftex-format-bib-entry):
|
||||
* progmodes/ruby-mode.el (ruby-font-lock-keywords):
|
||||
* progmodes/ps-mode.el (ps-mode-font-lock-keywords-1):
|
||||
* progmodes/prolog.el (prolog-font-lock-keywords):
|
||||
* progmodes/idlwave.el (idlwave-idl-keywords):
|
||||
* progmodes/ada-mode.el (ada-font-lock-keywords):
|
||||
* net/snmp-mode.el (snmp-font-lock-keywords-3): Likewise.
|
||||
|
||||
2012-09-24 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* mail/emacsbug.el (report-emacs-bug): Include `lsb_release -d'.
|
||||
|
||||
2012-09-23 Fabián Ezequiel Gallina <fgallina@cuca>
|
||||
|
||||
* progmodes/python.el (python-indent-line): More consistent cursor
|
||||
movement behavior.
|
||||
|
||||
2012-09-23 Stefan Merten <smerten@oekonux.de>
|
||||
|
||||
* textmodes/rst.el: Fix compiler warning.
|
||||
|
||||
2012-09-23 Roland Winkler <winkler@gnu.org>
|
||||
|
||||
* textmodes/bibtex.el (bibtex-autokey-transcriptions):
|
||||
Transcribe also LaTeX hyphenation.
|
||||
(bibtex-reformat): Bug fix. Do not quote twice the elements of
|
||||
bibtex-reformat-previous-options.
|
||||
|
||||
2012-09-23 Roland Winkler <winkler@gnu.org>
|
||||
|
||||
* proced.el (proced-renice-command): New variable.
|
||||
(proced-marked-processes): New function.
|
||||
(proced-with-processes-buffer): New macro.
|
||||
(proced-send-signal): Use them.
|
||||
(proced-renice): New command bound to r.
|
||||
|
||||
2012-09-23 Roland Winkler <winkler@gnu.org>
|
||||
|
||||
* ibuf-ext.el (ibuffer-switch-to-saved-filter-groups): If list
|
||||
ibuffer-saved-filter-groups has one element, shortcut the call of
|
||||
completing-read. (Bug#12331)
|
||||
|
||||
2012-09-23 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* bindings.el (mode-line-toggle-read-only):
|
||||
* bs.el (bs-toggle-readonly):
|
||||
* buff-menu.el (Buffer-menu-toggle-read-only):
|
||||
* dired.el (dired-toggle-read-only):
|
||||
* ibuffer.el (ibuffer-do-toggle-read-only): Use read-only-mode.
|
||||
|
||||
2012-09-23 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* image.el (image-type-available-p): Adapt to init-image-library
|
||||
argument changes.
|
||||
|
||||
2012-09-22 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* dired.el (dired-mode-map): Add [remap read-only-mode] for
|
||||
|
|
@ -45,7 +526,7 @@
|
|||
|
||||
2012-09-22 Stefan Merten <smerten@oekonux.de>
|
||||
|
||||
* rst.el: Revamp section title faces.
|
||||
* textmodes/rst.el: Revamp section title faces.
|
||||
(rst-official-version)
|
||||
(rst-package-emacs-version-alist): Sync with official version
|
||||
V1.4.0.
|
||||
|
|
@ -120,15 +601,15 @@
|
|||
|
||||
2012-09-20 Stefan Merten <smerten@oekonux.de>
|
||||
|
||||
* rst.el: Integrate support for `imenu' and `which-function'.
|
||||
* textmodes/rst.el: Integrate support for `imenu' and `which-function'.
|
||||
Fixes feature request bug#11711.
|
||||
(rst-mode): Create `imenu-create-index-function'.
|
||||
(rst-get-stripped-line): Delete after refactoring.
|
||||
(rst-section-tree, rst-section-tree-rec)
|
||||
(rst-section-tree-point): Refactor and document properly.
|
||||
(rst-imenu-find-adornments-for-position)
|
||||
(rst-imenu-convert-cell, rst-imenu-create-index): New
|
||||
function.
|
||||
(rst-imenu-convert-cell, rst-imenu-create-index):
|
||||
New function.
|
||||
|
||||
2012-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
|
|
@ -260,7 +741,7 @@
|
|||
|
||||
2012-09-17 Stefan Merten <smerten@oekonux.de>
|
||||
|
||||
* rst.el: Add support for `testcover'.
|
||||
* textmodes/rst.el: Add support for `testcover'.
|
||||
(rst-defcustom-testcover, rst-testcover-add-compose)
|
||||
(rst-testcover-add-1value): New functions.
|
||||
(rst-portable-mark-active-p): Replace by `use-region-p'.
|
||||
|
|
@ -2096,7 +2577,7 @@
|
|||
|
||||
2012-07-30 Stefan Merten <smerten@oekonux.de>
|
||||
|
||||
* rst.el: Silence `checkdoc-ispell'.
|
||||
* textmodes/rst.el: Silence `checkdoc-ispell'.
|
||||
(rst-cvs-header, rst-svn-rev, rst-svn-timestamp)
|
||||
(rst-official-version, rst-official-cvs-rev)
|
||||
(rst-package-emacs-version-alist): Update to upstream V1.3.1.
|
||||
|
|
@ -9488,7 +9969,7 @@
|
|||
Declare as obsolete.
|
||||
(ns-get-pasteboard, ns-paste-secondary):
|
||||
Use ns-get-selection-internal.
|
||||
(ns-set-pasteboard, ns-copy-including-secondary):
|
||||
(ns-set-pasteboard, ns-copy-including-secondary):
|
||||
Use ns-store-selection-internal.
|
||||
|
||||
2011-12-17 Chong Yidong <cyd@gnu.org>
|
||||
|
|
|
|||
|
|
@ -2372,7 +2372,7 @@
|
|||
(sh-mode-map): Added new bindings.
|
||||
(sh-mode): Updated mode doc-string for new commands, added
|
||||
make-local-variable calls, initialize mode-specific variables.
|
||||
(sh-indent-line): Renamed to sh-basic-indent-line; sh-indent-line
|
||||
(sh-indent-line): Renamed to sh-basic-indent-line; sh-indent-line
|
||||
is now a different function.
|
||||
(sh-header-marker): Changed docstring.
|
||||
(sh-set-shell): Initialize mode-specific variables.
|
||||
|
|
|
|||
|
|
@ -569,7 +569,7 @@
|
|||
Don't bind mouse events or tab/backtab.
|
||||
(help-function, help-variable, help-face, help-coding-system)
|
||||
(help-input-method, help-character-set, help-back, help-info)
|
||||
(help-customize-variable, help-function-def, help-variable-def):
|
||||
(help-customize-variable, help-function-def, help-variable-def):
|
||||
New button types.
|
||||
(help-button-action): New function.
|
||||
(describe-function-1): Pass help button-types to
|
||||
|
|
@ -20671,7 +20671,7 @@
|
|||
* term/tty-colors.el (tty-defined-color-alist): Renamed from
|
||||
tty-color-alist.
|
||||
(tty-color-alist, tty-modify-color-alist): New functions.
|
||||
(tty-color-define, tty-color-clear, tty-color-approximate)
|
||||
(tty-color-define, tty-color-clear, tty-color-approximate)
|
||||
(tty-color-translate, tty-color-by-index, tty-color-desc): Accept an
|
||||
optional parameter FRAME.
|
||||
|
||||
|
|
|
|||
|
|
@ -1522,8 +1522,8 @@ The verifier string is retained as an Emacs file variable, as well as in
|
|||
the Emacs buffer state, if file variable adjustments are enabled. See
|
||||
`allout-enable-file-variable-adjustment' for details about that.")
|
||||
(make-variable-buffer-local 'allout-passphrase-verifier-string)
|
||||
(make-obsolete 'allout-passphrase-verifier-string
|
||||
'allout-passphrase-verifier-string "23.3")
|
||||
(make-obsolete-variable 'allout-passphrase-verifier-string
|
||||
'allout-passphrase-verifier-string "23.3")
|
||||
;;;###autoload
|
||||
(put 'allout-passphrase-verifier-string 'safe-local-variable 'stringp)
|
||||
;;;_ = allout-passphrase-hint-string
|
||||
|
|
@ -1538,8 +1538,8 @@ state, if file variable adjustments are enabled. See
|
|||
`allout-enable-file-variable-adjustment' for details about that.")
|
||||
(make-variable-buffer-local 'allout-passphrase-hint-string)
|
||||
(setq-default allout-passphrase-hint-string "")
|
||||
(make-obsolete 'allout-passphrase-hint-string
|
||||
'allout-passphrase-hint-string "23.3")
|
||||
(make-obsolete-variable 'allout-passphrase-hint-string
|
||||
'allout-passphrase-hint-string "23.3")
|
||||
;;;###autoload
|
||||
(put 'allout-passphrase-hint-string 'safe-local-variable 'stringp)
|
||||
;;;_ = allout-after-save-decrypt
|
||||
|
|
@ -1688,11 +1688,10 @@ from what it did before, for backwards compatibility.
|
|||
|
||||
MODE is the activation mode - see `allout-auto-activation' for
|
||||
valid values."
|
||||
|
||||
(declare (obsolete allout-auto-activation "23.3"))
|
||||
(custom-set-variables (list 'allout-auto-activation (format "%s" mode)))
|
||||
(format "%s" mode))
|
||||
(make-obsolete 'allout-init
|
||||
"customize 'allout-auto-activation' instead." "23.3")
|
||||
|
||||
;;;_ > allout-setup-menubar ()
|
||||
(defun allout-setup-menubar ()
|
||||
"Populate the current buffer's menubar with `allout-mode' stuff."
|
||||
|
|
|
|||
|
|
@ -230,8 +230,8 @@ This is a good function to put in `comint-output-filter-functions'."
|
|||
(t
|
||||
(ansi-color-apply-on-region start-marker end-marker)))))
|
||||
|
||||
(defalias 'ansi-color-unfontify-region 'font-lock-default-unfontify-region)
|
||||
(make-obsolete 'ansi-color-unfontify-region "not needed any more" "24.1")
|
||||
(define-obsolete-function-alias 'ansi-color-unfontify-region
|
||||
'font-lock-default-unfontify-region "24.1")
|
||||
|
||||
;; Working with strings
|
||||
(defvar ansi-color-context nil
|
||||
|
|
|
|||
|
|
@ -1117,13 +1117,54 @@ using `make-temp-file', and the generated name is returned."
|
|||
(archive-delete-local tmpfile)
|
||||
success))
|
||||
|
||||
(defun archive-extract-by-stdout (archive name command &optional stderr-file)
|
||||
(apply 'call-process
|
||||
(car command)
|
||||
nil
|
||||
(if stderr-file (list t stderr-file) t)
|
||||
nil
|
||||
(append (cdr command) (list archive name))))
|
||||
(defun archive-extract-by-stdout (archive name command &optional stderr-test)
|
||||
(let ((stderr-file (make-temp-file "arc-stderr")))
|
||||
(unwind-protect
|
||||
(prog1
|
||||
(apply 'call-process
|
||||
(car command)
|
||||
nil
|
||||
(if stderr-file (list t stderr-file) t)
|
||||
nil
|
||||
(append (cdr command) (list archive name)))
|
||||
(with-temp-buffer
|
||||
(insert-file-contents stderr-file)
|
||||
(goto-char (point-min))
|
||||
(when (if (stringp stderr-test)
|
||||
(not (re-search-forward stderr-test nil t))
|
||||
(> (buffer-size) 0))
|
||||
(message "%s" (buffer-string)))))
|
||||
(if (file-exists-p stderr-file)
|
||||
(delete-file stderr-file)))))
|
||||
|
||||
(defun archive-extract-by-file (archive name command &optional stdout-test)
|
||||
(let ((dest (make-temp-file "arc-dir" 'dir))
|
||||
(stdout-file (make-temp-file "arc-stdout")))
|
||||
(unwind-protect
|
||||
(prog1
|
||||
(apply 'call-process
|
||||
(car command)
|
||||
nil
|
||||
`(:file ,stdout-file)
|
||||
nil
|
||||
(append (cdr command) (list archive name dest)))
|
||||
(with-temp-buffer
|
||||
(insert-file-contents stdout-file)
|
||||
(goto-char (point-min))
|
||||
(when (if (stringp stdout-test)
|
||||
(not (re-search-forward stdout-test nil t))
|
||||
(> (buffer-size) 0))
|
||||
(message "%s" (buffer-string))))
|
||||
(if (file-exists-p (expand-file-name name dest))
|
||||
(insert-file-contents-literally (expand-file-name name dest))))
|
||||
(if (file-exists-p stdout-file)
|
||||
(delete-file stdout-file))
|
||||
(if (file-exists-p (expand-file-name name dest))
|
||||
(delete-file (expand-file-name name dest)))
|
||||
(while (file-name-directory name)
|
||||
(setq name (directory-file-name (file-name-directory name)))
|
||||
(delete-directory (expand-file-name name dest)))
|
||||
(delete-directory dest))))
|
||||
|
||||
(defun archive-extract-other-window ()
|
||||
"In archive mode, find this member in another window."
|
||||
|
|
@ -2006,17 +2047,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
|
|||
;; The code below assumes the name is relative and may do undesirable
|
||||
;; things otherwise.
|
||||
(error "Can't extract files with non-relative names")
|
||||
(let ((dest (make-temp-file "arc-rar" 'dir)))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(call-process "unrar-free" nil nil nil
|
||||
"--extract" archive name dest)
|
||||
(insert-file-contents-literally (expand-file-name name dest)))
|
||||
(delete-file (expand-file-name name dest))
|
||||
(while (file-name-directory name)
|
||||
(setq name (directory-file-name (file-name-directory name)))
|
||||
(delete-directory (expand-file-name name dest)))
|
||||
(delete-directory dest)))))
|
||||
(archive-extract-by-file archive name '("unrar-free" "--extract") "All OK")))
|
||||
|
||||
;;; Section: Rar self-extracting .exe archives.
|
||||
|
||||
|
|
@ -2099,17 +2130,11 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
|
|||
(apply 'vector files))))
|
||||
|
||||
(defun archive-7z-extract (archive name)
|
||||
(let ((tmpfile (make-temp-file "7z-stderr")))
|
||||
;; 7z doesn't provide a `quiet' option to suppress non-essential
|
||||
;; stderr messages. So redirect stderr to a temp file and display it
|
||||
;; in the echo area when it contains error messages.
|
||||
(prog1 (archive-extract-by-stdout
|
||||
archive name archive-7z-extract tmpfile)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents tmpfile)
|
||||
(unless (search-forward "Everything is Ok" nil t)
|
||||
(message "%s" (buffer-string)))
|
||||
(delete-file tmpfile)))))
|
||||
;; 7z doesn't provide a `quiet' option to suppress non-essential
|
||||
;; stderr messages. So redirect stderr to a temp file and display it
|
||||
;; in the echo area when it contains no message indicating success.
|
||||
(archive-extract-by-stdout
|
||||
archive name archive-7z-extract "Everything is Ok"))
|
||||
|
||||
(defun archive-7z-write-file-member (archive descr)
|
||||
(archive-*-write-file-member
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ corresponding to the mode line clicked."
|
|||
(interactive "e")
|
||||
(save-selected-window
|
||||
(select-window (posn-window (event-start event)))
|
||||
(call-interactively 'toggle-read-only)))
|
||||
(read-only-mode 'toggle)))
|
||||
|
||||
(defun mode-line-toggle-modified (event)
|
||||
"Toggle the buffer-modified flag from the mode-line."
|
||||
|
|
@ -898,6 +898,7 @@ if `inhibit-field-text-motion' is non-nil."
|
|||
(define-key goto-map "\M-n" 'next-error)
|
||||
(define-key goto-map "p" 'previous-error)
|
||||
(define-key goto-map "\M-p" 'previous-error)
|
||||
(define-key goto-map "\t" 'move-to-column)
|
||||
|
||||
(defvar search-map (make-sparse-keymap)
|
||||
"Keymap for search related commands.")
|
||||
|
|
|
|||
|
|
@ -1048,12 +1048,11 @@ The return value has the form (BUFFER . POINT).
|
|||
|
||||
Note: this function is deprecated and is present for Emacs 22
|
||||
compatibility only."
|
||||
(declare (obsolete bookmark-handle-bookmark "23.1"))
|
||||
(save-excursion
|
||||
(bookmark-handle-bookmark bookmark)
|
||||
(cons (current-buffer) (point))))
|
||||
|
||||
(make-obsolete 'bookmark-jump-noselect 'bookmark-handle-bookmark "23.1")
|
||||
|
||||
(defun bookmark-handle-bookmark (bookmark-name-or-record)
|
||||
"Call BOOKMARK-NAME-OR-RECORD's handler or `bookmark-default-handler'
|
||||
if it has none. This changes current buffer and point and returns nil,
|
||||
|
|
|
|||
|
|
@ -962,7 +962,7 @@ Default is `bs--current-sort-function'."
|
|||
Uses function `toggle-read-only'."
|
||||
(interactive)
|
||||
(with-current-buffer (bs--current-buffer)
|
||||
(call-interactively 'toggle-read-only))
|
||||
(read-only-mode 'toggle))
|
||||
(bs--update-current-line))
|
||||
|
||||
(defun bs-clear-modified ()
|
||||
|
|
|
|||
|
|
@ -64,13 +64,13 @@ minus `Buffer-menu-size-width'. This use is deprecated."
|
|||
"24.3")
|
||||
|
||||
(defcustom Buffer-menu-name-width 19
|
||||
"Width of buffer size column in the Buffer Menu."
|
||||
"Width of buffer name column in the Buffer Menu."
|
||||
:type 'number
|
||||
:group 'Buffer-menu
|
||||
:version "24.3")
|
||||
|
||||
(defcustom Buffer-menu-size-width 7
|
||||
"Width of buffer name column in the Buffer Menu."
|
||||
"Width of buffer size column in the Buffer Menu."
|
||||
:type 'number
|
||||
:group 'Buffer-menu
|
||||
:version "24.3")
|
||||
|
|
@ -520,7 +520,7 @@ This behaves like invoking \\[toggle-read-only] in that buffer."
|
|||
(interactive)
|
||||
(let ((read-only
|
||||
(with-current-buffer (Buffer-menu-buffer t)
|
||||
(call-interactively 'toggle-read-only)
|
||||
(read-only-mode 'toggle)
|
||||
buffer-read-only)))
|
||||
(tabulated-list-set-col 1 (if read-only "%" " ") t)))
|
||||
|
||||
|
|
|
|||
|
|
@ -1097,7 +1097,7 @@ shown are hard-coded to 8-12, 13-17."
|
|||
(cal-tex-longday "leftday" "2.75in"))
|
||||
(cal-tex-b-document)
|
||||
(cal-tex-cmd "\\pagestyle" "empty")
|
||||
;; Let's assume this is something to with twopage documents.
|
||||
;; Let's assume this is something to do with twopage documents.
|
||||
;; It has the downside that we start with a blank page.
|
||||
;; It doesn't make obvious sense when oddside and evenside margins
|
||||
;; are the same (non-filofax), but consider the left and right
|
||||
|
|
|
|||
|
|
@ -155,29 +155,23 @@ If PROMPT is non-nil, prompt for the month and year to use."
|
|||
(defun calendar-one-frame-setup (&optional prompt)
|
||||
"Display calendar and diary in a single dedicated frame.
|
||||
See `calendar-frame-setup' for more information."
|
||||
(declare (obsolete calendar-frame-setup "23.1"))
|
||||
(calendar-frame-setup 'one-frame prompt))
|
||||
|
||||
(make-obsolete 'calendar-one-frame-setup 'calendar-frame-setup "23.1")
|
||||
|
||||
|
||||
;;;###cal-autoload
|
||||
(defun calendar-only-one-frame-setup (&optional prompt)
|
||||
"Display calendar in a dedicated frame.
|
||||
See `calendar-frame-setup' for more information."
|
||||
(declare (obsolete calendar-frame-setup "23.1"))
|
||||
(calendar-frame-setup 'calendar-only prompt))
|
||||
|
||||
(make-obsolete 'calendar-only-one-frame-setup 'calendar-frame-setup "23.1")
|
||||
|
||||
|
||||
;;;###cal-autoload
|
||||
(defun calendar-two-frame-setup (&optional prompt)
|
||||
"Display calendar and diary in separate, dedicated frames.
|
||||
See `calendar-frame-setup' for more information."
|
||||
(declare (obsolete calendar-frame-setup "23.1"))
|
||||
(calendar-frame-setup 'two-frames prompt))
|
||||
|
||||
(make-obsolete 'calendar-two-frame-setup 'calendar-frame-setup "23.1")
|
||||
|
||||
|
||||
;; Undocumented and probably useless.
|
||||
(defvar cal-x-load-hook nil
|
||||
"Hook run on loading of the `cal-x' package.")
|
||||
|
|
|
|||
|
|
@ -1001,18 +1001,16 @@ The valid styles are described in the documentation of `calendar-date-style'."
|
|||
|
||||
(defun european-calendar ()
|
||||
"Set the interpretation and display of dates to the European style."
|
||||
(declare (obsolete calendar-set-date-style "23.1"))
|
||||
(interactive)
|
||||
(calendar-set-date-style 'european))
|
||||
|
||||
(make-obsolete 'european-calendar 'calendar-set-date-style "23.1")
|
||||
|
||||
(defun american-calendar ()
|
||||
"Set the interpretation and display of dates to the American style."
|
||||
(declare (obsolete calendar-set-date-style "23.1"))
|
||||
(interactive)
|
||||
(calendar-set-date-style 'american))
|
||||
|
||||
(make-obsolete 'american-calendar 'calendar-set-date-style "23.1")
|
||||
|
||||
(define-obsolete-variable-alias 'holidays-in-diary-buffer
|
||||
'diary-show-holidays-flag "23.1")
|
||||
|
||||
|
|
@ -1148,14 +1146,13 @@ MON defaults to `displayed-month'. YR defaults to `displayed-year'."
|
|||
"Execute a for loop.
|
||||
Evaluate BODY with VAR bound to successive integers from INIT to FINAL,
|
||||
inclusive. The standard macro `dotimes' is preferable in most cases."
|
||||
(declare (debug (symbolp "from" form "to" form "do" body))
|
||||
(declare (obsolete "use `dotimes' or `while' instead." "23.1")
|
||||
(debug (symbolp "from" form "to" form "do" body))
|
||||
(indent defun))
|
||||
`(let ((,var (1- ,init)))
|
||||
(while (>= ,final (setq ,var (1+ ,var)))
|
||||
,@body)))
|
||||
|
||||
(make-obsolete 'calendar-for-loop "use `dotimes' or `while' instead." "23.1")
|
||||
|
||||
(defmacro calendar-sum (index initial condition expression)
|
||||
"For INDEX = INITIAL, +1, ... (as long as CONDITION holds), sum EXPRESSION."
|
||||
(declare (debug (symbolp form form form)))
|
||||
|
|
@ -2298,7 +2295,7 @@ Negative years are interpreted as years BC; -1 being 1 BC, and so on."
|
|||
;; First two chars of each day are used in the calendar.
|
||||
(,(regexp-opt (mapcar (lambda (x) (substring x 0 calendar-day-header-width))
|
||||
calendar-day-name-array))
|
||||
. font-lock-reference-face))
|
||||
. font-lock-constant-face))
|
||||
"Default keywords to highlight in Calendar mode.")
|
||||
|
||||
(defun calendar-day-name (date &optional abbrev absolute)
|
||||
|
|
@ -2655,13 +2652,7 @@ If called by a mouse-event, pops up a menu with the result."
|
|||
"---")
|
||||
(calendar-string-spread (list str) ?- width)))))
|
||||
|
||||
(defun calendar-version ()
|
||||
"Display the Calendar version."
|
||||
(interactive)
|
||||
(message "GNU Emacs %s" emacs-version))
|
||||
|
||||
(make-obsolete 'calendar-version 'emacs-version "23.1")
|
||||
|
||||
(define-obsolete-function-alias 'calendar-version 'emacs-version "23.1")
|
||||
|
||||
(run-hooks 'calendar-load-hook)
|
||||
|
||||
|
|
|
|||
|
|
@ -2400,10 +2400,10 @@ return a font-lock pattern matching array of MONTHS and marking SYMBOL."
|
|||
(cons
|
||||
(format "^%s?\\(%s\\)" (regexp-quote diary-nonmarking-symbol)
|
||||
(regexp-quote diary-sexp-entry-symbol))
|
||||
'(1 font-lock-reference-face))
|
||||
'(1 font-lock-constant-face))
|
||||
(cons
|
||||
(format "^%s" (regexp-quote diary-nonmarking-symbol))
|
||||
'font-lock-reference-face)
|
||||
'font-lock-constant-face)
|
||||
(cons
|
||||
(format "^%s?%s" (regexp-quote diary-nonmarking-symbol)
|
||||
(regexp-opt (mapcar 'regexp-quote
|
||||
|
|
@ -2411,7 +2411,7 @@ return a font-lock pattern matching array of MONTHS and marking SYMBOL."
|
|||
diary-islamic-entry-symbol
|
||||
diary-bahai-entry-symbol))
|
||||
t))
|
||||
'(1 font-lock-reference-face))
|
||||
'(1 font-lock-constant-face))
|
||||
'(diary-font-lock-sexps . font-lock-keyword-face)
|
||||
;; Don't need to worry about space around "-" because the first
|
||||
;; match takes care of that. It does mean the "-" itself may or
|
||||
|
|
@ -2482,7 +2482,7 @@ This depends on the calendar date style."
|
|||
(defvar diary-fancy-font-lock-keywords
|
||||
`((diary-fancy-date-matcher . diary-face)
|
||||
("^.*\\([aA]nniversary\\|[bB]irthday\\).*$" . 'diary-anniversary)
|
||||
("^.*Yahrzeit.*$" . font-lock-reference-face)
|
||||
("^.*Yahrzeit.*$" . font-lock-constant-face)
|
||||
("^\\(Erev \\)?Rosh Hodesh.*" . font-lock-function-name-face)
|
||||
("^Day.*omer.*$" . font-lock-builtin-face)
|
||||
("^Parashat.*$" . font-lock-comment-face)
|
||||
|
|
|
|||
|
|
@ -931,8 +931,8 @@ Finto iCalendar file: ")
|
|||
(set-buffer (find-file diary-filename))
|
||||
(icalendar-export-region (point-min) (point-max) ical-filename)))
|
||||
|
||||
(defalias 'icalendar-convert-diary-to-ical 'icalendar-export-file)
|
||||
(make-obsolete 'icalendar-convert-diary-to-ical 'icalendar-export-file "22.1")
|
||||
(define-obsolete-function-alias 'icalendar-convert-diary-to-ical
|
||||
'icalendar-export-file "22.1")
|
||||
|
||||
(defvar icalendar--uid-count 0
|
||||
"Auxiliary counter for creating unique ids.")
|
||||
|
|
@ -1881,8 +1881,8 @@ buffer `*icalendar-errors*'."
|
|||
;; return nil, i.e. import did not work
|
||||
nil)))
|
||||
|
||||
(defalias 'icalendar-extract-ical-from-buffer 'icalendar-import-buffer)
|
||||
(make-obsolete 'icalendar-extract-ical-from-buffer 'icalendar-import-buffer "22.1")
|
||||
(define-obsolete-function-alias 'icalendar-extract-ical-from-buffer
|
||||
'icalendar-import-buffer "22.1")
|
||||
|
||||
(defun icalendar--format-ical-event (event)
|
||||
"Create a string representation of an iCalendar EVENT."
|
||||
|
|
|
|||
|
|
@ -3069,11 +3069,11 @@ Magic characters are those in `comint-file-name-quote-list'."
|
|||
|
||||
(defun comint-unquote-filename (filename)
|
||||
"Return FILENAME with quoted characters unquoted."
|
||||
(declare (obsolete nil "24.3"))
|
||||
(if (null comint-file-name-quote-list)
|
||||
filename
|
||||
(save-match-data
|
||||
(replace-regexp-in-string "\\\\\\(.\\)" "\\1" filename t))))
|
||||
(make-obsolete 'comint-unquote-filename nil "24.3")
|
||||
|
||||
(defun comint--requote-argument (upos qstr)
|
||||
;; See `completion-table-with-quoting'.
|
||||
|
|
@ -3170,10 +3170,9 @@ See `completion-table-with-quoting' and `comint-unquote-function'.")
|
|||
(defun comint-dynamic-complete-as-filename ()
|
||||
"Dynamically complete at point as a filename.
|
||||
See `comint-dynamic-complete-filename'. Returns t if successful."
|
||||
(declare (obsolete comint-filename-completion "24.1"))
|
||||
(let ((data (comint--complete-file-name-data)))
|
||||
(completion-in-region (nth 0 data) (nth 1 data) (nth 2 data))))
|
||||
(make-obsolete 'comint-dynamic-complete-as-filename
|
||||
'comint-filename-completion "24.1")
|
||||
|
||||
(defun comint-replace-by-expanded-filename ()
|
||||
"Dynamically expand and complete the filename at point.
|
||||
|
|
@ -3204,6 +3203,7 @@ Return `partial' if completed as far as possible.
|
|||
Return `listed' if a completion listing was shown.
|
||||
|
||||
See also `comint-dynamic-complete-filename'."
|
||||
(declare (obsolete completion-in-region "24.1"))
|
||||
(let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt cygwin)))
|
||||
(minibuffer-p (window-minibuffer-p (selected-window)))
|
||||
(suffix (cond ((not comint-completion-addsuffix) "")
|
||||
|
|
@ -3246,8 +3246,6 @@ See also `comint-dynamic-complete-filename'."
|
|||
(unless minibuffer-p
|
||||
(message "Partially completed"))
|
||||
'partial)))))))
|
||||
(make-obsolete 'comint-dynamic-simple-complete 'completion-in-region "24.1")
|
||||
|
||||
|
||||
(defun comint-dynamic-list-filename-completions ()
|
||||
"Display a list of possible completions for the filename at point."
|
||||
|
|
|
|||
|
|
@ -2228,9 +2228,9 @@ and `face'."
|
|||
(setq widget nil)))))
|
||||
(widget-setup))
|
||||
|
||||
(make-obsolete 'custom-show "this widget type is no longer supported." "24.1")
|
||||
(defun custom-show (widget value)
|
||||
"Non-nil if WIDGET should be shown with VALUE by default."
|
||||
(declare (obsolete "this widget type is no longer supported." "24.1"))
|
||||
(let ((show (widget-get widget :custom-show)))
|
||||
(if (functionp show)
|
||||
(funcall show widget value)
|
||||
|
|
@ -4823,12 +4823,7 @@ if that value is non-nil."
|
|||
|
||||
(put 'Custom-mode 'mode-class 'special)
|
||||
|
||||
;; backward-compatibility
|
||||
(defun custom-mode ()
|
||||
"Non-interactive variant of `Custom-mode'."
|
||||
(Custom-mode))
|
||||
(make-obsolete 'custom-mode 'Custom-mode "23.1")
|
||||
(put 'custom-mode 'mode-class 'special)
|
||||
(define-obsolete-function-alias 'custom-mode 'Custom-mode "23.1")
|
||||
|
||||
(add-to-list 'debug-ignored-errors "^Invalid face:? ")
|
||||
|
||||
|
|
|
|||
|
|
@ -443,7 +443,6 @@ since it could result in memory overflow and make Emacs crash."
|
|||
(hscroll-step windows number "22.1")
|
||||
(truncate-partial-width-windows display boolean "23.1")
|
||||
(make-cursor-line-fully-visible windows boolean)
|
||||
(mode-line-inverse-video mode-line boolean)
|
||||
(mode-line-in-non-selected-windows mode-line boolean "22.1")
|
||||
(line-number-display-limit display
|
||||
(choice integer
|
||||
|
|
|
|||
|
|
@ -1193,7 +1193,8 @@ Return t if THEME was successfully loaded, nil otherwise."
|
|||
(expand-file-name "themes/" data-directory)))
|
||||
(member hash custom-safe-themes)
|
||||
(custom-theme-load-confirm hash))
|
||||
(let ((custom--inhibit-theme-enable t))
|
||||
(let ((custom--inhibit-theme-enable t)
|
||||
(buffer-file-name fn)) ;For load-history.
|
||||
(eval-buffer))
|
||||
;; Optimization: if the theme changes the `default' face, put that
|
||||
;; entry first. This avoids some `frame-set-background-mode' rigmarole
|
||||
|
|
|
|||
|
|
@ -1045,11 +1045,10 @@ Using it may cause conflicts. Use it anyway? " owner)))))
|
|||
(defun desktop-load-default ()
|
||||
"Load the `default' start-up library manually.
|
||||
Also inhibit further loading of it."
|
||||
(declare (obsolete desktop-save-mode "22.1"))
|
||||
(unless inhibit-default-init ; safety check
|
||||
(load "default" t t)
|
||||
(setq inhibit-default-init t)))
|
||||
(make-obsolete 'desktop-load-default
|
||||
'desktop-save-mode "22.1")
|
||||
|
||||
;; ----------------------------------------------------------------------------
|
||||
;;;###autoload
|
||||
|
|
|
|||
|
|
@ -723,15 +723,13 @@ determine a default directory.")
|
|||
(defun dired-default-directory ()
|
||||
"Return the `dired-default-directory-alist' entry for the current major-mode.
|
||||
If none, return `default-directory'."
|
||||
;; It looks like this was intended to be something of a "general"
|
||||
;; feature, but it only ever seems to have been used in
|
||||
;; dired-smart-shell-command, and doesn't seem worth keeping around.
|
||||
(declare (obsolete nil "24.1"))
|
||||
(or (eval (cdr (assq major-mode dired-default-directory-alist)))
|
||||
default-directory))
|
||||
|
||||
;; It looks like this was intended to be something of a "general" feature,
|
||||
;; but it only ever seems to have been used in dired-smart-shell-command,
|
||||
;; and does not seem worth keeping around (?).
|
||||
(make-obsolete 'dired-default-directory
|
||||
"this feature is due to be removed." "24.1")
|
||||
|
||||
(defun dired-smart-shell-command (command &optional output-buffer error-buffer)
|
||||
"Like function `shell-command', but in the current Virtual Dired directory."
|
||||
(interactive
|
||||
|
|
@ -782,6 +780,7 @@ See also `dired-enable-local-variables'."
|
|||
|
||||
(defun dired-hack-local-variables ()
|
||||
"Evaluate local variables in `dired-local-variables-file' for dired buffer."
|
||||
(declare (obsolete hack-dir-local-variables-non-file-buffer "24.1"))
|
||||
(and (stringp dired-local-variables-file)
|
||||
(file-exists-p dired-local-variables-file)
|
||||
(let ((opoint (point-max))
|
||||
|
|
@ -803,14 +802,12 @@ See also `dired-enable-local-variables'."
|
|||
;; Make sure that the mode line shows the proper information.
|
||||
(dired-sort-set-mode-line))))
|
||||
|
||||
(make-obsolete 'dired-hack-local-variables
|
||||
'hack-dir-local-variables-non-file-buffer "24.1")
|
||||
|
||||
;; Does not seem worth a dedicated command.
|
||||
;; See the more general features in files-x.el.
|
||||
(defun dired-omit-here-always ()
|
||||
"Create `dir-locals-file' setting `dired-omit-mode' to t in `dired-mode'.
|
||||
If in a Dired buffer, reverts it."
|
||||
(declare (obsolete add-dir-local-variable "24.1"))
|
||||
(interactive)
|
||||
(if (file-exists-p dired-local-variables-file)
|
||||
(error "Old-style dired-local-variables-file `./%s' found;
|
||||
|
|
@ -830,8 +827,6 @@ replace it with a dir-locals-file `./%s'"
|
|||
(dired-extra-startup)
|
||||
(dired-revert))))
|
||||
|
||||
(make-obsolete 'dired-omit-here-always 'add-dir-local-variable "24.1")
|
||||
|
||||
|
||||
;;; GUESS SHELL COMMAND.
|
||||
|
||||
|
|
|
|||
|
|
@ -1964,7 +1964,7 @@ Otherwise, call `toggle-read-only'."
|
|||
(interactive)
|
||||
(if (derived-mode-p 'dired-mode)
|
||||
(wdired-change-to-wdired-mode)
|
||||
(call-interactively 'toggle-read-only)))
|
||||
(read-only-mode 'toggle)))
|
||||
|
||||
(defun dired-next-line (arg)
|
||||
"Move down lines then position at filename.
|
||||
|
|
@ -2997,7 +2997,8 @@ argument or confirmation)."
|
|||
(let ((split-height-threshold 0))
|
||||
(with-temp-buffer-window
|
||||
buffer
|
||||
(cons 'display-buffer-below-selected nil)
|
||||
(cons 'display-buffer-below-selected
|
||||
'((window-height . fit-window-to-buffer)))
|
||||
#'(lambda (window _value)
|
||||
(with-selected-window window
|
||||
(unwind-protect
|
||||
|
|
@ -4268,7 +4269,7 @@ instead.
|
|||
;;;***
|
||||
|
||||
;;;### (autoloads (dired-do-relsymlink dired-jump-other-window dired-jump)
|
||||
;;;;;; "dired-x" "dired-x.el" "d2461aa6efb8c1d7de8f245728ab448e")
|
||||
;;;;;; "dired-x" "dired-x.el" "a4e6844421c2c5e6fde90e959fbcc26f")
|
||||
;;; Generated autoloads from dired-x.el
|
||||
|
||||
(autoload 'dired-jump "dired-x" "\
|
||||
|
|
|
|||
129
lisp/doc-view.el
129
lisp/doc-view.el
|
|
@ -255,20 +255,23 @@ of the page moves to the previous page."
|
|||
;;;; Internal Variables
|
||||
|
||||
(defun doc-view-new-window-function (winprops)
|
||||
;; (message "New window %s for buf %s" (car winprops) (current-buffer))
|
||||
(cl-assert (or (eq t (car winprops))
|
||||
(eq (window-buffer (car winprops)) (current-buffer))))
|
||||
(let ((ol (image-mode-window-get 'overlay winprops)))
|
||||
(when (and ol (not (overlay-buffer ol)))
|
||||
;; I've seen `ol' be a dead overlay. I do not yet know how this
|
||||
;; happened, so maybe the bug is elsewhere, but in the mean time,
|
||||
;; this seems like a safe approach.
|
||||
(setq ol nil))
|
||||
(if ol
|
||||
(progn
|
||||
(cl-assert (eq (overlay-buffer ol) (current-buffer)))
|
||||
(setq ol (copy-overlay ol)))
|
||||
(cl-assert (not (get-char-property (point-min) 'display)))
|
||||
(setq ol (copy-overlay ol))
|
||||
;; `ol' might actually be dead.
|
||||
(move-overlay ol (point-min) (point-max)))
|
||||
(setq ol (make-overlay (point-min) (point-max) nil t))
|
||||
(overlay-put ol 'doc-view t))
|
||||
(overlay-put ol 'window (car winprops))
|
||||
(unless (windowp (car winprops))
|
||||
;; It's a pseudo entry. Let's make sure it's not displayed (the
|
||||
;; `window' property is only effective if its value is a window).
|
||||
(cl-assert (eq t (car winprops)))
|
||||
(delete-overlay ol))
|
||||
(image-mode-window-put 'overlay ol winprops)))
|
||||
|
||||
(defvar doc-view-current-files nil
|
||||
|
|
@ -560,7 +563,8 @@ at the top edge of the page moves to the previous page."
|
|||
"Kill the current converter process(es)."
|
||||
(interactive)
|
||||
(while (consp doc-view-current-converter-processes)
|
||||
(ignore-errors ;; Maybe it's dead already?
|
||||
(ignore-errors ;; Some entries might not be processes, and maybe
|
||||
;; some are dead already?
|
||||
(kill-process (pop doc-view-current-converter-processes))))
|
||||
(when doc-view-current-timer
|
||||
(cancel-timer doc-view-current-timer)
|
||||
|
|
@ -663,19 +667,21 @@ OpenDocument format)."
|
|||
(defvar doc-view-shrink-factor 1.125)
|
||||
|
||||
(defun doc-view-enlarge (factor)
|
||||
"Enlarge the document."
|
||||
"Enlarge the document by FACTOR."
|
||||
(interactive (list doc-view-shrink-factor))
|
||||
(if (eq (plist-get (cdr (doc-view-current-image)) :type)
|
||||
'imagemagick)
|
||||
;; ImageMagick supports on-the-fly-rescaling
|
||||
(progn
|
||||
(set (make-local-variable 'doc-view-image-width)
|
||||
(ceiling (* factor doc-view-image-width)))
|
||||
(doc-view-insert-image (plist-get (cdr (doc-view-current-image)) :file)
|
||||
:width doc-view-image-width))
|
||||
(set (make-local-variable 'doc-view-resolution)
|
||||
(ceiling (* factor doc-view-resolution)))
|
||||
(doc-view-reconvert-doc)))
|
||||
;; ImageMagick supports on-the-fly-rescaling.
|
||||
(let ((new (ceiling (* factor doc-view-image-width))))
|
||||
(unless (equal new doc-view-image-width)
|
||||
(set (make-local-variable 'doc-view-image-width) new)
|
||||
(doc-view-insert-image
|
||||
(plist-get (cdr (doc-view-current-image)) :file)
|
||||
:width doc-view-image-width)))
|
||||
(let ((new (ceiling (* factor doc-view-resolution))))
|
||||
(unless (equal new doc-view-resolution)
|
||||
(set (make-local-variable 'doc-view-resolution) new)
|
||||
(doc-view-reconvert-doc)))))
|
||||
|
||||
(defun doc-view-shrink (factor)
|
||||
"Shrink the document."
|
||||
|
|
@ -743,12 +749,14 @@ min {(window-width / image-width), (window-height / image-height)} times."
|
|||
(img-height (cdr (image-display-size
|
||||
(image-get-display-property) t))))
|
||||
(doc-view-enlarge (min (/ (float win-width) (float img-width))
|
||||
(/ (float (- win-height 1)) (float img-height)))))
|
||||
(/ (float (- win-height 1))
|
||||
(float img-height)))))
|
||||
;; If slice is set
|
||||
(let* ((slice-width (nth 2 slice))
|
||||
(slice-height (nth 3 slice))
|
||||
(scale-factor (min (/ (float win-width) (float slice-width))
|
||||
(/ (float (- win-height 1)) (float slice-height))))
|
||||
(/ (float (- win-height 1))
|
||||
(float slice-height))))
|
||||
(new-slice (mapcar (lambda (x) (ceiling (* scale-factor x))) slice)))
|
||||
(doc-view-enlarge scale-factor)
|
||||
(setf (doc-view-current-slice) new-slice)
|
||||
|
|
@ -762,6 +770,7 @@ Should be invoked when the cached images aren't up-to-date."
|
|||
;; Clear the old cached files
|
||||
(when (file-exists-p (doc-view-current-cache-dir))
|
||||
(delete-directory (doc-view-current-cache-dir) 'recursive))
|
||||
(kill-local-variable 'doc-view-last-page-number)
|
||||
(doc-view-initiate-display))
|
||||
|
||||
(defun doc-view-sentinel (proc event)
|
||||
|
|
@ -895,6 +904,11 @@ Start by converting PAGES, and then the rest."
|
|||
(list "-raw" pdf txt)
|
||||
callback))
|
||||
|
||||
(defun doc-view-current-cache-doc-pdf ()
|
||||
"Return the name of the doc.pdf in the current cache dir.
|
||||
This file exists only if the current document isn't a PDF or PS file already."
|
||||
(expand-file-name "doc.pdf" (doc-view-current-cache-dir)))
|
||||
|
||||
(defun doc-view-doc->txt (txt callback)
|
||||
"Convert the current document to text and call CALLBACK when done."
|
||||
(make-directory (doc-view-current-cache-dir) t)
|
||||
|
|
@ -905,22 +919,17 @@ Start by converting PAGES, and then the rest."
|
|||
(`ps
|
||||
;; Doc is a PS, so convert it to PDF (which will be converted to
|
||||
;; TXT thereafter).
|
||||
(let ((pdf (expand-file-name "doc.pdf"
|
||||
(doc-view-current-cache-dir))))
|
||||
(let ((pdf (doc-view-current-cache-doc-pdf)))
|
||||
(doc-view-ps->pdf doc-view-buffer-file-name pdf
|
||||
(lambda () (doc-view-pdf->txt pdf txt callback)))))
|
||||
(`dvi
|
||||
;; Doc is a DVI. This means that a doc.pdf already exists in its
|
||||
;; cache subdirectory.
|
||||
(doc-view-pdf->txt (expand-file-name "doc.pdf"
|
||||
(doc-view-current-cache-dir))
|
||||
txt callback))
|
||||
(doc-view-pdf->txt (doc-view-current-cache-doc-pdf) txt callback))
|
||||
(`odf
|
||||
;; Doc is some ODF (or MS Office) doc. This means that a doc.pdf
|
||||
;; already exists in its cache subdirectory.
|
||||
(doc-view-pdf->txt (expand-file-name "doc.pdf"
|
||||
(doc-view-current-cache-dir))
|
||||
txt callback))
|
||||
(doc-view-pdf->txt (doc-view-current-cache-doc-pdf) txt callback))
|
||||
(_ (error "DocView doesn't know what to do"))))
|
||||
|
||||
(defun doc-view-ps->pdf (ps pdf callback)
|
||||
|
|
@ -960,13 +969,13 @@ Those files are saved in the directory given by the function
|
|||
(`dvi
|
||||
;; DVI files have to be converted to PDF before Ghostscript can process
|
||||
;; it.
|
||||
(let ((pdf (expand-file-name "doc.pdf" doc-view-current-cache-dir)))
|
||||
(let ((pdf (doc-view-current-cache-doc-pdf)))
|
||||
(doc-view-dvi->pdf doc-view-buffer-file-name pdf
|
||||
(lambda () (doc-view-pdf/ps->png pdf png-file)))))
|
||||
(`odf
|
||||
;; ODF files have to be converted to PDF before Ghostscript can
|
||||
;; process it.
|
||||
(let ((pdf (expand-file-name "doc.pdf" doc-view-current-cache-dir))
|
||||
(let ((pdf (doc-view-current-cache-doc-pdf))
|
||||
(opdf (expand-file-name (concat (file-name-base doc-view-buffer-file-name)
|
||||
".pdf")
|
||||
doc-view-current-cache-dir))
|
||||
|
|
@ -1033,12 +1042,15 @@ dragging it to its bottom-right corner. See also
|
|||
(defun doc-view-get-bounding-box ()
|
||||
"Get the BoundingBox information of the current page."
|
||||
(let* ((page (doc-view-current-page))
|
||||
(doc (let ((cache-doc (doc-view-current-cache-doc-pdf)))
|
||||
(if (file-exists-p cache-doc)
|
||||
cache-doc
|
||||
doc-view-buffer-file-name)))
|
||||
(o (shell-command-to-string
|
||||
(concat doc-view-ghostscript-program
|
||||
" -dSAFER -dBATCH -dNOPAUSE -q -sDEVICE=bbox "
|
||||
(format "-dFirstPage=%s -dLastPage=%s %s"
|
||||
page page
|
||||
doc-view-buffer-file-name)))))
|
||||
page page doc)))))
|
||||
(save-match-data
|
||||
(when (string-match (concat "%%BoundingBox: "
|
||||
"\\([[:digit:]]+\\) \\([[:digit:]]+\\) "
|
||||
|
|
@ -1169,24 +1181,23 @@ Predicate for sorting `doc-view-current-files'."
|
|||
If FORCE is non-nil, start viewing even if the document does not
|
||||
have the page we want to view."
|
||||
(with-current-buffer buffer
|
||||
(let ((prev-pages doc-view-current-files)
|
||||
(windows (get-buffer-window-list buffer nil t)))
|
||||
(let ((prev-pages doc-view-current-files))
|
||||
(setq doc-view-current-files
|
||||
(sort (directory-files (doc-view-current-cache-dir) t
|
||||
"page-[0-9]+\\.png" t)
|
||||
'doc-view-sort))
|
||||
(unless windows
|
||||
(switch-to-buffer buffer)
|
||||
(setq windows (get-buffer-window-list buffer nil t)))
|
||||
(dolist (win windows)
|
||||
(dolist (win (or (get-buffer-window-list buffer nil t)
|
||||
(list t)))
|
||||
(let* ((page (doc-view-current-page win))
|
||||
(pagefile (expand-file-name (format "page-%d.png" page)
|
||||
(doc-view-current-cache-dir))))
|
||||
(when (or force
|
||||
(and (not (member pagefile prev-pages))
|
||||
(member pagefile doc-view-current-files)))
|
||||
(with-selected-window win
|
||||
(cl-assert (eq (current-buffer) buffer) t)
|
||||
(if (windowp win)
|
||||
(with-selected-window win
|
||||
(cl-assert (eq (current-buffer) buffer) t)
|
||||
(doc-view-goto-page page))
|
||||
(doc-view-goto-page page))))))))
|
||||
|
||||
(defun doc-view-buffer-message ()
|
||||
|
|
@ -1231,6 +1242,10 @@ For now these keys are useful:
|
|||
|
||||
;;;;; Toggle between editing and viewing
|
||||
|
||||
(defvar-local doc-view-saved-settings nil
|
||||
"Doc-view settings saved while in some other mode.")
|
||||
(put 'doc-view-saved-settings 'permanent-local t)
|
||||
|
||||
(defun doc-view-toggle-display ()
|
||||
"Toggle between editing a document as text or viewing it."
|
||||
(interactive)
|
||||
|
|
@ -1483,13 +1498,16 @@ toggle between displaying the document or editing it as text.
|
|||
;; returns nil for tar members.
|
||||
(doc-view-fallback-mode)
|
||||
|
||||
(let* ((prev-major-mode (if (eq major-mode 'doc-view-mode)
|
||||
(let* ((prev-major-mode (if (derived-mode-p 'doc-view-mode)
|
||||
doc-view-previous-major-mode
|
||||
(when (not (memq major-mode
|
||||
'(doc-view-mode fundamental-mode)))
|
||||
(unless (eq major-mode 'fundamental-mode)
|
||||
major-mode))))
|
||||
(kill-all-local-variables)
|
||||
(set (make-local-variable 'doc-view-previous-major-mode) prev-major-mode))
|
||||
(set (make-local-variable 'doc-view-previous-major-mode)
|
||||
prev-major-mode))
|
||||
|
||||
(dolist (var doc-view-saved-settings)
|
||||
(set (make-local-variable (car var)) (cdr var)))
|
||||
|
||||
;; Figure out the document type.
|
||||
(unless doc-view-doc-type
|
||||
|
|
@ -1563,13 +1581,20 @@ toggle between displaying the document or editing it as text.
|
|||
|
||||
(defun doc-view-fallback-mode ()
|
||||
"Fallback to the previous or next best major mode."
|
||||
(if doc-view-previous-major-mode
|
||||
(funcall doc-view-previous-major-mode)
|
||||
(let ((auto-mode-alist (rassq-delete-all
|
||||
'doc-view-mode-maybe
|
||||
(rassq-delete-all 'doc-view-mode
|
||||
(copy-alist auto-mode-alist)))))
|
||||
(normal-mode))))
|
||||
(let ((vars (if (derived-mode-p 'doc-view-mode)
|
||||
(mapcar (lambda (var) (cons var (symbol-value var)))
|
||||
'(doc-view-resolution
|
||||
image-mode-winprops-alist)))))
|
||||
(if doc-view-previous-major-mode
|
||||
(funcall doc-view-previous-major-mode)
|
||||
(let ((auto-mode-alist
|
||||
(rassq-delete-all
|
||||
'doc-view-mode-maybe
|
||||
(rassq-delete-all 'doc-view-mode
|
||||
(copy-alist auto-mode-alist)))))
|
||||
(normal-mode)))
|
||||
(when vars
|
||||
(setq-local doc-view-saved-settings vars))))
|
||||
|
||||
;;;###autoload
|
||||
(defun doc-view-mode-maybe ()
|
||||
|
|
|
|||
|
|
@ -253,7 +253,9 @@ convention was modified."
|
|||
advertised-signature-table))
|
||||
|
||||
(defun make-obsolete (obsolete-name current-name &optional when)
|
||||
"Make the byte-compiler warn that OBSOLETE-NAME is obsolete.
|
||||
"Make the byte-compiler warn that function OBSOLETE-NAME is obsolete.
|
||||
OBSOLETE-NAME should be a function name or macro name (a symbol).
|
||||
|
||||
The warning will say that CURRENT-NAME should be used instead.
|
||||
If CURRENT-NAME is a string, that is the `use instead' message
|
||||
\(it should end with a period, and not start with a capital).
|
||||
|
|
|
|||
|
|
@ -846,7 +846,7 @@ CONST2 may be evaluated multiple times."
|
|||
(defun byte-compile-cl-file-p (file)
|
||||
"Return non-nil if FILE is one of the CL files."
|
||||
(and (stringp file)
|
||||
(string-match "^cl\\>" (file-name-nondirectory file))))
|
||||
(string-match "^cl\\.el" (file-name-nondirectory file))))
|
||||
|
||||
(defun byte-compile-eval (form)
|
||||
"Eval FORM and mark the functions defined therein.
|
||||
|
|
|
|||
|
|
@ -689,7 +689,6 @@ PROPLIST is a list of the sort returned by `symbol-plist'.
|
|||
|
||||
;; Local variables:
|
||||
;; byte-compile-dynamic: t
|
||||
;; byte-compile-warnings: (not cl-functions)
|
||||
;; generated-autoload-file: "cl-loaddefs.el"
|
||||
;; End:
|
||||
|
||||
|
|
|
|||
|
|
@ -745,7 +745,6 @@ If ALIST is non-nil, the new pairs are prepended to it."
|
|||
|
||||
;; Local variables:
|
||||
;; byte-compile-dynamic: t
|
||||
;; byte-compile-warnings: (not cl-functions)
|
||||
;; End:
|
||||
|
||||
;;; cl-lib.el ends here
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
;;;;;; cl--map-overlays cl--map-intervals cl--map-keymap-recursively
|
||||
;;;;;; cl-notevery cl-notany cl-every cl-some cl-mapcon cl-mapcan
|
||||
;;;;;; cl-mapl cl-maplist cl-map cl--mapcar-many cl-equalp cl-coerce)
|
||||
;;;;;; "cl-extra" "cl-extra.el" "535a24c1cff55a16e3d51219498a7858")
|
||||
;;;;;; "cl-extra" "cl-extra.el" "1572ae52fa4fbd9c4bf89b49a068a865")
|
||||
;;; Generated autoloads from cl-extra.el
|
||||
|
||||
(autoload 'cl-coerce "cl-extra" "\
|
||||
|
|
@ -260,7 +260,7 @@ Remove from SYMBOL's plist the property PROPNAME and its value.
|
|||
;;;;;; cl-typecase cl-ecase cl-case cl-load-time-value cl-eval-when
|
||||
;;;;;; cl-destructuring-bind cl-function cl-defmacro cl-defun cl-gentemp
|
||||
;;;;;; cl-gensym cl--compiler-macro-cXXr cl--compiler-macro-list*)
|
||||
;;;;;; "cl-macs" "cl-macs.el" "6d0676869af66e5b5a671f95ee069461")
|
||||
;;;;;; "cl-macs" "cl-macs.el" "da92f58f688ff6fb4d0098eb0f3acf0b")
|
||||
;;; Generated autoloads from cl-macs.el
|
||||
|
||||
(autoload 'cl--compiler-macro-list* "cl-macs" "\
|
||||
|
|
@ -748,7 +748,7 @@ surrounded by (cl-block NAME ...).
|
|||
;;;;;; cl-nsubstitute-if cl-nsubstitute cl-substitute-if-not cl-substitute-if
|
||||
;;;;;; cl-substitute cl-delete-duplicates cl-remove-duplicates cl-delete-if-not
|
||||
;;;;;; cl-delete-if cl-delete cl-remove-if-not cl-remove-if cl-remove
|
||||
;;;;;; cl-replace cl-fill cl-reduce) "cl-seq" "cl-seq.el" "b444601641dcbd14a23ca5182bc80ffa")
|
||||
;;;;;; cl-replace cl-fill cl-reduce) "cl-seq" "cl-seq.el" "4c1e1191e82dc8d5449a5ec4d59efc10")
|
||||
;;; Generated autoloads from cl-seq.el
|
||||
|
||||
(autoload 'cl-reduce "cl-seq" "\
|
||||
|
|
|
|||
|
|
@ -2686,7 +2686,6 @@ surrounded by (cl-block NAME ...).
|
|||
|
||||
;; Local variables:
|
||||
;; byte-compile-dynamic: t
|
||||
;; byte-compile-warnings: (not cl-functions)
|
||||
;; generated-autoload-file: "cl-loaddefs.el"
|
||||
;; End:
|
||||
|
||||
|
|
|
|||
|
|
@ -1010,7 +1010,6 @@ Atoms are compared by `eql'; cons cells are compared recursively.
|
|||
|
||||
;; Local variables:
|
||||
;; byte-compile-dynamic: t
|
||||
;; byte-compile-warnings: (not cl-functions)
|
||||
;; generated-autoload-file: "cl-loaddefs.el"
|
||||
;; End:
|
||||
|
||||
|
|
|
|||
|
|
@ -452,7 +452,7 @@ definitions, or lack thereof).
|
|||
|
||||
\(fn ((FUNC ARGLIST BODY...) ...) FORM...)"
|
||||
(declare (indent 1) (debug cl-flet)
|
||||
(obsolete "Use either `cl-flet' or `cl-letf'." "24.3"))
|
||||
(obsolete "use either `cl-flet' or `cl-letf'." "24.3"))
|
||||
`(letf ,(mapcar
|
||||
(lambda (x)
|
||||
(if (or (and (fboundp (car x))
|
||||
|
|
|
|||
|
|
@ -276,10 +276,10 @@ A mode's class is the first ancestor which is NOT a derived mode.
|
|||
Use the `derived-mode-parent' property of the symbol to trace backwards.
|
||||
Since major-modes might all derive from `fundamental-mode', this function
|
||||
is not very useful."
|
||||
(declare (obsolete derived-mode-p "22.1"))
|
||||
(while (get mode 'derived-mode-parent)
|
||||
(setq mode (get mode 'derived-mode-parent)))
|
||||
mode)
|
||||
(make-obsolete 'derived-mode-class 'derived-mode-p "22.1")
|
||||
|
||||
|
||||
;;; PRIVATE
|
||||
|
|
|
|||
|
|
@ -7,18 +7,18 @@
|
|||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; This program is free software: you can redistribute it and/or
|
||||
;; modify it under the terms of the GNU General Public License as
|
||||
;; published by the Free Software Foundation, either version 3 of the
|
||||
;; License, or (at your option) any later version.
|
||||
;;
|
||||
;; This program is distributed in the hope that it will be useful, but
|
||||
;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
;; General Public License for more details.
|
||||
;;
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see `http://www.gnu.org/licenses/'.
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
|||
|
|
@ -7,18 +7,18 @@
|
|||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; This program is free software: you can redistribute it and/or
|
||||
;; modify it under the terms of the GNU General Public License as
|
||||
;; published by the Free Software Foundation, either version 3 of the
|
||||
;; License, or (at your option) any later version.
|
||||
;;
|
||||
;; This program is distributed in the hope that it will be useful, but
|
||||
;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
;; General Public License for more details.
|
||||
;;
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see `http://www.gnu.org/licenses/'.
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,22 +1,25 @@
|
|||
;;; gv.el --- Generalized variables -*- lexical-binding: t -*-
|
||||
;;; gv.el --- generalized variables -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
;; Keywords: extensions
|
||||
;; Package: emacs
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
@ -266,7 +269,7 @@ The return value is the last VAL in the list.
|
|||
;;;###autoload
|
||||
(put 'gv-place 'edebug-form-spec 'edebug-match-form)
|
||||
;; CL did the equivalent of:
|
||||
;;(gv-define-expand edebug-after (lambda (before index place) place))
|
||||
;;(gv-define-macroexpand edebug-after (lambda (before index place) place))
|
||||
|
||||
(put 'edebug-after 'gv-expander
|
||||
(lambda (do before index place)
|
||||
|
|
|
|||
|
|
@ -10,10 +10,10 @@
|
|||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software; you can redistribute it and/or modify
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation; either version 3, or (at your option)
|
||||
;; any later version.
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
|
|
@ -21,9 +21,7 @@
|
|||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
;; Boston, MA 02110-1301, USA.
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@
|
|||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software; you can redistribute it and/or modify
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation; either version 3, or (at your option)
|
||||
;; any later version.
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
|
|
@ -20,9 +20,7 @@
|
|||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
;; Boston, MA 02110-1301, USA.
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Change Log:
|
||||
|
||||
|
|
|
|||
|
|
@ -517,6 +517,10 @@ MATCH is the pattern that needs to be matched, of the form:
|
|||
(defun pcase--self-quoting-p (upat)
|
||||
(or (keywordp upat) (numberp upat) (stringp upat)))
|
||||
|
||||
(defsubst pcase--mark-used (sym)
|
||||
;; Exceptionally, `sym' may be a constant expression rather than a symbol.
|
||||
(if (symbolp sym) (put sym 'pcase-used t)))
|
||||
|
||||
;; It's very tempting to use `pcase' below, tho obviously, it'd create
|
||||
;; bootstrapping problems.
|
||||
(defun pcase--u1 (matches code vars rest)
|
||||
|
|
@ -581,7 +585,7 @@ Otherwise, it defers to REST which is a list of branches of the form
|
|||
((memq upat '(t _)) (pcase--u1 matches code vars rest))
|
||||
((eq upat 'pcase--dontcare) :pcase--dontcare)
|
||||
((memq (car-safe upat) '(guard pred))
|
||||
(if (eq (car upat) 'pred) (put sym 'pcase-used t))
|
||||
(if (eq (car upat) 'pred) (pcase--mark-used sym))
|
||||
(let* ((splitrest
|
||||
(pcase--split-rest
|
||||
sym (lambda (pat) (pcase--split-pred upat pat)) rest))
|
||||
|
|
@ -614,10 +618,10 @@ Otherwise, it defers to REST which is a list of branches of the form
|
|||
(pcase--u1 matches code vars then-rest)
|
||||
(pcase--u else-rest))))
|
||||
((pcase--self-quoting-p upat)
|
||||
(put sym 'pcase-used t)
|
||||
(pcase--mark-used sym)
|
||||
(pcase--q1 sym upat matches code vars rest))
|
||||
((symbolp upat)
|
||||
(put sym 'pcase-used t)
|
||||
(pcase--mark-used sym)
|
||||
(if (not (assq upat vars))
|
||||
(pcase--u1 matches code (cons (cons upat sym) vars) rest)
|
||||
;; Non-linear pattern. Turn it into an `eq' test.
|
||||
|
|
@ -640,7 +644,7 @@ Otherwise, it defers to REST which is a list of branches of the form
|
|||
(pcase--u1 (cons `(match ,sym . ,(nth 1 upat)) matches)
|
||||
code vars rest)))
|
||||
((eq (car-safe upat) '\`)
|
||||
(put sym 'pcase-used t)
|
||||
(pcase--mark-used sym)
|
||||
(pcase--q1 sym (cadr upat) matches code vars rest))
|
||||
((eq (car-safe upat) 'or)
|
||||
(let ((all (> (length (cdr upat)) 1))
|
||||
|
|
@ -662,7 +666,7 @@ Otherwise, it defers to REST which is a list of branches of the form
|
|||
sym (lambda (pat) (pcase--split-member elems pat)) rest))
|
||||
(then-rest (car splitrest))
|
||||
(else-rest (cdr splitrest)))
|
||||
(put sym 'pcase-used t)
|
||||
(pcase--mark-used sym)
|
||||
(pcase--if `(,(if memq-fine #'memq #'member) ,sym ',elems)
|
||||
(pcase--u1 matches code vars then-rest)
|
||||
(pcase--u else-rest)))
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@
|
|||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software; you can redistribute it and/or modify
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation; either version 3, or (at your option)
|
||||
;; any later version.
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
|
|
|
|||
|
|
@ -270,9 +270,9 @@ value, 'maybe if either is acceptable."
|
|||
(setq id (nth 2 form))
|
||||
(setcdr form (nthcdr 2 form))
|
||||
(setq val (testcover-reinstrument (nth 2 form)))
|
||||
(if (eq val t)
|
||||
(setcar form 'testcover-1value)
|
||||
(setcar form 'testcover-after))
|
||||
(setcar form (if (eq val t)
|
||||
'testcover-1value
|
||||
'testcover-after))
|
||||
(when val
|
||||
;;1-valued or potentially 1-valued
|
||||
(aset testcover-vector id '1value))
|
||||
|
|
@ -359,9 +359,9 @@ value, 'maybe if either is acceptable."
|
|||
,(nth 3 (cadr form))))
|
||||
t)
|
||||
(t
|
||||
(if (eq (car (cadr form)) 'edebug-after)
|
||||
(setq id (car (nth 3 (cadr form))))
|
||||
(setq id (car (cadr form))))
|
||||
(setq id (car (if (eq (car (cadr form)) 'edebug-after)
|
||||
(nth 3 (cadr form))
|
||||
(cadr form))))
|
||||
(let ((testcover-1value-functions
|
||||
(cons id testcover-1value-functions)))
|
||||
(testcover-reinstrument (cadr form))))))
|
||||
|
|
@ -379,9 +379,9 @@ value, 'maybe if either is acceptable."
|
|||
,(nth 3 (cadr form))))
|
||||
'maybe)
|
||||
(t
|
||||
(if (eq (car (cadr form)) 'edebug-after)
|
||||
(setq id (car (nth 3 (cadr form))))
|
||||
(setq id (car (cadr form))))
|
||||
(setq id (car (if (eq (car (cadr form)) 'edebug-after)
|
||||
(nth 3 (cadr form))
|
||||
(cadr form))))
|
||||
(let ((testcover-noreturn-functions
|
||||
(cons id testcover-noreturn-functions)))
|
||||
(testcover-reinstrument (cadr form))))))
|
||||
|
|
@ -447,6 +447,12 @@ binding `testcover-vector' to the code-coverage vector for TESTCOVER-SYM
|
|||
(defun testcover-after (idx val)
|
||||
"Internal function for coverage testing. Returns VAL after installing it in
|
||||
`testcover-vector' at offset IDX."
|
||||
(declare (gv-expander (lambda (do)
|
||||
(gv-letplace (getter setter) val
|
||||
(funcall do getter
|
||||
(lambda (store)
|
||||
`(progn (testcover-after ,idx ,getter)
|
||||
,(funcall setter store))))))))
|
||||
(cond
|
||||
((eq (aref testcover-vector idx) 'unknown)
|
||||
(aset testcover-vector idx val))
|
||||
|
|
|
|||
|
|
@ -146,14 +146,13 @@ TIME must be in the internal format returned by, e.g., `current-time'.
|
|||
The microsecond count from TIME is ignored, and USECS is used instead.
|
||||
If optional fourth argument DELTA is a positive number, make the timer
|
||||
fire repeatedly that many seconds apart."
|
||||
(declare (obsolete "use `timer-set-time' and `timer-inc-time' instead."
|
||||
"22.1"))
|
||||
(setf (timer--time timer) time)
|
||||
(setf (timer--usecs timer) usecs)
|
||||
(setf (timer--psecs timer) 0)
|
||||
(setf (timer--repeat-delay timer) (and (numberp delta) (> delta 0) delta))
|
||||
timer)
|
||||
(make-obsolete 'timer-set-time-with-usecs
|
||||
"use `timer-set-time' and `timer-inc-time' instead."
|
||||
"22.1")
|
||||
|
||||
(defun timer-set-function (timer function &optional args)
|
||||
"Make TIMER call FUNCTION with optional ARGS when triggering."
|
||||
|
|
|
|||
|
|
@ -249,9 +249,9 @@ Other values are interpreted as usual."
|
|||
|
||||
(defun toggle-emacs-lock ()
|
||||
"Toggle `emacs-lock-from-exiting' for the current buffer."
|
||||
(declare (obsolete emacs-lock-mode "24.1"))
|
||||
(interactive)
|
||||
(call-interactively 'emacs-lock-mode))
|
||||
(make-obsolete 'toggle-emacs-lock 'emacs-lock-mode "24.1")
|
||||
|
||||
(provide 'emacs-lock)
|
||||
|
||||
|
|
|
|||
|
|
@ -585,8 +585,8 @@ If SECRET is non-nil, list secret keys instead of public keys."
|
|||
(message "%s" info)))
|
||||
|
||||
(defun epa-display-verify-result (verify-result)
|
||||
(declare (obsolete epa-display-info "23.1"))
|
||||
(epa-display-info (epg-verify-result-to-string verify-result)))
|
||||
(make-obsolete 'epa-display-verify-result 'epa-display-info "23.1")
|
||||
|
||||
(defun epa-passphrase-callback-function (context key-id handback)
|
||||
(if (eq key-id 'SYM)
|
||||
|
|
|
|||
|
|
@ -1779,6 +1779,7 @@ This function is for internal use only."
|
|||
(epg-context-set-result-for context 'import-status nil)))
|
||||
|
||||
(defun epg-passphrase-callback-function (context key-id _handback)
|
||||
(declare (obsolete epa-passphrase-callback-function "23.1"))
|
||||
(if (eq key-id 'SYM)
|
||||
(read-passwd "Passphrase for symmetric encryption: "
|
||||
(eq (epg-context-operation context) 'encrypt))
|
||||
|
|
@ -1790,9 +1791,6 @@ This function is for internal use only."
|
|||
(format "Passphrase for %s %s: " key-id (cdr entry))
|
||||
(format "Passphrase for %s: " key-id)))))))
|
||||
|
||||
(make-obsolete 'epg-passphrase-callback-function
|
||||
'epa-passphrase-callback-function "23.1")
|
||||
|
||||
(defun epg--list-keys-1 (context name mode)
|
||||
(let ((args (append (if epg-gpg-home-directory
|
||||
(list "--homedir" epg-gpg-home-directory))
|
||||
|
|
@ -2562,6 +2560,7 @@ If you use this function, you will need to wait for the completion of
|
|||
`epg-reset' to clear a temporary output file.
|
||||
If you are unsure, use synchronous version of this function
|
||||
`epg-sign-keys' instead."
|
||||
(declare (obsolete nil "23.1"))
|
||||
(epg-context-set-operation context 'sign-keys)
|
||||
(epg-context-set-result context nil)
|
||||
(epg--start context (cons (if local
|
||||
|
|
@ -2572,10 +2571,10 @@ If you are unsure, use synchronous version of this function
|
|||
(epg-sub-key-id
|
||||
(car (epg-key-sub-key-list key))))
|
||||
keys))))
|
||||
(make-obsolete 'epg-start-sign-keys "do not use." "23.1")
|
||||
|
||||
(defun epg-sign-keys (context keys &optional local)
|
||||
"Sign KEYS from the key ring."
|
||||
(declare (obsolete nil "23.1"))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(epg-start-sign-keys context keys local)
|
||||
|
|
@ -2586,7 +2585,6 @@ If you are unsure, use synchronous version of this function
|
|||
(list "Sign keys failed"
|
||||
(epg-errors-to-string errors))))))
|
||||
(epg-reset context)))
|
||||
(make-obsolete 'epg-sign-keys "do not use." "23.1")
|
||||
|
||||
(defun epg-start-generate-key (context parameters)
|
||||
"Initiate a key generation.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
2012-09-25 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* erc.el (erc-send-command): Use define-obsolete-function-alias.
|
||||
|
||||
2012-09-17 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* erc-page.el (erc-page-function):
|
||||
|
|
|
|||
|
|
@ -139,8 +139,8 @@
|
|||
(message (concat "ERC: The function `defvaralias' is not bound. See the "
|
||||
"NEWS file for variable name changes since ERC 5.0.4.")))
|
||||
|
||||
(defalias 'erc-send-command 'erc-server-send)
|
||||
(erc-make-obsolete 'erc-send-command 'erc-server-send "ERC 5.1")
|
||||
(define-obsolete-function-alias 'erc-send-command
|
||||
'erc-server-send "ERC 5.1")
|
||||
|
||||
;; tunable connection and authentication parameters
|
||||
|
||||
|
|
|
|||
|
|
@ -63,10 +63,13 @@ which commands are considered visual in nature."
|
|||
:type '(repeat string)
|
||||
:group 'eshell-term)
|
||||
|
||||
(defcustom eshell-term-name "eterm"
|
||||
;; If you change this from term-term-name, you need to ensure that the
|
||||
;; value you choose exists in the system's terminfo database. (Bug#12485)
|
||||
(defcustom eshell-term-name term-term-name
|
||||
"Name to use for the TERM variable when running visual commands.
|
||||
See `term-term-name' in term.el for more information on how this is
|
||||
used."
|
||||
:version "24.3" ; eterm -> term-term-name = eterm-color
|
||||
:type 'string
|
||||
:group 'eshell-term)
|
||||
|
||||
|
|
|
|||
|
|
@ -1216,11 +1216,12 @@ COMMAND may result in an alias being executed, or a plain command."
|
|||
(let* ((sym (intern-soft (concat "eshell/" name)))
|
||||
(file (symbol-file sym 'defun)))
|
||||
;; If the function exists, but is defined in an eshell module
|
||||
;; that's not currently enabled, don't report it as found
|
||||
;; that's not currently enabled, don't report it as found.
|
||||
(if (and file
|
||||
(string-match "\\(em\\|esh\\)-\\(.*\\)\\(\\.el\\)?\\'" file))
|
||||
(setq file (file-name-base file))
|
||||
(string-match "\\`\\(em\\|esh\\)-\\([[:alnum:]]+\\)\\'" file))
|
||||
(let ((module-sym
|
||||
(intern (file-name-base (concat "eshell-" (match-string 2 file))))))
|
||||
(intern (concat "eshell-" (match-string 2 file)))))
|
||||
(if (and (functionp sym)
|
||||
(or (null module-sym)
|
||||
(eshell-using-module module-sym)
|
||||
|
|
|
|||
|
|
@ -275,6 +275,7 @@ Prepend remote identification of `default-directory', if any."
|
|||
|
||||
(defmacro eshell-for (for-var for-list &rest forms)
|
||||
"Iterate through a list."
|
||||
(declare (obsolete dolist "24.1"))
|
||||
(declare (indent 2))
|
||||
`(let ((list-iter ,for-list))
|
||||
(while list-iter
|
||||
|
|
@ -282,9 +283,6 @@ Prepend remote identification of `default-directory', if any."
|
|||
,@forms)
|
||||
(setq list-iter (cdr list-iter)))))
|
||||
|
||||
|
||||
(make-obsolete 'eshell-for 'dolist "24.1")
|
||||
|
||||
(defun eshell-flatten-list (args)
|
||||
"Flatten any lists within ARGS, so that there are no sublists."
|
||||
(let ((new-list (list t)))
|
||||
|
|
|
|||
|
|
@ -243,16 +243,14 @@ shells such as bash, zsh, rc, 4dos."
|
|||
|
||||
(defun eshell-add-to-window-buffer-names ()
|
||||
"Add `eshell-buffer-name' to `same-window-buffer-names'."
|
||||
(declare (obsolete nil "24.3"))
|
||||
(add-to-list 'same-window-buffer-names eshell-buffer-name))
|
||||
(make-obsolete 'eshell-add-to-window-buffer-names
|
||||
"no longer needed." "24.3")
|
||||
|
||||
(defun eshell-remove-from-window-buffer-names ()
|
||||
"Remove `eshell-buffer-name' from `same-window-buffer-names'."
|
||||
(declare (obsolete nil "24.3"))
|
||||
(setq same-window-buffer-names
|
||||
(delete eshell-buffer-name same-window-buffer-names)))
|
||||
(make-obsolete 'eshell-remove-from-window-buffer-names
|
||||
"no longer needed." "24.3")
|
||||
|
||||
(defcustom eshell-load-hook nil
|
||||
"A hook run once Eshell has been loaded."
|
||||
|
|
|
|||
|
|
@ -1867,6 +1867,7 @@ Return nil if it has no specified face."
|
|||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(declare-function x-parse-geometry "frame.c" (string))
|
||||
(defvar x-display-name)
|
||||
|
||||
(defun x-handle-named-frame-geometry (parameters)
|
||||
"Add geometry parameters for a named frame to parameter list PARAMETERS.
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue