1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-16 09:50:25 +00:00
This commit is contained in:
Joakim Verona 2012-11-06 23:01:10 +01:00
commit 643b189334
242 changed files with 7663 additions and 6502 deletions

View File

@ -1,3 +1,51 @@
2012-11-05 Paul Eggert <eggert@cs.ucla.edu>
Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
* configure.ac (setpgid, setsid): Assume their existence.
(AC_FUNC_GETPGRP, SETPGRP_RELEASES_CTTY): Remove; obsolete.
Simplify by assuming __fpending.
Now that Emacs is using the gnulib fpending module,
there's no need for Emacs to have a separate implementation.
* configure.ac (stdio_ext.h, __fpending): Remove now-duplicate checks.
(PENDING_OUTPUT_COUNT, DISPNEW_NEEDS_STDIO_EXT): Remove.
2012-11-03 Eli Zaretskii <eliz@gnu.org>
* lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/fpending.$(O) and
$(BLD)/close-stream.$(O).
($(BLD)/close-stream.$(O)):
($(BLD)/fpending.$(O)): New dependencies.
2012-11-03 Paul Eggert <eggert@cs.ucla.edu>
Fix data-loss with --batch (Bug#9574).
* lib/close-stream.c, lib/close-stream.h, lib/fpending.c
* lib/fpending.h, m4/close-stream.m4, m4/fpending.m4:
New files, from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
2012-11-03 Eli Zaretskii <eliz@gnu.org>
* config.bat: Copy lib/execinfo.in.h to lib/execinfo.in-h if needed.
2012-11-02 Glenn Morris <rgm@gnu.org>
* Makefile.in (EMACS_ICON): New variable.
(install-etc): Use EMACS_ICON to allow choice of icon.
2012-10-26 Glenn Morris <rgm@gnu.org>
* Makefile.in (EMACS_NAME): New variable.
(EMACS, install-etc, uninstall): Use $EMACS_NAME.
* Makefile.in (EMACS, EMACSFULL): Transformations should not be
applied to $EXEEXT.
* Makefile.in (uninstall): Don't abort if some directories are missing.
Apply transformation rules to manual pages, desktop and icon files.
No more emacs22 icons to uninstall.
2012-10-24 Glenn Morris <rgm@gnu.org>
* Makefile.in (install-etc, install-man):

View File

@ -259,8 +259,9 @@ GZIP_INFO = @GZIP_INFO@
TRANSFORM = @program_transform_name@
# What emacs should be called when installed.
EMACS = `echo emacs${EXEEXT} | sed '$(TRANSFORM)'`
EMACSFULL = `echo emacs-${version}${EXEEXT} | sed '$(TRANSFORM)'`
EMACS_NAME = `echo emacs | sed '$(TRANSFORM)'`
EMACS = ${EMACS_NAME}${EXEEXT}
EMACSFULL = `echo emacs-${version} | sed '$(TRANSFORM)'`${EXEEXT}
# Subdirectories to make recursively.
SUBDIR = lib lib-src src lisp leim
@ -631,24 +632,29 @@ install-man:
done
## Install those items from etc/ that need to end up elsewhere.
## If you prefer, choose "emacs22" at installation time.
## Note: emacs22 does not have all the resolutions.
EMACS_ICON=emacs
install-etc:
umask 022; ${MKDIR_P} $(DESTDIR)${desktopdir}
dest=`echo emacs | sed '$(TRANSFORM)'`; \
tmp=etc/emacs.tmpdesktop; rm -f $${tmp}; \
sed -e "/^Exec=emacs/ s/emacs/$${dest}/" \
-e "/^Icon=emacs/ s/emacs/$${dest}/" \
emacs_name=`echo emacs | sed '$(TRANSFORM)'`; \
sed -e "/^Exec=emacs/ s/emacs/$${emacs_name}/" \
-e "/^Icon=emacs/ s/emacs/$${emacs_name}/" \
${srcdir}/etc/emacs.desktop > $${tmp}; \
${INSTALL_DATA} $${tmp} $(DESTDIR)${desktopdir}/$${dest}.desktop; \
${INSTALL_DATA} $${tmp} $(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop; \
rm -f $${tmp}
thisdir=`/bin/pwd`; \
cd ${iconsrcdir} || exit 1; umask 022 ; \
for dir in */*/apps */*/mimetypes; do \
[ -d $${dir} ] || continue ; \
( cd $${thisdir}; ${MKDIR_P} $(DESTDIR)${icondir}/$${dir} ) ; \
for icon in $${dir}/emacs[.-]*; do \
for icon in $${dir}/${EMACS_ICON}[.-]*; do \
[ -r $${icon} ] || continue ; \
ext=`echo "$${icon}" | sed -e 's|.*\.||'`; \
dest=`echo "$${icon}" | sed -e 's|.*/||' -e "s|\.$${ext}$$||" -e '$(TRANSFORM)'`.$${ext} ; \
dest=`echo "$${icon}" | sed -e 's|.*/||' -e "s|\.$${ext}$$||" -e 's/$(EMACS_ICON)/emacs/' -e '$(TRANSFORM)'`.$${ext} ; \
( cd $${thisdir}; \
${INSTALL_DATA} ${iconsrcdir}/$${icon} $(DESTDIR)${icondir}/$${dir}/$${dest} ) \
|| exit 1; \
@ -685,21 +691,28 @@ uninstall:
-rm -rf $(DESTDIR)${libexecdir}/emacs/${version}
thisdir=`/bin/pwd`; \
(info_misc=`cd doc/misc; ${MAKE} echo-info | sed '/ing directory/d'`; \
cd $(DESTDIR)${infodir} && \
for elt in ${INFO_NONMISC} $${info_misc}; do \
(cd $${thisdir}; \
$(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
ext=.gz; else ext=; fi; \
rm -f $$elt$$ext $$elt-[1-9]$$ext $$elt-[1-9][0-9]$$ext; \
done;)
if cd $(DESTDIR)${infodir}; then \
for elt in ${INFO_NONMISC} $${info_misc}; do \
(cd $${thisdir}; \
$(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
ext=.gz; else ext=; fi; \
rm -f $$elt$$ext $$elt-[1-9]$$ext $$elt-[1-9][0-9]$$ext; \
done; \
fi)
(if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
ext=.gz; else ext=; fi; \
cd ${mansrcdir} && for page in *.1; do \
rm -f $(DESTDIR)${man1dir}/$$page$$ext; done )
(cd $(DESTDIR)${bindir} && rm -f $(EMACSFULL) $(EMACS))
(cd $(DESTDIR)${icondir} && rm -f hicolor/*x*/apps/emacs.png hicolor/*x*/apps/emacs22.png hicolor/scalable/apps/emacs.svg hicolor/scalable/mimetypes/emacs-document.svg )
-rm -f $(DESTDIR)${desktopdir}/emacs.desktop
if cd ${mansrcdir}; then \
for page in *.1; do \
rm -f $(DESTDIR)${man1dir}/`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1$$ext; done; \
fi)
(cd $(DESTDIR)${bindir} && rm -f $(EMACSFULL) $(EMACS) || true)
(if cd $(DESTDIR)${icondir}; then \
rm -f hicolor/*x*/apps/${EMACS_NAME}.png \
hicolor/scalable/apps/${EMACS_NAME}.svg \
hicolor/scalable/mimetypes/`echo emacs-document | sed '$(TRANSFORM)'`.svg; \
fi)
-rm -f $(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop
for file in snake-scores tetris-scores; do \
file=$(DESTDIR)${gamedir}/$${file}; \
[ -s $${file} ] || rm -f $$file; \

2
README
View File

@ -2,7 +2,7 @@ Copyright (C) 2001-2012 Free Software Foundation, Inc.
See the end of the file for license conditions.
This directory tree holds version 24.2.50 of GNU Emacs, the extensible,
This directory tree holds version 24.3.50 of GNU Emacs, the extensible,
customizable, self-documenting real-time display editor.
The file INSTALL in this directory says how to build and install GNU

View File

@ -298,9 +298,7 @@ HAVE_SENDTO
HAVE_SEQPACKET
HAVE_SETITIMER
HAVE_SETLOCALE
HAVE_SETPGID
HAVE_SETRLIMIT
HAVE_SETSID
HAVE_SHARED_GAME_DIR
HAVE_SHUTDOWN
HAVE_SIGNED_${GLTYPE}
@ -425,7 +423,6 @@ ORDINARY_LINK
O_RDONLY
O_RDWR
PAGESIZE
PENDING_OUTPUT_COUNT
PREFER_VSUSP
PTY_ITERATION
PTY_NAME_SPRINTF
@ -433,7 +430,6 @@ PTY_OPEN
PTY_TTY_NAME_SPRINTF
PURESIZE
RUN_TIME_REMAP
SETPGRP_RELEASES_CTTY
SETUP_SLAVE_PTY
SIGALRM
SIGCHLD

View File

@ -1,3 +1,21 @@
2012-11-05 Paul Eggert <eggert@cs.ucla.edu>
Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
* CPP-DEFINES (HAVE_SETPGID, HAVE_SETSID, SETPGRP_RELEASES_CTTY):
Remove; obsolete.
Simplify by assuming __fpending.
* CPP-DEFINES (PENDING_OUTPUT_COUNT): Remove.
2012-11-03 Glenn Morris <rgm@gnu.org>
* admin.el (set-copyright): Add msdos/sed2v2.inp.
2012-11-01 Paul Eggert <eggert@cs.ucla.edu>
Fix data-loss with --batch (Bug#9574).
* merge-gnulib (GNULIB_MODULES): Add close-stream.
2012-10-12 Kenichi Handa <handa@gnu.org>
* charsets/Makefile (JISC6226.map): Add missing mappings.

View File

@ -158,6 +158,10 @@ Root must be the root of an Emacs source tree."
(set-version-in-file root "configure.ac" copyright
(rx (and bol "copyright" (0+ (not (in ?\")))
?\" (submatch (1+ (not (in ?\")))) ?\")))
(set-version-in-file root "msdos/sed2v2.inp" copyright
(rx (and bol "/^#undef " (1+ not-newline)
"define COPYRIGHT" (1+ space)
?\" (submatch (1+ (not (in ?\")))) ?\")))
(set-version-in-file root "nt/config.nt" copyright
(rx (and bol "#" (0+ blank) "define" (1+ blank)
"COPYRIGHT" (1+ blank)

View File

@ -27,7 +27,7 @@ GNULIB_URL=git://git.savannah.gnu.org/gnulib.git
GNULIB_MODULES='
alloca-opt c-ctype c-strcase
careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512
careadlinkat close-stream crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512
dtoastr dtotimespec dup2 environ execinfo
filemode getloadavg getopt-gnu gettime gettimeofday
ignore-value intprops largefile lstat

View File

@ -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 timer-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 close-stream 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@
@ -64,12 +64,14 @@ subdir = lib
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/c-strtod.m4 \
$(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/dup2.m4 \
$(top_srcdir)/m4/clock_time.m4 \
$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/dup2.m4 \
$(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/execinfo.m4 \
$(top_srcdir)/m4/extensions.m4 \
$(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/filemode.m4 \
$(top_srcdir)/m4/getloadavg.m4 $(top_srcdir)/m4/getopt.m4 \
$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
$(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/getloadavg.m4 \
$(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gettime.m4 \
$(top_srcdir)/m4/gettimeofday.m4 \
$(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/gnulib-comp.m4 \
$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inttypes.m4 \
@ -111,17 +113,18 @@ libgnu_a_AR = $(AR) $(ARFLAGS)
am__DEPENDENCIES_1 =
am__libgnu_a_SOURCES_DIST = allocator.c c-ctype.h c-ctype.c \
c-strcase.h c-strcasecmp.c c-strncasecmp.c careadlinkat.c \
md5.c sha1.c sha256.c sha512.c dtoastr.c dtotimespec.c \
filemode.c gettext.h gettime.c stat-time.c strftime.c \
timespec.c timespec-add.c timespec-sub.c u64.c utimens.c
close-stream.c md5.c sha1.c sha256.c sha512.c dtoastr.c \
dtotimespec.c filemode.c gettext.h gettime.c stat-time.c \
strftime.c timespec.c timespec-add.c timespec-sub.c u64.c \
utimens.c
am__objects_1 =
am_libgnu_a_OBJECTS = allocator.$(OBJEXT) c-ctype.$(OBJEXT) \
c-strcasecmp.$(OBJEXT) c-strncasecmp.$(OBJEXT) \
careadlinkat.$(OBJEXT) md5.$(OBJEXT) sha1.$(OBJEXT) \
sha256.$(OBJEXT) sha512.$(OBJEXT) dtoastr.$(OBJEXT) \
dtotimespec.$(OBJEXT) filemode.$(OBJEXT) $(am__objects_1) \
gettime.$(OBJEXT) stat-time.$(OBJEXT) strftime.$(OBJEXT) \
timespec.$(OBJEXT) timespec-add.$(OBJEXT) \
careadlinkat.$(OBJEXT) close-stream.$(OBJEXT) md5.$(OBJEXT) \
sha1.$(OBJEXT) sha256.$(OBJEXT) sha512.$(OBJEXT) \
dtoastr.$(OBJEXT) dtotimespec.$(OBJEXT) filemode.$(OBJEXT) \
$(am__objects_1) gettime.$(OBJEXT) stat-time.$(OBJEXT) \
strftime.$(OBJEXT) timespec.$(OBJEXT) timespec-add.$(OBJEXT) \
timespec-sub.$(OBJEXT) u64.$(OBJEXT) utimens.$(OBJEXT)
libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS)
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
@ -860,13 +863,13 @@ BUILT_SOURCES = $(ALLOCA_H) $(EXECINFO_H) $(GETOPT_H) inttypes.h \
signal.h arg-nonnull.h c++defs.h warn-on-use.h $(STDALIGN_H) \
$(STDARG_H) $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) stdio.h \
stdlib.h sys/select.h sys/stat.h sys/time.h time.h unistd.h
EXTRA_DIST = alloca.in.h allocator.h careadlinkat.h md5.h sha1.h \
sha256.h sha512.h dosname.h ftoastr.c ftoastr.h dup2.c \
execinfo.c execinfo.in.h filemode.h getloadavg.c getopt.c \
getopt.in.h getopt1.c getopt_int.h gettimeofday.c \
ignore-value.h intprops.h inttypes.in.h lstat.c \
mktime-internal.h mktime.c pathmax.h pselect.c \
pthread_sigmask.c readlink.c signal.in.h \
EXTRA_DIST = alloca.in.h allocator.h careadlinkat.h close-stream.h \
md5.h sha1.h sha256.h sha512.h dosname.h ftoastr.c ftoastr.h \
dup2.c execinfo.c execinfo.in.h filemode.h fpending.c \
fpending.h getloadavg.c getopt.c getopt.in.h getopt1.c \
getopt_int.h gettimeofday.c ignore-value.h intprops.h \
inttypes.in.h lstat.c mktime-internal.h mktime.c pathmax.h \
pselect.c pthread_sigmask.c readlink.c signal.in.h \
$(top_srcdir)/build-aux/snippet/_Noreturn.h \
$(top_srcdir)/build-aux/snippet/arg-nonnull.h \
$(top_srcdir)/build-aux/snippet/c++defs.h \
@ -891,17 +894,17 @@ noinst_LIBRARIES = libgnu.a
AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
DEFAULT_INCLUDES = -I. -I$(top_srcdir)/lib -I../src -I$(top_srcdir)/src
libgnu_a_SOURCES = allocator.c c-ctype.h c-ctype.c c-strcase.h \
c-strcasecmp.c c-strncasecmp.c careadlinkat.c md5.c sha1.c \
sha256.c sha512.c dtoastr.c dtotimespec.c filemode.c \
$(am__append_1) gettime.c stat-time.c strftime.c timespec.c \
timespec-add.c timespec-sub.c u64.c utimens.c
c-strcasecmp.c c-strncasecmp.c careadlinkat.c close-stream.c \
md5.c sha1.c sha256.c sha512.c dtoastr.c dtotimespec.c \
filemode.c $(am__append_1) gettime.c stat-time.c strftime.c \
timespec.c timespec-add.c timespec-sub.c u64.c utimens.c
libgnu_a_LIBADD = $(gl_LIBOBJS)
libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
EXTRA_libgnu_a_SOURCES = ftoastr.c dup2.c execinfo.c getloadavg.c \
getopt.c getopt1.c gettimeofday.c lstat.c mktime.c pselect.c \
pthread_sigmask.c readlink.c stat.c strtoimax.c strtol.c \
strtoll.c strtol.c strtoul.c strtoull.c strtoimax.c \
strtoumax.c symlink.c time_r.c
EXTRA_libgnu_a_SOURCES = ftoastr.c dup2.c execinfo.c fpending.c \
getloadavg.c getopt.c getopt1.c gettimeofday.c lstat.c \
mktime.c pselect.c pthread_sigmask.c readlink.c stat.c \
strtoimax.c strtol.c strtoll.c strtol.c strtoul.c strtoull.c \
strtoimax.c strtoumax.c symlink.c time_r.c
# Because this Makefile snippet defines a variable used by other
# gnulib Makefile snippets, it must be present in all Makefile.am that
@ -964,11 +967,13 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasecmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/careadlinkat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close-stream.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dtoastr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dtotimespec.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execinfo.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filemode.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpending.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftoastr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getloadavg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@

2
autogen/aclocal.m4 vendored
View File

@ -988,12 +988,14 @@ m4_include([m4/00gnulib.m4])
m4_include([m4/alloca.m4])
m4_include([m4/c-strtod.m4])
m4_include([m4/clock_time.m4])
m4_include([m4/close-stream.m4])
m4_include([m4/dup2.m4])
m4_include([m4/environ.m4])
m4_include([m4/execinfo.m4])
m4_include([m4/extensions.m4])
m4_include([m4/extern-inline.m4])
m4_include([m4/filemode.m4])
m4_include([m4/fpending.m4])
m4_include([m4/getloadavg.m4])
m4_include([m4/getopt.m4])
m4_include([m4/gettime.m4])

View File

@ -114,9 +114,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Character that separates directories in a file name. */
#undef DIRECTORY_SEP
/* Define if dispnew.c should include stdio_ext.h. */
#undef DISPNEW_NEEDS_STDIO_EXT
/* Define if process.c does not need to close a pty to make it a controlling
terminal (it is already a controlling terminal of the subprocess, because
we did ioctl TIOCSCTTY). */
@ -177,9 +174,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
garbage collection in the jmp_buf. */
#undef GC_SETJMP_WORKS
/* Define to 1 if the `getpgrp' function requires zero arguments. */
#undef GETPGRP_VOID
/* Define if gettimeofday clobbers the localtime buffer. */
#undef GETTIMEOFDAY_CLOBBERS_LOCALTIME
@ -190,6 +184,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define this to enable glyphs debugging code. */
#undef GLYPH_DEBUG
/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
whether the gnulib module close-stream shall be considered present. */
#undef GNULIB_CLOSE_STREAM
/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
whether the gnulib module fscanf shall be considered present. */
#undef GNULIB_FSCANF
@ -312,6 +310,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
*/
#undef HAVE_DECL_TZNAME
/* Define to 1 if you have the declaration of `__fpending', and to 0 if you
don't. */
#undef HAVE_DECL___FPENDING
/* Define to 1 if you have the declaration of `__sys_siglist', and to 0 if you
don't. */
#undef HAVE_DECL___SYS_SIGLIST
@ -773,15 +775,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
/* Define to 1 if you have the `setpgid' function. */
#undef HAVE_SETPGID
/* Define to 1 if you have the `setrlimit' function. */
#undef HAVE_SETRLIMIT
/* Define to 1 if you have the `setsid' function. */
#undef HAVE_SETSID
/* Define to 1 if you have the `shutdown' function. */
#undef HAVE_SHUTDOWN
@ -1206,8 +1202,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Number of chars of output in the buffer of a stdio stream. */
#undef PENDING_OUTPUT_COUNT
/* the number of pending output bytes on stream 'fp' */
#undef PENDING_OUTPUT_N_BYTES
/* Define to empty to suppress deprecation warnings when building with
--enable-gcc-warnings and with libpng versions before 1.5, which lack
@ -1264,9 +1260,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Character that separates PATH elements. */
#undef SEPCHAR
/* Define if process.c:child_setup should not call setpgrp. */
#undef SETPGRP_RELEASES_CTTY
/* How to set up a slave PTY, if needed. */
#undef SETUP_SLAVE_PTY

337
autogen/configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.65 for emacs 24.2.50.
# Generated by GNU Autoconf 2.65 for emacs 24.3.50.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@ -549,8 +549,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='emacs'
PACKAGE_TARNAME='emacs'
PACKAGE_VERSION='24.2.50'
PACKAGE_STRING='emacs 24.2.50'
PACKAGE_VERSION='24.3.50'
PACKAGE_STRING='emacs 24.3.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@ -1940,7 +1940,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures emacs 24.2.50 to adapt to many kinds of systems.
\`configure' configures emacs 24.3.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -2014,7 +2014,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of emacs 24.2.50:";;
short | recursive ) echo "Configuration of emacs 24.3.50:";;
esac
cat <<\_ACEOF
@ -2181,7 +2181,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
emacs configure 24.2.50
emacs configure 24.3.50
generated by GNU Autoconf 2.65
Copyright (C) 2009 Free Software Foundation, Inc.
@ -2903,7 +2903,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by emacs $as_me 24.2.50, which was
It was created by emacs $as_me 24.3.50, which was
generated by GNU Autoconf 2.65. Invocation command line was
$ $0 $@
@ -3184,7 +3184,6 @@ fi
as_fn_append ac_header_list " linux/version.h"
as_fn_append ac_header_list " sys/systeminfo.h"
as_fn_append ac_header_list " stdio_ext.h"
as_fn_append ac_header_list " fcntl.h"
as_fn_append ac_header_list " coff.h"
as_fn_append ac_header_list " pty.h"
@ -3206,6 +3205,8 @@ as_fn_append ac_header_list " sys/un.h"
as_fn_append ac_func_list " tzset"
as_fn_append ac_func_list " readlinkat"
as_fn_append ac_header_list " execinfo.h"
as_fn_append ac_header_list " stdio_ext.h"
as_fn_append ac_func_list " __fpending"
gl_getopt_required=GNU
as_fn_append ac_header_list " getopt.h"
as_fn_append ac_func_list " gettimeofday"
@ -3764,7 +3765,7 @@ fi
# Define the identity of the package.
PACKAGE='emacs'
VERSION='24.2.50'
VERSION='24.3.50'
cat >>confdefs.h <<_ACEOF
@ -6958,6 +6959,7 @@ esac
# Code from module c-strcase:
# Code from module careadlinkat:
# Code from module clock-time:
# Code from module close-stream:
# Code from module crypto/md5:
# Code from module crypto/sha1:
# Code from module crypto/sha256:
@ -6972,6 +6974,7 @@ esac
# Code from module extern-inline:
# Code from module filemode:
# Code from module fpending:
# Code from module getloadavg:
# Code from module getopt-gnu:
# Code from module getopt-posix:
@ -8746,8 +8749,6 @@ done
@ -13415,10 +13416,10 @@ esac
for ac_func in gethostname \
closedir getrusage get_current_dir_name \
lrand48 setsid \
lrand48 \
fpathconf select euidaccess getpagesize setlocale \
utimes getrlimit setrlimit setpgid getcwd shutdown getaddrinfo \
__fpending strsignal setitimer \
utimes getrlimit setrlimit getcwd shutdown getaddrinfo \
strsignal setitimer \
sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \
gai_strerror mkstemp getline getdelim fsync sync \
difftime posix_memalign \
@ -13584,40 +13585,6 @@ $as_echo "#define HAVE_FSEEKO 1" >>confdefs.h
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getpgrp requires zero arguments" >&5
$as_echo_n "checking whether getpgrp requires zero arguments... " >&6; }
if test "${ac_cv_func_getpgrp_void+set}" = set; then :
$as_echo_n "(cached) " >&6
else
# Use it with a single arg.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
main ()
{
getpgrp (0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_func_getpgrp_void=no
else
ac_cv_func_getpgrp_void=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getpgrp_void" >&5
$as_echo "$ac_cv_func_getpgrp_void" >&6; }
if test $ac_cv_func_getpgrp_void = yes; then
$as_echo "#define GETPGRP_VOID 1" >>confdefs.h
fi
# UNIX98 PTYs.
for ac_func in grantpt
do :
@ -15373,145 +15340,6 @@ esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C library" >&5
$as_echo_n "checking whether we are using the GNU C library... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <features.h>
#ifndef __GNU_LIBRARY__
# error "this is not the GNU C library"
#endif
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
emacs_glibc=yes
else
emacs_glibc=no
fi
rm -f conftest.err conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_glibc" >&5
$as_echo "$emacs_glibc" >&6; }
if test $emacs_glibc = yes; then
emacs_pending_output=unknown
case $opsys in
gnu | gnu-linux | gnu-kfreebsd )
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of pending output formalism" >&5
$as_echo_n "checking for style of pending output formalism... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
#if !defined (_IO_STDIO_H) && !defined (_STDIO_USES_IOSTREAM)
# error "stdio definitions not found"
#endif
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
emacs_pending_output=new
fi
rm -f conftest.err conftest.$ac_ext
if test $emacs_pending_output = unknown; then
case $opsys in
gnu-linux | gnu-kfreebsd)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
#ifndef __UCLIBC__
# error "not using uclibc"
#endif
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
emacs_pending_output=uclibc
else
emacs_pending_output=old
fi
rm -f conftest.err conftest.$ac_ext
;;
esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_pending_output" >&5
$as_echo "$emacs_pending_output" >&6; }
case $emacs_pending_output in
new)
$as_echo "#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_IO_write_ptr - (FILE)->_IO_write_base)" >>confdefs.h
;;
uclibc)
$as_echo "#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__bufpos - (FILE)->__bufstart)" >>confdefs.h
;;
old)
$as_echo "#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_pptr - (FILE)->_pbase)" >>confdefs.h
;;
esac
;;
esac
if test $emacs_pending_output = unknown; then
$as_echo "#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__bufp - (FILE)->__buffer)" >>confdefs.h
fi
else
case $opsys in
cygwin | darwin | freebsd | netbsd | openbsd )
$as_echo "#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)" >>confdefs.h
;;
unixware)
$as_echo "#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__ptr - (FILE)->__base)" >>confdefs.h
;;
*)
if test x$ac_cv_header_stdio_ext_h = xyes && \
test x$ac_cv_func___fpending = xyes; then
$as_echo "#define PENDING_OUTPUT_COUNT(FILE) __fpending (FILE)" >>confdefs.h
$as_echo "#define DISPNEW_NEEDS_STDIO_EXT 1" >>confdefs.h
else
$as_echo "#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)" >>confdefs.h
fi
;;
esac
fi
case $opsys in
gnu)
@ -15989,9 +15817,6 @@ $as_echo "#define USG_SUBTTY_WORKS 1" >>confdefs.h
$as_echo "#define PREFER_VSUSP 1" >>confdefs.h
$as_echo "#define SETPGRP_RELEASES_CTTY 1" >>confdefs.h
;;
sol2-10)
@ -16999,6 +16824,10 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
GNULIB__EXIT=0;
GNULIB_ATOLL=0;
GNULIB_CALLOC_POSIX=0;
@ -20448,6 +20277,16 @@ done
LIBS=$gl_saved_libs
:
cat >>confdefs.h <<_ACEOF
#define GNULIB_CLOSE_STREAM 1
_ACEOF
:
@ -20687,6 +20526,120 @@ fi
fp_headers='
# include <stdio.h>
# if HAVE_STDIO_EXT_H
# include <stdio_ext.h>
# endif
'
ac_fn_c_check_decl "$LINENO" "__fpending" "ac_cv_have_decl___fpending" "$fp_headers
"
if test "x$ac_cv_have_decl___fpending" = x""yes; then :
ac_have_decl=1
else
ac_have_decl=0
fi
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL___FPENDING $ac_have_decl
_ACEOF
if test $ac_cv_func___fpending = no; then
gl_LIBOBJS="$gl_LIBOBJS fpending.$ac_objext"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to determine the number of pending output bytes on a stream" >&5
$as_echo_n "checking how to determine the number of pending output bytes on a stream... " >&6; }
if test "${ac_cv_sys_pending_output_n_bytes+set}" = set; then :
$as_echo_n "(cached) " >&6
else
for ac_expr in \
\
'# glibc2' \
'fp->_IO_write_ptr - fp->_IO_write_base' \
\
'# traditional Unix' \
'fp->_ptr - fp->_base' \
\
'# BSD' \
'fp->_p - fp->_bf._base' \
\
'# SCO, Unixware' \
'(fp->__ptr ? fp->__ptr - fp->__base : 0)' \
\
'# QNX' \
'(fp->_Mode & 0x2000 /*_MWRITE*/ ? fp->_Next - fp->_Buf : 0)' \
\
'# old glibc?' \
'fp->__bufp - fp->__buffer' \
\
'# old glibc iostream?' \
'fp->_pptr - fp->_pbase' \
\
'# emx+gcc' \
'fp->_ptr - fp->_buffer' \
\
'# Minix' \
'fp->_ptr - fp->_buf' \
\
'# Plan9' \
'fp->wp - fp->buf' \
\
'# VMS' \
'(*fp)->_ptr - (*fp)->_base' \
\
'# e.g., DGUX R4.11; the info is not available' \
1 \
; do
# Skip each embedded comment.
case "$ac_expr" in '#'*) continue;; esac
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
int
main ()
{
FILE *fp = stdin; (void) ($ac_expr);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
fp_done=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
test "$fp_done" = yes && break
done
ac_cv_sys_pending_output_n_bytes=$ac_expr
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_pending_output_n_bytes" >&5
$as_echo "$ac_cv_sys_pending_output_n_bytes" >&6; }
cat >>confdefs.h <<_ACEOF
#define PENDING_OUTPUT_N_BYTES $ac_cv_sys_pending_output_n_bytes
_ACEOF
fi
# Persuade glibc <stdlib.h> to declare getloadavg().
@ -25481,7 +25434,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by emacs $as_me 24.2.50, which was
This file was extended by emacs $as_me 24.3.50, which was
generated by GNU Autoconf 2.65. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -25547,7 +25500,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
emacs config.status 24.2.50
emacs config.status 24.3.50
configured by $0, generated by GNU Autoconf 2.65,
with options \\"\$ac_cs_config\\"

View File

@ -264,6 +264,7 @@ cd lib
Rem Rename files like djtar on plain DOS filesystem would.
If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h build-aux/snippet/cxxdefs.h
If Exist alloca.in.h update alloca.in.h alloca.in-h
If Exist execinfo.in.h update execinfo.in.h execinfo.in-h
If Exist getopt.in.h update getopt.in.h getopt.in-h
If Exist stdalign.in.h update stdalign.in.h stdalign.in-h
If Exist stdbool.in.h update stdbool.in.h stdbool.in-h

View File

@ -22,7 +22,7 @@ dnl You should have received a copy of the GNU General Public License
dnl along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ(2.65)
AC_INIT(emacs, 24.2.50)
AC_INIT(emacs, 24.3.50)
AC_CONFIG_HEADER(src/config.h:src/config.in)
AC_CONFIG_SRCDIR(src/lisp.h)
AC_CONFIG_AUX_DIR(build-aux)
@ -1268,7 +1268,7 @@ fi
dnl checks for header files
AC_CHECK_HEADERS_ONCE(
linux/version.h sys/systeminfo.h
stdio_ext.h fcntl.h coff.h pty.h
fcntl.h coff.h pty.h
sys/vlimit.h sys/resource.h
sys/utsname.h pwd.h utmp.h dirent.h util.h)
@ -2932,10 +2932,10 @@ AC_SUBST(BLESSMAIL_TARGET)
AC_CHECK_FUNCS(gethostname \
closedir getrusage get_current_dir_name \
lrand48 setsid \
lrand48 \
fpathconf select euidaccess getpagesize setlocale \
utimes getrlimit setrlimit setpgid getcwd shutdown getaddrinfo \
__fpending strsignal setitimer \
utimes getrlimit setrlimit getcwd shutdown getaddrinfo \
strsignal setitimer \
sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \
gai_strerror mkstemp getline getdelim fsync sync \
difftime posix_memalign \
@ -2977,8 +2977,6 @@ AC_CHECK_HEADERS_ONCE(sys/un.h)
AC_FUNC_FSEEKO
AC_FUNC_GETPGRP
# UNIX98 PTYs.
AC_CHECK_FUNCS(grantpt)
@ -3711,100 +3709,6 @@ case $opsys in
esac
dnl Used in dispnew.c
AH_TEMPLATE(PENDING_OUTPUT_COUNT, [Number of chars of output in the
buffer of a stdio stream.])
AC_MSG_CHECKING([whether we are using the GNU C library])
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
#include <features.h>
#ifndef __GNU_LIBRARY__
# error "this is not the GNU C library"
#endif
]], [[]])], emacs_glibc=yes, emacs_glibc=no)
AC_MSG_RESULT([$emacs_glibc])
if test $emacs_glibc = yes; then
emacs_pending_output=unknown
case $opsys in
gnu | gnu-linux | gnu-kfreebsd )
AC_MSG_CHECKING([for style of pending output formalism])
dnl In autoconf 2.67 and later, we could use a single test
dnl since the preprocessed output is accessible in "conftest.i".
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
#include <stdio.h>
#if !defined (_IO_STDIO_H) && !defined (_STDIO_USES_IOSTREAM)
# error "stdio definitions not found"
#endif
]], [[]])], emacs_pending_output=new, [])
if test $emacs_pending_output = unknown; then
case $opsys in
gnu-linux | gnu-kfreebsd)
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
#include <stdio.h>
#ifndef __UCLIBC__
# error "not using uclibc"
#endif
]], [[]])], emacs_pending_output=uclibc, emacs_pending_output=old)
;;
esac
fi
AC_MSG_RESULT([$emacs_pending_output])
case $emacs_pending_output in
new)
dnl New C libio names.
AC_DEFINE(PENDING_OUTPUT_COUNT(FILE),
[((FILE)->_IO_write_ptr - (FILE)->_IO_write_base)])
;;
uclibc)
dnl Using the uClibc library.
AC_DEFINE(PENDING_OUTPUT_COUNT(FILE),
[((FILE)->__bufpos - (FILE)->__bufstart)])
;;
old)
dnl Old C++ iostream names.
AC_DEFINE(PENDING_OUTPUT_COUNT(FILE),
[((FILE)->_pptr - (FILE)->_pbase)])
;;
esac
;;
esac dnl opsys
if test $emacs_pending_output = unknown; then
AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->__bufp - (FILE)->__buffer)])
fi
else dnl !emacs_glibc
case $opsys in
cygwin | darwin | freebsd | netbsd | openbsd )
AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->_p - (FILE)->_bf._base)])
;;
unixware)
AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->__ptr - (FILE)->__base)])
;;
*)
dnl HAVE_STDIO_EXT_H && HAVE___FPENDING
if test x$ac_cv_header_stdio_ext_h = xyes && \
test x$ac_cv_func___fpending = xyes; then
AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [__fpending (FILE)])
AC_DEFINE(DISPNEW_NEEDS_STDIO_EXT, 1,
[Define if dispnew.c should include stdio_ext.h.])
else
AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->_ptr - (FILE)->_base)])
fi
;;
esac
fi dnl emacs_glibc
dnl Used in vm-limit.c
AH_TEMPLATE(DATA_START, [Address of the start of the data segment.])
dnl Used in lisp.h, emacs.c, mem-limits.h
@ -4119,8 +4023,6 @@ case $opsys in
irix6-5)
AC_DEFINE(PREFER_VSUSP, 1, [Define if process_send_signal should
use VSUSP instead of VSWTCH.])
AC_DEFINE(SETPGRP_RELEASES_CTTY, 1, [Define if process.c:child_setup
should not call setpgrp.])
;;
sol2-10)

View File

@ -1,3 +1,42 @@
2012-10-30 Michael Albinus <michael.albinus@gmx.de>
* trouble.texi (Known Problems): Mention command `debbugs-gnu-usertags'.
2012-10-29 Chong Yidong <cyd@gnu.org>
* dired.texi (Shell Commands in Dired): Document changes to the
dired-do-async-shell-command.
2012-10-28 Glenn Morris <rgm@gnu.org>
* ack.texi (Acknowledgments): Mention gv.el.
2012-10-27 Bastien Guerry <bzg@gnu.org>
* screen.texi (Menu Bar): Fix typo.
2012-10-27 Chong Yidong <cyd@gnu.org>
* frames.texi (Mouse Avoidance): Mention new variable
mouse-avoidance-banish-position.
* programs.texi (Which Function): Which Function mode now works in
all major modes by default.
* mule.texi (Recognize Coding): Remove an unreferenced vindex.
* files.texi (Misc File Ops): Symbolic links on Windows only work
on Vista and later.
* building.texi (Compilation): Document compilation-always-kill.
* search.texi (Symbol Search): New node.
* package.texi (Package Menu): Document the "new" status.
* windows.texi (Window Choice): Don't refer to the obsolete
special-display feature.
2012-10-24 Chong Yidong <cyd@gnu.org>
* mule.texi (Text Coding): set-buffer-file-coding-system can now

View File

@ -835,8 +835,9 @@ diffs; @file{css-mode.el} for Cascading Style Sheets;
client for the ``Music Player Daemon''; @file{smie.el}, a generic
indentation engine; and @file{pcase.el}, implementing ML-style pattern
matching. In Emacs 24, he integrated the lexical binding code,
and cleaned up the CL namespace (making it acceptable to use CL
functions at runtime).
cleaned up the CL namespace (making it acceptable to use CL
functions at runtime), and added generalized variables to core Emacs
Lisp.
@item
Morioka Tomohiko wrote several packages for MIME support in Gnus and

View File

@ -108,11 +108,14 @@ directory, which is the directory in which the previous compilation
was started.
@findex kill-compilation
@vindex compilation-always-kill
Starting a new compilation also kills any compilation already
running in @file{*compilation*}, as the buffer can only handle one
compilation at any time. However, @kbd{M-x compile} asks for
confirmation before actually killing a compilation that is running.
You can also kill the compilation process with @kbd{M-x
confirmation before actually killing a compilation that is running; to
always automatically kill the compilation without asking, change the
variable @code{compilation-always-kill} to @code{t}. You can also
kill a compilation process with the command @kbd{M-x
kill-compilation}.
To run two compilations at once, start the first one, then rename

View File

@ -799,15 +799,20 @@ more matches. @xref{Tags Search}.
@kindex ! @r{(Dired)}
@kindex X @r{(Dired)}
The Dired command @kbd{!} (@code{dired-do-shell-command}) reads a
shell command string in the minibuffer and runs that shell command on
shell command string in the minibuffer, and runs that shell command on
one or more files. The files that the shell command operates on are
determined in the usual way for Dired commands (@pxref{Operating on
Files}). The command @kbd{X} is a synonym for @kbd{!}.
The command @kbd{&} (@code{dired-do-async-shell-command}) does the
same, except that it runs the shell command asynchronously. You can
same, except that it runs the shell command asynchronously. (You can
also do this with @kbd{!}, by appending a @samp{&} character to the
end of the shell command.
end of the shell command.) When the command operates on more than one
file, it runs multiple parallel copies of the specified shell command,
one for each file. As an exception, if the specified shell command
ends in @samp{;} or @samp{;&}, the shell command is run in the
background on each file sequentially; Emacs waits for each invoked
shell command to terminate before running the next one.
For both @kbd{!} and @kbd{&}, the working directory for the shell
command is the top-level directory of the Dired buffer.

View File

@ -373,6 +373,7 @@ Searching and Replacement
* Incremental Search:: Search happens as you type the string.
* Nonincremental Search:: Specify entire string and then search.
* Word Search:: Search for sequence of words.
* Symbol Search:: Search for a source code symbol.
* Regexp Search:: Search for match for a regexp.
* Regexps:: Syntax of regular expressions.
* Regexp Backslash:: Regular expression constructs starting with `\'.

View File

@ -1,4 +1,4 @@
@c It would be nicer to generate this using configure and @version@.
@c However, that would mean emacsver.texi would always be newer
@c then the info files in release tarfiles.
@set EMACSVER 24.2.50
@set EMACSVER 24.3.50

View File

@ -1564,9 +1564,8 @@ open file @var{linkname} will refer to whatever file is named
@var{target} at the time the opening is done, or will get an error if
the name @var{target} is nonexistent at that time. This command does
not expand the argument @var{target}, so that it allows you to specify
a relative name as the target of the link. Not all systems support
symbolic links; on systems that don't support them, this command is
not defined.
a relative name as the target of the link. On MS-Windows, this
command works only on MS Windows Vista and later.
@kindex C-x i
@findex insert-file

View File

@ -1092,17 +1092,19 @@ to various values to move the mouse in several ways:
@table @code
@item banish
Move the mouse to the upper-right corner on any key-press;
Move the pointer to a corner of the frame on any key-press. You can
customize the variable @code{mouse-avoidance-banish-position} to
specify where the pointer goes when it is banished.
@item exile
Move the mouse to the corner only if the cursor gets too close,
and allow it to return once the cursor is out of the way;
Banish the pointer only if the cursor gets too close, and allow it to
return once the cursor is out of the way.
@item jump
If the cursor gets too close to the mouse, displace the mouse
a random distance & direction;
If the cursor gets too close to the pointer, displace the pointer by a
random distance and direction.
@item animate
As @code{jump}, but shows steps along the way for illusion of motion;
As @code{jump}, but shows steps along the way for illusion of motion.
@item cat-and-mouse
The same as @code{animate};
The same as @code{animate}.
@item proteus
As @code{animate}, but changes the shape of the mouse pointer too.
@end table

View File

@ -920,7 +920,6 @@ Unlike the previous two, this variable does not override any
@samp{-*-coding:-*-} tag.
@c FIXME? This seems somewhat out of place. Move to the Rmail section?
@vindex rmail-decode-mime-charset
@vindex rmail-file-coding-system
When you get new mail in Rmail, each message is translated
automatically from the coding system it is written in, as if it were a

View File

@ -62,8 +62,12 @@ The package's status---normally one of @samp{available} (can be
downloaded from the package archive), @samp{installed}, or
@samp{built-in} (included in Emacs by default).
In some instances, the status can be @samp{held}, @samp{disabled}, or
@samp{obsolete}. @xref{Package Installation}.
The status can also be @samp{new}. This is equivalent to
@samp{available}, except that it means the package became newly
available on the package archive after your last invocation of
@kbd{M-x list-packages}. In other instances, a package may have the
status @samp{held}, @samp{disabled}, or @samp{obsolete}.
@xref{Package Installation}.
@item
A short description of the package.

View File

@ -326,12 +326,13 @@ as you move around in a buffer.
@findex which-function-mode
@vindex which-func-modes
To either enable or disable Which Function mode, use the command
@kbd{M-x which-function-mode}. Although Which Function mode is a
global minor mode, it takes effect only in certain major modes: those
listed in the variable @code{which-func-modes}. If the value of
@code{which-func-modes} is @code{t} rather than a list of modes, then
Which Function mode applies to all major modes that know how to
support it---in other words, all the major modes that support Imenu.
@kbd{M-x which-function-mode}. Which Function mode is a global minor
mode. By default, it takes effect in all major modes major modes that
know how to support it (i.e.@: all the major modes that support
Imenu). You can restrict it to a specific list of major modes by
changing the value of the variable @code{which-func-modes} from
@code{t} (which means to support all available major modes) to a list
of major mode names.
@node Program Indent
@section Indentation for Programs

View File

@ -314,5 +314,5 @@ the echo area. You can use the up and down arrow keys to move through
the menu to different items, and then you can type @key{RET} to select
the item. Each menu item is also designated by a letter or digit
(usually the initial of some word in the item's name). This letter or
digit is separated from the item name by @samp{=>}. You can type the
digit is separated from the item name by @samp{==>}. You can type the
item's letter or digit to select the item.

View File

@ -21,6 +21,7 @@ thing, but search for patterns instead of fixed strings.
* Incremental Search:: Search happens as you type the string.
* Nonincremental Search:: Specify entire string and then search.
* Word Search:: Search for sequence of words.
* Symbol Search:: Search for a source code symbol.
* Regexp Search:: Search for match for a regexp.
* Regexps:: Syntax of regular expressions.
* Regexp Backslash:: Regular expression constructs starting with `\'.
@ -467,6 +468,47 @@ the search string can match part of a word, so that the matching
proceeds incrementally as you type. This additional laxity does not
apply to the lazy highlight, which always matches whole words.
@node Symbol Search
@section Symbol Search
@cindex symbol search
A @dfn{symbol search} is much like an ordinary search, except that
the boundaries of the search must match the boundaries of a symbol.
The meaning of @dfn{symbol} in this context depends on the major mode,
and usually refers to a source code token, such as a Lisp symbol in
Emacs Lisp mode. For instance, if you perform an incremental symbol
search for the Lisp symbol @code{forward-word}, it would not match
@code{isearch-forward-word}. This feature is thus mainly useful for
searching source code.
@table @kbd
@item M-s _
If incremental search is active, toggle symbol search mode
(@code{isearch-toggle-symbol}); otherwise, begin an incremental
forward symbol search (@code{isearch-forward-symbol}).
@item M-s _ @key{RET} @var{symbol} @key{RET}
Search forward for @var{symbol}, nonincrementally.
@item M-s _ C-r @key{RET} @var{symbol} @key{RET}
Search backward for @var{symbol}, nonincrementally.
@end table
@kindex M-s _
@findex isearch-forward-symbol
To begin a forward incremental symbol search, type @kbd{M-s _}. If
incremental search is not already active, this runs the command
@code{isearch-forward-symbol}. If incremental search is already
active, @kbd{M-s _} switches to a symbol search, preserving the
direction of the search and the current search string; you can disable
symbol search by typing @kbd{M-s _} again. In incremental symbol
search, only the beginning of the search string is required to match
the beginning of a symbol.
To begin a nonincremental symbol search, type @kbd{M-s _ @key{RET}}
for a forward search, or @kbd{M-s _ C-r @key{RET}} or a backward
search. In nonincremental symbol searches, the beginning and end of
the search string are required to match the beginning and end of a
symbol, respectively.
@node Regexp Search
@section Regular Expression Search
@cindex regexp search

View File

@ -481,7 +481,8 @@ Instead of browsing the bug tracker as a webpage, you can browse it
from Emacs using the @code{debbugs} package, which can be downloaded
via the Package Menu (@pxref{Packages}). This package provides the
command @kbd{M-x debbugs-gnu} to list bugs, and @kbd{M-x
debbugs-gnu-search} to search for a specific bug.
debbugs-gnu-search} to search for a specific bug. User tags, applied
by the Emacs maintainers, are shown by @kbd{M-x debbugs-gnu-usertags}.
@item
The @samp{bug-gnu-emacs} mailing list (also available as the newsgroup

View File

@ -384,12 +384,6 @@ Otherwise, if the buffer is already displayed in an existing window,
are considered, but windows on other frames are also reusable if you
change @code{pop-up-frames} (see below) to @code{t}.
@item
Otherwise, if you specified that the buffer should be displayed in a
special frame by customizing @code{special-display-buffer-names} or
@code{special-display-regexps}, do so. @xref{Choosing Window
Options,,, elisp, The Emacs Lisp Reference Manual}.
@vindex pop-up-frames
@item
Otherwise, optionally create a new frame and display the buffer there.

View File

@ -1,3 +1,105 @@
2012-11-03 Chong Yidong <cyd@gnu.org>
* objects.texi (General Escape Syntax): Clarify the explanation of
escape sequences.
(Non-ASCII in Strings): Clarify when a string is unibyte vs
multibyte. Hex escapes do not automatically make a string
multibyte.
2012-11-03 Martin Rudalics <rudalics@gmx.at>
* windows.texi (Switching Buffers): Document option
switch-to-buffer-preserve-window-point.
(Display Action Functions): Document window-height and
window-width alist entries.
(Display Action Functions): Document
display-buffer-below-selected and
display-buffer-in-previous-window.
(Quitting Windows): Document quit-restore-window. Rewrite
section.
(Window Configurations): In window-state-get mention that
argument window must be valid.
(Window Parameters): Document quit-restore window parameter
(Bug#12158).
2012-10-31 Glenn Morris <rgm@gnu.org>
* control.texi (Catch and Throw): Add xref to cl.texi.
* lists.texi (Sets And Lists): Point xref to better location.
* errors.texi (Standard Errors):
* loading.texi (Autoload): Update for cl-lib namespace changes.
* modes.texi (Defining Minor Modes): "Generalized Variables"
section is now in this manual rather than cl.texi.
* eval.texi (Special Forms): No longer special forms: defmacro,
defun, save-window-excursion, with-output-to-temp-buffer.
* functions.texi (Defining Functions): Defun is now a macro.
Defalias is a function.
2012-10-30 Glenn Morris <rgm@gnu.org>
* variables.texi (Generalized Variables): Fix typo.
2012-10-30 Chong Yidong <cyd@gnu.org>
* symbols.texi (Symbol Plists): Document function-get.
* loading.texi (Autoload): Document autoloadp, autoload-do-load.
* frames.texi (Visibility of Frames): Document tty-top-frame.
2012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
* keymaps.texi (Format of Keymaps): Document the multiple
inheritance format.
2012-10-28 Martin Rudalics <rudalics@gmx.at>
* windows.texi (Basic Windows): Reformulate description of live,
internal and valid windows.
(Cyclic Window Ordering): Describe new argument of
get-lru-window and get-largest-window. Add description of
window-in-direction.
2012-10-27 Glenn Morris <rgm@gnu.org>
* variables.texi (Generalized Variables): New section,
adapted from misc/cl.texi.
* elisp.texi (Top): Add Generalized Variables to menu.
* lists.texi (List Elements, List Variables):
Mention generalized variables.
* lists.texi (List Elements): Typo fix.
2012-10-27 Chong Yidong <cyd@gnu.org>
* minibuf.texi (High-Level Completion): Don't mention removed
function iswitchb-read-buffer.
* commands.texi (Event Input Misc): Remove last-input-char.
(Command Loop Info): Remove last-command-char.
* frames.texi (Initial Parameters): Don't mention the obsolete
special-display feature.
* windows.texi (Choosing Window): Don't mention the obsolete
special display feature.
(Choosing Window Options): Remove obsolete special-display
variables, and the functions special-display-p and
special-display-popup-frame.
* display.texi (Fringe Bitmaps): Add exclamation-mark bitmap.
* hooks.texi (Standard Hooks): Remove obsolete hooks.
* markers.texi (Information from Markers): Remove obsolete
function buffer-has-markers-at.
* text.texi (Yanking): Document yank-handled-properties.
2012-10-24 Paul Eggert <eggert@penguin.cs.ucla.edu>
Update manual for new time stamp format (Bug#12706).

View File

@ -71,9 +71,8 @@ been removed, including @code{display-buffer-overriding-action} and
related variables, as well as the @var{action} argument to
@code{display-buffer} and other functions. The way to
programmatically control how Emacs chooses a window to display a
buffer is to bind the right combination of
@code{special-display-regexps}, @code{pop-up-frames}, and other
variables.
buffer is to bind the right combination of @code{pop-up-frames} and
other variables.
@item
The standard completion interface has been simplified, eliminating the

View File

@ -186,7 +186,6 @@ buffer: } prompts the user with @samp{Frobnicate buffer: } to enter
the name of an existing buffer, which becomes the second and final
argument.
@c Emacs 19 feature
The prompt string can use @samp{%} to include previous argument values
(starting with the first argument) in the prompt. This is done using
@code{format} (@pxref{Formatting Strings}). For example, here is how
@ -205,7 +204,6 @@ If @samp{*} appears at the beginning of the string, then an error is
signaled if the buffer is read-only.
@cindex @samp{@@} in @code{interactive}
@c Emacs 19 feature
If @samp{@@} appears at the beginning of the string, and if the key
sequence used to invoke the command includes any mouse events, then
the window associated with the first of those events is selected
@ -910,7 +908,6 @@ up a menu. It is also used internally by @code{y-or-n-p}
@end defvar
@defvar last-command-event
@defvarx last-command-char
This variable is set to the last input event that was read by the
command loop as part of a command. The principal use of this variable
is in @code{self-insert-command}, which uses it to decide which
@ -926,11 +923,8 @@ last-command-event
@noindent
The value is 5 because that is the @acronym{ASCII} code for @kbd{C-e}.
The alias @code{last-command-char} is obsolete.
@end defvar
@c Emacs 19 feature
@defvar last-event-frame
This variable records which frame the last input event was directed to.
Usually this is the frame that was selected when the event was
@ -2386,7 +2380,6 @@ mouse on the window's mode line, you get two events, like this:
@end example
@defvar num-input-keys
@c Emacs 19 feature
This variable's value is the number of key sequences processed so far in
this Emacs session. This includes key sequences read from the terminal
and key sequences read from keyboard macros being executed.
@ -2539,7 +2532,6 @@ then continues to wait for a valid input character, or keyboard-quit.
@code{keyboard-translate-table} (if applicable), before returning it
from @code{read-event}.
@c Emacs 19 feature
@defvar extra-keyboard-modifiers
This variable lets Lisp programs ``press'' the modifier keys on the
keyboard. The value is a character. Only the modifiers of the
@ -2755,7 +2747,6 @@ may return @code{t} when no input is available.
@end defun
@defvar last-input-event
@defvarx last-input-char
This variable records the last terminal input event read, whether
as part of a command or explicitly by a Lisp program.
@ -2774,8 +2765,6 @@ this expression) remains the value of @code{last-command-event}.
@result{} 49
@end group
@end example
The alias @code{last-input-char} is obsolete.
@end defvar
@defmac while-no-input body@dots{}

View File

@ -578,7 +578,8 @@ that throw back to the editor command loop (@pxref{Recursive Editing}).
@b{Common Lisp note:} Most other versions of Lisp, including Common Lisp,
have several ways of transferring control nonsequentially: @code{return},
@code{return-from}, and @code{go}, for example. Emacs Lisp has only
@code{throw}.
@code{throw}. The @file{cl-lib} library provides versions of some of
these. @xref{Blocks and Exits,,,cl,Common Lisp Extensions}.
@end quotation
@defspec catch tag body@dots{}

View File

@ -3550,8 +3550,8 @@ Used to indicate buffer boundaries.
@itemx @code{vertical-bar}, @code{horizontal-bar}
Used for different types of fringe cursors.
@item @code{empty-line}, @code{question-mark}, @code{exclamation-mark}
Unused.
@item @code{empty-line}, @code{exclamation-mark}, @code{question-mark}, @code{exclamation-mark}
Not used by core Emacs features.
@end table
@noindent

View File

@ -486,6 +486,7 @@ Variables
* Variable Aliases:: Variables that are aliases for other variables.
* Variables with Restricted Values:: Non-constant variables whose value can
@emph{not} be an arbitrary Lisp object.
* Generalized Variables:: Extending the concept of variables.
Scoping Rules for Variable Bindings

View File

@ -65,7 +65,7 @@ circular structure is encountered. @xref{Circular Objects}.
@item cl-assertion-failed
The message is @samp{Assertion failed}. This happens when the
@code{assert} macro fails a test. @xref{Assertions,,, cl, Common Lisp
@code{cl-assert} macro fails a test. @xref{Assertions,,, cl, Common Lisp
Extensions}.
@item coding-system-error

View File

@ -450,12 +450,6 @@ Emacs Lisp with a reference to where each is described.
@item defconst
@pxref{Defining Variables}
@item defmacro
@pxref{Defining Macros}
@item defun
@pxref{Defining Functions}
@item defvar
@pxref{Defining Variables}
@ -492,9 +486,6 @@ Emacs Lisp with a reference to where each is described.
@item save-restriction
@pxref{Narrowing}
@item save-window-excursion
@pxref{Window Configurations}
@item setq
@pxref{Setting Variables}
@ -509,9 +500,6 @@ Emacs Lisp with a reference to where each is described.
@item while
@pxref{Iteration}
@item with-output-to-temp-buffer
@pxref{Temporary Displays}
@end table
@cindex CL note---special forms compared
@ -519,8 +507,7 @@ Emacs Lisp with a reference to where each is described.
@b{Common Lisp note:} Here are some comparisons of special forms in
GNU Emacs Lisp and Common Lisp. @code{setq}, @code{if}, and
@code{catch} are special forms in both Emacs Lisp and Common Lisp.
@code{defun} is a special form in Emacs Lisp, but a macro in Common
Lisp. @code{save-excursion} is a special form in Emacs Lisp, but
@code{save-excursion} is a special form in Emacs Lisp, but
doesn't exist in Common Lisp. @code{throw} is a special form in
Common Lisp (because it must be able to throw multiple values), but it
is a function in Emacs Lisp (which doesn't have multiple

View File

@ -437,13 +437,11 @@ Emacs frames---the first frame, and subsequent frames. When using the X
Window System, you can get the same results by means of X resources
in many cases.
Setting this variable does not affect existing frames.
Setting this variable does not affect existing frames. Furthermore,
functions that display a buffer in a separate frame may override the
default parameters by supplying their own parameters.
@end defopt
Functions that display a buffer in a separate frame can override the
default parameters by supplying their own parameters. @xref{Definition
of special-display-frame-alist}.
If you invoke Emacs with command-line options that specify frame
appearance, those options take effect by adding elements to either
@code{initial-frame-alist} or @code{default-frame-alist}. Options
@ -1495,8 +1493,9 @@ This function returns the visibility status of frame @var{frame}. The
value is @code{t} if @var{frame} is visible, @code{nil} if it is
invisible, and @code{icon} if it is iconified.
On a text terminal, all frames are considered visible, whether they
are currently being displayed or not.
On a text terminal, all frames are considered ``visible'' for the
purposes of this function, even though only one frame is displayed.
@xref{Raising and Lowering}.
@end defun
@deffn Command iconify-frame &optional frame
@ -1552,9 +1551,21 @@ If this is non-@code{nil}, activation of the minibuffer raises the frame
that the minibuffer window is in.
@end defopt
You can also enable auto-raise (raising automatically when a frame is
selected) or auto-lower (lowering automatically when it is deselected)
for any frame using frame parameters. @xref{Management Parameters}.
On window systems, you can also enable auto-raising (on frame
selection) or auto-lowering (on frame deselection) using frame
parameters. @xref{Management Parameters}.
@cindex top frame
The concept of raising and lowering frames also applies to text
terminal frames. On each text terminal, only the top frame is
displayed at any one time.
@defun tty-top-frame terminal
This function returns the top frame on @var{terminal}. @var{terminal}
should be a terminal object, a frame (meaning that frame's terminal),
or @code{nil} (meaning the selected frame's terminal). If it does not
refer to a text terminal, the return value is @code{nil}.
@end defun
@node Frame Configurations
@section Frame Configurations

View File

@ -520,7 +520,7 @@ Scheme.)
We usually give a name to a function when it is first created. This
is called @dfn{defining a function}, and it is done with the
@code{defun} special form.
@code{defun} macro.
@defmac defun name args [doc] [declare] [interactive] body@dots{}
@code{defun} is the usual way to define new Lisp functions. It
@ -583,7 +583,7 @@ redefinition from unintentional redefinition.
@cindex function aliases
@defun defalias name definition &optional doc
@anchor{Definition of defalias}
This special form defines the symbol @var{name} as a function, with
This function defines the symbol @var{name} as a function, with
definition @var{definition} (which can be any valid Lisp function).
Its return value is @emph{undefined}.

View File

@ -120,14 +120,7 @@ The command loop runs this soon after @code{post-command-hook} (q.v.).
@item delete-terminal-functions
@xref{Multiple Terminals}.
@ignore
@item disabled-command-function
@xref{Disabling Commands}.
@end ignore
@item display-buffer-function
@itemx pop-up-frame-function
@itemx special-display-function
@itemx split-window-preferred-function
@xref{Choosing Window Options}.
@ -272,7 +265,6 @@ deferred-action-function
input-method-function
load-read-function
load-source-file-function
macro-declaration-function
read-buffer-function
ring-bell-function
select-safe-coding-system-function

View File

@ -210,6 +210,11 @@ Aside from elements that specify bindings for keys, a keymap can also
have a string as an element. This is called the @dfn{overall prompt
string} and makes it possible to use the keymap as a menu.
@xref{Defining Menus}.
@item (keymap @dots{})
If an element of a keymap is itself a keymap, it counts as if this inner keymap
were inlined in the outer keymap. This is used for multiple-inheritance, such
as in @code{make-composed-keymap}.
@end table
When the binding is @code{nil}, it doesn't constitute a definition

View File

@ -236,6 +236,10 @@ This is in contrast to @code{cdr}, which signals an error if
@defmac pop listname
This macro is a way of examining the @sc{car} of a list,
and taking it off the list, all at once.
@c FIXME I don't think is a particularly good way to do it,
@c but generalized variables have not been introduced yet.
(In fact, this macro can act on generalized variables, not just lists.
@xref{Generalized Variables}.)
It operates on the list which is stored in the symbol @var{listname}.
It removes this element from the list by setting @var{listname}
@ -252,7 +256,7 @@ x
@end example
@noindent
For the @code{pop} macro, which removes an element from a list,
For the @code{push} macro, which adds an element to a list,
@xref{List Variables}.
@end defmac
@ -682,6 +686,10 @@ to modify a list which is stored in a variable.
@defmac push newelt listname
This macro provides an alternative way to write
@code{(setq @var{listname} (cons @var{newelt} @var{listname}))}.
@c FIXME I don't think is a particularly good way to do it,
@c but generalized variables have not been introduced yet.
(In fact, this macro can act on generalized variables, not just lists.
@xref{Generalized Variables}.)
@example
(setq l '(a b))
@ -1267,7 +1275,8 @@ functions for sets include @code{memq} and @code{delq}, and their
@b{Common Lisp note:} Common Lisp has functions @code{union} (which
avoids duplicate elements) and @code{intersection} for set operations.
Although standard GNU Emacs Lisp does not have them, the @file{cl-lib}
library provides versions. @xref{Top,, Overview, cl, Common Lisp Extensions}.
library provides versions.
@xref{Lists as Sets,,, cl, Common Lisp Extensions}.
@end quotation
@defun memq object list

View File

@ -408,9 +408,9 @@ to load automatically from @var{filename}. The string @var{filename}
specifies the file to load to get the real definition of @var{function}.
If @var{filename} does not contain either a directory name, or the
suffix @code{.el} or @code{.elc}, then @code{autoload} insists on adding
one of these suffixes, and it will not load from a file whose name is
just @var{filename} with no added suffix. (The variable
suffix @code{.el} or @code{.elc}, this function insists on adding one
of these suffixes, and it will not load from a file whose name is just
@var{filename} with no added suffix. (The variable
@code{load-suffixes} specifies the exact required suffixes.)
The argument @var{docstring} is the documentation string for the
@ -442,10 +442,11 @@ and calls @code{define-key}; not even if the variable name is the same
symbol @var{function}.
@cindex function cell in autoload
If @var{function} already has a non-void function definition that is not
an autoload object, @code{autoload} does nothing and returns @code{nil}.
If the function cell of @var{function} is void, or is already an autoload
object, then it is defined as an autoload object like this:
if @var{function} already has non-void function definition that is not
an autoload object, this function does nothing and returns @code{nil}.
Otherwise, it constructs an autoload object (@pxref{Autoload Type}),
and stores it as the function definition for @var{function}. The
autoload object has this form:
@example
(autoload @var{filename} @var{docstring} @var{interactive} @var{type})
@ -468,6 +469,16 @@ refers to the documentation string in the
not a macro or a keymap.
@end defun
@defun autoloadp object
This function returns non-@code{nil} if @var{object} is an autoload
object. For example, to check if @code{run-prolog} is defined as an
autoloaded function, evaluate
@smallexample
(autoloadp (symbol-function 'run-prolog))
@end smallexample
@end defun
@cindex autoload errors
The autoloaded file usually contains other definitions and may require
or provide one or more features. If the file is not completely loaded
@ -509,9 +520,9 @@ the following:
@table @asis
@item Definitions for function or function-like objects:
@code{defun} and @code{defmacro}; also @code{defun*} and
@code{defmacro*} (@pxref{Argument Lists,,,cl,CL Manual}), and
@code{define-overloadable-function} (see the commentary in
@code{defun} and @code{defmacro}; also @code{cl-defun} and
@code{cl-defmacro} (@pxref{Argument Lists,,,cl,Common Lisp Extensions}),
and @code{define-overloadable-function} (see the commentary in
@file{mode-local.el}).
@item Definitions for major or minor modes:
@ -599,6 +610,19 @@ override that, e.g., in the ``Local Variables'' section of a
assumed to contain a trailer starting with a formfeed character.
@end defvar
The following function may be used to explicitly load the library
specified by an autoload object:
@defun autoload-do-load autoload &optional name macro-only
This function performs the loading specified by @var{autoload}, which
should be an autoload object. The optional argument @var{name}, if
non-@code{nil}, should be a symbol whose function value is
@var{autoload}; in that case, the return value of this function is the
symbol's new function value. If the value of the optional argument
@var{macro-only} is @code{macro}, this function avoids loading a
function, only a macro.
@end defun
@node Repeated Loading
@section Repeated Loading
@cindex repeated loading

View File

@ -307,11 +307,6 @@ This function returns the buffer that @var{marker} points into, or
@end example
@end defun
@defun buffer-has-markers-at position
This function returns @code{t} if one or more markers
point at position @var{position} in the current buffer.
@end defun
@node Marker Insertion Types
@section Marker Insertion Types

View File

@ -1218,11 +1218,9 @@ Buffer name (default foo): @point{}
@end defun
@defopt read-buffer-function
This variable specifies how to read buffer names. The function is
called with the arguments passed to @code{read-buffer}. For example,
if you set this variable to @code{iswitchb-read-buffer}, all Emacs
commands that call @code{read-buffer} to read a buffer name will
actually use the @code{iswitchb} package to read it.
This variable, if non-@code{nil}, specifies a function for reading
buffer names. @code{read-buffer} calls this function instead of doing
its usual work, with the same arguments passed to @code{read-buffer}.
@end defopt
@defopt read-buffer-completion-ignore-case

View File

@ -1595,7 +1595,7 @@ of the mode. If you specify this, the @var{mode} variable is not
defined, and any @var{init-value} argument is unused. @var{place}
can be a different named variable (which you must define yourself), or
anything that can be used with the @code{setf} function
(@pxref{Generalized Variables,,, cl, Common Lisp Extensions}).
(@pxref{Generalized Variables}).
@var{place} can also be a cons @code{(@var{get} . @var{set})},
where @var{get} is an expression that returns the current state,
and @var{set} is a function of one argument (a state) that sets it.

View File

@ -351,51 +351,48 @@ following text.)
control characters, Emacs provides several types of escape syntax that
you can use to specify non-@acronym{ASCII} text characters.
@cindex unicode character escape
You can specify characters by their Unicode values.
@code{?\u@var{nnnn}} represents a character that maps to the Unicode
code point @samp{U+@var{nnnn}} (by convention, Unicode code points are
given in hexadecimal). There is a slightly different syntax for
specifying characters with code points higher than
@code{U+@var{ffff}}: @code{\U00@var{nnnnnn}} represents the character
whose code point is @samp{U+@var{nnnnnn}}. The Unicode Standard only
defines code points up to @samp{U+@var{10ffff}}, so if you specify a
code point higher than that, Emacs signals an error.
This peculiar and inconvenient syntax was adopted for compatibility
with other programming languages. Unlike some other languages, Emacs
Lisp supports this syntax only in character literals and strings.
@cindex @samp{\} in character constant
@cindex backslash in character constants
@cindex octal character code
The most general read syntax for a character represents the
character code in either octal or hex. To use octal, write a question
mark followed by a backslash and the octal character code (up to three
octal digits); thus, @samp{?\101} for the character @kbd{A},
@samp{?\001} for the character @kbd{C-a}, and @code{?\002} for the
character @kbd{C-b}. Although this syntax can represent any
@acronym{ASCII} character, it is preferred only when the precise octal
value is more important than the @acronym{ASCII} representation.
@cindex unicode character escape
Firstly, you can specify characters by their Unicode values.
@code{?\u@var{nnnn}} represents a character with Unicode code point
@samp{U+@var{nnnn}}, where @var{nnnn} is (by convention) a hexadecimal
number with exactly four digits. The backslash indicates that the
subsequent characters form an escape sequence, and the @samp{u}
specifies a Unicode escape sequence.
@example
@group
?\012 @result{} 10 ?\n @result{} 10 ?\C-j @result{} 10
?\101 @result{} 65 ?A @result{} 65
@end group
@end example
There is a slightly different syntax for specifying Unicode
characters with code points higher than @code{U+@var{ffff}}:
@code{?\U00@var{nnnnnn}} represents the character with code point
@samp{U+@var{nnnnnn}}, where @var{nnnnnn} is a six-digit hexadecimal
number. The Unicode Standard only defines code points up to
@samp{U+@var{10ffff}}, so if you specify a code point higher than
that, Emacs signals an error.
To use hex, write a question mark followed by a backslash, @samp{x},
and the hexadecimal character code. You can use any number of hex
digits, so you can represent any character code in this way.
Thus, @samp{?\x41} for the character @kbd{A}, @samp{?\x1} for the
character @kbd{C-a}, and @code{?\xe0} for the Latin-1 character
Secondly, you can specify characters by their hexadecimal character
codes. A hexadecimal escape sequence consists of a backslash,
@samp{x}, and the hexadecimal character code. Thus, @samp{?\x41} is
the character @kbd{A}, @samp{?\x1} is the character @kbd{C-a}, and
@code{?\xe0} is the character
@iftex
@samp{@`a}.
@end iftex
@ifnottex
@samp{a} with grave accent.
@end ifnottex
You can use any number of hex digits, so you can represent any
character code in this way.
@cindex octal character code
Thirdly, you can specify characters by their character code in
octal. An octal escape sequence consists of a backslash followed by
up to three octal digits; thus, @samp{?\101} for the character
@kbd{A}, @samp{?\001} for the character @kbd{C-a}, and @code{?\002}
for the character @kbd{C-b}. Only characters up to octal code 777 can
be specified this way.
These escape sequences may also be used in strings. @xref{Non-ASCII
in Strings}.
@node Ctl-Char Syntax
@subsubsection Control-Character Syntax
@ -1026,40 +1023,53 @@ but the newline is ignored if escaped."
@node Non-ASCII in Strings
@subsubsection Non-@acronym{ASCII} Characters in Strings
You can include a non-@acronym{ASCII} international character in a
string constant by writing it literally. There are two text
representations for non-@acronym{ASCII} characters in Emacs strings
(and in buffers): unibyte and multibyte (@pxref{Text
Representations}). If the string constant is read from a multibyte
source, such as a multibyte buffer or string, or a file that would be
visited as multibyte, then Emacs reads the non-@acronym{ASCII}
character as a multibyte character and automatically makes the string
a multibyte string. If the string constant is read from a unibyte
source, then Emacs reads the non-@acronym{ASCII} character as unibyte,
and makes the string unibyte.
There are two text representations for non-@acronym{ASCII}
characters in Emacs strings: multibyte and unibyte (@pxref{Text
Representations}). Roughly speaking, unibyte strings store raw bytes,
while multibyte strings store human-readable text. Each character in
a unibyte string is a byte, i.e.@: its value is between 0 and 255. By
contrast, each character in a multibyte string may have a value
between 0 to 4194303 (@pxref{Character Type}). In both cases,
characters above 127 are non-@acronym{ASCII}.
Instead of writing a non-@acronym{ASCII} character literally into a
multibyte string, you can write it as its character code using a hex
escape, @samp{\x@var{nnnnnnn}}, with as many digits as necessary.
(Multibyte non-@acronym{ASCII} character codes are all greater than
256.) You can also specify a character in a multibyte string using
the @samp{\u} or @samp{\U} Unicode escape syntax (@pxref{General
Escape Syntax}). In either case, any character which is not a valid
hex digit terminates the construct. If the next character in the
string could be interpreted as a hex digit, write @w{@samp{\ }}
(backslash and space) to terminate the hex escape---for example,
You can include a non-@acronym{ASCII} character in a string constant
by writing it literally. If the string constant is read from a
multibyte source, such as a multibyte buffer or string, or a file that
would be visited as multibyte, then Emacs reads each
non-@acronym{ASCII} character as a multibyte character and
automatically makes the string a multibyte string. If the string
constant is read from a unibyte source, then Emacs reads the
non-@acronym{ASCII} character as unibyte, and makes the string
unibyte.
Instead of writing a character literally into a multibyte string,
you can write it as its character code using an escape sequence.
@xref{General Escape Syntax}, for details about escape sequences.
If you use any Unicode-style escape sequence @samp{\uNNNN} or
@samp{\U00NNNNNN} in a string constant (even for an @acronym{ASCII}
character), Emacs automatically assumes that it is multibyte.
You can also use hexadecimal escape sequences (@samp{\x@var{n}}) and
octal escape sequences (@samp{\@var{n}}) in string constants.
@strong{But beware:} If a string constant contains hexadecimal or
octal escape sequences, and these escape sequences all specify unibyte
characters (i.e.@: less than 256), and there are no other literal
non-@acronym{ASCII} characters or Unicode-style escape sequences in
the string, then Emacs automatically assumes that it is a unibyte
string. That is to say, it assumes that all non-@acronym{ASCII}
characters occurring in the string are 8-bit raw bytes.
In hexadecimal and octal escape sequences, the escaped character
code may contain a variable number of digits, so the first subsequent
character which is not a valid hexadecimal or octal digit terminates
the escape sequence. If the next character in a string could be
interpreted as a hexadecimal or octal digit, write @w{@samp{\ }}
(backslash and space) to terminate the escape sequence. For example,
@w{@samp{\xe0\ }} represents one character, @samp{a} with grave
accent. @w{@samp{\ }} in a string constant is just like
backslash-newline; it does not contribute any character to the string,
but it does terminate the preceding hex escape. Using any hex escape
in a string (even for an @acronym{ASCII} character) automatically
forces the string to be multibyte.
You can represent a unibyte non-@acronym{ASCII} character with its
character code, which must be in the range from 128 (0200 octal) to
255 (0377 octal). If you write all such character codes in octal and
the string contains no other characters forcing it to be multibyte,
this produces a unibyte string.
but it does terminate any preceding hex escape.
@node Nonprinting Characters
@subsubsection Nonprinting Characters in Strings

View File

@ -487,6 +487,12 @@ using @code{eq}, so any object is a legitimate property.
See @code{put} for an example.
@end defun
@defun function-get symbol property
This function is identical to @code{get}, except that if @var{symbol}
is the name of a function alias, it looks in the property list of the
symbol naming the actual function. @xref{Defining Functions}.
@end defun
@defun put symbol property value
This function puts @var{value} onto @var{symbol}'s property list under
the property name @var{property}, replacing any previous property value.

View File

@ -899,31 +899,34 @@ In Lisp programs, it is better to use @code{kill-new} or
@node Yanking
@subsection Yanking
Yanking means inserting text from the kill ring, but it does
not insert the text blindly. Yank commands and some other commands
use @code{insert-for-yank} to perform special processing on the
text that they copy into the buffer.
Yanking means inserting text from the kill ring, but it does not
insert the text blindly. The @code{yank} command, and related
commands, use @code{insert-for-yank} to perform special processing on
the text before it is inserted.
@defun insert-for-yank string
This function normally works like @code{insert} except that it doesn't
insert the text properties (@pxref{Text Properties}) in the list
variable @code{yank-excluded-properties}. However, if any part of
@var{string} has a non-@code{nil} @code{yank-handler} text property,
that property can do various special processing on that part of the
text being inserted.
This function works like @code{insert}, except that it processes the
text in @var{string} according to the @code{yank-handler} text
property, as well as the variables @code{yank-handled-properties} and
@code{yank-excluded-properties} (see below), before inserting the
result into the current buffer.
@end defun
@defun insert-buffer-substring-as-yank buf &optional start end
This function resembles @code{insert-buffer-substring} except that it
doesn't insert the text properties in the
@code{yank-excluded-properties} list.
This function resembles @code{insert-buffer-substring}, except that it
processes the text according to @code{yank-handled-properties} and
@code{yank-excluded-properties}. (It does not handle the
@code{yank-handler} property, which does not normally occur in buffer
text anyway.)
@end defun
You can put a @code{yank-handler} text property on all or part of
the text to control how it will be inserted if it is yanked. The
@code{insert-for-yank} function looks for that property. The property
value must be a list of one to four elements, with the following
format (where elements after the first may be omitted):
If you put a @code{yank-handler} text property on all or part of a
string, that alters how @code{insert-for-yank} inserts the string. If
different parts of the string have different @code{yank-handler}
values (comparison being done with @code{eq}), each substring is
handled separately. The property value must be a list of one to four
elements, with the following format (where elements after the first
may be omitted):
@example
(@var{function} @var{param} @var{noexclude} @var{undo})
@ -933,22 +936,21 @@ format (where elements after the first may be omitted):
@table @var
@item function
When @var{function} is present and non-@code{nil}, it is called instead of
@code{insert} to insert the string. @var{function} takes one
argument---the string to insert.
When @var{function} is non-@code{nil}, it is called instead of
@code{insert} to insert the string, with one argument---the string to
insert.
@item param
If @var{param} is present and non-@code{nil}, it replaces @var{string}
(or the part of @var{string} being processed) as the object passed to
@var{function} (or @code{insert}); for example, if @var{function} is
@code{yank-rectangle}, @var{param} should be a list of strings to
insert as a rectangle.
(or the substring of @var{string} being processed) as the object
passed to @var{function} (or @code{insert}). For example, if
@var{function} is @code{yank-rectangle}, @var{param} should be a list
of strings to insert as a rectangle.
@item noexclude
If @var{noexclude} is present and non-@code{nil}, the normal removal of the
yank-excluded-properties is not performed; instead @var{function} is
responsible for removing those properties. This may be necessary
if @var{function} adjusts point before or after inserting the object.
If @var{noexclude} is present and non-@code{nil}, that disables the
normal action of @code{yank-handled-properties} and
@code{yank-excluded-properties} on the inserted string.
@item undo
If @var{undo} is present and non-@code{nil}, it is a function that will be
@ -959,14 +961,29 @@ the @var{undo} value.
@end table
@cindex yanking and text properties
@defopt yank-excluded-properties
Yanking discards certain text properties from the yanked text, as
described above. The value of this variable is the list of properties
to discard. Its default value contains properties that might lead to
annoying results, such as causing the text to respond to the mouse or
specifying key bindings.
@defopt yank-handled-properties
This variable specifies special text property handling conditions for
yanked text. It takes effect after the text has been inserted (either
normally, or via the @code{yank-handler} property), and prior to
@code{yank-excluded-properties} taking effect.
The value should be an alist of elements @code{(@var{prop}
. @var{fun})}. Each alist element is handled in order. The inserted
text is scanned for stretches of text having text properties @code{eq}
to @var{prop}; for each such stretch, @var{fun} is called with three
arguments: the value of the property, and the start and end positions
of the text.
@end defopt
@defopt yank-excluded-properties
The value of this variable is the list of properties to remove from
inserted text. Its default value contains properties that might lead
to annoying results, such as causing the text to respond to the mouse
or specifying key bindings. It takes effect after
@code{yank-handled-properties}.
@end defopt
@node Yank Commands
@subsection Functions for Yanking

View File

@ -41,6 +41,7 @@ representing the variable.
* Variable Aliases:: Variables that are aliases for other variables.
* Variables with Restricted Values:: Non-constant variables whose value can
@emph{not} be an arbitrary Lisp object.
* Generalized Variables:: Extending the concept of variables.
@end menu
@node Global Variables
@ -1946,3 +1947,105 @@ Attempting to assign them any other value will result in an error:
(setq undo-limit 1000.0)
@error{} Wrong type argument: integerp, 1000.0
@end example
@c FIXME? Not sure this is the right place for this section.
@node Generalized Variables
@section Generalized Variables
A @dfn{generalized variable} or @dfn{place form} is one of the many places
in Lisp memory where values can be stored. The simplest place form is
a regular Lisp variable. But the @sc{car}s and @sc{cdr}s of lists, elements
of arrays, properties of symbols, and many other locations are also
places where Lisp values are stored.
@c FIXME? Not sure this is a useful analogy...
Generalized variables are analogous to ``lvalues'' in the C
language, where @samp{x = a[i]} gets an element from an array
and @samp{a[i] = x} stores an element using the same notation.
Just as certain forms like @code{a[i]} can be lvalues in C, there
is a set of forms that can be generalized variables in Lisp.
The @code{setf} macro is the most basic way to operate on generalized
variables. The @code{setf} form is like @code{setq}, except that it
accepts arbitrary place forms on the left side rather than just
symbols. For example, @code{(setf (car a) b)} sets the car of
@code{a} to @code{b}, doing the same operation as @code{(setcar a b)},
but without having to remember two separate functions for setting and
accessing every type of place.
@defmac setf [place form]@dots{}
This macro evaluates @var{form} and stores it in @var{place}, which
must be a valid generalized variable form. If there are several
@var{place} and @var{form} pairs, the assignments are done sequentially
just as with @code{setq}. @code{setf} returns the value of the last
@var{form}.
@end defmac
The following Lisp forms will work as generalized variables, and
so may appear in the @var{place} argument of @code{setf}:
@itemize
@item
A symbol naming a variable. In other words, @code{(setf x y)} is
exactly equivalent to @code{(setq x y)}, and @code{setq} itself is
strictly speaking redundant given that @code{setf} exists. Many
programmers continue to prefer @code{setq} for setting simple
variables, though, purely for stylistic or historical reasons.
The macro @code{(setf x y)} actually expands to @code{(setq x y)},
so there is no performance penalty for using it in compiled code.
@item
A call to any of the following standard Lisp functions:
@smallexample
car cdr nth nthcdr
caar cadr cdar cddr
aref elt get gethash
symbol-function symbol-value symbol-plist
@end smallexample
@item
The following Emacs-specific functions are also @code{setf}-able:
@smallexample
default-value process-get
frame-parameter process-sentinel
terminal-parameter window-buffer
keymap-parent window-display-table
match-data window-dedicated-p
overlay-get window-hscroll
overlay-start window-parameter
overlay-end window-point
process-buffer window-start
process-filter
@end smallexample
@end itemize
@noindent
Using any forms other than these in the @var{place} argument to
@code{setf} will signal an error.
@c And for cl-lib's cl-getf.
Note that for @code{nthcdr}, the list argument of the function must
itself be a valid @var{place} form. For example, @code{(setf (nthcdr
0 foo) 7)} will set @code{foo} itself to 7.
@c The use of @code{nthcdr} as a @var{place} form is an extension
@c to standard Common Lisp.
@c FIXME I don't think is a particularly good way to do it,
@c but these macros are introduced before generalized variables are.
The macros @code{push} (@pxref{List Variables}) and @code{pop}
(@pxref{List Elements}) can manipulate generalized variables,
not just lists. @code{(pop @var{place})} removes and returns the first
element of the list stored in @var{place}. It is analogous to
@code{(prog1 (car @var{place}) (setf @var{place} (cdr @var{place})))},
except that it takes care to evaluate all subforms only once.
@code{(push @var{x} @var{place})} inserts @var{x} at the front of
the list stored in @var{place}. It is analogous to @code{(setf
@var{place} (cons @var{x} @var{place}))}, except for evaluation of the
subforms. Note that @code{push} and @code{pop} on an @code{nthcdr}
place can be used to insert or delete at any position in a list.
The @file{cl-lib} library defines various extensions for generalized
variables, including additional @code{setf} places.
@xref{Generalized Variables,,, cl, Common Lisp Extensions}.

View File

@ -76,30 +76,35 @@ within the area of the frame. When a window is created, resized, or
deleted, the change in window space is taken from or given to the
adjacent windows, so that the total area of the frame is unchanged.
@cindex live windows
@cindex internal windows
A @dfn{live window} is one that is actually displaying a buffer in a
frame. Such a window can be @dfn{deleted}, i.e. removed from the
frame (@pxref{Deleting Windows}); then it is no longer live, but the
Lisp object representing it might be still referenced from other Lisp
objects. A deleted window may be brought back to life by restoring a
saved window configuration (@pxref{Window Configurations}).
@defun windowp object
This function returns @code{t} if @var{object} is a window (whether or
not it is live). Otherwise, it returns @code{nil}.
not it displays a buffer). Otherwise, it returns @code{nil}.
@end defun
@cindex live windows
A @dfn{live window} is one that is actually displaying a buffer in a
frame.
@defun window-live-p object
This function returns @code{t} if @var{object} is a live window and
@code{nil} otherwise. A live window is one that displays a buffer.
@end defun
The windows in each frame are organized into a @dfn{window tree}.
@xref{Windows and Frames}. The leaf nodes of each window tree are
live windows---the ones actually displaying buffers. The internal
nodes of the window tree are internal windows, which are not live.
You can distinguish internal windows from deleted windows with
@cindex internal windows
The windows in each frame are organized into a @dfn{window tree}.
@xref{Windows and Frames}. The leaf nodes of each window tree are live
windows---the ones actually displaying buffers. The internal nodes of
the window tree are @dfn{internal windows}, which are not live.
@cindex valid windows
A @dfn{valid window} is one that is either live or internal. A valid
window can be @dfn{deleted}, i.e. removed from its frame
(@pxref{Deleting Windows}); then it is no longer valid, but the Lisp
object representing it might be still referenced from other Lisp
objects. A deleted window may be made valid again by restoring a saved
window configuration (@pxref{Window Configurations}).
You can distinguish valid windows from deleted windows with
@code{window-valid-p}.
@defun window-valid-p object
@ -1317,31 +1322,37 @@ meaning as for @code{next-window}.
criterion, without selecting it:
@cindex least recently used window
@defun get-lru-window &optional all-frames dedicated
@defun get-lru-window &optional all-frames dedicated not-selected
This function returns a live window which is heuristically the ``least
recently used'' window. The optional argument @var{all-frames} has
the same meaning as in @code{next-window}.
If any full-width windows are present, only those windows are
considered. The selected window is never returned, unless it is the
only candidate. A minibuffer window is never a candidate. A
dedicated window (@pxref{Dedicated Windows}) is never a candidate
unless the optional argument @var{dedicated} is non-@code{nil}.
considered. A minibuffer window is never a candidate. A dedicated
window (@pxref{Dedicated Windows}) is never a candidate unless the
optional argument @var{dedicated} is non-@code{nil}. The selected
window is never returned, unless it is the only candidate. However, if
the optional argument @var{not-selected} is non-@code{nil}, this
function returns @code{nil} in that case.
@end defun
@cindex largest window
@defun get-largest-window &optional all-frames dedicated
@defun get-largest-window &optional all-frames dedicated not-selected
This function returns the window with the largest area (height times
width). A minibuffer window is never a candidate. A dedicated window
width). The optional argument @var{all-frames} specifies the windows to
search, and has the same meaning as in @code{next-window}.
A minibuffer window is never a candidate. A dedicated window
(@pxref{Dedicated Windows}) is never a candidate unless the optional
argument @var{dedicated} is non-@code{nil}.
argument @var{dedicated} is non-@code{nil}. The selected window is not
a candidate if the optional argument @var{not-selected} is
non-@code{nil}. If the optional argument @var{not-selected} is
non-@code{nil} and the selected window is the only candidate, this
function returns @code{nil}.
If there are two candidate windows of the same size, this function
prefers the one that comes first in the cyclic ordering of windows,
starting from the selected window.
The optional argument @var{all-frames} specifies the windows to
search, and has the same meaning as in @code{next-window}.
@end defun
@cindex window that satisfies a predicate
@ -1359,6 +1370,26 @@ windows to search, and have the same meanings as in
@code{next-window}.
@end defun
@cindex window in direction
@defun window-in-direction direction &optional window ignore
This function returns the nearest window in direction @var{direction} as
seen from the position of @code{window-point} in window @var{window}.
The argument @var{direction} must be one of @code{above}, @code{below},
@code{left} or @code{right}. The optional argument @var{window} must
denote a live window and defaults to the selected one.
This function does not return a window whose @code{no-other-window}
parameter is non-@code{nil}. If the nearest window's
@code{no-other-window} parameter is non-@code{nil}, this function tries
to find another window in the indicated direction whose
@code{no-other-window} parameter is @code{nil}. If the optional
argument @var{ignore} is non-@code{nil}, a window may be returned even
if its @code{no-other-window} parameter is non-@code{nil}.
If it doesn't find a suitable window, this function returns @code{nil}.
@end defun
@node Buffers and Windows
@section Buffers and Windows
@cindex examining windows
@ -1519,6 +1550,26 @@ normally tries to display the buffer in some other window, by invoking
instead.
@end deffn
By default, @code{switch-to-buffer} sets @code{window-point} of the
window used to the buffer's position of @code{point}. This behavior can
be tuned using the following option.
@defopt switch-to-buffer-preserve-window-point
If this variable is @code{nil}, @code{switch-to-buffer} displays the
buffer specified by @var{buffer-or-name} at the position of that
buffer's @code{point}. If this variable is @code{already-displayed}, it
tries to display the buffer at its previous position in the selected
window, provided the buffer is currently displayed in some other window
on any visible or iconified frame. If this variable is @code{t},
@code{switch-to-buffer} unconditionally tries to display the buffer at
its previous position in the selected window.
This variable is ignored if the buffer is already displayed in the
selected window or never appeared in it before, or if
@code{switch-to-buffer} calls @code{pop-to-buffer} to display the
buffer.
@end defopt
The next two functions are similar to @code{switch-to-buffer}, except
for the described features.
@ -1631,11 +1682,6 @@ The variable @code{display-buffer-overriding-action}.
@item
The user option @code{display-buffer-alist}.
@item
A special action for handling @code{special-display-buffer-names} and
@code{special-display-regexps}, if either of those variables is
non-@code{nil}. @xref{Choosing Window Options}.
@item
The @var{action} argument.
@ -1749,9 +1795,51 @@ It actually performs the split by calling the function specified in
@code{split-window-preferred-function} (@pxref{Choosing Window
Options}).
It can fail if no window splitting can be performed for some reason
(e.g. if there is just one frame and it has an @code{unsplittable}
frame parameter; @pxref{Buffer Parameters}).
The size of the new window can be adjusted by supplying
@code{window-height} and @code{window-width} entries in @var{alist}. To
adjust the window's height, use an entry whose @sc{car} is
@code{window-height} and whose @sc{cdr} is one of:
@itemize @bullet
@item
@code{nil} means to leave the height of the new window alone.
@item
A number specifies the desired height of the new window. An integer
number specifies the number of lines of the window. A floating point
number gives the fraction of the window's height with respect to the
height of the frame's root window.
@item
If the @sc{cdr} specifies a function, that function is called with one
argument - the new window. The function is supposed to adjust the
height of the window; its return value is ignored. Suitable functions
are @code{shrink-window-if-larger-than-buffer} and
@code{fit-window-to-buffer}, see @ref{Resizing Windows}.
@end itemize
To adjust the window's width, use an entry whose @sc{car} is
@code{window-width} and whose @sc{cdr} is one of:
@itemize @bullet
@item
@code{nil} means to leave the width of the new window alone.
@item
A number specifies the desired width of the new window. An integer
number specifies the number of columns of the window. A floating point
number gives the fraction of the window's width with respect to the
width of the frame's root window.
@item
If the @sc{cdr} specifies a function, that function is called with one
argument - the new window. The function is supposed to adjust the width
of the window; its return value is ignored.
@end itemize
This function can fail if no window splitting can be performed for some
reason (e.g. if there is just one frame and it has an
@code{unsplittable} frame parameter; @pxref{Buffer Parameters}).
@end defun
@defun display-buffer-use-some-window buffer alist
@ -1760,6 +1848,26 @@ window and displaying the buffer in that window. It can fail if all
windows are dedicated to another buffer (@pxref{Dedicated Windows}).
@end defun
@defun display-buffer-below-selected buffer alist
This function tries to display @var{buffer} in a window below the
selected window. This means to either split the selected window or
reuse the window below the selected one.
@end defun
@defun display-buffer-in-previous-window buffer alist
This function tries to display @var{buffer} in a window previously
showing it. If @var{alist} has a non-@code{nil}
@code{inhibit-same-window} entry, the selected window is not eligible
for reuse. If @var{alist} contains a @code{reusable-frames} entry, its
value determines which frames to search for a suitable window as with
@code{display-buffer-reuse-window}.
If @var{alist} has a @code{previous-window} entry, the window
specified by that entry will override any other window found by the
methods above, even if that window never showed @var{buffer} before.
@end defun
@node Choosing Window Options
@section Additional Options for Displaying Buffers
@ -1864,91 +1972,6 @@ Parameters}), which is used by the default function in
@code{nil}.
@end defopt
@defopt special-display-buffer-names
A list of buffer names identifying buffers that should be displayed
specially. If the name of @var{buffer-or-name} is in this list,
@code{display-buffer} handles the buffer specially. By default, special
display means to give the buffer a dedicated frame.
If an element is a list, instead of a string, then the @sc{car} of that
list is the buffer name, and the rest of that list says how to create
the frame. There are two possibilities for the rest of that list (its
@sc{cdr}): It can be an alist, specifying frame parameters, or it can
contain a function and arguments to give to it. (The function's first
argument is always the buffer to be displayed; the arguments from the
list come after that.)
For example:
@example
(("myfile" (minibuffer) (menu-bar-lines . 0)))
@end example
@noindent
specifies to display a buffer named @samp{myfile} in a dedicated frame
with specified @code{minibuffer} and @code{menu-bar-lines} parameters.
The list of frame parameters can also use the phony frame parameters
@code{same-frame} and @code{same-window}. If the specified frame
parameters include @code{(same-window . @var{value})} and @var{value}
is non-@code{nil}, that means to display the buffer in the current
selected window. Otherwise, if they include @code{(same-frame .
@var{value})} and @var{value} is non-@code{nil}, that means to display
the buffer in a new window in the currently selected frame.
@end defopt
@defopt special-display-regexps
A list of regular expressions specifying buffers that should be
displayed specially. If the buffer's name matches any of the regular
expressions in this list, @code{display-buffer} handles the buffer
specially. By default, special display means to give the buffer a
dedicated frame.
If an element is a list, instead of a string, then the @sc{car} of the
list is the regular expression, and the rest of the list says how to
create the frame. See @code{special-display-buffer-names} above.
@end defopt
@defun special-display-p buffer-name
This function returns non-@code{nil} if displaying a buffer
named @var{buffer-name} with @code{display-buffer} would
create a special frame. The value is @code{t} if it would
use the default frame parameters, or else the specified list
of frame parameters.
@end defun
@defopt special-display-function
This variable holds the function to call to display a buffer specially.
It receives the buffer as an argument, and should return the window in
which it is displayed. The default value of this variable is
@code{special-display-popup-frame}, see below.
@end defopt
@defun special-display-popup-frame buffer &optional args
This function tries to make @var{buffer} visible in a frame of its own.
If @var{buffer} is already displayed in some window, it makes that
window's frame visible and raises it. Otherwise, it creates a frame
that is dedicated to @var{buffer}. The return value is the window used
to display @var{buffer}.
If @var{args} is an alist, it specifies frame parameters for the new
frame. If @var{args} is a list whose @sc{car} is a symbol, then
@code{(car @var{args})} is a function to actually create and
set up the frame; it is called with @var{buffer} as first argument, and
@code{(cdr @var{args})} as additional arguments.
This function always uses an existing window displaying @var{buffer},
whether or not it is in a frame of its own; but if you set up the above
variables in your init file, before @var{buffer} was created, then
presumably the window was previously made by this function.
@end defun
@defopt special-display-frame-alist
@anchor{Definition of special-display-frame-alist}
This variable holds frame parameters for
@code{special-display-popup-frame} to use when it creates a frame.
@end defopt
@defopt same-window-buffer-names
A list of buffer names for buffers that should be displayed in the
selected window. If a buffer's name is in this list,
@ -1969,19 +1992,6 @@ named @var{buffer-name} with @code{display-buffer} would
put it in the selected window.
@end defun
@c Emacs 19 feature
@defopt display-buffer-function
This variable is the most flexible way to customize the behavior of
@code{display-buffer}. If it is non-@code{nil}, it should be a function
that @code{display-buffer} calls to do the work. The function should
accept two arguments, the first two arguments that @code{display-buffer}
received. It should choose or create a window, display the specified
buffer in it, and then return the window.
This variable takes precedence over all the other options described
above.
@end defopt
@node Window History
@section Window History
@cindex window history
@ -2158,45 +2168,77 @@ function @code{switch-to-prev-buffer} (@pxref{Window History}).
Finally, you might want to either bury (@pxref{The Buffer List}) or kill
(@pxref{Killing Buffers}) the window's buffer.
The following function uses information on how the window for
displaying the buffer was obtained in the first place, thus attempting to
automate the above decisions for you.
The following command uses information on how the window for
displaying the buffer was obtained in the first place, thus attempting
to automate the above decisions for you.
@deffn Command quit-window &optional kill window
This command quits @var{window} and buries its buffer. The argument
@var{window} must be a live window and defaults to the selected one.
With prefix argument @var{kill} non-@code{nil}, it kills the buffer
instead of burying it.
Quitting @var{window} means to proceed as follows: If @var{window} was
created specially for displaying its current buffer, delete @var{window}
provided its frame contains at least one other live window. If
@var{window} is the only window on its frame and there are other frames
on the frame's terminal, the value of @var{kill} determines how to
proceed with the window. If @var{kill} is @code{nil}, the fate of the
frame is determined by calling @code{frame-auto-hide-function} (see
below) with that frame as sole argument. If @var{kill} is
non-@code{nil}, the frame is deleted unconditionally.
If @var{window} was reused for displaying its buffer, this command tries
to display the buffer previously shown in it. It also tries to restore
the window start (@pxref{Window Start and End}) and point (@pxref{Window
Point}) positions of the previously shown buffer. If, in addition, the
current buffer was temporarily resized, this command will also try to
restore the original height of @var{window}.
The three cases described so far require that the buffer shown in
@var{window} is still the buffer displayed by the last buffer display
function for this window. If another buffer has been shown in the
meantime, or the buffer previously shown no longer exists, this command
calls @code{switch-to-prev-buffer} (@pxref{Window History}) to show some
other buffer instead.
instead of burying it. It calls the function @code{quit-restore-window}
described next to deal with the window and its buffer.
@end deffn
The function @code{quit-window} bases its decisions on information
stored in @var{window}'s @code{quit-restore} window parameter
(@pxref{Window Parameters}), and resets that parameter to @code{nil}
after it's done.
@defun quit-restore-window &optional window bury-or-kill
This function tries to restore the state of @var{window} that existed
before its buffer was displayed in it. The optional argument
@var{window} must be a live window and defaults to the selected one.
If @var{window} was created specially for displaying its buffer, this
function deletes @var{window} provided its frame contains at least one
other live window. If @var{window} is the only window on its frame and
there are other frames on the frame's terminal, the value of the
optional argument @var{bury-or-kill} determines how to proceed with the
window. If @var{bury-or-kill} equals @code{kill}, the frame is deleted
unconditionally. Otherwise, the fate of the frame is determined by
calling @code{frame-auto-hide-function} (see below) with that frame as
sole argument.
Otherwise, this function tries to redisplay the buffer previously shown
in @var{window}. It also tries to restore the window start
(@pxref{Window Start and End}) and point (@pxref{Window Point})
positions of the previously shown buffer. If, in addition,
@var{window}'s buffer was temporarily resized, this function will also
try to restore the original height of @var{window}.
The cases described so far require that the buffer shown in @var{window}
is still the buffer displayed by the last buffer display function for
this window. If another buffer has been shown in the meantime, or the
buffer previously shown no longer exists, this function calls
@code{switch-to-prev-buffer} (@pxref{Window History}) to show some other
buffer instead.
The optional argument @var{bury-or-kill} specifes how to deal with
@var{window}'s buffer. The following values are handled:
@table @code
@item nil
This means to not deal with the buffer in any particular way. As a
consequence, if @var{window} is not deleted, invoking
@code{switch-to-prev-buffer} will usually show the buffer again.
@item append
This means that if @var{window} is not deleted, its buffer is moved to
the end of @var{window}'s list of previous buffers, so it's less likely
that a future invocation of @code{switch-to-prev-buffer} will switch to
it. Also, it moves the buffer to the end of the frame's buffer list.
@item bury
This means that if @var{window} is not deleted, its buffer is removed
from @var{window}'s list of previous buffers. Also, it moves the buffer
to the end of the frame's buffer list. This value provides the most
reliable remedy to not have @code{switch-to-prev-buffer} switch to this
buffer again without killing the buffer.
@item kill
This means to kill @var{window}'s buffer.
@end table
@code{quit-restore-window} bases its decisions on information stored in
@var{window}'s @code{quit-restore} window parameter (@pxref{Window
Parameters}), and resets that parameter to @code{nil} after it's done.
@end defun
The following option specifies how to deal with a frame containing just
one window that should be either quit, or whose buffer should be buried.
@ -2207,10 +2249,9 @@ frames. This function is called with one argument---a frame.
The function specified here is called by @code{bury-buffer} (@pxref{The
Buffer List}) when the selected window is dedicated and shows the buffer
that should be buried. It is also called by @code{quit-window} (see
above) when the frame of the window that should be quit has been
specially created for displaying that window's buffer and the buffer
should be buried.
to bury. It is also called by @code{quit-restore-window} (see above)
when the frame of the window to quit has been specially created for
displaying that window's buffer and the buffer is not killed.
The default is to call @code{iconify-frame} (@pxref{Visibility of
Frames}). Alternatively, you may specify either @code{delete-frame}
@ -2218,9 +2259,9 @@ Frames}). Alternatively, you may specify either @code{delete-frame}
@code{ignore} to leave the frame unchanged, or any other function that
can take a frame as its sole argument.
Note that the function specified by this option is called if and only if
there is at least one other frame on the terminal of the frame it's
supposed to handle, and that frame contains only one live window.
Note that the function specified by this option is called only if the
specified frame contains just one live window and there is at least one
other frame on the same terminal.
@end defopt
@ -3195,8 +3236,8 @@ frame into the root window of that very frame only).
@defun window-state-get &optional window writable
This function returns the state of @var{window} as a Lisp object. The
argument @var{window} can be any window and defaults to the root window
of the selected frame.
argument @var{window} must be a valid window and defaults to the root
window of the selected frame.
If the optional argument @var{writable} is non-@code{nil}, this means to
not use markers for sampling positions like @code{window-point} or
@ -3339,10 +3380,28 @@ from. It is installed by @code{window-state-get} (@pxref{Window
Configurations}).
@item @code{quit-restore}
This parameter specifies what to do with a window when the buffer it
shows is not needed any more. It is installed by the buffer display
functions (@pxref{Choosing Window}), and consulted by the function
@code{quit-window} (@pxref{Quitting Windows}).
This parameter is installed by the buffer display functions
(@pxref{Choosing Window}) and consulted by @code{quit-restore-window}
(@pxref{Quitting Windows}). It contains four elements:
The first element is one of the symbols @code{window} - meaning that the
window has been specially created by @code{display-buffer}, @code{frame}
- a separate frame has been created, @code{same} - the window has
displayed the same buffer before, or @code{other} - the window showed
another buffer before.
The second element is either one of the symbols @code{window} or
@code{frame}, or a list whose elements are the buffer shown in the
window before, that buffer's window start and window point positions,
and the window's height at that time.
The third element is the window selected at the time the parameter was
created. The function @code{quit-restore-window} tries to reselect that
window when it deletes the window passed to it as argument.
The fourth element is the buffer whose display caused the creation of
this parameter. @code{quit-restore-window} deletes the specified window
only if it still shows that buffer.
@end table
There are additional parameters @code{window-atom} and @code{window-side};

View File

@ -1,5 +1,5 @@
.\" See section COPYING for copyright and redistribution information.
.TH EMACS 1 "2007 April 13" "GNU Emacs 24.2.50"
.TH EMACS 1 "2007 April 13" "GNU Emacs 24.3.50"
.
.
.SH NAME

View File

@ -1,3 +1,90 @@
2012-11-03 Glenn Morris <rgm@gnu.org>
* cl.texi: Further general copyedits.
(List Functions): Remove copy-tree, standard elisp for some time.
(Efficiency Concerns): Comment out examples that no longer apply.
(Compiler Optimizations): Rename from "Optimizing Compiler"; reword.
(Creating Symbols, Random Numbers): De-emphasize internal
variables cl--gensym-counter and cl--random-state. (Bug#12788)
(Naming Conventions, Type Predicates, Macros)
(Predicates on Numbers): No longer mention cl-floatp-safe.
2012-11-02 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus.texi (Mail Source Specifiers):
Document :leave keyword used for pop mail source.
2012-11-01 Glenn Morris <rgm@gnu.org>
* cl.texi: General copyedits for style, line-breaks, etc.
(Time of Evaluation, Iteration): Add xref to Emacs Lisp manual.
(Macro Bindings, Blocks and Exits):
Acknowledge existence of lexical-binding.
(Iteration): Mainly defer to doc of standard dolist, dotimes.
2012-10-31 Glenn Morris <rgm@gnu.org>
* ert.texi (Introduction, The @code{should} Macro):
Refer to "cl-assert" rather than "assert".
* cl.texi (Function Bindings): Update for cl-flet and cl-labels.
(Obsolete Lexical Binding): Rename section from "Lexical Bindings".
(Obsolete Macros): Rename section from "Obsolete Lexical Macros".
Reword, and add details of flet and labels.
(Modify Macros, Function Bindings): Add some xrefs.
2012-10-30 Glenn Morris <rgm@gnu.org>
* cl.texi (Modify Macros): Update for cl-letf changes.
(Obsolete Lexical Macros): Say a little more about letf/cl-letf.
(Setf Extensions): Partially restore note about cl-getf,
mainly moved to lispref/variables.texi.
(Property Lists): Fix cl-getf typos.
(Mapping over Sequences): Mention cl-mapc naming oddity.
2012-10-29 Glenn Morris <rgm@gnu.org>
* cl.texi (Organization): More details on cl-lib.el versus cl.el.
(Setf Extensions): Remove `apply' setf since it seems to be disabled.
(Customizing Setf): Move contents to "Obsolete Setf Customization".
(Modify Macros, Multiple Values, Other Clauses):
Remove mentions of obsolete features.
(Obsolete Setf Customization): Don't mention `apply' setf.
2012-10-28 Glenn Morris <rgm@gnu.org>
* cl.texi (Multiple Values, Common Lisp Compatibility):
More namespace updates.
(Obsolete Features): Copyedits.
(Obsolete Lexical Macros, Obsolete Setf Customization):
New subsections.
* cl.texi (Porting Common Lisp, Lexical Bindings):
Add some xrefs to the Elisp manual.
* cl.texi (Lexical Bindings): Move to appendix of obsolete features.
(Porting Common Lisp): Emacs Lisp can do true lexical binding now.
(Obsolete Features): New appendix. Move Lexical Bindings here.
2012-10-27 Glenn Morris <rgm@gnu.org>
* cl.texi: Use defmac for macros rather than defspec.
(Efficiency Concerns): Related copyedit.
* cl.texi (Control Structure): Update for setf now being in core.
(Setf Extensions): Rename from Basic Setf. Move much of the
former content to lispref/variables.texi.
(Modify Macros): Move pop, push details to lispref/variables.texi.
(Customizing Setf): Copyedits for setf etc being in core.
(Modify Macros, Efficiency Concerns, Porting Common Lisp):
Further namespaces updates.
2012-10-26 Bastien Guerry <bzg@gnu.org>
* org.texi (Installation): Update the link to Org's ELPA. Also
don't mention org-install.el anymore as the replacement file
org-loaddefs.el is now loaded by org.el.
2012-10-25 Michael Albinus <michael.albinus@gmx.de>
* tramp.texi (Frequently Asked Questions): Mention

File diff suppressed because it is too large Load Diff

View File

@ -130,7 +130,7 @@ familiar: This example defines a test named @code{pp-test-quote} that
will pass if the three calls to @code{equal} all return true
(non-nil).
@code{should} is a macro with the same meaning as @code{assert} but
@code{should} is a macro with the same meaning as @code{cl-assert} but
better error reporting. @xref{The @code{should} Macro}.
Each test should have a name that describes what functionality it tests.
@ -342,7 +342,7 @@ to find where a test was defined if the test was loaded from a file.
Test bodies can include arbitrary code; but to be useful, they need to
check whether the code being tested (or @emph{code under test})
does what it is supposed to do. The macro @code{should} is similar to
@code{assert} from the cl package
@code{cl-assert} from the cl package
(@pxref{Assertions,,, cl, Common Lisp Extensions}),
but analyzes its argument form and records information that ERT can
display to help debugging.

View File

@ -14759,20 +14759,37 @@ This can be either the symbol @code{password} or the symbol @code{apop}
and says what authentication scheme to use. The default is
@code{password}.
@item :leave
Non-@code{nil} if the mail is to be left on the @acronym{POP} server
after fetching. Mails once fetched will never be fetched again by the
@acronym{UIDL} control. Only the built-in @code{pop3-movemail} program
(the default) supports this keyword.
If this is neither @code{nil} nor a number, all mails will be left on
the server. If this is a number, leave mails on the server for this
many days since you first checked new mails. If this is @code{nil}
(the default), mails will be deleted on the server right after fetching.
@vindex pop3-uidl-file
The @code{pop3-uidl-file} variable specifies the file to which the
@acronym{UIDL} data are locally stored. The default value is
@file{~/.pop3-uidl}.
Note that @acronym{POP} servers maintain no state information between
sessions, so what the client believes is there and what is actually
there may not match up. If they do not, then you may get duplicate
mails or the whole thing can fall apart and leave you with a corrupt
mailbox.
@end table
@vindex pop3-movemail
@findex pop3-movemail
@vindex pop3-leave-mail-on-server
If the @code{:program} and @code{:function} keywords aren't specified,
@code{pop3-movemail} will be used. If @code{pop3-leave-mail-on-server}
is non-@code{nil} the mail is to be left on the @acronym{POP} server
after fetching when using @code{pop3-movemail}. Note that POP servers
maintain no state information between sessions, so what the client
believes is there and what is actually there may not match up. If they
do not, then you may get duplicate mails or the whole thing can fall
apart and leave you with a corrupt mailbox.
@code{pop3-movemail} will be used.
Here are some examples for getting mail from a @acronym{POP} server.
Fetch from the default @acronym{POP} server, using the default user
name, and default fetcher:
@ -14787,6 +14804,14 @@ Fetch from a named server with a named user and password:
:user "user-name" :password "secret")
@end lisp
Leave mails on the server for 14 days:
@lisp
(pop :server "my.pop.server"
:user "user-name" :password "secret"
:leave 14)
@end lisp
Use @samp{movemail} to move the mail:
@lisp

View File

@ -857,7 +857,7 @@ Theory Ltd.}
@b{Important:} @i{If you the version of Org that comes with Emacs or as a
XEmacs package, please skip this section and go directly to @ref{Activation}.
If you downloaded Org as an ELPA package, please read the instructions on the
@uref{http://orgmode.org/elpa/, Org ELPA page}. To see what version of Org
@uref{http://orgmode.org/elpa.html, Org ELPA page}. To see what version of Org
(if any) is part of your Emacs distribution, type @kbd{M-x org-version} (if
your Emacs distribution does not come with Org, this function will not be
defined).}
@ -964,13 +964,6 @@ on your system).
make install-info
@end example
Then add the following line to @file{.emacs}. It is needed so that
Emacs can autoload functions that are located in files not immediately loaded
when Org mode starts.
@lisp
(require 'org-install)
@end lisp
Do not forget to activate Org as described in the following section.
@page
@ -1092,9 +1085,6 @@ shown below.
;; add latest org-mode to load path
(add-to-list 'load-path (expand-file-name "/path/to/org-mode/lisp"))
(add-to-list 'load-path (expand-file-name "/path/to/org-mode/contrib/lisp" t))
;; activate org
(require 'org-install)
@end example
If an error occurs, a backtrace can be very useful (see below on how to
@ -3785,7 +3775,7 @@ mostly if more than two TODO states are possible (@pxref{TODO
extensions}). See also @ref{Conflicts}, for a discussion of the interaction
with @code{shift-selection-mode}. See also the variable
@code{org-treat-S-cursor-todo-selection-as-state-change}.
@orgcmd{C-c / t,org-show-todo-key}
@orgcmd{C-c / t,org-show-todo-tree}
@cindex sparse tree, for TODO
@vindex org-todo-keywords
View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds the
@ -9386,16 +9376,16 @@ so often, shortcuts are provided using the Easy Templates facility
@item C-c '
Edit the source code example at point in its native mode. This works by
switching to a temporary buffer with the source code. You need to exit by
pressing @kbd{C-c '} again@footnote{Upon exit, lines starting with @samp{*}
or @samp{#} will get a comma prepended, to keep them from being interpreted
by Org as outline nodes or special comments. These commas will be stripped
for editing with @kbd{C-c '}, and also for export.}. The edited version will
then replace the old version in the Org buffer. Fixed-width regions
(where each line starts with a colon followed by a space) will be edited
using @code{artist-mode}@footnote{You may select a different-mode with the
variable @code{org-edit-fixed-width-region-mode}.} to allow creating ASCII
drawings easily. Using this command in an empty line will create a new
fixed-width region.
pressing @kbd{C-c '} again@footnote{Upon exit, lines starting with @samp{*},
@samp{,*}, @samp{#+} and @samp{,#+} will get a comma prepended, to keep them
from being interpreted by Org as outline nodes or special syntax. These
commas will be stripped for editing with @kbd{C-c '}, and also for export.}.
The edited version will then replace the old version in the Org buffer.
Fixed-width regions (where each line starts with a colon followed by a space)
will be edited using @code{artist-mode}@footnote{You may select
a different-mode with the variable @code{org-edit-fixed-width-region-mode}.}
to allow creating ASCII drawings easily. Using this command in an empty line
will create a new fixed-width region.
@kindex C-c l
@item C-c l
Calling @code{org-store-link} while editing a source code example in a
@ -14523,14 +14513,13 @@ Be sure to adjust the paths to fit your system.
#
DIR=`pwd`
FILES=""
ORGINSTALL="~/src/org/lisp/org-install.el"
# wrap each argument in the code required to call tangle on it
for i in $@@; do
FILES="$FILES \"$i\""
done
emacs -Q --batch -l $ORGINSTALL \
emacs -Q --batch \
--eval "(progn
(add-to-list 'load-path (expand-file-name \"~/src/org/lisp/\"))
(add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\" t))

View File

@ -1,3 +1,8 @@
2012-10-26 Nicolas Goaziou <n.goaziou@gmail.com>
* refcards/orgcard.tex: Fix keybindings about
`org-show-todo-tree'.
2012-10-23 Paul Eggert <eggert@cs.ucla.edu>
Fix outdated timestamp documentation in Elisp manual (bug#12706).

View File

@ -20,6 +20,17 @@ Temporary note:
When you add a new item, please add it without either +++ or ---
so we will look at it and add it to the manual.
* Installation Changes in Emacs 24.4
* Startup Changes in Emacs 24.4
* Changes in Emacs 24.4
* Editing Changes in Emacs 24.4
* Changes in Specialized Modes and Packages in Emacs 24.4
* New Modes and Packages in Emacs 24.4
* Incompatible Lisp Changes in Emacs 24.4
* Lisp changes in Emacs 24.4
* Changes in Emacs 24.4 on non-free operating systems
* Installation Changes in Emacs 24.3
@ -157,6 +168,7 @@ 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.
@ -229,7 +241,7 @@ 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.
@ -263,6 +275,7 @@ append-to-register and M-x prepend-to-register.
** New command `C-x r M-w' (copy-rectangle-as-kill).
It copies the region-rectangle as the last rectangle kill.
+++
** New option `yank-handled-properties' allows processing of text
properties on yanked text, in more ways that are more general than
just removing them, as done by `yank-excluded-properties'.
@ -300,6 +313,7 @@ Customize `cal-html-holidays' to change this.
** CL
+++
*** CL's main entry is now (require 'cl-lib).
`cl-lib' is like the old `cl' except that it uses the namespace cleanly,
i.e. all its definitions have the "cl-" prefix (and internal definitions use
@ -310,24 +324,35 @@ under the name `cl-foo' instead, with the exceptions of the few definitions
that had to use `foo*' to avoid conflicts with pre-existing Elisp entities,
which have not been renamed to `cl-foo*' but just `cl-foo'.
The old `cl' is now deprecated and is just a bunch of aliases that
provide the old non-prefixed names.
The old `cl' is now deprecated and is mainly just a bunch of aliases that
provide the old non-prefixed names. Some exceptions are listed below.
+++
*** `cl-flet' is not like `flet' (which is deprecated).
Instead it obeys the behavior of Common-Lisp's `flet'.
+++
*** `cl-labels' is slightly different from `labels'.
The difference is that it relies on the `lexical-binding' machinery (as opposed
to the `lexical-let' machinery used previously) to capture definitions in
closures, so such closures will only work if `lexical-binding' is in use.
+++
*** `cl-letf' is not exactly like `letf'.
The only difference is in details that relate to some deprecated usage
of `symbol-function' in place forms.
+++
*** `progv' was rewritten to use the `let' machinery.
A side effect is that vars without corresponding value are bound to nil
rather than making them unbound.
** Compilation mode
*** The following methods of extending `setf' are obsolete.
Use gv.el instead (FIXME; details).
`define-setf-expander', `defsetf', `define-modify-macro'
** Compilation mode
+++
*** New option `compilation-always-kill'.
** Customize
@ -389,7 +414,7 @@ changes in context diffs.
whitespace problems introduced by the diff.
** Dired
+++
*** `dired-do-async-shell-command' executes each file sequentially
if the command ends in `;' (when operating on multiple files).
Otherwise, it executes the command on each file in parallel.
@ -441,9 +466,9 @@ the FFAP prompt. The default is now '("ftp").
The old binding for `/ M' (filter by used-mode) is now bound to `/ m'.
** Mouse Avoidance mode
The new variable `mouse-avoidance-banish-position' can now be used to
customize Mouse Avoidance mode further.
+++
*** New variable `mouse-avoidance-banish-position' specifies where the
`banish' mouse avoidance setting moves the mouse.
+++
** notifications.el supports now version 1.2 of the Notifications API.
@ -595,6 +620,7 @@ and the `attributes' slot is always nil.
The `url-retrieve' function now uses this to encode its URL argument,
in case that is not properly encoded.
---
** VHDL mode
*** The free software compiler GHDL is supported (and now the default).
@ -605,7 +631,10 @@ in case that is not properly encoded.
*** Accepts \r and \f as whitespace.
** which-function-mode now applies to all applicable major modes by default.
** Which Function mode
+++
*** `which-func-modes' now defaults to t, so Which Function mode, when
enabled, applies to all applicable major modes.
---
** winner-mode-hook now runs when the mode is disabled, as well as when it is
@ -708,6 +737,7 @@ still be supported for Emacs 24.x.
Some Lisp symbols have been renamed to avoid problems with spelling
that is incorrect or inconsistent with how Emacs normally spells a word.
---
*** Renamed functions
**** hangul-input-method-inactivate -> hangul-input-method-deactivate
@ -719,22 +749,22 @@ that is incorrect or inconsistent with how Emacs normally spells a word.
viper-deactivate-input-method-action
**** ucs-input-inactivate -> ucs-input-deactivate
---
*** Renamed hooks
The old hooks are still supported for backward compatibility, but they
are deprecated and will be removed eventually.
**** input-method-inactivate-hook -> input-method-deactivate-hook
**** robin-inactivate-hook -> robin-deactivate-hook
**** quail-inactivate-hook -> quail-deactivate-hook
---
*** Renamed Lisp variables
**** follow-deactive-menu -> follow-inactive-menu
**** inactivate-current-input-method-function ->
deactivate-current-input-method-function
+++
** Some obsolete functions, variables, and faces were removed:
*** `facemenu-unlisted-faces'
*** `rmail-decode-mime-charset'
*** `last-input-char', `last-command-char', `unread-command-char'.
@ -800,7 +830,7 @@ to work out which code is doing something.
recursive invocations.
** Window changes
+++
*** The functions get-lru-window, get-mru-window and get-largest-window
now accept a third argument to avoid choosing the selected window.
@ -813,9 +843,12 @@ reused.
*** New function `fit-frame-to-buffer' and new options
`fit-frame-to-buffer' and `fit-frame-to-buffer-bottom-margin'.
+++
*** New option switch-to-buffer-preserve-window-point to restore a
window's point when switching buffers.
+++
*** New display action functions `display-buffer-below-selected',
`display-buffer-at-bottom' and `display-buffer-in-previous-window'.
and `display-buffer-in-previous-window'.
*** New display action alist entry `inhibit-switch-frame', if non-nil,
tells display action functions to avoid changing which frame is
@ -823,10 +856,10 @@ selected.
*** New display action alist entry `pop-up-frame-parameters', if
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'.
@ -835,11 +868,17 @@ appropriate entries in the `display-buffer-alist' function introduced
in Emacs 24.1:
+++
**** `display-buffer-reuse-frames'
+++
**** `special-display-regexps'
+++
**** `special-display-frame-alist'
+++
**** `special-display-buffer-names'
+++
**** `special-display-function'
+++
**** `display-buffer-function'
---
**** `dired-shrink-to-fit'
** Time
@ -879,12 +918,15 @@ result in a warning ("Eager macro-expansion skipped due to cycle")
describing the cycle.
** Miscellaneous new functions:
+++
*** `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'.
@ -893,23 +935,31 @@ describing the cycle.
*** `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'.
** Face underlining can now use a wave.
See the "Face Attributes" section of the Elisp manual.
** The following functions and variables are obsolete:
---
*** `automount-dir-prefix'
+++
*** `buffer-has-markers-at'
---
*** `macro-declaration-function' (use `macro-declarations-alist')
---
*** `window-system-version'
---
*** `dired-pop-to-buffer' (use `dired-mark-pop-up')
---
*** `query-replace-interactive'
---
*** `font-list-limit' (has had no effect since Emacs < 23)
@ -928,6 +978,7 @@ machinery to convert between Cygwin and Windows-native file names.
Emacs now supports mouse highlight, help-echo (in the echo area), and
`mouse-autoselect-window'.
+++
** On MS Windows Vista and later Emacs now supports symbolic links.
+++

Binary file not shown.

View File

@ -484,9 +484,9 @@ \section{TODO Items and Checkboxes}
\metax{select next/previous state}{S-LEFT/RIGHT}
\metax{select next/previous set}{C-S-LEFT/RIGHT}
\key{toggle ORDERED property}{C-c C-x o}
\key{view TODO items in a sparse tree}{C-c C-v}
\key{view 3rd TODO keyword's sparse tree}{C-3 C-c C-v}
\key{view TODO items in a sparse tree}{C-c / t}
\key{view 3rd TODO keyword's sparse tree}{C-3 C-c / t}
\key{set the priority of the current item}{C-c , [ABC]}
\key{remove priority cookie from current item}{C-c , SPC}
\key{raise/lower priority of current item}{S-UP/DOWN\notetwo}

View File

@ -1,3 +1,10 @@
2012-10-26 Glenn Morris <rgm@gnu.org>
* Makefile.in (uninstall): No INSTALLABLES live in archlibdir.
* Makefile.in (install, uninstall): Transformations should not be
applied to $EXEEXT.
2012-10-23 Eli Zaretskii <eliz@gnu.org>
* makefile.w32-in (lisp2): Add cp51932.el and eucjp-ms.el, to

View File

@ -244,20 +244,21 @@ install: $(DESTDIR)${archlibdir}
@echo "Installing utilities for users to run."
umask 022; ${MKDIR_P} $(DESTDIR)${bindir}
for file in ${INSTALLABLES} ; do \
$(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
$(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} $(DESTDIR)${bindir}/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \
done
for file in ${INSTALLABLE_SCRIPTS} ; do \
$(INSTALL_SCRIPT) ${srcdir}/$${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
done
uninstall:
(cd $(DESTDIR)${bindir}; \
for file in ${INSTALLABLES} ${INSTALLABLE_SCRIPTS}; do \
for file in ${INSTALLABLES}; do \
rm -f $(DESTDIR)${bindir}/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \
done
for file in ${INSTALLABLE_SCRIPTS}; do \
rm -f $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
done)
done
if [ -d $(DESTDIR)${archlibdir} ]; then \
(cd $(DESTDIR)${archlibdir} && \
rm -f ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}) \
(cd $(DESTDIR)${archlibdir} && rm -f ${UTILITIES} ${SCRIPTS}) \
fi
mostlyclean:

78
lib/close-stream.c Normal file
View File

@ -0,0 +1,78 @@
/* Close a stream, with nicer error checking than fclose's.
Copyright (C) 1998-2002, 2004, 2006-2012 Free Software Foundation, Inc.
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.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
#include "close-stream.h"
#include <errno.h>
#include <stdbool.h>
#include "fpending.h"
#if USE_UNLOCKED_IO
# include "unlocked-io.h"
#endif
/* Close STREAM. Return 0 if successful, EOF (setting errno)
otherwise. A failure might set errno to 0 if the error number
cannot be determined.
A failure with errno set to EPIPE may or may not indicate an error
situation worth signaling to the user. See the documentation of the
close_stdout_set_ignore_EPIPE function for details.
If a program writes *anything* to STREAM, that program should close
STREAM and make sure that it succeeds before exiting. Otherwise,
suppose that you go to the extreme of checking the return status
of every function that does an explicit write to STREAM. The last
printf can succeed in writing to the internal stream buffer, and yet
the fclose(STREAM) could still fail (due e.g., to a disk full error)
when it tries to write out that buffered data. Thus, you would be
left with an incomplete output file and the offending program would
exit successfully. Even calling fflush is not always sufficient,
since some file systems (NFS and CODA) buffer written/flushed data
until an actual close call.
Besides, it's wasteful to check the return value from every call
that writes to STREAM -- just let the internal stream state record
the failure. That's what the ferror test is checking below. */
int
close_stream (FILE *stream)
{
const bool some_pending = (__fpending (stream) != 0);
const bool prev_fail = (ferror (stream) != 0);
const bool fclose_fail = (fclose (stream) != 0);
/* Return an error indication if there was a previous failure or if
fclose failed, with one exception: ignore an fclose failure if
there was no previous error, no data remains to be flushed, and
fclose failed with EBADF. That can happen when a program like cp
is invoked like this 'cp a b >&-' (i.e., with standard output
closed) and doesn't generate any output (hence no previous error
and nothing to be flushed). */
if (prev_fail || (fclose_fail && (some_pending || errno != EBADF)))
{
if (! fclose_fail)
errno = 0;
return EOF;
}
return 0;
}

2
lib/close-stream.h Normal file
View File

@ -0,0 +1,2 @@
#include <stdio.h>
int close_stream (FILE *stream);

30
lib/fpending.c Normal file
View File

@ -0,0 +1,30 @@
/* fpending.c -- return the number of pending output bytes on a stream
Copyright (C) 2000, 2004, 2006-2007, 2009-2012 Free Software Foundation,
Inc.
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.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Written by Jim Meyering. */
#include <config.h>
#include "fpending.h"
/* Return the number of pending (aka buffered, unflushed)
bytes on the stream, FP, that is open for writing. */
size_t
__fpending (FILE *fp)
{
return PENDING_OUTPUT_N_BYTES;
}

30
lib/fpending.h Normal file
View File

@ -0,0 +1,30 @@
/* Declare __fpending.
Copyright (C) 2000, 2003, 2005-2006, 2009-2012 Free Software Foundation,
Inc.
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.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Written by Jim Meyering. */
#include <stddef.h>
#include <stdio.h>
#if HAVE_DECL___FPENDING
# if HAVE_STDIO_EXT_H
# include <stdio_ext.h>
# endif
#else
size_t __fpending (FILE *);
#endif

View File

@ -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 timer-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 close-stream 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
@ -84,6 +84,14 @@ EXTRA_DIST += careadlinkat.h
## end gnulib module careadlinkat
## begin gnulib module close-stream
libgnu_a_SOURCES += close-stream.c
EXTRA_DIST += close-stream.h
## end gnulib module close-stream
## begin gnulib module crypto/md5
libgnu_a_SOURCES += md5.c
@ -183,6 +191,15 @@ EXTRA_DIST += filemode.h
## end gnulib module filemode
## begin gnulib module fpending
EXTRA_DIST += fpending.c fpending.h
EXTRA_libgnu_a_SOURCES += fpending.c
## end gnulib module fpending
## begin gnulib module getloadavg

View File

@ -26,9 +26,11 @@ LIBS =
GNULIBOBJS = $(BLD)/c-ctype.$(O) \
$(BLD)/c-strcasecmp.$(O) \
$(BLD)/c-strncasecmp.$(O) \
$(BLD)/close-stream.$(O) \
$(BLD)/dtoastr.$(O) \
$(BLD)/dtotimespec.$(O) \
$(BLD)/execinfo.$(O) \
$(BLD)/fpending.$(O) \
$(BLD)/getopt.$(O) \
$(BLD)/getopt1.$(O) \
$(BLD)/gettime.$(O) \
@ -120,6 +122,13 @@ $(BLD)/c-strncasecmp.$(O) : \
$(CONFIG_H) \
$(C_CTYPE_H)
$(BLD)/close-stream.$(O) : \
$(GNU_LIB)/close-stream.c \
$(GNU_LIB)/close-stream.h \
$(GNU_LIB)/fpending.h \
$(NT_INC)/stdbool.h \
$(CONFIG_H)
$(BLD)/dtoastr.$(O) : \
$(GNU_LIB)/dtoastr.c \
$(FTOASTR_C)
@ -135,6 +144,11 @@ $(BLD)/execinfo.$(O) : \
$(GNU_LIB)/execinfo.h \
$(CONFIG_H)
$(BLD)/fpending.$(O) : \
$(GNU_LIB)/fpending.c \
$(GNU_LIB)/fpending.h \
$(CONFIG_H)
$(BLD)/getopt.$(O) : \
$(GNU_LIB)/getopt.c \
$(GNU_LIB)/getopt.h \

View File

@ -1,3 +1,267 @@
2012-11-06 Agustín Martín Domingo <agustin.martin@hispalinux.es>
* textmodes/ispell.el (ispell-region): Standard re-indent for better
readability.
* textmodes/ispell.el: Experimental support for support debugging.
(ispell-create-debug-buffer): Create a `ispell-debug-buffer' debug
buffer for ispell.
(ispell-print-if-debug): New function to print stuff to
`ispell-debug-buffer' if debugging is enabled.
(ispell-region, ispell-process-line): Use `ispell-print-if-debug' to
show some debugging info.
(ispell-buffer-with-debug): New function that creates a debugging
buffer and calls `ispell-buffer' with debugging enabled.
* textmodes/ispell.el (ispell-region): Do not prefix sent string by
comment in autoconf mode. (Bug#12768)
2012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
* emacs-lisp/byte-opt.el (toplevel): Add compare-window-configurations,
frame-first-window, frame-root-window, frame-selected-window,
minibuffer-selected-window, minibuffer-window,
window-absolute-pixel-edges, window-at, window-body-height,
window-body-width, window-display-table, window-combination-limit,
window-frame, window-fringes, window-inside-absolute-pixel-edges,
window-inside-edges, window-inside-pixel-edges, window-left-child,
window-left-column, window-margins, window-next-buffers,
window-next-sibling, window-new-normal, window-new-total,
window-normal-size, window-parameter, window-parameters, window-parent,
window-pixel-edges, window-point, window-prev-buffers,
window-prev-sibling, window-redisplay-end-trigger, window-scroll-bars,
window-start, window-text-height, window-top-child, window-top-line,
window-total-height, window-total-width and window-use-time to the list
of functions without side-effects.
(toplevel): Add window-valid-p to the list of error-free functions
without side-effects.
2012-11-05 Agustín Martín Domingo <agustin.martin@hispalinux.es>
* textmodes/ispell.el (ispell-program-name): Update
spellchecker parameters when customized.
2012-11-04 Glenn Morris <rgm@gnu.org>
* vc/vc-svn.el (vc-svn-state-heuristic): Avoid calling svn. (Bug#7850)
2012-11-04 Chong Yidong <cyd@gnu.org>
* bookmark.el (bookmark-bmenu-switch-other-window): Avoid binding
same-window-* variables.
2012-11-04 Juri Linkov <juri@jurta.org>
* isearch.el (isearch-help-for-help, isearch-describe-bindings)
(isearch-describe-key, isearch-describe-mode): Use a display
action instead of binding same-window-* variables (Bug#10040).
2012-11-03 Glenn Morris <rgm@gnu.org>
* emacs-lisp/cl-macs.el (cl-parse-loop-clause):
Rename handler properties back from cl-- to cl-. (Bug#12788)
* emacs-lisp/cl-macs.el (cl-do-all-symbols): Add doc string.
2012-11-03 Eli Zaretskii <eliz@gnu.org>
* term/pc-win.el: Don't load term/internal from here.
* loadup.el: Load term/internal from here.
2012-11-03 Fabián Ezequiel Gallina <fgallina@cuca>
* progmodes/python.el (inferior-python-mode): Fix hang in
jit-lock (Bug#12645).
2012-11-03 Martin Rudalics <rudalics@gmx.at>
* window.el (switch-to-visible-buffer)
(switch-to-buffer-preserve-window-point): Fix doc-strings.
2012-11-03 Glenn Morris <rgm@gnu.org>
* emacs-lisp/cl-lib.el (cl--random-time):
Rename from cl-random-time. (Bug#12773)
(cl--gensym-counter, cl--random-state): Update callers.
* emacs-lisp/cl-extra.el (cl-make-random-state): Update callers.
2012-11-03 Chong Yidong <cyd@gnu.org>
* cus-start.el: Make cursor-type customizable (Bug#11633).
2012-11-02 Glenn Morris <rgm@gnu.org>
* filecache.el: No need to load find-lisp when compiling.
(find-lisp-find-files): Autoload it.
(file-cache-add-directory-recursively): Don't require find-lisp.
* image.el (image-type-from-file-name): Trivial simplification.
* emacs-lisp/bytecomp.el (byte-compile-eval):
Decouple "noruntime" and "cl-functions" warnings.
2012-11-01 Stephen Berman <stephen.berman@gmx.net>
* play/gomoku.el (gomoku-display-statistics): Update mode line
only if in Gomoku buffer; don't capitalize "won" (Bug#12771).
2012-10-31 Martin Rudalics <rudalics@gmx.at>
* window.el (quit-restore-window): If the window has been
created on an existing frame and ended up as the sole window on
that frame, do not delete it (Bug#12764).
2012-10-31 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/sh-script.el (sh--inside-noncommand-expression):
Rename from sh--inside-arithmetic-expression, handle more cases
(bug#11263).
* progmodes/sh-script.el (sh--inside-arithmetic-expression): New func.
(sh-font-lock-open-heredoc): Use it (bug#12770).
2012-10-30 Glenn Morris <rgm@gnu.org>
* emacs-lisp/cl-extra.el (cl-mapc): Add autoload cookie. Doc fix.
* emacs-lisp/cl.el (letf): Doc fix. (Bug#12760)
2012-10-29 Chong Yidong <cyd@gnu.org>
* isearch.el (isearch-other-meta-char): Ensure that a reprocessed
function key is stored in a keyboard macro (Bug#4894).
* thingatpt.el (number-at-point): Apply a thing-at-point property.
2012-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
* vc/diff-mode.el (diff-context->unified): Don't get confused by "hunk
header comments".
(diff-unified->context, diff-context->unified)
(diff-reverse-direction, diff-fixup-modifs): Use `use-region-p'.
* emacs-lisp/cl.el (letf): Add missing indent rules (bug#12759).
* files.el (find-alternate-file): Only ask one question (bug#12487).
2012-10-29 Chong Yidong <cyd@gnu.org>
* vc/vc-hooks.el (vc-file-clearprops): Kill vc-parent-buffer.
Suggested by Dan Nicolaescu (Bug#6326).
* info.el (Info-complete-menu-item): Avoid duplicates (Bug#12705).
* startup.el (fancy-about-screen): Don't message (Bug#12680).
* thingatpt.el (thing-at-point): Doc fix (Bug#12691).
* imenu.el (imenu): Inhibit push-mark message (Bug#12726).
* face-remap.el (face-remap-add-relative): Handle the case where a
face-remapping-alist entry is a cons cell (Bug#12762).
2012-10-29 Kevin Ryde <user42@zip.com.au>
* woman.el (woman-parse-numeric-value): Handle picas correctly
(Bug#12639).
2012-10-29 Glenn Morris <rgm@gnu.org>
* emacs-lisp/cl.el (defsetf): Doc fix.
2012-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/sh-script.el (sh-font-lock-paren): Also put punctuation
syntax to the matching opener, if any (bug#12547).
(sh-smie-sh-forward-token, sh-smie-sh-backward-token): Recognize this
matching open as a "case-(".
(sh-smie-rc-grammar): Add a corresponding rule for it.
2012-10-28 Daniel Hackney <dan@haxney.org>
* emacs-lisp/package.el (package-generate-autoloads): Kill buffer
"PKGNAME-autoloads.el" in case we created it.
2012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
* minibuffer.el (completion--sifn-requote): Rewrite to handle things
like Tramp's "/foo:~bar//baz" -> "/scpc:foo:/baz" mapping (bug#11714).
(completion--twq-all): Disable too-strict assertions.
* tmm.el (tmm-prompt): Use map-keymap (bug#12744).
2012-10-27 Eli Zaretskii <eliz@gnu.org>
* profiler.el (profiler-report-make-entry-part): Fix help-echo
text to match the real keybindings.
2012-10-27 Juri Linkov <juri@jurta.org>
* wdired.el (wdired-keep-marker-rename): New defcustom.
(wdired-do-renames): Use it instead of `dired-keep-marker-rename'.
(Bug#11795)
* dired.el (dired-keep-marker-rename): Add reference to
`wdired-keep-marker-rename' in the docstring.
Add default character value ?R to display initially in
Customization UI instead of ?@.
2012-10-27 Martin Rudalics <rudalics@gmx.at>
* window.el (display-buffer): In doc-string describe
window-height and window-width alist entries.
* time.el (display-time-world): Restore fit-window-to-buffer
behavior.
2012-10-27 Chong Yidong <cyd@gnu.org>
* subr.el (insert-buffer-substring-as-yank): Doc fix.
2012-10-26 Jambunathan K <kjambunathan@gmail.com>
* minibuffer.el (completion-category-overrides): New completion
category `bookmark' (bug#11131).
2012-10-26 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/advice.el (ad-assemble-advised-definition):
Silence bogus compiler warnings for ad-do-it.
* bookmark.el (bookmark-completing-read): Set the completion category
to `bookmark' (bug#11131).
2012-10-26 Bastien <bzg@altern.org>
Stefan Monnier <monnier@iro.umontreal.ca>
* face-remap.el: Use lexical-binding.
(text-scale-adjust): Improve docstring. Use itself for the temporary
overlay-map bindings, so as to repeat the "Use..." message each time.
2012-10-26 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/macroexp.el (macroexp--expand-all):
Obey byte-compile-warning-enabled-p (bug#12486).
* vc/diff-mode.el (diff-end-of-hunk): Also skip potential "no LF at eol".
(diff-refine-hunk): Similarly, handle the "no LF at eol" (bug#12584).
2012-10-26 Martin Rudalics <rudalics@gmx.at>
* mouse.el (mouse-drag-line): Move last form into preceding when
clause (Bug#12731).
* help.el (resize-temp-buffer-window): Fix doc-string.
2012-10-25 David Engster <deng@randomsample.de>
* emacs-lisp/eieio.el (eieio-update-lisp-imenu-expression):
Remove. This feature is already integrated in imenu.
* emacs-lisp/eieio-opt.el: Remove require for `button' since it is
always loaded. Require `speedbar' unconditionally.
2012-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
* dired.el (dired-get-marked-files): Allow ! on . and .. (bug#12725).
@ -206,7 +470,7 @@
Recover input meta mode when the new coding system doesn not use 8-bit.
Supply TERMINAL arg to set-input-meta-mode.
2012-10-17 Michael Heerdegen <michael_heerdegen@web.de> (tiny change)
2012-10-17 Michael Heerdegen <michael_heerdegen@web.de>
* wdired.el (wdired-old-marks): New variable.
(wdired-change-to-wdired-mode): Locally set wdired-old-marks.

View File

@ -433,7 +433,11 @@ the empty string."
": ")))
(str
(completing-read prompt
bookmark-alist
(lambda (string pred action)
(if (eq action 'metadata)
'(metadata (category . bookmark))
(complete-with-action
action bookmark-alist string pred)))
nil
0
nil
@ -1869,10 +1873,8 @@ With a prefix arg, prompts for a file to save them in."
The current window remains selected."
(interactive)
(let ((bookmark (bookmark-bmenu-bookmark))
(pop-up-windows t)
same-window-buffer-names
same-window-regexps)
(bookmark--jump-via bookmark 'display-buffer)))
(fun (lambda (b) (display-buffer b t))))
(bookmark--jump-via bookmark fun)))
(defun bookmark-bmenu-other-window-with-mouse (event)
"Select bookmark at the mouse pointer in other window, leaving bookmark menu visible."

View File

@ -1,3 +1,36 @@
2012-10-25 David Engster <deng@randomsample.de>
* semantic/analyze.el (semantic-analyze-dereference-alias): New
function to dereference aliases.
(semantic-analyze-current-context-default): Use it.
* semantic/grammar.el (semantic-grammar-create-package):
* srecode/compile.el (srecode-compile-templates): Throw a proper
error if semantic-mode is not enabled (bug#9968).
Compiler warning fixes:
* semantic.el (semantic-elapsed-time): Make it a defsubst.
* srecode/dictionary.el (srecode-adebug-dictionary): Remove
require for `semantic'.
* srecode/map.el:
* srecode/insert.el: Declare functions from `data-debug'.
* semantic/grammar.el: Require `help-fns'. Declare functions from
`eldoc', which is required in function body.
* srecode/java.el:
* semantic/texi.el:
* semantic/grammar-wy.el:
* semantic/db-file.el:
* semantic/db-el.el:
* semantic/chart.el: Fix requires.
* ede/locate.el: Remove useless requires. Declare functions
instead and require in functions when needed.
2012-10-23 Stefan Monnier <monnier@iro.umontreal.ca>
* semantic/db-file.el (semanticdb-save-database-functions):

View File

@ -49,13 +49,7 @@
;; when it is available.
(require 'ede)
(eval-when-compile (require 'data-debug)
(require 'eieio-datadebug)
(require 'cedet-global)
(require 'cedet-idutils)
(require 'cedet-cscope))
(require 'locate)
(eval-when-compile (require 'locate))
;;; Code:
(defcustom ede-locate-setup-options
@ -214,6 +208,12 @@ that created this EDE locate object."
;;; GLOBAL
;;
(declare-function cedet-gnu-global-version-check "cedet-global")
(declare-function cedet-gnu-global-root "cedet-global")
(declare-function cedet-gnu-global-expand-filename "cedet-global")
(declare-function cedet-gnu-global-create/update-database "cedet-global")
(defclass ede-locate-global (ede-locate-base)
()
"EDE Locator using GNU Global.
@ -260,6 +260,12 @@ that created this EDE locate object."
;;; IDUTILS
;;
(declare-function cedet-idutils-version-check "cedet-idutils")
(declare-function cedet-idutils-support-for-directory "cedet-idutils")
(declare-function cedet-idutils-expand-filename "cedet-idutils")
(declare-function cedet-idutils-create/update-database "cedet-idutils")
(defclass ede-locate-idutils (ede-locate-base)
()
"EDE Locator using IDUtils.
@ -303,6 +309,12 @@ that created this EDE locate object."
;;; CSCOPE
;;
(declare-function cedet-cscope-version-check "cedet-scope")
(declare-function cedet-cscope-support-for-directory "cedet-scope")
(declare-function cedet-cscope-expand-filename "cedet-cscope")
(declare-function cedet-cscope-create/update-database "cedet-cscope")
(defclass ede-locate-cscope (ede-locate-base)
()
"EDE Locator using Cscope.
@ -315,6 +327,7 @@ file name searching variable `cedet-cscope-file-command'.")
;; Get ourselves initialized.
(call-next-method)
;; Do the checks.
(require 'cedet-cscope)
(cedet-cscope-version-check)
(when (not (cedet-cscope-support-for-directory (oref loc root)))
(error "Cannot use Cscope in %s"
@ -324,6 +337,7 @@ file name searching variable `cedet-cscope-file-command'.")
(defmethod ede-locate-ok-in-project :static ((loc ede-locate-cscope)
root)
"Is it ok to use this project type under ROOT."
(require 'cedet-cscope)
(cedet-cscope-version-check)
(when (cedet-cscope-support-for-directory root)
root))
@ -334,11 +348,13 @@ file name searching variable `cedet-cscope-file-command'.")
Searches are done under the current root of the EDE project
that created this EDE locate object."
(let ((default-directory (oref loc root)))
(require 'cedet-cscope)
(cedet-cscope-expand-filename filesubstring)))
(defmethod ede-locate-create/update-root-database :STATIC
((loc ede-locate-cscope) root)
"Create or update the GNU Global database for the current project."
(require 'cedet-cscope)
(cedet-cscope-create/update-database root))
(provide 'ede/locate)

View File

@ -382,7 +382,7 @@ to use Semantic, and `semantic-init-hook' is run."
"When non-nil, activate the interactive parsing debugger.
Do not set this yourself. Call `semantic-debug'.")
(defun semantic-elapsed-time (start end)
(defsubst semantic-elapsed-time (start end)
"Copied from elp.el. Was `elp-elapsed-time'.
Arguments START and END bound the time being calculated."
(float-time (time-subtract end start)))

View File

@ -527,7 +527,7 @@ Returns an object based on symbol `semantic-analyze-context'."
(function nil)
(fntag nil)
arg fntagend argtag
assign asstag
assign asstag newseq
)
;; Pattern for Analysis:
@ -601,16 +601,26 @@ Returns an object based on symbol `semantic-analyze-context'."
(if debug-on-error
(catch 'unfindable
;; If debug on error is on, allow debugging in this fcn.
(setq prefix (semantic-analyze-find-tag-sequence
prefix scope 'prefixtypes 'unfindable)))
prefix scope 'prefixtypes 'unfindable))
;; If there's an alias, dereference it and analyze
;; sequence again.
(when (setq newseq
(semantic-analyze-dereference-alias prefix))
(setq prefix (semantic-analyze-find-tag-sequence
newseq scope 'prefixtypes 'unfindable))))
;; Debug on error is off. Capture errors and move on
(condition-case err
;; NOTE: This line is duplicated in
;; semantic-analyzer-debug-global-symbol
;; You will need to update both places.
(setq prefix (semantic-analyze-find-tag-sequence
prefix scope 'prefixtypes))
(progn
(setq prefix (semantic-analyze-find-tag-sequence
prefix scope 'prefixtypes))
(when (setq newseq
(semantic-analyze-dereference-alias prefix))
(setq prefix (semantic-analyze-find-tag-sequence
newseq scope 'prefixtypes))))
(error (semantic-analyze-push-error err))))
)
@ -679,6 +689,20 @@ Returns an object based on symbol `semantic-analyze-context'."
;; Return our context.
context-return))
(defun semantic-analyze-dereference-alias (taglist)
"Dereference first tag in TAGLIST if it is an alias.
Returns a sequence of names which can then be fed again into
`semantic-analyze-find-tag-sequence'.
Returns nil if no alias was found."
(when (eq (semantic-tag-get-attribute (car taglist) :kind) 'alias)
(let ((tagname
(semantic-analyze-split-name
(semantic-tag-name
(car (semantic-tag-get-attribute (car taglist) :members))))))
(append (if (listp tagname)
tagname
(list tagname))
(cdr taglist)))))
(defun semantic-adebug-analyze (&optional ctxt)
"Perform `semantic-analyze-current-context'.

View File

@ -26,12 +26,9 @@
;; the output of the semantic parser.
;;
(require 'semantic)
(require 'chart)
(require 'semantic/db)
(require 'semantic/tag)
(eval-when-compile (require 'semantic/find))
(require 'semantic/find)
;;; Code:

View File

@ -31,12 +31,7 @@
;;
(require 'semantic/db)
(eval-when-compile
;; For generic function searching.
(require 'eieio)
(require 'eieio-opt)
(require 'eieio-base))
(require 'eieio-opt)
(declare-function semantic-elisp-desymbolify "semantic/bovine/el")
(declare-function semantic-tag-similar-p "semantic/tag-ls")

View File

@ -25,12 +25,9 @@
;; A set of semanticdb classes for persistently saving caches on disk.
;;
(require 'semantic)
(require 'semantic/db)
(require 'cedet-files)
(eval-when-compile
(require 'data-debug))
(require 'data-debug)
(defvar semanticdb-file-version semantic-version
"Version of semanticdb we are writing files to disk with.")

View File

@ -23,9 +23,8 @@
;;; Code:
(require 'semantic/lex)
(eval-when-compile (require 'semantic/bovine))
(require 'semantic)
;;; Prologue
;;
(defvar semantic-grammar-lex-c-char-re)

View File

@ -35,6 +35,7 @@
(require 'semantic/format)
(require 'semantic/grammar-wy)
(require 'semantic/idle)
(require 'help-fns)
(declare-function semantic-momentary-highlight-tag "semantic/decorate")
(declare-function semantic-analyze-context "semantic/analyze")
@ -47,6 +48,9 @@
(require 'semantic/find)
(require 'semantic/db))
(declare-function semantic-grammar-wy--install-parser
"semantic/gram-wy-fallback")
;;;;
;;;; Set up lexer
@ -825,6 +829,8 @@ Does nothing if the Lisp code seems up to date.
If optional argument FORCE is non-nil, unconditionally re-generate the
Lisp code."
(interactive "P")
(unless (semantic-active-p)
(error "You have to activate semantic-mode to create a package."))
(setq force (or force current-prefix-arg))
(semantic-fetch-tags)
(let* (
@ -1636,6 +1642,12 @@ Select the buffer containing the tag's definition, and move point there."
)
"Association of syntax elements, and the corresponding help.")
(declare-function eldoc-function-argstring "eldoc")
(declare-function eldoc-docstring-format-sym-doc "eldoc")
(declare-function eldoc-last-data-store "eldoc")
(declare-function eldoc-get-fnsym-args-string "eldoc")
(declare-function eldoc-get-var-docstring "eldoc")
(defun semantic-grammar-eldoc-get-macro-docstring (macro expander)
"Return a one-line docstring for the given grammar MACRO.
EXPANDER is the name of the function that expands MACRO."

View File

@ -26,17 +26,11 @@
;; parser plug-in is the function `semantic-texi-parse-region' that
;; overrides `semantic-parse-region'.
(require 'semantic)
(require 'semantic/db-find)
(require 'semantic/format)
(require 'semantic/ctxt)
(require 'texinfo)
(eval-when-compile
(require 'semantic/db)
(require 'semantic/db-find)
(require 'semantic/ctxt)
(require 'semantic/find)
(require 'semantic/doc))
(defvar ede-minor-mode)
(declare-function lookup-words "ispell")
(declare-function ede-current-project "ede")

View File

@ -199,6 +199,8 @@ Arguments ESCAPE-START and ESCAPE-END are the current escape sequences in use."
(defun srecode-compile-templates ()
"Compile a semantic recode template file into a mode-local variable."
(interactive)
(unless (semantic-active-p)
(error "You have to activate semantic-mode to compile SRecode templates."))
(require 'srecode/insert)
(message "Compiling template %s..."
(file-name-nondirectory (buffer-file-name)))

View File

@ -604,7 +604,6 @@ STATE is the current compiler state."
"Run data-debug on this mode's dictionary."
(interactive)
(require 'eieio-datadebug)
(require 'semantic)
(require 'srecode/find)
(let* ((modesym major-mode)
(start (current-time))

View File

@ -195,6 +195,10 @@ Buffer based features related to change hooks is handled one level up."
;; area. Return value is not important.
))
(declare-function data-debug-new-buffer "data-debug")
(declare-function data-debug-insert-stuff-list "data-debug")
(declare-function data-debug-insert-thing dictionary "data-debug")
(defun srecode-insert-show-error-report (dictionary format &rest args)
"Display an error report based on DICTIONARY, FORMAT and ARGS.
This is intended to diagnose problems with failed template

View File

@ -26,10 +26,7 @@
;;; Code:
(require 'srecode/dictionary)
(require 'semantic/tag)
(eval-when-compile
(require 'semantic/find))
(require 'semantic/find)
;;;###autoload
(defun srecode-semantic-handle-:java (dict)

View File

@ -215,7 +215,8 @@ Optional argument RESET forces a reset of the current map."
;; Eventually, I want to return many maps to search through.
(list srecode-current-map)))
(eval-when-compile (require 'data-debug))
(declare-function data-debug-new-buffer "data-debug")
(declare-function data-debug-insert-stuff-list "data-debug")
(defun srecode-adebug-maps ()
"Run ADEBUG on the output of `srecode-get-maps'."

View File

@ -51,6 +51,19 @@
(gc-cons-percentage alloc float)
(garbage-collection-messages alloc boolean)
;; buffer.c
(cursor-type
display
(choice
(const :tag "Frame default" t)
(const :tag "Filled box" box)
(const :tag "Hollow cursor" hollow)
(const :tag "Vertical bar" bar)
(cons :tag "Vertical bar with specified width"
(const bar) integer)
(const :tag "Horizontal bar" hbar)
(cons :tag "Horizontal bar with specified width"
(const hbar) integer)
(const :tag "None "nil)))
(mode-line-format mode-line sexp) ;Hard to do right.
(major-mode internal function)
(case-fold-search matching boolean)

View File

@ -137,9 +137,12 @@ A value of t means move to first file."
"Controls marking of renamed files.
If t, files keep their previous marks when they are renamed.
If a character, renamed files (whether previously marked or not)
are afterward marked with that character."
are afterward marked with that character.
This option affects only files renamed by `dired-do-rename' and
`dired-do-rename-regexp'. See `wdired-keep-marker-rename'
if you want to do the same for files renamed in WDired mode."
:type '(choice (const :tag "Keep" t)
(character :tag "Mark"))
(character :tag "Mark" :value ?R))
:group 'dired-mark)
(defcustom dired-keep-marker-copy ?C

View File

@ -2897,8 +2897,11 @@ definition, INTERACTIVE if non-nil is the interactive form to be used,
ORIG is a form that calls the body of the original unadvised function,
and BEFORES, AROUNDS and AFTERS are the lists of advices with which ORIG
should be modified. The assembled function will be returned."
(let (before-forms around-form around-form-protected after-forms definition)
;; The ad-do-it call should always have the right number of arguments,
;; but the compiler might signal a bogus warning because it checks the call
;; against the advertised calling convention.
(let ((around-form `(setq ad-return-value (with-no-warnings ,orig)))
before-forms around-form-protected after-forms definition)
(dolist (advice befores)
(cond ((and (ad-advice-protected advice)
before-forms)
@ -2911,7 +2914,6 @@ should be modified. The assembled function will be returned."
(append before-forms
(ad-body-forms (ad-advice-definition advice)))))))
(setq around-form `(setq ad-return-value ,orig))
(dolist (advice (reverse arounds))
;; If any of the around advices is protected then we
;; protect the complete around advice onion:

View File

@ -1187,8 +1187,8 @@
boundp buffer-file-name buffer-local-variables buffer-modified-p
buffer-substring byte-code-function-p
capitalize car-less-than-car car cdr ceiling char-after char-before
char-equal char-to-string char-width
compare-strings concat coordinates-in-window-p
char-equal char-to-string char-width compare-strings
compare-window-configurations concat coordinates-in-window-p
copy-alist copy-sequence copy-marker cos count-lines
decode-char
decode-time default-boundp default-value documentation downcase
@ -1196,17 +1196,18 @@
fboundp fceiling featurep ffloor
file-directory-p file-exists-p file-locked-p file-name-absolute-p
file-newer-than-file-p file-readable-p file-symlink-p file-writable-p
float float-time floor format format-time-string frame-visible-p
fround ftruncate
float float-time floor format format-time-string frame-first-window
frame-root-window frame-selected-window
frame-visible-p fround ftruncate
get gethash get-buffer get-buffer-window getenv get-file-buffer
hash-table-count
int-to-string intern-soft
keymap-parent
length local-variable-if-set-p local-variable-p log log10 logand
logb logior lognot logxor lsh langinfo
make-list make-string make-symbol
marker-buffer max member memq min mod multibyte-char-to-unibyte
next-window nth nthcdr number-to-string
make-list make-string make-symbol marker-buffer max member memq min
minibuffer-selected-window minibuffer-window
mod multibyte-char-to-unibyte next-window nth nthcdr number-to-string
parse-colon-path plist-get plist-member
prefix-numeric-value previous-window prin1-to-string propertize
degrees-to-radians
@ -1221,9 +1222,19 @@
unibyte-char-to-multibyte upcase user-full-name
user-login-name user-original-login-name custom-variable-p
vconcat
window-buffer window-dedicated-p window-edges window-height
window-hscroll window-minibuffer-p window-width
zerop))
window-absolute-pixel-edges window-at window-body-height
window-body-width window-buffer window-dedicated-p window-display-table
window-combination-limit window-edges window-frame window-fringes
window-height window-hscroll window-inside-edges
window-inside-absolute-pixel-edges window-inside-pixel-edges
window-left-child window-left-column window-margins window-minibuffer-p
window-next-buffers window-next-sibling window-new-normal
window-new-total window-normal-size window-parameter window-parameters
window-parent window-pixel-edges window-point window-prev-buffers
window-prev-sibling window-redisplay-end-trigger window-scroll-bars
window-start window-text-height window-top-child window-top-line
window-total-height window-total-width window-use-time window-vscroll
window-width zerop))
(side-effect-and-error-free-fns
'(arrayp atom
bobp bolp bool-vector-p
@ -1256,7 +1267,8 @@
this-single-command-raw-keys
user-real-login-name user-real-uid user-uid
vector vectorp visible-frame-list
wholenump window-configuration-p window-live-p windowp)))
wholenump window-configuration-p window-live-p
window-valid-p windowp)))
(while side-effect-free-fns
(put (car side-effect-free-fns) 'side-effect-free t)
(setq side-effect-free-fns (cdr side-effect-free-fns)))

View File

@ -863,16 +863,7 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
(let ((xs (pop hist-new))
old-autoloads)
;; Make sure the file was not already loaded before.
(unless (or (assoc (car xs) hist-orig)
;; Don't give both the "noruntime" and
;; "cl-functions" warning for the same function.
;; FIXME This seems incorrect - these are two
;; independent warnings. For example, you may be
;; choosing to see the cl warnings but ignore them.
;; You probably don't want to ignore noruntime in the
;; same way.
(and (byte-compile-warning-enabled-p 'cl-functions)
(byte-compile-cl-file-p (car xs))))
(unless (assoc (car xs) hist-orig)
(dolist (s xs)
(cond
((and (consp s) (eq t (car s)))

View File

@ -149,8 +149,9 @@ the elements themselves.
(setq cl-list (cdr cl-list)))
(nreverse cl-res))))
;;;###autoload
(defun cl-mapc (cl-func cl-seq &rest cl-rest)
"Like `mapcar', but does not accumulate values returned by the function.
"Like `cl-mapcar', but does not accumulate values returned by the function.
\n(fn FUNCTION SEQUENCE...)"
(if cl-rest
(progn (apply 'cl-map nil cl-func cl-seq cl-rest)
@ -439,7 +440,7 @@ If STATE is t, return a new state object seeded from the time of day."
(cond ((null state) (cl-make-random-state cl--random-state))
((vectorp state) (copy-tree state t))
((integerp state) (vector 'cl-random-state-tag -1 30 state))
(t (cl-make-random-state (cl-random-time)))))
(t (cl-make-random-state (cl--random-time)))))
;;;###autoload
(defun cl-random-state-p (object)

View File

@ -264,12 +264,12 @@ one value.
;;; Symbols.
(defun cl-random-time ()
(defun cl--random-time ()
(let* ((time (copy-sequence (current-time-string))) (i (length time)) (v 0))
(while (>= (cl-decf i) 0) (setq v (+ (* v 3) (aref time i))))
v))
(defvar cl--gensym-counter (* (logand (cl-random-time) 1023) 100))
(defvar cl--gensym-counter (* (logand (cl--random-time) 1023) 100))
;;; Numbers.
@ -296,7 +296,7 @@ always returns nil."
"Return t if INTEGER is even."
(eq (logand integer 1) 0))
(defvar cl--random-state (vector 'cl-random-state-tag -1 30 (cl-random-time)))
(defvar cl--random-state (vector 'cl-random-state-tag -1 30 (cl--random-time)))
(defconst cl-most-positive-float nil
"The largest value that a Lisp float can hold.

View File

@ -10,8 +10,8 @@
;;;;;; cl-truncate cl-ceiling cl-floor cl-isqrt cl-lcm cl-gcd cl--set-frame-visible-p
;;;;;; 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" "1572ae52fa4fbd9c4bf89b49a068a865")
;;;;;; cl-mapl cl-mapc cl-maplist cl-map cl--mapcar-many cl-equalp
;;;;;; cl-coerce) "cl-extra" "cl-extra.el" "0e9284b6492cc98eee7c85ae4e5322ee")
;;; Generated autoloads from cl-extra.el
(autoload 'cl-coerce "cl-extra" "\
@ -46,6 +46,11 @@ the elements themselves.
\(fn FUNCTION LIST...)" nil nil)
(autoload 'cl-mapc "cl-extra" "\
Like `cl-mapcar', but does not accumulate values returned by the function.
\(fn FUNCTION SEQUENCE...)" nil nil)
(autoload 'cl-mapl "cl-extra" "\
Like `cl-maplist', but does not accumulate values returned by the function.
@ -260,7 +265,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" "bdc107ab6064c577d393152665c74ddd")
;;;;;; "cl-macs" "cl-macs.el" "57cf89149db1e8ea6bc1582713980cf8")
;;; Generated autoloads from cl-macs.el
(autoload 'cl--compiler-macro-list* "cl-macs" "\
@ -468,9 +473,9 @@ from OBARRAY.
(put 'cl-do-symbols 'lisp-indent-function '1)
(autoload 'cl-do-all-symbols "cl-macs" "\
Like `cl-do-symbols', but use the default obarray.
\(fn SPEC &rest BODY)" nil t)
\(fn (VAR [RESULT]) BODY...)" nil t)
(put 'cl-do-all-symbols 'lisp-indent-function '1)

View File

@ -1259,8 +1259,9 @@ Valid clauses are:
loop-for-steps)))
(t
;; This is an advertised interface: (info "(cl)Other Clauses").
(let ((handler (and (symbolp word)
(get word 'cl--loop-for-handler))))
(get word 'cl-loop-for-handler))))
(if handler
(funcall handler var)
(error "Expected a `for' preposition, found %s" word)))))
@ -1407,7 +1408,8 @@ Valid clauses are:
,cl--loop-finish-flag nil) cl--loop-body))
(t
(let ((handler (and (symbolp word) (get word 'cl--loop-handler))))
;; This is an advertised interface: (info "(cl)Other Clauses").
(let ((handler (and (symbolp word) (get word 'cl-loop-handler))))
(or handler (error "Expected a cl-loop keyword, found %s" word))
(funcall handler))))
(if (eq (car cl--loop-args) 'and)
@ -1579,6 +1581,9 @@ from OBARRAY.
;;;###autoload
(defmacro cl-do-all-symbols (spec &rest body)
"Like `cl-do-symbols', but use the default obarray.
\(fn (VAR [RESULT]) BODY...)"
(declare (indent 1) (debug ((symbolp &optional form) cl-declarations body)))
`(cl-do-symbols (,(car spec) nil ,(cadr spec)) ,@body))

View File

@ -511,7 +511,10 @@ rather than relying on `lexical-binding'."
(defmacro letf (bindings &rest body)
"Dynamically scoped let-style bindings for places.
Like `cl-letf', but with some extra backward compatibility."
For more details, see `cl-letf'. This macro behaves like that one
in almost every respect (apart from details that relate to some
deprecated usage of `symbol-function' in place forms)." ; bug#12760
(declare (indent 1) (debug cl-letf))
;; Like cl-letf, but with special handling of symbol-function.
`(cl-letf ,(mapcar (lambda (x) (if (eq (car-safe (car x)) 'symbol-function)
`((cl--symbol-function ,@(cdar x)) ,@(cdr x))
@ -568,9 +571,9 @@ well for simple place forms. In the simple `defsetf' form, `setf's of
the form (setf (NAME ARGS...) VAL) are transformed to function or macro
calls of the form (FUNC ARGS... VAL). Example:
(cl-defsetf aref aset)
(defsetf aref aset)
Alternate form: (cl-defsetf NAME ARGLIST (STORE) BODY...).
Alternate form: (defsetf NAME ARGLIST (STORE) BODY...).
Here, the above `setf' call is expanded by binding the argument forms ARGS
according to ARGLIST, binding the value form VAL to STORE, then executing
BODY, which must return a Lisp form that does the necessary `setf' operation.
@ -578,7 +581,7 @@ Actually, ARGLIST and STORE may be bound to temporary variables which are
introduced automatically to preserve proper execution order of the arguments.
Example:
(cl-defsetf nth (n x) (v) `(setcar (nthcdr ,n ,x) ,v))
(defsetf nth (n x) (v) `(setcar (nthcdr ,n ,x) ,v))
\(fn NAME [FUNC | ARGLIST (STORE) BODY...])"
(declare (debug

View File

@ -29,9 +29,9 @@
;;
(require 'eieio)
(require 'button)
(require 'help-mode)
(require 'find-func)
(require 'speedbar)
(require 'help-mode)
;;; Code:
;;;###autoload
@ -710,10 +710,6 @@ Arguments UNUSED are not used."
;;; SPEEDBAR SUPPORT
;;
(eval-when-compile
(condition-case nil
(require 'speedbar)
(error (message "Error loading speedbar... ignored"))))
(defvar eieio-class-speedbar-key-map nil
"Keymap used when working with a project in speedbar.")

View File

@ -3049,29 +3049,6 @@ Optional argument NOESCAPE is passed to `prin1-to-string' when appropriate."
)
)
;;; Interfacing with imenu in emacs lisp mode
;; (Only if the expression is defined)
;;
(if (eval-when-compile (boundp 'lisp-imenu-generic-expression))
(progn
(defun eieio-update-lisp-imenu-expression ()
"Examine `lisp-imenu-generic-expression' and modify it to find `defmethod'."
(let ((exp lisp-imenu-generic-expression))
(while exp
;; it's of the form '( ( title expr indx ) ... )
(let* ((subcar (cdr (car exp)))
(substr (car subcar)))
(if (and (not (string-match "|method\\\\" substr))
(string-match "|advice\\\\" substr))
(setcar subcar
(replace-match "|advice\\|method\\" t t substr 0))))
(setq exp (cdr exp)))))
(eieio-update-lisp-imenu-expression)
))
;;; Autoloading some external symbols, and hooking into the help system
;;

View File

@ -154,11 +154,16 @@ Assumes the caller has bound `macroexpand-all-environment'."
(if (and (not (eq form new-form)) ;It was a macro call.
(car-safe form)
(symbolp (car form))
(get (car form) 'byte-obsolete-info))
(get (car form) 'byte-obsolete-info)
(or (not (fboundp 'byte-compile-warning-enabled-p))
(byte-compile-warning-enabled-p 'obsolete)))
(let* ((fun (car form))
(obsolete (get fun 'byte-obsolete-info)))
(macroexp--warn-and-return
(macroexp--obsolete-warning fun obsolete "macro")
(macroexp--obsolete-warning
fun obsolete
(if (symbolp (symbol-function fun))
"alias" "macro"))
new-form))
new-form)))
(pcase form

View File

@ -590,7 +590,9 @@ EXTRA-PROPERTIES is currently unused."
(version-control 'never))
(unless (fboundp 'autoload-ensure-default-file)
(package-autoload-ensure-default-file generated-autoload-file))
(update-directory-autoloads pkg-dir)))
(update-directory-autoloads pkg-dir)
(let ((buf (find-buffer-visiting generated-autoload-file)))
(when buf (kill-buffer buf)))))
(defvar tar-parse-info)
(declare-function tar-untar-buffer "tar-mode" ())

View File

@ -1,3 +1,7 @@
2012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
* erc-backend.el: Only require `erc' during compilation (bug#12740).
2012-10-18 Stefan Monnier <monnier@iro.umontreal.ca>
* erc-backend.el: Require `erc' instead of autoloading its macros

Some files were not shown because too many files have changed in this diff Show More