mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-16 09:50:25 +00:00
upstream
This commit is contained in:
commit
643b189334
48
ChangeLog
48
ChangeLog
@ -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):
|
||||
|
55
Makefile.in
55
Makefile.in
@ -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
2
README
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
2
autogen/aclocal.m4
vendored
@ -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])
|
||||
|
@ -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
337
autogen/configure
vendored
@ -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\\"
|
||||
|
||||
|
@ -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
|
||||
|
108
configure.ac
108
configure.ac
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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 `\'.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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).
|
||||
|
@ -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
|
||||
|
@ -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{}
|
||||
|
@ -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{}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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}.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
||||
|
@ -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}.
|
||||
|
@ -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};
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
2006
doc/misc/cl.texi
2006
doc/misc/cl.texi
File diff suppressed because it is too large
Load Diff
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
|
@ -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).
|
||||
|
89
etc/NEWS
89
etc/NEWS
@ -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.
@ -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}
|
||||
|
@ -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
|
||||
|
@ -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
78
lib/close-stream.c
Normal 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
2
lib/close-stream.h
Normal file
@ -0,0 +1,2 @@
|
||||
#include <stdio.h>
|
||||
int close_stream (FILE *stream);
|
30
lib/fpending.c
Normal file
30
lib/fpending.c
Normal 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
30
lib/fpending.h
Normal 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
|
@ -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
|
||||
|
||||
|
||||
|
@ -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 \
|
||||
|
266
lisp/ChangeLog
266
lisp/ChangeLog
@ -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.
|
||||
|
@ -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."
|
||||
|
@ -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):
|
||||
|
@ -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)
|
||||
|
@ -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)))
|
||||
|
@ -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'.
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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")
|
||||
|
@ -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.")
|
||||
|
@ -23,9 +23,8 @@
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'semantic/lex)
|
||||
(eval-when-compile (require 'semantic/bovine))
|
||||
|
||||
(require 'semantic)
|
||||
|
||||
;;; Prologue
|
||||
;;
|
||||
(defvar semantic-grammar-lex-c-char-re)
|
||||
|
@ -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."
|
||||
|
@ -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")
|
||||
|
@ -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)))
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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'."
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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)))
|
||||
|
@ -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)))
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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))
|
||||
|
||||
|
@ -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
|
||||
|
@ -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.")
|
||||
|
@ -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
|
||||
;;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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" ())
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user